@unotest/web 0.6.1 → 0.9.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/.claude/hooks/log-agent.sh +24 -0
- package/.claude/skills/{write-e2e-test.md → write-e2e-test/SKILL.md} +32 -29
- package/CHANGELOG.md +49 -1
- package/README.md +12 -12
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.d.ts +7 -2
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.d.ts +15 -3
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.d.ts +18 -0
- package/dist/dsl/web-dsl-language-service.js +1 -0
- package/dist/inspection/page-inject.d.ts +45 -1
- package/dist/inspection/page-inject.js +253 -4
- package/dist/{interfaces-iTfjd1zT.d.ts → interfaces-dbZG10RS.d.ts} +40 -1
- package/dist/{linter-DzAzJpab.d.ts → linter-CM2CpIyW.d.ts} +1 -1
- package/dist/mcp/server.js +1 -1
- package/dist/runner/cli.d.ts +8 -2
- package/dist/runner/cli.js +1 -1
- package/dist/runner/init/chrome-probe.d.ts +15 -0
- package/dist/runner/init/chrome-probe.js +1 -0
- 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.d.ts +24 -0
- package/dist/runner/scaffold-workspace.js +1 -0
- package/dist/runner/serve-fixture.js +1 -1
- package/dist/runner/web-runner-adapter.d.ts +1 -1
- package/dist/runner/web-runner-adapter.js +1 -1
- package/guides/dsl-reference.md +7 -7
- package/package.json +21 -4
- package/src/mcp/prompts/agent-test-author.md +1 -1
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface BrowserProbeResult {
|
|
2
|
+
/** Which Playwright channel the probe matched against. `null` if no
|
|
3
|
+
* system browser found — caller falls back to bundled Chromium. */
|
|
4
|
+
channel: "chrome" | "msedge" | "chrome-beta" | null;
|
|
5
|
+
/** Absolute path to the browser binary (informational; the driver
|
|
6
|
+
* doesn't use it — Playwright resolves the channel internally). */
|
|
7
|
+
path?: string;
|
|
8
|
+
/** Human-readable label for prompts / status output. */
|
|
9
|
+
label?: string;
|
|
10
|
+
}
|
|
11
|
+
/** Returns the first system browser found in priority order:
|
|
12
|
+
* Chrome stable > Edge > Chrome Beta. `{ channel: null }` if none. */
|
|
13
|
+
declare function probeSystemBrowser(): BrowserProbeResult;
|
|
14
|
+
|
|
15
|
+
export { type BrowserProbeResult, probeSystemBrowser };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x5535a8=_0x3b1e;(function(_0x9b73dc,_0x2e707d){const _0x1c09c7={_0x119745:0x1c8,_0x4c34b5:0x1ac,_0x5efa19:0x1b8,_0x1113a1:0x1c0,_0x5c0616:0x1ca},_0x34844=_0x3b1e,_0x3a721f=_0x9b73dc();while(!![]){try{const _0x54b458=parseInt(_0x34844(_0x1c09c7._0x119745))/0x1+-parseInt(_0x34844(_0x1c09c7._0x4c34b5))/0x2+-parseInt(_0x34844(0x1a8))/0x3*(parseInt(_0x34844(0x1c9))/0x4)+-parseInt(_0x34844(_0x1c09c7._0x5efa19))/0x5+-parseInt(_0x34844(_0x1c09c7._0x1113a1))/0x6*(parseInt(_0x34844(_0x1c09c7._0x5c0616))/0x7)+-parseInt(_0x34844(0x1bf))/0x8*(parseInt(_0x34844(0x1a3))/0x9)+parseInt(_0x34844(0x1a1))/0xa;if(_0x54b458===_0x2e707d)break;else _0x3a721f['push'](_0x3a721f['shift']());}catch(_0x2c23cf){_0x3a721f['push'](_0x3a721f['shift']());}}}(_0x1525,0x8fd9d));var __defProp=Object[_0x5535a8(0x1c7)],__name=(_0x265d13,_0x2787a0)=>__defProp(_0x265d13,_0x5535a8(0x1b3),{'value':_0x2787a0,'configurable':!![]});import{execFileSync}from'child_process';import{existsSync}from'fs';function _0x3b1e(_0x524140,_0x22fcde){_0x524140=_0x524140-0x19f;const _0x152582=_0x1525();let _0x3b1e27=_0x152582[_0x524140];if(_0x3b1e['TpSoFX']===undefined){var _0x3cfec9=function(_0x3b4c0f){const _0x59f17d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x265d13='',_0x2787a0='';for(let _0x36a6ea=0x0,_0x2bcdb8,_0x4b56c5,_0x46d56d=0x0;_0x4b56c5=_0x3b4c0f['charAt'](_0x46d56d++);~_0x4b56c5&&(_0x2bcdb8=_0x36a6ea%0x4?_0x2bcdb8*0x40+_0x4b56c5:_0x4b56c5,_0x36a6ea++%0x4)?_0x265d13+=String['fromCharCode'](0xff&_0x2bcdb8>>(-0x2*_0x36a6ea&0x6)):0x0){_0x4b56c5=_0x59f17d['indexOf'](_0x4b56c5);}for(let _0x5abdb5=0x0,_0xd4c3f7=_0x265d13['length'];_0x5abdb5<_0xd4c3f7;_0x5abdb5++){_0x2787a0+='%'+('00'+_0x265d13['charCodeAt'](_0x5abdb5)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2787a0);};_0x3b1e['FFKXDl']=_0x3cfec9,_0x3b1e['QKGPnl']={},_0x3b1e['TpSoFX']=!![];}const _0x20c122=_0x152582[0x0],_0x13baa6=_0x524140+_0x20c122,_0x370774=_0x3b1e['QKGPnl'][_0x13baa6];return!_0x370774?(_0x3b1e27=_0x3b1e['FFKXDl'](_0x3b1e27),_0x3b1e['QKGPnl'][_0x13baa6]=_0x3b1e27):_0x3b1e27=_0x370774,_0x3b1e27;}function probeSystemBrowser(){const _0x1ab233=_0x5535a8;for(const _0x36a6ea of[probeChrome,probeEdge,probeChromeBeta]){const _0x2bcdb8=_0x36a6ea();if(_0x2bcdb8[_0x1ab233(0x1c3)]!==null)return _0x2bcdb8;}return{'channel':null};}__name(probeSystemBrowser,_0x5535a8(0x1af));function probeChrome(){const _0x53e9ed={_0x327930:0x1c1},_0x494468=_0x5535a8,_0x4b56c5=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x4b56c5)return{'channel':_0x494468(_0x53e9ed._0x327930),'path':_0x4b56c5,'label':_0x494468(0x1b9)};return{'channel':null};}__name(probeChrome,'probeChrome');function probeEdge(){const _0x7fb291={_0x307e72:0x1b7},_0x4b3c1d=_0x5535a8,_0x46d56d=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x46d56d)return{'channel':_0x4b3c1d(_0x7fb291._0x307e72),'path':_0x46d56d,'label':_0x4b3c1d(0x1a5)};return{'channel':null};}__name(probeEdge,_0x5535a8(0x1ad));function probeChromeBeta(){const _0x784b4c={_0x4d1209:0x1b4},_0x4b19c2=_0x5535a8,_0x5abdb5=firstExistingPath(CHROME_BETA_PATHS);if(_0x5abdb5)return{'channel':'chrome-beta','path':_0x5abdb5,'label':_0x4b19c2(_0x784b4c._0x4d1209)};return{'channel':null};}__name(probeChromeBeta,'probeChromeBeta');var CHROME_PATHS=((()=>{const _0x3f89f6={_0x14a67b:0x1a6,_0x192a18:0x1ae,_0x5ffa3f:0x1ab,_0x121fb1:0x1b5,_0x3dbcc7:0x1bc,_0x5df532:0x1be,_0x45a661:0x1aa,_0x2fa7a6:0x1ba},_0x38ab28=_0x5535a8;switch(process[_0x38ab28(0x1a7)]){case _0x38ab28(_0x3f89f6._0x14a67b):return[_0x38ab28(0x1b0)];case _0x38ab28(_0x3f89f6._0x192a18):return[process[_0x38ab28(_0x3f89f6._0x5ffa3f)]['ProgramFiles']+_0x38ab28(_0x3f89f6._0x121fb1),process[_0x38ab28(0x1ab)][_0x38ab28(_0x3f89f6._0x3dbcc7)]+_0x38ab28(_0x3f89f6._0x121fb1),process[_0x38ab28(_0x3f89f6._0x5ffa3f)][_0x38ab28(_0x3f89f6._0x5df532)]+_0x38ab28(0x1b5)];default:return[_0x38ab28(_0x3f89f6._0x45a661),'/usr/bin/google-chrome-stable',_0x38ab28(0x1b1),'/usr/bin/chromium',_0x38ab28(_0x3f89f6._0x2fa7a6)];}})()),CHROME_BIN_NAMES=[_0x5535a8(0x1bb),_0x5535a8(0x1b6),'chromium','chromium-browser'],EDGE_PATHS=((()=>{const _0x2d92b4={_0x39d220:0x1a6,_0x1eb324:0x1bc,_0x2af668:0x1bd},_0x1d199c=_0x5535a8;switch(process[_0x1d199c(0x1a7)]){case _0x1d199c(_0x2d92b4._0x39d220):return[_0x1d199c(0x1c4)];case _0x1d199c(0x1ae):return[process['env']['ProgramFiles']+'\x5cMicrosoft\x5cEdge\x5cApplication\x5cmsedge.exe',process[_0x1d199c(0x1ab)][_0x1d199c(_0x2d92b4._0x1eb324)]+_0x1d199c(_0x2d92b4._0x2af668)];default:return[_0x1d199c(0x1b2),'/usr/bin/microsoft-edge-stable'];}})()),EDGE_BIN_NAMES=[_0x5535a8(0x1a2),'microsoft-edge-stable'],CHROME_BETA_PATHS=((()=>{const _0x27c081={_0xe95da:0x1ae,_0x3631a0:0x19f},_0x2bb818=_0x5535a8;switch(process[_0x2bb818(0x1a7)]){case'darwin':return[_0x2bb818(0x1c5)];case _0x2bb818(_0x27c081._0xe95da):return[process[_0x2bb818(0x1ab)]['ProgramFiles']+_0x2bb818(0x1a9)];default:return[_0x2bb818(_0x27c081._0x3631a0)];}})());function firstExistingPath(_0xd4c3f7){const _0x55f6f9={_0x992d75:0x1a4},_0x3792d9=_0x5535a8;for(const _0x1c7e3f of _0xd4c3f7){if(!_0x1c7e3f||_0x1c7e3f[_0x3792d9(0x1a0)](_0x3792d9(_0x55f6f9._0x992d75)))continue;if(existsSync(_0x1c7e3f))return _0x1c7e3f;}return null;}__name(firstExistingPath,'firstExistingPath');function whichOf(_0x17c9c3){const _0x19ae60={_0x1e55e9:0x1c6,_0x590de6:0x1c2},_0x2ba58f=_0x5535a8;if(process['platform']==='win32')return void 0x0;for(const _0x1b27e7 of _0x17c9c3){try{const _0x527e6b=execFileSync('which',[_0x1b27e7],{'encoding':_0x2ba58f(_0x19ae60._0x1e55e9)})[_0x2ba58f(_0x19ae60._0x590de6)]();if(_0x527e6b['length']>0x0&&existsSync(_0x527e6b))return _0x527e6b;}catch{}}return void 0x0;}__name(whichOf,'whichOf');export{probeSystemBrowser};function _0x1525(){const _0x5b34fe=['mZi2mJi0se5TqKPI','ChjVyMvfzgDL','D2LUmZi','ChjVyMvtExn0zw1cCM93C2vY','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','BMfTzq','r29Vz2XLienOCM9TzsbczxrH','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','BxnLzgDL','mtGWntCXnvjQuMzkqG','r29Vz2XLienOCM9Tzq','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','z29Vz2XLlwnOCM9Tzq','uhjVz3jHBuzPBgvZkhG4nIK','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','te9dquXbufbeqvrb','ndaYotz5t3fZr2e','nKHjsNvtsW','y2HYB21L','DhjPBq','y2HHBM5LBa','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','DxrMoa','zgvMAw5LuhjVCgvYDhK','nJmXmda2wNDQBMXN','nefQt0PoEG','ndi4mZq0n29rzuzitW','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','C3rHCNrZv2L0Aa','mJC5otq2mJbbsxvVy2C','BwLJCM9ZB2z0lwvKz2u','mJaXnLHhwwXKwq','Dw5KzwzPBMvK','twLJCM9ZB2z0ievKz2u','zgfYD2LU','CgXHDgzVCM0','mtCZmdm3m2XPCg9HCW','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','zw52'];_0x1525=function(){return _0x5b34fe;};return _0x1525();}
|
package/dist/runner/init.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x21ec46=_0x6259;(function(_0xdac890,_0x3714ce){const _0x51fc73={_0x3e2acf:0x132,_0x5ee556:0xde,_0x11c199:0x155,_0x106204:0x7c,_0x23b735:0x114,_0x2ed3b4:0x131,_0x52e1d3:0xea},_0x10a892=_0x6259,_0x5b6a36=_0xdac890();while(!![]){try{const _0x105fd5=-parseInt(_0x10a892(0xc4))/0x1*(parseInt(_0x10a892(_0x51fc73._0x3e2acf))/0x2)+parseInt(_0x10a892(0xac))/0x3+parseInt(_0x10a892(0x11b))/0x4+parseInt(_0x10a892(0x103))/0x5*(-parseInt(_0x10a892(_0x51fc73._0x5ee556))/0x6)+parseInt(_0x10a892(_0x51fc73._0x11c199))/0x7*(parseInt(_0x10a892(_0x51fc73._0x106204))/0x8)+parseInt(_0x10a892(_0x51fc73._0x23b735))/0x9*(parseInt(_0x10a892(_0x51fc73._0x2ed3b4))/0xa)+parseInt(_0x10a892(_0x51fc73._0x52e1d3))/0xb;if(_0x105fd5===_0x3714ce)break;else _0x5b6a36['push'](_0x5b6a36['shift']());}catch(_0x3e88c4){_0x5b6a36['push'](_0x5b6a36['shift']());}}}(_0x175a,0xc66c2));var __defProp=Object[_0x21ec46(0xc7)],__name=(_0xe9de78,_0x1a901d)=>__defProp(_0xe9de78,'name',{'value':_0x1a901d,'configurable':!![]});import{copyFileSync,existsSync as _0x4c0125,mkdirSync,readFileSync,writeFileSync}from'fs';import{dirname as _0x4f3621,join,resolve as _0x3f761d}from'path';import{fileURLToPath as _0x4d71de}from'url';import{existsSync as _0x5e56d4}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x1efa4=_0x21ec46;for(const _0x317bd0 of[probeChrome,probeEdge,probeChromeBeta]){const _0x4a2426=_0x317bd0();if(_0x4a2426[_0x1efa4(0x133)]!==null)return _0x4a2426;}return{'channel':null};}__name(probeSystemBrowser,'probeSystemBrowser');function probeChrome(){const _0x3279b3={_0x49a810:0x147},_0x51d99a=_0x21ec46,_0x5f1602=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x5f1602)return{'channel':_0x51d99a(0x11a),'path':_0x5f1602,'label':_0x51d99a(_0x3279b3._0x49a810)};return{'channel':null};}__name(probeChrome,_0x21ec46(0x150));function probeEdge(){const _0x3ddf5c={_0x5c603c:0xca},_0x37965d=_0x21ec46,_0xf424b9=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0xf424b9)return{'channel':_0x37965d(_0x3ddf5c._0x5c603c),'path':_0xf424b9,'label':_0x37965d(0xbf)};return{'channel':null};}__name(probeEdge,_0x21ec46(0xc5));function probeChromeBeta(){const _0x388b47={_0x2db626:0xcf},_0x1d5c96=_0x21ec46,_0x29ae48=firstExistingPath(CHROME_BETA_PATHS);if(_0x29ae48)return{'channel':'chrome-beta','path':_0x29ae48,'label':_0x1d5c96(_0x388b47._0x2db626)};return{'channel':null};}__name(probeChromeBeta,_0x21ec46(0x10e));var CHROME_PATHS=((()=>{const _0x526473={_0x267905:0x113,_0x78f88e:0xa1,_0xcb991b:0x89,_0xda1234:0xd1,_0x2374f1:0xe6,_0x57eda1:0x89,_0x8d0743:0x9a},_0x4ccc81=_0x21ec46;switch(process[_0x4ccc81(0x10c)]){case _0x4ccc81(_0x526473._0x267905):return[_0x4ccc81(0x136)];case _0x4ccc81(_0x526473._0x78f88e):return[process[_0x4ccc81(_0x526473._0xcb991b)][_0x4ccc81(_0x526473._0xda1234)]+_0x4ccc81(_0x526473._0x2374f1),process[_0x4ccc81(_0x526473._0x57eda1)]['ProgramFiles(x86)']+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe',process['env'][_0x4ccc81(_0x526473._0x8d0743)]+_0x4ccc81(_0x526473._0x2374f1)];default:return['/usr/bin/google-chrome',_0x4ccc81(0xd7),'/snap/bin/google-chrome','/usr/bin/chromium',_0x4ccc81(0xce)];}})()),CHROME_BIN_NAMES=[_0x21ec46(0xec),_0x21ec46(0x8a),_0x21ec46(0x123),'chromium-browser'],EDGE_PATHS=((()=>{const _0x1e7eed={_0x530fe1:0x113,_0x7a0533:0x89,_0x6d1d8f:0xd1,_0x1e0af7:0x13a,_0x50a8c2:0x89,_0x52eb67:0x152},_0x35154c=_0x21ec46;switch(process[_0x35154c(0x10c)]){case _0x35154c(_0x1e7eed._0x530fe1):return[_0x35154c(0x146)];case'win32':return[process[_0x35154c(_0x1e7eed._0x7a0533)][_0x35154c(_0x1e7eed._0x6d1d8f)]+_0x35154c(_0x1e7eed._0x1e0af7),process[_0x35154c(_0x1e7eed._0x50a8c2)]['ProgramFiles(x86)']+'\x5cMicrosoft\x5cEdge\x5cApplication\x5cmsedge.exe'];default:return[_0x35154c(0xc8),_0x35154c(_0x1e7eed._0x52eb67)];}})()),EDGE_BIN_NAMES=[_0x21ec46(0x116),_0x21ec46(0x111)],CHROME_BETA_PATHS=((()=>{const _0x46f561={_0x3e951b:0x10c,_0x838dc1:0x113,_0x1fbb99:0xd1,_0x504f59:0x75},_0x545268=_0x21ec46;switch(process[_0x545268(_0x46f561._0x3e951b)]){case _0x545268(_0x46f561._0x838dc1):return[_0x545268(0x96)];case'win32':return[process[_0x545268(0x89)][_0x545268(_0x46f561._0x1fbb99)]+_0x545268(_0x46f561._0x504f59)];default:return['/usr/bin/google-chrome-beta'];}})());function firstExistingPath(_0x291072){const _0x13655f=_0x21ec46;for(const _0x5710ee of _0x291072){if(!_0x5710ee||_0x5710ee['startsWith'](_0x13655f(0xd3)))continue;if(existsSync(_0x5710ee))return _0x5710ee;}return null;}__name(firstExistingPath,_0x21ec46(0xdd));function whichOf(_0x4fba2a){const _0x3b93f1={_0x5343ec:0x99,_0x430c48:0x107,_0x4a7463:0xb7},_0x25505d=_0x21ec46;if(process[_0x25505d(0x10c)]==='win32')return void 0x0;for(const _0x2cb1ac of _0x4fba2a){try{const _0x484d0b=execFileSync(_0x25505d(_0x3b93f1._0x5343ec),[_0x2cb1ac],{'encoding':_0x25505d(_0x3b93f1._0x430c48)})[_0x25505d(_0x3b93f1._0x4a7463)]();if(_0x484d0b[_0x25505d(0x7f)]>0x0&&existsSync(_0x484d0b))return _0x484d0b;}catch{}}return void 0x0;}__name(whichOf,'whichOf');function runEnvironmentChecks(_0x517605={}){const _0x5b32c0={_0x11e593:0xb9},_0x4b61d6=_0x21ec46,_0x1b72be=_0x517605[_0x4b61d6(_0x5b32c0._0x11e593)]??process[_0x4b61d6(_0x5b32c0._0x11e593)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x1b72be)];}__name(runEnvironmentChecks,_0x21ec46(0xdb));function checkNodeVersion(){const _0x4c3509={_0x3d161e:0x12e},_0x3bf419=_0x21ec46,_0x1e3707=process[_0x3bf419(0x11e)][_0x3bf419(0xae)],_0x25d811=Number(_0x1e3707['split']('.')[0x0]);if(!Number['isFinite'](_0x25d811)||_0x25d811<0x14)return{'name':'Node.js\x20version','severity':'error','message':_0x3bf419(_0x4c3509._0x3d161e)+_0x1e3707+')','detail':_0x3bf419(0x139)};return{'name':_0x3bf419(0x117),'severity':'ok','message':_0x1e3707};}__name(checkNodeVersion,_0x21ec46(0x7e));function checkSystemBrowser(){const _0x3a7dc5={_0x67c6b1:0x133,_0x31fee2:0x12d,_0x3f06fc:0x10a,_0x79caa1:0xba},_0x4ebc14=_0x21ec46,_0x38f443=probeSystemBrowser();if(_0x38f443[_0x4ebc14(_0x3a7dc5._0x67c6b1)]!==null)return{'name':'System\x20browser','severity':'ok','message':_0x38f443[_0x4ebc14(0xf0)]+_0x4ebc14(_0x3a7dc5._0x31fee2),'detail':_0x38f443[_0x4ebc14(_0x3a7dc5._0x3f06fc)]};return{'name':_0x4ebc14(_0x3a7dc5._0x79caa1),'severity':'warning','message':_0x4ebc14(0x7a),'detail':_0x4ebc14(0x74)};}__name(checkSystemBrowser,_0x21ec46(0xbd));function checkWritableCwd(_0xa340f6){const _0x328426={_0x4584eb:0xf5,_0x4f6f9e:0xf5},_0x47edea=_0x21ec46;if(!_0x5e56d4(_0xa340f6))return{'name':_0x47edea(_0x328426._0x4584eb),'severity':_0x47edea(0xff),'message':_0x47edea(0x13f)+_0xa340f6+_0x47edea(0xcd),'detail':_0x47edea(0x112)};return{'name':_0x47edea(_0x328426._0x4f6f9e),'severity':'ok','message':_0xa340f6};}__name(checkWritableCwd,_0x21ec46(0x80));var templates={'smokeWelcome':'//\x20Welcome\x20smoke\x20for\x20@unotest/web.\x0a//\x20Run\x20with:\x20npx\x20@unotest/web\x20e2e\x20welcome/smoke\x0a//\x0a//\x20The\x20DSL\x20is\x20a\x20strict\x20JavaScript\x20subset\x20parsed\x20by\x20@unotest/dsl\x20and\x20executed\x0a//\x20step-by-step\x20by\x20AstExecutor.\x20NO\x20imports\x20needed\x20—\x20built-in\x20DSL\x20functions\x0a//\x20(goto,\x20click,\x20getByRole,\x20assertText,\x20…)\x20resolve\x20through\x20the\x20function\x0a//\x20registry\x20by\x20name.\x20Scenarios\x20read\x20top-to-bottom.\x0a//\x0a//\x20Every\x20step\x20lives\x20inside\x20a\x20//@collapse(\x22...\x22)\x20block:\x20the\x20title\x20describes\x0a//\x20WHAT\x20the\x20group\x20does,\x20the\x20steps\x20are\x20HOW.\x20Required\x20—\x20it\x27s\x20the\x20intent\x20your\x0a//\x20agent\x20reads\x20back\x20to\x20repair\x20a\x20step\x20when\x20a\x20selector\x20changes.\x0a\x0afunction\x20test_smoke()\x20{\x0a\x20\x20//@collapse(\x22Open\x20the\x20Big\x20Table\x20stress-test\x20scenario\x20on\x20the\x20playground\x22)\x0a\x20\x20goto(\x27https://playground.unotest.com/scenarios/big-table\x27);\x0a\x20\x20assertUrl(\x27/scenarios/big-table\x27);\x0a\x20\x20//@endcollapse\x0a}\x0a','scenarioTemplate':_0x21ec46(0x10f),'agentsMd':'#\x20AI\x20Agents:\x20how\x20to\x20write\x20e2e\x20tests\x20for\x20this\x20project\x0a\x0aThis\x20project\x20uses\x20[`@unotest/web`](https://www.npmjs.com/package/@unotest/web)\x0afor\x20end-to-end\x20testing\x20of\x20web\x20applications.\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`//@collapse(\x22description\x22)`\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\x20//@collapse(\x22Sign\x20in\x20as\x20the\x20demo\x20user\x22)\x0a\x20\x20goto(\x27https://app.example.com/login\x27);\x0a\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27demo@example.com\x27);\x0a\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20//@endcollapse\x0a\x0a\x20\x20//@collapse(\x22Dashboard\x20shows\x20the\x20signed-in\x20user\x22)\x0a\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome\x27);\x0a\x20\x20//@endcollapse\x0a}\x0a```\x0a\x0a**External\x20variables\x20&\x20secrets:**\x20reference\x20logins\x20/\x20URLs\x20/\x20tokens\x20by\x20a\x20bare\x0a`UPPER_SNAKE`\x20name\x20—\x20the\x20runner\x20resolves\x20it\x20from\x20`unotest/.env`\x20(normal)\x20or\x0a`unotest/.secrets`\x20(secret,\x20masked\x20in\x20logs).\x20No\x20`env()`/`secret()`\x20wrapper:\x0a\x0a```js\x0agoto(APP_BASE_URL);\x0afill(getByLabel(\x27Password\x27),\x20TEST_USER_PASSWORD);\x0a```\x0a\x0aA\x20lowercase\x20name\x20is\x20an\x20in-scenario\x20binding;\x20an\x20unknown\x20`UPPER_SNAKE`\x20fails\x20the\x0arun\x20asking\x20you\x20to\x20add\x20it\x20to\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\x0a\x0a-\x20`pnpm\x20exec\x20unotest-web\x20e2e\x20unotest/e2e/<name>.js`\x20—\x20run\x20scenario\x0a-\x20`pnpm\x20exec\x20unotest-web\x20lint`\x20—\x20static\x20check\x20of\x20all\x20scenarios\x20+\x20helpers\x0a-\x20`pnpm\x20exec\x20unotest-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','secretsExample':_0x21ec46(0xb5),'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(APP_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#\x20---\x20App\x20under\x20test\x20--------------------------------------------------------\x0a#\x20Used\x20as\x20the\x20base\x20for\x20goto(\x27/relative-path\x27)\x20and\x20for\x20assertUrl\x20substring\x0a#\x20matching.\x0aAPP_BASE_URL=http://localhost:3000\x0a\x0a#\x20---\x20Backend\x20---------------------------------------------------------------\x0a#\x20Used\x20by\x20apiCall(method,\x20path,\x20body?)\x20—\x20base\x20URL\x20for\x20HTTP\x20fixture\x20calls.\x0aAPI_BASE_URL=http://localhost:3000/api\x0a#\x20Absolute\x20path\x20used\x20as\x20default\x20cwd\x20for\x20the\x20`shell(...)`\x20DSL\x20primitive\x0a#\x20(run\x20from\x20project\x20root).\x20Optional.\x0aPROJECT_ROOT=\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---\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#\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'};function unotestConfigMjs(_0x3ccaa5){const _0x1d366b={_0x5bb1de:0x12a,_0x3bc2e0:0xa0,_0x3910b0:0x144,_0x59d74f:0xfb},_0x46543c=_0x21ec46,_0x2c5d54=_0x3ccaa5===void 0x0?_0x46543c(_0x1d366b._0x5bb1de):_0x46543c(_0x1d366b._0x3bc2e0)+JSON['stringify'](_0x3ccaa5)+',';return _0x46543c(_0x1d366b._0x3910b0)+_0x2c5d54+_0x46543c(_0x1d366b._0x59d74f);}__name(unotestConfigMjs,_0x21ec46(0x98));function promptYesNo(_0x4e8adf,_0x3df1f5){const _0x4d535d={_0x394308:0x158,_0xe825f6:0x94},_0x1d2267={_0x3ddd6d:0xad,_0xa467ae:0xa8,_0x8f4188:0xda,_0x16b6d3:0x118,_0x156693:0xa7,_0x76a97a:0x126},_0x2c5496={_0x26a497:0x78,_0x3632ea:0x107},_0x3644ad={_0xc7db90:0x105,_0x47a9da:0xa4,_0x282946:0x118,_0x183b03:0xfd},_0x680c0d=_0x21ec46,_0xddada5=_0x3df1f5?_0x680c0d(_0x4d535d._0x394308):_0x680c0d(_0x4d535d._0xe825f6);return new Promise(_0x40655e=>{const _0x5e535c=_0x680c0d;let _0x1385dc=![];const _0x445eef=__name(_0x1c45c1=>{const _0x517390=_0x6259;if(_0x1385dc)return;_0x1385dc=!![],process[_0x517390(0x118)][_0x517390(0xf6)](_0x517390(_0x3644ad._0xc7db90),_0x3f8b4b),process[_0x517390(0x118)][_0x517390(0xf6)](_0x517390(0xa7),_0x16db49),process[_0x517390(0x118)][_0x517390(_0x3644ad._0x47a9da)](),process[_0x517390(_0x3644ad._0x282946)][_0x517390(_0x3644ad._0x183b03)](),_0x40655e(_0x1c45c1);},_0x5e535c(_0x1d2267._0x3ddd6d)),_0x3f8b4b=__name(_0x15a180=>{const _0x3f83f3=_0x5e535c,_0x5a3524=typeof _0x15a180===_0x3f83f3(_0x2c5496._0x26a497)?_0x15a180:_0x15a180[_0x3f83f3(0xd6)](_0x3f83f3(_0x2c5496._0x3632ea)),_0x3e7c2f=_0x5a3524[_0x3f83f3(0xb8)]('\x0a');if(_0x3e7c2f<0x0)return;const _0x27644b=_0x5a3524['slice'](0x0,_0x3e7c2f)['trim']()[_0x3f83f3(0xe4)]();if(_0x27644b==='')return _0x445eef(_0x3df1f5);_0x445eef(_0x27644b==='y'||_0x27644b==='yes');},_0x5e535c(0x8d)),_0x16db49=__name(()=>_0x445eef(_0x3df1f5),_0x5e535c(_0x1d2267._0xa467ae));process['stdout'][_0x5e535c(_0x1d2267._0x8f4188)](_0x4e8adf+_0xddada5),process[_0x5e535c(_0x1d2267._0x16b6d3)]['on']('data',_0x3f8b4b),process['stdin']['on'](_0x5e535c(_0x1d2267._0x156693),_0x16db49),process[_0x5e535c(0x118)][_0x5e535c(_0x1d2267._0x76a97a)]();});}__name(promptYesNo,_0x21ec46(0x122));import{spawn}from'child_process';import{createRequire}from'module';import{dirname,resolve}from'path';import{fileURLToPath}from'url';async function installChromium(_0x10c7aa={}){const _0x33aeac={_0x5e9caa:0xb1,_0xffdee2:0x77,_0x3fafcb:0x87},_0x42f764={_0x4a3b0f:0x123,_0x51faee:0x7d,_0x1325b1:0x14a,_0x31e18f:0xb6,_0x3fdc4d:0xc2,_0x4bb25f:0x105,_0x380515:0xff},_0x21657c=_0x21ec46,_0x28b0ec=_0x10c7aa['stdoutWrite']??(_0x459711=>process[_0x21657c(0xb6)][_0x21657c(0xda)](_0x459711)),_0x1e3f0b=createRequire(import.meta.url),_0xff84da=_0x1e3f0b['resolve'](_0x21657c(0xe7)),_0x47051c=_0x1e3f0b(_0xff84da),_0x2565cc=typeof _0x47051c['bin']===_0x21657c(0x78)?_0x47051c[_0x21657c(_0x33aeac._0x5e9caa)]:_0x47051c['bin']?.[_0x21657c(_0x33aeac._0xffdee2)];if(!_0x2565cc)throw new Error(_0x21657c(_0x33aeac._0x3fafcb));const _0x44af5e=resolve(dirname(_0xff84da),_0x2565cc);return new Promise((_0x4d2682,_0x53013e)=>{const _0x1764df=_0x21657c,_0x53503c=spawn(process[_0x1764df(0xb2)],[_0x44af5e,'install',_0x1764df(_0x42f764._0x4a3b0f)],{'stdio':[_0x1764df(_0x42f764._0x51faee),_0x1764df(0x14a),_0x1764df(_0x42f764._0x1325b1)]});_0x53503c[_0x1764df(_0x42f764._0x31e18f)]?.['on']('data',_0x6ae864=>_0x28b0ec(_0x6ae864[_0x1764df(0xd6)]())),_0x53503c[_0x1764df(_0x42f764._0x3fdc4d)]?.['on'](_0x1764df(_0x42f764._0x4bb25f),_0x205266=>_0x28b0ec(_0x205266['toString']())),_0x53503c['on'](_0x1764df(_0x42f764._0x380515),_0x53013e),_0x53503c['on'](_0x1764df(0xbc),_0x25e16b=>{if(_0x25e16b===0x0)_0x4d2682();else _0x53013e(new Error('chromium\x20download\x20exited\x20with\x20code\x20'+_0x25e16b));});});}__name(installChromium,_0x21ec46(0xf1));async function runInstallChromiumCli(){const _0x46b783={_0x2f1627:0x102},_0xcee822=_0x21ec46;try{return await installChromium(),0x0;}catch(_0x26c911){return process[_0xcee822(0xc2)][_0xcee822(0xda)](_0xcee822(0x9e)+(_0x26c911 instanceof Error?_0x26c911[_0xcee822(_0x46b783._0x2f1627)]:String(_0x26c911))+'\x0a'),0x1;}}__name(runInstallChromiumCli,_0x21ec46(0x85));var invokedDirectly=process[_0x21ec46(0xd5)][0x1]&&fileURLToPath(import.meta.url)===process['argv'][0x1];invokedDirectly&&runInstallChromiumCli()['then'](_0x38e2f0=>process[_0x21ec46(0xbc)](_0x38e2f0));async function chooseBrowser(_0x37fd76){const _0x164da1={_0x384f41:0x134,_0x191adc:0xd4,_0x26e038:0x133,_0x249c87:0xd4,_0x2f070d:0xd4,_0x37e11c:0x133,_0x327b4f:0xf9,_0x56aa27:0x76,_0x3555cc:0x104,_0x5192e2:0x130,_0x5017ca:0xe9,_0x2a65ed:0xbb,_0x33d3f8:0x10a,_0x2c6b2a:0xef,_0x4d2399:0x156,_0x52e163:0xd4,_0x32337f:0x125,_0x170e87:0xf7},_0x146737=_0x21ec46,_0x3dda53=_0x37fd76[_0x146737(0x11d)]??(_0x5df7c6=>process['stdout'][_0x146737(0xda)](_0x5df7c6));if(_0x37fd76['override']===_0x146737(_0x164da1._0x384f41)){if(_0x37fd76[_0x146737(_0x164da1._0x191adc)][_0x146737(_0x164da1._0x26e038)])return _0x3dda53(_0x146737(0x9d)+_0x37fd76[_0x146737(_0x164da1._0x249c87)][_0x146737(0xf0)]+'\x20('+_0x37fd76[_0x146737(_0x164da1._0x2f070d)][_0x146737(0x10a)]+')\x0a'),{'channel':_0x37fd76[_0x146737(_0x164da1._0x249c87)][_0x146737(_0x164da1._0x37e11c)],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x146737(_0x164da1._0x327b4f),_0x146737(_0x164da1._0x56aa27)]};}if(_0x37fd76[_0x146737(0x86)]===_0x146737(_0x164da1._0x3555cc))return _0x3dda53(_0x146737(_0x164da1._0x5192e2)),await installChromium({'stdoutWrite':_0x3dda53}),{'channel':null,'installedBundled':!![],'warnings':[]};if(_0x37fd76[_0x146737(0x86)]==='none')return{'channel':void 0x0,'installedBundled':![],'warnings':['⚠\x20--browser\x20none\x20—\x20no\x20browser\x20configured.\x20Run\x20one\x20of:','\x20\x20\x20\x20npx\x20@unotest/web\x20install-chromium\x20\x20\x20\x20\x20\x20(downloads\x20bundled\x20chromium)',_0x146737(_0x164da1._0x5017ca)]};if(!_0x37fd76[_0x146737(0x82)]){if(_0x37fd76[_0x146737(_0x164da1._0x249c87)]['channel'])return _0x3dda53(_0x146737(_0x164da1._0x2a65ed)+_0x37fd76[_0x146737(_0x164da1._0x249c87)][_0x146737(0xf0)]+_0x146737(0x14e)+_0x37fd76['probe'][_0x146737(_0x164da1._0x33d3f8)]+_0x146737(0x14b)+_0x37fd76[_0x146737(_0x164da1._0x191adc)][_0x146737(0x133)]+'\x27\x0a'),{'channel':_0x37fd76['probe'][_0x146737(0x133)],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0x146737(_0x164da1._0x2c6b2a),'\x20\x20Run\x20`npx\x20@unotest/web\x20install-chromium`\x20to\x20download\x20the\x20bundled\x20fallback,',_0x146737(_0x164da1._0x4d2399)]};}if(_0x37fd76[_0x146737(_0x164da1._0x52e163)][_0x146737(_0x164da1._0x37e11c)]){_0x3dda53(_0x146737(0x8f)+_0x37fd76[_0x146737(_0x164da1._0x249c87)]['label']+_0x146737(_0x164da1._0x32337f)+_0x37fd76[_0x146737(0xd4)]['path']+'\x0a');const _0x2bd21b=await promptYesNo(_0x146737(0x124)+_0x37fd76[_0x146737(0xd4)]['label']+'?',!![]);if(_0x2bd21b)return{'channel':_0x37fd76['probe'][_0x146737(_0x164da1._0x26e038)],'installedBundled':![],'warnings':[]};}else _0x3dda53(_0x146737(_0x164da1._0x170e87));const _0x7c603a=await promptYesNo('\x20\x20Download\x20bundled\x20Chromium\x20(~150\x20MB)?',!![]);if(_0x7c603a)return _0x3dda53(_0x146737(0x12b)),await installChromium({'stdoutWrite':_0x3dda53}),{'channel':null,'installedBundled':!![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':['⚠\x20No\x20browser\x20configured.\x20Run\x20one\x20of\x20before\x20first\x20test:','\x20\x20\x20\x20npx\x20@unotest/web\x20install-chromium\x20\x20\x20\x20\x20\x20(downloads\x20bundled\x20chromium)',_0x146737(0x159)]};}__name(chooseBrowser,_0x21ec46(0xe3));var McpJsonParseError=class extends Error{static{__name(this,'McpJsonParseError');}constructor(_0x1d7d53){const _0x56df54={_0x280275:0x154},_0x1a3401=_0x21ec46;super(_0x1d7d53),this[_0x1a3401(_0x56df54._0x280275)]=_0x1a3401(0x14d);}};function mergeMcpConfig(_0x4adcd1,_0x32db6f,_0x60ecd4,_0x376b1e={}){const _0x222d8b={_0x33e594:0x92,_0x1ab89d:0xcb,_0x43f98d:0xe1,_0x5df452:0xc9,_0x4f989f:0xc9,_0x2ff331:0xb4,_0x4f6f0f:0x15a},_0x444b46=_0x21ec46;if(_0x4adcd1===null){const _0x2ec4b2=JSON['stringify']({'mcpServers':{[_0x32db6f]:_0x60ecd4}},null,0x2)+'\x0a';return{'action':_0x444b46(_0x222d8b._0x33e594),'newContent':_0x2ec4b2};}let _0x4eb1ff;try{_0x4eb1ff=JSON[_0x444b46(_0x222d8b._0x1ab89d)](_0x4adcd1);}catch(_0x1bb95b){throw new McpJsonParseError(_0x444b46(0x10d)+_0x1bb95b[_0x444b46(0x102)]+_0x444b46(_0x222d8b._0x43f98d));}(!_0x4eb1ff[_0x444b46(_0x222d8b._0x5df452)]||typeof _0x4eb1ff[_0x444b46(0xc9)]!=='object')&&(_0x4eb1ff[_0x444b46(_0x222d8b._0x4f989f)]={});const _0xc8d527=_0x32db6f in _0x4eb1ff[_0x444b46(_0x222d8b._0x4f989f)];if(_0xc8d527&&!_0x376b1e['force'])return{'action':_0x444b46(0xe8),'newContent':_0x4adcd1};_0x4eb1ff[_0x444b46(0xc9)][_0x32db6f]=_0x60ecd4;const _0x172320=JSON[_0x444b46(_0x222d8b._0x2ff331)](_0x4eb1ff,null,0x2)+'\x0a';return{'action':_0xc8d527?_0x444b46(_0x222d8b._0x4f6f0f):_0x444b46(0xc0),'newContent':_0x172320};}__name(mergeMcpConfig,'mergeMcpConfig');var ClaudeSettingsParseError=class extends Error{static{__name(this,'ClaudeSettingsParseError');}constructor(_0x689040){const _0x473ac3=_0x21ec46;super(_0x689040),this['name']=_0x473ac3(0xc1);}};function _0x6259(_0x10b4b8,_0x51b5b1){_0x10b4b8=_0x10b4b8-0x74;const _0x175ad0=_0x175a();let _0x62597f=_0x175ad0[_0x10b4b8];if(_0x6259['anZKXv']===undefined){var _0xde42ca=function(_0x30b564){const _0x1a6d23='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x4c0125='',_0x4f3621='';for(let _0x3f761d=0x0,_0x4d71de,_0x5e56d4,_0xe9de78=0x0;_0x5e56d4=_0x30b564['charAt'](_0xe9de78++);~_0x5e56d4&&(_0x4d71de=_0x3f761d%0x4?_0x4d71de*0x40+_0x5e56d4:_0x5e56d4,_0x3f761d++%0x4)?_0x4c0125+=String['fromCharCode'](0xff&_0x4d71de>>(-0x2*_0x3f761d&0x6)):0x0){_0x5e56d4=_0x1a6d23['indexOf'](_0x5e56d4);}for(let _0x1a901d=0x0,_0x317bd0=_0x4c0125['length'];_0x1a901d<_0x317bd0;_0x1a901d++){_0x4f3621+='%'+('00'+_0x4c0125['charCodeAt'](_0x1a901d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4f3621);};_0x6259['NbvzPl']=_0xde42ca,_0x6259['kyuCXC']={},_0x6259['anZKXv']=!![];}const _0x577440=_0x175ad0[0x0],_0x1dc986=_0x10b4b8+_0x577440,_0x3073cf=_0x6259['kyuCXC'][_0x1dc986];return!_0x3073cf?(_0x62597f=_0x6259['NbvzPl'](_0x62597f),_0x6259['kyuCXC'][_0x1dc986]=_0x62597f):_0x62597f=_0x3073cf,_0x62597f;}function mergeClaudeAllowEntries(_0x432431,_0x3d79fc){const _0x53d80b={_0x574f28:0x149,_0x3957f7:0x7b,_0x1f18ae:0x7b,_0x22ff01:0x8b,_0x171ff3:0x137,_0x1799d2:0x7f,_0x30a4ab:0xe8,_0x5ae622:0xb4},_0xfb5a1b=_0x21ec46;if(_0x432431===null){const _0x2abbdf=JSON['stringify']({'permissions':{'allow':[..._0x3d79fc]}},null,0x2)+'\x0a';return{'action':'created','newContent':_0x2abbdf,'added':[..._0x3d79fc]};}let _0x452433;try{_0x452433=JSON[_0xfb5a1b(0xcb)](_0x432431);}catch(_0x5bc50b){throw new ClaudeSettingsParseError(_0xfb5a1b(0x84)+_0x5bc50b[_0xfb5a1b(0x102)]+'.\x20Fix\x20or\x20remove\x20the\x20file\x20and\x20re-run\x20init.');}(!_0x452433[_0xfb5a1b(0x7b)]||typeof _0x452433['permissions']!==_0xfb5a1b(_0x53d80b._0x574f28))&&(_0x452433[_0xfb5a1b(_0x53d80b._0x3957f7)]={});const _0x4e6245=Array['isArray'](_0x452433[_0xfb5a1b(0x7b)]['allow'])?_0x452433[_0xfb5a1b(_0x53d80b._0x1f18ae)][_0xfb5a1b(_0x53d80b._0x22ff01)]:[],_0x407145=[];for(const _0x202c1a of _0x3d79fc){!_0x4e6245[_0xfb5a1b(_0x53d80b._0x171ff3)](_0x202c1a)&&(_0x4e6245['push'](_0x202c1a),_0x407145['push'](_0x202c1a));}_0x452433['permissions'][_0xfb5a1b(0x8b)]=_0x4e6245;if(_0x407145[_0xfb5a1b(_0x53d80b._0x1799d2)]===0x0)return{'action':_0xfb5a1b(_0x53d80b._0x30a4ab),'newContent':_0x432431,'added':[]};const _0x3f99fd=JSON[_0xfb5a1b(_0x53d80b._0x5ae622)](_0x452433,null,0x2)+'\x0a';return{'action':_0xfb5a1b(0xc0),'newContent':_0x3f99fd,'added':_0x407145};}__name(mergeClaudeAllowEntries,_0x21ec46(0x129));function appendUniqueLines(_0x28d48f,_0x18cd75){const _0x5bdbcc={_0x509b5c:0xc6,_0x966e06:0xb7,_0x3eb753:0xfe,_0x42a975:0x108,_0x20d728:0x7f,_0xfec989:0x121},_0x4ebc79=_0x21ec46,_0x29a7f0=_0x28d48f??'',_0x343705=new Set(_0x29a7f0['split']('\x0a')[_0x4ebc79(_0x5bdbcc._0x509b5c)](_0x3839d9=>_0x3839d9['trim']())),_0x2dbbeb=[],_0x251a99=[];for(const _0x40c0bf of _0x18cd75){const _0x746c2f=_0x40c0bf[_0x4ebc79(_0x5bdbcc._0x966e06)]();if(_0x746c2f===''||_0x343705[_0x4ebc79(_0x5bdbcc._0x3eb753)](_0x746c2f)){if(_0x746c2f!=='')_0x251a99[_0x4ebc79(_0x5bdbcc._0x42a975)](_0x40c0bf);continue;}_0x2dbbeb['push'](_0x40c0bf),_0x343705[_0x4ebc79(0x13b)](_0x746c2f);}if(_0x2dbbeb[_0x4ebc79(_0x5bdbcc._0x20d728)]===0x0)return{'added':_0x2dbbeb,'alreadyPresent':_0x251a99,'newContent':_0x29a7f0};const _0x5cb1a7=_0x29a7f0===''?'':_0x29a7f0[_0x4ebc79(0xa2)]('\x0a')?'':'\x0a',_0x5b6ea7=_0x29a7f0+_0x5cb1a7+_0x2dbbeb[_0x4ebc79(_0x5bdbcc._0xfec989)]('\x0a')+'\x0a';return{'added':_0x2dbbeb,'alreadyPresent':_0x251a99,'newContent':_0x5b6ea7};}__name(appendUniqueLines,_0x21ec46(0x151));function parseArgs(_0x2bb440){const _0xf091b3={_0x3ddd52:0xb9,_0x1e56f6:0xee},_0x14760c=_0x21ec46;let _0x2aa5bf=![],_0x130134=process[_0x14760c(_0xf091b3._0x3ddd52)](),_0x247a79;for(let _0x4caf2c=0x0;_0x4caf2c<_0x2bb440[_0x14760c(0x7f)];_0x4caf2c++){const _0x51be4d=_0x2bb440[_0x4caf2c];if(_0x51be4d===_0x14760c(_0xf091b3._0x1e56f6)||_0x51be4d==='-f')_0x2aa5bf=!![];else{if(_0x51be4d==='--browser'){const _0x1ef5c8=_0x2bb440[++_0x4caf2c];if(_0x1ef5c8==='system'||_0x1ef5c8==='bundled'||_0x1ef5c8===_0x14760c(0x11f))_0x247a79=_0x1ef5c8;else throw new Error('--browser\x20expects\x20system|bundled|none,\x20got\x20'+String(_0x1ef5c8));}else{if(!_0x51be4d[_0x14760c(0xd2)]('-'))_0x130134=_0x3f761d(process['cwd'](),_0x51be4d);}}}const _0x2bfd8d={'cwd':_0x130134,'force':_0x2aa5bf};if(_0x247a79!==void 0x0)_0x2bfd8d[_0x14760c(0x13e)]=_0x247a79;return _0x2bfd8d;}__name(parseArgs,_0x21ec46(0x15b));function symbol(_0x58e635){const _0x313a48={_0x15c89c:0x14c},_0x43014d=_0x21ec46;return _0x58e635==='ok'?'✓':_0x58e635===_0x43014d(_0x313a48._0x15c89c)?'⚠':'✗';}__name(symbol,_0x21ec46(0xa3));function readOwnVersion(){const _0xb337ae={_0x26e255:0xa5,_0x3763f9:0xd0,_0x44aa2d:0x142,_0x204460:0xb0},_0x54a5bc=_0x21ec46,_0x54cb31=_0x4f3621(_0x4d71de(import.meta.url)),_0x446c0e=_0x3f761d(_0x54cb31,_0x54a5bc(_0xb337ae._0x26e255)),_0x1cccc3=readFileSync(_0x446c0e,'utf8'),_0x9bc820=JSON[_0x54a5bc(0xcb)](_0x1cccc3);if(typeof _0x9bc820['version']!=='string'||_0x9bc820['version']['length']===0x0)throw new Error(_0x54a5bc(_0xb337ae._0x3763f9)+_0x446c0e+_0x54a5bc(_0xb337ae._0x44aa2d));return _0x9bc820[_0x54a5bc(_0xb337ae._0x204460)];}__name(readOwnVersion,_0x21ec46(0xf2));function ensureDir(_0x32c9dd){if(!_0x4c0125(_0x32c9dd))mkdirSync(_0x32c9dd,{'recursive':!![]});}__name(ensureDir,_0x21ec46(0xeb));function _0x175a(){const _0x48a7e6=['Dg9mB3DLCKnHC2u','ywXYzwfKEvbYzxnLBNq','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','CgXHExDYAwDODc9WywnRywDLlMPZB24','ywXYzwfKEs1WCMvZzw50','icaGigLUC3rHBgWGq2HYB21LoIaGAhr0Chm6lY93D3CUz29Vz2XLlMnVBs9JAhjVBwu','mtmWntu0mdvPrhHIs0C','zw5ZDxjLrgLY','z29Vz2XLlwnOCM9Tzq','cKjYB3DZzxi6cG','ls1MB3jJzq','4PQGig5VBI1PBNrLCMfJDgL2zsbZAgvSBcbHBMqGBM8GC3LZDgvTigjYB3DZzxiGzM91BMqU','BgfIzwW','Aw5ZDgfSBenOCM9TAxvT','CMvHze93BLzLCNnPB24','C2TPChbLzcaOC2TPBgWGC291CMnLig1PC3nPBMCG4OcuihbHy2THz2uGAw5ZDgfSBcbIDwC/kq','4PYtignYzwf0zwq','vgfYz2v0igrPCMvJDg9YEq','CMvTB3zLtgLZDgvUzxi','cIaGtM8GC3LZDgvTienOCM9TzsaVievKz2uGlYbdAhjVBwL1BsbKzxrLy3rLzc4k','BM8Gy2HHBM5LBcbZzxqGkgj1BMrSzwqGzMfSBgjHy2SGywz0zxiGAw5ZDgfSBc1JAhjVBwL1BsK','4PYxic0TyNjVD3nLCIbZExn0zw0GyNv0ig5VienOCM9TzsaVievKz2uGlYbdAhjVBwL1BsbMB3vUzcbVBIb0AgLZig1Hy2HPBMuU','y2HHBM5LBdOGBNvSBcaOyNvUzgXLzcbJAhjVBwL1BsK','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','icdINjCG','Dw5Yzwy','AgfZ','zxjYB3i','Dw5VDgvZDc8UDMLLD2vYlMXVy2S','B3zLCNDYB3rLihvUB3rLC3qTD2vIigvUDhj5','BwvZC2fNzq','nunKEeruBq','yNvUzgXLza','zgf0yq','AxnuvfK','DxrMoa','ChvZAa','BwLZC2LUzY1ZB3vYy2u','Cgf0Aa','ywDLBNrZtwq','CgXHDgzVCM0','rMfPBgvKihrVihbHCNnLic5Ty3aUANnVBIbHCYbku09ooIa','ChjVyMvdAhjVBwvczxrH','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHic8VqgnVBgXHChnLkciUlI4IksbIBg9JAY4GvgHLcI8VihrPDgXLigLZigeGCgXHAw4Trw5NBgLZAcbKzxnJCMLWDgLVBIbVzIb0AguGz3jVDxa7ihrOzsbZDgvWCYbPBNnPzguGyxjLcI8VihrOzsbPBxbSzw1LBNrHDgLVBI4Gr3jVDxaGyNKGAw50zw50icHtzxr1CcaVievUDgvYic8Gqwn0ic8GqxnZzxj0ig9YcI8VihDOyxrLDMvYihjLywrZihDLBgWPiokaLcbVBMuGyMXVy2SGCgvYigXVz2LJywWGy2H1BMSUcGPMDw5JDgLVBIb0zxn0x3LVDxjFBMfTzv9OzxjLkcKGEWOGic8VqgnVBgXHChnLkcjtzwvKigeGA25VD24GDxnLCIb2AweGreiGlYbbueKGzML4DhvYzxmGzNjVBsbFAgvSCgvYCY8IkqOGic8VicaGihDPCgvFztjLx3vZzxjZkcK7cIaGlY8GicaGDxnLCL9Pzca9ihnLzwrFDxnLCIGNywXPy2vazxHHBxbSzs5JB20NlcaNC2vJCMv0jYK7cIaGlY9azw5Ky29SBgfWC2ukcIaGlY9ay29SBgfWC2uOiLnPz24GAw4GyxmGDgHLihnLzwrLzcb1C2vYiIKkicbNB3rVkcDODhrWCZOVl3LVDxiTyxbWlNrLC3qVBg9NAw4NktSkicaVlYaGicbMAwXSkgDLDej5tgfIzwWOj0vTywLSjYKSicDHBgLJzubLEgfTCgXLlMnVBsCPoWOGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGic8VicaGignSAwnRkgDLDej5uM9SzsGNyNv0Dg9UjYWGE25HBwu6icDmB2CGAw4NFsKPoWOGic8VqgvUzgnVBgXHChnLcGOGic8VqgnVBgXHChnLkcjbC3nLCNqGDgHLigrHC2HIB2fYzcbZAg93CYb0AguGC2LNBMvKlwLUihvZzxiIkqOGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGic8VicaGigfZC2vYDfrLEhqOz2v0qNLsB2XLkcDOzwfKAw5NjYKSicDxzwXJB21LlcbbBgLJzsCPoWOGic8VicaGignVDw50id0GzgjrDwvYEsGNu0vmrunuignVDw50kcOPiezst00GDxnLCNmGv0HfuKuGywn0AxzLid0GDhj1zsCPoWOGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGlY9azw5Ky29SBgfWC2ukFqO','ywn0Aw9U','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','zgfYD2LU','oxvYCwfkDG','zM9Yy2u','BwLJCM9ZB2z0lwvKz2u','tM9Kzs5QCYb2zxjZAw9U','C3rKAw4','ywrKzwqGDw5VDgvZDc13zwiGzw50CNK','y2HYB21L','ndmZodC1mMLXt1fXBW','icaGicaG','C3rKB3v0v3jPDgu','DMvYC2LVBNm','BM9Uzq','D2fYBMLUz3m','AM9PBG','ChjVBxb0wwvZtM8','y2HYB21PDw0','icbvC2uGAw5ZDgfSBgvKia','igf0ia','CMvZDw1L','Aw5PDdOG','C2nLBMfYAw9uzw1WBgf0zq','BwvYz2vdBgf1zgvbBgXVD0vUDhjPzxm','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','cIaG4OAsigrVD25SB2fKAw5Nigj1BMrSzwqGq2HYB21PDw3IGkyk','Dw5VDgvZDc9LmMuVx3rLBxbSyxrLlMPZ','igzVDw5K','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','C2vJCMv0C0v4yw1WBgu','icdIHPiGzg93BMXVywrPBMCGyNvUzgXLzcbdAhjVBwL1BsaOFJe1mcbnqINIGkyk','mJm0mZm0mffVtvnoAa','nJG0weXvt0Lj','y2HHBM5LBa','C3LZDgvT','cKnSyxvKzsbdB2rLihbLCM1PC3nPB25ZoGO','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','Aw5JBhvKzxm','icdIGkiGuNvUihrOzsbZBw9Rzsb0zxn0oGOGicaGicbUChGGqhvUB3rLC3qVD2vIiguYzsb3zwXJB21Ll3nTB2TLcIaG4OcIieXPBNqGEw91CIbZy2vUyxjPB3m6cIaGicaGig5WEcbaDw5VDgvZDc93zwiGBgLUDaOGiokaOIaOt3b0Aw9UywWPifn0yxj0ihrOzsbnq1aGC2vYDMvYigzVCIbHz2vUDcbJB250CM9SoGOGicaGicbUChGGqhvUB3rLC3qVD2vIig1JCaOGicaGicbpCIbVCgvUienSyxvKzsbdB2rLigLUihrOAxmGChjVAMvJDcdIGjqGDgHLic5Ty3aUANnVBIbLBNrYEsbQDxn0cIaGicaGigfKzgvKihDPCMvZihvUB3rLC3qTD2vIigf1Dg9TyxrPy2fSBhKUcG','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','ywrK','BNb4','ywrKzwqGywXSB3CGzw50CMLLCZOG','yNjVD3nLCK92zxjYAwrL','DgfYz2v0ia','BM9Kzv9TB2r1BgvZlW','rw52AxjVBM1LBNq6cG','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','Dw5VDgvZDc9br0vovfmUBwq','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWO','Dw5VDgvZDc5JB25MAwCUBwPZ','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','r29Vz2XLienOCM9Tzq','icdINjmGDw5VDgvZDc5JB25MAwCUBwPZia','B2jQzwn0','CgLWzq','iokaLcb1C2LUzYbJAgfUBMvSicC','D2fYBMLUzW','twnWsNnVBLbHCNnLrxjYB3i','igzVDw5Kigf0ia','Dw5VDgvZDc8Uzw52','ChjVyMvdAhjVBwu','yxbWzw5Kvw5PCxvLtgLUzxm','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','BwnWx191BM90zxn0lxDLyG','BMfTzq','mtrdEKrvrLu','icbVCIbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LlG','C2v2zxjPDhK','ifTzl25Dia','icaGigLUC3rHBgWGq2HYB21LigzYB20GAhr0Chm6lY93D3CUz29Vz2XLlMnVBs9JAhjVBwu','zM9Yy2uTB3zLCNDYB3rL','CgfYC2vbCMDZ','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','icbjBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4GAw5PDc4','CgXHExDYAwDODa','C3rYAw5N','C2TPChbLza','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','CgvYBwLZC2LVBNm','mJKZody0r3HZBfzJ','Aw5OzxjPDa','y2HLy2ToB2rLvMvYC2LVBG','BgvUz3rO','y2HLy2TxCML0ywjSzun3za','Dw5VDgvZDc8Uzw52lMv4yw1WBgu','Aw50zxjHy3rPDMu','ywXYzwfKEsbWCMvZzw50','rMfPBgvKihrVihbHCNnLic5JBgf1zguVC2v0DgLUz3mUANnVBIbHCYbku09ooIa','CNvUsw5ZDgfSBenOCM9TAxvTq2XP','B3zLCNjPzgu','CgXHExDYAwDODc9WywnRywDLlMPZB24GAgfZig5VihvZywjSzsaIyMLUiIbMAwvSza','lM1JCc5QC29U','zw52','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','ywXSB3C','y2f0y2G','B25eyxrH','C21VA2vxzwXJB21L','cIaGrM91BMqG','Dw5VDgvZDc13zwiGAw5PDcdIHPiG','C2XPy2u','y3jLyxrLza','Dw5VDgvZDc9LmMuVx2HLBhbLCNmVlMDPDgTLzxa','ifT5l05Dia','lMnSyxvKzs9ZA2LSBhmVD3jPDguTztjLlxrLC3qUBwq','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','B3zLCNDYB3rL','Dw5VDgvZDenVBMzPz01QCW','D2HPy2G','te9dquXbufbeqvrb','y3jLyxrLzcaUy2XHDwrLl3nLDhrPBMDZlMPZB24GkgfSBg93oIbTy3bFx3vUB3rLC3qTD2vIkq','zgv0ywLS','icdINjmGC3LZDgvTia','4PYxigLUC3rHBgWTy2HYB21PDw06ia','Dw5VDgvZDc9LmMuVx2HLBhbLCNm','icbJAgfUBMvSoIa','D2LUmZi','zw5KC1DPDgG','C3LTyM9S','Cgf1C2u','lI4VlI4VCgfJA2fNzs5QC29U','BMv3q29UDgvUDa','zw5K','B25fBMq','Dw5VDgvZDc8UC2vJCMv0CW','zw52rxHHBxbSzq','zxHPDenVzgu','ndi2mJa3rvHfB2Hb','zMLUAxnO','BM9Kzq','Dw5VDgvZDc8UCNvUCY8','DMvYC2LVBG','yMLU','zxHLy1bHDgG','D3jPDgvjzK5LzwrLza','C3rYAw5NAwz5','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4Guhv0ig5VBI1ZzwnYzxqGDMfSDwvZicHvuKXZlcbLBwfPBhmSigLKCYKGAw4GDw5VDgvZDc8Uzw52lGOJcImGrKXfrvrFrvHbtvbmrqPmt0DjtJ0kueftu1DpuKq9cLrps0vopqO','C3rKB3v0','DhjPBq','Aw5KzxHpzG','y3DK','u3LZDgvTigjYB3DZzxi','icdINjmG','zxHPDa','y2HLy2TtExn0zw1cCM93C2vY','WRCGC2TPChbLza','twLJCM9ZB2z0ievKz2u','ywrKzwq','q2XHDwrLu2v0DgLUz3nqyxjZzuvYCM9Y','C3rKzxjY','y2HHBM5LBdOGjW','mZKYnLL1wKniBq','ChjVyMvfzgDL','BwfW','zgvMAw5LuhjVCgvYDhK','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','BwnWu2vYDMvYCW','BxnLzgDL','CgfYC2u','cKzPEcb0AguGzxjYB3jZigfIB3zLigfUzcbYzs1YDw4UcG','igrVzxmGBM90igv4Axn0','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','r29Vz2XLienOCM9TzsbczxrH','CgfJA2fNzs5QC29Uigf0ia','uhjVz3jHBuzPBgvZ','C3rHCNrZv2L0Aa','Dw5KzwzPBMvK','ChjVyMu','yxjNDG','Dg9tDhjPBMC','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','Dw5VDgvZDc13zwi','Dw5VDgvZDc9LmMuVD2vSy29Tzs9ZBw9Rzs5QCW','D3jPDgu','CNvUrw52AxjVBM1LBNrdAgvJA3m','lMnSyxvKzs9Zzxr0Aw5NCY5QC29U','zMLYC3rfEgLZDgLUz1bHDgG','mZm5ntG5mNP3rgfZsq','lNvUB3rLC3qV','C3rHDhvZ','lIbgAxGGB3iGCMvTB3zLihrOzsbMAwXLigfUzcbYzs1YDw4GAw5PDc4','icdINjmGywrKzwqGiG','y2HVB3nLqNjVD3nLCG'];_0x175a=function(){return _0x48a7e6;};return _0x175a();}function writeIfNeeded(_0x9c0ee2,_0x45329e,_0x3d7116){const _0x385346={_0x3a5d4f:0x92},_0x127b4f=_0x21ec46,_0x17c357=_0x4c0125(_0x9c0ee2);if(_0x17c357&&!_0x3d7116)return _0x127b4f(0x79);return ensureDir(_0x4f3621(_0x9c0ee2)),writeFileSync(_0x9c0ee2,_0x45329e),_0x17c357?_0x127b4f(0x97):_0x127b4f(_0x385346._0x3a5d4f);}__name(writeIfNeeded,_0x21ec46(0xb3));function writeIfAbsent(_0x496299,_0x4b12f1){const _0x4165fb=_0x21ec46;if(_0x4c0125(_0x496299))return _0x4165fb(0x79);return ensureDir(_0x4f3621(_0x496299)),writeFileSync(_0x496299,_0x4b12f1),_0x4165fb(0x92);}__name(writeIfAbsent,'writeIfAbsent');async function runInit(_0x58fd91){const _0x564cee={_0xc8bb1f:0x90,_0x8b92ed:0xb9,_0x41cbc0:0xda,_0x6b1707:0x157,_0x454ccf:0x9c,_0x336ea9:0xda,_0x538622:0xff,_0x4ab52b:0xcc,_0x1b5504:0x9f,_0x28d343:0x108,_0x139771:0xd9,_0x3e3b5e:0x8e,_0x38f1ae:0x12c,_0x1c6f4f:0x128,_0x1ccb1c:0x93,_0x3c20db:0x115,_0xd31778:0x81,_0xb358f3:0x81,_0x1687e6:0xaa,_0x43457f:0x14f,_0x3a44ce:0xaa,_0x3aa7b8:0xa9,_0xddb22e:0xb9,_0x266018:0x12f,_0x596600:0x108,_0x122f2b:0x115,_0x4d9434:0xb9,_0x51cde1:0x79,_0x1f538d:0x115,_0x17c2c8:0x108,_0x9817be:0x95,_0x8363f3:0x109,_0x3a7fc0:0xf4,_0x12278b:0x79,_0x58e2f8:0xbe,_0x49fd66:0xb6,_0x230656:0xb9,_0x406f45:0x13c,_0x1518b9:0xe8,_0xfbdd2c:0x110,_0xf73ee6:0xc0,_0x5eeb72:0x101,_0x5b670a:0x83,_0x508e52:0xbb,_0x28759e:0x102,_0x5e18a9:0xb9,_0x570798:0xdc,_0x9e395a:0x153,_0x20bd8f:0xa6,_0x5601eb:0x13d,_0x7a0627:0x121,_0x1eb891:0xfc,_0x23716a:0xdf,_0x13af61:0x100,_0x4144d8:0x140,_0x5313bf:0xda,_0xdc8ba5:0xe5,_0x3adf75:0x7f,_0x2d1a68:0x106,_0x5c5a73:0xf8,_0x15e71b:0xfa,_0x5073ce:0xc3,_0x1866ca:0x148,_0x37a0a4:0x7f,_0x3ef67c:0x120,_0x1b63ff:0x138},_0x5ec4bb=_0x21ec46,_0x1429e1=parseArgs(_0x58fd91);process[_0x5ec4bb(0xb6)][_0x5ec4bb(0xda)](_0x5ec4bb(_0x564cee._0xc8bb1f)+_0x1429e1[_0x5ec4bb(0xb9)]+'\x0a\x0a'),process[_0x5ec4bb(0xb6)][_0x5ec4bb(0xda)](_0x5ec4bb(0x141));const _0x462a02=runEnvironmentChecks({'cwd':_0x1429e1[_0x5ec4bb(_0x564cee._0x8b92ed)]});let _0x14afb2=![];for(const _0x84961e of _0x462a02){process['stdout'][_0x5ec4bb(_0x564cee._0x41cbc0)]('\x20\x20'+symbol(_0x84961e[_0x5ec4bb(_0x564cee._0x6b1707)])+'\x20'+_0x84961e[_0x5ec4bb(0x154)]+':\x20'+_0x84961e['message']+'\x0a');if(_0x84961e[_0x5ec4bb(_0x564cee._0x454ccf)])process[_0x5ec4bb(0xb6)][_0x5ec4bb(_0x564cee._0x336ea9)](_0x5ec4bb(0x11c)+_0x84961e[_0x5ec4bb(0x9c)]+'\x0a');if(_0x84961e[_0x5ec4bb(0x157)]===_0x5ec4bb(_0x564cee._0x538622))_0x14afb2=!![];}if(_0x14afb2)return process[_0x5ec4bb(0xc2)]['write'](_0x5ec4bb(_0x564cee._0x4ab52b)),{'exitCode':0x1};process[_0x5ec4bb(0xb6)][_0x5ec4bb(0xda)]('\x0aFiles:\x0a');const _0x3ac848=[];ensureDir(join(_0x1429e1['cwd'],_0x5ec4bb(_0x564cee._0x1b5504))),_0x3ac848[_0x5ec4bb(_0x564cee._0x28d343)]({'path':'unotest/e2e/welcome/smoke.js','status':writeIfNeeded(join(_0x1429e1[_0x5ec4bb(0xb9)],_0x5ec4bb(_0x564cee._0x139771)),templates[_0x5ec4bb(_0x564cee._0x3e3b5e)],_0x1429e1[_0x5ec4bb(0x115)])}),_0x3ac848[_0x5ec4bb(0x108)]({'path':_0x5ec4bb(_0x564cee._0x38f1ae),'status':writeIfNeeded(join(_0x1429e1[_0x5ec4bb(_0x564cee._0x8b92ed)],_0x5ec4bb(0x12c)),templates[_0x5ec4bb(_0x564cee._0x1c6f4f)],_0x1429e1['force'])}),_0x3ac848['push']({'path':_0x5ec4bb(_0x564cee._0x1ccb1c),'status':writeIfNeeded(join(_0x1429e1['cwd'],_0x5ec4bb(0x93)),'',_0x1429e1[_0x5ec4bb(0x115)])}),_0x3ac848[_0x5ec4bb(0x108)]({'path':_0x5ec4bb(0x143),'status':writeIfNeeded(join(_0x1429e1[_0x5ec4bb(0xb9)],'unotest/AGENTS.md'),templates[_0x5ec4bb(0x10b)],_0x1429e1[_0x5ec4bb(_0x564cee._0x3c20db)])}),_0x3ac848[_0x5ec4bb(_0x564cee._0x28d343)]({'path':_0x5ec4bb(_0x564cee._0xd31778),'status':writeIfNeeded(join(_0x1429e1['cwd'],_0x5ec4bb(_0x564cee._0xb358f3)),templates[_0x5ec4bb(_0x564cee._0x1687e6)],_0x1429e1['force'])}),_0x3ac848[_0x5ec4bb(0x108)]({'path':_0x5ec4bb(0x14f),'status':writeIfAbsent(join(_0x1429e1[_0x5ec4bb(0xb9)],_0x5ec4bb(_0x564cee._0x43457f)),templates[_0x5ec4bb(_0x564cee._0x3a44ce)])}),_0x3ac848[_0x5ec4bb(0x108)]({'path':_0x5ec4bb(_0x564cee._0x3aa7b8),'status':writeIfAbsent(join(_0x1429e1[_0x5ec4bb(_0x564cee._0xddb22e)],'unotest/.secrets'),templates[_0x5ec4bb(_0x564cee._0x266018)])});const _0x185f22=join(_0x1429e1[_0x5ec4bb(0xb9)],_0x5ec4bb(0x145));_0x3ac848[_0x5ec4bb(_0x564cee._0x596600)]({'path':_0x5ec4bb(0x145),'status':writeIfNeeded(_0x185f22,unotestConfigMjs(void 0x0),_0x1429e1[_0x5ec4bb(_0x564cee._0x122f2b)])});const _0x348c34=_0x3f761d(_0x4f3621(_0x4d71de(import.meta.url)),'../../.claude/skills/write-e2e-test.md'),_0x237815=join(_0x1429e1[_0x5ec4bb(_0x564cee._0x4d9434)],_0x5ec4bb(0x95));let _0x4821cf;if(!_0x4c0125(_0x348c34))_0x4821cf='missing-source';else{if(_0x4c0125(_0x237815)&&!_0x1429e1[_0x5ec4bb(0x115)])_0x4821cf=_0x5ec4bb(_0x564cee._0x51cde1);else{ensureDir(_0x4f3621(_0x237815)),copyFileSync(_0x348c34,_0x237815),_0x4821cf=_0x4c0125(_0x237815)?_0x5ec4bb(0x92):_0x5ec4bb(_0x564cee._0x51cde1);if(_0x4c0125(_0x237815)&&_0x1429e1[_0x5ec4bb(_0x564cee._0x1f538d)])_0x4821cf='overwrote';}}_0x3ac848[_0x5ec4bb(_0x564cee._0x17c2c8)]({'path':_0x5ec4bb(_0x564cee._0x9817be),'status':_0x4821cf===_0x5ec4bb(_0x564cee._0x8363f3)?_0x5ec4bb(0xf3):_0x4821cf});for(const _0x2501a0 of _0x3ac848){const _0xa4210=_0x2501a0[_0x5ec4bb(0xe0)]==='created'?_0x5ec4bb(_0x564cee._0x3a7fc0):_0x2501a0[_0x5ec4bb(0xe0)]===_0x5ec4bb(0x97)?'✓\x20overwrote':_0x2501a0['status'][_0x5ec4bb(0xd2)](_0x5ec4bb(_0x564cee._0x12278b))?_0x5ec4bb(_0x564cee._0x58e2f8):'·\x20'+_0x2501a0['status'];process[_0x5ec4bb(_0x564cee._0x49fd66)][_0x5ec4bb(0xda)]('\x20\x20'+_0xa4210+'\x20\x20'+_0x2501a0[_0x5ec4bb(0x10a)]+'\x0a');}process[_0x5ec4bb(0xb6)][_0x5ec4bb(0xda)]('\x0aMCP\x20config:\x0a');const _0x17c9cf=join(_0x1429e1[_0x5ec4bb(_0x564cee._0x230656)],_0x5ec4bb(0x88)),_0x1a9f9f=_0x4c0125(_0x17c9cf)?readFileSync(_0x17c9cf,_0x5ec4bb(0x107)):null,_0x109d3c=readOwnVersion(),_0xf38a7={'command':_0x5ec4bb(_0x564cee._0x406f45),'args':['-y','@unotest/web@'+_0x109d3c,'mcp']};try{const _0x3c816b=mergeMcpConfig(_0x1a9f9f,_0x5ec4bb(0xd8),_0xf38a7,{'force':_0x1429e1[_0x5ec4bb(0x115)]});_0x3c816b['action']!==_0x5ec4bb(_0x564cee._0x1518b9)&&writeFileSync(_0x17c9cf,_0x3c816b['newContent']);const _0x3f46de=_0x3c816b['action']==='created'?'created\x20.mcp.json':_0x3c816b[_0x5ec4bb(_0x564cee._0xfbdd2c)]===_0x5ec4bb(_0x564cee._0xf73ee6)?_0x5ec4bb(0x119):_0x3c816b[_0x5ec4bb(_0x564cee._0xfbdd2c)]==='force-overwrote'?_0x5ec4bb(_0x564cee._0x5eeb72):_0x5ec4bb(_0x564cee._0x5b670a);process[_0x5ec4bb(0xb6)][_0x5ec4bb(0xda)](_0x5ec4bb(_0x564cee._0x508e52)+_0x3f46de+'\x0a');}catch(_0x56810a){if(_0x56810a instanceof McpJsonParseError)return process['stderr']['write'](_0x5ec4bb(0xfc)+_0x56810a[_0x5ec4bb(_0x564cee._0x28759e)]+'\x0a'),{'exitCode':0x1};throw _0x56810a;}process[_0x5ec4bb(_0x564cee._0x49fd66)]['write'](_0x5ec4bb(0x135));const _0x12cde4=join(_0x1429e1[_0x5ec4bb(_0x564cee._0x5e18a9)],_0x5ec4bb(_0x564cee._0x570798)),_0x308ef0=_0x4c0125(_0x12cde4)?readFileSync(_0x12cde4,_0x5ec4bb(0x107)):null;try{const _0x4e43d7=mergeClaudeAllowEntries(_0x308ef0,[_0x5ec4bb(_0x564cee._0x9e395a)]);_0x4e43d7[_0x5ec4bb(0x110)]!=='already-present'&&(ensureDir(_0x4f3621(_0x12cde4)),writeFileSync(_0x12cde4,_0x4e43d7[_0x5ec4bb(_0x564cee._0x20bd8f)]));const _0x3499b9=_0x4e43d7[_0x5ec4bb(0x110)]==='created'?_0x5ec4bb(0x9b):_0x4e43d7[_0x5ec4bb(_0x564cee._0xfbdd2c)]===_0x5ec4bb(_0x564cee._0xf73ee6)?_0x5ec4bb(_0x564cee._0x5601eb)+_0x4e43d7[_0x5ec4bb(0xc0)][_0x5ec4bb(_0x564cee._0x7a0627)](',\x20'):_0x5ec4bb(_0x564cee._0x5b670a);process['stdout']['write']('\x20\x20✓\x20'+_0x3499b9+'\x0a');}catch(_0x602532){if(_0x602532 instanceof ClaudeSettingsParseError)return process['stderr']['write'](_0x5ec4bb(_0x564cee._0x1eb891)+_0x602532['message']+'\x0a'),{'exitCode':0x1};throw _0x602532;}process[_0x5ec4bb(_0x564cee._0x49fd66)][_0x5ec4bb(_0x564cee._0x41cbc0)]('\x0a.gitignore:\x0a');const _0xb5988f=join(_0x1429e1[_0x5ec4bb(0xb9)],'.gitignore'),_0x511cdf=_0x4c0125(_0xb5988f)?readFileSync(_0xb5988f,_0x5ec4bb(0x107)):null,_0x2a2314=appendUniqueLines(_0x511cdf,[_0x5ec4bb(0x14f),_0x5ec4bb(0xa9),_0x5ec4bb(_0x564cee._0x23716a),_0x5ec4bb(0xaf),'unotest/.debug/',_0x5ec4bb(_0x564cee._0x13af61),'unotest/.viewer.log',_0x5ec4bb(_0x564cee._0x4144d8)]);if(_0x2a2314[_0x5ec4bb(_0x564cee._0xf73ee6)][_0x5ec4bb(0x7f)]>0x0){writeFileSync(_0xb5988f,_0x2a2314[_0x5ec4bb(0xa6)]);for(const _0x3f0fe5 of _0x2a2314[_0x5ec4bb(0xc0)]){process[_0x5ec4bb(0xb6)][_0x5ec4bb(_0x564cee._0x5313bf)](_0x5ec4bb(0xe2)+_0x3f0fe5+'\x22\x0a');}}for(const _0x2eaa3d of _0x2a2314[_0x5ec4bb(_0x564cee._0xdc8ba5)]){process[_0x5ec4bb(_0x564cee._0x49fd66)][_0x5ec4bb(_0x564cee._0x41cbc0)]('\x20\x20·\x20already\x20present\x20\x22'+_0x2eaa3d+'\x22\x0a');}_0x2a2314[_0x5ec4bb(0xc0)]['length']===0x0&&_0x2a2314['alreadyPresent'][_0x5ec4bb(_0x564cee._0x3adf75)]===0x0&&process[_0x5ec4bb(_0x564cee._0x49fd66)][_0x5ec4bb(_0x564cee._0x41cbc0)]('\x20\x20·\x20no\x20changes\x20needed\x0a');process['stdout'][_0x5ec4bb(_0x564cee._0x41cbc0)](_0x5ec4bb(0xed));const _0x169c93=probeSystemBrowser(),_0xbce9c=Boolean(process['stdin'][_0x5ec4bb(_0x564cee._0x2d1a68)])&&Boolean(process['stdout']['isTTY']),_0x3bd6c5={'probe':_0x169c93,'interactive':_0xbce9c};if(_0x1429e1['browserOverride'])_0x3bd6c5[_0x5ec4bb(0x86)]=_0x1429e1[_0x5ec4bb(0x13e)];const _0x569b19=await chooseBrowser(_0x3bd6c5);writeFileSync(_0x185f22,unotestConfigMjs(_0x569b19[_0x5ec4bb(0x133)]));const _0xcb815=_0x569b19[_0x5ec4bb(0x133)]===void 0x0?_0x5ec4bb(_0x564cee._0x5c5a73):_0x569b19['channel']===null?_0x5ec4bb(_0x564cee._0x15e71b):_0x5ec4bb(_0x564cee._0x5073ce)+_0x569b19['channel']+'\x27';process[_0x5ec4bb(0xb6)][_0x5ec4bb(0xda)](_0x5ec4bb(_0x564cee._0x1866ca)+_0xcb815+'\x0a'),process['stdout']['write']('\x0aDone.\x20Next\x20steps:\x0a');if(_0x569b19['warnings'][_0x5ec4bb(_0x564cee._0x37a0a4)]>0x0){for(const _0x11c978 of _0x569b19[_0x5ec4bb(_0x564cee._0x3ef67c)])process[_0x5ec4bb(_0x564cee._0x49fd66)][_0x5ec4bb(0xda)]('\x20\x20'+_0x11c978+'\x0a');process['stdout'][_0x5ec4bb(_0x564cee._0x5313bf)]('\x0a');}return process[_0x5ec4bb(_0x564cee._0x49fd66)][_0x5ec4bb(0xda)](_0x5ec4bb(_0x564cee._0x1b63ff)),{'exitCode':0x0};}__name(runInit,'runInit');var invokedDirectly2=process[_0x21ec46(0xd5)][0x1]&&_0x4d71de(import.meta.url)===process[_0x21ec46(0xd5)][0x1];invokedDirectly2&&runInit(process[_0x21ec46(0xd5)][_0x21ec46(0x91)](0x2))['then'](({exitCode:_0x153aa3})=>{const _0x176c07={_0x355b01:0xab},_0x5e0752=_0x21ec46;process[_0x5e0752(_0x176c07._0x355b01)]=_0x153aa3;})[_0x21ec46(0x8c)](_0x5b0ed5=>{const _0xd94ab1={_0x97f699:0x102},_0x291ab2=_0x21ec46;process['stderr'][_0x291ab2(0xda)](_0x291ab2(0x127)+(_0x5b0ed5 instanceof Error?_0x5b0ed5[_0x291ab2(_0xd94ab1._0x97f699)]:String(_0x5b0ed5))+'\x0a'),process['exitCode']=0x1;});export{runInit};
|
|
1
|
+
const _0x5c5e7e=_0x3230;(function(_0x4ceb3e,_0x1714e2){const _0x4eceee={_0x579e9f:0x211,_0x56e793:0x1b8,_0xd0d7f6:0x22b,_0x5efb5:0x215,_0x5bf05c:0x23d,_0x452d5c:0x1c0,_0x565ff9:0x1f4},_0x25b03f=_0x3230,_0x4f5e71=_0x4ceb3e();while(!![]){try{const _0x423554=parseInt(_0x25b03f(0x1d7))/0x1*(-parseInt(_0x25b03f(_0x4eceee._0x579e9f))/0x2)+-parseInt(_0x25b03f(_0x4eceee._0x56e793))/0x3*(-parseInt(_0x25b03f(_0x4eceee._0xd0d7f6))/0x4)+parseInt(_0x25b03f(_0x4eceee._0x5efb5))/0x5+-parseInt(_0x25b03f(0x26a))/0x6*(-parseInt(_0x25b03f(_0x4eceee._0x5bf05c))/0x7)+-parseInt(_0x25b03f(_0x4eceee._0x452d5c))/0x8+-parseInt(_0x25b03f(0x21b))/0x9*(-parseInt(_0x25b03f(0x182))/0xa)+-parseInt(_0x25b03f(_0x4eceee._0x565ff9))/0xb;if(_0x423554===_0x1714e2)break;else _0x4f5e71['push'](_0x4f5e71['shift']());}catch(_0x5c3479){_0x4f5e71['push'](_0x4f5e71['shift']());}}}(_0x17f8,0x5b871));var __defProp=Object['defineProperty'],__name=(_0x2bd521,_0x3d9dbe)=>__defProp(_0x2bd521,_0x5c5e7e(0x180),{'value':_0x3d9dbe,'configurable':!![]});function _0x3230(_0x33c78c,_0x3fe0e1){_0x33c78c=_0x33c78c-0x17d;const _0x17f8ba=_0x17f8();let _0x3230de=_0x17f8ba[_0x33c78c];if(_0x3230['GxKMzb']===undefined){var _0x1a3069=function(_0x3487e5){const _0x1f1a6d='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e7f39='',_0x3ff972='';for(let _0x45b34c=0x0,_0x21804e,_0x1a7bce,_0x2bd521=0x0;_0x1a7bce=_0x3487e5['charAt'](_0x2bd521++);~_0x1a7bce&&(_0x21804e=_0x45b34c%0x4?_0x21804e*0x40+_0x1a7bce:_0x1a7bce,_0x45b34c++%0x4)?_0x3e7f39+=String['fromCharCode'](0xff&_0x21804e>>(-0x2*_0x45b34c&0x6)):0x0){_0x1a7bce=_0x1f1a6d['indexOf'](_0x1a7bce);}for(let _0x3d9dbe=0x0,_0x4f8add=_0x3e7f39['length'];_0x3d9dbe<_0x4f8add;_0x3d9dbe++){_0x3ff972+='%'+('00'+_0x3e7f39['charCodeAt'](_0x3d9dbe)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3ff972);};_0x3230['sKFLdV']=_0x1a3069,_0x3230['btVshs']={},_0x3230['GxKMzb']=!![];}const _0x4b412d=_0x17f8ba[0x0],_0x39af82=_0x33c78c+_0x4b412d,_0x5c85d8=_0x3230['btVshs'][_0x39af82];return!_0x5c85d8?(_0x3230de=_0x3230['sKFLdV'](_0x3230de),_0x3230['btVshs'][_0x39af82]=_0x3230de):_0x3230de=_0x5c85d8,_0x3230de;}import{copyFileSync,existsSync as _0x3e7f39,mkdirSync,readFileSync,writeFileSync}from'fs';import{dirname as _0x3ff972,join,resolve as _0x45b34c}from'path';import{fileURLToPath as _0x21804e}from'url';import{existsSync as _0x1a7bce}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0xce2a6c=_0x5c5e7e;for(const _0x4f8add of[probeChrome,probeEdge,probeChromeBeta]){const _0x4ce816=_0x4f8add();if(_0x4ce816[_0xce2a6c(0x1ad)]!==null)return _0x4ce816;}return{'channel':null};}__name(probeSystemBrowser,_0x5c5e7e(0x1cf));function probeChrome(){const _0x522660={_0x48b3fe:0x22d},_0x2a25e5=_0x5c5e7e,_0x362e2b=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x362e2b)return{'channel':_0x2a25e5(0x1e5),'path':_0x362e2b,'label':_0x2a25e5(_0x522660._0x48b3fe)};return{'channel':null};}__name(probeChrome,'probeChrome');function probeEdge(){const _0x27b71d={_0x3ffb50:0x263,_0x3fde0c:0x1ae},_0x311f68=_0x5c5e7e,_0x13ac71=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x13ac71)return{'channel':_0x311f68(_0x27b71d._0x3ffb50),'path':_0x13ac71,'label':_0x311f68(_0x27b71d._0x3fde0c)};return{'channel':null};}function _0x17f8(){const _0x3971d0=['l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4Guhv0ig5VBI1ZzwnYzxqGDMfSDwvZicHvuKXZlcbLBwfPBhmSigLKCYKGAw4GDw5VDgvZDc8Uzw52lGOJcImGrKXfrvrFrvHbtvbmrqPmt0DjtJ0kueftu1DpuKq9cLrps0vopqO','cKzPBgvZoGO','cKzPEcb0AguGzxjYB3jZigfIB3zLigfUzcbYzs1YDw4UcG','CgLWzq','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','icdINjmGC3LZDgvTia','igzVDw5K','igf0ia','q2XHDwrLu2v0DgLUz3nqyxjZzuvYCM9Y','icbVCIbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LlG','B3zLCNDYB3rL','icdINjmGDw5VDgvZDc5JB25MAwCUBwPZia','Dw5VDgvZDc8Uzw52','ngzQywPLDW','ifTzl25Dia','r29Vz2XLienOCM9Tzq','Dw5VDgvZDc8UzgvIDwCV','DxrMoa','Aw5OzxjPDa','Cgf1C2u','B3zLCNjPzgu','BMv3q29UDgvUDa','CgfYC2vbCMDZ','CNvUrw52AxjVBM1LBNrdAgvJA3m','zxHPDa','ChjVyMvdAhjVBwvczxrH','Dw5VDgvZDc8Uzw52lMv4yw1WBgu','cKnSyxvKzsbdB2rLihbLCM1PC3nPB25ZoGO','ChjVyMu','icbsDw4Gyg5WEcbaDw5VDgvZDc93zwiGAw5ZDgfSBc1JAhjVBwL1BwaGDg8Gzg93BMXVywqGDgHLigj1BMrSzwqGzMfSBgjHy2SS','DgfYz2v0ia','ndq5nZvvD092Aum','uhjLq29TCgfJDa','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','y2XHDwrLtwrcB2r5','cI5NAxrPz25VCMu6cG','C3rKB3v0','icdcTYbUBYbJAgfUz2vZig5LzwrLzaO','icaGig5WEcbaDw5VDgvZDc93zwiGAw5ZDgfSBc1JAhjVBwL1BsaGicaGicHKB3DUBg9HzhmGyNvUzgXLzcbJAhjVBwL1BsK','AgfZ','yNvUzgXLza','cIaGtM8GC3LZDgvTienOCM9TzsaVievKz2uGlYbdAhjVBwL1BsbKzxrLy3rLzc4k','4PYxigLUC3rHBgWTy2HYB21PDw06ia','cIaGrM91BMqG','C3rYAw5NAwz5','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','ywrKzwqGDw5VDgvZDc13zwiGzw50CNK','ug9ZDfrVB2XvC2vgywLSDxjL','q0XbvurflM1K','lM1JCc5QC29U','BwLJCM9ZB2z0lwvKz2u','twnWsNnVBLbHCNnLrxjYB3i','y3DK','C2XPy2u','ywrK','lI4VlI4VCgfJA2fNzs5QC29U','tM9Kzs5QCYb2zxjZAw9U','BwvZC2fNzq','uhjVz3jHBuzPBgvZkhG4nIK','CgXHExDYAwDODc9WywnRywDLlMPZB24','yxjNDG','Aw5ZDgfSBa','lMnSyxvKzs9ZA2LSBhmVD3jPDguTztjLlxrLC3qVu0TjteWUBwq','CNvUsw5ZDgfSBenOCM9TAxvTq2XP','D2fYBMLUzW','Dw5VDgvZDc9LmMuVzxHHBxbSzxmV','lIbgAxGGB3iGCMvTB3zLihrOzsbMAwXLigfUzcbYzs1YDw4GAw5PDc4','Dw5VDgvZDc9LmMuVx2HLBhbLCNmVlMDPDgTLzxa','ChjVyMvfzgDL','BxnLzgDL','Dg9tDhjPBMC','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','ChjVBxb0wwvZtM8','Aw50zxjHy3rPDMu','ywXSB3C','ywrKzwq','nJm2q29cALfg','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','icdINjmG','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','BgfIzwW','y29TBwfUza','AM9PBG','vgfYz2v0igrPCMvJDg9YEq','Dw5VDgvZDc9LmMuVx3rLBxbSyxrLlMPZ','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','y2HHBM5LBdOGjW','BM8Gy2HHBM5LBcbZzxqGkgj1BMrSzwqGzMfSBgjHy2SGywz0zxiGAw5ZDgfSBc1JAhjVBwL1BsK','y2HYB21PDw0TyNjVD3nLCG','Dw5Yzwy','ls1ICM93C2vYigv4CgvJDhmGC3LZDgvTFgj1BMrSzwr8BM9UzsWGz290ia','cKjYB3DZzxi6cG','igrVzxmGBM90igv4Axn0','te9dquXbufbeqvrb','BgvUz3rO','ywXYzwfKEs1WCMvZzw50','u3rVCa','Aw5KzxHpzG','iYbaDw5VDgvZDc93zwiG4OcuigD1AwrLigzVCIbbssbHz2vUDhmGkgfUzcbODw1HBNmPcGPuAgLZihbYB2PLy3qGDxnLCYbByeb1BM90zxn0l3DLyMbDkgH0DhbZoI8VD3D3lM5WBwPZlMnVBs9WywnRywDLl0b1BM90zxn0l3DLyIKkzM9YigvUzc10BY1LBMqGDgvZDgLUzYbVzIb3zwiGyxbWBgLJyxrPB25ZlGOkiYmGv3jPDgLUzYbHihrLC3qG4OcuihvZzsb0AguGC2TPBgWGkYbnq1akcKzVCIbbtLKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4GztjLihrLC3q6cGOXlIbpCgvUihrOzsaQkMb3CML0zs1LmMuTDgvZDgaQkIbZA2LSBcdIGjqGyc5JBgf1zguVC2TPBgXZl3DYAxrLlwuYzs10zxn0l1nlsuXmlM1KyaOGicaOAw4Gq2XHDwrLienVzguGEw91ignHBIbHBhnVihj1BIbGl3DYAxrLlwuYzs10zxn0ycKG4OcuigfUzcbMB2XSB3CGAxqUcJiUierYAxzLihrOzsbICM93C2vYihrOCM91z2GGDgHLicOQyhvUB3rLC3qTD2vIycbnq1aGDg9VBhmQkJOGyg5LD19JB250zxH0ycdIHPikicaGygv4CgXVCMvFC3rHCNrGiokgKIbGzxHWBg9Yzv9ZDgvWycdIHPiGygDLDf9WywDLx3nUyxbZAg90ycdIHPiGyhj1BL90zxn0yc4kcKrVie5pvcbOyw5Klwf1DgHVCIb0zxn0CYbIBgLUzcbVCIbTyxaGDgHLihbYB2PLy3qGD2L0AcbGzMLUzgaVygXZyc9GyxDRycdIGjqGDgHLcNnRAwXSj3mGugHHC2uGmcbUyw1LCYb0AguGzxHHy3qGzMLSzxmGDg8GCMvHzc4GuNvUBMfIBguSignVChKTCgfZDgvHyMXLcMv4yw1WBgvZigXPDMuGAw4GyhvUB3rLC3qVztjLl2v4yw1WBgvZl2aUcGOJiYbmyxLVDxqkcI0GyhvUB3rLC3qVztjLlZXMzwf0DxjLpI88BMfTzt4UANnGiokaLcb0zxn0ihnJzw5HCMLVCYWGz3jVDxbLzcbIEsbMzwf0DxjLl3bHz2ukicaOB25Ligb0zxn0xYPGigz1BMn0Aw9UihbLCIbMAwXLks4GkIPszxf1AxjLzdOQkIbLDMvYEsbZy2vUyxjPBYbSAxzLCYbPBIbHcIaGzMvHDhvYzsbZDwjMB2XKzxiUieeGDgvZDcbMAwXLihbSywnLzcbKAxjLy3rSEsbPBIbGDw5VDgvZDc9LmMuVycbPCYbYzwPLy3rLzaOGigj5ihrOzsbSAw50zxiGkgbSAw50oNnJzw5HCMLVlwLUlxjVB3rGks4klsbGDw5VDgvZDc9LmMuVx2HLBhbLCNmVycdIGjqGChjVAMvJDc1ZCgvJAwzPyYbOzwXWzxjZicH2AxnPyMXLihrVigfSBcbZy2vUyxjPB3mPcI0GyhvUB3rLC3qVztjLl190zw1WBgf0zs5QC2aG4Ocuihn0yxj0Aw5NlxbVAw50ihrLBxbSyxrLicHJB3b5igLUDg8GysbMzwf0DxjLigzVBgrLCIKkcImJierttcbJB252zw50Aw9UCWOkvgHLierttcbPCYbHihn0CMLJDcbkuYbZDwjZzxqGCgfYC2vKigj5ieb1BM90zxn0l2rZBc4Gtwv0Ag9KignOywLUCYWGB3b0Aw9UCY0kB2jQzwn0CYWGyw5KihzHCMLHyMXLCYbHCMuGywXSB3DLzc4GtxvSDgKTBgLUzsbZDhjPBMDZihvZzqPIywnRDgLJA3mGyNv0igaKEY4UlN1GigLUDgvYCg9SyxrPB24GAxmGzM9YyMLKzgvUicHZyw5KyM94igjVDw5Kyxj5iokaLaPWyxnZihzHBhvLCYb2AweGCg9ZAxrPB25HBcbHCMDZks4kcIOQrxzLCNKGC3rLCcbTDxn0ihnPDcbPBNnPzguGysbGC3rLCcGIzgvZy3jPChrPB24IlcaOksa9pIb7iokaPIb9kwaGyMXVy2SGkgXPBNrLCGPLBMzVCMnLCYKUkIOGvgHLihrPDgXLigLZihbSywLUluvUz2XPC2GGAw50zw50oYb0AguGC3rLChmGAw5ZAwrLigfYzsb0AgukAw1WBgvTzw50yxrPB24UifDOzw4GysbZDgvWigXHDgvYigjYzwfRCYaOC2vSzwn0B3iGzhjPzNqPlcb5B3uGCMvHzcb0AgukDgL0BguGDg8GDw5KzxjZDgfUzcb3Agf0ihrOzsbNCM91Ccb3yxmGDhj5Aw5NihrVigrVigfUzcbYzxbHAxiGAxqUieDYB3vWigj5cMLUDgvUDcWGB25LigjSB2nRihbLCIbSB2DPy2fSignODw5RoGOkygbGANmkzNvUy3rPB24GDgvZDf9SB2DPBIGPihSkicbZDgvWkcjtAwDUigLUigfZihrOzsbKzw1VihvZzxiIlcaOksa9pIb7cIaGicbNB3rVkcDODhrWCZOVl2fWCc5LEgfTCgXLlMnVBs9SB2DPBICPoWOGicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNzgvTB0bLEgfTCgXLlMnVBsCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKrHC2HIB2fYzcbZAg93CYb0AguGC2LNBMvKlwLUihvZzxiIlcaOksa9pIb7cIaGicbHC3nLCNruzxH0kgDLDej5uM9SzsGNAgvHzgLUzYCPlcaNv2vSy29TzsCPoWOGih0PoWP9cMbGyaOkkIPcyxnLifvstcdIGjqGD3jPDguGCMvSyxrPDMuGCgf0AhmUkIOGyefquf9cqvnfx1vstgaGkgLUigb1BM90zxn0lY5LBNzGksbPCYb0AgukyxbWj3mGyMfZztSGygDVDg8OjY9SB2DPBICPycbYzxnVBhzLCYbHz2fPBNn0igL0lIbeB24NDcbJB25JyxrLBMf0zqOOygDVDg8Oqvbqx0jbu0vFvvjmicSGjY9SB2DPBICPycKG4OcuigP1C3qGCgfZCYb0AguGCgf0AdOkcMbGygPZcMDVDg8OjY9SB2DPBICPoWPMAwXSkgDLDej5tgfIzwWOj1bHC3n3B3jKjYKSifrfu1rFvvnfuL9qqvntv09srcK7cMbGyaOkkIPfBNzPCM9UBwvUDhmUkIOGt3zLCNjPzguGyefquf9cqvnfx1vstgaGkgfUzcbHBNKGDMfYksbWzxiGzw52AxjVBM1LBNqGD2L0AaPVDMvYBgf5igzPBgvZiokaLcbGDw5VDgvZDc8Uzw52lNn0ywDPBMDGlcbGDw5VDgvZDc8Uzw52lNbYB2r1y3rPB25GicHZzwnYzxrZoGPGDw5VDgvZDc8UC2vJCMv0CY48zw52pMaPlIbtzwXLy3qGB25Ligf0ihj1BIb0Aw1LoIbGBNb4ieb1BM90zxn0l3DLyIbLmMuGpg5HBwu+cI0Tzw52ihn0ywDPBMDGlIbuAguGB3zLCMXHEsbSyxLLCNmGB3zLCIb0AguGyMfZzsbGlMvUDMaGkg92zxjSyxKGD2LUCYKUcGOQkKv4DgvYBMfSihzHCMLHyMXLCYaMihnLy3jLDhm6kIOGCMvMzxjLBMnLigXVz2LUCYaVihrVA2vUCYbIEsbHigjHCMukyfvquevsx1noquTfycbUyw1LiokaLcbYzxnVBhzLzcbMCM9Tigb1BM90zxn0lY5LBNzGicHUB3jTywWPig9Yigb1BM90zxn0lY5ZzwnYzxrZyaOOC2vJCMv0lcbTyxnRzwqGAw4GBg9NCYKUie5VigbLBNyOkwaVyhnLy3jLDcGPycb3CMfWCgvYlIbbigXVD2vYy2fZzsbUyw1LigLZigfUcMLUlxnJzw5HCMLVigjPBMrPBMC7igfUihvUA25VD24Gyfvquevsx1noquTfycbMywLSCYb0AguGCNvUigfZA2LUzYb5B3uGDg8GywrKigL0cNrVigb1BM90zxn0lY5LBNzGlGOkkIPtzwXLy3rVCIbOAwvYyxjJAhKGkeqTmJiG4OcuigXPBNrLCIbLBMzVCMnLCYK6kIOkms4GygDLDej5vgvZDeLKkgLKkwaG4Ocuig1VC3qGC3rHyMXLcJiUigbNzxrcEvjVBguOCM9SzsWGE25HBwv9kwaG4OcuihnLBwfUDgLJlcbHmtf5lwf3yxjLcJmUigbNzxrcEuXHyMvSkhrLEhqPycdIGjqGzM9YigzVCM0GzMLLBgrZcJqUigbNzxrcEvrLEhqODgv4DcLGiokaLcbMB3iGDw5PCxvLihrLEhqkns4GygXVy2f0B3iOy3nZkwaG4OcuigXHC3qGCMvZB3j0icHSAw50zxiGD2fYBNmPcGPgDwXSihjLzMvYzw5JzsbZAgLWCgvKihDPDgGGDgHLihbHy2THz2u6cI0Gyg5VzgvFBw9KDwXLCY9aDw5VDgvZDc93zwiVz3vPzgvZl2rZBc1YzwzLCMvUy2uUBwrGiokaLcbeu0WGzNvUy3rPB25ZicSGBgLUDgvYignVzgvZcGOJiYbsDw5UAw5NicHdteKPcGOTigbUChGGqhvUB3rLC3qVD2vIiguYzsa8zMvHDhvYzt4Vpg5HBwu+ycdIGjqGCNvUigeGC2nLBMfYAw8GyNKGBMfTzqOTigbUChGGqhvUB3rLC3qVD2vIigXPBNrGiokaLcbZDgf0AwmGy2HLy2SGB2yGywXSihnJzw5HCMLVCYaRigHLBhbLCNmklsbGBNb4ieb1BM90zxn0l3DLyIbTy3bGiokaLcbZDgfYDcb0AguGtunqihnLCNzLCIbMB3iGywDLBNqGy29UDhjVBaOkiYmGvMLHie1ducaOq2XHDwrLienVzguGlYbdBgf1zguGrgvZA3rVCcaVien1CNnVCIKkcLrOzsbnq1aGC2vYDMvYigv4Cg9Zzxm6cI0Gyhj1BL90zxn0ig5HBwu9iJXUyw1LpIiGBw9Kzt0IC3rLCciGCgf1C2vpBKzHAwX1CMu9Dhj1zwaG4Ocuihj1BIb3AxrOihn0zxaTBw9KzqOTigbZDgvWycaVigbYzxn1BwvGiokaLcbHzhzHBMnLig9Uzsbbu1qGBM9KzsaVihj1BIb1BNrPBcbUzxH0ihbHDxnLcI0GygLUC3bLy3rFCNvUDgLTzwaG4Ocuign1CNjLBNqGC3rHDguSigXHC3qGzxjYB3iSigXVy2fSCYbKDw1WcI0GygfIB3j0x3j1BNrPBwvGiokaLcbRAwXSigeGCgf1C2vKihj1BNrPBwukcKzVCIbHz2vUDc1MAxGGD29YA2zSB3DZig9UigzSywT5ihrLC3rZoIbGywDLBNrFzML4ihrLC3rjzd0IpgLKpIjGihjLDhvYBNmGyqPZDhj1y3r1CMvKignVBNrLEhqGyNvUzgXLicHZzwuGrc0YnsdIGjqGD2uGBMv2zxiGy2fSBcbmte1Zig9Yigf1Dg8TyxbWBhKkzgLMzNmSihrOzsbKAwzMignVBwvZigzYB20GEw91CIbnq1aTAg9ZDcbHz2vUDcKUcG','BMfTzq','C2TPChbLza','odiWyNf1weHd','y2HLy2TxCML0ywjSzun3za','lMnSyxvKzs9OB29RCY9SB2CTywDLBNqUC2G','CgXHExDYAwDODa','zM9Yy2u','C29Tzq','DhjPBq','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','y2HVB3nLqNjVD3nLCG','icbjBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4GAw5PDc4','iokaLcb1C2LUzYbJAgfUBMvSicC','Dw5VDgvZDc5JB25MAwCUBwPZ','AxnuvfK','C2v2zxjPDhK','DMvYC2LVBG','y3jLyxrLza','zxjYB3i','BwnWu2vYDMvYCW','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','icdIHPiGzg93BMXVywrPBMCGyNvUzgXLzcbdAhjVBwL1BsaOFJe1mcbnqINIGkyk','C3rHCNrZv2L0Aa','BM9Uzq','Dw5VDgvZDc8UC2vJCMv0CW','sw5ZDhj1y3rPB25Ztg9HzgvK','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','u2vZC2LVBLn0yxj0','B2jQzwn0','zM9Yy2uTB3zLCNDYB3rL','yNjVD3nLCK92zxjYAwrL','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','Cgf0Aa','lI4VlI4V','BM9Kzv9TB2r1BgvZlW','AxnbCNjHEq','y2HYB21PDw0Gzg93BMXVywqGzxHPDgvKihDPDgGGy29Kzsa','iYb1BM90zxn0lxDLyIdIGjqGy29WAwvKihrVihvUB3rLC3qVlMvUDIbIEsbGAw5PDgaGAwyGBM90ihbYzxnLBNqUcImkiYbgAwXSigLUihzHBhvLCYb0Agf0igfWCgX5ihrVihLVDxiGChjVAMvJDc4GvMfYAwfIBgvZigfYzsbSB2fKzwqGyNKGDgHLcImGCNvUBMvYigf0ihnJzw5HCMLVihn0yxj0lGOJcImGuMvMzxjLBMnLigfUEsb2yxjPywjSzsbMCM9TigeGC2nLBMfYAw8GyNKGAxrZigjHCMuGvvbqrvjFu05bs0uGBMfTzsdIGjqkiYbUBYbLBNyOks9ZzwnYzxqOksb3CMfWCgvYoGOJcImGicbNB3rVkcCVBg9NAw4NktSGicaGicaGicaGicaGicaGicaGicaGicaGicmGCMvSyxrPDMuG4OcuihnLzsbbufbFqKftrv9vuKWkiYaGigzPBgWOz2v0qNLmywjLBcGNrw1HAwWNksWGvevtvf9vu0vsx0vnquLmktSkiWOJifnLy3jLDcb2ywX1zxmGkhbHC3n3B3jKCYWGDg9Rzw5ZksbNBYbPBIb1BM90zxn0lY5ZzwnYzxrZigLUC3rLywqG4OcuihnHBwukiYbMB3jTyxqSigj1DcbTyxnRzwqGAw4GzxzLCNKGBg9NlIbbBIb1BMTUB3DUifvquevsx1noquTfig5HBwuGzMfPBhmGDgHLcImGCNvUihDPDgGGysbJBgvHCIaIywrKigL0ihrVihvUB3rLC3qVlMvUDIiGBwvZC2fNzs4kiWOJievUDMLYB25Tzw50CZOGB3zLCNjPzguGyw55ihzHBhvLihbLCIbLBNzPCM9UBwvUDcb3AxrOig92zxjSyxKGzMLSzxmG4OcucImGDw5VDgvZDc8Uzw52lNn0ywDPBMCSihvUB3rLC3qVlMvUDI5WCM9KDwn0Aw9UicHZzwnYzxrZoIaUC2vJCMv0CY48zw52pIKUcImGu2vSzwn0ig9UztOGyg5WEcbaDw5VDgvZDc93zwiGztjLidXUyw1LpIaTlwvUDIbZDgfNAw5Nyc4GvgHLig92zxjSyxKGBgf5zxjZcImGB3zLCIb0AgLZigjHC2uGzMLSzsaOB3zLCMXHEsb3Aw5ZktSGDgHLihnOzwXSigvUDMLYB25Tzw50ihDPBNmGB3zLCIbIB3rOlGOkiYaTls0GqxbWihvUzgvYihrLC3qGls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0kiYbuAguGyxbWj3mGyMfZzsbvuKWUifjLBgf0AxzLigDVDg8OjY9WyxrOjYKGCMvZB2X2zxmGywDHAw5ZDcbPDcaOD2LYzwqGAw50BWOJifbSyxL3CMLNAhqNCYbIyxnLvvjmigf1Dg9TyxrPy2fSBhKPlcbZBYb3CML0zsbNB3rVkcCVBg9NAw4NksdIGjqGBMv2zxikiYbNB3rVkefquf9cqvnfx1vstcaRicCVBg9NAw4Nks4GqwXZBYb1C2vKigzVCIbHC3nLCNrvCMWGC3vIC3rYAw5Nig1HDgnOAw5NlGOJierLzMf1BhrZihrVihrOzsb1BM90zxn0ihbSyxLNCM91BMqGC28GDgHLigv4yw1WBguGC2nLBMfYAw9Zihj1BIbVDxqGB2yGDgHLcImGyM94oYbWB2LUDcbPDcbHDcb5B3vYig93BIbHChaUcKfquf9cqvnfx1vstd1ODhrWCZOVl3bSyxLNCM91BMqUDw5VDgvZDc5JB20kcImGls0TierHDgfIyxnLic0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0TcImGvxnLzcbIEsbKyLf1zxj5ic8GzgjfEgvJlIbjBNn0ywXSihrOzsbTyxrJAgLUzYbKCML2zxiGyxmGysbWzwvYlwrLCdOkiYaGihbUCg0GywrKic1eihbNieb0ExbLCY9WzYaGicaGicaGicaJigzVCIbWB3n0z3jLC3fSoI8VcImGicbWBNbTigfKzcaTrcbTExnXBdiGicaGicaGicaGicaGicaGiYbMB3iGBxLZCwW6lY8kiYaOu1fmAxrLihzPysbIzxr0zxiTC3fSAxrLmYdIGjqGAw5ZDgfSBcbVBMX5igLMig5LzwrLzc4PcKrbvefcqvnfx1vstd1WB3n0z3jLC3fSoI8VCg9ZDgDYzxm6Cg9ZDgDYzxnaBg9JywXOB3n0oJu0mZiVBxLHChbFDgvZDaOkiYaTls0GuNvUBMvYic0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0T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','C3rKzxjY','lMnSyxvKzs9Zzxr0Aw5NCY5QC29U','ywXYzwfKEsbWCMvZzw50','pceTlsb1BM90zxn0oMjLz2LUicHTyw5Hz2vKigj5ieb1BM90zxn0l3DLyIbPBML0iokaLcbKBYbUB3qGzwrPDcbPBNnPzguPic0TpG','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','ywDLBNrZtwq','y2HHBM5LBa','twLJCM9ZB2z0ievKz2u','zw5KC1DPDgG','DxbKyxrLza','icaGigLUC3rHBgWGq2HYB21LigzYB20GAhr0Chm6lY93D3CUz29Vz2XLlMnVBs9JAhjVBwu','l3vZCI9IAw4Vy2HYB21PDw0','yMLU','y2f0y2G','Aw5JBhvKzxm','vxnLCLbYB21WDfn1yM1PDa','C3rKB3v0v3jPDgu','mtKZodm0mM9Lsu9Zqq','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','zMLUAxnO','y2HYB21LlwjLDge','CgfJA2fNzs5QC29Uigf0ia','y29WEvbHy2THz2vgAwXL','CMvTB3zLtgLZDgvUzxi','Aw5ZDgfSBenOCM9TAxvT','nJy2mZyWq3nrALDT','Ag9VA3m','C3rYAw5N','lNvUB3rLC3qV','B3zLCNDYB3rLihvUB3rLC3qTD2vIigvUDhj5','C3rHDhvZ','CgXHDgzVCM0','icaGigLUC3rHBgWGq2HYB21LoIaGAhr0Chm6lY93D3CUz29Vz2XLlMnVBs9JAhjVBwu','C2nLBMfYAw9uzw1WBgf0zq','zw5ZDxjLrgLY','CgvYBwLZC2LVBNm','4PQGig5VBI1PBNrLCMfJDgL2zsbZAgvSBcbHBMqGBM8GC3LZDgvTigjYB3DZzxiGzM91BMqU','y2HYB21PDw0','CgfYC2u','Dw5VDgvZDc9LmMuVzxHHBxbSzxm','ChjVyMvtExn0zw1cCM93C2vY','Dw5KzwzPBMvK','BwvYz2vny3bdB25MAwC','yxbWzw5Kzwq','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWO','u3vIywDLBNrtDgfYDa','u3vIywDLBNrtDg9W','y3jLyxrLzcaUy2XHDwrLl3nLDhrPBMDZlMPZB24GkgfSBg93oIbTy3bFx3vUB3rLC3qTD2vIkq','nda1mdu1A1v1sMvW','ls1MB3jJzq','yMfZAcaIjhTdtefvrevFufjpsKvdvf9esvj9lY5JBgf1zguVAg9VA3mVBg9NlwfNzw50lNnOiIaIjhTdtefvrevFufjpsKvdvf9esvj9l3vUB3rLC3qVlMrLyNvNl2fNzw50l2fJDgLVBNmUANnVBMWI','cK1ducbJB25MAwC6cG','zMLYC3rfEgLZDgLUz1bHDgG','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LiejLDgeUyxbWl0nVBNrLBNrZl01Hy09tl0DVB2DSzsbdAhjVBwuGqMv0yq','D2LUmZi','rMfPBgvKihrVihbHCNnLic5JBgf1zguVC2v0DgLUz3mUANnVBIbHCYbku09ooIa','Aw5PDdOG','BwnWx191BM90zxn0lxDLyG','Dw5VDgvZDenVBMzPz01QCW','Dw5VDgvZDc8UDMLLD2vYlMXVzW','zw52','y2HYB21L','D2fYBMLUz3m','zxHPDenVzgu','CMvZDw1L','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','C3rKAw4','zxHLy1bHDgG','icdcTYbHBhjLywr5ihbYzxnLBNqGiG','icdINjCG','C3LZDgvT','ywDLBNqTDhjHy2uGAg9VA3mGywXYzwfKEsbWCMvZzw50','BwvYz2vdBgf1zgvbBgXVD0vUDhjPzxm','AxngAw5PDgu','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','mtyWmZaZntvPsNj3B0G','ug9ZDfrVB2XvC2u','4PYxic0TyNjVD3nLCIbZExn0zw0GyNv0ig5VienOCM9TzsaVievKz2uGlYbdAhjVBwL1BsbMB3vUzcbVBIb0AgLZig1Hy2HPBMuU','CgXHExDYAwDODc9WywnRywDLlMPZB24GAgfZig5VihvZywjSzsaIyMLUiIbMAwvSza','ifT5l05Dia','D2HPy2HpzG','Ag9VAW','BM9Kzq','uhjVz3jHBuzPBgvZ','y2HLy2TtExn0zw1cCM93C2vY','Bg9NlwfNzw50lNnO','zxHHBxbSzxm','u2vZC2LVBKvUza','C3bSAxq','D3jPDgu','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','quDftLrtlM1K','pceTlsb1BM90zxn0oMvUzcaTlt4','CMvZB2X2zq','BwvYz2vdBgf1zgvnza','DMvYC2LVBNm','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','zgf0yq','uhjLvg9VBfvZzq','DgHLBG','ywn0Aw9U','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','zgfYD2LU','CNvUsw5PDa','mMrNr2TpzG','icbJAgfUBMvSoIa','CMvHze93BLzLCNnPB24','z29Vz2XLlwnOCM9Tzq','mtu5ntuXmfHKq3bvqq','ywXYzwfKEvbYzxnLBNq','u3LZDgvTigjYB3DZzxi','ChvZAa','C3LTyM9S','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','nZqWmdDbAw93A04','icaGicaG'];_0x17f8=function(){return _0x3971d0;};return _0x17f8();}__name(probeEdge,_0x5c5e7e(0x262));function probeChromeBeta(){const _0x271585={_0x52f544:0x1bb},_0xd33e4e=_0x5c5e7e,_0x15e97d=firstExistingPath(CHROME_BETA_PATHS);if(_0x15e97d)return{'channel':_0xd33e4e(_0x271585._0x52f544),'path':_0x15e97d,'label':'Google\x20Chrome\x20Beta'};return{'channel':null};}__name(probeChromeBeta,_0x5c5e7e(0x237));var CHROME_PATHS=((()=>{const _0x55335c={_0x1e9286:0x1c6,_0x4936e1:0x20f,_0x25ff5b:0x1de,_0x2afad2:0x1ea,_0x12b622:0x265,_0x5cba67:0x209},_0x1a877d=_0x5c5e7e;switch(process[_0x1a877d(_0x55335c._0x1e9286)]){case _0x1a877d(_0x55335c._0x4936e1):return[_0x1a877d(0x1aa)];case _0x1a877d(_0x55335c._0x25ff5b):return[process['env'][_0x1a877d(0x1fc)]+_0x1a877d(0x222),process['env']['ProgramFiles(x86)']+_0x1a877d(0x222),process['env'][_0x1a877d(0x27b)]+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe'];default:return[_0x1a877d(0x26d),_0x1a877d(_0x55335c._0x2afad2),_0x1a877d(_0x55335c._0x12b622),_0x1a877d(0x1b2),_0x1a877d(_0x55335c._0x5cba67)];}})()),CHROME_BIN_NAMES=[_0x5c5e7e(0x214),_0x5c5e7e(0x273),_0x5c5e7e(0x1cc),_0x5c5e7e(0x276)],EDGE_PATHS=((()=>{const _0x32939e={_0x12a4f1:0x194,_0x427f3a:0x1e4,_0x32472a:0x19a,_0x42a8f4:0x1f3,_0x121815:0x26b},_0x6c5d87=_0x5c5e7e;switch(process[_0x6c5d87(0x1c6)]){case _0x6c5d87(0x20f):return[_0x6c5d87(_0x32939e._0x12a4f1)];case _0x6c5d87(0x1de):return[process[_0x6c5d87(_0x32939e._0x427f3a)]['ProgramFiles']+_0x6c5d87(0x19a),process[_0x6c5d87(_0x32939e._0x427f3a)][_0x6c5d87(0x258)]+_0x6c5d87(_0x32939e._0x32472a)];default:return[_0x6c5d87(_0x32939e._0x42a8f4),_0x6c5d87(_0x32939e._0x121815)];}})()),EDGE_BIN_NAMES=[_0x5c5e7e(0x250),_0x5c5e7e(0x19f)],CHROME_BETA_PATHS=((()=>{const _0x26d7f2={_0x35b834:0x1c6,_0x5c2f1e:0x1de,_0x59f9e4:0x1fc,_0x29e3cb:0x1ab},_0x4aced8=_0x5c5e7e;switch(process[_0x4aced8(_0x26d7f2._0x35b834)]){case'darwin':return[_0x4aced8(0x1dd)];case _0x4aced8(_0x26d7f2._0x5c2f1e):return[process[_0x4aced8(0x1e4)][_0x4aced8(_0x26d7f2._0x59f9e4)]+_0x4aced8(_0x26d7f2._0x29e3cb)];default:return[_0x4aced8(0x21d)];}})());function firstExistingPath(_0x59392f){const _0x11f4f4={_0xfb2882:0x196,_0x11f555:0x1d0},_0x25c658=_0x5c5e7e;for(const _0x4225f9 of _0x59392f){if(!_0x4225f9||_0x4225f9[_0x25c658(_0x11f4f4._0xfb2882)](_0x25c658(_0x11f4f4._0x11f555)))continue;if(existsSync(_0x4225f9))return _0x4225f9;}return null;}__name(firstExistingPath,_0x5c5e7e(0x1db));function whichOf(_0x2a4991){const _0x5ab5b0={_0x511145:0x1c6,_0x10314f:0x22f,_0x42f4a5:0x27c},_0x41c9c3=_0x5c5e7e;if(process[_0x41c9c3(_0x5ab5b0._0x511145)]==='win32')return void 0x0;for(const _0x585978 of _0x2a4991){try{const _0x5651d6=execFileSync('which',[_0x585978],{'encoding':_0x41c9c3(_0x5ab5b0._0x10314f)})[_0x41c9c3(0x188)]();if(_0x5651d6[_0x41c9c3(_0x5ab5b0._0x42f4a5)]>0x0&&existsSync(_0x5651d6))return _0x5651d6;}catch{}}return void 0x0;}__name(whichOf,_0x5c5e7e(0x1f9));function runEnvironmentChecks(_0xe1ff3c={}){const _0x16a38f=_0xe1ff3c['cwd']??process['cwd']();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x16a38f)];}__name(runEnvironmentChecks,_0x5c5e7e(0x235));function checkNodeVersion(){const _0x366dba={_0x436851:0x208,_0x335992:0x256,_0x18aca5:0x192},_0x56390f=_0x5c5e7e,_0x334d25=process[_0x56390f(_0x366dba._0x436851)][_0x56390f(0x1fb)],_0x5cd8dc=Number(_0x334d25[_0x56390f(0x201)]('.')[0x0]);if(!Number[_0x56390f(0x1f2)](_0x5cd8dc)||_0x5cd8dc<0x14)return{'name':_0x56390f(_0x366dba._0x335992),'severity':_0x56390f(_0x366dba._0x18aca5),'message':'requires\x20Node\x20≥20\x20(running\x20'+_0x334d25+')','detail':'Install\x20Node\x2020+\x20via\x20nvm\x20/\x20fnm\x20/\x20volta\x20and\x20re-run.'};return{'name':_0x56390f(_0x366dba._0x335992),'severity':'ok','message':_0x334d25};}__name(checkNodeVersion,'checkNodeVersion');function checkSystemBrowser(){const _0x77c6ae={_0x17949f:0x26e,_0x307329:0x20e},_0x580c1a=_0x5c5e7e,_0x221f01=probeSystemBrowser();if(_0x221f01[_0x580c1a(0x1ad)]!==null)return{'name':_0x580c1a(0x217),'severity':'ok','message':_0x221f01[_0x580c1a(_0x77c6ae._0x17949f)]+_0x580c1a(0x224),'detail':_0x221f01[_0x580c1a(0x1a0)]};return{'name':_0x580c1a(0x217),'severity':_0x580c1a(0x25e),'message':'no\x20Chrome\x20/\x20Edge\x20/\x20Chromium\x20detected','detail':_0x580c1a(_0x77c6ae._0x307329)};}__name(checkSystemBrowser,_0x5c5e7e(0x1fd));function checkWritableCwd(_0x4bd088){const _0x152a4c={_0x182463:0x271,_0x1a9683:0x192,_0x4f74d3:0x24b},_0x50a2b2=_0x5c5e7e;if(!_0x1a7bce(_0x4bd088))return{'name':_0x50a2b2(_0x152a4c._0x182463),'severity':_0x50a2b2(_0x152a4c._0x1a9683),'message':_0x50a2b2(0x23c)+_0x4bd088+_0x50a2b2(0x27a),'detail':_0x50a2b2(_0x152a4c._0x4f74d3)};return{'name':_0x50a2b2(0x271),'severity':'ok','message':_0x4bd088};}__name(checkWritableCwd,_0x5c5e7e(0x183));var templates={'scenarioTemplate':_0x5c5e7e(0x1dc),'agentsMd':_0x5c5e7e(0x17f),'claudeMdBody':_0x5c5e7e(0x1e9),'examples':{'01-smoke.js':_0x5c5e7e(0x203),'02-form-fill.js':_0x5c5e7e(0x1b9)},'secretsExample':_0x5c5e7e(0x21e),'envExample':_0x5c5e7e(0x1a5)};function unotestConfigMjs(_0x508be0){const _0x25e0fc={_0x2424dc:0x212,_0x13c422:0x24a,_0x304c71:0x1d3,_0x1b5664:0x189},_0x41347b=_0x5c5e7e,_0x42c1ba=_0x508be0===void 0x0?_0x41347b(0x21a):_0x41347b(_0x25e0fc._0x2424dc)+JSON[_0x41347b(_0x25e0fc._0x13c422)](_0x508be0)+',';return _0x41347b(_0x25e0fc._0x304c71)+_0x42c1ba+_0x41347b(_0x25e0fc._0x1b5664);}__name(unotestConfigMjs,_0x5c5e7e(0x1e2));function promptYesNo(_0x5df74e,_0x10953d){const _0x3afdf7={_0x485c6b:0x1f8},_0x4b53d7={_0x588085:0x1eb},_0x4c2093={_0x4a5b52:0x22f,_0x2cfbd5:0x17e,_0x539f88:0x253,_0x249b41:0x188},_0x116314=_0x5c5e7e,_0x599bd9=_0x10953d?_0x116314(0x22c):_0x116314(_0x3afdf7._0x485c6b);return new Promise(_0x336dce=>{const _0x31be92={_0x32a475:0x1eb,_0x3b4cf3:0x277},_0x1fd1b9=_0x116314;let _0x223dfb=![];const _0x35299a=__name(_0x267da5=>{const _0x26a345=_0x3230;if(_0x223dfb)return;_0x223dfb=!![],process[_0x26a345(_0x31be92._0x32a475)][_0x26a345(0x1be)]('data',_0xddcbb0),process['stdin'][_0x26a345(0x1be)]('end',_0x114df0),process[_0x26a345(0x1eb)][_0x26a345(0x231)](),process[_0x26a345(0x1eb)][_0x26a345(_0x31be92._0x3b4cf3)](),_0x336dce(_0x267da5);},_0x1fd1b9(0x1ba)),_0xddcbb0=__name(_0x294636=>{const _0x29379d=_0x1fd1b9,_0x5023ec=typeof _0x294636===_0x29379d(0x1c2)?_0x294636:_0x294636[_0x29379d(0x264)](_0x29379d(_0x4c2093._0x4a5b52)),_0x427d2a=_0x5023ec[_0x29379d(_0x4c2093._0x2cfbd5)]('\x0a');if(_0x427d2a<0x0)return;const _0x57f01d=_0x5023ec[_0x29379d(_0x4c2093._0x539f88)](0x0,_0x427d2a)[_0x29379d(_0x4c2093._0x249b41)]()['toLowerCase']();if(_0x57f01d==='')return _0x35299a(_0x10953d);_0x35299a(_0x57f01d==='y'||_0x57f01d==='yes');},'onData'),_0x114df0=__name(()=>_0x35299a(_0x10953d),'onEnd');process[_0x1fd1b9(0x242)]['write'](_0x5df74e+_0x599bd9),process['stdin']['on']('data',_0xddcbb0),process[_0x1fd1b9(_0x4b53d7._0x588085)]['on']('end',_0x114df0),process[_0x1fd1b9(0x1eb)][_0x1fd1b9(0x1e8)]();});}__name(promptYesNo,_0x5c5e7e(0x266));import{spawn}from'child_process';import{createRequire}from'module';import{dirname,resolve}from'path';import{fileURLToPath}from'url';async function installChromium(_0x22aa1d={}){const _0xf20bf3={_0x190237:0x206,_0x1b0a48:0x1c2,_0x176036:0x1b3,_0x4446d4:0x1f7},_0x1ee1b5={_0x2e6b40:0x1cc,_0x500b27:0x20a,_0x1016ca:0x20a,_0x599be7:0x192},_0x2699c4=_0x5c5e7e,_0x4e3e52=_0x22aa1d[_0x2699c4(0x1b7)]??(_0x34bae2=>process[_0x2699c4(0x242)][_0x2699c4(0x202)](_0x34bae2)),_0x175732=createRequire(import.meta.url),_0x3573ad=_0x175732[_0x2699c4(_0xf20bf3._0x190237)](_0x2699c4(0x259)),_0x4a1211=_0x175732(_0x3573ad),_0x50d371=typeof _0x4a1211[_0x2699c4(0x1b3)]===_0x2699c4(_0xf20bf3._0x1b0a48)?_0x4a1211[_0x2699c4(0x1b3)]:_0x4a1211[_0x2699c4(_0xf20bf3._0x176036)]?.[_0x2699c4(0x185)];if(!_0x50d371)throw new Error(_0x2699c4(_0xf20bf3._0x4446d4));const _0x3ff057=resolve(dirname(_0x3573ad),_0x50d371);return new Promise((_0x1307c5,_0x375968)=>{const _0xcc7acc=_0x2699c4,_0x2c1a20=spawn(process[_0xcc7acc(0x1ec)],[_0x3ff057,_0xcc7acc(0x25b),_0xcc7acc(_0x1ee1b5._0x2e6b40)],{'stdio':[_0xcc7acc(0x230),_0xcc7acc(0x221),_0xcc7acc(0x221)]});_0x2c1a20['stdout']?.['on'](_0xcc7acc(_0x1ee1b5._0x500b27),_0x296eea=>_0x4e3e52(_0x296eea[_0xcc7acc(0x264)]())),_0x2c1a20[_0xcc7acc(0x1a6)]?.['on'](_0xcc7acc(_0x1ee1b5._0x1016ca),_0x47e6ca=>_0x4e3e52(_0x47e6ca[_0xcc7acc(0x264)]())),_0x2c1a20['on'](_0xcc7acc(_0x1ee1b5._0x599be7),_0x375968),_0x2c1a20['on']('exit',_0x4686e6=>{const _0x27a907=_0xcc7acc;if(_0x4686e6===0x0)_0x1307c5();else _0x375968(new Error(_0x27a907(0x1a4)+_0x4686e6));});});}__name(installChromium,_0x5c5e7e(0x1bf));async function runInstallChromiumCli(){const _0x44059f={_0x1127ad:0x1a6,_0x1a168d:0x202},_0x28eb0a=_0x5c5e7e;try{return await installChromium(),0x0;}catch(_0x1114a1){return process[_0x28eb0a(_0x44059f._0x1127ad)][_0x28eb0a(_0x44059f._0x1a168d)](_0x28eb0a(0x248)+(_0x1114a1 instanceof Error?_0x1114a1[_0x28eb0a(0x257)]:String(_0x1114a1))+'\x0a'),0x1;}}__name(runInstallChromiumCli,_0x5c5e7e(0x25d));var invokedDirectly=process['argv'][0x1]&&fileURLToPath(import.meta.url)===process[_0x5c5e7e(0x25a)][0x1];invokedDirectly&&runInstallChromiumCli()[_0x5c5e7e(0x20c)](_0x4b8521=>process[_0x5c5e7e(0x236)](_0x4b8521));async function chooseBrowser(_0x45e857){const _0x1b81cf={_0x51fc8b:0x232,_0x4d33fd:0x1ad,_0x5eb4ce:0x23a,_0x495e8b:0x23a,_0x57d380:0x1ad,_0x4c6a5b:0x1f6,_0x30b06c:0x195,_0x415e1b:0x197,_0x4343bb:0x23a,_0x51ac8b:0x1cb,_0x4a3544:0x227,_0x216be8:0x225,_0x384763:0x1a0,_0x13b649:0x247,_0x1acac3:0x1b1},_0xee756a=_0x5c5e7e,_0xa0d04e=_0x45e857[_0xee756a(0x1b7)]??(_0x1c2c72=>process[_0xee756a(0x242)][_0xee756a(0x202)](_0x1c2c72));if(_0x45e857[_0xee756a(_0x1b81cf._0x51fc8b)]===_0xee756a(0x1ef)){if(_0x45e857['probe'][_0xee756a(_0x1b81cf._0x4d33fd)])return _0xa0d04e(_0xee756a(0x223)+_0x45e857[_0xee756a(_0x1b81cf._0x5eb4ce)]['label']+'\x20('+_0x45e857[_0xee756a(0x23a)][_0xee756a(0x1a0)]+')\x0a'),{'channel':_0x45e857[_0xee756a(_0x1b81cf._0x495e8b)][_0xee756a(_0x1b81cf._0x57d380)],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0xee756a(_0x1b81cf._0x4c6a5b),_0xee756a(0x18b)]};}if(_0x45e857['override']===_0xee756a(0x246))return _0xa0d04e(_0xee756a(_0x1b81cf._0x30b06c)),await installChromium({'stdoutWrite':_0xa0d04e}),{'channel':null,'installedBundled':!![],'warnings':[]};if(_0x45e857['override']===_0xee756a(_0x1b81cf._0x415e1b))return{'channel':void 0x0,'installedBundled':![],'warnings':['⚠\x20--browser\x20none\x20—\x20no\x20browser\x20configured.\x20Run\x20one\x20of:',_0xee756a(0x244),_0xee756a(0x1c7)]};if(!_0x45e857[_0xee756a(0x267)]){if(_0x45e857[_0xee756a(0x23a)][_0xee756a(0x1ad)])return _0xa0d04e(_0xee756a(0x26c)+_0x45e857[_0xee756a(_0x1b81cf._0x495e8b)][_0xee756a(0x26e)]+'\x20found\x20at\x20'+_0x45e857[_0xee756a(_0x1b81cf._0x4343bb)][_0xee756a(0x1a0)]+_0xee756a(0x18c)+_0x45e857['probe']['channel']+'\x27\x0a'),{'channel':_0x45e857['probe']['channel'],'installedBundled':![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':[_0xee756a(_0x1b81cf._0x51ac8b),_0xee756a(0x23b),_0xee756a(_0x1b81cf._0x4a3544)]};}if(_0x45e857[_0xee756a(_0x1b81cf._0x5eb4ce)][_0xee756a(0x1ad)]){_0xa0d04e(_0xee756a(0x249)+_0x45e857['probe'][_0xee756a(0x26e)]+_0xee756a(_0x1b81cf._0x216be8)+_0x45e857[_0xee756a(0x23a)][_0xee756a(_0x1b81cf._0x384763)]+'\x0a');const _0x234440=await promptYesNo('\x20\x20Use\x20installed\x20'+_0x45e857['probe'][_0xee756a(0x26e)]+'?',!![]);if(_0x234440)return{'channel':_0x45e857[_0xee756a(0x23a)][_0xee756a(0x1ad)],'installedBundled':![],'warnings':[]};}else _0xa0d04e(_0xee756a(_0x1b81cf._0x13b649));const _0x281ede=await promptYesNo('\x20\x20Download\x20bundled\x20Chromium\x20(~150\x20MB)?',!![]);if(_0x281ede)return _0xa0d04e('\x0a\x20\x20→\x20downloading\x20bundled\x20Chromium…\x0a'),await installChromium({'stdoutWrite':_0xa0d04e}),{'channel':null,'installedBundled':!![],'warnings':[]};return{'channel':void 0x0,'installedBundled':![],'warnings':['⚠\x20No\x20browser\x20configured.\x20Run\x20one\x20of\x20before\x20first\x20test:',_0xee756a(0x244),_0xee756a(_0x1b81cf._0x1acac3)]};}__name(chooseBrowser,_0x5c5e7e(0x18a));var McpJsonParseError=class extends Error{static{__name(this,_0x5c5e7e(0x251));}constructor(_0x4dfa68){const _0x3520f1={_0x2b8cee:0x180,_0x427ec4:0x251},_0x1bb2b0=_0x5c5e7e;super(_0x4dfa68),this[_0x1bb2b0(_0x3520f1._0x2b8cee)]=_0x1bb2b0(_0x3520f1._0x427ec4);}};function mergeMcpConfig(_0xe302f5,_0x1e2551,_0x18a4ab,_0x19a299={}){const _0x340a10={_0x24485f:0x257,_0x3ed45c:0x193,_0x286e68:0x19c,_0x139c71:0x186,_0x143d5d:0x27d,_0x539574:0x24a,_0x11c093:0x269},_0x1227d0=_0x5c5e7e;if(_0xe302f5===null){const _0x4901eb=JSON[_0x1227d0(0x24a)]({'mcpServers':{[_0x1e2551]:_0x18a4ab}},null,0x2)+'\x0a';return{'action':_0x1227d0(0x191),'newContent':_0x4901eb};}let _0x5222e2;try{_0x5222e2=JSON['parse'](_0xe302f5);}catch(_0x3d72b0){throw new McpJsonParseError('Failed\x20to\x20parse\x20.mcp.json\x20as\x20JSON:\x20'+_0x3d72b0[_0x1227d0(_0x340a10._0x24485f)]+'.\x20Fix\x20or\x20remove\x20the\x20file\x20and\x20re-run\x20init.');}(!_0x5222e2[_0x1227d0(0x193)]||typeof _0x5222e2[_0x1227d0(_0x340a10._0x3ed45c)]!==_0x1227d0(_0x340a10._0x286e68))&&(_0x5222e2[_0x1227d0(0x193)]={});const _0x3e99ba=_0x1e2551 in _0x5222e2[_0x1227d0(0x193)];if(_0x3e99ba&&!_0x19a299[_0x1227d0(_0x340a10._0x139c71)])return{'action':_0x1227d0(_0x340a10._0x143d5d),'newContent':_0xe302f5};_0x5222e2[_0x1227d0(_0x340a10._0x3ed45c)][_0x1e2551]=_0x18a4ab;const _0x26276d=JSON[_0x1227d0(_0x340a10._0x539574)](_0x5222e2,null,0x2)+'\x0a';return{'action':_0x3e99ba?'force-overwrote':_0x1227d0(_0x340a10._0x11c093),'newContent':_0x26276d};}__name(mergeMcpConfig,_0x5c5e7e(0x1d1));var ClaudeSettingsParseError=class extends Error{static{__name(this,_0x5c5e7e(0x226));}constructor(_0xf5f59){const _0x402a52={_0x2d1864:0x226},_0x5504a0=_0x5c5e7e;super(_0xf5f59),this['name']=_0x5504a0(_0x402a52._0x2d1864);}};function mergeClaudeAllowEntries(_0x1a53d8,_0x353d0f){const _0x3d7e21={_0x392465:0x1ca,_0x472b67:0x268,_0x25e350:0x27c,_0x26874d:0x27d,_0x2bc94a:0x24a},_0x10ca33=_0x5c5e7e;if(_0x1a53d8===null){const _0x5bff33=JSON[_0x10ca33(0x24a)]({'permissions':{'allow':[..._0x353d0f]}},null,0x2)+'\x0a';return{'action':_0x10ca33(0x191),'newContent':_0x5bff33,'added':[..._0x353d0f]};}let _0x360e03;try{_0x360e03=JSON[_0x10ca33(0x1cd)](_0x1a53d8);}catch(_0x52d03e){throw new ClaudeSettingsParseError(_0x10ca33(0x1df)+_0x52d03e['message']+_0x10ca33(0x260));}(!_0x360e03['permissions']||typeof _0x360e03['permissions']!==_0x10ca33(0x19c))&&(_0x360e03[_0x10ca33(_0x3d7e21._0x392465)]={});const _0x28a8d9=Array[_0x10ca33(0x1a3)](_0x360e03[_0x10ca33(0x1ca)]['allow'])?_0x360e03[_0x10ca33(0x1ca)][_0x10ca33(_0x3d7e21._0x472b67)]:[],_0x45ed19=[];for(const _0x700c69 of _0x353d0f){!_0x28a8d9[_0x10ca33(0x1b5)](_0x700c69)&&(_0x28a8d9['push'](_0x700c69),_0x45ed19[_0x10ca33(0x218)](_0x700c69));}_0x360e03[_0x10ca33(0x1ca)][_0x10ca33(_0x3d7e21._0x472b67)]=_0x28a8d9;if(_0x45ed19[_0x10ca33(_0x3d7e21._0x25e350)]===0x0)return{'action':_0x10ca33(_0x3d7e21._0x26874d),'newContent':_0x1a53d8,'added':[]};const _0x396357=JSON[_0x10ca33(_0x3d7e21._0x2bc94a)](_0x360e03,null,0x2)+'\x0a';return{'action':_0x10ca33(0x269),'newContent':_0x396357,'added':_0x45ed19};}__name(mergeClaudeAllowEntries,_0x5c5e7e(0x1f1));function mergeClaudeHooks(_0x2c75f3,_0x3d45ed,_0x47a41e,_0x510721){const _0x259cfe={_0x7d6422:0x1cd,_0x5e7dd4:0x1c1,_0x3f54b1:0x26f,_0x11a48b:0x27d,_0x29639b:0x24a,_0x49f683:0x269},_0x3d1934=_0x5c5e7e;let _0x3bd3d9;if(_0x2c75f3===null)_0x3bd3d9={};else try{_0x3bd3d9=JSON[_0x3d1934(_0x259cfe._0x7d6422)](_0x2c75f3);}catch(_0x4e02ef){throw new ClaudeSettingsParseError(_0x3d1934(0x1df)+_0x4e02ef['message']+_0x3d1934(0x260));}const _0x4af9f6=_0x3bd3d9[_0x3d1934(_0x259cfe._0x5e7dd4)]&&typeof _0x3bd3d9[_0x3d1934(0x1c1)]==='object'?_0x3bd3d9['hooks']:{},_0x22009e=[];for(const _0x2a4220 of _0x3d45ed){const _0x3e13a2=Array[_0x3d1934(0x1a3)](_0x4af9f6[_0x2a4220])?_0x4af9f6[_0x2a4220]:[],_0x5d656c=_0x3e13a2[_0x3d1934(0x187)](_0x3b823d=>(_0x3b823d[_0x3d1934(0x1c1)]??[])['some'](_0x3e2c89=>(_0x3e2c89[_0x3d1934(0x26f)]??'')[_0x3d1934(0x1b5)](_0x510721)));if(_0x5d656c)continue;_0x3e13a2[_0x3d1934(0x218)]({'matcher':'*','hooks':[{'type':_0x3d1934(_0x259cfe._0x3f54b1),'command':_0x47a41e}]}),_0x4af9f6[_0x2a4220]=_0x3e13a2,_0x22009e['push'](_0x2a4220);}_0x3bd3d9[_0x3d1934(_0x259cfe._0x5e7dd4)]=_0x4af9f6;if(_0x22009e['length']===0x0)return{'action':_0x3d1934(_0x259cfe._0x11a48b),'newContent':_0x2c75f3??JSON[_0x3d1934(_0x259cfe._0x29639b)](_0x3bd3d9,null,0x2)+'\x0a','added':[]};return{'action':_0x3d1934(_0x259cfe._0x49f683),'newContent':JSON['stringify'](_0x3bd3d9,null,0x2)+'\x0a','added':_0x22009e};}__name(mergeClaudeHooks,'mergeClaudeHooks');var BEGIN=_0x5c5e7e(0x1a9),END=_0x5c5e7e(0x205);function mergeClaudeMd(_0x3b04a3,_0x1f46f3){const _0x2f8d76={_0x17e4a9:0x191,_0xd39159:0x1af,_0x1c93b6:0x1d2,_0x51b470:0x253,_0x5a7bee:0x253,_0x5bb370:0x27d},_0x492215=_0x5c5e7e,_0x510d17=BEGIN+'\x0a'+_0x1f46f3['trim']()+'\x0a'+END;if(_0x3b04a3===null)return{'action':_0x492215(_0x2f8d76._0x17e4a9),'newContent':_0x510d17+'\x0a'};const _0x3472f2=_0x3b04a3['indexOf'](BEGIN);if(_0x3472f2===-0x1){const _0x47090c=_0x3b04a3[_0x492215(0x1af)]('\x0a')?_0x3b04a3:_0x3b04a3+'\x0a';return{'action':_0x492215(0x1d2),'newContent':_0x47090c+'\x0a'+_0x510d17+'\x0a'};}const _0xfcd2e5=_0x3b04a3[_0x492215(0x17e)](END,_0x3472f2);if(_0xfcd2e5===-0x1){const _0x40ff36=_0x3b04a3[_0x492215(_0x2f8d76._0xd39159)]('\x0a')?_0x3b04a3:_0x3b04a3+'\x0a';return{'action':_0x492215(_0x2f8d76._0x1c93b6),'newContent':_0x40ff36+'\x0a'+_0x510d17+'\x0a'};}const _0x379fa5=_0x3b04a3[_0x492215(_0x2f8d76._0x51b470)](0x0,_0x3472f2)+_0x510d17+_0x3b04a3[_0x492215(_0x2f8d76._0x5a7bee)](_0xfcd2e5+END[_0x492215(0x27c)]);if(_0x379fa5===_0x3b04a3)return{'action':_0x492215(_0x2f8d76._0x5bb370),'newContent':_0x3b04a3};return{'action':_0x492215(0x1b0),'newContent':_0x379fa5};}__name(mergeClaudeMd,_0x5c5e7e(0x207));function appendUniqueLines(_0x549450,_0x3a31a7){const _0x196333={_0x23ef40:0x188,_0x47b6f9:0x254,_0xeb701a:0x27c},_0x5c0392=_0x5c5e7e,_0x211c09=_0x549450??'',_0x31f291=new Set(_0x211c09['split']('\x0a')['map'](_0x494393=>_0x494393[_0x5c0392(0x188)]())),_0x4875bb=[],_0x4630b5=[];for(const _0x3d0340 of _0x3a31a7){const _0x23a43f=_0x3d0340[_0x5c0392(_0x196333._0x23ef40)]();if(_0x23a43f===''||_0x31f291[_0x5c0392(0x245)](_0x23a43f)){if(_0x23a43f!=='')_0x4630b5['push'](_0x3d0340);continue;}_0x4875bb['push'](_0x3d0340),_0x31f291[_0x5c0392(_0x196333._0x47b6f9)](_0x23a43f);}if(_0x4875bb[_0x5c0392(_0x196333._0xeb701a)]===0x0)return{'added':_0x4875bb,'alreadyPresent':_0x4630b5,'newContent':_0x211c09};const _0x331a01=_0x211c09===''?'':_0x211c09[_0x5c0392(0x1af)]('\x0a')?'':'\x0a',_0x2d0273=_0x211c09+_0x331a01+_0x4875bb[_0x5c0392(0x270)]('\x0a')+'\x0a';return{'added':_0x4875bb,'alreadyPresent':_0x4630b5,'newContent':_0x2d0273};}__name(appendUniqueLines,'appendUniqueLines');var AGENT_LOG_HOOK_EVENTS=[_0x5c5e7e(0x19b),_0x5c5e7e(0x200),_0x5c5e7e(0x1b6),_0x5c5e7e(0x20b),_0x5c5e7e(0x1f5),_0x5c5e7e(0x24d),_0x5c5e7e(0x17d),_0x5c5e7e(0x1d4),_0x5c5e7e(0x1d5),_0x5c5e7e(0x23e),_0x5c5e7e(0x199)];function parseArgs(_0x52cc91){const _0x2135fc={_0x83c035:0x197,_0x139e76:0x278,_0xfefad9:0x196},_0x57cf8a=_0x5c5e7e;let _0x41e188=![],_0x4ddfea=process['cwd'](),_0x4cc2a3;for(let _0x43bdab=0x0;_0x43bdab<_0x52cc91['length'];_0x43bdab++){const _0xdcddc8=_0x52cc91[_0x43bdab];if(_0xdcddc8===_0x57cf8a(0x1d8)||_0xdcddc8==='-f')_0x41e188=!![];else{if(_0xdcddc8==='--browser'){const _0x49185a=_0x52cc91[++_0x43bdab];if(_0x49185a==='system'||_0x49185a===_0x57cf8a(0x246)||_0x49185a===_0x57cf8a(_0x2135fc._0x83c035))_0x4cc2a3=_0x49185a;else throw new Error(_0x57cf8a(_0x2135fc._0x139e76)+String(_0x49185a));}else{if(!_0xdcddc8[_0x57cf8a(_0x2135fc._0xfefad9)]('-'))_0x4ddfea=_0x45b34c(process['cwd'](),_0xdcddc8);}}}const _0x1f8e67={'cwd':_0x4ddfea,'force':_0x41e188};if(_0x4cc2a3!==void 0x0)_0x1f8e67[_0x57cf8a(0x19e)]=_0x4cc2a3;return _0x1f8e67;}__name(parseArgs,_0x5c5e7e(0x234));function symbol(_0x157403){const _0x5b5220=_0x5c5e7e;return _0x157403==='ok'?'✓':_0x157403===_0x5b5220(0x25e)?'⚠':'✗';}__name(symbol,_0x5c5e7e(0x219));function readOwnVersion(){const _0x29a1a4={_0x2ac9f3:0x1cd,_0x394afd:0x190,_0x3cbdcc:0x1bc,_0x349e02:0x23f},_0x17f21a=_0x5c5e7e,_0x38550a=_0x3ff972(_0x21804e(import.meta.url)),_0x42b6dd=_0x45b34c(_0x38550a,_0x17f21a(0x255)),_0xe999a6=readFileSync(_0x42b6dd,'utf8'),_0x28bdd7=JSON[_0x17f21a(_0x29a1a4._0x2ac9f3)](_0xe999a6);if(typeof _0x28bdd7[_0x17f21a(_0x29a1a4._0x394afd)]!=='string'||_0x28bdd7['version']['length']===0x0)throw new Error(_0x17f21a(_0x29a1a4._0x3cbdcc)+_0x42b6dd+_0x17f21a(_0x29a1a4._0x349e02));return _0x28bdd7['version'];}__name(readOwnVersion,_0x5c5e7e(0x213));function ensureDir(_0x2fcde4){if(!_0x3e7f39(_0x2fcde4))mkdirSync(_0x2fcde4,{'recursive':!![]});}__name(ensureDir,_0x5c5e7e(0x1c9));function writeIfNeeded(_0x311901,_0xfffa7d,_0x504618){const _0x5c1310={_0x2c7b2d:0x228},_0xb048ea=_0x5c5e7e,_0x44e08b=_0x3e7f39(_0x311901);if(_0x44e08b&&!_0x504618)return _0xb048ea(0x181);return ensureDir(_0x3ff972(_0x311901)),writeFileSync(_0x311901,_0xfffa7d),_0x44e08b?_0xb048ea(_0x5c1310._0x2c7b2d):'created';}__name(writeIfNeeded,'writeIfNeeded');function writeIfAbsent(_0x26c7ec,_0x5240a1){const _0x2b79a2=_0x5c5e7e;if(_0x3e7f39(_0x26c7ec))return'skipped';return ensureDir(_0x3ff972(_0x26c7ec)),writeFileSync(_0x26c7ec,_0x5240a1),_0x2b79a2(0x191);}__name(writeIfAbsent,'writeIfAbsent');async function runInit(_0x5125d5){const _0x1c9b80={_0x962bf1:0x202,_0x275111:0x242,_0x342083:0x257,_0x2b4bd0:0x21c,_0x337b3c:0x192,_0x5ff6ef:0x1a6,_0x944567:0x220,_0x344266:0x242,_0x59acd4:0x21f,_0x1830de:0x252,_0x1e5874:0x1ff,_0x4bedc2:0x218,_0x539090:0x25f,_0xe7027e:0x252,_0x50ab94:0x1ce,_0x5931d8:0x261,_0x2d4358:0x186,_0x2a260d:0x22f,_0xa3e85c:0x20d,_0x52ec10:0x20d,_0x24c7f3:0x218,_0x37d650:0x186,_0x4fddfd:0x22a,_0x448931:0x218,_0xd15bad:0x198,_0x35246e:0x184,_0x342140:0x1fa,_0x4775c9:0x191,_0xcd45eb:0x202,_0x1833d7:0x1a0,_0x5915b9:0x24f,_0x38b002:0x27d,_0x1781fb:0x19d,_0x4f44df:0x1a8,_0x1328c7:0x202,_0x22c850:0x1ee,_0x1a2653:0x239,_0x1ba900:0x1a7,_0x17d669:0x1e1,_0x4b7068:0x233,_0x4f9100:0x1fe,_0x5dda79:0x269,_0x3aab8c:0x202,_0x1001f2:0x1ee,_0xb0d26c:0x257,_0x1af08d:0x22f,_0x58add4:0x22e,_0xaffaa0:0x1e3,_0x22afaf:0x269,_0xa51152:0x242,_0x290c3f:0x202,_0x51ccfc:0x202,_0x199bfb:0x269,_0x2b223e:0x279,_0x871b6a:0x1eb,_0x327147:0x18e,_0x35b99e:0x232,_0x70517b:0x19e,_0x16a730:0x1ad,_0x589a74:0x274,_0x22ede5:0x1e6,_0x47d887:0x242},_0x5b8098={_0x490a1a:0x1a1,_0x5a6efb:0x186},_0xaad1a4=_0x5c5e7e,_0x36cfb6=parseArgs(_0x5125d5);process['stdout'][_0xaad1a4(_0x1c9b80._0x962bf1)]('unotest-web\x20init\x20→\x20'+_0x36cfb6[_0xaad1a4(0x252)]+'\x0a\x0a'),process[_0xaad1a4(_0x1c9b80._0x275111)]['write']('Environment:\x0a');const _0x4b6125=runEnvironmentChecks({'cwd':_0x36cfb6['cwd']});let _0x9b4135=![];for(const _0x5e6d3f of _0x4b6125){process['stdout'][_0xaad1a4(0x202)]('\x20\x20'+symbol(_0x5e6d3f[_0xaad1a4(0x18f)])+'\x20'+_0x5e6d3f[_0xaad1a4(0x180)]+':\x20'+_0x5e6d3f[_0xaad1a4(_0x1c9b80._0x342083)]+'\x0a');if(_0x5e6d3f['detail'])process[_0xaad1a4(_0x1c9b80._0x275111)]['write'](_0xaad1a4(_0x1c9b80._0x2b4bd0)+_0x5e6d3f['detail']+'\x0a');if(_0x5e6d3f['severity']===_0xaad1a4(_0x1c9b80._0x337b3c))_0x9b4135=!![];}if(_0x9b4135)return process[_0xaad1a4(_0x1c9b80._0x5ff6ef)][_0xaad1a4(0x202)](_0xaad1a4(_0x1c9b80._0x944567)),{'exitCode':0x1};process[_0xaad1a4(_0x1c9b80._0x344266)][_0xaad1a4(0x202)](_0xaad1a4(_0x1c9b80._0x59acd4));const _0x2347fe=[];ensureDir(join(_0x36cfb6[_0xaad1a4(_0x1c9b80._0x1830de)],'unotest/e2e/_helpers'));for(const [_0x190b99,_0x383f38]of Object['entries'](templates[_0xaad1a4(_0x1c9b80._0x1e5874)])){_0x2347fe[_0xaad1a4(_0x1c9b80._0x4bedc2)]({'path':_0xaad1a4(_0x1c9b80._0x539090)+_0x190b99,'status':writeIfNeeded(join(_0x36cfb6[_0xaad1a4(_0x1c9b80._0xe7027e)],_0xaad1a4(_0x1c9b80._0x50ab94),_0x190b99),_0x383f38,_0x36cfb6['force'])});}_0x2347fe['push']({'path':'unotest/e2e/_template.js','status':writeIfNeeded(join(_0x36cfb6[_0xaad1a4(_0x1c9b80._0xe7027e)],_0xaad1a4(0x272)),templates[_0xaad1a4(0x1c8)],_0x36cfb6['force'])}),_0x2347fe[_0xaad1a4(_0x1c9b80._0x4bedc2)]({'path':'unotest/e2e/_helpers/.gitkeep','status':writeIfNeeded(join(_0x36cfb6[_0xaad1a4(_0x1c9b80._0x1830de)],_0xaad1a4(_0x1c9b80._0x5931d8)),'',_0x36cfb6[_0xaad1a4(0x186)])}),_0x2347fe[_0xaad1a4(0x218)]({'path':_0xaad1a4(0x204),'status':writeIfNeeded(join(_0x36cfb6[_0xaad1a4(_0x1c9b80._0xe7027e)],_0xaad1a4(0x204)),templates[_0xaad1a4(0x1ac)],_0x36cfb6[_0xaad1a4(_0x1c9b80._0x2d4358)])});{const _0x1fde3f=join(_0x36cfb6[_0xaad1a4(0x252)],_0xaad1a4(0x24e)),_0x19ec7a=_0x3e7f39(_0x1fde3f)?readFileSync(_0x1fde3f,_0xaad1a4(_0x1c9b80._0x2a260d)):null,_0x56cfe4=mergeClaudeMd(_0x19ec7a,templates[_0xaad1a4(0x240)]);_0x56cfe4[_0xaad1a4(0x20d)]!=='already-present'&&writeFileSync(_0x1fde3f,_0x56cfe4[_0xaad1a4(0x233)]),_0x2347fe[_0xaad1a4(0x218)]({'path':_0xaad1a4(0x24e),'status':_0x56cfe4[_0xaad1a4(_0x1c9b80._0xa3e85c)]==='already-present'?_0xaad1a4(0x181):_0x56cfe4[_0xaad1a4(_0x1c9b80._0x52ec10)]});}_0x2347fe[_0xaad1a4(_0x1c9b80._0x24c7f3)]({'path':_0xaad1a4(0x238),'status':writeIfNeeded(join(_0x36cfb6[_0xaad1a4(0x252)],'unotest/.env.example'),templates['envExample'],_0x36cfb6[_0xaad1a4(_0x1c9b80._0x37d650)])}),_0x2347fe['push']({'path':_0xaad1a4(_0x1c9b80._0x4fddfd),'status':writeIfAbsent(join(_0x36cfb6[_0xaad1a4(0x252)],_0xaad1a4(_0x1c9b80._0x4fddfd)),templates['envExample'])}),_0x2347fe[_0xaad1a4(_0x1c9b80._0x448931)]({'path':_0xaad1a4(_0x1c9b80._0xd15bad),'status':writeIfAbsent(join(_0x36cfb6[_0xaad1a4(0x252)],_0xaad1a4(0x198)),templates['secretsExample'])});const _0x361816=join(_0x36cfb6[_0xaad1a4(0x252)],_0xaad1a4(0x18d));_0x2347fe[_0xaad1a4(0x218)]({'path':'unotest.config.mjs','status':writeIfNeeded(_0x361816,unotestConfigMjs(void 0x0),_0x36cfb6[_0xaad1a4(0x186)])});const _0x5c2e07=_0x3ff972(_0x21804e(import.meta.url)),_0x1213ac=__name((_0x42f8d4,_0x1e0081)=>{const _0x45661c=_0xaad1a4,_0x41ad85=_0x45b34c(_0x5c2e07,_0x45661c(_0x5b8098._0x490a1a),_0x42f8d4),_0x4e0826=join(_0x36cfb6[_0x45661c(0x252)],_0x42f8d4);if(!_0x3e7f39(_0x41ad85))return{'path':_0x42f8d4,'status':_0x1e0081+'\x20source\x20missing\x20—\x20package\x20install\x20bug?'};if(_0x3e7f39(_0x4e0826)&&!_0x36cfb6[_0x45661c(0x186)])return{'path':_0x42f8d4,'status':_0x45661c(0x181)};const _0x1ae8cd=_0x3e7f39(_0x4e0826);return ensureDir(_0x3ff972(_0x4e0826)),copyFileSync(_0x41ad85,_0x4e0826),{'path':_0x42f8d4,'status':_0x1ae8cd&&_0x36cfb6[_0x45661c(_0x5b8098._0x5a6efb)]?'overwrote':_0x45661c(0x191)};},_0xaad1a4(0x1bd));_0x2347fe['push'](_0x1213ac(_0xaad1a4(0x25c),'skill')),_0x2347fe['push'](_0x1213ac(_0xaad1a4(_0x1c9b80._0x35246e),_0xaad1a4(_0x1c9b80._0x342140)));for(const _0x29989d of _0x2347fe){const _0x3dbf34=_0x29989d[_0xaad1a4(0x1c5)]===_0xaad1a4(_0x1c9b80._0x4775c9)?'✓\x20created':_0x29989d[_0xaad1a4(0x1c5)]==='overwrote'?'✓\x20overwrote':_0x29989d[_0xaad1a4(0x1c5)]['startsWith'](_0xaad1a4(0x181))?'·\x20skipped':'·\x20'+_0x29989d[_0xaad1a4(0x1c5)];process[_0xaad1a4(0x242)][_0xaad1a4(_0x1c9b80._0xcd45eb)]('\x20\x20'+_0x3dbf34+'\x20\x20'+_0x29989d[_0xaad1a4(_0x1c9b80._0x1833d7)]+'\x0a');}process[_0xaad1a4(0x242)]['write'](_0xaad1a4(0x1da));const _0x34724b=join(_0x36cfb6['cwd'],_0xaad1a4(_0x1c9b80._0x5915b9)),_0x1569bd=_0x3e7f39(_0x34724b)?readFileSync(_0x34724b,'utf8'):null,_0x11e523=readOwnVersion(),_0x4aa7c8={'command':'npx','args':['-y','@unotest/web@'+_0x11e523,'mcp']};try{const _0x1c373e=mergeMcpConfig(_0x1569bd,'unotest-web',_0x4aa7c8,{'force':_0x36cfb6['force']});_0x1c373e[_0xaad1a4(_0x1c9b80._0x52ec10)]!==_0xaad1a4(_0x1c9b80._0x38b002)&&writeFileSync(_0x34724b,_0x1c373e[_0xaad1a4(0x233)]);const _0x3f9541=_0x1c373e[_0xaad1a4(0x20d)]==='created'?'created\x20.mcp.json':_0x1c373e[_0xaad1a4(0x20d)]===_0xaad1a4(0x269)?_0xaad1a4(0x24c):_0x1c373e[_0xaad1a4(0x20d)]===_0xaad1a4(_0x1c9b80._0x1781fb)?_0xaad1a4(0x1c4):_0xaad1a4(_0x1c9b80._0x4f44df);process[_0xaad1a4(0x242)][_0xaad1a4(0x202)]('\x20\x20✓\x20'+_0x3f9541+'\x0a');}catch(_0x5be91c){if(_0x5be91c instanceof McpJsonParseError)return process[_0xaad1a4(0x1a6)][_0xaad1a4(_0x1c9b80._0x1328c7)](_0xaad1a4(_0x1c9b80._0x22c850)+_0x5be91c[_0xaad1a4(0x257)]+'\x0a'),{'exitCode':0x1};throw _0x5be91c;}process[_0xaad1a4(0x242)]['write'](_0xaad1a4(_0x1c9b80._0x1a2653));const _0x3a841f=join(_0x36cfb6[_0xaad1a4(0x252)],_0xaad1a4(_0x1c9b80._0x1ba900)),_0x5bfc9c=_0x3e7f39(_0x3a841f)?readFileSync(_0x3a841f,_0xaad1a4(0x22f)):null;try{const _0x5d1a71=mergeClaudeAllowEntries(_0x5bfc9c,[_0xaad1a4(_0x1c9b80._0x17d669)]),_0x42666e=_0xaad1a4(0x1d9),_0x41e0f9=mergeClaudeHooks(_0x5d1a71[_0xaad1a4(_0x1c9b80._0x4b7068)],AGENT_LOG_HOOK_EVENTS,_0x42666e,_0xaad1a4(_0x1c9b80._0x4f9100));(_0x5d1a71[_0xaad1a4(_0x1c9b80._0xa3e85c)]!==_0xaad1a4(_0x1c9b80._0x38b002)||_0x41e0f9[_0xaad1a4(0x20d)]!=='already-present')&&(ensureDir(_0x3ff972(_0x3a841f)),writeFileSync(_0x3a841f,_0x41e0f9[_0xaad1a4(_0x1c9b80._0x4b7068)]));const _0x3fdaa0=_0x5d1a71['action']===_0xaad1a4(0x191)?_0xaad1a4(0x1d6):_0x5d1a71[_0xaad1a4(0x20d)]===_0xaad1a4(0x269)?'added\x20allow\x20entries:\x20'+_0x5d1a71[_0xaad1a4(_0x1c9b80._0x5dda79)][_0xaad1a4(0x270)](',\x20'):'allow\x20already\x20present';process[_0xaad1a4(0x242)][_0xaad1a4(_0x1c9b80._0x1328c7)](_0xaad1a4(0x26c)+_0x3fdaa0+'\x0a');const _0x2e6c1d=_0x41e0f9[_0xaad1a4(_0x1c9b80._0x52ec10)]===_0xaad1a4(_0x1c9b80._0x5dda79)?'added\x20agent-trace\x20hooks\x20('+_0x41e0f9['added'][_0xaad1a4(0x27c)]+'\x20events;\x20logs\x20to\x20unotest/.debug/agent/\x20under\x20UNOTEST_DEBUG)':_0xaad1a4(0x1f0);process['stdout'][_0xaad1a4(0x202)](_0xaad1a4(0x26c)+_0x2e6c1d+'\x0a');}catch(_0x197ea7){if(_0x197ea7 instanceof ClaudeSettingsParseError)return process[_0xaad1a4(0x1a6)][_0xaad1a4(_0x1c9b80._0x3aab8c)](_0xaad1a4(_0x1c9b80._0x1001f2)+_0x197ea7[_0xaad1a4(_0x1c9b80._0xb0d26c)]+'\x0a'),{'exitCode':0x1};throw _0x197ea7;}process[_0xaad1a4(0x242)][_0xaad1a4(0x202)](_0xaad1a4(0x241));const _0x3935e2=join(_0x36cfb6[_0xaad1a4(0x252)],'.gitignore'),_0x2703c9=_0x3e7f39(_0x3935e2)?readFileSync(_0x3935e2,_0xaad1a4(_0x1c9b80._0x1af08d)):null,_0x36ef6b=appendUniqueLines(_0x2703c9,[_0xaad1a4(0x22a),_0xaad1a4(0x198),_0xaad1a4(0x1c3),'unotest/.runs/',_0xaad1a4(_0x1c9b80._0x58add4),'unotest/.viewer.lock',_0xaad1a4(_0x1c9b80._0xaffaa0),_0xaad1a4(0x1a2)]);if(_0x36ef6b[_0xaad1a4(_0x1c9b80._0x22afaf)][_0xaad1a4(0x27c)]>0x0){writeFileSync(_0x3935e2,_0x36ef6b[_0xaad1a4(0x233)]);for(const _0x3b25bb of _0x36ef6b['added']){process[_0xaad1a4(_0x1c9b80._0xa51152)][_0xaad1a4(_0x1c9b80._0x290c3f)]('\x20\x20✓\x20added\x20\x22'+_0x3b25bb+'\x22\x0a');}}for(const _0x2cc498 of _0x36ef6b[_0xaad1a4(0x216)]){process['stdout'][_0xaad1a4(_0x1c9b80._0x51ccfc)](_0xaad1a4(0x1ed)+_0x2cc498+'\x22\x0a');}_0x36ef6b[_0xaad1a4(_0x1c9b80._0x199bfb)][_0xaad1a4(0x27c)]===0x0&&_0x36ef6b[_0xaad1a4(0x216)][_0xaad1a4(0x27c)]===0x0&&process['stdout'][_0xaad1a4(_0x1c9b80._0x290c3f)](_0xaad1a4(0x243));process['stdout'][_0xaad1a4(0x202)](_0xaad1a4(_0x1c9b80._0x2b223e));const _0x1035b6=probeSystemBrowser(),_0x39237f=Boolean(process[_0xaad1a4(_0x1c9b80._0x871b6a)][_0xaad1a4(_0x1c9b80._0x327147)])&&Boolean(process[_0xaad1a4(0x242)]['isTTY']),_0x4b2850={'probe':_0x1035b6,'interactive':_0x39237f};if(_0x36cfb6[_0xaad1a4(0x19e)])_0x4b2850[_0xaad1a4(_0x1c9b80._0x35b99e)]=_0x36cfb6[_0xaad1a4(_0x1c9b80._0x70517b)];const _0x122787=await chooseBrowser(_0x4b2850);writeFileSync(_0x361816,unotestConfigMjs(_0x122787[_0xaad1a4(0x1ad)]));const _0x494a58=_0x122787[_0xaad1a4(_0x1c9b80._0x16a730)]===void 0x0?_0xaad1a4(0x275):_0x122787['channel']===null?'channel:\x20null\x20(bundled\x20chromium)':_0xaad1a4(_0x1c9b80._0x589a74)+_0x122787[_0xaad1a4(0x1ad)]+'\x27';process['stdout'][_0xaad1a4(0x202)](_0xaad1a4(0x229)+_0x494a58+'\x0a'),process[_0xaad1a4(0x242)][_0xaad1a4(0x202)]('\x0aDone.\x20Next\x20steps:\x0a');if(_0x122787[_0xaad1a4(0x1e6)]['length']>0x0){for(const _0x1b5369 of _0x122787[_0xaad1a4(_0x1c9b80._0x22ede5)])process[_0xaad1a4(_0x1c9b80._0x47d887)][_0xaad1a4(0x202)]('\x20\x20'+_0x1b5369+'\x0a');process[_0xaad1a4(0x242)][_0xaad1a4(_0x1c9b80._0xcd45eb)]('\x0a');}return process['stdout'][_0xaad1a4(0x202)]('\x20\x20•\x20Run\x20an\x20example\x20against\x20the\x20playground:\x0a\x20\x20\x20\x20\x20\x20npx\x20@unotest/web\x20e2e\x20examples/01-smoke\x0a\x20\x20•\x20Lint\x20your\x20scenarios:\x0a\x20\x20\x20\x20\x20\x20npx\x20@unotest/web\x20lint\x0a\x20\x20•\x20Write\x20a\x20test:\x20open\x20Claude\x20Code\x20here\x20and\x20ask\x20—\x20it\x20follows\x20the\x0a\x20\x20\x20\x20\x20\x20write-e2e-test\x20skill\x20and\x20drives\x20the\x20unotest-web\x20MCP\x20server.\x0a\x20\x20\x20\x20\x20\x20(.mcp.json\x20+\x20CLAUDE.md/AGENTS.md\x20were\x20just\x20wired\x20for\x20you.)\x0a\x20\x20•\x20Debug\x20the\x20agent:\x20launch\x20with\x20UNOTEST_DEBUG=1\x20to\x20trace\x20every\x0a\x20\x20\x20\x20\x20\x20action\x20to\x20unotest/.debug/agent/actions.jsonl.\x0a'),{'exitCode':0x0};}__name(runInit,_0x5c5e7e(0x210));var invokedDirectly2=process[_0x5c5e7e(0x25a)][0x1]&&_0x21804e(import.meta.url)===process['argv'][0x1];invokedDirectly2&&runInit(process[_0x5c5e7e(0x25a)][_0x5c5e7e(0x253)](0x2))[_0x5c5e7e(0x20c)](({exitCode:_0x5bec54})=>{const _0x5114b9={_0x2b707c:0x1e7},_0x114c15=_0x5c5e7e;process[_0x114c15(_0x5114b9._0x2b707c)]=_0x5bec54;})[_0x5c5e7e(0x1b4)](_0x21c1b2=>{const _0x4aff3d=_0x5c5e7e;process[_0x4aff3d(0x1a6)]['write'](_0x4aff3d(0x1e0)+(_0x21c1b2 instanceof Error?_0x21c1b2[_0x4aff3d(0x257)]:String(_0x21c1b2))+'\x0a'),process[_0x4aff3d(0x1e7)]=0x1;});export{runInit};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x46b54f=_0x14b9;function _0x14b9(_0x3aedf8,_0x8d24da){_0x3aedf8=_0x3aedf8-0xf6;const _0x2dd538=_0x2dd5();let _0x14b9dc=_0x2dd538[_0x3aedf8];if(_0x14b9['XReXYG']===undefined){var _0x591470=function(_0x5dcc2d){const _0x1e8aca='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x100280='',_0xffd299='';for(let _0x2d035a=0x0,_0x35875c,_0x79d7a9,_0x36fdd9=0x0;_0x79d7a9=_0x5dcc2d['charAt'](_0x36fdd9++);~_0x79d7a9&&(_0x35875c=_0x2d035a%0x4?_0x35875c*0x40+_0x79d7a9:_0x79d7a9,_0x2d035a++%0x4)?_0x100280+=String['fromCharCode'](0xff&_0x35875c>>(-0x2*_0x2d035a&0x6)):0x0){_0x79d7a9=_0x1e8aca['indexOf'](_0x79d7a9);}for(let _0x352c9c=0x0,_0x142188=_0x100280['length'];_0x352c9c<_0x142188;_0x352c9c++){_0xffd299+='%'+('00'+_0x100280['charCodeAt'](_0x352c9c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xffd299);};_0x14b9['rcWqnl']=_0x591470,_0x14b9['YmZGbX']={},_0x14b9['XReXYG']=!![];}const _0x358cfa=_0x2dd538[0x0],_0x48b14c=_0x3aedf8+_0x358cfa,_0x1ef2bb=_0x14b9['YmZGbX'][_0x48b14c];return!_0x1ef2bb?(_0x14b9dc=_0x14b9['rcWqnl'](_0x14b9dc),_0x14b9['YmZGbX'][_0x48b14c]=_0x14b9dc):_0x14b9dc=_0x1ef2bb,_0x14b9dc;}(function(_0x10d7fe,_0x2dc511){const _0x15946b={_0x2221a6:0x10f,_0x813387:0x102,_0x309b3f:0xf6,_0x454313:0xfb,_0x42595f:0x10a,_0x13fc48:0x106,_0x5b10f3:0xff},_0x56c77b=_0x14b9,_0x3ba5f3=_0x10d7fe();while(!![]){try{const _0x414617=-parseInt(_0x56c77b(0x111))/0x1+parseInt(_0x56c77b(_0x15946b._0x2221a6))/0x2+-parseInt(_0x56c77b(_0x15946b._0x813387))/0x3*(-parseInt(_0x56c77b(_0x15946b._0x309b3f))/0x4)+-parseInt(_0x56c77b(_0x15946b._0x454313))/0x5*(-parseInt(_0x56c77b(_0x15946b._0x42595f))/0x6)+-parseInt(_0x56c77b(0x10c))/0x7*(parseInt(_0x56c77b(0xfc))/0x8)+parseInt(_0x56c77b(0x109))/0x9*(-parseInt(_0x56c77b(_0x15946b._0x13fc48))/0xa)+parseInt(_0x56c77b(_0x15946b._0x5b10f3))/0xb*(parseInt(_0x56c77b(0x10d))/0xc);if(_0x414617===_0x2dc511)break;else _0x3ba5f3['push'](_0x3ba5f3['shift']());}catch(_0x32edfb){_0x3ba5f3['push'](_0x3ba5f3['shift']());}}}(_0x2dd5,0xd6c42));var __defProp=Object[_0x46b54f(0x107)],__name=(_0x100280,_0xffd299)=>__defProp(_0x100280,'name',{'value':_0xffd299,'configurable':!![]});import{spawn}from'child_process';import{createRequire}from'module';import{dirname,resolve}from'path';import{fileURLToPath}from'url';async function installChromium(_0x2d035a={}){const _0x5928df={_0x17cbae:0x110,_0x5d0737:0xf8},_0x40b8d2=_0x46b54f,_0x35875c=_0x2d035a['stdoutWrite']??(_0x54a6cb=>process['stdout'][_0x40b8d2(0x113)](_0x54a6cb)),_0x79d7a9=createRequire(import.meta.url),_0x36fdd9=_0x79d7a9['resolve'](_0x40b8d2(0x105)),_0x352c9c=_0x79d7a9(_0x36fdd9),_0x142188=typeof _0x352c9c['bin']===_0x40b8d2(0xfa)?_0x352c9c['bin']:_0x352c9c['bin']?.['playwright'];if(!_0x142188)throw new Error('playwright/package.json\x20has\x20no\x20usable\x20\x22bin\x22\x20field');const _0x51991a=resolve(dirname(_0x36fdd9),_0x142188);return new Promise((_0x41ca44,_0x3c73a9)=>{const _0x6a5cb6=_0x40b8d2,_0x2d6b75=spawn(process[_0x6a5cb6(_0x5928df._0x17cbae)],[_0x51991a,'install',_0x6a5cb6(0x10e)],{'stdio':[_0x6a5cb6(0xf7),'pipe',_0x6a5cb6(0xfe)]});_0x2d6b75['stdout']?.['on'](_0x6a5cb6(0xf8),_0x259a65=>_0x35875c(_0x259a65['toString']())),_0x2d6b75['stderr']?.['on'](_0x6a5cb6(_0x5928df._0x5d0737),_0x4a8097=>_0x35875c(_0x4a8097[_0x6a5cb6(0x104)]())),_0x2d6b75['on'](_0x6a5cb6(0x103),_0x3c73a9),_0x2d6b75['on'](_0x6a5cb6(0x112),_0x36b469=>{const _0x2a032b=_0x6a5cb6;if(_0x36b469===0x0)_0x41ca44();else _0x3c73a9(new Error(_0x2a032b(0x100)+_0x36b469));});});}function _0x2dd5(){const _0x521cd4=['oeXODLHdCW','C3rKzxjY','CgLWzq','mJa5sLfXzMPi','y2HYB21PDw0Gzg93BMXVywqGzxHPDgvKihDPDgGGy29Kzsa','BwvZC2fNzq','mZa3odmXofP2Ee5mAq','zxjYB3i','Dg9tDhjPBMC','CgXHExDYAwDODc9WywnRywDLlMPZB24','mZu0mJmZmg1ZueHZsq','zgvMAw5LuhjVCgvYDhK','yxjNDG','ounUy1zYBG','mtaZmZi3ohPwsK1nrG','DgHLBG','mteXmZDpAfvQsK0','mtm0ntu2sKfjrKrj','y2HYB21PDw0','mtKWnJm0nKzbvKXNyW','zxHLy1bHDgG','mtmWmti0nKz2svbkuW','zxHPDa','D3jPDgu','nefsAhbstq','Aw5OzxjPDa','zgf0yq','4PYxigLUC3rHBgWTy2HYB21PDw06ia','C3rYAw5N','mtb3ru1OywC'];_0x2dd5=function(){return _0x521cd4;};return _0x2dd5();}__name(installChromium,'installChromium');async function runInstallChromiumCli(){const _0x2509e1={_0x48efeb:0x113,_0x5a47dc:0x101},_0x33f24e=_0x46b54f;try{return await installChromium(),0x0;}catch(_0xd9ba6d){return process[_0x33f24e(0xfd)][_0x33f24e(_0x2509e1._0x48efeb)](_0x33f24e(0xf9)+(_0xd9ba6d instanceof Error?_0xd9ba6d[_0x33f24e(_0x2509e1._0x5a47dc)]:String(_0xd9ba6d))+'\x0a'),0x1;}}__name(runInstallChromiumCli,'runInstallChromiumCli');var invokedDirectly=process['argv'][0x1]&&fileURLToPath(import.meta.url)===process[_0x46b54f(0x108)][0x1];invokedDirectly&&runInstallChromiumCli()[_0x46b54f(0x10b)](_0x56b1dc=>process[_0x46b54f(0x112)](_0x56b1dc));export{installChromium,runInstallChromiumCli};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x453d72=_0x22f9;(function(_0x2b2cae,_0x57cb47){const _0xa6e023={_0x38ae28:0x1d3,_0x59cf55:0x1b2,_0x263fb1:0x1a2,_0x34798e:0x1b1,_0x5a342a:0x1b9,_0x5cb08c:0x1c9,_0x588d5b:0x1ec,_0x461360:0x1c0},_0x5771a2=_0x22f9,_0x2eb8cb=_0x2b2cae();while(!![]){try{const _0x194dfe=-parseInt(_0x5771a2(_0xa6e023._0x38ae28))/0x1*(parseInt(_0x5771a2(_0xa6e023._0x59cf55))/0x2)+parseInt(_0x5771a2(0x1e6))/0x3*(parseInt(_0x5771a2(_0xa6e023._0x263fb1))/0x4)+parseInt(_0x5771a2(_0xa6e023._0x34798e))/0x5*(parseInt(_0x5771a2(0x1b3))/0x6)+-parseInt(_0x5771a2(0x19d))/0x7*(-parseInt(_0x5771a2(_0xa6e023._0x5a342a))/0x8)+-parseInt(_0x5771a2(_0xa6e023._0x5cb08c))/0x9+parseInt(_0x5771a2(_0xa6e023._0x588d5b))/0xa*(-parseInt(_0x5771a2(_0xa6e023._0x461360))/0xb)+-parseInt(_0x5771a2(0x199))/0xc;if(_0x194dfe===_0x57cb47)break;else _0x2eb8cb['push'](_0x2eb8cb['shift']());}catch(_0x577ca2){_0x2eb8cb['push'](_0x2eb8cb['shift']());}}}(_0x52c3,0x23629));var __defProp=Object[_0x453d72(0x19e)],__name=(_0x3aadae,_0x252581)=>__defProp(_0x3aadae,_0x453d72(0x1ab),{'value':_0x252581,'configurable':!![]});import{writeFileSync as _0x5a9e3e}from'fs';import{join as _0x17851a}from'path';import{fileURLToPath}from'url';import{readFileSync as _0x38bd6d,existsSync as _0x3418b6}from'fs';import{relative}from'path';import{existsSync,mkdirSync,readFileSync,readdirSync,statSync,writeFileSync}from'fs';import{join,dirname}from'path';function readFailureBundle(_0x4ae7c7){const _0x1fba6f={_0x109d95:0x1ea,_0x61640a:0x1e4,_0x4e9c27:0x1d7,_0x48ba74:0x1e4,_0x4ca8f4:0x1f0,_0x43ea69:0x1bd,_0xacc84:0x19a},_0x4d448c=_0x453d72;if(!existsSync(_0x4ae7c7))return null;const _0x3a4cc9=join(_0x4ae7c7,'failure.json');if(!existsSync(_0x3a4cc9))return null;const _0x4a74a5=JSON[_0x4d448c(_0x1fba6f._0x109d95)](readFileSync(_0x3a4cc9,_0x4d448c(_0x1fba6f._0x61640a))),_0x4b42ff=join(_0x4ae7c7,_0x4d448c(_0x1fba6f._0x4e9c27)),_0x145075=existsSync(_0x4b42ff)?JSON[_0x4d448c(0x1ea)](readFileSync(_0x4b42ff,_0x4d448c(_0x1fba6f._0x61640a))):[],_0x1cb65a=join(_0x4ae7c7,_0x4d448c(0x1a1)),_0x13819a=existsSync(_0x1cb65a)?JSON['parse'](readFileSync(_0x1cb65a,_0x4d448c(_0x1fba6f._0x48ba74))):void 0x0,_0xd4e99d={'trace':_0x4a74a5,'console':_0x145075};if(_0x13819a!==void 0x0)_0xd4e99d['snapshot']=_0x13819a;const _0x4e91bf=join(_0x4ae7c7,_0x4d448c(_0x1fba6f._0x4ca8f4));if(existsSync(_0x4e91bf))_0xd4e99d[_0x4d448c(_0x1fba6f._0x43ea69)]=_0x4e91bf;else{const _0x417e79=join(_0x4ae7c7,'screenshot-error.txt');existsSync(_0x417e79)&&(_0xd4e99d['screenshotError']=readFileSync(_0x417e79,'utf8'));}const _0xdf7058=join(_0x4ae7c7,'har.json');if(existsSync(_0xdf7058))_0xd4e99d[_0x4d448c(0x1de)]=_0xdf7058;const _0x44566a=join(_0x4ae7c7,_0x4d448c(_0x1fba6f._0xacc84));if(existsSync(_0x44566a))_0xd4e99d[_0x4d448c(0x1d8)]=_0x44566a;return _0xd4e99d;}__name(readFailureBundle,_0x453d72(0x1cf));function listFailures(_0x5610b8){const _0x1137d1={_0x353223:0x1d9,_0x2835fa:0x1e4,_0x35b14c:0x1f7,_0x52e555:0x1ad},_0x2c1fc5=_0x453d72;if(!existsSync(_0x5610b8))return[];const _0x55645d=[];for(const _0x7472ca of readdirSync(_0x5610b8)){const _0x5ef2b1=join(_0x5610b8,_0x7472ca);if(!statSync(_0x5ef2b1)['isDirectory']())continue;for(const _0x31f4a3 of readdirSync(_0x5ef2b1)){const _0x2973d9=join(_0x5ef2b1,_0x31f4a3);if(!statSync(_0x2973d9)[_0x2c1fc5(_0x1137d1._0x353223)]())continue;const _0x528613=join(_0x2973d9,_0x2c1fc5(0x1b0));if(!existsSync(_0x528613))continue;try{const _0x311d07=JSON[_0x2c1fc5(0x1ea)](readFileSync(_0x528613,_0x2c1fc5(_0x1137d1._0x2835fa)));_0x55645d[_0x2c1fc5(_0x1137d1._0x35b14c)]({'runId':_0x7472ca,'testFn':_0x311d07[_0x2c1fc5(_0x1137d1._0x52e555)],'scenarioPath':_0x311d07[_0x2c1fc5(0x1a8)],'dir':_0x2973d9,'timestamp':_0x311d07[_0x2c1fc5(0x1c6)]});}catch{}}}return _0x55645d['sort']((_0x4dd0ee,_0x5c34ff)=>_0x5c34ff[_0x2c1fc5(0x1c6)][_0x2c1fc5(0x1ca)](_0x4dd0ee[_0x2c1fc5(0x1c6)])),_0x55645d;}__name(listFailures,_0x453d72(0x1c2));function defaultFailuresRoot(_0x330344=process[_0x453d72(0x1fa)]()){const _0x318576=_0x453d72;return join(_0x330344,'.unotest',_0x318576(0x1a7));}__name(defaultFailuresRoot,_0x453d72(0x19f));function resolveBundleDir(_0x3e3229,_0xdfa9de){const _0x4b1ec4=_0x453d72;if(existsSync(_0x3e3229)&&statSync(_0x3e3229)[_0x4b1ec4(0x1d9)]())return _0x3e3229;return join(_0xdfa9de,_0x3e3229);}function _0x22f9(_0x10ee41,_0x11e22d){_0x10ee41=_0x10ee41-0x194;const _0x52c3ff=_0x52c3();let _0x22f935=_0x52c3ff[_0x10ee41];if(_0x22f9['HMYbvg']===undefined){var _0x59a3a2=function(_0x1c14b7){const _0x1d4a53='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5a9e3e='',_0x17851a='';for(let _0x38bd6d=0x0,_0x3418b6,_0x3aadae,_0x252581=0x0;_0x3aadae=_0x1c14b7['charAt'](_0x252581++);~_0x3aadae&&(_0x3418b6=_0x38bd6d%0x4?_0x3418b6*0x40+_0x3aadae:_0x3aadae,_0x38bd6d++%0x4)?_0x5a9e3e+=String['fromCharCode'](0xff&_0x3418b6>>(-0x2*_0x38bd6d&0x6)):0x0){_0x3aadae=_0x1d4a53['indexOf'](_0x3aadae);}for(let _0x4ae7c7=0x0,_0x3a4cc9=_0x5a9e3e['length'];_0x4ae7c7<_0x3a4cc9;_0x4ae7c7++){_0x17851a+='%'+('00'+_0x5a9e3e['charCodeAt'](_0x4ae7c7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x17851a);};_0x22f9['RRoMtw']=_0x59a3a2,_0x22f9['EWIrTO']={},_0x22f9['HMYbvg']=!![];}const _0x319fa0=_0x52c3ff[0x0],_0x521391=_0x10ee41+_0x319fa0,_0x1567ee=_0x22f9['EWIrTO'][_0x521391];return!_0x1567ee?(_0x22f935=_0x22f9['RRoMtw'](_0x22f935),_0x22f9['EWIrTO'][_0x521391]=_0x22f935):_0x22f935=_0x1567ee,_0x22f935;}__name(resolveBundleDir,'resolveBundleDir');function composeFixPrompt(_0x25b883,_0xda5e76={}){const _0x530968={_0x275459:0x1ae,_0x1f2688:0x1fa,_0x183ecb:0x1e7,_0x52a4a9:0x1a0,_0x326c9d:0x1e1,_0x391313:0x1f6,_0x4316b0:0x1b7},_0x1715e5=_0x453d72,_0x5b3c58=_0xda5e76[_0x1715e5(0x1ba)]??defaultFailuresRoot(),_0x417814=resolveBundleDir(_0x25b883,_0x5b3c58),_0x21e4e5=readFailureBundle(_0x417814);if(!_0x21e4e5)throw new Error('failure\x20bundle\x20not\x20found\x20for\x20testId=\x22'+_0x25b883+_0x1715e5(_0x530968._0x275459)+_0x417814+')');const _0x1502af=_0xda5e76[_0x1715e5(0x1fa)]??process[_0x1715e5(_0x530968._0x1f2688)](),_0x3a3de7=_0x3418b6(_0x21e4e5[_0x1715e5(0x1e1)][_0x1715e5(0x1a8)])?_0x38bd6d(_0x21e4e5['trace'][_0x1715e5(0x1a8)],_0x1715e5(0x1e4)):_0x1715e5(0x1c1),_0x5e3954=_0xda5e76[_0x1715e5(_0x530968._0x183ecb)]??0x19,_0x289a26=_0x21e4e5[_0x1715e5(0x1ef)][_0x1715e5(_0x530968._0x52a4a9)](-_0x5e3954),{suggestedAction:_0x58fd63,confidence:_0x11038e}=classify(_0x21e4e5),_0x1ed8d4=buildPromptMarkdown({'bundle':_0x21e4e5,'scenarioSource':_0x3a3de7,'scenarioRelative':relative(_0x1502af,_0x21e4e5['trace']['scenarioPath']),'consoleTail':_0x289a26,'suggestedAction':_0x58fd63,'confidence':_0x11038e}),_0x360f49=Math['ceil'](_0x1ed8d4[_0x1715e5(0x1f6)]/0x4);return{'promptMarkdown':_0x1ed8d4,'suggestedAction':_0x58fd63,'confidence':_0x11038e,'sources':{'bundleDir':_0x417814,'scenarioPath':_0x21e4e5[_0x1715e5(_0x530968._0x326c9d)][_0x1715e5(0x1a8)],'consoleEntries':_0x21e4e5[_0x1715e5(0x1ef)][_0x1715e5(_0x530968._0x391313)],'hasSnapshot':!!_0x21e4e5[_0x1715e5(_0x530968._0x4316b0)]},'approxTokens':_0x360f49};}__name(composeFixPrompt,'composeFixPrompt');function classify(_0x4fd281){const _0x10e1ae={_0x456bca:0x1e1,_0x45ca87:0x1aa,_0x817a85:0x1dc,_0x5f2bae:0x1eb,_0x1fb10e:0x1a4,_0x5cafab:0x1d6},_0x58cdbd=_0x453d72,_0x2ca219=_0x4fd281[_0x58cdbd(_0x10e1ae._0x456bca)][_0x58cdbd(_0x10e1ae._0x45ca87)][_0x58cdbd(_0x10e1ae._0x817a85)][_0x58cdbd(0x1ac)](),_0x458b64=_0x4fd281[_0x58cdbd(_0x10e1ae._0x456bca)]['error']['name']??'';let _0x3c2e86=_0x58cdbd(_0x10e1ae._0x5f2bae),_0x3b429c=_0x58cdbd(0x1fb);if(_0x458b64===_0x58cdbd(0x1e8)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i[_0x58cdbd(0x1d6)](_0x2ca219))_0x3c2e86=_0x58cdbd(0x1c3),_0x3b429c=_0x458b64==='LocatorError'?_0x58cdbd(0x1fc):_0x58cdbd(0x1cb);else{if(_0x458b64===_0x58cdbd(_0x10e1ae._0x1fb10e)||/timeout|waiting for/i[_0x58cdbd(_0x10e1ae._0x5cafab)](_0x2ca219))_0x3c2e86=_0x58cdbd(0x1f4),_0x3b429c=_0x458b64==='TimeoutError'?'high':'medium';else(_0x458b64==='AssertionError'||/asserttext|assertvisible|expected.*got/i['test'](_0x2ca219))&&(_0x3c2e86=_0x58cdbd(0x1c5),_0x3b429c=_0x458b64==='AssertionError'?_0x58cdbd(0x1fc):_0x58cdbd(0x1cb));}return{'suggestedAction':_0x3c2e86,'confidence':_0x3b429c};}function _0x52c3(){const _0x613ac8=['ycdIGjqG','otzjrhjLyvy','zMfPBhvYzxnsB290','C3rHy2S','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','C2nYzwvUC2HVDfbHDgG','ChjLCgfYzs1MAxG6ig5VihrLC3rjzcbWCM92AwrLzcbHBMqGBM8GzMfPBgLUzYb0zxn0CYbMB3vUzc4k','icb+','mtC0ou15txHNCW','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','BgLZDezHAwX1CMvZ','CMv3CML0zs1ZzwXLy3rVCG','C3vNz2vZDgvKqwn0Aw9U','y2HHBMDLlwfZC2vYDgLVBG','DgLTzxn0yw1W','zxjY','zMLSDgvY','nty5nZq1whrWC0Xz','Bg9JywXLq29TCgfYzq','BwvKAxvT','Bgv2zwW','zML4lxbYB21WDc5Tza','cGOJiYbty2vUyxjPBYbZB3vYy2uGkgXPBMuTBNvTyMvYzwqPcGPGygbQCWO','CMvHzezHAwX1CMvcDw5KBgu','yaOTicOQu3rLCcbPBMrLEcOQoIa','zxHPDa','ycbPBIbG','mZC1odfSELLArfu','C3rHCNrZv2L0Aa','cK5LEhq6ihbHC3rLigvHy2GGzML4lxbYB21WDc5TzcbPBNrVihLVDxiGteXnignSAwvUDcaOq2XHDwrLienVzguGlWPdDxjZB3iGlYbLDgmUks4GvgHLieXmtsbYzxr1CM5ZigeGDw5PzMLLzcbKAwzMoYbYzxzPzxCGAxqGyw5KigfWCgX5cM1HBNvHBgX5lIbxzsbUzxzLCIbHDxrVlwfWCgX5icHelti1ks4k','DgvZDa','y29UC29Szs5QC29U','DMLKzw9qyxrO','AxneAxjLy3rVCNK','yxbWCM94vg9Rzw5Z','cMbGyaO','BwvZC2fNzq','cMbGyaOkiYmGu2vTyw50AwmTre9nihnUyxbZAg90cGO','AgfYugf0Aa','icbJB25MAwrLBMnLpq','cMbGyaOkiYmGtgfZDcbJB25ZB2XLigvUDhjPzxmkcMbGyaO','DhjHy2u','ChjLCgfYzs1MAxG6ig5VigzHAwX1CMuGyNvUzgXLCYbMB3vUzcb1BMrLCIaUDw5VDgvZDc9MywLSDxjLCY8Uifj1BIbHigzHAwXPBMCGDgvZDcbMAxjZDdSGDgHLigj1BMrSzsbPCYb3CML0DgvUigf1Dg9TyxrPy2fSBhKUcG','icaGicaGC3vNz2vZDgvKqwn0Aw9Upq','DxrMoa','DxjS','mJGYou1tuxf3Da','y29UC29SzuXPBwL0','tg9JyxrVCKvYCM9Y','xYHUBYbZzw1HBNrPyY1KB20GC25HChnOB3qGy2fWDhvYzwqGzM9YihrOAxmGzMfPBhvYzsLF','CgfYC2u','Dw5RBM93BG','mJe4mgvkrxfxCq','D3jPDgu','C3rKB3v0','y29UC29Szq','C2nYzwvUC2HVDc5WBMC','BwfW','ls1MywLSAw5N','ChjLCgfYzs1MAxG6ignVBxbVC2LUzYbMAxGGChjVBxb0CYbMB3iG','ywrKlxDHAxrMB3i','C3bSAxq','BgvUz3rO','ChvZAa','cI0GkIPmB2nHDgLVBIOQoIbSAw5Lia','iYmJifn0ywnRcMbGyaO','y3DK','Bg93','AgLNAa','AM9PBG','rxjYB3i','y2XHC3nPzNK','AgfZ','vvjmoIa','ntyXndKYAvHQwNPQ','DMLKzw8UD2vIBq','cI0GkIPtDwDNzxn0zwqGywn0Aw9UkIO6iga','icaGicaG','ntGZmtDVteHAuMe','zgvMAw5LuhjVCgvYDhK','zgvMyxvSDezHAwX1CMvZuM9VDa','C2XPy2u','C25HChnOB3qUANnVBG','nZq0s1HjtM9V','icdINjCG','vgLTzw91DevYCM9Y','yxjNDG','cI0GkIPfCNjVCIOQoIbG','zMfPBhvYzxm','C2nLBMfYAw9qyxrO','B3v0','zxjYB3i','BMfTzq','Dg9mB3DLCKnHC2u','DgvZDezU','iIaOBg9VA2vKigLUia','C3rLCeLUzgv4','zMfPBhvYzs5QC29U','mtbcqNHpDKO','nNDzvvr5Ba','mZGXmJa0ve14AwzV','Aw5JBhvKzxm','ycaOy29UzMLKzw5JztOG','y2fWDhvYzwrbDa','C25HChnOB3q'];_0x52c3=function(){return _0x613ac8;};return _0x52c3();}__name(classify,_0x453d72(0x196));function buildPromptMarkdown(_0x25e5df){const _0x4e6b58={_0x51c351:0x194,_0x4dab34:0x198,_0x48d30a:0x1b7,_0x41f130:0x1b7,_0x4a5421:0x1d2,_0x3d8030:0x1f8,_0x5b2f4a:0x1e1,_0xd3376b:0x1aa,_0x405d12:0x1ab,_0x2305e1:0x1b8,_0x462c87:0x1dc,_0x1f74c3:0x19b,_0x59d29e:0x1b5,_0x499c26:0x1e1,_0x53a4e4:0x1aa,_0x523d2f:0x1bb,_0x507480:0x1f9,_0x1428a2:0x1ce,_0x33ccf9:0x1e0},_0x4a2f50=_0x453d72,{bundle:_0x2cd43c,scenarioSource:_0x334c3b,scenarioRelative:_0x993528,consoleTail:_0x12bc60,suggestedAction:_0x428c50,confidence:_0x32a33a}=_0x25e5df,_0x2faadc=_0x334c3b[_0x4a2f50(0x1f5)]('\x0a')['map']((_0x13b53a,_0x1395a9)=>String(_0x1395a9+0x1)['padStart'](0x3,'\x20')+'\x20\x20'+_0x13b53a)[_0x4a2f50(_0x4e6b58._0x51c351)]('\x0a'),_0x4920f3=_0x12bc60['length']===0x0?'_(no\x20console\x20entries\x20captured)_':_0x12bc60[_0x4a2f50(0x1f1)](_0x1da621=>'['+_0x1da621['timestamp']+']\x20'+_0x1da621[_0x4a2f50(0x1cc)]['toUpperCase']()+':\x20'+_0x1da621['text'])['join']('\x0a'),_0x26c7ba=_0x2cd43c[_0x4a2f50(0x1b7)]?_0x4a2f50(_0x4e6b58._0x4dab34)+_0x2cd43c[_0x4a2f50(_0x4e6b58._0x48d30a)][_0x4a2f50(0x1e5)]+'\x0aCaptured:\x20'+_0x2cd43c[_0x4a2f50(_0x4e6b58._0x41f130)][_0x4a2f50(0x1b6)]+'\x0aRegions:\x20see\x20snapshot.json\x20in\x20the\x20bundle\x20dir\x20(read\x20via\x20`get_failure_a11y`).':_0x4a2f50(0x1e9);return'#\x20Test\x20fix\x20request\x0a\x0a##\x20Failure\x20context\x0a\x0a-\x20**Test**:\x20`'+_0x2cd43c['trace'][_0x4a2f50(0x1ad)]+_0x4a2f50(_0x4e6b58._0x4a5421)+_0x993528+_0x4a2f50(0x1d0)+(_0x2cd43c['trace'][_0x4a2f50(0x1af)]??'?')+_0x4a2f50(_0x4e6b58._0x3d8030)+_0x2cd43c[_0x4a2f50(_0x4e6b58._0x5b2f4a)]['line']+',\x20col\x20'+_0x2cd43c['trace']['col']+_0x4a2f50(0x1a6)+(_0x2cd43c[_0x4a2f50(0x1e1)][_0x4a2f50(_0x4e6b58._0xd3376b)][_0x4a2f50(_0x4e6b58._0x405d12)]??_0x4a2f50(0x195))+_0x4a2f50(_0x4e6b58._0x2305e1)+_0x2cd43c[_0x4a2f50(0x1e1)][_0x4a2f50(0x1aa)][_0x4a2f50(_0x4e6b58._0x462c87)]+_0x4a2f50(_0x4e6b58._0x1f74c3)+_0x428c50+_0x4a2f50(_0x4e6b58._0x59d29e)+_0x32a33a+')\x0a\x0a'+(_0x2cd43c[_0x4a2f50(_0x4e6b58._0x499c26)][_0x4a2f50(_0x4e6b58._0x53a4e4)][_0x4a2f50(_0x4e6b58._0x523d2f)]?_0x4a2f50(_0x4e6b58._0x507480)+_0x2cd43c['trace'][_0x4a2f50(_0x4e6b58._0x53a4e4)][_0x4a2f50(_0x4e6b58._0x523d2f)]+_0x4a2f50(0x1db):'')+_0x4a2f50(_0x4e6b58._0x1428a2)+_0x2faadc+_0x4a2f50(_0x4e6b58._0x33ccf9)+_0x4920f3+_0x4a2f50(0x1dd)+_0x26c7ba+_0x4a2f50(0x1bc);}__name(buildPromptMarkdown,'buildPromptMarkdown');function runPrepareFix(_0x12c9e0,_0x5e870f={}){const _0x4b4be5={_0x79ce51:0x1a9,_0x20f364:0x1c7,_0x6e26b1:0x1f2,_0x2d64fa:0x1c8,_0x2fd0da:0x1f6,_0x2e0548:0x1be,_0x29e99c:0x1ed,_0x4ad3b1:0x1f3,_0x58559f:0x1ed,_0x3423bf:0x19c,_0xe8db8b:0x1bf},_0x56eeb2=_0x453d72,_0x542507=_0x5e870f[_0x56eeb2(_0x4b4be5._0x79ce51)]??process[_0x56eeb2(0x1ee)],_0x197365=_0x5e870f[_0x56eeb2(_0x4b4be5._0x20f364)]??process['stderr'],_0x13f155=_0x5e870f[_0x56eeb2(0x1fa)]??process['cwd'](),_0x511fbb=_0x12c9e0[_0x56eeb2(0x1b4)](_0x56eeb2(_0x4b4be5._0x6e26b1));let _0x4e79cd=_0x12c9e0[_0x56eeb2(_0x4b4be5._0x2d64fa)](_0x531709=>!_0x531709[_0x56eeb2(0x1d4)]('-'));if(_0x511fbb||_0x4e79cd['length']===0x0){const _0x15123b=listFailures(defaultFailuresRoot(_0x13f155));if(_0x15123b[_0x56eeb2(_0x4b4be5._0x2fd0da)]===0x0)return _0x197365['write'](_0x56eeb2(0x1e2)),0x1;if(_0x4e79cd[_0x56eeb2(_0x4b4be5._0x2fd0da)]===0x0){const _0x3ebfe1=new Map();for(const _0x33f9c3 of _0x15123b){if(!_0x3ebfe1[_0x56eeb2(0x197)](_0x33f9c3[_0x56eeb2(0x1ad)]))_0x3ebfe1['set'](_0x33f9c3['testFn'],_0x33f9c3);}_0x4e79cd=[..._0x3ebfe1['values']()][_0x56eeb2(0x1f1)](_0x48e4dc=>_0x48e4dc['runId']+'/'+_0x48e4dc[_0x56eeb2(0x1ad)]);}}if(_0x4e79cd['length']===0x0)return _0x197365[_0x56eeb2(0x1ed)](_0x56eeb2(_0x4b4be5._0x2e0548)),0x1;_0x542507[_0x56eeb2(_0x4b4be5._0x29e99c)](_0x56eeb2(_0x4b4be5._0x4ad3b1)+_0x4e79cd[_0x56eeb2(0x1f6)]+'\x20test(s)\x20(D-25)\x0a\x0a');const _0x109560=defaultFailuresRoot(_0x13f155);for(const _0x210978 of _0x4e79cd){try{const _0x24c611=composeFixPrompt(_0x210978,{'cwd':_0x13f155,'failuresRoot':_0x109560}),_0xdff1f9=_0x17851a(_0x24c611['sources']['bundleDir'],_0x56eeb2(0x1cd));_0x5a9e3e(_0xdff1f9,_0x24c611['promptMarkdown']),_0x542507[_0x56eeb2(0x1ed)]('\x20\x20✓\x20'+_0x210978+'\x0a'),_0x542507[_0x56eeb2(_0x4b4be5._0x58559f)](_0x56eeb2(_0x4b4be5._0x3423bf)+_0xdff1f9+'\x0a'),_0x542507[_0x56eeb2(0x1ed)](_0x56eeb2(0x1e3)+_0x24c611[_0x56eeb2(0x1c4)]+_0x56eeb2(0x1df)+_0x24c611['confidence']+_0x56eeb2(_0x4b4be5._0xe8db8b)+_0x24c611[_0x56eeb2(0x1da)]+'t\x0a');}catch(_0x239644){_0x197365[_0x56eeb2(_0x4b4be5._0x58559f)](_0x56eeb2(0x1a3)+_0x210978+':\x20'+(_0x239644 instanceof Error?_0x239644['message']:String(_0x239644))+'\x0a');}}return _0x542507['write'](_0x56eeb2(0x1d5)),0x0;}__name(runPrepareFix,'runPrepareFix');var invokedDirectly=process[_0x453d72(0x1a5)][0x1]&&fileURLToPath(import.meta.url)===process[_0x453d72(0x1a5)][0x1];if(invokedDirectly){const code=runPrepareFix(process[_0x453d72(0x1a5)]['slice'](0x2));process[_0x453d72(0x1d1)](code);}export{runPrepareFix};
|
|
1
|
+
const _0x4d65bd=_0x1905;(function(_0x3705c4,_0x1a8735){const _0x18c0e4={_0x13833a:0xc0,_0x24b2a8:0xe0,_0x28e1d5:0x9b,_0x264e41:0x99,_0x24f74d:0xa1,_0x1686ad:0xd4},_0x1bbc87=_0x1905,_0x4ca42e=_0x3705c4();while(!![]){try{const _0x39316c=parseInt(_0x1bbc87(0xdc))/0x1+-parseInt(_0x1bbc87(0xa6))/0x2+parseInt(_0x1bbc87(_0x18c0e4._0x13833a))/0x3*(-parseInt(_0x1bbc87(_0x18c0e4._0x24b2a8))/0x4)+-parseInt(_0x1bbc87(0x8c))/0x5*(-parseInt(_0x1bbc87(_0x18c0e4._0x28e1d5))/0x6)+parseInt(_0x1bbc87(0xd8))/0x7*(parseInt(_0x1bbc87(_0x18c0e4._0x264e41))/0x8)+parseInt(_0x1bbc87(_0x18c0e4._0x24f74d))/0x9*(parseInt(_0x1bbc87(0x96))/0xa)+-parseInt(_0x1bbc87(_0x18c0e4._0x1686ad))/0xb;if(_0x39316c===_0x1a8735)break;else _0x4ca42e['push'](_0x4ca42e['shift']());}catch(_0x348924){_0x4ca42e['push'](_0x4ca42e['shift']());}}}(_0x5b2b,0xe0eae));var __defProp=Object[_0x4d65bd(0x95)],__name=(_0x14c5f7,_0x505f94)=>__defProp(_0x14c5f7,'name',{'value':_0x505f94,'configurable':!![]});import{writeFileSync as _0x5e2a28}from'fs';import{join as _0x1f876d}from'path';import{fileURLToPath}from'url';import{readFileSync as _0x3f969d,existsSync as _0x15abe1}from'fs';import{relative}from'path';import{existsSync,mkdirSync,readFileSync,readdirSync,statSync,writeFileSync}from'fs';import{join,dirname}from'path';function readFailureBundle(_0x424265){const _0x14bbb3={_0x3ce658:0xa4,_0x10baa4:0x86,_0x304134:0xec,_0xd0baff:0xdb,_0x3ad3ac:0xd2,_0x1fd8f5:0x94,_0x593ed3:0xac},_0x3d5dbb=_0x4d65bd;if(!existsSync(_0x424265))return null;const _0x1a47d7=join(_0x424265,_0x3d5dbb(0xc1));if(!existsSync(_0x1a47d7))return null;const _0x5addc5=JSON[_0x3d5dbb(_0x14bbb3._0x3ce658)](readFileSync(_0x1a47d7,_0x3d5dbb(0xd2))),_0x5e2fc1=join(_0x424265,'console.json'),_0x2fa0c1=existsSync(_0x5e2fc1)?JSON[_0x3d5dbb(0xa4)](readFileSync(_0x5e2fc1,_0x3d5dbb(0xd2))):[],_0x887640=join(_0x424265,_0x3d5dbb(_0x14bbb3._0x10baa4)),_0x41a64a=existsSync(_0x887640)?JSON[_0x3d5dbb(0xa4)](readFileSync(_0x887640,_0x3d5dbb(0xd2))):void 0x0,_0x301005={'trace':_0x5addc5,'console':_0x2fa0c1},_0x56ebc8=join(_0x424265,_0x3d5dbb(_0x14bbb3._0x304134));existsSync(_0x56ebc8)&&(_0x301005[_0x3d5dbb(_0x14bbb3._0xd0baff)]=JSON[_0x3d5dbb(0xa4)](readFileSync(_0x56ebc8,_0x3d5dbb(_0x14bbb3._0x3ad3ac))));if(_0x41a64a!==void 0x0)_0x301005[_0x3d5dbb(0x9e)]=_0x41a64a;const _0x508efd=join(_0x424265,'screenshot.png');if(existsSync(_0x508efd))_0x301005[_0x3d5dbb(_0x14bbb3._0x1fd8f5)]=_0x508efd;else{const _0x1a6ede=join(_0x424265,'screenshot-error.txt');existsSync(_0x1a6ede)&&(_0x301005['screenshotError']=readFileSync(_0x1a6ede,_0x3d5dbb(_0x14bbb3._0x3ad3ac)));}const _0x49f9b0=join(_0x424265,_0x3d5dbb(_0x14bbb3._0x593ed3));if(existsSync(_0x49f9b0))_0x301005['harPath']=_0x49f9b0;const _0x1d9fb7=join(_0x424265,_0x3d5dbb(0xef));if(existsSync(_0x1d9fb7))_0x301005['videoPath']=_0x1d9fb7;return _0x301005;}__name(readFailureBundle,_0x4d65bd(0xe5));function listFailures(_0x4d91d4){const _0xe70d1b={_0x3bce3d:0xc5,_0x4159f6:0xee},_0x569ce9=_0x4d65bd;if(!existsSync(_0x4d91d4))return[];const _0x11a618=[];for(const _0x19c762 of readdirSync(_0x4d91d4)){const _0x201679=join(_0x4d91d4,_0x19c762);if(!statSync(_0x201679)[_0x569ce9(0xc5)]())continue;for(const _0x1bb352 of readdirSync(_0x201679)){const _0x416483=join(_0x201679,_0x1bb352);if(!statSync(_0x416483)[_0x569ce9(_0xe70d1b._0x3bce3d)]())continue;const _0x152e32=join(_0x416483,'failure.json');if(!existsSync(_0x152e32))continue;try{const _0x1bdef8=JSON[_0x569ce9(0xa4)](readFileSync(_0x152e32,'utf8'));_0x11a618[_0x569ce9(0xb9)]({'runId':_0x19c762,'testFn':_0x1bdef8[_0x569ce9(_0xe70d1b._0x4159f6)],'scenarioPath':_0x1bdef8[_0x569ce9(0x92)],'dir':_0x416483,'timestamp':_0x1bdef8[_0x569ce9(0xaa)]});}catch{}}}return _0x11a618[_0x569ce9(0xdd)]((_0x4bab2d,_0x177ac4)=>_0x177ac4['timestamp'][_0x569ce9(0xd0)](_0x4bab2d[_0x569ce9(0xaa)])),_0x11a618;}__name(listFailures,'listFailures');function defaultFailuresRoot(_0x23bb6c=process[_0x4d65bd(0xb4)]()){return join(_0x23bb6c,'.unotest','failures');}__name(defaultFailuresRoot,'defaultFailuresRoot');function resolveBundleDir(_0x49e5b4,_0x4af380){const _0x2b5291={_0x320104:0xc5},_0x356dfc=_0x4d65bd;if(existsSync(_0x49e5b4)&&statSync(_0x49e5b4)[_0x356dfc(_0x2b5291._0x320104)]())return _0x49e5b4;return join(_0x4af380,_0x49e5b4);}__name(resolveBundleDir,_0x4d65bd(0xbd));function composeFixPrompt(_0x26db30,_0xfafb8f={}){const _0x46045b={_0x5bbf34:0xae,_0x1945a5:0xe4,_0x37c646:0xd5,_0x27f1ab:0xb4,_0x1667db:0xd2,_0x5213cd:0xb2,_0x2f9bfa:0xc7,_0x2dd9cd:0xd1,_0x1a757f:0xd1,_0x30e818:0x9e},_0x453e61=_0x4d65bd,_0x2cc9a6=_0xfafb8f[_0x453e61(_0x46045b._0x5bbf34)]??defaultFailuresRoot(),_0x2bb0af=resolveBundleDir(_0x26db30,_0x2cc9a6),_0x593c88=readFailureBundle(_0x2bb0af);if(!_0x593c88)throw new Error(_0x453e61(_0x46045b._0x1945a5)+_0x26db30+_0x453e61(_0x46045b._0x37c646)+_0x2bb0af+')');const _0x29b110=_0xfafb8f[_0x453e61(_0x46045b._0x27f1ab)]??process[_0x453e61(0xb4)](),_0x8f5487=_0x15abe1(_0x593c88[_0x453e61(0xba)]['scenarioPath'])?_0x3f969d(_0x593c88[_0x453e61(0xba)]['scenarioPath'],_0x453e61(_0x46045b._0x1667db)):_0x453e61(_0x46045b._0x5213cd),_0x2c5274=_0xfafb8f[_0x453e61(0x8b)]??0x19,_0x101d16=_0x593c88[_0x453e61(_0x46045b._0x2f9bfa)]['slice'](-_0x2c5274),{suggestedAction:_0x6a8a0,confidence:_0x317b52}=classify(_0x593c88),_0x4bf9d7=buildPromptMarkdown({'bundle':_0x593c88,'scenarioSource':_0x8f5487,'scenarioRelative':relative(_0x29b110,_0x593c88[_0x453e61(0xba)]['scenarioPath']),'consoleTail':_0x101d16,'suggestedAction':_0x6a8a0,'confidence':_0x317b52}),_0x1adb96=Math[_0x453e61(0x9d)](_0x4bf9d7[_0x453e61(_0x46045b._0x2dd9cd)]/0x4);return{'promptMarkdown':_0x4bf9d7,'suggestedAction':_0x6a8a0,'confidence':_0x317b52,'sources':{'bundleDir':_0x2bb0af,'scenarioPath':_0x593c88[_0x453e61(0xba)][_0x453e61(0x92)],'consoleEntries':_0x593c88['console'][_0x453e61(_0x46045b._0x1a757f)],'hasSnapshot':!!_0x593c88[_0x453e61(_0x46045b._0x30e818)]},'approxTokens':_0x1adb96};}function _0x1905(_0x526d66,_0x22522d){_0x526d66=_0x526d66-0x81;const _0x5b2b43=_0x5b2b();let _0x190586=_0x5b2b43[_0x526d66];if(_0x1905['uNvWjw']===undefined){var _0x2f5547=function(_0x13c1f7){const _0x450971='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x5e2a28='',_0x1f876d='';for(let _0x3f969d=0x0,_0x15abe1,_0x14c5f7,_0x505f94=0x0;_0x14c5f7=_0x13c1f7['charAt'](_0x505f94++);~_0x14c5f7&&(_0x15abe1=_0x3f969d%0x4?_0x15abe1*0x40+_0x14c5f7:_0x14c5f7,_0x3f969d++%0x4)?_0x5e2a28+=String['fromCharCode'](0xff&_0x15abe1>>(-0x2*_0x3f969d&0x6)):0x0){_0x14c5f7=_0x450971['indexOf'](_0x14c5f7);}for(let _0x424265=0x0,_0x1a47d7=_0x5e2a28['length'];_0x424265<_0x1a47d7;_0x424265++){_0x1f876d+='%'+('00'+_0x5e2a28['charCodeAt'](_0x424265)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f876d);};_0x1905['agGMkv']=_0x2f5547,_0x1905['KsAcyh']={},_0x1905['uNvWjw']=!![];}const _0x4f3a1d=_0x5b2b43[0x0],_0x6a2c6a=_0x526d66+_0x4f3a1d,_0x211701=_0x1905['KsAcyh'][_0x6a2c6a];return!_0x211701?(_0x190586=_0x1905['agGMkv'](_0x190586),_0x1905['KsAcyh'][_0x6a2c6a]=_0x190586):_0x190586=_0x211701,_0x190586;}__name(composeFixPrompt,_0x4d65bd(0xab));function classify(_0x3c805b){const _0x4baa64={_0x26ea77:0xba,_0x354dd7:0x98,_0x2eb316:0x88,_0x4758d1:0xe3,_0x2842de:0x8d,_0xe7a807:0xe1,_0x4620f5:0x91,_0x694477:0x9a,_0x3bf0f1:0xa8,_0x31821f:0xb6},_0x19a5bb=_0x4d65bd,_0x5e3942=_0x3c805b[_0x19a5bb(0xba)]['error'][_0x19a5bb(0xf0)][_0x19a5bb(0xe6)](),_0x97a3cf=_0x3c805b[_0x19a5bb(_0x4baa64._0x26ea77)][_0x19a5bb(_0x4baa64._0x354dd7)]['name']??'';let _0x457d33=_0x19a5bb(_0x4baa64._0x2eb316),_0x149403=_0x19a5bb(_0x4baa64._0x4758d1);if(_0x97a3cf===_0x19a5bb(_0x4baa64._0x2842de)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i[_0x19a5bb(0xa8)](_0x5e3942))_0x457d33=_0x19a5bb(0xe2),_0x149403=_0x97a3cf===_0x19a5bb(0x8d)?_0x19a5bb(_0x4baa64._0xe7a807):_0x19a5bb(0xb6);else{if(_0x97a3cf===_0x19a5bb(_0x4baa64._0x4620f5)||/timeout|waiting for/i[_0x19a5bb(0xa8)](_0x5e3942))_0x457d33=_0x19a5bb(_0x4baa64._0x694477),_0x149403=_0x97a3cf===_0x19a5bb(0x91)?_0x19a5bb(0xe1):_0x19a5bb(0xb6);else(_0x97a3cf==='AssertionError'||/asserttext|assertvisible|expected.*got/i[_0x19a5bb(_0x4baa64._0x3bf0f1)](_0x5e3942))&&(_0x457d33='change-assertion',_0x149403=_0x97a3cf===_0x19a5bb(0x84)?_0x19a5bb(_0x4baa64._0xe7a807):_0x19a5bb(_0x4baa64._0x31821f));}return{'suggestedAction':_0x457d33,'confidence':_0x149403};}function _0x5b2b(){const _0x112d3d=['zMfPBhvYzs5QC29U','ycdIGjqG','BwfW','lcbJB2WG','AxneAxjLy3rVCNK','y2fWDhvYzwrbDa','y29UC29Szq','cMbGyaO','yaOTicOQu3rLCcbPBMrLEcOQoIa','ycbPBIbG','BMfTzq','zMLSDgvY','AgfZ','ChjVBxb0twfYA2rVD24','C3rHCNrZv2L0Aa','Bg9JywXLq29TCgfYzq','BgvUz3rO','DxrMoa','zxHPDa','mZi4odC5muPpA2vXBq','iIaOBg9VA2vKigLUia','icdINjmG','D3jPDgu','mZeWotq3BKz5tM5l','cI0GkIPfCNjVCIOQoIbG','cI0GkIPtDwDNzxn0zwqGywn0Aw9UkIO6iga','BMv0D29YAW','mtGXotm3mePcrNzbsG','C29YDa','icbJB25MAwrLBMnLpq','yNvPBgrqCM9TChrnyxjRzg93BG','mZq4mJmZnLzsywLrBa','AgLNAa','CMv3CML0zs1ZzwXLy3rVCG','Bg93','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','CMvHzezHAwX1CMvcDw5KBgu','Dg9mB3DLCKnHC2u','C3rHy2S','cMbGyaOkiYmGu2vTyw50AwmTre9nihnUyxbZAg90cGO','cKnHChr1CMvKoIa','cI0GkIPmB2nHDgLVBIOQoIbSAw5Lia','C291CMnLCW','BMv0D29YAY5QC29U','BgLUzq','DgvZDezU','DMLKzw8UD2vIBq','BwvZC2fNzq','y29S','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','C3rLCeLUzgv4','qxnZzxj0Aw9UrxjYB3i','DxjS','C25HChnOB3qUANnVBG','ChjLCgfYzs1MAxG6ignVBxbVC2LUzYbMAxGGChjVBxb0CYbMB3iG','Dw5RBM93BG','CNvUswq','icaGicaG','y29UC29SzuXPBwL0','nti4odG2meriu3jPyW','tg9JyxrVCKvYCM9Y','zML4lxbYB21WDc5Tza','C3vNz2vZDgvKqwn0Aw9U','ycaOy29UzMLKzw5JztOG','vgLTzw91DevYCM9Y','C2nLBMfYAw9qyxrO','CgfKu3rHCNq','C2nYzwvUC2HVDfbHDgG','zgvMAw5LuhjVCgvYDhK','mtm5ntC4mJbvCw5mywC','Bgv2zwW','zxjYB3i','odHswef2wMi','ywrKlxDHAxrMB3i','nKXhChrQwG','Dg9vChbLCKnHC2u','y2vPBa','C25HChnOB3q','vvjmoIa','DMfSDwvZ','owvVthb0Dq','xYHUBYbZzw1HBNrPyY1KB20GC25HChnOB3qGy2fWDhvYzwqGzM9YihrOAxmGzMfPBhvYzsLF','ChjLCgfYzs1MAxG6ig5VigzHAwX1CMuGyNvUzgXLCYbMB3vUzcb1BMrLCIaUDw5VDgvZDc9MywLSDxjLCY8Uifj1BIbHigzHAwXPBMCGDgvZDcbMAxjZDdSGDgHLigj1BMrSzsbPCYb3CML0DgvUigf1Dg9TyxrPy2fSBhKUcG','CgfYC2u','C3rKzxjY','mZyWmdi4offhD3bSta','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','DgvZDa','cMbGyaOkiYmGtgfZDcbJB25ZB2XLigvUDhjPzxmkcMbGyaO','DgLTzxn0yw1W','y29TCg9ZzuzPEfbYB21WDa','AgfYlMPZB24','icaGicaGC3vNz2vZDgvKqwn0Aw9Upq','zMfPBhvYzxnsB290','yxjNDG','CNvUuhjLCgfYzuzPEa','icdINjCG','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','ls1MywLSAw5N','y3DK','kqOk','BwvKAxvT','AM9PBG','C2v0','ChvZAa','DhjHy2u','yxbWCM94vg9Rzw5Z','C3bSAxq','CMvZB2X2zuj1BMrSzurPCG','y2XHC3nPzNK','C2XPy2u','nLjvrKL6ra'];_0x5b2b=function(){return _0x112d3d;};return _0x5b2b();}__name(classify,_0x4d65bd(0xbe));function buildPromptMarkdown(_0x7c7551){const _0x341979={_0x4ffd4f:0xbc,_0x2edcd9:0xc3,_0x5cafa1:0xc3,_0x3efe90:0xb7,_0x57757a:0x85,_0x157102:0x9e,_0x2994da:0xea,_0x53fce0:0xba,_0x5daf29:0xba,_0x575140:0x81,_0x258dba:0xd9,_0x23f17a:0xcb,_0x2c83f2:0xba,_0x41ac6e:0x98,_0x242000:0xf0,_0x3893f1:0xda,_0x470bb5:0x90,_0x24709d:0xe7,_0x264be1:0xe8},_0x4c1240=_0x4d65bd,{bundle:_0x4bea42,scenarioSource:_0x21ca6b,scenarioRelative:_0x3396b2,consoleTail:_0x1c1572,suggestedAction:_0x3b79a0,confidence:_0x30a0dc}=_0x7c7551,_0x3075de=_0x21ca6b[_0x4c1240(_0x341979._0x4ffd4f)]('\x0a')[_0x4c1240(_0x341979._0x2edcd9)]((_0x31a3bd,_0x52a7fd)=>String(_0x52a7fd+0x1)[_0x4c1240(0x93)](0x3,'\x20')+'\x20\x20'+_0x31a3bd)[_0x4c1240(0xb7)]('\x0a'),_0x4567e1=_0x1c1572[_0x4c1240(0xd1)]===0x0?'_(no\x20console\x20entries\x20captured)_':_0x1c1572[_0x4c1240(_0x341979._0x5cafa1)](_0x253648=>'['+_0x253648[_0x4c1240(0xaa)]+']\x20'+_0x253648[_0x4c1240(0x97)][_0x4c1240(0x9c)]()+':\x20'+_0x253648['text'])[_0x4c1240(_0x341979._0x3efe90)]('\x0a'),_0xdd149c=_0x4bea42['snapshot']?_0x4c1240(0x9f)+_0x4bea42[_0x4c1240(0x9e)][_0x4c1240(_0x341979._0x57757a)]+_0x4c1240(0xe9)+_0x4bea42[_0x4c1240(_0x341979._0x157102)][_0x4c1240(0xc6)]+_0x4c1240(0xa7):_0x4c1240(0xa2);return'#\x20Test\x20fix\x20request\x0a\x0a##\x20Failure\x20context\x0a\x0a-\x20**Test**:\x20`'+_0x4bea42[_0x4c1240(0xba)][_0x4c1240(0xee)]+_0x4c1240(0xca)+_0x3396b2+_0x4c1240(0xc9)+(_0x4bea42[_0x4c1240(0xba)][_0x4c1240(0x83)]??'?')+_0x4c1240(_0x341979._0x2994da)+_0x4bea42[_0x4c1240(_0x341979._0x53fce0)][_0x4c1240(0xed)]+_0x4c1240(0xc4)+_0x4bea42[_0x4c1240(_0x341979._0x5daf29)][_0x4c1240(_0x341979._0x575140)]+_0x4c1240(_0x341979._0x258dba)+(_0x4bea42['trace'][_0x4c1240(0x98)][_0x4c1240(_0x341979._0x23f17a)]??'Error')+_0x4c1240(0xc2)+_0x4bea42[_0x4c1240(_0x341979._0x2c83f2)][_0x4c1240(_0x341979._0x41ac6e)][_0x4c1240(_0x341979._0x242000)]+_0x4c1240(_0x341979._0x3893f1)+_0x3b79a0+_0x4c1240(_0x341979._0x470bb5)+_0x30a0dc+_0x4c1240(0xb5)+(_0x4bea42[_0x4c1240(_0x341979._0x5daf29)][_0x4c1240(0x98)]['stack']?'###\x20Stack\x0a```\x0a'+_0x4bea42['trace'][_0x4c1240(0x98)][_0x4c1240(_0x341979._0x24709d)]+_0x4c1240(0xc8):'')+'\x0a\x0a##\x20Scenario\x20source\x20(line-numbered)\x0a\x0a```js\x0a'+_0x3075de+_0x4c1240(0xa9)+_0x4567e1+_0x4c1240(_0x341979._0x264be1)+_0xdd149c+_0x4c1240(0x82);}__name(buildPromptMarkdown,_0x4d65bd(0xdf));function runPrepareFix(_0x2d65e8,_0x1c6172={}){const _0x59927d={_0x1cbc37:0xcc,_0x12bca6:0xd7,_0x45f71b:0xa3,_0x1e9a2e:0xd1,_0x5ea269:0xcd,_0x2199fd:0xd7,_0x35ae40:0x87,_0x590f10:0x8e,_0x641688:0xce,_0x384ef9:0xde,_0xc7b23c:0xf0},_0x449378=_0x4d65bd,_0x5d516d=_0x1c6172['out']??process['stdout'],_0x21c7aa=_0x1c6172['err']??process[_0x449378(0xa5)],_0x95c0e5=_0x1c6172[_0x449378(0xb4)]??process[_0x449378(0xb4)](),_0x3dbeb9=_0x2d65e8['includes'](_0x449378(0xb3));let _0x38452c=_0x2d65e8[_0x449378(_0x59927d._0x1cbc37)](_0x545e2f=>!_0x545e2f[_0x449378(0xcf)]('-'));if(_0x3dbeb9||_0x38452c['length']===0x0){const _0x1a026b=listFailures(defaultFailuresRoot(_0x95c0e5));if(_0x1a026b['length']===0x0)return _0x21c7aa[_0x449378(_0x59927d._0x12bca6)](_0x449378(_0x59927d._0x45f71b)),0x1;if(_0x38452c[_0x449378(_0x59927d._0x1e9a2e)]===0x0){const _0xe2c13=new Map();for(const _0x169078 of _0x1a026b){if(!_0xe2c13[_0x449378(_0x59927d._0x5ea269)](_0x169078[_0x449378(0xee)]))_0xe2c13[_0x449378(0xb8)](_0x169078['testFn'],_0x169078);}_0x38452c=[..._0xe2c13[_0x449378(0xa0)]()][_0x449378(0xc3)](_0x22fbab=>_0x22fbab[_0x449378(0x89)]+'/'+_0x22fbab[_0x449378(0xee)]);}}if(_0x38452c['length']===0x0)return _0x21c7aa['write']('prepare-fix:\x20no\x20testId\x20provided\x20and\x20no\x20failing\x20tests\x20found.\x0a'),0x1;_0x5d516d[_0x449378(_0x59927d._0x2199fd)](_0x449378(_0x59927d._0x35ae40)+_0x38452c['length']+'\x20test(s)\x20(D-25)\x0a\x0a');const _0x4f0d3b=defaultFailuresRoot(_0x95c0e5);for(const _0x17121a of _0x38452c){try{const _0x1a316f=composeFixPrompt(_0x17121a,{'cwd':_0x95c0e5,'failuresRoot':_0x4f0d3b}),_0x185954=_0x1f876d(_0x1a316f[_0x449378(0xeb)]['bundleDir'],_0x449378(_0x59927d._0x590f10));_0x5e2a28(_0x185954,_0x1a316f[_0x449378(_0x59927d._0x641688)]),_0x5d516d[_0x449378(0xd7)](_0x449378(0xd6)+_0x17121a+'\x0a'),_0x5d516d[_0x449378(0xd7)](_0x449378(0x8a)+_0x185954+'\x0a'),_0x5d516d['write'](_0x449378(0xad)+_0x1a316f[_0x449378(0x8f)]+_0x449378(_0x59927d._0x384ef9)+_0x1a316f['confidence']+'\x20\x20~'+_0x1a316f[_0x449378(0xbb)]+'t\x0a');}catch(_0x117862){_0x21c7aa[_0x449378(0xd7)](_0x449378(0xb1)+_0x17121a+':\x20'+(_0x117862 instanceof Error?_0x117862[_0x449378(_0x59927d._0xc7b23c)]:String(_0x117862))+'\x0a');}}return _0x5d516d['write']('\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,_0x4d65bd(0xb0));var invokedDirectly=process[_0x4d65bd(0xaf)][0x1]&&fileURLToPath(import.meta.url)===process['argv'][0x1];if(invokedDirectly){const code=runPrepareFix(process['argv'][_0x4d65bd(0xbf)](0x2));process[_0x4d65bd(0xd3)](code);}export{runPrepareFix};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BrowserChannel } from '../config/schema.js';
|
|
2
|
+
import 'zod';
|
|
3
|
+
|
|
4
|
+
interface ScaffoldWorkspaceOptions {
|
|
5
|
+
/** Playwright system-browser channel written into `unotest.config.mjs`:
|
|
6
|
+
* `'chrome'` / `'msedge'` / … for a system browser, `null` for bundled
|
|
7
|
+
* Chromium, `undefined` to leave the field commented (default applies).
|
|
8
|
+
* The studio resolves this via the same chrome-probe `init` uses. */
|
|
9
|
+
channel?: BrowserChannel | undefined;
|
|
10
|
+
}
|
|
11
|
+
interface ScaffoldWorkspaceResult {
|
|
12
|
+
/** Absolute workspace root (the dir containing `unotest/`). */
|
|
13
|
+
projectRoot: string;
|
|
14
|
+
/** Project-relative paths newly written this call. */
|
|
15
|
+
created: string[];
|
|
16
|
+
/** Project-relative paths left untouched because they already existed. */
|
|
17
|
+
skipped: string[];
|
|
18
|
+
}
|
|
19
|
+
/** Ensure `dir` is a usable @unotest/web workspace. Returns what was
|
|
20
|
+
* created vs already present so the caller can report it. Safe to call on
|
|
21
|
+
* an existing workspace — it fills only the gaps. */
|
|
22
|
+
declare function scaffoldWorkspace(dir: string, opts?: ScaffoldWorkspaceOptions): Promise<ScaffoldWorkspaceResult>;
|
|
23
|
+
|
|
24
|
+
export { type ScaffoldWorkspaceOptions, type ScaffoldWorkspaceResult, scaffoldWorkspace };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x4cc8f4=_0x5545;function _0x5545(_0x21e38f,_0x36ab3d){_0x21e38f=_0x21e38f-0x1b3;const _0x628d0e=_0x628d();let _0x554531=_0x628d0e[_0x21e38f];if(_0x5545['WTvNZt']===undefined){var _0x27b6b3=function(_0x4aba5d){const _0x3b99a3='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3fc544='',_0x18654d='';for(let _0x6cac55=0x0,_0x5b0635,_0x415e44,_0x294714=0x0;_0x415e44=_0x4aba5d['charAt'](_0x294714++);~_0x415e44&&(_0x5b0635=_0x6cac55%0x4?_0x5b0635*0x40+_0x415e44:_0x415e44,_0x6cac55++%0x4)?_0x3fc544+=String['fromCharCode'](0xff&_0x5b0635>>(-0x2*_0x6cac55&0x6)):0x0){_0x415e44=_0x3b99a3['indexOf'](_0x415e44);}for(let _0x1f50e3=0x0,_0x48653b=_0x3fc544['length'];_0x1f50e3<_0x48653b;_0x1f50e3++){_0x18654d+='%'+('00'+_0x3fc544['charCodeAt'](_0x1f50e3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x18654d);};_0x5545['FBWpHy']=_0x27b6b3,_0x5545['ybsKii']={},_0x5545['WTvNZt']=!![];}const _0x179a58=_0x628d0e[0x0],_0x11fef9=_0x21e38f+_0x179a58,_0x1f905a=_0x5545['ybsKii'][_0x11fef9];return!_0x1f905a?(_0x554531=_0x5545['FBWpHy'](_0x554531),_0x5545['ybsKii'][_0x11fef9]=_0x554531):_0x554531=_0x1f905a,_0x554531;}(function(_0x28fd82,_0x192125){const _0x4812bc={_0x21658b:0x1b9,_0x3d46f1:0x1c5,_0x4a7311:0x1c8},_0x570d7a=_0x5545,_0x55a8b=_0x28fd82();while(!![]){try{const _0x1f3b63=parseInt(_0x570d7a(0x1d2))/0x1*(parseInt(_0x570d7a(0x1c4))/0x2)+parseInt(_0x570d7a(0x1c9))/0x3*(-parseInt(_0x570d7a(0x1b4))/0x4)+-parseInt(_0x570d7a(_0x4812bc._0x21658b))/0x5+parseInt(_0x570d7a(0x1b6))/0x6*(parseInt(_0x570d7a(0x1c7))/0x7)+-parseInt(_0x570d7a(_0x4812bc._0x3d46f1))/0x8+-parseInt(_0x570d7a(0x1d1))/0x9+parseInt(_0x570d7a(0x1c3))/0xa*(-parseInt(_0x570d7a(_0x4812bc._0x4a7311))/0xb);if(_0x1f3b63===_0x192125)break;else _0x55a8b['push'](_0x55a8b['shift']());}catch(_0xba2a16){_0x55a8b['push'](_0x55a8b['shift']());}}}(_0x628d,0x77a65));var __defProp=Object[_0x4cc8f4(0x1b7)],__name=(_0x3fc544,_0x18654d)=>__defProp(_0x3fc544,_0x4cc8f4(0x1d0),{'value':_0x18654d,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';import{join}from'path';var templates={'scenarioTemplate':_0x4cc8f4(0x1c6),'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':'##\x20E2E\x20testing\x20with\x20@unotest/web\x0a\x0a@AGENTS.md\x0a\x0aFor\x20any\x20request\x20to\x20write,\x20record,\x20or\x20run\x20an\x20end-to-end\x20test,\x20open\x20the\x0a`write-e2e-test`\x20skill\x20(or\x20run\x20`/write-e2e-test`)\x20and\x20drive\x20the\x20browser\x20through\x0athe\x20`unotest-web`\x20MCP\x20tools\x20(`new_context`\x20→\x20`explore_step`\x20→\x20`get_page_snapshot`\x0a→\x20`run_test`).\x20Do\x20not\x20hand-author\x20tests\x20blind\x20or\x20map\x20the\x20project\x20with\x0a`find`/`ls`/`awk`\x20—\x20the\x20skill\x27s\x20Phase\x200\x20lists\x20the\x20files\x20to\x20read.','examples':{'01-smoke.js':_0x4cc8f4(0x1bf),'02-form-fill.js':'//\x20Example\x2002\x20—\x20fill\x20an\x20input\x20+\x20assert\x20the\x20app\x20reacted.\x0a//\x0a//\x20Against\x20playground.unotest.com/scenarios/big-table.\x20Demonstrates\x20getByRole\x0a//\x20for\x20a\x20labelled\x20input,\x20typed\x20input\x20via\x20fill(),\x20and\x20a\x20locator\x20method-chain\x0a//\x20(getByRole(\x27row\x27).filter({hasText}).first())\x20in\x20an\x20assertion.\x0a//\x20Run\x20with:\x20\x20npx\x20@unotest/web\x20e2e\x20examples/02-form-fill\x0a\x0afunction\x20test_form_fill_happy_path()\x20{\x0a\x20\x20step(\x22Filter\x20the\x20Big\x20Table\x20by\x20a\x20name\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27/scenarios/big-table\x27);\x0a\x20\x20\x20\x20fill(getByRole(\x27textbox\x27,\x20{name:\x20\x27Filter\x20by\x20name\x27}),\x20\x27Uma\x20Quinn\x27);\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Filtering\x20reveals\x20the\x20Clear\x20filter\x20control\x20and\x20matching\x20rows\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20assertVisible(getByRole(\x27button\x27,\x20{name:\x20\x27Clear\x20filter\x27}));\x0a\x20\x20\x20\x20assertVisible(getByRole(\x27row\x27).filter({hasText:\x20\x27Uma\x20Quinn\x27}).first());\x0a\x20\x20});\x0a}\x0a'},'secretsExample':_0x4cc8f4(0x1cd),'envExample':_0x4cc8f4(0x1bc)};function unotestConfigMjs(_0x6cac55){const _0xb2a73c={_0x52d7e1:0x1bb,_0x5d9405:0x1c0,_0x4c7e7c:0x1cf,_0x384d19:0x1be},_0x343a9f=_0x4cc8f4,_0x5b0635=_0x6cac55===void 0x0?_0x343a9f(_0xb2a73c._0x52d7e1):_0x343a9f(_0xb2a73c._0x5d9405)+JSON[_0x343a9f(_0xb2a73c._0x4c7e7c)](_0x6cac55)+',';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'+_0x5b0635+_0x343a9f(_0xb2a73c._0x384d19);}__name(unotestConfigMjs,_0x4cc8f4(0x1cb));async function scaffoldWorkspace(_0x415e44,_0x294714={}){const _0x40a5ab={_0x1502a0:0x1bd,_0x58876f:0x1ce,_0x175b10:0x1b8,_0x325851:0x1cc,_0x567114:0x1b3,_0x5227c0:0x1c2},_0x1e76a5=_0x4cc8f4,_0x1f50e3=[],_0x48653b=[];await mkdir(join(_0x415e44,_0x1e76a5(0x1bd),'e2e',_0x1e76a5(0x1c2)),{'recursive':!![]}),await mkdir(join(_0x415e44,_0x1e76a5(_0x40a5ab._0x1502a0),_0x1e76a5(_0x40a5ab._0x58876f),_0x1e76a5(_0x40a5ab._0x175b10)),{'recursive':!![]});const _0x53faca=[{'rel':_0x1e76a5(_0x40a5ab._0x325851),'content':unotestConfigMjs(_0x294714[_0x1e76a5(0x1b5)])},{'rel':join(_0x1e76a5(_0x40a5ab._0x1502a0),_0x1e76a5(0x1ca)),'content':templates[_0x1e76a5(_0x40a5ab._0x567114)]},{'rel':join(_0x1e76a5(0x1bd),'e2e',_0x1e76a5(_0x40a5ab._0x5227c0),'01-smoke.js'),'content':templates[_0x1e76a5(0x1c2)]['01-smoke.js']}];for(const {rel:_0x56d707,content:_0x165a73}of _0x53faca){const _0x32d8e4=join(_0x415e44,_0x56d707);if(existsSync(_0x32d8e4)){_0x48653b['push'](_0x56d707);continue;}await writeFile(_0x32d8e4,_0x165a73),_0x1f50e3[_0x1e76a5(0x1c1)](_0x56d707);}return{'projectRoot':_0x415e44,'created':_0x1f50e3,'skipped':_0x48653b};}function _0x628d(){const _0x4f854c=['ztjL','C3rYAw5NAwz5','BMfTzq','mtCZmZm4mNLHy0fKsG','mwrrwgDKyq','zw52rxHHBxbSzq','mti3nJy5mKrgAvbvBa','y2HHBM5LBa','nMjLz1rTra','zgvMAw5LuhjVCgvYDhK','x2HLBhbLCNm','mtq0nZyXnwPRv1nRzq','C2nHzMzVBgrxB3jRC3bHy2u','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','iYb1BM90zxn0lxDLyIdIGjqGy29WAwvKihrVihvUB3rLC3qVlMvUDIbIEsbGAw5PDgaGAwyGBM90ihbYzxnLBNqUcImkiYbgAwXSigLUihzHBhvLCYb0Agf0igfWCgX5ihrVihLVDxiGChjVAMvJDc4GvMfYAwfIBgvZigfYzsbSB2fKzwqGyNKGDgHLcImGCNvUBMvYigf0ihnJzw5HCMLVihn0yxj0lGOJcImGuMvMzxjLBMnLigfUEsb2yxjPywjSzsbMCM9TigeGC2nLBMfYAw8GyNKGAxrZigjHCMuGvvbqrvjFu05bs0uGBMfTzsdIGjqkiYbUBYbLBNyOks9ZzwnYzxqOksb3CMfWCgvYoGOJcImGicbNB3rVkcCVBg9NAw4NktSGicaGicaGicaGicaGicaGicaGicaGicaGicmGCMvSyxrPDMuG4OcuihnLzsbbufbFqKftrv9vuKWkiYaGigzPBgWOz2v0qNLmywjLBcGNrw1HAwWNksWGvevtvf9vu0vsx0vnquLmktSkiWOJifnLy3jLDcb2ywX1zxmGkhbHC3n3B3jKCYWGDg9Rzw5ZksbNBYbPBIb1BM90zxn0lY5ZzwnYzxrZigLUC3rLywqG4OcuihnHBwukiYbMB3jTyxqSigj1DcbTyxnRzwqGAw4GzxzLCNKGBg9NlIbbBIb1BMTUB3DUifvquevsx1noquTfig5HBwuGzMfPBhmGDgHLcImGCNvUihDPDgGGysbJBgvHCIaIywrKigL0ihrVihvUB3rLC3qVlMvUDIiGBwvZC2fNzs4kiWOJievUDMLYB25Tzw50CZOGB3zLCNjPzguGyw55ihzHBhvLihbLCIbLBNzPCM9UBwvUDcb3AxrOig92zxjSyxKGzMLSzxmG4OcucImGDw5VDgvZDc8Uzw52lNn0ywDPBMCSihvUB3rLC3qVlMvUDI5WCM9KDwn0Aw9UicHZzwnYzxrZoIaUC2vJCMv0CY48zw52pIKUcImGu2vSzwn0ig9UztOGyg5WEcbaDw5VDgvZDc93zwiGztjLidXUyw1LpIaTlwvUDIbZDgfNAw5Nyc4GvgHLig92zxjSyxKGBgf5zxjZcImGB3zLCIb0AgLZigjHC2uGzMLSzsaOB3zLCMXHEsb3Aw5ZktSGDgHLihnOzwXSigvUDMLYB25Tzw50ihDPBNmGB3zLCIbIB3rOlGOkiYaTls0GqxbWihvUzgvYihrLC3qGls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0kiYbuAguGyxbWj3mGyMfZzsbvuKWUifjLBgf0AxzLigDVDg8OjY9WyxrOjYKGCMvZB2X2zxmGywDHAw5ZDcbPDcaOD2LYzwqGAw50BWOJifbSyxL3CMLNAhqNCYbIyxnLvvjmigf1Dg9TyxrPy2fSBhKPlcbZBYb3CML0zsbNB3rVkcCVBg9NAw4NksdIGjqGBMv2zxikiYbNB3rVkefquf9cqvnfx1vstcaRicCVBg9NAw4Nks4GqwXZBYb1C2vKigzVCIbHC3nLCNrvCMWGC3vIC3rYAw5Nig1HDgnOAw5NlGOJierLzMf1BhrZihrVihrOzsb1BM90zxn0ihbSyxLNCM91BMqGC28GDgHLigv4yw1WBguGC2nLBMfYAw9Zihj1BIbVDxqGB2yGDgHLcImGyM94oYbWB2LUDcbPDcbHDcb5B3vYig93BIbHChaUcKfquf9cqvnfx1vstd1ODhrWCZOVl3bSyxLNCM91BMqUDw5VDgvZDc5JB20kcImGls0TierHDgfIyxnLic0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0TcImGvxnLzcbIEsbKyLf1zxj5ic8GzgjfEgvJlIbjBNn0ywXSihrOzsbTyxrJAgLUzYbKCML2zxiGyxmGysbWzwvYlwrLCdOkiYaGihbUCg0GywrKic1eihbNieb0ExbLCY9WzYaGicaGicaGicaJigzVCIbWB3n0z3jLC3fSoI8VcImGicbWBNbTigfKzcaTrcbTExnXBdiGicaGicaGicaGicaGicaGiYbMB3iGBxLZCwW6lY8kiYaOu1fmAxrLihzPysbIzxr0zxiTC3fSAxrLmYdIGjqGAw5ZDgfSBcbVBMX5igLMig5LzwrLzc4PcKrbvefcqvnfx1vstd1WB3n0z3jLC3fSoI8VCg9ZDgDYzxm6Cg9ZDgDYzxnaBg9JywXOB3n0oJu0mZiVBxLHChbFDgvZDaOkiYaTls0GuNvUBMvYic0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0T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','Dw5VDgvZDa','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','icbJAgfUBMvSoIa','ChvZAa','zxHHBxbSzxm','nduZmg1zDLLlDa','mtC1mZq5nhD4z1nxBa','mtq5nJi5nKnkzLnXrW','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k','nJuZnJaYnKDbzvLptG','oda2m1D3DxvMDW','m0v6tgPwrG','lMvUDG','Dw5VDgvZDenVBMzPz01QCW','Dw5VDgvZDc5JB25MAwCUBwPZ','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4Guhv0ig5VBI1ZzwnYzxqGDMfSDwvZicHvuKXZlcbLBwfPBhmSigLKCYKGAw4GDw5VDgvZDc8Uzw52lGOJcImGrKXfrvrFrvHbtvbmrqPmt0DjtJ0kueftu1DpuKq9cLrps0vopqO'];_0x628d=function(){return _0x4f854c;};return _0x628d();}__name(scaffoldWorkspace,_0x4cc8f4(0x1ba));export{scaffoldWorkspace};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var _0x1c2add=_0x4399;(function(_0x2b1f5e,_0x6720ff){var _0x2e9c6a={_0xe9ec19:0x7e,_0x1bfcc2:0x7b,_0x38c38a:0x8e,_0x17240a:0x8d},_0x362e52=_0x4399,_0x4fe5db=_0x2b1f5e();while(!![]){try{var _0x3b9b42=-parseInt(_0x362e52(0x83))/0x1+parseInt(_0x362e52(_0x2e9c6a._0xe9ec19))/0x2*(parseInt(_0x362e52(0x86))/0x3)+-parseInt(_0x362e52(0x81))/0x4*(-parseInt(_0x362e52(_0x2e9c6a._0x1bfcc2))/0x5)+-parseInt(_0x362e52(_0x2e9c6a._0x38c38a))/0x6+parseInt(_0x362e52(_0x2e9c6a._0x17240a))/0x7+parseInt(_0x362e52(0x7d))/0x8+-parseInt(_0x362e52(0x82))/0x9;if(_0x3b9b42===_0x6720ff)break;else _0x4fe5db['push'](_0x4fe5db['shift']());}catch(_0x7914b8){_0x4fe5db['push'](_0x4fe5db['shift']());}}}(_0xf79d,0xd57cf));import{fileURLToPath}from'url';import{dirname,resolve}from'path';function _0x4399(_0x2669d6,_0x498fe4){_0x2669d6=_0x2669d6-0x7a;var _0xf79d8c=_0xf79d();var _0x43998b=_0xf79d8c[_0x2669d6];if(_0x4399['bmfPEK']===undefined){var _0x269471=function(_0x1cf3e0){var _0x3aa3f2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x4c1fac='',_0x3bba06='';for(var _0xaec62c=0x0,_0x52108f,_0x14e121,_0x5b8ae7=0x0;_0x14e121=_0x1cf3e0['charAt'](_0x5b8ae7++);~_0x14e121&&(_0x52108f=_0xaec62c%0x4?_0x52108f*0x40+_0x14e121:_0x14e121,_0xaec62c++%0x4)?_0x4c1fac+=String['fromCharCode'](0xff&_0x52108f>>(-0x2*_0xaec62c&0x6)):0x0){_0x14e121=_0x3aa3f2['indexOf'](_0x14e121);}for(var _0x5d2372=0x0,_0x2b04ac=_0x4c1fac['length'];_0x5d2372<_0x2b04ac;_0x5d2372++){_0x3bba06+='%'+('00'+_0x4c1fac['charCodeAt'](_0x5d2372)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3bba06);};_0x4399['jNdWqf']=_0x269471,_0x4399['GWiGvm']={},_0x4399['bmfPEK']=!![];}var _0x4c7a25=_0xf79d8c[0x0],_0x5ba725=_0x2669d6+_0x4c7a25,_0x50388f=_0x4399['GWiGvm'][_0x5ba725];return!_0x50388f?(_0x43998b=_0x4399['jNdWqf'](_0x43998b),_0x4399['GWiGvm'][_0x5ba725]=_0x43998b):_0x43998b=_0x50388f,_0x43998b;}import{spawn}from'child_process';import{existsSync}from'fs';var here=dirname(fileURLToPath(import.meta.url)),candidates=[resolve(here,_0x1c2add(0x8c)),resolve(here,_0x1c2add(0x8a))],serverEntry=candidates[_0x1c2add(0x7c)](_0x4c1fac=>existsSync(_0x4c1fac));function _0xf79d(){var _0x28c031=['mJGYmJflEerzCg0','yxjNDG','Aw5OzxjPDa','C2XPy2u','lI4VlI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','C3rKzxjY','lI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','mteYmJy0mtf5Bez4AeS','mtaYnZG0mMvZu1beDa','C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG','D3jPDgu','nxL3AgnvrG','zMLUza','nZi5mde5mMLACM5qCW','mZqYrgTPvK9T','zxHLy1bHDgG','rgLKihLVDsbWDwjSAxnOihDPDgHVDxqGzxHHBxbSzxmVzML4DhvYzxmVpWO','nJy2odu0mfPdCxj4va','mZm4ntq4ntLhtNLMr0i','otGZmZC0D1Pzs2Xr','AM9PBG','zxHPDa'];_0xf79d=function(){return _0x28c031;};return _0xf79d();}!serverEntry&&(process[_0x1c2add(0x8b)][_0x1c2add(0x7a)](_0x1c2add(0x8f)+candidates['map'](_0x3bba06=>'\x20\x20'+_0x3bba06+'\x0a')[_0x1c2add(0x84)]('')+_0x1c2add(0x80)),process[_0x1c2add(0x85)](0x1));var child=spawn(process[_0x1c2add(0x7f)],[serverEntry,...process[_0x1c2add(0x87)][_0x1c2add(0x89)](0x2)],{'stdio':_0x1c2add(0x88)});child['on'](_0x1c2add(0x85),_0xaec62c=>process[_0x1c2add(0x85)](_0xaec62c??0x1));
|