sootsim 0.1.237 → 0.1.239
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 +4 -4
- package/dist-cli/chunks/{agent-NIH7EKHN.js → agent-5KVGVFXJ.js} +2 -2
- package/dist-cli/chunks/{agent-wrapper-CANNQ3WM.js → agent-wrapper-YVXMSV3X.js} +2 -2
- package/dist-cli/chunks/{app-fonts-7WJKCFDA.js → app-fonts-IXF6YPQZ.js} +2 -2
- package/dist-cli/chunks/{assert-XUTQTOYN.js → assert-FMNM5VTT.js} +2 -2
- package/dist-cli/chunks/{auth-XX355P3M.js → auth-LNSDYZU4.js} +2 -2
- package/dist-cli/chunks/beta-BH6RPXQU.js +2 -0
- package/dist-cli/chunks/{camera-GDVYCC7S.js → camera-INMAD3CG.js} +2 -2
- package/dist-cli/chunks/{chunk-RAKITL2V.js → chunk-44WCYVFQ.js} +2 -2
- package/dist-cli/chunks/{chunk-JQMTWVQA.js → chunk-544G2PCM.js} +2 -2
- package/dist-cli/chunks/{chunk-QKRYUPTF.js → chunk-5VCOEPSJ.js} +2 -2
- package/dist-cli/chunks/{chunk-6MFHTRAJ.js → chunk-6XF2EHL2.js} +1 -1
- package/dist-cli/chunks/{chunk-3M7SGDD2.js → chunk-BKDHODNB.js} +1 -1
- package/dist-cli/chunks/{chunk-7QA2WPR3.js → chunk-BWKVAEAJ.js} +1 -1
- package/dist-cli/chunks/{chunk-JQZWNFDY.js → chunk-CJRALJVV.js} +1 -1
- package/dist-cli/chunks/{chunk-KGJRDFXS.js → chunk-CUDTQFGP.js} +2 -2
- package/dist-cli/chunks/{chunk-WARY5JGO.js → chunk-D4YH5KNQ.js} +2 -2
- package/dist-cli/chunks/{chunk-6ERIV33O.js → chunk-DJIWF2SR.js} +1 -1
- package/dist-cli/chunks/{chunk-W7FIMC6T.js → chunk-ECPEYFHV.js} +2 -2
- package/dist-cli/chunks/{chunk-NUSQ5DIM.js → chunk-EQYRXSBE.js} +2 -2
- package/dist-cli/chunks/{chunk-O5PWKD7X.js → chunk-FOTAUF7Q.js} +1 -1
- package/dist-cli/chunks/{chunk-4Y6UGVWJ.js → chunk-GI2S43VF.js} +1 -1
- package/dist-cli/chunks/{chunk-ETGOES6M.js → chunk-HE5NBBLH.js} +3 -3
- package/dist-cli/chunks/{chunk-AFUTBEVW.js → chunk-HJW6SASW.js} +1 -1
- package/dist-cli/chunks/{chunk-73DTCUXW.js → chunk-HV2ZRFGP.js} +1 -1
- package/dist-cli/chunks/chunk-J7SEKMNI.js +1 -0
- package/dist-cli/chunks/{chunk-5MG75PQR.js → chunk-JBUMYCFR.js} +4 -4
- package/dist-cli/chunks/{chunk-EOJFP7X2.js → chunk-JOSDTQZ3.js} +2 -2
- package/dist-cli/chunks/{chunk-JXGITBPW.js → chunk-JPNTLGLA.js} +2 -2
- package/dist-cli/chunks/{chunk-3MUI7YAX.js → chunk-KCS6OYQV.js} +2 -2
- package/dist-cli/chunks/{chunk-S5CSRSWR.js → chunk-LWE27HF7.js} +3 -3
- package/dist-cli/chunks/{chunk-LF5KTGTH.js → chunk-MDOTB5DP.js} +2 -2
- package/dist-cli/chunks/{chunk-E2JJWRNU.js → chunk-NDU5EJFW.js} +2 -2
- package/dist-cli/chunks/{chunk-M6CBJ5XY.js → chunk-NJQSCTFC.js} +130 -89
- package/dist-cli/chunks/chunk-NO6RQXYN.js +1 -0
- package/dist-cli/chunks/{chunk-BAW63ZF6.js → chunk-P5JIE7R6.js} +2 -2
- package/dist-cli/chunks/{chunk-ERAS4JM4.js → chunk-PVIUYYIS.js} +2 -2
- package/dist-cli/chunks/{chunk-62CZZGL3.js → chunk-QHJLYAOH.js} +2 -2
- package/dist-cli/chunks/{chunk-T4YTIZS6.js → chunk-QYVGMN3I.js} +46 -15
- package/dist-cli/chunks/{chunk-4NZEQ4MZ.js → chunk-R5I2OBQM.js} +2 -2
- package/dist-cli/chunks/{chunk-WDB42DJI.js → chunk-SBSL3DUQ.js} +1 -1
- package/dist-cli/chunks/{chunk-ALJ2MN26.js → chunk-SLIYVKRX.js} +1 -1
- package/dist-cli/chunks/{chunk-SBVVBTVB.js → chunk-SOZIIFPY.js} +3 -3
- package/dist-cli/chunks/{chunk-URCBOIED.js → chunk-SRMYUHBI.js} +1 -1
- package/dist-cli/chunks/{chunk-JMHDKBST.js → chunk-UZRZGXQ4.js} +2 -2
- package/dist-cli/chunks/{chunk-3TLRWV6X.js → chunk-VBO7OQLR.js} +2 -2
- package/dist-cli/chunks/{chunk-XLT2RL6P.js → chunk-VIM3WDAA.js} +1 -1
- package/dist-cli/chunks/{chunk-WPFTIHKG.js → chunk-WXYRA447.js} +1 -1
- package/dist-cli/chunks/{chunk-GHN465L7.js → chunk-X7JZ4KTU.js} +1 -1
- package/dist-cli/chunks/{chunk-2X4Q4CJX.js → chunk-XWPQVHOL.js} +2 -2
- package/dist-cli/chunks/{chunk-ZULXAIOA.js → chunk-YIS2RXPE.js} +1 -1
- package/dist-cli/chunks/{chunk-NNE2PWQJ.js → chunk-ZL2KSYJP.js} +1 -1
- package/dist-cli/chunks/cli-version-7KCROGJR.js +2 -0
- package/dist-cli/chunks/{compat-6WNQAVEB.js → compat-VYOIJUW6.js} +3 -3
- package/dist-cli/chunks/{config-WQAHBZKL.js → config-ZJIIQF6K.js} +2 -2
- package/dist-cli/chunks/{control-RSW5SZNO.js → control-KFAL3LD7.js} +2 -2
- package/dist-cli/chunks/daemon-TJXAVVUE.js +2 -0
- package/dist-cli/chunks/{debug-73FQE5N6.js → debug-RCY6BSLW.js} +3 -3
- package/dist-cli/chunks/{desktop-OVNY5GJQ.js → desktop-FRZILY3U.js} +3 -3
- package/dist-cli/chunks/{detox-3P2L6FYU.js → detox-W2HOZRDP.js} +2 -2
- package/dist-cli/chunks/{device-D4W3FFEB.js → device-WRWT7SEE.js} +2 -2
- package/dist-cli/chunks/{diagnose-VGWGP46V.js → diagnose-3KSX2NJC.js} +2 -2
- package/dist-cli/chunks/drivers-SJOWPOA3.js +2 -0
- package/dist-cli/chunks/{film-5ZP2ICET.js → film-QN7NUW6Z.js} +3 -3
- package/dist-cli/chunks/flow-Q4XCAPIT.js +2 -0
- package/dist-cli/chunks/help-FRVJH7SB.js +2 -0
- package/dist-cli/chunks/{hidden-runtime-alias-6ORU5BU5.js → hidden-runtime-alias-NIH62HCH.js} +2 -2
- package/dist-cli/chunks/{home-paths-TPX7JREW.js → home-paths-3CPTCZDU.js} +2 -2
- package/dist-cli/chunks/inspect-5ZZN4UJN.js +2 -0
- package/dist-cli/chunks/install-desktop-MIY6DLN6.js +2 -0
- package/dist-cli/chunks/{login-DGC5FTDF.js → login-HQ3356B6.js} +4 -4
- package/dist-cli/chunks/{logout-PDQBKY4G.js → logout-LVVXQS5S.js} +2 -2
- package/dist-cli/chunks/{maestro-3JSIIS5X.js → maestro-34Y7GOG5.js} +3 -3
- package/dist-cli/chunks/{maestro-generate-GCSWSG2K.js → maestro-generate-XBIZ7Z6U.js} +3 -3
- package/dist-cli/chunks/{mode-N5XFREJ5.js → mode-VXZR6I46.js} +2 -2
- package/dist-cli/chunks/optional-demo-registry-5JSIUIMF.js +2 -0
- package/dist-cli/chunks/{perf-WPRQA46P.js → perf-IBHKDDFN.js} +2 -2
- package/dist-cli/chunks/{record-SRLNC52N.js → record-S5WYHPNR.js} +3 -3
- package/dist-cli/chunks/runtime-5K5JFYOZ.js +2 -0
- package/dist-cli/chunks/{screenshot-command-SDVOFZPU.js → screenshot-command-T65M2SYC.js} +3 -3
- package/dist-cli/chunks/{screenshots-capture-UNF423TF.js → screenshots-capture-75AHIYWA.js} +2 -2
- package/dist-cli/chunks/{serve-I6ZP6LCF.js → serve-OJVA6PNV.js} +2 -2
- package/dist-cli/chunks/{setup-KB2N4BV6.js → setup-TLQ2VM3F.js} +3 -3
- package/dist-cli/chunks/{skills-Z7LFL4PF.js → skills-LZZDB6V5.js} +2 -2
- package/dist-cli/chunks/{storage-TLR45DGA.js → storage-G2IZ2WAD.js} +2 -2
- package/dist-cli/chunks/store-X6HDJ5SE.js +2 -0
- package/dist-cli/chunks/telemetry-AHMOJS6L.js +2 -0
- package/dist-cli/chunks/{timeline-5VYYMGSC.js → timeline-L4CFSXX3.js} +2 -2
- package/dist-cli/chunks/{upgrade-BEMPTIE6.js → upgrade-5USALUAU.js} +2 -2
- package/dist-cli/chunks/upload-OWMPT3Z7.js +2 -0
- package/dist-cli/chunks/{version-BFBYH5U7.js → version-RQZPUNJO.js} +2 -2
- package/dist-cli/chunks/web-YQ6XAB5F.js +2 -0
- package/dist-cli/chunks/{what-happened-HQOFQYP5.js → what-happened-JLAM7TBD.js} +2 -2
- package/dist-lib/agent-daemon-client.cjs +2 -2
- package/dist-lib/agent-events.cjs +1 -1
- package/dist-lib/agent-identity.cjs +1 -1
- package/dist-lib/agent-sessions.cjs +2 -2
- 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 +2 -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 +122 -7
- package/dist-lib/sdk.mjs +122 -7
- package/dist-lib/skills.cjs +55 -10
- package/dist-lib/vite.cjs +1 -1
- package/package.json +1 -1
- package/src/agent-sessions.ts +4 -5
- package/src/vite-plugin.ts +3 -6
- package/dist-cli/chunks/beta-TGYZFOQJ.js +0 -2
- package/dist-cli/chunks/chunk-D4J6U3GH.js +0 -1
- package/dist-cli/chunks/chunk-TCXJDB7I.js +0 -1
- package/dist-cli/chunks/cli-version-CWJ4E23R.js +0 -2
- package/dist-cli/chunks/daemon-WCJIE7IG.js +0 -2
- package/dist-cli/chunks/drivers-NHFMITWU.js +0 -2
- package/dist-cli/chunks/flow-4KLRYEIU.js +0 -2
- package/dist-cli/chunks/help-CMC766TA.js +0 -2
- package/dist-cli/chunks/inspect-JNFBNXXE.js +0 -2
- package/dist-cli/chunks/install-desktop-TT4BA2NZ.js +0 -2
- package/dist-cli/chunks/optional-demo-registry-36MD5PON.js +0 -2
- package/dist-cli/chunks/runtime-JPMZUBIX.js +0 -2
- package/dist-cli/chunks/store-6FCWQNXM.js +0 -2
- package/dist-cli/chunks/telemetry-Q2DXNKX4.js +0 -2
- package/dist-cli/chunks/upload-2F643M7Y.js +0 -2
- package/dist-cli/chunks/web-7O2LHQ4V.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.239 | (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-QYVGMN3I.js";import{g as A,i as _}from"./chunk-544G2PCM.js";import"./chunk-HV2ZRFGP.js";import{c as k}from"./chunk-SLIYVKRX.js";import"./chunk-FOTAUF7Q.js";import"./chunk-BWKVAEAJ.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.239 | (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;
|
|
@@ -123,7 +123,7 @@ function tryWorkspaceSootsim() {
|
|
|
123
123
|
const buildMtime = import_node_fs2.default.statSync(distBin).mtimeMs;
|
|
124
124
|
if (buildMtime < srcMtime) {
|
|
125
125
|
console.warn(
|
|
126
|
-
`[sootsim] dist-cli/bin.js is older than agent-wrapper.ts \u2014 rebuild with \`bun run --cwd packages/sootsim build:cli
|
|
126
|
+
`[sootsim] dist-cli/bin.js is older than agent-wrapper.ts \u2014 rebuild with \`bun run --cwd packages/sootsim build:cli\`.`
|
|
127
127
|
);
|
|
128
128
|
}
|
|
129
129
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.239 | (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.239 | (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.239 | (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;
|
|
@@ -330,7 +330,7 @@ function tryWorkspaceSootsim() {
|
|
|
330
330
|
const buildMtime = import_node_fs2.default.statSync(distBin).mtimeMs;
|
|
331
331
|
if (buildMtime < srcMtime) {
|
|
332
332
|
console.warn(
|
|
333
|
-
`[sootsim] dist-cli/bin.js is older than agent-wrapper.ts \u2014 rebuild with \`bun run --cwd packages/sootsim build:cli
|
|
333
|
+
`[sootsim] dist-cli/bin.js is older than agent-wrapper.ts \u2014 rebuild with \`bun run --cwd packages/sootsim build:cli\`.`
|
|
334
334
|
);
|
|
335
335
|
}
|
|
336
336
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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;
|
|
@@ -1452,7 +1452,7 @@ function tryWorkspaceSootsim() {
|
|
|
1452
1452
|
const buildMtime = import_node_fs4.default.statSync(distBin).mtimeMs;
|
|
1453
1453
|
if (buildMtime < srcMtime) {
|
|
1454
1454
|
console.warn(
|
|
1455
|
-
`[sootsim] dist-cli/bin.js is older than agent-wrapper.ts \u2014 rebuild with \`bun run --cwd packages/sootsim build:cli
|
|
1455
|
+
`[sootsim] dist-cli/bin.js is older than agent-wrapper.ts \u2014 rebuild with \`bun run --cwd packages/sootsim build:cli\`.`
|
|
1456
1456
|
);
|
|
1457
1457
|
}
|
|
1458
1458
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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.239 | (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;
|
|
@@ -238,12 +238,20 @@ async function inspectDescribe(bridge, dumpOpts) {
|
|
|
238
238
|
}
|
|
239
239
|
function layoutGetNativeEval(opts = {}) {
|
|
240
240
|
const includeStyle = opts.styling === true;
|
|
241
|
+
const filter = opts.filter?.trim().toLowerCase() ?? "";
|
|
241
242
|
return `(async () => {
|
|
242
243
|
const t = window.__sootsimTest
|
|
243
244
|
if (!t || typeof t.listInspectable !== 'function') return []
|
|
244
245
|
const list = await t.listInspectable({})
|
|
245
246
|
if (!Array.isArray(list)) return []
|
|
246
247
|
const includeStyle = ${JSON.stringify(includeStyle)}
|
|
248
|
+
// narrows by ELEMENT, not by style field: fewer rows, full detail on each.
|
|
249
|
+
const filter = ${JSON.stringify(filter)}
|
|
250
|
+
const matchesFilter = (n, text) => {
|
|
251
|
+
if (!filter) return true
|
|
252
|
+
const fields = [text, n.testID || n.testId, n.accessibilityRole || n.role, n.type]
|
|
253
|
+
return fields.some((f) => typeof f === 'string' && f.toLowerCase().includes(filter))
|
|
254
|
+
}
|
|
247
255
|
|
|
248
256
|
const num = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : 0)
|
|
249
257
|
const round = (v) => Math.round(num(v))
|
|
@@ -300,6 +308,17 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
300
308
|
}
|
|
301
309
|
return max > 0 ? Math.round(max) : undefined
|
|
302
310
|
}
|
|
311
|
+
// only meaningful alongside a real border width, so it is resolved by the
|
|
312
|
+
// caller below rather than on its own.
|
|
313
|
+
const borderColorOf = (style) => {
|
|
314
|
+
if (!style) return undefined
|
|
315
|
+
const keys = ['borderColor','borderTopColor','borderBottomColor','borderLeftColor','borderRightColor']
|
|
316
|
+
for (const k of keys) {
|
|
317
|
+
const c = colorStr(style[k])
|
|
318
|
+
if (c) return c
|
|
319
|
+
}
|
|
320
|
+
return undefined
|
|
321
|
+
}
|
|
303
322
|
|
|
304
323
|
const isVisible = (n) => {
|
|
305
324
|
const layout = n && n.layout
|
|
@@ -313,11 +332,22 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
313
332
|
return abs.x + layout.width > 0 && abs.y + layout.height > 0 && abs.x < screenW && abs.y < screenH
|
|
314
333
|
}
|
|
315
334
|
|
|
316
|
-
return list.filter(isVisible).
|
|
335
|
+
return list.filter(isVisible).filter((n) => {
|
|
336
|
+
const t = typeof n.text === 'string' && n.text.trim() ? n.text.trim() : undefined
|
|
337
|
+
return matchesFilter(n, t)
|
|
338
|
+
}).map((n) => {
|
|
317
339
|
const layout = n.layout || { x: 0, y: 0, width: 0, height: 0 }
|
|
318
340
|
const abs = n.absolute || n.absolutePosition || { x: layout.x, y: layout.y }
|
|
319
341
|
const text = typeof n.text === 'string' && n.text.trim() ? n.text.trim() : undefined
|
|
320
342
|
const base = {
|
|
343
|
+
...(typeof n.nodeId === 'number'
|
|
344
|
+
? {
|
|
345
|
+
nodeId: n.nodeId,
|
|
346
|
+
ancestorIds: Array.isArray(n.ancestors)
|
|
347
|
+
? n.ancestors.map((ancestor) => ancestor && ancestor.nodeId).filter((id) => typeof id === 'number')
|
|
348
|
+
: [],
|
|
349
|
+
}
|
|
350
|
+
: {}),
|
|
321
351
|
testID: n.testID || n.testId || undefined,
|
|
322
352
|
role: n.accessibilityRole || n.role || undefined,
|
|
323
353
|
type: typeof n.type === 'string' ? n.type : 'node',
|
|
@@ -332,6 +362,7 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
332
362
|
// fall back across both so radius/fontSize survive either shape.
|
|
333
363
|
const style = Object.assign({}, n.style || {}, n.computedStyle || {})
|
|
334
364
|
const pad = (n.boxModel && n.boxModel.padding) || {}
|
|
365
|
+
const borderWidth = borderWOf(style)
|
|
335
366
|
return {
|
|
336
367
|
...base,
|
|
337
368
|
borderRadius: radiusOf(style),
|
|
@@ -343,7 +374,8 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
343
374
|
fontWeight: weightOf(style),
|
|
344
375
|
textDecoration: decoOf(style),
|
|
345
376
|
overflow: overflowOf(style),
|
|
346
|
-
borderWidth
|
|
377
|
+
borderWidth,
|
|
378
|
+
borderColor: borderWidth ? borderColorOf(style) : undefined,
|
|
347
379
|
}
|
|
348
380
|
})
|
|
349
381
|
})()`;
|
|
@@ -375,7 +407,11 @@ function formatLayoutElements(elements, opts) {
|
|
|
375
407
|
if (el.opacity != null) parts.push(`opacity:${el.opacity}`);
|
|
376
408
|
if (el.textDecoration) parts.push(`deco:${el.textDecoration}`);
|
|
377
409
|
if (el.overflow) parts.push(`overflow:${el.overflow}`);
|
|
378
|
-
if (el.borderWidth)
|
|
410
|
+
if (el.borderWidth) {
|
|
411
|
+
parts.push(
|
|
412
|
+
el.borderColor ? `border:${el.borderWidth}/${el.borderColor}` : `border:${el.borderWidth}`
|
|
413
|
+
);
|
|
414
|
+
}
|
|
379
415
|
}
|
|
380
416
|
if (el.text) {
|
|
381
417
|
const text = el.text.length > 40 ? `${el.text.slice(0, 39)}\u2026` : el.text;
|
|
@@ -1021,7 +1057,13 @@ async function inspectScrollStateAt(bridge, x, y) {
|
|
|
1021
1057
|
path: "__sootsimTest.getScrollStateAt",
|
|
1022
1058
|
args: [x, y]
|
|
1023
1059
|
});
|
|
1024
|
-
|
|
1060
|
+
if (!result || typeof result !== "object") return null;
|
|
1061
|
+
const state = result;
|
|
1062
|
+
return {
|
|
1063
|
+
...state,
|
|
1064
|
+
scrollOffsetX: typeof state.scrollOffsetX === "number" ? state.scrollOffsetX : state.offsetX,
|
|
1065
|
+
scrollOffsetY: typeof state.scrollOffsetY === "number" ? state.scrollOffsetY : state.offsetY
|
|
1066
|
+
};
|
|
1025
1067
|
}
|
|
1026
1068
|
async function inspectLogs(bridge) {
|
|
1027
1069
|
const res = await bridge.send({
|
|
@@ -1531,6 +1573,7 @@ function tapTiming(agent, opts = {}) {
|
|
|
1531
1573
|
}
|
|
1532
1574
|
function isTapSuccess(result) {
|
|
1533
1575
|
if (!result || result.hit === false || result.ok === false) return false;
|
|
1576
|
+
if (result.requestedTargetMatched === false) return false;
|
|
1534
1577
|
if (result.pointerTapHandled === false && !result.keyboardOpened && !result.isTextInput) {
|
|
1535
1578
|
return false;
|
|
1536
1579
|
}
|
|
@@ -1538,6 +1581,7 @@ function isTapSuccess(result) {
|
|
|
1538
1581
|
}
|
|
1539
1582
|
function tapTargetFromPayload(payload, textFallback) {
|
|
1540
1583
|
return {
|
|
1584
|
+
nodeId: payload.target?.nodeId ?? payload.match?.nodeId ?? payload.node?.nodeId ?? null,
|
|
1541
1585
|
id: payload.target?.id ?? payload.match?.id ?? payload.node?.id ?? null,
|
|
1542
1586
|
testID: payload.target?.testID ?? payload.match?.testID ?? payload.node?.testID ?? null,
|
|
1543
1587
|
text: payload.target?.text ?? payload.target?.accessibilityLabel ?? payload.match?.text ?? payload.match?.accessibilityLabel ?? payload.node?.text ?? textFallback ?? null,
|
|
@@ -1583,12 +1627,83 @@ async function tapResolvedTarget(bridge, args) {
|
|
|
1583
1627
|
lastOffscreenAt = at;
|
|
1584
1628
|
} else {
|
|
1585
1629
|
lastOffscreenAt = null;
|
|
1586
|
-
const
|
|
1630
|
+
const requestedTarget = tapTargetFromPayload(payload, args.textFallback);
|
|
1631
|
+
const verification = await bridge.send({
|
|
1632
|
+
type: "evaluate",
|
|
1633
|
+
code: `(async () => {
|
|
1634
|
+
const t = window.__sootsimTest
|
|
1635
|
+
if (
|
|
1636
|
+
!t ||
|
|
1637
|
+
typeof t.inspectAt !== 'function' ||
|
|
1638
|
+
typeof t.resolveTapTarget !== 'function'
|
|
1639
|
+
) {
|
|
1640
|
+
return { error: 'tap-target-inspection-unavailable' }
|
|
1641
|
+
}
|
|
1642
|
+
const requestedTarget = ${JSON.stringify(requestedTarget)}
|
|
1643
|
+
const inspected = await t.inspectAt(${payload.cx}, ${payload.cy})
|
|
1644
|
+
const resolved =
|
|
1645
|
+
inspected && typeof inspected.nodeId === 'number'
|
|
1646
|
+
? await t.resolveTapTarget(inspected.nodeId)
|
|
1647
|
+
: null
|
|
1648
|
+
const node = (resolved && resolved.target) || inspected
|
|
1649
|
+
const coordinateTarget = node
|
|
1650
|
+
? {
|
|
1651
|
+
nodeId: node.nodeId ?? null,
|
|
1652
|
+
id: node.id ?? null,
|
|
1653
|
+
testID: node.testID ?? null,
|
|
1654
|
+
text: node.text ?? node.accessibilityLabel ?? null,
|
|
1655
|
+
type: node.type ?? null,
|
|
1656
|
+
}
|
|
1657
|
+
: null
|
|
1658
|
+
const requestedTargetMatched =
|
|
1659
|
+
coordinateTarget === null
|
|
1660
|
+
? false
|
|
1661
|
+
: typeof requestedTarget.nodeId === 'number' &&
|
|
1662
|
+
typeof coordinateTarget.nodeId === 'number'
|
|
1663
|
+
? requestedTarget.nodeId === coordinateTarget.nodeId
|
|
1664
|
+
: requestedTarget.testID && coordinateTarget.testID
|
|
1665
|
+
? requestedTarget.testID === coordinateTarget.testID
|
|
1666
|
+
: requestedTarget.id && coordinateTarget.id
|
|
1667
|
+
? requestedTarget.id === coordinateTarget.id
|
|
1668
|
+
: false
|
|
1669
|
+
return {
|
|
1670
|
+
requestedTargetMatched,
|
|
1671
|
+
requestedTarget,
|
|
1672
|
+
coordinateTarget,
|
|
1673
|
+
}
|
|
1674
|
+
})()`
|
|
1675
|
+
});
|
|
1676
|
+
if (verification?.error) {
|
|
1677
|
+
return {
|
|
1678
|
+
payload,
|
|
1679
|
+
result: {
|
|
1680
|
+
hit: false,
|
|
1681
|
+
reason: verification.error,
|
|
1682
|
+
requestedTarget
|
|
1683
|
+
},
|
|
1684
|
+
attempts,
|
|
1685
|
+
failure: "special"
|
|
1686
|
+
};
|
|
1687
|
+
}
|
|
1688
|
+
if (verification?.requestedTargetMatched === false) {
|
|
1689
|
+
return {
|
|
1690
|
+
payload,
|
|
1691
|
+
result: {
|
|
1692
|
+
hit: false,
|
|
1693
|
+
reason: "target-covered",
|
|
1694
|
+
...verification
|
|
1695
|
+
},
|
|
1696
|
+
attempts,
|
|
1697
|
+
failure: "missed"
|
|
1698
|
+
};
|
|
1699
|
+
}
|
|
1700
|
+
const dispatched = await bridge.send({
|
|
1587
1701
|
type: "tap",
|
|
1588
1702
|
x: payload.cx,
|
|
1589
1703
|
y: payload.cy,
|
|
1590
|
-
target:
|
|
1704
|
+
target: requestedTarget
|
|
1591
1705
|
});
|
|
1706
|
+
const result = dispatched && typeof dispatched === "object" ? { ...dispatched, ...verification } : { hit: !!dispatched, ...verification };
|
|
1592
1707
|
lastResult = result;
|
|
1593
1708
|
if (isTapSuccess(result)) return { payload, result, attempts };
|
|
1594
1709
|
}
|