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
package/dist-lib/sdk.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! sootsim v0.1.
|
|
1
|
+
/*! sootsim v0.1.239 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
2
|
|
|
3
3
|
// cli/commands/inspect/core.ts
|
|
4
4
|
function resolveMaxMsFlag(args, fallbackMs) {
|
|
@@ -148,12 +148,20 @@ async function inspectDescribe(bridge, dumpOpts) {
|
|
|
148
148
|
}
|
|
149
149
|
function layoutGetNativeEval(opts = {}) {
|
|
150
150
|
const includeStyle = opts.styling === true;
|
|
151
|
+
const filter = opts.filter?.trim().toLowerCase() ?? "";
|
|
151
152
|
return `(async () => {
|
|
152
153
|
const t = window.__sootsimTest
|
|
153
154
|
if (!t || typeof t.listInspectable !== 'function') return []
|
|
154
155
|
const list = await t.listInspectable({})
|
|
155
156
|
if (!Array.isArray(list)) return []
|
|
156
157
|
const includeStyle = ${JSON.stringify(includeStyle)}
|
|
158
|
+
// narrows by ELEMENT, not by style field: fewer rows, full detail on each.
|
|
159
|
+
const filter = ${JSON.stringify(filter)}
|
|
160
|
+
const matchesFilter = (n, text) => {
|
|
161
|
+
if (!filter) return true
|
|
162
|
+
const fields = [text, n.testID || n.testId, n.accessibilityRole || n.role, n.type]
|
|
163
|
+
return fields.some((f) => typeof f === 'string' && f.toLowerCase().includes(filter))
|
|
164
|
+
}
|
|
157
165
|
|
|
158
166
|
const num = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : 0)
|
|
159
167
|
const round = (v) => Math.round(num(v))
|
|
@@ -210,6 +218,17 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
210
218
|
}
|
|
211
219
|
return max > 0 ? Math.round(max) : undefined
|
|
212
220
|
}
|
|
221
|
+
// only meaningful alongside a real border width, so it is resolved by the
|
|
222
|
+
// caller below rather than on its own.
|
|
223
|
+
const borderColorOf = (style) => {
|
|
224
|
+
if (!style) return undefined
|
|
225
|
+
const keys = ['borderColor','borderTopColor','borderBottomColor','borderLeftColor','borderRightColor']
|
|
226
|
+
for (const k of keys) {
|
|
227
|
+
const c = colorStr(style[k])
|
|
228
|
+
if (c) return c
|
|
229
|
+
}
|
|
230
|
+
return undefined
|
|
231
|
+
}
|
|
213
232
|
|
|
214
233
|
const isVisible = (n) => {
|
|
215
234
|
const layout = n && n.layout
|
|
@@ -223,11 +242,22 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
223
242
|
return abs.x + layout.width > 0 && abs.y + layout.height > 0 && abs.x < screenW && abs.y < screenH
|
|
224
243
|
}
|
|
225
244
|
|
|
226
|
-
return list.filter(isVisible).
|
|
245
|
+
return list.filter(isVisible).filter((n) => {
|
|
246
|
+
const t = typeof n.text === 'string' && n.text.trim() ? n.text.trim() : undefined
|
|
247
|
+
return matchesFilter(n, t)
|
|
248
|
+
}).map((n) => {
|
|
227
249
|
const layout = n.layout || { x: 0, y: 0, width: 0, height: 0 }
|
|
228
250
|
const abs = n.absolute || n.absolutePosition || { x: layout.x, y: layout.y }
|
|
229
251
|
const text = typeof n.text === 'string' && n.text.trim() ? n.text.trim() : undefined
|
|
230
252
|
const base = {
|
|
253
|
+
...(typeof n.nodeId === 'number'
|
|
254
|
+
? {
|
|
255
|
+
nodeId: n.nodeId,
|
|
256
|
+
ancestorIds: Array.isArray(n.ancestors)
|
|
257
|
+
? n.ancestors.map((ancestor) => ancestor && ancestor.nodeId).filter((id) => typeof id === 'number')
|
|
258
|
+
: [],
|
|
259
|
+
}
|
|
260
|
+
: {}),
|
|
231
261
|
testID: n.testID || n.testId || undefined,
|
|
232
262
|
role: n.accessibilityRole || n.role || undefined,
|
|
233
263
|
type: typeof n.type === 'string' ? n.type : 'node',
|
|
@@ -242,6 +272,7 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
242
272
|
// fall back across both so radius/fontSize survive either shape.
|
|
243
273
|
const style = Object.assign({}, n.style || {}, n.computedStyle || {})
|
|
244
274
|
const pad = (n.boxModel && n.boxModel.padding) || {}
|
|
275
|
+
const borderWidth = borderWOf(style)
|
|
245
276
|
return {
|
|
246
277
|
...base,
|
|
247
278
|
borderRadius: radiusOf(style),
|
|
@@ -253,7 +284,8 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
253
284
|
fontWeight: weightOf(style),
|
|
254
285
|
textDecoration: decoOf(style),
|
|
255
286
|
overflow: overflowOf(style),
|
|
256
|
-
borderWidth
|
|
287
|
+
borderWidth,
|
|
288
|
+
borderColor: borderWidth ? borderColorOf(style) : undefined,
|
|
257
289
|
}
|
|
258
290
|
})
|
|
259
291
|
})()`;
|
|
@@ -285,7 +317,11 @@ function formatLayoutElements(elements, opts) {
|
|
|
285
317
|
if (el.opacity != null) parts.push(`opacity:${el.opacity}`);
|
|
286
318
|
if (el.textDecoration) parts.push(`deco:${el.textDecoration}`);
|
|
287
319
|
if (el.overflow) parts.push(`overflow:${el.overflow}`);
|
|
288
|
-
if (el.borderWidth)
|
|
320
|
+
if (el.borderWidth) {
|
|
321
|
+
parts.push(
|
|
322
|
+
el.borderColor ? `border:${el.borderWidth}/${el.borderColor}` : `border:${el.borderWidth}`
|
|
323
|
+
);
|
|
324
|
+
}
|
|
289
325
|
}
|
|
290
326
|
if (el.text) {
|
|
291
327
|
const text = el.text.length > 40 ? `${el.text.slice(0, 39)}\u2026` : el.text;
|
|
@@ -931,7 +967,13 @@ async function inspectScrollStateAt(bridge, x, y) {
|
|
|
931
967
|
path: "__sootsimTest.getScrollStateAt",
|
|
932
968
|
args: [x, y]
|
|
933
969
|
});
|
|
934
|
-
|
|
970
|
+
if (!result || typeof result !== "object") return null;
|
|
971
|
+
const state = result;
|
|
972
|
+
return {
|
|
973
|
+
...state,
|
|
974
|
+
scrollOffsetX: typeof state.scrollOffsetX === "number" ? state.scrollOffsetX : state.offsetX,
|
|
975
|
+
scrollOffsetY: typeof state.scrollOffsetY === "number" ? state.scrollOffsetY : state.offsetY
|
|
976
|
+
};
|
|
935
977
|
}
|
|
936
978
|
async function inspectLogs(bridge) {
|
|
937
979
|
const res = await bridge.send({
|
|
@@ -1441,6 +1483,7 @@ function tapTiming(agent, opts = {}) {
|
|
|
1441
1483
|
}
|
|
1442
1484
|
function isTapSuccess(result) {
|
|
1443
1485
|
if (!result || result.hit === false || result.ok === false) return false;
|
|
1486
|
+
if (result.requestedTargetMatched === false) return false;
|
|
1444
1487
|
if (result.pointerTapHandled === false && !result.keyboardOpened && !result.isTextInput) {
|
|
1445
1488
|
return false;
|
|
1446
1489
|
}
|
|
@@ -1448,6 +1491,7 @@ function isTapSuccess(result) {
|
|
|
1448
1491
|
}
|
|
1449
1492
|
function tapTargetFromPayload(payload, textFallback) {
|
|
1450
1493
|
return {
|
|
1494
|
+
nodeId: payload.target?.nodeId ?? payload.match?.nodeId ?? payload.node?.nodeId ?? null,
|
|
1451
1495
|
id: payload.target?.id ?? payload.match?.id ?? payload.node?.id ?? null,
|
|
1452
1496
|
testID: payload.target?.testID ?? payload.match?.testID ?? payload.node?.testID ?? null,
|
|
1453
1497
|
text: payload.target?.text ?? payload.target?.accessibilityLabel ?? payload.match?.text ?? payload.match?.accessibilityLabel ?? payload.node?.text ?? textFallback ?? null,
|
|
@@ -1493,12 +1537,83 @@ async function tapResolvedTarget(bridge, args) {
|
|
|
1493
1537
|
lastOffscreenAt = at;
|
|
1494
1538
|
} else {
|
|
1495
1539
|
lastOffscreenAt = null;
|
|
1496
|
-
const
|
|
1540
|
+
const requestedTarget = tapTargetFromPayload(payload, args.textFallback);
|
|
1541
|
+
const verification = await bridge.send({
|
|
1542
|
+
type: "evaluate",
|
|
1543
|
+
code: `(async () => {
|
|
1544
|
+
const t = window.__sootsimTest
|
|
1545
|
+
if (
|
|
1546
|
+
!t ||
|
|
1547
|
+
typeof t.inspectAt !== 'function' ||
|
|
1548
|
+
typeof t.resolveTapTarget !== 'function'
|
|
1549
|
+
) {
|
|
1550
|
+
return { error: 'tap-target-inspection-unavailable' }
|
|
1551
|
+
}
|
|
1552
|
+
const requestedTarget = ${JSON.stringify(requestedTarget)}
|
|
1553
|
+
const inspected = await t.inspectAt(${payload.cx}, ${payload.cy})
|
|
1554
|
+
const resolved =
|
|
1555
|
+
inspected && typeof inspected.nodeId === 'number'
|
|
1556
|
+
? await t.resolveTapTarget(inspected.nodeId)
|
|
1557
|
+
: null
|
|
1558
|
+
const node = (resolved && resolved.target) || inspected
|
|
1559
|
+
const coordinateTarget = node
|
|
1560
|
+
? {
|
|
1561
|
+
nodeId: node.nodeId ?? null,
|
|
1562
|
+
id: node.id ?? null,
|
|
1563
|
+
testID: node.testID ?? null,
|
|
1564
|
+
text: node.text ?? node.accessibilityLabel ?? null,
|
|
1565
|
+
type: node.type ?? null,
|
|
1566
|
+
}
|
|
1567
|
+
: null
|
|
1568
|
+
const requestedTargetMatched =
|
|
1569
|
+
coordinateTarget === null
|
|
1570
|
+
? false
|
|
1571
|
+
: typeof requestedTarget.nodeId === 'number' &&
|
|
1572
|
+
typeof coordinateTarget.nodeId === 'number'
|
|
1573
|
+
? requestedTarget.nodeId === coordinateTarget.nodeId
|
|
1574
|
+
: requestedTarget.testID && coordinateTarget.testID
|
|
1575
|
+
? requestedTarget.testID === coordinateTarget.testID
|
|
1576
|
+
: requestedTarget.id && coordinateTarget.id
|
|
1577
|
+
? requestedTarget.id === coordinateTarget.id
|
|
1578
|
+
: false
|
|
1579
|
+
return {
|
|
1580
|
+
requestedTargetMatched,
|
|
1581
|
+
requestedTarget,
|
|
1582
|
+
coordinateTarget,
|
|
1583
|
+
}
|
|
1584
|
+
})()`
|
|
1585
|
+
});
|
|
1586
|
+
if (verification?.error) {
|
|
1587
|
+
return {
|
|
1588
|
+
payload,
|
|
1589
|
+
result: {
|
|
1590
|
+
hit: false,
|
|
1591
|
+
reason: verification.error,
|
|
1592
|
+
requestedTarget
|
|
1593
|
+
},
|
|
1594
|
+
attempts,
|
|
1595
|
+
failure: "special"
|
|
1596
|
+
};
|
|
1597
|
+
}
|
|
1598
|
+
if (verification?.requestedTargetMatched === false) {
|
|
1599
|
+
return {
|
|
1600
|
+
payload,
|
|
1601
|
+
result: {
|
|
1602
|
+
hit: false,
|
|
1603
|
+
reason: "target-covered",
|
|
1604
|
+
...verification
|
|
1605
|
+
},
|
|
1606
|
+
attempts,
|
|
1607
|
+
failure: "missed"
|
|
1608
|
+
};
|
|
1609
|
+
}
|
|
1610
|
+
const dispatched = await bridge.send({
|
|
1497
1611
|
type: "tap",
|
|
1498
1612
|
x: payload.cx,
|
|
1499
1613
|
y: payload.cy,
|
|
1500
|
-
target:
|
|
1614
|
+
target: requestedTarget
|
|
1501
1615
|
});
|
|
1616
|
+
const result = dispatched && typeof dispatched === "object" ? { ...dispatched, ...verification } : { hit: !!dispatched, ...verification };
|
|
1502
1617
|
lastResult = result;
|
|
1503
1618
|
if (isTapSuccess(result)) return { payload, result, attempts };
|
|
1504
1619
|
}
|
package/dist-lib/skills.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;
|
|
@@ -498,10 +498,10 @@ var init_registry = __esm({
|
|
|
498
498
|
{ range: ">=3.0.0 <4.0.0", coverage: 0.6, note: "basic screen container" },
|
|
499
499
|
{
|
|
500
500
|
range: ">=4.0.0",
|
|
501
|
-
coverage: 0.
|
|
501
|
+
coverage: 0.9,
|
|
502
502
|
note: "screen container, stack, header config, search bar, navigation props",
|
|
503
|
-
working: "Screen, ScreenContainer, ScreenStack, enableFreeze/freezeEnabled with delayed React freeze, Android modal/pageSheet push fallback, Android statusBarHidden/statusBarStyle/navigationBarHidden traits, push/pop slide, zoom/fade/fade_from_bottom transitions, edge swipe-back, parallax behind-screen, large title collapse, header (back button, inline/large title, custom left/center/right/search bar subviews, crossfade), useHeaderHeight, useTransitionProgress, FullWindowOverlay, SearchBar, Tabs.Host/Screen, lifecycle callbacks (onAppear/onDisappear/onWillAppear/onWillDisappear), onDismissed",
|
|
504
|
-
missing: "statusBarColor/navigationBarColor/navigationBarTranslucent ignored, replaceAnimation differentiation, formSheet
|
|
503
|
+
working: "Screen, ScreenContainer, ScreenStack, enableFreeze/freezeEnabled with delayed React freeze, Android modal/pageSheet push fallback, Android statusBarHidden/statusBarStyle/navigationBarHidden traits, push/pop slide, zoom/fade/fade_from_bottom transitions, edge swipe-back, parallax behind-screen, large title collapse, header (back button, inline/large title, custom left/center/right/search bar subviews, native header bar buttons/menus/badges, crossfade), formSheet custom initial detents/corner radius/grabber/undimmed range and stacked sheets, useHeaderHeight, useTransitionProgress, FullWindowOverlay, SearchBar, Tabs.Host/Screen, lifecycle callbacks (onAppear/onDisappear/onWillAppear/onWillDisappear), onDismissed",
|
|
504
|
+
missing: "statusBarColor/navigationBarColor/navigationBarTranslucent ignored, replaceAnimation differentiation, interactive drag between formSheet detents, integrated search bar placements"
|
|
505
505
|
}
|
|
506
506
|
]
|
|
507
507
|
},
|
|
@@ -3844,6 +3844,19 @@ var init_registry = __esm({
|
|
|
3844
3844
|
]
|
|
3845
3845
|
},
|
|
3846
3846
|
// --- react-navigation: pure JS, runs as-is on top of stubbed screens/gesture-handler/safe-area ---
|
|
3847
|
+
"@vxrn/native": {
|
|
3848
|
+
category: "Navigation",
|
|
3849
|
+
stubType: "native",
|
|
3850
|
+
versions: [
|
|
3851
|
+
{
|
|
3852
|
+
range: ">=1.21.0",
|
|
3853
|
+
coverage: 0.72,
|
|
3854
|
+
note: "native-seam only for toolbar/menu host views. the real @vxrn/native StackToolbar and MenuAction React code runs from the bundle and converts its public composition API into native host props and native-stack header items.",
|
|
3855
|
+
working: "StackToolbar header and bottom placements, Button, Label, Icon with SF Symbols/image sources, Badge, fixed/fluid Spacer, View children, nested Menu/MenuAction trees, disabled/selected/destructive actions, visible action callbacks, and native-stack header bar item integration",
|
|
3856
|
+
missing: "Color and zoom-transition native hosts, SplitView gamma host, bottom SearchBarSlot integration with a configured native search controller, exact UIKit shared-background grouping"
|
|
3857
|
+
}
|
|
3858
|
+
]
|
|
3859
|
+
},
|
|
3847
3860
|
"@react-navigation/native": {
|
|
3848
3861
|
category: "Navigation",
|
|
3849
3862
|
stubType: "works",
|
|
@@ -3862,10 +3875,10 @@ var init_registry = __esm({
|
|
|
3862
3875
|
versions: [
|
|
3863
3876
|
{
|
|
3864
3877
|
range: ">=6.0.0",
|
|
3865
|
-
coverage: 0.
|
|
3878
|
+
coverage: 0.93,
|
|
3866
3879
|
note: "pure JS wrapper around react-native-screens (stubbed); push/pop, header, modals, large titles all flow through screens stub",
|
|
3867
|
-
working: "createNativeStackNavigator, Screen, Group, Navigator, header config (title, back button, large title, search bar, custom left/right), Android modal/pageSheet push fallback, modal/formSheet/pageSheet presentation, push/pop animations, gesture-driven back, freezeOnBlur via react-native-screens, useHeaderHeight",
|
|
3868
|
-
missing: "fidelity bound by react-native-screens stub \u2014 formSheet
|
|
3880
|
+
working: "createNativeStackNavigator, Screen, Group, Navigator, header config (title, back button, large title, search bar, custom left/right, unstable native header button/menu items), Android modal/pageSheet push fallback, modal/formSheet/pageSheet presentation, formSheet initial custom detents/corner radius/grabber/undimmed range and stacked sheets, push/pop animations, gesture-driven back, freezeOnBlur via react-native-screens, useHeaderHeight",
|
|
3881
|
+
missing: "fidelity bound by react-native-screens stub \u2014 interactive drag between formSheet detents and integrated search bar placements"
|
|
3869
3882
|
}
|
|
3870
3883
|
]
|
|
3871
3884
|
},
|
|
@@ -11885,7 +11898,7 @@ function tryWorkspaceSootsim() {
|
|
|
11885
11898
|
const buildMtime = import_node_fs4.default.statSync(distBin).mtimeMs;
|
|
11886
11899
|
if (buildMtime < srcMtime) {
|
|
11887
11900
|
console.warn(
|
|
11888
|
-
`[sootsim] dist-cli/bin.js is older than agent-wrapper.ts \u2014 rebuild with \`bun run --cwd packages/sootsim build:cli
|
|
11901
|
+
`[sootsim] dist-cli/bin.js is older than agent-wrapper.ts \u2014 rebuild with \`bun run --cwd packages/sootsim build:cli\`.`
|
|
11889
11902
|
);
|
|
11890
11903
|
}
|
|
11891
11904
|
}
|
|
@@ -16374,12 +16387,20 @@ var init_app_state_reset = __esm({
|
|
|
16374
16387
|
// cli/commands/inspect/core.ts
|
|
16375
16388
|
function layoutGetNativeEval(opts = {}) {
|
|
16376
16389
|
const includeStyle = opts.styling === true;
|
|
16390
|
+
const filter = opts.filter?.trim().toLowerCase() ?? "";
|
|
16377
16391
|
return `(async () => {
|
|
16378
16392
|
const t = window.__sootsimTest
|
|
16379
16393
|
if (!t || typeof t.listInspectable !== 'function') return []
|
|
16380
16394
|
const list = await t.listInspectable({})
|
|
16381
16395
|
if (!Array.isArray(list)) return []
|
|
16382
16396
|
const includeStyle = ${JSON.stringify(includeStyle)}
|
|
16397
|
+
// narrows by ELEMENT, not by style field: fewer rows, full detail on each.
|
|
16398
|
+
const filter = ${JSON.stringify(filter)}
|
|
16399
|
+
const matchesFilter = (n, text) => {
|
|
16400
|
+
if (!filter) return true
|
|
16401
|
+
const fields = [text, n.testID || n.testId, n.accessibilityRole || n.role, n.type]
|
|
16402
|
+
return fields.some((f) => typeof f === 'string' && f.toLowerCase().includes(filter))
|
|
16403
|
+
}
|
|
16383
16404
|
|
|
16384
16405
|
const num = (v) => (typeof v === 'number' && Number.isFinite(v) ? v : 0)
|
|
16385
16406
|
const round = (v) => Math.round(num(v))
|
|
@@ -16436,6 +16457,17 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
16436
16457
|
}
|
|
16437
16458
|
return max > 0 ? Math.round(max) : undefined
|
|
16438
16459
|
}
|
|
16460
|
+
// only meaningful alongside a real border width, so it is resolved by the
|
|
16461
|
+
// caller below rather than on its own.
|
|
16462
|
+
const borderColorOf = (style) => {
|
|
16463
|
+
if (!style) return undefined
|
|
16464
|
+
const keys = ['borderColor','borderTopColor','borderBottomColor','borderLeftColor','borderRightColor']
|
|
16465
|
+
for (const k of keys) {
|
|
16466
|
+
const c = colorStr(style[k])
|
|
16467
|
+
if (c) return c
|
|
16468
|
+
}
|
|
16469
|
+
return undefined
|
|
16470
|
+
}
|
|
16439
16471
|
|
|
16440
16472
|
const isVisible = (n) => {
|
|
16441
16473
|
const layout = n && n.layout
|
|
@@ -16449,11 +16481,22 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
16449
16481
|
return abs.x + layout.width > 0 && abs.y + layout.height > 0 && abs.x < screenW && abs.y < screenH
|
|
16450
16482
|
}
|
|
16451
16483
|
|
|
16452
|
-
return list.filter(isVisible).
|
|
16484
|
+
return list.filter(isVisible).filter((n) => {
|
|
16485
|
+
const t = typeof n.text === 'string' && n.text.trim() ? n.text.trim() : undefined
|
|
16486
|
+
return matchesFilter(n, t)
|
|
16487
|
+
}).map((n) => {
|
|
16453
16488
|
const layout = n.layout || { x: 0, y: 0, width: 0, height: 0 }
|
|
16454
16489
|
const abs = n.absolute || n.absolutePosition || { x: layout.x, y: layout.y }
|
|
16455
16490
|
const text = typeof n.text === 'string' && n.text.trim() ? n.text.trim() : undefined
|
|
16456
16491
|
const base = {
|
|
16492
|
+
...(typeof n.nodeId === 'number'
|
|
16493
|
+
? {
|
|
16494
|
+
nodeId: n.nodeId,
|
|
16495
|
+
ancestorIds: Array.isArray(n.ancestors)
|
|
16496
|
+
? n.ancestors.map((ancestor) => ancestor && ancestor.nodeId).filter((id) => typeof id === 'number')
|
|
16497
|
+
: [],
|
|
16498
|
+
}
|
|
16499
|
+
: {}),
|
|
16457
16500
|
testID: n.testID || n.testId || undefined,
|
|
16458
16501
|
role: n.accessibilityRole || n.role || undefined,
|
|
16459
16502
|
type: typeof n.type === 'string' ? n.type : 'node',
|
|
@@ -16468,6 +16511,7 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
16468
16511
|
// fall back across both so radius/fontSize survive either shape.
|
|
16469
16512
|
const style = Object.assign({}, n.style || {}, n.computedStyle || {})
|
|
16470
16513
|
const pad = (n.boxModel && n.boxModel.padding) || {}
|
|
16514
|
+
const borderWidth = borderWOf(style)
|
|
16471
16515
|
return {
|
|
16472
16516
|
...base,
|
|
16473
16517
|
borderRadius: radiusOf(style),
|
|
@@ -16479,7 +16523,8 @@ function layoutGetNativeEval(opts = {}) {
|
|
|
16479
16523
|
fontWeight: weightOf(style),
|
|
16480
16524
|
textDecoration: decoOf(style),
|
|
16481
16525
|
overflow: overflowOf(style),
|
|
16482
|
-
borderWidth
|
|
16526
|
+
borderWidth,
|
|
16527
|
+
borderColor: borderWidth ? borderColorOf(style) : undefined,
|
|
16483
16528
|
}
|
|
16484
16529
|
})
|
|
16485
16530
|
})()`;
|
package/dist-lib/vite.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/package.json
CHANGED
package/src/agent-sessions.ts
CHANGED
|
@@ -97,9 +97,9 @@ export function resolveSootsimInvocation(): { cmd: string; prefixArgs: string[]
|
|
|
97
97
|
// workspace build artifacts — tried for every non-CLI-entry node context
|
|
98
98
|
// (electron dev, vite-plugin-hosted daemon, random script) before falling
|
|
99
99
|
// back to argv. prefers the compiled bun binary because `bun dev` runs
|
|
100
|
-
// `watch:cli:binary
|
|
101
|
-
// fallback
|
|
102
|
-
//
|
|
100
|
+
// `watch:cli:binary`; the same dev graph runs `watch:cli` to keep the node
|
|
101
|
+
// fallback and browser-facing dist-lib exports fresh. still warn when a
|
|
102
|
+
// caller starts outside that graph with stale artifacts.
|
|
103
103
|
const workspace = tryWorkspaceSootsim()
|
|
104
104
|
if (workspace) return workspace
|
|
105
105
|
|
|
@@ -140,8 +140,7 @@ function tryWorkspaceSootsim(): { cmd: string; prefixArgs: string[] } | null {
|
|
|
140
140
|
if (buildMtime < srcMtime) {
|
|
141
141
|
console.warn(
|
|
142
142
|
`[sootsim] dist-cli/bin.js is older than agent-wrapper.ts — ` +
|
|
143
|
-
`rebuild with \`bun run --cwd packages/sootsim build:cli
|
|
144
|
-
`(watch:cli:binary builds dist-bin/ instead).`,
|
|
143
|
+
`rebuild with \`bun run --cwd packages/sootsim build:cli\`.`,
|
|
145
144
|
)
|
|
146
145
|
}
|
|
147
146
|
}
|
package/src/vite-plugin.ts
CHANGED
|
@@ -474,12 +474,9 @@ export function reanimatedNativeSeamRedirect(): Plugin {
|
|
|
474
474
|
/\.(native|web|ios|android)$/,
|
|
475
475
|
'',
|
|
476
476
|
)
|
|
477
|
-
//
|
|
478
|
-
//
|
|
479
|
-
//
|
|
480
|
-
// without that handle. redirect to a sootsim-aware version that
|
|
481
|
-
// lazy-attaches the handle before reading it. see
|
|
482
|
-
// `react-native-reanimated-fabric-utils.ts`.
|
|
477
|
+
// keep fabricUtils on the SootSim Fabric public-instance contract. the
|
|
478
|
+
// redirected module reads the constructor-attached handle for native
|
|
479
|
+
// refs and uses ReactFabric's renderer lookup for composite refs.
|
|
483
480
|
if (basename === 'fabricUtils' && importer !== reanimatedFabricUtilsRedirectPath) {
|
|
484
481
|
return reanimatedFabricUtilsRedirectPath
|
|
485
482
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c,d,e}from"./chunk-4NZEQ4MZ.js";import"./chunk-JMHDKBST.js";import"./chunk-EOJFP7X2.js";import"./chunk-3TLRWV6X.js";import"./chunk-3MUI7YAX.js";import"./chunk-W7FIMC6T.js";import"./chunk-KGJRDFXS.js";import"./chunk-73DTCUXW.js";import"./chunk-ALJ2MN26.js";import"./chunk-AFUTBEVW.js";import"./chunk-O5PWKD7X.js";import"./chunk-ZULXAIOA.js";import"./chunk-3M7SGDD2.js";import"./chunk-JQZWNFDY.js";import"./chunk-7QA2WPR3.js";export{c as daemonInstall,b as getDaemonServiceStatus,a as runDaemon,d as teardownDaemonService,e as teardownSootsimHome};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import"./chunk-D4J6U3GH.js";import{f as a,g as b,h as c,i as d,j as e,k as f,l as g,m as h,n as i}from"./chunk-62CZZGL3.js";import"./chunk-GHN465L7.js";import"./chunk-NNE2PWQJ.js";import"./chunk-ALJ2MN26.js";import"./chunk-O5PWKD7X.js";import"./chunk-7QA2WPR3.js";export{e as ALL_DRIVERS,i as buildDriverListRows,a as chromiumDriver,b as electronDriver,f as getAllDrivers,g as getDriver,c as playwrightDriver,h as resolveDriver,d as systemDriver};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{c,d,e,f,g,h}from"./chunk-ETGOES6M.js";import"./chunk-QKRYUPTF.js";import"./chunk-6ERIV33O.js";import{c as a,d as b}from"./chunk-M6CBJ5XY.js";import"./chunk-BAW63ZF6.js";import"./chunk-WARY5JGO.js";import"./chunk-JXGITBPW.js";import"./chunk-E2JJWRNU.js";import"./chunk-LF5KTGTH.js";import"./chunk-TCXJDB7I.js";import"./chunk-62CZZGL3.js";import"./chunk-GHN465L7.js";import"./chunk-URCBOIED.js";import"./chunk-6MFHTRAJ.js";import"./chunk-NNE2PWQJ.js";import"./chunk-WDB42DJI.js";import"./chunk-2X4Q4CJX.js";import"./chunk-T4YTIZS6.js";import"./chunk-JQMTWVQA.js";import"./chunk-WPFTIHKG.js";import"./chunk-JMHDKBST.js";import"./chunk-EOJFP7X2.js";import"./chunk-W7FIMC6T.js";import"./chunk-KGJRDFXS.js";import"./chunk-73DTCUXW.js";import"./chunk-ALJ2MN26.js";import"./chunk-AFUTBEVW.js";import"./chunk-O5PWKD7X.js";import"./chunk-RAKITL2V.js";import"./chunk-JQZWNFDY.js";import"./chunk-7QA2WPR3.js";export{e as discoverSootsimUrl,c as getLastFlowPreviewUploadResult,d as getLastFlowTraceSteps,g as hoistLeadingSimFlag,a as parseFlowFile,f as runFlowPlayback,h as runMaestroAuthoring,b as validateFlowFile};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a,b,c}from"./chunk-3TLRWV6X.js";import"./chunk-3MUI7YAX.js";import"./chunk-W7FIMC6T.js";import"./chunk-KGJRDFXS.js";import"./chunk-73DTCUXW.js";import"./chunk-ALJ2MN26.js";import"./chunk-AFUTBEVW.js";import"./chunk-O5PWKD7X.js";import"./chunk-ZULXAIOA.js";import"./chunk-3M7SGDD2.js";import"./chunk-JQZWNFDY.js";import"./chunk-7QA2WPR3.js";export{c as printCommandHelp,b as printGroupHelp,a as printHelp};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{j as a,k as b}from"./chunk-M6CBJ5XY.js";import"./chunk-BAW63ZF6.js";import"./chunk-E2JJWRNU.js";import"./chunk-LF5KTGTH.js";import"./chunk-TCXJDB7I.js";import"./chunk-62CZZGL3.js";import"./chunk-GHN465L7.js";import"./chunk-URCBOIED.js";import"./chunk-6MFHTRAJ.js";import"./chunk-NNE2PWQJ.js";import"./chunk-WDB42DJI.js";import"./chunk-2X4Q4CJX.js";import"./chunk-T4YTIZS6.js";import"./chunk-JQMTWVQA.js";import"./chunk-WPFTIHKG.js";import"./chunk-W7FIMC6T.js";import"./chunk-KGJRDFXS.js";import"./chunk-73DTCUXW.js";import"./chunk-ALJ2MN26.js";import"./chunk-AFUTBEVW.js";import"./chunk-O5PWKD7X.js";import"./chunk-RAKITL2V.js";import"./chunk-JQZWNFDY.js";import"./chunk-7QA2WPR3.js";export{a as printShellPerfReport,b as runInspect};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{a}from"./chunk-SBVVBTVB.js";import"./chunk-ERAS4JM4.js";import"./chunk-JQMTWVQA.js";import"./chunk-73DTCUXW.js";import"./chunk-ALJ2MN26.js";import"./chunk-O5PWKD7X.js";import"./chunk-7QA2WPR3.js";export{a as runRuntime};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
|
|
2
|
-
import{e as a,f as b,g as c}from"./chunk-WARY5JGO.js";import"./chunk-JXGITBPW.js";import"./chunk-URCBOIED.js";import"./chunk-6MFHTRAJ.js";import"./chunk-NNE2PWQJ.js";import"./chunk-JQMTWVQA.js";import"./chunk-JMHDKBST.js";import"./chunk-EOJFP7X2.js";import"./chunk-73DTCUXW.js";import"./chunk-ALJ2MN26.js";import"./chunk-O5PWKD7X.js";import"./chunk-7QA2WPR3.js";export{a as resolveDefaultUploadOrigin,b as resolvePublicPreviewOrigin,c as runUpload};
|