sootsim 0.1.201 → 0.1.203
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/dist-cli/bin.js +5 -4
- package/dist-cli/chunks/{agent-SHGFOKZN.js → agent-PWM4XT5H.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-3O4ZW24C.js → agent-wrapper-V2BSTANB.js} +2 -2
- package/dist-cli/chunks/{app-fonts-KZOBGGZQ.js → app-fonts-7M4PTF6W.js} +2 -2
- package/dist-cli/chunks/{assert-RZCBKONA.js → assert-SEW5OJL3.js} +2 -2
- package/dist-cli/chunks/{auth-PBD7GLXL.js → auth-3YY55NBL.js} +2 -2
- package/dist-cli/chunks/beta-Y4ZJUKAM.js +2 -0
- package/dist-cli/chunks/{camera-5OOLGGLN.js → camera-CYXCASB3.js} +2 -2
- package/dist-cli/chunks/{chunk-HVSDT56M.js → chunk-4NHPXU3X.js} +1 -1
- package/dist-cli/chunks/{chunk-423YVBZK.js → chunk-62AKBZTO.js} +1 -1
- package/dist-cli/chunks/{chunk-WJ7YQAKC.js → chunk-6DN4BD7O.js} +38 -38
- package/dist-cli/chunks/{chunk-FITJFYBO.js → chunk-6M56UHEY.js} +2 -2
- package/dist-cli/chunks/{chunk-T6WXCSWP.js → chunk-A3FIOG7U.js} +2 -2
- package/dist-cli/chunks/{chunk-7672K2JN.js → chunk-B7VBDZ3U.js} +1 -1
- package/dist-cli/chunks/{chunk-63EDUOKZ.js → chunk-BBOFH45Q.js} +2 -2
- package/dist-cli/chunks/{chunk-SKGV3OSH.js → chunk-BJJXNQHO.js} +2 -2
- package/dist-cli/chunks/{chunk-7GG4TZ4L.js → chunk-BL67OSVN.js} +2 -2
- package/dist-cli/chunks/{chunk-EVCOHQPK.js → chunk-EBH65V62.js} +3 -3
- package/dist-cli/chunks/{chunk-NYNAI5PO.js → chunk-FF3C57T5.js} +2 -2
- package/dist-cli/chunks/{chunk-JEJV3UHZ.js → chunk-FUC7C5HS.js} +2 -2
- package/dist-cli/chunks/{chunk-XAFLM5JS.js → chunk-G5GRLVYA.js} +2 -2
- package/dist-cli/chunks/chunk-G5VOIXM7.js +1 -0
- package/dist-cli/chunks/{chunk-D6CTB275.js → chunk-GMVAXDHH.js} +1 -1
- package/dist-cli/chunks/{chunk-S2AQ4WGX.js → chunk-GTBF3M2H.js} +1 -1
- package/dist-cli/chunks/{chunk-RN662UDP.js → chunk-GYTATFQA.js} +2 -2
- package/dist-cli/chunks/{chunk-AHJ2WJST.js → chunk-JLOAWSX6.js} +1 -1
- package/dist-cli/chunks/{chunk-ENY46QHT.js → chunk-K3CRSIGS.js} +2 -2
- package/dist-cli/chunks/{chunk-SVM25PDV.js → chunk-LKJ5LA6K.js} +6 -6
- package/dist-cli/chunks/{chunk-SZVYOFMB.js → chunk-LTRNOX6N.js} +2 -2
- package/dist-cli/chunks/{chunk-3RAGDMGM.js → chunk-MQHSWXDS.js} +1 -1
- package/dist-cli/chunks/{chunk-SQXH3XGO.js → chunk-NHSO4473.js} +2 -2
- package/dist-cli/chunks/chunk-ODW7RHSD.js +97 -0
- package/dist-cli/chunks/{chunk-FPRZHFV2.js → chunk-OK7QEDHD.js} +2 -2
- package/dist-cli/chunks/{chunk-CHVGDYQJ.js → chunk-OXQOPTTB.js} +1 -1
- package/dist-cli/chunks/{chunk-F5TOTCUW.js → chunk-P4GJL7OH.js} +2 -2
- package/dist-cli/chunks/chunk-PELEQURX.js +4 -0
- package/dist-cli/chunks/chunk-QKDII5UB.js +1 -0
- package/dist-cli/chunks/chunk-R7GIVBTY.js +2 -0
- package/dist-cli/chunks/{chunk-GBUUYMPP.js → chunk-RVOF6RIE.js} +1 -1
- package/dist-cli/chunks/chunk-RZU5TDPJ.js +29 -0
- package/dist-cli/chunks/{chunk-HIWE4YYN.js → chunk-U6OCMLMU.js} +2 -2
- package/dist-cli/chunks/{chunk-MQEEYPOK.js → chunk-UJ64GJSZ.js} +1 -1
- package/dist-cli/chunks/{chunk-YOPEO6SA.js → chunk-UZGLGCLM.js} +1 -1
- package/dist-cli/chunks/{chunk-QTI33DV5.js → chunk-WSOZGPIX.js} +2 -2
- package/dist-cli/chunks/{chunk-CPVTNQAS.js → chunk-WVF2EDZF.js} +1 -1
- package/dist-cli/chunks/{chunk-ZSWQLDDQ.js → chunk-XYMOH3HP.js} +1 -1
- package/dist-cli/chunks/{chunk-WHNPGZX4.js → chunk-YJNJ5GVC.js} +3 -3
- package/dist-cli/chunks/{chunk-USGQNFAM.js → chunk-YP3NIRTK.js} +1 -1
- package/dist-cli/chunks/chunk-ZGM7N2AV.js +7 -0
- package/dist-cli/chunks/{chunk-NIDV74L2.js → chunk-ZRWVLKFL.js} +1 -1
- package/dist-cli/chunks/cli-version-N2RKZ2CU.js +2 -0
- package/dist-cli/chunks/{compat-NNM7DTTO.js → compat-FK5MP535.js} +3 -3
- package/dist-cli/chunks/{config-LBGQRC2P.js → config-T3W2HI67.js} +2 -2
- package/dist-cli/chunks/{control-5DHHQZ26.js → control-ONFLGDEC.js} +2 -2
- package/dist-cli/chunks/daemon-FDI5YYZN.js +2 -0
- package/dist-cli/chunks/{debug-PILWFGN3.js → debug-Z6NG4KY2.js} +3 -3
- package/dist-cli/chunks/{desktop-CZ43IZFV.js → desktop-BIWB2UYC.js} +3 -3
- package/dist-cli/chunks/detox-6K7WFLQO.js +50 -0
- package/dist-cli/chunks/{device-M26JCUHY.js → device-TPD5WAP2.js} +2 -2
- package/dist-cli/chunks/{diagnose-HZZMVPQZ.js → diagnose-NACPOTYX.js} +2 -2
- package/dist-cli/chunks/drivers-G2YZR6G6.js +2 -0
- package/dist-cli/chunks/flow-OAW2MZCD.js +2 -0
- package/dist-cli/chunks/help-MY2CBECX.js +2 -0
- package/dist-cli/chunks/home-paths-WWFDX6YU.js +2 -0
- package/dist-cli/chunks/inspect-ZPVPUSAK.js +2 -0
- package/dist-cli/chunks/install-desktop-QZWSSGJV.js +2 -0
- package/dist-cli/chunks/{login-VBCYZKJ6.js → login-WGCO2V4S.js} +4 -4
- package/dist-cli/chunks/{logout-J22GLKHX.js → logout-VWSSNYF5.js} +2 -2
- package/dist-cli/chunks/maestro-YED424Y6.js +96 -0
- package/dist-cli/chunks/{mode-XN46XIMK.js → mode-QCOM4UM4.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-3KZFUZZD.js +2 -0
- package/dist-cli/chunks/{perf-ZIYESQRA.js → perf-FZHCFAID.js} +2 -2
- package/dist-cli/chunks/{record-L74E3HCL.js → record-NF3PKBSW.js} +3 -3
- package/dist-cli/chunks/runtime-ETELTKFT.js +2 -0
- package/dist-cli/chunks/screenshot-command-KLPOA5TW.js +151 -0
- package/dist-cli/chunks/screenshots-capture-MCTZSXLE.js +41 -0
- package/dist-cli/chunks/{serve-CNDRR7XN.js → serve-XBWYWHMC.js} +18 -18
- package/dist-cli/chunks/{setup-XZDN7XMI.js → setup-W7EROACZ.js} +3 -3
- package/dist-cli/chunks/{skills-KJK67CVB.js → skills-RBGNF7GS.js} +2 -2
- package/dist-cli/chunks/{storage-UOLMRHLQ.js → storage-3SFE2DUE.js} +2 -2
- package/dist-cli/chunks/store-Z3CHVRR3.js +2 -0
- package/dist-cli/chunks/telemetry-SWFOAVWP.js +2 -0
- package/dist-cli/chunks/test-UP6VTFKE.js +69 -0
- package/dist-cli/chunks/{timeline-UJFIJ2GT.js → timeline-A54JB74A.js} +2 -2
- package/dist-cli/chunks/upgrade-H7XE3N76.js +4 -0
- package/dist-cli/chunks/upload-X2BRKPBJ.js +2 -0
- package/dist-cli/chunks/version-4JV7HX23.js +4 -0
- package/dist-cli/chunks/{web-QP4KDHR6.js → web-5OLZXKVF.js} +2 -2
- package/dist-cli/chunks/{what-happened-VW274SXG.js → what-happened-Q4L6SI4I.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 +32 -1
- package/dist-lib/host/bridge-host.cjs +51 -2
- 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 +104 -19
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/src/home-paths.ts +48 -1
- package/src/host/bridge-host.ts +12 -0
- package/src/runtime-delivery.ts +59 -9
- package/dist-cli/chunks/beta-EJBRLRKG.js +0 -2
- package/dist-cli/chunks/chunk-3W273A5J.js +0 -4
- package/dist-cli/chunks/chunk-5GICTRK5.js +0 -1
- package/dist-cli/chunks/chunk-AGSCFR4P.js +0 -27
- package/dist-cli/chunks/chunk-O56GZV3H.js +0 -1
- package/dist-cli/chunks/chunk-ORIISY22.js +0 -6
- package/dist-cli/chunks/chunk-PMPQ57UY.js +0 -92
- package/dist-cli/chunks/cli-version-WTA2LUDV.js +0 -2
- package/dist-cli/chunks/daemon-3KGXTPXJ.js +0 -2
- package/dist-cli/chunks/detox-D6XW7Y4V.js +0 -49
- package/dist-cli/chunks/drivers-7ZM3KW22.js +0 -2
- package/dist-cli/chunks/flow-DDDWJ4KD.js +0 -2
- package/dist-cli/chunks/help-23GXSWP3.js +0 -2
- package/dist-cli/chunks/home-paths-746ZDH2I.js +0 -2
- package/dist-cli/chunks/inspect-T37ALZRL.js +0 -2
- package/dist-cli/chunks/install-desktop-FSY2ND5S.js +0 -2
- package/dist-cli/chunks/maestro-5LWJ2S6K.js +0 -96
- package/dist-cli/chunks/optional-demo-registry-YF4W5LPU.js +0 -2
- package/dist-cli/chunks/runtime-7WSR27U6.js +0 -2
- package/dist-cli/chunks/screenshot-command-ZCI5QE4T.js +0 -190
- package/dist-cli/chunks/store-FGCNPJBA.js +0 -2
- package/dist-cli/chunks/telemetry-QEO7INJC.js +0 -2
- package/dist-cli/chunks/test-5DK2XCRU.js +0 -69
- package/dist-cli/chunks/upgrade-CXZFJIH7.js +0 -4
- package/dist-cli/chunks/upload-ZFINR6K3.js +0 -2
- package/dist-cli/chunks/version-XMSYOSAX.js +0 -4
|
@@ -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.203 | (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-XYMOH3HP.js";import{g as A,i as _}from"./chunk-U6OCMLMU.js";import"./chunk-JLOAWSX6.js";import{b as k}from"./chunk-OXQOPTTB.js";import"./chunk-ZGM7N2AV.js";import"./chunk-ZRWVLKFL.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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -44,6 +44,7 @@ __export(home_paths_exports, {
|
|
|
44
44
|
claimDaemonLockfile: () => claimDaemonLockfile,
|
|
45
45
|
compareSemver: () => compareSemver,
|
|
46
46
|
configFilePath: () => configFilePath,
|
|
47
|
+
consumeRuntimeUpgradeNotice: () => consumeRuntimeUpgradeNotice,
|
|
47
48
|
daemonAppBundlePath: () => daemonAppBundlePath,
|
|
48
49
|
daemonAppDir: () => daemonAppDir,
|
|
49
50
|
daemonAppLauncherPath: () => daemonAppLauncherPath,
|
|
@@ -68,12 +69,14 @@ __export(home_paths_exports, {
|
|
|
68
69
|
removeDaemonLockfile: () => removeDaemonLockfile,
|
|
69
70
|
removeDevBridgeLockfile: () => removeDevBridgeLockfile,
|
|
70
71
|
runtimeDir: () => runtimeDir,
|
|
72
|
+
runtimeUpgradeNoticePath: () => runtimeUpgradeNoticePath,
|
|
71
73
|
runtimesDir: () => runtimesDir,
|
|
72
74
|
shouldSkipPersistentDaemon: () => shouldSkipPersistentDaemon,
|
|
73
75
|
sootsimHomeDir: () => sootsimHomeDir,
|
|
74
76
|
writeActiveRuntime: () => writeActiveRuntime,
|
|
75
77
|
writeDaemonLockfile: () => writeDaemonLockfile,
|
|
76
78
|
writeDevBridgeLockfile: () => writeDevBridgeLockfile,
|
|
79
|
+
writeRuntimeUpgradeNotice: () => writeRuntimeUpgradeNotice,
|
|
77
80
|
writeSharedConfig: () => writeSharedConfig,
|
|
78
81
|
writeTelemetryEnabled: () => writeTelemetryEnabled
|
|
79
82
|
});
|
|
@@ -194,6 +197,31 @@ function readOrCreateAnonymousId() {
|
|
|
194
197
|
function writeTelemetryEnabled(enabled) {
|
|
195
198
|
writeSharedConfig({ telemetry: enabled });
|
|
196
199
|
}
|
|
200
|
+
function runtimeUpgradeNoticePath() {
|
|
201
|
+
return import_node_path.default.join(sootsimHomeDir(), "runtime-upgraded.json");
|
|
202
|
+
}
|
|
203
|
+
function writeRuntimeUpgradeNotice(notice) {
|
|
204
|
+
ensureSootsimHome();
|
|
205
|
+
const tmp = `${runtimeUpgradeNoticePath()}.tmp`;
|
|
206
|
+
import_node_fs.default.writeFileSync(tmp, `${JSON.stringify(notice)}
|
|
207
|
+
`, "utf8");
|
|
208
|
+
import_node_fs.default.renameSync(tmp, runtimeUpgradeNoticePath());
|
|
209
|
+
}
|
|
210
|
+
function consumeRuntimeUpgradeNotice() {
|
|
211
|
+
try {
|
|
212
|
+
const raw = import_node_fs.default.readFileSync(runtimeUpgradeNoticePath(), "utf8");
|
|
213
|
+
import_node_fs.default.unlinkSync(runtimeUpgradeNoticePath());
|
|
214
|
+
const parsed = JSON.parse(raw);
|
|
215
|
+
if (typeof parsed?.to !== "string" || !parsed.to) return null;
|
|
216
|
+
return {
|
|
217
|
+
from: typeof parsed.from === "string" ? parsed.from : null,
|
|
218
|
+
to: parsed.to,
|
|
219
|
+
at: typeof parsed.at === "number" ? parsed.at : 0
|
|
220
|
+
};
|
|
221
|
+
} catch {
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
197
225
|
function ensureSootsimHome() {
|
|
198
226
|
import_node_fs.default.mkdirSync(sootsimHomeDir(), { recursive: true });
|
|
199
227
|
import_node_fs.default.mkdirSync(runtimesDir(), { recursive: true });
|
|
@@ -360,6 +388,7 @@ function removeDevBridgeLockfile() {
|
|
|
360
388
|
claimDaemonLockfile,
|
|
361
389
|
compareSemver,
|
|
362
390
|
configFilePath,
|
|
391
|
+
consumeRuntimeUpgradeNotice,
|
|
363
392
|
daemonAppBundlePath,
|
|
364
393
|
daemonAppDir,
|
|
365
394
|
daemonAppLauncherPath,
|
|
@@ -384,12 +413,14 @@ function removeDevBridgeLockfile() {
|
|
|
384
413
|
removeDaemonLockfile,
|
|
385
414
|
removeDevBridgeLockfile,
|
|
386
415
|
runtimeDir,
|
|
416
|
+
runtimeUpgradeNoticePath,
|
|
387
417
|
runtimesDir,
|
|
388
418
|
shouldSkipPersistentDaemon,
|
|
389
419
|
sootsimHomeDir,
|
|
390
420
|
writeActiveRuntime,
|
|
391
421
|
writeDaemonLockfile,
|
|
392
422
|
writeDevBridgeLockfile,
|
|
423
|
+
writeRuntimeUpgradeNotice,
|
|
393
424
|
writeSharedConfig,
|
|
394
425
|
writeTelemetryEnabled
|
|
395
426
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.203 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
let __sootsim_import_meta_url = ''; try { __sootsim_import_meta_url = require('url').pathToFileURL(__filename).href; } catch {}
|
|
3
3
|
"use strict";
|
|
4
4
|
var __create = Object.create;
|
|
@@ -662,6 +662,16 @@ function writeSharedConfig(patch) {
|
|
|
662
662
|
import_node_fs2.default.renameSync(tmp, configFilePath());
|
|
663
663
|
return next;
|
|
664
664
|
}
|
|
665
|
+
function runtimeUpgradeNoticePath() {
|
|
666
|
+
return import_node_path.default.join(sootsimHomeDir(), "runtime-upgraded.json");
|
|
667
|
+
}
|
|
668
|
+
function writeRuntimeUpgradeNotice(notice) {
|
|
669
|
+
ensureSootsimHome();
|
|
670
|
+
const tmp = `${runtimeUpgradeNoticePath()}.tmp`;
|
|
671
|
+
import_node_fs2.default.writeFileSync(tmp, `${JSON.stringify(notice)}
|
|
672
|
+
`, "utf8");
|
|
673
|
+
import_node_fs2.default.renameSync(tmp, runtimeUpgradeNoticePath());
|
|
674
|
+
}
|
|
665
675
|
function ensureSootsimHome() {
|
|
666
676
|
import_node_fs2.default.mkdirSync(sootsimHomeDir(), { recursive: true });
|
|
667
677
|
import_node_fs2.default.mkdirSync(runtimesDir(), { recursive: true });
|
|
@@ -825,6 +835,7 @@ var import_promises = require("stream/promises");
|
|
|
825
835
|
var DEFAULT_RUNTIME_CDN_ORIGIN = "https://sootbean.com";
|
|
826
836
|
var RUNTIME_CDN_ORIGIN_ENV = "SOOTSIM_CDN_ORIGIN";
|
|
827
837
|
var RUNTIME_CHANNEL_ENV = "SOOTSIM_RUNTIME_CHANNEL";
|
|
838
|
+
var RUNTIME_PIN_ENV = "SOOTSIM_RUNTIME_VERSION";
|
|
828
839
|
function readConfig() {
|
|
829
840
|
try {
|
|
830
841
|
const parsed = JSON.parse(import_fs2.default.readFileSync(configFilePath(), "utf8"));
|
|
@@ -842,6 +853,12 @@ function resolveRuntimeChannel(input) {
|
|
|
842
853
|
const config = readConfig();
|
|
843
854
|
return input || process.env[RUNTIME_CHANNEL_ENV] || config.runtimeChannel || "stable";
|
|
844
855
|
}
|
|
856
|
+
function resolveRuntimePin() {
|
|
857
|
+
const env = process.env[RUNTIME_PIN_ENV];
|
|
858
|
+
if (env && env.trim()) return env.trim();
|
|
859
|
+
const config = readConfig();
|
|
860
|
+
return typeof config.runtimeVersion === "string" && config.runtimeVersion.trim() ? config.runtimeVersion.trim() : null;
|
|
861
|
+
}
|
|
845
862
|
function runtimeManifestUrl(cdnOrigin) {
|
|
846
863
|
const url = new URL(`${resolveRuntimeCdnOrigin(cdnOrigin)}/runtimes/manifest.json`);
|
|
847
864
|
url.searchParams.set("t", String(Date.now()));
|
|
@@ -860,7 +877,7 @@ async function fetchRuntimeManifest(cdnOrigin) {
|
|
|
860
877
|
}
|
|
861
878
|
function resolveRuntimeVersion(manifest, opts = {}) {
|
|
862
879
|
const channel = resolveRuntimeChannel(opts.channel);
|
|
863
|
-
const version = opts.version || manifest.channels[channel]?.latest;
|
|
880
|
+
const version = opts.version || resolveRuntimePin() || manifest.channels[channel]?.latest;
|
|
864
881
|
if (!version) {
|
|
865
882
|
throw new Error(
|
|
866
883
|
`no version specified and channel '${channel}' has no latest entry in the manifest`
|
|
@@ -936,6 +953,29 @@ async function updateRuntimeToLatest(opts = {}) {
|
|
|
936
953
|
ensureSootsimHome();
|
|
937
954
|
const cdnOrigin = resolveRuntimeCdnOrigin(opts.cdnOrigin);
|
|
938
955
|
const channel = resolveRuntimeChannel(opts.channel);
|
|
956
|
+
const pin = resolveRuntimePin();
|
|
957
|
+
if (pin) {
|
|
958
|
+
const activeVersion2 = readActiveRuntime();
|
|
959
|
+
const pinInstalled = import_fs2.default.existsSync(import_path2.default.join(runtimeDir(pin), "index.html"));
|
|
960
|
+
if (activeVersion2 === pin && pinInstalled) {
|
|
961
|
+
return {
|
|
962
|
+
checked: true,
|
|
963
|
+
updated: false,
|
|
964
|
+
reason: `runtime is pinned to ${pin}`,
|
|
965
|
+
activeVersion: activeVersion2,
|
|
966
|
+
latestVersion: pin
|
|
967
|
+
};
|
|
968
|
+
}
|
|
969
|
+
const install2 = await installRuntime({ version: pin, channel, cdnOrigin, setActive: false });
|
|
970
|
+
return {
|
|
971
|
+
checked: true,
|
|
972
|
+
updated: true,
|
|
973
|
+
reason: `runtime is pinned to ${pin}`,
|
|
974
|
+
activeVersion: pin,
|
|
975
|
+
latestVersion: pin,
|
|
976
|
+
install: install2
|
|
977
|
+
};
|
|
978
|
+
}
|
|
939
979
|
const manifest = await fetchRuntimeManifest(cdnOrigin);
|
|
940
980
|
const latestVersion = manifest.channels[channel]?.latest;
|
|
941
981
|
if (!latestVersion) {
|
|
@@ -3745,9 +3785,18 @@ var SootSimBridgeHost = class _SootSimBridgeHost {
|
|
|
3745
3785
|
}
|
|
3746
3786
|
return;
|
|
3747
3787
|
}
|
|
3788
|
+
const previousVersion = this.activeRuntimeVersion;
|
|
3748
3789
|
const active = this.setActiveRuntime(result.latestVersion);
|
|
3749
3790
|
process.stderr.write(`sootsim runtime updated to ${active.version} (${reason})
|
|
3750
3791
|
`);
|
|
3792
|
+
try {
|
|
3793
|
+
writeRuntimeUpgradeNotice({
|
|
3794
|
+
from: previousVersion,
|
|
3795
|
+
to: active.version,
|
|
3796
|
+
at: Date.now()
|
|
3797
|
+
});
|
|
3798
|
+
} catch {
|
|
3799
|
+
}
|
|
3751
3800
|
} catch (err) {
|
|
3752
3801
|
process.stderr.write(
|
|
3753
3802
|
`sootsim runtime update failed (${reason}): ${err instanceof Error ? err.message : String(err)}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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.203 | (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;
|
|
@@ -10635,6 +10635,16 @@ function writeSharedConfig(patch) {
|
|
|
10635
10635
|
import_node_fs2.default.renameSync(tmp, configFilePath());
|
|
10636
10636
|
return next;
|
|
10637
10637
|
}
|
|
10638
|
+
function runtimeUpgradeNoticePath() {
|
|
10639
|
+
return import_node_path.default.join(sootsimHomeDir(), "runtime-upgraded.json");
|
|
10640
|
+
}
|
|
10641
|
+
function writeRuntimeUpgradeNotice(notice) {
|
|
10642
|
+
ensureSootsimHome();
|
|
10643
|
+
const tmp = `${runtimeUpgradeNoticePath()}.tmp`;
|
|
10644
|
+
import_node_fs2.default.writeFileSync(tmp, `${JSON.stringify(notice)}
|
|
10645
|
+
`, "utf8");
|
|
10646
|
+
import_node_fs2.default.renameSync(tmp, runtimeUpgradeNoticePath());
|
|
10647
|
+
}
|
|
10638
10648
|
function ensureSootsimHome() {
|
|
10639
10649
|
import_node_fs2.default.mkdirSync(sootsimHomeDir(), { recursive: true });
|
|
10640
10650
|
import_node_fs2.default.mkdirSync(runtimesDir(), { recursive: true });
|
|
@@ -10856,6 +10866,12 @@ function resolveRuntimeChannel(input) {
|
|
|
10856
10866
|
const config = readConfig();
|
|
10857
10867
|
return input || process.env[RUNTIME_CHANNEL_ENV] || config.runtimeChannel || "stable";
|
|
10858
10868
|
}
|
|
10869
|
+
function resolveRuntimePin() {
|
|
10870
|
+
const env = process.env[RUNTIME_PIN_ENV];
|
|
10871
|
+
if (env && env.trim()) return env.trim();
|
|
10872
|
+
const config = readConfig();
|
|
10873
|
+
return typeof config.runtimeVersion === "string" && config.runtimeVersion.trim() ? config.runtimeVersion.trim() : null;
|
|
10874
|
+
}
|
|
10859
10875
|
function runtimeManifestUrl(cdnOrigin) {
|
|
10860
10876
|
const url = new URL(`${resolveRuntimeCdnOrigin(cdnOrigin)}/runtimes/manifest.json`);
|
|
10861
10877
|
url.searchParams.set("t", String(Date.now()));
|
|
@@ -10874,7 +10890,7 @@ async function fetchRuntimeManifest(cdnOrigin) {
|
|
|
10874
10890
|
}
|
|
10875
10891
|
function resolveRuntimeVersion(manifest, opts = {}) {
|
|
10876
10892
|
const channel = resolveRuntimeChannel(opts.channel);
|
|
10877
|
-
const version = opts.version || manifest.channels[channel]?.latest;
|
|
10893
|
+
const version = opts.version || resolveRuntimePin() || manifest.channels[channel]?.latest;
|
|
10878
10894
|
if (!version) {
|
|
10879
10895
|
throw new Error(
|
|
10880
10896
|
`no version specified and channel '${channel}' has no latest entry in the manifest`
|
|
@@ -10950,6 +10966,29 @@ async function updateRuntimeToLatest(opts = {}) {
|
|
|
10950
10966
|
ensureSootsimHome();
|
|
10951
10967
|
const cdnOrigin = resolveRuntimeCdnOrigin(opts.cdnOrigin);
|
|
10952
10968
|
const channel = resolveRuntimeChannel(opts.channel);
|
|
10969
|
+
const pin = resolveRuntimePin();
|
|
10970
|
+
if (pin) {
|
|
10971
|
+
const activeVersion2 = readActiveRuntime();
|
|
10972
|
+
const pinInstalled = import_fs2.default.existsSync(import_path2.default.join(runtimeDir(pin), "index.html"));
|
|
10973
|
+
if (activeVersion2 === pin && pinInstalled) {
|
|
10974
|
+
return {
|
|
10975
|
+
checked: true,
|
|
10976
|
+
updated: false,
|
|
10977
|
+
reason: `runtime is pinned to ${pin}`,
|
|
10978
|
+
activeVersion: activeVersion2,
|
|
10979
|
+
latestVersion: pin
|
|
10980
|
+
};
|
|
10981
|
+
}
|
|
10982
|
+
const install2 = await installRuntime({ version: pin, channel, cdnOrigin, setActive: false });
|
|
10983
|
+
return {
|
|
10984
|
+
checked: true,
|
|
10985
|
+
updated: true,
|
|
10986
|
+
reason: `runtime is pinned to ${pin}`,
|
|
10987
|
+
activeVersion: pin,
|
|
10988
|
+
latestVersion: pin,
|
|
10989
|
+
install: install2
|
|
10990
|
+
};
|
|
10991
|
+
}
|
|
10953
10992
|
const manifest = await fetchRuntimeManifest(cdnOrigin);
|
|
10954
10993
|
const latestVersion = manifest.channels[channel]?.latest;
|
|
10955
10994
|
if (!latestVersion) {
|
|
@@ -11039,7 +11078,7 @@ function extractTarball(tarPath, destDir) {
|
|
|
11039
11078
|
});
|
|
11040
11079
|
});
|
|
11041
11080
|
}
|
|
11042
|
-
var import_child_process2, import_crypto, import_fs2, import_path2, import_stream, import_promises, DEFAULT_RUNTIME_CDN_ORIGIN, RUNTIME_CDN_ORIGIN_ENV, RUNTIME_CHANNEL_ENV;
|
|
11081
|
+
var import_child_process2, import_crypto, import_fs2, import_path2, import_stream, import_promises, DEFAULT_RUNTIME_CDN_ORIGIN, RUNTIME_CDN_ORIGIN_ENV, RUNTIME_CHANNEL_ENV, RUNTIME_PIN_ENV;
|
|
11043
11082
|
var init_runtime_delivery = __esm({
|
|
11044
11083
|
"src/runtime-delivery.ts"() {
|
|
11045
11084
|
"use strict";
|
|
@@ -11053,6 +11092,7 @@ var init_runtime_delivery = __esm({
|
|
|
11053
11092
|
DEFAULT_RUNTIME_CDN_ORIGIN = "https://sootbean.com";
|
|
11054
11093
|
RUNTIME_CDN_ORIGIN_ENV = "SOOTSIM_CDN_ORIGIN";
|
|
11055
11094
|
RUNTIME_CHANNEL_ENV = "SOOTSIM_RUNTIME_CHANNEL";
|
|
11095
|
+
RUNTIME_PIN_ENV = "SOOTSIM_RUNTIME_VERSION";
|
|
11056
11096
|
}
|
|
11057
11097
|
});
|
|
11058
11098
|
|
|
@@ -13867,9 +13907,18 @@ var init_bridge_host = __esm({
|
|
|
13867
13907
|
}
|
|
13868
13908
|
return;
|
|
13869
13909
|
}
|
|
13910
|
+
const previousVersion = this.activeRuntimeVersion;
|
|
13870
13911
|
const active = this.setActiveRuntime(result.latestVersion);
|
|
13871
13912
|
process.stderr.write(`sootsim runtime updated to ${active.version} (${reason})
|
|
13872
13913
|
`);
|
|
13914
|
+
try {
|
|
13915
|
+
writeRuntimeUpgradeNotice({
|
|
13916
|
+
from: previousVersion,
|
|
13917
|
+
to: active.version,
|
|
13918
|
+
at: Date.now()
|
|
13919
|
+
});
|
|
13920
|
+
} catch {
|
|
13921
|
+
}
|
|
13873
13922
|
} catch (err) {
|
|
13874
13923
|
process.stderr.write(
|
|
13875
13924
|
`sootsim runtime update failed (${reason}): ${err instanceof Error ? err.message : String(err)}
|
|
@@ -18659,6 +18708,9 @@ var init_bridge_flow_runner = __esm({
|
|
|
18659
18708
|
throw new Error(`unsupported flow step: ${JSON.stringify(step)}`);
|
|
18660
18709
|
}
|
|
18661
18710
|
}
|
|
18711
|
+
// live progress reporter (shell devtools "test" tab). attached by
|
|
18712
|
+
// runFlowPlayback; absent for programmatic callers.
|
|
18713
|
+
liveStatus = null;
|
|
18662
18714
|
async runFlow(steps) {
|
|
18663
18715
|
const onStart = [];
|
|
18664
18716
|
const onComplete = [];
|
|
@@ -18675,6 +18727,15 @@ var init_bridge_flow_runner = __esm({
|
|
|
18675
18727
|
}
|
|
18676
18728
|
body.push(step);
|
|
18677
18729
|
}
|
|
18730
|
+
if (this.liveStatus) {
|
|
18731
|
+
await this.liveStatus.plan(
|
|
18732
|
+
body.map((rawStep, index) => {
|
|
18733
|
+
const step = typeof rawStep === "string" ? normalizeBareStringStep(rawStep) : rawStep;
|
|
18734
|
+
const name = Object.keys(step).find((k) => k !== "when") ?? Object.keys(step)[0];
|
|
18735
|
+
return { index, name, target: this.flowStepTargetLabel(step, name) };
|
|
18736
|
+
})
|
|
18737
|
+
);
|
|
18738
|
+
}
|
|
18678
18739
|
if (onStart.length > 0) {
|
|
18679
18740
|
console.log(`[flow] onFlowStart (${onStart.length} steps)`);
|
|
18680
18741
|
for (let i = 0; i < onStart.length; i++) {
|
|
@@ -18707,23 +18768,47 @@ var init_bridge_flow_runner = __esm({
|
|
|
18707
18768
|
const explicitWait = typeof step.wait === "number" ? step.wait : 0;
|
|
18708
18769
|
const waitForTimeout = typeof step.waitFor?.timeout === "number" ? step.waitFor.timeout : 0;
|
|
18709
18770
|
const stepCeiling = Math.max(6e4, explicitWait + 15e3, waitForTimeout + 15e3);
|
|
18710
|
-
if (
|
|
18711
|
-
await this.
|
|
18712
|
-
|
|
18713
|
-
}
|
|
18714
|
-
|
|
18715
|
-
|
|
18716
|
-
|
|
18717
|
-
|
|
18718
|
-
|
|
18719
|
-
|
|
18720
|
-
|
|
18771
|
+
if (this.liveStatus) {
|
|
18772
|
+
await this.liveStatus.waitWhilePaused();
|
|
18773
|
+
await this.liveStatus.step(i, "running");
|
|
18774
|
+
}
|
|
18775
|
+
const liveStartedAtMs = Date.now();
|
|
18776
|
+
const reportOutcome = async (failed, error) => {
|
|
18777
|
+
if (!this.liveStatus) return;
|
|
18778
|
+
const last = this.flowTraceSteps[this.flowTraceSteps.length - 1];
|
|
18779
|
+
const traced = last && last.stepIndex === i && last.startedAtMs >= liveStartedAtMs;
|
|
18780
|
+
await this.liveStatus.step(
|
|
18781
|
+
i,
|
|
18782
|
+
failed ? "failure" : traced && last.status === "skipped" ? "skipped" : "success",
|
|
18783
|
+
{
|
|
18784
|
+
durationMs: Date.now() - liveStartedAtMs,
|
|
18785
|
+
error: failed ? error instanceof Error ? error.message.slice(0, 300) : String(error).slice(0, 300) : traced && last.error || void 0
|
|
18786
|
+
}
|
|
18787
|
+
);
|
|
18788
|
+
};
|
|
18789
|
+
try {
|
|
18790
|
+
if (step.runFlow || step.launchApp) {
|
|
18791
|
+
await this.runStep(step, i);
|
|
18792
|
+
} else {
|
|
18793
|
+
await Promise.race([
|
|
18794
|
+
this.runStep(step, i),
|
|
18795
|
+
new Promise(
|
|
18796
|
+
(_, reject) => setTimeout(
|
|
18797
|
+
() => reject(
|
|
18798
|
+
new Error(
|
|
18799
|
+
`step ${i + 1} (${Object.keys(step)[0]}) exceeded ${stepCeiling}ms deadline`
|
|
18800
|
+
)
|
|
18801
|
+
),
|
|
18802
|
+
stepCeiling
|
|
18721
18803
|
)
|
|
18722
|
-
)
|
|
18723
|
-
|
|
18724
|
-
|
|
18725
|
-
|
|
18726
|
-
|
|
18804
|
+
)
|
|
18805
|
+
]);
|
|
18806
|
+
}
|
|
18807
|
+
} catch (error) {
|
|
18808
|
+
await reportOutcome(true, error);
|
|
18809
|
+
throw error;
|
|
18810
|
+
}
|
|
18811
|
+
await reportOutcome(false);
|
|
18727
18812
|
}
|
|
18728
18813
|
}
|
|
18729
18814
|
};
|
package/dist-lib/vite.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.203 | (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