@unotest/web 0.13.0 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +89 -0
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.d.ts +2 -2
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.d.ts +2 -2
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.js +1 -1
- package/dist/inspection/page-inject.d.ts +14 -2
- package/dist/inspection/page-inject.js +33 -1
- package/dist/{interfaces-XvuefHHC.d.ts → interfaces-BaVF0jV-.d.ts} +5 -2
- package/dist/mcp/server.js +1 -1
- package/dist/runner/cli.js +1 -1
- package/dist/runner/init/chrome-probe.js +1 -1
- package/dist/runner/init.js +1 -1
- package/dist/runner/install-chromium.js +1 -1
- package/dist/runner/prepare-fix.js +1 -1
- package/dist/runner/scaffold-workspace.js +1 -1
- package/dist/runner/serve-fixture.js +1 -1
- package/dist/runner/web-runner-adapter.js +1 -1
- package/guides/dsl-reference.md +62 -2
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
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};
|
package/dist/runner/init.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x466b0a=_0x2072;(function(_0x1468bb,_0x36c9da){const _0x649fbd={_0x125291:0x193,_0x4f3d7f:0x103,_0x5a0dc8:0x18a,_0x1c794f:0x107,_0x32136c:0x195},_0x2f4272=_0x2072,_0x482bc2=_0x1468bb();while(!![]){try{const _0x792a7b=-parseInt(_0x2f4272(_0x649fbd._0x125291))/0x1+-parseInt(_0x2f4272(_0x649fbd._0x4f3d7f))/0x2*(-parseInt(_0x2f4272(_0x649fbd._0x5a0dc8))/0x3)+-parseInt(_0x2f4272(0xc1))/0x4*(-parseInt(_0x2f4272(_0x649fbd._0x1c794f))/0x5)+parseInt(_0x2f4272(0x14c))/0x6+-parseInt(_0x2f4272(0x145))/0x7+parseInt(_0x2f4272(_0x649fbd._0x32136c))/0x8+parseInt(_0x2f4272(0x190))/0x9*(-parseInt(_0x2f4272(0x102))/0xa);if(_0x792a7b===_0x36c9da)break;else _0x482bc2['push'](_0x482bc2['shift']());}catch(_0x4052f4){_0x482bc2['push'](_0x482bc2['shift']());}}}(_0x393b,0x8594c));var __defProp=Object['defineProperty'],__name=(_0x15d534,_0x1d6593)=>__defProp(_0x15d534,_0x466b0a(0x115),{'value':_0x1d6593,'configurable':!![]});import{copyFileSync,existsSync as _0x8c94b2,mkdirSync,readFileSync,writeFileSync}from'fs';import{dirname as _0x3321ab,join,resolve as _0x13b620}from'path';function _0x2072(_0x1a66b7,_0x5f199a){_0x1a66b7=_0x1a66b7-0xb7;const _0x393b16=_0x393b();let _0x2072da=_0x393b16[_0x1a66b7];if(_0x2072['PbkqRR']===undefined){var _0x3c34df=function(_0x1f6a22){const _0x5cf963='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x8c94b2='',_0x3321ab='';for(let _0x13b620=0x0,_0x5cefcd,_0x200546,_0x15d534=0x0;_0x200546=_0x1f6a22['charAt'](_0x15d534++);~_0x200546&&(_0x5cefcd=_0x13b620%0x4?_0x5cefcd*0x40+_0x200546:_0x200546,_0x13b620++%0x4)?_0x8c94b2+=String['fromCharCode'](0xff&_0x5cefcd>>(-0x2*_0x13b620&0x6)):0x0){_0x200546=_0x5cf963['indexOf'](_0x200546);}for(let _0x1d6593=0x0,_0x2b16b3=_0x8c94b2['length'];_0x1d6593<_0x2b16b3;_0x1d6593++){_0x3321ab+='%'+('00'+_0x8c94b2['charCodeAt'](_0x1d6593)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3321ab);};_0x2072['ymyuQH']=_0x3c34df,_0x2072['HYAzVT']={},_0x2072['PbkqRR']=!![];}const _0x14e7fa=_0x393b16[0x0],_0x5a2709=_0x1a66b7+_0x14e7fa,_0x24b073=_0x2072['HYAzVT'][_0x5a2709];return!_0x24b073?(_0x2072da=_0x2072['ymyuQH'](_0x2072da),_0x2072['HYAzVT'][_0x5a2709]=_0x2072da):_0x2072da=_0x24b073,_0x2072da;}import{fileURLToPath as _0x5cefcd}from'url';import{existsSync as _0x200546}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0xf01b53=_0x466b0a;for(const _0x2b16b3 of[probeChrome,probeEdge,probeChromeBeta]){const _0x19068b=_0x2b16b3();if(_0x19068b[_0xf01b53(0x13a)]!==null)return _0x19068b;}return{'channel':null};}__name(probeSystemBrowser,_0x466b0a(0x10b));function probeChrome(){const _0x3f4835={_0x179bd6:0xc7},_0x3b017b=_0x466b0a,_0x3c30e5=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x3c30e5)return{'channel':_0x3b017b(_0x3f4835._0x179bd6),'path':_0x3c30e5,'label':_0x3b017b(0x116)};return{'channel':null};}__name(probeChrome,_0x466b0a(0x1a6));function probeEdge(){const _0x15ca07={_0xaec232:0x13c,_0x454a23:0x11c},_0x48755d=_0x466b0a,_0x4916be=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x4916be)return{'channel':_0x48755d(_0x15ca07._0xaec232),'path':_0x4916be,'label':_0x48755d(_0x15ca07._0x454a23)};return{'channel':null};}__name(probeEdge,_0x466b0a(0x1b3));function probeChromeBeta(){const _0x2b0ae1={_0x24ed3d:0x182},_0x14bfd2=_0x466b0a,_0x2cb94a=firstExistingPath(CHROME_BETA_PATHS);if(_0x2cb94a)return{'channel':_0x14bfd2(0x1b4),'path':_0x2cb94a,'label':_0x14bfd2(_0x2b0ae1._0x24ed3d)};return{'channel':null};}__name(probeChromeBeta,_0x466b0a(0x1b1));var CHROME_PATHS=((()=>{const _0x5a4468={_0xbac830:0xe6,_0xf1a787:0xc3,_0x45b6b8:0xda,_0x5cec70:0x172,_0x351508:0x15c,_0x99c67a:0x13b},_0x3f3846=_0x466b0a;switch(process['platform']){case _0x3f3846(_0x5a4468._0xbac830):return[_0x3f3846(_0x5a4468._0xf1a787)];case _0x3f3846(_0x5a4468._0x45b6b8):return[process['env'][_0x3f3846(0x166)]+_0x3f3846(0x13b),process[_0x3f3846(_0x5a4468._0x5cec70)]['ProgramFiles(x86)']+_0x3f3846(0x13b),process[_0x3f3846(_0x5a4468._0x5cec70)][_0x3f3846(_0x5a4468._0x351508)]+_0x3f3846(_0x5a4468._0x99c67a)];default:return['/usr/bin/google-chrome',_0x3f3846(0x163),_0x3f3846(0x189),'/usr/bin/chromium',_0x3f3846(0xe5)];}})()),CHROME_BIN_NAMES=[_0x466b0a(0x130),_0x466b0a(0xff),_0x466b0a(0x162),_0x466b0a(0xd5)],EDGE_PATHS=((()=>{const _0x285ef4={_0x432202:0x172,_0x1c8a3d:0x166,_0x353cca:0x133,_0x1bd03b:0x16f},_0xd005bf=_0x466b0a;switch(process[_0xd005bf(0x1b6)]){case'darwin':return[_0xd005bf(0xea)];case'win32':return[process[_0xd005bf(_0x285ef4._0x432202)][_0xd005bf(_0x285ef4._0x1c8a3d)]+_0xd005bf(_0x285ef4._0x353cca),process[_0xd005bf(0x172)][_0xd005bf(0x178)]+_0xd005bf(0x133)];default:return['/usr/bin/microsoft-edge',_0xd005bf(_0x285ef4._0x1bd03b)];}})()),EDGE_BIN_NAMES=[_0x466b0a(0xf2),_0x466b0a(0x199)],CHROME_BETA_PATHS=((()=>{const _0x2c3987={_0x29936f:0xe6,_0x3c6559:0x170},_0x347858=_0x466b0a;switch(process[_0x347858(0x1b6)]){case _0x347858(_0x2c3987._0x29936f):return[_0x347858(0x196)];case'win32':return[process['env']['ProgramFiles']+_0x347858(0x158)];default:return[_0x347858(_0x2c3987._0x3c6559)];}})());function firstExistingPath(_0x4f3cc1){const _0x200888=_0x466b0a;for(const _0x1d7884 of _0x4f3cc1){if(!_0x1d7884||_0x1d7884[_0x200888(0xcc)]('undefined'))continue;if(existsSync(_0x1d7884))return _0x1d7884;}return null;}__name(firstExistingPath,_0x466b0a(0xcb));function whichOf(_0x300534){const _0x39dad3={_0x1588c0:0x1b6,_0x290a43:0x112},_0xe6e15e=_0x466b0a;if(process[_0xe6e15e(_0x39dad3._0x1588c0)]==='win32')return void 0x0;for(const _0x135bcc of _0x300534){try{const _0x210c59=execFileSync('which',[_0x135bcc],{'encoding':_0xe6e15e(_0x39dad3._0x290a43)})[_0xe6e15e(0x160)]();if(_0x210c59[_0xe6e15e(0xee)]>0x0&&existsSync(_0x210c59))return _0x210c59;}catch{}}return void 0x0;}__name(whichOf,_0x466b0a(0x174));function runEnvironmentChecks(_0x51859b={}){const _0x14a62d={_0x9dba90:0x187},_0x21ca29=_0x466b0a,_0x528ba9=_0x51859b[_0x21ca29(0x187)]??process[_0x21ca29(_0x14a62d._0x9dba90)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x528ba9)];}__name(runEnvironmentChecks,'runEnvironmentChecks');function checkNodeVersion(){const _0x53d4b6={_0xddac30:0x127,_0xd23554:0x114,_0x47d465:0x135},_0x564f97=_0x466b0a,_0x3066f5=process[_0x564f97(_0x53d4b6._0xddac30)][_0x564f97(0xe2)],_0x1fc8b3=Number(_0x3066f5['split']('.')[0x0]);if(!Number['isFinite'](_0x1fc8b3)||_0x1fc8b3<0x14)return{'name':'Node.js\x20version','severity':_0x564f97(0xbc),'message':_0x564f97(_0x53d4b6._0xd23554)+_0x3066f5+')','detail':_0x564f97(_0x53d4b6._0x47d465)};return{'name':_0x564f97(0xd0),'severity':'ok','message':_0x3066f5};}__name(checkNodeVersion,'checkNodeVersion');function checkSystemBrowser(){const _0x4d26f2={_0x33aaad:0x13a,_0x1f0f98:0x19c,_0x4563bd:0x19a,_0x2f4262:0xfa},_0x1ab3c9=_0x466b0a,_0x165c10=probeSystemBrowser();if(_0x165c10[_0x1ab3c9(_0x4d26f2._0x33aaad)]!==null)return{'name':_0x1ab3c9(_0x4d26f2._0x1f0f98),'severity':'ok','message':_0x165c10['label']+_0x1ab3c9(0xec),'detail':_0x165c10['path']};return{'name':_0x1ab3c9(0x19c),'severity':_0x1ab3c9(_0x4d26f2._0x4563bd),'message':_0x1ab3c9(0x159),'detail':_0x1ab3c9(_0x4d26f2._0x2f4262)};}__name(checkSystemBrowser,_0x466b0a(0x19b));function checkWritableCwd(_0x123248){const _0x59751e={_0x547cc2:0xf4,_0x1bca9b:0x191},_0x5b3cca=_0x466b0a;if(!_0x200546(_0x123248))return{'name':'Target\x20directory','severity':'error','message':_0x5b3cca(_0x59751e._0x547cc2)+_0x123248+_0x5b3cca(0x161),'detail':_0x5b3cca(_0x59751e._0x1bca9b)};return{'name':_0x5b3cca(0x1ad),'severity':'ok','message':_0x123248};}__name(checkWritableCwd,_0x466b0a(0xd9));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':_0x466b0a(0xe9),'examples':{'01-smoke.js':_0x466b0a(0x17a),'02-form-fill.js':_0x466b0a(0x17b)},'secretsExample':'#\x20unotest-web\x20—\x20secret\x20scenario\x20variables.\x20Created\x20by\x20`init`,\x20gitignored.\x0a#\x0a#\x20Same\x20KEY=VALUE\x20format\x20as\x20unotest/.env,\x20but\x20values\x20here\x20are\x20treated\x20as\x0a#\x20SECRET:\x20they\x20are\x20masked\x20(shown\x20as\x20`‹secret:KEY›`)\x20anywhere\x20the\x20runner\x20or\x0a#\x20MCP\x20debug\x20log\x20would\x20otherwise\x20write\x20them\x20—\x20fill()\x20values,\x20URLs,\x20evaluate\x0a#\x20strings.\x20Reference\x20them\x20in\x20a\x20scenario\x20by\x20their\x20bare\x20UPPER_SNAKE\x20name,\x20the\x0a#\x20same\x20way\x20as\x20.env\x20variables:\x0a#\x0a#\x20\x20\x20fill(getByLabel(\x27Password\x27),\x20PASSWORD);\x0a#\x0a#\x20Secrets\x20are\x20NOT\x20exported\x20to\x20subprocesses\x20(shell())\x20—\x20they\x20stay\x20in\x20the\x0a#\x20variable\x20store.\x20A\x20subprocess\x20that\x20genuinely\x20needs\x20one\x20(a\x20listener\x20with\x20a\x0a#\x20token)\x20gets\x20it\x20via\x20the\x20explicit\x20allowlist\x20in\x20unotest.config.*:\x0a#\x20\x20\x20sandbox:\x20{\x20exportSecrets:\x20[\x27TOKEN\x27]\x20}\x0a#\x20Put\x20non-secret\x20values\x20(URLs,\x20emails,\x20ids)\x20in\x20unotest/.env.\x0a#\x0a#\x20FLEET_EXAMPLE\x0aLOGIN=\x0aPASSWORD=\x0aTOKEN=\x0a','envExample':'#\x20unotest-web\x20—\x20copied\x20to\x20unotest/.env\x20by\x20`init`\x20if\x20not\x20present.\x0a#\x0a#\x20Fill\x20in\x20values\x20that\x20apply\x20to\x20your\x20project.\x20Variables\x20are\x20loaded\x20by\x20the\x0a#\x20runner\x20at\x20scenario\x20start.\x0a#\x0a#\x20Reference\x20any\x20variable\x20from\x20a\x20scenario\x20by\x20its\x20bare\x20UPPER_SNAKE\x20name\x20—\x0a#\x20no\x20env()/secret()\x20wrapper:\x0a#\x0a#\x20\x20\x20goto(\x27/login\x27);\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20relative\x20—\x20see\x20APP_BASE_URL\x0a#\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20TEST_USER_EMAIL);\x0a#\x0a#\x20Secret\x20values\x20(passwords,\x20tokens)\x20go\x20in\x20unotest/.secrets\x20instead\x20—\x20same\x0a#\x20format,\x20but\x20masked\x20in\x20every\x20log.\x20An\x20unknown\x20UPPER_SNAKE\x20name\x20fails\x20the\x0a#\x20run\x20with\x20a\x20clear\x20\x22add\x20it\x20to\x20unotest/.env\x22\x20message.\x0a#\x0a#\x20Environments:\x20override\x20any\x20value\x20per\x20environment\x20with\x20overlay\x20files\x20—\x0a#\x20unotest/.env.staging,\x20unotest/.env.production\x20(secrets:\x20.secrets.<env>).\x0a#\x20Select\x20one:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x20--env\x20staging`.\x20The\x20overlay\x20layers\x0a#\x20over\x20this\x20base\x20file\x20(overlay\x20wins);\x20the\x20shell\x20environment\x20wins\x20over\x20both.\x0a\x0a#\x20---\x20App\x20under\x20test\x20--------------------------------------------------------\x0a#\x20The\x20app\x27s\x20base\x20URL.\x20Relative\x20goto(\x27/path\x27)\x20resolves\x20against\x20it\x20(wired\x20into\x0a#\x20Playwright\x27s\x20baseURL\x20automatically),\x20so\x20write\x20goto(\x27/login\x27)\x20—\x20never\x0a#\x20goto(APP_BASE_URL\x20+\x20\x27/login\x27).\x20Also\x20used\x20for\x20assertUrl\x20substring\x20matching.\x0a#\x20Defaults\x20to\x20the\x20unotest\x20playground\x20so\x20the\x20example\x20scenarios\x20run\x20out\x20of\x20the\x0a#\x20box;\x20point\x20it\x20at\x20your\x20own\x20app.\x0aAPP_BASE_URL=https://playground.unotest.com\x0a\x0a#\x20---\x20Database\x20--------------------------------------------------------------\x0a#\x20Used\x20by\x20dbQuery\x20/\x20dbExec.\x20Install\x20the\x20matching\x20driver\x20as\x20a\x20peer-dep:\x0a#\x20\x20\x20pnpm\x20add\x20-D\x20pg\x20@types/pg\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20for\x20postgresql://\x0a#\x20\x20\x20pnpm\x20add\x20-D\x20mysql2\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20for\x20mysql://\x0a#\x20(SQLite\x20via\x20better-sqlite3\x20—\x20install\x20only\x20if\x20needed.)\x0aDATABASE_URL=postgresql://postgres:postgres@localhost:5432/myapp_test\x0a\x0a#\x20---\x20Extra\x20API\x20hosts\x20-------------------------------------------------------\x0a#\x20apiCall(...)\x20goes\x20against\x20sandbox.apiBaseUrl\x20from\x20unotest.config.*\x20by\x0a#\x20default.\x20A\x20setup\x20that\x20talks\x20to\x20MORE\x20hosts\x20names\x20them\x20here\x20and\x20picks\x20one\x0a#\x20per\x20call\x20by\x20the\x20variable\x20NAME\x20(URLs\x20never\x20appear\x20in\x20scenarios):\x0a#\x20\x20\x20apiCall(\x27POST\x27,\x20\x27/things\x27,\x20body,\x20headers,\x20{base:\x20\x27API_BASE_CHAT\x27})\x0a#\x20API_BASE_CHAT=https://chatbackend.example.com\x0a\x0a#\x20---\x20Runner\x20--------------------------------------------------------------\x0a#\x20Show\x20the\x20browser\x20window\x20during\x20runs\x20(default:\x20headless).\x0a#\x20UNOTEST_HEADED=1\x0a#\x20Slow\x20each\x20Playwright\x20op\x20by\x20N\x20ms\x20(default:\x200).\x20Pairs\x20with\x20HEADED\x20for\x0a#\x20watching\x20the\x20agent\x20at\x20work.\x0a#\x20UNOTEST_SLOW_MO=100\x0a#\x20Browser\x20used\x20by\x20the\x20CLI\x20(chromium\x20|\x20firefox\x20|\x20webkit).\x20Default:\x20chromium.\x0a#\x20UNOTEST_BROWSER=chromium\x0a#\x20Default\x20action\x20timeout\x20in\x20milliseconds\x20—\x20applied\x20to\x20every\x20click\x20/\x0a#\x20fill\x20/\x20waitFor\x20/\x20etc.\x20via\x20Playwright\x27s\x20setDefaultTimeout.\x20Default\x203000.\x0a#\x20Bump\x20if\x20your\x20app\x20is\x20slow;\x20per-action\x20override\x20via\x20the\x20action\x27s\x0a#\x20options.timeout.\x20Playwright\x27s\x20stock\x2030000\x20strands\x20interactive\x20agents.\x0a#\x20UNOTEST_DEFAULT_TIMEOUT_MS=3000\x0a#\x20Default\x20navigation\x20timeout\x20in\x20milliseconds\x20—\x20applied\x20to\x20goto\x20/\x20reload\x20/\x0a#\x20waitForUrl,\x20click\x27s\x20post-action\x20navigation\x20wait,\x20AND\x20setPage\x27s\x20wait\x20for\x20a\x0a#\x20newly\x20opened\x20tab\x20to\x20appear\x20+\x20load.\x20Real-world\x20pages\x20routinely\x20take\x205–15s\x0a#\x20to\x20fire\x20\x27load\x27;\x20keep\x20this\x20separate\x20from\x20the\x20action\x20timeout\x20above.\x0aUNOTEST_DEFAULT_NAVIGATION_TIMEOUT_MS=15000\x0a\x0a#\x20Per-run\x20wall-clock\x20budget\x20in\x20milliseconds\x20—\x20a\x20run\x20aborts\x20once\x20it\x20exceeds\x0a#\x20this.\x20Guards\x20against\x20a\x20stuck\x20scenario\x20hanging\x20the\x20agent\x20indefinitely.\x0a#\x20Invalid\x20or\x20non-positive\x20values\x20fall\x20back\x20to\x20the\x20default.\x20Default\x20300000.\x0a#\x20UNOTEST_MAX_DURATION_MS=300000\x0a\x0a#\x20---\x20Locale\x20+\x20timezone\x20---------------------------------------------------\x0a#\x20Pin\x20the\x20browser\x20context\x27s\x20Accept-Language\x20/\x20navigator.language.\x20Without\x0a#\x20these,\x20tests\x20inherit\x20the\x20OS\x20locale\x20—\x20accessible-name\x20selectors\x0a#\x20(`getByRole(name)`)\x20on\x20i18n\x27d\x20apps\x20will\x20break\x20across\x20machines.\x0a#\x20UNOTEST_LOCALE=en-US\x0a#\x20UNOTEST_TIMEZONE=UTC\x0a\x0a#\x20---\x20Recording\x20(explore_*)\x20----------------------------------------------\x0a#\x20Grace\x20window\x20in\x20ms\x20after\x20each\x20explore_step\x20action.\x20If\x20a\x20click\x20opens\x20a\x0a#\x20new\x20tab/popup,\x20the\x20MCP\x20server\x20auto-switches\x20the\x20active\x20page\x20to\x20it\x20AND\x0a#\x20inserts\x20setPage(N)\x20into\x20the\x20generated\x20DSL\x20trace.\x20Set\x20to\x200\x20to\x20disable\x0a#\x20(strict\x20mode).\x20Has\x20NO\x20effect\x20on\x20run_test\x20—\x20there\x20setPage\x20already\x20waits\x0a#\x20for\x20the\x20tab\x20to\x20appear\x20on\x20its\x20own.\x20Range:\x20[0,\x2010000].\x20Default:\x202000.\x0a#\x20UNOTEST_POPUP_GRACE_MS=2000\x0a\x0a#\x20---\x20Logging\x20-------------------------------------------------------------\x0a#\x20debug\x20|\x20info\x20|\x20warn\x20|\x20error.\x20Default:\x20info.\x0aUNOTEST_LOG_LEVEL=info\x0a\x0a#\x20---\x20Debug\x20diagnostics\x20---------------------------------------------------\x0a#\x20Off\x20by\x20default.\x20Set\x20to\x201\x20to\x20record\x20a\x20structured\x20JSONL\x20log\x20+\x20per-call\x0a#\x20folders\x20under\x20unotest/.debug/\x20—\x20then\x20restart\x20the\x20MCP\x20server.\x20Each\x20tool\x0a#\x20call\x20gets\x20a\x20folder\x20with\x20the\x20full\x20snapshot\x20JSON,\x20the\x20outerHTML\x20of\x20the\x0a#\x20element\x20a\x20locator\x20resolved\x20to,\x20and\x20(on\x20failure)\x20page.html\x20+\x20a\x20screenshot,\x0a#\x20so\x20you\x20(and\x20the\x20AI\x20agent,\x20via\x20get_last_mcp_log)\x20can\x20verify\x20the\x20snapshot\x0a#\x20didn\x27t\x20glitch\x20and\x20the\x20locator\x20hit\x20the\x20right\x20element\x20—\x20instead\x20of\x20guessing\x0a#\x20from\x20a\x20truncated\x20error.\x20audit_last_run\x20then\x20checks\x20the\x20run\x20against\x20the\x0a#\x20testing\x20rules.\x20Also\x20turns\x20on\x20full\x20CLI\x20stack\x20traces.\x20Use\x20\x27summary\x27\x20for\x20a\x0a#\x20lighter\x20log\x20(tool\x20+\x20snapshot\x20layers\x20only,\x20no\x20artifacts).\x20NOTE:\x20tool\x0a#\x20arguments\x20are\x20logged\x20verbatim,\x20so\x20a\x20fill()\x20with\x20a\x20password\x20lands\x20in\x20the\x0a#\x20local\x20(gitignored)\x20log\x20—\x20keep\x20this\x20off\x20unless\x20you\x27re\x20debugging.\x0a#\x20UNOTEST_DEBUG=1\x0a\x0a#\x20---\x20Capture\x20(viewer\x20inspector)\x20------------------------------------------\x0a#\x20Record\x20the\x20browser\x20console\x20+\x20network\x20requests\x20into\x20each\x20run\x27s\x20dir\x20so\x20the\x0a#\x20viewer\x27s\x20Console\x20/\x20Network\x20inspector\x20tabs\x20are\x20populated.\x20Set\x20to\x200\x20to\x20disable.\x0aUNOTEST_NETWORK=1\x0aUNOTEST_CONSOLE=1\x0a#\x20Set\x20to\x201\x20to\x20also\x20capture\x20a\x20screenshot\x20after\x20EVERY\x20executed\x20step\x20(into\x0a#\x20unotest/.runs/<runId>/screenshot/;\x20click\x20a\x20step\x20row\x20in\x20the\x20viewer\x20to\x20see\x0a#\x20it).\x20On\x20failure,\x20a\x20screenshot\x20+\x20page.html\x20always\x20land\x20in\x0a#\x20unotest/.runs/<runId>/failure/\x20—\x20no\x20flag\x20needed.\x0a#\x20UNOTEST_STEP_SCREENSHOTS=1\x0a'};function unotestConfigMjs(_0xcc1288){const _0x10c6a6={_0x3320d5:0x11a,_0x44af4b:0x156},_0x5672e4=_0x466b0a,_0x2d27cc=_0xcc1288===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)':_0x5672e4(_0x10c6a6._0x3320d5)+JSON['stringify'](_0xcc1288)+',';return'//\x20@unotest/web\x20project\x20config.\x20All\x20fields\x20are\x20optional\x20—\x20defaults\x20apply\x0a//\x20when\x20omitted.\x0a//\x0a//\x20Saved\x20as\x20.mjs\x20so\x20the\x20runtime\x20loads\x20it\x20as\x20ESM\x20regardless\x20of\x20the\x20project\x27s\x0a//\x20package.json\x20\x22type\x22\x20field.\x20For\x20IDE\x20autocomplete,\x20type-import\x20the\x20schema:\x0a//\x0a//\x20\x20\x20/**\x20@type\x20{Partial<import(\x27@unotest/web\x27).UnotestConfig>}\x20*/\x0a//\x20\x20\x20export\x20default\x20{\x20baseUrl:\x20\x27https://your-app.test\x27\x20};\x0a\x0a/**\x20@type\x20{Partial<import(\x27@unotest/web\x27).UnotestConfig>}\x20*/\x0aexport\x20default\x20{\x0a\x20\x20//\x20baseUrl:\x20\x27https://your-app.test\x27,\x0a\x20\x20//\x20browsers:\x20[\x27chromium\x27,\x20\x27firefox\x27,\x20\x27webkit\x27],\x20\x20//\x20CI\x20override\x0a\x20\x20//\x20viewport:\x20{\x20width:\x201280,\x20height:\x20720\x20},\x0a\x20\x20//\x20retry:\x20{\x20count:\x201,\x20on:\x20[\x27transient\x27]\x20},\x20\x20\x20\x20\x20\x20\x20\x20//\x20CI\x20override\x0a\x20\x20//\x20storageState:\x20\x27.unotest/cache/auth.json\x27,\x20\x20\x20\x20\x20\x20//\x20see\x20helpers\x0a'+_0x2d27cc+_0x5672e4(_0x10c6a6._0x44af4b);}__name(unotestConfigMjs,_0x466b0a(0x16e));function promptYesNo(_0x104f3f,_0x51e4ea){const _0x3d8d02={_0x3ec3d0:0x10f},_0x555442={_0x38a7fd:0xc9,_0x140866:0x168,_0x22e2bf:0x108,_0x2b7bd1:0x168,_0x187f90:0xbe},_0x3a8a03=_0x466b0a,_0x1901c2=_0x51e4ea?_0x3a8a03(0x1b5):_0x3a8a03(_0x3d8d02._0x3ec3d0);return new Promise(_0x325edf=>{const _0x116c59={_0x25c7bc:0x14e,_0x42b28b:0x184,_0x2f5600:0x160,_0x22803b:0x18f},_0x24edc4={_0x359d77:0x168,_0x4ec97b:0x147,_0x411313:0x108,_0xc075f1:0x168},_0xe4d9d8=_0x3a8a03;let _0x21a57e=![];const _0x5076c3=__name(_0x355048=>{const _0x70aea2=_0x2072;if(_0x21a57e)return;_0x21a57e=!![],process[_0x70aea2(_0x24edc4._0x359d77)][_0x70aea2(_0x24edc4._0x4ec97b)](_0x70aea2(_0x24edc4._0x411313),_0x1c8228),process[_0x70aea2(_0x24edc4._0xc075f1)][_0x70aea2(0x147)](_0x70aea2(0x12e),_0x44c6e9),process['stdin']['pause'](),process[_0x70aea2(0x168)][_0x70aea2(0x12c)](),_0x325edf(_0x355048);},_0xe4d9d8(_0x555442._0x38a7fd)),_0x1c8228=__name(_0x120b0d=>{const _0x497631=_0xe4d9d8,_0x42dc15=typeof _0x120b0d==='string'?_0x120b0d:_0x120b0d[_0x497631(_0x116c59._0x25c7bc)](_0x497631(0x112)),_0x2fcb57=_0x42dc15[_0x497631(0x18b)]('\x0a');if(_0x2fcb57<0x0)return;const _0x5b0a6a=_0x42dc15[_0x497631(_0x116c59._0x42b28b)](0x0,_0x2fcb57)[_0x497631(_0x116c59._0x2f5600)]()[_0x497631(_0x116c59._0x22803b)]();if(_0x5b0a6a==='')return _0x5076c3(_0x51e4ea);_0x5076c3(_0x5b0a6a==='y'||_0x5b0a6a===_0x497631(0x1a4));},_0xe4d9d8(0x13e)),_0x44c6e9=__name(()=>_0x5076c3(_0x51e4ea),'onEnd');process[_0xe4d9d8(0x198)]['write'](_0x104f3f+_0x1901c2),process[_0xe4d9d8(_0x555442._0x140866)]['on'](_0xe4d9d8(_0x555442._0x22e2bf),_0x1c8228),process[_0xe4d9d8(_0x555442._0x2b7bd1)]['on'](_0xe4d9d8(0x12e),_0x44c6e9),process[_0xe4d9d8(_0x555442._0x140866)][_0xe4d9d8(_0x555442._0x187f90)]();});}__name(promptYesNo,_0x466b0a(0xe3));function _0x393b(){const _0x4cc143=['C3rHCNrZv2L0Aa','zM9Yy2u','B2jQzwn0','B3zLCNDYB3rLihvUB3rLC3qTD2vIigvUDhj5','tM9Kzs5QCYb2zxjZAw9U','iokaLcb1C2LUzYbJAgfUBMvSicC','qhvUB3rLC3qVD2vIqa','cKzPBgvZoGO','yxbWzw5Kzwq','y2HYB21PDw0TyNjVD3nLCG','ihnVDxjJzsbTAxnZAw5NiokaLcbWywnRywDLigLUC3rHBgWGyNvNpW','BwnWx191BM90zxn0lxDLyG','DxbKyxrLza','y2HLy2TxCML0ywjSzun3za','D2LUmZi','Dw5VDgvZDc9LmMuVzxHHBxbSzxm','icdINjmGDw5VDgvZDc5JB25MAwCUBwPZia','icdINjmG','DgHLBG','C2TPBgWGkgDYB3vUzcK','ywXSB3C','AxnbCNjHEq','BM9Kzq','ChjVBxb0wwvZtM8','4PYxigLUC3rHBgWTy2HYB21PDw06ia','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','zgfYD2LU','C3rYAw5N','B3zLCNDYB3rL','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','uhjLvg9VBfvZzq','igzVDw5K','C3rYAw5NAwz5','BgvUz3rO','sw5ZDhj1y3rPB25Ztg9HzgvK','BM8Gy2HHBM5LBcbZzxqGkgj1BMrSzwqGzMfSBgjHy2SGywz0zxiGAw5ZDgfSBc1JAhjVBwL1BsK','zw52rxHHBxbSzq','BwLJCM9ZB2z0lwvKz2u','4PYxic0TyNjVD3nLCIbZExn0zw0GyNv0ig5VienOCM9TzsaVievKz2uGlYbdAhjVBwL1BsbMB3vUzcbVBIb0AgLZig1Hy2HPBMuU','DgfYz2v0ia','ywDLBNrZtwq','y3jLyxrLzcaUy2XHDwrLl3nLDhrPBMDZlMPZB24GkgfSBg93oIbTy3bFx3vUB3rLC3qTD2vIkq','BMv3q29UDgvUDa','y2HHBM5LBdOGjW','Dw5VDgvZDc13zwiGAw5PDcdIHPiG','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','Dw5VDgvZDc9LmMuVx2HLBhbLCNmVlMDPDgTLzxa','Dw5VDgvZDc13zwi','C2TPChbLza','y3jLyxrLza','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','igzVDw5Kigf0ia','u3vIywDLBNrtDg9W','mtbvAxPtrxK','ndC0ntrTvxzMAuC','CgXHExDYAwDODc9WywnRywDLlMPZB24GAgfZig5VihvZywjSzsaIyMLUiIbMAwvSza','y2f0y2G','ChvZAa','ndqZnxfQwKXkta','zgf0yq','C3LZDgvT','y29WEvbHy2THz2vgAwXL','ChjVyMvtExn0zw1cCM93C2vY','pceTlsb1BM90zxn0oMjLz2LUicHTyw5Hz2vKigj5ieb1BM90zxn0l3DLyIbPBML0iokaLcbKBYbUB3qGzwrPDcbPBNnPzguPic0TpG','BwvZC2fNzq','BwvYz2vny3bdB25MAwC','ifT5l05Dia','C3rKB3v0v3jPDgu','lMnSyxvKzs9ZA2LSBhmVD3jPDguTztjLlxrLC3qVu0TjteWUBwq','DxrMoa','twnWsNnVBLbHCNnLrxjYB3i','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','BMfTzq','r29Vz2XLienOCM9Tzq','CNvUsw5ZDgfSBenOCM9TAxvTq2XP','CgLWzq','4PQGie5VigjYB3DZzxiGy29UzMLNDxjLzc4GuNvUig9UzsbVzIbIzwzVCMuGzMLYC3qGDgvZDdO','icbJAgfUBMvSoIa','Aw5OzxjPDa','twLJCM9ZB2z0ievKz2u','yxjNDG','lMDPDgLNBM9Yzq','ywXYzwfKEs1WCMvZzw50','Dw5VDgvZDc8UC2vJCMv0CYO','Dw5VDgvZDc8UzgvIDwCQlW','CgfYC2u','zw5ZDxjLrgLY','Aw5JBhvKzxm','y2HVB3nLqNjVD3nLCG','DMvYC2LVBG','DMvYC2LVBNm','icdcTYbUBYbJAgfUz2vZig5LzwrLzaO','Dw5VDgvZDc8UDMLLD2vYlMXVzW','D2fYBMLUz3m','zxHPDa','Dw5Yzwy','C2v2zxjPDhK','zw5K','4PYtihvWzgf0zwq','z29Vz2XLlwnOCM9Tzq','zxHHBxbSzxm','u2vZC2LVBLn0yxj0','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','cKrVBMuUie5LEhqGC3rLChm6cG','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','zxHPDenVzgu','ywXSB3CGywXYzwfKEsbWCMvZzw50','ChjVyMu','CNvUsw5PDa','y2HHBM5LBa','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','BxnLzgDL','cIaGtM8GC3LZDgvTienOCM9TzsaVievKz2uGlYbdAhjVBwL1BsbKzxrLy3rLzc4k','B25eyxrH','yMLU','ls1ICM93C2vYigv4CgvJDhmGC3LZDgvTFgj1BMrSzwr8BM9UzsWGz290ia','ixvUB3rLC3qVlMvUDI5LEgfTCgXL','Dw5VDgvZDc9LmMuVx3rLBxbSyxrLlMPZ','lIbgAxGGB3iGCMvTB3zLihrOzsbMAwXLigfUzcbYzs1YDw4GAw5PDc4','lMnSyxvKzs9Zzxr0Aw5NCY5QC29U','ndyWodmXExj4y1D3','icbVCIbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LlG','CMvTB3zLtgLZDgvUzxi','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','Ag9VA3m','Aw5ZDgfSBenOCM9TAxvT','BM9Uzq','mZCXnJi4mgzuBuH5vW','cI5NAxrPz25VCMu6cG','Dg9tDhjPBMC','Bg9NlwfNzw50lNnO','icdINjmGC3LZDgvTia','cKzPEcb0AguGzxjYB3jZigfIB3zLigfUzcbYzs1YDw4UcG','lI4VlI4V','icdIGkiGuNvUigfUigv4yw1WBguGywDHAw5ZDcb0AguGCgXHEwDYB3vUzdOkicaGicaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdeTC21VA2ukicdIGkiGtgLUDcb5B3vYihnJzw5HCMLVCZOkicaGicaGBNb4ieb1BM90zxn0l3DLyIbSAw50cIaG4OcIifDYAxrLigeGDgvZDdOGB3bLBIbdBgf1zguGq29KzsbOzxjLigfUzcbHC2SG4OcuigL0igzVBgXVD3mGDgHLcIaGicaGihDYAxrLlwuYzs10zxn0ihnRAwXSigfUzcbKCML2zxmGDgHLihvUB3rLC3qTD2vIie1ducbZzxj2zxiUcIaGicaGicGUBwnWlMPZB24GkYbdtefvreuUBwqVquDftLrtlM1KihDLCMuGANvZDcb3AxjLzcbMB3iGEw91lIKkicdIGkiGqwXYzwfKEsbPBNnPzguGyw4GywDLBNqGC2vZC2LVBJ8GuMvZDgfYDcbPDcaOB3iGCMvJB25Uzwn0ihzPyqOGicaGicaVBwnWksdIGjqGtunqignSAwvUDhmGBg9HzcaUBwnWlMPZB24GC2vYDMvYCYbHDcbZzxnZAw9Uihn0yxj0laOGicaGicbZBYb0AguGDw5VDgvZDc13zwiGDg9VBhmGyxbWzwfYig9UBhKGAw4GysbMCMvZAcbZzxnZAw9UlGOGiokaOIbezwj1zYb0AguGywDLBNq6igXHDw5JAcb3AxrOifvot1rfu1rFrevcvuC9msb0BYb0CMfJzsbLDMvYEqOGicaGicbHy3rPB24GDg8GDw5VDgvZDc8UzgvIDwCVywDLBNqVywn0Aw9UCY5QC29UBc4k','Dw5VDgvZDc8UCNvUCYOV','BwnW','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','Dw5VDgvZDc9LmMuVzxHHBxbSzxmV','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','C29Tzq','q2XHDwrLu2v0DgLUz3nqyxjZzuvYCM9Y','te9dquXbufbeqvrb','q0XbvurflM1K','Dw5VDgvZDc8UDMLLD2vYlMXVy2S','WRCGC2TPChbLza','DhjPBq','igrVzxmGBM90igv4Axn0','y2HYB21PDw0','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','u3vIywDLBNrtDgfYDa','rMfPBgvKihrVihbHCNnLic5JBgf1zguVC2v0DgLUz3mUANnVBIbHCYbku09ooIa','uhjVz3jHBuzPBgvZ','ls1MB3jJzq','C3rKAw4','igf0ia','ywrKzwq','yNvUzgXLza','Dw5VDgvZDc8Uzw52','y3jLyxrLzcaUBwnWlMPZB24','Dw5VDgvZDenVBMzPz01QCW','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','Aw5PDdOG','zw52','icbeB3DUBg9HzcbIDw5KBgvKienOCM9TAxvTicH+mtuWie1ckt8','D2HPy2HpzG','lI4VlI4VCgfJA2fNzs5QC29U','C2TPBgW','y29TBwfUza','uhjVz3jHBuzPBgvZkhG4nIK','icdIHPiGzg93BMXVywrPBMCGyNvUzgXLzcbdAhjVBwL1BsaOFJe1mcbnqINIGkyk','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','y2XHDwrLtwrcB2r5','yNjVD3nLCK92zxjYAwrL','BgfIzwW','ywXYzwfKEvbYzxnLBNq','Aw5ZDgfSBa','zgv0ywLS','r29Vz2XLienOCM9TzsbczxrH','icbjBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4GAw5PDc4','C2XPy2u','zxHLy1bHDgG','zw5KC1DPDgG','y3DK','D3jPDgvjzK5LzwrLza','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','odDLDeHHDfC','Aw5KzxHpzG','Dw5VDgvZDc5JB25MAwCUBwPZ','4PYtignYzwf0zwq','BwvYz2vdBgf1zgvbBgXVD0vUDhjPzxm','Dg9mB3DLCKnHC2u','otGZota3owDVrhDqCa','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','lMnSyxvKzs9ZA2LSBhmVD3jPDguTztjLlxrLC3qTz3jVDw5Kl1nlsuXmlM1K','nta5mtC1AuXes2Xk','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','mtyWnZG4mgTtq1HJCa','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','CMvZB2X2zq','C3rKB3v0','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','D2fYBMLUzW','y2HLy2TtExn0zw1cCM93C2vY','u3LZDgvTigjYB3DZzxi','icdINjmGywrKzwqGiG','C3rKzxjY','B3zLCNjPzgu','Dw5VDgvZDc8Uzw52lMv4yw1WBgu','ywn0Aw9U','BM9Kzv9TB2r1BgvZlW','icbsDw4Gyg5WEcbaDw5VDgvZDc93zwiGAw5ZDgfSBc1JAhjVBwL1BwaGDg8Gzg93BMXVywqGDgHLigj1BMrSzwqGzMfSBgjHy2SS','EwvZ','icaGigLUC3rHBgWGq2HYB21LoIaGAhr0Chm6lY93D3CUz29Vz2XLlMnVBs9JAhjVBwu','ChjVyMvdAhjVBwu','4PQGig5VBI1PBNrLCMfJDgL2zsbZAgvSBcbHBMqGBM8GC3LZDgvTigjYB3DZzxiGzM91BMqU','icbvC2uGAw5ZDgfSBgvKia','igv2zw50CZSGBg9NCYb0BYb1BM90zxn0lY5Kzwj1zY9Hz2vUDc8GDw5KzxiGvu5pvevtvf9erujvrYK','cIaG4OAsigrVD25SB2fKAw5Nigj1BMrSzwqGq2HYB21PDw3IGkyk','cK1ducbJB25MAwC6cG','BwvYz2vdBgf1zgviB29RCW','vgfYz2v0igrPCMvJDg9YEq','rMfPBgvKihrVihbHCNnLic5Ty3aUANnVBIbHCYbku09ooIa','AM9PBG','cIaGrM91BMqG','ChjVyMvdAhjVBwvczxrH','D3jPDgu','ChjVyMvfzgDL','y2HYB21LlwjLDge','ifTzl25Dia','CgXHDgzVCM0','BwnWu2vYDMvYCW','CgfJA2fNzs5QC29Uigf0ia','quDftLrtlM1K','4PQGic0TyNjVD3nLCIbUB25LiokaLcbUBYbICM93C2vYignVBMzPz3vYzwqUifj1BIbVBMuGB2y6','C3LTyM9S','ug9ZDfrVB2XvC2vgywLSDxjL','zxjYB3i','AxnuvfK','CMvZDw1L','yMfZAcaIjhTdtefvrevFufjpsKvdvf9esvj9lY5JBgf1zguVAg9VA3mVBg9NlwfNzw50lNnOiIaIjhTdtefvrevFufjpsKvdvf9esvj9l3vUB3rLC3qVlMrLyNvNl2fNzw50l2fJDgLVBNmUANnVBMWI','C3rHDhvZ','mZe4offxrfrpwG','pceTlsb1BM90zxn0oMvUzcaTlt4','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','C2vJCMv0C0v4yw1WBgu','ywrKzwqGDw5VDgvZDc13zwiGzw50CNK','CgvYBwLZC2LVBNm','y2HYB21L','icaGig5WEcbaDw5VDgvZDc93zwiGAw5ZDgfSBc1JAhjVBwL1BsaGicaGicHKB3DUBg9HzhmGyNvUzgXLzcbJAhjVBwL1BsK','zMLUAxnO','Cgf0Aa','zMLYC3rfEgLZDgLUz1bHDgG'];_0x393b=function(){return _0x4cc143;};return _0x393b();}import{spawn}from'child_process';import{createRequire}from'module';import{dirname,resolve}from'path';import{fileURLToPath}from'url';async function installChromium(_0x469b5e={}){const _0x5abb6d={_0x50cab6:0x110,_0x82d4c5:0xe7,_0xc00ba1:0x13f,_0x5c3d8f:0x13f},_0x30e116={_0x1ada9f:0x185,_0x498812:0x180,_0x4032c5:0x11b,_0x32e965:0x198,_0x584c17:0x108,_0x62bf4:0x12b},_0x17dab0=_0x466b0a,_0x23ca1a=_0x469b5e[_0x17dab0(_0x5abb6d._0x50cab6)]??(_0x26a9b0=>process[_0x17dab0(0x198)][_0x17dab0(0x1b2)](_0x26a9b0)),_0x43b005=createRequire(import.meta.url),_0x11f57b=_0x43b005[_0x17dab0(0x197)]('playwright/package.json'),_0x492085=_0x43b005(_0x11f57b),_0x4dd7fd=typeof _0x492085[_0x17dab0(0x13f)]===_0x17dab0(_0x5abb6d._0x82d4c5)?_0x492085[_0x17dab0(_0x5abb6d._0xc00ba1)]:_0x492085[_0x17dab0(_0x5abb6d._0x5c3d8f)]?.['playwright'];if(!_0x4dd7fd)throw new Error(_0x17dab0(0x104));const _0x3a5fba=resolve(dirname(_0x11f57b),_0x4dd7fd);return new Promise((_0x37568c,_0x2fc98a)=>{const _0x4c04f2=_0x17dab0,_0x248fa8=spawn(process[_0x4c04f2(_0x30e116._0x1ada9f)],[_0x3a5fba,_0x4c04f2(_0x30e116._0x498812),'chromium'],{'stdio':[_0x4c04f2(_0x30e116._0x4032c5),_0x4c04f2(0x118),_0x4c04f2(0x118)]});_0x248fa8[_0x4c04f2(_0x30e116._0x32e965)]?.['on'](_0x4c04f2(0x108),_0x582d70=>_0x23ca1a(_0x582d70['toString']())),_0x248fa8['stderr']?.['on'](_0x4c04f2(_0x30e116._0x584c17),_0x3000fb=>_0x23ca1a(_0x3000fb[_0x4c04f2(0x14e)]())),_0x248fa8['on']('error',_0x2fc98a),_0x248fa8['on'](_0x4c04f2(_0x30e116._0x62bf4),_0x4605ae=>{if(_0x4605ae===0x0)_0x37568c();else _0x2fc98a(new Error('chromium\x20download\x20exited\x20with\x20code\x20'+_0x4605ae));});});}__name(installChromium,_0x466b0a(0x14a));async function runInstallChromiumCli(){const _0x10ba56={_0x5d6dbd:0xe4,_0x3e780d:0x10d},_0x5b4f4b=_0x466b0a;try{return await installChromium(),0x0;}catch(_0x37e37c){return process['stderr'][_0x5b4f4b(0x1b2)](_0x5b4f4b(_0x10ba56._0x5d6dbd)+(_0x37e37c instanceof Error?_0x37e37c[_0x5b4f4b(_0x10ba56._0x3e780d)]:String(_0x37e37c))+'\x0a'),0x1;}}__name(runInstallChromiumCli,_0x466b0a(0x117));var invokedDirectly=process[_0x466b0a(0x11d)][0x1]&&fileURLToPath(import.meta.url)===process['argv'][0x1];invokedDirectly&&runInstallChromiumCli()[_0x466b0a(0xde)](_0x3ea5ef=>process[_0x466b0a(0x12b)](_0x3ea5ef));async function chooseBrowser(_0x2de593){const _0x4bd221={_0x169ce8:0x13a,_0x2fc774:0x17e,_0x2e5485:0xca,_0x551b33:0xf3,_0x22482d:0x183,_0x28636a:0x16b,_0x48dcdf:0xc8,_0xa0aa9c:0x138,_0x5a8bdf:0x17e,_0x1dcc3f:0x100,_0x542361:0x138,_0x16feb0:0x13a,_0x15bcf9:0x1a3,_0x5dd32d:0x146,_0xcc18d:0x138,_0x115ba7:0x1b0,_0x3d3e48:0x138,_0x4b791f:0x173,_0x574acc:0x1aa,_0x26e584:0x119},_0x58d8c1=_0x466b0a,_0x32caa6=_0x2de593[_0x58d8c1(0x110)]??(_0x6248c3=>process[_0x58d8c1(0x198)][_0x58d8c1(0x1b2)](_0x6248c3));if(_0x2de593['override']===_0x58d8c1(0x109)){if(_0x2de593[_0x58d8c1(0x138)][_0x58d8c1(_0x4bd221._0x169ce8)])return _0x32caa6(_0x58d8c1(0x150)+_0x2de593['probe'][_0x58d8c1(_0x4bd221._0x2fc774)]+'\x20('+_0x2de593[_0x58d8c1(0x138)][_0x58d8c1(_0x4bd221._0x2e5485)]+')\x0a'),{'channel':_0x2de593[_0x58d8c1(0x138)][_0x58d8c1(0x13a)],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x58d8c1(_0x4bd221._0x551b33),_0x58d8c1(_0x4bd221._0x22482d)]};}if(_0x2de593[_0x58d8c1(0x19f)]===_0x58d8c1(_0x4bd221._0x28636a))return _0x32caa6(_0x58d8c1(0x179)),await installChromium({'stdoutWrite':_0x32caa6}),{'channel':null,'installedBundled':!![],'warnings':[]};if(_0x2de593[_0x58d8c1(0x19f)]==='none')return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x58d8c1(0xb9),_0x58d8c1(_0x4bd221._0x48dcdf),_0x58d8c1(0x1a5)]};if(!_0x2de593['interactive']){if(_0x2de593[_0x58d8c1(0x138)]['channel'])return _0x32caa6(_0x58d8c1(0xdd)+_0x2de593[_0x58d8c1(_0x4bd221._0xa0aa9c)][_0x58d8c1(_0x4bd221._0x5a8bdf)]+_0x58d8c1(_0x4bd221._0x1dcc3f)+_0x2de593[_0x58d8c1(0x138)][_0x58d8c1(0xca)]+_0x58d8c1(0xd1)+_0x2de593[_0x58d8c1(_0x4bd221._0x542361)][_0x58d8c1(_0x4bd221._0x16feb0)]+'\x27\x0a'),{'channel':_0x2de593['probe']['channel'],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x58d8c1(0x1a7),_0x58d8c1(_0x4bd221._0x15bcf9),_0x58d8c1(_0x4bd221._0x5dd32d)]};}if(_0x2de593[_0x58d8c1(_0x4bd221._0xcc18d)][_0x58d8c1(_0x4bd221._0x169ce8)]){_0x32caa6(_0x58d8c1(_0x4bd221._0x115ba7)+_0x2de593[_0x58d8c1(0x138)]['label']+_0x58d8c1(0x169)+_0x2de593[_0x58d8c1(_0x4bd221._0x3d3e48)][_0x58d8c1(0xca)]+'\x0a');const _0x2df639=await promptYesNo(_0x58d8c1(0x1a8)+_0x2de593['probe'][_0x58d8c1(0x17e)]+'?',!![]);if(_0x2df639)return{'channel':_0x2de593['probe'][_0x58d8c1(_0x4bd221._0x16feb0)],'installedBundled':![],'warnings':[]};}else _0x32caa6(_0x58d8c1(0x13d));const _0x449a3d=await promptYesNo(_0x58d8c1(_0x4bd221._0x4b791f),!![]);if(_0x449a3d)return _0x32caa6(_0x58d8c1(_0x4bd221._0x574acc)),await installChromium({'stdoutWrite':_0x32caa6}),{'channel':null,'installedBundled':!![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x58d8c1(_0x4bd221._0x26e584),_0x58d8c1(0xc8),'\x20\x20\x20\x20install\x20Chrome\x20from\x20https://www.google.com/chrome']};}__name(chooseBrowser,_0x466b0a(0x125));var McpJsonParseError=class extends Error{static{__name(this,_0x466b0a(0x113));}constructor(_0x3f606e){const _0x5e453a=_0x466b0a;super(_0x3f606e),this[_0x5e453a(0x115)]='McpJsonParseError';}};function mergeMcpConfig(_0x5918b5,_0x4c3b02,_0x19dded,_0x1c0680={}){const _0x2b0631={_0x4d711b:0x10d,_0x452149:0x1b7,_0x23f822:0xcd},_0x18997e=_0x466b0a;if(_0x5918b5===null){const _0x497faa=JSON[_0x18997e(0xed)]({'mcpServers':{[_0x4c3b02]:_0x19dded}},null,0x2)+'\x0a';return{'action':_0x18997e(0xfe),'newContent':_0x497faa};}let _0x32087a;try{_0x32087a=JSON[_0x18997e(0x122)](_0x5918b5);}catch(_0x501095){throw new McpJsonParseError(_0x18997e(0x1ae)+_0x501095[_0x18997e(_0x2b0631._0x4d711b)]+_0x18997e(0x143));}(!_0x32087a[_0x18997e(0x1b7)]||typeof _0x32087a[_0x18997e(0x1b7)]!=='object')&&(_0x32087a[_0x18997e(0x1b7)]={});const _0x7ab4aa=_0x4c3b02 in _0x32087a[_0x18997e(_0x2b0631._0x452149)];if(_0x7ab4aa&&!_0x1c0680[_0x18997e(_0x2b0631._0x23f822)])return{'action':_0x18997e(0x11f),'newContent':_0x5918b5};_0x32087a[_0x18997e(_0x2b0631._0x452149)][_0x4c3b02]=_0x19dded;const _0x1c7a37=JSON[_0x18997e(0xed)](_0x32087a,null,0x2)+'\x0a';return{'action':_0x7ab4aa?'force-overwrote':'added','newContent':_0x1c7a37};}__name(mergeMcpConfig,_0x466b0a(0x10e));var ClaudeSettingsParseError=class extends Error{static{__name(this,_0x466b0a(0x15b));}constructor(_0x57ab2a){const _0xf9c379=_0x466b0a;super(_0x57ab2a),this[_0xf9c379(0x115)]='ClaudeSettingsParseError';}};function mergeClaudeAllowEntries(_0x5d08a6,_0xa950ae){const _0x4b0a67={_0x4e4add:0xed,_0x8021ad:0x122,_0x5ca04c:0xc6,_0x1014ae:0xce,_0x45d28a:0xe0,_0x5f3a20:0x106,_0x1fea33:0xc6,_0xd6ded4:0x16a},_0x5266be=_0x466b0a;if(_0x5d08a6===null){const _0x39dd69=JSON[_0x5266be(_0x4b0a67._0x4e4add)]({'permissions':{'allow':[..._0xa950ae]}},null,0x2)+'\x0a';return{'action':_0x5266be(0xfe),'newContent':_0x39dd69,'added':[..._0xa950ae]};}let _0x5c2fb6;try{_0x5c2fb6=JSON[_0x5266be(_0x4b0a67._0x8021ad)](_0x5d08a6);}catch(_0x653f56){throw new ClaudeSettingsParseError(_0x5266be(0x165)+_0x653f56['message']+'.\x20Fix\x20or\x20remove\x20the\x20file\x20and\x20re-run\x20init.');}(!_0x5c2fb6[_0x5266be(_0x4b0a67._0x5ca04c)]||typeof _0x5c2fb6[_0x5266be(_0x4b0a67._0x5ca04c)]!==_0x5266be(_0x4b0a67._0x1014ae))&&(_0x5c2fb6[_0x5266be(_0x4b0a67._0x5ca04c)]={});const _0x2175b9=Array[_0x5266be(0xe1)](_0x5c2fb6['permissions'][_0x5266be(0xe0)])?_0x5c2fb6[_0x5266be(0xc6)][_0x5266be(_0x4b0a67._0x45d28a)]:[],_0x1c774c=[];for(const _0x5333d9 of _0xa950ae){!_0x2175b9[_0x5266be(0x124)](_0x5333d9)&&(_0x2175b9['push'](_0x5333d9),_0x1c774c[_0x5266be(_0x4b0a67._0x5f3a20)](_0x5333d9));}_0x5c2fb6[_0x5266be(_0x4b0a67._0x1fea33)][_0x5266be(0xe0)]=_0x2175b9;if(_0x1c774c[_0x5266be(0xee)]===0x0)return{'action':'already-present','newContent':_0x5d08a6,'added':[]};const _0x188974=JSON['stringify'](_0x5c2fb6,null,0x2)+'\x0a';return{'action':_0x5266be(_0x4b0a67._0xd6ded4),'newContent':_0x188974,'added':_0x1c774c};}__name(mergeClaudeAllowEntries,_0x466b0a(0x18e));function mergeClaudeHooks(_0x374ee1,_0x190685,_0x4b8f77,_0x5c12db){const _0x1db510={_0x439be0:0x165,_0x578c08:0x149,_0x51288f:0x177,_0x4b2626:0xee,_0x1a58c4:0x16a},_0x34c32f=_0x466b0a;let _0x49682b;if(_0x374ee1===null)_0x49682b={};else try{_0x49682b=JSON[_0x34c32f(0x122)](_0x374ee1);}catch(_0x272a2e){throw new ClaudeSettingsParseError(_0x34c32f(_0x1db510._0x439be0)+_0x272a2e['message']+_0x34c32f(0x143));}const _0x56ffe1=_0x49682b['hooks']&&typeof _0x49682b[_0x34c32f(_0x1db510._0x578c08)]==='object'?_0x49682b[_0x34c32f(0x149)]:{},_0x4937b3=[];for(const _0x5a39c0 of _0x190685){const _0x57c06a=Array[_0x34c32f(0xe1)](_0x56ffe1[_0x5a39c0])?_0x56ffe1[_0x5a39c0]:[],_0x4d8c9d=_0x57c06a[_0x34c32f(0x15a)](_0xb012e8=>(_0xb012e8[_0x34c32f(0x149)]??[])[_0x34c32f(0x15a)](_0x5cd8bd=>(_0x5cd8bd[_0x34c32f(0x177)]??'')[_0x34c32f(0x124)](_0x5c12db)));if(_0x4d8c9d)continue;_0x57c06a['push']({'matcher':'*','hooks':[{'type':_0x34c32f(_0x1db510._0x51288f),'command':_0x4b8f77}]}),_0x56ffe1[_0x5a39c0]=_0x57c06a,_0x4937b3['push'](_0x5a39c0);}_0x49682b['hooks']=_0x56ffe1;if(_0x4937b3[_0x34c32f(_0x1db510._0x4b2626)]===0x0)return{'action':_0x34c32f(0x11f),'newContent':_0x374ee1??JSON[_0x34c32f(0xed)](_0x49682b,null,0x2)+'\x0a','added':[]};return{'action':_0x34c32f(_0x1db510._0x1a58c4),'newContent':JSON[_0x34c32f(0xed)](_0x49682b,null,0x2)+'\x0a','added':_0x4937b3};}__name(mergeClaudeHooks,_0x466b0a(0x1ac));var BEGIN=_0x466b0a(0x10c),END=_0x466b0a(0xc2);function mergeClaudeMd(_0x92ef77,_0x2ae995){const _0x4085af={_0x3c5469:0x160,_0x3cbbb5:0xfe,_0x2e3a40:0x18b},_0x564ff1=_0x466b0a,_0x239a71=BEGIN+'\x0a'+_0x2ae995[_0x564ff1(_0x4085af._0x3c5469)]()+'\x0a'+END;if(_0x92ef77===null)return{'action':_0x564ff1(_0x4085af._0x3cbbb5),'newContent':_0x239a71+'\x0a'};const _0x3df076=_0x92ef77['indexOf'](BEGIN);if(_0x3df076===-0x1){const _0xca7c60=_0x92ef77[_0x564ff1(0x186)]('\x0a')?_0x92ef77:_0x92ef77+'\x0a';return{'action':_0x564ff1(0xd4),'newContent':_0xca7c60+'\x0a'+_0x239a71+'\x0a'};}const _0x507de7=_0x92ef77[_0x564ff1(_0x4085af._0x2e3a40)](END,_0x3df076);if(_0x507de7===-0x1){const _0x50731a=_0x92ef77['endsWith']('\x0a')?_0x92ef77:_0x92ef77+'\x0a';return{'action':_0x564ff1(0xd4),'newContent':_0x50731a+'\x0a'+_0x239a71+'\x0a'};}const _0x3e1e1b=_0x92ef77['slice'](0x0,_0x3df076)+_0x239a71+_0x92ef77[_0x564ff1(0x184)](_0x507de7+END[_0x564ff1(0xee)]);if(_0x3e1e1b===_0x92ef77)return{'action':_0x564ff1(0x11f),'newContent':_0x92ef77};return{'action':_0x564ff1(0xd8),'newContent':_0x3e1e1b};}__name(mergeClaudeMd,'mergeClaudeMd');import{appendUniqueLines}from'@unotest/core';var AGENT_LOG_HOOK_EVENTS=[_0x466b0a(0x132),'SessionEnd','UserPromptSubmit',_0x466b0a(0xeb),'PostToolUse',_0x466b0a(0xbb),'Stop',_0x466b0a(0x164),_0x466b0a(0x101),'PreCompact',_0x466b0a(0xef)];function parseArgs(_0x4cb2db){const _0x238754={_0x6f3758:0x109,_0x25ea3d:0x16b,_0x361456:0x14b,_0x477304:0xcc},_0x592aa0=_0x466b0a;let _0x3454a1=![],_0xe8ed5a=process[_0x592aa0(0x187)](),_0x4a43cc;for(let _0x969b6f=0x0;_0x969b6f<_0x4cb2db[_0x592aa0(0xee)];_0x969b6f++){const _0x471bc7=_0x4cb2db[_0x969b6f];if(_0x471bc7===_0x592aa0(0x167)||_0x471bc7==='-f')_0x3454a1=!![];else{if(_0x471bc7==='--browser'){const _0x13db34=_0x4cb2db[++_0x969b6f];if(_0x13db34===_0x592aa0(_0x238754._0x6f3758)||_0x13db34===_0x592aa0(_0x238754._0x25ea3d)||_0x13db34===_0x592aa0(_0x238754._0x361456))_0x4a43cc=_0x13db34;else throw new Error(_0x592aa0(0x140)+String(_0x13db34));}else{if(!_0x471bc7[_0x592aa0(_0x238754._0x477304)]('-'))_0xe8ed5a=_0x13b620(process['cwd'](),_0x471bc7);}}}const _0x2e39ae={'cwd':_0xe8ed5a,'force':_0x3454a1};if(_0x4a43cc!==void 0x0)_0x2e39ae[_0x592aa0(0x17d)]=_0x4a43cc;return _0x2e39ae;}__name(parseArgs,'parseArgs');function symbol(_0x563562){const _0x268486=_0x466b0a;return _0x563562==='ok'?'✓':_0x563562===_0x268486(0x19a)?'⚠':'✗';}__name(symbol,_0x466b0a(0xba));function readOwnVersion(){const _0x472180={_0x2be669:0x175,_0x26b575:0x112,_0x50f6fa:0x122,_0x21628b:0x126,_0x594a29:0xb7,_0x20774c:0x194},_0x2cb035=_0x466b0a,_0x3b8eb8=_0x3321ab(_0x5cefcd(import.meta.url)),_0x17ea5f=_0x13b620(_0x3b8eb8,_0x2cb035(_0x472180._0x2be669)),_0x4024dc=readFileSync(_0x17ea5f,_0x2cb035(_0x472180._0x26b575)),_0x41669d=JSON[_0x2cb035(_0x472180._0x50f6fa)](_0x4024dc);if(typeof _0x41669d['version']!==_0x2cb035(0xe7)||_0x41669d[_0x2cb035(_0x472180._0x21628b)]['length']===0x0)throw new Error(_0x2cb035(_0x472180._0x594a29)+_0x17ea5f+_0x2cb035(_0x472180._0x20774c));return _0x41669d[_0x2cb035(_0x472180._0x21628b)];}__name(readOwnVersion,'readOwnVersion');function ensureDir(_0x11d2c0){if(!_0x8c94b2(_0x11d2c0))mkdirSync(_0x11d2c0,{'recursive':!![]});}__name(ensureDir,_0x466b0a(0x123));function writeIfNeeded(_0x2d561c,_0x3be1a2,_0x351669){const _0x135aca={_0x23fc94:0xfe},_0x51b4d1=_0x466b0a,_0x2d4426=_0x8c94b2(_0x2d561c);if(_0x2d4426&&!_0x351669)return _0x51b4d1(0xfd);return ensureDir(_0x3321ab(_0x2d561c)),writeFileSync(_0x2d561c,_0x3be1a2),_0x2d4426?'overwrote':_0x51b4d1(_0x135aca._0x23fc94);}__name(writeIfNeeded,_0x466b0a(0x188));function writeIfAbsent(_0x10cfb6,_0x2a6d04){const _0x4b7f6f=_0x466b0a;if(_0x8c94b2(_0x10cfb6))return'skipped';return ensureDir(_0x3321ab(_0x10cfb6)),writeFileSync(_0x10cfb6,_0x2a6d04),_0x4b7f6f(0xfe);}__name(writeIfAbsent,'writeIfAbsent');async function runInit(_0x3bb063){const _0x1e23b8={_0x3b9692:0x198,_0x9c094e:0x115,_0x1f4129:0x181,_0x3eb5ae:0x12d,_0x72e6bd:0xbc,_0x435555:0xd3,_0x3964a2:0x148,_0x3ddcb2:0x157,_0x4d9ded:0x187,_0x386619:0xcd,_0x5929e2:0xcd,_0x31a97b:0x106,_0x51467d:0xfb,_0x195f83:0xfb,_0x4845a7:0xb8,_0x1ae945:0xf5,_0x474e13:0xcd,_0x8d00:0x112,_0x1f61dd:0x11f,_0x15d00b:0xf7,_0x2fa530:0x106,_0x4e9127:0x15d,_0x131a7a:0x1a1,_0x595ce7:0x106,_0x5ea4c8:0x16c,_0x3f4c04:0x18c,_0x1abc99:0x10a,_0x4e1957:0x176,_0x4efe62:0xc0,_0x534684:0x18d,_0x414df4:0x12f,_0x464aab:0xcc,_0x818523:0xfd,_0x5d7f31:0x15f,_0x3ce64c:0x1b2,_0x453dcf:0x187,_0x826a64:0xd2,_0x41f455:0x155,_0x17211a:0xf7,_0x26411b:0x16d,_0x399663:0x16a,_0x37f1ea:0xc5,_0xd8fb9f:0xcf,_0x779e67:0xdd,_0x1e688a:0x19e,_0x386d90:0x187,_0x3bc479:0x112,_0x19e8b7:0xd7,_0x331ca5:0xbf,_0x5124b8:0x11f,_0x5280bc:0x1af,_0x4b0517:0x137,_0x55db42:0x198,_0xf5e4bd:0x16a,_0x4f0e83:0xee,_0x2963f1:0x1a9,_0x46c46a:0xdd,_0x3d92e6:0x10d,_0x3bbff9:0x14d,_0x73384b:0x187,_0x3b5bad:0x120,_0x31d5c7:0x121,_0x5cf803:0x129,_0x43d847:0x19d,_0x218436:0x17f,_0x16dbf8:0x1b2,_0xc8162c:0x17f,_0x1def36:0x128,_0x3ba301:0x198,_0x15e89f:0xbd,_0x13db5a:0x19f,_0xdff525:0x17d,_0x5bdcdb:0xf0,_0x4c34dc:0x13a,_0x746a89:0xf8,_0x434c94:0xdc,_0x285424:0x134,_0x485632:0x12a,_0x520664:0xee,_0x40b3a5:0x12a,_0xdd26e4:0x198,_0x4aa973:0x1b2},_0x308a95={_0x2c8648:0x152,_0x45a494:0x187},_0x2bd4cf=_0x466b0a,_0x46fee4=parseArgs(_0x3bb063);process['stdout']['write'](_0x2bd4cf(0xf9)+_0x46fee4['cwd']+'\x0a\x0a'),process[_0x2bd4cf(0x198)][_0x2bd4cf(0x1b2)]('Environment:\x0a');const _0x2890f4=runEnvironmentChecks({'cwd':_0x46fee4['cwd']});let _0x4e7480=![];for(const _0x4899a6 of _0x2890f4){process[_0x2bd4cf(_0x1e23b8._0x3b9692)][_0x2bd4cf(0x1b2)]('\x20\x20'+symbol(_0x4899a6[_0x2bd4cf(0x12d)])+'\x20'+_0x4899a6[_0x2bd4cf(_0x1e23b8._0x9c094e)]+':\x20'+_0x4899a6[_0x2bd4cf(0x10d)]+'\x0a');if(_0x4899a6[_0x2bd4cf(_0x1e23b8._0x1f4129)])process[_0x2bd4cf(0x198)][_0x2bd4cf(0x1b2)]('\x20\x20\x20\x20\x20\x20'+_0x4899a6['detail']+'\x0a');if(_0x4899a6[_0x2bd4cf(_0x1e23b8._0x3eb5ae)]===_0x2bd4cf(_0x1e23b8._0x72e6bd))_0x4e7480=!![];}if(_0x4e7480)return process[_0x2bd4cf(0x19e)][_0x2bd4cf(0x1b2)](_0x2bd4cf(0x151)),{'exitCode':0x1};process[_0x2bd4cf(0x198)]['write'](_0x2bd4cf(_0x1e23b8._0x435555));const _0x42a7b6=[];ensureDir(join(_0x46fee4[_0x2bd4cf(0x187)],_0x2bd4cf(_0x1e23b8._0x3964a2)));for(const [_0x59d393,_0x55a5d9]of Object['entries'](templates[_0x2bd4cf(0x131)])){_0x42a7b6[_0x2bd4cf(0x106)]({'path':_0x2bd4cf(_0x1e23b8._0x3ddcb2)+_0x59d393,'status':writeIfNeeded(join(_0x46fee4[_0x2bd4cf(_0x1e23b8._0x4d9ded)],_0x2bd4cf(0xdb),_0x59d393),_0x55a5d9,_0x46fee4[_0x2bd4cf(_0x1e23b8._0x386619)])});}_0x42a7b6[_0x2bd4cf(0x106)]({'path':_0x2bd4cf(0x142),'status':writeIfNeeded(join(_0x46fee4['cwd'],_0x2bd4cf(0x142)),templates['scenarioTemplate'],_0x46fee4[_0x2bd4cf(_0x1e23b8._0x5929e2)])}),_0x42a7b6[_0x2bd4cf(_0x1e23b8._0x31a97b)]({'path':_0x2bd4cf(_0x1e23b8._0x51467d),'status':writeIfNeeded(join(_0x46fee4[_0x2bd4cf(0x187)],_0x2bd4cf(_0x1e23b8._0x195f83)),'',_0x46fee4[_0x2bd4cf(0xcd)])}),_0x42a7b6[_0x2bd4cf(_0x1e23b8._0x31a97b)]({'path':_0x2bd4cf(0xb8),'status':writeIfNeeded(join(_0x46fee4[_0x2bd4cf(0x187)],_0x2bd4cf(_0x1e23b8._0x4845a7)),templates[_0x2bd4cf(_0x1e23b8._0x1ae945)],_0x46fee4[_0x2bd4cf(_0x1e23b8._0x474e13)])});{const _0x39b02b=join(_0x46fee4['cwd'],_0x2bd4cf(0x15d)),_0x11721d=_0x8c94b2(_0x39b02b)?readFileSync(_0x39b02b,_0x2bd4cf(_0x1e23b8._0x8d00)):null,_0x3ae0cd=mergeClaudeMd(_0x11721d,templates[_0x2bd4cf(0x17c)]);_0x3ae0cd[_0x2bd4cf(0x1a1)]!==_0x2bd4cf(_0x1e23b8._0x1f61dd)&&writeFileSync(_0x39b02b,_0x3ae0cd[_0x2bd4cf(_0x1e23b8._0x15d00b)]),_0x42a7b6[_0x2bd4cf(_0x1e23b8._0x2fa530)]({'path':_0x2bd4cf(_0x1e23b8._0x4e9127),'status':_0x3ae0cd[_0x2bd4cf(_0x1e23b8._0x131a7a)]==='already-present'?'skipped':_0x3ae0cd[_0x2bd4cf(0x1a1)]});}_0x42a7b6[_0x2bd4cf(_0x1e23b8._0x595ce7)]({'path':_0x2bd4cf(0x1a0),'status':writeIfNeeded(join(_0x46fee4[_0x2bd4cf(0x187)],'unotest/.env.example'),templates[_0x2bd4cf(0xf1)],_0x46fee4['force'])}),_0x42a7b6[_0x2bd4cf(0x106)]({'path':_0x2bd4cf(_0x1e23b8._0x5ea4c8),'status':writeIfAbsent(join(_0x46fee4[_0x2bd4cf(_0x1e23b8._0x4d9ded)],_0x2bd4cf(0x16c)),templates[_0x2bd4cf(0xf1)])}),_0x42a7b6[_0x2bd4cf(_0x1e23b8._0x595ce7)]({'path':'unotest/.secrets','status':writeIfAbsent(join(_0x46fee4[_0x2bd4cf(0x187)],'unotest/.secrets'),templates[_0x2bd4cf(0xc4)])});const _0x54bdd8=join(_0x46fee4['cwd'],_0x2bd4cf(_0x1e23b8._0x3f4c04));_0x42a7b6['push']({'path':_0x2bd4cf(0x18c),'status':writeIfNeeded(_0x54bdd8,unotestConfigMjs(void 0x0),_0x46fee4[_0x2bd4cf(_0x1e23b8._0x474e13)])});const _0x449c26=_0x3321ab(_0x5cefcd(import.meta.url)),_0x1ebbf0=__name((_0x45822,_0xd047e)=>{const _0x1a2f79=_0x2bd4cf,_0x3f27e6=_0x13b620(_0x449c26,_0x1a2f79(_0x308a95._0x2c8648),_0x45822),_0x291e4a=join(_0x46fee4[_0x1a2f79(_0x308a95._0x45a494)],_0x45822);if(!_0x8c94b2(_0x3f27e6))return{'path':_0x45822,'status':_0xd047e+_0x1a2f79(0xd6)};if(_0x8c94b2(_0x291e4a)){if(readFileSync(_0x291e4a,'utf8')===readFileSync(_0x3f27e6,_0x1a2f79(0x112)))return{'path':_0x45822,'status':'skipped'};return copyFileSync(_0x3f27e6,_0x291e4a),{'path':_0x45822,'status':_0x1a2f79(0xd8)};}return ensureDir(_0x3321ab(_0x291e4a)),copyFileSync(_0x3f27e6,_0x291e4a),{'path':_0x45822,'status':'created'};},_0x2bd4cf(_0x1e23b8._0x1abc99));_0x42a7b6[_0x2bd4cf(0x106)](_0x1ebbf0(_0x2bd4cf(0x111),_0x2bd4cf(_0x1e23b8._0x4e1957)),_0x1ebbf0(_0x2bd4cf(0x192),_0x2bd4cf(0xdf))),_0x42a7b6['push'](_0x1ebbf0('.claude/hooks/log-agent.sh','hook'));for(const _0xb0acf0 of _0x42a7b6){const _0x3b9a8a=_0xb0acf0[_0x2bd4cf(_0x1e23b8._0x4efe62)]===_0x2bd4cf(0xfe)?_0x2bd4cf(_0x1e23b8._0x534684):_0xb0acf0[_0x2bd4cf(0xc0)]===_0x2bd4cf(0xe8)?'✓\x20overwrote':_0xb0acf0['status']==='updated'?_0x2bd4cf(_0x1e23b8._0x414df4):_0xb0acf0['status'][_0x2bd4cf(_0x1e23b8._0x464aab)](_0x2bd4cf(_0x1e23b8._0x818523))?_0x2bd4cf(_0x1e23b8._0x5d7f31):'·\x20'+_0xb0acf0[_0x2bd4cf(_0x1e23b8._0x4efe62)];process[_0x2bd4cf(0x198)]['write']('\x20\x20'+_0x3b9a8a+'\x20\x20'+_0xb0acf0['path']+'\x0a');}process[_0x2bd4cf(_0x1e23b8._0x3b9692)][_0x2bd4cf(_0x1e23b8._0x3ce64c)](_0x2bd4cf(0x1ab));const _0x321f52=join(_0x46fee4[_0x2bd4cf(_0x1e23b8._0x453dcf)],'.mcp.json'),_0x418a0a=_0x8c94b2(_0x321f52)?readFileSync(_0x321f52,_0x2bd4cf(0x112)):null,_0x945fde=readOwnVersion(),_0x91be4f={'command':'npx','args':['-y',_0x2bd4cf(_0x1e23b8._0x826a64)+_0x945fde,_0x2bd4cf(_0x1e23b8._0x41f455)]};try{const _0x4edc3b=mergeMcpConfig(_0x418a0a,_0x2bd4cf(0xfc),_0x91be4f,{'force':_0x46fee4[_0x2bd4cf(0xcd)]});_0x4edc3b[_0x2bd4cf(0x1a1)]!==_0x2bd4cf(0x11f)&&writeFileSync(_0x321f52,_0x4edc3b[_0x2bd4cf(_0x1e23b8._0x17211a)]);const _0x2ef34f=_0x4edc3b[_0x2bd4cf(0x1a1)]==='created'?_0x2bd4cf(_0x1e23b8._0x26411b):_0x4edc3b[_0x2bd4cf(_0x1e23b8._0x131a7a)]===_0x2bd4cf(_0x1e23b8._0x399663)?_0x2bd4cf(_0x1e23b8._0x37f1ea):_0x4edc3b['action']==='force-overwrote'?_0x2bd4cf(_0x1e23b8._0xd8fb9f):'already\x20present';process['stdout']['write'](_0x2bd4cf(_0x1e23b8._0x779e67)+_0x2ef34f+'\x0a');}catch(_0x3db094){if(_0x3db094 instanceof McpJsonParseError)return process[_0x2bd4cf(_0x1e23b8._0x1e688a)][_0x2bd4cf(_0x1e23b8._0x3ce64c)]('\x20\x20✗\x20'+_0x3db094['message']+'\x0a'),{'exitCode':0x1};throw _0x3db094;}process[_0x2bd4cf(0x198)]['write']('\x0aClaude\x20Code\x20permissions:\x0a');const _0x314a90=join(_0x46fee4[_0x2bd4cf(_0x1e23b8._0x386d90)],_0x2bd4cf(0x144)),_0x237fa7=_0x8c94b2(_0x314a90)?readFileSync(_0x314a90,_0x2bd4cf(_0x1e23b8._0x3bc479)):null;try{const _0x28596c=mergeClaudeAllowEntries(_0x237fa7,[_0x2bd4cf(_0x1e23b8._0x19e8b7)]),_0xc4a2c9=_0x2bd4cf(_0x1e23b8._0x331ca5),_0x2995d8=mergeClaudeHooks(_0x28596c[_0x2bd4cf(0xf7)],AGENT_LOG_HOOK_EVENTS,_0xc4a2c9,_0x2bd4cf(0x14f));(_0x28596c[_0x2bd4cf(_0x1e23b8._0x131a7a)]!==_0x2bd4cf(_0x1e23b8._0x1f61dd)||_0x2995d8['action']!==_0x2bd4cf(_0x1e23b8._0x5124b8))&&(ensureDir(_0x3321ab(_0x314a90)),writeFileSync(_0x314a90,_0x2995d8['newContent']));const _0x46af51=_0x28596c[_0x2bd4cf(0x1a1)]==='created'?_0x2bd4cf(0xf6):_0x28596c['action']===_0x2bd4cf(0x16a)?'added\x20allow\x20entries:\x20'+_0x28596c[_0x2bd4cf(0x16a)][_0x2bd4cf(_0x1e23b8._0x5280bc)](',\x20'):_0x2bd4cf(_0x1e23b8._0x4b0517);process[_0x2bd4cf(_0x1e23b8._0x55db42)][_0x2bd4cf(_0x1e23b8._0x3ce64c)](_0x2bd4cf(_0x1e23b8._0x779e67)+_0x46af51+'\x0a');const _0x5a753b=_0x2995d8['action']===_0x2bd4cf(_0x1e23b8._0x399663)?'added\x20agent-trace\x20hooks\x20('+_0x2995d8[_0x2bd4cf(_0x1e23b8._0xf5e4bd)][_0x2bd4cf(_0x1e23b8._0x4f0e83)]+_0x2bd4cf(_0x1e23b8._0x2963f1):'agent-trace\x20hooks\x20already\x20present';process['stdout'][_0x2bd4cf(0x1b2)](_0x2bd4cf(_0x1e23b8._0x46c46a)+_0x5a753b+'\x0a');}catch(_0x3f6cb8){if(_0x3f6cb8 instanceof ClaudeSettingsParseError)return process[_0x2bd4cf(0x19e)]['write']('\x20\x20✗\x20'+_0x3f6cb8[_0x2bd4cf(_0x1e23b8._0x3d92e6)]+'\x0a'),{'exitCode':0x1};throw _0x3f6cb8;}process['stdout'][_0x2bd4cf(_0x1e23b8._0x3ce64c)](_0x2bd4cf(_0x1e23b8._0x3bbff9));const _0x3d9ed5=join(_0x46fee4[_0x2bd4cf(_0x1e23b8._0x73384b)],_0x2bd4cf(0x11e)),_0x29a413=_0x8c94b2(_0x3d9ed5)?readFileSync(_0x3d9ed5,_0x2bd4cf(0x112)):null,_0x5c95d8=appendUniqueLines(_0x29a413,['unotest/.env*',_0x2bd4cf(0x141),_0x2bd4cf(_0x1e23b8._0x3b5bad),'.unotest/',_0x2bd4cf(0x154),_0x2bd4cf(_0x1e23b8._0x31d5c7),'unotest/.snapshots/',_0x2bd4cf(0x15e),_0x2bd4cf(_0x1e23b8._0x5cf803),_0x2bd4cf(0x1a2)]);if(_0x5c95d8[_0x2bd4cf(0x16a)][_0x2bd4cf(0xee)]>0x0){writeFileSync(_0x3d9ed5,_0x5c95d8[_0x2bd4cf(_0x1e23b8._0x17211a)]);for(const _0x51f25b of _0x5c95d8[_0x2bd4cf(0x16a)]){process['stdout']['write'](_0x2bd4cf(_0x1e23b8._0x43d847)+_0x51f25b+'\x22\x0a');}}for(const _0x54dc45 of _0x5c95d8[_0x2bd4cf(_0x1e23b8._0x218436)]){process[_0x2bd4cf(0x198)][_0x2bd4cf(_0x1e23b8._0x16dbf8)]('\x20\x20·\x20already\x20present\x20\x22'+_0x54dc45+'\x22\x0a');}_0x5c95d8[_0x2bd4cf(_0x1e23b8._0xf5e4bd)][_0x2bd4cf(_0x1e23b8._0x4f0e83)]===0x0&&_0x5c95d8[_0x2bd4cf(_0x1e23b8._0xc8162c)]['length']===0x0&&process['stdout'][_0x2bd4cf(_0x1e23b8._0x16dbf8)](_0x2bd4cf(_0x1e23b8._0x1def36));process[_0x2bd4cf(_0x1e23b8._0x3ba301)][_0x2bd4cf(0x1b2)]('\x0aBrowser:\x0a');const _0x321975=probeSystemBrowser(),_0x2a4350=Boolean(process[_0x2bd4cf(0x168)][_0x2bd4cf(0xbd)])&&Boolean(process[_0x2bd4cf(_0x1e23b8._0x3b9692)][_0x2bd4cf(_0x1e23b8._0x15e89f)]),_0x4f3c3f={'probe':_0x321975,'interactive':_0x2a4350};if(_0x46fee4[_0x2bd4cf(0x17d)])_0x4f3c3f[_0x2bd4cf(_0x1e23b8._0x13db5a)]=_0x46fee4[_0x2bd4cf(_0x1e23b8._0xdff525)];const _0x57eead=await chooseBrowser(_0x4f3c3f);writeFileSync(_0x54bdd8,unotestConfigMjs(_0x57eead['channel']));const _0x32165a=_0x57eead['channel']===void 0x0?_0x2bd4cf(_0x1e23b8._0x5bdcdb):_0x57eead[_0x2bd4cf(_0x1e23b8._0x4c34dc)]===null?'channel:\x20null\x20(bundled\x20chromium)':_0x2bd4cf(_0x1e23b8._0x746a89)+_0x57eead[_0x2bd4cf(_0x1e23b8._0x4c34dc)]+'\x27';process['stdout'][_0x2bd4cf(0x1b2)](_0x2bd4cf(_0x1e23b8._0x434c94)+_0x32165a+'\x0a'),process[_0x2bd4cf(0x198)][_0x2bd4cf(_0x1e23b8._0x3ce64c)](_0x2bd4cf(_0x1e23b8._0x285424));if(_0x57eead[_0x2bd4cf(_0x1e23b8._0x485632)][_0x2bd4cf(_0x1e23b8._0x520664)]>0x0){for(const _0x20ebc6 of _0x57eead[_0x2bd4cf(_0x1e23b8._0x40b3a5)])process[_0x2bd4cf(_0x1e23b8._0xdd26e4)][_0x2bd4cf(_0x1e23b8._0x4aa973)]('\x20\x20'+_0x20ebc6+'\x0a');process[_0x2bd4cf(0x198)][_0x2bd4cf(0x1b2)]('\x0a');}return process[_0x2bd4cf(0x198)]['write'](_0x2bd4cf(0x153)),{'exitCode':0x0};}__name(runInit,_0x466b0a(0x139));var invokedDirectly2=process[_0x466b0a(0x11d)][0x1]&&_0x5cefcd(import.meta.url)===process['argv'][0x1];invokedDirectly2&&runInit(process[_0x466b0a(0x11d)]['slice'](0x2))[_0x466b0a(0xde)](({exitCode:_0x4074ff})=>{process['exitCode']=_0x4074ff;})[_0x466b0a(0x105)](_0x2c318f=>{const _0x442841={_0x334cdd:0x19e,_0x30b456:0x1b2,_0x56d57d:0x136},_0x273198=_0x466b0a;process[_0x273198(_0x442841._0x334cdd)][_0x273198(_0x442841._0x30b456)](_0x273198(0x171)+(_0x2c318f instanceof Error?_0x2c318f['message']:String(_0x2c318f))+'\x0a'),process[_0x273198(_0x442841._0x56d57d)]=0x1;});export{runInit};
|
|
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 +1 @@
|
|
|
1
|
-
const
|
|
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 +1 @@
|
|
|
1
|
-
const _0x1edeb2=_0x5f40;(function(_0x3c9382,_0x36b0d7){const _0x3cbfab={_0x357204:0xed,_0x206c09:0xb1,_0x9bfb78:0xdb,_0x3c0322:0xbd,_0x2d103d:0xe9},_0x4cfb9b=_0x5f40,_0x589718=_0x3c9382();while(!![]){try{const _0x22ed64=parseInt(_0x4cfb9b(0xa5))/0x1+-parseInt(_0x4cfb9b(_0x3cbfab._0x357204))/0x2*(parseInt(_0x4cfb9b(0xc2))/0x3)+parseInt(_0x4cfb9b(_0x3cbfab._0x206c09))/0x4*(-parseInt(_0x4cfb9b(0xbc))/0x5)+-parseInt(_0x4cfb9b(_0x3cbfab._0x9bfb78))/0x6+-parseInt(_0x4cfb9b(0xe3))/0x7*(-parseInt(_0x4cfb9b(_0x3cbfab._0x3c0322))/0x8)+-parseInt(_0x4cfb9b(_0x3cbfab._0x2d103d))/0x9*(-parseInt(_0x4cfb9b(0x9f))/0xa)+-parseInt(_0x4cfb9b(0x102))/0xb;if(_0x22ed64===_0x36b0d7)break;else _0x589718['push'](_0x589718['shift']());}catch(_0x41f0f6){_0x589718['push'](_0x589718['shift']());}}}(_0x2f3e,0x49a93));var __defProp=Object[_0x1edeb2(0xb3)],__name=(_0x323aab,_0x5d74d2)=>__defProp(_0x323aab,'name',{'value':_0x5d74d2,'configurable':!![]});import{writeFileSync as _0x316ae0}from'fs';import{join as _0x2551fb}from'path';import{fileURLToPath}from'url';function _0x2f3e(){const _0x265ee1=['y29TCg9ZzuzPEfbYB21WDa','ycdIGjqG','C29YDa','mZm5odK2n29VuLrsua','icdINjmG','iYmJifn0ywnRcMbGyaO','DMLKzw9qyxrO','ycaOy29UzMLKzw5JztOG','BMfTzq','Dw5RBM93BG','y29UC29SzuXPBwL0','DhjHy2u','cMbGyaO','vgLTzw91DevYCM9Y','AgfZ','C2nLBMfYAw9qyxrO','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','iYbuzxn0igzPEcbYzxf1zxn0cGOJiYbgywLSDxjLignVBNrLEhqkcI0GkIPuzxn0kIO6iga','y3DK','cK5LEhq6ihbHC3rLigvHy2GGzML4lxbYB21WDc5TzcbPBNrVihLVDxiGteXnignSAwvUDcaOq2XHDwrLienVzguGlWPdDxjZB3iGlYbLDgmUks4GvgHLieXmtsbYzxr1CM5ZigeGDw5PzMLLzcbKAwzMoYbYzxzPzxCGAxqGyw5KigfWCgX5cM1HBNvHBgX5lIbxzsbUzxzLCIbHDxrVlwfWCgX5icHelti1ks4k','ywrKlxDHAxrMB3i','Bgv2zwW','ndbly0HNuvm','lcbJB2WG','tg9JyxrVCKvYCM9Y','BMv0D29YAY5QC29U','D3jPDgu','DMLKzw8UD2vIBq','mZy5ntyXBLrsvLPq','DgLTzxn0yw1W','Bg93','BMv0D29YAW','yaOTicOQu3rLCcbPBMrLEcOQoIa','DxrMoa','AM9PBG','y29UzMLKzw5Jzq','C2nYzwvUC2HVDfbHDgG','C3rHCNrZv2L0Aa','DgvZDezU','Dg9mB3DLCKnHC2u','mtmYndi4BKfAELbK','C3rLCeLUzgv4','zgvMAw5LuhjVCgvYDhK','Dgv4Da','xYHUBYbZzw1HBNrPyY1KB20GC25HChnOB3qGy2fWDhvYzwqGzM9YihrOAxmGzMfPBhvYzsLF','yNvUzgXLrgLY','AgfYugf0Aa','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','y2XHC3nPzNK','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','kqOk','nuvZsK1ZDq','odbTq3jHv2K','cI0GkIPfCNjVCIOQoIbG','CgfYC2u','ChvZAa','ChjVBxb0twfYA2rVD24','nLzLrMHrBq','C2v0','icb+','C291CMnLCW','y2vPBa','yxbWCM94vg9Rzw5Z','zMfPBhvYzs5QC29U','zMLSDgvY','C2XPy2u','zxjY','cKnHChr1CMvKoIa','BwvZC2fNzq','zxHPDa','zMfPBhvYzxnsB290','DgvZDa','ChjLCgfYzs1MAxG6ignVBxbVC2LUzYbMAxGGChjVBxb0CYbMB3iG','cI0GkIPmB2nHDgLVBIOQoIbSAw5Lia','y29UC29Szq','zgvMyxvSDezHAwX1CMvZuM9VDa','xYHUBYbJB25ZB2XLigvUDhjPzxmGy2fWDhvYzwqPxW','CNvUswq','C3bSAxq','CMv3CML0zs1ZzwXLy3rVCG','DxjS','C25HChnOB3q','mJiYmta1nMryvfzytW','cGOJiYbty2vUyxjPBYbZB3vYy2uGkgXPBMuTBNvTyMvYzwqPcGPGygbQCWO','CNvUuhjLCgfYzuzPEa','C3vNz2vZDgvKqwn0Aw9U','lNvUB3rLC3q','y2HHBMDLlwfZC2vYDgLVBG','yxjNDG','vvjmoIa','mJy2mti2CLDHs21H','yNvPBgrqCM9TChrnyxjRzg93BG','B3v0','BwfW','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','C3rHy2S','mtiWmZuWn1HeDg5cua','iIaOBg9VA2vKigLUia','C2nYzwvUC2HVDevYCM9Y','DMfSDwvZ','mJCWnJm4C1riCunh','BwvKAxvT','BgvUz3rO','zxjYB3i','Aw5JBhvKzxm','CMvHzezHAwX1CMvcDw5KBgu','qxnZzxj0Aw9UrxjYB3i','zMfPBhvYzxm','AgLNAa','icaGicaG','ihrLC3qOCYKGkeqTmJuPcGO','AxneAxjLy3rVCNK','zML4lxbYB21WDc5Tza','rxjYB3i','CgfKu3rHCNq','y2fWDhvYzwrbDa','icdINjCG','C2nYzwvUC2HVDc1LCNjVCI50Ehq'];_0x2f3e=function(){return _0x265ee1;};return _0x2f3e();}import{readFileSync as _0x28b338,existsSync as _0x2cb81a}from'fs';import{relative}from'path';import{existsSync,mkdirSync,readFileSync,readdirSync,statSync,writeFileSync}from'fs';import{join,dirname}from'path';function readFailureBundle(_0x247e91){const _0x241f67={_0x330d77:0xc8,_0x152e03:0xbf,_0x299538:0xaa,_0x2023cd:0xa2,_0x1a0e9c:0xda,_0x362c3a:0xad,_0x3e3237:0xfe,_0x35c940:0xeb,_0x3b68b8:0xb7,_0x3995db:0x105},_0x4bc253=_0x1edeb2;if(!existsSync(_0x247e91))return null;const _0x247530=join(_0x247e91,_0x4bc253(_0x241f67._0x330d77));if(!existsSync(_0x247530))return null;const _0x5ad7a7=JSON['parse'](readFileSync(_0x247530,_0x4bc253(0xaa))),_0x42ec6a=join(_0x247e91,'console.json'),_0x14d5ab=existsSync(_0x42ec6a)?JSON[_0x4bc253(_0x241f67._0x152e03)](readFileSync(_0x42ec6a,_0x4bc253(_0x241f67._0x299538))):[],_0x4f05df=join(_0x247e91,'snapshot.json'),_0x3076f9=existsSync(_0x4f05df)?JSON['parse'](readFileSync(_0x4f05df,_0x4bc253(0xaa))):void 0x0,_0x40f0d3={'trace':_0x5ad7a7,'console':_0x14d5ab},_0x1391d2=join(_0x247e91,_0x4bc253(_0x241f67._0x2023cd));existsSync(_0x1391d2)&&(_0x40f0d3[_0x4bc253(0xa8)]=JSON[_0x4bc253(0xbf)](readFileSync(_0x1391d2,_0x4bc253(_0x241f67._0x299538))));if(_0x3076f9!==void 0x0)_0x40f0d3[_0x4bc253(_0x241f67._0x1a0e9c)]=_0x3076f9;const _0x5dc1b7=join(_0x247e91,'screenshot.png');if(existsSync(_0x5dc1b7))_0x40f0d3[_0x4bc253(_0x241f67._0x362c3a)]=_0x5dc1b7;else{const _0x32289a=join(_0x247e91,_0x4bc253(_0x241f67._0x3e3237));existsSync(_0x32289a)&&(_0x40f0d3[_0x4bc253(_0x241f67._0x35c940)]=readFileSync(_0x32289a,_0x4bc253(0xaa)));}const _0x2ab270=join(_0x247e91,'har.json');if(existsSync(_0x2ab270))_0x40f0d3[_0x4bc253(_0x241f67._0x3b68b8)]=_0x2ab270;const _0x16bb9f=join(_0x247e91,_0x4bc253(0xa4));if(existsSync(_0x16bb9f))_0x40f0d3[_0x4bc253(_0x241f67._0x3995db)]=_0x16bb9f;return _0x40f0d3;}__name(readFailureBundle,_0x1edeb2(0xf2));function listFailures(_0x374879){const _0x19ba89={_0x29ac30:0xf8,_0x49cda4:0xbf,_0x1e922a:0xc0,_0x3fef74:0xaf,_0x4abf3c:0x101},_0x56ab43=_0x1edeb2;if(!existsSync(_0x374879))return[];const _0x1b7e10=[];for(const _0x17cf29 of readdirSync(_0x374879)){const _0x190561=join(_0x374879,_0x17cf29);if(!statSync(_0x190561)[_0x56ab43(_0x19ba89._0x29ac30)]())continue;for(const _0x5a7038 of readdirSync(_0x190561)){const _0xd975a9=join(_0x190561,_0x5a7038);if(!statSync(_0xd975a9)[_0x56ab43(0xf8)]())continue;const _0x3099ee=join(_0xd975a9,'failure.json');if(!existsSync(_0x3099ee))continue;try{const _0x31e083=JSON[_0x56ab43(_0x19ba89._0x49cda4)](readFileSync(_0x3099ee,_0x56ab43(0xaa)));_0x1b7e10[_0x56ab43(_0x19ba89._0x1e922a)]({'runId':_0x17cf29,'testFn':_0x31e083[_0x56ab43(_0x19ba89._0x3fef74)],'scenarioPath':_0x31e083[_0x56ab43(0x98)],'dir':_0xd975a9,'timestamp':_0x31e083[_0x56ab43(0xa6)]});}catch{}}}return _0x1b7e10[_0x56ab43(_0x19ba89._0x4abf3c)]((_0xace2c9,_0x331e3c)=>_0x331e3c[_0x56ab43(0xa6)]['localeCompare'](_0xace2c9[_0x56ab43(0xa6)])),_0x1b7e10;}__name(listFailures,'listFailures');function defaultFailuresRoot(_0x1f3ad9=process[_0x1edeb2(0x9b)]()){const _0x18206a={_0xe055be:0xdf},_0x1ad91e=_0x1edeb2;return join(_0x1f3ad9,_0x1ad91e(_0x18206a._0xe055be),_0x1ad91e(0xf4));}__name(defaultFailuresRoot,_0x1edeb2(0xd4));function resolveBundleDir(_0x1d68c1,_0x46fee3){if(existsSync(_0x1d68c1)&&statSync(_0x1d68c1)['isDirectory']())return _0x1d68c1;return join(_0x46fee3,_0x1d68c1);}__name(resolveBundleDir,'resolveBundleDir');function composeFixPrompt(_0x2649fc,_0x2ede7f={}){const _0x829f0d={_0x412b9e:0xcf,_0x400d7a:0x9b,_0x251aef:0x9b,_0x57e0dc:0x94,_0x4b3043:0x93,_0x351880:0x94,_0x35e91e:0xc6,_0x5ab834:0xd3,_0x5855ad:0xda},_0x157a7a=_0x1edeb2,_0xe47409=_0x2ede7f[_0x157a7a(_0x829f0d._0x412b9e)]??defaultFailuresRoot(),_0x3c4f7f=resolveBundleDir(_0x2649fc,_0xe47409),_0x4e55db=readFailureBundle(_0x3c4f7f);if(!_0x4e55db)throw new Error(_0x157a7a(0xb8)+_0x2649fc+_0x157a7a(0xea)+_0x3c4f7f+')');const _0x5e7144=_0x2ede7f[_0x157a7a(_0x829f0d._0x400d7a)]??process[_0x157a7a(_0x829f0d._0x251aef)](),_0x412bf6=_0x2cb81a(_0x4e55db[_0x157a7a(_0x829f0d._0x57e0dc)][_0x157a7a(0x98)])?_0x28b338(_0x4e55db[_0x157a7a(_0x829f0d._0x57e0dc)][_0x157a7a(0x98)],'utf8'):_0x157a7a(0xe7),_0x5b99db=_0x2ede7f[_0x157a7a(_0x829f0d._0x4b3043)]??0x19,_0x4880af=_0x4e55db[_0x157a7a(0xd3)][_0x157a7a(0xca)](-_0x5b99db),{suggestedAction:_0x42a0af,confidence:_0x4c1d49}=classify(_0x4e55db),_0x29ef8d=buildPromptMarkdown({'bundle':_0x4e55db,'scenarioSource':_0x412bf6,'scenarioRelative':relative(_0x5e7144,_0x4e55db[_0x157a7a(_0x829f0d._0x351880)]['scenarioPath']),'consoleTail':_0x4880af,'suggestedAction':_0x42a0af,'confidence':_0x4c1d49}),_0x59c034=Math[_0x157a7a(_0x829f0d._0x35e91e)](_0x29ef8d[_0x157a7a(0xef)]/0x4);return{'promptMarkdown':_0x29ef8d,'suggestedAction':_0x42a0af,'confidence':_0x4c1d49,'sources':{'bundleDir':_0x3c4f7f,'scenarioPath':_0x4e55db[_0x157a7a(0x94)]['scenarioPath'],'consoleEntries':_0x4e55db[_0x157a7a(_0x829f0d._0x5ab834)][_0x157a7a(0xef)],'hasSnapshot':!!_0x4e55db[_0x157a7a(_0x829f0d._0x5855ad)]},'approxTokens':_0x59c034};}__name(composeFixPrompt,_0x1edeb2(0xff));function classify(_0x569973){const _0x5e8b9c={_0x260da6:0x94,_0x4628d1:0xf0,_0x1efa16:0xb0,_0x2f2d08:0x92,_0x4fc65d:0xa7,_0x3fd999:0xd8,_0xa25056:0x9d,_0xd7d78a:0xee,_0x242d63:0xd0,_0x5012e3:0xf5},_0x5aef81=_0x1edeb2,_0x130e75=_0x569973[_0x5aef81(_0x5e8b9c._0x260da6)][_0x5aef81(_0x5e8b9c._0x4628d1)]['message'][_0x5aef81(_0x5e8b9c._0x1efa16)](),_0x5e394f=_0x569973[_0x5aef81(_0x5e8b9c._0x260da6)]['error']['name']??'';let _0x1a484e=_0x5aef81(_0x5e8b9c._0x2f2d08),_0x40b0c7=_0x5aef81(_0x5e8b9c._0x4fc65d);if(_0x5e394f==='LocatorError'||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i[_0x5aef81(0xd0)](_0x130e75))_0x1a484e=_0x5aef81(_0x5e8b9c._0x3fd999),_0x40b0c7=_0x5e394f===_0x5aef81(0xa1)?_0x5aef81(0xf5):'medium';else{if(_0x5e394f===_0x5aef81(0x96)||/timeout|waiting for/i[_0x5aef81(0xd0)](_0x130e75))_0x1a484e=_0x5aef81(_0x5e8b9c._0xa25056),_0x40b0c7=_0x5e394f===_0x5aef81(0x96)?'high':_0x5aef81(_0x5e8b9c._0xd7d78a);else(_0x5e394f===_0x5aef81(0xf3)||/asserttext|assertvisible|expected.*got/i[_0x5aef81(_0x5e8b9c._0x242d63)](_0x130e75))&&(_0x1a484e=_0x5aef81(0xe0),_0x40b0c7=_0x5e394f===_0x5aef81(0xf3)?_0x5aef81(_0x5e8b9c._0x5012e3):_0x5aef81(0xee));}return{'suggestedAction':_0x1a484e,'confidence':_0x40b0c7};}__name(classify,_0x1edeb2(0xb9));function buildPromptMarkdown(_0x4877c4){const _0x460474={_0x20ee62:0xd7,_0x362539:0xd5,_0x541697:0xe6,_0xc3d3bf:0xda,_0x2704d1:0xd9,_0x506606:0xcc,_0x5e1a3b:0x9a,_0x189254:0xa9,_0x2be612:0x94,_0x10b002:0xb2,_0x1c25d5:0xd2,_0x3b5b7e:0xa0,_0x13d38f:0xbe,_0x41a8e8:0xfa,_0x313ff2:0x100,_0xb321bc:0xcd,_0x1195c3:0x106,_0x5985f5:0x94,_0x371d3e:0x94,_0x345863:0xf0,_0x1491a1:0xe8,_0x21e514:0xdc,_0x3297b3:0x99},_0x464444=_0x1edeb2,{bundle:_0x3e4a9d,scenarioSource:_0x18afff,scenarioRelative:_0x26cb27,consoleTail:_0x2b4276,suggestedAction:_0x57201b,confidence:_0x181a79}=_0x4877c4,_0x258c5d=_0x18afff[_0x464444(_0x460474._0x20ee62)]('\x0a')['map']((_0x2f7b59,_0x5ce914)=>String(_0x5ce914+0x1)[_0x464444(0xfb)](0x3,'\x20')+'\x20\x20'+_0x2f7b59)['join']('\x0a'),_0x32ed5c=_0x2b4276[_0x464444(0xef)]===0x0?_0x464444(_0x460474._0x362539):_0x2b4276[_0x464444(_0x460474._0x541697)](_0x51a915=>'['+_0x51a915[_0x464444(0xa6)]+']\x20'+_0x51a915[_0x464444(0x9e)]['toUpperCase']()+':\x20'+_0x51a915[_0x464444(0xb4)])[_0x464444(0xab)]('\x0a'),_0x5579b4=_0x3e4a9d['snapshot']?_0x464444(0xe2)+_0x3e4a9d[_0x464444(_0x460474._0xc3d3bf)][_0x464444(_0x460474._0x2704d1)]+_0x464444(_0x460474._0x506606)+_0x3e4a9d[_0x464444(0xda)][_0x464444(0xfc)]+_0x464444(0xba):_0x464444(0xb5);return _0x464444(_0x460474._0x5e1a3b)+_0x3e4a9d[_0x464444(0x94)][_0x464444(0xaf)]+'`\x20in\x20`'+_0x26cb27+_0x464444(_0x460474._0x189254)+(_0x3e4a9d[_0x464444(_0x460474._0x2be612)][_0x464444(_0x460474._0x10b002)]??'?')+_0x464444(_0x460474._0x1c25d5)+_0x3e4a9d[_0x464444(_0x460474._0x2be612)]['line']+_0x464444(_0x460474._0x3b5b7e)+_0x3e4a9d[_0x464444(0x94)]['col']+_0x464444(_0x460474._0x13d38f)+(_0x3e4a9d[_0x464444(0x94)]['error'][_0x464444(0x91)]??_0x464444(_0x460474._0x41a8e8))+_0x464444(_0x460474._0x313ff2)+_0x3e4a9d['trace']['error'][_0x464444(_0x460474._0xb321bc)]+'\x0a-\x20**Suggested\x20action**:\x20`'+_0x57201b+_0x464444(_0x460474._0x1195c3)+_0x181a79+_0x464444(0xbb)+(_0x3e4a9d[_0x464444(_0x460474._0x5985f5)]['error'][_0x464444(0xe8)]?_0x464444(0x104)+_0x3e4a9d[_0x464444(_0x460474._0x371d3e)][_0x464444(_0x460474._0x345863)][_0x464444(_0x460474._0x1491a1)]+_0x464444(0x95):'')+_0x464444(_0x460474._0x21e514)+_0x258c5d+'\x0a```\x0a\x0a##\x20Last\x20console\x20entries\x0a\x0a```\x0a'+_0x32ed5c+'\x0a```\x0a\x0a##\x20Semantic-DOM\x20snapshot\x0a\x0a'+_0x5579b4+_0x464444(_0x460474._0x3297b3);}function _0x5f40(_0x4cfe48,_0x5073aa){_0x4cfe48=_0x4cfe48-0x91;const _0x2f3e42=_0x2f3e();let _0x5f40ca=_0x2f3e42[_0x4cfe48];if(_0x5f40['EDnuyN']===undefined){var _0x4612fe=function(_0x4602ac){const _0x10737c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x316ae0='',_0x2551fb='';for(let _0x28b338=0x0,_0x2cb81a,_0x323aab,_0x5d74d2=0x0;_0x323aab=_0x4602ac['charAt'](_0x5d74d2++);~_0x323aab&&(_0x2cb81a=_0x28b338%0x4?_0x2cb81a*0x40+_0x323aab:_0x323aab,_0x28b338++%0x4)?_0x316ae0+=String['fromCharCode'](0xff&_0x2cb81a>>(-0x2*_0x28b338&0x6)):0x0){_0x323aab=_0x10737c['indexOf'](_0x323aab);}for(let _0x247e91=0x0,_0x247530=_0x316ae0['length'];_0x247e91<_0x247530;_0x247e91++){_0x2551fb+='%'+('00'+_0x316ae0['charCodeAt'](_0x247e91)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2551fb);};_0x5f40['OYOMgw']=_0x4612fe,_0x5f40['tVJxpG']={},_0x5f40['EDnuyN']=!![];}const _0x298437=_0x2f3e42[0x0],_0x8c736c=_0x4cfe48+_0x298437,_0x5596b2=_0x5f40['tVJxpG'][_0x8c736c];return!_0x5596b2?(_0x5f40ca=_0x5f40['OYOMgw'](_0x5f40ca),_0x5f40['tVJxpG'][_0x8c736c]=_0x5f40ca):_0x5f40ca=_0x5596b2,_0x5f40ca;}__name(buildPromptMarkdown,_0x1edeb2(0xe4));function runPrepareFix(_0x3e6cb0,_0x1be1d3={}){const _0x4b83d4={_0x5b0860:0x9b,_0x2f9575:0xc9,_0x205fd4:0xef,_0x432cd2:0xaf,_0x194ff4:0xe6,_0x1e8ec0:0xef,_0x2db7a8:0xa3,_0x1539c8:0xc1,_0x14bdef:0x103,_0xf05d2a:0xa3,_0x2cbf51:0xa3,_0x3b9898:0xde,_0x4dff83:0xac,_0x36e1ee:0xc7,_0x30f2bf:0xcd,_0x2c485f:0x9c},_0x49ca3a=_0x1edeb2,_0x2042f8=_0x1be1d3[_0x49ca3a(0xe5)]??process['stdout'],_0x138be5=_0x1be1d3[_0x49ca3a(0xcb)]??process['stderr'],_0x2c6157=_0x1be1d3[_0x49ca3a(0x9b)]??process[_0x49ca3a(_0x4b83d4._0x5b0860)](),_0x1dd470=_0x3e6cb0[_0x49ca3a(0xf1)]('--failing');let _0x39d9b0=_0x3e6cb0[_0x49ca3a(_0x4b83d4._0x2f9575)](_0xa410dd=>!_0xa410dd[_0x49ca3a(0xae)]('-'));if(_0x1dd470||_0x39d9b0['length']===0x0){const _0x250f74=listFailures(defaultFailuresRoot(_0x2c6157));if(_0x250f74[_0x49ca3a(_0x4b83d4._0x205fd4)]===0x0)return _0x138be5['write']('prepare-fix:\x20no\x20failure\x20bundles\x20found\x20under\x20.unotest/failures/.\x20Run\x20a\x20failing\x20test\x20first;\x20the\x20bundle\x20is\x20written\x20automatically.\x0a'),0x1;if(_0x39d9b0['length']===0x0){const _0x5a41f7=new Map();for(const _0x41dd9f of _0x250f74){if(!_0x5a41f7[_0x49ca3a(0x97)](_0x41dd9f[_0x49ca3a(0xaf)]))_0x5a41f7[_0x49ca3a(0xc3)](_0x41dd9f[_0x49ca3a(_0x4b83d4._0x432cd2)],_0x41dd9f);}_0x39d9b0=[..._0x5a41f7[_0x49ca3a(0xec)]()][_0x49ca3a(_0x4b83d4._0x194ff4)](_0x194f33=>_0x194f33[_0x49ca3a(0xd6)]+'/'+_0x194f33[_0x49ca3a(0xaf)]);}}if(_0x39d9b0[_0x49ca3a(_0x4b83d4._0x1e8ec0)]===0x0)return _0x138be5[_0x49ca3a(0xa3)]('prepare-fix:\x20no\x20testId\x20provided\x20and\x20no\x20failing\x20tests\x20found.\x0a'),0x1;_0x2042f8[_0x49ca3a(_0x4b83d4._0x2db7a8)](_0x49ca3a(0xd1)+_0x39d9b0[_0x49ca3a(0xef)]+_0x49ca3a(0xf7));const _0x5b7236=defaultFailuresRoot(_0x2c6157);for(const _0x3d610a of _0x39d9b0){try{const _0x19aef0=composeFixPrompt(_0x3d610a,{'cwd':_0x2c6157,'failuresRoot':_0x5b7236}),_0x1b11fd=_0x2551fb(_0x19aef0[_0x49ca3a(0xc5)][_0x49ca3a(0xb6)],_0x49ca3a(0xf9));_0x316ae0(_0x1b11fd,_0x19aef0[_0x49ca3a(_0x4b83d4._0x1539c8)]),_0x2042f8['write'](_0x49ca3a(_0x4b83d4._0x14bdef)+_0x3d610a+'\x0a'),_0x2042f8[_0x49ca3a(_0x4b83d4._0xf05d2a)](_0x49ca3a(0xf6)+_0x1b11fd+'\x0a'),_0x2042f8[_0x49ca3a(_0x4b83d4._0x2cbf51)]('\x20\x20\x20\x20\x20\x20suggestedAction='+_0x19aef0[_0x49ca3a(_0x4b83d4._0x3b9898)]+'\x20\x20confidence='+_0x19aef0[_0x49ca3a(_0x4b83d4._0x4dff83)]+_0x49ca3a(0xc4)+_0x19aef0[_0x49ca3a(_0x4b83d4._0x36e1ee)]+'t\x0a');}catch(_0x287b40){_0x138be5[_0x49ca3a(0xa3)](_0x49ca3a(0xfd)+_0x3d610a+':\x20'+(_0x287b40 instanceof Error?_0x287b40[_0x49ca3a(_0x4b83d4._0x30f2bf)]:String(_0x287b40))+'\x0a');}}return _0x2042f8['write'](_0x49ca3a(_0x4b83d4._0x2c485f)),0x0;}__name(runPrepareFix,_0x1edeb2(0xdd));var invokedDirectly=process[_0x1edeb2(0xe1)][0x1]&&fileURLToPath(import.meta.url)===process[_0x1edeb2(0xe1)][0x1];if(invokedDirectly){const code=runPrepareFix(process[_0x1edeb2(0xe1)][_0x1edeb2(0xca)](0x2));process[_0x1edeb2(0xce)](code);}export{runPrepareFix};
|
|
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};
|