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.
Files changed (144) hide show
  1. package/dist-cli/bin.js +4 -4
  2. package/dist-cli/chunks/{agent-NIH7EKHN.js → agent-5KVGVFXJ.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-CANNQ3WM.js → agent-wrapper-YVXMSV3X.js} +2 -2
  4. package/dist-cli/chunks/{app-fonts-7WJKCFDA.js → app-fonts-IXF6YPQZ.js} +2 -2
  5. package/dist-cli/chunks/{assert-XUTQTOYN.js → assert-FMNM5VTT.js} +2 -2
  6. package/dist-cli/chunks/{auth-XX355P3M.js → auth-LNSDYZU4.js} +2 -2
  7. package/dist-cli/chunks/beta-BH6RPXQU.js +2 -0
  8. package/dist-cli/chunks/{camera-GDVYCC7S.js → camera-INMAD3CG.js} +2 -2
  9. package/dist-cli/chunks/{chunk-RAKITL2V.js → chunk-44WCYVFQ.js} +2 -2
  10. package/dist-cli/chunks/{chunk-JQMTWVQA.js → chunk-544G2PCM.js} +2 -2
  11. package/dist-cli/chunks/{chunk-QKRYUPTF.js → chunk-5VCOEPSJ.js} +2 -2
  12. package/dist-cli/chunks/{chunk-6MFHTRAJ.js → chunk-6XF2EHL2.js} +1 -1
  13. package/dist-cli/chunks/{chunk-3M7SGDD2.js → chunk-BKDHODNB.js} +1 -1
  14. package/dist-cli/chunks/{chunk-7QA2WPR3.js → chunk-BWKVAEAJ.js} +1 -1
  15. package/dist-cli/chunks/{chunk-JQZWNFDY.js → chunk-CJRALJVV.js} +1 -1
  16. package/dist-cli/chunks/{chunk-KGJRDFXS.js → chunk-CUDTQFGP.js} +2 -2
  17. package/dist-cli/chunks/{chunk-WARY5JGO.js → chunk-D4YH5KNQ.js} +2 -2
  18. package/dist-cli/chunks/{chunk-6ERIV33O.js → chunk-DJIWF2SR.js} +1 -1
  19. package/dist-cli/chunks/{chunk-W7FIMC6T.js → chunk-ECPEYFHV.js} +2 -2
  20. package/dist-cli/chunks/{chunk-NUSQ5DIM.js → chunk-EQYRXSBE.js} +2 -2
  21. package/dist-cli/chunks/{chunk-O5PWKD7X.js → chunk-FOTAUF7Q.js} +1 -1
  22. package/dist-cli/chunks/{chunk-4Y6UGVWJ.js → chunk-GI2S43VF.js} +1 -1
  23. package/dist-cli/chunks/{chunk-ETGOES6M.js → chunk-HE5NBBLH.js} +3 -3
  24. package/dist-cli/chunks/{chunk-AFUTBEVW.js → chunk-HJW6SASW.js} +1 -1
  25. package/dist-cli/chunks/{chunk-73DTCUXW.js → chunk-HV2ZRFGP.js} +1 -1
  26. package/dist-cli/chunks/chunk-J7SEKMNI.js +1 -0
  27. package/dist-cli/chunks/{chunk-5MG75PQR.js → chunk-JBUMYCFR.js} +4 -4
  28. package/dist-cli/chunks/{chunk-EOJFP7X2.js → chunk-JOSDTQZ3.js} +2 -2
  29. package/dist-cli/chunks/{chunk-JXGITBPW.js → chunk-JPNTLGLA.js} +2 -2
  30. package/dist-cli/chunks/{chunk-3MUI7YAX.js → chunk-KCS6OYQV.js} +2 -2
  31. package/dist-cli/chunks/{chunk-S5CSRSWR.js → chunk-LWE27HF7.js} +3 -3
  32. package/dist-cli/chunks/{chunk-LF5KTGTH.js → chunk-MDOTB5DP.js} +2 -2
  33. package/dist-cli/chunks/{chunk-E2JJWRNU.js → chunk-NDU5EJFW.js} +2 -2
  34. package/dist-cli/chunks/{chunk-M6CBJ5XY.js → chunk-NJQSCTFC.js} +130 -89
  35. package/dist-cli/chunks/chunk-NO6RQXYN.js +1 -0
  36. package/dist-cli/chunks/{chunk-BAW63ZF6.js → chunk-P5JIE7R6.js} +2 -2
  37. package/dist-cli/chunks/{chunk-ERAS4JM4.js → chunk-PVIUYYIS.js} +2 -2
  38. package/dist-cli/chunks/{chunk-62CZZGL3.js → chunk-QHJLYAOH.js} +2 -2
  39. package/dist-cli/chunks/{chunk-T4YTIZS6.js → chunk-QYVGMN3I.js} +46 -15
  40. package/dist-cli/chunks/{chunk-4NZEQ4MZ.js → chunk-R5I2OBQM.js} +2 -2
  41. package/dist-cli/chunks/{chunk-WDB42DJI.js → chunk-SBSL3DUQ.js} +1 -1
  42. package/dist-cli/chunks/{chunk-ALJ2MN26.js → chunk-SLIYVKRX.js} +1 -1
  43. package/dist-cli/chunks/{chunk-SBVVBTVB.js → chunk-SOZIIFPY.js} +3 -3
  44. package/dist-cli/chunks/{chunk-URCBOIED.js → chunk-SRMYUHBI.js} +1 -1
  45. package/dist-cli/chunks/{chunk-JMHDKBST.js → chunk-UZRZGXQ4.js} +2 -2
  46. package/dist-cli/chunks/{chunk-3TLRWV6X.js → chunk-VBO7OQLR.js} +2 -2
  47. package/dist-cli/chunks/{chunk-XLT2RL6P.js → chunk-VIM3WDAA.js} +1 -1
  48. package/dist-cli/chunks/{chunk-WPFTIHKG.js → chunk-WXYRA447.js} +1 -1
  49. package/dist-cli/chunks/{chunk-GHN465L7.js → chunk-X7JZ4KTU.js} +1 -1
  50. package/dist-cli/chunks/{chunk-2X4Q4CJX.js → chunk-XWPQVHOL.js} +2 -2
  51. package/dist-cli/chunks/{chunk-ZULXAIOA.js → chunk-YIS2RXPE.js} +1 -1
  52. package/dist-cli/chunks/{chunk-NNE2PWQJ.js → chunk-ZL2KSYJP.js} +1 -1
  53. package/dist-cli/chunks/cli-version-7KCROGJR.js +2 -0
  54. package/dist-cli/chunks/{compat-6WNQAVEB.js → compat-VYOIJUW6.js} +3 -3
  55. package/dist-cli/chunks/{config-WQAHBZKL.js → config-ZJIIQF6K.js} +2 -2
  56. package/dist-cli/chunks/{control-RSW5SZNO.js → control-KFAL3LD7.js} +2 -2
  57. package/dist-cli/chunks/daemon-TJXAVVUE.js +2 -0
  58. package/dist-cli/chunks/{debug-73FQE5N6.js → debug-RCY6BSLW.js} +3 -3
  59. package/dist-cli/chunks/{desktop-OVNY5GJQ.js → desktop-FRZILY3U.js} +3 -3
  60. package/dist-cli/chunks/{detox-3P2L6FYU.js → detox-W2HOZRDP.js} +2 -2
  61. package/dist-cli/chunks/{device-D4W3FFEB.js → device-WRWT7SEE.js} +2 -2
  62. package/dist-cli/chunks/{diagnose-VGWGP46V.js → diagnose-3KSX2NJC.js} +2 -2
  63. package/dist-cli/chunks/drivers-SJOWPOA3.js +2 -0
  64. package/dist-cli/chunks/{film-5ZP2ICET.js → film-QN7NUW6Z.js} +3 -3
  65. package/dist-cli/chunks/flow-Q4XCAPIT.js +2 -0
  66. package/dist-cli/chunks/help-FRVJH7SB.js +2 -0
  67. package/dist-cli/chunks/{hidden-runtime-alias-6ORU5BU5.js → hidden-runtime-alias-NIH62HCH.js} +2 -2
  68. package/dist-cli/chunks/{home-paths-TPX7JREW.js → home-paths-3CPTCZDU.js} +2 -2
  69. package/dist-cli/chunks/inspect-5ZZN4UJN.js +2 -0
  70. package/dist-cli/chunks/install-desktop-MIY6DLN6.js +2 -0
  71. package/dist-cli/chunks/{login-DGC5FTDF.js → login-HQ3356B6.js} +4 -4
  72. package/dist-cli/chunks/{logout-PDQBKY4G.js → logout-LVVXQS5S.js} +2 -2
  73. package/dist-cli/chunks/{maestro-3JSIIS5X.js → maestro-34Y7GOG5.js} +3 -3
  74. package/dist-cli/chunks/{maestro-generate-GCSWSG2K.js → maestro-generate-XBIZ7Z6U.js} +3 -3
  75. package/dist-cli/chunks/{mode-N5XFREJ5.js → mode-VXZR6I46.js} +2 -2
  76. package/dist-cli/chunks/optional-demo-registry-5JSIUIMF.js +2 -0
  77. package/dist-cli/chunks/{perf-WPRQA46P.js → perf-IBHKDDFN.js} +2 -2
  78. package/dist-cli/chunks/{record-SRLNC52N.js → record-S5WYHPNR.js} +3 -3
  79. package/dist-cli/chunks/runtime-5K5JFYOZ.js +2 -0
  80. package/dist-cli/chunks/{screenshot-command-SDVOFZPU.js → screenshot-command-T65M2SYC.js} +3 -3
  81. package/dist-cli/chunks/{screenshots-capture-UNF423TF.js → screenshots-capture-75AHIYWA.js} +2 -2
  82. package/dist-cli/chunks/{serve-I6ZP6LCF.js → serve-OJVA6PNV.js} +2 -2
  83. package/dist-cli/chunks/{setup-KB2N4BV6.js → setup-TLQ2VM3F.js} +3 -3
  84. package/dist-cli/chunks/{skills-Z7LFL4PF.js → skills-LZZDB6V5.js} +2 -2
  85. package/dist-cli/chunks/{storage-TLR45DGA.js → storage-G2IZ2WAD.js} +2 -2
  86. package/dist-cli/chunks/store-X6HDJ5SE.js +2 -0
  87. package/dist-cli/chunks/telemetry-AHMOJS6L.js +2 -0
  88. package/dist-cli/chunks/{timeline-5VYYMGSC.js → timeline-L4CFSXX3.js} +2 -2
  89. package/dist-cli/chunks/{upgrade-BEMPTIE6.js → upgrade-5USALUAU.js} +2 -2
  90. package/dist-cli/chunks/upload-OWMPT3Z7.js +2 -0
  91. package/dist-cli/chunks/{version-BFBYH5U7.js → version-RQZPUNJO.js} +2 -2
  92. package/dist-cli/chunks/web-YQ6XAB5F.js +2 -0
  93. package/dist-cli/chunks/{what-happened-HQOFQYP5.js → what-happened-JLAM7TBD.js} +2 -2
  94. package/dist-lib/agent-daemon-client.cjs +2 -2
  95. package/dist-lib/agent-events.cjs +1 -1
  96. package/dist-lib/agent-identity.cjs +1 -1
  97. package/dist-lib/agent-sessions.cjs +2 -2
  98. package/dist-lib/attached-projects.cjs +1 -1
  99. package/dist-lib/auth/shared-session.cjs +1 -1
  100. package/dist-lib/backend-origin.cjs +1 -1
  101. package/dist-lib/beta.cjs +1 -1
  102. package/dist-lib/beta.mjs +1 -1
  103. package/dist-lib/bridge-constants.cjs +1 -1
  104. package/dist-lib/cli-constants.cjs +1 -1
  105. package/dist-lib/config.cjs +1 -1
  106. package/dist-lib/detox/index.cjs +1 -1
  107. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  108. package/dist-lib/home-paths.cjs +1 -1
  109. package/dist-lib/host/bridge-host.cjs +2 -2
  110. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  111. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  112. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  113. package/dist-lib/host/websocket-proxy.cjs +1 -1
  114. package/dist-lib/index.cjs +1 -1
  115. package/dist-lib/jump-to-source-babel.cjs +1 -1
  116. package/dist-lib/menu.cjs +1 -1
  117. package/dist-lib/menu.mjs +1 -1
  118. package/dist-lib/metro.cjs +1 -1
  119. package/dist-lib/profiles.cjs +1 -1
  120. package/dist-lib/render-mode.cjs +1 -1
  121. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  122. package/dist-lib/sdk.cjs +122 -7
  123. package/dist-lib/sdk.mjs +122 -7
  124. package/dist-lib/skills.cjs +55 -10
  125. package/dist-lib/vite.cjs +1 -1
  126. package/package.json +1 -1
  127. package/src/agent-sessions.ts +4 -5
  128. package/src/vite-plugin.ts +3 -6
  129. package/dist-cli/chunks/beta-TGYZFOQJ.js +0 -2
  130. package/dist-cli/chunks/chunk-D4J6U3GH.js +0 -1
  131. package/dist-cli/chunks/chunk-TCXJDB7I.js +0 -1
  132. package/dist-cli/chunks/cli-version-CWJ4E23R.js +0 -2
  133. package/dist-cli/chunks/daemon-WCJIE7IG.js +0 -2
  134. package/dist-cli/chunks/drivers-NHFMITWU.js +0 -2
  135. package/dist-cli/chunks/flow-4KLRYEIU.js +0 -2
  136. package/dist-cli/chunks/help-CMC766TA.js +0 -2
  137. package/dist-cli/chunks/inspect-JNFBNXXE.js +0 -2
  138. package/dist-cli/chunks/install-desktop-TT4BA2NZ.js +0 -2
  139. package/dist-cli/chunks/optional-demo-registry-36MD5PON.js +0 -2
  140. package/dist-cli/chunks/runtime-JPMZUBIX.js +0 -2
  141. package/dist-cli/chunks/store-6FCWQNXM.js +0 -2
  142. package/dist-cli/chunks/telemetry-Q2DXNKX4.js +0 -2
  143. package/dist-cli/chunks/upload-2F643M7Y.js +0 -2
  144. package/dist-cli/chunks/web-7O2LHQ4V.js +0 -2
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.237 | (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-T4YTIZS6.js";import{g as A,i as _}from"./chunk-JQMTWVQA.js";import"./chunk-73DTCUXW.js";import{c as k}from"./chunk-ALJ2MN26.js";import"./chunk-O5PWKD7X.js";import"./chunk-7QA2WPR3.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(`
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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\` (watch:cli:binary builds dist-bin/ instead).`
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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\` (watch:cli:binary builds dist-bin/ instead).`
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.239 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/beta.ts
4
4
  var IS_BETA = true;
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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\` (watch:cli:binary builds dist-bin/ instead).`
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
1
+ /*! sootsim v0.1.239 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
2
 
3
3
  // src/menu.ts
4
4
  var SOOTSIM_ENGINE_EVENT_NAME = "sootsim:engine-event";
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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.237 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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).map((n) => {
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: borderWOf(style),
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) parts.push(`border:${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
- return result && typeof result === "object" ? result : null;
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 result = await bridge.send({
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: tapTargetFromPayload(payload, args.textFallback)
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
  }