@unotest/web 0.18.0 → 0.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +77 -0
- package/bin/unotest-web.js +18 -0
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.d.ts +2 -2
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.d.ts +9 -5
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.js +1 -1
- package/dist/inspection/page-inject.d.ts +1 -1
- package/dist/{interfaces-elRn0llQ.d.ts → interfaces-B-FxA_qn.d.ts} +7 -1
- package/dist/mcp/server.js +1 -1
- package/dist/runner/cli.js +1 -1
- package/dist/runner/init/chrome-probe.js +1 -1
- package/dist/runner/init.js +1 -1
- package/dist/runner/install-chromium.js +1 -1
- package/dist/runner/prepare-fix.js +1 -1
- package/dist/runner/scaffold-workspace.js +1 -1
- package/dist/runner/serve-fixture.js +1 -1
- package/dist/runner/web-runner-adapter.js +1 -1
- package/guides/dsl-reference.md +2 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x99cdce=_0x2966;(function(_0x51862a,_0x2c7c61){const _0x416c3e={_0x3cbafc:0x82,_0x36c750:0x79,_0x1f92ba:0x97,_0x3c487d:0x8a},_0x48c9bb=_0x2966,_0x2bc440=_0x51862a();while(!![]){try{const _0x5d3a3d=parseInt(_0x48c9bb(_0x416c3e._0x3cbafc))/0x1+parseInt(_0x48c9bb(0x75))/0x2+-parseInt(_0x48c9bb(_0x416c3e._0x36c750))/0x3+-parseInt(_0x48c9bb(0x70))/0x4+parseInt(_0x48c9bb(_0x416c3e._0x1f92ba))/0x5+parseInt(_0x48c9bb(0x88))/0x6*(parseInt(_0x48c9bb(0x91))/0x7)+-parseInt(_0x48c9bb(0x87))/0x8*(parseInt(_0x48c9bb(_0x416c3e._0x3c487d))/0x9);if(_0x5d3a3d===_0x2c7c61)break;else _0x2bc440['push'](_0x2bc440['shift']());}catch(_0x5420b5){_0x2bc440['push'](_0x2bc440['shift']());}}}(_0x237e,0x82042));var __defProp=Object[_0x99cdce(0x8c)],__name=(_0x494a71,_0x22d481)=>__defProp(_0x494a71,_0x99cdce(0x7c),{'value':_0x22d481,'configurable':!![]});import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x2ef156={_0x8f6e97:0x7d},_0x1e798e=_0x99cdce;for(const _0x2cb8f8 of[probeChrome,probeEdge,probeChromeBeta]){const _0x46679c=_0x2cb8f8();if(_0x46679c[_0x1e798e(_0x2ef156._0x8f6e97)]!==null)return _0x46679c;}return{'channel':null};}__name(probeSystemBrowser,_0x99cdce(0x84));function probeChrome(){const _0x578481={_0x3dab37:0x76},_0x578b7b=_0x99cdce,_0x484863=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x484863)return{'channel':_0x578b7b(_0x578481._0x3dab37),'path':_0x484863,'label':'Google\x20Chrome'};return{'channel':null};}__name(probeChrome,'probeChrome');function probeEdge(){const _0x32626c={_0x1d9f18:0x74},_0x1e4502=_0x99cdce,_0x53fce9=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x53fce9)return{'channel':'msedge','path':_0x53fce9,'label':_0x1e4502(_0x32626c._0x1d9f18)};return{'channel':null};}__name(probeEdge,_0x99cdce(0x81));function probeChromeBeta(){const _0x22112e={_0x2cac5c:0x6f},_0x2a05bd=_0x99cdce,_0x42cc52=firstExistingPath(CHROME_BETA_PATHS);if(_0x42cc52)return{'channel':_0x2a05bd(_0x22112e._0x2cac5c),'path':_0x42cc52,'label':'Google\x20Chrome\x20Beta'};return{'channel':null};}__name(probeChromeBeta,_0x99cdce(0x83));function _0x237e(){const _0xe68bea=['uhjVz3jHBuzPBgvZ','zgfYD2LU','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','BgvUz3rO','ntqYmJeWDfffD2Dm','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','DxrMoa','BwLJCM9ZB2z0lwvKz2u','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','l3vZCI9IAw4Vy2HYB21PDw0','y2HYB21LlwjLDge','mJCYmdm2qxvjuuXf','uhjVz3jHBuzPBgvZkhG4nIK','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','twLJCM9ZB2z0ievKz2u','ndq4mdqYvK1Twvf4','y2HYB21L','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','zMLYC3rfEgLZDgLUz1bHDgG','oteWotCXq0jAvvjx','y2HYB21PDw0TyNjVD3nLCG','D2HPy2G','BMfTzq','y2HHBM5LBa','Dw5KzwzPBMvK','D2LUmZi','z29Vz2XLlwnOCM9Tzq','ChjVyMvfzgDL','otaYmdu5sxL6tuTN','ChjVyMvdAhjVBwvczxrH','ChjVyMvtExn0zw1cCM93C2vY','CgXHDgzVCM0','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','mJa0ntzNsNH6yNG','mJG5odu0rM9KtMvo','DhjPBq','mZaZm1nKAxHNDW','D2HPy2HpzG','zgvMAw5LuhjVCgvYDhK','C3rHCNrZv2L0Aa','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','te9dquXbufbeqvrb','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','nZDLz09MBNe','zw52'];_0x237e=function(){return _0xe68bea;};return _0x237e();}function _0x2966(_0x515365,_0x3d7e4b){_0x515365=_0x515365-0x68;const _0x237ecd=_0x237e();let _0x2966d6=_0x237ecd[_0x515365];if(_0x2966['NmpJxH']===undefined){var _0xf7a1f0=function(_0x392036){const _0xb0775d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x494a71='',_0x22d481='';for(let _0x2cb8f8=0x0,_0x46679c,_0x484863,_0x53fce9=0x0;_0x484863=_0x392036['charAt'](_0x53fce9++);~_0x484863&&(_0x46679c=_0x2cb8f8%0x4?_0x46679c*0x40+_0x484863:_0x484863,_0x2cb8f8++%0x4)?_0x494a71+=String['fromCharCode'](0xff&_0x46679c>>(-0x2*_0x2cb8f8&0x6)):0x0){_0x484863=_0xb0775d['indexOf'](_0x484863);}for(let _0x42cc52=0x0,_0x372d91=_0x494a71['length'];_0x42cc52<_0x372d91;_0x42cc52++){_0x22d481+='%'+('00'+_0x494a71['charCodeAt'](_0x42cc52)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x22d481);};_0x2966['smiAtt']=_0xf7a1f0,_0x2966['LduoFc']={},_0x2966['NmpJxH']=!![];}const _0x1710d1=_0x237ecd[0x0],_0x113962=_0x515365+_0x1710d1,_0xe84ead=_0x2966['LduoFc'][_0x113962];return!_0xe84ead?(_0x2966d6=_0x2966['smiAtt'](_0x2966d6),_0x2966['LduoFc'][_0x113962]=_0x2966d6):_0x2966d6=_0xe84ead,_0x2966d6;}var CHROME_PATHS=((()=>{const _0x3c0800={_0x198a0b:0x94,_0x10e30f:0x92,_0x3ef5c6:0x73,_0x4eb4eb:0x8f,_0x3cf369:0x6e,_0x16f1af:0x6c},_0x3f545c=_0x99cdce;switch(process[_0x3f545c(0x85)]){case _0x3f545c(_0x3c0800._0x198a0b):return[_0x3f545c(0x72)];case'win32':return[process[_0x3f545c(_0x3c0800._0x10e30f)]['ProgramFiles']+_0x3f545c(0x73),process['env'][_0x3f545c(0x71)]+_0x3f545c(_0x3c0800._0x3ef5c6),process['env'][_0x3f545c(_0x3c0800._0x4eb4eb)]+_0x3f545c(0x73)];default:return['/usr/bin/google-chrome',_0x3f545c(0x86),_0x3f545c(0x77),_0x3f545c(_0x3c0800._0x3cf369),_0x3f545c(_0x3c0800._0x16f1af)];}})()),CHROME_BIN_NAMES=[_0x99cdce(0x80),'google-chrome-stable','chromium',_0x99cdce(0x7a)],EDGE_PATHS=((()=>{const _0x42c579={_0x43540e:0x93},_0x157942=_0x99cdce;switch(process['platform']){case _0x157942(0x94):return[_0x157942(0x68)];case'win32':return[process['env'][_0x157942(_0x42c579._0x43540e)]+_0x157942(0x8e),process[_0x157942(0x92)]['ProgramFiles(x86)']+_0x157942(0x8e)];default:return['/usr/bin/microsoft-edge',_0x157942(0x95)];}})()),EDGE_BIN_NAMES=[_0x99cdce(0x6a),_0x99cdce(0x6b)],CHROME_BETA_PATHS=((()=>{const _0x22e1ce={_0x156536:0x85,_0x495799:0x94,_0x2f7b9e:0x92},_0x368e0f=_0x99cdce;switch(process[_0x368e0f(_0x22e1ce._0x156536)]){case _0x368e0f(_0x22e1ce._0x495799):return[_0x368e0f(0x90)];case _0x368e0f(0x7f):return[process[_0x368e0f(_0x22e1ce._0x2f7b9e)][_0x368e0f(0x93)]+_0x368e0f(0x6d)];default:return[_0x368e0f(0x98)];}})());function firstExistingPath(_0x372d91){const _0x56adc2={_0x1ef2ff:0x8d,_0x892c24:0x7e},_0x33e965=_0x99cdce;for(const _0x262cf1 of _0x372d91){if(!_0x262cf1||_0x262cf1[_0x33e965(_0x56adc2._0x1ef2ff)](_0x33e965(_0x56adc2._0x892c24)))continue;if(existsSync(_0x262cf1))return _0x262cf1;}return null;}__name(firstExistingPath,_0x99cdce(0x78));function whichOf(_0x3a9eae){const _0x515172={_0x3b81e7:0x7f},_0x3fd6c1=_0x99cdce;if(process[_0x3fd6c1(0x85)]===_0x3fd6c1(_0x515172._0x3b81e7))return void 0x0;for(const _0x125627 of _0x3a9eae){try{const _0x32f5eb=execFileSync(_0x3fd6c1(0x7b),[_0x125627],{'encoding':_0x3fd6c1(0x69)})[_0x3fd6c1(0x89)]();if(_0x32f5eb[_0x3fd6c1(0x96)]>0x0&&existsSync(_0x32f5eb))return _0x32f5eb;}catch{}}return void 0x0;}__name(whichOf,_0x99cdce(0x8b));export{probeSystemBrowser};
|
package/dist/runner/init.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x29ef99=_0x35a8;(function(_0x3f7b0d,_0x5e5f16){const _0x587342={_0x1240bc:0x15f,_0x51054c:0x1a5,_0x1a1bd1:0x18d,_0x442917:0x200},_0x2fda64=_0x35a8,_0x180dc7=_0x3f7b0d();while(!![]){try{const _0x513db2=-parseInt(_0x2fda64(0x231))/0x1+parseInt(_0x2fda64(_0x587342._0x1240bc))/0x2*(-parseInt(_0x2fda64(0x1d1))/0x3)+-parseInt(_0x2fda64(0x1e1))/0x4*(parseInt(_0x2fda64(0x209))/0x5)+-parseInt(_0x2fda64(0x23b))/0x6+parseInt(_0x2fda64(_0x587342._0x51054c))/0x7+parseInt(_0x2fda64(_0x587342._0x1a1bd1))/0x8*(-parseInt(_0x2fda64(_0x587342._0x442917))/0x9)+parseInt(_0x2fda64(0x1d2))/0xa;if(_0x513db2===_0x5e5f16)break;else _0x180dc7['push'](_0x180dc7['shift']());}catch(_0x2ec1b1){_0x180dc7['push'](_0x180dc7['shift']());}}}(_0x5ac7,0xc1fc3));var __defProp=Object[_0x29ef99(0x15e)],__name=(_0x5828d1,_0x457861)=>__defProp(_0x5828d1,_0x29ef99(0x22b),{'value':_0x457861,'configurable':!![]});import{copyFileSync,existsSync as _0x1b440b,mkdirSync as _0x5c1496,readFileSync as _0x312701,writeFileSync as _0x59da13}from'fs';import{dirname as _0x4cdac3,join as _0x2ebb93,resolve as _0x3a93e0}from'path';import{fileURLToPath as _0x409d4c}from'url';function _0x5ac7(){const _0x1a983e=['sw5ZDhj1y3rPB25Ztg9HzgvK','icdINjmGDw5VDgvZDc5JB25MAwCUBwPZia','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','u2vZC2LVBLn0yxj0','icbsDw4Gyg5WEcbaDw5VDgvZDc93zwiGAw5ZDgfSBc1JAhjVBwL1BwaGDg8Gzg93BMXVywqGDgHLigj1BMrSzwqGzMfSBgjHy2SS','ywXSB3CGywXYzwfKEsbWCMvZzw50','B3zLCNDYB3rL','4PYtig92zxj3CM90zq','yxbWzw5Kzwq','Dw5VDgvZDc8UC25HChnOB3rZlW','igf0ia','ixvUB3rLC3qVlMvUDI5LEgfTCgXL','BwLJCM9ZB2z0lwvKz2u','C3LTyM9S','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','C29Tzq','C3LUy0vUDLr5CgvZ','otq3nfLnBxnlCG','ndC4nJGXmdb0B3HKtuW','ywXYzwfKEsbWCMvZzw50','ChvZAa','uhjLq29TCgfJDa','BwvYz2vdBgf1zgviB29RCW','tM9Kzs5QCYb2zxjZAw9U','C29YDa','ywrKzwq','C3rKB3v0v3jPDgu','cKnSyxvKzsbdB2rLihbLCM1PC3nPB25ZoGO','yNLwywX1zq','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','icaGigLUC3rHBgWGq2HYB21LigzYB20GAhr0Chm6lY93D3CUz29Vz2XLlMnVBs9JAhjVBwu','Aw1WBgLJAxq','C3bSAxq','ngzbvK1rtW','zMLSDgvY','rw52vMfYAwfIBgvtDg9Yzq','CgXHDgzVCM0','B3zLCNjPzgu','yMLU','C3rKAw4','Dw5VDgvZDc8UzgvIDwCQlW','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','icaGig5WEcbaDw5VDgvZDc93zwiGAw5ZDgfSBc1JAhjVBwL1BsaGicaGicHKB3DUBg9HzhmGyNvUzgXLzcbJAhjVBwL1BsK','u3LZDgvTigjYB3DZzxi','Dw5VDgvZDc8UC2vJCMv0CYO','uhjVz3jHBuzPBgvZkhG4nIK','yMfZAcaIjhTdtefvrevFufjpsKvdvf9esvj9lY5JBgf1zguVAg9VA3mVBg9NlwfNzw50lNnOiIaIjhTdtefvrevFufjpsKvdvf9esvj9l3vUB3rLC3qVlMrLyNvNl2fNzw50l2fJDgLVBNmUANnVBMWI','C2L6zq','AxngAw5PDgu','icdINjmG','BgvUz3rO','rw52AxjVBM1LBNq6cG','Dw5VDgvZDc8Uzw52kG','D2fYBMLUzW','zw52rMLSzxm','lM1JCc5QC29U','y2HYB21L','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k','zw52rxHHBxbSzq','zM9YBwf0u291CMnLCW','y2HHBM5LBa','icdIHPiGzg93BMXVywrPBMCGyNvUzgXLzcbdAhjVBwL1BsaOFJe1mcbnqINIGkyk','BwvYz2vdBgf1zgvbBgXVD0vUDhjPzxm','C3rKB3v0','mta3nteZmZDWqMPPBw0','y2HHBM5LBdOGjW','DhjPBq','A2v5CW','lY8GuMvMCMvZAgvKigf1Dg9TyxrPy2fSBhKGB24GzxzLCNKGBgLUDcaVihj1BI4','yNjVD3nLCK92zxjYAwrL','ug9ZDfrVB2XvC2vgywLSDxjL','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','ifT5l05Dia','nJy5nJuWme1oAwXHCG','BwfW','zMLUAxnO','lNvUB3rLC3q','ChjVyMvfzgDL','ifTzl25Dia','DgHLBG','zw52vhLWzxm','Dg9tDhjPBMC','z29Vz2XLlwnOCM9Tzq','ChjVyMvdAhjVBwvczxrH','y2HVB3nLqNjVD3nLCG','Dw5VDgvZDc9LmMuVx3rLBxbSyxrLlMPZ','C3LZDgvT','DhLWzxm','rMfPBgvKihrVihbHCNnLic5JBgf1zguVC2v0DgLUz3mUANnVBIbHCYbku09ooIa','lNvUB3rLC3qV','r29Vz2XLienOCM9Tzq','C3rKzxjY','Dw5VDgvZDc8UC2vJCMv0CW','ywn0Aw9U','zgvZy3jPyMvfBNzmyxLLCNm','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','Aw5KzxHpzG','AM9PBG','iokaLcb1C2LUzYbJAgfUBMvSicC','ls1ICM93C2vY','CMvKywn0u3rYAw5N','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','CMvTB3zLtgLZDgvUzxi','y3jLyxrLzcaUBwnWlMPZB24','y2HYB21PDw0','yNvUzgXLza','y3jLyxrLzcaUy2XHDwrLl3nLDhrPBMDZlMPZB24GkgfSBg93oIbTy3bFx3vUB3rLC3qTD2vIkq','BMfTzq','zw52','y29TBwfUza','Cgf0Aa','icdINjCG','C2v2zxjPDhK','mteWndyWnenIsKPLDW','uhjVz3jHBuzPBgvZ','Dw5VDgvZDc9LmMuVx2HLBhbLCNmVlMDPDgTLzxa','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','B25eyxrH','Aw5JBhvKzxm','lMnSyxvKzs9ZA2LSBhmVD3jPDguTztjLlxrLC3qVu0TjteWUBwq','BwvYz2vny3bdB25MAwC','4PQGic0TyNjVD3nLCIbUB25LiokaLcbUBYbICM93C2vYignVBMzPz3vYzwqUifj1BIbVBMuGB2y6','Aw5PDdOG','mtGZodiXngzzwLbPrq','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','C2TPBgWGkgDYB3vUzcK','icdcTYbHBhjLywr5ihbYzxnLBNqGiG','CMvZB2X2zq','q2XHDwrLu2v0DgLUz3nqyxjZzuvYCM9Y','4PYtignYzwf0zwq','BM9Kzq','CMvZDw1L','zxHPDenVzgu','zw50CMLLCW','ChjVyMu','B2jQzwn0','Dw5VDgvZDc8UDMLLD2vYlMXVzW','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWOGic8VihnHBMrIB3G6ihSGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GyxbPq2fSBcaVihvWBg9HzcaVigrIuxvLCNKGlYbZAgvSBaOGic8VicaGyxbPqMfZzvvYBdOGj2H0DhbZoI8VyxbPlNLVDxiTyxbWlNrLC3qNlcaGicaGlY8GyMfZzsbMB3iGyxbPq2fSBcGNue9tvcCSicCVCgf0AcCSiokaPIKkicaVlYaGihvWBg9HzerPCJOGj3vUB3rLC3qVzML4DhvYzxmNlcaGicaGicaGicaGicaGic8VihjVB3qGzM9YihvWBg9HzcGNzg9JlNbKzICPihbHDgHZoWOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGChjVAMvJDcbYB290lIbvCgXVywrZig1HEqOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GBM90igvZy2fWzsbPDcaOCMvSyxrPDMuGCgf0AhmGB25SEsKUcIaGlY8GicbKyxrHyMfZztOGj3bVC3rNCMvZCwW6lY9SB2nHBgHVC3q6ntqZmI9HChbFDgvZDcCSicaVlYbKyLf1zxj5ic8GzgjfEgvJcIaGlY8GFsWk','D3jPDgvjzK5LzwrLza','ywn0AxzL','ANnJB25MAwC','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','Dw5VDgvZDc13zwi','BwvZC2fNzq','y2f0y2G','C2v0','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','y2HLy2TxCML0ywjSzun3za','CgLWzq','y2HYB21PDw0TyNjVD3nLCG','pceTlsb1BM90zxn0oMvUzcaTlt4','icdcTYbUBYbJAgfUz2vZig5LzwrLzaO','C3rHCNrZv2L0Aa','u2vJCMv0uMvNAxn0CNK','zw5K','y2XHDwrLtwrcB2r5','quDftLrtlM1K','zgv0ywLS','Dw5VDgvZDc8Uzw52','Bgf5zxjjBMzVCW','r29Vz2XLienOCM9TzsbczxrH','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','ChjVyMvdAhjVBwu','CgvYBwLZC2LVBNm','B3jKzxjLza','CMvKywn0','cIaGtM8GC3LZDgvTienOCM9TzsaVievKz2uGlYbdAhjVBwL1BsbKzxrLy3rLzc4k','cIaG4OAsigrVD25SB2fKAw5Nigj1BMrSzwqGq2HYB21PDw3IGkyk','Bg9NlwfNzw50lNnO','Dw5VDgvZDc8Uzw52lMv4yw1WBgu','Dw5VDgvZDc9LmMuVzxHHBxbSzxmV','vgfYz2v0igrPCMvJDg9YEq','B3zLCNDYB3rLihvUB3rLC3qTD2vIigvUDhj5','BwnWu2vYDMvYCW','icbJAgfUBMvSoIa','y2HHBM5LBdOGBNvSBcaOyNvUzgXLzcbJAhjVBwL1BsK','uhjLvg9VBfvZzq','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','Dw5VDgvZDenVBMzPz01QCW','igzVDw5K','Ag9VA3m','CMvNAxn0zxi','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','zw5ZDxjLrwrPDg9YvhLWzxm','ls1MB3jJzq','BM8Gy2HHBM5LBcbZzxqGkgj1BMrSzwqGzMfSBgjHy2SGywz0zxiGAw5ZDgfSBc1JAhjVBwL1BsK','BwvYz2vjBNrV','zMLSzq','CgfYC2vfBNzmyxLLCMvK','Dw5VDgvZDc9LmMuVzxHHBxbSzxm','4PYtihvWzgf0zwq','lY8GrxH0zxjUywWGC2nLBMfYAw8GDMfYAwfIBguGtKfnrvmGB25SEtSGDMfSDwvZig5LDMvYigXLyxzLihrOB3nLigzPBgvZlG','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','zM9Yy2u','DxbKyxrLza','yxjNDG','Aw5OzxjPDa','EwvZ','zgvMAw5LuhjVCgvYDhK','ndi0zhLtEffM','D2fYBMLUz3m','B25fBMq','zxjYB3i','ywXSB3C','ChjVyMvtExn0zw1cCM93C2vY','C3rHDhvZ','icbVCIbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LlG','ywDLBNqTDhjHy2uGAg9VA3mGywXYzwfKEsbWCMvZzw50','lIbgAxGGB3iGCMvTB3zLihrOzsbMAwXLigfUzcbYzs1YDw4GAw5PDc4','cKjYB3DZzxi6cG','4PQGig5VBI1PBNrLCMfJDgL2zsbZAgvSBcbHBMqGBM8GC3LZDgvTigjYB3DZzxiGzM91BMqU','zM9Yy2uTB3zLCNDYB3rL','u3rVCa','Dw5VDgvZDc13zwiGAw5PDcdIHPiG','DgfYz2v0ia','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','zxHHBxbSzxm','ANnJB25MAwDkC29U','zw5KC1DPDgG','Dw5KzwzPBMvK','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','igv2zw50CZSGBg9NCYb0BYb1BM90zxn0lY5Kzwj1zY9Hz2vUDc8GDw5KzxiGvu5pvevtvf9erujvrYK','C3rYAw5NAwz5','y3jLyxrLza','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4GqsbZDwjWCM9JzxnZihrOyxqGz2vUDwLUzwX5ig5LzwrZig9UzsaOysbSAxn0zw5LCIb3AxrOigekiYb0B2TLBIKGz2v0CYbPDcb2AweGDgHLigv4CgXPy2L0igfSBg93BgLZDcbPBIb1BM90zxn0lMnVBMzPzY4QoGOJicaGC2fUzgjVEdOGEYbLEhbVCNrtzwnYzxrZoIbBj1rps0voj10GFqOJifb1DcbUB24TC2vJCMv0ihzHBhvLCYaOvvjmCYWGzw1HAwXZlcbPzhmPigLUihvUB3rLC3qVlMvUDI4kiWOJiezmruvux0vyqu1qteukte9hsu49cLbbu1nxt1jepqPut0TftJ0k','ywrKzwqGywDLBNqTDhjHy2uGAg9VA3mGka','yMfZzsbLBNzPCM9UBwvUDcaOBM8Gvu5pvevtvf9ftLyP','icbjBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4GAw5PDc4','icaGicaG','zxHPDa','Dw5VDgvZDa','CMvHze93BLzLCNnPB24','y2HYB21PDw0Gzg93BMXVywqGzxHPDgvKihDPDgGGy29Kzsa','ywXYzwfKEvbYzxnLBNq','DxrMoa','ywXYzwfKEs1WCMvZzw50','BMv3q29UDgvUDa','EWOGicjJB21WAwXLCK9WDgLVBNmIoIb7cIaGicaIy2HLy2TkCYi6igzHBhnLlaOGicaGiNrHCMDLDci6icjLCZiWmJiIlaOGicaGiMXPyIi6ifSIzxmYmdiYiL0ScIaGicaIDhLWzxmIoIbBxqOGih0ScIaGiMLUy2X1zguIoIbBcIaGicaIkIOVkI5QCYiScIaGicaIlI4VlNvUB3rLC3qVDhLWzxmVzw52lMqUDhmIlaOGicaGiI4Ul25VzgvFBw9KDwXLCY9aDw5VDgvZDc93zwiVDhLWzxmVDw5VDgvZDc1KC2WUzc50CYikicbDcN0k','AxnbCNjHEq','CMvWB3j0','Dw5VDgvZDc5JB25MAwCUBwPZ','C2vJCMv0C0zPBgvqyxrO','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','u3vIywDLBNrtDgfYDa','ohjxug1qwq','C2TPBgW','Dw5Yzwy','zgvJBgfYzsbJB25ZDca','icdINjmGC3LZDgvTia','D2LUmZi','BM9Kzv9TB2r1BgvZlW','4Oc5C2vJCMv0oG','C3rYAw5N','C2XPy2u','q0XbvurflM1K','CgfYC2u','u3vIywDLBNrtDg9W','Aw50zxjHy3rPDMu','Ag9VAW','BM9Uzq','icHUBYbZDwnOigzPBguP','pceTlsb1BM90zxn0oMjLz2LUicHTyw5Hz2vKigj5ieb1BM90zxn0l3DLyIbPBML0iokaLcbKBYbUB3qGzwrPDcbPBNnPzguPic0TpG','l3vZCI9IAw4Vy2HYB21PDw0','C2nLBMfYAw9uzw1WBgf0zq','Dw5VDgvZDc8UCNvUCYOV','D3jPDgvjzKfIC2vUDa','icdINjmGywrKzwqGiG','CMvKywn0vMfSDwu','ndm1ndGWnwz0uwXcsa','C2vJCMv0CW','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','cI5NAxrPz25VCMu6cG','C2TPChbLza','zgf0yq','u2vZC2LVBKvUza','AxnuvfK','icbeB3DUBg9HzcbIDw5KBgvKienOCM9TAxvTicH+mtuWie1ckt8','DMvYC2LVBG','cIaGrM91BMqG','twnWsNnVBLbHCNnLrxjYB3i','D2HPy2HpzG','igzVDw5Kigf0ia','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','twLJCM9ZB2z0ievKz2u','y2HYB21LlwjLDge','D3jPDgu','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','Dg9mB3DLCKnHC2u','y2HLy2ToB2rLvMvYC2LVBG','icbvC2uGAw5ZDgfSBgvKia','BgfIzwW','y3DK','zw5ZDxjLrgLY','CgfYC2vbCMDZ'];_0x5ac7=function(){return _0x1a983e;};return _0x5ac7();}import{existsSync as _0x17ad17}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x215a99={_0x27d709:0x1fc},_0x1be129=_0x29ef99;for(const _0x53146b of[probeChrome,probeEdge,probeChromeBeta]){const _0x217d7f=_0x53146b();if(_0x217d7f[_0x1be129(_0x215a99._0x27d709)]!==null)return _0x217d7f;}return{'channel':null};}__name(probeSystemBrowser,_0x29ef99(0x164));function probeChrome(){const _0x14e2c5={_0x73d37f:0x21a},_0x10f91a=_0x29ef99,_0x565d2a=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x565d2a)return{'channel':_0x10f91a(0x1f8),'path':_0x565d2a,'label':_0x10f91a(_0x14e2c5._0x73d37f)};return{'channel':null};}__name(probeChrome,_0x29ef99(0x262));function probeEdge(){const _0x3493b4=_0x29ef99,_0x390daa=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x390daa)return{'channel':'msedge','path':_0x390daa,'label':_0x3493b4(0x1b4)};return{'channel':null};}__name(probeEdge,_0x29ef99(0x20d));function probeChromeBeta(){const _0x1c490f={_0x347d2a:0x1b5},_0x5e6b5a=_0x29ef99,_0x6b2c92=firstExistingPath(CHROME_BETA_PATHS);if(_0x6b2c92)return{'channel':_0x5e6b5a(_0x1c490f._0x347d2a),'path':_0x6b2c92,'label':_0x5e6b5a(0x260)};return{'channel':null};}__name(probeChromeBeta,_0x29ef99(0x213));var CHROME_PATHS=((()=>{const _0xd96f39={_0x134ff8:0x1e4,_0x5e2d54:0x22c,_0x36ec7a:0x1b7,_0x1a4eff:0x1e9,_0x2c5957:0x276},_0x2b7972=_0x29ef99;switch(process[_0x2b7972(_0xd96f39._0x134ff8)]){case'darwin':return[_0x2b7972(0x1c1)];case _0x2b7972(0x192):return[process[_0x2b7972(_0xd96f39._0x5e2d54)][_0x2b7972(0x232)]+_0x2b7972(0x1b7),process[_0x2b7972(_0xd96f39._0x5e2d54)][_0x2b7972(0x1ed)]+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe',process[_0x2b7972(0x22c)]['LOCALAPPDATA']+_0x2b7972(_0xd96f39._0x36ec7a)];default:return[_0x2b7972(_0xd96f39._0x1a4eff),'/usr/bin/google-chrome-stable',_0x2b7972(0x1a7),_0x2b7972(0x19f),_0x2b7972(_0xd96f39._0x2c5957)];}})()),CHROME_BIN_NAMES=[_0x29ef99(0x212),'google-chrome-stable','chromium',_0x29ef99(0x255)],EDGE_PATHS=((()=>{const _0x23ff63={_0x3f6e6a:0x24d,_0xf2c9a9:0x232,_0x296072:0x1ed,_0x328979:0x252,_0x568e70:0x1b3},_0x18ecec=_0x29ef99;switch(process[_0x18ecec(0x1e4)]){case'darwin':return[_0x18ecec(_0x23ff63._0x3f6e6a)];case'win32':return[process['env'][_0x18ecec(_0x23ff63._0xf2c9a9)]+'\x5cMicrosoft\x5cEdge\x5cApplication\x5cmsedge.exe',process[_0x18ecec(0x22c)][_0x18ecec(_0x23ff63._0x296072)]+'\x5cMicrosoft\x5cEdge\x5cApplication\x5cmsedge.exe'];default:return[_0x18ecec(_0x23ff63._0x328979),_0x18ecec(_0x23ff63._0x568e70)];}})()),EDGE_BIN_NAMES=[_0x29ef99(0x1cb),'microsoft-edge-stable'],CHROME_BETA_PATHS=((()=>{const _0x4216ad={_0x5db103:0x261,_0x5b7b0f:0x192,_0x5ce200:0x232,_0x3ac64c:0x207},_0x2aedae=_0x29ef99;switch(process[_0x2aedae(0x1e4)]){case'darwin':return[_0x2aedae(_0x4216ad._0x5db103)];case _0x2aedae(_0x4216ad._0x5b7b0f):return[process[_0x2aedae(0x22c)][_0x2aedae(_0x4216ad._0x5ce200)]+_0x2aedae(_0x4216ad._0x3ac64c)];default:return[_0x2aedae(0x234)];}})());function firstExistingPath(_0x495b96){const _0x5d2ad7={_0x3fd0a2:0x258},_0x115f14=_0x29ef99;for(const _0x5c06a3 of _0x495b96){if(!_0x5c06a3||_0x5c06a3[_0x115f14(_0x5d2ad7._0x3fd0a2)](_0x115f14(0x173)))continue;if(existsSync(_0x5c06a3))return _0x5c06a3;}return null;}__name(firstExistingPath,'firstExistingPath');function whichOf(_0x4093f6){const _0x10d912={_0x33e4c9:0x1e4,_0x4d6b49:0x183,_0x452d99:0x1f2},_0x840e2=_0x29ef99;if(process[_0x840e2(_0x10d912._0x33e4c9)]===_0x840e2(0x192))return void 0x0;for(const _0x38a2e5 of _0x4093f6){try{const _0x4d6b77=execFileSync('which',[_0x38a2e5],{'encoding':_0x840e2(_0x10d912._0x4d6b49)})['trim']();if(_0x4d6b77[_0x840e2(_0x10d912._0x452d99)]>0x0&&existsSync(_0x4d6b77))return _0x4d6b77;}catch{}}return void 0x0;}__name(whichOf,_0x29ef99(0x1b1));function runEnvironmentChecks(_0x5f29b0={}){const _0x4f6885=_0x29ef99,_0xf595b7=_0x5f29b0[_0x4f6885(0x1bc)]??process[_0x4f6885(0x1bc)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0xf595b7)];}__name(runEnvironmentChecks,'runEnvironmentChecks');function checkNodeVersion(){const _0x5d5572=_0x29ef99,_0x543b17=process['versions'][_0x5d5572(0x242)],_0x368224=Number(_0x543b17['split']('.')[0x0]);if(!Number[_0x5d5572(0x1f0)](_0x368224)||_0x368224<0x14)return{'name':'Node.js\x20version','severity':_0x5d5572(0x162),'message':_0x5d5572(0x16f)+_0x543b17+')','detail':_0x5d5572(0x271)};return{'name':_0x5d5572(0x1d7),'severity':'ok','message':_0x543b17};}__name(checkNodeVersion,_0x29ef99(0x1b9));function checkSystemBrowser(){const _0x47a476={_0x26da85:0x1eb,_0xce6d46:0x1bb,_0x2c6662:0x273},_0x5ed35d=_0x29ef99,_0x9a8d8=probeSystemBrowser();if(_0x9a8d8[_0x5ed35d(0x1fc)]!==null)return{'name':_0x5ed35d(_0x47a476._0x26da85),'severity':'ok','message':_0x9a8d8[_0x5ed35d(_0x47a476._0xce6d46)]+_0x5ed35d(_0x47a476._0x2c6662),'detail':_0x9a8d8[_0x5ed35d(0x22e)]};return{'name':_0x5ed35d(0x1eb),'severity':_0x5ed35d(0x1f5),'message':'no\x20Chrome\x20/\x20Edge\x20/\x20Chromium\x20detected','detail':_0x5ed35d(0x225)};}__name(checkSystemBrowser,'checkSystemBrowser');function checkWritableCwd(_0x2f055d){const _0x48a3a9={_0x25931f:0x26b,_0x3bd8fa:0x26b},_0x4e7014=_0x29ef99;if(!_0x17ad17(_0x2f055d))return{'name':_0x4e7014(_0x48a3a9._0x25931f),'severity':'error','message':_0x4e7014(0x16e)+_0x2f055d+'\x20does\x20not\x20exist','detail':_0x4e7014(0x21f)};return{'name':_0x4e7014(_0x48a3a9._0x3bd8fa),'severity':'ok','message':_0x2f055d};}__name(checkWritableCwd,_0x29ef99(0x253));import{existsSync as _0x31e9ff,mkdirSync,readFileSync as _0x3d6bf0,writeFileSync as _0x1e4f39}from'fs';import{dirname,join as _0x2a322f}from'path';import{existsSync as _0x5e3d6a}from'fs';import{join as _0x3112ae}from'path';import{categorizeVariable,isExternalVarName,secretsFileFor,activeEnvName,envLayerFilesFor,secretsLayerFilesFor}from'@unotest/protocol';import{existsSync as _0x525434,readFileSync,writeFileSync}from'fs';import{join}from'path';import{applyEnvLayers,readEnvFile,readEnvLayers}from'@unotest/core';import{insertEnvVar,removeEnvVar,envFileFor}from'@unotest/protocol';var WEB_SUFFIX='';function parseEnvLayered(_0x331fb2,_0x2acfee){return readEnvLayers(_0x331fb2,WEB_SUFFIX,_0x2acfee);}__name(parseEnvLayered,_0x29ef99(0x154));var parseEnvFile=readEnvFile,SecretRegistry=class{static{__name(this,_0x29ef99(0x259));}[_0x29ef99(0x1dc)]=new Map();[_0x29ef99(0x264)]=[];[_0x29ef99(0x275)](_0x21b73d,_0x11374c){const _0x15dbf5={_0xf68061:0x1f2,_0x237858:0x245,_0x51d3c6:0x1d8},_0xadbd55=_0x29ef99;if(_0x11374c[_0xadbd55(_0x15dbf5._0xf68061)]===0x0)return;this['byValue'][_0xadbd55(0x251)](_0x11374c,_0x21b73d),this['ordered']=[...this[_0xadbd55(0x1dc)][_0xadbd55(_0x15dbf5._0x237858)]()][_0xadbd55(_0x15dbf5._0x51d3c6)]((_0x5e867d,_0x35b2fb)=>_0x35b2fb[0x0][_0xadbd55(0x1f2)]-_0x5e867d[0x0][_0xadbd55(0x1f2)]);}get[_0x29ef99(0x1ef)](){const _0x17a79e={_0xaf328c:0x1dc},_0xed4d44=_0x29ef99;return this[_0xed4d44(_0x17a79e._0xaf328c)]['size'];}[_0x29ef99(0x152)](_0x27a85d){const _0xf77304={_0x315eba:0x1dc},_0x85c82f=_0x29ef99;for(const [_0x59b233,_0x3a397e]of this[_0x85c82f(_0xf77304._0x315eba)])_0x27a85d[_0x85c82f(0x275)](_0x3a397e,_0x59b233);}[_0x29ef99(0x224)](_0x51a11d){const _0x43d23a={_0x13cf55:0x1f2,_0x17ff65:0x264,_0x64342f:0x1e0,_0x498fda:0x221,_0x266dc0:0x194},_0x2edb29=_0x29ef99;if(this['ordered'][_0x2edb29(_0x43d23a._0x13cf55)]===0x0)return _0x51a11d;let _0x101c94=_0x51a11d;for(const [_0x204966,_0x182c78]of this[_0x2edb29(_0x43d23a._0x17ff65)]){if(_0x101c94['includes'](_0x204966))_0x101c94=_0x101c94[_0x2edb29(_0x43d23a._0x64342f)](_0x204966)[_0x2edb29(_0x43d23a._0x498fda)](_0x2edb29(_0x43d23a._0x266dc0)+_0x182c78+'›');}return _0x101c94;}[_0x29ef99(0x265)](_0x9a69d9){const _0x4add70={_0x39ca50:0x264},_0x26d5b1=_0x29ef99;if(this[_0x26d5b1(_0x4add70._0x39ca50)][_0x26d5b1(0x1f2)]===0x0)return _0x9a69d9;return this['redactValue'](_0x9a69d9);}[_0x29ef99(0x1a4)](_0x37b3da){const _0x2c7b88={_0x499546:0x187,_0x99cfe7:0x245},_0x1346b2=_0x29ef99;if(typeof _0x37b3da==='string')return this[_0x1346b2(0x224)](_0x37b3da);if(Array[_0x1346b2(_0x2c7b88._0x499546)](_0x37b3da))return _0x37b3da[_0x1346b2(0x20a)](_0x1fc82e=>this[_0x1346b2(0x1a4)](_0x1fc82e));if(_0x37b3da!==null&&typeof _0x37b3da===_0x1346b2(0x247)){const _0x23f2b9={};for(const [_0x586912,_0x25fd2a]of Object[_0x1346b2(_0x2c7b88._0x99cfe7)](_0x37b3da)){_0x23f2b9[_0x586912]=this[_0x1346b2(0x1a4)](_0x25fd2a);}return _0x23f2b9;}return _0x37b3da;}},WEB_SUFFIX2='';function layerInfos(_0x41c753,_0x4ea4d0){return _0x4ea4d0['map'](_0x2916ae=>({'file':_0x2916ae,'exists':_0x5e3d6a(_0x3112ae(_0x41c753,_0x2916ae))}));}__name(layerInfos,_0x29ef99(0x25f));function describeEnvLayers(_0x544ed8,_0x237729=process[_0x29ef99(0x22c)]){const _0x4561e9=activeEnvName(_0x237729);return{'active':_0x4561e9??null,'envFiles':layerInfos(_0x544ed8,envLayerFilesFor(WEB_SUFFIX2,_0x4561e9)),'secretsFiles':layerInfos(_0x544ed8,secretsLayerFilesFor(WEB_SUFFIX2,_0x4561e9))};}__name(describeEnvLayers,_0x29ef99(0x21e));function formatSources(_0xbf0ad4){const _0x2ea7dd={_0x3ca6b5:0x1f6,_0x4a26ed:0x24b},_0x46296b=_0x29ef99,_0x694686=[..._0xbf0ad4[_0x46296b(_0x2ea7dd._0x3ca6b5)],..._0xbf0ad4['secretsFiles']]['map'](_0x4223d6=>_0x4223d6['exists']?_0x4223d6[_0x46296b(0x153)]:_0x4223d6['file']+_0x46296b(0x19d))[_0x46296b(0x221)](',\x20'),_0x15cb28=_0xbf0ad4['active']?'environment\x20\x22'+_0xbf0ad4[_0x46296b(_0x2ea7dd._0x4a26ed)]+'\x22\x20(UNOTEST_ENV)':_0x46296b(0x17b);return _0x15cb28+':\x20'+_0x694686;}__name(formatSources,_0x29ef99(0x1fb));function secretsFilePath(_0x16dc0f,_0x11a1a4){return _0x3112ae(_0x16dc0f,secretsFileFor('',_0x11a1a4));}__name(secretsFilePath,_0x29ef99(0x18a));var EnvVariableStore=class{constructor(_0x38f9a4,_0x62d242,_0x16c091){const _0x4f0391={_0x3d209a:0x188},_0x2ff522=_0x29ef99;this['env']=_0x38f9a4,this['secrets']=_0x62d242,this[_0x2ff522(_0x4f0391._0x3d209a)]=_0x16c091;}[_0x29ef99(0x22c)];['secrets'];[_0x29ef99(0x188)];static{__name(this,_0x29ef99(0x1e3));}['describeSources'](){const _0x38412d=_0x29ef99;return formatSources(this[_0x38412d(0x188)]);}['has'](_0x39ba83){const _0x77e0ab={_0x513daa:0x22c},_0xb4bbf9=_0x29ef99;return _0x39ba83 in this[_0xb4bbf9(0x1a6)]||this[_0xb4bbf9(_0x77e0ab._0x513daa)][_0x39ba83]!==void 0x0;}['get'](_0x91830b){const _0x261a18={_0xb7a3d0:0x1a6,_0x2956a9:0x22c},_0x3318fe=_0x29ef99;return _0x91830b in this[_0x3318fe(0x1a6)]?this[_0x3318fe(_0x261a18._0xb7a3d0)][_0x91830b]:this[_0x3318fe(_0x261a18._0x2956a9)][_0x91830b];}};function loadScenarioVariables(_0x5f450c,_0x789fad=process[_0x29ef99(0x22c)]){const _0x70cd5c={_0xe86e90:0x20a},_0x41dd9f=_0x29ef99,_0xd8b6e8=activeEnvName(_0x789fad),_0xf9b5dd=describeEnvLayers(_0x5f450c,_0x789fad),_0x496e67=parseEnvLayered(_0x5f450c,_0xd8b6e8),_0x780b3d={...parseEnvFile(secretsFilePath(_0x5f450c)),..._0xd8b6e8?parseEnvFile(secretsFilePath(_0x5f450c,_0xd8b6e8)):{}},_0x33e686=new SecretRegistry();for(const [_0x283703,_0x56739b]of Object['entries'](_0x780b3d)){_0x33e686[_0x41dd9f(0x275)](_0x283703,_0x56739b);}const _0x539315=[...Object[_0x41dd9f(0x203)](_0x496e67)[_0x41dd9f(0x20a)](_0xbb7b14=>({'name':_0xbb7b14,'source':_0x41dd9f(0x22c),'secret':![],'category':categorizeVariable({'name':_0xbb7b14,'source':_0x41dd9f(0x22c)})})),...Object[_0x41dd9f(0x203)](_0x780b3d)[_0x41dd9f(_0x70cd5c._0xe86e90)](_0x5f5db1=>({'name':_0x5f5db1,'source':_0x41dd9f(0x1a6),'secret':!![],'category':categorizeVariable({'name':_0x5f5db1,'source':_0x41dd9f(0x1a6)})}))];return{'store':new EnvVariableStore(_0x789fad,_0x780b3d,_0xf9b5dd),'secretRegistry':_0x33e686,'declared':_0x539315,'envReport':_0xf9b5dd};}__name(loadScenarioVariables,'loadScenarioVariables');var templates={'jsconfigJson':_0x29ef99(0x186),'scenarioTemplate':_0x29ef99(0x1f9),'agentsMd':'#\x20@unotest/web\x20—\x20guide\x20for\x20AI\x20agents\x20(and\x20humans)\x0a\x0aThis\x20project\x20uses\x20[`@unotest/web`](https://www.npmjs.com/package/@unotest/web)\x0afor\x20end-to-end\x20testing\x20of\x20web\x20applications.\x0a\x0a##\x20Writing\x20a\x20test\x20—\x20use\x20the\x20skill\x20+\x20MCP\x0a\x0aFor\x20ANY\x20request\x20to\x20write,\x20record,\x20or\x20run\x20an\x20e2e\x20test:\x0a\x0a1.\x20Open\x20the\x20**`write-e2e-test`**\x20skill\x20—\x20`.claude/skills/write-e2e-test/SKILL.md`\x0a\x20\x20\x20(in\x20Claude\x20Code\x20you\x20can\x20also\x20run\x20`/write-e2e-test`)\x20—\x20and\x20follow\x20it.\x0a2.\x20Drive\x20the\x20browser\x20through\x20the\x20**`unotest-web`\x20MCP\x20tools**:\x20`new_context`\x20→\x0a\x20\x20\x20`explore_start`\x20→\x20`explore_step`\x20→\x20`get_page_snapshot`\x20→\x20`run_test`.\x0a\x0aDo\x20NOT\x20hand-author\x20tests\x20blind\x20or\x20map\x20the\x20project\x20with\x20`find`/`ls`/`awk`\x20—\x20the\x0askill\x27s\x20Phase\x200\x20names\x20the\x20exact\x20files\x20to\x20read.\x20Runnable,\x20copy-pasteable\x0aexamples\x20live\x20in\x20`unotest/e2e/examples/`.\x0a\x0a##\x20Layout\x0a\x0a-\x20`unotest/e2e/<feature>/<name>.js`\x20—\x20test\x20scenarios,\x20grouped\x20by\x20feature/page\x0a\x20\x20(one\x20`test_*`\x20function\x20per\x20file).\x20**Required:**\x20every\x20scenario\x20lives\x20in\x20a\x0a\x20\x20feature\x20subfolder.\x20A\x20test\x20file\x20placed\x20directly\x20in\x20`unotest/e2e/`\x20is\x20rejected\x0a\x20\x20by\x20the\x20linter\x20(`lint:scenario-in-root`).\x0a-\x20`unotest/e2e/_helpers/`\x20—\x20project-specific\x20helpers\x20(visible\x20to\x20all\x20scenarios)\x0a-\x20`unotest/e2e/_template.js`\x20—\x20starting-point\x20template\x20(copy\x20into\x20a\x20feature\x20folder)\x0a\x0a##\x20DSL\x20conventions\x0a\x0aThe\x20DSL\x20is\x20a\x20strict\x20JS\x20subset\x20parsed\x20by\x20@unotest/dsl.\x20Method\x20chains,\x20options-\x0aobjects,\x20and\x20variables\x20are\x20allowed.\x20Multi-line\x20strings\x20use\x0abackticks\x20but\x20`${...}`\x20interpolation\x20is\x20forbidden\x20(sandbox\x20boundary\x20—\x0apass\x20values\x20via\x20positional\x20args).\x0a\x0a**Every\x20step\x20must\x20sit\x20inside\x20a\x20`step(\x22description\x22,\x20()\x20=>\x20{\x20…\x20})`\x20block\x20(linter\x0aenforces).**\x20The\x20title\x20is\x20plain-English\x20intent;\x20the\x20steps\x20inside\x20are\x20the\x0aimplementation.\x20When\x20a\x20step\x20later\x20breaks\x20(selector\x20drift),\x20you\x20read\x20the\x0atitle\x20to\x20understand\x20what\x20the\x20group\x20was\x20trying\x20to\x20do\x20and\x20repair\x20it.\x20Group\x20by\x0aintent,\x20one\x20block\x20per\x20logical\x20chunk:\x0a\x0a```js\x0afunction\x20test_login()\x20{\x0a\x20\x20step(\x22Sign\x20in\x20as\x20the\x20demo\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27https://app.example.com/login\x27);\x0a\x20\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27demo@example.com\x27);\x0a\x20\x20\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Dashboard\x20shows\x20the\x20signed-in\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome\x27);\x0a\x20\x20});\x0a}\x0a```\x0a\x0a**Base\x20URL\x20—\x20write\x20relative\x20paths.**\x20`APP_BASE_URL`\x20(in\x20`unotest/.env`)\x20is\x20the\x0aapp\x27s\x20base;\x20`goto(\x27/login\x27)`\x20resolves\x20against\x20it.\x20Don\x27t\x20concatenate\x0a(`goto(APP_BASE_URL\x20+\x20\x27/login\x27)`)\x20—\x20just\x20pass\x20the\x20path:\x0a\x0a```js\x0agoto(\x27/login\x27);\x0afill(getByLabel(\x27Password\x27),\x20TEST_USER_PASSWORD);\x0a```\x0a\x0a**Environments.**\x20Override\x20`APP_BASE_URL`\x20(and\x20any\x20var)\x20per\x20environment\x20with\x0aoverlay\x20files\x20—\x20`unotest/.env.staging`,\x20`unotest/.env.production`\x20(secrets:\x0a`unotest/.secrets.<env>`).\x20Select\x20one\x20at\x20run\x20time:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x0a--env\x20staging`.\x20The\x20overlay\x20layers\x20over\x20the\x20base\x20`.env`\x20(overlay\x20wins).\x0a\x0a**External\x20variables\x20&\x20secrets:**\x20reference\x20logins\x20/\x20tokens\x20by\x20a\x20bare\x0a`UPPER_SNAKE`\x20name\x20—\x20resolved\x20from\x20`unotest/.env`\x20(normal)\x20or\x20`unotest/.secrets`\x0a(secret,\x20masked\x20in\x20logs).\x20No\x20`env()`/`secret()`\x20wrapper.\x20A\x20lowercase\x20name\x20is\x20an\x0ain-scenario\x20binding;\x20an\x20unknown\x20`UPPER_SNAKE`\x20fails\x20the\x20run\x20asking\x20you\x20to\x20add\x20it\x0ato\x20`unotest/.env`.\x0a\x0a**Selector\x20hierarchy\x20(D-22\x20—\x20linter\x20enforces):**\x0a1.\x20`getByTestId(id)`\x20—\x20most\x20stable\x0a2.\x20`getByRole(role,\x20{name})`\x20—\x20semantic,\x20a11y-aware\x0a3.\x20`getByLabel(text)`\x20—\x20for\x20form\x20fields\x0a4.\x20`getByText(text)`\x20—\x20for\x20unique\x20text\x0a5.\x20`locator(css)`\x20—\x20last\x20resort\x20(linter\x20warns)\x0a\x0aFull\x20reference\x20shipped\x20with\x20the\x20package:\x0a-\x20`node_modules/@unotest/web/guides/dsl-reference.md`\x20—\x20DSL\x20functions\x20+\x20linter\x20codes\x0a\x0a##\x20Running\x20(CLI)\x0a\x0a-\x20`npx\x20@unotest/web\x20e2e\x20<feature>/<name>`\x20—\x20run\x20a\x20scenario\x20by\x20name\x0a-\x20`npx\x20@unotest/web\x20lint`\x20—\x20static\x20check\x20of\x20all\x20scenarios\x20+\x20helpers\x0a-\x20`npx\x20@unotest/web\x20mcp`\x20—\x20start\x20the\x20MCP\x20server\x20for\x20agent\x20control\x0a\x0a##\x20Via\x20MCP\x20(Claude\x20Code\x20/\x20Claude\x20Desktop\x20/\x20Cursor)\x0a\x0aThe\x20MCP\x20server\x20exposes:\x0a-\x20`run_test\x20name=\x22<name>\x22\x20mode=\x22step\x22\x20pauseOnFailure=true`\x20—\x20run\x20with\x20step-mode\x0a-\x20`step`\x20/\x20`resume`\x20—\x20advance\x20one\x20AST\x20node\x20/\x20run\x20until\x20next\x20pause\x0a-\x20`inspect_runtime`\x20—\x20current\x20state,\x20last\x20error,\x20locals\x20dump\x0a-\x20`abort_runtime`\x20—\x20kill\x20a\x20paused\x20runtime\x0a\x0aFor\x20agent-fix\x20workflows\x20on\x20flaky\x20tests:\x20`agent_fix\x20testId=\x22<id>\x22`\x20returns\x20a\x0astructured\x20context\x20bundle\x20(see\x20D-25\x20—\x20we\x20never\x20call\x20LLMs\x20or\x20auto-apply\x0adiffs,\x20the\x20diff\x20comes\x20from\x20your\x20MCP-host\x20agent).\x0a','claudeMdBody':_0x29ef99(0x1dd),'examples':{'01-smoke.js':_0x29ef99(0x175),'02-form-fill.js':_0x29ef99(0x1cd)},'secretsExample':_0x29ef99(0x179),'envExample':_0x29ef99(0x1ce)};function unotestConfigMjs(_0x19a4c4){const _0x2590d6={_0x593784:0x174,_0x20665c:0x26e,_0x1dfb8c:0x18b},_0x114fb9=_0x29ef99,_0x41f316=_0x19a4c4===void 0x0?_0x114fb9(_0x2590d6._0x593784):_0x114fb9(_0x2590d6._0x20665c)+JSON[_0x114fb9(0x177)](_0x19a4c4)+',';return _0x114fb9(0x249)+_0x41f316+_0x114fb9(_0x2590d6._0x1dfb8c);}__name(unotestConfigMjs,_0x29ef99(0x272));var JSCONFIG_REL=_0x2a322f('unotest','jsconfig.json'),ENV_TYPES_REL=_0x2a322f(_0x29ef99(0x20c),_0x29ef99(0x217),'env.d.ts'),SKIPPED={'jsconfig':_0x29ef99(0x1a9),'envTypes':'skipped'},IDENTIFIER=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function renderEnvTypes(_0x12b4b9){const _0xc92e49={_0x323b3:0x157,_0x210a3b:0x204,_0x680423:0x221},_0x16ac9d=_0x29ef99,_0x164c43=[...new Set(_0x12b4b9[_0x16ac9d(0x1e2)](_0x245394=>IDENTIFIER['test'](_0x245394)))][_0x16ac9d(0x1d8)]();return['//\x20GENERATED\x20by\x20@unotest/web\x20from\x20unotest/.env\x20and\x20unotest/.secrets\x20—\x20do\x20not\x20edit.',_0x16ac9d(_0xc92e49._0x323b3),_0x16ac9d(_0xc92e49._0x210a3b),'',..._0x164c43[_0x16ac9d(0x20a)](_0x5c809f=>_0x16ac9d(0x190)+_0x5c809f+':\x20string;'),''][_0x16ac9d(_0xc92e49._0x680423)]('\x0a');}function _0x35a8(_0x4f22ec,_0x513aaa){_0x4f22ec=_0x4f22ec-0x152;const _0x5ac7d9=_0x5ac7();let _0x35a860=_0x5ac7d9[_0x4f22ec];if(_0x35a8['XDTaNG']===undefined){var _0x43b8a9=function(_0x484721){const _0x18534c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1b440b='',_0x5c1496='';for(let _0x312701=0x0,_0x59da13,_0x4cdac3,_0x2ebb93=0x0;_0x4cdac3=_0x484721['charAt'](_0x2ebb93++);~_0x4cdac3&&(_0x59da13=_0x312701%0x4?_0x59da13*0x40+_0x4cdac3:_0x4cdac3,_0x312701++%0x4)?_0x1b440b+=String['fromCharCode'](0xff&_0x59da13>>(-0x2*_0x312701&0x6)):0x0){_0x4cdac3=_0x18534c['indexOf'](_0x4cdac3);}for(let _0x3a93e0=0x0,_0x409d4c=_0x1b440b['length'];_0x3a93e0<_0x409d4c;_0x3a93e0++){_0x5c1496+='%'+('00'+_0x1b440b['charCodeAt'](_0x3a93e0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c1496);};_0x35a8['mdNgbD']=_0x43b8a9,_0x35a8['zmjjUW']={},_0x35a8['XDTaNG']=!![];}const _0x276b39=_0x5ac7d9[0x0],_0x5b1944=_0x4f22ec+_0x276b39,_0x108005=_0x35a8['zmjjUW'][_0x5b1944];return!_0x108005?(_0x35a860=_0x35a8['mdNgbD'](_0x35a860),_0x35a8['zmjjUW'][_0x5b1944]=_0x35a860):_0x35a860=_0x108005,_0x35a860;}__name(renderEnvTypes,'renderEnvTypes');function ensureEditorTypes(_0x45f482,_0x31d8fb={}){const _0x3609ee={_0x340c88:0x1df,_0x549897:0x159},_0x3414ef=_0x29ef99,_0x591767=_0x31d8fb[_0x3414ef(0x22c)]??process['env'];if(_0x31d8fb[_0x3414ef(_0x3609ee._0x340c88)]&&_0x591767['CI'])return SKIPPED;if(!_0x31e9ff(_0x2a322f(_0x45f482,_0x3414ef(0x17f))))return SKIPPED;return{'jsconfig':ensureJsconfig(_0x45f482,_0x31d8fb[_0x3414ef(_0x3609ee._0x549897)]??![]),'envTypes':syncEnvTypes(_0x45f482,_0x591767)};}__name(ensureEditorTypes,_0x29ef99(0x277));function ensureJsconfig(_0x580281,_0x5a4f58){const _0x1806f0={_0x120402:0x1a9,_0x2c6514:0x171},_0x3e9801=_0x29ef99,_0x5e7b02=_0x2a322f(_0x580281,JSCONFIG_REL),_0x4fa71e=_0x31e9ff(_0x5e7b02);if(_0x4fa71e&&!_0x5a4f58)return _0x3e9801(_0x1806f0._0x120402);return mkdirSync(dirname(_0x5e7b02),{'recursive':!![]}),_0x1e4f39(_0x5e7b02,templates[_0x3e9801(_0x1806f0._0x2c6514)]),_0x4fa71e?'overwrote':_0x3e9801(0x178);}__name(ensureJsconfig,'ensureJsconfig');function syncEnvTypes(_0x2b3b4f,_0x8296a5){const _0x2b3cb7=_0x29ef99,{declared:_0x570ff3}=loadScenarioVariables(_0x2b3b4f,_0x8296a5),_0x1f7eb0=renderEnvTypes(_0x570ff3[_0x2b3cb7(0x20a)](_0xb955a=>_0xb955a[_0x2b3cb7(0x22b)])),_0x2c3ea3=_0x2a322f(_0x2b3b4f,ENV_TYPES_REL),_0x40ceb0=_0x31e9ff(_0x2c3ea3);if(_0x40ceb0&&_0x3d6bf0(_0x2c3ea3,_0x2b3cb7(0x183))===_0x1f7eb0)return'skipped';return mkdirSync(dirname(_0x2c3ea3),{'recursive':!![]}),_0x1e4f39(_0x2c3ea3,_0x1f7eb0),_0x40ceb0?'updated':'created';}__name(syncEnvTypes,_0x29ef99(0x1d0));function promptYesNo(_0x1c6d73,_0x180fb5){const _0x5d1e7e={_0x183c93:0x20e},_0x97622={_0x253c1b:0x161,_0x319c47:0x1ff,_0x1fada6:0x1b6,_0x3443b5:0x25a},_0x222155={_0x20486e:0x1e7,_0x265048:0x25a,_0x3f145f:0x1e7},_0x50073b=_0x29ef99,_0x311815=_0x180fb5?_0x50073b(_0x5d1e7e._0x183c93):_0x50073b(0x208);return new Promise(_0x4b3589=>{const _0x3ca7de={_0x2a6ab4:0x220,_0x51b1fb:0x15d},_0x3c5674=_0x50073b;let _0x3ae7fd=![];const _0x3f757e=__name(_0x3e90d3=>{const _0x2fad01=_0x35a8;if(_0x3ae7fd)return;_0x3ae7fd=!![],process[_0x2fad01(_0x222155._0x20486e)][_0x2fad01(0x226)]('data',_0x56baa0),process['stdin']['removeListener'](_0x2fad01(_0x222155._0x265048),_0x3082a5),process[_0x2fad01(_0x222155._0x3f145f)]['pause'](),process[_0x2fad01(0x1e7)][_0x2fad01(0x18f)](),_0x4b3589(_0x3e90d3);},_0x3c5674(0x20b)),_0x56baa0=__name(_0x57bb31=>{const _0x46ca96=_0x3c5674,_0x382488=typeof _0x57bb31===_0x46ca96(0x195)?_0x57bb31:_0x57bb31['toString']('utf8'),_0x6f8bed=_0x382488[_0x46ca96(_0x3ca7de._0x2a6ab4)]('\x0a');if(_0x6f8bed<0x0)return;const _0x8480a3=_0x382488['slice'](0x0,_0x6f8bed)[_0x46ca96(0x202)]()[_0x46ca96(0x1b8)]();if(_0x8480a3==='')return _0x3f757e(_0x180fb5);_0x3f757e(_0x8480a3==='y'||_0x8480a3===_0x46ca96(_0x3ca7de._0x51b1fb));},_0x3c5674(0x235)),_0x3082a5=__name(()=>_0x3f757e(_0x180fb5),_0x3c5674(_0x97622._0x253c1b));process[_0x3c5674(_0x97622._0x319c47)][_0x3c5674(_0x97622._0x1fada6)](_0x1c6d73+_0x311815),process[_0x3c5674(0x1e7)]['on'](_0x3c5674(0x1aa),_0x56baa0),process[_0x3c5674(0x1e7)]['on'](_0x3c5674(_0x97622._0x3443b5),_0x3082a5),process['stdin'][_0x3c5674(0x243)]();});}__name(promptYesNo,'promptYesNo');import{spawn}from'child_process';import{createRequire}from'module';import{dirname as _0x509f69,resolve}from'path';import{fileURLToPath}from'url';async function installChromium(_0x5a8a26={}){const _0x5af658={_0x46d54f:0x23f,_0x28e6a5:0x195,_0x4cbeba:0x1e6},_0x5b75b0={_0x340abd:0x1aa,_0x4810d5:0x17e},_0x4c0a69={_0x5a8df3:0x181},_0x5c0840=_0x29ef99,_0x5126d3=_0x5a8a26['stdoutWrite']??(_0xb1f1db=>process['stdout']['write'](_0xb1f1db)),_0x272b8b=createRequire(import.meta.url),_0x37c3ef=_0x272b8b[_0x5c0840(_0x5af658._0x46d54f)]('playwright/package.json'),_0x320044=_0x272b8b(_0x37c3ef),_0x58230e=typeof _0x320044[_0x5c0840(0x1e6)]===_0x5c0840(_0x5af658._0x28e6a5)?_0x320044[_0x5c0840(_0x5af658._0x4cbeba)]:_0x320044[_0x5c0840(0x1e6)]?.['playwright'];if(!_0x58230e)throw new Error('playwright/package.json\x20has\x20no\x20usable\x20\x22bin\x22\x20field');const _0x50bb62=resolve(_0x509f69(_0x37c3ef),_0x58230e);return new Promise((_0x321029,_0x1e0459)=>{const _0x683709=_0x5c0840,_0x46bffc=spawn(process['execPath'],[_0x50bb62,'install',_0x683709(0x228)],{'stdio':[_0x683709(0x15c),_0x683709(0x254),_0x683709(0x254)]});_0x46bffc[_0x683709(0x1ff)]?.['on'](_0x683709(_0x5b75b0._0x340abd),_0x51fbf1=>_0x5126d3(_0x51fbf1['toString']())),_0x46bffc[_0x683709(0x21b)]?.['on'](_0x683709(0x1aa),_0x2ae783=>_0x5126d3(_0x2ae783[_0x683709(0x211)]())),_0x46bffc['on'](_0x683709(0x162),_0x1e0459),_0x46bffc['on'](_0x683709(_0x5b75b0._0x4810d5),_0xcdac8=>{const _0x1f83ce=_0x683709;if(_0xcdac8===0x0)_0x321029();else _0x1e0459(new Error(_0x1f83ce(_0x4c0a69._0x5a8df3)+_0xcdac8));});});}__name(installChromium,'installChromium');async function runInstallChromiumCli(){const _0x10cb65={_0x3395bd:0x24f},_0x3ea4b8=_0x29ef99;try{return await installChromium(),0x0;}catch(_0x5d7420){return process[_0x3ea4b8(0x21b)][_0x3ea4b8(0x1b6)]('✗\x20install-chromium:\x20'+(_0x5d7420 instanceof Error?_0x5d7420[_0x3ea4b8(_0x10cb65._0x3395bd)]:String(_0x5d7420))+'\x0a'),0x1;}}__name(runInstallChromiumCli,'runInstallChromiumCli');var invokedDirectly=process['argv'][0x1]&&fileURLToPath(import.meta.url)===process[_0x29ef99(0x15b)][0x1];invokedDirectly&&runInstallChromiumCli()[_0x29ef99(0x20f)](_0x5ea569=>process['exit'](_0x5ea569));async function chooseBrowser(_0x2ec9bd){const _0x3e2de6={_0x1a1789:0x216,_0x57b12a:0x246,_0x169d4b:0x22e,_0x73c349:0x17c,_0x13c9b3:0x229,_0x5795fb:0x19c,_0x125125:0x1f1,_0x3eee3d:0x1b2,_0x5af885:0x1fc,_0x55f2d3:0x16a,_0x2d08e8:0x1c3,_0x67fc41:0x166,_0x265bfa:0x1c9,_0x3bad76:0x1bb,_0x182a7a:0x1ad,_0x232a37:0x1ea,_0x55cb01:0x1de},_0x43aeeb=_0x29ef99,_0x445d39=_0x2ec9bd[_0x43aeeb(0x1da)]??(_0x543709=>process['stdout'][_0x43aeeb(0x1b6)](_0x543709));if(_0x2ec9bd[_0x43aeeb(0x1e5)]===_0x43aeeb(_0x3e2de6._0x1a1789)){if(_0x2ec9bd[_0x43aeeb(_0x3e2de6._0x57b12a)][_0x43aeeb(0x1fc)])return _0x445d39(_0x43aeeb(0x191)+_0x2ec9bd['probe']['label']+'\x20('+_0x2ec9bd['probe'][_0x43aeeb(_0x3e2de6._0x169d4b)]+')\x0a'),{'channel':_0x2ec9bd[_0x43aeeb(_0x3e2de6._0x57b12a)][_0x43aeeb(0x1fc)],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':['✗\x20--browser\x20system\x20but\x20no\x20Chrome\x20/\x20Edge\x20/\x20Chromium\x20found\x20on\x20this\x20machine.',_0x43aeeb(_0x3e2de6._0x73c349)]};}if(_0x2ec9bd[_0x43aeeb(0x1e5)]===_0x43aeeb(_0x3e2de6._0x13c9b3))return _0x445d39(_0x43aeeb(0x1fd)),await installChromium({'stdoutWrite':_0x445d39}),{'channel':null,'installedBundled':!![],'warnings':[]};if(_0x2ec9bd[_0x43aeeb(0x1e5)]===_0x43aeeb(_0x3e2de6._0x5795fb))return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x43aeeb(0x239),_0x43aeeb(0x1ea),'\x20\x20\x20\x20install\x20Chrome:\x20\x20https://www.google.com/chrome']};if(!_0x2ec9bd[_0x43aeeb(0x19a)]){if(_0x2ec9bd[_0x43aeeb(0x246)]['channel'])return _0x445d39(_0x43aeeb(_0x3e2de6._0x125125)+_0x2ec9bd[_0x43aeeb(_0x3e2de6._0x57b12a)][_0x43aeeb(0x1bb)]+_0x43aeeb(_0x3e2de6._0x3eee3d)+_0x2ec9bd[_0x43aeeb(_0x3e2de6._0x57b12a)][_0x43aeeb(0x22e)]+_0x43aeeb(0x222)+_0x2ec9bd[_0x43aeeb(_0x3e2de6._0x57b12a)][_0x43aeeb(_0x3e2de6._0x5af885)]+'\x27\x0a'),{'channel':_0x2ec9bd[_0x43aeeb(_0x3e2de6._0x57b12a)][_0x43aeeb(0x1fc)],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x43aeeb(_0x3e2de6._0x55f2d3),_0x43aeeb(_0x3e2de6._0x2d08e8),_0x43aeeb(_0x3e2de6._0x67fc41)]};}if(_0x2ec9bd[_0x43aeeb(0x246)][_0x43aeeb(_0x3e2de6._0x5af885)]){_0x445d39(_0x43aeeb(0x1af)+_0x2ec9bd['probe']['label']+_0x43aeeb(_0x3e2de6._0x265bfa)+_0x2ec9bd[_0x43aeeb(0x246)][_0x43aeeb(_0x3e2de6._0x169d4b)]+'\x0a');const _0xbc7d8d=await promptYesNo(_0x43aeeb(0x1ba)+_0x2ec9bd['probe'][_0x43aeeb(_0x3e2de6._0x3bad76)]+'?',!![]);if(_0xbc7d8d)return{'channel':_0x2ec9bd[_0x43aeeb(_0x3e2de6._0x57b12a)]['channel'],'installedBundled':![],'warnings':[]};}else _0x445d39(_0x43aeeb(0x266));const _0x179925=await promptYesNo(_0x43aeeb(_0x3e2de6._0x182a7a),!![]);if(_0x179925)return _0x445d39(_0x43aeeb(0x267)),await installChromium({'stdoutWrite':_0x445d39}),{'channel':null,'installedBundled':!![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':['⚠\x20No\x20browser\x20configured.\x20Run\x20one\x20of\x20before\x20first\x20test:',_0x43aeeb(_0x3e2de6._0x232a37),_0x43aeeb(_0x3e2de6._0x55cb01)]};}__name(chooseBrowser,_0x29ef99(0x214));var McpJsonParseError=class extends Error{static{__name(this,'McpJsonParseError');}constructor(_0x2e41b6){const _0x335568={_0x42c638:0x1b0},_0x30cfa0=_0x29ef99;super(_0x2e41b6),this['name']=_0x30cfa0(_0x335568._0x42c638);}};function mergeMcpConfig(_0x280d2c,_0x2a9c92,_0x4416ca,_0x841bf7={}){const _0x550d08={_0x130d04:0x198,_0x550511:0x26d,_0x3706f4:0x247,_0x5313eb:0x159,_0x1400a6:0x177,_0x190e65:0x16b,_0x11549f:0x1d9},_0x47d578=_0x29ef99;if(_0x280d2c===null){const _0x56f080=JSON[_0x47d578(0x177)]({'mcpServers':{[_0x2a9c92]:_0x4416ca}},null,0x2)+'\x0a';return{'action':_0x47d578(0x178),'newContent':_0x56f080};}let _0x3c6c27;try{_0x3c6c27=JSON[_0x47d578(_0x550d08._0x130d04)](_0x280d2c);}catch(_0x25e319){throw new McpJsonParseError('Failed\x20to\x20parse\x20.mcp.json\x20as\x20JSON:\x20'+_0x25e319[_0x47d578(0x24f)]+'.\x20Fix\x20or\x20remove\x20the\x20file\x20and\x20re-run\x20init.');}(!_0x3c6c27[_0x47d578(_0x550d08._0x550511)]||typeof _0x3c6c27[_0x47d578(_0x550d08._0x550511)]!==_0x47d578(_0x550d08._0x3706f4))&&(_0x3c6c27[_0x47d578(_0x550d08._0x550511)]={});const _0x5d38f1=_0x2a9c92 in _0x3c6c27[_0x47d578(_0x550d08._0x550511)];if(_0x5d38f1&&!_0x841bf7[_0x47d578(_0x550d08._0x5313eb)])return{'action':'already-present','newContent':_0x280d2c};_0x3c6c27['mcpServers'][_0x2a9c92]=_0x4416ca;const _0x2a3539=JSON[_0x47d578(_0x550d08._0x1400a6)](_0x3c6c27,null,0x2)+'\x0a';return{'action':_0x5d38f1?_0x47d578(_0x550d08._0x190e65):_0x47d578(_0x550d08._0x11549f),'newContent':_0x2a3539};}__name(mergeMcpConfig,_0x29ef99(0x238));var ClaudeSettingsParseError=class extends Error{static{__name(this,_0x29ef99(0x240));}constructor(_0x43bb23){const _0x1466e5=_0x29ef99;super(_0x43bb23),this['name']=_0x1466e5(0x240);}};function mergeClaudeAllowEntries(_0x2f70f4,_0x1d6a34){const _0x502ddf={_0x383e94:0x177,_0x7d03a2:0x218,_0x326fce:0x263,_0x1674e4:0x263,_0x114a08:0x163,_0x3ab234:0x1d4,_0x13b3c1:0x184},_0x46be9b=_0x29ef99;if(_0x2f70f4===null){const _0x5c0d75=JSON[_0x46be9b(_0x502ddf._0x383e94)]({'permissions':{'allow':[..._0x1d6a34]}},null,0x2)+'\x0a';return{'action':_0x46be9b(0x178),'newContent':_0x5c0d75,'added':[..._0x1d6a34]};}let _0x2236e1;try{_0x2236e1=JSON['parse'](_0x2f70f4);}catch(_0x139a2c){throw new ClaudeSettingsParseError(_0x46be9b(_0x502ddf._0x7d03a2)+_0x139a2c[_0x46be9b(0x24f)]+'.\x20Fix\x20or\x20remove\x20the\x20file\x20and\x20re-run\x20init.');}(!_0x2236e1['permissions']||typeof _0x2236e1['permissions']!==_0x46be9b(0x247))&&(_0x2236e1[_0x46be9b(_0x502ddf._0x326fce)]={});const _0x43a294=Array['isArray'](_0x2236e1[_0x46be9b(_0x502ddf._0x1674e4)][_0x46be9b(_0x502ddf._0x114a08)])?_0x2236e1[_0x46be9b(0x263)][_0x46be9b(0x163)]:[],_0x34e3a1=[];for(const _0x3c75e7 of _0x1d6a34){!_0x43a294[_0x46be9b(0x236)](_0x3c75e7)&&(_0x43a294[_0x46be9b(_0x502ddf._0x3ab234)](_0x3c75e7),_0x34e3a1[_0x46be9b(0x1d4)](_0x3c75e7));}_0x2236e1[_0x46be9b(0x263)][_0x46be9b(0x163)]=_0x43a294;if(_0x34e3a1[_0x46be9b(0x1f2)]===0x0)return{'action':_0x46be9b(_0x502ddf._0x13b3c1),'newContent':_0x2f70f4,'added':[]};const _0xe5c450=JSON[_0x46be9b(_0x502ddf._0x383e94)](_0x2236e1,null,0x2)+'\x0a';return{'action':_0x46be9b(0x1d9),'newContent':_0xe5c450,'added':_0x34e3a1};}__name(mergeClaudeAllowEntries,_0x29ef99(0x1fe));function mergeClaudeHooks(_0x487b14,_0x44512e,_0x35a78d,_0x5ddb74){const _0x396e05={_0x571baf:0x198,_0x16c0b1:0x24f,_0x4cd80c:0x168,_0x2d8390:0x274,_0x52ba9b:0x187,_0x2feabb:0x22d},_0x48a70c=_0x29ef99;let _0x4630b3;if(_0x487b14===null)_0x4630b3={};else try{_0x4630b3=JSON[_0x48a70c(_0x396e05._0x571baf)](_0x487b14);}catch(_0x371ebb){throw new ClaudeSettingsParseError('Failed\x20to\x20parse\x20.claude/settings.json\x20as\x20JSON:\x20'+_0x371ebb[_0x48a70c(_0x396e05._0x16c0b1)]+_0x48a70c(_0x396e05._0x4cd80c));}const _0xe3f937=_0x4630b3['hooks']&&typeof _0x4630b3[_0x48a70c(_0x396e05._0x2d8390)]===_0x48a70c(0x247)?_0x4630b3[_0x48a70c(0x274)]:{},_0x21baf8=[];for(const _0x4aa81b of _0x44512e){const _0x57e6ef=Array[_0x48a70c(_0x396e05._0x52ba9b)](_0xe3f937[_0x4aa81b])?_0xe3f937[_0x4aa81b]:[],_0x5c6ad6=_0x57e6ef[_0x48a70c(0x1cf)](_0x4c0ac2=>(_0x4c0ac2['hooks']??[])[_0x48a70c(0x1cf)](_0x53f923=>(_0x53f923[_0x48a70c(0x22d)]??'')['includes'](_0x5ddb74)));if(_0x5c6ad6)continue;_0x57e6ef[_0x48a70c(0x1d4)]({'matcher':'*','hooks':[{'type':_0x48a70c(_0x396e05._0x2feabb),'command':_0x35a78d}]}),_0xe3f937[_0x4aa81b]=_0x57e6ef,_0x21baf8[_0x48a70c(0x1d4)](_0x4aa81b);}_0x4630b3[_0x48a70c(_0x396e05._0x2d8390)]=_0xe3f937;if(_0x21baf8[_0x48a70c(0x1f2)]===0x0)return{'action':_0x48a70c(0x184),'newContent':_0x487b14??JSON[_0x48a70c(0x177)](_0x4630b3,null,0x2)+'\x0a','added':[]};return{'action':_0x48a70c(0x1d9),'newContent':JSON['stringify'](_0x4630b3,null,0x2)+'\x0a','added':_0x21baf8};}__name(mergeClaudeHooks,_0x29ef99(0x1d6));var BEGIN=_0x29ef99(0x19e),END=_0x29ef99(0x256);function mergeClaudeMd(_0x52c965,_0xa709fd){const _0x575506={_0x4af34f:0x220,_0x270442:0x172,_0x3ae619:0x15a},_0x2264ba=_0x29ef99,_0x58f175=BEGIN+'\x0a'+_0xa709fd[_0x2264ba(0x202)]()+'\x0a'+END;if(_0x52c965===null)return{'action':'created','newContent':_0x58f175+'\x0a'};const _0x17096a=_0x52c965[_0x2264ba(_0x575506._0x4af34f)](BEGIN);if(_0x17096a===-0x1){const _0x23036f=_0x52c965[_0x2264ba(0x172)]('\x0a')?_0x52c965:_0x52c965+'\x0a';return{'action':_0x2264ba(0x1c7),'newContent':_0x23036f+'\x0a'+_0x58f175+'\x0a'};}const _0x140d9a=_0x52c965['indexOf'](END,_0x17096a);if(_0x140d9a===-0x1){const _0x309929=_0x52c965[_0x2264ba(_0x575506._0x270442)]('\x0a')?_0x52c965:_0x52c965+'\x0a';return{'action':_0x2264ba(0x1c7),'newContent':_0x309929+'\x0a'+_0x58f175+'\x0a'};}const _0x23be3f=_0x52c965[_0x2264ba(0x196)](0x0,_0x17096a)+_0x58f175+_0x52c965[_0x2264ba(0x196)](_0x140d9a+END['length']);if(_0x23be3f===_0x52c965)return{'action':'already-present','newContent':_0x52c965};return{'action':_0x2264ba(_0x575506._0x3ae619),'newContent':_0x23be3f};}__name(mergeClaudeMd,'mergeClaudeMd');import{appendUniqueLines}from'@unotest/core';var AGENT_LOG_HOOK_EVENTS=[_0x29ef99(0x1c2),_0x29ef99(0x1ab),'UserPromptSubmit',_0x29ef99(0x270),'PostToolUse',_0x29ef99(0x206),_0x29ef99(0x16c),_0x29ef99(0x18c),_0x29ef99(0x199),_0x29ef99(0x1d5),_0x29ef99(0x1bf)];function parseArgs(_0x4b6198){const _0x1b0303={_0xb92a34:0x278,_0x4b79a3:0x229,_0x202837:0x19c},_0x32762e=_0x29ef99;let _0x4f5675=![],_0x49804b=process['cwd'](),_0x8e39c1;for(let _0xf857fd=0x0;_0xf857fd<_0x4b6198[_0x32762e(0x1f2)];_0xf857fd++){const _0x21b3f5=_0x4b6198[_0xf857fd];if(_0x21b3f5===_0x32762e(_0x1b0303._0xb92a34)||_0x21b3f5==='-f')_0x4f5675=!![];else{if(_0x21b3f5===_0x32762e(0x223)){const _0x4abdde=_0x4b6198[++_0xf857fd];if(_0x4abdde==='system'||_0x4abdde===_0x32762e(_0x1b0303._0x4b79a3)||_0x4abdde===_0x32762e(_0x1b0303._0x202837))_0x8e39c1=_0x4abdde;else throw new Error('--browser\x20expects\x20system|bundled|none,\x20got\x20'+String(_0x4abdde));}else{if(!_0x21b3f5[_0x32762e(0x258)]('-'))_0x49804b=_0x3a93e0(process[_0x32762e(0x1bc)](),_0x21b3f5);}}}const _0x91443a={'cwd':_0x49804b,'force':_0x4f5675};if(_0x8e39c1!==void 0x0)_0x91443a[_0x32762e(0x205)]=_0x8e39c1;return _0x91443a;}__name(parseArgs,_0x29ef99(0x1be));function symbol(_0x564ede){const _0x1615da=_0x29ef99;return _0x564ede==='ok'?'✓':_0x564ede===_0x1615da(0x1f5)?'⚠':'✗';}__name(symbol,_0x29ef99(0x1cc));function readOwnVersion(){const _0x28bab3={_0x193112:0x183,_0x12e651:0x1ae},_0xfb17e0=_0x29ef99,_0x1e691e=_0x4cdac3(_0x409d4c(import.meta.url)),_0x1e35f6=_0x3a93e0(_0x1e691e,'../../package.json'),_0x2e60e4=_0x312701(_0x1e35f6,_0xfb17e0(_0x28bab3._0x193112)),_0x57e8fe=JSON[_0xfb17e0(0x198)](_0x2e60e4);if(typeof _0x57e8fe['version']!==_0xfb17e0(0x195)||_0x57e8fe[_0xfb17e0(0x1ae)][_0xfb17e0(0x1f2)]===0x0)throw new Error('package.json\x20at\x20'+_0x1e35f6+_0xfb17e0(0x158));return _0x57e8fe[_0xfb17e0(_0x28bab3._0x12e651)];}__name(readOwnVersion,_0x29ef99(0x180));function ensureDir(_0x23003b){if(!_0x1b440b(_0x23003b))_0x5c1496(_0x23003b,{'recursive':!![]});}__name(ensureDir,_0x29ef99(0x1bd));function writeIfNeeded(_0x146f1f,_0x308452,_0x7df737){const _0x52cc16={_0xab7f0:0x1c5},_0x595510=_0x29ef99,_0x223360=_0x1b440b(_0x146f1f);if(_0x223360&&!_0x7df737)return _0x595510(0x1a9);return ensureDir(_0x4cdac3(_0x146f1f)),_0x59da13(_0x146f1f,_0x308452),_0x223360?_0x595510(_0x52cc16._0xab7f0):'created';}__name(writeIfNeeded,_0x29ef99(0x24a));function writeIfAbsent(_0x160e58,_0x10f421){const _0x237d73={_0xc2bdb2:0x178},_0x53306a=_0x29ef99;if(_0x1b440b(_0x160e58))return _0x53306a(0x1a9);return ensureDir(_0x4cdac3(_0x160e58)),_0x59da13(_0x160e58,_0x10f421),_0x53306a(_0x237d73._0xc2bdb2);}__name(writeIfAbsent,_0x29ef99(0x1a2));async function runInit(_0x4acca9){const _0x23ad7b={_0xf271b9:0x1b6,_0x49af7e:0x16d,_0x353591:0x1ff,_0xca5faf:0x1bc,_0x4c60eb:0x25d,_0x2d5840:0x17d,_0x871072:0x230,_0x34e2a1:0x162,_0x549a2e:0x21b,_0x660193:0x23c,_0x1d8284:0x1d4,_0x2cc40e:0x1bc,_0x2253bc:0x159,_0x41a031:0x1d4,_0x5e7163:0x233,_0x59a7c3:0x1d4,_0x253ca6:0x25c,_0x2db408:0x1bc,_0x5213ff:0x1bc,_0x5562b2:0x183,_0x508502:0x25b,_0x1e4495:0x1d4,_0x403081:0x269,_0x15abe0:0x25e,_0x1790b4:0x1fa,_0x2edde0:0x21c,_0x148966:0x1bc,_0x5c3929:0x1d4,_0x1c3d37:0x210,_0xb804b6:0x189,_0x336097:0x159,_0x53a9ff:0x237,_0x1a3765:0x18e,_0xdab25:0x19b,_0x9cf23:0x178,_0x24531b:0x1c6,_0x5b8964:0x15a,_0x31fcfe:0x156,_0x17a4b0:0x258,_0xded9c9:0x165,_0x433146:0x1b6,_0xb39f81:0x1f7,_0x88e2d2:0x21d,_0x467aa1:0x184,_0x1b243c:0x227,_0x35a976:0x26c,_0x34c2cc:0x1d3,_0x48c569:0x1f1,_0x3bd26a:0x24f,_0x554830:0x1ff,_0x23b5c8:0x1ee,_0x19c451:0x268,_0x2b132d:0x21d,_0x3e5708:0x22a,_0x2d34bd:0x21d,_0x4bad2b:0x1b6,_0x4455d3:0x21d,_0x20f190:0x17a,_0xb1cf91:0x1f2,_0x1c75e1:0x167,_0x242077:0x22f,_0x1ee856:0x1ff,_0x3b6ed3:0x1f4,_0x5e6a97:0x1e8,_0x2cce56:0x1c8,_0x327516:0x248,_0x398065:0x1f2,_0x534eb5:0x185,_0x80a4bf:0x1ff,_0x5a06c2:0x1a3,_0x3b1525:0x1b6,_0x384bc6:0x257,_0x5e9e2f:0x1ff,_0x358502:0x169,_0x182ab2:0x1e7,_0x3513fb:0x1ac,_0x4a5768:0x1ac,_0x531e55:0x1e5,_0x4d49fa:0x1fc,_0x437de4:0x279,_0x40280e:0x26f,_0x21a2b4:0x201,_0x1d5171:0x1b6,_0xa782ca:0x1c0,_0x3d9423:0x1b6,_0x24e4c7:0x160},_0x23a231={_0x1bc004:0x183,_0x10a7a9:0x1a9},_0x72aad4=_0x29ef99,_0x4db11b=parseArgs(_0x4acca9);process['stdout'][_0x72aad4(_0x23ad7b._0xf271b9)](_0x72aad4(_0x23ad7b._0x49af7e)+_0x4db11b[_0x72aad4(0x1bc)]+'\x0a\x0a'),process[_0x72aad4(_0x23ad7b._0x353591)]['write'](_0x72aad4(0x1f3));const _0x10936a=runEnvironmentChecks({'cwd':_0x4db11b[_0x72aad4(_0x23ad7b._0xca5faf)]});let _0xe664ac=![];for(const _0x1d5d11 of _0x10936a){process[_0x72aad4(_0x23ad7b._0x353591)][_0x72aad4(0x1b6)]('\x20\x20'+symbol(_0x1d5d11['severity'])+'\x20'+_0x1d5d11['name']+':\x20'+_0x1d5d11[_0x72aad4(0x24f)]+'\x0a');if(_0x1d5d11[_0x72aad4(_0x23ad7b._0x4c60eb)])process['stdout'][_0x72aad4(0x1b6)](_0x72aad4(_0x23ad7b._0x2d5840)+_0x1d5d11[_0x72aad4(0x25d)]+'\x0a');if(_0x1d5d11[_0x72aad4(_0x23ad7b._0x871072)]===_0x72aad4(_0x23ad7b._0x34e2a1))_0xe664ac=!![];}if(_0xe664ac)return process[_0x72aad4(_0x23ad7b._0x549a2e)][_0x72aad4(0x1b6)]('\x0aFix\x20the\x20errors\x20above\x20and\x20re-run.\x0a'),{'exitCode':0x1};process['stdout']['write']('\x0aFiles:\x0a');const _0x5c31f7=[];ensureDir(_0x2ebb93(_0x4db11b[_0x72aad4(0x1bc)],_0x72aad4(_0x23ad7b._0x660193)));for(const [_0x173720,_0x44a929]of Object[_0x72aad4(0x245)](templates[_0x72aad4(0x170)])){_0x5c31f7[_0x72aad4(_0x23ad7b._0x1d8284)]({'path':_0x72aad4(0x26a)+_0x173720,'status':writeIfNeeded(_0x2ebb93(_0x4db11b[_0x72aad4(0x1bc)],_0x72aad4(0x155),_0x173720),_0x44a929,_0x4db11b[_0x72aad4(0x159)])});}_0x5c31f7[_0x72aad4(_0x23ad7b._0x1d8284)]({'path':'unotest/e2e/_template.js','status':writeIfNeeded(_0x2ebb93(_0x4db11b[_0x72aad4(_0x23ad7b._0x2cc40e)],_0x72aad4(0x215)),templates[_0x72aad4(0x1a0)],_0x4db11b[_0x72aad4(_0x23ad7b._0x2253bc)])}),_0x5c31f7[_0x72aad4(_0x23ad7b._0x41a031)]({'path':_0x72aad4(_0x23ad7b._0x5e7163),'status':writeIfNeeded(_0x2ebb93(_0x4db11b[_0x72aad4(0x1bc)],_0x72aad4(0x233)),'',_0x4db11b[_0x72aad4(0x159)])}),_0x5c31f7[_0x72aad4(_0x23ad7b._0x59a7c3)]({'path':_0x72aad4(_0x23ad7b._0x253ca6),'status':writeIfNeeded(_0x2ebb93(_0x4db11b[_0x72aad4(_0x23ad7b._0x2db408)],_0x72aad4(_0x23ad7b._0x253ca6)),templates['agentsMd'],_0x4db11b[_0x72aad4(0x159)])});{const _0x4944ec=_0x2ebb93(_0x4db11b[_0x72aad4(_0x23ad7b._0x5213ff)],_0x72aad4(0x197)),_0x5488c4=_0x1b440b(_0x4944ec)?_0x312701(_0x4944ec,_0x72aad4(_0x23ad7b._0x5562b2)):null,_0xaa004c=mergeClaudeMd(_0x5488c4,templates[_0x72aad4(_0x23ad7b._0x508502)]);_0xaa004c['action']!=='already-present'&&_0x59da13(_0x4944ec,_0xaa004c[_0x72aad4(0x185)]),_0x5c31f7[_0x72aad4(_0x23ad7b._0x1e4495)]({'path':_0x72aad4(0x197),'status':_0xaa004c[_0x72aad4(0x21d)]==='already-present'?_0x72aad4(0x1a9):_0xaa004c[_0x72aad4(0x21d)]});}_0x5c31f7[_0x72aad4(0x1d4)]({'path':_0x72aad4(_0x23ad7b._0x403081),'status':writeIfNeeded(_0x2ebb93(_0x4db11b['cwd'],'unotest/.env.example'),templates['envExample'],_0x4db11b[_0x72aad4(_0x23ad7b._0x2253bc)])}),_0x5c31f7[_0x72aad4(0x1d4)]({'path':_0x72aad4(0x25e),'status':writeIfAbsent(_0x2ebb93(_0x4db11b[_0x72aad4(_0x23ad7b._0x5213ff)],_0x72aad4(_0x23ad7b._0x15abe0)),templates[_0x72aad4(_0x23ad7b._0x1790b4)])}),_0x5c31f7[_0x72aad4(_0x23ad7b._0x1d8284)]({'path':_0x72aad4(_0x23ad7b._0x2edde0),'status':writeIfAbsent(_0x2ebb93(_0x4db11b[_0x72aad4(_0x23ad7b._0x148966)],_0x72aad4(_0x23ad7b._0x2edde0)),templates['secretsExample'])});const _0x486885=ensureEditorTypes(_0x4db11b['cwd'],{'force':_0x4db11b[_0x72aad4(0x159)]});_0x5c31f7[_0x72aad4(_0x23ad7b._0x1e4495)]({'path':JSCONFIG_REL,'status':_0x486885[_0x72aad4(0x24c)]}),_0x5c31f7[_0x72aad4(_0x23ad7b._0x5c3929)]({'path':ENV_TYPES_REL,'status':_0x486885[_0x72aad4(_0x23ad7b._0x1c3d37)]});const _0x3c2e53=_0x2ebb93(_0x4db11b[_0x72aad4(0x1bc)],_0x72aad4(0x189));_0x5c31f7[_0x72aad4(_0x23ad7b._0x5c3929)]({'path':_0x72aad4(_0x23ad7b._0xb804b6),'status':writeIfNeeded(_0x3c2e53,unotestConfigMjs(void 0x0),_0x4db11b[_0x72aad4(_0x23ad7b._0x336097)])});const _0x5d55ce=_0x4cdac3(_0x409d4c(import.meta.url)),_0x1081ba=__name((_0x1085e5,_0x4b7dad)=>{const _0x3fe543=_0x72aad4,_0x49a627=_0x3a93e0(_0x5d55ce,'../../',_0x1085e5),_0x5cb1f6=_0x2ebb93(_0x4db11b['cwd'],_0x1085e5);if(!_0x1b440b(_0x49a627))return{'path':_0x1085e5,'status':_0x4b7dad+'\x20source\x20missing\x20—\x20package\x20install\x20bug?'};if(_0x1b440b(_0x5cb1f6)){if(_0x312701(_0x5cb1f6,_0x3fe543(0x183))===_0x312701(_0x49a627,_0x3fe543(_0x23a231._0x1bc004)))return{'path':_0x1085e5,'status':_0x3fe543(_0x23a231._0x10a7a9)};return copyFileSync(_0x49a627,_0x5cb1f6),{'path':_0x1085e5,'status':_0x3fe543(0x15a)};}return ensureDir(_0x4cdac3(_0x5cb1f6)),copyFileSync(_0x49a627,_0x5cb1f6),{'path':_0x1085e5,'status':'created'};},'copyPackageFile');_0x5c31f7[_0x72aad4(0x1d4)](_0x1081ba(_0x72aad4(_0x23ad7b._0x53a9ff),_0x72aad4(_0x23ad7b._0x1a3765)),_0x1081ba('.claude/skills/write-e2e-test-ground/SKILL.md',_0x72aad4(0x23d))),_0x5c31f7[_0x72aad4(0x1d4)](_0x1081ba('.claude/hooks/log-agent.sh',_0x72aad4(_0x23ad7b._0xdab25)));for(const _0x321d14 of _0x5c31f7){const _0x50e4bd=_0x321d14['status']===_0x72aad4(_0x23ad7b._0x9cf23)?_0x72aad4(0x241):_0x321d14[_0x72aad4(0x165)]===_0x72aad4(0x1c5)?_0x72aad4(_0x23ad7b._0x24531b):_0x321d14[_0x72aad4(0x165)]===_0x72aad4(_0x23ad7b._0x5b8964)?_0x72aad4(_0x23ad7b._0x31fcfe):_0x321d14[_0x72aad4(0x165)][_0x72aad4(_0x23ad7b._0x17a4b0)](_0x72aad4(0x1a9))?'·\x20skipped':'·\x20'+_0x321d14[_0x72aad4(_0x23ad7b._0xded9c9)];process['stdout'][_0x72aad4(_0x23ad7b._0x433146)]('\x20\x20'+_0x50e4bd+'\x20\x20'+_0x321d14[_0x72aad4(0x22e)]+'\x0a');}process['stdout'][_0x72aad4(0x1b6)]('\x0aMCP\x20config:\x0a');const _0x3094d8=_0x2ebb93(_0x4db11b['cwd'],_0x72aad4(_0x23ad7b._0xb39f81)),_0x5274d6=_0x1b440b(_0x3094d8)?_0x312701(_0x3094d8,'utf8'):null,_0x52c37a=readOwnVersion(),_0x2682a9={'command':'npx','args':['-y','@unotest/web@'+_0x52c37a,'mcp']};try{const _0x184d5e=mergeMcpConfig(_0x5274d6,_0x72aad4(0x24e),_0x2682a9,{'force':_0x4db11b['force']});_0x184d5e[_0x72aad4(_0x23ad7b._0x88e2d2)]!==_0x72aad4(_0x23ad7b._0x467aa1)&&_0x59da13(_0x3094d8,_0x184d5e['newContent']);const _0x35dd1b=_0x184d5e[_0x72aad4(0x21d)]===_0x72aad4(_0x23ad7b._0x9cf23)?_0x72aad4(_0x23ad7b._0x1b243c):_0x184d5e[_0x72aad4(0x21d)]===_0x72aad4(0x1d9)?'added\x20unotest-web\x20entry':_0x184d5e[_0x72aad4(0x21d)]===_0x72aad4(0x16b)?_0x72aad4(_0x23ad7b._0x35a976):_0x72aad4(_0x23ad7b._0x34c2cc);process[_0x72aad4(_0x23ad7b._0x353591)][_0x72aad4(_0x23ad7b._0xf271b9)](_0x72aad4(_0x23ad7b._0x48c569)+_0x35dd1b+'\x0a');}catch(_0x51279c){if(_0x51279c instanceof McpJsonParseError)return process[_0x72aad4(0x21b)]['write'](_0x72aad4(0x22f)+_0x51279c[_0x72aad4(_0x23ad7b._0x3bd26a)]+'\x0a'),{'exitCode':0x1};throw _0x51279c;}process[_0x72aad4(_0x23ad7b._0x554830)]['write'](_0x72aad4(0x1db));const _0x37cd5a=_0x2ebb93(_0x4db11b['cwd'],'.claude/settings.json'),_0x4dd3d7=_0x1b440b(_0x37cd5a)?_0x312701(_0x37cd5a,'utf8'):null;try{const _0x4244bf=mergeClaudeAllowEntries(_0x4dd3d7,['mcp__unotest-web']),_0x3ba0aa=_0x72aad4(_0x23ad7b._0x23b5c8),_0x20504e=mergeClaudeHooks(_0x4244bf['newContent'],AGENT_LOG_HOOK_EVENTS,_0x3ba0aa,_0x72aad4(_0x23ad7b._0x19c451));(_0x4244bf[_0x72aad4(_0x23ad7b._0x88e2d2)]!==_0x72aad4(0x184)||_0x20504e[_0x72aad4(_0x23ad7b._0x2b132d)]!==_0x72aad4(0x184))&&(ensureDir(_0x4cdac3(_0x37cd5a)),_0x59da13(_0x37cd5a,_0x20504e[_0x72aad4(0x185)]));const _0x4580cd=_0x4244bf[_0x72aad4(_0x23ad7b._0x88e2d2)]===_0x72aad4(0x178)?_0x72aad4(_0x23ad7b._0x3e5708):_0x4244bf[_0x72aad4(_0x23ad7b._0x2d34bd)]===_0x72aad4(0x1d9)?'added\x20allow\x20entries:\x20'+_0x4244bf[_0x72aad4(0x1d9)][_0x72aad4(0x221)](',\x20'):_0x72aad4(0x1c4);process[_0x72aad4(_0x23ad7b._0x554830)][_0x72aad4(_0x23ad7b._0x4bad2b)]('\x20\x20✓\x20'+_0x4580cd+'\x0a');const _0x358f17=_0x20504e[_0x72aad4(_0x23ad7b._0x4455d3)]==='added'?_0x72aad4(_0x23ad7b._0x20f190)+_0x20504e[_0x72aad4(0x1d9)][_0x72aad4(_0x23ad7b._0xb1cf91)]+_0x72aad4(0x176):_0x72aad4(_0x23ad7b._0x1c75e1);process[_0x72aad4(0x1ff)][_0x72aad4(0x1b6)](_0x72aad4(0x1f1)+_0x358f17+'\x0a');}catch(_0x3ce9e4){if(_0x3ce9e4 instanceof ClaudeSettingsParseError)return process[_0x72aad4(_0x23ad7b._0x549a2e)][_0x72aad4(_0x23ad7b._0x4bad2b)](_0x72aad4(_0x23ad7b._0x242077)+_0x3ce9e4[_0x72aad4(0x24f)]+'\x0a'),{'exitCode':0x1};throw _0x3ce9e4;}process[_0x72aad4(_0x23ad7b._0x1ee856)][_0x72aad4(0x1b6)](_0x72aad4(0x1a8));const _0x6d34c6=_0x2ebb93(_0x4db11b['cwd'],'.gitignore'),_0x5a548e=_0x1b440b(_0x6d34c6)?_0x312701(_0x6d34c6,'utf8'):null,_0x1330e0=appendUniqueLines(_0x5a548e,[_0x72aad4(_0x23ad7b._0x3b6ed3),_0x72aad4(0x1ca),_0x72aad4(0x1ec),_0x72aad4(0x219),_0x72aad4(0x1a1),_0x72aad4(_0x23ad7b._0x5e6a97),_0x72aad4(_0x23ad7b._0x2cce56),'unotest/.viewer.lock',_0x72aad4(_0x23ad7b._0x327516),_0x72aad4(0x193)]);if(_0x1330e0[_0x72aad4(0x1d9)][_0x72aad4(_0x23ad7b._0x398065)]>0x0){_0x59da13(_0x6d34c6,_0x1330e0[_0x72aad4(_0x23ad7b._0x534eb5)]);for(const _0x9f48c7 of _0x1330e0[_0x72aad4(0x1d9)]){process[_0x72aad4(_0x23ad7b._0x80a4bf)][_0x72aad4(_0x23ad7b._0x433146)](_0x72aad4(_0x23ad7b._0x5a06c2)+_0x9f48c7+'\x22\x0a');}}for(const _0x2c0788 of _0x1330e0[_0x72aad4(0x182)]){process['stdout'][_0x72aad4(0x1b6)](_0x72aad4(0x23e)+_0x2c0788+'\x22\x0a');}_0x1330e0[_0x72aad4(0x1d9)]['length']===0x0&&_0x1330e0['alreadyPresent'][_0x72aad4(0x1f2)]===0x0&&process[_0x72aad4(0x1ff)][_0x72aad4(_0x23ad7b._0x3b1525)](_0x72aad4(_0x23ad7b._0x384bc6));process[_0x72aad4(_0x23ad7b._0x5e9e2f)]['write'](_0x72aad4(_0x23ad7b._0x358502));const _0x560256=probeSystemBrowser(),_0x1c7d69=Boolean(process[_0x72aad4(_0x23ad7b._0x182ab2)][_0x72aad4(_0x23ad7b._0x3513fb)])&&Boolean(process[_0x72aad4(_0x23ad7b._0x1ee856)][_0x72aad4(_0x23ad7b._0x4a5768)]),_0x5530c0={'probe':_0x560256,'interactive':_0x1c7d69};if(_0x4db11b[_0x72aad4(0x205)])_0x5530c0[_0x72aad4(_0x23ad7b._0x531e55)]=_0x4db11b['browserOverride'];const _0xdaa85a=await chooseBrowser(_0x5530c0);_0x59da13(_0x3c2e53,unotestConfigMjs(_0xdaa85a[_0x72aad4(_0x23ad7b._0x4d49fa)]));const _0x1e0c40=_0xdaa85a[_0x72aad4(_0x23ad7b._0x4d49fa)]===void 0x0?_0x72aad4(_0x23ad7b._0x437de4):_0xdaa85a[_0x72aad4(0x1fc)]===null?_0x72aad4(_0x23ad7b._0x40280e):_0x72aad4(_0x23ad7b._0x21a2b4)+_0xdaa85a[_0x72aad4(0x1fc)]+'\x27';process[_0x72aad4(_0x23ad7b._0x5e9e2f)][_0x72aad4(_0x23ad7b._0x1d5171)](_0x72aad4(_0x23ad7b._0xa782ca)+_0x1e0c40+'\x0a'),process[_0x72aad4(0x1ff)][_0x72aad4(_0x23ad7b._0x3d9423)]('\x0aDone.\x20Next\x20steps:\x0a');if(_0xdaa85a['warnings']['length']>0x0){for(const _0x26461b of _0xdaa85a[_0x72aad4(_0x23ad7b._0x24e4c7)])process[_0x72aad4(0x1ff)][_0x72aad4(0x1b6)]('\x20\x20'+_0x26461b+'\x0a');process[_0x72aad4(0x1ff)][_0x72aad4(0x1b6)]('\x0a');}return process['stdout']['write']('\x20\x20•\x20Run\x20an\x20example\x20against\x20the\x20playground:\x0a\x20\x20\x20\x20\x20\x20npx\x20@unotest/web\x20e2e\x20examples/01-smoke\x0a\x20\x20•\x20Lint\x20your\x20scenarios:\x0a\x20\x20\x20\x20\x20\x20npx\x20@unotest/web\x20lint\x0a\x20\x20•\x20Write\x20a\x20test:\x20open\x20Claude\x20Code\x20here\x20and\x20ask\x20—\x20it\x20follows\x20the\x0a\x20\x20\x20\x20\x20\x20write-e2e-test\x20skill\x20and\x20drives\x20the\x20unotest-web\x20MCP\x20server.\x0a\x20\x20\x20\x20\x20\x20(.mcp.json\x20+\x20CLAUDE.md/AGENTS.md\x20were\x20just\x20wired\x20for\x20you.)\x0a\x20\x20•\x20Already\x20inside\x20an\x20agent\x20session?\x20Restart\x20it\x20(or\x20reconnect\x20via\x0a\x20\x20\x20\x20\x20\x20/mcp)\x20—\x20MCP\x20clients\x20load\x20.mcp.json\x20servers\x20at\x20session\x20start,\x0a\x20\x20\x20\x20\x20\x20so\x20the\x20unotest-web\x20tools\x20appear\x20only\x20in\x20a\x20fresh\x20session.\x0a\x20\x20•\x20Debug\x20the\x20agent:\x20launch\x20with\x20UNOTEST_DEBUG=1\x20to\x20trace\x20every\x0a\x20\x20\x20\x20\x20\x20action\x20to\x20unotest/.debug/agent/actions.jsonl.\x0a'),{'exitCode':0x0};}__name(runInit,'runInit');var invokedDirectly2=process[_0x29ef99(0x15b)][0x1]&&_0x409d4c(import.meta.url)===process[_0x29ef99(0x15b)][0x1];invokedDirectly2&&runInit(process['argv']['slice'](0x2))[_0x29ef99(0x20f)](({exitCode:_0x3a8477})=>{process['exitCode']=_0x3a8477;})[_0x29ef99(0x250)](_0x340813=>{const _0x3a07a1={_0x4e71d7:0x1b6,_0x8eb67f:0x24f},_0x261e91=_0x29ef99;process['stderr'][_0x261e91(_0x3a07a1._0x4e71d7)](_0x261e91(0x23a)+(_0x340813 instanceof Error?_0x340813[_0x261e91(_0x3a07a1._0x8eb67f)]:String(_0x340813))+'\x0a'),process[_0x261e91(0x244)]=0x1;});export{runInit,templates};
|
|
1
|
+
const _0x15254e=_0x4b8d;(function(_0x183fad,_0x498398){const _0x1fef18={_0x2a15f9:0x1ad,_0x107dda:0x1ab,_0x4767c1:0x1b9,_0x2484fa:0x150,_0x184a69:0x20e,_0x4d543b:0x190,_0x12e7f9:0x15e},_0x5b1efa=_0x4b8d,_0x41fc91=_0x183fad();while(!![]){try{const _0x52b377=-parseInt(_0x5b1efa(_0x1fef18._0x2a15f9))/0x1*(parseInt(_0x5b1efa(0x1a5))/0x2)+parseInt(_0x5b1efa(_0x1fef18._0x107dda))/0x3+-parseInt(_0x5b1efa(_0x1fef18._0x4767c1))/0x4*(-parseInt(_0x5b1efa(_0x1fef18._0x2484fa))/0x5)+parseInt(_0x5b1efa(_0x1fef18._0x184a69))/0x6+-parseInt(_0x5b1efa(_0x1fef18._0x4d543b))/0x7+-parseInt(_0x5b1efa(0x141))/0x8*(parseInt(_0x5b1efa(_0x1fef18._0x12e7f9))/0x9)+parseInt(_0x5b1efa(0x155))/0xa*(parseInt(_0x5b1efa(0x191))/0xb);if(_0x52b377===_0x498398)break;else _0x41fc91['push'](_0x41fc91['shift']());}catch(_0x5d8f7a){_0x41fc91['push'](_0x41fc91['shift']());}}}(_0x27cd,0xb8155));var __defProp=Object[_0x15254e(0x12d)],__name=(_0x4bedb5,_0x382899)=>__defProp(_0x4bedb5,_0x15254e(0x12e),{'value':_0x382899,'configurable':!![]});import{copyFileSync,existsSync as _0xfd37dc,mkdirSync as _0x287bb8,readFileSync as _0x1fdc2b,writeFileSync as _0x1abceb}from'fs';import{dirname as _0x2958af,join as _0x34b0bd,resolve as _0x38cd1e}from'path';import{fileURLToPath as _0x35bde6}from'url';import{existsSync as _0x2a0471}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){for(const _0x1d49e3 of[probeChrome,probeEdge,probeChromeBeta]){const _0x5e670d=_0x1d49e3();if(_0x5e670d['channel']!==null)return _0x5e670d;}return{'channel':null};}__name(probeSystemBrowser,_0x15254e(0x18d));function probeChrome(){const _0x442337=_0x15254e,_0x1c9eb8=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x1c9eb8)return{'channel':_0x442337(0x210),'path':_0x1c9eb8,'label':_0x442337(0x18a)};return{'channel':null};}__name(probeChrome,_0x15254e(0x219));function probeEdge(){const _0x4843d3=_0x15254e,_0x2e91b8=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x2e91b8)return{'channel':_0x4843d3(0x15c),'path':_0x2e91b8,'label':_0x4843d3(0x1b3)};return{'channel':null};}__name(probeEdge,_0x15254e(0x196));function probeChromeBeta(){const _0x73121a={_0x1eb0e4:0x1a9,_0x395d1f:0x169},_0xda2565=_0x15254e,_0x291c24=firstExistingPath(CHROME_BETA_PATHS);if(_0x291c24)return{'channel':_0xda2565(_0x73121a._0x1eb0e4),'path':_0x291c24,'label':_0xda2565(_0x73121a._0x395d1f)};return{'channel':null};}__name(probeChromeBeta,_0x15254e(0x1f4));var CHROME_PATHS=((()=>{const _0x1f2efb={_0x3cd7fa:0x223,_0x3eb1c8:0x115,_0x593c85:0x1db,_0x1b4f14:0x217,_0x3503dd:0x197,_0x33d98a:0x20d,_0x453b3f:0x1c3},_0x1fcbf2=_0x15254e;switch(process[_0x1fcbf2(_0x1f2efb._0x3cd7fa)]){case _0x1fcbf2(0x1b0):return[_0x1fcbf2(0x10b)];case'win32':return[process[_0x1fcbf2(0x1db)][_0x1fcbf2(0x146)]+_0x1fcbf2(_0x1f2efb._0x3eb1c8),process[_0x1fcbf2(_0x1f2efb._0x593c85)][_0x1fcbf2(_0x1f2efb._0x1b4f14)]+_0x1fcbf2(0x115),process['env'][_0x1fcbf2(_0x1f2efb._0x3503dd)]+_0x1fcbf2(0x115)];default:return[_0x1fcbf2(_0x1f2efb._0x33d98a),_0x1fcbf2(0x1b5),'/snap/bin/google-chrome',_0x1fcbf2(_0x1f2efb._0x453b3f),'/usr/bin/chromium-browser'];}})()),CHROME_BIN_NAMES=[_0x15254e(0x140),_0x15254e(0x17d),_0x15254e(0x1f7),_0x15254e(0x147)],EDGE_PATHS=((()=>{const _0x427d32={_0x1ebf22:0x223,_0x58582f:0x1b0,_0x38268f:0x132,_0x253723:0x113,_0x339205:0x1db,_0x659668:0x103,_0x24f4ae:0x217,_0xc82ed4:0x103,_0x5dc400:0x129},_0x2d68cc=_0x15254e;switch(process[_0x2d68cc(_0x427d32._0x1ebf22)]){case _0x2d68cc(_0x427d32._0x58582f):return[_0x2d68cc(_0x427d32._0x38268f)];case _0x2d68cc(_0x427d32._0x253723):return[process[_0x2d68cc(_0x427d32._0x339205)]['ProgramFiles']+_0x2d68cc(_0x427d32._0x659668),process[_0x2d68cc(0x1db)][_0x2d68cc(_0x427d32._0x24f4ae)]+_0x2d68cc(_0x427d32._0xc82ed4)];default:return[_0x2d68cc(0x1c4),_0x2d68cc(_0x427d32._0x5dc400)];}})()),EDGE_BIN_NAMES=[_0x15254e(0x159),_0x15254e(0x16b)],CHROME_BETA_PATHS=((()=>{const _0x10a9d1={_0x5929e3:0x113,_0xb7714a:0x1db},_0x555ab9=_0x15254e;switch(process[_0x555ab9(0x223)]){case _0x555ab9(0x1b0):return[_0x555ab9(0x1ec)];case _0x555ab9(_0x10a9d1._0x5929e3):return[process[_0x555ab9(_0x10a9d1._0xb7714a)][_0x555ab9(0x146)]+'\x5cGoogle\x5cChrome\x20Beta\x5cApplication\x5cchrome.exe'];default:return[_0x555ab9(0x11f)];}})());function firstExistingPath(_0x5399eb){const _0x3faf58=_0x15254e;for(const _0x532c13 of _0x5399eb){if(!_0x532c13||_0x532c13[_0x3faf58(0x17e)]('undefined'))continue;if(existsSync(_0x532c13))return _0x532c13;}return null;}__name(firstExistingPath,_0x15254e(0x1fb));function whichOf(_0x467034){const _0x300361={_0x4dd3c7:0x223,_0x4a403b:0x113,_0x3c4d27:0x1bb,_0x3a2206:0x1c0},_0x8ff4d1=_0x15254e;if(process[_0x8ff4d1(_0x300361._0x4dd3c7)]===_0x8ff4d1(_0x300361._0x4a403b))return void 0x0;for(const _0x12f8b2 of _0x467034){try{const _0x3f2912=execFileSync(_0x8ff4d1(_0x300361._0x3c4d27),[_0x12f8b2],{'encoding':_0x8ff4d1(0x1f2)})[_0x8ff4d1(0x222)]();if(_0x3f2912[_0x8ff4d1(_0x300361._0x3a2206)]>0x0&&existsSync(_0x3f2912))return _0x3f2912;}catch{}}return void 0x0;}__name(whichOf,_0x15254e(0x216));function runEnvironmentChecks(_0x4d6203={}){const _0x406069={_0x59dfd0:0x1d8},_0x33cc80=_0x15254e,_0x1cf58c=_0x4d6203[_0x33cc80(_0x406069._0x59dfd0)]??process['cwd']();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x1cf58c)];}__name(runEnvironmentChecks,_0x15254e(0x185));function checkNodeVersion(){const _0x8db3fa={_0x3c5598:0x1cd,_0x5566ff:0x1df,_0xc3c12f:0x1b2,_0x52a0d9:0x110,_0x40ae0e:0x1e5},_0x17b301=_0x15254e,_0x36b793=process['versions'][_0x17b301(_0x8db3fa._0x3c5598)],_0x1b7e34=Number(_0x36b793[_0x17b301(_0x8db3fa._0x5566ff)]('.')[0x0]);if(!Number['isFinite'](_0x1b7e34)||_0x1b7e34<0x14)return{'name':'Node.js\x20version','severity':_0x17b301(_0x8db3fa._0xc3c12f),'message':_0x17b301(_0x8db3fa._0x52a0d9)+_0x36b793+')','detail':_0x17b301(_0x8db3fa._0x40ae0e)};return{'name':_0x17b301(0x206),'severity':'ok','message':_0x36b793};}__name(checkNodeVersion,_0x15254e(0x1a2));function checkSystemBrowser(){const _0x56a2d2={_0x3bd7c0:0x18e,_0x398aad:0x228,_0x120ea9:0x1d7,_0x370423:0x18e,_0x431266:0x137},_0x52cdb7=_0x15254e,_0x3b533d=probeSystemBrowser();if(_0x3b533d['channel']!==null)return{'name':_0x52cdb7(_0x56a2d2._0x3bd7c0),'severity':'ok','message':_0x3b533d[_0x52cdb7(0x1f0)]+_0x52cdb7(_0x56a2d2._0x398aad),'detail':_0x3b533d[_0x52cdb7(_0x56a2d2._0x120ea9)]};return{'name':_0x52cdb7(_0x56a2d2._0x370423),'severity':_0x52cdb7(0x1ed),'message':_0x52cdb7(_0x56a2d2._0x431266),'detail':_0x52cdb7(0x19c)};}__name(checkSystemBrowser,_0x15254e(0x151));function _0x27cd(){const _0x597365=['y29WEvbHy2THz2vgAwXL','zw5ZDxjLrgLY','y3jLyxrLzcaUy2XHDwrLl3nLDhrPBMDZlMPZB24GkgfSBg93oIbTy3bFx3vUB3rLC3qTD2vIkq','r29Vz2XLienOCM9Tzq','q0XbvurflM1K','ihnVDxjJzsbTAxnZAw5NiokaLcbWywnRywDLigLUC3rHBgWGyNvNpW','ChjVyMvtExn0zw1cCM93C2vY','u3LZDgvTigjYB3DZzxi','Aw50zxjHy3rPDMu','otm5ntCYowD6CLfyvG','mZq4ntKWmenZt0f5Aq','4PYxic0TyNjVD3nLCIbZExn0zw0GyNv0ig5VienOCM9TzsaVievKz2uGlYbdAhjVBwL1BsbMB3vUzcbVBIb0AgLZig1Hy2HPBMuU','uhjLq29TCgfJDa','Cgf1C2u','B3zLCNDYB3rL','ChjVyMvfzgDL','te9dquXbufbeqvrb','CNvUsw5PDa','4PYxigLUC3rHBgWTy2HYB21PDw06ia','Dw5VDgvZDc13zwiGAw5PDcdIHPiG','CgfYC2u','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','Dw5VDgvZDc9LmMuVx2HLBhbLCNmVlMDPDgTLzxa','CgXHExDYAwDODc9WywnRywDLlMPZB24GAgfZig5VihvZywjSzsaIyMLUiIbMAwvSza','Dw5VDgvZDc8Uzw52','CMvUzgvYrw52vhLWzxm','DMvYC2LVBG','y2HLy2ToB2rLvMvYC2LVBG','icaGig5WEcbaDw5VDgvZDc93zwiGAw5ZDgfSBc1JAhjVBwL1BsaGicaGicHKB3DUBg9HzhmGyNvUzgXLzcbJAhjVBwL1BsK','Aw5JBhvKzxm','nZeYnJq0ugDIAxzx','rMfPBgvKihrVihbHCNnLic5JBgf1zguVC2v0DgLUz3mUANnVBIbHCYbku09ooIa','C3LZDgvT','DxbKyxrLza','y2HYB21LlwjLDge','C2vJCMv0C0zPBgvZ','mte2otm0mhjMrfPTva','DgHLBG','mxPgrMvksa','AgfZ','BMv3q29UDgvUDa','zgfYD2LU','Dw5VDgvZDc8Uzw52kG','zxjYB3i','twLJCM9ZB2z0ievKz2u','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','C2XPy2u','BwfW','zMLUAxnO','ndGZmdiWD0f5sfLm','Dg9tDhjPBMC','D2HPy2G','D3jPDgvjzK5LzwrLza','BwnW','Aw5ZDgfSBenOCM9TAxvT','cIaG4OAsigrVD25SB2fKAw5Nigj1BMrSzwqGq2HYB21PDw3IGkyk','BgvUz3rO','Dw5VDgvZDc13zwi','B25eyxrH','l3vZCI9IAw4Vy2HYB21PDw0','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','zw50CMLLCW','uhjLvg9VBfvZzq','C2vJCMv0C0v4yw1WBgu','ANnJB25MAwDkC29U','icdINjmGC3LZDgvTia','BwvYz2vdBgf1zgvbBgXVD0vUDhjPzxm','ug9ZDfrVB2XvC2vgywLSDxjL','zxHHBxbSzxm','BM9Kzq','u2vZC2LVBKvUza','igzVDw5Kigf0ia','lY8GrxH0zxjUywWGC2nLBMfYAw8GDMfYAwfIBguGtKfnrvmGB25SEtSGDMfSDwvZig5LDMvYigXLyxzLihrOB3nLigzPBgvZlG','ywDLBNqTDhjHy2uGAg9VA3mGywXYzwfKEsbWCMvZzw50','y3jLyxrLza','lM1JCc5QC29U','Dw5VDgvZDc9LmMuVzxHHBxbSzxmV','lMnSyxvKzs9OB29RCY9SB2CTywDLBNqUC2G','Dg9mB3DLCKnHC2u','Cgf0Aa','y3DK','Dw5VDgvZDc8Uzw52lMv4yw1WBgu','C3rKB3v0v3jPDgu','zw52','Dw5VDgvZDc5JB25MAwCUBwPZ','BM9Kzv9TB2r1BgvZlW','q2XHDwrLu2v0DgLUz3nqyxjZzuvYCM9Y','C3bSAxq','lIbgAxGGB3iGCMvTB3zLihrOzsbMAwXLigfUzcbYzs1YDw4GAw5PDc4','ls1ICM93C2vYigv4CgvJDhmGC3LZDgvTFgj1BMrSzwr8BM9UzsWGz290ia','quDftLrtlM1K','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','ywrKzwqGywDLBNqTDhjHy2uGAg9VA3mGka','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','y2HHBM5LBa','Dw5VDgvZDa','zw52AxjVBM1LBNqGiG','4PYtignYzwf0zwq','C29YDa','lNvUB3rLC3q','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','D2fYBMLUzW','4PQGic0TyNjVD3nLCIbUB25LiokaLcbUBYbICM93C2vYignVBMzPz3vYzwqUifj1BIbVBMuGB2y6','zw52rxHHBxbSzq','BgfIzwW','u3vIywDLBNrtDgfYDa','DxrMoa','C3rKB3v0','ChjVyMvdAhjVBwvczxrH','ANnJB25MAwCUANnVBG','igv2zw50CZSGBg9NCYb0BYb1BM90zxn0lY5Kzwj1zY9Hz2vUDc8GDw5KzxiGvu5pvevtvf9erujvrYK','y2HYB21PDw0','vgfYz2v0igrPCMvJDg9YEq','zM9Yy2u','DgfYz2v0ia','zMLYC3rfEgLZDgLUz1bHDgG','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','ChvZAa','Bg9NlwfNzw50lNnO','C2TPBgWGkgDYB3vUzcK','cKzPEcb0AguGzxjYB3jZigfIB3zLigfUzcbYzs1YDw4UcG','B3zLCNjPzgu','EwvZ','icHUBYbZDwnOigzPBguP','zw5K','4PQGie5VigjYB3DZzxiGy29UzMLNDxjLzc4GuNvUig9UzsbVzIbIzwzVCMuGzMLYC3qGDgvZDdO','tM9Kzs5QCYb2zxjZAw9U','BwvZC2fNzq','C3rYAw5N','BwnWx191BM90zxn0lxDLyG','C3LUy0vUDLr5CgvZ','zMLSzq','icdcTYbHBhjLywr5ihbYzxnLBNqGiG','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','mtm0otm3mgnlEwjsCW','cI5NAxrPz25VCMu6cG','y2HYB21L','Dw5VDgvZDenVBMzPz01QCW','y2HLy2TxCML0ywjSzun3za','lY8GuMvMCMvZAgvKigf1Dg9TyxrPy2fSBhKGB24GzxzLCNKGBgLUDcaVihj1BI4','lI4VlI4VCgfJA2fNzs5QC29U','Dw5VDgvZDc8UDMLLD2vYlMXVy2S','D2HPy2HpzG','uhjVz3jHBuzPBgvZkhG4nIK','zgv0ywLS','ChjVyMvdAhjVBwu','pceTlsb1BM90zxn0oMvUzcaTlt4','yMfZzsbLBNzPCM9UBwvUDcaOBM8Gvu5pvevtvf9ftLyP','zxHPDenVzgu','Aw5OzxjPDa','zw52lMqUDhm','B25fBMq','ywXSB3CGywXYzwfKEsbWCMvZzw50','oIbZDhjPBMC7','DhjPBq','CgXHDgzVCM0','4PYtig92zxj3CM90zq','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','C2vJCMv0CW','CgfYC2vfBNzmyxLLCMvK','igzVDw5K','u2vJCMv0uMvNAxn0CNK','Ag9VA3m','Dw5VDgvZDc8UC2vJCMv0CYO','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','ywrKzwq','icbjBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4GAw5PDc4','icdIGkiGuNvUigfUigv4yw1WBguGywDHAw5ZDcb0AguGCgXHEwDYB3vUzdOkicaGicaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdeTC21VA2ukicdIGkiGtgLUDcb5B3vYihnJzw5HCMLVCZOkicaGicaGBNb4ieb1BM90zxn0l3DLyIbSAw50cIaG4OcIifDYAxrLigeGDgvZDdOGB3bLBIbdBgf1zguGq29KzsbOzxjLigfUzcbHC2SG4OcuigL0igzVBgXVD3mGDgHLcIaGicaGihDYAxrLlwuYzs10zxn0ihnRAwXSigfUzcbKCML2zxmGDgHLihvUB3rLC3qTD2vIie1ducbZzxj2zxiUcIaGicaGicGUBwnWlMPZB24GkYbdtefvreuUBwqVquDftLrtlM1KihDLCMuGANvZDcb3AxjLzcbMB3iGEw91lIKkicdIGkiGqwXYzwfKEsbPBNnPzguGyw4GywDLBNqGC2vZC2LVBJ8GuMvZDgfYDcbPDcaOB3iGCMvJB25Uzwn0ihzPyqOGicaGicaVBwnWksdIGjqGtunqignSAwvUDhmGBg9HzcaUBwnWlMPZB24GC2vYDMvYCYbHDcbZzxnZAw9Uihn0yxj0laOGicaGicbZBYb0AguGDw5VDgvZDc13zwiGDg9VBhmGyxbWzwfYig9UBhKGAw4GysbMCMvZAcbZzxnZAw9UlGOGiokaOIbezwj1zYb0AguGywDLBNq6igXHDw5JAcb3AxrOifvot1rfu1rFrevcvuC9msb0BYb0CMfJzsbLDMvYEqOGicaGicbHy3rPB24GDg8GDw5VDgvZDc8UzgvIDwCVywDLBNqVywn0Aw9UCY5QC29UBc4k','y2HHBM5LBdOGjW','zgvJBgfYzsbJB25ZDca','ANnJB25MAwC','icdINjCG','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','ChjVyMu','y2XHDwrLtwrcB2r5','igf0ia','zw5ZDxjLrwrPDg9YvhLWzxm','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','yMfZAcaIjhTdtefvrevFufjpsKvdvf9esvj9lY5JBgf1zguVAg9VA3mVBg9NlwfNzw50lNnOiIaIjhTdtefvrevFufjpsKvdvf9esvj9l3vUB3rLC3qVlMrLyNvNl2fNzw50l2fJDgLVBNmUANnVBMWI','y29TBwfUza','D2LUmZi','ls1MB3jJzq','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','CMvNAxn0zxi','ywXSB3C','zMLSDgvY','B3jKzxjLza','ifT5l05Dia','B3zLCNDYB3rLihvUB3rLC3qTD2vIigvUDhj5','zM9Yy2uTB3zLCNDYB3rL','AM9PBG','zxHPDa','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','CMvWB3j0','C2v2zxjPDhK','lNvUB3rLC3qV','A2v5CW','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','C29Tzq','C2L6zq','lI4VlI4V','CgXHExDYAwDODc9WywnRywDLlMPZB24','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','CMvKywn0vMfSDwu','4PYtihvWzgf0zwq','Aw5PDdOG','zgvMAw5LuhjVCgvYDhK','BMfTzq','yNvUzgXLza','BwvYz2vdBgf1zgviB29RCW','icbVCIbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LlG','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','D2fYBMLUz3m','lMnSyxvKzs9ZA2LSBhmVD3jPDguTztjLlxrLC3qTz3jVDw5Kl1nlsuXmlM1K','ywXYzwfKEsbWCMvZzw50','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','icdINjmG','icbeB3DUBg9HzcbIDw5KBgvKienOCM9TAxvTicH+mtuWie1ckt8','CgLWzq','D3jPDgu','icbvC2uGAw5ZDgfSBgvKia','DhLWzxm','BwnWu2vYDMvYCW','yMLU','z29Vz2XLlwnOCM9Tzq','ndG4yvvKsxzN','yxbWzw5Kzwq','ywrKzwqGywXSB3CGzw50CMLLCZOG','Bg9HzfnJzw5HCMLVvMfYAwfIBgvZ','ixvUB3rLC3qVlMvUDI5LEgfTCgXL','uhjVz3jHBuzPBgvZ','y2HYB21PDw0TyNjVD3nLCG','ywn0Aw9U','zxHLy1bHDgG','C3rKAw4','Dw5VDgvZDc9LmMuVx3rLBxbSyxrLlMPZ','ywXYzwfKEs1WCMvZzw50','zw52rMLSzxm','yNjVD3nLCK92zxjYAwrL','BM9Uzq','nJbWt3LfBvm','y2HLy2TtExn0zw1cCM93C2vY','vxnLCLbYB21WDfn1yM1PDa','C2v0','C2TPBgW','ntbLugTvtLa','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWOGic8VihnHBMrIB3G6ihSGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GyxbPq2fSBcaVihvWBg9HzcaVigrIuxvLCNKGlYbZAgvSBaOGic8VicaGyxbPqMfZzvvYBdOGj2H0DhbZoI8VyxbPlNLVDxiTyxbWlNrLC3qNlcaGicaGlY8GyMfZzsbMB3iGyxbPq2fSBcGNue9tvcCSicCVCgf0AcCSiokaPIKkicaVlYaGihvWBg9HzerPCJOGj3vUB3rLC3qVzML4DhvYzxmNlcaGicaGicaGicaGicaGic8VihjVB3qGzM9YihvWBg9HzcGNzg9JlNbKzICPihbHDgHZoWOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGChjVAMvJDcbYB290lIbvCgXVywrZig1HEqOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GBM90igvZy2fWzsbPDcaOCMvSyxrPDMuGCgf0AhmGB25SEsKUcIaGlY8GicbKyxrHyMfZztOGj3bVC3rNCMvZCwW6lY9SB2nHBgHVC3q6ntqZmI9HChbFDgvZDcCSicaVlYbKyLf1zxj5ic8GzgjfEgvJcIaGlY8GFsWk','BNb4','Aw5KzxHpzG','BwLJCM9ZB2z0lwvKz2u','icdINjmGDw5VDgvZDc5JB25MAwCUBwPZia','zw5KC1DPDgG','BxnLzgDL','zxHPC3rZ','mtC2nda5D3vosLHj','twnWsNnVBLbHCNnLrxjYB3i','Ag9VAW','cIaGrM91BMqG','CMvTB3zLtgLZDgvUzxi','ywn0AxzL','Bgf5zxjjBMzVCW','zgf0yq','icaGigLUC3rHBgWGq2HYB21LigzYB20GAhr0Chm6lY93D3CUz29Vz2XLlMnVBs9JAhjVBwu','CMvZB2X2zq','cKjYB3DZzxi6cG','r29Vz2XLienOCM9TzsbczxrH','Dw5VDgvZDc8UC2vJCMv0CW','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','ywXYzwfKEvbYzxnLBNq','B2jQzwn0','CgfYC2vbCMDZ','C2TPChbLza','CgvYBwLZC2LVBNm','CNvUsw5ZDgfSBenOCM9TAxvTq2XP','C3rYAw5NAwz5','lY8Gr0vorvjbveveigj5ieb1BM90zxn0l3DLyIbMCM9TihvUB3rLC3qVlMvUDIbHBMqGDw5VDgvZDc8UC2vJCMv0CYdIGjqGzg8GBM90igvKAxqU','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','C2nLBMfYAw9uzw1WBgf0zq','cKrVBMuUie5LEhqGC3rLChm6cG','AxnuvfK','pceTlsb1BM90zxn0oMjLz2LUicHTyw5Hz2vKigj5ieb1BM90zxn0l3DLyIbPBML0iokaLcbKBYbUB3qGzwrPDcbPBNnPzguPic0TpG','y2HHBM5LBdOGBNvSBcaOyNvUzgXLzcbJAhjVBwL1BsK','Dw5Yzwy','BwvYz2vdBgf1zgvnza','AxnbCNjHEq','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','C3rHCNrZv2L0Aa','Dw5VDgvZDc8UCNvUCYOV','C3rHDhvZ','yNLwywX1zq','yxjNDG','C3rKzxjY','iIaOvu5pvevtvf9ftLyP','CNvUrw52AxjVBM1LBNrdAgvJA3m','Aw1WBgLJAxq'];_0x27cd=function(){return _0x597365;};return _0x27cd();}function checkWritableCwd(_0x245069){const _0x2a50b3={_0x14ecfc:0x1f8,_0x8c1484:0x1fa},_0xfd1064=_0x15254e;if(!_0x2a0471(_0x245069))return{'name':_0xfd1064(_0x2a50b3._0x14ecfc),'severity':'error','message':_0xfd1064(_0x2a50b3._0x8c1484)+_0x245069+'\x20does\x20not\x20exist','detail':_0xfd1064(0x1e3)};return{'name':_0xfd1064(_0x2a50b3._0x14ecfc),'severity':'ok','message':_0x245069};}__name(checkWritableCwd,_0x15254e(0x212));import{existsSync as _0x142185,mkdirSync,readFileSync as _0x465bf4,writeFileSync as _0x4467e3}from'fs';import{dirname,join as _0x374a06}from'path';import{existsSync as _0x5395ff}from'fs';import{join as _0x2a8cdd}from'path';import{categorizeVariable,isExternalVarName,secretsFileFor,activeEnvName,envLayerFilesFor,secretsLayerFilesFor}from'@unotest/protocol';import{existsSync as _0x5a1677,readFileSync,writeFileSync}from'fs';import{join}from'path';import{applyEnvLayers,readEnvFile,readEnvLayers}from'@unotest/core';import{insertEnvVar,removeEnvVar,envFileFor}from'@unotest/protocol';var WEB_SUFFIX='';function parseEnvLayered(_0x542869,_0x27000d){return readEnvLayers(_0x542869,WEB_SUFFIX,_0x27000d);}__name(parseEnvLayered,_0x15254e(0x227));var parseEnvFile=readEnvFile,SecretRegistry=class{static{__name(this,_0x15254e(0x100));}['byValue']=new Map();[_0x15254e(0x119)]=[];[_0x15254e(0x116)](_0x2f788d,_0x54194f){const _0x1a6d30=_0x15254e;if(_0x54194f['length']===0x0)return;this['byValue'][_0x1a6d30(0x153)](_0x54194f,_0x2f788d),this['ordered']=[...this['byValue'][_0x1a6d30(0x1c5)]()][_0x1a6d30(0x1ea)]((_0xbf853e,_0xe40f0c)=>_0xe40f0c[0x0][_0x1a6d30(0x1c0)]-_0xbf853e[0x0][_0x1a6d30(0x1c0)]);}get['size'](){const _0x5af8dd={_0x23153a:0x181,_0x1dbaaa:0x126},_0x121513=_0x15254e;return this[_0x121513(_0x5af8dd._0x23153a)][_0x121513(_0x5af8dd._0x1dbaaa)];}['mergeInto'](_0x1b07c5){const _0x262f09={_0x3cd613:0x181},_0x43af3d=_0x15254e;for(const [_0x531b23,_0x8bf893]of this[_0x43af3d(_0x262f09._0x3cd613)])_0x1b07c5['register'](_0x8bf893,_0x531b23);}['redactString'](_0x131a97){const _0x16b0da={_0x591c9d:0x119,_0xd8ddb0:0x1a4},_0x4cc985=_0x15254e;if(this['ordered']['length']===0x0)return _0x131a97;let _0x1f5498=_0x131a97;for(const [_0x15ddf5,_0x1b4a31]of this[_0x4cc985(_0x16b0da._0x591c9d)]){if(_0x1f5498[_0x4cc985(_0x16b0da._0xd8ddb0)](_0x15ddf5))_0x1f5498=_0x1f5498[_0x4cc985(0x1df)](_0x15ddf5)[_0x4cc985(0x11d)]('‹secret:'+_0x1b4a31+'›');}return _0x1f5498;}['redact'](_0x5527c7){const _0x3d668b={_0x40b6d6:0x1c0},_0x2d5d46=_0x15254e;if(this['ordered'][_0x2d5d46(_0x3d668b._0x40b6d6)]===0x0)return _0x5527c7;return this['redactValue'](_0x5527c7);}[_0x15254e(0x12a)](_0x3bc473){const _0x5622ea=_0x15254e;if(typeof _0x3bc473===_0x5622ea(0x208))return this['redactString'](_0x3bc473);if(Array['isArray'](_0x3bc473))return _0x3bc473[_0x5622ea(0x1b7)](_0xfc531f=>this['redactValue'](_0xfc531f));if(_0x3bc473!==null&&typeof _0x3bc473===_0x5622ea(0x16d)){const _0x222a92={};for(const [_0x14ea42,_0x4fd8e1]of Object['entries'](_0x3bc473)){_0x222a92[_0x14ea42]=this['redactValue'](_0x4fd8e1);}return _0x222a92;}return _0x3bc473;}},WEB_SUFFIX2='';function layerInfos(_0x41aa61,_0x526c14){return _0x526c14['map'](_0x21bc50=>({'file':_0x21bc50,'exists':_0x5395ff(_0x2a8cdd(_0x41aa61,_0x21bc50))}));}__name(layerInfos,_0x15254e(0x164));function describeEnvLayers(_0x31f866,_0x10f9b2=process[_0x15254e(0x1db)]){const _0x4b23f6=activeEnvName(_0x10f9b2);return{'active':_0x4b23f6??null,'envFiles':layerInfos(_0x31f866,envLayerFilesFor(WEB_SUFFIX2,_0x4b23f6)),'secretsFiles':layerInfos(_0x31f866,secretsLayerFilesFor(WEB_SUFFIX2,_0x4b23f6))};}__name(describeEnvLayers,'describeEnvLayers');function formatSources(_0x40bdb7){const _0x140bc1={_0x3a094d:0x1b7,_0x5c5dec:0x163,_0x50d372:0x21b},_0x6e075e=_0x15254e,_0x53214a=[..._0x40bdb7[_0x6e075e(0x14d)],..._0x40bdb7[_0x6e075e(0x1aa)]][_0x6e075e(_0x140bc1._0x3a094d)](_0x3211be=>_0x3211be[_0x6e075e(0x15d)]?_0x3211be['file']:_0x3211be[_0x6e075e(0x20b)]+_0x6e075e(0x203))[_0x6e075e(0x11d)](',\x20'),_0x206968=_0x40bdb7[_0x6e075e(_0x140bc1._0x5c5dec)]?_0x6e075e(0x1e8)+_0x40bdb7['active']+_0x6e075e(0x184):_0x6e075e(_0x140bc1._0x50d372);return _0x206968+':\x20'+_0x53214a;}__name(formatSources,'formatSources');function secretsFilePath(_0x2801b0,_0x46c053){return _0x2a8cdd(_0x2801b0,secretsFileFor('',_0x46c053));}__name(secretsFilePath,'secretsFilePath');var EnvVariableStore=class{constructor(_0x31dac6,_0x3dd51d,_0x4fa96f){const _0x385b53={_0x523114:0x226},_0x358401=_0x15254e;this['env']=_0x31dac6,this[_0x358401(_0x385b53._0x523114)]=_0x3dd51d,this['report']=_0x4fa96f;}[_0x15254e(0x1db)];[_0x15254e(0x226)];[_0x15254e(0x120)];static{__name(this,'EnvVariableStore');}['describeSources'](){return formatSources(this['report']);}[_0x15254e(0x1ae)](_0x2d0f5f){const _0x3a607a=_0x15254e;return _0x2d0f5f in this['secrets']||this[_0x3a607a(0x1db)][_0x2d0f5f]!==void 0x0;}['get'](_0x1efef8){const _0x392150=_0x15254e;return _0x1efef8 in this[_0x392150(0x226)]?this[_0x392150(0x226)][_0x1efef8]:this['env'][_0x1efef8];}};function loadScenarioVariables(_0x249566,_0x277511=process[_0x15254e(0x1db)]){const _0x8a4b8b={_0x41d757:0x116,_0x39282d:0x123},_0x193fe7=_0x15254e,_0x371a7e=activeEnvName(_0x277511),_0x2cb686=describeEnvLayers(_0x249566,_0x277511),_0x32e42b=parseEnvLayered(_0x249566,_0x371a7e),_0x421dfe={...parseEnvFile(secretsFilePath(_0x249566)),..._0x371a7e?parseEnvFile(secretsFilePath(_0x249566,_0x371a7e)):{}},_0x89bfd9=new SecretRegistry();for(const [_0x2d2718,_0x38dfe3]of Object['entries'](_0x421dfe)){_0x89bfd9[_0x193fe7(_0x8a4b8b._0x41d757)](_0x2d2718,_0x38dfe3);}const _0x5a2918=[...Object[_0x193fe7(_0x8a4b8b._0x39282d)](_0x32e42b)[_0x193fe7(0x1b7)](_0x5329ba=>({'name':_0x5329ba,'source':_0x193fe7(0x1db),'secret':![],'category':categorizeVariable({'name':_0x5329ba,'source':'env'})})),...Object['keys'](_0x421dfe)['map'](_0x596594=>({'name':_0x596594,'source':'secrets','secret':!![],'category':categorizeVariable({'name':_0x596594,'source':_0x193fe7(0x226)})}))];return{'store':new EnvVariableStore(_0x277511,_0x421dfe,_0x2cb686),'secretRegistry':_0x89bfd9,'declared':_0x5a2918,'envReport':_0x2cb686};}function _0x4b8d(_0x3771bd,_0x2a0701){_0x3771bd=_0x3771bd-0x100;const _0x27cd3a=_0x27cd();let _0x4b8d8b=_0x27cd3a[_0x3771bd];if(_0x4b8d['FQdaCw']===undefined){var _0x9f4d2e=function(_0x4de5aa){const _0x39a1ef='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0xfd37dc='',_0x287bb8='';for(let _0x1fdc2b=0x0,_0x1abceb,_0x2958af,_0x34b0bd=0x0;_0x2958af=_0x4de5aa['charAt'](_0x34b0bd++);~_0x2958af&&(_0x1abceb=_0x1fdc2b%0x4?_0x1abceb*0x40+_0x2958af:_0x2958af,_0x1fdc2b++%0x4)?_0xfd37dc+=String['fromCharCode'](0xff&_0x1abceb>>(-0x2*_0x1fdc2b&0x6)):0x0){_0x2958af=_0x39a1ef['indexOf'](_0x2958af);}for(let _0x38cd1e=0x0,_0x35bde6=_0xfd37dc['length'];_0x38cd1e<_0x35bde6;_0x38cd1e++){_0x287bb8+='%'+('00'+_0xfd37dc['charCodeAt'](_0x38cd1e)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x287bb8);};_0x4b8d['gROURp']=_0x9f4d2e,_0x4b8d['kXoBsN']={},_0x4b8d['FQdaCw']=!![];}const _0x3a2f16=_0x27cd3a[0x0],_0x2f881d=_0x3771bd+_0x3a2f16,_0x4c7aee=_0x4b8d['kXoBsN'][_0x2f881d];return!_0x4c7aee?(_0x4b8d8b=_0x4b8d['gROURp'](_0x4b8d8b),_0x4b8d['kXoBsN'][_0x2f881d]=_0x4b8d8b):_0x4b8d8b=_0x4c7aee,_0x4b8d8b;}__name(loadScenarioVariables,_0x15254e(0x144));var templates={'jsconfigJson':'{\x0a\x20\x20\x22compilerOptions\x22:\x20{\x0a\x20\x20\x20\x20\x22checkJs\x22:\x20false,\x0a\x20\x20\x20\x20\x22target\x22:\x20\x22es2022\x22,\x0a\x20\x20\x20\x20\x22lib\x22:\x20[\x22es2022\x22],\x0a\x20\x20\x20\x20\x22types\x22:\x20[]\x0a\x20\x20},\x0a\x20\x20\x22include\x22:\x20[\x0a\x20\x20\x20\x20\x22**/*.js\x22,\x0a\x20\x20\x20\x20\x22../.unotest/types/env.d.ts\x22,\x0a\x20\x20\x20\x20\x22../node_modules/@unotest/web/types/unotest-dsl.d.ts\x22\x0a\x20\x20]\x0a}\x0a','scenarioTemplate':'//\x20Move\x20+\x20rename\x20this\x20file\x20to\x20<feature>/<your_name>.js\x20(e.g.\x0a//\x20auth/login.js)\x20and\x20the\x20function\x20below\x20to\x20test_<your_name>().\x20Scenarios\x20live\x0a//\x20in\x20feature\x20subfolders,\x20NOT\x20the\x20e2e\x20root\x20—\x20the\x20linter\x20(lint:scenario-in-root)\x0a//\x20rejects\x20a\x20test\x20file\x20placed\x20directly\x20in\x20unotest/e2e/.\x20The\x20loader\x20derives\x20the\x0a//\x20entry\x20name\x20from\x20the\x20file\x20basename\x20—\x20kebab-case\x20dashes\x20become\x20underscores.\x0a\x0a//\x20Every\x20executable\x20step\x20must\x20sit\x20inside\x20a\x20step(\x22...\x22,\x20()\x20=>\x20{\x20…\x20})\x20block.\x20The\x0a//\x20title\x20is\x20a\x20plain-English\x20description\x20of\x20the\x20group;\x20the\x20steps\x20inside\x20are\x0a//\x20the\x20implementation.\x20Group\x20by\x20intent\x20(Setup\x20/\x20Enter\x20/\x20Act\x20/\x20Assert\x20or\x0a//\x20whatever\x20reads\x20well)\x20—\x20one\x20block\x20per\x20logical\x20chunk.\x0a\x0afunction\x20test_your_name_here()\x20{\x0a\x20\x20step(\x22Seed\x20a\x20known\x20user\x20via\x20DB\x20/\x20API\x20fixtures\x20from\x20_helpers/\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20//\x20\x20\x20\x20wipe_e2e_users();\x0a\x20\x20\x20\x20//\x20\x20\x20\x20user_id\x20=\x20seed_user(\x27alice@example.com\x27,\x20\x27secret\x27);\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Sign\x20in\x20as\x20the\x20seeded\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27https://your-app.test/login\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27alice@example.com\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20fill(getByLabel(\x27Password\x27),\x20\x27secret\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Assert\x20the\x20dashboard\x20shows\x20the\x20signed-in\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertUrl(\x27/dashboard\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome,\x20Alice\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20count\x20=\x20dbQuery(\x27SELECT\x20count(*)\x20FROM\x20users\x20WHERE\x20active\x20=\x20true\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertTrue(count\x20>\x200,\x20\x27expected\x20at\x20least\x20one\x20active\x20user\x27);\x0a\x20\x20});\x0a}\x0a','agentsMd':'#\x20@unotest/web\x20—\x20guide\x20for\x20AI\x20agents\x20(and\x20humans)\x0a\x0aThis\x20project\x20uses\x20[`@unotest/web`](https://www.npmjs.com/package/@unotest/web)\x0afor\x20end-to-end\x20testing\x20of\x20web\x20applications.\x0a\x0a##\x20Writing\x20a\x20test\x20—\x20use\x20the\x20skill\x20+\x20MCP\x0a\x0aFor\x20ANY\x20request\x20to\x20write,\x20record,\x20or\x20run\x20an\x20e2e\x20test:\x0a\x0a1.\x20Open\x20the\x20**`write-e2e-test`**\x20skill\x20—\x20`.claude/skills/write-e2e-test/SKILL.md`\x0a\x20\x20\x20(in\x20Claude\x20Code\x20you\x20can\x20also\x20run\x20`/write-e2e-test`)\x20—\x20and\x20follow\x20it.\x0a2.\x20Drive\x20the\x20browser\x20through\x20the\x20**`unotest-web`\x20MCP\x20tools**:\x20`new_context`\x20→\x0a\x20\x20\x20`explore_start`\x20→\x20`explore_step`\x20→\x20`get_page_snapshot`\x20→\x20`run_test`.\x0a\x0aDo\x20NOT\x20hand-author\x20tests\x20blind\x20or\x20map\x20the\x20project\x20with\x20`find`/`ls`/`awk`\x20—\x20the\x0askill\x27s\x20Phase\x200\x20names\x20the\x20exact\x20files\x20to\x20read.\x20Runnable,\x20copy-pasteable\x0aexamples\x20live\x20in\x20`unotest/e2e/examples/`.\x0a\x0a##\x20Layout\x0a\x0a-\x20`unotest/e2e/<feature>/<name>.js`\x20—\x20test\x20scenarios,\x20grouped\x20by\x20feature/page\x0a\x20\x20(one\x20`test_*`\x20function\x20per\x20file).\x20**Required:**\x20every\x20scenario\x20lives\x20in\x20a\x0a\x20\x20feature\x20subfolder.\x20A\x20test\x20file\x20placed\x20directly\x20in\x20`unotest/e2e/`\x20is\x20rejected\x0a\x20\x20by\x20the\x20linter\x20(`lint:scenario-in-root`).\x0a-\x20`unotest/e2e/_helpers/`\x20—\x20project-specific\x20helpers\x20(visible\x20to\x20all\x20scenarios)\x0a-\x20`unotest/e2e/_template.js`\x20—\x20starting-point\x20template\x20(copy\x20into\x20a\x20feature\x20folder)\x0a\x0a##\x20DSL\x20conventions\x0a\x0aThe\x20DSL\x20is\x20a\x20strict\x20JS\x20subset\x20parsed\x20by\x20@unotest/dsl.\x20Method\x20chains,\x20options-\x0aobjects,\x20and\x20variables\x20are\x20allowed.\x20Multi-line\x20strings\x20use\x0abackticks\x20but\x20`${...}`\x20interpolation\x20is\x20forbidden\x20(sandbox\x20boundary\x20—\x0apass\x20values\x20via\x20positional\x20args).\x0a\x0a**Every\x20step\x20must\x20sit\x20inside\x20a\x20`step(\x22description\x22,\x20()\x20=>\x20{\x20…\x20})`\x20block\x20(linter\x0aenforces).**\x20The\x20title\x20is\x20plain-English\x20intent;\x20the\x20steps\x20inside\x20are\x20the\x0aimplementation.\x20When\x20a\x20step\x20later\x20breaks\x20(selector\x20drift),\x20you\x20read\x20the\x0atitle\x20to\x20understand\x20what\x20the\x20group\x20was\x20trying\x20to\x20do\x20and\x20repair\x20it.\x20Group\x20by\x0aintent,\x20one\x20block\x20per\x20logical\x20chunk:\x0a\x0a```js\x0afunction\x20test_login()\x20{\x0a\x20\x20step(\x22Sign\x20in\x20as\x20the\x20demo\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27https://app.example.com/login\x27);\x0a\x20\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27demo@example.com\x27);\x0a\x20\x20\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Dashboard\x20shows\x20the\x20signed-in\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome\x27);\x0a\x20\x20});\x0a}\x0a```\x0a\x0a**Base\x20URL\x20—\x20write\x20relative\x20paths.**\x20`APP_BASE_URL`\x20(in\x20`unotest/.env`)\x20is\x20the\x0aapp\x27s\x20base;\x20`goto(\x27/login\x27)`\x20resolves\x20against\x20it.\x20Don\x27t\x20concatenate\x0a(`goto(APP_BASE_URL\x20+\x20\x27/login\x27)`)\x20—\x20just\x20pass\x20the\x20path:\x0a\x0a```js\x0agoto(\x27/login\x27);\x0afill(getByLabel(\x27Password\x27),\x20TEST_USER_PASSWORD);\x0a```\x0a\x0a**Environments.**\x20Override\x20`APP_BASE_URL`\x20(and\x20any\x20var)\x20per\x20environment\x20with\x0aoverlay\x20files\x20—\x20`unotest/.env.staging`,\x20`unotest/.env.production`\x20(secrets:\x0a`unotest/.secrets.<env>`).\x20Select\x20one\x20at\x20run\x20time:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x0a--env\x20staging`.\x20The\x20overlay\x20layers\x20over\x20the\x20base\x20`.env`\x20(overlay\x20wins).\x0a\x0a**External\x20variables\x20&\x20secrets:**\x20reference\x20logins\x20/\x20tokens\x20by\x20a\x20bare\x0a`UPPER_SNAKE`\x20name\x20—\x20resolved\x20from\x20`unotest/.env`\x20(normal)\x20or\x20`unotest/.secrets`\x0a(secret,\x20masked\x20in\x20logs).\x20No\x20`env()`/`secret()`\x20wrapper.\x20A\x20lowercase\x20name\x20is\x20an\x0ain-scenario\x20binding;\x20an\x20unknown\x20`UPPER_SNAKE`\x20fails\x20the\x20run\x20asking\x20you\x20to\x20add\x20it\x0ato\x20`unotest/.env`.\x0a\x0a**Selector\x20hierarchy\x20(D-22\x20—\x20linter\x20enforces):**\x0a1.\x20`getByTestId(id)`\x20—\x20most\x20stable\x0a2.\x20`getByRole(role,\x20{name})`\x20—\x20semantic,\x20a11y-aware\x0a3.\x20`getByLabel(text)`\x20—\x20for\x20form\x20fields\x0a4.\x20`getByText(text)`\x20—\x20for\x20unique\x20text\x0a5.\x20`locator(css)`\x20—\x20last\x20resort\x20(linter\x20warns)\x0a\x0aFull\x20reference\x20shipped\x20with\x20the\x20package:\x0a-\x20`node_modules/@unotest/web/guides/dsl-reference.md`\x20—\x20DSL\x20functions\x20+\x20linter\x20codes\x0a\x0a##\x20Running\x20(CLI)\x0a\x0a-\x20`npx\x20@unotest/web\x20e2e\x20<feature>/<name>`\x20—\x20run\x20a\x20scenario\x20by\x20name\x0a-\x20`npx\x20@unotest/web\x20lint`\x20—\x20static\x20check\x20of\x20all\x20scenarios\x20+\x20helpers\x0a-\x20`npx\x20@unotest/web\x20mcp`\x20—\x20start\x20the\x20MCP\x20server\x20for\x20agent\x20control\x0a\x0a##\x20Via\x20MCP\x20(Claude\x20Code\x20/\x20Claude\x20Desktop\x20/\x20Cursor)\x0a\x0aThe\x20MCP\x20server\x20exposes:\x0a-\x20`run_test\x20name=\x22<name>\x22\x20mode=\x22step\x22\x20pauseOnFailure=true`\x20—\x20run\x20with\x20step-mode\x0a-\x20`step`\x20/\x20`resume`\x20—\x20advance\x20one\x20AST\x20node\x20/\x20run\x20until\x20next\x20pause\x0a-\x20`inspect_runtime`\x20—\x20current\x20state,\x20last\x20error,\x20locals\x20dump\x0a-\x20`abort_runtime`\x20—\x20kill\x20a\x20paused\x20runtime\x0a\x0aFor\x20agent-fix\x20workflows\x20on\x20flaky\x20tests:\x20`agent_fix\x20testId=\x22<id>\x22`\x20returns\x20a\x0astructured\x20context\x20bundle\x20(see\x20D-25\x20—\x20we\x20never\x20call\x20LLMs\x20or\x20auto-apply\x0adiffs,\x20the\x20diff\x20comes\x20from\x20your\x20MCP-host\x20agent).\x0a','claudeMdBody':_0x15254e(0x1fc),'examples':{'01-smoke.js':_0x15254e(0x124),'02-form-fill.js':'//\x20Example\x2002\x20—\x20fill\x20an\x20input\x20+\x20assert\x20the\x20app\x20reacted.\x0a//\x0a//\x20Against\x20playground.unotest.com/scenarios/big-table.\x20Demonstrates\x20getByRole\x0a//\x20for\x20a\x20labelled\x20input,\x20typed\x20input\x20via\x20fill(),\x20and\x20a\x20locator\x20method-chain\x0a//\x20(getByRole(\x27row\x27).filter({hasText}).first())\x20in\x20an\x20assertion.\x0a//\x20Run\x20with:\x20\x20npx\x20@unotest/web\x20e2e\x20examples/02-form-fill\x0a\x0afunction\x20test_form_fill_happy_path()\x20{\x0a\x20\x20step(\x22Filter\x20the\x20Big\x20Table\x20by\x20a\x20name\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27/scenarios/big-table\x27);\x0a\x20\x20\x20\x20fill(getByRole(\x27textbox\x27,\x20{name:\x20\x27Filter\x20by\x20name\x27}),\x20\x27Uma\x20Quinn\x27);\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Filtering\x20reveals\x20the\x20Clear\x20filter\x20control\x20and\x20matching\x20rows\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20assertVisible(getByRole(\x27button\x27,\x20{name:\x20\x27Clear\x20filter\x27}));\x0a\x20\x20\x20\x20assertVisible(getByRole(\x27row\x27).filter({hasText:\x20\x27Uma\x20Quinn\x27}).first());\x0a\x20\x20});\x0a}\x0a'},'secretsExample':'#\x20unotest-web\x20—\x20secret\x20scenario\x20variables.\x20Created\x20by\x20`init`,\x20gitignored.\x0a#\x0a#\x20Same\x20KEY=VALUE\x20format\x20as\x20unotest/.env,\x20but\x20values\x20here\x20are\x20treated\x20as\x0a#\x20SECRET:\x20they\x20are\x20masked\x20(shown\x20as\x20`‹secret:KEY›`)\x20anywhere\x20the\x20runner\x20or\x0a#\x20MCP\x20debug\x20log\x20would\x20otherwise\x20write\x20them\x20—\x20fill()\x20values,\x20URLs,\x20evaluate\x0a#\x20strings.\x20Reference\x20them\x20in\x20a\x20scenario\x20by\x20their\x20bare\x20UPPER_SNAKE\x20name,\x20the\x0a#\x20same\x20way\x20as\x20.env\x20variables:\x0a#\x0a#\x20\x20\x20fill(getByLabel(\x27Password\x27),\x20PASSWORD);\x0a#\x0a#\x20Secrets\x20are\x20NOT\x20exported\x20to\x20subprocesses\x20(shell())\x20—\x20they\x20stay\x20in\x20the\x0a#\x20variable\x20store.\x20A\x20subprocess\x20that\x20genuinely\x20needs\x20one\x20(a\x20listener\x20with\x20a\x0a#\x20token)\x20gets\x20it\x20via\x20the\x20explicit\x20allowlist\x20in\x20unotest.config.*:\x0a#\x20\x20\x20sandbox:\x20{\x20exportSecrets:\x20[\x27TOKEN\x27]\x20}\x0a#\x20Put\x20non-secret\x20values\x20(URLs,\x20emails,\x20ids)\x20in\x20unotest/.env.\x0a#\x0a#\x20FLEET_EXAMPLE\x0aLOGIN=\x0aPASSWORD=\x0aTOKEN=\x0a','envExample':'#\x20unotest-web\x20—\x20copied\x20to\x20unotest/.env\x20by\x20`init`\x20if\x20not\x20present.\x0a#\x0a#\x20Fill\x20in\x20values\x20that\x20apply\x20to\x20your\x20project.\x20Variables\x20are\x20loaded\x20by\x20the\x0a#\x20runner\x20at\x20scenario\x20start.\x0a#\x0a#\x20Reference\x20any\x20variable\x20from\x20a\x20scenario\x20by\x20its\x20bare\x20UPPER_SNAKE\x20name\x20—\x0a#\x20no\x20env()/secret()\x20wrapper:\x0a#\x0a#\x20\x20\x20goto(\x27/login\x27);\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20relative\x20—\x20see\x20APP_BASE_URL\x0a#\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20TEST_USER_EMAIL);\x0a#\x0a#\x20Secret\x20values\x20(passwords,\x20tokens)\x20go\x20in\x20unotest/.secrets\x20instead\x20—\x20same\x0a#\x20format,\x20but\x20masked\x20in\x20every\x20log.\x20An\x20unknown\x20UPPER_SNAKE\x20name\x20fails\x20the\x0a#\x20run\x20with\x20a\x20clear\x20\x22add\x20it\x20to\x20unotest/.env\x22\x20message.\x0a#\x0a#\x20Environments:\x20override\x20any\x20value\x20per\x20environment\x20with\x20overlay\x20files\x20—\x0a#\x20unotest/.env.staging,\x20unotest/.env.production\x20(secrets:\x20.secrets.<env>).\x0a#\x20Select\x20one:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x20--env\x20staging`.\x20The\x20overlay\x20layers\x0a#\x20over\x20this\x20base\x20file\x20(overlay\x20wins);\x20the\x20shell\x20environment\x20wins\x20over\x20both.\x0a\x0a#\x20---\x20App\x20under\x20test\x20--------------------------------------------------------\x0a#\x20The\x20app\x27s\x20base\x20URL.\x20Relative\x20goto(\x27/path\x27)\x20resolves\x20against\x20it\x20(wired\x20into\x0a#\x20Playwright\x27s\x20baseURL\x20automatically),\x20so\x20write\x20goto(\x27/login\x27)\x20—\x20never\x0a#\x20goto(APP_BASE_URL\x20+\x20\x27/login\x27).\x20Also\x20used\x20for\x20assertUrl\x20substring\x20matching.\x0a#\x20Defaults\x20to\x20the\x20unotest\x20playground\x20so\x20the\x20example\x20scenarios\x20run\x20out\x20of\x20the\x0a#\x20box;\x20point\x20it\x20at\x20your\x20own\x20app.\x0aAPP_BASE_URL=https://playground.unotest.com\x0a\x0a#\x20---\x20Database\x20--------------------------------------------------------------\x0a#\x20Used\x20by\x20dbQuery\x20/\x20dbExec.\x20Install\x20the\x20matching\x20driver\x20as\x20a\x20peer-dep:\x0a#\x20\x20\x20pnpm\x20add\x20-D\x20pg\x20@types/pg\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20for\x20postgresql://\x0a#\x20\x20\x20pnpm\x20add\x20-D\x20mysql2\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20for\x20mysql://\x0a#\x20(SQLite\x20via\x20better-sqlite3\x20—\x20install\x20only\x20if\x20needed.)\x0aDATABASE_URL=postgresql://postgres:postgres@localhost:5432/myapp_test\x0a\x0a#\x20---\x20Extra\x20API\x20hosts\x20-------------------------------------------------------\x0a#\x20apiCall(...)\x20goes\x20against\x20sandbox.apiBaseUrl\x20from\x20unotest.config.*\x20by\x0a#\x20default.\x20A\x20setup\x20that\x20talks\x20to\x20MORE\x20hosts\x20names\x20them\x20here\x20and\x20picks\x20one\x0a#\x20per\x20call\x20by\x20the\x20variable\x20NAME\x20(URLs\x20never\x20appear\x20in\x20scenarios):\x0a#\x20\x20\x20apiCall(\x27POST\x27,\x20\x27/things\x27,\x20body,\x20headers,\x20{base:\x20\x27API_BASE_CHAT\x27})\x0a#\x20API_BASE_CHAT=https://chatbackend.example.com\x0a\x0a#\x20---\x20Runner\x20--------------------------------------------------------------\x0a#\x20Show\x20the\x20browser\x20window\x20during\x20runs\x20(default:\x20headless).\x0a#\x20UNOTEST_HEADED=1\x0a#\x20Slow\x20each\x20Playwright\x20op\x20by\x20N\x20ms\x20(default:\x200).\x20Pairs\x20with\x20HEADED\x20for\x0a#\x20watching\x20the\x20agent\x20at\x20work.\x0a#\x20UNOTEST_SLOW_MO=100\x0a#\x20Browser\x20used\x20by\x20the\x20CLI\x20(chromium\x20|\x20firefox\x20|\x20webkit).\x20Default:\x20chromium.\x0a#\x20UNOTEST_BROWSER=chromium\x0a#\x20Default\x20action\x20timeout\x20in\x20milliseconds\x20—\x20applied\x20to\x20every\x20click\x20/\x0a#\x20fill\x20/\x20waitFor\x20/\x20etc.\x20via\x20Playwright\x27s\x20setDefaultTimeout.\x20Default\x203000.\x0a#\x20Bump\x20if\x20your\x20app\x20is\x20slow;\x20per-action\x20override\x20via\x20the\x20action\x27s\x0a#\x20options.timeout.\x20Playwright\x27s\x20stock\x2030000\x20strands\x20interactive\x20agents.\x0a#\x20UNOTEST_DEFAULT_TIMEOUT_MS=3000\x0a#\x20Default\x20navigation\x20timeout\x20in\x20milliseconds\x20—\x20applied\x20to\x20goto\x20/\x20reload\x20/\x0a#\x20waitForUrl,\x20click\x27s\x20post-action\x20navigation\x20wait,\x20AND\x20setPage\x27s\x20wait\x20for\x20a\x0a#\x20newly\x20opened\x20tab\x20to\x20appear\x20+\x20load.\x20Real-world\x20pages\x20routinely\x20take\x205–15s\x0a#\x20to\x20fire\x20\x27load\x27;\x20keep\x20this\x20separate\x20from\x20the\x20action\x20timeout\x20above.\x0aUNOTEST_DEFAULT_NAVIGATION_TIMEOUT_MS=15000\x0a\x0a#\x20Per-run\x20wall-clock\x20budget\x20in\x20milliseconds\x20—\x20a\x20run\x20aborts\x20once\x20it\x20exceeds\x0a#\x20this.\x20Guards\x20against\x20a\x20stuck\x20scenario\x20hanging\x20the\x20agent\x20indefinitely.\x0a#\x20Invalid\x20or\x20non-positive\x20values\x20fall\x20back\x20to\x20the\x20default.\x20Default\x20300000.\x0a#\x20UNOTEST_MAX_DURATION_MS=300000\x0a\x0a#\x20---\x20Locale\x20+\x20timezone\x20---------------------------------------------------\x0a#\x20Pin\x20the\x20browser\x20context\x27s\x20Accept-Language\x20/\x20navigator.language.\x20Without\x0a#\x20these,\x20tests\x20inherit\x20the\x20OS\x20locale\x20—\x20accessible-name\x20selectors\x0a#\x20(`getByRole(name)`)\x20on\x20i18n\x27d\x20apps\x20will\x20break\x20across\x20machines.\x0a#\x20UNOTEST_LOCALE=en-US\x0a#\x20UNOTEST_TIMEZONE=UTC\x0a\x0a#\x20---\x20Recording\x20(explore_*)\x20----------------------------------------------\x0a#\x20Grace\x20window\x20in\x20ms\x20after\x20each\x20explore_step\x20action.\x20If\x20a\x20click\x20opens\x20a\x0a#\x20new\x20tab/popup,\x20the\x20MCP\x20server\x20auto-switches\x20the\x20active\x20page\x20to\x20it\x20AND\x0a#\x20inserts\x20setPage(N)\x20into\x20the\x20generated\x20DSL\x20trace.\x20Set\x20to\x200\x20to\x20disable\x0a#\x20(strict\x20mode).\x20Has\x20NO\x20effect\x20on\x20run_test\x20—\x20there\x20setPage\x20already\x20waits\x0a#\x20for\x20the\x20tab\x20to\x20appear\x20on\x20its\x20own.\x20Range:\x20[0,\x2010000].\x20Default:\x202000.\x0a#\x20UNOTEST_POPUP_GRACE_MS=2000\x0a\x0a#\x20---\x20Logging\x20-------------------------------------------------------------\x0a#\x20debug\x20|\x20info\x20|\x20warn\x20|\x20error.\x20Default:\x20info.\x0aUNOTEST_LOG_LEVEL=info\x0a\x0a#\x20---\x20Debug\x20diagnostics\x20---------------------------------------------------\x0a#\x20Off\x20by\x20default.\x20Set\x20to\x201\x20to\x20record\x20a\x20structured\x20JSONL\x20log\x20+\x20per-call\x0a#\x20folders\x20under\x20unotest/.debug/\x20—\x20then\x20restart\x20the\x20MCP\x20server.\x20Each\x20tool\x0a#\x20call\x20gets\x20a\x20folder\x20with\x20the\x20full\x20snapshot\x20JSON,\x20the\x20outerHTML\x20of\x20the\x0a#\x20element\x20a\x20locator\x20resolved\x20to,\x20and\x20(on\x20failure)\x20page.html\x20+\x20a\x20screenshot,\x0a#\x20so\x20you\x20(and\x20the\x20AI\x20agent,\x20via\x20get_last_mcp_log)\x20can\x20verify\x20the\x20snapshot\x0a#\x20didn\x27t\x20glitch\x20and\x20the\x20locator\x20hit\x20the\x20right\x20element\x20—\x20instead\x20of\x20guessing\x0a#\x20from\x20a\x20truncated\x20error.\x20audit_last_run\x20then\x20checks\x20the\x20run\x20against\x20the\x0a#\x20testing\x20rules.\x20Also\x20turns\x20on\x20full\x20CLI\x20stack\x20traces.\x20Use\x20\x27summary\x27\x20for\x20a\x0a#\x20lighter\x20log\x20(tool\x20+\x20snapshot\x20layers\x20only,\x20no\x20artifacts).\x20NOTE:\x20tool\x0a#\x20arguments\x20are\x20logged\x20verbatim,\x20so\x20a\x20fill()\x20with\x20a\x20password\x20lands\x20in\x20the\x0a#\x20local\x20(gitignored)\x20log\x20—\x20keep\x20this\x20off\x20unless\x20you\x27re\x20debugging.\x0a#\x20UNOTEST_DEBUG=1\x0a\x0a#\x20---\x20Capture\x20(viewer\x20inspector)\x20------------------------------------------\x0a#\x20Record\x20the\x20browser\x20console\x20+\x20network\x20requests\x20into\x20each\x20run\x27s\x20dir\x20so\x20the\x0a#\x20viewer\x27s\x20Console\x20/\x20Network\x20inspector\x20tabs\x20are\x20populated.\x20Set\x20to\x200\x20to\x20disable.\x0aUNOTEST_NETWORK=1\x0aUNOTEST_CONSOLE=1\x0a#\x20Set\x20to\x201\x20to\x20also\x20capture\x20a\x20screenshot\x20after\x20EVERY\x20executed\x20step\x20(into\x0a#\x20unotest/.runs/<runId>/screenshot/;\x20click\x20a\x20step\x20row\x20in\x20the\x20viewer\x20to\x20see\x0a#\x20it).\x20On\x20failure,\x20a\x20screenshot\x20+\x20page.html\x20always\x20land\x20in\x0a#\x20unotest/.runs/<runId>/failure/\x20—\x20no\x20flag\x20needed.\x0a#\x20UNOTEST_STEP_SCREENSHOTS=1\x0a'};function unotestConfigMjs(_0x5886a0){const _0x5cf92d={_0x496619:0x136},_0x25943b=_0x15254e,_0x8c3932=_0x5886a0===void 0x0?_0x25943b(_0x5cf92d._0x496619):'\x20\x20channel:\x20'+JSON['stringify'](_0x5886a0)+',';return _0x25943b(0x156)+_0x8c3932+_0x25943b(0x225);}__name(unotestConfigMjs,_0x15254e(0x211));var JSCONFIG_REL=_0x374a06(_0x15254e(0x1e7),_0x15254e(0x1f5)),ENV_TYPES_REL=_0x374a06(_0x15254e(0x1eb),_0x15254e(0x13d),_0x15254e(0x21e)),SKIPPED={'jsconfig':_0x15254e(0x16f),'envTypes':_0x15254e(0x16f)},IDENTIFIER=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function renderEnvTypes(_0x5bac67){const _0x55272={_0x32ea25:0x173,_0x364383:0x1d0,_0x35bd75:0x213},_0x347320=_0x15254e,_0x2ae031=[...new Set(_0x5bac67[_0x347320(0x118)](_0x13efaa=>IDENTIFIER['test'](_0x13efaa)))]['sort']();return[_0x347320(_0x55272._0x32ea25),_0x347320(_0x55272._0x364383),_0x347320(_0x55272._0x35bd75),'',..._0x2ae031['map'](_0x2726ce=>_0x347320(0x108)+_0x2726ce+_0x347320(0x221)),'']['join']('\x0a');}__name(renderEnvTypes,_0x15254e(0x1a0));function ensureEditorTypes(_0x18c2a1,_0x2abe19={}){const _0x349494={_0x44ee26:0x1e7,_0x44b26b:0x1f9},_0x5673bf=_0x15254e,_0x51711e=_0x2abe19['env']??process['env'];if(_0x2abe19[_0x5673bf(0x186)]&&_0x51711e['CI'])return SKIPPED;if(!_0x142185(_0x374a06(_0x18c2a1,_0x5673bf(_0x349494._0x44ee26))))return SKIPPED;return{'jsconfig':ensureJsconfig(_0x18c2a1,_0x2abe19[_0x5673bf(_0x349494._0x44b26b)]??![]),'envTypes':syncEnvTypes(_0x18c2a1,_0x51711e)};}__name(ensureEditorTypes,_0x15254e(0x10f));function ensureJsconfig(_0x5157d5,_0x163c9e){const _0x5aa301={_0x1695bd:0x195,_0x1d553b:0x1d2},_0x159fbd=_0x15254e,_0x6a1f7e=_0x374a06(_0x5157d5,JSCONFIG_REL),_0x2179af=_0x142185(_0x6a1f7e);if(_0x2179af&&!_0x163c9e)return _0x159fbd(0x16f);return mkdirSync(dirname(_0x6a1f7e),{'recursive':!![]}),_0x4467e3(_0x6a1f7e,templates[_0x159fbd(0x1c8)]),_0x2179af?_0x159fbd(_0x5aa301._0x1695bd):_0x159fbd(_0x5aa301._0x1d553b);}__name(ensureJsconfig,'ensureJsconfig');function syncEnvTypes(_0x372d1e,_0x4f8a0f){const _0x11e026={_0x2ec067:0x1d2},_0x573a5e=_0x15254e,{declared:_0x52f6a6}=loadScenarioVariables(_0x372d1e,_0x4f8a0f),_0x19823f=renderEnvTypes(_0x52f6a6['map'](_0x30faad=>_0x30faad['name'])),_0x228f7c=_0x374a06(_0x372d1e,ENV_TYPES_REL),_0x26e432=_0x142185(_0x228f7c);if(_0x26e432&&_0x465bf4(_0x228f7c,_0x573a5e(0x1f2))===_0x19823f)return'skipped';return mkdirSync(dirname(_0x228f7c),{'recursive':!![]}),_0x4467e3(_0x228f7c,_0x19823f),_0x26e432?_0x573a5e(0x1a8):_0x573a5e(_0x11e026._0x2ec067);}__name(syncEnvTypes,_0x15254e(0x20a));function promptYesNo(_0x34503e,_0x4d0c4d){const _0xdff520={_0x39e79e:0x11a},_0x3cb1b0={_0x286c9f:0x1b8,_0x2322f6:0x21f,_0x44a2ce:0x14a,_0x4c1867:0x204},_0x51a307={_0x2fe67a:0x162,_0xa49315:0x14a,_0x22165b:0x17a},_0x20bb7c=_0x15254e,_0xaaf1c8=_0x4d0c4d?'\x20[Y/n]\x20':_0x20bb7c(_0xdff520._0x39e79e);return new Promise(_0x12385d=>{const _0x587723={_0x21da28:0x1f2,_0x1d1fa1:0x158,_0x542333:0x222},_0x2f3451=_0x20bb7c;let _0x5bd976=![];const _0x2f288d=__name(_0x578245=>{const _0xcd47f3=_0x4b8d;if(_0x5bd976)return;_0x5bd976=!![],process['stdin'][_0xcd47f3(_0x51a307._0x2fe67a)](_0xcd47f3(0x165),_0x364f47),process[_0xcd47f3(_0x51a307._0xa49315)][_0xcd47f3(0x162)](_0xcd47f3(0x204),_0x168f56),process[_0xcd47f3(_0x51a307._0xa49315)][_0xcd47f3(0x194)](),process[_0xcd47f3(0x14a)][_0xcd47f3(_0x51a307._0x22165b)](),_0x12385d(_0x578245);},_0x2f3451(_0x3cb1b0._0x286c9f)),_0x364f47=__name(_0x2e04c5=>{const _0x33f45e=_0x2f3451,_0x530fff=typeof _0x2e04c5===_0x33f45e(0x208)?_0x2e04c5:_0x2e04c5[_0x33f45e(0x1ba)](_0x33f45e(_0x587723._0x21da28)),_0x3c27ca=_0x530fff[_0x33f45e(_0x587723._0x1d1fa1)]('\x0a');if(_0x3c27ca<0x0)return;const _0x58d4b0=_0x530fff['slice'](0x0,_0x3c27ca)[_0x33f45e(_0x587723._0x542333)]()[_0x33f45e(0x1d6)]();if(_0x58d4b0==='')return _0x2f288d(_0x4d0c4d);_0x2f288d(_0x58d4b0==='y'||_0x58d4b0===_0x33f45e(0x202));},_0x2f3451(0x1c2)),_0x168f56=__name(()=>_0x2f288d(_0x4d0c4d),_0x2f3451(_0x3cb1b0._0x2322f6));process['stdout'][_0x2f3451(0x13b)](_0x34503e+_0xaaf1c8),process[_0x2f3451(0x14a)]['on']('data',_0x364f47),process[_0x2f3451(_0x3cb1b0._0x44a2ce)]['on'](_0x2f3451(_0x3cb1b0._0x4c1867),_0x168f56),process[_0x2f3451(_0x3cb1b0._0x44a2ce)]['resume']();});}__name(promptYesNo,'promptYesNo');import{spawn}from'child_process';import{createRequire}from'module';import{dirname as _0x18c4b7,resolve}from'path';import{fileURLToPath}from'url';async function installChromium(_0x5b9217={}){const _0x8533bc={_0x473d8b:0x1da,_0x299cac:0x13f,_0x4394e4:0x19e},_0x1e335f={_0x4fda12:0x149,_0x44363a:0x13a,_0x1cf79c:0x1f3,_0x1ab1ca:0x165,_0x2d87e1:0x183,_0x654115:0x1b2,_0x702032:0x11e},_0x3e22c0=_0x15254e,_0x264a47=_0x5b9217[_0x3e22c0(_0x8533bc._0x473d8b)]??(_0x54bc39=>process[_0x3e22c0(0x1f3)][_0x3e22c0(0x13b)](_0x54bc39)),_0x2e9151=createRequire(import.meta.url),_0x56b468=_0x2e9151[_0x3e22c0(0x167)](_0x3e22c0(0x128)),_0x55f12e=_0x2e9151(_0x56b468),_0x513881=typeof _0x55f12e[_0x3e22c0(_0x8533bc._0x299cac)]===_0x3e22c0(0x208)?_0x55f12e['bin']:_0x55f12e[_0x3e22c0(0x13f)]?.['playwright'];if(!_0x513881)throw new Error(_0x3e22c0(_0x8533bc._0x4394e4));const _0x3995ad=resolve(_0x18c4b7(_0x56b468),_0x513881);return new Promise((_0xe9b78d,_0x109bc5)=>{const _0x4d6ddd=_0x3e22c0,_0x5b7f5a=spawn(process[_0x4d6ddd(_0x1e335f._0x4fda12)],[_0x3995ad,'install',_0x4d6ddd(0x1f7)],{'stdio':[_0x4d6ddd(0x21d),'pipe',_0x4d6ddd(_0x1e335f._0x44363a)]});_0x5b7f5a[_0x4d6ddd(_0x1e335f._0x1cf79c)]?.['on'](_0x4d6ddd(_0x1e335f._0x1ab1ca),_0x3da30f=>_0x264a47(_0x3da30f[_0x4d6ddd(0x1ba)]())),_0x5b7f5a[_0x4d6ddd(_0x1e335f._0x2d87e1)]?.['on'](_0x4d6ddd(0x165),_0x2f8641=>_0x264a47(_0x2f8641[_0x4d6ddd(0x1ba)]())),_0x5b7f5a['on'](_0x4d6ddd(_0x1e335f._0x654115),_0x109bc5),_0x5b7f5a['on'](_0x4d6ddd(_0x1e335f._0x702032),_0xd36c4e=>{if(_0xd36c4e===0x0)_0xe9b78d();else _0x109bc5(new Error('chromium\x20download\x20exited\x20with\x20code\x20'+_0xd36c4e));});});}__name(installChromium,_0x15254e(0x1be));async function runInstallChromiumCli(){const _0x1c44ed={_0x312b6e:0x183,_0x19e2c5:0x13b,_0x78a646:0x207},_0x3aaf93=_0x15254e;try{return await installChromium(),0x0;}catch(_0x5848c9){return process[_0x3aaf93(_0x1c44ed._0x312b6e)][_0x3aaf93(_0x1c44ed._0x19e2c5)](_0x3aaf93(0x199)+(_0x5848c9 instanceof Error?_0x5848c9[_0x3aaf93(_0x1c44ed._0x78a646)]:String(_0x5848c9))+'\x0a'),0x1;}}__name(runInstallChromiumCli,_0x15254e(0x171));var invokedDirectly=process[_0x15254e(0x182)][0x1]&&fileURLToPath(import.meta.url)===process['argv'][0x1];invokedDirectly&&runInstallChromiumCli()['then'](_0x50606e=>process[_0x15254e(0x11e)](_0x50606e));async function chooseBrowser(_0xa69f97){const _0x79906b={_0x104420:0x1a7,_0x4c59f5:0x1c9,_0x2d2f58:0x1d7,_0x21e0d6:0x192,_0x543c9d:0x12f,_0x31394b:0x1ee,_0x3090fc:0x18f,_0x3c0579:0x10c,_0xe9808e:0x1cf,_0x39cd14:0x1e6,_0x335602:0x131,_0xccd334:0x161,_0x343219:0x1f0,_0x34056f:0x13c,_0x12f017:0x10c,_0x181819:0x1f0,_0x2c61ce:0x1e6,_0x537f23:0x139,_0x11b216:0x205,_0x50d49a:0x1a3,_0x242874:0x166},_0x19f2a7=_0x15254e,_0x351ad7=_0xa69f97[_0x19f2a7(0x1da)]??(_0x587f5b=>process[_0x19f2a7(0x1f3)][_0x19f2a7(0x13b)](_0x587f5b));if(_0xa69f97['override']===_0x19f2a7(_0x79906b._0x104420)){if(_0xa69f97[_0x19f2a7(0x10c)]['channel'])return _0x351ad7(_0x19f2a7(_0x79906b._0x4c59f5)+_0xa69f97[_0x19f2a7(0x10c)][_0x19f2a7(0x1f0)]+'\x20('+_0xa69f97[_0x19f2a7(0x10c)][_0x19f2a7(_0x79906b._0x2d2f58)]+')\x0a'),{'channel':_0xa69f97['probe'][_0x19f2a7(0x1e6)],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x19f2a7(_0x79906b._0x21e0d6),_0x19f2a7(0x105)]};}if(_0xa69f97['override']===_0x19f2a7(_0x79906b._0x543c9d))return _0x351ad7('\x20\x20→\x20downloading\x20bundled\x20Chromium\x20(~150\x20MB)…\x0a'),await installChromium({'stdoutWrite':_0x351ad7}),{'channel':null,'installedBundled':!![],'warnings':[]};if(_0xa69f97[_0x19f2a7(0x201)]===_0x19f2a7(0x14f))return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x19f2a7(_0x79906b._0x31394b),_0x19f2a7(0x1a3),'\x20\x20\x20\x20install\x20Chrome:\x20\x20https://www.google.com/chrome']};if(!_0xa69f97[_0x19f2a7(_0x79906b._0x3090fc)]){if(_0xa69f97[_0x19f2a7(0x10c)][_0x19f2a7(0x1e6)])return _0x351ad7('\x20\x20✓\x20'+_0xa69f97[_0x19f2a7(_0x79906b._0x3c0579)][_0x19f2a7(0x1f0)]+_0x19f2a7(_0x79906b._0xe9808e)+_0xa69f97['probe']['path']+'\x20—\x20using\x20channel\x20\x27'+_0xa69f97[_0x19f2a7(0x10c)][_0x19f2a7(_0x79906b._0x39cd14)]+'\x27\x0a'),{'channel':_0xa69f97[_0x19f2a7(0x10c)]['channel'],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':['⚠\x20non-interactive\x20shell\x20and\x20no\x20system\x20browser\x20found.','\x20\x20Run\x20`npx\x20@unotest/web\x20install-chromium`\x20to\x20download\x20the\x20bundled\x20fallback,',_0x19f2a7(_0x79906b._0x335602)]};}if(_0xa69f97[_0x19f2a7(_0x79906b._0x3c0579)][_0x19f2a7(0x1e6)]){_0x351ad7(_0x19f2a7(_0x79906b._0xccd334)+_0xa69f97['probe'][_0x19f2a7(_0x79906b._0x343219)]+_0x19f2a7(0x10e)+_0xa69f97['probe'][_0x19f2a7(0x1d7)]+'\x0a');const _0x3f7511=await promptYesNo(_0x19f2a7(_0x79906b._0x34056f)+_0xa69f97[_0x19f2a7(_0x79906b._0x12f017)][_0x19f2a7(_0x79906b._0x181819)]+'?',!![]);if(_0x3f7511)return{'channel':_0xa69f97[_0x19f2a7(0x10c)][_0x19f2a7(_0x79906b._0x2c61ce)],'installedBundled':![],'warnings':[]};}else _0x351ad7('\x0a\x20\x20No\x20system\x20Chrome\x20/\x20Edge\x20/\x20Chromium\x20detected.\x0a');const _0x40fbb4=await promptYesNo(_0x19f2a7(_0x79906b._0x537f23),!![]);if(_0x40fbb4)return _0x351ad7(_0x19f2a7(0x1bf)),await installChromium({'stdoutWrite':_0x351ad7}),{'channel':null,'installedBundled':!![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x19f2a7(_0x79906b._0x11b216),_0x19f2a7(_0x79906b._0x50d49a),_0x19f2a7(_0x79906b._0x242874)]};}__name(chooseBrowser,'chooseBrowser');var McpJsonParseError=class extends Error{static{__name(this,_0x15254e(0x15f));}constructor(_0x1923b7){const _0x59e2cd={_0x4d74cf:0x12e,_0x192b42:0x15f},_0x2f4c07=_0x15254e;super(_0x1923b7),this[_0x2f4c07(_0x59e2cd._0x4d74cf)]=_0x2f4c07(_0x59e2cd._0x192b42);}};function mergeMcpConfig(_0x5b9497,_0xb56ca2,_0x28a574,_0x3e1a25={}){const _0x106de1={_0x3c927b:0x172,_0x4127e9:0x19b,_0x4aefc0:0x207,_0x43f78d:0x1e0,_0x4cf2d6:0x13e,_0xe016f4:0x13e,_0xc1f088:0x16d,_0x405d6a:0x11c},_0x59c544=_0x15254e;if(_0x5b9497===null){const _0x2bf8d2=JSON[_0x59c544(_0x106de1._0x3c927b)]({'mcpServers':{[_0xb56ca2]:_0x28a574}},null,0x2)+'\x0a';return{'action':_0x59c544(0x1d2),'newContent':_0x2bf8d2};}let _0x35fc2f;try{_0x35fc2f=JSON[_0x59c544(_0x106de1._0x4127e9)](_0x5b9497);}catch(_0x39aab2){throw new McpJsonParseError('Failed\x20to\x20parse\x20.mcp.json\x20as\x20JSON:\x20'+_0x39aab2[_0x59c544(_0x106de1._0x4aefc0)]+_0x59c544(_0x106de1._0x43f78d));}(!_0x35fc2f[_0x59c544(_0x106de1._0x4cf2d6)]||typeof _0x35fc2f[_0x59c544(_0x106de1._0xe016f4)]!==_0x59c544(_0x106de1._0xc1f088))&&(_0x35fc2f[_0x59c544(0x13e)]={});const _0x20b116=_0xb56ca2 in _0x35fc2f[_0x59c544(_0x106de1._0xe016f4)];if(_0x20b116&&!_0x3e1a25['force'])return{'action':_0x59c544(0x14c),'newContent':_0x5b9497};_0x35fc2f['mcpServers'][_0xb56ca2]=_0x28a574;const _0x53f6da=JSON[_0x59c544(_0x106de1._0x3c927b)](_0x35fc2f,null,0x2)+'\x0a';return{'action':_0x20b116?_0x59c544(_0x106de1._0x405d6a):'added','newContent':_0x53f6da};}__name(mergeMcpConfig,'mergeMcpConfig');var ClaudeSettingsParseError=class extends Error{static{__name(this,_0x15254e(0x1de));}constructor(_0x3dfd9d){const _0x377fd8=_0x15254e;super(_0x3dfd9d),this[_0x377fd8(0x12e)]=_0x377fd8(0x1de);}};function mergeClaudeAllowEntries(_0x41fb3b,_0x3d7186){const _0x580c35={_0x423c68:0x1a6,_0x4c749d:0x1e0,_0x1cafcb:0x170,_0x4defc:0x17c,_0x25c507:0x170,_0x145c5b:0x1fd,_0x253087:0x117,_0x46a1f6:0x1c0,_0x20eb6a:0x14c},_0x2d2827=_0x15254e;if(_0x41fb3b===null){const _0x2c906e=JSON[_0x2d2827(0x172)]({'permissions':{'allow':[..._0x3d7186]}},null,0x2)+'\x0a';return{'action':'created','newContent':_0x2c906e,'added':[..._0x3d7186]};}let _0x4d5d23;try{_0x4d5d23=JSON[_0x2d2827(0x19b)](_0x41fb3b);}catch(_0x49a2ac){throw new ClaudeSettingsParseError(_0x2d2827(_0x580c35._0x423c68)+_0x49a2ac['message']+_0x2d2827(_0x580c35._0x4c749d));}(!_0x4d5d23['permissions']||typeof _0x4d5d23[_0x2d2827(_0x580c35._0x1cafcb)]!=='object')&&(_0x4d5d23[_0x2d2827(0x170)]={});const _0x2404f3=Array[_0x2d2827(_0x580c35._0x4defc)](_0x4d5d23[_0x2d2827(_0x580c35._0x25c507)]['allow'])?_0x4d5d23[_0x2d2827(0x170)]['allow']:[],_0x58965d=[];for(const _0x577ac3 of _0x3d7186){!_0x2404f3['includes'](_0x577ac3)&&(_0x2404f3['push'](_0x577ac3),_0x58965d[_0x2d2827(_0x580c35._0x145c5b)](_0x577ac3));}_0x4d5d23[_0x2d2827(0x170)][_0x2d2827(_0x580c35._0x253087)]=_0x2404f3;if(_0x58965d[_0x2d2827(_0x580c35._0x46a1f6)]===0x0)return{'action':_0x2d2827(_0x580c35._0x20eb6a),'newContent':_0x41fb3b,'added':[]};const _0x2b9868=JSON['stringify'](_0x4d5d23,null,0x2)+'\x0a';return{'action':_0x2d2827(0x104),'newContent':_0x2b9868,'added':_0x58965d};}__name(mergeClaudeAllowEntries,_0x15254e(0x1ca));function mergeClaudeHooks(_0xec3984,_0x4af98b,_0xf25f96,_0x343bce){const _0x572371={_0x3ffbb5:0x19b,_0x5adb84:0x1a6,_0x36f83d:0x207,_0x5e8282:0x1e0,_0x3da2bb:0x101,_0x14501:0x16d,_0x32804a:0x172},_0x5ee098=_0x15254e;let _0x149d49;if(_0xec3984===null)_0x149d49={};else try{_0x149d49=JSON[_0x5ee098(_0x572371._0x3ffbb5)](_0xec3984);}catch(_0x227cd3){throw new ClaudeSettingsParseError(_0x5ee098(_0x572371._0x5adb84)+_0x227cd3[_0x5ee098(_0x572371._0x36f83d)]+_0x5ee098(_0x572371._0x5e8282));}const _0x3dbc3a=_0x149d49[_0x5ee098(0x101)]&&typeof _0x149d49[_0x5ee098(_0x572371._0x3da2bb)]===_0x5ee098(_0x572371._0x14501)?_0x149d49[_0x5ee098(0x101)]:{},_0x1e4529=[];for(const _0x40e6c3 of _0x4af98b){const _0x3c8a2d=Array[_0x5ee098(0x17c)](_0x3dbc3a[_0x40e6c3])?_0x3dbc3a[_0x40e6c3]:[],_0x17fc2d=_0x3c8a2d[_0x5ee098(0x125)](_0x3a4cc2=>(_0x3a4cc2['hooks']??[])[_0x5ee098(0x125)](_0x53fc36=>(_0x53fc36['command']??'')[_0x5ee098(0x1a4)](_0x343bce)));if(_0x17fc2d)continue;_0x3c8a2d[_0x5ee098(0x1fd)]({'matcher':'*','hooks':[{'type':_0x5ee098(0x112),'command':_0xf25f96}]}),_0x3dbc3a[_0x40e6c3]=_0x3c8a2d,_0x1e4529[_0x5ee098(0x1fd)](_0x40e6c3);}_0x149d49['hooks']=_0x3dbc3a;if(_0x1e4529[_0x5ee098(0x1c0)]===0x0)return{'action':'already-present','newContent':_0xec3984??JSON[_0x5ee098(0x172)](_0x149d49,null,0x2)+'\x0a','added':[]};return{'action':_0x5ee098(0x104),'newContent':JSON[_0x5ee098(_0x572371._0x32804a)](_0x149d49,null,0x2)+'\x0a','added':_0x1e4529};}__name(mergeClaudeHooks,_0x15254e(0x130));var BEGIN=_0x15254e(0x178),END=_0x15254e(0x21a);function mergeClaudeMd(_0x4d57b2,_0x2c4302){const _0x54d87d={_0x34fb92:0x222,_0x4f1447:0x15b,_0x3a3617:0x142,_0x39aa66:0x1c0,_0x1f3c8e:0x1a8},_0x4ffb71=_0x15254e,_0x425578=BEGIN+'\x0a'+_0x2c4302[_0x4ffb71(_0x54d87d._0x34fb92)]()+'\x0a'+END;if(_0x4d57b2===null)return{'action':_0x4ffb71(0x1d2),'newContent':_0x425578+'\x0a'};const _0x3c7fe3=_0x4d57b2[_0x4ffb71(0x158)](BEGIN);if(_0x3c7fe3===-0x1){const _0x2d28d9=_0x4d57b2[_0x4ffb71(_0x54d87d._0x4f1447)]('\x0a')?_0x4d57b2:_0x4d57b2+'\x0a';return{'action':_0x4ffb71(_0x54d87d._0x3a3617),'newContent':_0x2d28d9+'\x0a'+_0x425578+'\x0a'};}const _0x3ae3c0=_0x4d57b2[_0x4ffb71(0x158)](END,_0x3c7fe3);if(_0x3ae3c0===-0x1){const _0x8de883=_0x4d57b2['endsWith']('\x0a')?_0x4d57b2:_0x4d57b2+'\x0a';return{'action':_0x4ffb71(0x142),'newContent':_0x8de883+'\x0a'+_0x425578+'\x0a'};}const _0x192478=_0x4d57b2[_0x4ffb71(0x1b6)](0x0,_0x3c7fe3)+_0x425578+_0x4d57b2[_0x4ffb71(0x1b6)](_0x3ae3c0+END[_0x4ffb71(_0x54d87d._0x39aa66)]);if(_0x192478===_0x4d57b2)return{'action':'already-present','newContent':_0x4d57b2};return{'action':_0x4ffb71(_0x54d87d._0x1f3c8e),'newContent':_0x192478};}__name(mergeClaudeMd,_0x15254e(0x17b));import{appendUniqueLines}from'@unotest/core';var AGENT_LOG_HOOK_EVENTS=['SessionStart',_0x15254e(0x1ce),_0x15254e(0x152),_0x15254e(0x1c6),'PostToolUse',_0x15254e(0x1cb),'Stop',_0x15254e(0x1f1),'SubagentStop',_0x15254e(0x193),'InstructionsLoaded'];function parseArgs(_0x1be821){const _0xeb264d={_0x5349c1:0x1c0,_0x21fcfe:0x114,_0x1ccac0:0x14f,_0x513f5b:0x1e1,_0x48c0ce:0x14e},_0x941f62=_0x15254e;let _0x5a6011=![],_0x539ab2=process[_0x941f62(0x1d8)](),_0x1aba28;for(let _0x795d6e=0x0;_0x795d6e<_0x1be821[_0x941f62(_0xeb264d._0x5349c1)];_0x795d6e++){const _0x58264e=_0x1be821[_0x795d6e];if(_0x58264e===_0x941f62(_0xeb264d._0x21fcfe)||_0x58264e==='-f')_0x5a6011=!![];else{if(_0x58264e==='--browser'){const _0x4b844c=_0x1be821[++_0x795d6e];if(_0x4b844c==='system'||_0x4b844c==='bundled'||_0x4b844c===_0x941f62(_0xeb264d._0x1ccac0))_0x1aba28=_0x4b844c;else throw new Error(_0x941f62(_0xeb264d._0x513f5b)+String(_0x4b844c));}else{if(!_0x58264e[_0x941f62(0x17e)]('-'))_0x539ab2=_0x38cd1e(process['cwd'](),_0x58264e);}}}const _0x3b0055={'cwd':_0x539ab2,'force':_0x5a6011};if(_0x1aba28!==void 0x0)_0x3b0055[_0x941f62(_0xeb264d._0x48c0ce)]=_0x1aba28;return _0x3b0055;}__name(parseArgs,_0x15254e(0x16e));function symbol(_0x259549){const _0x3ed398=_0x15254e;return _0x259549==='ok'?'✓':_0x259549===_0x3ed398(0x1ed)?'⚠':'✗';}__name(symbol,'symbol');function readOwnVersion(){const _0x54abf1={_0x2ca560:0x214,_0xefd7b6:0x1f2,_0x1fecff:0x1a1,_0x54ab4d:0x1c0,_0x10ea88:0x174},_0x4eebd6=_0x15254e,_0x957ec4=_0x2958af(_0x35bde6(import.meta.url)),_0x38ba40=_0x38cd1e(_0x957ec4,_0x4eebd6(_0x54abf1._0x2ca560)),_0x2f7c4c=_0x1fdc2b(_0x38ba40,_0x4eebd6(_0x54abf1._0xefd7b6)),_0xe69518=JSON['parse'](_0x2f7c4c);if(typeof _0xe69518[_0x4eebd6(_0x54abf1._0x1fecff)]!=='string'||_0xe69518[_0x4eebd6(0x1a1)][_0x4eebd6(_0x54abf1._0x54ab4d)]===0x0)throw new Error('package.json\x20at\x20'+_0x38ba40+_0x4eebd6(_0x54abf1._0x10ea88));return _0xe69518['version'];}__name(readOwnVersion,'readOwnVersion');function ensureDir(_0x2ea57b){if(!_0xfd37dc(_0x2ea57b))_0x287bb8(_0x2ea57b,{'recursive':!![]});}__name(ensureDir,_0x15254e(0x188));function writeIfNeeded(_0x280a24,_0x2aac4b,_0x2c8836){const _0xe20042=_0x15254e,_0x107de6=_0xfd37dc(_0x280a24);if(_0x107de6&&!_0x2c8836)return'skipped';return ensureDir(_0x2958af(_0x280a24)),_0x1abceb(_0x280a24,_0x2aac4b),_0x107de6?_0xe20042(0x195):'created';}__name(writeIfNeeded,_0x15254e(0x1bc));function writeIfAbsent(_0x2bbe50,_0x15125c){const _0x61198c={_0x4fa93c:0x16f},_0x3a360f=_0x15254e;if(_0xfd37dc(_0x2bbe50))return _0x3a360f(_0x61198c._0x4fa93c);return ensureDir(_0x2958af(_0x2bbe50)),_0x1abceb(_0x2bbe50,_0x15125c),_0x3a360f(0x1d2);}__name(writeIfAbsent,'writeIfAbsent');async function runInit(_0x111da2){const _0x1bd1e1={_0x18b744:0x1f3,_0x411a1e:0x1f3,_0x56f52e:0x12e,_0x6f1d8a:0x207,_0x461305:0x13b,_0x267656:0x218,_0x87c926:0x121,_0x4b799d:0x1b2,_0x56d454:0x183,_0x1b8626:0x200,_0x1dc39b:0x1d4,_0x4f7c7c:0x1d8,_0x1df00b:0x1fd,_0x2a147f:0x14b,_0x3624b3:0x175,_0x1529b0:0x1fd,_0x163631:0x19d,_0xf14a0b:0x1e2,_0x341fb6:0x1f9,_0xdc7b49:0x1f2,_0x13cf05:0x14c,_0x31486d:0x18b,_0x3ecc3c:0x14c,_0x3853f6:0x16f,_0x496996:0x1d9,_0x9d2073:0x19f,_0x2a2d9f:0x19f,_0x45150f:0x16a,_0x43dd80:0x1fd,_0x5be38a:0x1dc,_0x2682b6:0x180,_0x33f514:0x13b,_0x52d8e0:0x1d7,_0x56c31f:0x13b,_0x452215:0x157,_0x135f9f:0x1c1,_0x4107bd:0x1f9,_0x5b2799:0x14c,_0x259698:0x1af,_0x2bf853:0x1d2,_0x52d51d:0x148,_0x73de11:0x148,_0x402db4:0x11b,_0x4fd438:0x10a,_0x20bbc1:0x13b,_0x23685d:0x209,_0x407a57:0x1af,_0x5d70de:0x148,_0x543f5e:0x189,_0x1393ba:0x143,_0x1aeda2:0x220,_0x228ed8:0x148,_0x4680e3:0x1e4,_0x53b6e4:0x1f6,_0x2f8c74:0x1d1,_0x2a5e98:0x138,_0x416112:0x207,_0x3312e3:0x1f3,_0x14eb21:0x1d8,_0x5f49ef:0x1b1,_0x3e01c0:0x145,_0x55bed5:0x104,_0x453a29:0x13b,_0x37692a:0x16c,_0x5e5764:0x20c,_0x52ece6:0x14a,_0x410abf:0x201,_0x5027f6:0x1e6,_0x267c84:0x13b,_0x9ed40c:0x133,_0xf616d1:0x1c0,_0x38f5ed:0x106},_0x24f09a={_0x48741e:0x18c,_0x48e356:0x16f},_0x2bbbe9=_0x15254e,_0x19edaa=parseArgs(_0x111da2);process[_0x2bbbe9(_0x1bd1e1._0x18b744)]['write'](_0x2bbbe9(0x19a)+_0x19edaa[_0x2bbbe9(0x1d8)]+'\x0a\x0a'),process[_0x2bbbe9(0x1f3)]['write']('Environment:\x0a');const _0x1dc7fc=runEnvironmentChecks({'cwd':_0x19edaa[_0x2bbbe9(0x1d8)]});let _0x5a7c8f=![];for(const _0x30fe9b of _0x1dc7fc){process[_0x2bbbe9(_0x1bd1e1._0x411a1e)][_0x2bbbe9(0x13b)]('\x20\x20'+symbol(_0x30fe9b[_0x2bbbe9(0x121)])+'\x20'+_0x30fe9b[_0x2bbbe9(_0x1bd1e1._0x56f52e)]+':\x20'+_0x30fe9b[_0x2bbbe9(_0x1bd1e1._0x6f1d8a)]+'\x0a');if(_0x30fe9b['detail'])process[_0x2bbbe9(0x1f3)][_0x2bbbe9(_0x1bd1e1._0x461305)]('\x20\x20\x20\x20\x20\x20'+_0x30fe9b[_0x2bbbe9(_0x1bd1e1._0x267656)]+'\x0a');if(_0x30fe9b[_0x2bbbe9(_0x1bd1e1._0x87c926)]===_0x2bbbe9(_0x1bd1e1._0x4b799d))_0x5a7c8f=!![];}if(_0x5a7c8f)return process[_0x2bbbe9(_0x1bd1e1._0x56d454)]['write'](_0x2bbbe9(_0x1bd1e1._0x1b8626)),{'exitCode':0x1};process[_0x2bbbe9(0x1f3)]['write']('\x0aFiles:\x0a');const _0x83165c=[];ensureDir(_0x34b0bd(_0x19edaa['cwd'],_0x2bbbe9(0x1b4)));for(const [_0x1fb551,_0x2db286]of Object[_0x2bbbe9(0x1c5)](templates[_0x2bbbe9(0x1cc)])){_0x83165c[_0x2bbbe9(0x1fd)]({'path':_0x2bbbe9(_0x1bd1e1._0x1dc39b)+_0x1fb551,'status':writeIfNeeded(_0x34b0bd(_0x19edaa[_0x2bbbe9(_0x1bd1e1._0x4f7c7c)],'unotest/e2e/examples',_0x1fb551),_0x2db286,_0x19edaa[_0x2bbbe9(0x1f9)])});}_0x83165c[_0x2bbbe9(_0x1bd1e1._0x1df00b)]({'path':_0x2bbbe9(_0x1bd1e1._0x2a147f),'status':writeIfNeeded(_0x34b0bd(_0x19edaa[_0x2bbbe9(_0x1bd1e1._0x4f7c7c)],_0x2bbbe9(0x14b)),templates[_0x2bbbe9(_0x1bd1e1._0x3624b3)],_0x19edaa['force'])}),_0x83165c[_0x2bbbe9(_0x1bd1e1._0x1529b0)]({'path':_0x2bbbe9(_0x1bd1e1._0x163631),'status':writeIfNeeded(_0x34b0bd(_0x19edaa[_0x2bbbe9(_0x1bd1e1._0x4f7c7c)],'unotest/e2e/_helpers/.gitkeep'),'',_0x19edaa['force'])}),_0x83165c[_0x2bbbe9(0x1fd)]({'path':_0x2bbbe9(0x1e2),'status':writeIfNeeded(_0x34b0bd(_0x19edaa['cwd'],_0x2bbbe9(_0x1bd1e1._0xf14a0b)),templates['agentsMd'],_0x19edaa[_0x2bbbe9(_0x1bd1e1._0x341fb6)])});{const _0x1e9526=_0x34b0bd(_0x19edaa[_0x2bbbe9(_0x1bd1e1._0x4f7c7c)],_0x2bbbe9(0x18b)),_0x292351=_0xfd37dc(_0x1e9526)?_0x1fdc2b(_0x1e9526,_0x2bbbe9(_0x1bd1e1._0xdc7b49)):null,_0x56bb8f=mergeClaudeMd(_0x292351,templates[_0x2bbbe9(0x10d)]);_0x56bb8f[_0x2bbbe9(0x148)]!==_0x2bbbe9(_0x1bd1e1._0x13cf05)&&_0x1abceb(_0x1e9526,_0x56bb8f[_0x2bbbe9(0x1af)]),_0x83165c['push']({'path':_0x2bbbe9(_0x1bd1e1._0x31486d),'status':_0x56bb8f['action']===_0x2bbbe9(_0x1bd1e1._0x3ecc3c)?_0x2bbbe9(_0x1bd1e1._0x3853f6):_0x56bb8f[_0x2bbbe9(0x148)]});}_0x83165c[_0x2bbbe9(0x1fd)]({'path':'unotest/.env.example','status':writeIfNeeded(_0x34b0bd(_0x19edaa[_0x2bbbe9(_0x1bd1e1._0x4f7c7c)],_0x2bbbe9(_0x1bd1e1._0x496996)),templates[_0x2bbbe9(0x1ef)],_0x19edaa[_0x2bbbe9(0x1f9)])}),_0x83165c[_0x2bbbe9(_0x1bd1e1._0x1df00b)]({'path':_0x2bbbe9(_0x1bd1e1._0x9d2073),'status':writeIfAbsent(_0x34b0bd(_0x19edaa[_0x2bbbe9(0x1d8)],_0x2bbbe9(_0x1bd1e1._0x2a2d9f)),templates[_0x2bbbe9(0x1ef)])}),_0x83165c['push']({'path':_0x2bbbe9(0x16a),'status':writeIfAbsent(_0x34b0bd(_0x19edaa[_0x2bbbe9(0x1d8)],_0x2bbbe9(_0x1bd1e1._0x45150f)),templates[_0x2bbbe9(0x1c7)])});const _0x2cbc2c=ensureEditorTypes(_0x19edaa['cwd'],{'force':_0x19edaa[_0x2bbbe9(0x1f9)]});_0x83165c['push']({'path':JSCONFIG_REL,'status':_0x2cbc2c[_0x2bbbe9(0x109)]}),_0x83165c[_0x2bbbe9(_0x1bd1e1._0x43dd80)]({'path':ENV_TYPES_REL,'status':_0x2cbc2c['envTypes']});const _0x1d9031=_0x34b0bd(_0x19edaa[_0x2bbbe9(0x1d8)],_0x2bbbe9(_0x1bd1e1._0x5be38a));_0x83165c[_0x2bbbe9(0x1fd)]({'path':_0x2bbbe9(_0x1bd1e1._0x5be38a),'status':writeIfNeeded(_0x1d9031,unotestConfigMjs(void 0x0),_0x19edaa[_0x2bbbe9(0x1f9)])});const _0x12cbf0=_0x2958af(_0x35bde6(import.meta.url)),_0x57dee3=__name((_0x94e13c,_0x1e5e20)=>{const _0x5d8a51=_0x2bbbe9,_0x5b164f=_0x38cd1e(_0x12cbf0,_0x5d8a51(0x127),_0x94e13c),_0x41884b=_0x34b0bd(_0x19edaa[_0x5d8a51(0x1d8)],_0x94e13c);if(!_0xfd37dc(_0x5b164f))return{'path':_0x94e13c,'status':_0x1e5e20+_0x5d8a51(_0x24f09a._0x48741e)};if(_0xfd37dc(_0x41884b)){if(_0x1fdc2b(_0x41884b,_0x5d8a51(0x1f2))===_0x1fdc2b(_0x5b164f,'utf8'))return{'path':_0x94e13c,'status':_0x5d8a51(_0x24f09a._0x48e356)};return copyFileSync(_0x5b164f,_0x41884b),{'path':_0x94e13c,'status':_0x5d8a51(0x1a8)};}return ensureDir(_0x2958af(_0x41884b)),copyFileSync(_0x5b164f,_0x41884b),{'path':_0x94e13c,'status':_0x5d8a51(0x1d2)};},_0x2bbbe9(0x187));_0x83165c[_0x2bbbe9(_0x1bd1e1._0x1df00b)](_0x57dee3('.claude/skills/write-e2e-test/SKILL.md',_0x2bbbe9(0x154)),_0x57dee3(_0x2bbbe9(0x134),_0x2bbbe9(0x1ff))),_0x83165c[_0x2bbbe9(_0x1bd1e1._0x1529b0)](_0x57dee3(_0x2bbbe9(0x1d5),_0x2bbbe9(0x160)));for(const _0x2a998d of _0x83165c){const _0x1bef4e=_0x2a998d['status']==='created'?_0x2bbbe9(0x1e9):_0x2a998d[_0x2bbbe9(0x180)]===_0x2bbbe9(0x195)?_0x2bbbe9(0x224):_0x2a998d[_0x2bbbe9(0x180)]==='updated'?_0x2bbbe9(0x12b):_0x2a998d[_0x2bbbe9(_0x1bd1e1._0x2682b6)][_0x2bbbe9(0x17e)](_0x2bbbe9(0x16f))?'·\x20skipped':'·\x20'+_0x2a998d[_0x2bbbe9(_0x1bd1e1._0x2682b6)];process[_0x2bbbe9(0x1f3)][_0x2bbbe9(_0x1bd1e1._0x33f514)]('\x20\x20'+_0x1bef4e+'\x20\x20'+_0x2a998d[_0x2bbbe9(_0x1bd1e1._0x52d8e0)]+'\x0a');}process['stdout'][_0x2bbbe9(_0x1bd1e1._0x56c31f)]('\x0aMCP\x20config:\x0a');const _0x17401e=_0x34b0bd(_0x19edaa[_0x2bbbe9(0x1d8)],_0x2bbbe9(0x1d3)),_0x39833f=_0xfd37dc(_0x17401e)?_0x1fdc2b(_0x17401e,'utf8'):null,_0x3453cb=readOwnVersion(),_0x447e07={'command':_0x2bbbe9(_0x1bd1e1._0x452215),'args':['-y','@unotest/web@'+_0x3453cb,_0x2bbbe9(0x1bd)]};try{const _0x2a6a04=mergeMcpConfig(_0x39833f,_0x2bbbe9(_0x1bd1e1._0x135f9f),_0x447e07,{'force':_0x19edaa[_0x2bbbe9(_0x1bd1e1._0x4107bd)]});_0x2a6a04[_0x2bbbe9(0x148)]!==_0x2bbbe9(_0x1bd1e1._0x5b2799)&&_0x1abceb(_0x17401e,_0x2a6a04[_0x2bbbe9(_0x1bd1e1._0x259698)]);const _0x16c1f6=_0x2a6a04[_0x2bbbe9(0x148)]===_0x2bbbe9(_0x1bd1e1._0x2bf853)?'created\x20.mcp.json':_0x2a6a04[_0x2bbbe9(_0x1bd1e1._0x52d51d)]===_0x2bbbe9(0x104)?'added\x20unotest-web\x20entry':_0x2a6a04[_0x2bbbe9(_0x1bd1e1._0x73de11)]===_0x2bbbe9(0x11c)?_0x2bbbe9(_0x1bd1e1._0x402db4):_0x2bbbe9(0x135);process[_0x2bbbe9(0x1f3)][_0x2bbbe9(_0x1bd1e1._0x461305)](_0x2bbbe9(0x138)+_0x16c1f6+'\x0a');}catch(_0x5db234){if(_0x5db234 instanceof McpJsonParseError)return process[_0x2bbbe9(0x183)][_0x2bbbe9(0x13b)](_0x2bbbe9(_0x1bd1e1._0x4fd438)+_0x5db234['message']+'\x0a'),{'exitCode':0x1};throw _0x5db234;}process[_0x2bbbe9(_0x1bd1e1._0x411a1e)][_0x2bbbe9(_0x1bd1e1._0x20bbc1)]('\x0aClaude\x20Code\x20permissions:\x0a');const _0x57be07=_0x34b0bd(_0x19edaa['cwd'],'.claude/settings.json'),_0x2e7d85=_0xfd37dc(_0x57be07)?_0x1fdc2b(_0x57be07,'utf8'):null;try{const _0x331c6d=mergeClaudeAllowEntries(_0x2e7d85,[_0x2bbbe9(_0x1bd1e1._0x23685d)]),_0x5db8dc=_0x2bbbe9(0x111),_0x78b1e0=mergeClaudeHooks(_0x331c6d[_0x2bbbe9(_0x1bd1e1._0x407a57)],AGENT_LOG_HOOK_EVENTS,_0x5db8dc,_0x2bbbe9(0x1fe));(_0x331c6d[_0x2bbbe9(_0x1bd1e1._0x52d51d)]!=='already-present'||_0x78b1e0[_0x2bbbe9(_0x1bd1e1._0x5d70de)]!==_0x2bbbe9(0x14c))&&(ensureDir(_0x2958af(_0x57be07)),_0x1abceb(_0x57be07,_0x78b1e0['newContent']));const _0xc273d5=_0x331c6d['action']===_0x2bbbe9(_0x1bd1e1._0x2bf853)?_0x2bbbe9(_0x1bd1e1._0x543f5e):_0x331c6d['action']==='added'?_0x2bbbe9(_0x1bd1e1._0x1393ba)+_0x331c6d[_0x2bbbe9(0x104)]['join'](',\x20'):_0x2bbbe9(_0x1bd1e1._0x1aeda2);process[_0x2bbbe9(0x1f3)]['write'](_0x2bbbe9(0x138)+_0xc273d5+'\x0a');const _0x19534a=_0x78b1e0[_0x2bbbe9(_0x1bd1e1._0x228ed8)]==='added'?_0x2bbbe9(_0x1bd1e1._0x4680e3)+_0x78b1e0[_0x2bbbe9(0x104)]['length']+_0x2bbbe9(_0x1bd1e1._0x53b6e4):_0x2bbbe9(_0x1bd1e1._0x2f8c74);process[_0x2bbbe9(0x1f3)][_0x2bbbe9(0x13b)](_0x2bbbe9(_0x1bd1e1._0x2a5e98)+_0x19534a+'\x0a');}catch(_0x3b69d2){if(_0x3b69d2 instanceof ClaudeSettingsParseError)return process['stderr'][_0x2bbbe9(_0x1bd1e1._0x461305)](_0x2bbbe9(0x10a)+_0x3b69d2[_0x2bbbe9(_0x1bd1e1._0x416112)]+'\x0a'),{'exitCode':0x1};throw _0x3b69d2;}process[_0x2bbbe9(_0x1bd1e1._0x3312e3)][_0x2bbbe9(_0x1bd1e1._0x461305)](_0x2bbbe9(0x20f));const _0x3fa10b=_0x34b0bd(_0x19edaa[_0x2bbbe9(_0x1bd1e1._0x14eb21)],'.gitignore'),_0x19ae4d=_0xfd37dc(_0x3fa10b)?_0x1fdc2b(_0x3fa10b,'utf8'):null,_0x2878be=appendUniqueLines(_0x19ae4d,[_0x2bbbe9(_0x1bd1e1._0x5f49ef),_0x2bbbe9(_0x1bd1e1._0x3e01c0),_0x2bbbe9(0x102),_0x2bbbe9(0x122),_0x2bbbe9(0x17f),'unotest/.debug*/','unotest/.snapshots/',_0x2bbbe9(0x215),'unotest/.viewer.log',_0x2bbbe9(0x1dd)]);if(_0x2878be['added']['length']>0x0){_0x1abceb(_0x3fa10b,_0x2878be[_0x2bbbe9(0x1af)]);for(const _0x30493f of _0x2878be[_0x2bbbe9(_0x1bd1e1._0x55bed5)]){process[_0x2bbbe9(0x1f3)][_0x2bbbe9(_0x1bd1e1._0x453a29)]('\x20\x20✓\x20added\x20\x22'+_0x30493f+'\x22\x0a');}}for(const _0x42d90b of _0x2878be[_0x2bbbe9(_0x1bd1e1._0x37692a)]){process[_0x2bbbe9(0x1f3)][_0x2bbbe9(0x13b)](_0x2bbbe9(_0x1bd1e1._0x5e5764)+_0x42d90b+'\x22\x0a');}_0x2878be['added'][_0x2bbbe9(0x1c0)]===0x0&&_0x2878be[_0x2bbbe9(0x16c)]['length']===0x0&&process[_0x2bbbe9(0x1f3)]['write']('\x20\x20·\x20no\x20changes\x20needed\x0a');process[_0x2bbbe9(0x1f3)][_0x2bbbe9(0x13b)](_0x2bbbe9(0x168));const _0x1956c5=probeSystemBrowser(),_0xfdfa68=Boolean(process[_0x2bbbe9(_0x1bd1e1._0x52ece6)][_0x2bbbe9(0x177)])&&Boolean(process[_0x2bbbe9(_0x1bd1e1._0x411a1e)][_0x2bbbe9(0x177)]),_0x15c934={'probe':_0x1956c5,'interactive':_0xfdfa68};if(_0x19edaa[_0x2bbbe9(0x14e)])_0x15c934[_0x2bbbe9(_0x1bd1e1._0x410abf)]=_0x19edaa[_0x2bbbe9(0x14e)];const _0x4a5934=await chooseBrowser(_0x15c934);_0x1abceb(_0x1d9031,unotestConfigMjs(_0x4a5934['channel']));const _0x255073=_0x4a5934[_0x2bbbe9(_0x1bd1e1._0x5027f6)]===void 0x0?'no\x20channel\x20set\x20(bundled\x20fallback\x20after\x20install-chromium)':_0x4a5934['channel']===null?_0x2bbbe9(0x179):_0x2bbbe9(0x107)+_0x4a5934[_0x2bbbe9(_0x1bd1e1._0x5027f6)]+'\x27';process[_0x2bbbe9(0x1f3)][_0x2bbbe9(_0x1bd1e1._0x267c84)](_0x2bbbe9(0x15a)+_0x255073+'\x0a'),process['stdout'][_0x2bbbe9(0x13b)](_0x2bbbe9(0x176));if(_0x4a5934[_0x2bbbe9(_0x1bd1e1._0x9ed40c)][_0x2bbbe9(_0x1bd1e1._0xf616d1)]>0x0){for(const _0x12e01c of _0x4a5934[_0x2bbbe9(0x133)])process[_0x2bbbe9(0x1f3)]['write']('\x20\x20'+_0x12e01c+'\x0a');process[_0x2bbbe9(_0x1bd1e1._0x3312e3)]['write']('\x0a');}return process[_0x2bbbe9(0x1f3)][_0x2bbbe9(0x13b)](_0x2bbbe9(_0x1bd1e1._0x38f5ed)),{'exitCode':0x0};}__name(runInit,_0x15254e(0x198));var invokedDirectly2=process[_0x15254e(0x182)][0x1]&&_0x35bde6(import.meta.url)===process['argv'][0x1];invokedDirectly2&&runInit(process['argv']['slice'](0x2))[_0x15254e(0x1ac)](({exitCode:_0x1e5b0a})=>{const _0x1f1ea1={_0x362ab6:0x21c},_0x117896=_0x15254e;process[_0x117896(_0x1f1ea1._0x362ab6)]=_0x1e5b0a;})['catch'](_0xa1d499=>{const _0x42976a={_0x2f37c5:0x183,_0x2b69bf:0x207},_0x4edb2b=_0x15254e;process[_0x4edb2b(_0x42976a._0x2f37c5)]['write'](_0x4edb2b(0x12c)+(_0xa1d499 instanceof Error?_0xa1d499[_0x4edb2b(_0x42976a._0x2b69bf)]:String(_0xa1d499))+'\x0a'),process[_0x4edb2b(0x21c)]=0x1;});export{runInit,templates};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x51b087=_0x5967;(function(_0x1617da,_0x10496e){const _0x20ec06={_0x4fae9e:0x200,_0x67386:0x1eb,_0x5a80c0:0x1f7,_0x3d25ac:0x1f6,_0x30d74c:0x1ee,_0x2bc56c:0x1e5},_0x1c846a=_0x5967,_0x99c48c=_0x1617da();while(!![]){try{const _0x51b79e=parseInt(_0x1c846a(_0x20ec06._0x4fae9e))/0x1*(parseInt(_0x1c846a(0x202))/0x2)+-parseInt(_0x1c846a(_0x20ec06._0x67386))/0x3*(-parseInt(_0x1c846a(0x1e9))/0x4)+parseInt(_0x1c846a(_0x20ec06._0x5a80c0))/0x5*(-parseInt(_0x1c846a(0x1ed))/0x6)+parseInt(_0x1c846a(0x1f9))/0x7*(-parseInt(_0x1c846a(0x1f4))/0x8)+parseInt(_0x1c846a(_0x20ec06._0x3d25ac))/0x9*(parseInt(_0x1c846a(_0x20ec06._0x30d74c))/0xa)+parseInt(_0x1c846a(_0x20ec06._0x2bc56c))/0xb+-parseInt(_0x1c846a(0x1fa))/0xc*(parseInt(_0x1c846a(0x1ef))/0xd);if(_0x51b79e===_0x10496e)break;else _0x99c48c['push'](_0x99c48c['shift']());}catch(_0xdd15e7){_0x99c48c['push'](_0x99c48c['shift']());}}}(_0x4cd8,0xd5d12));var __defProp=Object['defineProperty'],__name=(_0x50618f,_0x509972)=>__defProp(_0x50618f,_0x51b087(0x1f3),{'value':_0x509972,'configurable':!![]});import{spawn}from'child_process';import{createRequire}from'module';import{dirname,resolve}from'path';import{fileURLToPath}from'url';async function installChromium(_0x4029f9={}){const _0x6eb029={_0x1663e5:0x1e7,_0x1557a4:0x1fc},_0x503d9c={_0x5111d8:0x1f2,_0xef44fb:0x1e3,_0x102c56:0x1e6},_0x16a21a=_0x51b087,_0x145705=_0x4029f9['stdoutWrite']??(_0x2dde1f=>process['stdout']['write'](_0x2dde1f)),_0x4da3cd=createRequire(import.meta.url),_0x5a65d7=_0x4da3cd[_0x16a21a(_0x6eb029._0x1663e5)](_0x16a21a(_0x6eb029._0x1557a4)),_0x411dc6=_0x4da3cd(_0x5a65d7),_0x307b4e=typeof _0x411dc6['bin']===_0x16a21a(0x1e2)?_0x411dc6[_0x16a21a(0x1f8)]:_0x411dc6[_0x16a21a(0x1f8)]?.[_0x16a21a(0x1e8)];if(!_0x307b4e)throw new Error(_0x16a21a(0x1fe));const _0x46f786=resolve(dirname(_0x5a65d7),_0x307b4e);return new Promise((_0x93c910,_0x3dc1d9)=>{const _0x2d1822=_0x16a21a,_0x1ebf52=spawn(process[_0x2d1822(_0x503d9c._0x5111d8)],[_0x46f786,'install','chromium'],{'stdio':[_0x2d1822(_0x503d9c._0xef44fb),'pipe','pipe']});_0x1ebf52[_0x2d1822(0x1fb)]?.['on'](_0x2d1822(0x1f5),_0x357381=>_0x145705(_0x357381[_0x2d1822(0x1f0)]())),_0x1ebf52['stderr']?.['on'](_0x2d1822(0x1f5),_0x173bcd=>_0x145705(_0x173bcd[_0x2d1822(0x1f0)]())),_0x1ebf52['on'](_0x2d1822(0x1ec),_0x3dc1d9),_0x1ebf52['on'](_0x2d1822(_0x503d9c._0x102c56),_0x556e96=>{if(_0x556e96===0x0)_0x93c910();else _0x3dc1d9(new Error('chromium\x20download\x20exited\x20with\x20code\x20'+_0x556e96));});});}__name(installChromium,_0x51b087(0x1ea));async function runInstallChromiumCli(){const _0x41103a={_0x16df72:0x1ff},_0x58062e=_0x51b087;try{return await installChromium(),0x0;}catch(_0x2b146a){return process[_0x58062e(_0x41103a._0x16df72)][_0x58062e(0x1e1)]('✗\x20install-chromium:\x20'+(_0x2b146a instanceof Error?_0x2b146a[_0x58062e(0x1f1)]:String(_0x2b146a))+'\x0a'),0x1;}}__name(runInstallChromiumCli,_0x51b087(0x1fd));var invokedDirectly=process[_0x51b087(0x201)][0x1]&&fileURLToPath(import.meta.url)===process[_0x51b087(0x201)][0x1];function _0x4cd8(){const _0x154bc1=['mtu1mLb2yvLiBG','Aw5ZDgfSBenOCM9TAxvT','otG3oujpCvPyCa','zxjYB3i','mJe2mZmWnLvrCvnWzG','mZbAv3jLA20','mtnpBwvcre8','Dg9tDhjPBMC','BwvZC2fNzq','zxHLy1bHDgG','BMfTzq','nte2otq0y05mrNfW','zgf0yq','ntm4mdj1rvjyB2C','nu1pqM90uW','yMLU','ndLsvertyMS','mZmZnduZndHMD3f5A2q','C3rKB3v0','CgXHExDYAwDODc9WywnRywDLlMPZB24','CNvUsw5ZDgfSBenOCM9TAxvTq2XP','CgXHExDYAwDODc9WywnRywDLlMPZB24GAgfZig5VihvZywjSzsaIyMLUiIbMAwvSza','C3rKzxjY','mtCXodK4n0PvuLjZzW','yxjNDG','mLjADNnIza','D3jPDgu','C3rYAw5N','Aw5OzxjPDa','DgHLBG','mtu5odeYotvpAMzKu3O','zxHPDa','CMvZB2X2zq','CgXHExDYAwDODa'];_0x4cd8=function(){return _0x154bc1;};return _0x4cd8();}invokedDirectly&&runInstallChromiumCli()[_0x51b087(0x1e4)](_0x46aa9d=>process[_0x51b087(0x1e6)](_0x46aa9d));function _0x5967(_0x61364b,_0x4b075d){_0x61364b=_0x61364b-0x1e1;const _0x4cd807=_0x4cd8();let _0x5967ac=_0x4cd807[_0x61364b];if(_0x5967['WaSvpT']===undefined){var _0x26bd9b=function(_0xedd333){const _0x23e212='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x50618f='',_0x509972='';for(let _0x4029f9=0x0,_0x145705,_0x4da3cd,_0x5a65d7=0x0;_0x4da3cd=_0xedd333['charAt'](_0x5a65d7++);~_0x4da3cd&&(_0x145705=_0x4029f9%0x4?_0x145705*0x40+_0x4da3cd:_0x4da3cd,_0x4029f9++%0x4)?_0x50618f+=String['fromCharCode'](0xff&_0x145705>>(-0x2*_0x4029f9&0x6)):0x0){_0x4da3cd=_0x23e212['indexOf'](_0x4da3cd);}for(let _0x411dc6=0x0,_0x307b4e=_0x50618f['length'];_0x411dc6<_0x307b4e;_0x411dc6++){_0x509972+='%'+('00'+_0x50618f['charCodeAt'](_0x411dc6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x509972);};_0x5967['oLynqj']=_0x26bd9b,_0x5967['IqXlxh']={},_0x5967['WaSvpT']=!![];}const _0x4496aa=_0x4cd807[0x0],_0x43c9c2=_0x61364b+_0x4496aa,_0x581995=_0x5967['IqXlxh'][_0x43c9c2];return!_0x581995?(_0x5967ac=_0x5967['oLynqj'](_0x5967ac),_0x5967['IqXlxh'][_0x43c9c2]=_0x5967ac):_0x5967ac=_0x581995,_0x5967ac;}export{installChromium,runInstallChromiumCli};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x2098fa=_0x1574;(function(_0x25dc02,_0x53061a){const _0x3166cf={_0x453d14:0xf2,_0x46c01e:0x100,_0x8f9378:0xf1,_0x1de0d6:0x154,_0x3ffa8c:0x14b},_0x32bfbe=_0x1574,_0x3d90bb=_0x25dc02();while(!![]){try{const _0x3f23d8=parseInt(_0x32bfbe(_0x3166cf._0x453d14))/0x1+-parseInt(_0x32bfbe(0xee))/0x2+-parseInt(_0x32bfbe(0x113))/0x3+parseInt(_0x32bfbe(0x139))/0x4+parseInt(_0x32bfbe(_0x3166cf._0x46c01e))/0x5*(parseInt(_0x32bfbe(_0x3166cf._0x8f9378))/0x6)+parseInt(_0x32bfbe(_0x3166cf._0x1de0d6))/0x7*(parseInt(_0x32bfbe(0x12f))/0x8)+-parseInt(_0x32bfbe(_0x3166cf._0x3ffa8c))/0x9;if(_0x3f23d8===_0x53061a)break;else _0x3d90bb['push'](_0x3d90bb['shift']());}catch(_0x379eec){_0x3d90bb['push'](_0x3d90bb['shift']());}}}(_0x4142,0x65bb7));var __defProp=Object[_0x2098fa(0x106)],__name=(_0x199c26,_0x25bff1)=>__defProp(_0x199c26,_0x2098fa(0x10f),{'value':_0x25bff1,'configurable':!![]});import{writeFileSync as _0x231c9c}from'fs';import{join as _0x5c7fb8}from'path';import{fileURLToPath}from'url';function _0x4142(){const _0x37e758=['Dgv4Da','Bg93','DhjHy2u','CNvUswq','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','ChjVBxb0twfYA2rVD24','CgfYC2u','cI0GkIPtDwDNzxn0zwqGywn0Aw9UkIO6iga','BwvZC2fNzq','y29UC29SzuXPBwL0','cK5LEhq6ihbHC3rLigvHy2GGzML4lxbYB21WDc5TzcbPBNrVihLVDxiGteXnignSAwvUDcaOq2XHDwrLienVzguGlWPdDxjZB3iGlYbLDgmUks4GvgHLieXmtsbYzxr1CM5ZigeGDw5PzMLLzcbKAwzMoYbYzxzPzxCGAxqGyw5KigfWCgX5cM1HBNvHBgX5lIbxzsbUzxzLCIbHDxrVlwfWCgX5icHelti1ks4k','ycbPBIbG','C25HChnOB3q','nty5mgjeyvjira','AgfZ','AgLNAa','y3DK','xYHUBYbJB25ZB2XLigvUDhjPzxmGy2fWDhvYzwqPxW','cGOJiYbty2vUyxjPBYbZB3vYy2uGkgXPBMuTBNvTyMvYzwqPcGPGygbQCWO','zgvMAw5LuhjVCgvYDhK','kqOk','cMbGyaOkiYmGtgfZDcbJB25ZB2XLigvUDhjPzxmkcMbGyaO','ChjLCgfYzs1MAxG6ig5VigzHAwX1CMuGyNvUzgXLCYbMB3vUzcb1BMrLCIaUDw5VDgvZDc9MywLSDxjLCY8Uifj1BIbHigzHAwXPBMCGDgvZDcbMAxjZDdSGDgHLigj1BMrSzsbPCYb3CML0DgvUigf1Dg9TyxrPy2fSBhKUcG','AM9PBG','D3jPDgu','C2nYzwvUC2HVDc1LCNjVCI50Ehq','vvjmoIa','zxjYB3i','BMfTzq','zxjY','C2nYzwvUC2HVDc5WBMC','C2XPy2u','nZu2mJa0sMvUyLb0','y29TCg9ZzuzPEfbYB21WDa','ywrKlxDHAxrMB3i','ihrLC3qOCYKGkeqTmJuPcGO','C2v0','zML4lxbYB21WDc5Tza','AgfYlMPZB24','qxnZzxj0Aw9UrxjYB3i','cKnHChr1CMvKoIa','y2HHBMDLlwfZC2vYDgLVBG','C2nLBMfYAw9qyxrO','zMfPBhvYzs5QC29U','cI0GkIPmB2nHDgLVBIOQoIbSAw5Lia','DxrMoa','BwfW','ycdIGjqG','yNvUzgXLrgLY','C3vNz2vZDgvKqwn0Aw9U','y29S','C2nYzwvUC2HVDevYCM9Y','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','C25HChnOB3qUANnVBG','tg9JyxrVCKvYCM9Y','DMfSDwvZ','icbJB25MAwrLBMnLpq','y29UC29Szq','DgvZDezU','ycaOy29UzMLKzw5JztOG','nJG4D2D2qu9P','y29UC29Szs5QC29U','C3rLCeLUzgv4','BMv0D29YAY5QC29U','Bg9JywXLq29TCgfYzq','DgvZDa','DxjS','BgLZDezHAwX1CMvZ','zMfPBhvYzxm','AxneAxjLy3rVCNK','mJe2mJC4og9dy3f4Bq','iYmJifn0ywnRcMbGyaO','DgLTzxn0yw1W','ChvZAa','icdINjCG','zMLSDgvY','DMLKzw8UD2vIBq','iIaOBg9VA2vKigLUia','rxjYB3i','C3rKzxjY','vgLTzw91DevYCM9Y','C2nYzwvUC2HVDfbHDgG','y2vPBa','C3rHCNrZv2L0Aa','DMLKzw9qyxrO','Dg9vChbLCKnHC2u','C291CMnLCW','CMvZB2X2zuj1BMrSzurPCG','mte3mtyXotfgBef3B0K','Dw5RBM93BG','icaGicaG','zxHPDa','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','CMv3CML0zs1ZzwXLy3rVCG','cMbGyaOkiYmGu2vTyw50AwmTre9nihnUyxbZAg90cGO','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','BwvKAxvT','mZC1mtnSvxLktvK','AgfYugf0Aa','C3rKB3v0','zgvMyxvSDezHAwX1CMvZuM9VDa','Bgv2zwW','yNvPBgrqCM9TChrnyxjRzg93BG','yaOTicOQu3rLCcbPBMrLEcOQoIa','BMv0D29YAW','B3v0','cMbGyaO','yxjNDG','mti2otqYohjcqvrqsq','C3rHy2S','BgvUz3rO','nde0nMvPvMPlqq','ode3mZq3AwztzwXt'];_0x4142=function(){return _0x37e758;};return _0x4142();}import{readFileSync as _0x562a15,existsSync as _0x229928}from'fs';import{relative}from'path';import{existsSync,mkdirSync,readFileSync,readdirSync,statSync,writeFileSync}from'fs';function _0x1574(_0x4c06bd,_0x14e8e8){_0x4c06bd=_0x4c06bd-0xe6;const _0x41424c=_0x4142();let _0x15748c=_0x41424c[_0x4c06bd];if(_0x1574['uMJsRV']===undefined){var _0x63bc26=function(_0x22b92d){const _0x159057='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x231c9c='',_0x5c7fb8='';for(let _0x562a15=0x0,_0x229928,_0x199c26,_0x25bff1=0x0;_0x199c26=_0x22b92d['charAt'](_0x25bff1++);~_0x199c26&&(_0x229928=_0x562a15%0x4?_0x229928*0x40+_0x199c26:_0x199c26,_0x562a15++%0x4)?_0x231c9c+=String['fromCharCode'](0xff&_0x229928>>(-0x2*_0x562a15&0x6)):0x0){_0x199c26=_0x159057['indexOf'](_0x199c26);}for(let _0x5f2ab6=0x0,_0x3064c6=_0x231c9c['length'];_0x5f2ab6<_0x3064c6;_0x5f2ab6++){_0x5c7fb8+='%'+('00'+_0x231c9c['charCodeAt'](_0x5f2ab6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c7fb8);};_0x1574['YTnwWX']=_0x63bc26,_0x1574['mtXaWD']={},_0x1574['uMJsRV']=!![];}const _0x3a3372=_0x41424c[0x0],_0x26c5ea=_0x4c06bd+_0x3a3372,_0x55f443=_0x1574['mtXaWD'][_0x26c5ea];return!_0x55f443?(_0x15748c=_0x1574['YTnwWX'](_0x15748c),_0x1574['mtXaWD'][_0x26c5ea]=_0x15748c):_0x15748c=_0x55f443,_0x15748c;}import{join,dirname}from'path';function readFailureBundle(_0x5f2ab6){const _0x2d7385={_0x4bce37:0x11e,_0x3a9206:0x120,_0x1aee63:0x128,_0x2b0910:0x132,_0x3842a7:0xea,_0x3c9621:0x120,_0x3cfa17:0xff,_0x4abd2f:0x144,_0x2c3dea:0x10c,_0x282f83:0x155,_0x31460c:0x147},_0x107909=_0x2098fa;if(!existsSync(_0x5f2ab6))return null;const _0x3064c6=join(_0x5f2ab6,_0x107909(_0x2d7385._0x4bce37));if(!existsSync(_0x3064c6))return null;const _0x1df499=JSON[_0x107909(0xf9)](readFileSync(_0x3064c6,_0x107909(_0x2d7385._0x3a9206))),_0x1ddc6a=join(_0x5f2ab6,_0x107909(0x130)),_0x5a77cd=existsSync(_0x1ddc6a)?JSON[_0x107909(0xf9)](readFileSync(_0x1ddc6a,_0x107909(0x120))):[],_0x4112f7=join(_0x5f2ab6,_0x107909(_0x2d7385._0x1aee63)),_0x44908b=existsSync(_0x4112f7)?JSON[_0x107909(0xf9)](readFileSync(_0x4112f7,'utf8')):void 0x0,_0xf14074={'trace':_0x1df499,'console':_0x5a77cd},_0x4e3c67=join(_0x5f2ab6,_0x107909(_0x2d7385._0x2b0910));existsSync(_0x4e3c67)&&(_0xf14074[_0x107909(_0x2d7385._0x3842a7)]=JSON['parse'](readFileSync(_0x4e3c67,_0x107909(_0x2d7385._0x3c9621))));if(_0x44908b!==void 0x0)_0xf14074[_0x107909(_0x2d7385._0x3cfa17)]=_0x44908b;const _0x5caeb1=join(_0x5f2ab6,_0x107909(0x111));if(existsSync(_0x5caeb1))_0xf14074[_0x107909(_0x2d7385._0x4abd2f)]=_0x5caeb1;else{const _0x26573b=join(_0x5f2ab6,_0x107909(_0x2d7385._0x2c3dea));existsSync(_0x26573b)&&(_0xf14074[_0x107909(0x126)]=readFileSync(_0x26573b,'utf8'));}const _0xe4419b=join(_0x5f2ab6,_0x107909(0x119));if(existsSync(_0xe4419b))_0xf14074[_0x107909(_0x2d7385._0x282f83)]=_0xe4419b;const _0x58b341=join(_0x5f2ab6,_0x107909(0x13f));if(existsSync(_0x58b341))_0xf14074[_0x107909(_0x2d7385._0x31460c)]=_0x58b341;return _0xf14074;}__name(readFailureBundle,'readFailureBundle');function listFailures(_0x5582e8){const _0x320133={_0xa7516f:0x138,_0x2e5fc4:0x11e,_0xff9227:0x13c},_0x2ce460=_0x2098fa;if(!existsSync(_0x5582e8))return[];const _0x4a98ff=[];for(const _0x8c5b00 of readdirSync(_0x5582e8)){const _0xbbd18b=join(_0x5582e8,_0x8c5b00);if(!statSync(_0xbbd18b)[_0x2ce460(_0x320133._0xa7516f)]())continue;for(const _0x36ec4d of readdirSync(_0xbbd18b)){const _0x16a259=join(_0xbbd18b,_0x36ec4d);if(!statSync(_0x16a259)['isDirectory']())continue;const _0x19052a=join(_0x16a259,_0x2ce460(_0x320133._0x2e5fc4));if(!existsSync(_0x19052a))continue;try{const _0x3d90ef=JSON['parse'](readFileSync(_0x19052a,_0x2ce460(0x120)));_0x4a98ff[_0x2ce460(_0x320133._0xff9227)]({'runId':_0x8c5b00,'testFn':_0x3d90ef['testFn'],'scenarioPath':_0x3d90ef[_0x2ce460(0x11d)],'dir':_0x16a259,'timestamp':_0x3d90ef['timestamp']});}catch{}}}return _0x4a98ff['sort']((_0x7d0c05,_0x1d7aff)=>_0x1d7aff[_0x2ce460(0x13b)][_0x2ce460(0x133)](_0x7d0c05[_0x2ce460(0x13b)])),_0x4a98ff;}__name(listFailures,_0x2098fa(0x136));function defaultFailuresRoot(_0x5ceabe=process[_0x2098fa(0x103)]()){const _0x205df9=_0x2098fa;return join(_0x5ceabe,'.unotest',_0x205df9(0x137));}__name(defaultFailuresRoot,_0x2098fa(0xe6));function resolveBundleDir(_0x1aec0,_0x3d6d10){const _0x202c5a={_0x1e010d:0x138},_0x3ab315=_0x2098fa;if(existsSync(_0x1aec0)&&statSync(_0x1aec0)[_0x3ab315(_0x202c5a._0x1e010d)]())return _0x1aec0;return join(_0x3d6d10,_0x1aec0);}__name(resolveBundleDir,_0x2098fa(0x14a));function composeFixPrompt(_0x4c0e8d,_0x47e561={}){const _0x527eb2={_0xdc57af:0x14f,_0x2248e3:0x140,_0x355a95:0x103,_0x8907cf:0xf5,_0xd7f608:0x11d,_0xcafc74:0x120,_0xf8bed3:0xfc,_0x36e57d:0x112,_0x523d67:0x145,_0x33f1c4:0x12c},_0x240987=_0x2098fa,_0x5d0b92=_0x47e561['failuresRoot']??defaultFailuresRoot(),_0x4de3ab=resolveBundleDir(_0x4c0e8d,_0x5d0b92),_0x115691=readFailureBundle(_0x4de3ab);if(!_0x115691)throw new Error(_0x240987(_0x527eb2._0xdc57af)+_0x4c0e8d+_0x240987(_0x527eb2._0x2248e3)+_0x4de3ab+')');const _0x4cf136=_0x47e561[_0x240987(_0x527eb2._0x355a95)]??process[_0x240987(0x103)](),_0xb31420=_0x229928(_0x115691[_0x240987(_0x527eb2._0x8907cf)][_0x240987(_0x527eb2._0xd7f608)])?_0x562a15(_0x115691[_0x240987(0xf5)][_0x240987(0x11d)],_0x240987(_0x527eb2._0xcafc74)):_0x240987(0x152),_0x57a7b6=_0x47e561[_0x240987(_0x527eb2._0xf8bed3)]??0x19,_0x73b62c=_0x115691['console'][_0x240987(_0x527eb2._0x36e57d)](-_0x57a7b6),{suggestedAction:_0x48a52a,confidence:_0x2319d2}=classify(_0x115691),_0x31ec88=buildPromptMarkdown({'bundle':_0x115691,'scenarioSource':_0xb31420,'scenarioRelative':relative(_0x4cf136,_0x115691[_0x240987(0xf5)][_0x240987(_0x527eb2._0xd7f608)]),'consoleTail':_0x73b62c,'suggestedAction':_0x48a52a,'confidence':_0x2319d2}),_0x58cbe7=Math[_0x240987(_0x527eb2._0x523d67)](_0x31ec88['length']/0x4);return{'promptMarkdown':_0x31ec88,'suggestedAction':_0x48a52a,'confidence':_0x2319d2,'sources':{'bundleDir':_0x4de3ab,'scenarioPath':_0x115691[_0x240987(0xf5)][_0x240987(_0x527eb2._0xd7f608)],'consoleEntries':_0x115691[_0x240987(_0x527eb2._0x33f1c4)]['length'],'hasSnapshot':!!_0x115691[_0x240987(0xff)]},'approxTokens':_0x58cbe7};}__name(composeFixPrompt,_0x2098fa(0x114));function classify(_0x5e9c3b){const _0x48b3e7={_0x3f520e:0xf5,_0x52e7f6:0xfb,_0x36bff5:0x10f,_0x5898b3:0x14c,_0xbec0f4:0xf4,_0xbe8c90:0x129,_0x4b4f43:0x150,_0x1c6941:0x115,_0x209c46:0x11c,_0x27e14b:0x102,_0x346c04:0x153},_0x51ff4b=_0x2098fa,_0x1f3dc3=_0x5e9c3b[_0x51ff4b(_0x48b3e7._0x3f520e)][_0x51ff4b(0x10e)][_0x51ff4b(_0x48b3e7._0x52e7f6)]['toLowerCase'](),_0x4a3872=_0x5e9c3b[_0x51ff4b(0xf5)][_0x51ff4b(0x10e)][_0x51ff4b(_0x48b3e7._0x36bff5)]??'';let _0x614706=_0x51ff4b(_0x48b3e7._0x5898b3),_0x3c1c94=_0x51ff4b(_0x48b3e7._0xbec0f4);if(_0x4a3872===_0x51ff4b(_0x48b3e7._0xbe8c90)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i[_0x51ff4b(0x134)](_0x1f3dc3))_0x614706=_0x51ff4b(_0x48b3e7._0x4b4f43),_0x3c1c94=_0x4a3872==='LocatorError'?'high':_0x51ff4b(0x153);else{if(_0x4a3872===_0x51ff4b(0x143)||/timeout|waiting for/i[_0x51ff4b(0x134)](_0x1f3dc3))_0x614706=_0x51ff4b(_0x48b3e7._0x1c6941),_0x3c1c94=_0x4a3872==='TimeoutError'?_0x51ff4b(0x102):_0x51ff4b(0x153);else(_0x4a3872===_0x51ff4b(0x11a)||/asserttext|assertvisible|expected.*got/i['test'](_0x1f3dc3))&&(_0x614706=_0x51ff4b(_0x48b3e7._0x209c46),_0x3c1c94=_0x4a3872==='AssertionError'?_0x51ff4b(_0x48b3e7._0x27e14b):_0x51ff4b(_0x48b3e7._0x346c04));}return{'suggestedAction':_0x614706,'confidence':_0x3c1c94};}__name(classify,'classify');function buildPromptMarkdown(_0xc671b1){const _0x1cb969={_0x239938:0x121,_0x55b526:0x10a,_0x48fb67:0x10d,_0xca3915:0x11b,_0x595da8:0xff,_0xb38a96:0xfe,_0x447e20:0xf5,_0x4ed8a6:0x11f,_0x18ad80:0xf5,_0x30481e:0x125,_0x4ca9cf:0x141,_0x43902e:0x122,_0x3e4b99:0xf5,_0x58814f:0xfb,_0x44f874:0x12e,_0x35193e:0x10e,_0x10d2fd:0xef,_0x21e0ce:0x13a,_0x255eeb:0x10e,_0x166953:0xef,_0x43ff57:0x151,_0x2edac5:0xf7},_0x53a8f7=_0x2098fa,{bundle:_0x4bad3f,scenarioSource:_0x1e923a,scenarioRelative:_0x1b554f,consoleTail:_0x383834,suggestedAction:_0x35e77c,confidence:_0x5ec6e6}=_0xc671b1,_0x26e49f=_0x1e923a['split']('\x0a')[_0x53a8f7(_0x1cb969._0x239938)]((_0x1a63d1,_0xbcf388)=>String(_0xbcf388+0x1)['padStart'](0x3,'\x20')+'\x20\x20'+_0x1a63d1)['join']('\x0a'),_0x88cd47=_0x383834[_0x53a8f7(0xf0)]===0x0?_0x53a8f7(0x104):_0x383834[_0x53a8f7(0x121)](_0xf74ef5=>'['+_0xf74ef5[_0x53a8f7(0x13b)]+']\x20'+_0xf74ef5[_0x53a8f7(0xe7)][_0x53a8f7(0x148)]()+':\x20'+_0xf74ef5[_0x53a8f7(0xf3)])[_0x53a8f7(_0x1cb969._0x55b526)]('\x0a'),_0x2c22fe=_0x4bad3f['snapshot']?_0x53a8f7(_0x1cb969._0x48fb67)+_0x4bad3f[_0x53a8f7(0xff)][_0x53a8f7(0x135)]+_0x53a8f7(_0x1cb969._0xca3915)+_0x4bad3f[_0x53a8f7(_0x1cb969._0x595da8)]['capturedAt']+_0x53a8f7(0x127):'_(no\x20semantic-dom\x20snapshot\x20captured\x20for\x20this\x20failure)_';return'#\x20Test\x20fix\x20request\x0a\x0a##\x20Failure\x20context\x0a\x0a-\x20**Test**:\x20`'+_0x4bad3f[_0x53a8f7(0xf5)]['testFn']+_0x53a8f7(_0x1cb969._0xb38a96)+_0x1b554f+_0x53a8f7(0xe9)+(_0x4bad3f[_0x53a8f7(_0x1cb969._0x447e20)][_0x53a8f7(0x131)]??'?')+_0x53a8f7(_0x1cb969._0x4ed8a6)+_0x4bad3f[_0x53a8f7(_0x1cb969._0x18ad80)]['line']+',\x20col\x20'+_0x4bad3f[_0x53a8f7(0xf5)][_0x53a8f7(_0x1cb969._0x30481e)]+'\x0a-\x20**Error**:\x20`'+(_0x4bad3f[_0x53a8f7(0xf5)][_0x53a8f7(0x10e)][_0x53a8f7(0x10f)]??_0x53a8f7(_0x1cb969._0x4ca9cf))+_0x53a8f7(_0x1cb969._0x43902e)+_0x4bad3f[_0x53a8f7(_0x1cb969._0x3e4b99)]['error'][_0x53a8f7(_0x1cb969._0x58814f)]+_0x53a8f7(0xfa)+_0x35e77c+_0x53a8f7(_0x1cb969._0x44f874)+_0x5ec6e6+_0x53a8f7(0x107)+(_0x4bad3f[_0x53a8f7(_0x1cb969._0x447e20)][_0x53a8f7(_0x1cb969._0x35193e)][_0x53a8f7(_0x1cb969._0x10d2fd)]?_0x53a8f7(_0x1cb969._0x21e0ce)+_0x4bad3f[_0x53a8f7(0xf5)][_0x53a8f7(_0x1cb969._0x255eeb)][_0x53a8f7(_0x1cb969._0x166953)]+_0x53a8f7(0xec):'')+_0x53a8f7(0x105)+_0x26e49f+_0x53a8f7(0x108)+_0x88cd47+_0x53a8f7(_0x1cb969._0x43ff57)+_0x2c22fe+_0x53a8f7(_0x1cb969._0x2edac5);}__name(buildPromptMarkdown,_0x2098fa(0xe8));function runPrepareFix(_0x3cee9e,_0x135d1b={}){const _0x5f15e8={_0x58651e:0x156,_0x3c1a81:0x110,_0x379077:0x142,_0x47ea0c:0x103,_0x18493f:0x13e,_0x9d3996:0x10b,_0x264a3e:0xf0,_0x283ab0:0x101,_0x591d17:0x12d,_0xe1cfbe:0x149,_0x3af520:0x123,_0x2699c6:0x118,_0x406955:0xf8,_0x2972c1:0x14d,_0x2388ee:0x10b,_0x4a48be:0x13d},_0x372555=_0x2098fa,_0x135107=_0x135d1b[_0x372555(0xeb)]??process[_0x372555(_0x5f15e8._0x58651e)],_0x2f7aae=_0x135d1b[_0x372555(_0x5f15e8._0x3c1a81)]??process[_0x372555(_0x5f15e8._0x379077)],_0x4015e5=_0x135d1b[_0x372555(_0x5f15e8._0x47ea0c)]??process['cwd'](),_0x259cb9=_0x3cee9e['includes']('--failing');let _0x4507ac=_0x3cee9e[_0x372555(_0x5f15e8._0x18493f)](_0x2bfd10=>!_0x2bfd10[_0x372555(0x146)]('-'));if(_0x259cb9||_0x4507ac[_0x372555(0xf0)]===0x0){const _0x3631d1=listFailures(defaultFailuresRoot(_0x4015e5));if(_0x3631d1[_0x372555(0xf0)]===0x0)return _0x2f7aae[_0x372555(_0x5f15e8._0x9d3996)](_0x372555(0x109)),0x1;if(_0x4507ac[_0x372555(_0x5f15e8._0x264a3e)]===0x0){const _0x3c0a48=new Map();for(const _0x1b4a6c of _0x3631d1){if(!_0x3c0a48[_0x372555(_0x5f15e8._0x283ab0)](_0x1b4a6c[_0x372555(0x12d)]))_0x3c0a48[_0x372555(0x117)](_0x1b4a6c[_0x372555(_0x5f15e8._0x591d17)],_0x1b4a6c);}_0x4507ac=[..._0x3c0a48[_0x372555(0x12a)]()]['map'](_0x355478=>_0x355478[_0x372555(0xf6)]+'/'+_0x355478[_0x372555(0x12d)]);}}if(_0x4507ac['length']===0x0)return _0x2f7aae[_0x372555(0x10b)]('prepare-fix:\x20no\x20testId\x20provided\x20and\x20no\x20failing\x20tests\x20found.\x0a'),0x1;_0x135107[_0x372555(_0x5f15e8._0x9d3996)]('prepare-fix:\x20composing\x20fix\x20prompts\x20for\x20'+_0x4507ac[_0x372555(0xf0)]+_0x372555(0x116));const _0x9038cb=defaultFailuresRoot(_0x4015e5);for(const _0x5d07b0 of _0x4507ac){try{const _0x28dc2b=composeFixPrompt(_0x5d07b0,{'cwd':_0x4015e5,'failuresRoot':_0x9038cb}),_0xc0cf4c=_0x5c7fb8(_0x28dc2b[_0x372555(_0x5f15e8._0xe1cfbe)][_0x372555(_0x5f15e8._0x3af520)],_0x372555(_0x5f15e8._0x2699c6));_0x231c9c(_0xc0cf4c,_0x28dc2b[_0x372555(_0x5f15e8._0x406955)]),_0x135107['write']('\x20\x20✓\x20'+_0x5d07b0+'\x0a'),_0x135107[_0x372555(0x10b)](_0x372555(_0x5f15e8._0x2972c1)+_0xc0cf4c+'\x0a'),_0x135107[_0x372555(_0x5f15e8._0x2388ee)]('\x20\x20\x20\x20\x20\x20suggestedAction='+_0x28dc2b[_0x372555(0x124)]+_0x372555(0x12b)+_0x28dc2b['confidence']+'\x20\x20~'+_0x28dc2b['approxTokens']+'t\x0a');}catch(_0x567d4d){_0x2f7aae['write'](_0x372555(_0x5f15e8._0x4a48be)+_0x5d07b0+':\x20'+(_0x567d4d instanceof Error?_0x567d4d[_0x372555(0xfb)]:String(_0x567d4d))+'\x0a');}}return _0x135107[_0x372555(0x10b)](_0x372555(0xfd)),0x0;}__name(runPrepareFix,'runPrepareFix');var invokedDirectly=process['argv'][0x1]&&fileURLToPath(import.meta.url)===process[_0x2098fa(0xed)][0x1];if(invokedDirectly){const code=runPrepareFix(process[_0x2098fa(0xed)][_0x2098fa(0x112)](0x2));process[_0x2098fa(0x14e)](code);}export{runPrepareFix};
|
|
1
|
+
function _0x1408(){const _0x1ca50a=['y29UC29SzuXPBwL0','C2nYzwvUC2HVDfbHDgG','BgLZDezHAwX1CMvZ','cGOJiYbty2vUyxjPBYbZB3vYy2uGkgXPBMuTBNvTyMvYzwqPcGPGygbQCWO','y2fWDhvYzwrbDa','C2nYzwvUC2HVDc1LCNjVCI50Ehq','mJaXmJKYAwHezhjo','y29S','BMv0D29YAW','yNvUzgXLrgLY','CgfKu3rHCNq','C2v0','ChjLCgfYzs1MAxG6ignVBxbVC2LUzYbMAxGGChjVBxb0CYbMB3iG','Dg9mB3DLCKnHC2u','mJyXndmWz3DcAK9c','DMLKzw9qyxrO','cI0GkIPtDwDNzxn0zwqGywn0Aw9UkIO6iga','kqOk','icb+','C3rHy2S','y29TCg9ZzuzPEfbYB21WDa','yxbWCM94vg9Rzw5Z','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','ywrKlxDHAxrMB3i','iYmJifn0ywnRcMbGyaO','AM9PBG','ChjLCgfYzs1MAxG6ig5VihrLC3rjzcbWCM92AwrLzcbHBMqGBM8GzMfPBgLUzYb0zxn0CYbMB3vUzc4k','D3jPDgu','iYbuzxn0igzPEcbYzxf1zxn0cGOJiYbgywLSDxjLignVBNrLEhqkcI0GkIPuzxn0kIO6iga','icaGicaG','CgfYC2u','zxjY','C3vNz2vZDgvKqwn0Aw9U','mZi5nZC3n3LcCKHysa','C3bSAxq','BwfW','AgfZ','yaOTicOQu3rLCcbPBMrLEcOQoIa','zxjYB3i','y29UC29Szs5QC29U','lNvUB3rLC3q','AgfYlMPZB24','zML4lxbYB21WDc5Tza','mJeZmdr1Cw5zBgS','cK5LEhq6ihbHC3rLigvHy2GGzML4lxbYB21WDc5TzcbPBNrVihLVDxiGteXnignSAwvUDcaOq2XHDwrLienVzguGlWPdDxjZB3iGlYbLDgmUks4GvgHLieXmtsbYzxr1CM5ZigeGDw5PzMLLzcbKAwzMoYbYzxzPzxCGAxqGyw5KigfWCgX5cM1HBNvHBgX5lIbxzsbUzxzLCIbHDxrVlwfWCgX5icHelti1ks4k','DMfSDwvZ','vgLTzw91DevYCM9Y','CMvHzezHAwX1CMvcDw5KBgu','xYHUBYbJB25ZB2XLigvUDhjPzxmGy2fWDhvYzwqPxW','C25HChnOB3q','C2nYzwvUC2HVDc5WBMC','BgvUz3rO','AgfYugf0Aa','zMfPBhvYzs5QC29U','C25HChnOB3qUANnVBG','y29UC29Szq','AgLNAa','DhjHy2u','C2XPy2u','AxneAxjLy3rVCNK','DgLTzxn0yw1W','ntKYmdK4yuvgCfLl','DgvZDezU','BwvKAxvT','cKnHChr1CMvKoIa','y29UzMLKzw5Jzq','iIaOBg9VA2vKigLUia','DxrMoa','y3DK','vvjmoIa','yxjNDG','DxjS','icaGicaGC3vNz2vZDgvKqwn0Aw9Upq','ycdIGjqG','DgvZDa','ihrLC3qOCYKGkeqTmJuPcGO','BMfTzq','zxHPDa','cMbGyaOkiYmGtgfZDcbJB25ZB2XLigvUDhjPzxmkcMbGyaO','tg9JyxrVCKvYCM9Y','qxnZzxj0Aw9UrxjYB3i','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','BwvZC2fNzq','CNvUuhjLCgfYzuzPEa','C2nYzwvUC2HVDevYCM9Y','icdINjCG','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','mteYntq4nxjLtfrbqq','mtiYmtC5mLnmD0XABW','ChvZAa','zMLSDgvY','xYHUBYbZzw1HBNrPyY1KB20GC25HChnOB3qGy2fWDhvYzwqGzM9YihrOAxmGzMfPBhvYzsLF','BMv0D29YAY5QC29U','C291CMnLCW','DMLKzw8UD2vIBq','y2vPBa','icbJB25MAwrLBMnLpq','y2HHBMDLlwfZC2vYDgLVBG','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','Dw5RBM93BG','cI0GkIPfCNjVCIOQoIbG','cMbGyaO','C2nLBMfYAw9qyxrO','lcbJB2WG'];_0x1408=function(){return _0x1ca50a;};return _0x1408();}const _0x1ab4e8=_0x5cde;(function(_0x2fec66,_0x2e106c){const _0x5661a7={_0x5dc585:0x131,_0x5028d3:0xe6,_0x256c33:0xf8,_0x357c3c:0x129,_0x42c2d3:0x113},_0x21e185=_0x5cde,_0x2eb958=_0x2fec66();while(!![]){try{const _0x148573=parseInt(_0x21e185(_0x5661a7._0x5dc585))/0x1+parseInt(_0x21e185(_0x5661a7._0x5028d3))/0x2+-parseInt(_0x21e185(_0x5661a7._0x256c33))/0x3+parseInt(_0x21e185(_0x5661a7._0x357c3c))/0x4+-parseInt(_0x21e185(0x112))/0x5+-parseInt(_0x21e185(_0x5661a7._0x42c2d3))/0x6+parseInt(_0x21e185(0xdc))/0x7;if(_0x148573===_0x2e106c)break;else _0x2eb958['push'](_0x2eb958['shift']());}catch(_0x25613c){_0x2eb958['push'](_0x2eb958['shift']());}}}(_0x1408,0x28dfd));var __defProp=Object['defineProperty'],__name=(_0x494a3e,_0x4f817e)=>__defProp(_0x494a3e,_0x1ab4e8(0x107),{'value':_0x4f817e,'configurable':!![]});import{writeFileSync as _0x35da0f}from'fs';import{join as _0x56247d}from'path';import{fileURLToPath}from'url';import{readFileSync as _0x386532,existsSync as _0x1eaf7e}from'fs';import{relative}from'path';import{existsSync,mkdirSync,readFileSync,readdirSync,statSync,writeFileSync}from'fs';import{join,dirname}from'path';function readFailureBundle(_0x5cb7c7){const _0x4c622a={_0x3e2de8:0x141,_0x3640e4:0xfe,_0x14499f:0x141,_0x41ae06:0x117,_0x498015:0xed,_0x3d0bf8:0x124,_0x46b3c3:0xe4,_0x4a88df:0xef,_0x262b16:0x132},_0x1577df=_0x1ab4e8;if(!existsSync(_0x5cb7c7))return null;const _0x1efa51=join(_0x5cb7c7,_0x1577df(0xf0));if(!existsSync(_0x1efa51))return null;const _0x1acdea=JSON[_0x1577df(_0x4c622a._0x3e2de8)](readFileSync(_0x1efa51,_0x1577df(_0x4c622a._0x3640e4))),_0x5cd3a3=join(_0x5cb7c7,_0x1577df(0xe2)),_0x2b05e6=existsSync(_0x5cd3a3)?JSON[_0x1577df(_0x4c622a._0x3e2de8)](readFileSync(_0x5cd3a3,_0x1577df(_0x4c622a._0x3640e4))):[],_0x28fbd7=join(_0x5cb7c7,_0x1577df(0xf1)),_0x306d90=existsSync(_0x28fbd7)?JSON[_0x1577df(_0x4c622a._0x14499f)](readFileSync(_0x28fbd7,'utf8')):void 0x0,_0x21b194={'trace':_0x1acdea,'console':_0x2b05e6},_0x224491=join(_0x5cb7c7,_0x1577df(_0x4c622a._0x41ae06));existsSync(_0x224491)&&(_0x21b194[_0x1577df(0x12b)]=JSON[_0x1577df(0x141)](readFileSync(_0x224491,_0x1577df(0xfe))));if(_0x306d90!==void 0x0)_0x21b194[_0x1577df(0xec)]=_0x306d90;const _0x3b4174=join(_0x5cb7c7,_0x1577df(_0x4c622a._0x498015));if(existsSync(_0x3b4174))_0x21b194[_0x1577df(_0x4c622a._0x3d0bf8)]=_0x3b4174;else{const _0x1ae303=join(_0x5cb7c7,_0x1577df(0x128));existsSync(_0x1ae303)&&(_0x21b194[_0x1577df(0x10f)]=readFileSync(_0x1ae303,_0x1577df(_0x4c622a._0x3640e4)));}const _0x48d46f=join(_0x5cb7c7,_0x1577df(_0x4c622a._0x46b3c3));if(existsSync(_0x48d46f))_0x21b194[_0x1577df(_0x4c622a._0x4a88df)]=_0x48d46f;const _0x1fcfc2=join(_0x5cb7c7,_0x1577df(0x119));if(existsSync(_0x1fcfc2))_0x21b194[_0x1577df(_0x4c622a._0x262b16)]=_0x1fcfc2;return _0x21b194;}__name(readFailureBundle,_0x1ab4e8(0xea));function listFailures(_0x4fa6d6){const _0x3bd132={_0x11ba16:0xf6,_0x54a178:0xf6,_0x276cd7:0xf0,_0x9b5cb5:0x114,_0x4db675:0xf9,_0x4e63cf:0x121,_0x4f6cab:0xf7},_0x28fbc8=_0x1ab4e8;if(!existsSync(_0x4fa6d6))return[];const _0x3ecdfa=[];for(const _0x2412d7 of readdirSync(_0x4fa6d6)){const _0x27b2f9=join(_0x4fa6d6,_0x2412d7);if(!statSync(_0x27b2f9)[_0x28fbc8(_0x3bd132._0x11ba16)]())continue;for(const _0x251ef8 of readdirSync(_0x27b2f9)){const _0x2d4a4e=join(_0x27b2f9,_0x251ef8);if(!statSync(_0x2d4a4e)[_0x28fbc8(_0x3bd132._0x54a178)]())continue;const _0x1a2e00=join(_0x2d4a4e,_0x28fbc8(_0x3bd132._0x276cd7));if(!existsSync(_0x1a2e00))continue;try{const _0x4e0817=JSON['parse'](readFileSync(_0x1a2e00,_0x28fbc8(0xfe)));_0x3ecdfa[_0x28fbc8(_0x3bd132._0x9b5cb5)]({'runId':_0x2412d7,'testFn':_0x4e0817[_0x28fbc8(_0x3bd132._0x4db675)],'scenarioPath':_0x4e0817[_0x28fbc8(_0x3bd132._0x4e63cf)],'dir':_0x2d4a4e,'timestamp':_0x4e0817[_0x28fbc8(_0x3bd132._0x4f6cab)]});}catch{}}}return _0x3ecdfa['sort']((_0x30f53e,_0x53f917)=>_0x53f917['timestamp']['localeCompare'](_0x30f53e[_0x28fbc8(0xf7)])),_0x3ecdfa;}__name(listFailures,_0x1ab4e8(0x125));function defaultFailuresRoot(_0x310f75=process[_0x1ab4e8(0xff)]()){const _0x5e8ce0=_0x1ab4e8;return join(_0x310f75,_0x5e8ce0(0xe3),'failures');}__name(defaultFailuresRoot,'defaultFailuresRoot');function resolveBundleDir(_0x28ea25,_0x2e8674){const _0x205ed9=_0x1ab4e8;if(existsSync(_0x28ea25)&&statSync(_0x28ea25)[_0x205ed9(0xf6)]())return _0x28ea25;return join(_0x2e8674,_0x28ea25);}__name(resolveBundleDir,'resolveBundleDir');function composeFixPrompt(_0xc544b6,_0x4f95cb={}){const _0x24a528={_0x11df27:0xff,_0x3d46d8:0x121,_0x2bff74:0x123,_0x57b684:0xf5,_0x419d37:0xec},_0x1bc4b3=_0x1ab4e8,_0x26ccd6=_0x4f95cb['failuresRoot']??defaultFailuresRoot(),_0x16ba7b=resolveBundleDir(_0xc544b6,_0x26ccd6),_0x1a0c7f=readFailureBundle(_0x16ba7b);if(!_0x1a0c7f)throw new Error(_0x1bc4b3(0x10c)+_0xc544b6+_0x1bc4b3(0xfd)+_0x16ba7b+')');const _0x3d687f=_0x4f95cb[_0x1bc4b3(_0x24a528._0x11df27)]??process[_0x1bc4b3(_0x24a528._0x11df27)](),_0x293037=_0x1eaf7e(_0x1a0c7f[_0x1bc4b3(0xf4)][_0x1bc4b3(_0x24a528._0x3d46d8)])?_0x386532(_0x1a0c7f[_0x1bc4b3(0xf4)][_0x1bc4b3(0x121)],_0x1bc4b3(0xfe)):_0x1bc4b3(0x111),_0x287388=_0x4f95cb[_0x1bc4b3(_0x24a528._0x2bff74)]??0x19,_0x177b48=_0x1a0c7f['console'][_0x1bc4b3(_0x24a528._0x57b684)](-_0x287388),{suggestedAction:_0x3009c4,confidence:_0x747ad3}=classify(_0x1a0c7f),_0x4ddea5=buildPromptMarkdown({'bundle':_0x1a0c7f,'scenarioSource':_0x293037,'scenarioRelative':relative(_0x3d687f,_0x1a0c7f['trace'][_0x1bc4b3(_0x24a528._0x3d46d8)]),'consoleTail':_0x177b48,'suggestedAction':_0x3009c4,'confidence':_0x747ad3}),_0x4ac9fd=Math[_0x1bc4b3(0x11a)](_0x4ddea5[_0x1bc4b3(0xee)]/0x4);return{'promptMarkdown':_0x4ddea5,'suggestedAction':_0x3009c4,'confidence':_0x747ad3,'sources':{'bundleDir':_0x16ba7b,'scenarioPath':_0x1a0c7f['trace'][_0x1bc4b3(0x121)],'consoleEntries':_0x1a0c7f[_0x1bc4b3(0xf2)]['length'],'hasSnapshot':!!_0x1a0c7f[_0x1bc4b3(_0x24a528._0x419d37)]},'approxTokens':_0x4ac9fd};}__name(composeFixPrompt,_0x1ab4e8(0x137));function _0x5cde(_0x4d7dc5,_0x275cac){_0x4d7dc5=_0x4d7dc5-0xda;const _0x1408af=_0x1408();let _0x5cde4a=_0x1408af[_0x4d7dc5];if(_0x5cde['isLYPr']===undefined){var _0x103f34=function(_0x248fbe){const _0x2f797d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x35da0f='',_0x56247d='';for(let _0x386532=0x0,_0x1eaf7e,_0x494a3e,_0x4f817e=0x0;_0x494a3e=_0x248fbe['charAt'](_0x4f817e++);~_0x494a3e&&(_0x1eaf7e=_0x386532%0x4?_0x1eaf7e*0x40+_0x494a3e:_0x494a3e,_0x386532++%0x4)?_0x35da0f+=String['fromCharCode'](0xff&_0x1eaf7e>>(-0x2*_0x386532&0x6)):0x0){_0x494a3e=_0x2f797d['indexOf'](_0x494a3e);}for(let _0x5cb7c7=0x0,_0x1efa51=_0x35da0f['length'];_0x5cb7c7<_0x1efa51;_0x5cb7c7++){_0x56247d+='%'+('00'+_0x35da0f['charCodeAt'](_0x5cb7c7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56247d);};_0x5cde['TptsOO']=_0x103f34,_0x5cde['lFDFig']={},_0x5cde['isLYPr']=!![];}const _0x227554=_0x1408af[0x0],_0x321acb=_0x4d7dc5+_0x227554,_0x24c121=_0x5cde['lFDFig'][_0x321acb];return!_0x24c121?(_0x5cde4a=_0x5cde['TptsOO'](_0x5cde4a),_0x5cde['lFDFig'][_0x321acb]=_0x5cde4a):_0x5cde4a=_0x24c121,_0x5cde4a;}function classify(_0x531523){const _0x222a75={_0x5b9ad1:0x10d,_0x27a405:0xf4,_0x13aab6:0x107,_0x3dec4f:0x10a,_0x4444b9:0x105,_0x5abe61:0x13a,_0x508d50:0x11c,_0x526ce2:0x10b,_0x22c939:0xfa},_0x2c8bfe=_0x1ab4e8,_0x8a0074=_0x531523[_0x2c8bfe(0xf4)][_0x2c8bfe(0xe1)][_0x2c8bfe(_0x222a75._0x5b9ad1)][_0x2c8bfe(0x130)](),_0x4241e8=_0x531523[_0x2c8bfe(_0x222a75._0x27a405)]['error'][_0x2c8bfe(_0x222a75._0x13aab6)]??'';let _0x208908=_0x2c8bfe(0x11e),_0x53e5eb='low';if(_0x4241e8===_0x2c8bfe(_0x222a75._0x3dec4f)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i[_0x2c8bfe(0x105)](_0x8a0074))_0x208908='rewrite-selector',_0x53e5eb=_0x4241e8===_0x2c8bfe(0x10a)?_0x2c8bfe(0xf3):'medium';else{if(_0x4241e8===_0x2c8bfe(0xe9)||/timeout|waiting for/i[_0x2c8bfe(_0x222a75._0x4444b9)](_0x8a0074))_0x208908=_0x2c8bfe(_0x222a75._0x5abe61),_0x53e5eb=_0x4241e8===_0x2c8bfe(0xe9)?_0x2c8bfe(0xf3):'medium';else(_0x4241e8===_0x2c8bfe(0x10b)||/asserttext|assertvisible|expected.*got/i[_0x2c8bfe(0x105)](_0x8a0074))&&(_0x208908=_0x2c8bfe(_0x222a75._0x508d50),_0x53e5eb=_0x4241e8===_0x2c8bfe(_0x222a75._0x526ce2)?_0x2c8bfe(0xf3):_0x2c8bfe(_0x222a75._0x22c939));}return{'suggestedAction':_0x208908,'confidence':_0x53e5eb};}__name(classify,'classify');function buildPromptMarkdown(_0x5df34b){const _0x2e92ca={_0x23e001:0xde,_0x2a803d:0xeb,_0x394f1d:0x13c,_0x5699b0:0x102,_0x2f7be8:0x127,_0xd900ea:0x13f,_0x19b580:0xf4,_0x4cf0af:0xf9,_0x467738:0x12a,_0x201846:0x11f,_0x307ca6:0xe1,_0x4a295c:0x134,_0x45e6b2:0x136,_0x4dde65:0x13b,_0x5af060:0x126,_0x223303:0x109,_0x26c46a:0x11d},_0x35f14c=_0x1ab4e8,{bundle:_0x5c7786,scenarioSource:_0x29f562,scenarioRelative:_0x10c4ef,consoleTail:_0x32629a,suggestedAction:_0x2f49b6,confidence:_0x2cf3a6}=_0x5df34b,_0x4b936b=_0x29f562[_0x35f14c(0xdd)]('\x0a')[_0x35f14c(_0x2e92ca._0x23e001)]((_0x1586e6,_0x27c536)=>String(_0x27c536+0x1)[_0x35f14c(0x12d)](0x3,'\x20')+'\x20\x20'+_0x1586e6)['join']('\x0a'),_0x130612=_0x32629a['length']===0x0?_0x35f14c(_0x2e92ca._0x2a803d):_0x32629a[_0x35f14c(_0x2e92ca._0x23e001)](_0x7ee5ed=>'['+_0x7ee5ed[_0x35f14c(0xf7)]+']\x20'+_0x7ee5ed['level']['toUpperCase']()+':\x20'+_0x7ee5ed['text'])[_0x35f14c(_0x2e92ca._0x394f1d)]('\x0a'),_0x4a88fb=_0x5c7786['snapshot']?_0x35f14c(0x100)+_0x5c7786[_0x35f14c(0xec)][_0x35f14c(_0x2e92ca._0x5699b0)]+_0x35f14c(0xfb)+_0x5c7786['snapshot'][_0x35f14c(_0x2e92ca._0x2f7be8)]+_0x35f14c(0x139):_0x35f14c(0x116);return _0x35f14c(_0x2e92ca._0xd900ea)+_0x5c7786[_0x35f14c(_0x2e92ca._0x19b580)][_0x35f14c(_0x2e92ca._0x4cf0af)]+'`\x20in\x20`'+_0x10c4ef+_0x35f14c(0xe0)+(_0x5c7786[_0x35f14c(0xf4)]['stepIndex']??'?')+'\x0a-\x20**Location**:\x20line\x20'+_0x5c7786[_0x35f14c(0xf4)]['line']+_0x35f14c(0x122)+_0x5c7786[_0x35f14c(_0x2e92ca._0x19b580)][_0x35f14c(_0x2e92ca._0x467738)]+_0x35f14c(_0x2e92ca._0x201846)+(_0x5c7786[_0x35f14c(0xf4)][_0x35f14c(_0x2e92ca._0x307ca6)]['name']??'Error')+_0x35f14c(0x104)+_0x5c7786[_0x35f14c(_0x2e92ca._0x19b580)][_0x35f14c(_0x2e92ca._0x307ca6)]['message']+_0x35f14c(0x133)+_0x2f49b6+'`\x20(confidence:\x20'+_0x2cf3a6+_0x35f14c(_0x2e92ca._0x4a295c)+(_0x5c7786[_0x35f14c(_0x2e92ca._0x19b580)][_0x35f14c(_0x2e92ca._0x307ca6)][_0x35f14c(_0x2e92ca._0x45e6b2)]?_0x35f14c(_0x2e92ca._0x4dde65)+_0x5c7786['trace'][_0x35f14c(0xe1)][_0x35f14c(0x136)]+_0x35f14c(0x120):'')+_0x35f14c(_0x2e92ca._0x5af060)+_0x4b936b+_0x35f14c(_0x2e92ca._0x223303)+_0x130612+'\x0a```\x0a\x0a##\x20Semantic-DOM\x20snapshot\x0a\x0a'+_0x4a88fb+_0x35f14c(_0x2e92ca._0x26c46a);}__name(buildPromptMarkdown,'buildPromptMarkdown');function runPrepareFix(_0x1371fc,_0x4ef09d={}){const _0x118bcd={_0x1ed527:0xda,_0xdda683:0xee,_0x294227:0x13e,_0xe4d280:0x106,_0x97b450:0x118,_0x35e1ec:0x12c,_0x27e0bd:0x13e,_0xc4d2fc:0x140,_0x18f77a:0x13e,_0x317e80:0xfc,_0x21a66a:0x13e},_0x5765de=_0x1ab4e8,_0x4f80c6=_0x4ef09d['out']??process['stdout'],_0x44ef02=_0x4ef09d[_0x5765de(_0x118bcd._0x1ed527)]??process['stderr'],_0x3acba6=_0x4ef09d[_0x5765de(0xff)]??process[_0x5765de(0xff)](),_0x434ccd=_0x1371fc['includes']('--failing');let _0x2684b7=_0x1371fc[_0x5765de(0x115)](_0x32252f=>!_0x32252f['startsWith']('-'));if(_0x434ccd||_0x2684b7['length']===0x0){const _0x45d0e6=listFailures(defaultFailuresRoot(_0x3acba6));if(_0x45d0e6[_0x5765de(_0x118bcd._0xdda683)]===0x0)return _0x44ef02[_0x5765de(_0x118bcd._0x294227)]('prepare-fix:\x20no\x20failure\x20bundles\x20found\x20under\x20.unotest/failures/.\x20Run\x20a\x20failing\x20test\x20first;\x20the\x20bundle\x20is\x20written\x20automatically.\x0a'),0x1;if(_0x2684b7[_0x5765de(0xee)]===0x0){const _0x35a551=new Map();for(const _0x17ed5f of _0x45d0e6){if(!_0x35a551[_0x5765de(0xdf)](_0x17ed5f[_0x5765de(0xf9)]))_0x35a551[_0x5765de(0x12e)](_0x17ed5f[_0x5765de(0xf9)],_0x17ed5f);}_0x2684b7=[..._0x35a551[_0x5765de(0xe8)]()][_0x5765de(0xde)](_0x47e989=>_0x47e989['runId']+'/'+_0x47e989[_0x5765de(0xf9)]);}}if(_0x2684b7['length']===0x0)return _0x44ef02[_0x5765de(_0x118bcd._0x294227)](_0x5765de(0x13d)),0x1;_0x4f80c6[_0x5765de(0x13e)](_0x5765de(0x12f)+_0x2684b7[_0x5765de(0xee)]+_0x5765de(_0x118bcd._0xe4d280));const _0x45eafe=defaultFailuresRoot(_0x3acba6);for(const _0x57aa54 of _0x2684b7){try{const _0xdfbc93=composeFixPrompt(_0x57aa54,{'cwd':_0x3acba6,'failuresRoot':_0x45eafe}),_0x344013=_0x56247d(_0xdfbc93[_0x5765de(_0x118bcd._0x97b450)][_0x5765de(_0x118bcd._0x35e1ec)],_0x5765de(0xe5));_0x35da0f(_0x344013,_0xdfbc93['promptMarkdown']),_0x4f80c6[_0x5765de(0x13e)]('\x20\x20✓\x20'+_0x57aa54+'\x0a'),_0x4f80c6[_0x5765de(_0x118bcd._0x27e0bd)](_0x5765de(_0x118bcd._0xc4d2fc)+_0x344013+'\x0a'),_0x4f80c6[_0x5765de(_0x118bcd._0x18f77a)](_0x5765de(0x103)+_0xdfbc93[_0x5765de(0xdb)]+_0x5765de(0x11b)+_0xdfbc93[_0x5765de(_0x118bcd._0x317e80)]+_0x5765de(0x135)+_0xdfbc93[_0x5765de(0x138)]+'t\x0a');}catch(_0x5aa1a6){_0x44ef02['write'](_0x5765de(0x110)+_0x57aa54+':\x20'+(_0x5aa1a6 instanceof Error?_0x5aa1a6['message']:String(_0x5aa1a6))+'\x0a');}}return _0x4f80c6[_0x5765de(_0x118bcd._0x21a66a)](_0x5765de(0xe7)),0x0;}__name(runPrepareFix,_0x1ab4e8(0x10e));var invokedDirectly=process[_0x1ab4e8(0x101)][0x1]&&fileURLToPath(import.meta.url)===process[_0x1ab4e8(0x101)][0x1];if(invokedDirectly){const code=runPrepareFix(process[_0x1ab4e8(0x101)][_0x1ab4e8(0xf5)](0x2));process[_0x1ab4e8(0x108)](code);}export{runPrepareFix};
|