sootsim 0.1.268 → 0.1.270
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 +7 -3
- package/detox/index.ts +5 -2
- package/dist-cli/bin.js +4 -4
- package/dist-cli/chunks/{agent-KQSZFG6R.js → agent-4YXUPSJ2.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-DLDQVS7O.js → agent-wrapper-BMJPWHWK.js} +2 -2
- package/dist-cli/chunks/{app-fonts-6XVNNHAB.js → app-fonts-EDRH6ETC.js} +2 -2
- package/dist-cli/chunks/{assert-DLGUW4JS.js → assert-CRDV324D.js} +2 -2
- package/dist-cli/chunks/{auth-MTSJWWMS.js → auth-WYRQIJEN.js} +2 -2
- package/dist-cli/chunks/beta-NBANSL2S.js +2 -0
- package/dist-cli/chunks/{camera-MGJUBHWZ.js → camera-5TO6IVBP.js} +3 -3
- package/dist-cli/chunks/{chunk-LJGOZ77E.js → chunk-2J3E5TPS.js} +1 -1
- package/dist-cli/chunks/{chunk-GUXMUE5A.js → chunk-3VIMSXQZ.js} +2 -2
- package/dist-cli/chunks/{chunk-YUDUKMJV.js → chunk-3ZOF2BTJ.js} +1 -1
- package/dist-cli/chunks/{chunk-RCU4A7LU.js → chunk-44ISBOEK.js} +3 -3
- package/dist-cli/chunks/{chunk-F7DMZRQX.js → chunk-4HPWZVBS.js} +1 -1
- package/dist-cli/chunks/{chunk-K5ZMEBMQ.js → chunk-557IYHPC.js} +1 -1
- package/dist-cli/chunks/{chunk-RG6QF6DY.js → chunk-5IHDZOMR.js} +1 -1
- package/dist-cli/chunks/{chunk-XIBSRCKK.js → chunk-6CI73D3X.js} +2 -2
- package/dist-cli/chunks/chunk-6JLIPPNB.js +2 -0
- package/dist-cli/chunks/{chunk-YMTVQA6W.js → chunk-74HIBIJQ.js} +4 -4
- package/dist-cli/chunks/{chunk-6TXGR4HK.js → chunk-ABSUFSOH.js} +2 -2
- package/dist-cli/chunks/{chunk-NPSDN7D7.js → chunk-AG563BSO.js} +2 -2
- package/dist-cli/chunks/{chunk-IWJTCFAE.js → chunk-AMA3YGJ5.js} +2 -2
- package/dist-cli/chunks/{chunk-EG3JCOGS.js → chunk-AMVYE3F4.js} +2 -2
- package/dist-cli/chunks/{chunk-LOOHTTDV.js → chunk-B5IBLYEO.js} +3 -3
- package/dist-cli/chunks/{chunk-M2LYCMW4.js → chunk-DCJXHSIA.js} +2 -2
- package/dist-cli/chunks/{chunk-ITQ7WKNC.js → chunk-ERXCR7NU.js} +2 -2
- package/dist-cli/chunks/{chunk-KR4LGQWN.js → chunk-FCMEOOQE.js} +2 -2
- package/dist-cli/chunks/{chunk-YNMYUJYR.js → chunk-FHPXOPMC.js} +2 -2
- package/dist-cli/chunks/{chunk-V27FSRID.js → chunk-FNBFRG64.js} +1 -1
- package/dist-cli/chunks/{chunk-5JH5F4TM.js → chunk-GAYG7AO4.js} +1 -1
- package/dist-cli/chunks/chunk-GQDQO3KU.js +5 -0
- package/dist-cli/chunks/{chunk-JERNRAFO.js → chunk-HWGKGIWE.js} +2 -2
- package/dist-cli/chunks/{chunk-YLMP3AEX.js → chunk-IIXRM6BB.js} +2 -2
- package/dist-cli/chunks/{chunk-EPKHW3XW.js → chunk-LHMVSKKD.js} +3 -3
- package/dist-cli/chunks/chunk-M32JVXHU.js +5 -0
- package/dist-cli/chunks/{chunk-FGKDYXO3.js → chunk-M5VURHXD.js} +1 -1
- package/dist-cli/chunks/{chunk-6YB3URLB.js → chunk-MD24VVKT.js} +2 -2
- package/dist-cli/chunks/{chunk-CWC7QMVM.js → chunk-MYBY7OHL.js} +1 -1
- package/dist-cli/chunks/{chunk-7XWLSCXZ.js → chunk-NTO6SKS5.js} +1 -1
- package/dist-cli/chunks/{chunk-H2WCONSC.js → chunk-OUKH6UGN.js} +1 -1
- package/dist-cli/chunks/{chunk-OOVGROTR.js → chunk-PDFKRVDC.js} +1 -1
- package/dist-cli/chunks/{chunk-74QJWGDX.js → chunk-SDKIUJUO.js} +2 -2
- package/dist-cli/chunks/chunk-SLR3HWMB.js +13 -0
- package/dist-cli/chunks/{chunk-WUOPQL2J.js → chunk-SW5HZ5LK.js} +1 -1
- package/dist-cli/chunks/{chunk-WT3OYHU7.js → chunk-TIONGRTA.js} +3 -3
- package/dist-cli/chunks/{chunk-EH3A54PO.js → chunk-TLNGREAA.js} +2 -2
- package/dist-cli/chunks/{chunk-5MIRQ65V.js → chunk-TMWNOQAA.js} +1 -1
- package/dist-cli/chunks/{chunk-3MZJ2KVR.js → chunk-TZH4VH32.js} +3 -3
- package/dist-cli/chunks/{chunk-FGY5ESGU.js → chunk-UPRCATUH.js} +2 -2
- package/dist-cli/chunks/chunk-XTTXSDDA.js +1 -0
- package/dist-cli/chunks/{chunk-ZTOWO5CK.js → chunk-YKK2QUGO.js} +1 -1
- package/dist-cli/chunks/{chunk-SV6D5FXN.js → chunk-ZTKDHPA6.js} +2 -2
- package/dist-cli/chunks/chunk-ZZH2AFPJ.js +1 -0
- package/dist-cli/chunks/cli-version-BLKUTVJ2.js +2 -0
- package/dist-cli/chunks/{compat-IVBKZVGH.js → compat-IZEDAAUW.js} +3 -3
- package/dist-cli/chunks/{config-PQ3KBTIM.js → config-I4CXZ6M7.js} +2 -2
- package/dist-cli/chunks/{control-BKTYM5XP.js → control-DVF7UL5D.js} +2 -2
- package/dist-cli/chunks/daemon-FPKQPSSY.js +2 -0
- package/dist-cli/chunks/{debug-HRR2LK2J.js → debug-5X2F2WRP.js} +3 -3
- package/dist-cli/chunks/{desktop-466O4AQA.js → desktop-JHEYQZGF.js} +3 -3
- package/dist-cli/chunks/{detox-UH44KHQJ.js → detox-W64UENQG.js} +2 -2
- package/dist-cli/chunks/{device-FZLXTC3W.js → device-ZBSW2EHS.js} +2 -2
- package/dist-cli/chunks/{diagnose-RJMRI27P.js → diagnose-WER4X3P5.js} +2 -2
- package/dist-cli/chunks/drivers-6P53DLMM.js +2 -0
- package/dist-cli/chunks/{film-VL66UAM3.js → film-TIXNUTR6.js} +3 -3
- package/dist-cli/chunks/flow-53XFDYLL.js +2 -0
- package/dist-cli/chunks/help-MPYJLD7I.js +2 -0
- package/dist-cli/chunks/{hidden-runtime-alias-3ZAR7GCH.js → hidden-runtime-alias-R3JH3INM.js} +2 -2
- package/dist-cli/chunks/{home-paths-S2GRJWV3.js → home-paths-CNNARPCT.js} +2 -2
- package/dist-cli/chunks/inspect-JBDDYUA5.js +2 -0
- package/dist-cli/chunks/install-desktop-BBP7AMK4.js +2 -0
- package/dist-cli/chunks/{login-TR3YAEA2.js → login-6NCCZ3CZ.js} +4 -4
- package/dist-cli/chunks/{logout-WPY2DOYZ.js → logout-C4VKXUH4.js} +2 -2
- package/dist-cli/chunks/{maestro-DSG7V2BA.js → maestro-ZRGFQ3MV.js} +3 -3
- package/dist-cli/chunks/{maestro-generate-6KA7PCN5.js → maestro-generate-A5XZS5GC.js} +3 -3
- package/dist-cli/chunks/{mode-QUYGPNBW.js → mode-IFFZ55HM.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-TQZA65K3.js +2 -0
- package/dist-cli/chunks/{perf-ELBRUVVU.js → perf-44KZNTIV.js} +2 -2
- package/dist-cli/chunks/{record-6PDTULUN.js → record-GZLZNXYZ.js} +3 -3
- package/dist-cli/chunks/runtime-F4FCEPPB.js +2 -0
- package/dist-cli/chunks/{screenshot-command-E2A4VY6D.js → screenshot-command-GL3STSWK.js} +3 -3
- package/dist-cli/chunks/{screenshots-capture-TRCRHK2E.js → screenshots-capture-QSSBWHN6.js} +2 -2
- package/dist-cli/chunks/serve-AFK6X2Q3.js +42 -0
- package/dist-cli/chunks/{setup-5BHQNK2L.js → setup-DYSDNEUE.js} +3 -3
- package/dist-cli/chunks/{skills-NQLI6WXW.js → skills-YXWQ43PZ.js} +2 -2
- package/dist-cli/chunks/{storage-SKARYTYK.js → storage-C7IS5GTM.js} +2 -2
- package/dist-cli/chunks/store-LVF2C2XZ.js +2 -0
- package/dist-cli/chunks/telemetry-5V3OXY6C.js +2 -0
- package/dist-cli/chunks/{timeline-DYJ4GKGE.js → timeline-FDTIHQ5V.js} +2 -2
- package/dist-cli/chunks/{upgrade-PHUUE5QV.js → upgrade-VRQCFJEI.js} +2 -2
- package/dist-cli/chunks/upload-CRCPDN6G.js +2 -0
- package/dist-cli/chunks/{version-XQQSXS3E.js → version-MP6NKJ27.js} +2 -2
- package/dist-cli/chunks/web-XYPFJHKW.js +2 -0
- package/dist-cli/chunks/{what-happened-I2N3FFIV.js → what-happened-IM6UH24Q.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 +10 -10
- package/dist-lib/agent-sessions.cjs +29 -13
- package/dist-lib/attached-projects.cjs +33 -13
- 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 +23 -6
- package/dist-lib/cli-constants.cjs +1 -1
- package/dist-lib/config.cjs +1 -1
- package/dist-lib/detox/index.cjs +6 -4
- package/dist-lib/dev-bundle-resolution.cjs +1 -1
- package/dist-lib/home-paths.cjs +1 -1
- package/dist-lib/host/bridge-host.cjs +110 -54
- 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 +220 -148
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/src/agent-daemon-client.ts +2 -2
- package/src/agent-identity.ts +7 -5
- package/src/attached-projects.ts +35 -11
- package/src/bridge-constants.ts +23 -4
- package/src/host/agent-host.ts +63 -14
- package/src/{agentbus-prompt.ts → team-machine-prompt.ts} +13 -20
- package/dist-cli/chunks/beta-7R4DRB3R.js +0 -2
- package/dist-cli/chunks/chunk-2LWDKYJ3.js +0 -1
- package/dist-cli/chunks/chunk-346C7547.js +0 -2
- package/dist-cli/chunks/chunk-CD2GF6PV.js +0 -5
- package/dist-cli/chunks/chunk-PN2LR6T4.js +0 -5
- package/dist-cli/chunks/chunk-Y3IYHVEX.js +0 -13
- package/dist-cli/chunks/chunk-ZHSXFJ7W.js +0 -1
- package/dist-cli/chunks/cli-version-362THKXA.js +0 -2
- package/dist-cli/chunks/daemon-SCTA3HTZ.js +0 -2
- package/dist-cli/chunks/drivers-S7D5OZQN.js +0 -2
- package/dist-cli/chunks/flow-IM5OXO5S.js +0 -2
- package/dist-cli/chunks/help-G5CN3KXU.js +0 -2
- package/dist-cli/chunks/inspect-WI7GXOH5.js +0 -2
- package/dist-cli/chunks/install-desktop-PVBWQQHY.js +0 -2
- package/dist-cli/chunks/optional-demo-registry-CROVHXTW.js +0 -2
- package/dist-cli/chunks/runtime-ITR3EUXS.js +0 -2
- package/dist-cli/chunks/serve-JLLSEZDN.js +0 -41
- package/dist-cli/chunks/store-VR5QRAYX.js +0 -2
- package/dist-cli/chunks/telemetry-PMYZDJGO.js +0 -2
- package/dist-cli/chunks/upload-OUKKXVNC.js +0 -2
- package/dist-cli/chunks/web-AZI3JODI.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.270 | (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-M5VURHXD.js";import{g as A,i as _}from"./chunk-ERXCR7NU.js";import"./chunk-6JLIPPNB.js";import{c as k}from"./chunk-74HIBIJQ.js";import"./chunk-557IYHPC.js";import"./chunk-5IHDZOMR.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.270 | (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.270 | (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.270 | (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;
|
|
@@ -23,11 +23,11 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
23
23
|
var agent_identity_exports = {};
|
|
24
24
|
__export(agent_identity_exports, {
|
|
25
25
|
agentSessionIdFromCliIdentity: () => agentSessionIdFromCliIdentity,
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
isValidTeamMachineSessionId: () => isValidTeamMachineSessionId,
|
|
27
|
+
teamMachineSessionIdFromCliIdentity: () => teamMachineSessionIdFromCliIdentity
|
|
28
28
|
});
|
|
29
29
|
module.exports = __toCommonJS(agent_identity_exports);
|
|
30
|
-
var
|
|
30
|
+
var TEAM_MACHINE_SESSION_RE = /^[A-Za-z0-9._:-]{1,160}$/;
|
|
31
31
|
function agentSessionIdFromCliIdentity(identity) {
|
|
32
32
|
if (!identity) return null;
|
|
33
33
|
const colon = identity.indexOf(":");
|
|
@@ -36,18 +36,18 @@ function agentSessionIdFromCliIdentity(identity) {
|
|
|
36
36
|
const value = identity.slice(colon + 1).trim();
|
|
37
37
|
return source === "SOOTSIM_CLI_IDENTITY" && value ? value : null;
|
|
38
38
|
}
|
|
39
|
-
function
|
|
39
|
+
function teamMachineSessionIdFromCliIdentity(identity) {
|
|
40
40
|
if (!identity?.startsWith("AGENTBUS_SESSION:")) return null;
|
|
41
41
|
const sessionId = identity.slice("AGENTBUS_SESSION:".length).trim();
|
|
42
|
-
if (!
|
|
42
|
+
if (!TEAM_MACHINE_SESSION_RE.test(sessionId)) return null;
|
|
43
43
|
return sessionId;
|
|
44
44
|
}
|
|
45
|
-
function
|
|
46
|
-
return
|
|
45
|
+
function isValidTeamMachineSessionId(sessionId) {
|
|
46
|
+
return TEAM_MACHINE_SESSION_RE.test(sessionId);
|
|
47
47
|
}
|
|
48
48
|
// Annotate the CommonJS export names for ESM import in node:
|
|
49
49
|
0 && (module.exports = {
|
|
50
50
|
agentSessionIdFromCliIdentity,
|
|
51
|
-
|
|
52
|
-
|
|
51
|
+
isValidTeamMachineSessionId,
|
|
52
|
+
teamMachineSessionIdFromCliIdentity
|
|
53
53
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.270 | (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;
|
|
@@ -243,21 +243,37 @@ function listSessions(projectId) {
|
|
|
243
243
|
const all = loadStore().agentSessions;
|
|
244
244
|
return projectId ? all.filter((s) => s.projectId === projectId) : all;
|
|
245
245
|
}
|
|
246
|
-
function
|
|
246
|
+
function applySessionStatusPatch(existing, patch, now = Date.now()) {
|
|
247
|
+
return {
|
|
248
|
+
...existing,
|
|
249
|
+
...patch,
|
|
250
|
+
id: existing.id,
|
|
251
|
+
projectId: existing.projectId,
|
|
252
|
+
createdAt: existing.createdAt,
|
|
253
|
+
lastSeenAt: now
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
function updateSessionStatuses(updates) {
|
|
257
|
+
if (updates.length === 0) return;
|
|
247
258
|
mutateStore((store) => {
|
|
248
|
-
const
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
+
const now = Date.now();
|
|
260
|
+
const indexById = new Map(
|
|
261
|
+
store.agentSessions.map((session, index) => [session.id, index])
|
|
262
|
+
);
|
|
263
|
+
for (const { id, patch } of updates) {
|
|
264
|
+
const idx = indexById.get(id);
|
|
265
|
+
if (idx === void 0) continue;
|
|
266
|
+
store.agentSessions[idx] = applySessionStatusPatch(
|
|
267
|
+
store.agentSessions[idx],
|
|
268
|
+
patch,
|
|
269
|
+
now
|
|
270
|
+
);
|
|
271
|
+
}
|
|
259
272
|
});
|
|
260
273
|
}
|
|
274
|
+
function updateSessionStatus(id, patch) {
|
|
275
|
+
updateSessionStatuses([{ id, patch }]);
|
|
276
|
+
}
|
|
261
277
|
|
|
262
278
|
// src/agent-sessions.ts
|
|
263
279
|
function sessionDir(sessionId) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.270 | (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;
|
|
@@ -77,6 +77,7 @@ var init_optional_demo_registry = __esm({
|
|
|
77
77
|
var attached_projects_exports = {};
|
|
78
78
|
__export(attached_projects_exports, {
|
|
79
79
|
__setUserDataDirForTests: () => __setUserDataDirForTests,
|
|
80
|
+
applySessionStatusPatch: () => applySessionStatusPatch,
|
|
80
81
|
costThisWeek: () => costThisWeek,
|
|
81
82
|
deletePreviewAttachment: () => deletePreviewAttachment,
|
|
82
83
|
deleteProject: () => deleteProject,
|
|
@@ -96,6 +97,7 @@ __export(attached_projects_exports, {
|
|
|
96
97
|
seedFromDemoAppRegistry: () => seedFromDemoAppRegistry,
|
|
97
98
|
setUserDataDir: () => setUserDataDir,
|
|
98
99
|
updateSessionStatus: () => updateSessionStatus,
|
|
100
|
+
updateSessionStatuses: () => updateSessionStatuses,
|
|
99
101
|
upsertPreviewAttachment: () => upsertPreviewAttachment,
|
|
100
102
|
upsertProject: () => upsertProject,
|
|
101
103
|
upsertSession: () => upsertSession
|
|
@@ -366,21 +368,37 @@ function listSessions(projectId) {
|
|
|
366
368
|
const all = loadStore().agentSessions;
|
|
367
369
|
return projectId ? all.filter((s) => s.projectId === projectId) : all;
|
|
368
370
|
}
|
|
369
|
-
function
|
|
371
|
+
function applySessionStatusPatch(existing, patch, now = Date.now()) {
|
|
372
|
+
return {
|
|
373
|
+
...existing,
|
|
374
|
+
...patch,
|
|
375
|
+
id: existing.id,
|
|
376
|
+
projectId: existing.projectId,
|
|
377
|
+
createdAt: existing.createdAt,
|
|
378
|
+
lastSeenAt: now
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
function updateSessionStatuses(updates) {
|
|
382
|
+
if (updates.length === 0) return;
|
|
370
383
|
mutateStore((store) => {
|
|
371
|
-
const
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
384
|
+
const now = Date.now();
|
|
385
|
+
const indexById = new Map(
|
|
386
|
+
store.agentSessions.map((session, index) => [session.id, index])
|
|
387
|
+
);
|
|
388
|
+
for (const { id, patch } of updates) {
|
|
389
|
+
const idx = indexById.get(id);
|
|
390
|
+
if (idx === void 0) continue;
|
|
391
|
+
store.agentSessions[idx] = applySessionStatusPatch(
|
|
392
|
+
store.agentSessions[idx],
|
|
393
|
+
patch,
|
|
394
|
+
now
|
|
395
|
+
);
|
|
396
|
+
}
|
|
382
397
|
});
|
|
383
398
|
}
|
|
399
|
+
function updateSessionStatus(id, patch) {
|
|
400
|
+
updateSessionStatuses([{ id, patch }]);
|
|
401
|
+
}
|
|
384
402
|
function deleteSession(id) {
|
|
385
403
|
mutateStore((store) => {
|
|
386
404
|
store.agentSessions = store.agentSessions.filter((s) => s.id !== id);
|
|
@@ -459,6 +477,7 @@ async function seedFromDemoAppRegistry() {
|
|
|
459
477
|
// Annotate the CommonJS export names for ESM import in node:
|
|
460
478
|
0 && (module.exports = {
|
|
461
479
|
__setUserDataDirForTests,
|
|
480
|
+
applySessionStatusPatch,
|
|
462
481
|
costThisWeek,
|
|
463
482
|
deletePreviewAttachment,
|
|
464
483
|
deleteProject,
|
|
@@ -478,6 +497,7 @@ async function seedFromDemoAppRegistry() {
|
|
|
478
497
|
seedFromDemoAppRegistry,
|
|
479
498
|
setUserDataDir,
|
|
480
499
|
updateSessionStatus,
|
|
500
|
+
updateSessionStatuses,
|
|
481
501
|
upsertPreviewAttachment,
|
|
482
502
|
upsertProject,
|
|
483
503
|
upsertSession
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.270 | (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.270 | (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.270 | (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.270 | (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;
|
|
@@ -28,7 +28,8 @@ __export(bridge_constants_exports, {
|
|
|
28
28
|
resolveSootsimBridgePort: () => resolveSootsimBridgePort,
|
|
29
29
|
resolveSootsimBridgePortForHttpPort: () => resolveSootsimBridgePortForHttpPort,
|
|
30
30
|
resolveSootsimBridgePortForRuntimeLocation: () => resolveSootsimBridgePortForRuntimeLocation,
|
|
31
|
-
resolveSootsimBridgeWebSocketUrl: () => resolveSootsimBridgeWebSocketUrl
|
|
31
|
+
resolveSootsimBridgeWebSocketUrl: () => resolveSootsimBridgeWebSocketUrl,
|
|
32
|
+
resolveSootsimWebSocketProxyUrl: () => resolveSootsimWebSocketProxyUrl
|
|
32
33
|
});
|
|
33
34
|
module.exports = __toCommonJS(bridge_constants_exports);
|
|
34
35
|
var DEFAULT_SOOTSIM_BRIDGE_PORT = 7668;
|
|
@@ -105,16 +106,31 @@ function resolveSootsimBridgePortForRuntimeLocation(input = {}) {
|
|
|
105
106
|
if (baseHttpPort === null) return DEFAULT_SOOTSIM_BRIDGE_PORT;
|
|
106
107
|
return resolveSootsimBridgePortForHttpPort({ httpPort, baseHttpPort });
|
|
107
108
|
}
|
|
108
|
-
function
|
|
109
|
+
function resolveSootsimWebSocketProxyUrl(input) {
|
|
109
110
|
const pageUrl = parseHrefUrl(input.href);
|
|
110
111
|
if (!pageUrl || pageUrl.protocol !== "http:" && pageUrl.protocol !== "https:") {
|
|
111
|
-
throw new Error(`invalid SootSim
|
|
112
|
+
throw new Error(`invalid SootSim websocket proxy page URL: ${input.href}`);
|
|
113
|
+
}
|
|
114
|
+
let targetUrl;
|
|
115
|
+
try {
|
|
116
|
+
targetUrl = new URL(input.targetUrl);
|
|
117
|
+
} catch {
|
|
118
|
+
throw new Error(`invalid SootSim websocket proxy target URL: ${input.targetUrl}`);
|
|
119
|
+
}
|
|
120
|
+
if (targetUrl.protocol !== "ws:" && targetUrl.protocol !== "wss:") {
|
|
121
|
+
throw new Error(`invalid SootSim websocket proxy target URL: ${input.targetUrl}`);
|
|
112
122
|
}
|
|
113
123
|
const proxyUrl = new URL("/__websocket-proxy", pageUrl);
|
|
114
124
|
proxyUrl.protocol = pageUrl.protocol === "https:" ? "wss:" : "ws:";
|
|
115
|
-
proxyUrl.searchParams.set("url",
|
|
125
|
+
proxyUrl.searchParams.set("url", input.targetUrl);
|
|
116
126
|
return proxyUrl.href;
|
|
117
127
|
}
|
|
128
|
+
function resolveSootsimBridgeWebSocketUrl(input) {
|
|
129
|
+
return resolveSootsimWebSocketProxyUrl({
|
|
130
|
+
targetUrl: `ws://localhost:${input.bridgePort}`,
|
|
131
|
+
href: input.href
|
|
132
|
+
});
|
|
133
|
+
}
|
|
118
134
|
var SOOTSIM_BRIDGE_SIM_CLOSE_CODE = 4001;
|
|
119
135
|
var SOOTSIM_BRIDGE_SIM_CLOSE_REASON = "sootsim close";
|
|
120
136
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -125,5 +141,6 @@ var SOOTSIM_BRIDGE_SIM_CLOSE_REASON = "sootsim close";
|
|
|
125
141
|
resolveSootsimBridgePort,
|
|
126
142
|
resolveSootsimBridgePortForHttpPort,
|
|
127
143
|
resolveSootsimBridgePortForRuntimeLocation,
|
|
128
|
-
resolveSootsimBridgeWebSocketUrl
|
|
144
|
+
resolveSootsimBridgeWebSocketUrl,
|
|
145
|
+
resolveSootsimWebSocketProxyUrl
|
|
129
146
|
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.270 | (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.270 | (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.270 | (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;
|
|
@@ -2123,7 +2123,7 @@ var device = {
|
|
|
2123
2123
|
//
|
|
2124
2124
|
// returns paths in stage order; actualMs reports when the snapshot
|
|
2125
2125
|
// actually fired (typically within a few ms of offsetMs).
|
|
2126
|
-
async takeScreenshotStagesFast(namePrefix, stages) {
|
|
2126
|
+
async takeScreenshotStagesFast(namePrefix, stages, options) {
|
|
2127
2127
|
const page = getPage();
|
|
2128
2128
|
const frames = await page.evaluate(
|
|
2129
2129
|
async (input) => {
|
|
@@ -2133,7 +2133,9 @@ var device = {
|
|
|
2133
2133
|
if (typeof screenshot !== "function") {
|
|
2134
2134
|
throw new Error("SootSim screenshot bridge is not installed");
|
|
2135
2135
|
}
|
|
2136
|
-
|
|
2136
|
+
if (!input.skipWarmup) {
|
|
2137
|
+
await screenshot({ format: "png" });
|
|
2138
|
+
}
|
|
2137
2139
|
const start = performance.now();
|
|
2138
2140
|
const snaps = await Promise.all(
|
|
2139
2141
|
input.stages.map(
|
|
@@ -2196,7 +2198,7 @@ var device = {
|
|
|
2196
2198
|
}
|
|
2197
2199
|
return out;
|
|
2198
2200
|
},
|
|
2199
|
-
{ stages }
|
|
2201
|
+
{ stages, skipWarmup: options?.skipWarmup === true }
|
|
2200
2202
|
);
|
|
2201
2203
|
ensureScreenshotDir();
|
|
2202
2204
|
return frames.map((f) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.270 | (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.270 | (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;
|