@unotest/web 0.14.0 → 0.15.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.
@@ -1 +1 @@
1
- const _0x1be1fa=_0x3cda;(function(_0xc6ce67,_0x51b890){const _0x56418d={_0xc8c0f5:0x10e,_0x1de007:0x121,_0x2ecd8e:0x119,_0x52169b:0x100},_0x439b23=_0x3cda,_0x3db6e8=_0xc6ce67();while(!![]){try{const _0x1fd977=parseInt(_0x439b23(0xff))/0x1+-parseInt(_0x439b23(_0x56418d._0xc8c0f5))/0x2*(-parseInt(_0x439b23(0x116))/0x3)+parseInt(_0x439b23(0xfa))/0x4*(parseInt(_0x439b23(0x104))/0x5)+-parseInt(_0x439b23(0x11b))/0x6*(-parseInt(_0x439b23(_0x56418d._0x1de007))/0x7)+-parseInt(_0x439b23(0xfc))/0x8*(-parseInt(_0x439b23(_0x56418d._0x2ecd8e))/0x9)+-parseInt(_0x439b23(_0x56418d._0x52169b))/0xa*(-parseInt(_0x439b23(0x120))/0xb)+-parseInt(_0x439b23(0xf3))/0xc;if(_0x1fd977===_0x51b890)break;else _0x3db6e8['push'](_0x3db6e8['shift']());}catch(_0x45e8d0){_0x3db6e8['push'](_0x3db6e8['shift']());}}}(_0x2130,0x3bc06));var __defProp=Object[_0x1be1fa(0xf8)],__name=(_0x44b610,_0x19031a)=>__defProp(_0x44b610,_0x1be1fa(0x109),{'value':_0x19031a,'configurable':!![]});import{execFileSync}from'child_process';import{existsSync}from'fs';function _0x3cda(_0x27f2ef,_0x48ed73){_0x27f2ef=_0x27f2ef-0xf0;const _0x2130f0=_0x2130();let _0x3cda1=_0x2130f0[_0x27f2ef];if(_0x3cda['qhRCJC']===undefined){var _0x373e63=function(_0x386ad2){const _0x273c3d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x44b610='',_0x19031a='';for(let _0x3fa2c4=0x0,_0x1debf4,_0x349eec,_0x2f444d=0x0;_0x349eec=_0x386ad2['charAt'](_0x2f444d++);~_0x349eec&&(_0x1debf4=_0x3fa2c4%0x4?_0x1debf4*0x40+_0x349eec:_0x349eec,_0x3fa2c4++%0x4)?_0x44b610+=String['fromCharCode'](0xff&_0x1debf4>>(-0x2*_0x3fa2c4&0x6)):0x0){_0x349eec=_0x273c3d['indexOf'](_0x349eec);}for(let _0x364a1b=0x0,_0x1b1843=_0x44b610['length'];_0x364a1b<_0x1b1843;_0x364a1b++){_0x19031a+='%'+('00'+_0x44b610['charCodeAt'](_0x364a1b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x19031a);};_0x3cda['DiUoyR']=_0x373e63,_0x3cda['tXIUPU']={},_0x3cda['qhRCJC']=!![];}const _0x70d37c=_0x2130f0[0x0],_0x2c4981=_0x27f2ef+_0x70d37c,_0x4987f3=_0x3cda['tXIUPU'][_0x2c4981];return!_0x4987f3?(_0x3cda1=_0x3cda['DiUoyR'](_0x3cda1),_0x3cda['tXIUPU'][_0x2c4981]=_0x3cda1):_0x3cda1=_0x4987f3,_0x3cda1;}function probeSystemBrowser(){const _0x29e4e1={_0xa82f1:0x101},_0x5de311=_0x1be1fa;for(const _0x3fa2c4 of[probeChrome,probeEdge,probeChromeBeta]){const _0x1debf4=_0x3fa2c4();if(_0x1debf4[_0x5de311(_0x29e4e1._0xa82f1)]!==null)return _0x1debf4;}return{'channel':null};}__name(probeSystemBrowser,_0x1be1fa(0xfb));function _0x2130(){const _0x4b19c1=['y2HYB21PDw0TyNjVD3nLCG','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','mtG4nJuZmJbPtwrNvKq','r29Vz2XLienOCM9TzsbczxrH','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','zgvMAw5LuhjVCgvYDhK','ChjVyMvdAhjVBwu','mJm1mJrIAgDOswO','ChjVyMvtExn0zw1cCM93C2vY','mty2odbxEK5bwxO','zMLYC3rfEgLZDgLUz1bHDgG','BgvUz3rO','ndGXodiXy3HmEM5l','nduZmhnMs1Puyq','y2HHBM5LBa','r29Vz2XLienOCM9Tzq','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','mZeWyK5xCvbM','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','D2HPy2G','BMfTzq','CgXHDgzVCM0','BwLJCM9ZB2z0lwvKz2u','y2HYB21L','D2HPy2HpzG','ndHduMDqsgW','zgfYD2LU','y2HYB21PDw0','twLJCM9ZB2z0ievKz2u','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','D2LUmZi','ChjVyMvdAhjVBwvczxrH','DxrMoa','ntq0mtrtBfngvMK','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','mtG5seXpwwTn','z29Vz2XLlwnOCM9Tzq','nM5Zt1zMAq','zw52','te9dquXbufbeqvrb','uhjVz3jHBuzPBgvZ','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','mtm5n1rJuvPQuG','mZaZnJq2n0vpu2XStq','uhjVz3jHBuzPBgvZkhG4nIK','l3vZCI9IAw4Vy2HYB21PDw0','ChjVyMvfzgDL','BxnLzgDL'];_0x2130=function(){return _0x4b19c1;};return _0x2130();}function probeChrome(){const _0x290f68={_0x3af76f:0x102},_0x2f0753=_0x1be1fa,_0x349eec=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x349eec)return{'channel':_0x2f0753(0x10c),'path':_0x349eec,'label':_0x2f0753(_0x290f68._0x3af76f)};return{'channel':null};}__name(probeChrome,_0x1be1fa(0xf9));function probeEdge(){const _0x161ddf={_0x1076a2:0xf0,_0x37382b:0x111},_0x5e4971=_0x1be1fa,_0x2f444d=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x2f444d)return{'channel':_0x5e4971(_0x161ddf._0x1076a2),'path':_0x2f444d,'label':_0x5e4971(_0x161ddf._0x37382b)};return{'channel':null};}__name(probeEdge,_0x1be1fa(0x124));function probeChromeBeta(){const _0x24aaf7=_0x1be1fa,_0x364a1b=firstExistingPath(CHROME_BETA_PATHS);if(_0x364a1b)return{'channel':'chrome-beta','path':_0x364a1b,'label':_0x24aaf7(0xf4)};return{'channel':null};}__name(probeChromeBeta,_0x1be1fa(0x114));var CHROME_PATHS=((()=>{const _0x2620db={_0x2a48e6:0x113,_0x48fb0d:0x11c,_0x154431:0x11d,_0x6142fe:0x11f},_0x284c9a=_0x1be1fa;switch(process['platform']){case _0x284c9a(0x10f):return[_0x284c9a(0xf5)];case _0x284c9a(_0x2620db._0x2a48e6):return[process['env']['ProgramFiles']+_0x284c9a(0xf6),process[_0x284c9a(0x11c)][_0x284c9a(0x122)]+_0x284c9a(0xf6),process[_0x284c9a(_0x2620db._0x48fb0d)][_0x284c9a(_0x2620db._0x154431)]+_0x284c9a(0xf6)];default:return[_0x284c9a(0x118),_0x284c9a(0x112),'/snap/bin/google-chrome',_0x284c9a(0x123),_0x284c9a(_0x2620db._0x6142fe)];}})()),CHROME_BIN_NAMES=[_0x1be1fa(0x11a),'google-chrome-stable',_0x1be1fa(0x110),_0x1be1fa(0xf1)],EDGE_PATHS=((()=>{const _0x3cb720={_0x4594fb:0x10a,_0x58a70d:0x10f,_0x2e3268:0x113,_0x649967:0x11e,_0x5341be:0x11c,_0x40ba71:0x122},_0x16a353=_0x1be1fa;switch(process[_0x16a353(_0x3cb720._0x4594fb)]){case _0x16a353(_0x3cb720._0x58a70d):return[_0x16a353(0x106)];case _0x16a353(_0x3cb720._0x2e3268):return[process[_0x16a353(0x11c)][_0x16a353(_0x3cb720._0x649967)]+_0x16a353(0xf2),process[_0x16a353(_0x3cb720._0x5341be)][_0x16a353(_0x3cb720._0x40ba71)]+_0x16a353(0xf2)];default:return[_0x16a353(0x103),_0x16a353(0x107)];}})()),EDGE_BIN_NAMES=[_0x1be1fa(0x10b),'microsoft-edge-stable'],CHROME_BETA_PATHS=((()=>{const _0x3a53fd={_0x2b12c9:0x10a,_0x5b8c26:0x10f,_0xdd4f46:0x117,_0x4ed6ae:0xf7},_0x5a3270=_0x1be1fa;switch(process[_0x5a3270(_0x3a53fd._0x2b12c9)]){case _0x5a3270(_0x3a53fd._0x5b8c26):return[_0x5a3270(_0x3a53fd._0xdd4f46)];case _0x5a3270(0x113):return[process['env'][_0x5a3270(0x11e)]+_0x5a3270(0x105)];default:return[_0x5a3270(_0x3a53fd._0x4ed6ae)];}})());function firstExistingPath(_0x1b1843){for(const _0x4b07d0 of _0x1b1843){if(!_0x4b07d0||_0x4b07d0['startsWith']('undefined'))continue;if(existsSync(_0x4b07d0))return _0x4b07d0;}return null;}__name(firstExistingPath,_0x1be1fa(0xfd));function whichOf(_0x26f217){const _0x96c5ae={_0xcc4d1:0x108,_0x1e9172:0xfe},_0x592055=_0x1be1fa;if(process[_0x592055(0x10a)]==='win32')return void 0x0;for(const _0xf133ed of _0x26f217){try{const _0x42338d=execFileSync(_0x592055(_0x96c5ae._0xcc4d1),[_0xf133ed],{'encoding':_0x592055(0x115)})['trim']();if(_0x42338d[_0x592055(_0x96c5ae._0x1e9172)]>0x0&&existsSync(_0x42338d))return _0x42338d;}catch{}}return void 0x0;}__name(whichOf,_0x1be1fa(0x10d));export{probeSystemBrowser};
1
+ const _0x5eb6a0=_0x2dd8;(function(_0x283651,_0x171222){const _0x144e59={_0x839d1d:0x16b,_0x26b692:0x179,_0x4ebba3:0x15c,_0x2c32f6:0x184},_0x158807=_0x2dd8,_0x158651=_0x283651();while(!![]){try{const _0x1a8eb7=-parseInt(_0x158807(0x17e))/0x1*(-parseInt(_0x158807(0x167))/0x2)+-parseInt(_0x158807(0x163))/0x3+parseInt(_0x158807(0x17a))/0x4*(parseInt(_0x158807(_0x144e59._0x839d1d))/0x5)+-parseInt(_0x158807(_0x144e59._0x26b692))/0x6*(-parseInt(_0x158807(0x16c))/0x7)+parseInt(_0x158807(0x169))/0x8+-parseInt(_0x158807(_0x144e59._0x4ebba3))/0x9+-parseInt(_0x158807(_0x144e59._0x2c32f6))/0xa;if(_0x1a8eb7===_0x171222)break;else _0x158651['push'](_0x158651['shift']());}catch(_0x40f157){_0x158651['push'](_0x158651['shift']());}}}(_0x56bd,0x7307b));var __defProp=Object['defineProperty'],__name=(_0x39e92e,_0x2b3b55)=>__defProp(_0x39e92e,_0x5eb6a0(0x183),{'value':_0x2b3b55,'configurable':!![]});function _0x56bd(){const _0x511fe3=['DhjPBq','uhjVz3jHBuzPBgvZkhG4nIK','mtG3nJCZuKncyKLJ','zMLYC3rfEgLZDgLUz1bHDgG','y2HHBM5LBa','l3vZCI9IAw4Vy2HYB21PDw0','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','BMfTzq','mta4ndu0odb5vhDyALu','ChjVyMvtExn0zw1cCM93C2vY','twLJCM9ZB2z0ievKz2u','BgvUz3rO','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','Dw5KzwzPBMvK','mJyYnte4m2T5ugnxsq','y2HYB21PDw0TyNjVD3nLCG','zw52','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','D2LUmZi','ChjVyMvdAhjVBwu','zgfYD2LU','mta5mdC0CuzYAhPS','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','mtbRDKjhBNu','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','ndmXodmYoeT3D2Puta','y2HYB21PDw0','nw9fq2DXua','mte2mJu1m0fiDuXxva','BwLJCM9ZB2z0lwvKz2u','CgXHDgzVCM0','r29Vz2XLienOCM9TzsbczxrH','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','te9dquXbufbeqvrb','y2HYB21LlwjLDge','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','uhjVz3jHBuzPBgvZ','r29Vz2XLienOCM9Tzq','C3rHCNrZv2L0Aa','ChjVyMvfzgDL','nMLzCeDcsW','otu4mdG0qNnmwxvJ','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL'];_0x56bd=function(){return _0x511fe3;};return _0x56bd();}import{execFileSync}from'child_process';function _0x2dd8(_0x63247e,_0x4feb5d){_0x63247e=_0x63247e-0x15c;const _0x56bd01=_0x56bd();let _0x2dd81e=_0x56bd01[_0x63247e];if(_0x2dd8['toskRh']===undefined){var _0x12fdae=function(_0xe75aa2){const _0x5d3e29='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x39e92e='',_0x2b3b55='';for(let _0x519764=0x0,_0x297cd7,_0x1a412d,_0x27fc97=0x0;_0x1a412d=_0xe75aa2['charAt'](_0x27fc97++);~_0x1a412d&&(_0x297cd7=_0x519764%0x4?_0x297cd7*0x40+_0x1a412d:_0x1a412d,_0x519764++%0x4)?_0x39e92e+=String['fromCharCode'](0xff&_0x297cd7>>(-0x2*_0x519764&0x6)):0x0){_0x1a412d=_0x5d3e29['indexOf'](_0x1a412d);}for(let _0x32f89d=0x0,_0x42d022=_0x39e92e['length'];_0x32f89d<_0x42d022;_0x32f89d++){_0x2b3b55+='%'+('00'+_0x39e92e['charCodeAt'](_0x32f89d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2b3b55);};_0x2dd8['sqxVLd']=_0x12fdae,_0x2dd8['LGwqWx']={},_0x2dd8['toskRh']=!![];}const _0x574fb=_0x56bd01[0x0],_0x53c230=_0x63247e+_0x574fb,_0x3ee217=_0x2dd8['LGwqWx'][_0x53c230];return!_0x3ee217?(_0x2dd81e=_0x2dd8['sqxVLd'](_0x2dd81e),_0x2dd8['LGwqWx'][_0x53c230]=_0x2dd81e):_0x2dd81e=_0x3ee217,_0x2dd81e;}import{existsSync}from'fs';function probeSystemBrowser(){const _0x596ee1=_0x5eb6a0;for(const _0x519764 of[probeChrome,probeEdge,probeChromeBeta]){const _0x297cd7=_0x519764();if(_0x297cd7[_0x596ee1(0x180)]!==null)return _0x297cd7;}return{'channel':null};}__name(probeSystemBrowser,_0x5eb6a0(0x185));function probeChrome(){const _0x5b6855=_0x5eb6a0,_0x1a412d=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x1a412d)return{'channel':'chrome','path':_0x1a412d,'label':_0x5b6855(0x176)};return{'channel':null};}__name(probeChrome,_0x5eb6a0(0x161));function probeEdge(){const _0xb67e5b=_0x5eb6a0,_0x27fc97=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x27fc97)return{'channel':'msedge','path':_0x27fc97,'label':_0xb67e5b(0x186)};return{'channel':null};}__name(probeEdge,_0x5eb6a0(0x178));function probeChromeBeta(){const _0xf0a04b=_0x5eb6a0,_0x32f89d=firstExistingPath(CHROME_BETA_PATHS);if(_0x32f89d)return{'channel':_0xf0a04b(0x172),'path':_0x32f89d,'label':_0xf0a04b(0x16f)};return{'channel':null};}__name(probeChromeBeta,'probeChromeBeta');var CHROME_PATHS=((()=>{const _0x302783={_0x43258b:0x162,_0x19c216:0x15e,_0x324b85:0x170,_0x3185f7:0x170},_0x29f2e9=_0x5eb6a0;switch(process['platform']){case _0x29f2e9(_0x302783._0x43258b):return['/Applications/Google\x20Chrome.app/Contents/MacOS/Google\x20Chrome'];case'win32':return[process[_0x29f2e9(_0x302783._0x19c216)][_0x29f2e9(0x175)]+_0x29f2e9(_0x302783._0x324b85),process[_0x29f2e9(_0x302783._0x19c216)][_0x29f2e9(0x17d)]+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe',process[_0x29f2e9(0x15e)][_0x29f2e9(0x171)]+_0x29f2e9(_0x302783._0x3185f7)];default:return[_0x29f2e9(0x164),_0x29f2e9(0x166),'/snap/bin/google-chrome',_0x29f2e9(0x181),'/usr/bin/chromium-browser'];}})()),CHROME_BIN_NAMES=['google-chrome',_0x5eb6a0(0x182),_0x5eb6a0(0x16a),_0x5eb6a0(0x15d)],EDGE_PATHS=((()=>{const _0x3c833b={_0x310324:0x16e,_0x5e1829:0x162,_0xdb763f:0x160,_0x5ab9e0:0x175,_0x34d326:0x15e,_0x54842e:0x17d,_0xee64b8:0x174,_0x152189:0x188},_0x238ab1=_0x5eb6a0;switch(process[_0x238ab1(_0x3c833b._0x310324)]){case _0x238ab1(_0x3c833b._0x5e1829):return[_0x238ab1(0x165)];case _0x238ab1(_0x3c833b._0xdb763f):return[process['env'][_0x238ab1(_0x3c833b._0x5ab9e0)]+_0x238ab1(0x174),process[_0x238ab1(_0x3c833b._0x34d326)][_0x238ab1(_0x3c833b._0x54842e)]+_0x238ab1(_0x3c833b._0xee64b8)];default:return[_0x238ab1(0x168),_0x238ab1(_0x3c833b._0x152189)];}})()),EDGE_BIN_NAMES=[_0x5eb6a0(0x16d),_0x5eb6a0(0x17b)],CHROME_BETA_PATHS=((()=>{const _0x4af543={_0x49e2e8:0x173},_0x57b850=_0x5eb6a0;switch(process[_0x57b850(0x16e)]){case'darwin':return[_0x57b850(0x15f)];case _0x57b850(0x160):return[process['env'][_0x57b850(0x175)]+_0x57b850(_0x4af543._0x49e2e8)];default:return['/usr/bin/google-chrome-beta'];}})());function firstExistingPath(_0x42d022){const _0x123712={_0xa2f2a:0x177},_0x2ecc03=_0x5eb6a0;for(const _0x40a9ad of _0x42d022){if(!_0x40a9ad||_0x40a9ad[_0x2ecc03(_0x123712._0xa2f2a)](_0x2ecc03(0x189)))continue;if(existsSync(_0x40a9ad))return _0x40a9ad;}return null;}__name(firstExistingPath,_0x5eb6a0(0x17f));function whichOf(_0x50afb0){const _0x565a46=_0x5eb6a0;if(process['platform']==='win32')return void 0x0;for(const _0x5280a2 of _0x50afb0){try{const _0x1040ff=execFileSync('which',[_0x5280a2],{'encoding':'utf8'})[_0x565a46(0x17c)]();if(_0x1040ff[_0x565a46(0x187)]>0x0&&existsSync(_0x1040ff))return _0x1040ff;}catch{}}return void 0x0;}__name(whichOf,'whichOf');export{probeSystemBrowser};
@@ -1 +1 @@
1
- function _0x64b2(_0x29e094,_0x2f7b95){_0x29e094=_0x29e094-0x166;const _0x3f9723=_0x3f97();let _0x64b28d=_0x3f9723[_0x29e094];if(_0x64b2['xeLspr']===undefined){var _0x36f363=function(_0xf22976){const _0x311d58='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x422609='',_0x2417c2='';for(let _0x175d1c=0x0,_0x5b2105,_0x310b6b,_0x47ebf9=0x0;_0x310b6b=_0xf22976['charAt'](_0x47ebf9++);~_0x310b6b&&(_0x5b2105=_0x175d1c%0x4?_0x5b2105*0x40+_0x310b6b:_0x310b6b,_0x175d1c++%0x4)?_0x422609+=String['fromCharCode'](0xff&_0x5b2105>>(-0x2*_0x175d1c&0x6)):0x0){_0x310b6b=_0x311d58['indexOf'](_0x310b6b);}for(let _0xc849c1=0x0,_0x46ce7d=_0x422609['length'];_0xc849c1<_0x46ce7d;_0xc849c1++){_0x2417c2+='%'+('00'+_0x422609['charCodeAt'](_0xc849c1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2417c2);};_0x64b2['qauWqa']=_0x36f363,_0x64b2['qKAuyP']={},_0x64b2['xeLspr']=!![];}const _0x474d31=_0x3f9723[0x0],_0x5dc87e=_0x29e094+_0x474d31,_0x214129=_0x64b2['qKAuyP'][_0x5dc87e];return!_0x214129?(_0x64b28d=_0x64b2['qauWqa'](_0x64b28d),_0x64b2['qKAuyP'][_0x5dc87e]=_0x64b28d):_0x64b28d=_0x214129,_0x64b28d;}const _0x385b15=_0x64b2;(function(_0x5196d5,_0x214df9){const _0x5895ba={_0x21eb3b:0x1eb,_0x44ba54:0x1f0,_0x792919:0x1e8,_0x557c93:0x1cf,_0x33f238:0x1ed,_0x2e903b:0x223},_0x2bce0b=_0x64b2,_0x23ecc3=_0x5196d5();while(!![]){try{const _0x3341fc=-parseInt(_0x2bce0b(_0x5895ba._0x21eb3b))/0x1+parseInt(_0x2bce0b(0x1b0))/0x2*(parseInt(_0x2bce0b(_0x5895ba._0x44ba54))/0x3)+-parseInt(_0x2bce0b(_0x5895ba._0x792919))/0x4*(-parseInt(_0x2bce0b(_0x5895ba._0x557c93))/0x5)+-parseInt(_0x2bce0b(0x25e))/0x6+-parseInt(_0x2bce0b(0x256))/0x7+-parseInt(_0x2bce0b(_0x5895ba._0x33f238))/0x8+-parseInt(_0x2bce0b(0x17d))/0x9*(-parseInt(_0x2bce0b(_0x5895ba._0x2e903b))/0xa);if(_0x3341fc===_0x214df9)break;else _0x23ecc3['push'](_0x23ecc3['shift']());}catch(_0x8afc50){_0x23ecc3['push'](_0x23ecc3['shift']());}}}(_0x3f97,0x8ff37));var __defProp=Object[_0x385b15(0x234)],__name=(_0x47ebf9,_0xc849c1)=>__defProp(_0x47ebf9,_0x385b15(0x197),{'value':_0xc849c1,'configurable':!![]});import{copyFileSync,existsSync as _0x422609,mkdirSync,readFileSync,writeFileSync}from'fs';import{dirname as _0x2417c2,join,resolve as _0x175d1c}from'path';import{fileURLToPath as _0x5b2105}from'url';import{existsSync as _0x310b6b}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){for(const _0x46ce7d of[probeChrome,probeEdge,probeChromeBeta]){const _0x2b48a7=_0x46ce7d();if(_0x2b48a7['channel']!==null)return _0x2b48a7;}return{'channel':null};}__name(probeSystemBrowser,_0x385b15(0x244));function probeChrome(){const _0x52aa63={_0x10f27f:0x184},_0x159363=_0x385b15,_0xeba7a8=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0xeba7a8)return{'channel':_0x159363(_0x52aa63._0x10f27f),'path':_0xeba7a8,'label':'Google\x20Chrome'};return{'channel':null};}__name(probeChrome,_0x385b15(0x192));function probeEdge(){const _0x3842c0={_0x44a9de:0x249},_0x5c45bd=_0x385b15,_0x5a6d7a=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x5a6d7a)return{'channel':_0x5c45bd(0x1cc),'path':_0x5a6d7a,'label':_0x5c45bd(_0x3842c0._0x44a9de)};return{'channel':null};}__name(probeEdge,_0x385b15(0x1e9));function probeChromeBeta(){const _0x262d5e={_0x2ce422:0x233},_0x31fa73=_0x385b15,_0x170da4=firstExistingPath(CHROME_BETA_PATHS);if(_0x170da4)return{'channel':_0x31fa73(_0x262d5e._0x2ce422),'path':_0x170da4,'label':'Google\x20Chrome\x20Beta'};return{'channel':null};}__name(probeChromeBeta,_0x385b15(0x191));var CHROME_PATHS=((()=>{const _0x26918b={_0x34d84b:0x1de,_0x21308e:0x18c,_0x21dd3a:0x1ad,_0x245b9d:0x1ae,_0x25492c:0x168,_0x596479:0x1ec},_0x2a6445=_0x385b15;switch(process['platform']){case'darwin':return[_0x2a6445(_0x26918b._0x34d84b)];case'win32':return[process[_0x2a6445(0x1ad)][_0x2a6445(_0x26918b._0x21308e)]+_0x2a6445(0x1d3),process[_0x2a6445(_0x26918b._0x21dd3a)][_0x2a6445(_0x26918b._0x245b9d)]+_0x2a6445(0x1d3),process['env']['LOCALAPPDATA']+_0x2a6445(0x1d3)];default:return[_0x2a6445(0x26a),_0x2a6445(_0x26918b._0x25492c),_0x2a6445(0x263),_0x2a6445(_0x26918b._0x596479),_0x2a6445(0x1dc)];}})()),CHROME_BIN_NAMES=[_0x385b15(0x24b),_0x385b15(0x218),_0x385b15(0x259),_0x385b15(0x24f)],EDGE_PATHS=((()=>{const _0x136abc={_0x1bb036:0x21e,_0x51663e:0x22d,_0x1c094a:0x1a2,_0x300884:0x217,_0x6fadd4:0x253},_0x4de57d=_0x385b15;switch(process['platform']){case _0x4de57d(_0x136abc._0x1bb036):return[_0x4de57d(0x19b)];case _0x4de57d(_0x136abc._0x51663e):return[process[_0x4de57d(0x1ad)][_0x4de57d(0x18c)]+_0x4de57d(_0x136abc._0x1c094a),process[_0x4de57d(0x1ad)][_0x4de57d(0x1ae)]+_0x4de57d(_0x136abc._0x1c094a)];default:return[_0x4de57d(_0x136abc._0x300884),_0x4de57d(_0x136abc._0x6fadd4)];}})()),EDGE_BIN_NAMES=[_0x385b15(0x1ff),'microsoft-edge-stable'],CHROME_BETA_PATHS=((()=>{const _0x421d2a={_0x95ae10:0x18c},_0x27dbe2=_0x385b15;switch(process['platform']){case _0x27dbe2(0x21e):return[_0x27dbe2(0x1fb)];case'win32':return[process[_0x27dbe2(0x1ad)][_0x27dbe2(_0x421d2a._0x95ae10)]+_0x27dbe2(0x1d6)];default:return[_0x27dbe2(0x1ac)];}})());function firstExistingPath(_0x2bb289){const _0x5d7444={_0x47077d:0x21a,_0x3d6f5d:0x1d4},_0x4f8be7=_0x385b15;for(const _0x1c8250 of _0x2bb289){if(!_0x1c8250||_0x1c8250[_0x4f8be7(_0x5d7444._0x47077d)](_0x4f8be7(_0x5d7444._0x3d6f5d)))continue;if(existsSync(_0x1c8250))return _0x1c8250;}return null;}__name(firstExistingPath,_0x385b15(0x1fe));function whichOf(_0xadc315){const _0x25d46f={_0x2c39db:0x209,_0x4d102e:0x166},_0x2bbfe9=_0x385b15;if(process['platform']===_0x2bbfe9(0x22d))return void 0x0;for(const _0x1f9742 of _0xadc315){try{const _0x18771a=execFileSync(_0x2bbfe9(_0x25d46f._0x2c39db),[_0x1f9742],{'encoding':_0x2bbfe9(0x260)})[_0x2bbfe9(_0x25d46f._0x4d102e)]();if(_0x18771a[_0x2bbfe9(0x18f)]>0x0&&existsSync(_0x18771a))return _0x18771a;}catch{}}return void 0x0;}__name(whichOf,_0x385b15(0x1a9));function runEnvironmentChecks(_0x10c258={}){const _0x49770a={_0x4c2fa8:0x1ab},_0x3d706b=_0x385b15,_0xe6b7f3=_0x10c258[_0x3d706b(0x1ab)]??process[_0x3d706b(_0x49770a._0x4c2fa8)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0xe6b7f3)];}__name(runEnvironmentChecks,_0x385b15(0x1df));function checkNodeVersion(){const _0x1715a1={_0x2396bf:0x19a,_0x16b9aa:0x225},_0x2eaa7d=_0x385b15,_0x261b68=process[_0x2eaa7d(_0x1715a1._0x2396bf)][_0x2eaa7d(0x17f)],_0x548832=Number(_0x261b68[_0x2eaa7d(_0x1715a1._0x16b9aa)]('.')[0x0]);if(!Number[_0x2eaa7d(0x1f5)](_0x548832)||_0x548832<0x14)return{'name':_0x2eaa7d(0x1c7),'severity':_0x2eaa7d(0x18a),'message':_0x2eaa7d(0x251)+_0x261b68+')','detail':'Install\x20Node\x2020+\x20via\x20nvm\x20/\x20fnm\x20/\x20volta\x20and\x20re-run.'};return{'name':_0x2eaa7d(0x1c7),'severity':'ok','message':_0x261b68};}__name(checkNodeVersion,_0x385b15(0x22a));function checkSystemBrowser(){const _0x2e13d1={_0xb62300:0x16a},_0x3852e4=_0x385b15,_0x52f093=probeSystemBrowser();if(_0x52f093[_0x3852e4(0x1bb)]!==null)return{'name':_0x3852e4(0x25c),'severity':'ok','message':_0x52f093[_0x3852e4(0x21b)]+_0x3852e4(0x232),'detail':_0x52f093['path']};return{'name':'System\x20browser','severity':_0x3852e4(_0x2e13d1._0xb62300),'message':_0x3852e4(0x24d),'detail':_0x3852e4(0x222)};}__name(checkSystemBrowser,_0x385b15(0x1bc));function checkWritableCwd(_0x485841){const _0x3eb0d2={_0x513d6b:0x213,_0x193e6a:0x190},_0x2fdc15=_0x385b15;if(!_0x310b6b(_0x485841))return{'name':_0x2fdc15(_0x3eb0d2._0x513d6b),'severity':_0x2fdc15(0x18a),'message':_0x2fdc15(0x1f8)+_0x485841+_0x2fdc15(_0x3eb0d2._0x193e6a),'detail':'Create\x20the\x20directory\x20or\x20run\x20init\x20in\x20an\x20existing\x20project\x20root.'};return{'name':'Target\x20directory','severity':'ok','message':_0x485841};}__name(checkWritableCwd,_0x385b15(0x1b1));var templates={'scenarioTemplate':_0x385b15(0x16f),'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':_0x385b15(0x1c3),'examples':{'01-smoke.js':_0x385b15(0x1c2),'02-form-fill.js':_0x385b15(0x212)},'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 _0x3f97(){const _0xdbd655=['CgfYC2vbCMDZ','tM9Kzs5QCYb2zxjZAw9U','BwvYz2vdBgf1zgvnza','yxjNDG','EwvZ','CMvZB2X2zq','BxnLzgDL','C3LZDgvT','u3vIywDLBNrtDgfYDa','mZvOCM5Wque','B3zLCNDYB3rLihvUB3rLC3qTD2vIigvUDhj5','ChjVBxb0wwvZtM8','icbvC2uGAw5ZDgfSBgvKia','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','Dw5KzwzPBMvK','C2XPy2u','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','CgXHExDYAwDODc9WywnRywDLlMPZB24','Aw5KzxHpzG','B25fBMq','Aw5ZDgfSBenOCM9TAxvT','CNvUsw5ZDgfSBenOCM9TAxvTq2XP','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','zM9Yy2u','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','CNvUrw52AxjVBM1LBNrdAgvJA3m','uhjLq29TCgfJDa','lMnSyxvKzs9ZA2LSBhmVD3jPDguTztjLlxrLC3qTz3jVDw5Kl1nlsuXmlM1K','C3rYAw5N','ywrKzwqGywDLBNqTDhjHy2uGAg9VA3mGka','C2TPBgWGkgDYB3vUzcK','icaGigLUC3rHBgWGq2HYB21LigzYB20GAhr0Chm6lY93D3CUz29Vz2XLlMnVBs9JAhjVBwu','ihnVDxjJzsbTAxnZAw5NiokaLcbWywnRywDLigLUC3rHBgWGyNvNpW','Dw5VDgvZDc8UC2vJCMv0CW','mJmZoda0Dg5Ksun0','ChjVyMvfzgDL','B3zLCNDYB3rL','mtG2ntLRuKjkzNu','l3vZCI9IAw4Vy2HYB21PDw0','nZuXnJm1mLvlBLPnAW','C3rKzxjY','B25eyxrH','mtj3ALvoveq','zgv0ywLS','icbsDw4Gyg5WEcbaDw5VDgvZDc93zwiGAw5ZDgfSBc1JAhjVBwL1BwaGDg8Gzg93BMXVywqGDgHLigj1BMrSzwqGzMfSBgjHy2SS','zxHPDa','lMDPDgLNBM9Yzq','AxngAw5PDgu','Dw5VDgvZDc5JB25MAwCUBwPZ','Dw5VDgvZDc13zwiGAw5PDcdIHPiG','DgfYz2v0ia','C3rKB3v0v3jPDgu','zMLUAxnO','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','y3jLyxrLza','ywrKzwq','zMLYC3rfEgLZDgLUz1bHDgG','BwLJCM9ZB2z0lwvKz2u','D2fYBMLUz3m','icdINjmGywrKzwqGiG','C2nLBMfYAw9uzw1WBgf0zq','ywXYzwfKEsbWCMvZzw50','ls1MB3jJzq','BM9Uzq','ifTzl25Dia','y2HHBM5LBdOGjW','C3rYAw5NAwz5','D2HPy2G','lI4VlI4V','DMvYC2LVBG','B3zLCNjPzgu','Dw5VDgvZDc13zwi','lNvUB3rLC3qV','zgf0yq','BwvYz2vny3bdB25MAwC','BMv3q29UDgvUDa','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','vgfYz2v0igrPCMvJDg9YEq','icdINjmG','y3jLyxrLzcaUBwnWlMPZB24','ChvZAa','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','zw50CMLLCW','C3rHCNrZv2L0Aa','BgfIzwW','q2XHDwrLu2v0DgLUz3nqyxjZzuvYCM9Y','igf0ia','zgfYD2LU','BwnWu2vYDMvYCW','cI5NAxrPz25VCMu6cG','ywXYzwfKEvbYzxnLBNq','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','mZbWsKjuDfi','cKnSyxvKzsbdB2rLihbLCM1PC3nPB25ZoGO','C3bSAxq','uhjLvg9VBfvZzq','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWO','BwvYz2vdBgf1zgvbBgXVD0vUDhjPzxm','DgHLBG','y2HLy2ToB2rLvMvYC2LVBG','zw52rxHHBxbSzq','u2vZC2LVBLn0yxj0','D2LUmZi','y3jLyxrLzcaUy2XHDwrLl3nLDhrPBMDZlMPZB24GkgfSBg93oIbTy3bFx3vUB3rLC3qTD2vIkq','yMLU','Dw5VDgvZDc9LmMuVx2HLBhbLCNmVlMDPDgTLzxa','Dg9mB3DLCKnHC2u','igzVDw5K','y2HYB21LlwjLDge','zgvMAw5LuhjVCgvYDhK','u2vZC2LVBKvUza','qhvUB3rLC3qVD2vIqa','ls1ICM93C2vYigv4CgvJDhmGC3LZDgvTFgj1BMrSzwr8BM9UzsWGz290ia','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','zw5ZDxjLrgLY','CgXHExDYAwDODa','icbjBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4GAw5PDc4','4PQGie5VigjYB3DZzxiGy29UzMLNDxjLzc4GuNvUig9UzsbVzIbIzwzVCMuGzMLYC3qGDgvZDdO','icaGigLUC3rHBgWGq2HYB21LoIaGAhr0Chm6lY93D3CUz29Vz2XLlMnVBs9JAhjVBwu','DxbKyxrLza','y2f0y2G','CNvUsw5PDa','Cgf0Aa','ywXSB3C','Dw5VDgvZDc8UC25HChnOB3rZlW','ChjVyMvtExn0zw1cCM93C2vY','BwvYz2vdBgf1zgviB29RCW','ug9ZDfrVB2XvC2vgywLSDxjL','4PYxigLUC3rHBgWTy2HYB21PDw06ia','icdINjmGDw5VDgvZDc5JB25MAwCUBwPZia','twLJCM9ZB2z0ievKz2u','ywn0Aw9U','z29Vz2XLlwnOCM9Tzq','sw5ZDhj1y3rPB25Ztg9HzgvK','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','D3jPDgvjzKfIC2vUDa','y2HYB21PDw0TyNjVD3nLCG','BwnW','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','y29WEvbHy2THz2vgAwXL','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','C3LTyM9S','q0XbvurflM1K','ntaWodeWmujyBNbVwq','zxHPDenVzgu','y2XHDwrLtwrcB2r5','y2HYB21PDw0','u3rVCa','BNb4','u3LZDgvTigjYB3DZzxi','cIaGtM8GC3LZDgvTienOCM9TzsaVievKz2uGlYbdAhjVBwL1BsbKzxrLy3rLzc4k','ntK5mda0nM9iEvP1sW','Dw5VDgvZDenVBMzPz01QCW','DxrMoa','CgLWzq','yMfZAcaIjhTdtefvrevFufjpsKvdvf9esvj9lY5JBgf1zguVAg9VA3mVBg9NlwfNzw50lNnOiIaIjhTdtefvrevFufjpsKvdvf9esvj9l3vUB3rLC3qVlMrLyNvNl2fNzw50l2fJDgLVBNmUANnVBMWI','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','lMnSyxvKzs9ZA2LSBhmVD3jPDguTztjLlxrLC3qVu0TjteWUBwq','twnWsNnVBLbHCNnLrxjYB3i','ug9ZDfrVB2XvC2u','y2HVB3nLqNjVD3nLCG','Dw5VDgvZDc9LmMuVx3rLBxbSyxrLlMPZ','C3rHDhvZ','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','Dw5VDgvZDc8UCNvUCYOV','4PYxic0TyNjVD3nLCIbZExn0zw0GyNv0ig5VienOCM9TzsaVievKz2uGlYbdAhjVBwL1BsbMB3vUzcbVBIb0AgLZig1Hy2HPBMuU','DhjPBq','BwvZC2fNzq','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','y2HHBM5LBdOGBNvSBcaOyNvUzgXLzcbJAhjVBwL1BsK','D2fYBMLUzW','CMvTB3zLtgLZDgvUzxi','Dw5VDgvZDc8Uzw52kG','BM9Kzv9TB2r1BgvZlW','pceTlsb1BM90zxn0oMvUzcaTlt4','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k','icdIGkiGuNvUigfUigv4yw1WBguGywDHAw5ZDcb0AguGCgXHEwDYB3vUzdOkicaGicaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdeTC21VA2ukicdIGkiGtgLUDcb5B3vYihnJzw5HCMLVCZOkicaGicaGBNb4ieb1BM90zxn0l3DLyIbSAw50cIaG4OcIifDYAxrLigeGDgvZDdOGB3bLBIbdBgf1zguGq29KzsbOzxjLigfUzcbHC2SG4OcuigL0igzVBgXVD3mGDgHLcIaGicaGihDYAxrLlwuYzs10zxn0ihnRAwXSigfUzcbKCML2zxmGDgHLihvUB3rLC3qTD2vIie1ducbZzxj2zxiUcIaGicaGicGUBwnWlMPZB24GkYbdtefvreuUBwqVquDftLrtlM1KihDLCMuGANvZDcb3AxjLzcbMB3iGEw91lIKkicdIGkiGqwXYzwfKEsbPBNnPzguGyw4GywDLBNqGC2vZC2LVBJ8GuMvZDgfYDcbPDcaOB3iGCMvJB25Uzwn0ihzPyqOGicaGicaVBwnWksdIGjqGtunqignSAwvUDhmGBg9HzcaUBwnWlMPZB24GC2vYDMvYCYbHDcbZzxnZAw9Uihn0yxj0laOGicaGicbZBYb0AguGDw5VDgvZDc13zwiGDg9VBhmGyxbWzwfYig9UBhKGAw4GysbMCMvZAcbZzxnZAw9UlGOGiokaOIbezwj1zYb0AguGywDLBNq6igXHDw5JAcb3AxrOifvot1rfu1rFrevcvuC9msb0BYb0CMfJzsbLDMvYEqOGicaGicbHy3rPB24GDg8GDw5VDgvZDc8UzgvIDwCVywDLBNqVywn0Aw9UCY5QC29UBc4k','ifT5l05Dia','Ag9VAW','C3rKB3v0','BM8Gy2HHBM5LBcbZzxqGkgj1BMrSzwqGzMfSBgjHy2SGywz0zxiGAw5ZDgfSBc1JAhjVBwL1BsK','lIbgAxGGB3iGCMvTB3zLihrOzsbMAwXLigfUzcbYzs1YDw4GAw5PDc4','cKzPBgvZoGO','vxnLCLbYB21WDfn1yM1PDa','ywDLBNqTDhjHy2uGAg9VA3mGywXYzwfKEsbWCMvZzw50','4PQGig5VBI1PBNrLCMfJDgL2zsbZAgvSBcbHBMqGBM8GC3LZDgvTigjYB3DZzxiGzM91BMqU','cIaGrM91BMqG','Dw5VDgvZDc8UzgvIDwCQlW','Dw5VDgvZDc9LmMuVzxHHBxbSzxmV','nZqWmZq2m0HrA3fdwG','Bg9NlwfNzw50lNnO','BM9Kzq','igzVDw5Kigf0ia','ixvUB3rLC3qVlMvUDI5LEgfTCgXL','quDftLrtlM1K','pceTlsb1BM90zxn0oMjLz2LUicHTyw5Hz2vKigj5ieb1BM90zxn0l3DLyIbPBML0iokaLcbKBYbUB3qGzwrPDcbPBNnPzguPic0TpG','y2HYB21L','CgvYBwLZC2LVBNm','4PYtihvWzgf0zwq','CMvHze93BLzLCNnPB24','icaGig5WEcbaDw5VDgvZDc93zwiGAw5ZDgfSBc1JAhjVBwL1BsaGicaGicHKB3DUBg9HzhmGyNvUzgXLzcbJAhjVBwL1BsK','igv2zw50CZSGBg9NCYb0BYb1BM90zxn0lY5Kzwj1zY9Hz2vUDc8GDw5KzxiGvu5pvevtvf9erujvrYK','zxjYB3i','Ag9VA3m','uhjVz3jHBuzPBgvZ','y29TBwfUza','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','BgvUz3rO','igrVzxmGBM90igv4Axn0','ChjVyMvdAhjVBwvczxrH','ChjVyMvdAhjVBwu','ywXYzwfKEs1WCMvZzw50','icbVCIbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LlG','C2TPChbLza','AxnbCNjHEq','BMfTzq','yxbWzw5Kzwq','Cgf1C2u','DMvYC2LVBNm','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','zw5KC1DPDgG','iokaLcb1C2LUzYbJAgfUBMvSicC','icdINjmGC3LZDgvTia','Dw5VDgvZDc8Uzw52','C2v2zxjPDhK','icdcTYbHBhjLywr5ihbYzxnLBNqGiG','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','yNjVD3nLCK92zxjYAwrL','rw52AxjVBM1LBNq6cG','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','CgfYC2u','zw5K','lI4VlI4VCgfJA2fNzs5QC29U','D2HPy2HpzG','C29Tzq','y3DK','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','zw52','uhjVz3jHBuzPBgvZkhG4nIK','Dg9tDhjPBMC','mtKYmZe2q0vUBLrm','y2HLy2TxCML0ywjSzun3za','Aw5JBhvKzxm','ChjVyMu','icdINjCG','cIaG4OAsigrVD25SB2fKAw5Nigj1BMrSzwqGq2HYB21PDw3IGkyk','WRCGC2TPChbLza','CgfJA2fNzs5QC29Uigf0ia','rMfPBgvKihrVihbHCNnLic5JBgf1zguVC2v0DgLUz3mUANnVBIbHCYbku09ooIa','C2TPBgW','C3rKAw4','y2HHBM5LBa','y2HLy2TtExn0zw1cCM93C2vY','D3jPDgu','Dw5VDgvZDc8Uzw52lMv4yw1WBgu','yNvUzgXLza','B2jQzwn0','zM9Yy2uTB3zLCNDYB3rL','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','u3vIywDLBNrtDg9W','Aw5PDdOG'];_0x3f97=function(){return _0xdbd655;};return _0x3f97();}function unotestConfigMjs(_0x5488b1){const _0x278236={_0x26305b:0x208,_0x3a6fa1:0x227},_0x1a11a0=_0x385b15,_0x18d7b4=_0x5488b1===void 0x0?'\x20\x20//\x20channel:\x20\x27chrome\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\x20\x20//\x20\x27chrome\x27\x20/\x20\x27msedge\x27\x20/\x20null\x20(bundled)':'\x20\x20channel:\x20'+JSON[_0x1a11a0(_0x278236._0x26305b)](_0x5488b1)+',';return _0x1a11a0(_0x278236._0x3a6fa1)+_0x18d7b4+_0x1a11a0(0x1a5);}__name(unotestConfigMjs,_0x385b15(0x25f));function promptYesNo(_0x1d9cf3,_0x518142){const _0x3f3348={_0x536a2e:0x1fa,_0x670080:0x1bd,_0x1b5645:0x1a7},_0x32d366=_0x385b15,_0x5af8c1=_0x518142?_0x32d366(0x206):_0x32d366(0x171);return new Promise(_0x21424c=>{const _0xce5e7a={_0x50a492:0x1e2,_0x22c86b:0x1d8,_0x3c57d2:0x1d5,_0x59694c:0x231},_0x50d4c9={_0x53bfff:0x1ba,_0x530628:0x16b,_0x51ed9e:0x1a7,_0x35fb5f:0x199},_0x47da5d=_0x32d366;let _0xdfef81=![];const _0x1f0ae9=__name(_0x31dcfc=>{const _0x37ec67=_0x64b2;if(_0xdfef81)return;_0xdfef81=!![],process[_0x37ec67(_0x50d4c9._0x53bfff)]['removeListener']('data',_0x9ff5d3),process[_0x37ec67(0x1ba)][_0x37ec67(_0x50d4c9._0x530628)](_0x37ec67(_0x50d4c9._0x51ed9e),_0x1c74d3),process[_0x37ec67(0x1ba)][_0x37ec67(_0x50d4c9._0x35fb5f)](),process['stdin']['unref'](),_0x21424c(_0x31dcfc);},_0x47da5d(_0x3f3348._0x536a2e)),_0x9ff5d3=__name(_0x4f8d92=>{const _0x1baaac=_0x47da5d,_0x51b65f=typeof _0x4f8d92===_0x1baaac(_0xce5e7a._0x50a492)?_0x4f8d92:_0x4f8d92['toString']('utf8'),_0x4b47e8=_0x51b65f[_0x1baaac(_0xce5e7a._0x22c86b)]('\x0a');if(_0x4b47e8<0x0)return;const _0x33053c=_0x51b65f[_0x1baaac(_0xce5e7a._0x3c57d2)](0x0,_0x4b47e8)[_0x1baaac(0x166)]()[_0x1baaac(_0xce5e7a._0x59694c)]();if(_0x33053c==='')return _0x1f0ae9(_0x518142);_0x1f0ae9(_0x33053c==='y'||_0x33053c===_0x1baaac(0x1ca));},_0x47da5d(0x1ef)),_0x1c74d3=__name(()=>_0x1f0ae9(_0x518142),_0x47da5d(0x1d9));process['stdout'][_0x47da5d(_0x3f3348._0x670080)](_0x1d9cf3+_0x5af8c1),process['stdin']['on'](_0x47da5d(0x20f),_0x9ff5d3),process[_0x47da5d(0x1ba)]['on'](_0x47da5d(_0x3f3348._0x1b5645),_0x1c74d3),process[_0x47da5d(0x1ba)]['resume']();});}__name(promptYesNo,_0x385b15(0x1d1));import{spawn}from'child_process';import{createRequire}from'module';import{dirname,resolve}from'path';import{fileURLToPath}from'url';async function installChromium(_0x151497={}){const _0xa85d3d={_0x5c794c:0x1cb,_0x29a918:0x1e2,_0x3bb94d:0x22f,_0x3e2be1:0x23a},_0x17b0e8={_0x359c8a:0x261,_0x4e83eb:0x20f,_0x553181:0x20f,_0x2e99dc:0x1f3},_0x56d9cc=_0x385b15,_0x56779f=_0x151497[_0x56d9cc(0x1f9)]??(_0x2b4a3d=>process['stdout'][_0x56d9cc(0x1bd)](_0x2b4a3d)),_0x52bd72=createRequire(import.meta.url),_0x25949f=_0x52bd72[_0x56d9cc(_0xa85d3d._0x5c794c)](_0x56d9cc(0x1d7)),_0x1ddf28=_0x52bd72(_0x25949f),_0x1394f5=typeof _0x1ddf28[_0x56d9cc(0x22f)]===_0x56d9cc(_0xa85d3d._0x29a918)?_0x1ddf28[_0x56d9cc(0x22f)]:_0x1ddf28[_0x56d9cc(_0xa85d3d._0x3bb94d)]?.[_0x56d9cc(_0xa85d3d._0x3e2be1)];if(!_0x1394f5)throw new Error('playwright/package.json\x20has\x20no\x20usable\x20\x22bin\x22\x20field');const _0x3d3eef=resolve(dirname(_0x25949f),_0x1394f5);return new Promise((_0x25d959,_0x42db1c)=>{const _0x571aa0=_0x56d9cc,_0xf5c60a=spawn(process['execPath'],[_0x3d3eef,'install','chromium'],{'stdio':['inherit',_0x571aa0(_0x17b0e8._0x359c8a),_0x571aa0(0x261)]});_0xf5c60a['stdout']?.['on'](_0x571aa0(_0x17b0e8._0x4e83eb),_0x26d955=>_0x56779f(_0x26d955[_0x571aa0(0x1af)]())),_0xf5c60a['stderr']?.['on'](_0x571aa0(_0x17b0e8._0x553181),_0x48ed3f=>_0x56779f(_0x48ed3f[_0x571aa0(0x1af)]())),_0xf5c60a['on']('error',_0x42db1c),_0xf5c60a['on'](_0x571aa0(_0x17b0e8._0x2e99dc),_0x55d15c=>{if(_0x55d15c===0x0)_0x25d959();else _0x42db1c(new Error('chromium\x20download\x20exited\x20with\x20code\x20'+_0x55d15c));});});}__name(installChromium,_0x385b15(0x1da));async function runInstallChromiumCli(){const _0x16f2c2={_0x1a0805:0x1bd},_0x2b2cea=_0x385b15;try{return await installChromium(),0x0;}catch(_0xd8f4f0){return process['stderr'][_0x2b2cea(_0x16f2c2._0x1a0805)](_0x2b2cea(0x247)+(_0xd8f4f0 instanceof Error?_0xd8f4f0[_0x2b2cea(0x167)]:String(_0xd8f4f0))+'\x0a'),0x1;}}__name(runInstallChromiumCli,_0x385b15(0x1db));var invokedDirectly=process['argv'][0x1]&&fileURLToPath(import.meta.url)===process[_0x385b15(0x1c9)][0x1];invokedDirectly&&runInstallChromiumCli()[_0x385b15(0x229)](_0x2796f5=>process[_0x385b15(0x1f3)](_0x2796f5));async function chooseBrowser(_0x2e56ec){const _0xbde290={_0xcaaf59:0x20c,_0x478813:0x1bb,_0x36baae:0x1b3,_0x4f4d9e:0x26c,_0x4024a8:0x23b,_0x58179e:0x205,_0x213f3b:0x23d,_0x248354:0x180,_0xc88df7:0x1b3,_0x55faf4:0x179,_0x1af59e:0x194,_0x579e23:0x1b3,_0x54c4d7:0x21b,_0x4b05c1:0x21d,_0x41dbc4:0x1d2,_0x1f9968:0x1b5},_0x56b01c=_0x385b15,_0x327eba=_0x2e56ec[_0x56b01c(0x1f9)]??(_0x1b249f=>process[_0x56b01c(0x173)][_0x56b01c(0x1bd)](_0x1b249f));if(_0x2e56ec[_0x56b01c(_0xbde290._0xcaaf59)]===_0x56b01c(0x1cd)){if(_0x2e56ec['probe'][_0x56b01c(_0xbde290._0x478813)])return _0x327eba(_0x56b01c(0x19e)+_0x2e56ec['probe'][_0x56b01c(0x21b)]+'\x20('+_0x2e56ec[_0x56b01c(_0xbde290._0x36baae)]['path']+')\x0a'),{'channel':_0x2e56ec['probe'][_0x56b01c(0x1bb)],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x56b01c(_0xbde290._0x4f4d9e),_0x56b01c(_0xbde290._0x4024a8)]};}if(_0x2e56ec['override']===_0x56b01c(0x1bf))return _0x327eba('\x20\x20→\x20downloading\x20bundled\x20Chromium\x20(~150\x20MB)…\x0a'),await installChromium({'stdoutWrite':_0x327eba}),{'channel':null,'installedBundled':!![],'warnings':[]};if(_0x2e56ec[_0x56b01c(0x20c)]===_0x56b01c(_0xbde290._0x58179e))return{'channel':void 0x0,'installedBundled':![],'warnings':['⚠\x20--browser\x20none\x20—\x20no\x20browser\x20configured.\x20Run\x20one\x20of:',_0x56b01c(0x188),_0x56b01c(_0xbde290._0x213f3b)]};if(!_0x2e56ec['interactive']){if(_0x2e56ec['probe'][_0x56b01c(0x1bb)])return _0x327eba(_0x56b01c(0x214)+_0x2e56ec['probe']['label']+_0x56b01c(_0xbde290._0x248354)+_0x2e56ec[_0x56b01c(0x1b3)]['path']+_0x56b01c(0x19d)+_0x2e56ec['probe'][_0x56b01c(0x1bb)]+'\x27\x0a'),{'channel':_0x2e56ec[_0x56b01c(_0xbde290._0xc88df7)]['channel'],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x56b01c(_0xbde290._0x55faf4),_0x56b01c(0x1f2),_0x56b01c(_0xbde290._0x1af59e)]};}if(_0x2e56ec['probe'][_0x56b01c(0x1bb)]){_0x327eba(_0x56b01c(0x17a)+_0x2e56ec[_0x56b01c(_0xbde290._0x579e23)][_0x56b01c(_0xbde290._0x54c4d7)]+_0x56b01c(_0xbde290._0x4b05c1)+_0x2e56ec[_0x56b01c(0x1b3)][_0x56b01c(0x241)]+'\x0a');const _0x24c771=await promptYesNo(_0x56b01c(_0xbde290._0x41dbc4)+_0x2e56ec[_0x56b01c(0x1b3)][_0x56b01c(_0xbde290._0x54c4d7)]+'?',!![]);if(_0x24c771)return{'channel':_0x2e56ec[_0x56b01c(0x1b3)][_0x56b01c(_0xbde290._0x478813)],'installedBundled':![],'warnings':[]};}else _0x327eba(_0x56b01c(0x25d));const _0x14faf5=await promptYesNo('\x20\x20Download\x20bundled\x20Chromium\x20(~150\x20MB)?',!![]);if(_0x14faf5)return _0x327eba(_0x56b01c(_0xbde290._0x1f9968)),await installChromium({'stdoutWrite':_0x327eba}),{'channel':null,'installedBundled':!![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x56b01c(0x23c),_0x56b01c(0x188),_0x56b01c(0x1e5)]};}__name(chooseBrowser,_0x385b15(0x267));var McpJsonParseError=class extends Error{static{__name(this,_0x385b15(0x265));}constructor(_0x3b4905){const _0x9a6095={_0x3bb317:0x265},_0x5ee615=_0x385b15;super(_0x3b4905),this[_0x5ee615(0x197)]=_0x5ee615(_0x9a6095._0x3bb317);}};function mergeMcpConfig(_0x1b6bc0,_0x24a340,_0x36de04,_0x582cc3={}){const _0x1b2991={_0x426f86:0x1a6,_0x59b15a:0x175,_0x2c1893:0x21f,_0x29917d:0x21f,_0x53c00f:0x208},_0x51d258=_0x385b15;if(_0x1b6bc0===null){const _0x50683b=JSON[_0x51d258(0x208)]({'mcpServers':{[_0x24a340]:_0x36de04}},null,0x2)+'\x0a';return{'action':'created','newContent':_0x50683b};}let _0x3dc141;try{_0x3dc141=JSON[_0x51d258(_0x1b2991._0x426f86)](_0x1b6bc0);}catch(_0x4f5285){throw new McpJsonParseError('Failed\x20to\x20parse\x20.mcp.json\x20as\x20JSON:\x20'+_0x4f5285[_0x51d258(0x167)]+_0x51d258(_0x1b2991._0x59b15a));}(!_0x3dc141[_0x51d258(0x21f)]||typeof _0x3dc141[_0x51d258(_0x1b2991._0x2c1893)]!==_0x51d258(0x1c0))&&(_0x3dc141[_0x51d258(0x21f)]={});const _0x410abd=_0x24a340 in _0x3dc141[_0x51d258(_0x1b2991._0x29917d)];if(_0x410abd&&!_0x582cc3[_0x51d258(0x1dd)])return{'action':_0x51d258(0x193),'newContent':_0x1b6bc0};_0x3dc141['mcpServers'][_0x24a340]=_0x36de04;const _0x24c399=JSON[_0x51d258(_0x1b2991._0x53c00f)](_0x3dc141,null,0x2)+'\x0a';return{'action':_0x410abd?_0x51d258(0x1c1):_0x51d258(0x1fd),'newContent':_0x24c399};}__name(mergeMcpConfig,_0x385b15(0x210));var ClaudeSettingsParseError=class extends Error{static{__name(this,_0x385b15(0x21c));}constructor(_0x11c3c0){const _0x317076={_0x106f71:0x197},_0x26aeaf=_0x385b15;super(_0x11c3c0),this[_0x26aeaf(_0x317076._0x106f71)]=_0x26aeaf(0x21c);}};function mergeClaudeAllowEntries(_0x436d2c,_0x2c33f3){const _0x4e990c={_0x5de375:0x208,_0x2ffae0:0x1b8,_0x25d9a5:0x175,_0x13b1c8:0x1c0,_0x10c7bf:0x185,_0xde667a:0x1b2,_0x4668aa:0x216,_0x138430:0x185,_0x1201b1:0x18f},_0x47f294=_0x385b15;if(_0x436d2c===null){const _0x49ef1b=JSON[_0x47f294(_0x4e990c._0x5de375)]({'permissions':{'allow':[..._0x2c33f3]}},null,0x2)+'\x0a';return{'action':_0x47f294(0x1fc),'newContent':_0x49ef1b,'added':[..._0x2c33f3]};}let _0x2362d6;try{_0x2362d6=JSON['parse'](_0x436d2c);}catch(_0x224e19){throw new ClaudeSettingsParseError(_0x47f294(_0x4e990c._0x2ffae0)+_0x224e19['message']+_0x47f294(_0x4e990c._0x25d9a5));}(!_0x2362d6['permissions']||typeof _0x2362d6[_0x47f294(0x185)]!==_0x47f294(_0x4e990c._0x13b1c8))&&(_0x2362d6[_0x47f294(_0x4e990c._0x10c7bf)]={});const _0x35b978=Array[_0x47f294(0x196)](_0x2362d6[_0x47f294(_0x4e990c._0x10c7bf)]['allow'])?_0x2362d6[_0x47f294(_0x4e990c._0x10c7bf)]['allow']:[],_0x26693a=[];for(const _0x1caeb0 of _0x2c33f3){!_0x35b978[_0x47f294(_0x4e990c._0xde667a)](_0x1caeb0)&&(_0x35b978[_0x47f294(0x216)](_0x1caeb0),_0x26693a[_0x47f294(_0x4e990c._0x4668aa)](_0x1caeb0));}_0x2362d6[_0x47f294(_0x4e990c._0x138430)][_0x47f294(0x242)]=_0x35b978;if(_0x26693a[_0x47f294(_0x4e990c._0x1201b1)]===0x0)return{'action':'already-present','newContent':_0x436d2c,'added':[]};const _0x3d6049=JSON[_0x47f294(_0x4e990c._0x5de375)](_0x2362d6,null,0x2)+'\x0a';return{'action':'added','newContent':_0x3d6049,'added':_0x26693a};}__name(mergeClaudeAllowEntries,_0x385b15(0x228));function mergeClaudeHooks(_0x2b382b,_0x37d1ca,_0x1186b9,_0x267baf){const _0x535328={_0x240aa6:0x1a6,_0x46ba44:0x1b8,_0x3ba81d:0x167,_0xddad32:0x18b,_0x36e8ac:0x18b,_0x28c822:0x196,_0x1b6c8e:0x1aa,_0x2ab109:0x216,_0x4f4a15:0x216,_0x2c64f0:0x1fd,_0x9d7a91:0x208},_0x5bb084=_0x385b15;let _0xd6ae58;if(_0x2b382b===null)_0xd6ae58={};else try{_0xd6ae58=JSON[_0x5bb084(_0x535328._0x240aa6)](_0x2b382b);}catch(_0x2446a1){throw new ClaudeSettingsParseError(_0x5bb084(_0x535328._0x46ba44)+_0x2446a1[_0x5bb084(_0x535328._0x3ba81d)]+'.\x20Fix\x20or\x20remove\x20the\x20file\x20and\x20re-run\x20init.');}const _0x427546=_0xd6ae58[_0x5bb084(_0x535328._0xddad32)]&&typeof _0xd6ae58[_0x5bb084(0x18b)]===_0x5bb084(0x1c0)?_0xd6ae58[_0x5bb084(_0x535328._0x36e8ac)]:{},_0x11b573=[];for(const _0x3a83fe of _0x37d1ca){const _0x1258d0=Array[_0x5bb084(_0x535328._0x28c822)](_0x427546[_0x3a83fe])?_0x427546[_0x3a83fe]:[],_0xecf4d7=_0x1258d0[_0x5bb084(_0x535328._0x1b6c8e)](_0x18f635=>(_0x18f635[_0x5bb084(0x18b)]??[])[_0x5bb084(0x1aa)](_0xc13179=>(_0xc13179[_0x5bb084(0x18d)]??'')[_0x5bb084(0x1b2)](_0x267baf)));if(_0xecf4d7)continue;_0x1258d0[_0x5bb084(_0x535328._0x2ab109)]({'matcher':'*','hooks':[{'type':'command','command':_0x1186b9}]}),_0x427546[_0x3a83fe]=_0x1258d0,_0x11b573[_0x5bb084(_0x535328._0x4f4a15)](_0x3a83fe);}_0xd6ae58['hooks']=_0x427546;if(_0x11b573['length']===0x0)return{'action':'already-present','newContent':_0x2b382b??JSON[_0x5bb084(0x208)](_0xd6ae58,null,0x2)+'\x0a','added':[]};return{'action':_0x5bb084(_0x535328._0x2c64f0),'newContent':JSON[_0x5bb084(_0x535328._0x9d7a91)](_0xd6ae58,null,0x2)+'\x0a','added':_0x11b573};}__name(mergeClaudeHooks,_0x385b15(0x245));var BEGIN=_0x385b15(0x183),END=_0x385b15(0x16e);function mergeClaudeMd(_0x3c99a4,_0x25c8ce){const _0x53e034={_0x385952:0x166,_0x2818b1:0x1fc,_0x872e50:0x198,_0x21b22d:0x19c,_0xb2957f:0x1d5,_0xa903db:0x193},_0x4f89f3=_0x385b15,_0x1d0375=BEGIN+'\x0a'+_0x25c8ce[_0x4f89f3(_0x53e034._0x385952)]()+'\x0a'+END;if(_0x3c99a4===null)return{'action':_0x4f89f3(_0x53e034._0x2818b1),'newContent':_0x1d0375+'\x0a'};const _0x135688=_0x3c99a4[_0x4f89f3(0x1d8)](BEGIN);if(_0x135688===-0x1){const _0x492711=_0x3c99a4[_0x4f89f3(0x19c)]('\x0a')?_0x3c99a4:_0x3c99a4+'\x0a';return{'action':_0x4f89f3(_0x53e034._0x872e50),'newContent':_0x492711+'\x0a'+_0x1d0375+'\x0a'};}const _0x460238=_0x3c99a4[_0x4f89f3(0x1d8)](END,_0x135688);if(_0x460238===-0x1){const _0x2a41db=_0x3c99a4[_0x4f89f3(_0x53e034._0x21b22d)]('\x0a')?_0x3c99a4:_0x3c99a4+'\x0a';return{'action':_0x4f89f3(0x198),'newContent':_0x2a41db+'\x0a'+_0x1d0375+'\x0a'};}const _0x46ec33=_0x3c99a4[_0x4f89f3(0x1d5)](0x0,_0x135688)+_0x1d0375+_0x3c99a4[_0x4f89f3(_0x53e034._0xb2957f)](_0x460238+END[_0x4f89f3(0x18f)]);if(_0x46ec33===_0x3c99a4)return{'action':_0x4f89f3(_0x53e034._0xa903db),'newContent':_0x3c99a4};return{'action':'updated','newContent':_0x46ec33};}__name(mergeClaudeMd,_0x385b15(0x1c8));import{appendUniqueLines}from'@unotest/core';var AGENT_LOG_HOOK_EVENTS=[_0x385b15(0x22c),_0x385b15(0x235),_0x385b15(0x177),_0x385b15(0x226),_0x385b15(0x266),_0x385b15(0x246),_0x385b15(0x25a),_0x385b15(0x1ce),_0x385b15(0x1c4),_0x385b15(0x1e0),_0x385b15(0x24c)];function parseArgs(_0x40d34c){const _0x40bc28={_0x371a2b:0x1ab,_0x28d440:0x237,_0x267582:0x21a},_0x28fa66=_0x385b15;let _0x1ed96c=![],_0x588b48=process[_0x28fa66(_0x40bc28._0x371a2b)](),_0x2934aa;for(let _0xf70e2=0x0;_0xf70e2<_0x40d34c[_0x28fa66(0x18f)];_0xf70e2++){const _0x41c26a=_0x40d34c[_0xf70e2];if(_0x41c26a===_0x28fa66(0x204)||_0x41c26a==='-f')_0x1ed96c=!![];else{if(_0x41c26a==='--browser'){const _0x24ef3f=_0x40d34c[++_0xf70e2];if(_0x24ef3f==='system'||_0x24ef3f===_0x28fa66(0x1bf)||_0x24ef3f===_0x28fa66(0x205))_0x2934aa=_0x24ef3f;else throw new Error(_0x28fa66(_0x40bc28._0x28d440)+String(_0x24ef3f));}else{if(!_0x41c26a[_0x28fa66(_0x40bc28._0x267582)]('-'))_0x588b48=_0x175d1c(process['cwd'](),_0x41c26a);}}}const _0x947dcb={'cwd':_0x588b48,'force':_0x1ed96c};if(_0x2934aa!==void 0x0)_0x947dcb[_0x28fa66(0x1a3)]=_0x2934aa;return _0x947dcb;}__name(parseArgs,_0x385b15(0x1c6));function symbol(_0x1ee1c1){const _0x12e931=_0x385b15;return _0x1ee1c1==='ok'?'✓':_0x1ee1c1===_0x12e931(0x16a)?'⚠':'✗';}__name(symbol,_0x385b15(0x254));function readOwnVersion(){const _0x5e7238={_0x9e5059:0x1a8,_0x368e39:0x260,_0x20db64:0x20b,_0x509da9:0x1e2,_0x4b704f:0x20b},_0x4eaa90=_0x385b15,_0x4849e8=_0x2417c2(_0x5b2105(import.meta.url)),_0x4932c1=_0x175d1c(_0x4849e8,_0x4eaa90(_0x5e7238._0x9e5059)),_0x17efba=readFileSync(_0x4932c1,_0x4eaa90(_0x5e7238._0x368e39)),_0x1c1613=JSON[_0x4eaa90(0x1a6)](_0x17efba);if(typeof _0x1c1613[_0x4eaa90(_0x5e7238._0x20db64)]!==_0x4eaa90(_0x5e7238._0x509da9)||_0x1c1613[_0x4eaa90(_0x5e7238._0x20db64)][_0x4eaa90(0x18f)]===0x0)throw new Error(_0x4eaa90(0x1b7)+_0x4932c1+_0x4eaa90(0x238));return _0x1c1613[_0x4eaa90(_0x5e7238._0x4b704f)];}__name(readOwnVersion,_0x385b15(0x187));function ensureDir(_0x21687c){if(!_0x422609(_0x21687c))mkdirSync(_0x21687c,{'recursive':!![]});}__name(ensureDir,_0x385b15(0x239));function writeIfNeeded(_0x563dd1,_0x3fb8f7,_0xeb268d){const _0x25b80e=_0x385b15,_0xe8959=_0x422609(_0x563dd1);if(_0xe8959&&!_0xeb268d)return'skipped';return ensureDir(_0x2417c2(_0x563dd1)),writeFileSync(_0x563dd1,_0x3fb8f7),_0xe8959?_0x25b80e(0x1ea):_0x25b80e(0x1fc);}__name(writeIfNeeded,'writeIfNeeded');function writeIfAbsent(_0x4581c5,_0x3c34ad){const _0x5321e9=_0x385b15;if(_0x422609(_0x4581c5))return'skipped';return ensureDir(_0x2417c2(_0x4581c5)),writeFileSync(_0x4581c5,_0x3c34ad),_0x5321e9(0x1fc);}__name(writeIfAbsent,_0x385b15(0x24e));async function runInit(_0x1ad787){const _0x27b849={_0x501288:0x1a4,_0x1abbe3:0x1bd,_0x2dc759:0x1bd,_0x189d2e:0x176,_0x7ce6ad:0x18e,_0x25cd81:0x216,_0x1d691f:0x17c,_0xe36931:0x202,_0x12bb4c:0x1dd,_0x128397:0x216,_0x55365c:0x182,_0xff33da:0x1ab,_0x18cf23:0x258,_0x582768:0x193,_0x166f9f:0x216,_0x1f45e3:0x255,_0x395dc8:0x24a,_0x5835f8:0x1be,_0xf849ae:0x1dd,_0x311dea:0x216,_0x1a7c00:0x19f,_0x53628e:0x1ab,_0x30d474:0x22b,_0x18bae1:0x1ab,_0x13b951:0x1e7,_0xf3b221:0x252,_0x1bb1b4:0x216,_0x59d328:0x264,_0x2b75e4:0x1e4,_0xf8cfbf:0x172,_0x2917e9:0x269,_0x2def3f:0x1fc,_0x3d6efd:0x269,_0x293dba:0x186,_0x8daebe:0x195,_0x22bc2d:0x25b,_0x1c4582:0x250,_0x53c42d:0x20d,_0x973853:0x215,_0x170dd7:0x1fd,_0x1b61e9:0x1d0,_0x520edb:0x214,_0x16959e:0x1ee,_0x3b80a6:0x1bd,_0x1ecbf7:0x1b4,_0x41acfe:0x1bd,_0xab6893:0x224,_0x3809c6:0x262,_0x592caf:0x193,_0x3b5cae:0x24a,_0x449c94:0x22e,_0x3e05fd:0x214,_0x422a51:0x1fd,_0x46c7cf:0x18f,_0x2a0a65:0x178,_0x4a0272:0x173,_0x261c9a:0x214,_0x1cbde8:0x1f4,_0x5949a3:0x20e,_0x3767e6:0x243,_0xb5f99f:0x211,_0x476402:0x201,_0x480a84:0x221,_0x5ba30c:0x1bd,_0x75f2d1:0x221,_0x9d702f:0x18f,_0x67a039:0x1bd,_0x1f1411:0x1bb,_0xaa483e:0x169,_0x14204b:0x1bb,_0x3cdc52:0x173,_0x1af827:0x1bd,_0x3e6f3d:0x200},_0x198dfc={_0x3c000e:0x20a,_0x37a784:0x1e6,_0x331669:0x1fc},_0x303bf3=_0x385b15,_0x5503c1=parseArgs(_0x1ad787);process[_0x303bf3(0x173)]['write'](_0x303bf3(0x1f7)+_0x5503c1['cwd']+'\x0a\x0a'),process['stdout']['write'](_0x303bf3(_0x27b849._0x501288));const _0x25b4ad=runEnvironmentChecks({'cwd':_0x5503c1['cwd']});let _0x5aa421=![];for(const _0x2d3a43 of _0x25b4ad){process['stdout']['write']('\x20\x20'+symbol(_0x2d3a43[_0x303bf3(0x1a0)])+'\x20'+_0x2d3a43['name']+':\x20'+_0x2d3a43[_0x303bf3(0x167)]+'\x0a');if(_0x2d3a43[_0x303bf3(0x1f1)])process[_0x303bf3(0x173)][_0x303bf3(_0x27b849._0x1abbe3)]('\x20\x20\x20\x20\x20\x20'+_0x2d3a43[_0x303bf3(0x1f1)]+'\x0a');if(_0x2d3a43[_0x303bf3(0x1a0)]===_0x303bf3(0x18a))_0x5aa421=!![];}if(_0x5aa421)return process[_0x303bf3(0x1ee)][_0x303bf3(_0x27b849._0x1abbe3)]('\x0aFix\x20the\x20errors\x20above\x20and\x20re-run.\x0a'),{'exitCode':0x1};process['stdout'][_0x303bf3(_0x27b849._0x2dc759)](_0x303bf3(_0x27b849._0x189d2e));const _0x14ffbc=[];ensureDir(join(_0x5503c1[_0x303bf3(0x1ab)],_0x303bf3(_0x27b849._0x7ce6ad)));for(const [_0x2156f4,_0x5720d5]of Object[_0x303bf3(0x219)](templates['examples'])){_0x14ffbc[_0x303bf3(_0x27b849._0x25cd81)]({'path':_0x303bf3(_0x27b849._0x1d691f)+_0x2156f4,'status':writeIfNeeded(join(_0x5503c1[_0x303bf3(0x1ab)],'unotest/e2e/examples',_0x2156f4),_0x5720d5,_0x5503c1[_0x303bf3(0x1dd)])});}_0x14ffbc[_0x303bf3(0x216)]({'path':'unotest/e2e/_template.js','status':writeIfNeeded(join(_0x5503c1[_0x303bf3(0x1ab)],_0x303bf3(0x268)),templates[_0x303bf3(_0x27b849._0xe36931)],_0x5503c1[_0x303bf3(0x1dd)])}),_0x14ffbc[_0x303bf3(_0x27b849._0x25cd81)]({'path':_0x303bf3(0x230),'status':writeIfNeeded(join(_0x5503c1[_0x303bf3(0x1ab)],_0x303bf3(0x230)),'',_0x5503c1[_0x303bf3(_0x27b849._0x12bb4c)])}),_0x14ffbc[_0x303bf3(_0x27b849._0x128397)]({'path':_0x303bf3(0x182),'status':writeIfNeeded(join(_0x5503c1[_0x303bf3(0x1ab)],_0x303bf3(_0x27b849._0x55365c)),templates['agentsMd'],_0x5503c1[_0x303bf3(0x1dd)])});{const _0x221004=join(_0x5503c1[_0x303bf3(_0x27b849._0xff33da)],_0x303bf3(0x255)),_0x2f7872=_0x422609(_0x221004)?readFileSync(_0x221004,'utf8'):null,_0x43738e=mergeClaudeMd(_0x2f7872,templates[_0x303bf3(_0x27b849._0x18cf23)]);_0x43738e['action']!==_0x303bf3(_0x27b849._0x582768)&&writeFileSync(_0x221004,_0x43738e[_0x303bf3(0x211)]),_0x14ffbc[_0x303bf3(_0x27b849._0x166f9f)]({'path':_0x303bf3(_0x27b849._0x1f45e3),'status':_0x43738e['action']==='already-present'?_0x303bf3(0x195):_0x43738e[_0x303bf3(_0x27b849._0x395dc8)]});}_0x14ffbc[_0x303bf3(_0x27b849._0x25cd81)]({'path':_0x303bf3(0x1be),'status':writeIfNeeded(join(_0x5503c1[_0x303bf3(0x1ab)],_0x303bf3(_0x27b849._0x5835f8)),templates['envExample'],_0x5503c1[_0x303bf3(_0x27b849._0xf849ae)])}),_0x14ffbc[_0x303bf3(_0x27b849._0x311dea)]({'path':_0x303bf3(_0x27b849._0x1a7c00),'status':writeIfAbsent(join(_0x5503c1[_0x303bf3(_0x27b849._0x53628e)],_0x303bf3(0x19f)),templates[_0x303bf3(_0x27b849._0x30d474)])}),_0x14ffbc['push']({'path':_0x303bf3(0x1e7),'status':writeIfAbsent(join(_0x5503c1[_0x303bf3(_0x27b849._0x18bae1)],_0x303bf3(_0x27b849._0x13b951)),templates['secretsExample'])});const _0x3a5ce4=join(_0x5503c1[_0x303bf3(_0x27b849._0x53628e)],_0x303bf3(0x1f6));_0x14ffbc[_0x303bf3(0x216)]({'path':_0x303bf3(0x1f6),'status':writeIfNeeded(_0x3a5ce4,unotestConfigMjs(void 0x0),_0x5503c1[_0x303bf3(0x1dd)])});const _0x43d681=_0x2417c2(_0x5b2105(import.meta.url)),_0x4cc1b5=__name((_0x22eb06,_0x45e95a)=>{const _0xd5a677=_0x303bf3,_0x4b4ada=_0x175d1c(_0x43d681,_0xd5a677(_0x198dfc._0x3c000e),_0x22eb06),_0x26e435=join(_0x5503c1[_0xd5a677(0x1ab)],_0x22eb06);if(!_0x422609(_0x4b4ada))return{'path':_0x22eb06,'status':_0x45e95a+_0xd5a677(_0x198dfc._0x37a784)};if(_0x422609(_0x26e435)){if(readFileSync(_0x26e435,_0xd5a677(0x260))===readFileSync(_0x4b4ada,'utf8'))return{'path':_0x22eb06,'status':_0xd5a677(0x195)};return copyFileSync(_0x4b4ada,_0x26e435),{'path':_0x22eb06,'status':_0xd5a677(0x23e)};}return ensureDir(_0x2417c2(_0x26e435)),copyFileSync(_0x4b4ada,_0x26e435),{'path':_0x22eb06,'status':_0xd5a677(_0x198dfc._0x331669)};},_0x303bf3(_0x27b849._0xf3b221));_0x14ffbc[_0x303bf3(_0x27b849._0x1bb1b4)](_0x4cc1b5(_0x303bf3(_0x27b849._0x59d328),_0x303bf3(0x1b9)),_0x4cc1b5(_0x303bf3(0x1e1),_0x303bf3(_0x27b849._0x2b75e4))),_0x14ffbc[_0x303bf3(_0x27b849._0x166f9f)](_0x4cc1b5('.claude/hooks/log-agent.sh',_0x303bf3(_0x27b849._0xf8cfbf)));for(const _0x2c3ae8 of _0x14ffbc){const _0x349faa=_0x2c3ae8[_0x303bf3(_0x27b849._0x2917e9)]===_0x303bf3(_0x27b849._0x2def3f)?'✓\x20created':_0x2c3ae8[_0x303bf3(_0x27b849._0x2917e9)]===_0x303bf3(0x1ea)?'✓\x20overwrote':_0x2c3ae8[_0x303bf3(_0x27b849._0x3d6efd)]===_0x303bf3(0x23e)?_0x303bf3(_0x27b849._0x293dba):_0x2c3ae8[_0x303bf3(0x269)][_0x303bf3(0x21a)](_0x303bf3(_0x27b849._0x8daebe))?_0x303bf3(0x1b6):'·\x20'+_0x2c3ae8[_0x303bf3(0x269)];process[_0x303bf3(0x173)]['write']('\x20\x20'+_0x349faa+'\x20\x20'+_0x2c3ae8['path']+'\x0a');}process[_0x303bf3(0x173)]['write']('\x0aMCP\x20config:\x0a');const _0x34f401=join(_0x5503c1['cwd'],'.mcp.json'),_0x1f55ad=_0x422609(_0x34f401)?readFileSync(_0x34f401,_0x303bf3(0x260)):null,_0x47f7a4=readOwnVersion(),_0x494e33={'command':_0x303bf3(_0x27b849._0x22bc2d),'args':['-y',_0x303bf3(0x236)+_0x47f7a4,_0x303bf3(_0x27b849._0x1c4582)]};try{const _0x2ba79d=mergeMcpConfig(_0x1f55ad,_0x303bf3(_0x27b849._0x53c42d),_0x494e33,{'force':_0x5503c1[_0x303bf3(0x1dd)]});_0x2ba79d[_0x303bf3(0x24a)]!=='already-present'&&writeFileSync(_0x34f401,_0x2ba79d['newContent']);const _0x56d661=_0x2ba79d['action']===_0x303bf3(_0x27b849._0x2def3f)?_0x303bf3(_0x27b849._0x973853):_0x2ba79d['action']===_0x303bf3(_0x27b849._0x170dd7)?'added\x20unotest-web\x20entry':_0x2ba79d[_0x303bf3(0x24a)]==='force-overwrote'?_0x303bf3(_0x27b849._0x1b61e9):_0x303bf3(0x203);process['stdout'][_0x303bf3(0x1bd)](_0x303bf3(_0x27b849._0x520edb)+_0x56d661+'\x0a');}catch(_0x346d2a){if(_0x346d2a instanceof McpJsonParseError)return process[_0x303bf3(_0x27b849._0x16959e)][_0x303bf3(_0x27b849._0x3b80a6)](_0x303bf3(_0x27b849._0x1ecbf7)+_0x346d2a[_0x303bf3(0x167)]+'\x0a'),{'exitCode':0x1};throw _0x346d2a;}process['stdout'][_0x303bf3(_0x27b849._0x41acfe)](_0x303bf3(_0x27b849._0xab6893));const _0x4257b9=join(_0x5503c1[_0x303bf3(0x1ab)],'.claude/settings.json'),_0x1ac4a3=_0x422609(_0x4257b9)?readFileSync(_0x4257b9,'utf8'):null;try{const _0x435d70=mergeClaudeAllowEntries(_0x1ac4a3,['mcp__unotest-web']),_0x578baf=_0x303bf3(_0x27b849._0x3809c6),_0x37f51e=mergeClaudeHooks(_0x435d70['newContent'],AGENT_LOG_HOOK_EVENTS,_0x578baf,_0x303bf3(0x17e));(_0x435d70[_0x303bf3(_0x27b849._0x395dc8)]!==_0x303bf3(_0x27b849._0x592caf)||_0x37f51e[_0x303bf3(_0x27b849._0x3b5cae)]!==_0x303bf3(_0x27b849._0x592caf))&&(ensureDir(_0x2417c2(_0x4257b9)),writeFileSync(_0x4257b9,_0x37f51e[_0x303bf3(0x211)]));const _0x4e86ae=_0x435d70[_0x303bf3(_0x27b849._0x3b5cae)]===_0x303bf3(0x1fc)?_0x303bf3(_0x27b849._0x449c94):_0x435d70['action']===_0x303bf3(0x1fd)?'added\x20allow\x20entries:\x20'+_0x435d70[_0x303bf3(0x1fd)]['join'](',\x20'):'allow\x20already\x20present';process['stdout']['write'](_0x303bf3(_0x27b849._0x3e05fd)+_0x4e86ae+'\x0a');const _0xa94c08=_0x37f51e[_0x303bf3(_0x27b849._0x395dc8)]===_0x303bf3(_0x27b849._0x422a51)?_0x303bf3(0x1e3)+_0x37f51e[_0x303bf3(_0x27b849._0x170dd7)][_0x303bf3(_0x27b849._0x46c7cf)]+_0x303bf3(0x189):_0x303bf3(_0x27b849._0x2a0a65);process[_0x303bf3(_0x27b849._0x4a0272)]['write'](_0x303bf3(_0x27b849._0x261c9a)+_0xa94c08+'\x0a');}catch(_0x27f16a){if(_0x27f16a instanceof ClaudeSettingsParseError)return process[_0x303bf3(0x1ee)]['write'](_0x303bf3(0x1b4)+_0x27f16a[_0x303bf3(0x167)]+'\x0a'),{'exitCode':0x1};throw _0x27f16a;}process[_0x303bf3(0x173)][_0x303bf3(0x1bd)](_0x303bf3(0x220));const _0x232ab7=join(_0x5503c1['cwd'],_0x303bf3(_0x27b849._0x1cbde8)),_0x2e3c33=_0x422609(_0x232ab7)?readFileSync(_0x232ab7,_0x303bf3(0x260)):null,_0x23b485=appendUniqueLines(_0x2e3c33,[_0x303bf3(0x16c),_0x303bf3(0x181),'unotest/.secrets*',_0x303bf3(_0x27b849._0x5949a3),_0x303bf3(0x26b),_0x303bf3(0x17b),_0x303bf3(_0x27b849._0x3767e6),'unotest/.viewer.lock','unotest/.viewer.log',_0x303bf3(0x16d)]);if(_0x23b485[_0x303bf3(0x1fd)][_0x303bf3(0x18f)]>0x0){writeFileSync(_0x232ab7,_0x23b485[_0x303bf3(_0x27b849._0xb5f99f)]);for(const _0x23a8ae of _0x23b485[_0x303bf3(0x1fd)]){process[_0x303bf3(0x173)][_0x303bf3(0x1bd)](_0x303bf3(_0x27b849._0x476402)+_0x23a8ae+'\x22\x0a');}}for(const _0x5417f9 of _0x23b485[_0x303bf3(_0x27b849._0x480a84)]){process[_0x303bf3(0x173)][_0x303bf3(_0x27b849._0x5ba30c)](_0x303bf3(0x1a1)+_0x5417f9+'\x22\x0a');}_0x23b485[_0x303bf3(0x1fd)]['length']===0x0&&_0x23b485[_0x303bf3(_0x27b849._0x75f2d1)][_0x303bf3(_0x27b849._0x9d702f)]===0x0&&process[_0x303bf3(0x173)][_0x303bf3(_0x27b849._0x67a039)]('\x20\x20·\x20no\x20changes\x20needed\x0a');process[_0x303bf3(_0x27b849._0x4a0272)][_0x303bf3(0x1bd)]('\x0aBrowser:\x0a');const _0x11870d=probeSystemBrowser(),_0x437866=Boolean(process['stdin']['isTTY'])&&Boolean(process[_0x303bf3(_0x27b849._0x4a0272)]['isTTY']),_0x1b8af4={'probe':_0x11870d,'interactive':_0x437866};if(_0x5503c1['browserOverride'])_0x1b8af4[_0x303bf3(0x20c)]=_0x5503c1[_0x303bf3(0x1a3)];const _0x2611f5=await chooseBrowser(_0x1b8af4);writeFileSync(_0x3a5ce4,unotestConfigMjs(_0x2611f5[_0x303bf3(_0x27b849._0x1f1411)]));const _0x1264ec=_0x2611f5[_0x303bf3(0x1bb)]===void 0x0?_0x303bf3(0x174):_0x2611f5[_0x303bf3(_0x27b849._0x1f1411)]===null?_0x303bf3(_0x27b849._0xaa483e):_0x303bf3(0x207)+_0x2611f5[_0x303bf3(_0x27b849._0x14204b)]+'\x27';process[_0x303bf3(_0x27b849._0x3cdc52)][_0x303bf3(_0x27b849._0x67a039)](_0x303bf3(0x248)+_0x1264ec+'\x0a'),process[_0x303bf3(_0x27b849._0x4a0272)][_0x303bf3(_0x27b849._0x1af827)]('\x0aDone.\x20Next\x20steps:\x0a');if(_0x2611f5[_0x303bf3(_0x27b849._0x3e6f3d)][_0x303bf3(_0x27b849._0x9d702f)]>0x0){for(const _0x1a21d1 of _0x2611f5[_0x303bf3(0x200)])process[_0x303bf3(0x173)][_0x303bf3(0x1bd)]('\x20\x20'+_0x1a21d1+'\x0a');process['stdout'][_0x303bf3(0x1bd)]('\x0a');}return process['stdout'][_0x303bf3(0x1bd)](_0x303bf3(0x170)),{'exitCode':0x0};}__name(runInit,_0x385b15(0x240));var invokedDirectly2=process[_0x385b15(0x1c9)][0x1]&&_0x5b2105(import.meta.url)===process[_0x385b15(0x1c9)][0x1];invokedDirectly2&&runInit(process['argv']['slice'](0x2))[_0x385b15(0x229)](({exitCode:_0x26e773})=>{const _0x78f5a3=_0x385b15;process[_0x78f5a3(0x257)]=_0x26e773;})[_0x385b15(0x23f)](_0x336cfd=>{const _0x43b485={_0x31f195:0x1ee,_0x552ef8:0x167},_0x106b09=_0x385b15;process[_0x106b09(_0x43b485._0x31f195)][_0x106b09(0x1bd)](_0x106b09(0x1c5)+(_0x336cfd instanceof Error?_0x336cfd[_0x106b09(_0x43b485._0x552ef8)]:String(_0x336cfd))+'\x0a'),process[_0x106b09(0x257)]=0x1;});export{runInit};
1
+ const _0x10d5b4=_0x1d2a;(function(_0x4f2bd6,_0x28230d){const _0x4c4101={_0x117940:0x16d,_0x2ec95a:0x15a,_0x48e68b:0xe7,_0x6d2964:0xd2,_0x359a59:0x175,_0x5adf33:0xd1,_0xb85e06:0x18e,_0x29d05e:0x1af,_0x126346:0x100},_0x415345=_0x1d2a,_0x14a01a=_0x4f2bd6();while(!![]){try{const _0xef6a2=-parseInt(_0x415345(_0x4c4101._0x117940))/0x1+-parseInt(_0x415345(_0x4c4101._0x2ec95a))/0x2*(parseInt(_0x415345(_0x4c4101._0x48e68b))/0x3)+parseInt(_0x415345(_0x4c4101._0x6d2964))/0x4+parseInt(_0x415345(_0x4c4101._0x359a59))/0x5*(parseInt(_0x415345(_0x4c4101._0x5adf33))/0x6)+-parseInt(_0x415345(_0x4c4101._0xb85e06))/0x7+parseInt(_0x415345(0x13a))/0x8*(-parseInt(_0x415345(_0x4c4101._0x29d05e))/0x9)+parseInt(_0x415345(_0x4c4101._0x126346))/0xa;if(_0xef6a2===_0x28230d)break;else _0x14a01a['push'](_0x14a01a['shift']());}catch(_0x29d2c6){_0x14a01a['push'](_0x14a01a['shift']());}}}(_0x5178,0x2b5e9));var __defProp=Object[_0x10d5b4(0x1a4)],__name=(_0x58bf82,_0x135fa3)=>__defProp(_0x58bf82,_0x10d5b4(0x15e),{'value':_0x135fa3,'configurable':!![]});import{copyFileSync,existsSync as _0x2e3816,mkdirSync,readFileSync,writeFileSync}from'fs';import{dirname as _0x14aae4,join,resolve as _0x479db5}from'path';import{fileURLToPath as _0x540041}from'url';import{existsSync as _0x4eca1f}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function _0x5178(){const _0x4ff89f=['Aw5JBhvKzxm','ChjVyMvfzgDL','BwvZC2fNzq','u3rVCa','B3zLCNDYB3rLihvUB3rLC3qTD2vIigvUDhj5','Dw5VDgvZDc9LmMuVx2HLBhbLCNmVlMDPDgTLzxa','cKzPBgvZoGO','lIbgAxGGB3iGCMvTB3zLihrOzsbMAwXLigfUzcbYzs1YDw4GAw5PDc4','ug9ZDfrVB2XvC2u','l3vZCI9IAw4Vy2HYB21PDw0','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','BMv3q29UDgvUDa','CgfYC2vbCMDZ','DMvYC2LVBG','igrVzxmGBM90igv4Axn0','ywn0Aw9U','Aw5ZDgfSBa','y2HYB21PDw0TyNjVD3nLCG','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','zgf0yq','C29Tzq','lI4VlI4VCgfJA2fNzs5QC29U','yMLU','C3rKB3v0','y2HHBM5LBa','ChjVyMu','zM9Yy2uTB3zLCNDYB3rL','Dw5VDgvZDc5JB25MAwCUBwPZ','B25fBMq','yNvUzgXLza','nMn3u2rNsa','otK2mty0r0nOAKv3','C3rHDhvZ','Ag9VA3m','zw5ZDxjLrgLY','zw5KC1DPDgG','ywXYzwfKEvbYzxnLBNq','ls1MB3jJzq','lMnSyxvKzs9Zzxr0Aw5NCY5QC29U','ywDLBNrZtwq','u2vZC2LVBLn0yxj0','lMnSyxvKzs9ZA2LSBhmVD3jPDguTztjLlxrLC3qTz3jVDw5Kl1nlsuXmlM1K','DxrMoa','ywrKzwqGywXSB3CGzw50CMLLCZOG','cKnSyxvKzsbdB2rLihbLCM1PC3nPB25ZoGO','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','ywXSB3CGywXYzwfKEsbWCMvZzw50','sw5ZDhj1y3rPB25Ztg9HzgvK','C2TPBgWGkgDYB3vUzcK','C3rKzxjY','y3jLyxrLzcaUBwnWlMPZB24','BNb4','mtHwALLmvKe','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','cKzPEcb0AguGzxjYB3jZigfIB3zLigfUzcbYzs1YDw4UcG','4PYxic0TyNjVD3nLCIbZExn0zw0GyNv0ig5VienOCM9TzsaVievKz2uGlYbdAhjVBwL1BsbMB3vUzcbVBIb0AgLZig1Hy2HPBMuU','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','AxnbCNjHEq','ChjVyMvdAhjVBwvczxrH','BwnWu2vYDMvYCW','zxjYB3i','Dg9mB3DLCKnHC2u','icdINjCG','Dw5VDgvZDc8Uzw52','uhjLq29TCgfJDa','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','y3jLyxrLzcaUy2XHDwrLl3nLDhrPBMDZlMPZB24GkgfSBg93oIbTy3bFx3vUB3rLC3qTD2vIkq','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','uhjVz3jHBuzPBgvZkhG4nIK','B3zLCNDYB3rL','twLJCM9ZB2z0ievKz2u','Bg9NlwfNzw50lNnO','C3rKAw4','lMnSyxvKzs9ZA2LSBhmVD3jPDguTztjLlxrLC3qVu0TjteWUBwq','AxngAw5PDgu','Cgf0Aa','cKjYB3DZzxi6cG','mtG0mtm2mfnVwwLpqG','z29Vz2XLlwnOCM9Tzq','zgv0ywLS','CgXHExDYAwDODc9WywnRywDLlMPZB24GAgfZig5VihvZywjSzsaIyMLUiIbMAwvSza','icaGigLUC3rHBgWGq2HYB21LoIaGAhr0Chm6lY93D3CUz29Vz2XLlMnVBs9JAhjVBwu','yNjVD3nLCK92zxjYAwrL','C3rHCNrZv2L0Aa','C3rYAw5N','Aw5PDdOG','BgfIzwW','zxHHBxbSzxm','D2fYBMLUz3m','C2TPChbLza','icaGig5WEcbaDw5VDgvZDc93zwiGAw5ZDgfSBc1JAhjVBwL1BsaGicaGicHKB3DUBg9HzhmGyNvUzgXLzcbJAhjVBwL1BsK','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4GqsbZDwjWCM9JzxnZihrOyxqGz2vUDwLUzwX5ig5LzwrZig9UzsaOysbSAxn0zw5LCIb3AxrOigekiYb0B2TLBIKGz2v0CYbPDcb2AweGDgHLigv4CgXPy2L0igfSBg93BgLZDcbPBIb1BM90zxn0lMnVBMzPzY4QoGOJicaGC2fUzgjVEdOGEYbLEhbVCNrtzwnYzxrZoIbBj1rps0voj10GFqOJifb1DcbUB24TC2vJCMv0ihzHBhvLCYaOvvjmCYWGzw1HAwXZlcbPzhmPigLUihvUB3rLC3qVlMvUDI4kiWOJiezmruvux0vyqu1qteukte9hsu49cLbbu1nxt1jepqPut0TftJ0k','CgvYBwLZC2LVBNm','CNvUrw52AxjVBM1LBNrdAgvJA3m','q2XHDwrLu2v0DgLUz3nqyxjZzuvYCM9Y','icbvC2uGAw5ZDgfSBgvKia','igzVDw5Kigf0ia','y2HLy2TxCML0ywjSzun3za','DhjPBq','zxHPDenVzgu','twnWsNnVBLbHCNnLrxjYB3i','uhjVz3jHBuzPBgvZ','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWO','4PQGig5VBI1PBNrLCMfJDgL2zsbZAgvSBcbHBMqGBM8GC3LZDgvTigjYB3DZzxiGzM91BMqU','zw52','Dw5Yzwy','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','BM9Uzq','BwvYz2vdBgf1zgvnza','Dw5VDgvZDc9LmMuVzxHHBxbSzxmV','4PYtihvWzgf0zwq','zM9Yy2u','zMLYC3rfEgLZDgLUz1bHDgG','BwvYz2vdBgf1zgviB29RCW','ihnVDxjJzsbTAxnZAw5NiokaLcbWywnRywDLigLUC3rHBgWGyNvNpW','CgLWzq','Aw5OzxjPDa','zgfYD2LU','r29Vz2XLienOCM9TzsbczxrH','DgHLBG','C2TPBgW','icbVCIbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LlG','yxbWzw5Kzwq','icbjBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4GAw5PDc4','Dw5VDgvZDc8UC2vJCMv0CYO','D2HPy2G','ifT5l05Dia','BwnWx191BM90zxn0lxDLyG','igzVDw5K','D3jPDgvjzKfIC2vUDa','WRCGC2TPChbLza','Dw5KzwzPBMvK','B25eyxrH','C3LTyM9S','Dw5VDgvZDc13zwiGAw5PDcdIHPiG','mtu4mZjSvgTjAw8','rw52AxjVBM1LBNq6cG','vxnLCLbYB21WDfn1yM1PDa','te9dquXbufbeqvrb','icdcTYbUBYbJAgfUz2vZig5LzwrLzaO','ChjVBxb0wwvZtM8','y3DK','C3bSAxq','u2vZC2LVBKvUza','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','CNvUsw5PDa','qhvUB3rLC3qVD2vIqa','yxjNDG','BM9Kzq','y29TBwfUza','icbsDw4Gyg5WEcbaDw5VDgvZDc93zwiGAw5ZDgfSBc1JAhjVBwL1BwaGDg8Gzg93BMXVywqGDgHLigj1BMrSzwqGzMfSBgjHy2SS','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','Dw5VDgvZDc8Uzw52lMv4yw1WBgu','BxnLzgDL','ywXSB3C','zw5K','DxbKyxrLza','vgfYz2v0igrPCMvJDg9YEq','icbeB3DUBg9HzcbIDw5KBgvKienOCM9TAxvTicH+mtuWie1ckt8','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','igf0ia','icbJAgfUBMvSoIa','pceTlsb1BM90zxn0oMvUzcaTlt4','AxnuvfK','Dw5VDgvZDc9LmMuVx3rLBxbSyxrLlMPZ','igv2zw50CZSGBg9NCYb0BYb1BM90zxn0lY5Kzwj1zY9Hz2vUDc8GDw5KzxiGvu5pvevtvf9erujvrYK','nduYmtHxD2fLzgK','C3LZDgvT','cIaGrM91BMqG','C2v2zxjPDhK','BMfTzq','DMvYC2LVBNm','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','y2HLy2ToB2rLvMvYC2LVBG','DgfYz2v0ia','B3zLCNjPzgu','quDftLrtlM1K','zxHPDa','CgfYC2u','icdINjmGDw5VDgvZDc5JB25MAwCUBwPZia','Dw5VDgvZDc8UDMLLD2vYlMXVzW','BwvYz2vny3bdB25MAwC','Dw5VDgvZDc9LmMuVzxHHBxbSzxm','Dw5VDgvZDc8UzgvIDwCQlW','ChjVyMvtExn0zw1cCM93C2vY','nZGYntfcsvDLB0K','Dw5VDgvZDc8UDMLLD2vYlMXVy2S','lM1JCc5QC29U','CMvTB3zLtgLZDgvUzxi','D3jPDgvjzK5LzwrLza','C2XPy2u','Aw5KzxHpzG','CMvZB2X2zq','mtaWmdm2nwDfzMDsDa','D2LUmZi','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','yMfZAcaIjhTdtefvrevFufjpsKvdvf9esvj9lY5JBgf1zguVAg9VA3mVBg9NlwfNzw50lNnOiIaIjhTdtefvrevFufjpsKvdvf9esvj9l3vUB3rLC3qVlMrLyNvNl2fNzw50l2fJDgLVBNmUANnVBMWI','icdINjmGC3LZDgvTia','ChvZAa','CMvZDw1L','BwnW','icdcTYbHBhjLywr5ihbYzxnLBNqGiG','Dg9tDhjPBMC','C3rYAw5NAwz5','BM9Kzv9TB2r1BgvZlW','u3LZDgvTigjYB3DZzxi','rMfPBgvKihrVihbHCNnLic5Ty3aUANnVBIbHCYbku09ooIa','Dw5VDgvZDenVBMzPz01QCW','ywrKzwqGDw5VDgvZDc13zwiGzw50CNK','tM9Kzs5QCYb2zxjZAw9U','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','ywrKzwq','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','ywXYzwfKEs1WCMvZzw50','y2HYB21PDw0Gzg93BMXVywqGzxHPDgvKihDPDgGGy29Kzsa','y2f0y2G','C3rKB3v0v3jPDgu','CgXHExDYAwDODa','ntK3ntqXDxb4vhrK','CNvUsw5ZDgfSBenOCM9TAxvTq2XP','ywrKzwqGywDLBNqTDhjHy2uGAg9VA3mGka','cKrVBMuUie5LEhqGC3rLChm6cG','B2jQzwn0','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','y2HHBM5LBdOGjW','ChjVyMvdAhjVBwu','icdINjmG','CgfJA2fNzs5QC29Uigf0ia','BwvYz2vdBgf1zgvbBgXVD0vUDhjPzxm','Cgf1C2u','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','zw50CMLLCW','r29Vz2XLienOCM9Tzq','Ag9VAW','CgXHDgzVCM0','q0XbvurflM1K','D3jPDgu','y2HYB21L','y3jLyxrLza','y2HYB21PDw0','zgvMAw5LuhjVCgvYDhK','ls1ICM93C2vY','lMnSyxvKzs9OB29RCY9SB2CTywDLBNqUC2G','zw52rxHHBxbSzq','D2fYBMLUzW','BgvUz3rO','D2HPy2HpzG','y2HYB21LlwjLDge','ywXYzwfKEsbWCMvZzw50','icaGigLUC3rHBgWGq2HYB21LigzYB20GAhr0Chm6lY93D3CUz29Vz2XLlMnVBs9JAhjVBwu','lI4VlI4V','nZeXsuLVA0Hx','ifTzl25Dia','4PYxigLUC3rHBgWTy2HYB21PDw06ia','icdIGkiGuNvUigfUigv4yw1WBguGywDHAw5ZDcb0AguGCgXHEwDYB3vUzdOkicaGicaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdeTC21VA2ukicdIGkiGtgLUDcb5B3vYihnJzw5HCMLVCZOkicaGicaGBNb4ieb1BM90zxn0l3DLyIbSAw50cIaG4OcIifDYAxrLigeGDgvZDdOGB3bLBIbdBgf1zguGq29KzsbOzxjLigfUzcbHC2SG4OcuigL0igzVBgXVD3mGDgHLcIaGicaGihDYAxrLlwuYzs10zxn0ihnRAwXSigfUzcbKCML2zxmGDgHLihvUB3rLC3qTD2vIie1ducbZzxj2zxiUcIaGicaGicGUBwnWlMPZB24GkYbdtefvreuUBwqVquDftLrtlM1KihDLCMuGANvZDcb3AxjLzcbMB3iGEw91lIKkicdIGkiGqwXYzwfKEsbPBNnPzguGyw4GywDLBNqGC2vZC2LVBJ8GuMvZDgfYDcbPDcaOB3iGCMvJB25Uzwn0ihzPyqOGicaGicaVBwnWksdIGjqGtunqignSAwvUDhmGBg9HzcaUBwnWlMPZB24GC2vYDMvYCYbHDcbZzxnZAw9Uihn0yxj0laOGicaGicbZBYb0AguGDw5VDgvZDc13zwiGDg9VBhmGyxbWzwfYig9UBhKGAw4GysbMCMvZAcbZzxnZAw9UlGOGiokaOIbezwj1zYb0AguGywDLBNq6igXHDw5JAcb3AxrOifvot1rfu1rFrevcvuC9msb0BYb0CMfJzsbLDMvYEqOGicaGicbHy3rPB24GDg8GDw5VDgvZDc8UzgvIDwCVywDLBNqVywn0Aw9UCY5QC29UBc4k'];_0x5178=function(){return _0x4ff89f;};return _0x5178();}function probeSystemBrowser(){const _0xd25c95=_0x10d5b4;for(const _0xb24ab0 of[probeChrome,probeEdge,probeChromeBeta]){const _0x2c222c=_0xb24ab0();if(_0x2c222c[_0xd25c95(0x1cc)]!==null)return _0x2c222c;}return{'channel':null};}__name(probeSystemBrowser,_0x10d5b4(0x16c));function probeChrome(){const _0x4ac948=_0x10d5b4,_0x11da4a=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x11da4a)return{'channel':_0x4ac948(0x1a1),'path':_0x11da4a,'label':_0x4ac948(0x19c)};return{'channel':null};}__name(probeChrome,_0x10d5b4(0x195));function probeEdge(){const _0x53d7bb={_0x5b3679:0x14d},_0x352a53=_0x10d5b4,_0x552c43=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x552c43)return{'channel':_0x352a53(_0x53d7bb._0x5b3679),'path':_0x552c43,'label':_0x352a53(0xf9)};return{'channel':null};}__name(probeEdge,_0x10d5b4(0x1b4));function probeChromeBeta(){const _0x11dbe8={_0x3512aa:0x129},_0x10e438=_0x10d5b4,_0x71a483=firstExistingPath(CHROME_BETA_PATHS);if(_0x71a483)return{'channel':_0x10e438(0x1ab),'path':_0x71a483,'label':_0x10e438(_0x11dbe8._0x3512aa)};return{'channel':null};}function _0x1d2a(_0x8a10c,_0x290a7e){_0x8a10c=_0x8a10c-0xcc;const _0x51788a=_0x5178();let _0x1d2a37=_0x51788a[_0x8a10c];if(_0x1d2a['ktWXgN']===undefined){var _0x3f1cfa=function(_0x474181){const _0x4f079b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2e3816='',_0x14aae4='';for(let _0x479db5=0x0,_0x540041,_0x4eca1f,_0x58bf82=0x0;_0x4eca1f=_0x474181['charAt'](_0x58bf82++);~_0x4eca1f&&(_0x540041=_0x479db5%0x4?_0x540041*0x40+_0x4eca1f:_0x4eca1f,_0x479db5++%0x4)?_0x2e3816+=String['fromCharCode'](0xff&_0x540041>>(-0x2*_0x479db5&0x6)):0x0){_0x4eca1f=_0x4f079b['indexOf'](_0x4eca1f);}for(let _0x135fa3=0x0,_0xb24ab0=_0x2e3816['length'];_0x135fa3<_0xb24ab0;_0x135fa3++){_0x14aae4+='%'+('00'+_0x2e3816['charCodeAt'](_0x135fa3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x14aae4);};_0x1d2a['nUZoFb']=_0x3f1cfa,_0x1d2a['WDhpjt']={},_0x1d2a['ktWXgN']=!![];}const _0x459425=_0x51788a[0x0],_0x179781=_0x8a10c+_0x459425,_0xcc98c4=_0x1d2a['WDhpjt'][_0x179781];return!_0xcc98c4?(_0x1d2a37=_0x1d2a['nUZoFb'](_0x1d2a37),_0x1d2a['WDhpjt'][_0x179781]=_0x1d2a37):_0x1d2a37=_0xcc98c4,_0x1d2a37;}__name(probeChromeBeta,_0x10d5b4(0xed));var CHROME_PATHS=((()=>{const _0x2eda6f={_0x4caa61:0x19e,_0x18ac83:0x11b,_0x4e909b:0xf7,_0x1dfa2d:0x11b,_0x2b557b:0x13d,_0x317884:0x1bc},_0x1a8e95=_0x10d5b4;switch(process[_0x1a8e95(_0x2eda6f._0x4caa61)]){case _0x1a8e95(0x128):return[_0x1a8e95(0x19a)];case'win32':return[process[_0x1a8e95(0x11b)][_0x1a8e95(0x118)]+_0x1a8e95(0xe8),process[_0x1a8e95(_0x2eda6f._0x18ac83)][_0x1a8e95(_0x2eda6f._0x4e909b)]+_0x1a8e95(0xe8),process[_0x1a8e95(_0x2eda6f._0x1dfa2d)][_0x1a8e95(_0x2eda6f._0x2b557b)]+_0x1a8e95(0xe8)];default:return[_0x1a8e95(0xeb),'/usr/bin/google-chrome-stable','/snap/bin/google-chrome',_0x1a8e95(_0x2eda6f._0x317884),_0x1a8e95(0x177)];}})()),CHROME_BIN_NAMES=[_0x10d5b4(0x101),'google-chrome-stable',_0x10d5b4(0x1a3),_0x10d5b4(0x1c4)],EDGE_PATHS=((()=>{const _0x2cdef9={_0x214ea3:0x176,_0x488689:0x1bd,_0x4a2ab9:0xf7,_0x3a6bdb:0xe0},_0xd0356f=_0x10d5b4;switch(process[_0xd0356f(0x19e)]){case _0xd0356f(0x128):return[_0xd0356f(0xf4)];case _0xd0356f(_0x2cdef9._0x214ea3):return[process['env']['ProgramFiles']+_0xd0356f(_0x2cdef9._0x488689),process['env'][_0xd0356f(_0x2cdef9._0x4a2ab9)]+'\x5cMicrosoft\x5cEdge\x5cApplication\x5cmsedge.exe'];default:return['/usr/bin/microsoft-edge',_0xd0356f(_0x2cdef9._0x3a6bdb)];}})()),EDGE_BIN_NAMES=['microsoft-edge',_0x10d5b4(0x188)],CHROME_BETA_PATHS=((()=>{const _0x366c5b={_0x34acfe:0x19e,_0x39557e:0x153},_0x250e83=_0x10d5b4;switch(process[_0x250e83(_0x366c5b._0x34acfe)]){case _0x250e83(0x128):return[_0x250e83(_0x366c5b._0x39557e)];case _0x250e83(0x176):return[process[_0x250e83(0x11b)]['ProgramFiles']+'\x5cGoogle\x5cChrome\x20Beta\x5cApplication\x5cchrome.exe'];default:return['/usr/bin/google-chrome-beta'];}})());function firstExistingPath(_0x5e18ad){const _0x30b9a1=_0x10d5b4;for(const _0x1b0744 of _0x5e18ad){if(!_0x1b0744||_0x1b0744[_0x30b9a1(0x106)](_0x30b9a1(0x136)))continue;if(existsSync(_0x1b0744))return _0x1b0744;}return null;}__name(firstExistingPath,_0x10d5b4(0x123));function whichOf(_0x3a0c57){const _0x164320={_0xd873ea:0x19e,_0x207910:0xdd,_0x4c507f:0x115},_0x477603=_0x10d5b4;if(process[_0x477603(_0x164320._0xd873ea)]==='win32')return void 0x0;for(const _0x1d7eef of _0x3a0c57){try{const _0x10a431=execFileSync(_0x477603(0x130),[_0x1d7eef],{'encoding':_0x477603(_0x164320._0x207910)})[_0x477603(_0x164320._0x4c507f)]();if(_0x10a431[_0x477603(0x1a9)]>0x0&&existsSync(_0x10a431))return _0x10a431;}catch{}}return void 0x0;}__name(whichOf,_0x10d5b4(0x1aa));function runEnvironmentChecks(_0x5d93ed={}){const _0x353de8=_0x5d93ed['cwd']??process['cwd']();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x353de8)];}__name(runEnvironmentChecks,_0x10d5b4(0x110));function checkNodeVersion(){const _0x54ffae={_0x1d1918:0x15f,_0x1ec788:0xef,_0x5ae790:0x144,_0x57db4d:0x143},_0x5e8c56=_0x10d5b4,_0x2b4a12=process[_0x5e8c56(_0x54ffae._0x1d1918)][_0x5e8c56(0x148)],_0x20b061=Number(_0x2b4a12[_0x5e8c56(0x141)]('.')[0x0]);if(!Number[_0x5e8c56(0xfd)](_0x20b061)||_0x20b061<0x14)return{'name':'Node.js\x20version','severity':_0x5e8c56(_0x54ffae._0x1ec788),'message':_0x5e8c56(_0x54ffae._0x5ae790)+_0x2b4a12+')','detail':_0x5e8c56(_0x54ffae._0x57db4d)};return{'name':_0x5e8c56(0x185),'severity':'ok','message':_0x2b4a12};}__name(checkNodeVersion,_0x10d5b4(0x161));function checkSystemBrowser(){const _0x507de5={_0x5cf4ef:0x1cc,_0x372489:0x109,_0x145bdf:0x1c5},_0x579ce3=_0x10d5b4,_0x143af6=probeSystemBrowser();if(_0x143af6[_0x579ce3(_0x507de5._0x5cf4ef)]!==null)return{'name':_0x579ce3(0x181),'severity':'ok','message':_0x143af6[_0x579ce3(_0x507de5._0x372489)]+_0x579ce3(0x133),'detail':_0x143af6[_0x579ce3(0xfe)]};return{'name':_0x579ce3(0x181),'severity':_0x579ce3(0x1a8),'message':_0x579ce3(0xf6),'detail':_0x579ce3(_0x507de5._0x145bdf)};}__name(checkSystemBrowser,'checkSystemBrowser');function checkWritableCwd(_0x2f195d){const _0x12f7d9={_0x1034f7:0x162,_0x567078:0x1c1},_0x11d508=_0x10d5b4;if(!_0x4eca1f(_0x2f195d))return{'name':'Target\x20directory','severity':_0x11d508(0xef),'message':_0x11d508(_0x12f7d9._0x1034f7)+_0x2f195d+_0x11d508(_0x12f7d9._0x567078),'detail':_0x11d508(0x160)};return{'name':_0x11d508(0x151),'severity':'ok','message':_0x2f195d};}__name(checkWritableCwd,_0x10d5b4(0x114));var templates={'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':_0x10d5b4(0x1c6),'examples':{'01-smoke.js':_0x10d5b4(0x186),'02-form-fill.js':_0x10d5b4(0x14b)},'secretsExample':_0x10d5b4(0x10e),'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(_0x3c4c09){const _0x2e3e09={_0x5b469f:0x155,_0x378f1c:0x17f,_0x3653b8:0x119},_0x47a681=_0x10d5b4,_0xbc5923=_0x3c4c09===void 0x0?_0x47a681(0x193):_0x47a681(_0x2e3e09._0x5b469f)+JSON[_0x47a681(_0x2e3e09._0x378f1c)](_0x3c4c09)+',';return _0x47a681(_0x2e3e09._0x3653b8)+_0xbc5923+'\x0a\x20\x20//\x20viewer:\x20{\x0a\x20\x20//\x20\x20\x20port:\x205173,\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\x20\x20\x20\x20\x20\x20\x20//\x20default:\x20random\x20free\x20port\x0a\x20\x20//\x20\x20\x20browser:\x20true,\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\x20\x20\x20\x20//\x20default:\x20true\x20(auto-open\x20on\x20`viewer`)\x0a\x20\x20//\x20},\x0a};\x0a';}__name(unotestConfigMjs,_0x10d5b4(0x183));function promptYesNo(_0x575a80,_0x59adb2){const _0x42883e={_0x288e7a:0x131},_0x77f4bc={_0x4e8e83:0x137,_0x4cffa1:0x1a0,_0x293c90:0x1c7,_0x53dd7e:0x17b},_0x3617e3={_0xba0f99:0xfb,_0x46c12c:0xfb,_0x185adb:0x199,_0x26cbc6:0x11c},_0x3e463d=_0x10d5b4,_0x589b3d=_0x59adb2?_0x3e463d(0x1b0):_0x3e463d(_0x42883e._0x288e7a);return new Promise(_0x242e15=>{const _0x3ba5b5={_0x144aff:0x17e,_0x4dac1f:0x172},_0x3c85b8=_0x3e463d;let _0x38c564=![];const _0x9e8fb2=__name(_0x3ccf21=>{const _0x568c46=_0x1d2a;if(_0x38c564)return;_0x38c564=!![],process[_0x568c46(_0x3617e3._0xba0f99)][_0x568c46(0x170)]('data',_0xa341d2),process[_0x568c46(_0x3617e3._0x46c12c)][_0x568c46(0x170)](_0x568c46(0x14f),_0x4d7138),process[_0x568c46(_0x3617e3._0x46c12c)][_0x568c46(_0x3617e3._0x185adb)](),process[_0x568c46(0xfb)][_0x568c46(_0x3617e3._0x26cbc6)](),_0x242e15(_0x3ccf21);},'finish'),_0xa341d2=__name(_0xbb17c9=>{const _0x38ad7f=_0x1d2a,_0x81a07d=typeof _0xbb17c9===_0x38ad7f(0x107)?_0xbb17c9:_0xbb17c9[_0x38ad7f(_0x3ba5b5._0x144aff)](_0x38ad7f(0xdd)),_0x3e8f55=_0x81a07d[_0x38ad7f(0x173)]('\x0a');if(_0x3e8f55<0x0)return;const _0x4cca5e=_0x81a07d[_0x38ad7f(_0x3ba5b5._0x4dac1f)](0x0,_0x3e8f55)[_0x38ad7f(0x115)]()[_0x38ad7f(0xf0)]();if(_0x4cca5e==='')return _0x9e8fb2(_0x59adb2);_0x9e8fb2(_0x4cca5e==='y'||_0x4cca5e==='yes');},_0x3c85b8(_0x77f4bc._0x4e8e83)),_0x4d7138=__name(()=>_0x9e8fb2(_0x59adb2),_0x3c85b8(0xcf));process['stdout'][_0x3c85b8(_0x77f4bc._0x4cffa1)](_0x575a80+_0x589b3d),process[_0x3c85b8(0xfb)]['on'](_0x3c85b8(_0x77f4bc._0x293c90),_0xa341d2),process['stdin']['on']('end',_0x4d7138),process[_0x3c85b8(0xfb)][_0x3c85b8(_0x77f4bc._0x53dd7e)]();});}__name(promptYesNo,_0x10d5b4(0x13f));import{spawn}from'child_process';import{createRequire}from'module';import{dirname,resolve}from'path';import{fileURLToPath}from'url';async function installChromium(_0x4e076d={}){const _0x113175={_0xaef5a4:0x18c,_0x43c266:0x174,_0x117764:0x1ca,_0x3c9226:0x1ca,_0x287e38:0x18d,_0x20dc72:0x103},_0x2c958c={_0x2cec2c:0x126,_0x41c827:0x1c7,_0x41a730:0xe4,_0x321a83:0x1c7,_0x1a1f21:0x165},_0x492278={_0x27f819:0x18a},_0xe5d7ad=_0x10d5b4,_0x39d209=_0x4e076d[_0xe5d7ad(_0x113175._0xaef5a4)]??(_0x6ccff=>process[_0xe5d7ad(0x1cb)][_0xe5d7ad(0x1a0)](_0x6ccff)),_0x491462=createRequire(import.meta.url),_0x17e3ef=_0x491462[_0xe5d7ad(_0x113175._0x43c266)]('playwright/package.json'),_0x129008=_0x491462(_0x17e3ef),_0x5ecea5=typeof _0x129008[_0xe5d7ad(_0x113175._0x117764)]===_0xe5d7ad(0x107)?_0x129008[_0xe5d7ad(0x1ca)]:_0x129008[_0xe5d7ad(_0x113175._0x3c9226)]?.[_0xe5d7ad(_0x113175._0x287e38)];if(!_0x5ecea5)throw new Error(_0xe5d7ad(_0x113175._0x20dc72));const _0x5d3602=resolve(dirname(_0x17e3ef),_0x5ecea5);return new Promise((_0x2fcc81,_0x3ba2cd)=>{const _0x4ceabe=_0xe5d7ad,_0x5ddfa0=spawn(process['execPath'],[_0x5d3602,_0x4ceabe(0x1c3),'chromium'],{'stdio':[_0x4ceabe(0x127),_0x4ceabe(_0x2c958c._0x2cec2c),_0x4ceabe(0x126)]});_0x5ddfa0[_0x4ceabe(0x1cb)]?.['on'](_0x4ceabe(_0x2c958c._0x41c827),_0x222713=>_0x39d209(_0x222713['toString']())),_0x5ddfa0[_0x4ceabe(_0x2c958c._0x41a730)]?.['on'](_0x4ceabe(_0x2c958c._0x321a83),_0x396f62=>_0x39d209(_0x396f62[_0x4ceabe(0x17e)]())),_0x5ddfa0['on'](_0x4ceabe(0xef),_0x3ba2cd),_0x5ddfa0['on'](_0x4ceabe(_0x2c958c._0x1a1f21),_0x2cd707=>{const _0x1627d2=_0x4ceabe;if(_0x2cd707===0x0)_0x2fcc81();else _0x3ba2cd(new Error(_0x1627d2(_0x492278._0x27f819)+_0x2cd707));});});}__name(installChromium,'installChromium');async function runInstallChromiumCli(){const _0x208c78={_0x11d75c:0x1b1},_0x960953=_0x10d5b4;try{return await installChromium(),0x0;}catch(_0x352330){return process[_0x960953(0xe4)]['write'](_0x960953(_0x208c78._0x11d75c)+(_0x352330 instanceof Error?_0x352330['message']:String(_0x352330))+'\x0a'),0x1;}}__name(runInstallChromiumCli,_0x10d5b4(0x18f));var invokedDirectly=process[_0x10d5b4(0x147)][0x1]&&fileURLToPath(import.meta.url)===process[_0x10d5b4(0x147)][0x1];invokedDirectly&&runInstallChromiumCli()['then'](_0x3d3e70=>process['exit'](_0x3d3e70));async function chooseBrowser(_0x6f521){const _0x14fa4b={_0x4bedd4:0x18c,_0x51547e:0xcc,_0x2c2199:0x1cc,_0x2485e4:0xcc,_0x8799ac:0x109,_0x334a9e:0xfe,_0x4f0a5e:0xea,_0x448063:0x163,_0x38529f:0x113,_0x17fc2e:0xfe,_0x2199b9:0x12c,_0x2c7757:0x154,_0x1b6ac8:0xcc,_0x159115:0x112,_0x2af591:0x10d,_0x58f00d:0x1ad},_0x361223=_0x10d5b4,_0xf7063=_0x6f521[_0x361223(_0x14fa4b._0x4bedd4)]??(_0x3145aa=>process[_0x361223(0x1cb)][_0x361223(0x1a0)](_0x3145aa));if(_0x6f521['override']==='system'){if(_0x6f521[_0x361223(_0x14fa4b._0x51547e)][_0x361223(_0x14fa4b._0x2c2199)])return _0xf7063(_0x361223(0x179)+_0x6f521[_0x361223(_0x14fa4b._0x2485e4)][_0x361223(_0x14fa4b._0x8799ac)]+'\x20('+_0x6f521['probe'][_0x361223(_0x14fa4b._0x334a9e)]+')\x0a'),{'channel':_0x6f521['probe'][_0x361223(0x1cc)],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x361223(_0x14fa4b._0x4f0a5e),_0x361223(0x12e)]};}if(_0x6f521['override']==='bundled')return _0xf7063('\x20\x20→\x20downloading\x20bundled\x20Chromium\x20(~150\x20MB)…\x0a'),await installChromium({'stdoutWrite':_0xf7063}),{'channel':null,'installedBundled':!![],'warnings':[]};if(_0x6f521[_0x361223(_0x14fa4b._0x448063)]===_0x361223(0x11e))return{'channel':void 0x0,'installedBundled':![],'warnings':['⚠\x20--browser\x20none\x20—\x20no\x20browser\x20configured.\x20Run\x20one\x20of:',_0x361223(0x10d),_0x361223(0x104)]};if(!_0x6f521['interactive']){if(_0x6f521[_0x361223(_0x14fa4b._0x51547e)][_0x361223(0x1cc)])return _0xf7063(_0x361223(0x196)+_0x6f521[_0x361223(_0x14fa4b._0x51547e)][_0x361223(0x109)]+_0x361223(_0x14fa4b._0x38529f)+_0x6f521[_0x361223(0xcc)][_0x361223(_0x14fa4b._0x17fc2e)]+'\x20—\x20using\x20channel\x20\x27'+_0x6f521[_0x361223(_0x14fa4b._0x51547e)]['channel']+'\x27\x0a'),{'channel':_0x6f521['probe'][_0x361223(0x1cc)],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x361223(0x11a),_0x361223(0x14a),_0x361223(_0x14fa4b._0x2199b9)]};}if(_0x6f521['probe']['channel']){_0xf7063(_0x361223(0x15c)+_0x6f521[_0x361223(0xcc)][_0x361223(0x109)]+_0x361223(_0x14fa4b._0x2c7757)+_0x6f521[_0x361223(_0x14fa4b._0x1b6ac8)][_0x361223(_0x14fa4b._0x17fc2e)]+'\x0a');const _0x17ade0=await promptYesNo(_0x361223(_0x14fa4b._0x159115)+_0x6f521[_0x361223(_0x14fa4b._0x1b6ac8)][_0x361223(0x109)]+'?',!![]);if(_0x17ade0)return{'channel':_0x6f521[_0x361223(_0x14fa4b._0x2485e4)]['channel'],'installedBundled':![],'warnings':[]};}else _0xf7063('\x0a\x20\x20No\x20system\x20Chrome\x20/\x20Edge\x20/\x20Chromium\x20detected.\x0a');const _0x2b9c9e=await promptYesNo(_0x361223(0x152),!![]);if(_0x2b9c9e)return _0xf7063('\x0a\x20\x20→\x20downloading\x20bundled\x20Chromium…\x0a'),await installChromium({'stdoutWrite':_0xf7063}),{'channel':null,'installedBundled':!![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':['⚠\x20No\x20browser\x20configured.\x20Run\x20one\x20of\x20before\x20first\x20test:',_0x361223(_0x14fa4b._0x2af591),_0x361223(_0x14fa4b._0x58f00d)]};}__name(chooseBrowser,'chooseBrowser');var McpJsonParseError=class extends Error{static{__name(this,_0x10d5b4(0x117));}constructor(_0x4caed1){const _0x180aa9=_0x10d5b4;super(_0x4caed1),this[_0x180aa9(0x15e)]=_0x180aa9(0x117);}};function mergeMcpConfig(_0x23b76c,_0x5b6f97,_0x4a56f9,_0x23e923={}){const _0x25ab51={_0x52784c:0x1a2,_0x2a4ebc:0x182,_0x4ae0a3:0xee,_0x2565b5:0x189,_0x472b78:0xee},_0x4aebef=_0x10d5b4;if(_0x23b76c===null){const _0x6f4b0b=JSON[_0x4aebef(0x17f)]({'mcpServers':{[_0x5b6f97]:_0x4a56f9}},null,0x2)+'\x0a';return{'action':_0x4aebef(_0x25ab51._0x52784c),'newContent':_0x6f4b0b};}let _0x56e1b3;try{_0x56e1b3=JSON['parse'](_0x23b76c);}catch(_0x377357){throw new McpJsonParseError(_0x4aebef(_0x25ab51._0x2a4ebc)+_0x377357[_0x4aebef(0x1b5)]+_0x4aebef(0x1ba));}(!_0x56e1b3[_0x4aebef(_0x25ab51._0x4ae0a3)]||typeof _0x56e1b3[_0x4aebef(0xee)]!=='object')&&(_0x56e1b3[_0x4aebef(_0x25ab51._0x4ae0a3)]={});const _0x41a419=_0x5b6f97 in _0x56e1b3['mcpServers'];if(_0x41a419&&!_0x23e923[_0x4aebef(0x122)])return{'action':_0x4aebef(_0x25ab51._0x2565b5),'newContent':_0x23b76c};_0x56e1b3[_0x4aebef(_0x25ab51._0x472b78)][_0x5b6f97]=_0x4a56f9;const _0x176180=JSON['stringify'](_0x56e1b3,null,0x2)+'\x0a';return{'action':_0x41a419?_0x4aebef(0xcd):_0x4aebef(0x187),'newContent':_0x176180};}__name(mergeMcpConfig,_0x10d5b4(0x169));var ClaudeSettingsParseError=class extends Error{static{__name(this,_0x10d5b4(0x111));}constructor(_0x41b136){const _0x4ff759={_0x1b651a:0x15e,_0x127776:0x111},_0x17bf0e=_0x10d5b4;super(_0x41b136),this[_0x17bf0e(_0x4ff759._0x1b651a)]=_0x17bf0e(_0x4ff759._0x127776);}};function mergeClaudeAllowEntries(_0x124d82,_0x482e6e){const _0x2b4eec={_0x372a12:0x1b5,_0x3cdb06:0x1ba,_0x49c13a:0x10f,_0x39e960:0x10f,_0x22c4d5:0x17a,_0x14e1e6:0x14e,_0xceb3a8:0x1a9,_0x44cdc8:0x189,_0x901412:0x17f},_0x316291=_0x10d5b4;if(_0x124d82===null){const _0x40046b=JSON['stringify']({'permissions':{'allow':[..._0x482e6e]}},null,0x2)+'\x0a';return{'action':'created','newContent':_0x40046b,'added':[..._0x482e6e]};}let _0x24697e;try{_0x24697e=JSON['parse'](_0x124d82);}catch(_0x4b2827){throw new ClaudeSettingsParseError('Failed\x20to\x20parse\x20.claude/settings.json\x20as\x20JSON:\x20'+_0x4b2827[_0x316291(_0x2b4eec._0x372a12)]+_0x316291(_0x2b4eec._0x3cdb06));}(!_0x24697e[_0x316291(0x10f)]||typeof _0x24697e[_0x316291(_0x2b4eec._0x49c13a)]!==_0x316291(0x192))&&(_0x24697e[_0x316291(0x10f)]={});const _0x2dbedb=Array[_0x316291(0xec)](_0x24697e['permissions'][_0x316291(0x14e)])?_0x24697e[_0x316291(_0x2b4eec._0x39e960)][_0x316291(0x14e)]:[],_0x4964a9=[];for(const _0xb066ea of _0x482e6e){!_0x2dbedb[_0x316291(0x1b3)](_0xb066ea)&&(_0x2dbedb[_0x316291(_0x2b4eec._0x22c4d5)](_0xb066ea),_0x4964a9[_0x316291(0x17a)](_0xb066ea));}_0x24697e[_0x316291(0x10f)][_0x316291(_0x2b4eec._0x14e1e6)]=_0x2dbedb;if(_0x4964a9[_0x316291(_0x2b4eec._0xceb3a8)]===0x0)return{'action':_0x316291(_0x2b4eec._0x44cdc8),'newContent':_0x124d82,'added':[]};const _0x513ac8=JSON[_0x316291(_0x2b4eec._0x901412)](_0x24697e,null,0x2)+'\x0a';return{'action':_0x316291(0x187),'newContent':_0x513ac8,'added':_0x4964a9};}__name(mergeClaudeAllowEntries,_0x10d5b4(0x198));function mergeClaudeHooks(_0x5eada2,_0x43821e,_0x8c3606,_0x54a3ac){const _0x39ac29={_0x5ab986:0xd4,_0xde4a99:0x192,_0x30be2a:0xd4,_0x461001:0x149,_0x3dcb78:0x17a,_0x3d9669:0x1a9,_0x2c749a:0x17f,_0xdfba0e:0x187,_0x5785eb:0x17f},_0x7e746b=_0x10d5b4;let _0x3d9153;if(_0x5eada2===null)_0x3d9153={};else try{_0x3d9153=JSON[_0x7e746b(0x166)](_0x5eada2);}catch(_0x51b80a){throw new ClaudeSettingsParseError('Failed\x20to\x20parse\x20.claude/settings.json\x20as\x20JSON:\x20'+_0x51b80a[_0x7e746b(0x1b5)]+_0x7e746b(0x1ba));}const _0x5b2c14=_0x3d9153['hooks']&&typeof _0x3d9153[_0x7e746b(_0x39ac29._0x5ab986)]===_0x7e746b(_0x39ac29._0xde4a99)?_0x3d9153[_0x7e746b(_0x39ac29._0x30be2a)]:{},_0x363e6d=[];for(const _0x56c4a6 of _0x43821e){const _0x556e10=Array[_0x7e746b(0xec)](_0x5b2c14[_0x56c4a6])?_0x5b2c14[_0x56c4a6]:[],_0x18d730=_0x556e10['some'](_0x2edf67=>(_0x2edf67[_0x7e746b(0xd4)]??[])[_0x7e746b(0x1c8)](_0x1c312e=>(_0x1c312e[_0x7e746b(0x149)]??'')['includes'](_0x54a3ac)));if(_0x18d730)continue;_0x556e10[_0x7e746b(0x17a)]({'matcher':'*','hooks':[{'type':_0x7e746b(_0x39ac29._0x461001),'command':_0x8c3606}]}),_0x5b2c14[_0x56c4a6]=_0x556e10,_0x363e6d[_0x7e746b(_0x39ac29._0x3dcb78)](_0x56c4a6);}_0x3d9153[_0x7e746b(0xd4)]=_0x5b2c14;if(_0x363e6d[_0x7e746b(_0x39ac29._0x3d9669)]===0x0)return{'action':_0x7e746b(0x189),'newContent':_0x5eada2??JSON[_0x7e746b(_0x39ac29._0x2c749a)](_0x3d9153,null,0x2)+'\x0a','added':[]};return{'action':_0x7e746b(_0x39ac29._0xdfba0e),'newContent':JSON[_0x7e746b(_0x39ac29._0x5785eb)](_0x3d9153,null,0x2)+'\x0a','added':_0x363e6d};}__name(mergeClaudeHooks,_0x10d5b4(0x124));var BEGIN='<!--\x20unotest:begin\x20(managed\x20by\x20@unotest/web\x20init\x20—\x20do\x20not\x20edit\x20inside)\x20-->',END=_0x10d5b4(0x156);function mergeClaudeMd(_0x2a1a7f,_0x1e9380){const _0x15929c={_0x5875a1:0x172,_0x678020:0x150},_0x219927=_0x10d5b4,_0x56c66d=BEGIN+'\x0a'+_0x1e9380['trim']()+'\x0a'+END;if(_0x2a1a7f===null)return{'action':'created','newContent':_0x56c66d+'\x0a'};const _0x50190f=_0x2a1a7f[_0x219927(0x173)](BEGIN);if(_0x50190f===-0x1){const _0x4fdf88=_0x2a1a7f[_0x219927(0xd6)]('\x0a')?_0x2a1a7f:_0x2a1a7f+'\x0a';return{'action':_0x219927(0x12d),'newContent':_0x4fdf88+'\x0a'+_0x56c66d+'\x0a'};}const _0x4727cf=_0x2a1a7f[_0x219927(0x173)](END,_0x50190f);if(_0x4727cf===-0x1){const _0x295b8c=_0x2a1a7f[_0x219927(0xd6)]('\x0a')?_0x2a1a7f:_0x2a1a7f+'\x0a';return{'action':_0x219927(0x12d),'newContent':_0x295b8c+'\x0a'+_0x56c66d+'\x0a'};}const _0x27748f=_0x2a1a7f[_0x219927(_0x15929c._0x5875a1)](0x0,_0x50190f)+_0x56c66d+_0x2a1a7f[_0x219927(_0x15929c._0x5875a1)](_0x4727cf+END['length']);if(_0x27748f===_0x2a1a7f)return{'action':'already-present','newContent':_0x2a1a7f};return{'action':_0x219927(_0x15929c._0x678020),'newContent':_0x27748f};}__name(mergeClaudeMd,_0x10d5b4(0x11f));import{appendUniqueLines}from'@unotest/core';var AGENT_LOG_HOOK_EVENTS=[_0x10d5b4(0xdb),_0x10d5b4(0x142),_0x10d5b4(0x13c),'PreToolUse',_0x10d5b4(0x1bb),'PostToolUseFailure',_0x10d5b4(0x1b6),'SubagentStart','SubagentStop',_0x10d5b4(0xf3),_0x10d5b4(0xe2)];function parseArgs(_0x35fb21){const _0x108c47={_0x2b8468:0x1a9,_0xd86401:0x15b,_0x245949:0x106,_0x519d34:0x140,_0xede45c:0x105},_0x106a5f=_0x10d5b4;let _0x341faf=![],_0x1cfb2a=process['cwd'](),_0x19cfbe;for(let _0x110057=0x0;_0x110057<_0x35fb21[_0x106a5f(_0x108c47._0x2b8468)];_0x110057++){const _0x41ed95=_0x35fb21[_0x110057];if(_0x41ed95===_0x106a5f(0xd8)||_0x41ed95==='-f')_0x341faf=!![];else{if(_0x41ed95===_0x106a5f(0x1a5)){const _0x150459=_0x35fb21[++_0x110057];if(_0x150459===_0x106a5f(_0x108c47._0xd86401)||_0x150459===_0x106a5f(0xd0)||_0x150459==='none')_0x19cfbe=_0x150459;else throw new Error('--browser\x20expects\x20system|bundled|none,\x20got\x20'+String(_0x150459));}else{if(!_0x41ed95[_0x106a5f(_0x108c47._0x245949)]('-'))_0x1cfb2a=_0x479db5(process[_0x106a5f(_0x108c47._0x519d34)](),_0x41ed95);}}}const _0x4d5922={'cwd':_0x1cfb2a,'force':_0x341faf};if(_0x19cfbe!==void 0x0)_0x4d5922[_0x106a5f(_0x108c47._0xede45c)]=_0x19cfbe;return _0x4d5922;}__name(parseArgs,_0x10d5b4(0x1bf));function symbol(_0x4366da){const _0x533abc=_0x10d5b4;return _0x4366da==='ok'?'✓':_0x4366da===_0x533abc(0x1a8)?'⚠':'✗';}__name(symbol,_0x10d5b4(0x138));function readOwnVersion(){const _0x5c9d52={_0x19cf6d:0x1c9,_0x2c80bb:0x1c0,_0x433088:0x1a9},_0x4941d8=_0x10d5b4,_0xc4574d=_0x14aae4(_0x540041(import.meta.url)),_0x59d0da=_0x479db5(_0xc4574d,_0x4941d8(_0x5c9d52._0x19cf6d)),_0x369dfc=readFileSync(_0x59d0da,_0x4941d8(0xdd)),_0x328e96=JSON['parse'](_0x369dfc);if(typeof _0x328e96[_0x4941d8(0x1c0)]!==_0x4941d8(0x107)||_0x328e96[_0x4941d8(_0x5c9d52._0x2c80bb)][_0x4941d8(_0x5c9d52._0x433088)]===0x0)throw new Error(_0x4941d8(0x197)+_0x59d0da+_0x4941d8(0x11d));return _0x328e96[_0x4941d8(_0x5c9d52._0x2c80bb)];}__name(readOwnVersion,'readOwnVersion');function ensureDir(_0x515884){if(!_0x2e3816(_0x515884))mkdirSync(_0x515884,{'recursive':!![]});}__name(ensureDir,_0x10d5b4(0xd5));function writeIfNeeded(_0x2096ad,_0x3bc2f4,_0xfae5b8){const _0x5f4cbc={_0x269a21:0x10c,_0x7ab181:0xf8},_0x132b0d=_0x10d5b4,_0x5675f8=_0x2e3816(_0x2096ad);if(_0x5675f8&&!_0xfae5b8)return _0x132b0d(_0x5f4cbc._0x269a21);return ensureDir(_0x14aae4(_0x2096ad)),writeFileSync(_0x2096ad,_0x3bc2f4),_0x5675f8?_0x132b0d(_0x5f4cbc._0x7ab181):_0x132b0d(0x1a2);}__name(writeIfNeeded,_0x10d5b4(0x171));function writeIfAbsent(_0x420af0,_0x4d5f61){const _0x315dce={_0x33c3f6:0x10c},_0x2d4182=_0x10d5b4;if(_0x2e3816(_0x420af0))return _0x2d4182(_0x315dce._0x33c3f6);return ensureDir(_0x14aae4(_0x420af0)),writeFileSync(_0x420af0,_0x4d5f61),_0x2d4182(0x1a2);}__name(writeIfAbsent,_0x10d5b4(0x134));async function runInit(_0x28ccd2){const _0x4b3044={_0x16aba3:0x1cb,_0x1defd5:0x139,_0x3f70cf:0x1a0,_0x53772e:0x13b,_0x4606dd:0x15e,_0x1d7171:0x102,_0x32fbc1:0x15d,_0x59fc2f:0xef,_0x16295c:0xe9,_0x5428b8:0x19b,_0x576e11:0x10a,_0x5905d4:0x122,_0x367283:0x17a,_0x241bef:0x158,_0x14fd66:0x1b8,_0x8bb18d:0x164,_0xa3e33d:0xda,_0x4af56f:0x140,_0x157122:0x19f,_0xd7e7c6:0x189,_0x2a4d42:0x1be,_0x1544d3:0x1c2,_0x22fe7f:0x14c,_0x25feb5:0x1a7,_0x21fe6a:0xf2,_0x50f869:0x17a,_0x4cc62c:0x140,_0x379db7:0xce,_0x2453a8:0xce,_0x208711:0x17a,_0x4ee04e:0xfc,_0x1a78c0:0x12b,_0x43bfcd:0xdc,_0x3bbc20:0xe3,_0x524582:0x19d,_0x56b868:0xd3,_0x379f72:0xf8,_0x27a705:0x121,_0x516b1b:0xd3,_0x34496f:0x135,_0x79e16:0xd3,_0x12f422:0x1cb,_0x301c77:0xfe,_0x288cd:0xdd,_0x9c2a12:0x146,_0x2aae82:0x17c,_0x2dcb6f:0x1be,_0x4c4ae2:0x1a2,_0x595254:0xe5,_0x1a5b54:0x184,_0x3b9a34:0x1b7,_0x295fbd:0x1ac,_0xed8938:0x196,_0x3fda58:0xe4,_0xcac44a:0xf1,_0x3a491b:0x1b5,_0x21fe6d:0xdf,_0x2e32fa:0xdd,_0x1e8fb2:0x178,_0x478ae8:0x1be,_0x36c07d:0xfa,_0x4c9373:0x189,_0x5cd65a:0x1a2,_0x448a53:0xf5,_0x12da42:0xde,_0x1191fb:0xe1,_0x2e0054:0x1cb,_0x2b17a6:0x196,_0x32e5b9:0x187,_0x3feb9d:0x159,_0x276c6d:0x1a0,_0x34a4d2:0x196,_0x2d746f:0x12f,_0x3b4f96:0x16e,_0x2545e7:0x187,_0xb66090:0x1cb,_0x5b9c1c:0x1a9,_0x7b265c:0x1a0,_0x31e685:0xff,_0x581262:0xfb,_0xee8061:0x157,_0x142486:0x1cb,_0x436de0:0x163,_0x45dcbc:0x105,_0x2ceab4:0x1cc,_0x46767d:0x1cc,_0x37fc77:0x1a0,_0x1abbcd:0x167,_0x32a81c:0x191,_0x40dfd9:0x10b,_0x227a18:0x1b2},_0x149375={_0x6a6b4f:0x1ae,_0x6743dc:0x140,_0x4fa000:0x125,_0x28d71d:0xdd,_0x1a30c3:0x10c},_0x2e7800=_0x10d5b4,_0x19329e=parseArgs(_0x28ccd2);process[_0x2e7800(_0x4b3044._0x16aba3)][_0x2e7800(0x1a0)](_0x2e7800(_0x4b3044._0x1defd5)+_0x19329e[_0x2e7800(0x140)]+'\x0a\x0a'),process['stdout'][_0x2e7800(_0x4b3044._0x3f70cf)](_0x2e7800(_0x4b3044._0x53772e));const _0x2724c1=runEnvironmentChecks({'cwd':_0x19329e['cwd']});let _0x2ed7c9=![];for(const _0x5648cb of _0x2724c1){process[_0x2e7800(0x1cb)][_0x2e7800(0x1a0)]('\x20\x20'+symbol(_0x5648cb[_0x2e7800(0x15d)])+'\x20'+_0x5648cb[_0x2e7800(_0x4b3044._0x4606dd)]+':\x20'+_0x5648cb['message']+'\x0a');if(_0x5648cb[_0x2e7800(_0x4b3044._0x1d7171)])process[_0x2e7800(_0x4b3044._0x16aba3)]['write']('\x20\x20\x20\x20\x20\x20'+_0x5648cb['detail']+'\x0a');if(_0x5648cb[_0x2e7800(_0x4b3044._0x32fbc1)]===_0x2e7800(_0x4b3044._0x59fc2f))_0x2ed7c9=!![];}if(_0x2ed7c9)return process[_0x2e7800(0xe4)]['write'](_0x2e7800(_0x4b3044._0x16295c)),{'exitCode':0x1};process['stdout'][_0x2e7800(0x1a0)](_0x2e7800(0x1b9));const _0x482b57=[];ensureDir(join(_0x19329e[_0x2e7800(0x140)],'unotest/e2e/_helpers'));for(const [_0x48040a,_0x5defc3]of Object[_0x2e7800(_0x4b3044._0x5428b8)](templates[_0x2e7800(_0x4b3044._0x576e11)])){_0x482b57[_0x2e7800(0x17a)]({'path':_0x2e7800(0x120)+_0x48040a,'status':writeIfNeeded(join(_0x19329e['cwd'],_0x2e7800(0x16a),_0x48040a),_0x5defc3,_0x19329e[_0x2e7800(_0x4b3044._0x5905d4)])});}_0x482b57[_0x2e7800(_0x4b3044._0x367283)]({'path':_0x2e7800(0x158),'status':writeIfNeeded(join(_0x19329e['cwd'],_0x2e7800(_0x4b3044._0x241bef)),templates['scenarioTemplate'],_0x19329e[_0x2e7800(0x122)])}),_0x482b57[_0x2e7800(0x17a)]({'path':_0x2e7800(_0x4b3044._0x14fd66),'status':writeIfNeeded(join(_0x19329e[_0x2e7800(0x140)],_0x2e7800(0x1b8)),'',_0x19329e['force'])}),_0x482b57[_0x2e7800(_0x4b3044._0x367283)]({'path':_0x2e7800(_0x4b3044._0x8bb18d),'status':writeIfNeeded(join(_0x19329e['cwd'],_0x2e7800(0x164)),templates[_0x2e7800(_0x4b3044._0xa3e33d)],_0x19329e['force'])});{const _0x27b528=join(_0x19329e[_0x2e7800(_0x4b3044._0x4af56f)],_0x2e7800(_0x4b3044._0x157122)),_0x5ef623=_0x2e3816(_0x27b528)?readFileSync(_0x27b528,_0x2e7800(0xdd)):null,_0x2c778e=mergeClaudeMd(_0x5ef623,templates['claudeMdBody']);_0x2c778e['action']!==_0x2e7800(_0x4b3044._0xd7e7c6)&&writeFileSync(_0x27b528,_0x2c778e[_0x2e7800(_0x4b3044._0x2a4d42)]),_0x482b57[_0x2e7800(0x17a)]({'path':_0x2e7800(_0x4b3044._0x157122),'status':_0x2c778e['action']===_0x2e7800(0x189)?'skipped':_0x2c778e[_0x2e7800(_0x4b3044._0x1544d3)]});}_0x482b57['push']({'path':'unotest/.env.example','status':writeIfNeeded(join(_0x19329e[_0x2e7800(_0x4b3044._0x4af56f)],_0x2e7800(_0x4b3044._0x22fe7f)),templates[_0x2e7800(_0x4b3044._0x25feb5)],_0x19329e[_0x2e7800(0x122)])}),_0x482b57['push']({'path':_0x2e7800(0xf2),'status':writeIfAbsent(join(_0x19329e['cwd'],_0x2e7800(_0x4b3044._0x21fe6a)),templates[_0x2e7800(0x1a7)])}),_0x482b57[_0x2e7800(_0x4b3044._0x50f869)]({'path':'unotest/.secrets','status':writeIfAbsent(join(_0x19329e[_0x2e7800(_0x4b3044._0x4cc62c)],'unotest/.secrets'),templates['secretsExample'])});const _0x55cdf8=join(_0x19329e[_0x2e7800(0x140)],_0x2e7800(_0x4b3044._0x379db7));_0x482b57[_0x2e7800(0x17a)]({'path':_0x2e7800(_0x4b3044._0x2453a8),'status':writeIfNeeded(_0x55cdf8,unotestConfigMjs(void 0x0),_0x19329e[_0x2e7800(_0x4b3044._0x5905d4)])});const _0x5867d8=_0x14aae4(_0x540041(import.meta.url)),_0x50bd62=__name((_0x2be528,_0x16b7c8)=>{const _0x102d0e=_0x2e7800,_0x1a43f4=_0x479db5(_0x5867d8,_0x102d0e(_0x149375._0x6a6b4f),_0x2be528),_0x23decd=join(_0x19329e[_0x102d0e(_0x149375._0x6743dc)],_0x2be528);if(!_0x2e3816(_0x1a43f4))return{'path':_0x2be528,'status':_0x16b7c8+_0x102d0e(_0x149375._0x4fa000)};if(_0x2e3816(_0x23decd)){if(readFileSync(_0x23decd,_0x102d0e(_0x149375._0x28d71d))===readFileSync(_0x1a43f4,_0x102d0e(_0x149375._0x28d71d)))return{'path':_0x2be528,'status':_0x102d0e(_0x149375._0x1a30c3)};return copyFileSync(_0x1a43f4,_0x23decd),{'path':_0x2be528,'status':_0x102d0e(0x150)};}return ensureDir(_0x14aae4(_0x23decd)),copyFileSync(_0x1a43f4,_0x23decd),{'path':_0x2be528,'status':'created'};},'copyPackageFile');_0x482b57[_0x2e7800(_0x4b3044._0x208711)](_0x50bd62(_0x2e7800(_0x4b3044._0x4ee04e),_0x2e7800(_0x4b3044._0x1a78c0)),_0x50bd62(_0x2e7800(_0x4b3044._0x43bfcd),_0x2e7800(_0x4b3044._0x3bbc20))),_0x482b57[_0x2e7800(0x17a)](_0x50bd62(_0x2e7800(0x1a6),_0x2e7800(_0x4b3044._0x524582)));for(const _0x56859f of _0x482b57){const _0x8851b1=_0x56859f['status']==='created'?'✓\x20created':_0x56859f[_0x2e7800(_0x4b3044._0x56b868)]===_0x2e7800(_0x4b3044._0x379f72)?'✓\x20overwrote':_0x56859f[_0x2e7800(0xd3)]===_0x2e7800(0x150)?_0x2e7800(_0x4b3044._0x27a705):_0x56859f[_0x2e7800(_0x4b3044._0x516b1b)][_0x2e7800(0x106)](_0x2e7800(0x10c))?_0x2e7800(_0x4b3044._0x34496f):'·\x20'+_0x56859f[_0x2e7800(_0x4b3044._0x79e16)];process[_0x2e7800(_0x4b3044._0x12f422)][_0x2e7800(0x1a0)]('\x20\x20'+_0x8851b1+'\x20\x20'+_0x56859f[_0x2e7800(_0x4b3044._0x301c77)]+'\x0a');}process['stdout'][_0x2e7800(0x1a0)]('\x0aMCP\x20config:\x0a');const _0x280fc2=join(_0x19329e['cwd'],_0x2e7800(0x16f)),_0xda0fb6=_0x2e3816(_0x280fc2)?readFileSync(_0x280fc2,_0x2e7800(_0x4b3044._0x288cd)):null,_0x2074d3=readOwnVersion(),_0x5910bb={'command':_0x2e7800(0xe6),'args':['-y',_0x2e7800(_0x4b3044._0x9c2a12)+_0x2074d3,_0x2e7800(_0x4b3044._0x2aae82)]};try{const _0x131a16=mergeMcpConfig(_0xda0fb6,'unotest-web',_0x5910bb,{'force':_0x19329e[_0x2e7800(_0x4b3044._0x5905d4)]});_0x131a16['action']!==_0x2e7800(0x189)&&writeFileSync(_0x280fc2,_0x131a16[_0x2e7800(_0x4b3044._0x2dcb6f)]);const _0x248a6a=_0x131a16[_0x2e7800(0x1c2)]===_0x2e7800(_0x4b3044._0x4c4ae2)?_0x2e7800(_0x4b3044._0x595254):_0x131a16['action']===_0x2e7800(0x187)?_0x2e7800(_0x4b3044._0x1a5b54):_0x131a16[_0x2e7800(0x1c2)]==='force-overwrote'?_0x2e7800(_0x4b3044._0x3b9a34):_0x2e7800(_0x4b3044._0x295fbd);process['stdout'][_0x2e7800(0x1a0)](_0x2e7800(_0x4b3044._0xed8938)+_0x248a6a+'\x0a');}catch(_0x3e5f8a){if(_0x3e5f8a instanceof McpJsonParseError)return process[_0x2e7800(_0x4b3044._0x3fda58)]['write'](_0x2e7800(_0x4b3044._0xcac44a)+_0x3e5f8a[_0x2e7800(_0x4b3044._0x3a491b)]+'\x0a'),{'exitCode':0x1};throw _0x3e5f8a;}process['stdout'][_0x2e7800(0x1a0)](_0x2e7800(_0x4b3044._0x21fe6d));const _0x177f81=join(_0x19329e[_0x2e7800(0x140)],_0x2e7800(0xd9)),_0x26b6aa=_0x2e3816(_0x177f81)?readFileSync(_0x177f81,_0x2e7800(_0x4b3044._0x2e32fa)):null;try{const _0xf09386=mergeClaudeAllowEntries(_0x26b6aa,[_0x2e7800(0x132)]),_0x21b8c0=_0x2e7800(_0x4b3044._0x1e8fb2),_0x2194a3=mergeClaudeHooks(_0xf09386[_0x2e7800(_0x4b3044._0x478ae8)],AGENT_LOG_HOOK_EVENTS,_0x21b8c0,_0x2e7800(_0x4b3044._0x36c07d));(_0xf09386[_0x2e7800(0x1c2)]!==_0x2e7800(_0x4b3044._0xd7e7c6)||_0x2194a3[_0x2e7800(_0x4b3044._0x1544d3)]!==_0x2e7800(_0x4b3044._0x4c9373))&&(ensureDir(_0x14aae4(_0x177f81)),writeFileSync(_0x177f81,_0x2194a3[_0x2e7800(0x1be)]));const _0x5c0ea4=_0xf09386[_0x2e7800(0x1c2)]===_0x2e7800(_0x4b3044._0x5cd65a)?_0x2e7800(_0x4b3044._0x448a53):_0xf09386['action']===_0x2e7800(0x187)?_0x2e7800(_0x4b3044._0x12da42)+_0xf09386['added']['join'](',\x20'):_0x2e7800(_0x4b3044._0x1191fb);process[_0x2e7800(_0x4b3044._0x2e0054)][_0x2e7800(0x1a0)](_0x2e7800(_0x4b3044._0x2b17a6)+_0x5c0ea4+'\x0a');const _0x194530=_0x2194a3['action']===_0x2e7800(_0x4b3044._0x32e5b9)?_0x2e7800(0x190)+_0x2194a3[_0x2e7800(0x187)]['length']+_0x2e7800(_0x4b3044._0x3feb9d):'agent-trace\x20hooks\x20already\x20present';process[_0x2e7800(0x1cb)][_0x2e7800(_0x4b3044._0x276c6d)](_0x2e7800(_0x4b3044._0x34a4d2)+_0x194530+'\x0a');}catch(_0x26d837){if(_0x26d837 instanceof ClaudeSettingsParseError)return process[_0x2e7800(_0x4b3044._0x3fda58)][_0x2e7800(0x1a0)](_0x2e7800(0xf1)+_0x26d837['message']+'\x0a'),{'exitCode':0x1};throw _0x26d837;}process['stdout'][_0x2e7800(_0x4b3044._0x276c6d)]('\x0a.gitignore:\x0a');const _0x5b1730=join(_0x19329e[_0x2e7800(0x140)],'.gitignore'),_0x558565=_0x2e3816(_0x5b1730)?readFileSync(_0x5b1730,_0x2e7800(0xdd)):null,_0x88ffdd=appendUniqueLines(_0x558565,['unotest/.env*','!unotest/.env.example',_0x2e7800(_0x4b3044._0x2d746f),'.unotest/','unotest/.runs*/',_0x2e7800(0x16b),'unotest/.snapshots/',_0x2e7800(_0x4b3044._0x3b4f96),_0x2e7800(0x168),_0x2e7800(0x180)]);if(_0x88ffdd[_0x2e7800(0x187)]['length']>0x0){writeFileSync(_0x5b1730,_0x88ffdd[_0x2e7800(0x1be)]);for(const _0x9ee6c7 of _0x88ffdd[_0x2e7800(_0x4b3044._0x2545e7)]){process[_0x2e7800(_0x4b3044._0x16aba3)][_0x2e7800(0x1a0)]('\x20\x20✓\x20added\x20\x22'+_0x9ee6c7+'\x22\x0a');}}for(const _0x23453f of _0x88ffdd[_0x2e7800(0xd7)]){process[_0x2e7800(_0x4b3044._0xb66090)][_0x2e7800(0x1a0)](_0x2e7800(0x17d)+_0x23453f+'\x22\x0a');}_0x88ffdd['added'][_0x2e7800(_0x4b3044._0x5b9c1c)]===0x0&&_0x88ffdd['alreadyPresent'][_0x2e7800(0x1a9)]===0x0&&process[_0x2e7800(_0x4b3044._0x2e0054)][_0x2e7800(_0x4b3044._0x7b265c)](_0x2e7800(0x13e));process[_0x2e7800(0x1cb)][_0x2e7800(0x1a0)](_0x2e7800(_0x4b3044._0x31e685));const _0x55bfac=probeSystemBrowser(),_0x57c3bc=Boolean(process[_0x2e7800(_0x4b3044._0x581262)][_0x2e7800(_0x4b3044._0xee8061)])&&Boolean(process[_0x2e7800(_0x4b3044._0x142486)]['isTTY']),_0x4f6800={'probe':_0x55bfac,'interactive':_0x57c3bc};if(_0x19329e[_0x2e7800(0x105)])_0x4f6800[_0x2e7800(_0x4b3044._0x436de0)]=_0x19329e[_0x2e7800(_0x4b3044._0x45dcbc)];const _0x59e418=await chooseBrowser(_0x4f6800);writeFileSync(_0x55cdf8,unotestConfigMjs(_0x59e418['channel']));const _0x49962c=_0x59e418[_0x2e7800(_0x4b3044._0x2ceab4)]===void 0x0?'no\x20channel\x20set\x20(bundled\x20fallback\x20after\x20install-chromium)':_0x59e418['channel']===null?'channel:\x20null\x20(bundled\x20chromium)':_0x2e7800(0x194)+_0x59e418[_0x2e7800(_0x4b3044._0x46767d)]+'\x27';process['stdout'][_0x2e7800(_0x4b3044._0x37fc77)](_0x2e7800(_0x4b3044._0x1abbcd)+_0x49962c+'\x0a'),process[_0x2e7800(0x1cb)][_0x2e7800(0x1a0)](_0x2e7800(_0x4b3044._0x32a81c));if(_0x59e418['warnings'][_0x2e7800(0x1a9)]>0x0){for(const _0x441fff of _0x59e418[_0x2e7800(_0x4b3044._0x40dfd9)])process['stdout'][_0x2e7800(0x1a0)]('\x20\x20'+_0x441fff+'\x0a');process[_0x2e7800(0x1cb)]['write']('\x0a');}return process['stdout']['write'](_0x2e7800(_0x4b3044._0x227a18)),{'exitCode':0x0};}__name(runInit,_0x10d5b4(0x145));var invokedDirectly2=process[_0x10d5b4(0x147)][0x1]&&_0x540041(import.meta.url)===process[_0x10d5b4(0x147)][0x1];invokedDirectly2&&runInit(process[_0x10d5b4(0x147)][_0x10d5b4(0x172)](0x2))[_0x10d5b4(0x12a)](({exitCode:_0x2427e1})=>{process['exitCode']=_0x2427e1;})[_0x10d5b4(0x18b)](_0x3a52f3=>{const _0x17e7d4={_0x3dc5b3:0x108,_0x1f2917:0x1b5},_0x3a525e=_0x10d5b4;process[_0x3a525e(0xe4)][_0x3a525e(0x1a0)](_0x3a525e(_0x17e7d4._0x3dc5b3)+(_0x3a52f3 instanceof Error?_0x3a52f3[_0x3a525e(_0x17e7d4._0x1f2917)]:String(_0x3a52f3))+'\x0a'),process[_0x3a525e(0x116)]=0x1;});export{runInit};
@@ -1 +1 @@
1
- const _0x1e6b5c=_0xd022;(function(_0x3ee979,_0x85ed67){const _0x5ed583={_0x346d4b:0x130,_0x1d9d6f:0x126,_0x361089:0x135,_0x42c12a:0x138},_0x5263b8=_0xd022,_0x56e3c0=_0x3ee979();while(!![]){try{const _0x5c4937=-parseInt(_0x5263b8(0x134))/0x1*(parseInt(_0x5263b8(0x128))/0x2)+-parseInt(_0x5263b8(0x12a))/0x3+-parseInt(_0x5263b8(0x131))/0x4*(parseInt(_0x5263b8(_0x5ed583._0x346d4b))/0x5)+-parseInt(_0x5263b8(_0x5ed583._0x1d9d6f))/0x6+-parseInt(_0x5263b8(_0x5ed583._0x361089))/0x7+-parseInt(_0x5263b8(0x122))/0x8+parseInt(_0x5263b8(0x125))/0x9*(parseInt(_0x5263b8(_0x5ed583._0x42c12a))/0xa);if(_0x5c4937===_0x85ed67)break;else _0x56e3c0['push'](_0x56e3c0['shift']());}catch(_0x246b1d){_0x56e3c0['push'](_0x56e3c0['shift']());}}}(_0x227a,0xeae39));var __defProp=Object[_0x1e6b5c(0x137)],__name=(_0x66d7a7,_0x3f5d78)=>__defProp(_0x66d7a7,'name',{'value':_0x3f5d78,'configurable':!![]});import{spawn}from'child_process';function _0x227a(){const _0x5583b4=['C3rKB3v0v3jPDgu','CgLWzq','mZa4mZiZmtDws0r6v1K','mJa2mdqXogTxu0zJtq','yxjNDG','mJyWmduYyw1RA09j','CgXHExDYAwDODa','mJaXnJe2mNLQrNzhuW','CgXHExDYAwDODc9WywnRywDLlMPZB24GAgfZig5VihvZywjSzsaIyMLUiIbMAwvSza','4PYxigLUC3rHBgWTy2HYB21PDw06ia','CNvUsw5ZDgfSBenOCM9TAxvTq2XP','y2HYB21PDw0','zxHLy1bHDgG','mJvhquHtBvm','mtiZnJK4oeDksvjTqW','y2HYB21PDw0Gzg93BMXVywqGzxHPDgvKihDPDgGGy29Kzsa','zgf0yq','mtbKEw92weK','mte4ntmXnZbirfvYwKi','C3rKzxjY','zgvMAw5LuhjVCgvYDhK','mJbYr1Pvq2u','Dg9tDhjPBMC','Aw5OzxjPDa','C3rKB3v0','DgHLBG','zxHPDa','D3jPDgu','mJy3nda3mM50EeDOwa'];_0x227a=function(){return _0x5583b4;};return _0x227a();}import{createRequire}from'module';import{dirname,resolve}from'path';import{fileURLToPath}from'url';async function installChromium(_0x5ecdff={}){const _0x1957d1={_0x3d4f9a:0x123,_0x1fbb08:0x12b},_0x33a1ef={_0x49535a:0x13b,_0x35a220:0x120},_0x61dedd=_0x1e6b5c,_0x1c3698=_0x5ecdff[_0x61dedd(_0x1957d1._0x3d4f9a)]??(_0x12537d=>process[_0x61dedd(0x13b)][_0x61dedd(0x121)](_0x12537d)),_0x20211f=createRequire(import.meta.url),_0x5ed6ab=_0x20211f['resolve']('playwright/package.json'),_0x53b70c=_0x20211f(_0x5ed6ab),_0x2998d6=typeof _0x53b70c['bin']==='string'?_0x53b70c['bin']:_0x53b70c['bin']?.[_0x61dedd(0x129)];if(!_0x2998d6)throw new Error(_0x61dedd(_0x1957d1._0x1fbb08));const _0x29589a=resolve(dirname(_0x5ed6ab),_0x2998d6);return new Promise((_0x1476a5,_0x3575b6)=>{const _0x2009b9=_0x61dedd,_0x2583a2=spawn(process[_0x2009b9(0x12f)],[_0x29589a,'install',_0x2009b9(0x12e)],{'stdio':[_0x2009b9(0x13a),_0x2009b9(0x124),_0x2009b9(0x124)]});_0x2583a2[_0x2009b9(_0x33a1ef._0x49535a)]?.['on']('data',_0x257f32=>_0x1c3698(_0x257f32[_0x2009b9(0x139)]())),_0x2583a2['stderr']?.['on'](_0x2009b9(0x133),_0x1f40da=>_0x1c3698(_0x1f40da[_0x2009b9(0x139)]())),_0x2583a2['on']('error',_0x3575b6),_0x2583a2['on'](_0x2009b9(_0x33a1ef._0x35a220),_0x45fd94=>{const _0x360703=_0x2009b9;if(_0x45fd94===0x0)_0x1476a5();else _0x3575b6(new Error(_0x360703(0x132)+_0x45fd94));});});}__name(installChromium,'installChromium');function _0xd022(_0x5d39b0,_0x5dc084){_0x5d39b0=_0x5d39b0-0x11f;const _0x227a59=_0x227a();let _0xd02273=_0x227a59[_0x5d39b0];if(_0xd022['NjGoEg']===undefined){var _0x2a2277=function(_0x291ac9){const _0x43d6f2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x66d7a7='',_0x3f5d78='';for(let _0x5ecdff=0x0,_0x1c3698,_0x20211f,_0x5ed6ab=0x0;_0x20211f=_0x291ac9['charAt'](_0x5ed6ab++);~_0x20211f&&(_0x1c3698=_0x5ecdff%0x4?_0x1c3698*0x40+_0x20211f:_0x20211f,_0x5ecdff++%0x4)?_0x66d7a7+=String['fromCharCode'](0xff&_0x1c3698>>(-0x2*_0x5ecdff&0x6)):0x0){_0x20211f=_0x43d6f2['indexOf'](_0x20211f);}for(let _0x53b70c=0x0,_0x2998d6=_0x66d7a7['length'];_0x53b70c<_0x2998d6;_0x53b70c++){_0x3f5d78+='%'+('00'+_0x66d7a7['charCodeAt'](_0x53b70c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3f5d78);};_0xd022['lbpbzW']=_0x2a2277,_0xd022['zfYsGC']={},_0xd022['NjGoEg']=!![];}const _0x13fe11=_0x227a59[0x0],_0x173113=_0x5d39b0+_0x13fe11,_0x2ac743=_0xd022['zfYsGC'][_0x173113];return!_0x2ac743?(_0xd02273=_0xd022['lbpbzW'](_0xd02273),_0xd022['zfYsGC'][_0x173113]=_0xd02273):_0xd02273=_0x2ac743,_0xd02273;}async function runInstallChromiumCli(){const _0xd7f044={_0x3f87e9:0x136,_0x594ccd:0x121},_0x4bf00a=_0x1e6b5c;try{return await installChromium(),0x0;}catch(_0x3eb113){return process[_0x4bf00a(_0xd7f044._0x3f87e9)][_0x4bf00a(_0xd7f044._0x594ccd)](_0x4bf00a(0x12c)+(_0x3eb113 instanceof Error?_0x3eb113['message']:String(_0x3eb113))+'\x0a'),0x1;}}__name(runInstallChromiumCli,_0x1e6b5c(0x12d));var invokedDirectly=process[_0x1e6b5c(0x127)][0x1]&&fileURLToPath(import.meta.url)===process[_0x1e6b5c(0x127)][0x1];invokedDirectly&&runInstallChromiumCli()[_0x1e6b5c(0x11f)](_0x250819=>process[_0x1e6b5c(0x120)](_0x250819));export{installChromium,runInstallChromiumCli};
1
+ function _0xbfcc(){const _0x1d4771=['zgvMAw5LuhjVCgvYDhK','CNvUsw5ZDgfSBenOCM9TAxvTq2XP','D3jPDgu','C3rKB3v0','mZbxse5TA28','mtC5mdC2A2zLAfHT','C3rKB3v0v3jPDgu','ndyYmJa4nxzys3ntra','mNDyC3nwvW','Aw5ZDgfSBa','mZq1ELrHzw9i','CMvZB2X2zq','yMLU','zxHLy1bHDgG','mZGZntC1mKT2B0r5ua','y2HYB21PDw0','y2HYB21PDw0Gzg93BMXVywqGzxHPDgvKihDPDgGGy29Kzsa','yxjNDG','C3rYAw5N','CgXHExDYAwDODc9WywnRywDLlMPZB24','zxHPDa','DgHLBG','4PYxigLUC3rHBgWTy2HYB21PDw06ia','CgLWzq','C3rKzxjY','Dg9tDhjPBMC','CgXHExDYAwDODa','mZK1mtzKA1nnsvm','CgXHExDYAwDODc9WywnRywDLlMPZB24GAgfZig5VihvZywjSzsaIyMLUiIbMAwvSza','BwvZC2fNzq','mtC3oduZofbntKjetG','Aw5ZDgfSBenOCM9TAxvT','Aw5OzxjPDa','nZmYodq4mhr6uxHeqq','nJuWmJy4nxfMwNzyBq','zgf0yq'];_0xbfcc=function(){return _0x1d4771;};return _0xbfcc();}function _0x5312(_0x3c7c80,_0x31436a){_0x3c7c80=_0x3c7c80-0x1a2;const _0xbfccc6=_0xbfcc();let _0x53125c=_0xbfccc6[_0x3c7c80];if(_0x5312['xBunYj']===undefined){var _0xe077e5=function(_0x1e2df2){const _0x22678e='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1c38e6='',_0x3012ad='';for(let _0x225c0d=0x0,_0x506a71,_0x24ed12,_0x1aaf6f=0x0;_0x24ed12=_0x1e2df2['charAt'](_0x1aaf6f++);~_0x24ed12&&(_0x506a71=_0x225c0d%0x4?_0x506a71*0x40+_0x24ed12:_0x24ed12,_0x225c0d++%0x4)?_0x1c38e6+=String['fromCharCode'](0xff&_0x506a71>>(-0x2*_0x225c0d&0x6)):0x0){_0x24ed12=_0x22678e['indexOf'](_0x24ed12);}for(let _0x1f9982=0x0,_0x2d0bf9=_0x1c38e6['length'];_0x1f9982<_0x2d0bf9;_0x1f9982++){_0x3012ad+='%'+('00'+_0x1c38e6['charCodeAt'](_0x1f9982)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3012ad);};_0x5312['fBXpJL']=_0xe077e5,_0x5312['poqETn']={},_0x5312['xBunYj']=!![];}const _0x21f77f=_0xbfccc6[0x0],_0x973e76=_0x3c7c80+_0x21f77f,_0x4d224a=_0x5312['poqETn'][_0x973e76];return!_0x4d224a?(_0x53125c=_0x5312['fBXpJL'](_0x53125c),_0x5312['poqETn'][_0x973e76]=_0x53125c):_0x53125c=_0x4d224a,_0x53125c;}const _0x26240d=_0x5312;(function(_0x5d11ce,_0x243e78){const _0x5b9956={_0x421132:0x1a3,_0x17827e:0x1bc,_0x2ab522:0x1a9},_0x28cdb3=_0x5312,_0x46adf6=_0x5d11ce();while(!![]){try{const _0x2232b0=-parseInt(_0x28cdb3(0x1c4))/0x1*(parseInt(_0x28cdb3(_0x5b9956._0x421132))/0x2)+-parseInt(_0x28cdb3(0x1a5))/0x3*(-parseInt(_0x28cdb3(0x1b6))/0x4)+-parseInt(_0x28cdb3(_0x5b9956._0x17827e))/0x5+parseInt(_0x28cdb3(0x1b9))/0x6+-parseInt(_0x28cdb3(0x1bd))/0x7+parseInt(_0x28cdb3(_0x5b9956._0x2ab522))/0x8+-parseInt(_0x28cdb3(0x1a2))/0x9*(-parseInt(_0x28cdb3(0x1c3))/0xa);if(_0x2232b0===_0x243e78)break;else _0x46adf6['push'](_0x46adf6['shift']());}catch(_0x742488){_0x46adf6['push'](_0x46adf6['shift']());}}}(_0xbfcc,0xd6961));var __defProp=Object[_0x26240d(0x1bf)],__name=(_0x1c38e6,_0x3012ad)=>__defProp(_0x1c38e6,'name',{'value':_0x3012ad,'configurable':!![]});import{spawn}from'child_process';import{createRequire}from'module';import{dirname,resolve}from'path';import{fileURLToPath}from'url';async function installChromium(_0x225c0d={}){const _0x314f40={_0x37ee68:0x1a6,_0x103be0:0x1ae,_0x23003d:0x1a7,_0x714d86:0x1a7,_0x3e046f:0x1b7},_0x2ed748={_0x33e7f6:0x1a4,_0x2ef36e:0x1aa,_0x56605d:0x1bb,_0x2c8d81:0x1b3,_0x46f9fc:0x1be},_0x5535dc=_0x26240d,_0x506a71=_0x225c0d[_0x5535dc(0x1c5)]??(_0x2d11e1=>process[_0x5535dc(0x1c2)][_0x5535dc(0x1c1)](_0x2d11e1)),_0x24ed12=createRequire(import.meta.url),_0x1aaf6f=_0x24ed12[_0x5535dc(_0x314f40._0x37ee68)](_0x5535dc(_0x314f40._0x103be0)),_0x1f9982=_0x24ed12(_0x1aaf6f),_0x2d0bf9=typeof _0x1f9982[_0x5535dc(_0x314f40._0x23003d)]===_0x5535dc(0x1ad)?_0x1f9982[_0x5535dc(0x1a7)]:_0x1f9982[_0x5535dc(_0x314f40._0x714d86)]?.[_0x5535dc(0x1b5)];if(!_0x2d0bf9)throw new Error(_0x5535dc(_0x314f40._0x3e046f));const _0x3e0cb6=resolve(dirname(_0x1aaf6f),_0x2d0bf9);return new Promise((_0xdc2f8a,_0x52e55e)=>{const _0x55868c=_0x5535dc,_0x3dab4a=spawn(process[_0x55868c(0x1a8)],[_0x3e0cb6,_0x55868c(_0x2ed748._0x33e7f6),_0x55868c(_0x2ed748._0x2ef36e)],{'stdio':[_0x55868c(_0x2ed748._0x56605d),_0x55868c(0x1b2),'pipe']});_0x3dab4a['stdout']?.['on'](_0x55868c(0x1be),_0x362d7a=>_0x506a71(_0x362d7a[_0x55868c(0x1b4)]())),_0x3dab4a[_0x55868c(_0x2ed748._0x2c8d81)]?.['on'](_0x55868c(_0x2ed748._0x46f9fc),_0xac76d1=>_0x506a71(_0xac76d1[_0x55868c(0x1b4)]())),_0x3dab4a['on']('error',_0x52e55e),_0x3dab4a['on']('exit',_0x2c9ac6=>{const _0x6a23a3=_0x55868c;if(_0x2c9ac6===0x0)_0xdc2f8a();else _0x52e55e(new Error(_0x6a23a3(0x1ab)+_0x2c9ac6));});});}__name(installChromium,_0x26240d(0x1ba));async function runInstallChromiumCli(){const _0x3e3de0={_0x4e4671:0x1b1},_0x317bf4=_0x26240d;try{return await installChromium(),0x0;}catch(_0xd7e7a4){return process[_0x317bf4(0x1b3)]['write'](_0x317bf4(_0x3e3de0._0x4e4671)+(_0xd7e7a4 instanceof Error?_0xd7e7a4[_0x317bf4(0x1b8)]:String(_0xd7e7a4))+'\x0a'),0x1;}}__name(runInstallChromiumCli,_0x26240d(0x1c0));var invokedDirectly=process[_0x26240d(0x1ac)][0x1]&&fileURLToPath(import.meta.url)===process[_0x26240d(0x1ac)][0x1];invokedDirectly&&runInstallChromiumCli()[_0x26240d(0x1b0)](_0x557676=>process[_0x26240d(0x1af)](_0x557676));export{installChromium,runInstallChromiumCli};
@@ -1 +1 @@
1
- const _0x3fbd25=_0x4b1d;(function(_0x5f2d85,_0x4eff3c){const _0x263a98={_0x5d374c:0x14f,_0x3b1c64:0x174,_0x58ec83:0x151,_0x343ba0:0x177,_0x3b2e19:0x1ae},_0x2f5238=_0x4b1d,_0xb96e15=_0x5f2d85();while(!![]){try{const _0x491830=parseInt(_0x2f5238(0x14a))/0x1+-parseInt(_0x2f5238(0x15b))/0x2*(parseInt(_0x2f5238(_0x263a98._0x5d374c))/0x3)+parseInt(_0x2f5238(0x187))/0x4+parseInt(_0x2f5238(_0x263a98._0x3b1c64))/0x5*(parseInt(_0x2f5238(_0x263a98._0x58ec83))/0x6)+-parseInt(_0x2f5238(0x154))/0x7*(parseInt(_0x2f5238(0x157))/0x8)+-parseInt(_0x2f5238(_0x263a98._0x343ba0))/0x9*(parseInt(_0x2f5238(_0x263a98._0x3b2e19))/0xa)+parseInt(_0x2f5238(0x17c))/0xb;if(_0x491830===_0x4eff3c)break;else _0xb96e15['push'](_0xb96e15['shift']());}catch(_0x53bed5){_0xb96e15['push'](_0xb96e15['shift']());}}}(_0x3526,0xebcdc));var __defProp=Object[_0x3fbd25(0x145)],__name=(_0x17ac4a,_0x50baad)=>__defProp(_0x17ac4a,_0x3fbd25(0x148),{'value':_0x50baad,'configurable':!![]});import{writeFileSync as _0x5d99e3}from'fs';import{join as _0x445d78}from'path';import{fileURLToPath}from'url';import{readFileSync as _0x2a55ab,existsSync as _0x2d495e}from'fs';import{relative}from'path';import{existsSync,mkdirSync,readFileSync,readdirSync,statSync,writeFileSync}from'fs';import{join,dirname}from'path';function readFailureBundle(_0x5b1cb6){const _0x1db374={_0x3f755a:0x14b,_0x2c3643:0x192,_0x35fd2f:0x168,_0x167ee7:0x17a,_0x2bdc21:0x17e,_0x192563:0x152,_0x4906f7:0x179},_0x32b787=_0x3fbd25;if(!existsSync(_0x5b1cb6))return null;const _0x331536=join(_0x5b1cb6,_0x32b787(0x180));if(!existsSync(_0x331536))return null;const _0x2a4947=JSON['parse'](readFileSync(_0x331536,_0x32b787(0x161))),_0x2b7af9=join(_0x5b1cb6,'console.json'),_0x1803e1=existsSync(_0x2b7af9)?JSON['parse'](readFileSync(_0x2b7af9,_0x32b787(0x161))):[],_0x3e9e67=join(_0x5b1cb6,_0x32b787(0x194)),_0xbc9577=existsSync(_0x3e9e67)?JSON[_0x32b787(_0x1db374._0x3f755a)](readFileSync(_0x3e9e67,_0x32b787(0x161))):void 0x0,_0x50ab23={'trace':_0x2a4947,'console':_0x1803e1},_0x152095=join(_0x5b1cb6,_0x32b787(_0x1db374._0x2c3643));existsSync(_0x152095)&&(_0x50ab23[_0x32b787(_0x1db374._0x35fd2f)]=JSON['parse'](readFileSync(_0x152095,_0x32b787(0x161))));if(_0xbc9577!==void 0x0)_0x50ab23[_0x32b787(0x163)]=_0xbc9577;const _0x3f8625=join(_0x5b1cb6,'screenshot.png');if(existsSync(_0x3f8625))_0x50ab23[_0x32b787(_0x1db374._0x167ee7)]=_0x3f8625;else{const _0x449d93=join(_0x5b1cb6,'screenshot-error.txt');existsSync(_0x449d93)&&(_0x50ab23[_0x32b787(0x16d)]=readFileSync(_0x449d93,'utf8'));}const _0x282cc7=join(_0x5b1cb6,_0x32b787(_0x1db374._0x2bdc21));if(existsSync(_0x282cc7))_0x50ab23['harPath']=_0x282cc7;const _0xc6c3dd=join(_0x5b1cb6,_0x32b787(_0x1db374._0x192563));if(existsSync(_0xc6c3dd))_0x50ab23[_0x32b787(_0x1db374._0x4906f7)]=_0xc6c3dd;return _0x50ab23;}__name(readFailureBundle,'readFailureBundle');function listFailures(_0x590657){const _0xce4db={_0x3bcb3c:0x1ac,_0x4d3171:0x198,_0x37d369:0x15d},_0x42ceb1=_0x3fbd25;if(!existsSync(_0x590657))return[];const _0xee94f2=[];for(const _0x47f003 of readdirSync(_0x590657)){const _0x982d4b=join(_0x590657,_0x47f003);if(!statSync(_0x982d4b)['isDirectory']())continue;for(const _0x372b5f of readdirSync(_0x982d4b)){const _0x5b1295=join(_0x982d4b,_0x372b5f);if(!statSync(_0x5b1295)[_0x42ceb1(0x1ad)]())continue;const _0x350cf1=join(_0x5b1295,_0x42ceb1(0x180));if(!existsSync(_0x350cf1))continue;try{const _0x305ad5=JSON[_0x42ceb1(0x14b)](readFileSync(_0x350cf1,_0x42ceb1(0x161)));_0xee94f2[_0x42ceb1(0x15c)]({'runId':_0x47f003,'testFn':_0x305ad5[_0x42ceb1(_0xce4db._0x3bcb3c)],'scenarioPath':_0x305ad5[_0x42ceb1(_0xce4db._0x4d3171)],'dir':_0x5b1295,'timestamp':_0x305ad5['timestamp']});}catch{}}}return _0xee94f2[_0x42ceb1(_0xce4db._0x37d369)]((_0xf3c720,_0x307260)=>_0x307260[_0x42ceb1(0x15a)][_0x42ceb1(0x199)](_0xf3c720[_0x42ceb1(0x15a)])),_0xee94f2;}__name(listFailures,_0x3fbd25(0x182));function defaultFailuresRoot(_0x4c03aa=process[_0x3fbd25(0x18d)]()){const _0x291327={_0x23e1c9:0x197},_0x140344=_0x3fbd25;return join(_0x4c03aa,_0x140344(_0x291327._0x23e1c9),'failures');}__name(defaultFailuresRoot,_0x3fbd25(0x173));function resolveBundleDir(_0x28a6f6,_0x5b79f4){const _0x53c2b0={_0xcfa090:0x1ad},_0x156b8f=_0x3fbd25;if(existsSync(_0x28a6f6)&&statSync(_0x28a6f6)[_0x156b8f(_0x53c2b0._0xcfa090)]())return _0x28a6f6;return join(_0x5b79f4,_0x28a6f6);}__name(resolveBundleDir,_0x3fbd25(0x156));function _0x3526(){const _0x338165=['rxjYB3i','ycbPBIbG','y2fWDhvYzwrbDa','AM9PBG','ywrKlxDHAxrMB3i','C2v0','DgvZDezU','AxneAxjLy3rVCNK','oda5ndqZmeDdr1n0Cq','cI0GkIPtDwDNzxn0zwqGywn0Aw9UkIO6iga','AgfZ','zML4lxbYB21WDc5Tza','y2HHBMDLlwfZC2vYDgLVBG','kqOk','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','zgvMAw5LuhjVCgvYDhK','yxbWCM94vg9Rzw5Z','iIaOBg9VA2vKigLUia','BMfTzq','icaGicaGC3vNz2vZDgvKqwn0Aw9Upq','mtq3nZiYnw1NENLqsG','CgfYC2u','cKnHChr1CMvKoIa','Bgv2zwW','vgLTzw91DevYCM9Y','mZqYmty5nu94B21vBa','vvjmoIa','nJiYoenOyvniyq','DMLKzw8UD2vIBq','ChjVBxb0twfYA2rVD24','nJq0B0T3terz','Dg9mB3DLCKnHC2u','CMvZB2X2zuj1BMrSzurPCG','nJm0nZjKsg1IshK','cMbGyaOkiYmGu2vTyw50AwmTre9nihnUyxbZAg90cGO','BwvKAxvT','DgLTzxn0yw1W','mKrLyuTura','ChvZAa','C29YDa','y29UzMLKzw5Jzq','Aw5JBhvKzxm','D3jPDgu','DxrMoa','BwvZC2fNzq','C25HChnOB3q','icbJB25MAwrLBMnLpq','ChjLCgfYzs1MAxG6ig5VihrLC3rjzcbWCM92AwrLzcbHBMqGBM8GzMfPBgLUzYb0zxn0CYbMB3vUzc4k','y29UC29Szq','C3rLCeLUzgv4','BMv0D29YAW','icaGicaG','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','BgvUz3rO','ls1MywLSAw5N','C2nYzwvUC2HVDevYCM9Y','cMbGyaOkiYmGtgfZDcbJB25ZB2XLigvUDhjPzxmkcMbGyaO','icdINjmG','zMLSDgvY','iYbuzxn0igzPEcbYzxf1zxn0cGOJiYbgywLSDxjLignVBNrLEhqkcI0GkIPuzxn0kIO6iga','BgLUzq','zgvMyxvSDezHAwX1CMvZuM9VDa','ndi1nurwBwDUyW','y29TCg9ZzuzPEfbYB21WDa','yNvUzgXLrgLY','ovvHt2PPwG','DhjHy2u','DMLKzw9qyxrO','C2nYzwvUC2HVDfbHDgG','CNvUswq','mJG1mJm5ounovenMEa','C3vNz2vZDgvKqwn0Aw9U','AgfYlMPZB24','zxjYB3i','zMfPBhvYzs5QC29U','BwfW','BgLZDezHAwX1CMvZ','icdINjCG','cGOJiYbty2vUyxjPBYbZB3vYy2uGkgXPBMuTBNvTyMvYzwqPcGPGygbQCWO','DxjS','ChjLCgfYzs1MAxG6ignVBxbVC2LUzYbMAxGGChjVBxb0CYbMB3iG','ndeWmZy2ngDVvezIAW','ycaOy29UzMLKzw5JztOG','xYHUBYbJB25ZB2XLigvUDhjPzxmGy2fWDhvYzwqPxW','C3rHy2S','yaOTicOQu3rLCcbPBMrLEcOQoIa','y29S','y3DK','zxjY','C2XPy2u','ycdIGjqG','yNvPBgrqCM9TChrnyxjRzg93BG','BMv0D29YAY5QC29U','Dg9vChbLCKnHC2u','C25HChnOB3qUANnVBG','icb+','zMfPBhvYzxnsB290','lNvUB3rLC3q','C2nLBMfYAw9qyxrO','Bg9JywXLq29TCgfYzq','C3rKB3v0','zxHPDa','yxjNDG','AgLNAa','DgvZDa','CgfKu3rHCNq','Dw5RBM93BG','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','Bg93','tg9JyxrVCKvYCM9Y','y2XHC3nPzNK','qxnZzxj0Aw9UrxjYB3i'];_0x3526=function(){return _0x338165;};return _0x3526();}function _0x4b1d(_0x2254e1,_0x55c821){_0x2254e1=_0x2254e1-0x143;const _0x3526b7=_0x3526();let _0x4b1da1=_0x3526b7[_0x2254e1];if(_0x4b1d['GuOhRf']===undefined){var _0x321c72=function(_0x14c93a){const _0x570185='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5d99e3='',_0x445d78='';for(let _0x2a55ab=0x0,_0x2d495e,_0x17ac4a,_0x50baad=0x0;_0x17ac4a=_0x14c93a['charAt'](_0x50baad++);~_0x17ac4a&&(_0x2d495e=_0x2a55ab%0x4?_0x2d495e*0x40+_0x17ac4a:_0x17ac4a,_0x2a55ab++%0x4)?_0x5d99e3+=String['fromCharCode'](0xff&_0x2d495e>>(-0x2*_0x2a55ab&0x6)):0x0){_0x17ac4a=_0x570185['indexOf'](_0x17ac4a);}for(let _0x5b1cb6=0x0,_0x331536=_0x5d99e3['length'];_0x5b1cb6<_0x331536;_0x5b1cb6++){_0x445d78+='%'+('00'+_0x5d99e3['charCodeAt'](_0x5b1cb6)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x445d78);};_0x4b1d['fFlzyF']=_0x321c72,_0x4b1d['HvUNWw']={},_0x4b1d['GuOhRf']=!![];}const _0x5b0672=_0x3526b7[0x0],_0x263680=_0x2254e1+_0x5b0672,_0xb0589=_0x4b1d['HvUNWw'][_0x263680];return!_0xb0589?(_0x4b1da1=_0x4b1d['fFlzyF'](_0x4b1da1),_0x4b1d['HvUNWw'][_0x263680]=_0x4b1da1):_0x4b1da1=_0xb0589,_0x4b1da1;}function composeFixPrompt(_0x298af0,_0x250cac={}){const _0x51a658={_0xeebdae:0x147,_0x4073ca:0x18d,_0x31370:0x178,_0x461310:0x178,_0x43bca9:0x198,_0x155828:0x161,_0x2fd87d:0x166,_0x46528c:0x178,_0x1cd8bc:0x198,_0x363cd6:0x166,_0x45cecb:0x16b},_0x3d8955=_0x3fbd25,_0x31a361=_0x250cac[_0x3d8955(0x196)]??defaultFailuresRoot(),_0x2a9244=resolveBundleDir(_0x298af0,_0x31a361),_0x1df660=readFailureBundle(_0x2a9244);if(!_0x1df660)throw new Error(_0x3d8955(0x16a)+_0x298af0+_0x3d8955(_0x51a658._0xeebdae)+_0x2a9244+')');const _0x3524ad=_0x250cac[_0x3d8955(_0x51a658._0x4073ca)]??process[_0x3d8955(0x18d)](),_0x3751ea=_0x2d495e(_0x1df660[_0x3d8955(_0x51a658._0x31370)]['scenarioPath'])?_0x2a55ab(_0x1df660[_0x3d8955(_0x51a658._0x461310)][_0x3d8955(_0x51a658._0x43bca9)],_0x3d8955(_0x51a658._0x155828)):'<scenario\x20file\x20no\x20longer\x20on\x20disk>',_0x26c388=_0x250cac['consoleLimit']??0x19,_0x4dc390=_0x1df660[_0x3d8955(_0x51a658._0x2fd87d)]['slice'](-_0x26c388),{suggestedAction:_0x5c13a2,confidence:_0x5115f6}=classify(_0x1df660),_0x3e7bc2=buildPromptMarkdown({'bundle':_0x1df660,'scenarioSource':_0x3751ea,'scenarioRelative':relative(_0x3524ad,_0x1df660[_0x3d8955(_0x51a658._0x46528c)][_0x3d8955(0x198)]),'consoleTail':_0x4dc390,'suggestedAction':_0x5c13a2,'confidence':_0x5115f6}),_0x23dfd0=Math['ceil'](_0x3e7bc2[_0x3d8955(0x16b)]/0x4);return{'promptMarkdown':_0x3e7bc2,'suggestedAction':_0x5c13a2,'confidence':_0x5115f6,'sources':{'bundleDir':_0x2a9244,'scenarioPath':_0x1df660['trace'][_0x3d8955(_0x51a658._0x1cd8bc)],'consoleEntries':_0x1df660[_0x3d8955(_0x51a658._0x363cd6)][_0x3d8955(_0x51a658._0x45cecb)],'hasSnapshot':!!_0x1df660['snapshot']},'approxTokens':_0x23dfd0};}__name(composeFixPrompt,_0x3fbd25(0x175));function classify(_0xe35c09){const _0x3bf821={_0x2eb25e:0x17f,_0x27300d:0x155,_0x21b7c3:0x1a3,_0x335c0f:0x1a3,_0x38ed6b:0x159,_0x1d5ae9:0x1aa,_0x37d805:0x14e,_0x5d62e7:0x159,_0x5659e2:0x1a5,_0x14b449:0x1b2,_0x83cbfd:0x1a5,_0x3b635b:0x19d},_0xab7a60=_0x3fbd25,_0x3e166d=_0xe35c09['trace'][_0xab7a60(_0x3bf821._0x2eb25e)][_0xab7a60(0x162)][_0xab7a60(_0x3bf821._0x27300d)](),_0x2c3727=_0xe35c09[_0xab7a60(0x178)][_0xab7a60(_0x3bf821._0x2eb25e)]['name']??'';let _0x4097bf=_0xab7a60(0x1a0),_0x345451=_0xab7a60(0x1a2);if(_0x2c3727===_0xab7a60(_0x3bf821._0x21b7c3)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i['test'](_0x3e166d))_0x4097bf='rewrite-selector',_0x345451=_0x2c3727===_0xab7a60(_0x3bf821._0x335c0f)?'high':_0xab7a60(_0x3bf821._0x38ed6b);else{if(_0x2c3727===_0xab7a60(0x14e)||/timeout|waiting for/i[_0xab7a60(0x19e)](_0x3e166d))_0x4097bf=_0xab7a60(_0x3bf821._0x1d5ae9),_0x345451=_0x2c3727===_0xab7a60(_0x3bf821._0x37d805)?_0xab7a60(0x19d):_0xab7a60(_0x3bf821._0x5d62e7);else(_0x2c3727===_0xab7a60(_0x3bf821._0x5659e2)||/asserttext|assertvisible|expected.*got/i['test'](_0x3e166d))&&(_0x4097bf=_0xab7a60(_0x3bf821._0x14b449),_0x345451=_0x2c3727===_0xab7a60(_0x3bf821._0x83cbfd)?_0xab7a60(_0x3bf821._0x3b635b):'medium');}return{'suggestedAction':_0x4097bf,'confidence':_0x345451};}__name(classify,_0x3fbd25(0x1a4));function buildPromptMarkdown(_0x1f7762){const _0x4b61ce={_0x52fc15:0x1a9,_0x3ff2c1:0x16b,_0x36a615:0x1a9,_0x166f06:0x163,_0x492487:0x150,_0x23943e:0x1a8,_0x3a7a33:0x171,_0x456aeb:0x18b,_0x3858d3:0x167,_0x2e4099:0x190,_0x3a2954:0x178,_0x4a4e9b:0x143,_0x518028:0x17f,_0x52ddec:0x16e,_0x487122:0x158,_0x508f63:0x1a1},_0x2a01dd=_0x3fbd25,{bundle:_0x49ef58,scenarioSource:_0x4e7119,scenarioRelative:_0x345607,consoleTail:_0x232186,suggestedAction:_0x33bda3,confidence:_0x432690}=_0x1f7762,_0x54a49a=_0x4e7119['split']('\x0a')['map']((_0x40ce84,_0x3e0892)=>String(_0x3e0892+0x1)[_0x2a01dd(0x19f)](0x3,'\x20')+'\x20\x20'+_0x40ce84)[_0x2a01dd(_0x4b61ce._0x52fc15)]('\x0a'),_0x569f50=_0x232186[_0x2a01dd(_0x4b61ce._0x3ff2c1)]===0x0?_0x2a01dd(0x189):_0x232186[_0x2a01dd(0x181)](_0x599bb7=>'['+_0x599bb7[_0x2a01dd(0x15a)]+']\x20'+_0x599bb7[_0x2a01dd(0x14d)][_0x2a01dd(0x193)]()+':\x20'+_0x599bb7['text'])[_0x2a01dd(_0x4b61ce._0x36a615)]('\x0a'),_0x27b137=_0x49ef58[_0x2a01dd(_0x4b61ce._0x166f06)]?_0x2a01dd(_0x4b61ce._0x492487)+_0x49ef58[_0x2a01dd(0x163)][_0x2a01dd(0x185)]+_0x2a01dd(0x14c)+_0x49ef58['snapshot'][_0x2a01dd(_0x4b61ce._0x23943e)]+_0x2a01dd(0x144):'_(no\x20semantic-dom\x20snapshot\x20captured\x20for\x20this\x20failure)_';return _0x2a01dd(_0x4b61ce._0x3a7a33)+_0x49ef58['trace'][_0x2a01dd(0x1ac)]+_0x2a01dd(0x1a7)+_0x345607+_0x2a01dd(_0x4b61ce._0x456aeb)+(_0x49ef58[_0x2a01dd(0x178)][_0x2a01dd(_0x4b61ce._0x3858d3)]??'?')+'\x0a-\x20**Location**:\x20line\x20'+_0x49ef58[_0x2a01dd(0x178)][_0x2a01dd(0x172)]+',\x20col\x20'+_0x49ef58['trace'][_0x2a01dd(0x18c)]+'\x0a-\x20**Error**:\x20`'+(_0x49ef58[_0x2a01dd(0x178)][_0x2a01dd(0x17f)][_0x2a01dd(0x148)]??_0x2a01dd(0x1a6))+_0x2a01dd(_0x4b61ce._0x2e4099)+_0x49ef58[_0x2a01dd(_0x4b61ce._0x3a2954)]['error']['message']+_0x2a01dd(0x1af)+_0x33bda3+_0x2a01dd(0x188)+_0x432690+_0x2a01dd(_0x4b61ce._0x4a4e9b)+(_0x49ef58['trace'][_0x2a01dd(_0x4b61ce._0x518028)]['stack']?'###\x20Stack\x0a```\x0a'+_0x49ef58[_0x2a01dd(0x178)]['error'][_0x2a01dd(0x18a)]+'\x0a```\x0a':'')+_0x2a01dd(0x184)+_0x54a49a+_0x2a01dd(_0x4b61ce._0x52ddec)+_0x569f50+_0x2a01dd(_0x4b61ce._0x487122)+_0x27b137+_0x2a01dd(_0x4b61ce._0x508f63);}__name(buildPromptMarkdown,_0x3fbd25(0x191));function runPrepareFix(_0x5470fa,_0x3a0e89={}){const _0x310672={_0x2c3a01:0x19a,_0x4c5d72:0x18e,_0x5ab38d:0x15f,_0x3be491:0x170,_0x66fb33:0x16b,_0x3d05c7:0x16b,_0x367aa0:0x160,_0x59172e:0x16b,_0x4fb132:0x1b0,_0x30bb42:0x1ab,_0x4599ea:0x1ac,_0x28264e:0x16b,_0x21ff09:0x165,_0x201c6d:0x186,_0x258625:0x16f,_0x4e9e8a:0x149,_0x2e6af2:0x17d,_0x155d1d:0x164,_0x2d690c:0x195,_0x34640a:0x162,_0x8ac78c:0x160},_0x58051f=_0x3fbd25,_0xe7fd7a=_0x3a0e89['out']??process[_0x58051f(_0x310672._0x2c3a01)],_0x258a7e=_0x3a0e89[_0x58051f(_0x310672._0x4c5d72)]??process['stderr'],_0x5a3169=_0x3a0e89[_0x58051f(0x18d)]??process[_0x58051f(0x18d)](),_0x5e2174=_0x5470fa[_0x58051f(_0x310672._0x5ab38d)](_0x58051f(0x16c));let _0x2b19d1=_0x5470fa[_0x58051f(_0x310672._0x3be491)](_0x32f91f=>!_0x32f91f['startsWith']('-'));if(_0x5e2174||_0x2b19d1[_0x58051f(_0x310672._0x66fb33)]===0x0){const _0x3de68e=listFailures(defaultFailuresRoot(_0x5a3169));if(_0x3de68e[_0x58051f(_0x310672._0x3d05c7)]===0x0)return _0x258a7e[_0x58051f(_0x310672._0x367aa0)]('prepare-fix:\x20no\x20failure\x20bundles\x20found\x20under\x20.unotest/failures/.\x20Run\x20a\x20failing\x20test\x20first;\x20the\x20bundle\x20is\x20written\x20automatically.\x0a'),0x1;if(_0x2b19d1[_0x58051f(_0x310672._0x59172e)]===0x0){const _0x4f6928=new Map();for(const _0x43f522 of _0x3de68e){if(!_0x4f6928[_0x58051f(_0x310672._0x4fb132)](_0x43f522['testFn']))_0x4f6928[_0x58051f(_0x310672._0x30bb42)](_0x43f522[_0x58051f(_0x310672._0x4599ea)],_0x43f522);}_0x2b19d1=[..._0x4f6928['values']()][_0x58051f(0x181)](_0x2e28d5=>_0x2e28d5[_0x58051f(0x17b)]+'/'+_0x2e28d5[_0x58051f(0x1ac)]);}}if(_0x2b19d1[_0x58051f(_0x310672._0x28264e)]===0x0)return _0x258a7e[_0x58051f(0x160)](_0x58051f(_0x310672._0x21ff09)),0x1;_0xe7fd7a[_0x58051f(0x160)](_0x58051f(_0x310672._0x201c6d)+_0x2b19d1[_0x58051f(0x16b)]+'\x20test(s)\x20(D-25)\x0a\x0a');const _0x1711ad=defaultFailuresRoot(_0x5a3169);for(const _0x237cd7 of _0x2b19d1){try{const _0x1d3220=composeFixPrompt(_0x237cd7,{'cwd':_0x5a3169,'failuresRoot':_0x1711ad}),_0x58a9aa=_0x445d78(_0x1d3220['sources'][_0x58051f(0x176)],_0x58051f(0x1b1));_0x5d99e3(_0x58a9aa,_0x1d3220[_0x58051f(0x153)]),_0xe7fd7a[_0x58051f(_0x310672._0x367aa0)](_0x58051f(_0x310672._0x258625)+_0x237cd7+'\x0a'),_0xe7fd7a[_0x58051f(0x160)](_0x58051f(0x169)+_0x58a9aa+'\x0a'),_0xe7fd7a['write'](_0x58051f(_0x310672._0x4e9e8a)+_0x1d3220[_0x58051f(_0x310672._0x2e6af2)]+_0x58051f(_0x310672._0x155d1d)+_0x1d3220[_0x58051f(0x15e)]+_0x58051f(_0x310672._0x2d690c)+_0x1d3220[_0x58051f(0x146)]+'t\x0a');}catch(_0x8148f4){_0x258a7e[_0x58051f(0x160)](_0x58051f(0x183)+_0x237cd7+':\x20'+(_0x8148f4 instanceof Error?_0x8148f4[_0x58051f(_0x310672._0x34640a)]:String(_0x8148f4))+'\x0a');}}return _0xe7fd7a[_0x58051f(_0x310672._0x8ac78c)]('\x0aNext:\x20paste\x20each\x20fix-prompt.md\x20into\x20your\x20LLM\x20client\x20(Claude\x20Code\x20/\x0aCursor\x20/\x20etc.).\x20The\x20LLM\x20returns\x20a\x20unified\x20diff;\x20review\x20it\x20and\x20apply\x0amanually.\x20We\x20never\x20auto-apply\x20(D-25).\x0a'),0x0;}__name(runPrepareFix,'runPrepareFix');var invokedDirectly=process['argv'][0x1]&&fileURLToPath(import.meta.url)===process[_0x3fbd25(0x19c)][0x1];if(invokedDirectly){const code=runPrepareFix(process[_0x3fbd25(0x19c)][_0x3fbd25(0x18f)](0x2));process[_0x3fbd25(0x19b)](code);}export{runPrepareFix};
1
+ const _0x1f1444=_0x17b2;(function(_0x8b246,_0x3bd117){const _0x6908b7={_0x1a9a2b:0x1a0,_0x42d3ef:0x1d0,_0x13c2c0:0x1f2,_0x3fdd4f:0x1e6},_0x6b9f84=_0x17b2,_0x362393=_0x8b246();while(!![]){try{const _0x382be3=parseInt(_0x6b9f84(0x1a3))/0x1+-parseInt(_0x6b9f84(0x1b2))/0x2*(-parseInt(_0x6b9f84(_0x6908b7._0x1a9a2b))/0x3)+parseInt(_0x6b9f84(0x1db))/0x4+-parseInt(_0x6b9f84(_0x6908b7._0x42d3ef))/0x5+parseInt(_0x6b9f84(_0x6908b7._0x13c2c0))/0x6+-parseInt(_0x6b9f84(_0x6908b7._0x3fdd4f))/0x7+-parseInt(_0x6b9f84(0x1c3))/0x8;if(_0x382be3===_0x3bd117)break;else _0x362393['push'](_0x362393['shift']());}catch(_0x2204f1){_0x362393['push'](_0x362393['shift']());}}}(_0x2afc,0xa0464));var __defProp=Object[_0x1f1444(0x1ab)],__name=(_0x2c9248,_0x1065d9)=>__defProp(_0x2c9248,_0x1f1444(0x1c9),{'value':_0x1065d9,'configurable':!![]});import{writeFileSync as _0x30f1eb}from'fs';import{join as _0x1b4732}from'path';import{fileURLToPath}from'url';function _0x2afc(){const _0x3e94ec=['ycbPBIbG','nty0otyWCxLyAg9W','zMfPBhvYzxm','BMv0D29YAW','icaGicaGC3vNz2vZDgvKqwn0Aw9Upq','iYbuzxn0igzPEcbYzxf1zxn0cGOJiYbgywLSDxjLignVBNrLEhqkcI0GkIPuzxn0kIO6iga','y2XHC3nPzNK','DMLKzw8UD2vIBq','ChjLCgfYzs1MAxG6ignVBxbVC2LUzYbMAxGGChjVBxb0CYbMB3iG','Aw5JBhvKzxm','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','icb+','nZKZntK0mLbOAwnbwG','ihrLC3qOCYKGkeqTmJuPcGO','C2nLBMfYAw9qyxrO','rxjYB3i','yaOTicOQu3rLCcbPBMrLEcOQoIa','BwfW','zxjY','DMfSDwvZ','C2XPy2u','CNvUuhjLCgfYzuzPEa','zMLSDgvY','DxjS','nJK1nJa3nNfltfrZsq','kqOk','Bg93','Dw5RBM93BG','ycdIGjqG','y2fWDhvYzwrbDa','yxjNDG','CgfKu3rHCNq','yxbWCM94vg9Rzw5Z','C3vNz2vZDgvKqwn0Aw9U','y29UC29Szs5QC29U','C2nYzwvUC2HVDevYCM9Y','C25HChnOB3q','DxrMoa','ywrKlxDHAxrMB3i','y29UzMLKzw5Jzq','zML4lxbYB21WDc5Tza','CMvZB2X2zuj1BMrSzurPCG','DhjHy2u','Dgv4Da','xYHUBYbZzw1HBNrPyY1KB20GC25HChnOB3qGy2fWDhvYzwqGzM9YihrOAxmGzMfPBhvYzsLF','C2nYzwvUC2HVDfbHDgG','ls1MywLSAw5N','AgLNAa','zMfPBhvYzs5QC29U','iIaOBg9VA2vKigLUia','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','CNvUswq','AM9PBG','BgvUz3rO','nNb4u3H4tG','C2v0','tg9JyxrVCKvYCM9Y','mZe3mZm0qMnNyNPg','yNvUzgXLrgLY','cK5LEhq6ihbHC3rLigvHy2GGzML4lxbYB21WDc5TzcbPBNrVihLVDxiGteXnignSAwvUDcaOq2XHDwrLienVzguGlWPdDxjZB3iGlYbLDgmUks4GvgHLieXmtsbYzxr1CM5ZigeGDw5PzMLLzcbKAwzMoYbYzxzPzxCGAxqGyw5KigfWCgX5cM1HBNvHBgX5lIbxzsbUzxzLCIbHDxrVlwfWCgX5icHelti1ks4k','y29TCg9ZzuzPEfbYB21WDa','ChjVBxb0twfYA2rVD24','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','qxnZzxj0Aw9UrxjYB3i','cMbGyaOkiYmGtgfZDcbJB25ZB2XLigvUDhjPzxmkcMbGyaO','zgvMAw5LuhjVCgvYDhK','cGOJiYbty2vUyxjPBYbZB3vYy2uGkgXPBMuTBNvTyMvYzwqPcGPGygbQCWO','y2vPBa','zxHPDa','icbJB25MAwrLBMnLpq','y29UC29SzuXPBwL0','zxjYB3i','mta2mdq4mLbbs0neuq','Bg9JywXLq29TCgfYzq','AxneAxjLy3rVCNK','lcbJB2WG','ycaOy29UzMLKzw5JztOG','vgLTzw91DevYCM9Y','BwvZC2fNzq','yNvPBgrqCM9TChrnyxjRzg93BG','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','DgvZDezU','C2nYzwvUC2HVDc1LCNjVCI50Ehq','C3rHCNrZv2L0Aa','C3rKzxjY','BMv0D29YAY5QC29U','vvjmoIa','cI0GkIPmB2nHDgLVBIOQoIbSAw5Lia','DgLTzxn0yw1W','nJqXmtKZnKjjt1v2DG','y3DK','C3rHy2S','BwvKAxvT','icdINjCG','CgfYC2u','BMfTzq','C2nYzwvUC2HVDc5WBMC','BgLUzq','lNvUB3rLC3q','DgvZDa','ChjLCgfYzs1MAxG6ig5VigzHAwX1CMuGyNvUzgXLCYbMB3vUzcb1BMrLCIaUDw5VDgvZDc9MywLSDxjLCY8Uifj1BIbHigzHAwXPBMCGDgvZDcbMAxjZDdSGDgHLigj1BMrSzsbPCYb3CML0DgvUigf1Dg9TyxrPy2fSBhKUcG','icdINjmG','ndmZnJaWrKHyEKXq','C3rKB3v0','zMfPBhvYzxnsB290','Bgv2zwW','iYmJifn0ywnRcMbGyaO','CMv3CML0zs1ZzwXLy3rVCG','cMbGyaO','BgLZDezHAwX1CMvZ','y2HHBMDLlwfZC2vYDgLVBG','D3jPDgu'];_0x2afc=function(){return _0x3e94ec;};return _0x2afc();}import{readFileSync as _0x30cd09,existsSync as _0x1c6d62}from'fs';import{relative}from'path';import{existsSync,mkdirSync,readFileSync,readdirSync,statSync,writeFileSync}from'fs';import{join,dirname}from'path';function readFailureBundle(_0x4ff4cf){const _0x2fc75e={_0x3df3b8:0x1c8,_0x1f7b18:0x1ff,_0x3b43b9:0x1bf,_0x4d4b28:0x1ca,_0x1d7611:0x207,_0xaf54f0:0x1bc,_0x4dc971:0x1fd},_0x45e56e=_0x1f1444;if(!existsSync(_0x4ff4cf))return null;const _0x2d8050=join(_0x4ff4cf,_0x45e56e(0x20a));if(!existsSync(_0x2d8050))return null;const _0xc1bfa6=JSON[_0x45e56e(_0x2fc75e._0x3df3b8)](readFileSync(_0x2d8050,'utf8')),_0x4169ff=join(_0x4ff4cf,_0x45e56e(0x1fc)),_0x50cac7=existsSync(_0x4169ff)?JSON[_0x45e56e(0x1c8)](readFileSync(_0x4169ff,_0x45e56e(0x1ff))):[],_0x3dd283=join(_0x4ff4cf,'snapshot.json'),_0x19b4fa=existsSync(_0x3dd283)?JSON['parse'](readFileSync(_0x3dd283,_0x45e56e(_0x2fc75e._0x1f7b18))):void 0x0,_0x32ec27={'trace':_0xc1bfa6,'console':_0x50cac7},_0x1c21e0=join(_0x4ff4cf,_0x45e56e(_0x2fc75e._0x3b43b9));existsSync(_0x1c21e0)&&(_0x32ec27[_0x45e56e(0x1dd)]=JSON['parse'](readFileSync(_0x1c21e0,_0x45e56e(0x1ff))));if(_0x19b4fa!==void 0x0)_0x32ec27[_0x45e56e(0x1fe)]=_0x19b4fa;const _0x545acb=join(_0x4ff4cf,_0x45e56e(_0x2fc75e._0x4d4b28));if(existsSync(_0x545acb))_0x32ec27[_0x45e56e(_0x2fc75e._0x1d7611)]=_0x545acb;else{const _0x25321d=join(_0x4ff4cf,_0x45e56e(_0x2fc75e._0xaf54f0));existsSync(_0x25321d)&&(_0x32ec27[_0x45e56e(_0x2fc75e._0x4dc971)]=readFileSync(_0x25321d,_0x45e56e(0x1ff)));}const _0x2decf2=join(_0x4ff4cf,'har.json');if(existsSync(_0x2decf2))_0x32ec27['harPath']=_0x2decf2;const _0x478ba1=join(_0x4ff4cf,_0x45e56e(0x1e1));if(existsSync(_0x478ba1))_0x32ec27['videoPath']=_0x478ba1;return _0x32ec27;}__name(readFailureBundle,'readFailureBundle');function listFailures(_0x9513c8){const _0x5f4d0b={_0x1b1e11:0x1b4,_0x56e883:0x1c8,_0x4de744:0x1e8},_0x3b31ef=_0x1f1444;if(!existsSync(_0x9513c8))return[];const _0x40fe2c=[];for(const _0x403e04 of readdirSync(_0x9513c8)){const _0x2d8c35=join(_0x9513c8,_0x403e04);if(!statSync(_0x2d8c35)[_0x3b31ef(_0x5f4d0b._0x1b1e11)]())continue;for(const _0x4490d3 of readdirSync(_0x2d8c35)){const _0x2e5121=join(_0x2d8c35,_0x4490d3);if(!statSync(_0x2e5121)['isDirectory']())continue;const _0x3ded1e=join(_0x2e5121,_0x3b31ef(0x20a));if(!existsSync(_0x3ded1e))continue;try{const _0x5b2722=JSON[_0x3b31ef(_0x5f4d0b._0x56e883)](readFileSync(_0x3ded1e,'utf8'));_0x40fe2c['push']({'runId':_0x403e04,'testFn':_0x5b2722[_0x3b31ef(0x1bb)],'scenarioPath':_0x5b2722[_0x3b31ef(_0x5f4d0b._0x4de744)],'dir':_0x2e5121,'timestamp':_0x5b2722['timestamp']});}catch{}}}return _0x40fe2c['sort']((_0x2227e3,_0x586c2f)=>_0x586c2f[_0x3b31ef(0x1c2)][_0x3b31ef(0x1b3)](_0x2227e3[_0x3b31ef(0x1c2)])),_0x40fe2c;}__name(listFailures,_0x1f1444(0x1d7));function defaultFailuresRoot(_0x1d7b5f=process[_0x1f1444(0x1c4)]()){const _0x8ab483={_0x398d2a:0x1cc},_0x59c5db=_0x1f1444;return join(_0x1d7b5f,_0x59c5db(_0x8ab483._0x398d2a),_0x59c5db(0x1dc));}__name(defaultFailuresRoot,'defaultFailuresRoot');function resolveBundleDir(_0x4cb800,_0x147752){const _0x5d7a37=_0x1f1444;if(existsSync(_0x4cb800)&&statSync(_0x4cb800)[_0x5d7a37(0x1b4)]())return _0x4cb800;return join(_0x147752,_0x4cb800);}__name(resolveBundleDir,_0x1f1444(0x203));function composeFixPrompt(_0xa9de24,_0x40d766={}){const _0x4ba728={_0x153f44:0x20b,_0x3efd22:0x1c4,_0xa63311:0x1ff,_0x57bc8e:0x1e4,_0x38017d:0x1b0,_0x29a2d0:0x1ee,_0x20a0ab:0x1e8},_0x40e224=_0x1f1444,_0x27c666=_0x40d766[_0x40e224(0x1d2)]??defaultFailuresRoot(),_0x443062=resolveBundleDir(_0xa9de24,_0x27c666),_0x28a17c=readFailureBundle(_0x443062);if(!_0x28a17c)throw new Error(_0x40e224(0x20c)+_0xa9de24+_0x40e224(_0x4ba728._0x153f44)+_0x443062+')');const _0x47a646=_0x40d766[_0x40e224(_0x4ba728._0x3efd22)]??process['cwd'](),_0x25320c=_0x1c6d62(_0x28a17c[_0x40e224(0x204)][_0x40e224(0x1e8)])?_0x30cd09(_0x28a17c['trace']['scenarioPath'],_0x40e224(_0x4ba728._0xa63311)):_0x40e224(_0x4ba728._0x57bc8e),_0x3c7991=_0x40d766[_0x40e224(_0x4ba728._0x38017d)]??0x19,_0x22f20b=_0x28a17c['console'][_0x40e224(_0x4ba728._0x29a2d0)](-_0x3c7991),{suggestedAction:_0x179a50,confidence:_0x1c37d5}=classify(_0x28a17c),_0x227a6a=buildPromptMarkdown({'bundle':_0x28a17c,'scenarioSource':_0x25320c,'scenarioRelative':relative(_0x47a646,_0x28a17c[_0x40e224(0x204)][_0x40e224(_0x4ba728._0x20a0ab)]),'consoleTail':_0x22f20b,'suggestedAction':_0x179a50,'confidence':_0x1c37d5}),_0x512cec=Math[_0x40e224(0x1ad)](_0x227a6a[_0x40e224(0x19f)]/0x4);return{'promptMarkdown':_0x227a6a,'suggestedAction':_0x179a50,'confidence':_0x1c37d5,'sources':{'bundleDir':_0x443062,'scenarioPath':_0x28a17c['trace']['scenarioPath'],'consoleEntries':_0x28a17c['console']['length'],'hasSnapshot':!!_0x28a17c[_0x40e224(0x1fe)]},'approxTokens':_0x512cec};}__name(composeFixPrompt,_0x1f1444(0x1a6));function classify(_0x4d64ad){const _0x1da45e={_0x5bd9bc:0x1b8,_0xccd9c9:0x1c9,_0x22aaf8:0x1f4,_0x309409:0x1cd,_0x42b079:0x1b7,_0xf184a8:0x200,_0x58fd1d:0x209,_0x4dd4f9:0x1c6,_0x231fca:0x1a9,_0xc05223:0x1a9},_0x38317f=_0x1f1444,_0x2dc76f=_0x4d64ad['trace'][_0x38317f(0x1b1)][_0x38317f(_0x1da45e._0x5bd9bc)]['toLowerCase'](),_0x22cdd2=_0x4d64ad[_0x38317f(0x204)]['error'][_0x38317f(_0x1da45e._0xccd9c9)]??'';let _0x4f6c1c=_0x38317f(0x1f5),_0x54160b=_0x38317f(_0x1da45e._0x22aaf8);if(_0x22cdd2===_0x38317f(0x1a2)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i[_0x38317f(_0x1da45e._0x309409)](_0x2dc76f))_0x4f6c1c=_0x38317f(0x1d5),_0x54160b=_0x22cdd2===_0x38317f(0x1a2)?_0x38317f(0x209):_0x38317f(0x1c6);else{if(_0x22cdd2===_0x38317f(_0x1da45e._0x42b079)||/timeout|waiting for/i[_0x38317f(_0x1da45e._0x309409)](_0x2dc76f))_0x4f6c1c=_0x38317f(_0x1da45e._0xf184a8),_0x54160b=_0x22cdd2==='TimeoutError'?_0x38317f(_0x1da45e._0x58fd1d):_0x38317f(_0x1da45e._0x4dd4f9);else(_0x22cdd2===_0x38317f(_0x1da45e._0x231fca)||/asserttext|assertvisible|expected.*got/i[_0x38317f(0x1cd)](_0x2dc76f))&&(_0x4f6c1c=_0x38317f(0x1d8),_0x54160b=_0x22cdd2===_0x38317f(_0x1da45e._0xc05223)?_0x38317f(0x209):'medium');}return{'suggestedAction':_0x4f6c1c,'confidence':_0x54160b};}__name(classify,_0x1f1444(0x1e0));function buildPromptMarkdown(_0x4cd79e){const _0x5b52d8={_0x5062ef:0x19f,_0x537e0c:0x1f7,_0x1b4f5c:0x204,_0x400d9e:0x1bb,_0x6c9380:0x1da,_0x4bc44c:0x1c1,_0x5dd08f:0x1cb,_0x427192:0x1b5,_0x5dedad:0x204,_0x338474:0x1e9,_0x4af927:0x1f6,_0x260963:0x1b1,_0x466778:0x1f3,_0x5cb9fb:0x204,_0x29f6ae:0x1d4,_0x2ba4a3:0x1b1,_0x6f35a:0x1d6,_0x5d4bff:0x1ac,_0x31465c:0x1aa,_0x251d74:0x1ba},_0x376b97=_0x1f1444,{bundle:_0x550b76,scenarioSource:_0x2bceef,scenarioRelative:_0x2b676e,consoleTail:_0x414660,suggestedAction:_0x1eafde,confidence:_0x36b92c}=_0x4cd79e,_0x287a8c=_0x2bceef['split']('\x0a')['map']((_0x7535dd,_0x563200)=>String(_0x563200+0x1)[_0x376b97(0x1f9)](0x3,'\x20')+'\x20\x20'+_0x7535dd)[_0x376b97(0x20e)]('\x0a'),_0x3d1538=_0x414660[_0x376b97(_0x5b52d8._0x5062ef)]===0x0?'_(no\x20console\x20entries\x20captured)_':_0x414660['map'](_0x52fa96=>'['+_0x52fa96[_0x376b97(0x1c2)]+']\x20'+_0x52fa96[_0x376b97(0x1d3)]['toUpperCase']()+':\x20'+_0x52fa96[_0x376b97(0x205)])['join']('\x0a'),_0xcf86a3=_0x550b76['snapshot']?_0x376b97(0x1c0)+_0x550b76['snapshot'][_0x376b97(0x1f1)]+'\x0aCaptured:\x20'+_0x550b76[_0x376b97(0x1fe)][_0x376b97(_0x5b52d8._0x537e0c)]+_0x376b97(0x1a8):_0x376b97(0x206);return _0x376b97(0x1df)+_0x550b76[_0x376b97(_0x5b52d8._0x1b4f5c)][_0x376b97(_0x5b52d8._0x400d9e)]+_0x376b97(_0x5b52d8._0x6c9380)+_0x2b676e+_0x376b97(0x1ea)+(_0x550b76[_0x376b97(0x204)]['stepIndex']??'?')+_0x376b97(_0x5b52d8._0x4bc44c)+_0x550b76['trace'][_0x376b97(_0x5b52d8._0x5dd08f)]+_0x376b97(_0x5b52d8._0x427192)+_0x550b76['trace']['col']+'\x0a-\x20**Error**:\x20`'+(_0x550b76[_0x376b97(_0x5b52d8._0x5dedad)]['error'][_0x376b97(0x1c9)]??_0x376b97(_0x5b52d8._0x338474))+_0x376b97(_0x5b52d8._0x4af927)+_0x550b76[_0x376b97(0x204)][_0x376b97(_0x5b52d8._0x260963)][_0x376b97(0x1b8)]+'\x0a-\x20**Suggested\x20action**:\x20`'+_0x1eafde+_0x376b97(0x1b6)+_0x36b92c+_0x376b97(_0x5b52d8._0x466778)+(_0x550b76[_0x376b97(_0x5b52d8._0x5cb9fb)]['error'][_0x376b97(0x1c5)]?_0x376b97(_0x5b52d8._0x29f6ae)+_0x550b76[_0x376b97(_0x5b52d8._0x5dedad)][_0x376b97(_0x5b52d8._0x2ba4a3)]['stack']+_0x376b97(_0x5b52d8._0x6f35a):'')+_0x376b97(_0x5b52d8._0x5d4bff)+_0x287a8c+_0x376b97(_0x5b52d8._0x31465c)+_0x3d1538+'\x0a```\x0a\x0a##\x20Semantic-DOM\x20snapshot\x0a\x0a'+_0xcf86a3+_0x376b97(_0x5b52d8._0x251d74);}__name(buildPromptMarkdown,_0x1f1444(0x1b9));function runPrepareFix(_0x44a007,_0x129e4f={}){const _0x884fef={_0x36a833:0x1d1,_0x4fcb64:0x1ec,_0x6d338f:0x1c4,_0x407d44:0x1e3,_0x2a8cac:0x1f0,_0x14fe5d:0x19f,_0x58acc0:0x1bb,_0x4f296e:0x1eb,_0x1b5af6:0x1d9,_0x497f4f:0x19f,_0x54fafd:0x1d9,_0xd2125b:0x1cf,_0x2bfe39:0x1d9,_0x20d89b:0x1de,_0x394dff:0x1af,_0x303e27:0x1e5,_0x4b8490:0x1a5},_0x5d3d41=_0x1f1444,_0x4bf215=_0x129e4f['out']??process[_0x5d3d41(_0x884fef._0x36a833)],_0x3662e1=_0x129e4f[_0x5d3d41(_0x884fef._0x4fcb64)]??process[_0x5d3d41(0x1be)],_0x15a8bf=_0x129e4f[_0x5d3d41(_0x884fef._0x6d338f)]??process['cwd'](),_0x2ad1ab=_0x44a007[_0x5d3d41(_0x884fef._0x407d44)](_0x5d3d41(0x208));let _0x334640=_0x44a007[_0x5d3d41(_0x884fef._0x2a8cac)](_0x387836=>!_0x387836[_0x5d3d41(0x1bd)]('-'));if(_0x2ad1ab||_0x334640[_0x5d3d41(_0x884fef._0x14fe5d)]===0x0){const _0x181d80=listFailures(defaultFailuresRoot(_0x15a8bf));if(_0x181d80['length']===0x0)return _0x3662e1['write'](_0x5d3d41(0x1ce)),0x1;if(_0x334640[_0x5d3d41(_0x884fef._0x14fe5d)]===0x0){const _0x1f29ce=new Map();for(const _0x4f5d30 of _0x181d80){if(!_0x1f29ce['has'](_0x4f5d30['testFn']))_0x1f29ce[_0x5d3d41(0x1a1)](_0x4f5d30[_0x5d3d41(_0x884fef._0x58acc0)],_0x4f5d30);}_0x334640=[..._0x1f29ce[_0x5d3d41(0x1ed)]()][_0x5d3d41(_0x884fef._0x4f296e)](_0x3cab0a=>_0x3cab0a[_0x5d3d41(0x20d)]+'/'+_0x3cab0a[_0x5d3d41(0x1bb)]);}}if(_0x334640[_0x5d3d41(_0x884fef._0x14fe5d)]===0x0)return _0x3662e1[_0x5d3d41(_0x884fef._0x1b5af6)]('prepare-fix:\x20no\x20testId\x20provided\x20and\x20no\x20failing\x20tests\x20found.\x0a'),0x1;_0x4bf215[_0x5d3d41(0x1d9)](_0x5d3d41(0x1e2)+_0x334640[_0x5d3d41(_0x884fef._0x497f4f)]+_0x5d3d41(0x1e7));const _0x15f384=defaultFailuresRoot(_0x15a8bf);for(const _0x5b1608 of _0x334640){try{const _0x5cf116=composeFixPrompt(_0x5b1608,{'cwd':_0x15a8bf,'failuresRoot':_0x15f384}),_0x1d1ed6=_0x1b4732(_0x5cf116['sources'][_0x5d3d41(0x1a4)],_0x5d3d41(0x202));_0x30f1eb(_0x1d1ed6,_0x5cf116[_0x5d3d41(0x1a7)]),_0x4bf215[_0x5d3d41(_0x884fef._0x54fafd)](_0x5d3d41(_0x884fef._0xd2125b)+_0x5b1608+'\x0a'),_0x4bf215[_0x5d3d41(_0x884fef._0x54fafd)]('\x20\x20\x20\x20\x20\x20'+_0x1d1ed6+'\x0a'),_0x4bf215[_0x5d3d41(_0x884fef._0x2bfe39)](_0x5d3d41(_0x884fef._0x20d89b)+_0x5cf116[_0x5d3d41(0x1fb)]+_0x5d3d41(_0x884fef._0x394dff)+_0x5cf116[_0x5d3d41(0x201)]+_0x5d3d41(_0x884fef._0x303e27)+_0x5cf116[_0x5d3d41(0x1fa)]+'t\x0a');}catch(_0x345cba){_0x3662e1[_0x5d3d41(_0x884fef._0x1b5af6)](_0x5d3d41(0x1c7)+_0x5b1608+':\x20'+(_0x345cba instanceof Error?_0x345cba[_0x5d3d41(0x1b8)]:String(_0x345cba))+'\x0a');}}return _0x4bf215[_0x5d3d41(0x1d9)](_0x5d3d41(_0x884fef._0x4b8490)),0x0;}__name(runPrepareFix,_0x1f1444(0x1ef));function _0x17b2(_0x2a1ecf,_0x5d9a23){_0x2a1ecf=_0x2a1ecf-0x19f;const _0x2afcbe=_0x2afc();let _0x17b2aa=_0x2afcbe[_0x2a1ecf];if(_0x17b2['JrUorB']===undefined){var _0x211a83=function(_0x3565d8){const _0x1f5d5c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x30f1eb='',_0x1b4732='';for(let _0x30cd09=0x0,_0x1c6d62,_0x2c9248,_0x1065d9=0x0;_0x2c9248=_0x3565d8['charAt'](_0x1065d9++);~_0x2c9248&&(_0x1c6d62=_0x30cd09%0x4?_0x1c6d62*0x40+_0x2c9248:_0x2c9248,_0x30cd09++%0x4)?_0x30f1eb+=String['fromCharCode'](0xff&_0x1c6d62>>(-0x2*_0x30cd09&0x6)):0x0){_0x2c9248=_0x1f5d5c['indexOf'](_0x2c9248);}for(let _0x4ff4cf=0x0,_0x2d8050=_0x30f1eb['length'];_0x4ff4cf<_0x2d8050;_0x4ff4cf++){_0x1b4732+='%'+('00'+_0x30f1eb['charCodeAt'](_0x4ff4cf)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1b4732);};_0x17b2['xPjPXd']=_0x211a83,_0x17b2['VNIVrT']={},_0x17b2['JrUorB']=!![];}const _0x1ea506=_0x2afcbe[0x0],_0x5a6726=_0x2a1ecf+_0x1ea506,_0x3480d5=_0x17b2['VNIVrT'][_0x5a6726];return!_0x3480d5?(_0x17b2aa=_0x17b2['xPjPXd'](_0x17b2aa),_0x17b2['VNIVrT'][_0x5a6726]=_0x17b2aa):_0x17b2aa=_0x3480d5,_0x17b2aa;}var invokedDirectly=process[_0x1f1444(0x1f8)][0x1]&&fileURLToPath(import.meta.url)===process[_0x1f1444(0x1f8)][0x1];if(invokedDirectly){const code=runPrepareFix(process[_0x1f1444(0x1f8)][_0x1f1444(0x1ee)](0x2));process[_0x1f1444(0x1ae)](code);}export{runPrepareFix};