sootsim 0.1.238 → 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 (142) hide show
  1. package/dist-cli/bin.js +4 -4
  2. package/dist-cli/chunks/{agent-VQVLJBBZ.js → agent-5KVGVFXJ.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-ABFE7KJQ.js → agent-wrapper-YVXMSV3X.js} +2 -2
  4. package/dist-cli/chunks/{app-fonts-ODI2DJ7C.js → app-fonts-IXF6YPQZ.js} +2 -2
  5. package/dist-cli/chunks/{assert-ZXNN3U2C.js → assert-FMNM5VTT.js} +2 -2
  6. package/dist-cli/chunks/{auth-LMHWH6T3.js → auth-LNSDYZU4.js} +2 -2
  7. package/dist-cli/chunks/beta-BH6RPXQU.js +2 -0
  8. package/dist-cli/chunks/{camera-VWTIE3VW.js → camera-INMAD3CG.js} +2 -2
  9. package/dist-cli/chunks/{chunk-QGCNRLCM.js → chunk-44WCYVFQ.js} +2 -2
  10. package/dist-cli/chunks/{chunk-CXV3CSSF.js → chunk-544G2PCM.js} +2 -2
  11. package/dist-cli/chunks/{chunk-XOKMWX3P.js → chunk-5VCOEPSJ.js} +2 -2
  12. package/dist-cli/chunks/{chunk-5MFTB3S4.js → chunk-6XF2EHL2.js} +1 -1
  13. package/dist-cli/chunks/{chunk-SCLKEUCN.js → chunk-BKDHODNB.js} +1 -1
  14. package/dist-cli/chunks/{chunk-YK4NG4BL.js → chunk-BWKVAEAJ.js} +1 -1
  15. package/dist-cli/chunks/{chunk-2FFZXFDY.js → chunk-CJRALJVV.js} +1 -1
  16. package/dist-cli/chunks/{chunk-YNSDDYLM.js → chunk-CUDTQFGP.js} +2 -2
  17. package/dist-cli/chunks/{chunk-MT2HMCDI.js → chunk-D4YH5KNQ.js} +2 -2
  18. package/dist-cli/chunks/{chunk-MD5GBDM4.js → chunk-DJIWF2SR.js} +1 -1
  19. package/dist-cli/chunks/{chunk-RTMLR7KA.js → chunk-ECPEYFHV.js} +2 -2
  20. package/dist-cli/chunks/{chunk-2PFG3UHP.js → chunk-EQYRXSBE.js} +2 -2
  21. package/dist-cli/chunks/{chunk-DMSG7ESJ.js → chunk-FOTAUF7Q.js} +1 -1
  22. package/dist-cli/chunks/{chunk-4DN5YMPS.js → chunk-GI2S43VF.js} +1 -1
  23. package/dist-cli/chunks/{chunk-CDAMSEOW.js → chunk-HE5NBBLH.js} +3 -3
  24. package/dist-cli/chunks/{chunk-XUOCSWW4.js → chunk-HJW6SASW.js} +1 -1
  25. package/dist-cli/chunks/{chunk-6PYVHZVH.js → chunk-HV2ZRFGP.js} +1 -1
  26. package/dist-cli/chunks/chunk-J7SEKMNI.js +1 -0
  27. package/dist-cli/chunks/{chunk-VTY35NKD.js → chunk-JBUMYCFR.js} +2 -2
  28. package/dist-cli/chunks/{chunk-HC6JXVIP.js → chunk-JOSDTQZ3.js} +2 -2
  29. package/dist-cli/chunks/{chunk-LYSW5PTM.js → chunk-JPNTLGLA.js} +2 -2
  30. package/dist-cli/chunks/{chunk-4DPHH2DS.js → chunk-KCS6OYQV.js} +2 -2
  31. package/dist-cli/chunks/{chunk-HTTHCQQS.js → chunk-LWE27HF7.js} +3 -3
  32. package/dist-cli/chunks/{chunk-ECCUSCHO.js → chunk-MDOTB5DP.js} +2 -2
  33. package/dist-cli/chunks/{chunk-A46S76WN.js → chunk-NDU5EJFW.js} +2 -2
  34. package/dist-cli/chunks/{chunk-CGQTOBHQ.js → chunk-NJQSCTFC.js} +128 -87
  35. package/dist-cli/chunks/chunk-NO6RQXYN.js +1 -0
  36. package/dist-cli/chunks/{chunk-UYFE2VRP.js → chunk-P5JIE7R6.js} +2 -2
  37. package/dist-cli/chunks/{chunk-GI4YPHU6.js → chunk-PVIUYYIS.js} +2 -2
  38. package/dist-cli/chunks/{chunk-7OQU5M3J.js → chunk-QHJLYAOH.js} +2 -2
  39. package/dist-cli/chunks/{chunk-XWGGIFDB.js → chunk-QYVGMN3I.js} +16 -8
  40. package/dist-cli/chunks/{chunk-5MQZW32V.js → chunk-R5I2OBQM.js} +2 -2
  41. package/dist-cli/chunks/{chunk-EGRRMDLA.js → chunk-SBSL3DUQ.js} +1 -1
  42. package/dist-cli/chunks/{chunk-NCJGR7VZ.js → chunk-SLIYVKRX.js} +1 -1
  43. package/dist-cli/chunks/{chunk-D5LYVGSE.js → chunk-SOZIIFPY.js} +3 -3
  44. package/dist-cli/chunks/{chunk-CU7M5IBW.js → chunk-SRMYUHBI.js} +1 -1
  45. package/dist-cli/chunks/{chunk-6UMCNLKY.js → chunk-UZRZGXQ4.js} +2 -2
  46. package/dist-cli/chunks/{chunk-KGAN3JXK.js → chunk-VBO7OQLR.js} +2 -2
  47. package/dist-cli/chunks/{chunk-6KMMJDSE.js → chunk-VIM3WDAA.js} +1 -1
  48. package/dist-cli/chunks/{chunk-QGFPGXNJ.js → chunk-WXYRA447.js} +1 -1
  49. package/dist-cli/chunks/{chunk-3KVQ35TN.js → chunk-X7JZ4KTU.js} +1 -1
  50. package/dist-cli/chunks/{chunk-54XALXOI.js → chunk-XWPQVHOL.js} +2 -2
  51. package/dist-cli/chunks/{chunk-OHLPCYOM.js → chunk-YIS2RXPE.js} +1 -1
  52. package/dist-cli/chunks/{chunk-IHEPAACR.js → chunk-ZL2KSYJP.js} +1 -1
  53. package/dist-cli/chunks/cli-version-7KCROGJR.js +2 -0
  54. package/dist-cli/chunks/{compat-JZPFXICF.js → compat-VYOIJUW6.js} +3 -3
  55. package/dist-cli/chunks/{config-UL7HLQDC.js → config-ZJIIQF6K.js} +2 -2
  56. package/dist-cli/chunks/{control-QKU5C5S2.js → control-KFAL3LD7.js} +2 -2
  57. package/dist-cli/chunks/daemon-TJXAVVUE.js +2 -0
  58. package/dist-cli/chunks/{debug-H5DH3AQF.js → debug-RCY6BSLW.js} +3 -3
  59. package/dist-cli/chunks/{desktop-6KNJHXC3.js → desktop-FRZILY3U.js} +3 -3
  60. package/dist-cli/chunks/{detox-GGHGQ4ZT.js → detox-W2HOZRDP.js} +2 -2
  61. package/dist-cli/chunks/{device-BRDNCJVC.js → device-WRWT7SEE.js} +2 -2
  62. package/dist-cli/chunks/{diagnose-YYUH2HKW.js → diagnose-3KSX2NJC.js} +2 -2
  63. package/dist-cli/chunks/drivers-SJOWPOA3.js +2 -0
  64. package/dist-cli/chunks/{film-ZCOJKWH3.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-FKPQZHNW.js → hidden-runtime-alias-NIH62HCH.js} +2 -2
  68. package/dist-cli/chunks/{home-paths-XVONOHWM.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-4DXNKRVF.js → login-HQ3356B6.js} +4 -4
  72. package/dist-cli/chunks/{logout-ARENLQQ5.js → logout-LVVXQS5S.js} +2 -2
  73. package/dist-cli/chunks/{maestro-G7VNKI32.js → maestro-34Y7GOG5.js} +3 -3
  74. package/dist-cli/chunks/{maestro-generate-U3YRKKPN.js → maestro-generate-XBIZ7Z6U.js} +3 -3
  75. package/dist-cli/chunks/{mode-FNLKDZKM.js → mode-VXZR6I46.js} +2 -2
  76. package/dist-cli/chunks/optional-demo-registry-5JSIUIMF.js +2 -0
  77. package/dist-cli/chunks/{perf-C3O4QGRB.js → perf-IBHKDDFN.js} +2 -2
  78. package/dist-cli/chunks/{record-YEOZEOTK.js → record-S5WYHPNR.js} +3 -3
  79. package/dist-cli/chunks/runtime-5K5JFYOZ.js +2 -0
  80. package/dist-cli/chunks/{screenshot-command-CCVMBNZ7.js → screenshot-command-T65M2SYC.js} +3 -3
  81. package/dist-cli/chunks/{screenshots-capture-GIVPWSQG.js → screenshots-capture-75AHIYWA.js} +2 -2
  82. package/dist-cli/chunks/{serve-KYU7THWX.js → serve-OJVA6PNV.js} +2 -2
  83. package/dist-cli/chunks/{setup-OQ7EMGIY.js → setup-TLQ2VM3F.js} +3 -3
  84. package/dist-cli/chunks/{skills-Z25AHTRM.js → skills-LZZDB6V5.js} +2 -2
  85. package/dist-cli/chunks/{storage-EDYGSOMU.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-FTAZATIZ.js → timeline-L4CFSXX3.js} +2 -2
  89. package/dist-cli/chunks/{upgrade-JBRL4AHX.js → upgrade-5USALUAU.js} +2 -2
  90. package/dist-cli/chunks/upload-OWMPT3Z7.js +2 -0
  91. package/dist-cli/chunks/{version-H6PRWWUE.js → version-RQZPUNJO.js} +2 -2
  92. package/dist-cli/chunks/web-YQ6XAB5F.js +2 -0
  93. package/dist-cli/chunks/{what-happened-A7IDSBXP.js → what-happened-JLAM7TBD.js} +2 -2
  94. package/dist-lib/agent-daemon-client.cjs +1 -1
  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 +1 -1
  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 +1 -1
  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 +91 -4
  123. package/dist-lib/sdk.mjs +91 -4
  124. package/dist-lib/skills.cjs +28 -7
  125. package/dist-lib/vite.cjs +1 -1
  126. package/package.json +1 -1
  127. package/dist-cli/chunks/beta-TN34R6YC.js +0 -2
  128. package/dist-cli/chunks/chunk-QAKSIRZO.js +0 -1
  129. package/dist-cli/chunks/chunk-UV4NF53M.js +0 -1
  130. package/dist-cli/chunks/cli-version-JMIF5EGD.js +0 -2
  131. package/dist-cli/chunks/daemon-IREYS2N7.js +0 -2
  132. package/dist-cli/chunks/drivers-IHDBZZUB.js +0 -2
  133. package/dist-cli/chunks/flow-TXWXTHAY.js +0 -2
  134. package/dist-cli/chunks/help-TAORLP73.js +0 -2
  135. package/dist-cli/chunks/inspect-ALJUDST3.js +0 -2
  136. package/dist-cli/chunks/install-desktop-W5JGGPCV.js +0 -2
  137. package/dist-cli/chunks/optional-demo-registry-Y5KQWQ6V.js +0 -2
  138. package/dist-cli/chunks/runtime-VCWHZCYU.js +0 -2
  139. package/dist-cli/chunks/store-BP3EICTQ.js +0 -2
  140. package/dist-cli/chunks/telemetry-K2S6RLSW.js +0 -2
  141. package/dist-cli/chunks/upload-JVFQZS5Z.js +0 -2
  142. package/dist-cli/chunks/web-D45A6FKK.js +0 -2
@@ -1,5 +1,5 @@
1
- /*! sootsim v0.1.238 | (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-XWGGIFDB.js";import{g as A,i as _}from"./chunk-CXV3CSSF.js";import"./chunk-6PYVHZVH.js";import{c as k}from"./chunk-NCJGR7VZ.js";import"./chunk-DMSG7ESJ.js";import"./chunk-YK4NG4BL.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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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.238 | (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;
@@ -340,6 +340,14 @@ function layoutGetNativeEval(opts = {}) {
340
340
  const abs = n.absolute || n.absolutePosition || { x: layout.x, y: layout.y }
341
341
  const text = typeof n.text === 'string' && n.text.trim() ? n.text.trim() : undefined
342
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
+ : {}),
343
351
  testID: n.testID || n.testId || undefined,
344
352
  role: n.accessibilityRole || n.role || undefined,
345
353
  type: typeof n.type === 'string' ? n.type : 'node',
@@ -1049,7 +1057,13 @@ async function inspectScrollStateAt(bridge, x, y) {
1049
1057
  path: "__sootsimTest.getScrollStateAt",
1050
1058
  args: [x, y]
1051
1059
  });
1052
- 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
+ };
1053
1067
  }
1054
1068
  async function inspectLogs(bridge) {
1055
1069
  const res = await bridge.send({
@@ -1559,6 +1573,7 @@ function tapTiming(agent, opts = {}) {
1559
1573
  }
1560
1574
  function isTapSuccess(result) {
1561
1575
  if (!result || result.hit === false || result.ok === false) return false;
1576
+ if (result.requestedTargetMatched === false) return false;
1562
1577
  if (result.pointerTapHandled === false && !result.keyboardOpened && !result.isTextInput) {
1563
1578
  return false;
1564
1579
  }
@@ -1566,6 +1581,7 @@ function isTapSuccess(result) {
1566
1581
  }
1567
1582
  function tapTargetFromPayload(payload, textFallback) {
1568
1583
  return {
1584
+ nodeId: payload.target?.nodeId ?? payload.match?.nodeId ?? payload.node?.nodeId ?? null,
1569
1585
  id: payload.target?.id ?? payload.match?.id ?? payload.node?.id ?? null,
1570
1586
  testID: payload.target?.testID ?? payload.match?.testID ?? payload.node?.testID ?? null,
1571
1587
  text: payload.target?.text ?? payload.target?.accessibilityLabel ?? payload.match?.text ?? payload.match?.accessibilityLabel ?? payload.node?.text ?? textFallback ?? null,
@@ -1611,12 +1627,83 @@ async function tapResolvedTarget(bridge, args) {
1611
1627
  lastOffscreenAt = at;
1612
1628
  } else {
1613
1629
  lastOffscreenAt = null;
1614
- 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({
1615
1701
  type: "tap",
1616
1702
  x: payload.cx,
1617
1703
  y: payload.cy,
1618
- target: tapTargetFromPayload(payload, args.textFallback)
1704
+ target: requestedTarget
1619
1705
  });
1706
+ const result = dispatched && typeof dispatched === "object" ? { ...dispatched, ...verification } : { hit: !!dispatched, ...verification };
1620
1707
  lastResult = result;
1621
1708
  if (isTapSuccess(result)) return { payload, result, attempts };
1622
1709
  }
package/dist-lib/sdk.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.238 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
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) {
@@ -250,6 +250,14 @@ function layoutGetNativeEval(opts = {}) {
250
250
  const abs = n.absolute || n.absolutePosition || { x: layout.x, y: layout.y }
251
251
  const text = typeof n.text === 'string' && n.text.trim() ? n.text.trim() : undefined
252
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
+ : {}),
253
261
  testID: n.testID || n.testId || undefined,
254
262
  role: n.accessibilityRole || n.role || undefined,
255
263
  type: typeof n.type === 'string' ? n.type : 'node',
@@ -959,7 +967,13 @@ async function inspectScrollStateAt(bridge, x, y) {
959
967
  path: "__sootsimTest.getScrollStateAt",
960
968
  args: [x, y]
961
969
  });
962
- return result && typeof result === "object" ? result : null;
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
+ };
963
977
  }
964
978
  async function inspectLogs(bridge) {
965
979
  const res = await bridge.send({
@@ -1469,6 +1483,7 @@ function tapTiming(agent, opts = {}) {
1469
1483
  }
1470
1484
  function isTapSuccess(result) {
1471
1485
  if (!result || result.hit === false || result.ok === false) return false;
1486
+ if (result.requestedTargetMatched === false) return false;
1472
1487
  if (result.pointerTapHandled === false && !result.keyboardOpened && !result.isTextInput) {
1473
1488
  return false;
1474
1489
  }
@@ -1476,6 +1491,7 @@ function isTapSuccess(result) {
1476
1491
  }
1477
1492
  function tapTargetFromPayload(payload, textFallback) {
1478
1493
  return {
1494
+ nodeId: payload.target?.nodeId ?? payload.match?.nodeId ?? payload.node?.nodeId ?? null,
1479
1495
  id: payload.target?.id ?? payload.match?.id ?? payload.node?.id ?? null,
1480
1496
  testID: payload.target?.testID ?? payload.match?.testID ?? payload.node?.testID ?? null,
1481
1497
  text: payload.target?.text ?? payload.target?.accessibilityLabel ?? payload.match?.text ?? payload.match?.accessibilityLabel ?? payload.node?.text ?? textFallback ?? null,
@@ -1521,12 +1537,83 @@ async function tapResolvedTarget(bridge, args) {
1521
1537
  lastOffscreenAt = at;
1522
1538
  } else {
1523
1539
  lastOffscreenAt = null;
1524
- const result = await bridge.send({
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({
1525
1611
  type: "tap",
1526
1612
  x: payload.cx,
1527
1613
  y: payload.cy,
1528
- target: tapTargetFromPayload(payload, args.textFallback)
1614
+ target: requestedTarget
1529
1615
  });
1616
+ const result = dispatched && typeof dispatched === "object" ? { ...dispatched, ...verification } : { hit: !!dispatched, ...verification };
1530
1617
  lastResult = result;
1531
1618
  if (isTapSuccess(result)) return { payload, result, attempts };
1532
1619
  }
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.238 | (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;
@@ -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.87,
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 detent fidelity, integrated search bar placements"
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.9,
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 detent fidelity, search bar placements"
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
  },
@@ -16476,6 +16489,14 @@ function layoutGetNativeEval(opts = {}) {
16476
16489
  const abs = n.absolute || n.absolutePosition || { x: layout.x, y: layout.y }
16477
16490
  const text = typeof n.text === 'string' && n.text.trim() ? n.text.trim() : undefined
16478
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
+ : {}),
16479
16500
  testID: n.testID || n.testId || undefined,
16480
16501
  role: n.accessibilityRole || n.role || undefined,
16481
16502
  type: typeof n.type === 'string' ? n.type : 'node',
package/dist-lib/vite.cjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! sootsim v0.1.238 | (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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sootsim",
3
- "version": "0.1.238",
3
+ "version": "0.1.239",
4
4
  "description": "sootsim CLI + vite/metro plugins + skills registry. bridge client for driving the proprietary sootsim-engine over WebSocket.",
5
5
  "author": "Tamagui LLC",
6
6
  "license": "MIT",
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.238 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d}from"./chunk-SCLKEUCN.js";import"./chunk-YK4NG4BL.js";export{d as BETA_ASK_HEADLINE,b as BETA_LABEL,c as BETA_TAGLINE,a as IS_BETA};
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.238 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1 +0,0 @@
1
- /*! sootsim v0.1.238 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.238 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a}from"./chunk-OHLPCYOM.js";import"./chunk-YK4NG4BL.js";export{a as getCliVersion};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.238 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c,d,e}from"./chunk-5MQZW32V.js";import"./chunk-6UMCNLKY.js";import"./chunk-HC6JXVIP.js";import"./chunk-KGAN3JXK.js";import"./chunk-4DPHH2DS.js";import"./chunk-RTMLR7KA.js";import"./chunk-YNSDDYLM.js";import"./chunk-6PYVHZVH.js";import"./chunk-NCJGR7VZ.js";import"./chunk-XUOCSWW4.js";import"./chunk-DMSG7ESJ.js";import"./chunk-OHLPCYOM.js";import"./chunk-SCLKEUCN.js";import"./chunk-2FFZXFDY.js";import"./chunk-YK4NG4BL.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.238 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import"./chunk-UV4NF53M.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-7OQU5M3J.js";import"./chunk-3KVQ35TN.js";import"./chunk-IHEPAACR.js";import"./chunk-NCJGR7VZ.js";import"./chunk-DMSG7ESJ.js";import"./chunk-YK4NG4BL.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.238 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{c,d,e,f,g,h}from"./chunk-CDAMSEOW.js";import"./chunk-XOKMWX3P.js";import"./chunk-MD5GBDM4.js";import{c as a,d as b}from"./chunk-CGQTOBHQ.js";import"./chunk-UYFE2VRP.js";import"./chunk-MT2HMCDI.js";import"./chunk-LYSW5PTM.js";import"./chunk-A46S76WN.js";import"./chunk-ECCUSCHO.js";import"./chunk-QAKSIRZO.js";import"./chunk-7OQU5M3J.js";import"./chunk-3KVQ35TN.js";import"./chunk-CU7M5IBW.js";import"./chunk-5MFTB3S4.js";import"./chunk-IHEPAACR.js";import"./chunk-EGRRMDLA.js";import"./chunk-54XALXOI.js";import"./chunk-XWGGIFDB.js";import"./chunk-CXV3CSSF.js";import"./chunk-QGFPGXNJ.js";import"./chunk-6UMCNLKY.js";import"./chunk-HC6JXVIP.js";import"./chunk-RTMLR7KA.js";import"./chunk-YNSDDYLM.js";import"./chunk-6PYVHZVH.js";import"./chunk-NCJGR7VZ.js";import"./chunk-XUOCSWW4.js";import"./chunk-DMSG7ESJ.js";import"./chunk-QGCNRLCM.js";import"./chunk-2FFZXFDY.js";import"./chunk-YK4NG4BL.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.238 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a,b,c}from"./chunk-KGAN3JXK.js";import"./chunk-4DPHH2DS.js";import"./chunk-RTMLR7KA.js";import"./chunk-YNSDDYLM.js";import"./chunk-6PYVHZVH.js";import"./chunk-NCJGR7VZ.js";import"./chunk-XUOCSWW4.js";import"./chunk-DMSG7ESJ.js";import"./chunk-OHLPCYOM.js";import"./chunk-SCLKEUCN.js";import"./chunk-2FFZXFDY.js";import"./chunk-YK4NG4BL.js";export{c as printCommandHelp,b as printGroupHelp,a as printHelp};
@@ -1,2 +0,0 @@
1
- /*! sootsim v0.1.238 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{j as a,k as b}from"./chunk-CGQTOBHQ.js";import"./chunk-UYFE2VRP.js";import"./chunk-A46S76WN.js";import"./chunk-ECCUSCHO.js";import"./chunk-QAKSIRZO.js";import"./chunk-7OQU5M3J.js";import"./chunk-3KVQ35TN.js";import"./chunk-CU7M5IBW.js";import"./chunk-5MFTB3S4.js";import"./chunk-IHEPAACR.js";import"./chunk-EGRRMDLA.js";import"./chunk-54XALXOI.js";import"./chunk-XWGGIFDB.js";import"./chunk-CXV3CSSF.js";import"./chunk-QGFPGXNJ.js";import"./chunk-RTMLR7KA.js";import"./chunk-YNSDDYLM.js";import"./chunk-6PYVHZVH.js";import"./chunk-NCJGR7VZ.js";import"./chunk-XUOCSWW4.js";import"./chunk-DMSG7ESJ.js";import"./chunk-QGCNRLCM.js";import"./chunk-2FFZXFDY.js";import"./chunk-YK4NG4BL.js";export{a as printShellPerfReport,b as runInspect};