sootsim 0.1.285 → 0.1.287
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.
- package/README.md +28 -4
- package/dist-cli/bin.js +7 -5
- package/dist-cli/chunks/{agent-2TBHFU5M.js → agent-3Y7PIJAD.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-LJ4N3HMI.js → agent-wrapper-M2GB3CFF.js} +2 -2
- package/dist-cli/chunks/{app-fonts-GQDMATKJ.js → app-fonts-OSUZGXLN.js} +2 -2
- package/dist-cli/chunks/{assert-RD4NYOEL.js → assert-VGMB3XLU.js} +2 -2
- package/dist-cli/chunks/{auth-3EU7SXIS.js → auth-C2D2XI5T.js} +2 -2
- package/dist-cli/chunks/beta-VB4CHGW7.js +2 -0
- package/dist-cli/chunks/{camera-2J7LHKH2.js → camera-2EP7WI7X.js} +2 -2
- package/dist-cli/chunks/{chunk-FECFOHRP.js → chunk-2ED7AEFH.js} +2 -2
- package/dist-cli/chunks/{chunk-R5AGV63G.js → chunk-4LQHUMJD.js} +1 -1
- package/dist-cli/chunks/{chunk-RF2D4REN.js → chunk-4YUQA5EZ.js} +1 -1
- package/dist-cli/chunks/{chunk-NSMCMJG3.js → chunk-5BH4EGSX.js} +1 -1
- package/dist-cli/chunks/{chunk-UTAHGCSP.js → chunk-6JYHFQMU.js} +2 -2
- package/dist-cli/chunks/{chunk-MCHPBSUT.js → chunk-7NHETHT2.js} +2 -2
- package/dist-cli/chunks/{chunk-QWSPXKQJ.js → chunk-7TTDBWWX.js} +3 -3
- package/dist-cli/chunks/{chunk-E6HIXOCT.js → chunk-7XETMEVG.js} +2 -2
- package/dist-cli/chunks/{chunk-CAXY5LGF.js → chunk-AUPDIMGR.js} +3 -3
- package/dist-cli/chunks/{chunk-FD6OUECL.js → chunk-B4OWAS67.js} +4 -4
- package/dist-cli/chunks/{chunk-UPHIANHH.js → chunk-CAVS43NZ.js} +2 -2
- package/dist-cli/chunks/{chunk-H6VB7Q6V.js → chunk-D32WJN5T.js} +1 -1
- package/dist-cli/chunks/{chunk-D7T3DWLA.js → chunk-DH4IAIMY.js} +2 -2
- package/dist-cli/chunks/{chunk-J6PGQR2G.js → chunk-DMJCPQ5G.js} +2 -2
- package/dist-cli/chunks/{chunk-NGL23MAI.js → chunk-DWZBBA2R.js} +2 -2
- package/dist-cli/chunks/{chunk-ITXBTNQO.js → chunk-EOWY6ENX.js} +1 -1
- package/dist-cli/chunks/chunk-FAKE23IY.js +2 -0
- package/dist-cli/chunks/{chunk-UBCUQYQB.js → chunk-FJXEQORS.js} +1 -1
- package/dist-cli/chunks/{chunk-TV2JCOBT.js → chunk-GJWLFLCH.js} +1 -1
- package/dist-cli/chunks/{chunk-MDI4VFTU.js → chunk-IL67IGWO.js} +1 -1
- package/dist-cli/chunks/{chunk-7QVXBXHE.js → chunk-JMCFZU73.js} +1 -1
- package/dist-cli/chunks/{chunk-6Z43B67G.js → chunk-JNF5Q27W.js} +3 -3
- package/dist-cli/chunks/{chunk-6KJIC7PM.js → chunk-KNANFWH6.js} +32 -8
- package/dist-cli/chunks/{chunk-RJPFXKUC.js → chunk-LNEO6ZTY.js} +3 -3
- package/dist-cli/chunks/chunk-LS4XU3D6.js +1 -0
- package/dist-cli/chunks/{chunk-ZCMLLZW7.js → chunk-LSARMXMK.js} +2 -2
- package/dist-cli/chunks/{chunk-ENRZ35MX.js → chunk-LWCQCC4X.js} +1 -1
- package/dist-cli/chunks/chunk-MS3I76VW.js +2 -0
- package/dist-cli/chunks/{chunk-EUOPHGBA.js → chunk-O564XXIK.js} +2 -2
- package/dist-cli/chunks/chunk-O5JBF7EI.js +2 -0
- package/dist-cli/chunks/{chunk-K3VOQJT4.js → chunk-O722YE2D.js} +3 -3
- package/dist-cli/chunks/{chunk-MVF6FAIR.js → chunk-OZSLCAR3.js} +1 -1
- package/dist-cli/chunks/chunk-PVO7KJ4U.js +118 -0
- package/dist-cli/chunks/chunk-SALM6SYB.js +4 -0
- package/dist-cli/chunks/{chunk-XHGF55GE.js → chunk-UYVRZAAM.js} +1 -1
- package/dist-cli/chunks/{chunk-EPCTUT5H.js → chunk-V7QFQAEP.js} +1 -1
- package/dist-cli/chunks/chunk-VG4BRVYH.js +72 -0
- package/dist-cli/chunks/{chunk-KYD5EOWU.js → chunk-VYCARR66.js} +1 -1
- package/dist-cli/chunks/{chunk-L6JX65OD.js → chunk-W2N5SGMP.js} +1 -1
- package/dist-cli/chunks/{chunk-H3USGI4Z.js → chunk-WDDAJEF2.js} +2 -2
- package/dist-cli/chunks/{chunk-WKK5ABFW.js → chunk-WO5JLB3Y.js} +1 -1
- package/dist-cli/chunks/chunk-X2QGJ365.js +4 -0
- package/dist-cli/chunks/{chunk-RNUOUDDU.js → chunk-XNAXG3CO.js} +2 -2
- package/dist-cli/chunks/{chunk-LMXSSAVD.js → chunk-XNNQOIEW.js} +1 -1
- package/dist-cli/chunks/{chunk-II5VUIPW.js → chunk-XYW7VEC5.js} +2 -2
- package/dist-cli/chunks/{chunk-NQQPRV7X.js → chunk-YMRVH5M7.js} +2 -2
- package/dist-cli/chunks/cleanup-4CMHC5XY.js +23 -0
- package/dist-cli/chunks/cli-version-TZMWSGH2.js +2 -0
- package/dist-cli/chunks/{compat-LEM4VU7P.js → compat-AEK4ZDP6.js} +3 -3
- package/dist-cli/chunks/{config-HS34TNDH.js → config-E2DPFBWE.js} +2 -2
- package/dist-cli/chunks/control-JNIZAS3K.js +2 -0
- package/dist-cli/chunks/daemon-7PINPJHO.js +2 -0
- package/dist-cli/chunks/{debug-WVZX3PQR.js → debug-GCMVHL3Y.js} +3 -3
- package/dist-cli/chunks/{desktop-CLQJRQZG.js → desktop-U34JDZSL.js} +3 -3
- package/dist-cli/chunks/detox-HFGJMV6S.js +50 -0
- package/dist-cli/chunks/{device-OD752JLS.js → device-2JSOB3ND.js} +2 -2
- package/dist-cli/chunks/{diagnose-6ESOVAFY.js → diagnose-VGZOE32C.js} +2 -2
- package/dist-cli/chunks/disk-cleanup-II246KS3.js +2 -0
- package/dist-cli/chunks/drivers-U44673LK.js +2 -0
- package/dist-cli/chunks/{film-B4LMPUP7.js → film-4B5RQBZA.js} +3 -3
- package/dist-cli/chunks/flow-4PV7VMJX.js +2 -0
- package/dist-cli/chunks/help-ZY4B4G45.js +2 -0
- package/dist-cli/chunks/{hidden-runtime-alias-UKOTOYAU.js → hidden-runtime-alias-XZPYIJJL.js} +2 -2
- package/dist-cli/chunks/{home-paths-YR2DGQKT.js → home-paths-URBZE5DX.js} +2 -2
- package/dist-cli/chunks/inspect-2KZSDWZ2.js +2 -0
- package/dist-cli/chunks/install-desktop-66NOHS5U.js +2 -0
- package/dist-cli/chunks/{login-7LKF3FZ5.js → login-6ZZQHORX.js} +4 -4
- package/dist-cli/chunks/{logout-T6UDYMX7.js → logout-R3H4H5XS.js} +2 -2
- package/dist-cli/chunks/{maestro-GFPPYRP7.js → maestro-TJ5IJVWZ.js} +3 -3
- package/dist-cli/chunks/{maestro-generate-INLKO6J5.js → maestro-generate-BM3TFJM3.js} +3 -3
- package/dist-cli/chunks/{mode-D4CFDDM5.js → mode-QEHTO5QB.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-DHBZACNG.js +2 -0
- package/dist-cli/chunks/{perf-ZHZEQ5CJ.js → perf-GQ6H7BMI.js} +2 -2
- package/dist-cli/chunks/{record-YMQVDSIC.js → record-UNDNOP7I.js} +3 -3
- package/dist-cli/chunks/runtime-U6UYTNPH.js +2 -0
- package/dist-cli/chunks/{screenshot-command-Y4BENO6D.js → screenshot-command-ONR3W4IB.js} +3 -3
- package/dist-cli/chunks/{screenshots-capture-MT4ZDZUF.js → screenshots-capture-ME4I6HDK.js} +2 -2
- package/dist-cli/chunks/{serve-G633HTUD.js → serve-76PISKNL.js} +18 -18
- package/dist-cli/chunks/{setup-FNATHLVM.js → setup-TJMKUTMZ.js} +3 -3
- package/dist-cli/chunks/{skills-WZND2RAU.js → skills-RWONRRTS.js} +2 -2
- package/dist-cli/chunks/{storage-YRWEDN56.js → storage-K42LEKBP.js} +2 -2
- package/dist-cli/chunks/store-GZ3LRYT5.js +2 -0
- package/dist-cli/chunks/telemetry-2QOKHTLI.js +2 -0
- package/dist-cli/chunks/{timeline-WSS6HKAH.js → timeline-W7O56I3Y.js} +2 -2
- package/dist-cli/chunks/{upgrade-I5GYH34L.js → upgrade-E42I2WQ6.js} +4 -4
- package/dist-cli/chunks/upload-TPETTHGS.js +2 -0
- package/dist-cli/chunks/{version-O4HGTRSA.js → version-KYDANRIA.js} +3 -3
- package/dist-cli/chunks/{web-L7JORNHF.js → web-BZX7OTFR.js} +2 -2
- package/dist-cli/chunks/{what-happened-ALECI5TF.js → what-happened-EU22AIF6.js} +2 -2
- package/dist-lib/agent-daemon-client.cjs +1 -1
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +1 -1
- package/dist-lib/attached-projects.cjs +1 -1
- package/dist-lib/auth/shared-session.cjs +1 -1
- package/dist-lib/backend-origin.cjs +1 -1
- package/dist-lib/beta.cjs +1 -1
- package/dist-lib/beta.mjs +1 -1
- package/dist-lib/bridge-constants.cjs +1 -1
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +1 -1
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +74 -9
- package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
- package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
- package/dist-lib/host/websocket-proxy.cjs +1 -1
- package/dist-lib/index.cjs +1 -1
- package/dist-lib/jump-to-source-babel.cjs +1 -1
- package/dist-lib/menu.cjs +1 -1
- package/dist-lib/menu.mjs +1 -1
- package/dist-lib/metro.cjs +1 -1
- package/dist-lib/profiles.cjs +1 -1
- package/dist-lib/render-mode.cjs +1 -1
- package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
- package/dist-lib/sdk.cjs +1 -1
- package/dist-lib/sdk.mjs +1 -1
- package/dist-lib/skills.cjs +76 -10
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/scripts/preuninstall.cjs +2 -0
- package/skills/contrast/SKILL.md +1 -0
- package/src/browser-cache.ts +16 -0
- package/src/disk-cleanup.ts +487 -0
- package/src/home-paths.ts +2 -0
- package/dist-cli/chunks/beta-YS62NT2Q.js +0 -2
- package/dist-cli/chunks/chunk-4ER5VV7N.js +0 -118
- package/dist-cli/chunks/chunk-HMZEXILJ.js +0 -2
- package/dist-cli/chunks/chunk-J6JBIQCU.js +0 -1
- package/dist-cli/chunks/chunk-LC7PERGZ.js +0 -4
- package/dist-cli/chunks/chunk-N5HM6MVL.js +0 -2
- package/dist-cli/chunks/chunk-P5ZWHBTB.js +0 -62
- package/dist-cli/chunks/cli-version-TXYQS4RH.js +0 -2
- package/dist-cli/chunks/control-B6AQSK5M.js +0 -2
- package/dist-cli/chunks/daemon-CXYLZLTA.js +0 -2
- package/dist-cli/chunks/detox-WUKQEG6W.js +0 -50
- package/dist-cli/chunks/drivers-QNTNLCAA.js +0 -2
- package/dist-cli/chunks/flow-RBT7ONHX.js +0 -2
- package/dist-cli/chunks/help-XSIDFM7C.js +0 -2
- package/dist-cli/chunks/inspect-X5QK55XO.js +0 -2
- package/dist-cli/chunks/install-desktop-2I52RLEI.js +0 -2
- package/dist-cli/chunks/optional-demo-registry-B4BZNEGJ.js +0 -2
- package/dist-cli/chunks/runtime-YSOWH56F.js +0 -2
- package/dist-cli/chunks/store-2CQBXLIL.js +0 -2
- package/dist-cli/chunks/telemetry-2ZOO7LP5.js +0 -2
- package/dist-cli/chunks/upload-TRUPFXJR.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
2
|
-
import{C as N,D as F,F as y,Q as T,R as b,S}from"./chunk-
|
|
1
|
+
/*! sootsim v0.1.287 | (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-EOWY6ENX.js";import{g as A,i as _}from"./chunk-7NHETHT2.js";import"./chunk-GJWLFLCH.js";import{c as k}from"./chunk-W2N5SGMP.js";import"./chunk-FJXEQORS.js";import"./chunk-UYVRZAAM.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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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/config.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.287 | (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/detox/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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/home-paths.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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;
|
|
@@ -866,6 +866,7 @@ function compareSemver(a, b) {
|
|
|
866
866
|
}
|
|
867
867
|
|
|
868
868
|
// ../contrast-runtime-delivery/src/index.ts
|
|
869
|
+
var DEFAULT_LOCAL_RUNTIME_RETENTION_COUNT = 2;
|
|
869
870
|
function createRuntimeDelivery(product) {
|
|
870
871
|
function readConfig() {
|
|
871
872
|
try {
|
|
@@ -931,8 +932,10 @@ function createRuntimeDelivery(product) {
|
|
|
931
932
|
const { version, channel, entry } = resolveVersion(manifest, opts);
|
|
932
933
|
const destDir = product.runtimeDir(version);
|
|
933
934
|
const setActive = opts.setActive !== false;
|
|
935
|
+
pruneLocalRetention({ protectVersions: [version] });
|
|
934
936
|
if (!opts.force && import_node_fs4.default.existsSync(import_node_path3.default.join(destDir, product.installedMarker))) {
|
|
935
937
|
if (setActive) product.writeActiveRuntime(version);
|
|
938
|
+
pruneLocalRetention({ protectVersions: [version] });
|
|
936
939
|
return {
|
|
937
940
|
version,
|
|
938
941
|
channel,
|
|
@@ -953,20 +956,19 @@ function createRuntimeDelivery(product) {
|
|
|
953
956
|
await downloadToFile(tarUrl, tarCachePath);
|
|
954
957
|
process.stderr.write(`${product.id}: extracting runtime ${version}\u2026
|
|
955
958
|
`);
|
|
956
|
-
const actualSha = await sha256File(tarCachePath);
|
|
957
|
-
if (actualSha !== entry.sha256) {
|
|
958
|
-
import_node_fs4.default.rmSync(tarCachePath, { force: true });
|
|
959
|
-
throw new Error(
|
|
960
|
-
`sha256 mismatch for runtime ${version}: expected ${entry.sha256}, actual ${actualSha}`
|
|
961
|
-
);
|
|
962
|
-
}
|
|
963
959
|
const tmpDir = import_node_path3.default.join(
|
|
964
960
|
import_node_path3.default.dirname(destDir),
|
|
965
961
|
`.installing-${version}-${process.pid}`
|
|
966
962
|
);
|
|
967
963
|
import_node_fs4.default.rmSync(tmpDir, { recursive: true, force: true });
|
|
968
|
-
import_node_fs4.default.mkdirSync(tmpDir, { recursive: true });
|
|
969
964
|
try {
|
|
965
|
+
const actualSha = await sha256File(tarCachePath);
|
|
966
|
+
if (actualSha !== entry.sha256) {
|
|
967
|
+
throw new Error(
|
|
968
|
+
`sha256 mismatch for runtime ${version}: expected ${entry.sha256}, actual ${actualSha}`
|
|
969
|
+
);
|
|
970
|
+
}
|
|
971
|
+
import_node_fs4.default.mkdirSync(tmpDir, { recursive: true });
|
|
970
972
|
await extractTarball(tarCachePath, tmpDir);
|
|
971
973
|
if (!import_node_fs4.default.existsSync(import_node_path3.default.join(tmpDir, product.installedMarker))) {
|
|
972
974
|
throw new Error(
|
|
@@ -978,8 +980,11 @@ function createRuntimeDelivery(product) {
|
|
|
978
980
|
} catch (err) {
|
|
979
981
|
import_node_fs4.default.rmSync(tmpDir, { recursive: true, force: true });
|
|
980
982
|
throw err;
|
|
983
|
+
} finally {
|
|
984
|
+
import_node_fs4.default.rmSync(tarCachePath, { force: true });
|
|
981
985
|
}
|
|
982
986
|
if (setActive) product.writeActiveRuntime(version);
|
|
987
|
+
pruneLocalRetention({ protectVersions: [version] });
|
|
983
988
|
return {
|
|
984
989
|
version,
|
|
985
990
|
channel,
|
|
@@ -992,6 +997,7 @@ function createRuntimeDelivery(product) {
|
|
|
992
997
|
}
|
|
993
998
|
async function updateToLatest(opts = {}) {
|
|
994
999
|
product.ensureHome();
|
|
1000
|
+
pruneLocalRetention();
|
|
995
1001
|
const cdnOrigin = resolveCdnOrigin(opts.cdnOrigin);
|
|
996
1002
|
const channel = resolveChannel(opts.channel);
|
|
997
1003
|
const pin = resolvePin();
|
|
@@ -1087,6 +1093,63 @@ function createRuntimeDelivery(product) {
|
|
|
1087
1093
|
return { active, latest: null, pinned: null, outdated: false };
|
|
1088
1094
|
}
|
|
1089
1095
|
}
|
|
1096
|
+
function planLocalRetention(opts = {}) {
|
|
1097
|
+
product.ensureHome();
|
|
1098
|
+
const retainVersions = Math.max(
|
|
1099
|
+
1,
|
|
1100
|
+
Math.floor(opts.retainVersions ?? DEFAULT_LOCAL_RUNTIME_RETENTION_COUNT)
|
|
1101
|
+
);
|
|
1102
|
+
const installed = listInstalledRuntimes(product);
|
|
1103
|
+
const installedSet = new Set(installed);
|
|
1104
|
+
const activeVersion = product.readActiveRuntime();
|
|
1105
|
+
const pinnedVersion = resolvePin();
|
|
1106
|
+
const keep = /* @__PURE__ */ new Set();
|
|
1107
|
+
for (const version of [
|
|
1108
|
+
activeVersion,
|
|
1109
|
+
pinnedVersion,
|
|
1110
|
+
...opts.protectVersions ?? []
|
|
1111
|
+
]) {
|
|
1112
|
+
if (version && installedSet.has(version)) keep.add(version);
|
|
1113
|
+
}
|
|
1114
|
+
for (const version of [...installed].reverse()) {
|
|
1115
|
+
if (keep.size >= retainVersions) break;
|
|
1116
|
+
keep.add(version);
|
|
1117
|
+
}
|
|
1118
|
+
const cacheTemplateMarker = "__RUNTIME_VERSION__";
|
|
1119
|
+
const cacheTemplate = runtimeTarballCacheName(product, cacheTemplateMarker);
|
|
1120
|
+
const markerOffset = cacheTemplate.indexOf(cacheTemplateMarker);
|
|
1121
|
+
const cachePrefix = cacheTemplate.slice(0, markerOffset);
|
|
1122
|
+
const cacheSuffix = cacheTemplate.slice(markerOffset + cacheTemplateMarker.length);
|
|
1123
|
+
let removeCacheFiles = [];
|
|
1124
|
+
if (markerOffset >= 0) {
|
|
1125
|
+
try {
|
|
1126
|
+
removeCacheFiles = import_node_fs4.default.readdirSync(product.cacheDir(), { withFileTypes: true }).filter((entry) => {
|
|
1127
|
+
if (!entry.isFile()) return false;
|
|
1128
|
+
const complete = entry.name.startsWith(cachePrefix) && entry.name.endsWith(cacheSuffix);
|
|
1129
|
+
const partial = entry.name.startsWith(cachePrefix) && entry.name.endsWith(`${cacheSuffix}.partial`);
|
|
1130
|
+
return complete || partial;
|
|
1131
|
+
}).map((entry) => import_node_path3.default.join(product.cacheDir(), entry.name)).sort();
|
|
1132
|
+
} catch {
|
|
1133
|
+
}
|
|
1134
|
+
}
|
|
1135
|
+
return {
|
|
1136
|
+
activeVersion,
|
|
1137
|
+
pinnedVersion,
|
|
1138
|
+
keepVersions: installed.filter((version) => keep.has(version)),
|
|
1139
|
+
removeVersions: installed.filter((version) => !keep.has(version)),
|
|
1140
|
+
removeCacheFiles
|
|
1141
|
+
};
|
|
1142
|
+
}
|
|
1143
|
+
function pruneLocalRetention(opts = {}) {
|
|
1144
|
+
const plan = planLocalRetention(opts);
|
|
1145
|
+
for (const version of plan.removeVersions) {
|
|
1146
|
+
import_node_fs4.default.rmSync(product.runtimeDir(version), { recursive: true, force: true });
|
|
1147
|
+
}
|
|
1148
|
+
for (const cacheFile of plan.removeCacheFiles) {
|
|
1149
|
+
import_node_fs4.default.rmSync(cacheFile, { force: true });
|
|
1150
|
+
}
|
|
1151
|
+
return plan;
|
|
1152
|
+
}
|
|
1090
1153
|
return {
|
|
1091
1154
|
product,
|
|
1092
1155
|
resolveCdnOrigin,
|
|
@@ -1099,6 +1162,8 @@ function createRuntimeDelivery(product) {
|
|
|
1099
1162
|
install,
|
|
1100
1163
|
updateToLatest,
|
|
1101
1164
|
checkUpToDate,
|
|
1165
|
+
planLocalRetention,
|
|
1166
|
+
pruneLocalRetention,
|
|
1102
1167
|
listInstalled: () => listInstalledRuntimes(product)
|
|
1103
1168
|
};
|
|
1104
1169
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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/index.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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
package/dist-lib/metro.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.287 | (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/profiles.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.287 | (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/render-mode.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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.
|
|
1
|
+
/*! sootsim v0.1.287 | (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
package/dist-lib/skills.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.287 | (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;
|
|
@@ -11510,8 +11510,10 @@ function createRuntimeDelivery(product) {
|
|
|
11510
11510
|
const { version, channel, entry } = resolveVersion(manifest, opts);
|
|
11511
11511
|
const destDir = product.runtimeDir(version);
|
|
11512
11512
|
const setActive = opts.setActive !== false;
|
|
11513
|
+
pruneLocalRetention({ protectVersions: [version] });
|
|
11513
11514
|
if (!opts.force && import_node_fs4.default.existsSync(import_node_path3.default.join(destDir, product.installedMarker))) {
|
|
11514
11515
|
if (setActive) product.writeActiveRuntime(version);
|
|
11516
|
+
pruneLocalRetention({ protectVersions: [version] });
|
|
11515
11517
|
return {
|
|
11516
11518
|
version,
|
|
11517
11519
|
channel,
|
|
@@ -11532,20 +11534,19 @@ function createRuntimeDelivery(product) {
|
|
|
11532
11534
|
await downloadToFile(tarUrl, tarCachePath);
|
|
11533
11535
|
process.stderr.write(`${product.id}: extracting runtime ${version}\u2026
|
|
11534
11536
|
`);
|
|
11535
|
-
const actualSha = await sha256File(tarCachePath);
|
|
11536
|
-
if (actualSha !== entry.sha256) {
|
|
11537
|
-
import_node_fs4.default.rmSync(tarCachePath, { force: true });
|
|
11538
|
-
throw new Error(
|
|
11539
|
-
`sha256 mismatch for runtime ${version}: expected ${entry.sha256}, actual ${actualSha}`
|
|
11540
|
-
);
|
|
11541
|
-
}
|
|
11542
11537
|
const tmpDir = import_node_path3.default.join(
|
|
11543
11538
|
import_node_path3.default.dirname(destDir),
|
|
11544
11539
|
`.installing-${version}-${process.pid}`
|
|
11545
11540
|
);
|
|
11546
11541
|
import_node_fs4.default.rmSync(tmpDir, { recursive: true, force: true });
|
|
11547
|
-
import_node_fs4.default.mkdirSync(tmpDir, { recursive: true });
|
|
11548
11542
|
try {
|
|
11543
|
+
const actualSha = await sha256File(tarCachePath);
|
|
11544
|
+
if (actualSha !== entry.sha256) {
|
|
11545
|
+
throw new Error(
|
|
11546
|
+
`sha256 mismatch for runtime ${version}: expected ${entry.sha256}, actual ${actualSha}`
|
|
11547
|
+
);
|
|
11548
|
+
}
|
|
11549
|
+
import_node_fs4.default.mkdirSync(tmpDir, { recursive: true });
|
|
11549
11550
|
await extractTarball(tarCachePath, tmpDir);
|
|
11550
11551
|
if (!import_node_fs4.default.existsSync(import_node_path3.default.join(tmpDir, product.installedMarker))) {
|
|
11551
11552
|
throw new Error(
|
|
@@ -11557,8 +11558,11 @@ function createRuntimeDelivery(product) {
|
|
|
11557
11558
|
} catch (err) {
|
|
11558
11559
|
import_node_fs4.default.rmSync(tmpDir, { recursive: true, force: true });
|
|
11559
11560
|
throw err;
|
|
11561
|
+
} finally {
|
|
11562
|
+
import_node_fs4.default.rmSync(tarCachePath, { force: true });
|
|
11560
11563
|
}
|
|
11561
11564
|
if (setActive) product.writeActiveRuntime(version);
|
|
11565
|
+
pruneLocalRetention({ protectVersions: [version] });
|
|
11562
11566
|
return {
|
|
11563
11567
|
version,
|
|
11564
11568
|
channel,
|
|
@@ -11571,6 +11575,7 @@ function createRuntimeDelivery(product) {
|
|
|
11571
11575
|
}
|
|
11572
11576
|
async function updateToLatest(opts = {}) {
|
|
11573
11577
|
product.ensureHome();
|
|
11578
|
+
pruneLocalRetention();
|
|
11574
11579
|
const cdnOrigin = resolveCdnOrigin(opts.cdnOrigin);
|
|
11575
11580
|
const channel = resolveChannel(opts.channel);
|
|
11576
11581
|
const pin = resolvePin();
|
|
@@ -11666,6 +11671,63 @@ function createRuntimeDelivery(product) {
|
|
|
11666
11671
|
return { active, latest: null, pinned: null, outdated: false };
|
|
11667
11672
|
}
|
|
11668
11673
|
}
|
|
11674
|
+
function planLocalRetention(opts = {}) {
|
|
11675
|
+
product.ensureHome();
|
|
11676
|
+
const retainVersions = Math.max(
|
|
11677
|
+
1,
|
|
11678
|
+
Math.floor(opts.retainVersions ?? DEFAULT_LOCAL_RUNTIME_RETENTION_COUNT)
|
|
11679
|
+
);
|
|
11680
|
+
const installed2 = listInstalledRuntimes(product);
|
|
11681
|
+
const installedSet = new Set(installed2);
|
|
11682
|
+
const activeVersion = product.readActiveRuntime();
|
|
11683
|
+
const pinnedVersion = resolvePin();
|
|
11684
|
+
const keep = /* @__PURE__ */ new Set();
|
|
11685
|
+
for (const version of [
|
|
11686
|
+
activeVersion,
|
|
11687
|
+
pinnedVersion,
|
|
11688
|
+
...opts.protectVersions ?? []
|
|
11689
|
+
]) {
|
|
11690
|
+
if (version && installedSet.has(version)) keep.add(version);
|
|
11691
|
+
}
|
|
11692
|
+
for (const version of [...installed2].reverse()) {
|
|
11693
|
+
if (keep.size >= retainVersions) break;
|
|
11694
|
+
keep.add(version);
|
|
11695
|
+
}
|
|
11696
|
+
const cacheTemplateMarker = "__RUNTIME_VERSION__";
|
|
11697
|
+
const cacheTemplate = runtimeTarballCacheName(product, cacheTemplateMarker);
|
|
11698
|
+
const markerOffset = cacheTemplate.indexOf(cacheTemplateMarker);
|
|
11699
|
+
const cachePrefix = cacheTemplate.slice(0, markerOffset);
|
|
11700
|
+
const cacheSuffix = cacheTemplate.slice(markerOffset + cacheTemplateMarker.length);
|
|
11701
|
+
let removeCacheFiles = [];
|
|
11702
|
+
if (markerOffset >= 0) {
|
|
11703
|
+
try {
|
|
11704
|
+
removeCacheFiles = import_node_fs4.default.readdirSync(product.cacheDir(), { withFileTypes: true }).filter((entry) => {
|
|
11705
|
+
if (!entry.isFile()) return false;
|
|
11706
|
+
const complete = entry.name.startsWith(cachePrefix) && entry.name.endsWith(cacheSuffix);
|
|
11707
|
+
const partial = entry.name.startsWith(cachePrefix) && entry.name.endsWith(`${cacheSuffix}.partial`);
|
|
11708
|
+
return complete || partial;
|
|
11709
|
+
}).map((entry) => import_node_path3.default.join(product.cacheDir(), entry.name)).sort();
|
|
11710
|
+
} catch {
|
|
11711
|
+
}
|
|
11712
|
+
}
|
|
11713
|
+
return {
|
|
11714
|
+
activeVersion,
|
|
11715
|
+
pinnedVersion,
|
|
11716
|
+
keepVersions: installed2.filter((version) => keep.has(version)),
|
|
11717
|
+
removeVersions: installed2.filter((version) => !keep.has(version)),
|
|
11718
|
+
removeCacheFiles
|
|
11719
|
+
};
|
|
11720
|
+
}
|
|
11721
|
+
function pruneLocalRetention(opts = {}) {
|
|
11722
|
+
const plan = planLocalRetention(opts);
|
|
11723
|
+
for (const version of plan.removeVersions) {
|
|
11724
|
+
import_node_fs4.default.rmSync(product.runtimeDir(version), { recursive: true, force: true });
|
|
11725
|
+
}
|
|
11726
|
+
for (const cacheFile of plan.removeCacheFiles) {
|
|
11727
|
+
import_node_fs4.default.rmSync(cacheFile, { force: true });
|
|
11728
|
+
}
|
|
11729
|
+
return plan;
|
|
11730
|
+
}
|
|
11669
11731
|
return {
|
|
11670
11732
|
product,
|
|
11671
11733
|
resolveCdnOrigin,
|
|
@@ -11678,6 +11740,8 @@ function createRuntimeDelivery(product) {
|
|
|
11678
11740
|
install,
|
|
11679
11741
|
updateToLatest,
|
|
11680
11742
|
checkUpToDate,
|
|
11743
|
+
planLocalRetention,
|
|
11744
|
+
pruneLocalRetention,
|
|
11681
11745
|
listInstalled: () => listInstalledRuntimes(product)
|
|
11682
11746
|
};
|
|
11683
11747
|
}
|
|
@@ -11723,7 +11787,7 @@ function extractTarball(tarPath, destDir) {
|
|
|
11723
11787
|
});
|
|
11724
11788
|
});
|
|
11725
11789
|
}
|
|
11726
|
-
var import_node_child_process2, import_node_crypto, import_node_fs4, import_node_path3, import_node_stream, import_promises;
|
|
11790
|
+
var import_node_child_process2, import_node_crypto, import_node_fs4, import_node_path3, import_node_stream, import_promises, DEFAULT_LOCAL_RUNTIME_RETENTION_COUNT;
|
|
11727
11791
|
var init_src = __esm({
|
|
11728
11792
|
"../contrast-runtime-delivery/src/index.ts"() {
|
|
11729
11793
|
"use strict";
|
|
@@ -11735,6 +11799,7 @@ var init_src = __esm({
|
|
|
11735
11799
|
import_promises = require("node:stream/promises");
|
|
11736
11800
|
init_product();
|
|
11737
11801
|
init_product();
|
|
11802
|
+
DEFAULT_LOCAL_RUNTIME_RETENTION_COUNT = 2;
|
|
11738
11803
|
}
|
|
11739
11804
|
});
|
|
11740
11805
|
|
|
@@ -17840,6 +17905,7 @@ var init_run_registry = __esm({
|
|
|
17840
17905
|
var init_telemetry = __esm({
|
|
17841
17906
|
"cli/telemetry.ts"() {
|
|
17842
17907
|
"use strict";
|
|
17908
|
+
init_agent_identity();
|
|
17843
17909
|
init_shared_session();
|
|
17844
17910
|
init_home_paths();
|
|
17845
17911
|
}
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.287 | (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
package/scripts/preuninstall.cjs
CHANGED
|
@@ -73,7 +73,9 @@ function rawCleanup() {
|
|
|
73
73
|
const home = sootsimHomeDir()
|
|
74
74
|
if (process.platform === 'darwin') {
|
|
75
75
|
safeSpawn('launchctl', ['bootout', `gui/${getuid()}/dev.sootsim.daemon`])
|
|
76
|
+
safeSpawn('launchctl', ['bootout', `gui/${getuid()}/dev.sootsim.server`])
|
|
76
77
|
safeRemove(path.join(os.homedir(), 'Library/LaunchAgents/dev.sootsim.daemon.plist'))
|
|
78
|
+
safeRemove(path.join(os.homedir(), 'Library/LaunchAgents/dev.sootsim.server.plist'))
|
|
77
79
|
safeRemove(path.join(os.homedir(), 'Library/Logs/sootsim'), {
|
|
78
80
|
recursive: true,
|
|
79
81
|
})
|
package/skills/contrast/SKILL.md
CHANGED
|
@@ -21,6 +21,7 @@ automation, inspecting the render tree, and managing sims.
|
|
|
21
21
|
| --- | --- |
|
|
22
22
|
| `sootsim maestro` | author, generate, and run Maestro YAML flows against sootsim |
|
|
23
23
|
| `sootsim detox` | run existing Detox suites against sootsim on headless Chromium |
|
|
24
|
+
| `sootsim cleanup` | inspect and reclaim local SootSim disk usage |
|
|
24
25
|
| `sootsim record` | capture the live sim as webm/mp4/gif, or sample N png frames (--frames) |
|
|
25
26
|
| `sootsim film` | record a flow on the flat canvas, replay it on the 3d device stage under a camera cinematic, save a clip |
|
|
26
27
|
| `sootsim storage` | manage guest app storage and launch profiles |
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export const DISPOSABLE_BROWSER_CACHE_DIR_NAMES = [
|
|
2
|
+
'Cache',
|
|
3
|
+
'Code Cache',
|
|
4
|
+
'DawnCache',
|
|
5
|
+
'DawnGraphiteCache',
|
|
6
|
+
'DawnWebGPUCache',
|
|
7
|
+
'GPUCache',
|
|
8
|
+
'GrShaderCache',
|
|
9
|
+
'ShaderCache',
|
|
10
|
+
] as const
|
|
11
|
+
|
|
12
|
+
const disposableBrowserCacheDirs = new Set<string>(DISPOSABLE_BROWSER_CACHE_DIR_NAMES)
|
|
13
|
+
|
|
14
|
+
export function isDisposableBrowserCacheDir(name: string): boolean {
|
|
15
|
+
return disposableBrowserCacheDirs.has(name)
|
|
16
|
+
}
|