@unotest/web 0.42.0 → 0.43.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- const _0x34fd25=_0x19ea;(function(_0x5699eb,_0x5cea72){const _0x455389={_0x59f2c9:0xfe,_0xa3e23e:0x133,_0x1d85e1:0x135,_0x5ac0f4:0x116,_0x4ac325:0x157,_0x3fc6e9:0xfc},_0x55226f=_0x19ea,_0x16aac8=_0x5699eb();while(!![]){try{const _0x415a8c=parseInt(_0x55226f(_0x455389._0x59f2c9))/0x1*(-parseInt(_0x55226f(_0x455389._0xa3e23e))/0x2)+parseInt(_0x55226f(_0x455389._0x1d85e1))/0x3+-parseInt(_0x55226f(_0x455389._0x5ac0f4))/0x4+parseInt(_0x55226f(0x14e))/0x5*(-parseInt(_0x55226f(_0x455389._0x4ac325))/0x6)+-parseInt(_0x55226f(0x15e))/0x7+-parseInt(_0x55226f(0x101))/0x8*(parseInt(_0x55226f(0x168))/0x9)+-parseInt(_0x55226f(_0x455389._0x3fc6e9))/0xa*(-parseInt(_0x55226f(0x160))/0xb);if(_0x415a8c===_0x5cea72)break;else _0x16aac8['push'](_0x16aac8['shift']());}catch(_0x361a32){_0x16aac8['push'](_0x16aac8['shift']());}}}(_0x5dde,0x9519c));var __defProp=Object[_0x34fd25(0x16a)],__name=(_0x53d438,_0x2cf12e)=>__defProp(_0x53d438,_0x34fd25(0x118),{'value':_0x2cf12e,'configurable':!![]});import{writeFileSync as _0x540d3d}from'fs';import{join as _0x4e687b}from'path';import{fileURLToPath}from'url';import{readFileSync as _0xcc4691,existsSync as _0x24ccfb}from'fs';import{relative}from'path';import{existsSync,mkdirSync,readFileSync,readdirSync,statSync,writeFileSync}from'fs';function _0x19ea(_0xabceab,_0x321da7){_0xabceab=_0xabceab-0xfc;const _0x5dde38=_0x5dde();let _0x19eacc=_0x5dde38[_0xabceab];if(_0x19ea['bXZtVs']===undefined){var _0x116e4c=function(_0x4955c2){const _0x38b973='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x540d3d='',_0x4e687b='';for(let _0xcc4691=0x0,_0x24ccfb,_0x53d438,_0x2cf12e=0x0;_0x53d438=_0x4955c2['charAt'](_0x2cf12e++);~_0x53d438&&(_0x24ccfb=_0xcc4691%0x4?_0x24ccfb*0x40+_0x53d438:_0x53d438,_0xcc4691++%0x4)?_0x540d3d+=String['fromCharCode'](0xff&_0x24ccfb>>(-0x2*_0xcc4691&0x6)):0x0){_0x53d438=_0x38b973['indexOf'](_0x53d438);}for(let _0x480737=0x0,_0x2b192c=_0x540d3d['length'];_0x480737<_0x2b192c;_0x480737++){_0x4e687b+='%'+('00'+_0x540d3d['charCodeAt'](_0x480737)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4e687b);};_0x19ea['afmGSx']=_0x116e4c,_0x19ea['QJyCCR']={},_0x19ea['bXZtVs']=!![];}const _0x3abcf7=_0x5dde38[0x0],_0x33a7b8=_0xabceab+_0x3abcf7,_0x25ade1=_0x19ea['QJyCCR'][_0x33a7b8];return!_0x25ade1?(_0x19eacc=_0x19ea['afmGSx'](_0x19eacc),_0x19ea['QJyCCR'][_0x33a7b8]=_0x19eacc):_0x19eacc=_0x25ade1,_0x19eacc;}import{join,dirname}from'path';import{artifactsRootFrom,FAILURES_DIR_SEGMENTS,failuresRootFrom}from'@unotest/protocol';function readFailureBundle(_0x480737){const _0x5e447c={_0x252689:0x10e,_0x2442a4:0x164,_0x1eb9a4:0x105,_0x112582:0x139,_0x4282d9:0x104,_0x58c296:0x12f,_0x5685bd:0x136},_0x2b15d1=_0x34fd25;if(!existsSync(_0x480737))return null;const _0x2b192c=join(_0x480737,'failure.json');if(!existsSync(_0x2b192c))return null;const _0x6cd6ab=JSON[_0x2b15d1(0x164)](readFileSync(_0x2b192c,_0x2b15d1(0x11d))),_0x397913=join(_0x480737,_0x2b15d1(0x120)),_0x458ac6=existsSync(_0x397913)?JSON[_0x2b15d1(0x164)](readFileSync(_0x397913,_0x2b15d1(0x11d))):[],_0x56b715=join(_0x480737,_0x2b15d1(_0x5e447c._0x252689)),_0x527c9f=existsSync(_0x56b715)?JSON[_0x2b15d1(_0x5e447c._0x2442a4)](readFileSync(_0x56b715,'utf8')):void 0x0,_0x3b34e9={'trace':_0x6cd6ab,'console':_0x458ac6},_0x36ddd0=join(_0x480737,_0x2b15d1(0x158));existsSync(_0x36ddd0)&&(_0x3b34e9[_0x2b15d1(_0x5e447c._0x1eb9a4)]=JSON[_0x2b15d1(_0x5e447c._0x2442a4)](readFileSync(_0x36ddd0,_0x2b15d1(0x11d))));if(_0x527c9f!==void 0x0)_0x3b34e9[_0x2b15d1(0x14a)]=_0x527c9f;const _0x134a25=join(_0x480737,_0x2b15d1(_0x5e447c._0x112582));if(existsSync(_0x134a25))_0x3b34e9[_0x2b15d1(_0x5e447c._0x4282d9)]=_0x134a25;else{const _0x55f846=join(_0x480737,_0x2b15d1(_0x5e447c._0x58c296));existsSync(_0x55f846)&&(_0x3b34e9[_0x2b15d1(_0x5e447c._0x5685bd)]=readFileSync(_0x55f846,_0x2b15d1(0x11d)));}const _0x406aba=join(_0x480737,_0x2b15d1(0x148));if(existsSync(_0x406aba))_0x3b34e9['harPath']=_0x406aba;const _0x426da0=join(_0x480737,_0x2b15d1(0x123));if(existsSync(_0x426da0))_0x3b34e9['videoPath']=_0x426da0;return _0x3b34e9;}__name(readFailureBundle,_0x34fd25(0xff));function listFailures(_0xa74a2e){const _0xe07a88={_0x6d300a:0x14c,_0x7ce22d:0x156,_0x32cfdd:0x10a},_0xf3ebe3=_0x34fd25;if(!existsSync(_0xa74a2e))return[];const _0x2103bc=[];for(const _0x8abe3 of readdirSync(_0xa74a2e)){const _0x303748=join(_0xa74a2e,_0x8abe3);if(!statSync(_0x303748)['isDirectory']())continue;for(const _0x1e8742 of readdirSync(_0x303748)){const _0x1348b7=join(_0x303748,_0x1e8742);if(!statSync(_0x1348b7)[_0xf3ebe3(0x129)]())continue;const _0x4a10df=join(_0x1348b7,_0xf3ebe3(0x106));if(!existsSync(_0x4a10df))continue;try{const _0x3e0b41=JSON[_0xf3ebe3(0x164)](readFileSync(_0x4a10df,_0xf3ebe3(0x11d)));_0x2103bc[_0xf3ebe3(_0xe07a88._0x6d300a)]({'runId':_0x8abe3,'testFn':_0x3e0b41['testFn'],'scenarioPath':_0x3e0b41[_0xf3ebe3(_0xe07a88._0x7ce22d)],'dir':_0x1348b7,'timestamp':_0x3e0b41['timestamp']});}catch{}}}return _0x2103bc[_0xf3ebe3(_0xe07a88._0x32cfdd)]((_0x1a4c64,_0x159ed3)=>_0x159ed3[_0xf3ebe3(0x150)][_0xf3ebe3(0x103)](_0x1a4c64[_0xf3ebe3(0x150)])),_0x2103bc;}__name(listFailures,_0x34fd25(0x127));function defaultFailuresRoot(_0x3565b9=artifactsRootFrom(process[_0x34fd25(0x115)],process['cwd']()),_0x26fe2c=process[_0x34fd25(0x115)]){return failuresRootFrom(_0x26fe2c,join(_0x3565b9,...FAILURES_DIR_SEGMENTS));}__name(defaultFailuresRoot,_0x34fd25(0x153));function resolveBundleDir(_0x5a8051,_0x530a2e){const _0x22533a={_0x4f2f05:0x129},_0x4d9c1c=_0x34fd25;if(existsSync(_0x5a8051)&&statSync(_0x5a8051)[_0x4d9c1c(_0x22533a._0x4f2f05)]())return _0x5a8051;return join(_0x530a2e,_0x5a8051);}__name(resolveBundleDir,_0x34fd25(0x167));function composeFixPrompt(_0x1413c2,_0x291027={}){const _0x4f531c={_0x2dea6b:0x12a,_0x2211bf:0x11b,_0x280a08:0x156,_0x4f2b18:0x149,_0x5102ae:0x156,_0x721f85:0x13b,_0x47d0e8:0x100,_0x6ba0c4:0x13f,_0x3b5ed5:0x113,_0x42c559:0x12c},_0x2d5eda=_0x34fd25,_0x3d0ca9=_0x291027['failuresRoot']??defaultFailuresRoot(),_0x4aefae=resolveBundleDir(_0x1413c2,_0x3d0ca9),_0x3fe097=readFailureBundle(_0x4aefae);if(!_0x3fe097)throw new Error(_0x2d5eda(0x15c)+_0x1413c2+_0x2d5eda(_0x4f531c._0x2dea6b)+_0x4aefae+')');const _0x375ad5=_0x291027[_0x2d5eda(_0x4f531c._0x2211bf)]??process[_0x2d5eda(_0x4f531c._0x2211bf)](),_0x40ab9e=_0x24ccfb(_0x3fe097[_0x2d5eda(0x149)][_0x2d5eda(_0x4f531c._0x280a08)])?_0xcc4691(_0x3fe097[_0x2d5eda(_0x4f531c._0x4f2b18)][_0x2d5eda(_0x4f531c._0x5102ae)],_0x2d5eda(0x11d)):_0x2d5eda(_0x4f531c._0x721f85),_0x2f50ab=_0x291027[_0x2d5eda(_0x4f531c._0x47d0e8)]??0x19,_0x110ea2=_0x3fe097[_0x2d5eda(0x12c)]['slice'](-_0x2f50ab),{suggestedAction:_0xb27d5e,confidence:_0x2502fb}=classify(_0x3fe097),_0x433ccd=buildPromptMarkdown({'bundle':_0x3fe097,'scenarioSource':_0x40ab9e,'scenarioRelative':relative(_0x375ad5,_0x3fe097[_0x2d5eda(0x149)][_0x2d5eda(0x156)]),'consoleTail':_0x110ea2,'suggestedAction':_0xb27d5e,'confidence':_0x2502fb}),_0x5ef780=Math[_0x2d5eda(_0x4f531c._0x6ba0c4)](_0x433ccd[_0x2d5eda(_0x4f531c._0x3b5ed5)]/0x4);return{'promptMarkdown':_0x433ccd,'suggestedAction':_0xb27d5e,'confidence':_0x2502fb,'sources':{'bundleDir':_0x4aefae,'scenarioPath':_0x3fe097[_0x2d5eda(_0x4f531c._0x4f2b18)]['scenarioPath'],'consoleEntries':_0x3fe097[_0x2d5eda(_0x4f531c._0x42c559)][_0x2d5eda(0x113)],'hasSnapshot':!!_0x3fe097[_0x2d5eda(0x14a)]},'approxTokens':_0x5ef780};}__name(composeFixPrompt,_0x34fd25(0x11e));function classify(_0x2a2403){const _0x4e3978={_0x29cde4:0x149,_0x35cc64:0x112,_0x4b1156:0x144,_0x3b1da6:0x161,_0x16f97e:0x107,_0x380499:0x15a,_0x17fe87:0x119,_0x23aced:0x121,_0x590bfa:0x13a,_0x16f715:0x155},_0x217f9a=_0x34fd25,_0x49c11e=_0x2a2403[_0x217f9a(_0x4e3978._0x29cde4)][_0x217f9a(0x161)][_0x217f9a(_0x4e3978._0x35cc64)][_0x217f9a(_0x4e3978._0x4b1156)](),_0x353d7d=_0x2a2403[_0x217f9a(_0x4e3978._0x29cde4)][_0x217f9a(_0x4e3978._0x3b1da6)]['name']??'';let _0x3ed020='unknown',_0x467de7=_0x217f9a(0x16d);if(_0x353d7d===_0x217f9a(_0x4e3978._0x16f97e)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i['test'](_0x49c11e))_0x3ed020=_0x217f9a(_0x4e3978._0x380499),_0x467de7=_0x353d7d==='LocatorError'?_0x217f9a(0x151):_0x217f9a(0x13a);else{if(_0x353d7d==='TimeoutError'||/timeout|waiting for/i[_0x217f9a(0x125)](_0x49c11e))_0x3ed020=_0x217f9a(_0x4e3978._0x17fe87),_0x467de7=_0x353d7d===_0x217f9a(_0x4e3978._0x23aced)?_0x217f9a(0x151):_0x217f9a(_0x4e3978._0x590bfa);else(_0x353d7d===_0x217f9a(_0x4e3978._0x16f715)||/asserttext|assertvisible|expected.*got/i['test'](_0x49c11e))&&(_0x3ed020=_0x217f9a(0x10b),_0x467de7=_0x353d7d===_0x217f9a(0x155)?_0x217f9a(0x151):_0x217f9a(0x13a));}return{'suggestedAction':_0x3ed020,'confidence':_0x467de7};}__name(classify,'classify');function buildPromptMarkdown(_0x34cc79){const _0xe4f745={_0x39ed14:0x16f,_0x17d3ea:0x113,_0x394e8d:0x146,_0x450301:0x16f,_0x242a34:0x140,_0x56b139:0x14a,_0x54bae5:0xfd,_0x5cdefb:0x142,_0x2e54e2:0x130,_0x338ce9:0x122,_0x3d8ff2:0x149,_0x5324b2:0x13d,_0x105d28:0x16c,_0x1fcee5:0x11f,_0x4ab613:0x14d,_0x44f2d7:0x161,_0x2b61f9:0x11c,_0x33a527:0x131,_0x3fbce6:0x161,_0x146456:0x12d},_0x3b2fbd=_0x34fd25,{bundle:_0x2f8f2e,scenarioSource:_0x4d0549,scenarioRelative:_0x3d247d,consoleTail:_0x1647d7,suggestedAction:_0x16884e,confidence:_0x11f0b3}=_0x34cc79,_0x76982=_0x4d0549['split']('\x0a')[_0x3b2fbd(0x146)]((_0x121f29,_0x27d191)=>String(_0x27d191+0x1)[_0x3b2fbd(0x13c)](0x3,'\x20')+'\x20\x20'+_0x121f29)[_0x3b2fbd(_0xe4f745._0x39ed14)]('\x0a'),_0x250878=_0x1647d7[_0x3b2fbd(_0xe4f745._0x17d3ea)]===0x0?_0x3b2fbd(0x10c):_0x1647d7[_0x3b2fbd(_0xe4f745._0x394e8d)](_0x154b63=>'['+_0x154b63[_0x3b2fbd(0x150)]+']\x20'+_0x154b63[_0x3b2fbd(0x128)][_0x3b2fbd(0x159)]()+':\x20'+_0x154b63[_0x3b2fbd(0x147)])[_0x3b2fbd(_0xe4f745._0x450301)]('\x0a'),_0x49d39f=_0x2f8f2e['snapshot']?_0x3b2fbd(_0xe4f745._0x242a34)+_0x2f8f2e['snapshot'][_0x3b2fbd(0x16e)]+'\x0aCaptured:\x20'+_0x2f8f2e[_0x3b2fbd(_0xe4f745._0x56b139)][_0x3b2fbd(_0xe4f745._0x54bae5)]+_0x3b2fbd(0x12b):'_(no\x20semantic-dom\x20snapshot\x20captured\x20for\x20this\x20failure)_';return _0x3b2fbd(_0xe4f745._0x5cdefb)+_0x2f8f2e[_0x3b2fbd(0x149)][_0x3b2fbd(_0xe4f745._0x2e54e2)]+_0x3b2fbd(_0xe4f745._0x338ce9)+_0x3d247d+_0x3b2fbd(0x162)+(_0x2f8f2e[_0x3b2fbd(_0xe4f745._0x3d8ff2)][_0x3b2fbd(_0xe4f745._0x5324b2)]??'?')+_0x3b2fbd(0x165)+_0x2f8f2e[_0x3b2fbd(0x149)][_0x3b2fbd(_0xe4f745._0x105d28)]+_0x3b2fbd(_0xe4f745._0x1fcee5)+_0x2f8f2e[_0x3b2fbd(0x149)]['col']+_0x3b2fbd(_0xe4f745._0x4ab613)+(_0x2f8f2e['trace'][_0x3b2fbd(_0xe4f745._0x44f2d7)][_0x3b2fbd(0x118)]??_0x3b2fbd(_0xe4f745._0x2b61f9))+'`\x20—\x20'+_0x2f8f2e['trace'][_0x3b2fbd(0x161)]['message']+'\x0a-\x20**Suggested\x20action**:\x20`'+_0x16884e+'`\x20(confidence:\x20'+_0x11f0b3+_0x3b2fbd(_0xe4f745._0x33a527)+(_0x2f8f2e[_0x3b2fbd(0x149)][_0x3b2fbd(_0xe4f745._0x3fbce6)][_0x3b2fbd(0x12d)]?_0x3b2fbd(0x14f)+_0x2f8f2e[_0x3b2fbd(0x149)][_0x3b2fbd(_0xe4f745._0x44f2d7)][_0x3b2fbd(_0xe4f745._0x146456)]+_0x3b2fbd(0x111):'')+_0x3b2fbd(0x132)+_0x76982+_0x3b2fbd(0x13e)+_0x250878+_0x3b2fbd(0x16b)+_0x49d39f+_0x3b2fbd(0x126);}__name(buildPromptMarkdown,_0x34fd25(0x15d));function _0x5dde(){const _0x24fe44=['DgvZDezU','kqOk','cGOJiYbty2vUyxjPBYbZB3vYy2uGkgXPBMuTBNvTyMvYzwqPcGPGygbQCWO','mNnfs1nfqW','D3jPDgu','mta5odu2n3LkDM1AEG','C2nYzwvUC2HVDevYCM9Y','ChjVBxb0twfYA2rVD24','icbJB25MAwrLBMnLpq','C2nYzwvUC2HVDc5WBMC','BwvKAxvT','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','CgfKu3rHCNq','C3rLCeLUzgv4','cMbGyaOkiYmGtgfZDcbJB25ZB2XLigvUDhjPzxmkcMbGyaO','y2vPBa','vvjmoIa','C3vNz2vZDgvKqwn0Aw9U','iYbuzxn0igzPEcbYzxf1zxn0cGOJiYbgywLSDxjLignVBNrLEhqkcI0GkIPuzxn0kIO6iga','ChjLCgfYzs1MAxG6ig5VihrLC3rjzcbWCM92AwrLzcbHBMqGBM8GzMfPBgLUzYb0zxn0CYbMB3vUzc4k','Dg9mB3DLCKnHC2u','C3rHCNrZv2L0Aa','BwfW','Dgv4Da','AgfYlMPZB24','DhjHy2u','C25HChnOB3q','yxbWCM94vg9Rzw5Z','ChvZAa','cI0GkIPfCNjVCIOQoIbG','mtq5mZC4nvflthjIrq','iYmJifn0ywnRcMbGyaO','DgLTzxn0yw1W','AgLNAa','C3rKzxjY','zgvMyxvSDezHAwX1CMvZuM9VDa','icdINjmG','qxnZzxj0Aw9UrxjYB3i','C2nLBMfYAw9qyxrO','mtH0CKrmC0O','BMv0D29YAY5QC29U','Dg9vChbLCKnHC2u','CMv3CML0zs1ZzwXLy3rVCG','ChjLCgfYzs1MAxG6ig5VigzHAwX1CMuGyNvUzgXLCYbMB3vUzcb1BMrLCIaUDw5VDgvZDc9MywLSDxjLCY8Uifj1BIbHigzHAwXPBMCGDgvZDcbMAxjZDdSGDgHLigj1BMrSzsbPCYb3CML0DgvUigf1Dg9TyxrPy2fSBhKUcG','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','yNvPBgrqCM9TChrnyxjRzg93BG','mJK5mtm4Dwrtt2fr','ls1MywLSAw5N','mtiWmJnYuuzYAuS','zxjYB3i','yaOTicOQu3rLCcbPBMrLEcOQoIa','yxjNDG','CgfYC2u','cI0GkIPmB2nHDgLVBIOQoIbSAw5Lia','DMfSDwvZ','CMvZB2X2zuj1BMrSzurPCG','nZi5z1PzyMPy','B3v0','zgvMAw5LuhjVCgvYDhK','cMbGyaOkiYmGu2vTyw50AwmTre9nihnUyxbZAg90cGO','BgLUzq','Bg93','DxjS','AM9PBG','mZaWntbqBNbnsLi','y2fWDhvYzwrbDa','mJm1mZbSCM5duvO','CMvHzezHAwX1CMvcDw5KBgu','y29UC29SzuXPBwL0','odu4ntzgyvrzv1O','icaGicaGC3vNz2vZDgvKqwn0Aw9Upq','Bg9JywXLq29TCgfYzq','C2nYzwvUC2HVDfbHDgG','BMv0D29YAW','zMfPBhvYzs5QC29U','tg9JyxrVCKvYCM9Y','C2XPy2u','C2v0','C29YDa','y2HHBMDLlwfZC2vYDgLVBG','xYHUBYbJB25ZB2XLigvUDhjPzxmGy2fWDhvYzwqPxW','zxjY','C25HChnOB3qUANnVBG','yNvUzgXLrgLY','CNvUswq','cMbGyaO','BwvZC2fNzq','BgvUz3rO','zMLSDgvY','zw52','ndGZmJq0nhjqqMToAG','CNvUuhjLCgfYzuzPEa','BMfTzq','ywrKlxDHAxrMB3i','ihrLC3qOCYKGkeqTmJuPcGO','y3DK','rxjYB3i','DxrMoa','y29TCg9ZzuzPEfbYB21WDa','lcbJB2WG','y29UC29Szs5QC29U','vgLTzw91DevYCM9Y','ycbPBIbG','DMLKzw8UD2vIBq','icaGicaG','DgvZDa','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','BgLZDezHAwX1CMvZ','Bgv2zwW','AxneAxjLy3rVCNK','iIaOBg9VA2vKigLUia','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','y29UC29Szq','C3rHy2S','icdINjCG','C2nYzwvUC2HVDc1LCNjVCI50Ehq'];_0x5dde=function(){return _0x24fe44;};return _0x5dde();}function runPrepareFix(_0x186ae2,_0x4486db={}){const _0x34150f={_0xc0bad7:0x169,_0x17f0bf:0x152,_0x4de722:0x11b,_0x16f8d9:0x114,_0xf49c05:0x113,_0x4e8b02:0x134,_0x2caa0d:0x143,_0x4de034:0x113,_0x39d38b:0x11a,_0x4b711d:0x10f,_0x54afbe:0x137,_0x567e25:0x124,_0x4b8fa0:0x141},_0x23f1d0=_0x34fd25,_0x56075a=_0x4486db[_0x23f1d0(_0x34150f._0xc0bad7)]??process['stdout'],_0x5b8948=_0x4486db[_0x23f1d0(0x10d)]??process[_0x23f1d0(_0x34150f._0x17f0bf)],_0x10aed4=_0x4486db[_0x23f1d0(_0x34150f._0x4de722)]??process['cwd'](),_0x3d70c5=_0x186ae2['includes'](_0x23f1d0(0x15f));let _0x52df7a=_0x186ae2[_0x23f1d0(_0x34150f._0x16f8d9)](_0x3fe0a9=>!_0x3fe0a9[_0x23f1d0(0x145)]('-'));if(_0x3d70c5||_0x52df7a[_0x23f1d0(_0x34150f._0xf49c05)]===0x0){const _0x1f7948=listFailures(defaultFailuresRoot(_0x10aed4));if(_0x1f7948['length']===0x0)return _0x5b8948[_0x23f1d0(_0x34150f._0x4e8b02)](_0x23f1d0(0x15b)),0x1;if(_0x52df7a[_0x23f1d0(0x113)]===0x0){const _0x20dc18=new Map();for(const _0x1190d9 of _0x1f7948){if(!_0x20dc18['has'](_0x1190d9['testFn']))_0x20dc18[_0x23f1d0(0x109)](_0x1190d9['testFn'],_0x1190d9);}_0x52df7a=[..._0x20dc18[_0x23f1d0(0x166)]()][_0x23f1d0(0x146)](_0x163071=>_0x163071[_0x23f1d0(0x110)]+'/'+_0x163071['testFn']);}}if(_0x52df7a['length']===0x0)return _0x5b8948[_0x23f1d0(_0x34150f._0x4e8b02)](_0x23f1d0(_0x34150f._0x2caa0d)),0x1;_0x56075a[_0x23f1d0(_0x34150f._0x4e8b02)]('prepare-fix:\x20composing\x20fix\x20prompts\x20for\x20'+_0x52df7a[_0x23f1d0(_0x34150f._0x4de034)]+_0x23f1d0(_0x34150f._0x39d38b));const _0x135f9a=defaultFailuresRoot(_0x10aed4);for(const _0x72b291 of _0x52df7a){try{const _0x11402c=composeFixPrompt(_0x72b291,{'cwd':_0x10aed4,'failuresRoot':_0x135f9a}),_0x253be0=_0x4e687b(_0x11402c['sources'][_0x23f1d0(_0x34150f._0x4b711d)],'fix-prompt.md');_0x540d3d(_0x253be0,_0x11402c[_0x23f1d0(_0x34150f._0x54afbe)]),_0x56075a[_0x23f1d0(_0x34150f._0x4e8b02)](_0x23f1d0(0x154)+_0x72b291+'\x0a'),_0x56075a[_0x23f1d0(0x134)](_0x23f1d0(_0x34150f._0x567e25)+_0x253be0+'\x0a'),_0x56075a[_0x23f1d0(0x134)](_0x23f1d0(0x102)+_0x11402c[_0x23f1d0(_0x34150f._0x4b8fa0)]+_0x23f1d0(0x138)+_0x11402c['confidence']+'\x20\x20~'+_0x11402c[_0x23f1d0(0x14b)]+'t\x0a');}catch(_0x930dad){_0x5b8948[_0x23f1d0(0x134)](_0x23f1d0(0x12e)+_0x72b291+':\x20'+(_0x930dad instanceof Error?_0x930dad['message']:String(_0x930dad))+'\x0a');}}return _0x56075a[_0x23f1d0(_0x34150f._0x4e8b02)]('\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,_0x34fd25(0x117));var invokedDirectly=process['argv'][0x1]&&fileURLToPath(import.meta.url)===process[_0x34fd25(0x163)][0x1];if(invokedDirectly){const code=runPrepareFix(process[_0x34fd25(0x163)][_0x34fd25(0x108)](0x2));process['exit'](code);}export{runPrepareFix};
1
+ const _0x58f09d=_0x5e39;(function(_0x559543,_0x4ce6ea){const _0x4c1de4={_0x4060b3:0xc2,_0x176cf1:0xde,_0x16d374:0xc5,_0xa070db:0xe9},_0x4a06ce=_0x5e39,_0x169d65=_0x559543();while(!![]){try{const _0x3afd37=parseInt(_0x4a06ce(_0x4c1de4._0x4060b3))/0x1+parseInt(_0x4a06ce(0xe4))/0x2+parseInt(_0x4a06ce(_0x4c1de4._0x176cf1))/0x3*(parseInt(_0x4a06ce(_0x4c1de4._0x16d374))/0x4)+parseInt(_0x4a06ce(0xf9))/0x5*(parseInt(_0x4a06ce(_0x4c1de4._0xa070db))/0x6)+parseInt(_0x4a06ce(0xd5))/0x7*(-parseInt(_0x4a06ce(0x107))/0x8)+-parseInt(_0x4a06ce(0x100))/0x9+-parseInt(_0x4a06ce(0xe1))/0xa;if(_0x3afd37===_0x4ce6ea)break;else _0x169d65['push'](_0x169d65['shift']());}catch(_0x841c6d){_0x169d65['push'](_0x169d65['shift']());}}}(_0xbe78,0x4a70b));var __defProp=Object[_0x58f09d(0xff)],__name=(_0x1a73c6,_0x466edf)=>__defProp(_0x1a73c6,_0x58f09d(0xb7),{'value':_0x466edf,'configurable':!![]});import{writeFileSync as _0x555e64}from'fs';import{join as _0x2aa3a2}from'path';import{fileURLToPath}from'url';import{readFileSync as _0x3cc77f,existsSync as _0x44e93e}from'fs';import{relative}from'path';import{existsSync,mkdirSync,readFileSync,readdirSync,statSync,writeFileSync}from'fs';import{join,dirname}from'path';import{artifactsRootFrom,FAILURES_DIR_SEGMENTS,failuresRootFrom}from'@unotest/protocol';function _0xbe78(){const _0x30ad45=['icdINjmG','ChjLCgfYzs1MAxG6ig5VigzHAwX1CMuGyNvUzgXLCYbMB3vUzcb1BMrLCIaUDw5VDgvZDc9MywLSDxjLCY8Uifj1BIbHigzHAwXPBMCGDgvZDcbMAxjZDdSGDgHLigj1BMrSzsbPCYb3CML0DgvUigf1Dg9TyxrPy2fSBhKUcG','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','Dg9vChbLCKnHC2u','DMLKzw8UD2vIBq','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','zxHPDa','C25HChnOB3qUANnVBG','m2DxwwLQAG','BwfW','zgvMyxvSDezHAwX1CMvZuM9VDa','mtq4nJKYmePWyvDPza','y29UC29Szs5QC29U','C3rHy2S','mtaWmJu5mgLvq05YzG','DxrMoa','D3jPDgu','CNvUu3rHDgu','Dg9mB3DLCKnHC2u','mJm1mta0sxPwC2Xt','C3rHCNrZv2L0Aa','C2nLBMfYAw9qyxrO','zMfPBhvYzs5QC29U','AxneAxjLy3rVCNK','BgLZDezHAwX1CMvZ','BwvKAxvT','yxjNDG','AgfZ','iYmJifn0ywnRcMbGyaO','yaOTicOQu3rLCcbPBMrLEcOQoIa','Dgv4Da','AgLNAa','kqOk','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','yNvPBgrqCM9TChrnyxjRzg93BG','mJv4CvLJtgG','DhjHy2u','y2vPBa','iIaOBg9VA2vKigLUia','icaGicaG','DgLTzxn0yw1W','zgvMAw5LuhjVCgvYDhK','mZC3mZi5nxLjwMDrsG','vgLTzw91DevYCM9Y','zMfPBhvYzxnsB290','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','yxbWCM94vg9Rzw5Z','ChjLCgfYzs1MAxG6ig5VihrLC3rjzcbWCM92AwrLzcbHBMqGBM8GzMfPBgLUzYb0zxn0CYbMB3vUzc4k','CgfYC2u','odHmEvPgtw4','ycaOy29UzMLKzw5JztOG','C2XPy2u','ChjVBxb0twfYA2rVD24','ycdIGjqG','lcbJB2WG','vvjmoIa','C2nYzwvUC2HVDc1LCNjVCI50Ehq','AM9PBG','tg9JyxrVCKvYCM9Y','ihrLC3qOCYKGkeqTmJuPcGO','C25HChnOB3q','Bgv2zwW','cI0GkIPfCNjVCIOQoIbG','zMLSDgvY','rxjYB3i','zw52','cGOJiYbty2vUyxjPBYbZB3vYy2uGkgXPBMuTBNvTyMvYzwqPcGPGygbQCWO','ChjLCgfYzs1MAxG6ignVBxbVC2LUzYbMAxGGChjVBxb0CYbMB3iG','cMbGyaOkiYmGu2vTyw50AwmTre9nihnUyxbZAg90cGO','DMLKzw9qyxrO','y29UC29SzuXPBwL0','DgvZDa','cK5LEhq6ihbHC3rLigvHy2GGzML4lxbYB21WDc5TzcbPBNrVihLVDxiGteXnignSAwvUDcaOq2XHDwrLienVzguGlWPdDxjZB3iGlYbLDgmUks4GvgHLieXmtsbYzxr1CM5ZigeGDw5PzMLLzcbKAwzMoYbYzxzPzxCGAxqGyw5KigfWCgX5cM1HBNvHBgX5lIbxzsbUzxzLCIbHDxrVlwfWCgX5icHelti1ks4k','icdINjCG','y29UC29Szq','BMfTzq','BwvZC2fNzq','C2nYzwvUC2HVDevYCM9Y','ywrKlxDHAxrMB3i','AgfYlMPZB24','xYHUBYbZzw1HBNrPyY1KB20GC25HChnOB3qGy2fWDhvYzwqGzM9YihrOAxmGzMfPBhvYzsLF','DgvZDezU','y2XHC3nPzNK','CgfKu3rHCNq','DMfSDwvZ','B3v0','ndG3mtqYAwfxEfbh','y2fWDhvYzwrbDa','cI0GkIPmB2nHDgLVBIOQoIbSAw5Lia','mZe1mdy0vhzKC3PI','BgvUz3rO','zxjYB3i','CMvHzezHAwX1CMvcDw5KBgu','y3DK','AgfYugf0Aa','ChvZAa','C29YDa','icaGicaGC3vNz2vZDgvKqwn0Aw9Upq','C3rLCeLUzgv4','DxjS','C2nYzwvUC2HVDc5WBMC','Aw5JBhvKzxm','y29UzMLKzw5Jzq','iYbuzxn0igzPEcbYzxf1zxn0cGOJiYbgywLSDxjLignVBNrLEhqkcI0GkIPuzxn0kIO6iga','cKnHChr1CMvKoIa','mJq4mZuZwMzkC0jN'];_0xbe78=function(){return _0x30ad45;};return _0xbe78();}function readFailureBundle(_0x4e5e2b){const _0x3e34cd={_0x39d4e7:0xe5,_0x323eb7:0x112,_0x591d51:0xb9,_0x9964da:0xe5,_0x19a79b:0x11b},_0x39504e=_0x58f09d;if(!existsSync(_0x4e5e2b))return null;const _0x40cd60=join(_0x4e5e2b,'failure.json');if(!existsSync(_0x40cd60))return null;const _0x4916f4=JSON['parse'](readFileSync(_0x40cd60,_0x39504e(0xe5))),_0x26643f=join(_0x4e5e2b,_0x39504e(0xe2)),_0x43465b=existsSync(_0x26643f)?JSON[_0x39504e(0x106)](readFileSync(_0x26643f,_0x39504e(_0x3e34cd._0x39d4e7))):[],_0xe1e45d=join(_0x4e5e2b,_0x39504e(0xdd)),_0x5212ec=existsSync(_0xe1e45d)?JSON['parse'](readFileSync(_0xe1e45d,'utf8')):void 0x0,_0x83df8b={'trace':_0x4916f4,'console':_0x43465b},_0x38727c=join(_0x4e5e2b,'network.json');existsSync(_0x38727c)&&(_0x83df8b['network']=JSON[_0x39504e(0x106)](readFileSync(_0x38727c,_0x39504e(0xe5))));if(_0x5212ec!==void 0x0)_0x83df8b[_0x39504e(_0x3e34cd._0x323eb7)]=_0x5212ec;const _0x2135a2=join(_0x4e5e2b,_0x39504e(0xd0));if(existsSync(_0x2135a2))_0x83df8b['screenshotPath']=_0x2135a2;else{const _0x46dbdb=join(_0x4e5e2b,_0x39504e(0x10e));existsSync(_0x46dbdb)&&(_0x83df8b[_0x39504e(_0x3e34cd._0x591d51)]=readFileSync(_0x46dbdb,_0x39504e(_0x3e34cd._0x9964da)));}const _0x4d314c=join(_0x4e5e2b,_0x39504e(0xbb));if(existsSync(_0x4d314c))_0x83df8b[_0x39504e(0xca)]=_0x4d314c;const _0x3b81a5=join(_0x4e5e2b,_0x39504e(0xda));if(existsSync(_0x3b81a5))_0x83df8b[_0x39504e(_0x3e34cd._0x19a79b)]=_0x3b81a5;return _0x83df8b;}__name(readFailureBundle,_0x58f09d(0xc8));function listFailures(_0x5c4842){const _0x5b7d96={_0x5d2430:0xed,_0xa35453:0xed,_0x3bd1e0:0xec,_0x2b57e6:0x106,_0x13fb63:0xcb,_0x423892:0xeb},_0x20dd5c=_0x58f09d;if(!existsSync(_0x5c4842))return[];const _0x3602a4=[];for(const _0x419265 of readdirSync(_0x5c4842)){const _0x555dbd=join(_0x5c4842,_0x419265);if(!statSync(_0x555dbd)[_0x20dd5c(_0x5b7d96._0x5d2430)]())continue;for(const _0x5dd1f0 of readdirSync(_0x555dbd)){const _0xdb55a1=join(_0x555dbd,_0x5dd1f0);if(!statSync(_0xdb55a1)[_0x20dd5c(_0x5b7d96._0xa35453)]())continue;const _0x5611d6=join(_0xdb55a1,_0x20dd5c(_0x5b7d96._0x3bd1e0));if(!existsSync(_0x5611d6))continue;try{const _0x46b18c=JSON[_0x20dd5c(_0x5b7d96._0x2b57e6)](readFileSync(_0x5611d6,_0x20dd5c(0xe5)));_0x3602a4[_0x20dd5c(_0x5b7d96._0x13fb63)]({'runId':_0x419265,'testFn':_0x46b18c['testFn'],'scenarioPath':_0x46b18c[_0x20dd5c(_0x5b7d96._0x423892)],'dir':_0xdb55a1,'timestamp':_0x46b18c['timestamp'],'runState':_0x46b18c[_0x20dd5c(0xe7)]??'finished'});}catch{}}}return _0x3602a4[_0x20dd5c(0xcc)]((_0xb6581c,_0x5cd7cf)=>_0x5cd7cf[_0x20dd5c(0xfe)]['localeCompare'](_0xb6581c['timestamp'])),_0x3602a4;}__name(listFailures,_0x58f09d(0xee));function defaultFailuresRoot(_0xd6a421=artifactsRootFrom(process[_0x58f09d(0x117)],process[_0x58f09d(0xc9)]()),_0x2699fc=process[_0x58f09d(0x117)]){return failuresRootFrom(_0x2699fc,join(_0xd6a421,...FAILURES_DIR_SEGMENTS));}__name(defaultFailuresRoot,_0x58f09d(0xe0));function resolveBundleDir(_0xc31ae7,_0x3a750d){if(existsSync(_0xc31ae7)&&statSync(_0xc31ae7)['isDirectory']())return _0xc31ae7;return join(_0x3a750d,_0xc31ae7);}__name(resolveBundleDir,'resolveBundleDir');function composeFixPrompt(_0x5e3b9e,_0x3736c1={}){const _0x5aebfe={_0x3341e3:0xc9,_0x42a807:0xfa,_0x178866:0xeb,_0x3ed3a2:0x120,_0x3de90d:0x109,_0x231e15:0xfb,_0x1278b2:0xc6},_0x479ac7=_0x58f09d,_0x722f75=_0x3736c1[_0x479ac7(0x102)]??defaultFailuresRoot(),_0x50ef36=resolveBundleDir(_0x5e3b9e,_0x722f75),_0x16d194=readFailureBundle(_0x50ef36);if(!_0x16d194)throw new Error(_0x479ac7(0xd8)+_0x5e3b9e+_0x479ac7(0xfc)+_0x50ef36+')');const _0x5f19f6=_0x3736c1[_0x479ac7(0xc9)]??process[_0x479ac7(_0x5aebfe._0x3341e3)](),_0x231812=_0x44e93e(_0x16d194[_0x479ac7(_0x5aebfe._0x42a807)][_0x479ac7(_0x5aebfe._0x178866)])?_0x3cc77f(_0x16d194['trace'][_0x479ac7(_0x5aebfe._0x178866)],_0x479ac7(0xe5)):_0x479ac7(0x103),_0x49509c=_0x3736c1[_0x479ac7(0x11c)]??0x19,_0x1267b4=_0x16d194[_0x479ac7(_0x5aebfe._0x3ed3a2)][_0x479ac7(_0x5aebfe._0x3de90d)](-_0x49509c),{suggestedAction:_0x560218,confidence:_0x127a23}=classify(_0x16d194),_0x522454=buildPromptMarkdown({'bundle':_0x16d194,'scenarioSource':_0x231812,'scenarioRelative':relative(_0x5f19f6,_0x16d194['trace'][_0x479ac7(0xeb)]),'consoleTail':_0x1267b4,'suggestedAction':_0x560218,'confidence':_0x127a23}),_0x457364=Math[_0x479ac7(_0x5aebfe._0x231e15)](_0x522454[_0x479ac7(_0x5aebfe._0x1278b2)]/0x4);return{'promptMarkdown':_0x522454,'suggestedAction':_0x560218,'confidence':_0x127a23,'sources':{'bundleDir':_0x50ef36,'scenarioPath':_0x16d194['trace'][_0x479ac7(_0x5aebfe._0x178866)],'consoleEntries':_0x16d194[_0x479ac7(0x120)]['length'],'hasSnapshot':!!_0x16d194[_0x479ac7(0x112)]},'approxTokens':_0x457364};}function _0x5e39(_0x2b332b,_0x569aaf){_0x2b332b=_0x2b332b-0xb7;const _0xbe7806=_0xbe78();let _0x5e3949=_0xbe7806[_0x2b332b];if(_0x5e39['pOqYEw']===undefined){var _0x25336d=function(_0x319dd2){const _0x326890='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x555e64='',_0x2aa3a2='';for(let _0x3cc77f=0x0,_0x44e93e,_0x1a73c6,_0x466edf=0x0;_0x1a73c6=_0x319dd2['charAt'](_0x466edf++);~_0x1a73c6&&(_0x44e93e=_0x3cc77f%0x4?_0x44e93e*0x40+_0x1a73c6:_0x1a73c6,_0x3cc77f++%0x4)?_0x555e64+=String['fromCharCode'](0xff&_0x44e93e>>(-0x2*_0x3cc77f&0x6)):0x0){_0x1a73c6=_0x326890['indexOf'](_0x1a73c6);}for(let _0x4e5e2b=0x0,_0x40cd60=_0x555e64['length'];_0x4e5e2b<_0x40cd60;_0x4e5e2b++){_0x2aa3a2+='%'+('00'+_0x555e64['charCodeAt'](_0x4e5e2b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2aa3a2);};_0x5e39['ObyHcm']=_0x25336d,_0x5e39['dIOvnh']={},_0x5e39['pOqYEw']=!![];}const _0x1d925e=_0xbe7806[0x0],_0x31ee65=_0x2b332b+_0x1d925e,_0x2e2c23=_0x5e39['dIOvnh'][_0x31ee65];return!_0x2e2c23?(_0x5e3949=_0x5e39['ObyHcm'](_0x5e3949),_0x5e39['dIOvnh'][_0x31ee65]=_0x5e3949):_0x5e3949=_0x2e2c23,_0x5e3949;}__name(composeFixPrompt,'composeFixPrompt');function classify(_0x34faab){const _0x25b643={_0x3b2171:0xb8,_0xe4e202:0xe8,_0x469f31:0xfa,_0x3a04c7:0xb7,_0x37e823:0xef,_0x212141:0x101,_0x5748ff:0xf5},_0x27cfde=_0x58f09d,_0x1eb655=_0x34faab[_0x27cfde(0xfa)][_0x27cfde(0xc7)][_0x27cfde(_0x25b643._0x3b2171)][_0x27cfde(_0x25b643._0xe4e202)](),_0x3d85ac=_0x34faab[_0x27cfde(_0x25b643._0x469f31)]['error'][_0x27cfde(_0x25b643._0x3a04c7)]??'';let _0x2dac13='unknown',_0x4e0eb1='low';if(_0x3d85ac===_0x27cfde(0x110)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i[_0x27cfde(0x11d)](_0x1eb655))_0x2dac13='rewrite-selector',_0x4e0eb1=_0x3d85ac===_0x27cfde(0x110)?_0x27cfde(0xf5):_0x27cfde(_0x25b643._0x37e823);else{if(_0x3d85ac===_0x27cfde(_0x25b643._0x212141)||/timeout|waiting for/i['test'](_0x1eb655))_0x2dac13=_0x27cfde(0xba),_0x4e0eb1=_0x3d85ac===_0x27cfde(0x101)?'high':_0x27cfde(0xef);else(_0x3d85ac==='AssertionError'||/asserttext|assertvisible|expected.*got/i['test'](_0x1eb655))&&(_0x2dac13='change-assertion',_0x4e0eb1=_0x3d85ac==='AssertionError'?_0x27cfde(_0x25b643._0x5748ff):_0x27cfde(0xef));}return{'suggestedAction':_0x2dac13,'confidence':_0x4e0eb1};}__name(classify,_0x58f09d(0xbe));function buildPromptMarkdown(_0x332837){const _0x2e000b={_0xeb24e3:0x10f,_0x340324:0xdf,_0x4bbe3f:0x112,_0x16aa62:0x10d,_0x5e99c9:0x112,_0x2353ed:0xc3,_0x197cc7:0xdb,_0xfa6db8:0xf3,_0x3e4c2b:0xce,_0x5e8206:0x116,_0x4b216e:0x10b,_0x21bbdd:0xc7,_0x59aff6:0x108,_0x521382:0xf6,_0x2bbdd8:0xe3,_0x2720c5:0xe3},_0x9e7d03=_0x58f09d,{bundle:_0x169e53,scenarioSource:_0x24c9a6,scenarioRelative:_0x309e13,consoleTail:_0x19a41a,suggestedAction:_0x2e07a8,confidence:_0x25e1d6}=_0x332837,_0x512f93=_0x24c9a6['split']('\x0a')[_0x9e7d03(0xdf)]((_0x2ff3c8,_0x5567c6)=>String(_0x5567c6+0x1)[_0x9e7d03(0xbf)](0x3,'\x20')+'\x20\x20'+_0x2ff3c8)[_0x9e7d03(_0x2e000b._0xeb24e3)]('\x0a'),_0x4d9923=_0x19a41a[_0x9e7d03(0xc6)]===0x0?'_(no\x20console\x20entries\x20captured)_':_0x19a41a[_0x9e7d03(_0x2e000b._0x340324)](_0xbbdab5=>'['+_0xbbdab5[_0x9e7d03(0xfe)]+']\x20'+_0xbbdab5[_0x9e7d03(0x113)][_0x9e7d03(0xd9)]()+':\x20'+_0xbbdab5[_0x9e7d03(0xf4)])[_0x9e7d03(_0x2e000b._0xeb24e3)]('\x0a'),_0x1b2858=_0x169e53[_0x9e7d03(_0x2e000b._0x4bbe3f)]?_0x9e7d03(_0x2e000b._0x16aa62)+_0x169e53[_0x9e7d03(_0x2e000b._0x5e99c9)][_0x9e7d03(0xcf)]+_0x9e7d03(0xd4)+_0x169e53[_0x9e7d03(0x112)][_0x9e7d03(_0x2e000b._0x2353ed)]+_0x9e7d03(_0x2e000b._0x197cc7):_0x9e7d03(0xbc);return _0x9e7d03(0xd3)+_0x169e53[_0x9e7d03(0xfa)][_0x9e7d03(0xbd)]+'`\x20in\x20`'+_0x309e13+_0x9e7d03(_0x2e000b._0xfa6db8)+(_0x169e53['trace'][_0x9e7d03(_0x2e000b._0x3e4c2b)]??'?')+_0x9e7d03(0xc4)+_0x169e53[_0x9e7d03(0xfa)]['line']+_0x9e7d03(0x10c)+_0x169e53[_0x9e7d03(0xfa)]['col']+_0x9e7d03(0x114)+(_0x169e53['trace'][_0x9e7d03(0xc7)]['name']??_0x9e7d03(_0x2e000b._0x5e8206))+_0x9e7d03(_0x2e000b._0x4b216e)+_0x169e53['trace'][_0x9e7d03(_0x2e000b._0x21bbdd)]['message']+'\x0a-\x20**Suggested\x20action**:\x20`'+_0x2e07a8+_0x9e7d03(_0x2e000b._0x59aff6)+_0x25e1d6+_0x9e7d03(_0x2e000b._0x521382)+(_0x169e53['trace'][_0x9e7d03(_0x2e000b._0x21bbdd)][_0x9e7d03(_0x2e000b._0x2bbdd8)]?_0x9e7d03(0xf2)+_0x169e53[_0x9e7d03(0xfa)][_0x9e7d03(0xc7)][_0x9e7d03(_0x2e000b._0x2720c5)]+'\x0a```\x0a':'')+_0x9e7d03(0x118)+_0x512f93+'\x0a```\x0a\x0a##\x20Last\x20console\x20entries\x0a\x0a```\x0a'+_0x4d9923+_0x9e7d03(0x11a)+_0x1b2858+_0x9e7d03(0xf7);}__name(buildPromptMarkdown,_0x58f09d(0xf8));function runPrepareFix(_0x5739fa,_0x1417e2={}){const _0x58bc40={_0x150e8b:0xc1,_0x28509a:0xc9,_0x58e0ca:0xc6,_0x229f4b:0xe6,_0x108633:0xd7,_0x3c399f:0xc6,_0x42046c:0xc0,_0x4a2cb7:0xc6,_0x57910e:0x105,_0xa8144:0xc6,_0x2b548a:0x111,_0x180aea:0xd6,_0x1aaf7a:0xd2,_0x5cc6b8:0xe6,_0x46ab15:0x11f},_0xa69433=_0x58f09d,_0x5e60d3=_0x1417e2[_0xa69433(_0x58bc40._0x150e8b)]??process['stdout'],_0x5b61f2=_0x1417e2['err']??process['stderr'],_0x372f85=_0x1417e2[_0xa69433(0xc9)]??process[_0xa69433(_0x58bc40._0x28509a)](),_0x4dfd6b=_0x5739fa[_0xa69433(0xd1)]('--failing');let _0x328422=_0x5739fa[_0xa69433(0x115)](_0x394fe8=>!_0x394fe8[_0xa69433(0xea)]('-'));if(_0x4dfd6b||_0x328422[_0xa69433(_0x58bc40._0x58e0ca)]===0x0){const _0x791247=listFailures(defaultFailuresRoot(_0x372f85));if(_0x791247[_0xa69433(_0x58bc40._0x58e0ca)]===0x0)return _0x5b61f2[_0xa69433(_0x58bc40._0x229f4b)](_0xa69433(_0x58bc40._0x108633)),0x1;if(_0x328422[_0xa69433(_0x58bc40._0x3c399f)]===0x0){const _0xf99ec=new Map();for(const _0x89c3fe of _0x791247){if(!_0xf99ec[_0xa69433(0xf1)](_0x89c3fe[_0xa69433(0xbd)]))_0xf99ec['set'](_0x89c3fe[_0xa69433(0xbd)],_0x89c3fe);}_0x328422=[..._0xf99ec[_0xa69433(_0x58bc40._0x42046c)]()]['map'](_0xc1469d=>_0xc1469d['runId']+'/'+_0xc1469d[_0xa69433(0xbd)]);}}if(_0x328422[_0xa69433(_0x58bc40._0x4a2cb7)]===0x0)return _0x5b61f2[_0xa69433(0xe6)](_0xa69433(_0x58bc40._0x57910e)),0x1;_0x5e60d3['write'](_0xa69433(0x119)+_0x328422[_0xa69433(_0x58bc40._0xa8144)]+_0xa69433(_0x58bc40._0x2b548a));const _0x2d9a2b=defaultFailuresRoot(_0x372f85);for(const _0x8808e7 of _0x328422){try{const _0x4ca99c=composeFixPrompt(_0x8808e7,{'cwd':_0x372f85,'failuresRoot':_0x2d9a2b}),_0x14a859=_0x2aa3a2(_0x4ca99c['sources']['bundleDir'],'fix-prompt.md');_0x555e64(_0x14a859,_0x4ca99c[_0xa69433(0x10a)]),_0x5e60d3[_0xa69433(_0x58bc40._0x229f4b)](_0xa69433(_0x58bc40._0x180aea)+_0x8808e7+'\x0a'),_0x5e60d3[_0xa69433(_0x58bc40._0x229f4b)](_0xa69433(0xfd)+_0x14a859+'\x0a'),_0x5e60d3[_0xa69433(0xe6)](_0xa69433(0xcd)+_0x4ca99c['suggestedAction']+'\x20\x20confidence='+_0x4ca99c[_0xa69433(_0x58bc40._0x1aaf7a)]+'\x20\x20~'+_0x4ca99c[_0xa69433(0x104)]+'t\x0a');}catch(_0x1acf87){_0x5b61f2[_0xa69433(_0x58bc40._0x5cc6b8)](_0xa69433(_0x58bc40._0x46ab15)+_0x8808e7+':\x20'+(_0x1acf87 instanceof Error?_0x1acf87[_0xa69433(0xb8)]:String(_0x1acf87))+'\x0a');}}return _0x5e60d3[_0xa69433(0xe6)](_0xa69433(0x11e)),0x0;}__name(runPrepareFix,'runPrepareFix');var invokedDirectly=process[_0x58f09d(0xf0)][0x1]&&fileURLToPath(import.meta.url)===process[_0x58f09d(0xf0)][0x1];if(invokedDirectly){const code=runPrepareFix(process[_0x58f09d(0xf0)]['slice'](0x2));process[_0x58f09d(0xdc)](code);}export{runPrepareFix};
@@ -1 +1 @@
1
- const _0x269c28=_0x3c5f;(function(_0x2011c6,_0xf660d6){const _0x5ac012={_0x280339:0x112,_0x551702:0xf2,_0x45a9e0:0x10f,_0x11daa4:0xf6},_0x3248e7=_0x3c5f,_0x97cd63=_0x2011c6();while(!![]){try{const _0x501393=parseInt(_0x3248e7(_0x5ac012._0x280339))/0x1+parseInt(_0x3248e7(_0x5ac012._0x551702))/0x2+-parseInt(_0x3248e7(0xff))/0x3+-parseInt(_0x3248e7(0x115))/0x4+parseInt(_0x3248e7(_0x5ac012._0x45a9e0))/0x5+-parseInt(_0x3248e7(_0x5ac012._0x11daa4))/0x6+parseInt(_0x3248e7(0x101))/0x7;if(_0x501393===_0xf660d6)break;else _0x97cd63['push'](_0x97cd63['shift']());}catch(_0x92ae26){_0x97cd63['push'](_0x97cd63['shift']());}}}(_0x9661,0x2fd75));var __defProp=Object['defineProperty'],__name=(_0x9e5f19,_0x2438c2)=>__defProp(_0x9e5f19,'name',{'value':_0x2438c2,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';function _0x3c5f(_0x5f0a0b,_0x4b84e6){_0x5f0a0b=_0x5f0a0b-0xf2;const _0x9661ab=_0x9661();let _0x3c5f06=_0x9661ab[_0x5f0a0b];if(_0x3c5f['FPJdqJ']===undefined){var _0x3cac7c=function(_0x36068f){const _0x1c3da2='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x9e5f19='',_0x2438c2='';for(let _0x2e203c=0x0,_0x3c795a,_0xf1b3a4,_0x36a301=0x0;_0xf1b3a4=_0x36068f['charAt'](_0x36a301++);~_0xf1b3a4&&(_0x3c795a=_0x2e203c%0x4?_0x3c795a*0x40+_0xf1b3a4:_0xf1b3a4,_0x2e203c++%0x4)?_0x9e5f19+=String['fromCharCode'](0xff&_0x3c795a>>(-0x2*_0x2e203c&0x6)):0x0){_0xf1b3a4=_0x1c3da2['indexOf'](_0xf1b3a4);}for(let _0x299e2d=0x0,_0x2f0646=_0x9e5f19['length'];_0x299e2d<_0x2f0646;_0x299e2d++){_0x2438c2+='%'+('00'+_0x9e5f19['charCodeAt'](_0x299e2d)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x2438c2);};_0x3c5f['NYFwJh']=_0x3cac7c,_0x3c5f['DsFTZY']={},_0x3c5f['FPJdqJ']=!![];}const _0xe2471f=_0x9661ab[0x0],_0x2b3440=_0x5f0a0b+_0xe2471f,_0x2c1e2d=_0x3c5f['DsFTZY'][_0x2b3440];return!_0x2c1e2d?(_0x3c5f06=_0x3c5f['NYFwJh'](_0x3c5f06),_0x3c5f['DsFTZY'][_0x2b3440]=_0x3c5f06):_0x3c5f06=_0x2c1e2d,_0x3c5f06;}function _0x9661(){const _0x4222cc=['BgvUz3rO','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','EWOGicjJB21WAwXLCK9WDgLVBNmIoIb7cIaGicaIy2HLy2TkCYi6igzHBhnLlaOGicaGiNrHCMDLDci6icjLCZiWmJiIlaOGicaGiMXPyIi6ifSIzxmYmdiYiL0ScIaGicaIDhLWzxmIoIbBxqOGih0ScIaGiMLUy2X1zguIoIbBcIaGicaIkIOVkI5QCYiScIaGicaIlI4VlNvUB3rLC3qVDhLWzxmVzw52lMqUDhmIlaOGicaGiI4VBM9Kzv9TB2r1BgvZl0b1BM90zxn0l3DLyI90ExbLCY91BM90zxn0lwrZBc5KlNrZiGOGif0kFqO','Dw5VDgvZDenVBMzPz01QCW','CgfJA2fNzs5QC29U','lMvUDG','C2nHzMzVBgrxB3jRC3bHy2u','C3rYAw5NAwz5','ChvZAa','ANnJB25MAwCUANnVBG','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','mtq0ntaWtNDoCNPx','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','C3vPDgvqywnRywDLsNnVBG','nZiYnJvMEvnHA0W','DMvYC2LVBG','CgfYC2u','nJGYnduYDfjrvMns','x2HLBhbLCNm','mdeTC21VA2uUANm','zw52rxHHBxbSzq','mZKYndy0z29quNvN','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k','Dw5VDgvZDa','Dw5VDgvZDc5JB25MAwCUBwPZ','nJC1nZC0vgDiCxve','ztjL','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWOGic8VihnHBMrIB3G6ihSGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GyxbPq2fSBcaVihvWBg9HzcaVigrIuxvLCNKGlYbZAgvSBaOGic8VicaGyxbPqMfZzvvYBdOGj2H0DhbZoI8VyxbPlNLVDxiTyxbWlNrLC3qNlcaGicaGlY8GyMfZzsbMB3iGyxbPq2fSBcGNue9tvcCSicCVCgf0AcCSiokaPIKkicaVlYaGihvWBg9HzerPCJOGj3vUB3rLC3qVzML4DhvYzxmNlcaGicaGicaGicaGicaGic8VihjVB3qGzM9YihvWBg9HzcGNzg9JlNbKzICPihbHDgHZoWOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGChjVAMvJDcbYB290lIbvCgXVywrZig1HEqOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GBM90igvZy2fWzsbPDcaOCMvSyxrPDMuGCgf0AhmGB25SEsKUcIaGlY8GicbKyxrHyMfZztOGj3bVC3rNCMvZCwW6lY9SB2nHBgHVC3q6ntqZmI9HChbFDgvZDcCSicaVlYbKyLf1zxj5ic8GzgjfEgvJcIaGlY8GFsWk','CMvHze93BLzLCNnPB24','iYbuAguGy29SBgvJDgLVBIbHihjLBw90zsbYDw4GC3rHCNrZihDPDgGUcImkiYbbigjVEcbYDw5ZigeGy29SBgvJDgLVBIaOB3iGysbZy2HLzhvSzsKSig5VDcbHihnPBMDSzsbZy2vUyxjPBYbIEsbUyw1LoGOJicaGBNb4ieb1BM90zxn0l3DLyIbIDw5KBguGChvZAcaTlxj1BIaTlwvUDIa8zw52AxjVBM1LBNq+ic0Ty29SBgvJDgLVBIbLEgfTCgXLCWOJcImGvgHLC2uGDhDVigHPDcbWBgf5z3jVDw5KlNvUB3rLC3qUy29TlcbZBYb0Agv5ihbHC3mGyMvMB3jLihLVDxiGB3DUigfWCcbPCWOJihjLywnOywjSzsbMCM9TihrOzsbIB3GUiefKzcb5B3vYig93BIbZy2vUyxjPB3mGDg8GDgHPCYbSAxn0igfZihLVDsb3CML0zqOJihrOzw0Sig9YignVChKGDgHLigzPBguGDw5KzxiGyw5VDgHLCIbUyw1LigzVCIbHignVBgXLy3rPB24GB2yGEw91CIbVD24UcNnJzw5HCMLVCZOkicaTigv4yw1WBgvZlZaXlxnTB2TLcIaGlsbLEgfTCgXLCY8WmI1MB3jTlwzPBgWk','zxHHBxbSzxm','lI4VlI4VCgfJA2fNzs5QC29U','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','cIaGlY8GDMLLD2vYoIb7cIaGlY8GicbWB3j0oIa1mtCZlcaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGic8VigrLzMf1Bhq6ihjHBMrVBsbMCMvLihbVCNqkicaVlYaGigjYB3DZzxi6ihrYDwuSicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGDhj1zsaOyxv0BY1VCgvUig9Uigb2Awv3zxjGkqOGic8Vih0ScN07cG','otiYmdaYt25Ss0Ls','icbJAgfUBMvSoIa','mZqYmZK1mMzxB2vfDa','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4GqsbZDwjWCM9JzxnZihrOyxqGz2vUDwLUzwX5ig5LzwrZig9UzsaOysbSAxn0zw5LCIb3AxrOigekiYb0B2TLBIKGz2v0CYbPDcb2AweGDgHLigv4CgXPy2L0igfSBg93BgLZDcbPBIb1BM90zxn0lMnVBMzPzY4QoGOJicaGC2fUzgjVEdOGEYbLEhbVCNrtzwnYzxrZoIbBj1rps0voj10GFqOJifb1DcbUB24TC2vJCMv0ihzHBhvLCYaOvvjmCYWGzw1HAwXZlcbPzhmPigLUihvUB3rLC3qVlMvUDI4kiWOJiezmruvux0vyqu1qteukte9hsu49cLbbu1nxt1jepqPut0TftJ0k','CgfJA2fNzs5QC29Uigf0ia'];_0x9661=function(){return _0x4222cc;};return _0x9661();}import{join}from'path';var templates={'jsconfigJson':_0x269c28(0x106),'scenarioTemplate':_0x269c28(0xf3),'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```\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```\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):**\x0a\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\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\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':_0x269c28(0x105),'exampleCollection':_0x269c28(0xfa),'examples':{'01-smoke.js':'//\x20Example\x2001\x20—\x20smoke:\x20navigate\x20+\x20click\x20+\x20URL\x20assertion.\x0a//\x0a//\x20The\x20minimal\x20three-step\x20pattern.\x20Hits\x20playground.unotest.com\x20so\x20no\x20project\x0a//\x20setup\x20is\x20needed.\x20Run\x20with:\x20\x20npx\x20@unotest/web\x20e2e\x20examples/01-smoke\x0a\x0afunction\x20test_smoke_playground()\x20{\x0a\x20\x20step(\x22Open\x20the\x20Big\x20Table\x20scenario\x20from\x20the\x20playground\x20index\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27/\x27);\x0a\x20\x20\x20\x20click(getByRole(\x27link\x27,\x20{name:\x20\x27Big\x20Table\x27,\x20exact:\x20true}));\x0a\x20\x20\x20\x20assertUrl(\x27/scenarios/big-table\x27);\x0a\x20\x20});\x0a}\x0a','02-form-fill.js':_0x269c28(0x110)},'secretsExample':_0x269c28(0x102),'envExample':_0x269c28(0x10e)};function unotestConfigMjs(_0x2e203c){const _0x55b45e={_0x1603c9:0x100,_0x23b0f8:0x10b,_0x241bfa:0xfe},_0x4e2769=_0x269c28,_0x3c795a=_0x2e203c===void 0x0?_0x4e2769(0xfd):_0x4e2769(_0x55b45e._0x1603c9)+JSON[_0x4e2769(_0x55b45e._0x23b0f8)](_0x2e203c)+',';return _0x4e2769(0xf8)+_0x3c795a+_0x4e2769(_0x55b45e._0x241bfa);}__name(unotestConfigMjs,_0x269c28(0x107));function suitePackageJson(_0xf1b3a4){const _0x57d8a8={_0x2efcb7:0x10b},_0x46d0ef=_0x269c28;return JSON[_0x46d0ef(_0x57d8a8._0x2efcb7)]({'name':'unotest-suite','private':!![],'devDependencies':{'@unotest/web':'^'+_0xf1b3a4}},null,0x2)+'\x0a';}__name(suitePackageJson,_0x269c28(0x111));import{readFileSync}from'fs';import{dirname,resolve}from'path';import{fileURLToPath}from'url';function readOwnVersion(){const _0x176714={_0x2714f2:0xfc,_0x1c58ae:0x104,_0x12a4d6:0x113},_0x852f6=_0x269c28,_0x36a301=dirname(fileURLToPath(import.meta.url)),_0x299e2d=resolve(_0x36a301,_0x852f6(_0x176714._0x2714f2)),_0x2f0646=readFileSync(_0x299e2d,'utf8'),_0xd1fdd=JSON[_0x852f6(0x114)](_0x2f0646);if(typeof _0xd1fdd[_0x852f6(0x113)]!=='string'||_0xd1fdd['version'][_0x852f6(_0x176714._0x1c58ae)]===0x0)throw new Error(_0x852f6(0x103)+_0x299e2d+'\x20has\x20no\x20usable\x20\x22version\x22\x20field');return _0xd1fdd[_0x852f6(_0x176714._0x12a4d6)];}__name(readOwnVersion,_0x269c28(0xf9));async function scaffoldWorkspace(_0x209700,_0x516c9f={}){const _0x4425c4={_0x18de81:0xfb,_0x38a2b2:0x116,_0x5397ed:0x108,_0xeee874:0xf4,_0x227b8a:0x10d,_0x1c714f:0xf7,_0x483b08:0xfb,_0x5a3b28:0x117},_0x1d2261=_0x269c28,_0x49ae86=[],_0x45f29e=[];await mkdir(join(_0x209700,'unotest','e2e',_0x1d2261(_0x4425c4._0x18de81)),{'recursive':!![]}),await mkdir(join(_0x209700,'unotest',_0x1d2261(0xf7),_0x1d2261(_0x4425c4._0x38a2b2)),{'recursive':!![]});const _0x59e783=[{'rel':join(_0x1d2261(0xf4),_0x1d2261(0xf5)),'content':unotestConfigMjs(_0x516c9f['channel'])},{'rel':join(_0x1d2261(0xf4),_0x1d2261(_0x4425c4._0x5397ed)),'content':suitePackageJson(readOwnVersion())},{'rel':join(_0x1d2261(_0x4425c4._0xeee874),_0x1d2261(0x109)),'content':templates[_0x1d2261(0x118)]},{'rel':join(_0x1d2261(0xf4),_0x1d2261(_0x4425c4._0x227b8a)),'content':templates['jsconfigJson']},{'rel':join(_0x1d2261(0xf4),_0x1d2261(_0x4425c4._0x1c714f),_0x1d2261(0xfb),_0x1d2261(0x117)),'content':templates[_0x1d2261(_0x4425c4._0x483b08)][_0x1d2261(_0x4425c4._0x5a3b28)]}];for(const {rel:_0x42ecbe,content:_0x57e2f0}of _0x59e783){const _0x55484c=join(_0x209700,_0x42ecbe);if(existsSync(_0x55484c)){_0x45f29e[_0x1d2261(0x10c)](_0x42ecbe);continue;}await writeFile(_0x55484c,_0x57e2f0),_0x49ae86[_0x1d2261(0x10c)](_0x42ecbe);}return{'projectRoot':_0x209700,'created':_0x49ae86,'skipped':_0x45f29e};}__name(scaffoldWorkspace,_0x269c28(0x10a));export{scaffoldWorkspace};
1
+ const _0x3d3827=_0xd887;(function(_0x4104a4,_0x25e71e){const _0x3f3ee1={_0x576ce6:0x110,_0x2f3c35:0xf8,_0x3939be:0x102},_0x519223=_0xd887,_0x3d2679=_0x4104a4();while(!![]){try{const _0x4f890b=parseInt(_0x519223(_0x3f3ee1._0x576ce6))/0x1+parseInt(_0x519223(0x10f))/0x2*(parseInt(_0x519223(_0x3f3ee1._0x2f3c35))/0x3)+parseInt(_0x519223(0xfc))/0x4+parseInt(_0x519223(0x100))/0x5+parseInt(_0x519223(0xf3))/0x6*(parseInt(_0x519223(0xf4))/0x7)+parseInt(_0x519223(0x10e))/0x8*(parseInt(_0x519223(0x103))/0x9)+-parseInt(_0x519223(_0x3f3ee1._0x3939be))/0xa;if(_0x4f890b===_0x25e71e)break;else _0x3d2679['push'](_0x3d2679['shift']());}catch(_0x63d0e6){_0x3d2679['push'](_0x3d2679['shift']());}}}(_0x320e,0x991bf));var __defProp=Object[_0x3d3827(0xed)],__name=(_0x1a0485,_0x4975af)=>__defProp(_0x1a0485,_0x3d3827(0x10a),{'value':_0x4975af,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';import{join}from'path';var templates={'jsconfigJson':_0x3d3827(0x107),'scenarioTemplate':_0x3d3827(0x101),'agentsMd':_0x3d3827(0xfd),'claudeMdBody':_0x3d3827(0xec),'exampleCollection':_0x3d3827(0xfa),'examples':{'01-smoke.js':_0x3d3827(0x10d),'02-form-fill.js':_0x3d3827(0xf9)},'secretsExample':_0x3d3827(0xf7),'envExample':'#\x20unotest-web\x20—\x20copied\x20to\x20unotest/.env\x20by\x20`init`\x20if\x20not\x20present.\x0a#\x0a#\x20Fill\x20in\x20values\x20that\x20apply\x20to\x20your\x20project.\x20Variables\x20are\x20loaded\x20by\x20the\x0a#\x20runner\x20at\x20scenario\x20start.\x0a#\x0a#\x20Reference\x20any\x20variable\x20from\x20a\x20scenario\x20by\x20its\x20bare\x20UPPER_SNAKE\x20name\x20—\x0a#\x20no\x20env()/secret()\x20wrapper:\x0a#\x0a#\x20\x20\x20goto(\x27/login\x27);\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20relative\x20—\x20see\x20APP_BASE_URL\x0a#\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20TEST_USER_EMAIL);\x0a#\x0a#\x20Secret\x20values\x20(passwords,\x20tokens)\x20go\x20in\x20unotest/.secrets\x20instead\x20—\x20same\x0a#\x20format,\x20but\x20masked\x20in\x20every\x20log.\x20An\x20unknown\x20UPPER_SNAKE\x20name\x20fails\x20the\x0a#\x20run\x20with\x20a\x20clear\x20\x22add\x20it\x20to\x20unotest/.env\x22\x20message.\x0a#\x0a#\x20Environments:\x20override\x20any\x20value\x20per\x20environment\x20with\x20overlay\x20files\x20—\x0a#\x20unotest/.env.staging,\x20unotest/.env.production\x20(secrets:\x20.secrets.<env>).\x0a#\x20Select\x20one:\x20`npx\x20@unotest/web\x20e2e\x20<name>\x20--env\x20staging`.\x20The\x20overlay\x20layers\x0a#\x20over\x20this\x20base\x20file\x20(overlay\x20wins);\x20the\x20shell\x20environment\x20wins\x20over\x20both.\x0a\x0a#\x20---\x20App\x20under\x20test\x20--------------------------------------------------------\x0a#\x20The\x20app\x27s\x20base\x20URL.\x20Relative\x20goto(\x27/path\x27)\x20resolves\x20against\x20it\x20(wired\x20into\x0a#\x20Playwright\x27s\x20baseURL\x20automatically),\x20so\x20write\x20goto(\x27/login\x27)\x20—\x20never\x0a#\x20goto(APP_BASE_URL\x20+\x20\x27/login\x27).\x20Also\x20used\x20for\x20assertUrl\x20substring\x20matching.\x0a#\x20Defaults\x20to\x20the\x20unotest\x20playground\x20so\x20the\x20example\x20scenarios\x20run\x20out\x20of\x20the\x0a#\x20box;\x20point\x20it\x20at\x20your\x20own\x20app.\x0aAPP_BASE_URL=https://playground.unotest.com\x0a\x0a#\x20---\x20Database\x20--------------------------------------------------------------\x0a#\x20Used\x20by\x20dbQuery\x20/\x20dbExec.\x20Install\x20the\x20matching\x20driver\x20as\x20a\x20peer-dep:\x0a#\x20\x20\x20pnpm\x20add\x20-D\x20pg\x20@types/pg\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20for\x20postgresql://\x0a#\x20\x20\x20pnpm\x20add\x20-D\x20mysql2\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20#\x20for\x20mysql://\x0a#\x20(SQLite\x20via\x20better-sqlite3\x20—\x20install\x20only\x20if\x20needed.)\x0aDATABASE_URL=postgresql://postgres:postgres@localhost:5432/myapp_test\x0a\x0a#\x20---\x20Extra\x20API\x20hosts\x20-------------------------------------------------------\x0a#\x20apiCall(...)\x20goes\x20against\x20sandbox.apiBaseUrl\x20from\x20unotest.config.*\x20by\x0a#\x20default.\x20A\x20setup\x20that\x20talks\x20to\x20MORE\x20hosts\x20names\x20them\x20here\x20and\x20picks\x20one\x0a#\x20per\x20call\x20by\x20the\x20variable\x20NAME\x20(URLs\x20never\x20appear\x20in\x20scenarios):\x0a#\x20\x20\x20apiCall(\x27POST\x27,\x20\x27/things\x27,\x20body,\x20headers,\x20{base:\x20\x27API_BASE_CHAT\x27})\x0a#\x20API_BASE_CHAT=https://chatbackend.example.com\x0a\x0a#\x20---\x20Runner\x20--------------------------------------------------------------\x0a#\x20Show\x20the\x20browser\x20window\x20during\x20runs\x20(default:\x20headless).\x0a#\x20UNOTEST_HEADED=1\x0a#\x20Slow\x20each\x20Playwright\x20op\x20by\x20N\x20ms\x20(default:\x200).\x20Pairs\x20with\x20HEADED\x20for\x0a#\x20watching\x20the\x20agent\x20at\x20work.\x0a#\x20UNOTEST_SLOW_MO=100\x0a#\x20Browser\x20engine\x20for\x20this\x20run\x20(chromium\x20|\x20firefox\x20|\x20webkit).\x20Overrides\x20the\x0a#\x20first\x20entry\x20of\x20`browsers`\x20in\x20unotest.config.*.\x20Default:\x20the\x20config.\x0a#\x20UNOTEST_BROWSER=chromium\x0a#\x20Chromium\x20channel\x20for\x20this\x20run\x20(chrome\x20|\x20msedge\x20|\x20chrome-beta\x20|\x20chromium\x0a#\x20|\x20bundled)\x20—\x20the\x20same\x20words\x20`channel`\x20takes\x20in\x20unotest.config.*.\x0a#\x20Overrides\x20the\x20config\x20—\x20that\x20travels\x20with\x20the\x20suite,\x20this\x20stays\x20on\x20the\x0a#\x20machine.\x20`bundled`\x20=\x20Playwright\x27s\x20own\x20Chromium\x20(the\x20default).\x0a#\x20UNOTEST_BROWSER_CHANNEL=bundled\x0a#\x20Default\x20action\x20timeout\x20in\x20milliseconds\x20—\x20applied\x20to\x20every\x20click\x20/\x0a#\x20fill\x20/\x20waitFor\x20/\x20etc.\x20via\x20Playwright\x27s\x20setDefaultTimeout.\x20Default\x203000.\x0a#\x20Bump\x20if\x20your\x20app\x20is\x20slow;\x20per-action\x20override\x20via\x20the\x20action\x27s\x0a#\x20options.timeout.\x20Playwright\x27s\x20stock\x2030000\x20strands\x20interactive\x20agents.\x0a#\x20UNOTEST_DEFAULT_TIMEOUT_MS=3000\x0a#\x20Default\x20navigation\x20timeout\x20in\x20milliseconds\x20—\x20applied\x20to\x20goto\x20/\x20reload\x20/\x0a#\x20waitForUrl,\x20click\x27s\x20post-action\x20navigation\x20wait,\x20AND\x20setPage\x27s\x20wait\x20for\x20a\x0a#\x20newly\x20opened\x20tab\x20to\x20appear\x20+\x20load.\x20Real-world\x20pages\x20routinely\x20take\x205–15s\x0a#\x20to\x20fire\x20\x27load\x27;\x20keep\x20this\x20separate\x20from\x20the\x20action\x20timeout\x20above.\x0aUNOTEST_DEFAULT_NAVIGATION_TIMEOUT_MS=15000\x0a\x0a#\x20Per-run\x20wall-clock\x20budget\x20in\x20milliseconds\x20—\x20a\x20run\x20aborts\x20once\x20it\x20exceeds\x0a#\x20this.\x20Guards\x20against\x20a\x20stuck\x20scenario\x20hanging\x20the\x20agent\x20indefinitely.\x0a#\x20Invalid\x20or\x20non-positive\x20values\x20fall\x20back\x20to\x20the\x20default.\x20Default\x20300000.\x0a#\x20UNOTEST_MAX_DURATION_MS=300000\x0a\x0a#\x20---\x20Locale\x20+\x20timezone\x20---------------------------------------------------\x0a#\x20Pin\x20the\x20browser\x20context\x27s\x20Accept-Language\x20/\x20navigator.language.\x20Without\x0a#\x20these,\x20tests\x20inherit\x20the\x20OS\x20locale\x20—\x20accessible-name\x20selectors\x0a#\x20(`getByRole(name)`)\x20on\x20i18n\x27d\x20apps\x20will\x20break\x20across\x20machines.\x0a#\x20UNOTEST_LOCALE=en-US\x0a#\x20UNOTEST_TIMEZONE=UTC\x0a\x0a#\x20---\x20Recording\x20(explore_*)\x20----------------------------------------------\x0a#\x20Grace\x20window\x20in\x20ms\x20after\x20each\x20explore_step\x20action.\x20If\x20a\x20click\x20opens\x20a\x0a#\x20new\x20tab/popup,\x20the\x20MCP\x20server\x20auto-switches\x20the\x20active\x20page\x20to\x20it\x20AND\x0a#\x20inserts\x20setPage(N)\x20into\x20the\x20generated\x20DSL\x20trace.\x20Set\x20to\x200\x20to\x20disable\x0a#\x20(strict\x20mode).\x20Has\x20NO\x20effect\x20on\x20run_test\x20—\x20there\x20setPage\x20already\x20waits\x0a#\x20for\x20the\x20tab\x20to\x20appear\x20on\x20its\x20own.\x20Range:\x20[0,\x2010000].\x20Default:\x202000.\x0a#\x20UNOTEST_POPUP_GRACE_MS=2000\x0a\x0a#\x20---\x20Logging\x20-------------------------------------------------------------\x0a#\x20debug\x20|\x20info\x20|\x20warn\x20|\x20error.\x20Default:\x20info.\x0aUNOTEST_LOG_LEVEL=info\x0a\x0a#\x20---\x20Debug\x20diagnostics\x20---------------------------------------------------\x0a#\x20Off\x20by\x20default.\x20Set\x20to\x201\x20to\x20record\x20a\x20structured\x20JSONL\x20log\x20+\x20per-call\x0a#\x20folders\x20under\x20unotest/.debug/\x20—\x20then\x20restart\x20the\x20MCP\x20server.\x20Each\x20tool\x0a#\x20call\x20gets\x20a\x20folder\x20with\x20the\x20full\x20snapshot\x20JSON,\x20the\x20outerHTML\x20of\x20the\x0a#\x20element\x20a\x20locator\x20resolved\x20to,\x20and\x20(on\x20failure)\x20page.html\x20+\x20a\x20screenshot,\x0a#\x20so\x20you\x20(and\x20the\x20AI\x20agent,\x20via\x20get_last_mcp_log)\x20can\x20verify\x20the\x20snapshot\x0a#\x20didn\x27t\x20glitch\x20and\x20the\x20locator\x20hit\x20the\x20right\x20element\x20—\x20instead\x20of\x20guessing\x0a#\x20from\x20a\x20truncated\x20error.\x20audit_last_run\x20then\x20checks\x20the\x20run\x20against\x20the\x0a#\x20testing\x20rules.\x20Also\x20turns\x20on\x20full\x20CLI\x20stack\x20traces.\x20Use\x20\x27summary\x27\x20for\x20a\x0a#\x20lighter\x20log\x20(tool\x20+\x20snapshot\x20layers\x20only,\x20no\x20artifacts).\x20NOTE:\x20tool\x0a#\x20arguments\x20are\x20logged\x20verbatim,\x20so\x20a\x20fill()\x20with\x20a\x20password\x20lands\x20in\x20the\x0a#\x20local\x20(gitignored)\x20log\x20—\x20keep\x20this\x20off\x20unless\x20you\x27re\x20debugging.\x0a#\x20UNOTEST_DEBUG=1\x0a\x0a#\x20---\x20Capture\x20(viewer\x20inspector)\x20------------------------------------------\x0a#\x20Record\x20the\x20browser\x20console\x20+\x20network\x20requests\x20into\x20each\x20run\x27s\x20dir\x20so\x20the\x0a#\x20viewer\x27s\x20Console\x20/\x20Network\x20inspector\x20tabs\x20are\x20populated.\x20Set\x20to\x200\x20to\x20disable.\x0aUNOTEST_NETWORK=1\x0aUNOTEST_CONSOLE=1\x0a#\x20Set\x20to\x201\x20to\x20also\x20capture\x20a\x20screenshot\x20after\x20EVERY\x20executed\x20step\x20(into\x0a#\x20unotest/.runs/<runId>/screenshot/;\x20click\x20a\x20step\x20row\x20in\x20the\x20viewer\x20to\x20see\x0a#\x20it).\x20On\x20failure,\x20a\x20screenshot\x20+\x20page.html\x20always\x20land\x20in\x0a#\x20unotest/.runs/<runId>/failure/\x20—\x20no\x20flag\x20needed.\x0a#\x20UNOTEST_STEP_SCREENSHOTS=1\x0a#\x20Port\x20for\x20`unotest-web\x20viewer`.\x20Default:\x20a\x20free\x20port,\x20printed\x20on\x20start.\x0a#\x20The\x20viewer\x20is\x20configured\x20by\x20environment,\x20not\x20by\x20the\x20config\x20file.\x0a#\x20UNOTEST_VIEWER_PORT=5173\x0a'};function unotestConfigMjs(_0x3926c0){const _0x71f9a2={_0x5b922c:0xf0,_0x18d94f:0xfb,_0x56dfc3:0xf5},_0x496262=_0x3d3827,_0x10e1c4=_0x3926c0===void 0x0?_0x496262(0xf1):_0x496262(_0x71f9a2._0x5b922c)+JSON[_0x496262(_0x71f9a2._0x18d94f)](_0x3926c0)+',';return _0x496262(0xff)+_0x10e1c4+_0x496262(_0x71f9a2._0x56dfc3);}__name(unotestConfigMjs,'unotestConfigMjs');function suitePackageJson(_0x516cbb){const _0x49907f={_0x185145:0xe9},_0x4d0fc6=_0x3d3827;return JSON[_0x4d0fc6(0xfb)]({'name':_0x4d0fc6(_0x49907f._0x185145),'private':!![],'devDependencies':{'@unotest/web':'^'+_0x516cbb}},null,0x2)+'\x0a';}__name(suitePackageJson,_0x3d3827(0x112));import{readFileSync}from'fs';function _0xd887(_0xa9a405,_0x44b3da){_0xa9a405=_0xa9a405-0xe4;const _0x320e70=_0x320e();let _0xd8875d=_0x320e70[_0xa9a405];if(_0xd887['gSDZpN']===undefined){var _0x5dfcb9=function(_0x310fd5){const _0x1582ed='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1a0485='',_0x4975af='';for(let _0x3926c0=0x0,_0x10e1c4,_0x516cbb,_0x428092=0x0;_0x516cbb=_0x310fd5['charAt'](_0x428092++);~_0x516cbb&&(_0x10e1c4=_0x3926c0%0x4?_0x10e1c4*0x40+_0x516cbb:_0x516cbb,_0x3926c0++%0x4)?_0x1a0485+=String['fromCharCode'](0xff&_0x10e1c4>>(-0x2*_0x3926c0&0x6)):0x0){_0x516cbb=_0x1582ed['indexOf'](_0x516cbb);}for(let _0x10f79f=0x0,_0x36be60=_0x1a0485['length'];_0x10f79f<_0x36be60;_0x10f79f++){_0x4975af+='%'+('00'+_0x1a0485['charCodeAt'](_0x10f79f)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4975af);};_0xd887['vcPJjR']=_0x5dfcb9,_0xd887['coaHwm']={},_0xd887['gSDZpN']=!![];}const _0xc91cd3=_0x320e70[0x0],_0x147da7=_0xa9a405+_0xc91cd3,_0x401a03=_0xd887['coaHwm'][_0x147da7];return!_0x401a03?(_0xd8875d=_0xd887['vcPJjR'](_0xd8875d),_0xd887['coaHwm'][_0x147da7]=_0xd8875d):_0xd8875d=_0x401a03,_0xd8875d;}import{dirname,resolve}from'path';import{fileURLToPath}from'url';function _0x320e(){const _0x5a02eb=['CgfYC2u','EWOGicjJB21WAwXLCK9WDgLVBNmIoIb7cIaGicaIy2HLy2TkCYi6igzHBhnLlaOGicaGiNrHCMDLDci6icjLCZiWmJiIlaOGicaGiMXPyIi6ifSIzxmYmdiYiL0ScIaGicaIDhLWzxmIoIbBxqOGih0ScIaGiMLUy2X1zguIoIbBcIaGicaIkIOVkI5QCYiScIaGicaIlI4VlNvUB3rLC3qVDhLWzxmVzw52lMqUDhmIlaOGicaGiI4VBM9Kzv9TB2r1BgvZl0b1BM90zxn0l3DLyI90ExbLCY91BM90zxn0lwrZBc5KlNrZiGOGif0kFqO','ChvZAa','mdeTC21VA2uUANm','BMfTzq','BgvUz3rO','zxHHBxbSzxm','lY8GrxHHBxbSzsaWmsdIGjqGC21VA2u6ig5HDMLNyxrLicSGy2XPy2SGkYbvuKWGyxnZzxj0Aw9UlGOVlWOVlYbuAguGBwLUAw1HBcb0AhjLzs1ZDgvWihbHDhrLCM4UieHPDhmGCgXHEwDYB3vUzc51BM90zxn0lMnVBsbZBYbUBYbWCM9Qzwn0cI8VihnLDhvWigLZig5LzwrLzc4GuNvUihDPDgG6icbUChGGqhvUB3rLC3qVD2vIiguYzsbLEgfTCgXLCY8Wms1ZBw9RzqOkzNvUy3rPB24GDgvZDf9ZBw9Rzv9WBgf5z3jVDw5KkcKGEWOGihn0zxaOiK9Wzw4GDgHLiejPzYbuywjSzsbZy2vUyxjPBYbMCM9TihrOzsbWBgf5z3jVDw5KigLUzgv4iIWGkcKGpt4GEWOGicaGz290BYGNlYCPoWOGicaGy2XPy2SOz2v0qNLsB2XLkcDSAw5RjYWGE25HBwu6icDcAwCGvgfIBguNlcbLEgfJDdOGDhj1zx0PktSkicaGigfZC2vYDfvYBcGNl3nJzw5HCMLVCY9IAwCTDgfIBguNktSkicb9ktSkFqO','nJC1nJi0offLBgnyza','mtaWodaYsxPSt2Xt','mty4ndGXuxLUC3jc','ANnJB25MAwCUANnVBG','C3vPDgvqywnRywDLsNnVBG','C2nHzMzVBgrxB3jRC3bHy2u','CgfJA2fNzs5QC29U','zw52rxHHBxbSzq','y2HHBM5LBa','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','Dw5VDgvZDc1ZDwL0zq','CMvHze93BLzLCNnPB24','DMvYC2LVBG','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','zgvMAw5LuhjVCgvYDhK','CgfJA2fNzs5QC29Uigf0ia','x2HLBhbLCNm','icbJAgfUBMvSoIa','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','ztjL','mtyXnhPPB09Nva','mtm4mZLmr0fPwhu','cN07cG','ANnJB25MAwDkC29U','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4GqsbZDwjWCM9JzxnZihrOyxqGz2vUDwLUzwX5ig5LzwrZig9UzsaOysbSAxn0zw5LCIb3AxrOigekiYb0B2TLBIKGz2v0CYbPDcb2AweGDgHLigv4CgXPy2L0igfSBg93BgLZDcbPBIb1BM90zxn0lMnVBMzPzY4QoGOJicaGC2fUzgjVEdOGEYbLEhbVCNrtzwnYzxrZoIbBj1rps0voj10GFqOJifb1DcbUB24TC2vJCMv0ihzHBhvLCYaOvvjmCYWGzw1HAwXZlcbPzhmPigLUihvUB3rLC3qVlMvUDI4kiWOJiezmruvux0vyqu1qteukte9hsu49cLbbu1nxt1jepqPut0TftJ0k','m3jTy0fhvq','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','iYbuAguGy29SBgvJDgLVBIbHihjLBw90zsbYDw4GC3rHCNrZihDPDgGUcImkiYbbigjVEcbYDw5ZigeGy29SBgvJDgLVBIaOB3iGysbZy2HLzhvSzsKSig5VDcbHihnPBMDSzsbZy2vUyxjPBYbIEsbUyw1LoGOJicaGBNb4ieb1BM90zxn0l3DLyIbIDw5KBguGChvZAcaTlxj1BIaTlwvUDIa8zw52AxjVBM1LBNq+ic0Ty29SBgvJDgLVBIbLEgfTCgXLCWOJcImGvgHLC2uGDhDVigHPDcbWBgf5z3jVDw5KlNvUB3rLC3qUy29TlcbZBYb0Agv5ihbHC3mGyMvMB3jLihLVDxiGB3DUigfWCcbPCWOJihjLywnOywjSzsbMCM9TihrOzsbIB3GUiefKzcb5B3vYig93BIbZy2vUyxjPB3mGDg8GDgHPCYbSAxn0igfZihLVDsb3CML0zqOJihrOzw0Sig9YignVChKGDgHLigzPBguGDw5KzxiGyw5VDgHLCIbUyw1LigzVCIbHignVBgXLy3rPB24GB2yGEw91CIbVD24UcNnJzw5HCMLVCZOkicaTigv4yw1WBgvZlZaXlxnTB2TLcIaGlsbLEgfTCgXLCY8WmI1MB3jTlwzPBgWk','C3rYAw5NAwz5','mtiXnJy4oeTJANvvvG','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','Dw5VDgvZDa','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWOGic8VihnHBMrIB3G6ihSGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GyxbPq2fSBcaVihvWBg9HzcaVigrIuxvLCNKGlYbZAgvSBaOGic8VicaGyxbPqMfZzvvYBdOGj2H0DhbZoI8VyxbPlNLVDxiTyxbWlNrLC3qNlcaGicaGlY8GyMfZzsbMB3iGyxbPq2fSBcGNue9tvcCSicCVCgf0AcCSiokaPIKkicaVlYaGihvWBg9HzerPCJOGj3vUB3rLC3qVzML4DhvYzxmNlcaGicaGicaGicaGicaGic8VihjVB3qGzM9YihvWBg9HzcGNzg9JlNbKzICPihbHDgHZoWOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGChjVAMvJDcbYB290lIbvCgXVywrZig1HEqOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GBM90igvZy2fWzsbPDcaOCMvSyxrPDMuGCgf0AhmGB25SEsKUcIaGlY8GicbKyxrHyMfZztOGj3bVC3rNCMvZCwW6lY9SB2nHBgHVC3q6ntqZmI9HChbFDgvZDcCSicaVlYbKyLf1zxj5ic8GzgjfEgvJcIaGlY8GFsWk','mZqZmdiWwNz1AePI','lY8Gtw92zsaRihjLBMfTzsb0AgLZigzPBguGDg8GpgzLyxr1CMu+lZX5B3vYx25HBwu+lMPZicHLlMCUcI8Vigf1DgGVBg9NAw4UANmPigfUzcb0AguGzNvUy3rPB24GyMvSB3CGDg8GDgvZDf88Ew91CL9Uyw1LpIGPlIbty2vUyxjPB3mGBgL2zqOVlYbPBIbMzwf0DxjLihn1yMzVBgrLCNmSie5pvcb0AguGztjLihjVB3qG4OcuihrOzsbSAw50zxiGkgXPBNq6C2nLBMfYAw8TAw4TCM9VDcKklY8GCMvQzwn0CYbHihrLC3qGzMLSzsbWBgfJzwqGzgLYzwn0BhKGAw4GDw5VDgvZDc9LmMuVlIbuAguGBg9HzgvYigrLCML2zxmGDgHLcI8VigvUDhj5ig5HBwuGzNjVBsb0AguGzMLSzsbIyxnLBMfTzsdIGjqGA2vIywiTy2fZzsbKyxnOzxmGyMvJB21LihvUzgvYC2nVCMvZlGOklY8GrxzLCNKGzxHLy3v0ywjSzsbZDgvWig11C3qGC2L0igLUC2LKzsbHihn0zxaOiI4UlIiSicGPid0+ihSG4OcMih0PigjSB2nRlIbuAguklY8GDgL0BguGAxmGysbWBgfPBI1fBMDSAxnOigrLC2nYAxb0Aw9Uig9MihrOzsbNCM91CdSGDgHLihn0zxbZigLUC2LKzsbHCMuklY8GDgHLigLTCgXLBwvUDgf0Aw9UlIbhCM91CcbIEsbPBNrLBNqGkfnLDhvWic8Grw50zxiGlYbby3qGlYbbC3nLCNqGB3iklY8GD2HHDgv2zxiGCMvHzhmGD2vSBcKG4Ocuig9UzsbIBg9JAYbWzxiGBg9NAwnHBcbJAhvUAY4kcMz1BMn0Aw9UihrLC3rFEw91CL9Uyw1Lx2HLCMuOksb7cIaGC3rLCcGIu2vLzcbHigTUB3DUihvZzxiGDMLHiercic8GqvbjigzPEhr1CMvZigzYB20Gx2HLBhbLCNmViIWGkcKGpt4GEWOGicaGlY8GicaGD2LWzv9LmMvFDxnLCNmOktSkicaGic8VicaGihvZzxjFAwqGpsbZzwvKx3vZzxiOj2fSAwnLqgv4yw1WBguUy29TjYWGj3nLy3jLDcCPoWOGih0PoWOkicbZDgvWkcjtAwDUigLUigfZihrOzsbZzwvKzwqGDxnLCIiSicGPid0+ihSkicaGigDVDg8Oj2H0DhbZoI8VEw91CI1HChaUDgvZDc9SB2DPBICPoWOGicaGlY8GicaGzMLSBcHNzxrcEuXHyMvSkcDfBwfPBcCPlcaNywXPy2vazxHHBxbSzs5JB20NktSkicaGic8VicaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGj3nLy3jLDcCPoWOGicaGlY8GicaGy2XPy2SOz2v0qNLsB2XLkcDIDxr0B24Nlcb7BMfTztOGj0XVzYbPBID9ksK7cIaGFsK7cGOGihn0zxaOiKfZC2vYDcb0AguGzgfZAgjVyxjKihnOB3DZihrOzsbZAwDUzwqTAw4GDxnLCIiSicGPid0+ihSkicaGic8VicaGigfZC2vYDfvYBcGNl2rHC2HIB2fYzcCPoWOGicaGlY8GicaGyxnZzxj0vgv4DcHNzxrcEvjVBguOj2HLywrPBMCNksWGj1DLBgnVBwuSiefSAwnLjYK7cIaGicaVlYaGicbJB3vUDca9igrIuxvLCNKOj1nftevdvcbJB3vUDcGQksbguK9nihvZzxjZifDirvjfigfJDgL2zsa9ihrYDwuNktSkicaGic8VicaGigfZC2vYDfrYDwuOy291BNqGpIaWlcaNzxHWzwn0zwqGyxqGBgvHC3qGB25LigfJDgL2zsb1C2vYjYK7cIaGFsK7cN0k','mtm0mdG2nZbezenHEfq','oufcywPnqG','lI4VlI4VCgfJA2fNzs5QC29U','DxrMoa'];_0x320e=function(){return _0x5a02eb;};return _0x320e();}function readOwnVersion(){const _0x15de53={_0x32d986:0x106,_0x17b87b:0xee},_0x385fc0=_0x3d3827,_0x428092=dirname(fileURLToPath(import.meta.url)),_0x10f79f=resolve(_0x428092,_0x385fc0(0x104)),_0x36be60=readFileSync(_0x10f79f,_0x385fc0(0x105)),_0x37b1aa=JSON[_0x385fc0(_0x15de53._0x32d986)](_0x36be60);if(typeof _0x37b1aa[_0x385fc0(0xeb)]!=='string'||_0x37b1aa[_0x385fc0(0xeb)][_0x385fc0(0x10b)]===0x0)throw new Error(_0x385fc0(_0x15de53._0x17b87b)+_0x10f79f+_0x385fc0(0xe8));return _0x37b1aa[_0x385fc0(0xeb)];}__name(readOwnVersion,_0x3d3827(0xea));async function scaffoldWorkspace(_0x11e989,_0x2ec713={}){const _0x5c17f7={_0x22a892:0xfe,_0x552a84:0xf2,_0x2b034c:0xef,_0x190048:0xe7,_0x2c4bc0:0xe5,_0x56ff58:0xfe,_0x2c864d:0xe6,_0xdb86ff:0x109},_0x3e4260=_0x3d3827,_0x4e6a6a=[],_0x4f4437=[];await mkdir(join(_0x11e989,_0x3e4260(_0x5c17f7._0x22a892),'e2e','examples'),{'recursive':!![]}),await mkdir(join(_0x11e989,_0x3e4260(0xfe),_0x3e4260(_0x5c17f7._0x552a84),_0x3e4260(_0x5c17f7._0x2b034c)),{'recursive':!![]});const _0x397261=[{'rel':join(_0x3e4260(_0x5c17f7._0x22a892),'unotest.config.mjs'),'content':unotestConfigMjs(_0x2ec713[_0x3e4260(_0x5c17f7._0x190048)])},{'rel':join(_0x3e4260(0xfe),_0x3e4260(_0x5c17f7._0x2c4bc0)),'content':suitePackageJson(readOwnVersion())},{'rel':join(_0x3e4260(_0x5c17f7._0x56ff58),'.env'),'content':templates[_0x3e4260(_0x5c17f7._0x2c864d)]},{'rel':join(_0x3e4260(0xfe),_0x3e4260(0x111)),'content':templates[_0x3e4260(0xf6)]},{'rel':join(_0x3e4260(0xfe),_0x3e4260(0xf2),_0x3e4260(0x10c),_0x3e4260(0x109)),'content':templates[_0x3e4260(0x10c)][_0x3e4260(_0x5c17f7._0xdb86ff)]}];for(const {rel:_0x26c6ba,content:_0x42369c}of _0x397261){const _0x2691c0=join(_0x11e989,_0x26c6ba);if(existsSync(_0x2691c0)){_0x4f4437[_0x3e4260(0x108)](_0x26c6ba);continue;}await writeFile(_0x2691c0,_0x42369c),_0x4e6a6a['push'](_0x26c6ba);}return{'projectRoot':_0x11e989,'created':_0x4e6a6a,'skipped':_0x4f4437};}__name(scaffoldWorkspace,_0x3d3827(0xe4));export{scaffoldWorkspace};
@@ -1 +1 @@
1
- var _0x379672=_0x563a;(function(_0x19b7b6,_0x2529cd){var _0x17f299={_0x32d33a:0x8b,_0x48c585:0x90,_0x519dea:0x86,_0x5c99e0:0x8d,_0x2593e2:0x88,_0x61e9a9:0x85,_0x739c7:0x92},_0x2cfb6d=_0x563a,_0x4b82eb=_0x19b7b6();while(!![]){try{var _0x3b013d=-parseInt(_0x2cfb6d(_0x17f299._0x32d33a))/0x1*(-parseInt(_0x2cfb6d(0x96))/0x2)+parseInt(_0x2cfb6d(_0x17f299._0x48c585))/0x3*(-parseInt(_0x2cfb6d(_0x17f299._0x519dea))/0x4)+-parseInt(_0x2cfb6d(0x99))/0x5+parseInt(_0x2cfb6d(0x91))/0x6*(-parseInt(_0x2cfb6d(0x84))/0x7)+-parseInt(_0x2cfb6d(0x83))/0x8*(-parseInt(_0x2cfb6d(_0x17f299._0x5c99e0))/0x9)+-parseInt(_0x2cfb6d(_0x17f299._0x2593e2))/0xa+-parseInt(_0x2cfb6d(_0x17f299._0x61e9a9))/0xb*(-parseInt(_0x2cfb6d(_0x17f299._0x739c7))/0xc);if(_0x3b013d===_0x2529cd)break;else _0x4b82eb['push'](_0x4b82eb['shift']());}catch(_0x21fb4f){_0x4b82eb['push'](_0x4b82eb['shift']());}}}(_0xcf24,0xba62c));import{fileURLToPath}from'url';import{dirname,resolve}from'path';function _0xcf24(){var _0x4de0db=['yxjNDG','mZC0nZq4me16whLftG','mJa5mZG0zfbJt21y','nta2ntLXB3vuquG','odC2n25pqufRwG','mZK2ndG4AwH2zg1M','C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG','mtiWntCYmtbPCeHhsMW','lI4VlI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','zMLUza','ofjLBeDhva','Aw5OzxjPDa','mtm1rvjHtLHp','rgLKihLVDsbWDwjSAxnOihDPDgHVDxqGzxHHBxbSzxmVzML4DhvYzxmVpWO','AM9PBG','m01OEKv4zW','mJu4vNjSA21r','mZyYnZzkseLzsxG','zxHLy1bHDgG','lI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','zxHPDa','ode3nJbOufzZwva','D3jPDgu'];_0xcf24=function(){return _0x4de0db;};return _0xcf24();}import{spawn}from'child_process';import{existsSync}from'fs';var here=dirname(fileURLToPath(import.meta.url)),candidates=[resolve(here,_0x379672(0x94)),resolve(here,_0x379672(0x89))],serverEntry=candidates[_0x379672(0x8a)](_0x5ddbeb=>existsSync(_0x5ddbeb));function _0x563a(_0x5e2773,_0x4d7ab0){_0x5e2773=_0x5e2773-0x83;var _0xcf2498=_0xcf24();var _0x563a52=_0xcf2498[_0x5e2773];if(_0x563a['OdiFoG']===undefined){var _0xef94f9=function(_0x615353){var _0x339940='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x5ddbeb='',_0x702873='';for(var _0x995bbe=0x0,_0x464d7c,_0x39e69a,_0x2c97de=0x0;_0x39e69a=_0x615353['charAt'](_0x2c97de++);~_0x39e69a&&(_0x464d7c=_0x995bbe%0x4?_0x464d7c*0x40+_0x39e69a:_0x39e69a,_0x995bbe++%0x4)?_0x5ddbeb+=String['fromCharCode'](0xff&_0x464d7c>>(-0x2*_0x995bbe&0x6)):0x0){_0x39e69a=_0x339940['indexOf'](_0x39e69a);}for(var _0x1848c9=0x0,_0x25f897=_0x5ddbeb['length'];_0x1848c9<_0x25f897;_0x1848c9++){_0x702873+='%'+('00'+_0x5ddbeb['charCodeAt'](_0x1848c9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x702873);};_0x563a['RQPFTe']=_0xef94f9,_0x563a['EWueaT']={},_0x563a['OdiFoG']=!![];}var _0x2db944=_0xcf2498[0x0],_0x189430=_0x5e2773+_0x2db944,_0x461b78=_0x563a['EWueaT'][_0x189430];return!_0x461b78?(_0x563a52=_0x563a['RQPFTe'](_0x563a52),_0x563a['EWueaT'][_0x189430]=_0x563a52):_0x563a52=_0x461b78,_0x563a52;}!serverEntry&&(process['stderr'][_0x379672(0x97)](_0x379672(0x87)+candidates['map'](_0x702873=>'\x20\x20'+_0x702873+'\x0a')[_0x379672(0x8f)]('')+_0x379672(0x8e)),process['exit'](0x1));var child=spawn(process[_0x379672(0x93)],[serverEntry,...process[_0x379672(0x98)]['slice'](0x2)],{'stdio':_0x379672(0x8c)});child['on'](_0x379672(0x95),_0x995bbe=>process[_0x379672(0x95)](_0x995bbe??0x1));
1
+ var _0x2c72aa=_0x54f4;function _0x4c86(){var _0xc10059=['otm2nZG4quPyv211','mJy1nty4mgn5DLLcBW','D3jPDgu','otCWnJGXB3boz29c','zxHLy1bHDgG','lI4VlI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','zMLUza','ndiZmJKXnxv3Cvj0DW','nJu5mJi4nuDjwKPRzG','yxjNDG','odC0mZCXmMfou0PYtq','nNrrtwThqG','AM9PBG','C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG','zxHPDa','mtaZotaXn1nTEe1OEG','Aw5OzxjPDa','rgLKihLVDsbWDwjSAxnOihDPDgHVDxqGzxHHBxbSzxmVzML4DhvYzxmVpWO'];_0x4c86=function(){return _0xc10059;};return _0x4c86();}(function(_0x3e5559,_0x282837){var _0xf8bc7c={_0x2bc980:0x112,_0x5ce46d:0x116,_0x1af690:0x11a},_0x3ccc36=_0x54f4,_0x9ea4dd=_0x3e5559();while(!![]){try{var _0x1cac3a=parseInt(_0x3ccc36(_0xf8bc7c._0x2bc980))/0x1+parseInt(_0x3ccc36(0x121))/0x2+-parseInt(_0x3ccc36(0x11e))/0x3+parseInt(_0x3ccc36(0x122))/0x4+-parseInt(_0x3ccc36(_0xf8bc7c._0x5ce46d))/0x5+-parseInt(_0x3ccc36(_0xf8bc7c._0x1af690))/0x6*(-parseInt(_0x3ccc36(0x117))/0x7)+-parseInt(_0x3ccc36(0x119))/0x8;if(_0x1cac3a===_0x282837)break;else _0x9ea4dd['push'](_0x9ea4dd['shift']());}catch(_0x2a0468){_0x9ea4dd['push'](_0x9ea4dd['shift']());}}}(_0x4c86,0xb9450));import{fileURLToPath}from'url';import{dirname,resolve}from'path';import{spawn}from'child_process';function _0x54f4(_0x1a37bb,_0x145d0d){_0x1a37bb=_0x1a37bb-0x112;var _0x4c8614=_0x4c86();var _0x54f4d7=_0x4c8614[_0x1a37bb];if(_0x54f4['feCbfR']===undefined){var _0x1233fb=function(_0xd61895){var _0x46974c='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x502d18='',_0x5c520d='';for(var _0x38d302=0x0,_0x45d17a,_0x4e2e9f,_0x3e6727=0x0;_0x4e2e9f=_0xd61895['charAt'](_0x3e6727++);~_0x4e2e9f&&(_0x45d17a=_0x38d302%0x4?_0x45d17a*0x40+_0x4e2e9f:_0x4e2e9f,_0x38d302++%0x4)?_0x502d18+=String['fromCharCode'](0xff&_0x45d17a>>(-0x2*_0x38d302&0x6)):0x0){_0x4e2e9f=_0x46974c['indexOf'](_0x4e2e9f);}for(var _0x24cef0=0x0,_0x448b9a=_0x502d18['length'];_0x24cef0<_0x448b9a;_0x24cef0++){_0x5c520d+='%'+('00'+_0x502d18['charCodeAt'](_0x24cef0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5c520d);};_0x54f4['aUiQNP']=_0x1233fb,_0x54f4['ZSErxR']={},_0x54f4['feCbfR']=!![];}var _0x59339b=_0x4c8614[0x0],_0x456e2f=_0x1a37bb+_0x59339b,_0x2a1bca=_0x54f4['ZSErxR'][_0x456e2f];return!_0x2a1bca?(_0x54f4d7=_0x54f4['aUiQNP'](_0x54f4d7),_0x54f4['ZSErxR'][_0x456e2f]=_0x54f4d7):_0x54f4d7=_0x2a1bca,_0x54f4d7;}import{existsSync}from'fs';var here=dirname(fileURLToPath(import.meta.url)),candidates=[resolve(here,'../../examples/fixtures/break-fix-app/serve.mjs'),resolve(here,_0x2c72aa(0x114))],serverEntry=candidates[_0x2c72aa(0x115)](_0x502d18=>existsSync(_0x502d18));!serverEntry&&(process['stderr'][_0x2c72aa(0x123)](_0x2c72aa(0x11c)+candidates['map'](_0x5c520d=>'\x20\x20'+_0x5c520d+'\x0a')[_0x2c72aa(0x11b)]('')+_0x2c72aa(0x120)),process[_0x2c72aa(0x11d)](0x1));var child=spawn(process[_0x2c72aa(0x113)],[serverEntry,...process[_0x2c72aa(0x118)]['slice'](0x2)],{'stdio':_0x2c72aa(0x11f)});child['on'](_0x2c72aa(0x11d),_0x38d302=>process[_0x2c72aa(0x11d)](_0x38d302??0x1));
@@ -1 +1 @@
1
- const _0x3103f8=_0x10d4;(function(_0x281164,_0x1da423){const _0x5c53a6={_0x5a84ba:0x1e8,_0x418139:0x1f3,_0x5b7a44:0x237},_0x361ddc=_0x10d4,_0x1b789b=_0x281164();while(!![]){try{const _0x33cffb=-parseInt(_0x361ddc(0x1d5))/0x1+-parseInt(_0x361ddc(0x209))/0x2+parseInt(_0x361ddc(_0x5c53a6._0x5a84ba))/0x3*(parseInt(_0x361ddc(_0x5c53a6._0x418139))/0x4)+parseInt(_0x361ddc(0x1e7))/0x5*(parseInt(_0x361ddc(_0x5c53a6._0x5b7a44))/0x6)+-parseInt(_0x361ddc(0x1f2))/0x7+-parseInt(_0x361ddc(0x1d8))/0x8+parseInt(_0x361ddc(0x1fa))/0x9;if(_0x33cffb===_0x1da423)break;else _0x1b789b['push'](_0x1b789b['shift']());}catch(_0x911c90){_0x1b789b['push'](_0x1b789b['shift']());}}}(_0x53a4,0x35a07));var __defProp=Object[_0x3103f8(0x1dc)],__name=(_0x206619,_0x2793d8)=>__defProp(_0x206619,_0x3103f8(0x1db),{'value':_0x2793d8,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x19f16a}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x5e1e59={_0x128543:0x217},_0x5f07c0=_0x3103f8;for(const _0x4d917a of[probeChrome,probeEdge,probeChromeBeta]){const _0x1212c7=_0x4d917a();if(_0x1212c7[_0x5f07c0(_0x5e1e59._0x128543)]!==null)return _0x1212c7;}return{'channel':null};}__name(probeSystemBrowser,_0x3103f8(0x230));function probeChrome(){const _0x1c6d05={_0x23ea20:0x223,_0x3669d0:0x1dd},_0x4cfa22=_0x3103f8,_0x4e2bcf=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x4e2bcf)return{'channel':_0x4cfa22(_0x1c6d05._0x23ea20),'path':_0x4e2bcf,'label':_0x4cfa22(_0x1c6d05._0x3669d0)};return{'channel':null};}__name(probeChrome,_0x3103f8(0x221));function probeEdge(){const _0x13528b=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x13528b)return{'channel':'msedge','path':_0x13528b,'label':'Microsoft\x20Edge'};return{'channel':null};}__name(probeEdge,_0x3103f8(0x210));function probeChromeBeta(){const _0xbf3e69=_0x3103f8,_0x15d187=firstExistingPath(CHROME_BETA_PATHS);if(_0x15d187)return{'channel':_0xbf3e69(0x1e5),'path':_0x15d187,'label':_0xbf3e69(0x202)};return{'channel':null};}__name(probeChromeBeta,'probeChromeBeta');var CHROME_PATHS=((()=>{const _0x294373={_0x15fd83:0x1ea,_0x48a94f:0x229,_0x48b5b2:0x1f6,_0xbdab83:0x1d7,_0x231a3a:0x22a,_0x21a133:0x204,_0x13488c:0x215},_0x22f816=_0x3103f8;switch(process[_0x22f816(_0x294373._0x15fd83)]){case'darwin':return[_0x22f816(_0x294373._0x48a94f)];case _0x22f816(_0x294373._0x48b5b2):return[process[_0x22f816(0x22a)][_0x22f816(0x1d9)]+_0x22f816(_0x294373._0xbdab83),process[_0x22f816(_0x294373._0x231a3a)]['ProgramFiles(x86)']+_0x22f816(_0x294373._0xbdab83),process[_0x22f816(0x22a)][_0x22f816(0x22f)]+'\x5cGoogle\x5cChrome\x5cApplication\x5cchrome.exe'];default:return[_0x22f816(0x211),_0x22f816(_0x294373._0x21a133),_0x22f816(0x1fe),_0x22f816(0x216),_0x22f816(_0x294373._0x13488c)];}})()),CHROME_BIN_NAMES=[_0x3103f8(0x1e1),_0x3103f8(0x1e3),_0x3103f8(0x1de),_0x3103f8(0x20f)],EDGE_PATHS=((()=>{const _0x384c30={_0xc031af:0x1ec},_0x400491=_0x3103f8;switch(process[_0x400491(0x1ea)]){case _0x400491(0x203):return[_0x400491(_0x384c30._0xc031af)];case'win32':return[process['env'][_0x400491(0x1d9)]+_0x400491(0x20c),process[_0x400491(0x22a)]['ProgramFiles(x86)']+'\x5cMicrosoft\x5cEdge\x5cApplication\x5cmsedge.exe'];default:return['/usr/bin/microsoft-edge',_0x400491(0x1f0)];}})()),EDGE_BIN_NAMES=[_0x3103f8(0x1d6),'microsoft-edge-stable'],CHROME_BETA_PATHS=((()=>{const _0x23a331={_0x47a0ca:0x1ea,_0x4dcdd4:0x203,_0x17751d:0x22a,_0x2e1226:0x1d9,_0x5b7286:0x1df},_0x2c5ba8=_0x3103f8;switch(process[_0x2c5ba8(_0x23a331._0x47a0ca)]){case _0x2c5ba8(_0x23a331._0x4dcdd4):return['/Applications/Google\x20Chrome\x20Beta.app/Contents/MacOS/Google\x20Chrome\x20Beta'];case'win32':return[process[_0x2c5ba8(_0x23a331._0x17751d)][_0x2c5ba8(_0x23a331._0x2e1226)]+_0x2c5ba8(_0x23a331._0x5b7286)];default:return[_0x2c5ba8(0x200)];}})());function firstExistingPath(_0x5dbd4b){const _0x2ca210={_0x41bcb4:0x212},_0x4ebe3c=_0x3103f8;for(const _0x49e74f of _0x5dbd4b){if(!_0x49e74f||_0x49e74f[_0x4ebe3c(_0x2ca210._0x41bcb4)](_0x4ebe3c(0x21a)))continue;if(existsSync(_0x49e74f))return _0x49e74f;}return null;}__name(firstExistingPath,'firstExistingPath');function whichOf(_0x5cf936){const _0x3175e6={_0x52e6e0:0x1f1,_0x9ec2a9:0x227},_0x59afcc=_0x3103f8;if(process[_0x59afcc(0x1ea)]==='win32')return void 0x0;for(const _0x3cb1a4 of _0x5cf936){try{const _0x40f558=execFileSync(_0x59afcc(0x1ed),[_0x3cb1a4],{'encoding':_0x59afcc(_0x3175e6._0x52e6e0)})[_0x59afcc(0x1f9)]();if(_0x40f558[_0x59afcc(_0x3175e6._0x9ec2a9)]>0x0&&existsSync(_0x40f558))return _0x40f558;}catch{}}return void 0x0;}__name(whichOf,'whichOf');function runEnvironmentChecks(_0x5572b1={}){const _0x468988=_0x3103f8,_0x12a5a2=_0x5572b1['cwd']??process[_0x468988(0x236)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x12a5a2)];}__name(runEnvironmentChecks,_0x3103f8(0x1ee));function _0x53a4(){const _0x3cdc1e=['AgvHzgvK','BgvUz3rO','C2nOzwr1BgvZ','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','zw52','ls1ICMvHAW','yMLU','BM9Kzq','D2fYBMLUzW','te9dquXbufbeqvrb','ChjVyMvtExn0zw1cCM93C2vY','Cgf0Aa','AxngAw5PDgu','DgfYz2v0ia','Dw5VDgvZDc13zwi','yNvPBgrfBNy','y3DK','mtjJtNjby2S','y2HLy2TtExn0zw1cCM93C2vY','ihbHy2THz2uUANnVBIbKzwnSyxjLCYbUBYaNyMLUjYbMAwvSzcdIGjqGyNjVA2vUigLUC3rHBgW/','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','mZGYmJq2yLjJtgnp','BwLJCM9ZB2z0lwvKz2u','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','nJu4mJaWy09Qy0XQ','uhjVz3jHBuzPBgvZ','y29SBgvJDgLVBG','BMfTzq','zgvMAw5LuhjVCgvYDhK','r29Vz2XLienOCM9Tzq','y2HYB21PDw0','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','DMfSDwvZ','z29Vz2XLlwnOCM9Tzq','ztjL','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','C2nLBMfYAw8','y2HYB21LlwjLDge','yNjLywTWB2LUDhm','nJy4odq1v09Mr2T6','mJa3CMrbrxrw','yxv0Ag9YAw5N','CgXHDgzVCM0','ChvZAa','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','D2HPy2G','CNvUrw52AxjVBM1LBNrdAgvJA3m','qhvUB3rLC3qVD2vI','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','DxrMoa','mJq4mtG0m1LOBLzvCG','mtiZnLvsrfv0yW','A2LUza','zxjYB3i','D2LUmZi','AM9PBG','zgvIDwC','DhjPBq','mtaZnJiYmJjwturYAem','yxbWlxnLCNzLCG','y2HLy2TxCML0ywjSzun3za','B2jQzwn0','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','DMvYC2LVBNm','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','ls13B3jRzxjZpq','r29Vz2XLienOCM9TzsbczxrH','zgfYD2LU','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','vu5pvevtvf9iruferuq','yMfPBa','u3LZDgvTigjYB3DZzxi','v2vIuNvUBMvYqwrHChrLCG','odaYotG0thPuEwzo','C3bSAxq','yxbWu2vYDMvYqxjNCW','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','C3rYAw5N','yNvPBgrbCMDZ','y2HYB21PDw0TyNjVD3nLCG','ChjVyMvfzgDL','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','C3rHCNrZv2L0Aa','C3vMzML4','ls1QC29U','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','l3vZCI9IAw4Vy2HYB21PDw0','y2HHBM5LBa','tM9Kzs5QCYb2zxjZAw9U','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','Dw5KzwzPBMvK','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','yxv0Ag9Y','CgLJA0jPBG','BgfIzwW','C3vWCg9YDgvKs2LUzhm','l3bHy2THz2uUANnVBG','ChjVyMvdAhjVBwu','D29YA2vYCW','y2HYB21L','igzVDw5K','CMvZB2X2zq'];_0x53a4=function(){return _0x3cdc1e;};return _0x53a4();}function checkNodeVersion(){const _0x26edc3={_0x41ad1e:0x1ff,_0xa27518:0x22d,_0x1c75ad:0x20a,_0x58a6dd:0x232,_0x44093c:0x218},_0x320879=_0x3103f8,_0x588c0a=process[_0x320879(_0x26edc3._0x41ad1e)][_0x320879(_0x26edc3._0xa27518)],_0x274f29=Number(_0x588c0a[_0x320879(_0x26edc3._0x1c75ad)]('.')[0x0]);if(!Number[_0x320879(_0x26edc3._0x58a6dd)](_0x274f29)||_0x274f29<0x14)return{'name':'Node.js\x20version','severity':_0x320879(0x1f5),'message':_0x320879(0x21b)+_0x588c0a+')','detail':_0x320879(0x219)};return{'name':_0x320879(_0x26edc3._0x44093c),'severity':'ok','message':_0x588c0a};}__name(checkNodeVersion,'checkNodeVersion');function checkSystemBrowser(){const _0xa0dc10={_0x50e50b:0x217,_0x2858d2:0x207},_0x19e003=_0x3103f8,_0x34fb78=probeSystemBrowser();if(_0x34fb78[_0x19e003(_0xa0dc10._0x50e50b)]!==null)return{'name':_0x19e003(_0xa0dc10._0x2858d2),'severity':'ok','message':_0x34fb78[_0x19e003(0x21e)]+_0x19e003(0x224),'detail':_0x34fb78[_0x19e003(0x231)]};return{'name':'System\x20browser','severity':_0x19e003(0x22e),'message':_0x19e003(0x1d4),'detail':'init\x20will\x20offer\x20to\x20download\x20bundled\x20Chromium\x20(~150\x20MB).\x20Alternatively,\x20install\x20Chrome\x20from\x20https://www.google.com/chrome\x20and\x20re-run.'};}__name(checkSystemBrowser,_0x3103f8(0x238));function checkWritableCwd(_0x5797d0){const _0x105042={_0x146658:0x1f5},_0xd72e7a=_0x3103f8;if(!_0x19f16a(_0x5797d0))return{'name':'Target\x20directory','severity':_0xd72e7a(_0x105042._0x146658),'message':_0xd72e7a(0x233)+_0x5797d0+'\x20does\x20not\x20exist','detail':'Create\x20the\x20directory\x20or\x20run\x20init\x20in\x20an\x20existing\x20project\x20root.'};return{'name':'Target\x20directory','severity':'ok','message':_0x5797d0};}__name(checkWritableCwd,_0x3103f8(0x1fc));var PACKAGE_NAME=_0x3103f8(0x1ef),WebRunnerAdapter=class{static{__name(this,_0x3103f8(0x208));}['name']=PACKAGE_NAME;[_0x3103f8(0x213)]='';[_0x3103f8(0x1f8)]={'picker':!![],'attach':!![],'resumeFromFailure':![]};[_0x3103f8(0x21f)]=[_0x3103f8(0x1e4),_0x3103f8(0x1da),_0x3103f8(0x1e9)];['resolveBin'](){const _0x4a5a91={_0x4ca167:0x220,_0x4f8bfc:0x1f1,_0x3472f4:0x239},_0x111235=_0x3103f8,_0x40d493=createRequire(import.meta.url),_0x12e105=_0x40d493[_0x111235(0x225)](PACKAGE_NAME+_0x111235(_0x4a5a91._0x4ca167)),_0x5b833d=JSON['parse'](readFileSync(_0x12e105,_0x111235(_0x4a5a91._0x4f8bfc))),_0x17431f=pickBin(_0x5b833d);if(!_0x17431f)throw new Error(PACKAGE_NAME+_0x111235(_0x4a5a91._0x3472f4));return join(dirname(_0x12e105),_0x17431f);}[_0x3103f8(0x20e)](_0x469edd){const _0x1f8cfc={_0x1053f0:0x1f4,_0xfd8e9a:0x1e4,_0x498162:0x1eb,_0x2ecc35:0x1e6,_0x511df0:0x227,_0x59b48d:0x22b,_0x3ad063:0x1e6,_0x3bba24:0x1f7,_0x1c860b:0x1da,_0x54587b:0x1da,_0x1cff55:0x222,_0x26ff6f:0x21c,_0x14f2fa:0x1db},_0xfa47d1=_0x3103f8;if(_0x469edd[_0xfa47d1(_0x1f8cfc._0x1053f0)]===_0xfa47d1(0x1e4)){const _0x431def=[_0xfa47d1(0x1e2),_0x469edd[_0xfa47d1(_0x1f8cfc._0xfd8e9a)]];if(_0x469edd[_0xfa47d1(0x1f8)])_0x431def[_0xfa47d1(_0x1f8cfc._0x498162)]('--debug');return _0x469edd['breakpoints']&&_0x469edd[_0xfa47d1(_0x1f8cfc._0x2ecc35)][_0xfa47d1(_0x1f8cfc._0x511df0)]>0x0&&_0x431def['push'](_0xfa47d1(_0x1f8cfc._0x59b48d),_0x469edd[_0xfa47d1(_0x1f8cfc._0x3ad063)][_0xfa47d1(_0x1f8cfc._0x3bba24)](',')),_0x431def;}if(_0x469edd['kind']===_0xfa47d1(_0x1f8cfc._0x1c860b)){const _0x4e787d=[_0xfa47d1(0x1da),_0x469edd[_0xfa47d1(_0x1f8cfc._0x54587b)]];_0x469edd[_0xfa47d1(0x222)]!==void 0x0&&_0x469edd[_0xfa47d1(_0x1f8cfc._0x1cff55)]>0x1&&_0x4e787d['push'](_0xfa47d1(0x201)+_0x469edd[_0xfa47d1(0x222)]);if(_0x469edd[_0xfa47d1(0x206)])_0x4e787d['push']('--bail');return _0x4e787d;}if(_0x469edd['kind']==='authoring')return[_0xfa47d1(_0x1f8cfc._0x26ff6f),_0x469edd[_0xfa47d1(0x1e4)]];const _0x50b7be=_0x469edd;throw new UnsupportedRunKindError(_0x50b7be[_0xfa47d1(0x1f4)],this[_0xfa47d1(_0x1f8cfc._0x14f2fa)]);}[_0x3103f8(0x235)](_0xf71e1d){const _0x5cb554={_0x209865:0x226},_0x50796a=_0x3103f8,_0x54fb92={};if(_0xf71e1d[_0x50796a(_0x5cb554._0x209865)])_0x54fb92[_0x50796a(0x205)]='1';return _0x54fb92;}[_0x3103f8(0x20b)](){const _0x513d41=_0x3103f8;return[_0x513d41(0x1fb)];}['schedulesArgs'](){const _0x34605a={_0x3fd21d:0x228},_0x38c807=_0x3103f8;return[_0x38c807(_0x34605a._0x3fd21d),_0x38c807(0x214)];}async['doctor'](_0x3d8c24){return runEnvironmentChecks({'cwd':_0x3d8c24['projectRoot']});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x302fe3){const _0x5332c8={_0x504d66:0x22c},_0x4ab333=_0x3103f8;if(typeof _0x302fe3[_0x4ab333(_0x5332c8._0x504d66)]===_0x4ab333(0x20d))return _0x302fe3[_0x4ab333(0x22c)];if(_0x302fe3[_0x4ab333(0x22c)]&&typeof _0x302fe3[_0x4ab333(_0x5332c8._0x504d66)]===_0x4ab333(0x1fd))return _0x302fe3[_0x4ab333(_0x5332c8._0x504d66)][_0x4ab333(0x234)]??Object[_0x4ab333(0x1e0)](_0x302fe3['bin'])[0x0]??null;return null;}function _0x10d4(_0x5ee6a5,_0x47cf7d){_0x5ee6a5=_0x5ee6a5-0x1d4;const _0x53a44e=_0x53a4();let _0x10d446=_0x53a44e[_0x5ee6a5];if(_0x10d4['qzXEAk']===undefined){var _0xe83fb=function(_0x1864a7){const _0x59db54='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x19f16a='',_0x206619='';for(let _0x2793d8=0x0,_0x4d917a,_0x1212c7,_0x4e2bcf=0x0;_0x1212c7=_0x1864a7['charAt'](_0x4e2bcf++);~_0x1212c7&&(_0x4d917a=_0x2793d8%0x4?_0x4d917a*0x40+_0x1212c7:_0x1212c7,_0x2793d8++%0x4)?_0x19f16a+=String['fromCharCode'](0xff&_0x4d917a>>(-0x2*_0x2793d8&0x6)):0x0){_0x1212c7=_0x59db54['indexOf'](_0x1212c7);}for(let _0x13528b=0x0,_0x15d187=_0x19f16a['length'];_0x13528b<_0x15d187;_0x13528b++){_0x206619+='%'+('00'+_0x19f16a['charCodeAt'](_0x13528b)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x206619);};_0x10d4['KLycwY']=_0xe83fb,_0x10d4['toblkq']={},_0x10d4['qzXEAk']=!![];}const _0x5702fc=_0x53a44e[0x0],_0x54875a=_0x5ee6a5+_0x5702fc,_0x22c58d=_0x10d4['toblkq'][_0x54875a];return!_0x22c58d?(_0x10d446=_0x10d4['KLycwY'](_0x10d446),_0x10d4['toblkq'][_0x54875a]=_0x10d446):_0x10d446=_0x22c58d,_0x10d446;}__name(pickBin,_0x3103f8(0x21d));export{web_runner_adapter_default as default,webRunnerAdapter};
1
+ const _0x1cc0ab=_0x17a3;(function(_0x2ae710,_0x34d2d1){const _0x1f4f5a={_0x123c6d:0x139,_0x123c45:0x12f,_0x183b64:0xfe,_0x559fa7:0x102,_0x314517:0x138,_0x2ab20e:0x133,_0x293a7c:0x100,_0x392d1e:0xec},_0xa03f1a=_0x17a3,_0x20ed07=_0x2ae710();while(!![]){try{const _0x377518=parseInt(_0xa03f1a(_0x1f4f5a._0x123c6d))/0x1+parseInt(_0xa03f1a(_0x1f4f5a._0x123c45))/0x2+parseInt(_0xa03f1a(_0x1f4f5a._0x183b64))/0x3*(parseInt(_0xa03f1a(_0x1f4f5a._0x559fa7))/0x4)+-parseInt(_0xa03f1a(_0x1f4f5a._0x314517))/0x5*(parseInt(_0xa03f1a(_0x1f4f5a._0x2ab20e))/0x6)+parseInt(_0xa03f1a(0x143))/0x7+-parseInt(_0xa03f1a(_0x1f4f5a._0x293a7c))/0x8+-parseInt(_0xa03f1a(_0x1f4f5a._0x392d1e))/0x9;if(_0x377518===_0x34d2d1)break;else _0x20ed07['push'](_0x20ed07['shift']());}catch(_0x180b9f){_0x20ed07['push'](_0x20ed07['shift']());}}}(_0x3708,0x843b2));var __defProp=Object[_0x1cc0ab(0xf5)],__name=(_0x352f2d,_0x127730)=>__defProp(_0x352f2d,'name',{'value':_0x127730,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x27d9fb}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x16325b=_0x1cc0ab;for(const _0x4e32a9 of[probeChrome,probeEdge,probeChromeBeta]){const _0x10f3f1=_0x4e32a9();if(_0x10f3f1[_0x16325b(0x10b)]!==null)return _0x10f3f1;}return{'channel':null};}__name(probeSystemBrowser,'probeSystemBrowser');function probeChrome(){const _0x42bdbb={_0x2ff29e:0x112},_0x383dee=_0x1cc0ab,_0x5329e3=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x5329e3)return{'channel':_0x383dee(_0x42bdbb._0x2ff29e),'path':_0x5329e3,'label':'Google\x20Chrome'};return{'channel':null};}__name(probeChrome,_0x1cc0ab(0x137));function _0x3708(){const _0x51a4da=['Dw5VDgvZDc13zwi','ChjVyMvfzgDL','yxbWu2vYDMvYqxjNCW','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','y2HLy2TtExn0zw1cCM93C2vY','yNjLywTWB2LUDhm','Dw5KzwzPBMvK','y3DK','DMfSDwvZ','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','igrVzxmGBM90igv4Axn0','u3LZDgvTigjYB3DZzxi','l0fWCgXPy2f0Aw9UCY9hB29NBguGq2HYB21LlMfWCc9dB250zw50CY9nywnpuY9hB29NBguGq2HYB21L','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','yxv0Ag9YAw5N','mte2mdy1nNPsA2fyyq','ztjL','BxnLzgDL','BMfTzq','mtHQBhzvwKi','CgXHDgzVCM0','ChjVAMvJDfjVB3q','uhjVz3jHBuzPBgvZkhG4nIK','ChjVyMvdAhjVBwu','ody2mZvVreLcB0C','mtK5ndi2shbVy2PR','ihbHy2THz2uUANnVBIbKzwnSyxjLCYbUBYaNyMLUjYbMAwvSzcdIGjqGyNjVA2vUigLUC3rHBgW/','l3bHy2THz2uUANnVBG','twLJCM9ZB2z0ievKz2u','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','ls1ICMvHAW','yNvPBgrfBNy','C3rHCNrZv2L0Aa','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','mJq4nty2nufMBxPfyW','D2LUmZi','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','tM9Kzs5QCYb2zxjZAw9U','D29YA2vYCW','l3vZCI9IAw4Vy2HYB21PDw0','y2HLy2ToB2rLvMvYC2LVBG','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','mta0oteYodjtv3L2Buu','ls1QC29U','zgfYD2LU','te9dquXbufbeqvrb','AgvHzgvK','CMvZB2X2zq','zxjYB3i','yxv0Ag9Y','D2fYBMLUzW','zgvMAw5LuhjVCgvYDhK','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','yMLU','BgvUz3rO','C3vWCg9YDgvKs2LUzhm','zw52','z29Vz2XLlwnOCM9Tzq','DhjPBq','yMfPBa','nJmWnZeXrg5bB0nk','CgLJA0jPBG','mZqXmZG5nLfNtNLmrW','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','mJbVugrmzgO','CMvZB2X2zujPBG','y29SBgvJDgLVBG','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','DxrMoa','C2nLBMfYAw8','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','C3bSAxq','A2LUza','y2HHBM5LBa','zMLYC3rfEgLZDgLUz1bHDgG','y2HLy2TxCML0ywjSzun3za','C2nOzwr1BgvZqxjNCW','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','zg9JDg9Y','ChvZAa','y2HYB21L','igzVDw5K','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','D2HPy2G','y2HYB21PDw0','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1ZDgfIBgu','ls13B3jRzxjZpq','uhjVz3jHBuzPBgvZ','ls1IywLS','qhvUB3rLC3qVD2vI','zgvIDwC','vgfYz2v0igrPCMvJDg9YEq','y2HYB21PDw0TyNjVD3nLCG','CNvUrw52AxjVBM1LBNrdAgvJA3m'];_0x3708=function(){return _0x51a4da;};return _0x3708();}function probeEdge(){const _0xea821d={_0x2bec7e:0x131,_0x56aac0:0x13c},_0x1183da=_0x1cc0ab,_0x2208d0=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x2208d0)return{'channel':_0x1183da(_0xea821d._0x2bec7e),'path':_0x2208d0,'label':_0x1183da(_0xea821d._0x56aac0)};return{'channel':null};}__name(probeEdge,_0x1cc0ab(0x121));function _0x17a3(_0x40a6b7,_0x270925){_0x40a6b7=_0x40a6b7-0xe5;const _0x3708ee=_0x3708();let _0x17a327=_0x3708ee[_0x40a6b7];if(_0x17a3['SZppdx']===undefined){var _0x12953e=function(_0x24cdad){const _0x4e7388='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x27d9fb='',_0x352f2d='';for(let _0x127730=0x0,_0x4e32a9,_0x10f3f1,_0x5329e3=0x0;_0x10f3f1=_0x24cdad['charAt'](_0x5329e3++);~_0x10f3f1&&(_0x4e32a9=_0x127730%0x4?_0x4e32a9*0x40+_0x10f3f1:_0x10f3f1,_0x127730++%0x4)?_0x27d9fb+=String['fromCharCode'](0xff&_0x4e32a9>>(-0x2*_0x127730&0x6)):0x0){_0x10f3f1=_0x4e7388['indexOf'](_0x10f3f1);}for(let _0x2208d0=0x0,_0x2fde38=_0x27d9fb['length'];_0x2208d0<_0x2fde38;_0x2208d0++){_0x352f2d+='%'+('00'+_0x27d9fb['charCodeAt'](_0x2208d0)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x352f2d);};_0x17a3['qTLxbk']=_0x12953e,_0x17a3['cvmASz']={},_0x17a3['SZppdx']=!![];}const _0x4f078e=_0x3708ee[0x0],_0x52e480=_0x40a6b7+_0x4f078e,_0x37c2ab=_0x17a3['cvmASz'][_0x52e480];return!_0x37c2ab?(_0x17a327=_0x17a3['qTLxbk'](_0x17a327),_0x17a3['cvmASz'][_0x52e480]=_0x17a327):_0x17a327=_0x37c2ab,_0x17a327;}function probeChromeBeta(){const _0x2fde38=firstExistingPath(CHROME_BETA_PATHS);if(_0x2fde38)return{'channel':'chrome-beta','path':_0x2fde38,'label':'Google\x20Chrome\x20Beta'};return{'channel':null};}__name(probeChromeBeta,'probeChromeBeta');var CHROME_PATHS=((()=>{const _0x336e35={_0xb34194:0x134,_0xd09e25:0xee,_0x21f2ed:0x12c,_0x145de8:0xfa,_0x22fdef:0x119,_0x391adc:0xfa,_0x58916e:0x117,_0x2d0830:0xe9},_0x1d8ba4=_0x1cc0ab;switch(process[_0x1d8ba4(_0x336e35._0xb34194)]){case _0x1d8ba4(_0x336e35._0xd09e25):return[_0x1d8ba4(_0x336e35._0x21f2ed)];case _0x1d8ba4(0xe5):return[process[_0x1d8ba4(_0x336e35._0x145de8)][_0x1d8ba4(_0x336e35._0x22fdef)]+_0x1d8ba4(0x142),process[_0x1d8ba4(_0x336e35._0x391adc)]['ProgramFiles(x86)']+_0x1d8ba4(0x142),process[_0x1d8ba4(0xfa)][_0x1d8ba4(0xef)]+_0x1d8ba4(0x142)];default:return[_0x1d8ba4(0x10f),_0x1d8ba4(_0x336e35._0x58916e),_0x1d8ba4(0x123),_0x1d8ba4(_0x336e35._0x2d0830),'/usr/bin/chromium-browser'];}})()),CHROME_BIN_NAMES=[_0x1cc0ab(0xfb),'google-chrome-stable',_0x1cc0ab(0x116),_0x1cc0ab(0x11e)],EDGE_PATHS=((()=>{const _0xb6e5c1={_0x48953c:0xfa,_0x1c24b3:0x119,_0x493eb4:0x13d},_0x96c2c=_0x1cc0ab;switch(process['platform']){case _0x96c2c(0xee):return[_0x96c2c(0x12d)];case _0x96c2c(0xe5):return[process[_0x96c2c(_0xb6e5c1._0x48953c)][_0x96c2c(_0xb6e5c1._0x1c24b3)]+_0x96c2c(0x13d),process[_0x96c2c(_0xb6e5c1._0x48953c)][_0x96c2c(0x136)]+_0x96c2c(_0xb6e5c1._0x493eb4)];default:return[_0x96c2c(0x105),_0x96c2c(0xf6)];}})()),EDGE_BIN_NAMES=['microsoft-edge',_0x1cc0ab(0xeb)],CHROME_BETA_PATHS=((()=>{const _0x19e29e={_0x4901f3:0xee},_0x4ddfbc=_0x1cc0ab;switch(process['platform']){case _0x4ddfbc(_0x19e29e._0x4901f3):return['/Applications/Google\x20Chrome\x20Beta.app/Contents/MacOS/Google\x20Chrome\x20Beta'];case _0x4ddfbc(0xe5):return[process[_0x4ddfbc(0xfa)][_0x4ddfbc(0x119)]+_0x4ddfbc(0x13e)];default:return[_0x4ddfbc(0x114)];}})());function firstExistingPath(_0x105985){const _0xcee9fe={_0x4dff80:0x141},_0x16314b=_0x1cc0ab;for(const _0x5d78b7 of _0x105985){if(!_0x5d78b7||_0x5d78b7[_0x16314b(_0xcee9fe._0x4dff80)](_0x16314b(0x126)))continue;if(existsSync(_0x5d78b7))return _0x5d78b7;}return null;}__name(firstExistingPath,_0x1cc0ab(0x10c));function whichOf(_0x58f5ac){const _0x35fcf0={_0x5607a1:0xfc},_0x318eac=_0x1cc0ab;if(process[_0x318eac(0x134)]==='win32')return void 0x0;for(const _0x374186 of _0x58f5ac){try{const _0x4a83a1=execFileSync(_0x318eac(0x115),[_0x374186],{'encoding':_0x318eac(0x106)})[_0x318eac(_0x35fcf0._0x5607a1)]();if(_0x4a83a1[_0x318eac(0xf8)]>0x0&&existsSync(_0x4a83a1))return _0x4a83a1;}catch{}}return void 0x0;}__name(whichOf,'whichOf');function runEnvironmentChecks(_0x5bd88c={}){const _0x17c6b8={_0x7b785a:0x127},_0x54453e=_0x1cc0ab,_0x42948f=_0x5bd88c[_0x54453e(_0x17c6b8._0x7b785a)]??process[_0x54453e(_0x17c6b8._0x7b785a)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x42948f)];}__name(runEnvironmentChecks,_0x1cc0ab(0x11f));function checkNodeVersion(){const _0xd15173={_0x7747e2:0x129},_0x4ca45a=_0x1cc0ab,_0x22cf07=process['versions']['node'],_0x42e1ec=Number(_0x22cf07[_0x4ca45a(0x109)]('.')[0x0]);if(!Number['isFinite'](_0x42e1ec)||_0x42e1ec<0x14)return{'name':_0x4ca45a(0xe7),'severity':_0x4ca45a(0xf2),'message':'requires\x20Node\x20≥20\x20(running\x20'+_0x22cf07+')','detail':_0x4ca45a(_0xd15173._0x7747e2)};return{'name':_0x4ca45a(0xe7),'severity':'ok','message':_0x22cf07};}__name(checkNodeVersion,_0x1cc0ab(0xea));function checkSystemBrowser(){const _0x10daaa={_0x5d6630:0x113,_0x31f7c2:0xe6,_0x898d05:0x108},_0x2123e1=_0x1cc0ab,_0x1e1c58=probeSystemBrowser();if(_0x1e1c58['channel']!==null)return{'name':'System\x20browser','severity':'ok','message':_0x1e1c58['label']+_0x2123e1(_0x10daaa._0x5d6630),'detail':_0x1e1c58['path']};return{'name':_0x2123e1(0x12b),'severity':_0x2123e1(0xf4),'message':_0x2123e1(_0x10daaa._0x31f7c2),'detail':_0x2123e1(_0x10daaa._0x898d05)};}__name(checkSystemBrowser,_0x1cc0ab(0x124));function checkWritableCwd(_0x215936){const _0x8ef13c={_0x5c01bf:0x101},_0x260f25=_0x1cc0ab;if(!_0x27d9fb(_0x215936))return{'name':'Target\x20directory','severity':'error','message':'target\x20'+_0x215936+_0x260f25(0x12a),'detail':_0x260f25(_0x8ef13c._0x5c01bf)};return{'name':_0x260f25(0x11d),'severity':'ok','message':_0x215936};}__name(checkWritableCwd,_0x1cc0ab(0x10d));var PACKAGE_NAME=_0x1cc0ab(0x11b),WebRunnerAdapter=class{static{__name(this,'WebRunnerAdapter');}[_0x1cc0ab(0x132)]=PACKAGE_NAME;['suffix']='';[_0x1cc0ab(0x11c)]={'picker':!![],'attach':!![],'resumeFromFailure':![]};[_0x1cc0ab(0xf9)]=[_0x1cc0ab(0x107),_0x1cc0ab(0x104),'authoring'];[_0x1cc0ab(0x103)](){const _0x298f7e={_0x533e17:0x13b},_0xfd59ec=_0x1cc0ab,_0x24a50d=createRequire(import.meta.url),_0x405de1=_0x24a50d[_0xfd59ec(0xf1)](PACKAGE_NAME+_0xfd59ec(_0x298f7e._0x533e17)),_0x1378fd=JSON['parse'](readFileSync(_0x405de1,_0xfd59ec(0x106))),_0x1216fa=pickBin(_0x1378fd);if(!_0x1216fa)throw new Error(PACKAGE_NAME+_0xfd59ec(0x13a));return join(dirname(_0x405de1),_0x1216fa);}['buildArgs'](_0x3c71d9){const _0x382175={_0x24579f:0x10a,_0x3e6c00:0x107,_0x14437f:0x130,_0x5e6996:0x11c,_0x56f649:0x111,_0x2dce82:0x125,_0x84b1be:0x104,_0x29b398:0x11a,_0x529e5f:0x10a,_0x2ae009:0x12e,_0x2b61e4:0xf3,_0x422817:0x10a},_0x7b0dcc=_0x1cc0ab;if(_0x3c71d9[_0x7b0dcc(_0x382175._0x24579f)]===_0x7b0dcc(_0x382175._0x3e6c00)){const _0x12a16f=[_0x7b0dcc(_0x382175._0x14437f),_0x3c71d9[_0x7b0dcc(0x107)]];if(_0x3c71d9[_0x7b0dcc(_0x382175._0x5e6996)])_0x12a16f[_0x7b0dcc(_0x382175._0x56f649)]('--debug');return _0x3c71d9['breakpoints']&&_0x3c71d9[_0x7b0dcc(_0x382175._0x2dce82)][_0x7b0dcc(0xf8)]>0x0&&_0x12a16f['push'](_0x7b0dcc(0x13f),_0x3c71d9['breakpoints']['join'](',')),_0x12a16f;}if(_0x3c71d9[_0x7b0dcc(_0x382175._0x24579f)]===_0x7b0dcc(_0x382175._0x84b1be)){const _0x48a06c=[_0x7b0dcc(0x104),_0x3c71d9[_0x7b0dcc(_0x382175._0x84b1be)]];_0x3c71d9['workers']!==void 0x0&&_0x3c71d9[_0x7b0dcc(0xe8)]>0x1&&_0x48a06c['push'](_0x7b0dcc(0x118)+_0x3c71d9['workers']);if(_0x3c71d9[_0x7b0dcc(0xfd)])_0x48a06c[_0x7b0dcc(0x111)](_0x7b0dcc(_0x382175._0x29b398));return _0x48a06c;}if(_0x3c71d9[_0x7b0dcc(_0x382175._0x529e5f)]===_0x7b0dcc(_0x382175._0x2ae009))return[_0x7b0dcc(_0x382175._0x2b61e4),_0x3c71d9[_0x7b0dcc(0x107)]];const _0x3fc4d0=_0x3c71d9;throw new UnsupportedRunKindError(_0x3fc4d0[_0x7b0dcc(_0x382175._0x422817)],this['name']);}[_0x1cc0ab(0x140)](_0x4031bc){const _0x482062={_0x383015:0xf0},_0x3388f8=_0x1cc0ab,_0x4417a5={};if(_0x4031bc[_0x3388f8(_0x482062._0x383015)])_0x4417a5['UNOTEST_HEADED']='1';return _0x4417a5;}[_0x1cc0ab(0x122)](){return['app-server'];}[_0x1cc0ab(0x10e)](){const _0x5bfa0c=_0x1cc0ab;return['schedules',_0x5bfa0c(0xed)];}async[_0x1cc0ab(0x110)](_0x788a3e){const _0x281cec=_0x1cc0ab;return runEnvironmentChecks({'cwd':_0x788a3e[_0x281cec(0x135)]});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x19b6f0){const _0x2e9a54={_0x22b0bf:0xf7,_0x432c64:0x128},_0x17fc2b=_0x1cc0ab;if(typeof _0x19b6f0['bin']==='string')return _0x19b6f0['bin'];if(_0x19b6f0[_0x17fc2b(_0x2e9a54._0x22b0bf)]&&typeof _0x19b6f0['bin']==='object')return _0x19b6f0['bin'][_0x17fc2b(0x120)]??Object[_0x17fc2b(_0x2e9a54._0x432c64)](_0x19b6f0[_0x17fc2b(0xf7)])[0x0]??null;return null;}__name(pickBin,_0x1cc0ab(0xff));export{web_runner_adapter_default as default,webRunnerAdapter};
@@ -105,9 +105,12 @@ snapshot tools switch to snapshot-free wording.
105
105
 
106
106
  `UNOTEST_TOOLSET=core` narrows the whole surface to the minimal
107
107
  explore-first loop for small local models: `new_context`,
108
- `explore_start` / `explore_step` / `explore_steps` / `explore_stop`,
109
- `ground_element` (still needs `UNOTEST_GROUNDER_MODE`),
110
- `save_exploration_as_test`, `run_test`. assert_* actions and the
108
+ `explore_start` / `explore_step` / `explore_steps` / `explore_step_result`
109
+ / `explore_stop`, `ground_element` (still needs `UNOTEST_GROUNDER_MODE`),
110
+ `save_exploration_as_test`, `run_test`. `explore_step_result` is in the
111
+ core set for the same reason it exists at all: a step that outruns the
112
+ client's patience answers with a task id, and a set that can hand out
113
+ ids but not redeem them is worse than one with no background at all. assert_* actions and the
111
114
  `autoRun` flag live inside `explore_steps` (actions are not tools), so
112
115
  the core happy-path is `explore_start` (it opens the context itself) →
113
116
  `explore_steps {…, autoRun: true}`; save/run stay registered as the
@@ -122,7 +125,36 @@ driver runs `core` from the same code. Typical matrices:
122
125
  # local-model driver: UNOTEST_TOOLSET=core UNOTEST_SNAPSHOT=0 UNOTEST_GROUNDER_MODE=local
123
126
  ```
124
127
 
125
- ### Exploration (10)
128
+ ### A step that takes minutes
129
+
130
+ An MCP client stops waiting for a tool call at about two minutes and
131
+ carries on in the background; whatever the call answers after that is
132
+ lost. Waiting four minutes for a slow page is an ordinary thing to ask,
133
+ so `explore_step` and `explore_steps` hand the work a task id instead of
134
+ holding the channel:
135
+
136
+ - under 90 seconds — the ordinary reply, exactly as before, no task id
137
+ and no second call;
138
+ - over it — `{ status: "accepted", taskId, hint }`. The step is **not**
139
+ cut short: it keeps its own `options.timeout` and records into the
140
+ session as usual. A batch goes to the background whole, under one id —
141
+ its steps run one after another on one page, so there is no half of it
142
+ to hand back;
143
+ - collect it with `explore_step_result({ taskId })`: `running` (with
144
+ `elapsedMs`), `done` (with the reply the step would have given and
145
+ `durationMs`, the whole step from its start — not just the part after
146
+ the threshold), `failed`, or `unknown` — an id this server does not have, because it
147
+ restarted or because the result was collected more than ten minutes
148
+ ago.
149
+
150
+ While a step is out there the browser context is busy, and the tools say
151
+ so rather than damaging it: a second `explore_step`, `explore_stop` and
152
+ `close_context` answer `{ status: "busy", pendingTaskId, hint }`. Two
153
+ actions on one page fight each other, and stopping or closing would cut
154
+ the step off mid-way. `explore_state` lists what is pending, so an agent
155
+ that lost a task id does not simply run the same step again.
156
+
157
+ ### Exploration (11)
126
158
 
127
159
  The recording loop: every action is performed and written down in one
128
160
  call, so the exploration is a draft scenario from the first step.
@@ -132,6 +164,8 @@ call, so the exploration is a draft scenario from the first step.
132
164
  resolved here
133
165
  - `explore_steps` — several actions in one call, `autoRun` to run the
134
166
  result immediately
167
+ - `explore_step_result` — collect a step or batch that went to the
168
+ background (see above)
135
169
  - `explore_state` / `explore_steps` — what has been recorded so far
136
170
  - `explore_record` — add a step without performing it
137
171
  - `explore_remove_step` — drop a recorded step
@@ -167,7 +201,17 @@ directly. Detailed workflow in `debugger-tools.md`.
167
201
  - `attach_debug_session` / `detach_debug_session` — join the run a human
168
202
  is already driving in the viewer, instead of opening a second browser.
169
203
  - `take_wheel` / `release_wheel` — take control of that shared session,
170
- and hand it back.
204
+ and hand it back. `take_wheel` also points this session's browser at the
205
+ run, so the next screenshot is of the page being debugged; when it
206
+ cannot (a recording is open, the run has no browser or no page yet) it
207
+ says so with a status and what to do, instead of answering `ok`.
208
+ `release_wheel` leaves the browser on the run.
209
+
210
+ Every `explore_step` reply carries `context` — `{kind: "run", runtimeId}`
211
+ when the step ran on a run's browser, `{kind: "own"}` when it ran on one
212
+ this session opened. A session has exactly one context: `take_wheel` /
213
+ `attach_debug_session` point it at a run, `explore_start` / `new_context`
214
+ at your own, and `explorationId` never chooses a browser.
171
215
 
172
216
  ### Multi-context (4)
173
217
 
@@ -209,7 +253,9 @@ Auto-switch runs **only** under `explore_step` (recording / ad-hoc).
209
253
 
210
254
  ### Failure bundle introspection (6)
211
255
 
212
- - `list_failures` — bundles on disk, newest first
256
+ - `list_failures` — bundles on disk, newest first, each with `runState`
257
+ (`paused` while the run is still held at that failure, else `finished`
258
+ / `aborted`)
213
259
  - `get_failure_trace` — `failure.json` + error + line/col
214
260
  - `get_failure_console` — captured console entries (last 100)
215
261
  - `get_failure_a11y` — semantic-DOM snapshot at failure moment
@@ -218,6 +264,12 @@ Auto-switch runs **only** under `explore_step` (recording / ad-hoc).
218
264
  - `get_failure_network` — HAR (tier 3 — not yet wired, see
219
265
  `KNOWN_ISSUES.md`)
220
266
 
267
+ A run paused on its failure has a bundle too — written at the pause, from
268
+ the page the failure happened on — so these six answer while the browser
269
+ is still standing there, which is when the answer is worth most. See
270
+ `debugger-tools.md` for what `runState` means and
271
+ how the frame behaves across `resume` and `abort_runtime`.
272
+
221
273
  ### Reading a box (6)
222
274
 
223
275
  The route these belong to is above, under
@@ -233,6 +285,50 @@ this is the list.
233
285
  - `box_queue` — who is waiting, who is running
234
286
  - `box_screenshot` — one frame the run captured, as an image
235
287
 
288
+ ### Cloud account (9)
289
+
290
+ The account that rents boxes, as tools: the same operations as the
291
+ `box` commands and `approvals`, through the same code, so a box reads the
292
+ same whether an agent or a person asked. They act with the key
293
+ `npx @unotest/web login` stored on this machine (or
294
+ `UNOTEST_CLOUD_TOKEN`).
295
+
296
+ - `cloud_boxes_list` — every box on the account, with its state
297
+ - `cloud_box_status` — one box: state, address, paid-until, projects,
298
+ Picker
299
+ - `cloud_box_create` — rent a box (`name`, `envs`, `size?`, `picker?`)
300
+ - `cloud_box_destroy` — delete a box and everything on it
301
+ - `cloud_box_access` — a fresh push + read token pair, written into
302
+ `unotest/.env` and `unotest/.secrets` the way `box access` does. No
303
+ token is ever typed or copied: the answer names what was written where,
304
+ never a value
305
+ - `cloud_box_update` — move a box to the version the cloud offers it
306
+ - `cloud_box_logs` — the end of the box's `bootstrap` or `updater` log
307
+ - `cloud_balance` — what is left on the account
308
+ - `cloud_approval_wait` — wait for a person to answer a request; without
309
+ an `id`, list what is waiting
310
+
311
+ What they answer instead of failing, so an agent can act on it:
312
+
313
+ | answer | when | what to do |
314
+ |---|---|---|
315
+ | `{state: "not-logged-in", next}` | no cloud login on this machine | ask your person to run `next` |
316
+ | `{state: "approval-pending", approval, next}` | a create or a delete by a key that may not spend or delete by itself | call `cloud_approval_wait` with `approval.id`; a person answers in the cabinet |
317
+ | `{state: "top-up-needed", firstHourCents, balanceCents, missingCents, url}` | `cloud_box_create` with a balance short of the first hour; a figure the key may not read is `null` | ask your person to add credit on the cabinet page at `url`, then create again — there is no top-up an agent can make |
318
+ | `{state: "still-waiting"}` | nobody answered within `timeoutSeconds` | call `cloud_approval_wait` again |
319
+ | `{state: "declined"}` / `{state: "expired"}` | a person said no, or nobody answered in ten minutes | nothing was created and nothing was charged |
320
+ | `{state: "insufficient-scope"}` | the key lacks the permission the tool needs | ask the account's owner for a key that has it |
321
+ | `{kind: "requested"}` from `cloud_box_logs` | the box sends its log on its next five-minute check | call again after that |
322
+
323
+ Only the CI key of an operator account, one that unotest runs itself, acts
324
+ with nobody watching. Every key a customer holds — one an agent got through
325
+ `login`, and a CI key issued before keys for agents existed — waits for a
326
+ person on renting, deleting and turning the Picker on, and no tool can
327
+ approve its own request.
328
+
329
+ They are not in `UNOTEST_TOOLSET=core`: a recording agent has no use for
330
+ them.
331
+
236
332
  ### `ground_element` (1, experimental, off by default)
237
333
 
238
334
  Registered when `UNOTEST_GROUNDER_MODE` is `local` or `remote` for the
@@ -348,6 +444,22 @@ reads the lockfile rather than opening a second). Hand that URL to the
348
444
  person you are working with when the answer is easier to look at than to
349
445
  describe — a run's step tree, a screenshot strip, a diff of sources.
350
446
 
447
+ ## Secrets in replies
448
+
449
+ Every MCP reply — text, `structuredContent` and the message of a tool
450
+ error — has the values from `unotest/.secrets` (and the active
451
+ `.secrets.<name>` overlay) replaced by `‹secret:NAME›`, as the session
452
+ journal and the debug log always had. Images are passed as they are.
453
+
454
+ A value the page itself generates (a key shown once, a one-time code) is in
455
+ no secrets file. For those the field's markup decides: a field with
456
+ `type="password"`, or `autocomplete` of `current-password`,
457
+ `new-password` or `one-time-code`, is never printed by an `assertValue`
458
+ failure, never read into a grounding capture, and appears as
459
+ `‹hidden, N chars›` in the page HTML of a failure and in a fill the viewer
460
+ records. A field the page has switched to plain text is judged as plain
461
+ text.
462
+
351
463
  ## Variable environments (dev / staging / prod)
352
464
 
353
465
  Scenario variables come from `unotest/.env` + `unotest/.secrets`.
@@ -456,7 +568,9 @@ Where the route starts differently:
456
568
  `{ latest: true }` collapses them to the last run per scenario with its
457
569
  failing streak — the answer a single status cannot give. `{ running:
458
570
  true }` shows what is in flight.
459
- - **No environment name?** `box_envs` lists them as
571
+ - **No environment name?** On a box that serves one environment, leave
572
+ `environment` out: every `box_*` tool uses that one. With several, the
573
+ refusal lists them and asks for the field. `box_envs` lists them as
460
574
  `<project>/<environment>`, with the bundle each is serving. An empty
461
575
  list is an answer: the box names no environments, and every `box_*`
462
576
  tool that takes one says so instead of asking the box — do not retry
@@ -624,6 +738,9 @@ What the server **cannot** do (by design — D-25):
624
738
  What it **can** do (with your approval):
625
739
 
626
740
  - Run your scenarios + drive browsers
741
+ - Act on your unotest cloud account through the `cloud_*` tools, with the
742
+ key `login` stored — renting, deleting and turning the Picker on wait
743
+ for a person in the cabinet
627
744
  - Read failure artifacts from `.unotest/failures/`
628
745
  - Execute sandbox primitives — `shell(cmd, …args)` (execFile, not
629
746
  shell), `dbQuery` / `dbExec` (against `sandbox.database`), `apiCall`
@@ -449,6 +449,14 @@ On a checkbox / radio / switch (native or `role=`) it asserts the
449
449
  assertValue(getByRole('checkbox', {name: 'Select row R-00147'}), 'true')
450
450
  ```
451
451
 
452
+ On a **secret field** — `type="password"`, or `autocomplete` with
453
+ `current-password`, `new-password` or `one-time-code` — a failure shows
454
+ neither value, only their lengths: `expected ‹hidden, 12 chars›, got
455
+ ‹hidden, 32 chars›`, plus `same length, content differs` when the lengths
456
+ match. The field is judged as it is at the moment of failure: once the page
457
+ switches it to plain text (a "show" button), the page itself shows the
458
+ value, and so does the failure.
459
+
452
460
  ### `assertCount(loc, expected, options?)`
453
461
 
454
462
  ```js
@@ -1056,6 +1064,25 @@ The variable must hold an http(s) URL; an unknown name fails with the
1056
1064
  usual "add it to unotest/.env" message. URLs never appear in the
1057
1065
  scenario — hosts are controlled by project env files only.
1058
1066
 
1067
+ **With an environment overlay active, the base must come from it.**
1068
+ Running `--env dev` while `API_BASE_CHAT` is set only in the base
1069
+ `unotest/.env` is refused — before the browser, by `lint`, by the run
1070
+ and by the MCP tools alike — because the call would otherwise go to the
1071
+ base host while everything else in the run resolves against `dev`. Set
1072
+ the name in `unotest/.env.dev`, or, when the base value really is meant
1073
+ for every environment, list the name in the config:
1074
+
1075
+ ```js
1076
+ // unotest/unotest.config.mjs
1077
+ export default { env: { shared: ['API_BASE_CHAT'] } };
1078
+ ```
1079
+
1080
+ A value supplied by the process environment (a shell variable, a box)
1081
+ is never affected: the rule is about a value silently inherited from a
1082
+ file the overlay was supposed to replace. The same rule covers
1083
+ `APP_BASE_URL` (the base every relative `goto` resolves against) and a
1084
+ variable used as the URL in `goto(NAME)`.
1085
+
1059
1086
  **Multipart file upload — `upload(path, options?)`.** Passing the
1060
1087
  result of `upload(...)` as the body posts `multipart/form-data`:
1061
1088
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unotest/web",
3
- "version": "0.42.0",
3
+ "version": "0.43.1",
4
4
  "description": "AI-native E2E testing for web applications. MCP server (run_test / step / resume / inspect_runtime / agent_fix) + CLI runner + JavaScript DSL scenarios on a sandboxed AST engine + semantic DOM snapshots.",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -83,18 +83,18 @@
83
83
  "tsx": "^4.19.2",
84
84
  "yaml": "^2.6.0",
85
85
  "zod": "^3.23.8",
86
- "@unotest/core": "^0.42.0",
87
- "@unotest/grounder-client": "^0.42.0",
88
- "@unotest/dsl": "^0.42.0",
89
- "@unotest/viewer": "^0.42.0",
90
- "@unotest/protocol": "^0.42.0"
86
+ "@unotest/core": "^0.43.1",
87
+ "@unotest/viewer": "^0.43.1",
88
+ "@unotest/dsl": "^0.43.1",
89
+ "@unotest/protocol": "^0.43.1",
90
+ "@unotest/grounder-client": "^0.43.1"
91
91
  },
92
92
  "devDependencies": {
93
93
  "@types/node": "^22.10.0",
94
94
  "javascript-obfuscator": "^4.1.1",
95
95
  "tsup": "^8.5.1",
96
96
  "typescript": "^5.7.2",
97
- "@unotest/grounder": "^0.42.0",
98
- "@unotest/judge": "^0.42.0"
97
+ "@unotest/judge": "^0.43.1",
98
+ "@unotest/grounder": "^0.43.1"
99
99
  }
100
100
  }