sootsim 0.1.200 → 0.1.202

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 (151) hide show
  1. package/dist-cli/bin.js +5 -4
  2. package/dist-cli/chunks/{agent-RJBLYNGF.js → agent-SP6EE5XV.js} +2 -2
  3. package/dist-cli/chunks/{agent-wrapper-E6WLI6L3.js → agent-wrapper-PWZVJ3OK.js} +2 -2
  4. package/dist-cli/chunks/{app-fonts-O3VYBYQW.js → app-fonts-EMJB6QLM.js} +2 -2
  5. package/dist-cli/chunks/{assert-VFBTT2JB.js → assert-H2B6TDXT.js} +2 -2
  6. package/dist-cli/chunks/{auth-DQ6AJU2X.js → auth-SOHXBYLQ.js} +2 -2
  7. package/dist-cli/chunks/beta-CCNQQ73A.js +2 -0
  8. package/dist-cli/chunks/{camera-C2OFA3JA.js → camera-ULLCBM5H.js} +2 -2
  9. package/dist-cli/chunks/{chunk-UGJFYNMX.js → chunk-2CID4LNK.js} +3 -3
  10. package/dist-cli/chunks/chunk-2V43M57C.js +2 -0
  11. package/dist-cli/chunks/{chunk-GKXPIE6X.js → chunk-3ZENZOIX.js} +2 -2
  12. package/dist-cli/chunks/{chunk-6RHOWIGL.js → chunk-4KT2BGQE.js} +1 -1
  13. package/dist-cli/chunks/{chunk-P4PCUR4Y.js → chunk-4KVSVFRF.js} +1 -1
  14. package/dist-cli/chunks/{chunk-VACKEJ3E.js → chunk-4NM6JBYH.js} +1 -1
  15. package/dist-cli/chunks/chunk-5J63S2NM.js +1 -0
  16. package/dist-cli/chunks/{chunk-7BS4AKZT.js → chunk-5SKKMM7E.js} +1 -1
  17. package/dist-cli/chunks/chunk-6FZ6SNVP.js +4 -0
  18. package/dist-cli/chunks/{chunk-3BEGOL5T.js → chunk-6QFVYLX6.js} +2 -2
  19. package/dist-cli/chunks/{chunk-IJ6DRL7N.js → chunk-AAQVPSIV.js} +2 -2
  20. package/dist-cli/chunks/{chunk-XF3JBBPU.js → chunk-B6JB4THC.js} +2 -2
  21. package/dist-cli/chunks/{chunk-JJOS6L5H.js → chunk-BZ7AW7ZB.js} +2 -2
  22. package/dist-cli/chunks/{chunk-OCA5CK4S.js → chunk-CB7LDZKJ.js} +3 -3
  23. package/dist-cli/chunks/{chunk-6JKBWHIO.js → chunk-CGJ2U6ST.js} +1 -1
  24. package/dist-cli/chunks/chunk-DKBKU55D.js +2 -0
  25. package/dist-cli/chunks/{chunk-QSWT3OVG.js → chunk-DRJ4YWUG.js} +1 -1
  26. package/dist-cli/chunks/{chunk-XAIDHR55.js → chunk-EMOZJ773.js} +2 -2
  27. package/dist-cli/chunks/{chunk-KFGBNAV3.js → chunk-ENXHZGSL.js} +1 -1
  28. package/dist-cli/chunks/{chunk-I6DJFJQ6.js → chunk-F2LLN4U7.js} +2 -2
  29. package/dist-cli/chunks/{chunk-3PAUJH34.js → chunk-GUYKLSTX.js} +1 -1
  30. package/dist-cli/chunks/chunk-GZKT53SA.js +7 -0
  31. package/dist-cli/chunks/{chunk-DWFS6IIT.js → chunk-HZYHSLNH.js} +2 -2
  32. package/dist-cli/chunks/chunk-I6O7NBPZ.js +1 -0
  33. package/dist-cli/chunks/{chunk-U5O3F3NB.js → chunk-JP7J325R.js} +2 -2
  34. package/dist-cli/chunks/{chunk-5SB3N45C.js → chunk-K3UBHPVP.js} +1 -1
  35. package/dist-cli/chunks/{chunk-VFSOKG53.js → chunk-KRGHRSKY.js} +2 -2
  36. package/dist-cli/chunks/{chunk-VP4Y767U.js → chunk-KYGUR727.js} +2 -2
  37. package/dist-cli/chunks/{chunk-2E4DUZEV.js → chunk-LNDRRZP3.js} +2 -2
  38. package/dist-cli/chunks/{chunk-NEQRFWA3.js → chunk-OG6TFGYF.js} +2 -2
  39. package/dist-cli/chunks/{chunk-PJAKGC4A.js → chunk-PL4GXELT.js} +1 -1
  40. package/dist-cli/chunks/{chunk-MZLG4WVE.js → chunk-RJVIUQK4.js} +1 -1
  41. package/dist-cli/chunks/{chunk-4RUK2YSF.js → chunk-ROYBEBG2.js} +1 -1
  42. package/dist-cli/chunks/{chunk-42G5ZRQR.js → chunk-RS7QLHEH.js} +2 -2
  43. package/dist-cli/chunks/{chunk-LSDJTPOY.js → chunk-RWXCSRNE.js} +2 -2
  44. package/dist-cli/chunks/{chunk-NX4VSQD5.js → chunk-RZQO4Q7E.js} +1 -1
  45. package/dist-cli/chunks/{chunk-SFUQJU5Q.js → chunk-SQBX2HS7.js} +6 -6
  46. package/dist-cli/chunks/{chunk-NK4FF37S.js → chunk-TANTCV45.js} +2 -2
  47. package/dist-cli/chunks/chunk-W4Y3JJX6.js +29 -0
  48. package/dist-cli/chunks/chunk-WILIVPUU.js +567 -0
  49. package/dist-cli/chunks/{chunk-GMBG6JLV.js → chunk-WVDWIXPH.js} +2 -2
  50. package/dist-cli/chunks/{chunk-HGBMGQGP.js → chunk-Z5VMWFCY.js} +1 -1
  51. package/dist-cli/chunks/cli-version-Z4NGLJLH.js +2 -0
  52. package/dist-cli/chunks/{compat-L2E3OQW3.js → compat-YW3OJ7RX.js} +3 -3
  53. package/dist-cli/chunks/{config-K4IMJRHG.js → config-ZGOXFEX4.js} +2 -2
  54. package/dist-cli/chunks/{control-OXJ7S7UG.js → control-75JRFOYV.js} +2 -2
  55. package/dist-cli/chunks/daemon-SHFBQRHD.js +2 -0
  56. package/dist-cli/chunks/{debug-ZPKRTLGX.js → debug-4APEP64L.js} +3 -3
  57. package/dist-cli/chunks/{desktop-YA2UL7Q4.js → desktop-CS7S4CXK.js} +3 -3
  58. package/dist-cli/chunks/detox-7R7DOKQM.js +50 -0
  59. package/dist-cli/chunks/{device-M6YG7TKY.js → device-EIDKLBEK.js} +2 -2
  60. package/dist-cli/chunks/{diagnose-3OUFTELV.js → diagnose-J2F7MJAJ.js} +2 -2
  61. package/dist-cli/chunks/drivers-55L7BHDF.js +2 -0
  62. package/dist-cli/chunks/flow-AHWVTHJP.js +2 -0
  63. package/dist-cli/chunks/help-C4BTMPEE.js +2 -0
  64. package/dist-cli/chunks/home-paths-WVCREWI7.js +2 -0
  65. package/dist-cli/chunks/inspect-M4Z4SSSB.js +2 -0
  66. package/dist-cli/chunks/install-desktop-PVRUAEMA.js +2 -0
  67. package/dist-cli/chunks/{login-RNYBOMNF.js → login-EOBJ7CZ4.js} +4 -4
  68. package/dist-cli/chunks/{logout-XBW3BXL4.js → logout-RL7D66VQ.js} +2 -2
  69. package/dist-cli/chunks/maestro-F66ZIJKA.js +96 -0
  70. package/dist-cli/chunks/{mode-E353E6HN.js → mode-R2VIW66U.js} +2 -2
  71. package/dist-cli/chunks/optional-demo-registry-ILX5YV34.js +2 -0
  72. package/dist-cli/chunks/{perf-CIOBGFHU.js → perf-PGYO5BBR.js} +2 -2
  73. package/dist-cli/chunks/{record-I626AYJ5.js → record-IGDVHC67.js} +3 -3
  74. package/dist-cli/chunks/runtime-43RJGUGS.js +2 -0
  75. package/dist-cli/chunks/{screenshot-command-TTB5OOL2.js → screenshot-command-HX4GVUJM.js} +2 -2
  76. package/dist-cli/chunks/{serve-AEBEXTTW.js → serve-3TFVHYLY.js} +18 -18
  77. package/dist-cli/chunks/{setup-7QCI53ZK.js → setup-JSPPRVET.js} +3 -3
  78. package/dist-cli/chunks/{skills-7LHL5KHW.js → skills-LK3B76W7.js} +2 -2
  79. package/dist-cli/chunks/{storage-BVWLYY23.js → storage-NC5RNBUA.js} +2 -2
  80. package/dist-cli/chunks/store-3XMEKA6H.js +2 -0
  81. package/dist-cli/chunks/telemetry-CVJ5YZNS.js +2 -0
  82. package/dist-cli/chunks/test-2CXPLH5N.js +69 -0
  83. package/dist-cli/chunks/{timeline-BVR4E6PY.js → timeline-WDTEVELN.js} +2 -2
  84. package/dist-cli/chunks/upgrade-TT2IJSNJ.js +4 -0
  85. package/dist-cli/chunks/upload-4HMNB4HA.js +2 -0
  86. package/dist-cli/chunks/version-JUNH4FOR.js +4 -0
  87. package/dist-cli/chunks/{web-HYLNFAXS.js → web-BWCW26ZA.js} +2 -2
  88. package/dist-cli/chunks/{what-happened-YGRE2NFG.js → what-happened-L6EEB6MB.js} +2 -2
  89. package/dist-lib/agent-daemon-client.cjs +1 -1
  90. package/dist-lib/agent-events.cjs +1 -1
  91. package/dist-lib/agent-identity.cjs +1 -1
  92. package/dist-lib/agent-sessions.cjs +1 -1
  93. package/dist-lib/attached-projects.cjs +1 -1
  94. package/dist-lib/auth/shared-session.cjs +1 -1
  95. package/dist-lib/backend-origin.cjs +1 -1
  96. package/dist-lib/beta.cjs +1 -1
  97. package/dist-lib/beta.mjs +1 -1
  98. package/dist-lib/bridge-constants.cjs +1 -1
  99. package/dist-lib/cli-constants.cjs +1 -1
  100. package/dist-lib/config.cjs +1 -1
  101. package/dist-lib/detox/index.cjs +1 -1
  102. package/dist-lib/dev-bundle-resolution.cjs +1 -1
  103. package/dist-lib/home-paths.cjs +32 -1
  104. package/dist-lib/host/bridge-host.cjs +51 -2
  105. package/dist-lib/host/fetch-proxy-handler.cjs +1 -1
  106. package/dist-lib/host/fetch-proxy-overrides.cjs +1 -1
  107. package/dist-lib/host/fetch-proxy-overrides.mjs +1 -1
  108. package/dist-lib/host/websocket-proxy.cjs +1 -1
  109. package/dist-lib/index.cjs +1 -1
  110. package/dist-lib/jump-to-source-babel.cjs +1 -1
  111. package/dist-lib/menu.cjs +1 -1
  112. package/dist-lib/menu.mjs +1 -1
  113. package/dist-lib/metro.cjs +1 -1
  114. package/dist-lib/profiles.cjs +1 -1
  115. package/dist-lib/render-mode.cjs +1 -1
  116. package/dist-lib/scripts/dev-server-scanner.cjs +1 -1
  117. package/dist-lib/sdk.cjs +1 -1
  118. package/dist-lib/sdk.mjs +1 -1
  119. package/dist-lib/skills.cjs +115 -36
  120. package/dist-lib/vite.cjs +1 -1
  121. package/package.json +1 -1
  122. package/src/home-paths.ts +48 -1
  123. package/src/host/bridge-host.ts +12 -0
  124. package/src/runtime-delivery.ts +59 -9
  125. package/src/screenshots/frame-compose.ts +21 -13
  126. package/dist-cli/chunks/beta-ZXPAAXGE.js +0 -2
  127. package/dist-cli/chunks/chunk-CB3I3VQT.js +0 -6
  128. package/dist-cli/chunks/chunk-EY2OMKPT.js +0 -1
  129. package/dist-cli/chunks/chunk-M3AUV33V.js +0 -4
  130. package/dist-cli/chunks/chunk-RJ6WD7XJ.js +0 -567
  131. package/dist-cli/chunks/chunk-TMXLUWD2.js +0 -27
  132. package/dist-cli/chunks/chunk-USDJA22M.js +0 -1
  133. package/dist-cli/chunks/chunk-VXBWUAYL.js +0 -2
  134. package/dist-cli/chunks/cli-version-E3OGD447.js +0 -2
  135. package/dist-cli/chunks/daemon-G5GBYBJ4.js +0 -2
  136. package/dist-cli/chunks/detox-LKEZBGH5.js +0 -49
  137. package/dist-cli/chunks/drivers-CTSUKCFK.js +0 -2
  138. package/dist-cli/chunks/flow-R5GJJLLW.js +0 -2
  139. package/dist-cli/chunks/help-CSSCFOBR.js +0 -2
  140. package/dist-cli/chunks/home-paths-4V6CGISP.js +0 -2
  141. package/dist-cli/chunks/inspect-NIBEAJND.js +0 -2
  142. package/dist-cli/chunks/install-desktop-7TYE6TTP.js +0 -2
  143. package/dist-cli/chunks/maestro-3EBOG357.js +0 -96
  144. package/dist-cli/chunks/optional-demo-registry-BEUP6OEZ.js +0 -2
  145. package/dist-cli/chunks/runtime-254BNZHB.js +0 -2
  146. package/dist-cli/chunks/store-6KAKNNCL.js +0 -2
  147. package/dist-cli/chunks/telemetry-EZ42CD35.js +0 -2
  148. package/dist-cli/chunks/test-BK4GZZR2.js +0 -69
  149. package/dist-cli/chunks/upgrade-AY5XC5QI.js +0 -4
  150. package/dist-cli/chunks/upload-HOF4XBAG.js +0 -2
  151. package/dist-cli/chunks/version-WQM34S4E.js +0 -4
@@ -1,2 +1,2 @@
1
- /*! sootsim v0.1.200 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
- import{a as r}from"./chunk-LSDJTPOY.js";var c=["ghs_","ghp_","gho_","ghu_","github_pat_"];function d(n){return!!(n&&n.length>=20&&c.some(t=>n.startsWith(t)))}function p(){let n=process.env.SOOT_INSTALLATION_TOKEN?.trim(),t=process.env.GITHUB_TOKEN?.trim(),e=n||t;if(!d(e))return null;let o=(process.env.SOOT_REPO||process.env.GITHUB_REPOSITORY||"").trim();if(!o)return null;let[i,s]=o.includes("/")?o.split("/",2):[null,null],u=(process.env.SOOT_REPO_ID||process.env.GITHUB_REPOSITORY_ID||"").trim(),l=(process.env.SOOT_INSTALLATION_ID||process.env.GITHUB_APP_INSTALLATION_ID||"").trim();return{kind:"github",token:e,repoId:o,repositoryId:u||null,owner:i||null,repo:s||null,installationId:l||null,source:n?"soot-runner":"github-actions"}}function g(){let n=process.env.SOOTSIM_API_KEY?.trim();if(n&&n.startsWith("sk_sootsim_"))return{kind:"api-key",secret:n,source:"env"};let t=p();if(t)return t;let e=r();return e?.token?{kind:"session",token:e.token,origin:e.origin}:null}function a(n){return n.kind==="api-key"?`Bearer ${n.secret}`:`Bearer ${n.token}`}function _(n){return!n||n.kind!=="github"?null:{repoId:n.repoId,owner:n.owner??void 0,repo:n.repo??void 0,installationId:n.installationId}}export{g as a,a as b,_ as c};
1
+ /*! sootsim v0.1.202 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{a as r}from"./chunk-RWXCSRNE.js";var c=["ghs_","ghp_","gho_","ghu_","github_pat_"];function d(n){return!!(n&&n.length>=20&&c.some(t=>n.startsWith(t)))}function p(){let n=process.env.SOOT_INSTALLATION_TOKEN?.trim(),t=process.env.GITHUB_TOKEN?.trim(),e=n||t;if(!d(e))return null;let o=(process.env.SOOT_REPO||process.env.GITHUB_REPOSITORY||"").trim();if(!o)return null;let[i,s]=o.includes("/")?o.split("/",2):[null,null],u=(process.env.SOOT_REPO_ID||process.env.GITHUB_REPOSITORY_ID||"").trim(),l=(process.env.SOOT_INSTALLATION_ID||process.env.GITHUB_APP_INSTALLATION_ID||"").trim();return{kind:"github",token:e,repoId:o,repositoryId:u||null,owner:i||null,repo:s||null,installationId:l||null,source:n?"soot-runner":"github-actions"}}function g(){let n=process.env.SOOTSIM_API_KEY?.trim();if(n&&n.startsWith("sk_sootsim_"))return{kind:"api-key",secret:n,source:"env"};let t=p();if(t)return t;let e=r();return e?.token?{kind:"session",token:e.token,origin:e.origin}:null}function a(n){return n.kind==="api-key"?`Bearer ${n.secret}`:`Bearer ${n.token}`}function _(n){return!n||n.kind!=="github"?null:{repoId:n.repoId,owner:n.owner??void 0,repo:n.repo??void 0,installationId:n.installationId}}export{g as a,a as b,_ as c};
@@ -0,0 +1,29 @@
1
+ /*! sootsim v0.1.202 | (c) 2026 Tamagui LLC | Proprietary — see LICENSE */
2
+ import{a as k,b as O,c as x,e as m,f as I,g as h}from"./chunk-6FZ6SNVP.js";import{d as R}from"./chunk-KRGHRSKY.js";import{G as v,H as a,I as y,J as u,K as b,l as w,z as d}from"./chunk-GZKT53SA.js";import S from"fs";import{WebSocket as N}from"ws";async function J(t,e={}){let[s,...n]=t;if(!s||s==="--help"||s==="-h"){A();return}switch(s){case"install":return T(n,e);case"list":case"ls":return _(n);case"use":return C(n);case"remove":case"rm":return U(n);case"which":case"active":return E();case"pin":return F(n);case"unpin":return P();case"notes":case"changelog":return G(n);default:console.error(` unknown runtime subcommand: ${s}`),A(),process.exit(1)}}function A(){console.log(`
3
+ sootsim runtime \u2014 manage engine runtimes under ~/.sootsim/runtimes/
4
+
5
+ usage:
6
+ sootsim runtime install [version] install a version (default: pin or channel latest)
7
+ sootsim runtime list show installed + available versions
8
+ sootsim runtime use <version> switch active runtime
9
+ sootsim runtime pin [version] pin the runtime (stops background updates moving it)
10
+ sootsim runtime unpin clear the pin and follow channel latest again
11
+ sootsim runtime remove <version> delete an installed runtime
12
+ sootsim runtime which print active runtime version
13
+ sootsim runtime notes print hosted release notes URL
14
+
15
+ flags:
16
+ --channel <name> channel to resolve 'latest' from (default: stable)
17
+ --force reinstall even if the version is already on disk
18
+ --set-active=false do not switch active runtime after install
19
+
20
+ environment:
21
+ SOOTSIM_CDN_ORIGIN override the CDN base URL (default: ${k})
22
+
23
+ examples:
24
+ sootsim runtime install
25
+ sootsim runtime install 1.2.3
26
+ sootsim runtime install --channel beta
27
+ sootsim runtime use 1.2.3
28
+ sootsim runtime notes
29
+ `)}async function T(t,e){let{version:s,flags:n}=M(t),o=n.channel??e.channel??"stable",l=n.force===!0,r=n.setActive!==!1;v(),console.log("sootsim runtime install"),console.log(` cdn: ${x()}`);try{let i=await h({version:s,channel:o,force:l,setActive:r});console.log(` version: ${i.version} (channel: ${i.channel})`),i.installed?console.log(` installed ${i.version}`):console.log(` already installed at ${i.runtimeDir}`),r&&await f(i.version)}catch(i){console.error(` ${p(i)}`),process.exit(1)}}async function f(t){y(t),console.log(` active: ${t}`),await L(t)||console.log(` (no daemon running \u2014 next sootsim/electron launch will pick up ${t})`)}async function L(t){let{isDaemonLockfileFresh:e,readDaemonLockfile:s}=await import("./home-paths-WVCREWI7.js"),n=s();if(!e(n))return!1;let o=R();return new Promise(l=>{let r=!1,i=!1,g=D=>{r||(r=!0,l(D))},c=new N(`ws://127.0.0.1:${o}`,{handshakeTimeout:800}),$=setTimeout(()=>{try{c.close()}catch{}g(i)},1500);c.on("open",()=>{try{c.send(JSON.stringify({type:"runtime:use",version:t,id:0})),i=!0}catch{}setTimeout(()=>{try{c.close()}catch{}},100)}),c.on("close",()=>{clearTimeout($),g(i)}),c.on("error",()=>{clearTimeout($),g(!1)})})}async function _(t){v();let e=u(),s=a(),n=m();if(console.log("installed:"),e.length===0)console.log(" (none)");else for(let o of e)console.log(` ${o===s?"*":" "} ${o}${o===n?" (pinned)":""}`);n&&!e.includes(n)&&console.log(`pinned: ${n} (not installed \u2014 run \`sootsim runtime install\`)`);try{let o=await I();console.log("available (latest per channel):");for(let[r,i]of Object.entries(o.channels))console.log(` ${r.padEnd(8)} ${i.latest}`);let l=Object.keys(o.versions).sort(b).reverse();if(l.length>1){console.log("hosted versions:");for(let r of l)console.log(` ${r}`)}}catch(o){console.log(`available: (could not fetch manifest: ${p(o)})`)}}async function C(t){let e=t[0];e||(console.error(" usage: sootsim runtime use <version>"),process.exit(1));let s=u();s.includes(e)||(console.error(` version ${e} is not installed`),console.error(` installed: ${s.join(", ")||"(none)"}`),console.error(` run \`sootsim runtime install ${e}\` first`),process.exit(1)),await f(e)}async function U(t){let e=t[0];e||(console.error(" usage: sootsim runtime remove <version>"),process.exit(1)),a()===e&&(console.error(` cannot remove active runtime ${e}`),console.error(" switch with `sootsim runtime use <other>` first, or install another version"),process.exit(1));let n=w(e);if(!S.existsSync(n)){console.error(` ${e} is not installed`);return}S.rmSync(n,{recursive:!0,force:!0}),console.log(` removed ${e}`)}async function E(){let t=a();if(!t){console.log(" no active runtime");return}console.log(t)}async function F(t){let e=t[0];if(!e){let n=m();n?console.log(` runtime pinned to ${n}`):(console.log(" no pin \u2014 runtime follows channel latest"),console.log(" usage: sootsim runtime pin <version>"));return}if(d({runtimeVersion:e}),console.log(` pinned runtime to ${e}`),u().includes(e)){a()!==e&&await f(e);return}try{let n=await h({version:e,setActive:!1});console.log(n.installed?` installed ${n.version}`:` already installed at ${n.runtimeDir}`),await f(e)}catch(n){console.error(` ${p(n)}`),console.error(` pin saved, but ${e} could not be installed \u2014 check \`sootsim runtime list\` for hosted versions`),process.exit(1)}}async function P(){let t=m();if(!t){console.log(" no pin set");return}d({runtimeVersion:void 0}),console.log(` unpinned (was ${t}) \u2014 runtime follows channel latest again`),console.log(" run `sootsim upgrade` to move to the latest now")}async function G(t){t.length>0&&(console.error(" usage: sootsim runtime notes"),process.exit(1));let e=a();e&&console.log(` active runtime: v${e}`),console.log(` release notes: ${O}`)}function M(t){let e={},s=[];for(let n=0;n<t.length;n++){let o=t[n];if(o==="--channel"&&n+1<t.length){e.channel=t[n+1],n++;continue}if(o.startsWith("--channel=")){e.channel=o.slice(10);continue}if(o==="--force"){e.force=!0;continue}if(o==="--set-active=false"||o==="--no-set-active"){e.setActive=!1;continue}s.push(o)}return{version:s[0]??null,flags:e}}function p(t){return t instanceof Error?t.message:String(t)}export{J as a};