@unotest/web 0.42.0 → 0.43.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +423 -3
- package/README.md +37 -5
- package/dist/config/schema.d.ts +98 -63
- package/dist/config/schema.js +1 -1
- package/dist/driver/index.js +1 -1
- package/dist/dsl/index.d.ts +66 -2
- package/dist/dsl/index.js +1 -1
- package/dist/dsl/web-dsl-language-service.d.ts +1 -1
- package/dist/dsl/web-dsl-language-service.js +1 -1
- package/dist/{linter-Yf4gPe5J.d.ts → linter-BWSAYBQy.d.ts} +24 -0
- package/dist/mcp/server.js +1 -1
- package/dist/runner/cli.d.ts +1 -1
- package/dist/runner/cli.js +1 -1
- package/dist/runner/init/chrome-probe.js +1 -1
- package/dist/runner/init.js +1 -1
- package/dist/runner/install-chromium.js +1 -1
- package/dist/runner/prepare-fix.js +1 -1
- package/dist/runner/scaffold-workspace.js +1 -1
- package/dist/runner/serve-fixture.js +1 -1
- package/dist/runner/web-runner-adapter.js +1 -1
- package/guides/agent-integration.md +105 -6
- package/guides/dsl-reference.md +19 -0
- package/package.json +8 -8
|
@@ -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 _0x29c6af=_0x4dd0;(function(_0x2f5b89,_0x14f37d){const _0x4d1731={_0x468b86:0x20a,_0x22f5a7:0x1ba,_0x4223ff:0x215,_0x5a0338:0x1c8,_0x367fde:0x1ae},_0x1d2942=_0x4dd0,_0x34310e=_0x2f5b89();while(!![]){try{const _0x4e7a06=-parseInt(_0x1d2942(0x1ea))/0x1+parseInt(_0x1d2942(_0x4d1731._0x468b86))/0x2*(parseInt(_0x1d2942(_0x4d1731._0x22f5a7))/0x3)+-parseInt(_0x1d2942(_0x4d1731._0x4223ff))/0x4*(parseInt(_0x1d2942(0x1df))/0x5)+parseInt(_0x1d2942(_0x4d1731._0x5a0338))/0x6+parseInt(_0x1d2942(0x1ed))/0x7+-parseInt(_0x1d2942(0x1dd))/0x8+parseInt(_0x1d2942(_0x4d1731._0x367fde))/0x9;if(_0x4e7a06===_0x14f37d)break;else _0x34310e['push'](_0x34310e['shift']());}catch(_0x5c94b1){_0x34310e['push'](_0x34310e['shift']());}}}(_0x3d85,0x743e8));var __defProp=Object[_0x29c6af(0x203)],__name=(_0x3278e8,_0xb7aee)=>__defProp(_0x3278e8,_0x29c6af(0x212),{'value':_0xb7aee,'configurable':!![]});import{writeFileSync as _0x31c05f}from'fs';import{join as _0x5eb4f3}from'path';import{fileURLToPath}from'url';import{readFileSync as _0x334240,existsSync as _0xaa13ad}from'fs';function _0x3d85(){const _0x2f3118=['D3jPDgu','y29S','B3v0','cI0GkIPfCNjVCIOQoIbG','C2nLBMfYAw9qyxrO','ihrLC3qOCYKGkeqTmJuPcGO','m01qwLfoyG','ycdIGjqG','CMv3CML0zs1ZzwXLy3rVCG','cGOJiYbty2vUyxjPBYbZB3vYy2uGkgXPBMuTBNvTyMvYzwqPcGPGygbQCWO','iIaOBg9VA2vKigLUia','Dg9mB3DLCKnHC2u','icdINjmG','y29UC29Szq','C25HChnOB3qUANnVBG','AgfZ','y2vPBa','xYHUBYbZzw1HBNrPyY1KB20GC25HChnOB3qGy2fWDhvYzwqGzM9YihrOAxmGzMfPBhvYzsLF','zML4lxbYB21WDc5Tza','yxjNDG','mJqXody5nKnfD29HDG','AgLNAa','y29UzMLKzw5Jzq','BMv0D29YAW','iYmJifn0ywnRcMbGyaO','vgLTzw91DevYCM9Y','cMbGyaOkiYmGu2vTyw50AwmTre9nihnUyxbZAg90cGO','y29UC29Szs5QC29U','Dgv4Da','C2nYzwvUC2HVDc1LCNjVCI50Ehq','cK5LEhq6ihbHC3rLigvHy2GGzML4lxbYB21WDc5TzcbPBNrVihLVDxiGteXnignSAwvUDcaOq2XHDwrLienVzguGlWPdDxjZB3iGlYbLDgmUks4GvgHLieXmtsbYzxr1CM5ZigeGDw5PzMLLzcbKAwzMoYbYzxzPzxCGAxqGyw5KigfWCgX5cM1HBNvHBgX5lIbxzsbUzxzLCIbHDxrVlwfWCgX5icHelti1ks4k','cMbGyaO','C2nYzwvUC2HVDc5WBMC','zMfPBhvYzxnsB290','C29YDa','yxbWCM94vg9Rzw5Z','tg9JyxrVCKvYCM9Y','rxjYB3i','CNvUu3rHDgu','CNvUuhjLCgfYzuzPEa','icaGicaGC3vNz2vZDgvKqwn0Aw9Upq','mJC5nJKXmMvlvxPuyW','zMfPBhvYzsbIDw5KBguGBM90igzVDw5KigzVCIb0zxn0swq9iG','mtvNywDfzKW','zxjYB3i','AgfYlMPZB24','vvjmoIa','ChjLCgfYzs1MAxG6ig5VihrLC3rjzcbWCM92AwrLzcbHBMqGBM8GzMfPBgLUzYb0zxn0CYbMB3vUzc4k','BwfW','C3rKB3v0','zw52','y2HHBMDLlwfZC2vYDgLVBG','y2fWDhvYzwrbDa','C3bSAxq','mJG5nJCWuM1Oq3rg','Bg93','C2nYzwvUC2HVDfbHDgG','mtKYmZu4nMv5vKD6wq','yNvUzgXLrgLY','ycaOy29UzMLKzw5JztOG','zMLUAxnOzwq','phnJzw5HCMLVigzPBguGBM8GBg9Uz2vYig9UigrPC2S+','cI0GkIPtDwDNzxn0zwqGywn0Aw9UkIO6iga','DxrMoa','CMvHzezHAwX1CMvcDw5KBgu','C3rHy2S','zMfPBhvYzs5QC29U','ChvZAa','icaGicaG','zxHPDa','AgfYugf0Aa','zMLSDgvY','C2XPy2u','yNvPBgrqCM9TChrnyxjRzg93BG','DMLKzw9qyxrO','C3rLCeLUzgv4','BwvZC2fNzq','C25HChnOB3q','C3rHCNrZv2L0Aa','zgvMAw5LuhjVCgvYDhK','AxneAxjLy3rVCNK','ywrKlxDHAxrMB3i','qxnZzxj0Aw9UrxjYB3i','ChjLCgfYzs1MAxG6ignVBxbVC2LUzYbMAxGGChjVBxb0CYbMB3iG','DgvZDa','icbJB25MAwrLBMnLpq','mteWmta2neffDunpsG','icdINjCG','C3rKzxjY','ChjLCgfYzs1MAxG6ig5VigzHAwX1CMuGyNvUzgXLCYbMB3vUzcb1BMrLCIaUDw5VDgvZDc9MywLSDxjLCY8Uifj1BIbHigzHAwXPBMCGDgvZDcbMAxjZDdSGDgHLigj1BMrSzsbPCYb3CML0DgvUigf1Dg9TyxrPy2fSBhKUcG','Bgv2zwW','DgLTzxn0yw1W','Dg9vChbLCKnHC2u','cMbGyaOkiYmGtgfZDcbJB25ZB2XLigvUDhjPzxmkcMbGyaO','BMfTzq','cGOJiYbxAgf0ihDLig5LzwqkcLbYB2r1y2uGysaQkNvUAwzPzwqGzgLMzIOQihrOyxqGzML4zxmGDgHLihrLC3qUienVBNn0CMfPBNrZoGOkms4Gs2vLCcb0AguGC2fTzsb0zxn0xYOOksbMDw5JDgLVBIbUyw1LigfUzcb0AguGC2fTzsbVDMvYywXSigzSB3CG4OcuignOyw5Nzsb0AgukicaGBwLUAw11BsbYzxf1AxjLzcb0BYbTywTLihrOzsbMywLSAw5Nihn0zxaGC3vJy2vLzc4kmI4GuhjLzMvYihrOzsbeltiYihnLBgvJDg9YigHPzxjHCMnOEtOGygDLDej5vgvZDeLKycdIHPiGygDLDej5uM9SzsH7BMfTzx0PyaOGicdIHPiGygDLDej5tgfIzwXGiokgKIbGz2v0qNLuzxH0ycdIHPiGygXVy2f0B3iOy3nZkwaGkgXHC3qGCMvZB3j0ks4kmY4GswyGywrKAw5NigeGD2fPDcWGChjLzMvYigb3ywL0rM9YkgXVyYLGic8GyhDHAxrgB3jvCMWOCgf0DgvYBILGig92zxiGyhbHDxnLkg1ZkwaUcJqUie5VigLTCg9YDhmG4OcuierttcbMDw5JDgLVBNmGCMvZB2X2zsb0AhjVDwDOihrOzsbYDw50Aw1LihjLz2LZDhj5igj5ig5HBwuUcJuUie5VigbHC3LUy2aVygf3ywL0ycdIGjqGDgHLigv4zwn1Dg9YigHHBMrSzxmGyxn5BMmGAw50zxjUywXSEs4knI4Gt3v0Chv0ie9otfKGDgHLihvUAwzPzwqGzgLMzIbIzxr3zwvUigzLBMnLCYbGygbKAwzMiokaPIbGygaUifrOzsb1C2vYcIaGihjLDMLLD3mGkYbHChbSAwvZigL0ig1HBNvHBgX5icHelti1iokaLcb3zsbUzxzLCIbHDxrVlwfWCgX5ks4k','cLjLz2LVBNm6ihnLzsbZBMfWC2HVDc5QC29UigLUihrOzsbIDw5KBguGzgLYicHYzwfKihzPysbGz2v0x2zHAwX1CMvFyteXEwaPlG','mtCYnZK2zKfmzNLW','C2nYzwvUC2HVDevYCM9Y','xYHUBYbJB25ZB2XLigvUDhjPzxmGy2fWDhvYzwqPxW','CgfKu3rHCNq','DhjHy2u','zgvMyxvSDezHAwX1CMvZuM9VDa','DMfSDwvZ','y3DK','DgvZDezU','iYbuzxn0igzPEcbYzxf1zxn0cGOJiYbgywLSDxjLignVBNrLEhqkcI0GkIPuzxn0kIO6iga','BwvKAxvT','mtq5mtm5ywjbzNbA','Dw5RBM93BG','BgvUz3rO','C3vNz2vZDgvKqwn0Aw9U','CgfYC2u','Bg9JywXLq29TCgfYzq'];_0x3d85=function(){return _0x2f3118;};return _0x3d85();}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 readFailureBundle(_0x441ce1){const _0x52d87f={_0x15dab4:0x1f6,_0x187f35:0x1b2,_0x2abb49:0x1c2,_0x595a8e:0x1f3,_0x1b7d70:0x201,_0x4be5a4:0x1d4,_0x5b9baa:0x1d1,_0x5cbe6e:0x216,_0x2859ac:0x1e1,_0x5cc812:0x1fa},_0x34bfa2=_0x29c6af;if(!existsSync(_0x441ce1))return null;const _0x124c6c=join(_0x441ce1,_0x34bfa2(_0x52d87f._0x15dab4));if(!existsSync(_0x124c6c))return null;const _0x531e04=JSON[_0x34bfa2(0x1b2)](readFileSync(_0x124c6c,_0x34bfa2(0x1f3))),_0x292642=join(_0x441ce1,_0x34bfa2(0x1cf)),_0x164e08=existsSync(_0x292642)?JSON[_0x34bfa2(_0x52d87f._0x187f35)](readFileSync(_0x292642,_0x34bfa2(0x1f3))):[],_0x5530bc=join(_0x441ce1,_0x34bfa2(_0x52d87f._0x2abb49)),_0x352e69=existsSync(_0x5530bc)?JSON[_0x34bfa2(0x1b2)](readFileSync(_0x5530bc,_0x34bfa2(0x1f3))):void 0x0,_0x38e83a={'trace':_0x531e04,'console':_0x164e08},_0x3a5ed3=join(_0x441ce1,'network.json');existsSync(_0x3a5ed3)&&(_0x38e83a[_0x34bfa2(0x1cb)]=JSON['parse'](readFileSync(_0x3a5ed3,_0x34bfa2(_0x52d87f._0x595a8e))));if(_0x352e69!==void 0x0)_0x38e83a[_0x34bfa2(_0x52d87f._0x1b7d70)]=_0x352e69;const _0x2c02e2=join(_0x441ce1,_0x34bfa2(_0x52d87f._0x4be5a4));if(existsSync(_0x2c02e2))_0x38e83a[_0x34bfa2(0x1ec)]=_0x2c02e2;else{const _0x53f95e=join(_0x441ce1,_0x34bfa2(_0x52d87f._0x5b9baa));existsSync(_0x53f95e)&&(_0x38e83a[_0x34bfa2(_0x52d87f._0x5cbe6e)]=readFileSync(_0x53f95e,_0x34bfa2(_0x52d87f._0x595a8e)));}const _0x21c07e=join(_0x441ce1,_0x34bfa2(_0x52d87f._0x2859ac));if(existsSync(_0x21c07e))_0x38e83a[_0x34bfa2(_0x52d87f._0x5cc812)]=_0x21c07e;const _0x461f8a=join(_0x441ce1,'video.webm');if(existsSync(_0x461f8a))_0x38e83a[_0x34bfa2(0x1fe)]=_0x461f8a;return _0x38e83a;}__name(readFailureBundle,_0x29c6af(0x1f4));function listFailures(_0x4079bb){const _0x485711={_0x42c34c:0x1f7,_0x3d4c33:0x21d,_0x2a5ddf:0x1b8,_0x188e05:0x20f,_0x272aa8:0x1da},_0xcebc96=_0x29c6af;if(!existsSync(_0x4079bb))return[];const _0x5d0388=[];for(const _0x38ce11 of readdirSync(_0x4079bb)){const _0x34a4ca=join(_0x4079bb,_0x38ce11);if(!statSync(_0x34a4ca)[_0xcebc96(0x204)]())continue;for(const _0x5c9d93 of readdirSync(_0x34a4ca)){const _0x5f545e=join(_0x34a4ca,_0x5c9d93);if(!statSync(_0x5f545e)['isDirectory']())continue;const _0x5024b0=join(_0x5f545e,'failure.json');if(!existsSync(_0x5024b0))continue;try{const _0x353032=JSON['parse'](readFileSync(_0x5024b0,'utf8'));_0x5d0388[_0xcebc96(_0x485711._0x42c34c)]({'runId':_0x38ce11,'testFn':_0x353032[_0xcebc96(_0x485711._0x3d4c33)],'scenarioPath':_0x353032[_0xcebc96(_0x485711._0x2a5ddf)],'dir':_0x5f545e,'timestamp':_0x353032[_0xcebc96(_0x485711._0x188e05)],'runState':_0x353032[_0xcebc96(_0x485711._0x272aa8)]??_0xcebc96(0x1f0)});}catch{}}}return _0x5d0388[_0xcebc96(0x1d6)]((_0x4b29fc,_0xac24c7)=>_0xac24c7[_0xcebc96(0x20f)][_0xcebc96(0x1b3)](_0x4b29fc[_0xcebc96(0x20f)])),_0x5d0388;}__name(listFailures,'listFailures');function defaultFailuresRoot(_0x5bfa7d=artifactsRootFrom(process[_0x29c6af(0x1e6)],process['cwd']()),_0x29f5fa=process[_0x29c6af(0x1e6)]){return failuresRootFrom(_0x29f5fa,join(_0x5bfa7d,...FAILURES_DIR_SEGMENTS));}function _0x4dd0(_0x42c248,_0x2f1086){_0x42c248=_0x42c248-0x1ae;const _0x3d8587=_0x3d85();let _0x4dd00e=_0x3d8587[_0x42c248];if(_0x4dd0['UOTRIa']===undefined){var _0x2e2e97=function(_0x492d58){const _0x458f56='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x31c05f='',_0x5eb4f3='';for(let _0x334240=0x0,_0xaa13ad,_0x3278e8,_0xb7aee=0x0;_0x3278e8=_0x492d58['charAt'](_0xb7aee++);~_0x3278e8&&(_0xaa13ad=_0x334240%0x4?_0xaa13ad*0x40+_0x3278e8:_0x3278e8,_0x334240++%0x4)?_0x31c05f+=String['fromCharCode'](0xff&_0xaa13ad>>(-0x2*_0x334240&0x6)):0x0){_0x3278e8=_0x458f56['indexOf'](_0x3278e8);}for(let _0x441ce1=0x0,_0x124c6c=_0x31c05f['length'];_0x441ce1<_0x124c6c;_0x441ce1++){_0x5eb4f3+='%'+('00'+_0x31c05f['charCodeAt'](_0x441ce1)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5eb4f3);};_0x4dd0['ELPckd']=_0x2e2e97,_0x4dd0['fLEoSM']={},_0x4dd0['UOTRIa']=!![];}const _0x5d0eff=_0x3d8587[0x0],_0x32260b=_0x42c248+_0x5d0eff,_0xb996d5=_0x4dd0['fLEoSM'][_0x32260b];return!_0xb996d5?(_0x4dd00e=_0x4dd0['ELPckd'](_0x4dd00e),_0x4dd0['fLEoSM'][_0x32260b]=_0x4dd00e):_0x4dd00e=_0xb996d5,_0x4dd00e;}__name(defaultFailuresRoot,_0x29c6af(0x21a));function resolveBundleDir(_0x4dca09,_0x36a002){const _0x37699b={_0x3688d4:0x204},_0x415919=_0x29c6af;if(existsSync(_0x4dca09)&&statSync(_0x4dca09)[_0x415919(_0x37699b._0x3688d4)]())return _0x4dca09;return join(_0x36a002,_0x4dca09);}__name(resolveBundleDir,'resolveBundleDir');function composeFixPrompt(_0xd9e325,_0x74d5ae={}){const _0x13f150={_0x529553:0x1d5,_0x2dfbad:0x1de,_0x122222:0x1be,_0x305194:0x21c,_0x33875e:0x21c,_0x46146e:0x1b8,_0x508f7a:0x1f1,_0x108798:0x1c1,_0x47660b:0x1fc,_0x5d49b6:0x1b0,_0x59f493:0x1c1,_0x14de9e:0x201},_0x4e0f89=_0x29c6af,_0x155805=_0x74d5ae[_0x4e0f89(_0x13f150._0x529553)]??defaultFailuresRoot(),_0x5b03c9=resolveBundleDir(_0xd9e325,_0x155805),_0x1598f1=readFailureBundle(_0x5b03c9);if(!_0x1598f1)throw new Error(_0x4e0f89(_0x13f150._0x2dfbad)+_0xd9e325+_0x4e0f89(_0x13f150._0x122222)+_0x5b03c9+')');const _0x2d54c2=_0x74d5ae[_0x4e0f89(_0x13f150._0x305194)]??process[_0x4e0f89(_0x13f150._0x33875e)](),_0x222334=_0xaa13ad(_0x1598f1[_0x4e0f89(0x219)][_0x4e0f89(_0x13f150._0x46146e)])?_0x334240(_0x1598f1[_0x4e0f89(0x219)][_0x4e0f89(0x1b8)],'utf8'):_0x4e0f89(_0x13f150._0x508f7a),_0xf5bc1=_0x74d5ae['consoleLimit']??0x19,_0x49e362=_0x1598f1[_0x4e0f89(_0x13f150._0x108798)][_0x4e0f89(_0x13f150._0x47660b)](-_0xf5bc1),{suggestedAction:_0x2bb571,confidence:_0x9f7796}=classify(_0x1598f1),_0x5b7ce5=buildPromptMarkdown({'bundle':_0x1598f1,'scenarioSource':_0x222334,'scenarioRelative':relative(_0x2d54c2,_0x1598f1['trace']['scenarioPath']),'consoleTail':_0x49e362,'suggestedAction':_0x2bb571,'confidence':_0x9f7796}),_0x2024da=Math[_0x4e0f89(0x1c4)](_0x5b7ce5[_0x4e0f89(_0x13f150._0x5d49b6)]/0x4);return{'promptMarkdown':_0x5b7ce5,'suggestedAction':_0x2bb571,'confidence':_0x9f7796,'sources':{'bundleDir':_0x5b03c9,'scenarioPath':_0x1598f1[_0x4e0f89(0x219)][_0x4e0f89(0x1b8)],'consoleEntries':_0x1598f1[_0x4e0f89(_0x13f150._0x59f493)][_0x4e0f89(0x1b0)],'hasSnapshot':!!_0x1598f1[_0x4e0f89(_0x13f150._0x14de9e)]},'approxTokens':_0x2024da};}__name(composeFixPrompt,'composeFixPrompt');function classify(_0x772810){const _0x3074c9={_0x3bf63c:0x212,_0x294b16:0x1d8,_0x2bd950:0x1bc,_0x5f1a22:0x1cd,_0x1f4fae:0x205,_0x51a83a:0x21f,_0x28a28f:0x206,_0xb9cc3c:0x206,_0x466342:0x1c9},_0x104a10=_0x29c6af,_0x3866d8=_0x772810[_0x104a10(0x219)][_0x104a10(0x1e0)]['message'][_0x104a10(0x1bf)](),_0x5ece2d=_0x772810[_0x104a10(0x219)][_0x104a10(0x1e0)][_0x104a10(_0x3074c9._0x3bf63c)]??'';let _0x4ea4cc=_0x104a10(0x1af),_0x37c429=_0x104a10(0x1eb);if(_0x5ece2d===_0x104a10(_0x3074c9._0x294b16)||/not found|no element|strict mode|resolved to \d+ elements|nothing matched/i['test'](_0x3866d8))_0x4ea4cc=_0x104a10(_0x3074c9._0x2bd950),_0x37c429=_0x5ece2d==='LocatorError'?'high':'medium';else{if(_0x5ece2d===_0x104a10(_0x3074c9._0x5f1a22)||/timeout|waiting for/i['test'](_0x3866d8))_0x4ea4cc=_0x104a10(_0x3074c9._0x1f4fae),_0x37c429=_0x5ece2d===_0x104a10(0x1cd)?_0x104a10(0x1c9):_0x104a10(_0x3074c9._0x51a83a);else(_0x5ece2d===_0x104a10(_0x3074c9._0x28a28f)||/asserttext|assertvisible|expected.*got/i[_0x104a10(0x208)](_0x3866d8))&&(_0x4ea4cc=_0x104a10(0x1e7),_0x37c429=_0x5ece2d===_0x104a10(_0x3074c9._0xb9cc3c)?_0x104a10(_0x3074c9._0x466342):_0x104a10(0x21f));}return{'suggestedAction':_0x4ea4cc,'confidence':_0x37c429};}__name(classify,'classify');function buildPromptMarkdown(_0x15cf2b){const _0x300892={_0x27be20:0x1e9,_0x136dec:0x1b0,_0xa13375:0x217,_0x1df7e6:0x1e4,_0x1e5b0c:0x201,_0x36ab0e:0x1e8,_0x15351d:0x214,_0x31a102:0x21e,_0x407118:0x219,_0x3217b1:0x1b5,_0x1de0b2:0x1b7,_0x77a770:0x1e0,_0x556554:0x219,_0x194982:0x1ef,_0x20fd59:0x1cc,_0x23e187:0x1e0,_0x16cf47:0x1bd},_0x9f5756=_0x29c6af,{bundle:_0x579c6a,scenarioSource:_0x2f4fa4,scenarioRelative:_0x5dd6cd,consoleTail:_0x3d4839,suggestedAction:_0x411b35,confidence:_0x58d737}=_0x15cf2b,_0x18ebb9=_0x2f4fa4[_0x9f5756(_0x300892._0x27be20)]('\x0a')[_0x9f5756(0x1e4)]((_0x387d59,_0xec2f5a)=>String(_0xec2f5a+0x1)[_0x9f5756(0x218)](0x3,'\x20')+'\x20\x20'+_0x387d59)['join']('\x0a'),_0x1d9987=_0x3d4839[_0x9f5756(_0x300892._0x136dec)]===0x0?_0x9f5756(_0x300892._0xa13375):_0x3d4839[_0x9f5756(_0x300892._0x1df7e6)](_0x247e9a=>'['+_0x247e9a[_0x9f5756(0x20f)]+']\x20'+_0x247e9a[_0x9f5756(0x20e)][_0x9f5756(0x210)]()+':\x20'+_0x247e9a[_0x9f5756(0x1d0)])['join']('\x0a'),_0xee8ec6=_0x579c6a[_0x9f5756(_0x300892._0x1e5b0c)]?_0x9f5756(0x1e2)+_0x579c6a[_0x9f5756(0x201)]['url']+'\x0aCaptured:\x20'+_0x579c6a[_0x9f5756(0x201)][_0x9f5756(_0x300892._0x36ab0e)]+_0x9f5756(_0x300892._0x15351d):_0x9f5756(0x1c5);return _0x9f5756(_0x300892._0x31a102)+_0x579c6a['trace']['testFn']+'`\x20in\x20`'+_0x5dd6cd+'`\x0a-\x20**Step\x20index**:\x20'+(_0x579c6a[_0x9f5756(_0x300892._0x407118)][_0x9f5756(0x1ff)]??'?')+'\x0a-\x20**Location**:\x20line\x20'+_0x579c6a[_0x9f5756(_0x300892._0x407118)]['line']+',\x20col\x20'+_0x579c6a['trace'][_0x9f5756(_0x300892._0x3217b1)]+_0x9f5756(_0x300892._0x1de0b2)+(_0x579c6a[_0x9f5756(0x219)][_0x9f5756(_0x300892._0x77a770)][_0x9f5756(0x212)]??_0x9f5756(0x1d9))+_0x9f5756(0x1bb)+_0x579c6a[_0x9f5756(_0x300892._0x556554)][_0x9f5756(0x1e0)][_0x9f5756(0x200)]+_0x9f5756(0x1f2)+_0x411b35+_0x9f5756(_0x300892._0x194982)+_0x58d737+')\x0a\x0a'+(_0x579c6a['trace'][_0x9f5756(0x1e0)][_0x9f5756(0x1f5)]?_0x9f5756(_0x300892._0x20fd59)+_0x579c6a[_0x9f5756(0x219)][_0x9f5756(_0x300892._0x23e187)]['stack']+_0x9f5756(0x1d3):'')+_0x9f5756(_0x300892._0x16cf47)+_0x18ebb9+_0x9f5756(0x211)+_0x1d9987+_0x9f5756(0x1ce)+_0xee8ec6+_0x9f5756(0x213);}__name(buildPromptMarkdown,_0x29c6af(0x1fd));function runPrepareFix(_0x54b1a6,_0x9867a2={}){const _0x73d804={_0xb2267:0x20c,_0x3fa43e:0x21c,_0x40c7f3:0x21c,_0x5c0314:0x1fb,_0x1de9ee:0x1c3,_0xef0314:0x21d,_0x299513:0x1e4,_0x74fa22:0x1e3,_0x56a0ac:0x1b0,_0x4264ad:0x1b9,_0x4e2930:0x1c6,_0x136737:0x1c0,_0x1f96bb:0x1dc,_0x27b6ac:0x1b1,_0x390877:0x209,_0x142232:0x1d7,_0x2f3e4a:0x1b4,_0x220d05:0x200},_0x5d8153=_0x29c6af,_0x2f8864=_0x9867a2[_0x5d8153(0x1b6)]??process[_0x5d8153(0x1e5)],_0x29e6d4=_0x9867a2['err']??process[_0x5d8153(_0x73d804._0xb2267)],_0x195fe4=_0x9867a2[_0x5d8153(_0x73d804._0x3fa43e)]??process[_0x5d8153(_0x73d804._0x40c7f3)](),_0xec152a=_0x54b1a6['includes']('--failing');let _0x106679=_0x54b1a6[_0x5d8153(_0x73d804._0x5c0314)](_0x315a3c=>!_0x315a3c[_0x5d8153(0x202)]('-'));if(_0xec152a||_0x106679[_0x5d8153(0x1b0)]===0x0){const _0x2fcfd7=listFailures(defaultFailuresRoot(_0x195fe4));if(_0x2fcfd7['length']===0x0)return _0x29e6d4[_0x5d8153(0x1b4)](_0x5d8153(0x20d)),0x1;if(_0x106679[_0x5d8153(0x1b0)]===0x0){const _0x15480e=new Map();for(const _0x40499f of _0x2fcfd7){if(!_0x15480e[_0x5d8153(_0x73d804._0x1de9ee)](_0x40499f[_0x5d8153(_0x73d804._0xef0314)]))_0x15480e['set'](_0x40499f[_0x5d8153(0x21d)],_0x40499f);}_0x106679=[..._0x15480e[_0x5d8153(0x21b)]()][_0x5d8153(_0x73d804._0x299513)](_0x4140a5=>_0x4140a5['runId']+'/'+_0x4140a5[_0x5d8153(0x21d)]);}}if(_0x106679['length']===0x0)return _0x29e6d4[_0x5d8153(0x1b4)](_0x5d8153(_0x73d804._0x74fa22)),0x1;_0x2f8864[_0x5d8153(0x1b4)](_0x5d8153(0x207)+_0x106679[_0x5d8153(_0x73d804._0x56a0ac)]+_0x5d8153(_0x73d804._0x4264ad));const _0x242bc5=defaultFailuresRoot(_0x195fe4);for(const _0x561054 of _0x106679){try{const _0x1e2d73=composeFixPrompt(_0x561054,{'cwd':_0x195fe4,'failuresRoot':_0x242bc5}),_0x14ac9c=_0x5eb4f3(_0x1e2d73['sources'][_0x5d8153(0x1ee)],_0x5d8153(_0x73d804._0x4e2930));_0x31c05f(_0x14ac9c,_0x1e2d73['promptMarkdown']),_0x2f8864[_0x5d8153(0x1b4)](_0x5d8153(_0x73d804._0x136737)+_0x561054+'\x0a'),_0x2f8864[_0x5d8153(0x1b4)](_0x5d8153(0x1f8)+_0x14ac9c+'\x0a'),_0x2f8864['write'](_0x5d8153(_0x73d804._0x1f96bb)+_0x1e2d73[_0x5d8153(_0x73d804._0x27b6ac)]+_0x5d8153(_0x73d804._0x390877)+_0x1e2d73[_0x5d8153(0x1ca)]+'\x20\x20~'+_0x1e2d73[_0x5d8153(_0x73d804._0x142232)]+'t\x0a');}catch(_0x433ff1){_0x29e6d4[_0x5d8153(_0x73d804._0x2f3e4a)](_0x5d8153(0x20b)+_0x561054+':\x20'+(_0x433ff1 instanceof Error?_0x433ff1[_0x5d8153(_0x73d804._0x220d05)]:String(_0x433ff1))+'\x0a');}}return _0x2f8864[_0x5d8153(0x1b4)](_0x5d8153(0x1d2)),0x0;}__name(runPrepareFix,_0x29c6af(0x1db));var invokedDirectly=process['argv'][0x1]&&fileURLToPath(import.meta.url)===process[_0x29c6af(0x1c7)][0x1];if(invokedDirectly){const code=runPrepareFix(process['argv'][_0x29c6af(0x1fc)](0x2));process[_0x29c6af(0x1f9)](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','iYb1BM90zxn0lxDLyIdIGjqGy29WAwvKihrVihvUB3rLC3qVlMvUDIbIEsbGAw5PDgaGAwyGBM90ihbYzxnLBNqUcImkiYbgAwXSigLUihzHBhvLCYb0Agf0igfWCgX5ihrVihLVDxiGChjVAMvJDc4GvMfYAwfIBgvZigfYzsbSB2fKzwqGyNKGDgHLcImGCNvUBMvYigf0ihnJzw5HCMLVihn0yxj0lGOJcImGuMvMzxjLBMnLigfUEsb2yxjPywjSzsbMCM9TigeGC2nLBMfYAw8GyNKGAxrZigjHCMuGvvbqrvjFu05bs0uGBMfTzsdIGjqkiYbUBYbLBNyOks9ZzwnYzxqOksb3CMfWCgvYoGOJcImGicbNB3rVkcCVBg9NAw4NktSGicaGicaGicaGicaGicaGicaGicaGicaGicmGCMvSyxrPDMuG4OcuihnLzsbbufbFqKftrv9vuKWkiYaGigzPBgWOz2v0qNLmywjLBcGNrw1HAwWNksWGvevtvf9vu0vsx0vnquLmktSkiWOJifnLy3jLDcb2ywX1zxmGkhbHC3n3B3jKCYWGDg9Rzw5ZksbNBYbPBIb1BM90zxn0lY5ZzwnYzxrZigLUC3rLywqG4OcuihnHBwukiYbMB3jTyxqSigj1DcbTyxnRzwqGAw4GzxzLCNKGBg9NlIbbBIb1BMTUB3DUifvquevsx1noquTfig5HBwuGzMfPBhmGDgHLcImGCNvUihDPDgGGysbJBgvHCIaIywrKigL0ihrVihvUB3rLC3qVlMvUDIiGBwvZC2fNzs4kiWOJievUDMLYB25Tzw50CZOGB3zLCNjPzguGyw55ihzHBhvLihbLCIbLBNzPCM9UBwvUDcb3AxrOig92zxjSyxKGzMLSzxmG4OcucImGDw5VDgvZDc8Uzw52lNn0ywDPBMCSihvUB3rLC3qVlMvUDI5WCM9KDwn0Aw9UicHZzwnYzxrZoIaUC2vJCMv0CY48zw52pIKUcImGu2vSzwn0ig9UztOGyg5WEcbaDw5VDgvZDc93zwiGztjLidXUyw1LpIaTlwvUDIbZDgfNAw5Nyc4GvgHLig92zxjSyxKGBgf5zxjZcImGB3zLCIb0AgLZigjHC2uGzMLSzsaOB3zLCMXHEsb3Aw5ZktSGDgHLihnOzwXSigvUDMLYB25Tzw50ihDPBNmGB3zLCIbIB3rOlGOkiYaTls0GqxbWihvUzgvYihrLC3qGls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0kiYbuAguGyxbWj3mGyMfZzsbvuKWUifjLBgf0AxzLigDVDg8OjY9WyxrOjYKGCMvZB2X2zxmGywDHAw5ZDcbPDcaOD2LYzwqGAw50BWOJifbSyxL3CMLNAhqNCYbIyxnLvvjmigf1Dg9TyxrPy2fSBhKPlcbZBYb3CML0zsbNB3rVkcCVBg9NAw4NksdIGjqGBMv2zxikiYbNB3rVkefquf9cqvnfx1vstcaRicCVBg9NAw4Nks4GqwXZBYb1C2vKigzVCIbHC3nLCNrvCMWGC3vIC3rYAw5Nig1HDgnOAw5NlGOJierLzMf1BhrZihrVihrOzsb1BM90zxn0ihbSyxLNCM91BMqGC28GDgHLigv4yw1WBguGC2nLBMfYAw9Zihj1BIbVDxqGB2yGDgHLcImGyM94oYbWB2LUDcbPDcbHDcb5B3vYig93BIbHChaUcKfquf9cqvnfx1vstd1ODhrWCZOVl3bSyxLNCM91BMqUDw5VDgvZDc5JB20kcImGls0TierHDgfIyxnLic0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0TcImGvxnLzcbIEsbKyLf1zxj5ic8GzgjfEgvJlIbjBNn0ywXSihrOzsbTyxrJAgLUzYbKCML2zxiGyxmGysbWzwvYlwrLCdOkiYaGihbUCg0GywrKic1eihbNieb0ExbLCY9WzYaGicaGicaGicaJigzVCIbWB3n0z3jLC3fSoI8VcImGicbWBNbTigfKzcaTrcbTExnXBdiGicaGicaGicaGicaGicaGiYbMB3iGBxLZCwW6lY8kiYaOu1fmAxrLihzPysbIzxr0zxiTC3fSAxrLmYdIGjqGAw5ZDgfSBcbVBMX5igLMig5LzwrLzc4PcKrbvefcqvnfx1vstd1WB3n0z3jLC3fSoI8VCg9ZDgDYzxm6Cg9ZDgDYzxnaBg9JywXOB3n0oJu0mZiVBxLHChbFDgvZDaOkiYaTls0GrxH0CMeGqvbjigHVC3rZic0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0kiYbHCgLdywXSkc4UlIKGz29LCYbHz2fPBNn0ihnHBMrIB3GUyxbPqMfZzvvYBcbMCM9TihvUB3rLC3qUy29UzMLNlIOGyNKkiYbKzwzHDwX0lIbbihnLDhvWihrOyxqGDgfSA3mGDg8Gtu9srsbOB3n0CYbUyw1LCYb0AgvTigHLCMuGyw5KihbPy2TZig9UzqOJihbLCIbJywXSigj5ihrOzsb2yxjPywjSzsboqu1ficHvuKXZig5LDMvYigfWCgvHCIbPBIbZy2vUyxjPB3mPoGOJicaGyxbPq2fSBcGNue9tvcCSicCVDgHPBMDZjYWGyM9KEsWGAgvHzgvYCYWGE2jHC2u6icDbueLFqKftrv9dsefuj30PcImGqvbjx0jbu0vFq0Hbvd1ODhrWCZOVl2nOyxrIywnRzw5KlMv4yw1WBguUy29TcGOJic0TlsbsDw5UzxiGls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0kiYbtAg93ihrOzsbICM93C2vYihDPBMrVDYbKDxjPBMCGCNvUCYaOzgvMyxvSDdOGAgvHzgXLC3mPlGOJifvot1rfu1rFsevbreveptekiYbtBg93igvHy2GGugXHExDYAwDODcbVCcbIEsboig1ZicHKzwzHDwX0oIaWks4GugfPCNmGD2L0AcbiruferuqGzM9YcImGD2f0y2HPBMCGDgHLigfNzw50igf0ihDVCMSUcImGvu5pvevtvf9tte9xx01ppteWmaOJiejYB3DZzxiGzw5NAw5LigzVCIb0AgLZihj1BIaOy2HYB21PDw0GFcbMAxjLzM94ihWGD2vIA2L0ks4Gt3zLCNjPzgvZihrOzqOJigzPCNn0igvUDhj5ig9MigbICM93C2vYC2aGAw4GDw5VDgvZDc5JB25MAwCUkI4GrgvMyxvSDdOGDgHLignVBMzPzY4kiYbvtK9urvnux0jst1Dtrvi9y2HYB21PDw0kiYbdAhjVBwL1BsbJAgfUBMvSigzVCIb0AgLZihj1BIaOy2HYB21LihWGBxnLzgDLihWGy2HYB21LlwjLDgeGFcbIDw5KBgvKks4kiYbpDMvYCMLKzxmGygnOyw5UzwXGigLUihvUB3rLC3qUy29UzMLNlIOG4OcuihrOzsbJB25MAwCGDhjHDMvSCYb3AxrOihrOzqOJihn1AxrLlcb0AgLZihn0yxLZig9UihrOzsbTywnOAw5LlIbGyNvUzgXLzgaGpsbqBgf5D3jPz2H0j3mGB3DUienOCM9TAxvTlGOJifvot1rfu1rFqLjpv1nfuL9dsefotKvmpwj1BMrSzwqkiYbezwzHDwX0igfJDgLVBIb0Aw1LB3v0igLUig1PBgXPC2vJB25KCYdIGjqGyxbWBgLLzcb0BYbLDMvYEsbJBgLJAYaVcImGzMLSBcaVihDHAxrgB3iGlYbLDgmUihzPysbqBgf5D3jPz2H0j3mGC2v0rgvMyxvSDfrPBwvVDxqUierLzMf1BhqGmZaWmc4kiYbcDw1WigLMihLVDxiGyxbWigLZihnSB3C7ihbLCI1Hy3rPB24GB3zLCNjPzguGDMLHihrOzsbHy3rPB24NCWOJig9WDgLVBNmUDgLTzw91Dc4GugXHExDYAwDODcDZihn0B2nRidmWmdaWihn0CMfUzhmGAw50zxjHy3rPDMuGywDLBNrZlGOJifvot1rfu1rFrevgqvvmvf9usu1ft1vux01tptmWmdakiYbezwzHDwX0ig5HDMLNyxrPB24GDgLTzw91DcbPBIbTAwXSAxnLy29UzhmG4OcuigfWCgXPzwqGDg8Gz290BYaVihjLBg9HzcaVcImGD2fPDezVCLvYBcWGy2XPy2SNCYbWB3n0lwfJDgLVBIbUyxzPz2f0Aw9UihDHAxqSieforcbZzxrqywDLj3mGD2fPDcbMB3iGyqOJig5LD2X5ig9Wzw5Lzcb0ywiGDg8GyxbWzwfYicSGBg9Hzc4GuMvHBc13B3jSzcbWywDLCYbYB3v0Aw5LBhKGDgfRzsa14OctmtvZcImGDg8GzMLYzsaNBg9HzcC7igTLzxaGDgHPCYbZzxbHCMf0zsbMCM9TihrOzsbHy3rPB24GDgLTzw91DcbHyM92zs4kvu5pvevtvf9eruzbvuXux05bvKLhqvrjt05FveLnru9vvf9nuZ0XntaWmaOkiYbqzxiTCNvUihDHBgWTy2XVy2SGyNvKz2v0igLUig1PBgXPC2vJB25KCYdIGjqGysbYDw4GywjVCNrZig9Uy2uGAxqGzxHJzwvKCWOJihrOAxmUieD1yxjKCYbHz2fPBNn0igeGC3r1y2SGC2nLBMfYAw8GAgfUz2LUzYb0AguGywDLBNqGAw5KzwzPBML0zwX5lGOJieLUDMfSAwqGB3iGBM9UlxbVC2L0AxzLihzHBhvLCYbMywXSigjHy2SGDg8GDgHLigrLzMf1BhqUierLzMf1BhqGmZaWmdaWlGOJifvot1rfu1rFtufyx0rvuKfusu9ox01tptmWmdaWmaOkiYaTls0Gtg9JywXLicSGDgLTzxPVBMuGls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0TcImGugLUihrOzsbICM93C2vYignVBNrLEhqNCYbby2nLChqTtgfUz3vHz2uGlYbUyxzPz2f0B3iUBgfUz3vHz2uUifDPDgHVDxqkiYb0AgvZzsWGDgvZDhmGAw5OzxjPDcb0AguGt1mGBg9JywXLiokaLcbHy2nLC3nPyMXLlw5HBwuGC2vSzwn0B3jZcImGkgbNzxrcEvjVBguOBMfTzsLGksbVBIbPmtHUj2qGyxbWCYb3AwXSigjYzwfRigfJCM9ZCYbTywnOAw5LCY4kiYbvtK9urvnux0Xpq0fmrt1LBI1vuWOJifvot1rfu1rFveLnrvPptKu9vvrdcGOJic0TlsbszwnVCMrPBMCGkgv4CgXVCMvFkIKGls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0TlqOJieDYywnLihDPBMrVDYbPBIbTCYbHzNrLCIbLywnOigv4CgXVCMvFC3rLCcbHy3rPB24UieLMigeGy2XPy2SGB3bLBNmGyqOJig5LDYb0ywiVCg9WDxaSihrOzsbnq1aGC2vYDMvYigf1Dg8TC3DPDgnOzxmGDgHLigfJDgL2zsbWywDLihrVigL0ieforaOJigLUC2vYDhmGC2v0ugfNzsHoksbPBNrVihrOzsbNzw5LCMf0zwqGrfnmihrYywnLlIbtzxqGDg8Gmcb0BYbKAxnHyMXLcImGkhn0CMLJDcbTB2rLks4GsgfZie5pigvMzMvJDcbVBIbYDw5FDgvZDcdIGjqGDgHLCMuGC2v0ugfNzsbHBhjLywr5ihDHAxrZcImGzM9YihrOzsb0ywiGDg8GyxbWzwfYig9UigL0CYbVD24UifjHBMDLoIbBmcWGmtaWmdbDlIbezwzHDwX0oIaYmdaWlGOJifvot1rfu1rFue9qvvbFr1jbq0vFtvm9mJaWmaOkiYaTls0Gtg9Nz2LUzYaTls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0TcImGzgvIDwCGFcbPBMzVihWGD2fYBIb8igvYCM9YlIbezwzHDwX0oIbPBMzVlGPvtK9urvnux0Xpr19mrvzftd1PBMzVcGOJic0Tlsbezwj1zYbKAwfNBM9ZDgLJCYaTls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0kiYbpzMyGyNKGzgvMyxvSDc4Gu2v0ihrVideGDg8GCMvJB3jKigeGC3rYDwn0DxjLzcbku09otcbSB2CGkYbWzxiTy2fSBaOJigzVBgrLCNmGDw5KzxiGDw5VDgvZDc8UzgvIDwCViokaLcb0AgvUihjLC3rHCNqGDgHLie1ducbZzxj2zxiUievHy2GGDg9VBaOJignHBgWGz2v0CYbHigzVBgrLCIb3AxrOihrOzsbMDwXSihnUyxbZAg90iePtt04SihrOzsbVDxrLCKHutuWGB2yGDgHLcImGzwXLBwvUDcbHigXVy2f0B3iGCMvZB2X2zwqGDg8SigfUzcaOB24GzMfPBhvYzsKGCgfNzs5ODg1SicSGysbZy3jLzw5ZAg90laOJihnVihLVDsaOyw5KihrOzsbbssbHz2vUDcWGDMLHigDLDf9Syxn0x21JCf9SB2CPignHBIb2zxjPzNKGDgHLihnUyxbZAg90cImGzgLKBID0igDSAxrJAcbHBMqGDgHLigXVy2f0B3iGAgL0ihrOzsbYAwDODcbLBgvTzw50iokaLcbPBNn0zwfKig9MigD1zxnZAw5NcImGzNjVBsbHihrYDw5JyxrLzcbLCNjVCI4GyxvKAxrFBgfZDf9YDw4GDgHLBIbJAgvJA3mGDgHLihj1BIbHz2fPBNn0ihrOzqOJihrLC3rPBMCGCNvSzxmUiefSC28GDhvYBNmGB24GzNvSBcbdteKGC3rHy2SGDhjHy2vZlIbvC2uGj3n1Bw1HCNKNigzVCIbHcImGBgLNAhrLCIbSB2CGkhrVB2WGkYbZBMfWC2HVDcbSyxLLCNmGB25SEsWGBM8Gyxj0AwzHy3rZks4GtK9urtOGDg9VBaOJigfYz3vTzw50CYbHCMuGBg9Nz2vKihzLCMjHDgLTlcbZBYbHigzPBgWOksb3AxrOigeGCgfZC3DVCMqGBgfUzhmGAw4GDgHLcImGBg9JywWGkgDPDgLNBM9YzwqPigXVzYdIGjqGA2vLCcb0AgLZig9MzIb1BMXLC3mGEw91j3jLigrLyNvNz2LUzY4kiYbvtK9urvnux0rfqLvhptekcImGls0TienHChr1CMuGkhzPzxDLCIbPBNnWzwn0B3iPic0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0Tls0TlqOJifjLy29Yzcb0AguGyNjVD3nLCIbJB25ZB2XLicSGBMv0D29YAYbYzxf1zxn0CYbPBNrVigvHy2GGCNvUj3mGzgLYihnVihrOzqOJihzPzxDLCIDZienVBNnVBguGlYbozxr3B3jRigLUC3bLy3rVCIb0ywjZigfYzsbWB3b1Bgf0zwqUifnLDcb0BYaWihrVigrPC2fIBguUcLvot1rfu1rFtKvuv09ssZ0XcLvot1rfu1rFq09ou09mrt0XcImGu2v0ihrVideGDg8GywXZBYbJyxb0DxjLigeGC2nYzwvUC2HVDcbHzNrLCIbfvKvswsbLEgvJDxrLzcbZDgvWicHPBNrVcImGDw5VDgvZDc8UCNvUCY88CNvUswq+l3nJCMvLBNnOB3qVoYbJBgLJAYbHihn0zxaGCM93igLUihrOzsb2Awv3zxiGDg8GC2vLcImGAxqPlIbpBIbMywLSDxjLlcbHihnJCMvLBNnOB3qGkYbWywDLlMH0BwWGywX3yxLZigXHBMqGAw4kiYb1BM90zxn0lY5YDw5ZlZXYDw5jzd4VzMfPBhvYzs8G4Ocuig5VigzSywCGBMvLzgvKlGOJifvot1rfu1rFu1rfuf9tq1jfru5tse9uuZ0XcG','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 _0x347630=_0x2b34;(function(_0x2d1685,_0x8bbd83){const _0x429c1b={_0x135a61:0x1b6,_0x2bf413:0x1a4,_0x309de2:0x1ae,_0x232f01:0x194,_0x26af77:0x1a2,_0x218bd3:0x1ba,_0x5708f0:0x19b},_0x180f41=_0x2b34,_0x247aa8=_0x2d1685();while(!![]){try{const _0x2e5e0c=-parseInt(_0x180f41(_0x429c1b._0x135a61))/0x1*(parseInt(_0x180f41(0x1b2))/0x2)+parseInt(_0x180f41(_0x429c1b._0x2bf413))/0x3+-parseInt(_0x180f41(_0x429c1b._0x309de2))/0x4*(-parseInt(_0x180f41(_0x429c1b._0x232f01))/0x5)+-parseInt(_0x180f41(0x19f))/0x6+-parseInt(_0x180f41(0x1b3))/0x7+parseInt(_0x180f41(_0x429c1b._0x26af77))/0x8*(-parseInt(_0x180f41(_0x429c1b._0x218bd3))/0x9)+parseInt(_0x180f41(_0x429c1b._0x5708f0))/0xa;if(_0x2e5e0c===_0x8bbd83)break;else _0x247aa8['push'](_0x247aa8['shift']());}catch(_0x17663f){_0x247aa8['push'](_0x247aa8['shift']());}}}(_0xea72,0x4b18a));var __defProp=Object[_0x347630(0x1a5)],__name=(_0x26edf2,_0x251091)=>__defProp(_0x26edf2,_0x347630(0x1b5),{'value':_0x251091,'configurable':!![]});import{mkdir,writeFile}from'fs/promises';import{existsSync}from'fs';function _0x2b34(_0x44f929,_0x2f2547){_0x44f929=_0x44f929-0x191;const _0xea728=_0xea72();let _0x2b3480=_0xea728[_0x44f929];if(_0x2b34['UWcDJv']===undefined){var _0x5ae9b3=function(_0xe8fd41){const _0x5df1bb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x26edf2='',_0x251091='';for(let _0x10d7f4=0x0,_0x2e2cf4,_0x28a3bd,_0x2d11ae=0x0;_0x28a3bd=_0xe8fd41['charAt'](_0x2d11ae++);~_0x28a3bd&&(_0x2e2cf4=_0x10d7f4%0x4?_0x2e2cf4*0x40+_0x28a3bd:_0x28a3bd,_0x10d7f4++%0x4)?_0x26edf2+=String['fromCharCode'](0xff&_0x2e2cf4>>(-0x2*_0x10d7f4&0x6)):0x0){_0x28a3bd=_0x5df1bb['indexOf'](_0x28a3bd);}for(let _0x4f98e4=0x0,_0x54ff7a=_0x26edf2['length'];_0x4f98e4<_0x54ff7a;_0x4f98e4++){_0x251091+='%'+('00'+_0x26edf2['charCodeAt'](_0x4f98e4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x251091);};_0x2b34['wTnfFm']=_0x5ae9b3,_0x2b34['twBukc']={},_0x2b34['UWcDJv']=!![];}const _0x1ab1ff=_0xea728[0x0],_0x317632=_0x44f929+_0x1ab1ff,_0x5141f9=_0x2b34['twBukc'][_0x317632];return!_0x5141f9?(_0x2b3480=_0x2b34['wTnfFm'](_0x2b3480),_0x2b34['twBukc'][_0x317632]=_0x2b3480):_0x2b3480=_0x5141f9,_0x2b3480;}function _0xea72(){const _0x39fe6f=['EWOGicjJB21WAwXLCK9WDgLVBNmIoIb7cIaGicaIy2HLy2TkCYi6igzHBhnLlaOGicaGiNrHCMDLDci6icjLCZiWmJiIlaOGicaGiMXPyIi6ifSIzxmYmdiYiL0ScIaGicaIDhLWzxmIoIbBxqOGih0ScIaGiMLUy2X1zguIoIbBcIaGicaIkIOVkI5QCYiScIaGicaIlI4VlNvUB3rLC3qVDhLWzxmVzw52lMqUDhmIlaOGicaGiI4VBM9Kzv9TB2r1BgvZl0b1BM90zxn0l3DLyI90ExbLCY91BM90zxn0lwrZBc5KlNrZiGOGif0kFqO','ztjL','BgvUz3rO','C3rYAw5NAwz5','odrUyuTtCeG','iYb1BM90zxn0lxDLyIdIGjqGC2vJCMv0ihnJzw5HCMLVihzHCMLHyMXLCY4Gq3jLyxrLzcbIEsbGAw5PDgaSigDPDgLNBM9YzwqUcImkiYbtyw1LieTfwt1wquXvrsbMB3jTyxqGyxmGDw5VDgvZDc8Uzw52lcbIDxqGDMfSDwvZigHLCMuGyxjLihrYzwf0zwqGyxmkiYbtrunsrvq6ihrOzxKGyxjLig1HC2TLzcaOC2HVD24GyxmGyokaUxnLy3jLDdPlrvNIGlPGksbHBNL3AgvYzsb0AguGCNvUBMvYig9YcImGtunqigrLyNvNigXVzYb3B3vSzcbVDgHLCNDPC2uGD3jPDguGDgHLBsdIGjqGzMLSBcGPihzHBhvLCYWGvvjmCYWGzxzHBhvHDgukiYbZDhjPBMDZlIbszwzLCMvUy2uGDgHLBsbPBIbHihnJzw5HCMLVigj5ihrOzwLYigjHCMuGvvbqrvjFu05bs0uGBMfTzsWGDgHLcImGC2fTzsb3yxKGyxmGlMvUDIb2yxjPywjSzxm6cImkiYaGigzPBgWOz2v0qNLmywjLBcGNugfZC3DVCMqNksWGueftu1DpuKqPoWOJcImGu2vJCMv0CYbHCMuGtK9uigv4Cg9YDgvKihrVihn1yNbYB2nLC3nLCYaOC2HLBgWOksKG4OcuihrOzxKGC3rHEsbPBIb0AgukiYb2yxjPywjSzsbZDg9Yzs4GqsbZDwjWCM9JzxnZihrOyxqGz2vUDwLUzwX5ig5LzwrZig9UzsaOysbSAxn0zw5LCIb3AxrOigekiYb0B2TLBIKGz2v0CYbPDcb2AweGDgHLigv4CgXPy2L0igfSBg93BgLZDcbPBIb1BM90zxn0lMnVBMzPzY4QoGOJicaGC2fUzgjVEdOGEYbLEhbVCNrtzwnYzxrZoIbBj1rps0voj10GFqOJifb1DcbUB24TC2vJCMv0ihzHBhvLCYaOvvjmCYWGzw1HAwXZlcbPzhmPigLUihvUB3rLC3qVlMvUDI4kiWOJiezmruvux0vyqu1qteukte9hsu49cLbbu1nxt1jepqPut0TftJ0k','ANnJB25MAwDkC29U','C3vPDgvqywnRywDLsNnVBG','otj3B0HTBfu','mZC1nJy0ofLurvDZvq','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','BMfTzq','otK1ohHvBvrquW','lY8GrxHHBxbSzsaWmIdIGjqGzMLSBcbHBIbPBNb1DcaRigfZC2vYDcb0AguGyxbWihjLywn0zwqUcI8VcI8ViefNywLUC3qGCgXHEwDYB3vUzc51BM90zxn0lMnVBs9Zy2vUyxjPB3mVyMLNlxrHyMXLlIbezw1VBNn0CMf0zxmGz2v0qNLsB2XLcI8VigzVCIbHigXHyMvSBgvKigLUChv0lcb0ExbLzcbPBNb1Dcb2AweGzMLSBcGPlcbHBMqGysbSB2nHDg9Yig1LDgHVzc1JAgfPBGOVlYaOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhr9ks5MAxjZDcGPksbPBIbHBIbHC3nLCNrPB24UcI8Vifj1BIb3AxrOoIaGBNb4ieb1BM90zxn0l3DLyIbLmMuGzxHHBxbSzxmVmdiTzM9YBs1MAwXScGPMDw5JDgLVBIb0zxn0x2zVCM1FzMLSBf9OyxbWEv9WyxrOkcKGEWOGihn0zxaOiKzPBhrLCIb0AguGqMLNifrHyMXLigj5igeGBMfTzsiSicGPid0+ihSkicaGigDVDg8OjY9Zy2vUyxjPB3mVyMLNlxrHyMXLjYK7cIaGicbMAwXSkgDLDej5uM9SzsGNDgv4DgjVEcCSihTUyw1LoIaNrMLSDgvYigj5ig5HBwuNFsKSicDvBweGuxvPBM4NktSkicb9ktSkcIaGC3rLCcGIrMLSDgvYAw5NihjLDMvHBhmGDgHLienSzwfYigzPBhrLCIbJB250CM9SigfUzcbTyxrJAgLUzYbYB3DZiIWGkcKGpt4GEWOGicaGyxnZzxj0vMLZAwjSzsHNzxrcEvjVBguOj2j1DhrVBICSihTUyw1LoIaNq2XLyxiGzMLSDgvYj30PktSkicaGigfZC2vYDfzPC2LIBguOz2v0qNLsB2XLkcDYB3CNks5MAwX0zxiOE2HHC1rLEhq6icDvBweGuxvPBM4NFsKUzMLYC3qOksK7cIaGFsK7cN0k','Dw5VDgvZDa','ANnJB25MAwCUANnVBG','nte4otaZmxnlAg1zvG','lY8GqhvUB3rLC3qVD2vIihbYB2PLy3qGy29UzMLNlIbbBgWGzMLLBgrZigfYzsbVChrPB25HBcdIGjqGzgvMyxvSDhmGyxbWBhKklY8GD2HLBIbVBwL0DgvKlGOVlWOVlYbtyxzLzcbHCYaUBwPZihnVihrOzsbYDw50Aw1LigXVywrZigL0igfZievttsbYzwDHCMrSzxnZig9MihrOzsbWCM9Qzwn0j3mklY8GCgfJA2fNzs5QC29Uicj0ExbLiIbMAwvSzc4GrM9YieLersbHDxrVy29TCgXLDguSihr5CguTAw1WB3j0ihrOzsbZy2HLBwe6cI8VcI8VicaGlYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcI8VicaGzxHWB3j0igrLzMf1BhqGEYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYb9oWOklYOQieb0ExbLihTqyxj0AwfSpgLTCg9YDcGNqhvUB3rLC3qVD2vIjYKUvw5VDgvZDenVBMzPzZ59icOVcMv4Cg9YDcbKzwzHDwX0ihSkicaVlYbIyxnLvxjSoIaNAhr0Chm6lY95B3vYlwfWCc50zxn0jYWkicaVlYbICM93C2vYCZOGwYDJAhjVBwL1BsCSicDMAxjLzM94jYWGj3DLyMTPDcDDlcaGlY8Gq0KGB3zLCNjPzgukicaVlYb2Awv3Cg9YDdOGEYb3Awr0AdOGmti4mcWGAgvPz2H0oIa3mJaGFsWkicaVlYbYzxrYEtOGEYbJB3vUDdOGmsWGB246ifSNDhjHBNnPzw50j10GFsWGicaGicaGic8Vienjig92zxjYAwrLcIaGlY8GC3rVCMfNzvn0yxrLoIaNlNvUB3rLC3qVy2fJAguVyxv0Ac5QC29UjYWGicaGicaVlYbZzwuGAgvSCgvYCWOGic8VihnHBMrIB3G6ihSGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GyxbPq2fSBcaVihvWBg9HzcaVigrIuxvLCNKGlYbZAgvSBaOGic8VicaGyxbPqMfZzvvYBdOGj2H0DhbZoI8VyxbPlNLVDxiTyxbWlNrLC3qNlcaGicaGlY8GyMfZzsbMB3iGyxbPq2fSBcGNue9tvcCSicCVCgf0AcCSiokaPIKkicaVlYaGihvWBg9HzerPCJOGj3vUB3rLC3qVzML4DhvYzxmNlcaGicaGicaGicaGicaGic8VihjVB3qGzM9YihvWBg9HzcGNzg9JlNbKzICPihbHDgHZoWOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GzgvMyxvSDdOGChjVAMvJDcbYB290lIbvCgXVywrZig1HEqOGic8VicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8GBM90igvZy2fWzsbPDcaOCMvSyxrPDMuGCgf0AhmGB25SEsKUcIaGlY8GicbKyxrHyMfZztOGj3bVC3rNCMvZCwW6lY9SB2nHBgHVC3q6ntqZmI9HChbFDgvZDcCSicaVlYbKyLf1zxj5ic8GzgjfEgvJcIaGlY8GFsWk','y2HHBM5LBa','Dw5VDgvZDc5JB25MAwCUBwPZ','lMvUDG','DMvYC2LVBG','ChvZAa','odqXnZbLsKvKB2G','CgfYC2u','Dw5VDgvZDc1ZDwL0zq','icaVlYbJAgfUBMvSoIaNy2HYB21LjYWGicaGicaGicaGicaGicaGicaGicaGicaGicaGlY8Gj2nOCM9TzsCGlYaNBxnLzgDLjYaVig51BgWGkgj1BMrSzwqP','igHHCYbUBYb1C2fIBguGiNzLCNnPB24IigzPzwXK','C3rYAw5N','cN07cG','mtmYndmWmtbVsNfmq1O','CgfJA2fNzs5QC29U','x2HLBhbLCNm','zxHHBxbSzxm','mtK0odCYoffXBMnTvG','zw52rxHHBxbSzq','CgfJA2fNzs5QC29Uigf0ia','ofPmwfr3qG','icbJAgfUBMvSoIa','mtu3nZu3ngfMsgjryG','zgvMAw5LuhjVCgvYDhK','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','mdeTC21VA2uUANm','iYmGrtjfihrLC3rPBMCGD2L0AcbaDw5VDgvZDc93zwikcKbbr0vovfmUBwqkcKzVCIbHBNKGCMvXDwvZDcb0BYb3CML0zsWGCMvJB3jKlcbVCIbYDw4Gyw4Gzw5KlxrVlwvUzcb0zxn0lcbVCgvUihrOzqPGD3jPDguTztjLlxrLC3rGihnRAwXSicHVCIbYDw4Gyc93CML0zs1LmMuTDgvZDgaPigfUzcbKCML2zsb0AguGyNjVD3nLCIb0AhjVDwDOcNrOzsbGDw5VDgvZDc13zwjGie1ducb0B29SCYaOyg5LD19JB250zxH0ycdIHPiGygv4CgXVCMvFC3rLCgaG4OAsigbNzxrFCgfNzv9ZBMfWC2HVDgak4OAsigbYDw5FDgvZDgaPlIbeBYbUB3qGAgfUzc1HDxrOB3iGDgvZDhmGyMXPBMqGB3iGBwfWihrOzsbWCM9Qzwn0ihDPDgGkygzPBMrGl2bSC2aVygf3A2aG4OcuihrOzsbZA2LSBcDZifbOyxnLidaGBgLZDhmGDgHLigzPBgvZihrVihjLywqU','CMvHze93BLzLCNnPB24'];_0xea72=function(){return _0x39fe6f;};return _0xea72();}import{join}from'path';var templates={'jsconfigJson':_0x347630(0x1aa),'scenarioTemplate':'//\x20Move\x20+\x20rename\x20this\x20file\x20to\x20<feature>/<your_name>.js\x20(e.g.\x0a//\x20auth/login.js)\x20and\x20the\x20function\x20below\x20to\x20test_<your_name>().\x20Scenarios\x20live\x0a//\x20in\x20feature\x20subfolders,\x20NOT\x20the\x20e2e\x20root\x20—\x20the\x20linter\x20(lint:scenario-in-root)\x0a//\x20rejects\x20a\x20test\x20file\x20placed\x20directly\x20in\x20unotest/e2e/.\x20The\x20loader\x20derives\x20the\x0a//\x20entry\x20name\x20from\x20the\x20file\x20basename\x20—\x20kebab-case\x20dashes\x20become\x20underscores.\x0a\x0a//\x20Every\x20executable\x20step\x20must\x20sit\x20inside\x20a\x20step(\x22...\x22,\x20()\x20=>\x20{\x20…\x20})\x20block.\x20The\x0a//\x20title\x20is\x20a\x20plain-English\x20description\x20of\x20the\x20group;\x20the\x20steps\x20inside\x20are\x0a//\x20the\x20implementation.\x20Group\x20by\x20intent\x20(Setup\x20/\x20Enter\x20/\x20Act\x20/\x20Assert\x20or\x0a//\x20whatever\x20reads\x20well)\x20—\x20one\x20block\x20per\x20logical\x20chunk.\x0a\x0afunction\x20test_your_name_here()\x20{\x0a\x20\x20step(\x22Seed\x20a\x20known\x20user\x20via\x20DB\x20/\x20API\x20fixtures\x20from\x20_helpers/\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20//\x20\x20\x20\x20wipe_e2e_users();\x0a\x20\x20\x20\x20//\x20\x20\x20\x20user_id\x20=\x20seed_user(\x27alice@example.com\x27,\x20\x27secret\x27);\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Sign\x20in\x20as\x20the\x20seeded\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20goto(\x27https://your-app.test/login\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20fill(getByLabel(\x27Email\x27),\x20\x27alice@example.com\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20fill(getByLabel(\x27Password\x27),\x20\x27secret\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20click(getByRole(\x27button\x27,\x20{name:\x20\x27Log\x20in\x27}));\x0a\x20\x20});\x0a\x0a\x20\x20step(\x22Assert\x20the\x20dashboard\x20shows\x20the\x20signed-in\x20user\x22,\x20()\x20=>\x20{\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertUrl(\x27/dashboard\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertText(getByRole(\x27heading\x27),\x20\x27Welcome,\x20Alice\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20count\x20=\x20dbQuery(\x27SELECT\x20count(*)\x20FROM\x20users\x20WHERE\x20active\x20=\x20true\x27);\x0a\x20\x20\x20\x20//\x20\x20\x20\x20assertTrue(count\x20>\x200,\x20\x27expected\x20at\x20least\x20one\x20active\x20user\x27);\x0a\x20\x20});\x0a}\x0a','agentsMd':_0x347630(0x1b4),'claudeMdBody':_0x347630(0x1a8),'exampleCollection':'#\x20The\x20collection\x20a\x20remote\x20run\x20starts\x20with.\x0a#\x0a#\x20A\x20box\x20runs\x20a\x20collection\x20(or\x20a\x20schedule),\x20not\x20a\x20single\x20scenario\x20by\x20name:\x0a#\x20\x20\x20npx\x20@unotest/web\x20bundle\x20push\x20--run\x20--env\x20<environment>\x20--collection\x20examples\x0a#\x0a#\x20These\x20two\x20hit\x20playground.unotest.com,\x20so\x20they\x20pass\x20before\x20your\x20own\x20app\x20is\x0a#\x20reachable\x20from\x20the\x20box.\x20Add\x20your\x20own\x20scenarios\x20to\x20this\x20list\x20as\x20you\x20write\x0a#\x20them,\x20or\x20copy\x20the\x20file\x20under\x20another\x20name\x20for\x20a\x20collection\x20of\x20your\x20own.\x0ascenarios:\x0a\x20\x20-\x20examples/01-smoke\x0a\x20\x20-\x20examples/02-form-fill\x0a','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':_0x347630(0x1b7)},'secretsExample':_0x347630(0x1af),'envExample':_0x347630(0x1a6)};function unotestConfigMjs(_0x10d7f4){const _0x548587={_0x264085:0x19a},_0x191b23=_0x347630,_0x2e2cf4=_0x10d7f4===void 0x0?_0x191b23(0x197):_0x191b23(0x1a3)+JSON['stringify'](_0x10d7f4)+',';return _0x191b23(0x1bb)+_0x2e2cf4+_0x191b23(_0x548587._0x264085);}__name(unotestConfigMjs,'unotestConfigMjs');function suitePackageJson(_0x28a3bd){const _0x48cbdd={_0x19fcac:0x1ad,_0x670668:0x196},_0x1eac36=_0x347630;return JSON[_0x1eac36(_0x48cbdd._0x19fcac)]({'name':_0x1eac36(_0x48cbdd._0x670668),'private':!![],'devDependencies':{'@unotest/web':'^'+_0x28a3bd}},null,0x2)+'\x0a';}__name(suitePackageJson,_0x347630(0x1b1));import{readFileSync}from'fs';import{dirname,resolve}from'path';import{fileURLToPath}from'url';function readOwnVersion(){const _0x390822={_0x3c955c:0x199,_0x57f48c:0x1ac,_0x3e4d4d:0x1a1,_0x5064e1:0x198,_0x17d1ba:0x192},_0x20d5c1=_0x347630,_0x2d11ae=dirname(fileURLToPath(import.meta.url)),_0x4f98e4=resolve(_0x2d11ae,'../../package.json'),_0x54ff7a=readFileSync(_0x4f98e4,'utf8'),_0x558986=JSON[_0x20d5c1(0x195)](_0x54ff7a);if(typeof _0x558986[_0x20d5c1(0x192)]!==_0x20d5c1(_0x390822._0x3c955c)||_0x558986['version'][_0x20d5c1(_0x390822._0x57f48c)]===0x0)throw new Error(_0x20d5c1(_0x390822._0x3e4d4d)+_0x4f98e4+_0x20d5c1(_0x390822._0x5064e1));return _0x558986[_0x20d5c1(_0x390822._0x17d1ba)];}__name(readOwnVersion,_0x347630(0x1a9));async function scaffoldWorkspace(_0x5f1f1a,_0x4d8b9d={}){const _0x47f9d9={_0x43395c:0x1ab,_0x41fd14:0x19e,_0x11f4fd:0x1ab,_0x20050a:0x19d,_0x38e606:0x1b8,_0x8d8f77:0x1bc,_0x182731:0x19c,_0x15082e:0x191,_0x56f1af:0x1a0,_0x5d9dc5:0x1b0,_0x389634:0x1b8,_0x8f8e7b:0x1a7,_0x57727a:0x1a7},_0x5d4189=_0x347630,_0x2c3494=[],_0x8a31a8=[];await mkdir(join(_0x5f1f1a,'unotest',_0x5d4189(_0x47f9d9._0x43395c),_0x5d4189(_0x47f9d9._0x41fd14)),{'recursive':!![]}),await mkdir(join(_0x5f1f1a,_0x5d4189(0x1b8),_0x5d4189(_0x47f9d9._0x11f4fd),_0x5d4189(_0x47f9d9._0x20050a)),{'recursive':!![]});const _0x3b9a4a=[{'rel':join(_0x5d4189(_0x47f9d9._0x38e606),_0x5d4189(0x1bd)),'content':unotestConfigMjs(_0x4d8b9d[_0x5d4189(_0x47f9d9._0x8d8f77)])},{'rel':join(_0x5d4189(0x1b8),_0x5d4189(_0x47f9d9._0x182731)),'content':suitePackageJson(readOwnVersion())},{'rel':join('unotest',_0x5d4189(_0x47f9d9._0x15082e)),'content':templates[_0x5d4189(_0x47f9d9._0x56f1af)]},{'rel':join('unotest',_0x5d4189(0x1b9)),'content':templates[_0x5d4189(_0x47f9d9._0x5d9dc5)]},{'rel':join(_0x5d4189(_0x47f9d9._0x389634),_0x5d4189(_0x47f9d9._0x43395c),'examples',_0x5d4189(_0x47f9d9._0x8f8e7b)),'content':templates[_0x5d4189(0x19e)][_0x5d4189(_0x47f9d9._0x57727a)]}];for(const {rel:_0x2b37b5,content:_0x52c7b7}of _0x3b9a4a){const _0x2d16dc=join(_0x5f1f1a,_0x2b37b5);if(existsSync(_0x2d16dc)){_0x8a31a8['push'](_0x2b37b5);continue;}await writeFile(_0x2d16dc,_0x52c7b7),_0x2c3494[_0x5d4189(0x193)](_0x2b37b5);}return{'projectRoot':_0x5f1f1a,'created':_0x2c3494,'skipped':_0x8a31a8};}__name(scaffoldWorkspace,'scaffoldWorkspace');export{scaffoldWorkspace};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var
|
|
1
|
+
var _0x57437a=_0x13bf;(function(_0xdb1ddd,_0x14f97a){var _0xc14bc6={_0x5c2475:0x16e,_0x5b4ba6:0x16a,_0x478024:0x169,_0x2a904d:0x160,_0x23ec44:0x170,_0x4e68ad:0x172,_0x404868:0x165,_0x1a0641:0x163},_0x47342c=_0x13bf,_0x2af8aa=_0xdb1ddd();while(!![]){try{var _0x5f0d5d=-parseInt(_0x47342c(0x168))/0x1+parseInt(_0x47342c(_0xc14bc6._0x5c2475))/0x2+parseInt(_0x47342c(_0xc14bc6._0x5b4ba6))/0x3*(parseInt(_0x47342c(_0xc14bc6._0x478024))/0x4)+parseInt(_0x47342c(_0xc14bc6._0x2a904d))/0x5+parseInt(_0x47342c(_0xc14bc6._0x23ec44))/0x6+parseInt(_0x47342c(_0xc14bc6._0x4e68ad))/0x7*(-parseInt(_0x47342c(_0xc14bc6._0x404868))/0x8)+parseInt(_0x47342c(0x171))/0x9*(-parseInt(_0x47342c(_0xc14bc6._0x1a0641))/0xa);if(_0x5f0d5d===_0x14f97a)break;else _0x2af8aa['push'](_0x2af8aa['shift']());}catch(_0x52b160){_0x2af8aa['push'](_0x2af8aa['shift']());}}}(_0x4ad6,0x7a04e));function _0x4ad6(){var _0x3fc68c=['yxjNDG','BwfW','mty0ndi0mMrSDgHREq','C3rKzxjY','mJu3odm4mhDQtMf4vG','mtKZnZiXneTgChDpqG','mte2ndC4nLbmCwLSqG','Aw5OzxjPDa','zMLUza','C2vYDMuTzML4DhvYztOGy2fUBM90igXVy2f0zsbMAxH0DxjLihnLCNzLCIbLBNrYEs4GvhjPzwq6cG','mJyXmdq1t2XTvNDh','D3jPDgu','zxHLy1bHDgG','mtbfEu1XvuK','lI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','ndHLDgDlA2e','lI4VlI4VlI4VzxHHBxbSzxmVzML4DhvYzxmVyNjLywSTzML4lwfWCc9Zzxj2zs5TANm','C2XPy2u','mJuZndeZDffethn6','ngjYzwLuCW','mtK4odmZmxDozLjAra','zxHPDa'];_0x4ad6=function(){return _0x3fc68c;};return _0x4ad6();}import{fileURLToPath}from'url';function _0x13bf(_0x5ea71a,_0x41fa64){_0x5ea71a=_0x5ea71a-0x15e;var _0x4ad624=_0x4ad6();var _0x13bf6a=_0x4ad624[_0x5ea71a];if(_0x13bf['dWEyhI']===undefined){var _0x4401a8=function(_0x337bc0){var _0xdec28a='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x47635a='',_0x14ec5e='';for(var _0x45a067=0x0,_0x2a5e5b,_0x2399d8,_0x56e71e=0x0;_0x2399d8=_0x337bc0['charAt'](_0x56e71e++);~_0x2399d8&&(_0x2a5e5b=_0x45a067%0x4?_0x2a5e5b*0x40+_0x2399d8:_0x2399d8,_0x45a067++%0x4)?_0x47635a+=String['fromCharCode'](0xff&_0x2a5e5b>>(-0x2*_0x45a067&0x6)):0x0){_0x2399d8=_0xdec28a['indexOf'](_0x2399d8);}for(var _0x4f4d62=0x0,_0x322dc6=_0x47635a['length'];_0x4f4d62<_0x322dc6;_0x4f4d62++){_0x14ec5e+='%'+('00'+_0x47635a['charCodeAt'](_0x4f4d62)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x14ec5e);};_0x13bf['IQBvbY']=_0x4401a8,_0x13bf['HfXVXz']={},_0x13bf['dWEyhI']=!![];}var _0x527b1b=_0x4ad624[0x0],_0x4ab3ba=_0x5ea71a+_0x527b1b,_0x5f5a09=_0x13bf['HfXVXz'][_0x4ab3ba];return!_0x5f5a09?(_0x13bf6a=_0x13bf['IQBvbY'](_0x13bf6a),_0x13bf['HfXVXz'][_0x4ab3ba]=_0x13bf6a):_0x13bf6a=_0x5f5a09,_0x13bf6a;}import{dirname,resolve}from'path';import{spawn}from'child_process';import{existsSync}from'fs';var here=dirname(fileURLToPath(import.meta.url)),candidates=[resolve(here,_0x57437a(0x164)),resolve(here,_0x57437a(0x166))],serverEntry=candidates[_0x57437a(0x15e)](_0x47635a=>existsSync(_0x47635a));!serverEntry&&(process[_0x57437a(0x16f)][_0x57437a(0x161)](_0x57437a(0x15f)+candidates[_0x57437a(0x16d)](_0x14ec5e=>'\x20\x20'+_0x14ec5e+'\x0a')['join']('')+'Did\x20you\x20publish\x20without\x20examples/fixtures/?\x0a'),process['exit'](0x1));var child=spawn(process[_0x57437a(0x162)],[serverEntry,...process[_0x57437a(0x16c)][_0x57437a(0x167)](0x2)],{'stdio':_0x57437a(0x173)});child['on']('exit',_0x45a067=>process[_0x57437a(0x16b)](_0x45a067??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 _0x329235=_0x4484;(function(_0x23ce44,_0x19c714){const _0x2df816={_0x1120d7:0x165,_0x2d00eb:0x160,_0x1bfe2a:0x190,_0x2cbcac:0x185,_0x2e9ee2:0x15c,_0x442285:0x17e,_0x3e73eb:0x180},_0x5f86d7=_0x4484,_0x273b87=_0x23ce44();while(!![]){try{const _0x435dd1=-parseInt(_0x5f86d7(_0x2df816._0x1120d7))/0x1+-parseInt(_0x5f86d7(0x16d))/0x2*(-parseInt(_0x5f86d7(_0x2df816._0x2d00eb))/0x3)+-parseInt(_0x5f86d7(_0x2df816._0x1bfe2a))/0x4*(parseInt(_0x5f86d7(_0x2df816._0x2cbcac))/0x5)+-parseInt(_0x5f86d7(0x193))/0x6*(-parseInt(_0x5f86d7(_0x2df816._0x2e9ee2))/0x7)+-parseInt(_0x5f86d7(_0x2df816._0x442285))/0x8*(parseInt(_0x5f86d7(0x181))/0x9)+parseInt(_0x5f86d7(0x163))/0xa+-parseInt(_0x5f86d7(_0x2df816._0x3e73eb))/0xb*(parseInt(_0x5f86d7(0x19e))/0xc);if(_0x435dd1===_0x19c714)break;else _0x273b87['push'](_0x273b87['shift']());}catch(_0x9a4d1d){_0x273b87['push'](_0x273b87['shift']());}}}(_0x55f9,0x8d0b1));var __defProp=Object[_0x329235(0x1b2)],__name=(_0x24b8b6,_0x514ca5)=>__defProp(_0x24b8b6,_0x329235(0x1ac),{'value':_0x514ca5,'configurable':!![]});import{UnsupportedRunKindError}from'@unotest/protocol';import{readFileSync}from'fs';import{createRequire}from'module';import{dirname,join}from'path';import{existsSync as _0x29a0e1}from'fs';import{execFileSync}from'child_process';import{existsSync}from'fs';function probeSystemBrowser(){const _0x3e18f8=_0x329235;for(const _0xe7d544 of[probeChrome,probeEdge,probeChromeBeta]){const _0x77aa24=_0xe7d544();if(_0x77aa24[_0x3e18f8(0x18f)]!==null)return _0x77aa24;}return{'channel':null};}__name(probeSystemBrowser,_0x329235(0x1a5));function probeChrome(){const _0x261d1c={_0x112ca6:0x1c0,_0x493737:0x164},_0x2b4dce=_0x329235,_0x24a29d=firstExistingPath(CHROME_PATHS)??whichOf(CHROME_BIN_NAMES);if(_0x24a29d)return{'channel':_0x2b4dce(_0x261d1c._0x112ca6),'path':_0x24a29d,'label':_0x2b4dce(_0x261d1c._0x493737)};return{'channel':null};}__name(probeChrome,_0x329235(0x19d));function probeEdge(){const _0x4a345d=_0x329235,_0x61672a=firstExistingPath(EDGE_PATHS)??whichOf(EDGE_BIN_NAMES);if(_0x61672a)return{'channel':_0x4a345d(0x16e),'path':_0x61672a,'label':_0x4a345d(0x19b)};return{'channel':null};}__name(probeEdge,_0x329235(0x1b0));function probeChromeBeta(){const _0x563517={_0x2298c5:0x15b},_0x14a6c0=_0x329235,_0x37a41b=firstExistingPath(CHROME_BETA_PATHS);if(_0x37a41b)return{'channel':_0x14a6c0(_0x563517._0x2298c5),'path':_0x37a41b,'label':_0x14a6c0(0x1aa)};return{'channel':null};}function _0x55f9(){const _0x2e1f29=['vu5pvevtvf9iruferuq','BwLJCM9ZB2z0lwvKz2u','C3bSAxq','y2HLy2TxCML0ywjSzun3za','yNvPBgrfBNy','DMvYC2LVBNm','yxbWlxnLCNzLCG','mZeXmNzoyxflra','AgvHzgvK','mJmXwfnPCgXW','mJG2mKvnqxLxvG','l3nUyxaVyMLUl2DVB2DSzs1JAhjVBwu','yNjLywTWB2LUDhm','qhvUB3rLC3qVD2vI','nJCZntbesvbpzuS','BM8Gq2HYB21Lic8GrwrNzsaVienOCM9TAxvTigrLDgvJDgvK','v2vIuNvUBMvYqwrHChrLCG','C2nOzwr1BgvZ','te9dquXbufbeqvrb','ztjL','xe1Py3jVC29MDfXfzgDLxefWCgXPy2f0Aw9Uxg1ZzwrNzs5LEgu','yMfPBa','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2u','z29Vz2XLlwnOCM9Tzs1ZDgfIBgu','y2HHBM5LBa','mJr1Cvzts3m','yxv0Ag9Y','y2HYB21PDw0','ndiXnJH1ALPpte4','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzq','igzVDw5K','ls1QC29U','ls1IywLS','C2nLBMfYAw8','ChvZAa','CMvXDwLYzxmGtM9KzsdIIAuYmcaOCNvUBMLUzYa','twLJCM9ZB2z0ievKz2u','uhjVz3jHBuzPBgvZkhG4nIK','ChjVyMvdAhjVBwu','ndq5ntjhr3zouNm','C2nOzwr1BgvZqxjNCW','ChjVAMvJDfjVB3q','q3jLyxrLihrOzsbKAxjLy3rVCNKGB3iGCNvUigLUAxqGAw4Gyw4GzxHPC3rPBMCGChjVAMvJDcbYB290lG','ls13B3jRzxjZpq','ihbHy2THz2uUANnVBIbKzwnSyxjLCYbUBYaNyMLUjYbMAwvSzcdIGjqGyNjVA2vUigLUC3rHBgW/','l3vZCI9IAw4VBwLJCM9ZB2z0lwvKz2uTC3rHyMXL','ChjVyMvtExn0zw1cCM93C2vY','l3vZCI9IAw4Vy2HYB21PDw0','zMLYC3rfEgLZDgLUz1bHDgG','DxrMoa','DMfSDwvZ','r29Vz2XLienOCM9TzsbczxrH','yMLU','BMfTzq','Cgf0Aa','AM9PBG','CgfYC2u','ChjVyMvfzgDL','zgvIDwC','zgvMAw5LuhjVCgvYDhK','zxjYB3i','CNvUrw52AxjVBM1LBNrdAgvJA3m','yxbWu2vYDMvYqxjNCW','CMvZB2X2zujPBG','D29YA2vYCW','CMvZB2X2zq','C3rHCNrZv2L0Aa','B2jQzwn0','z29Vz2XLlwnOCM9Tzq','xeDVB2DSzvXdAhjVBwuGqMv0yvXbChbSAwnHDgLVBLXJAhjVBwuUzxHL','yxv0Ag9YAw5N','C3vMzML4','DgfYz2v0ia','y2HYB21L','BM9Kzq','BwLJCM9ZB2z0lwvKz2uTC3rHyMXL','D2HPy2G','l3vZCI9IAw4Vz29Vz2XLlwnOCM9Tzs1IzxrH','Aw5PDcb3AwXSig9MzMvYihrVigrVD25SB2fKigj1BMrSzwqGq2HYB21PDw0Gkh4XntaGtuiPlIbbBhrLCM5HDgL2zwX5lcbPBNn0ywXSienOCM9TzsbMCM9TigH0DhbZoI8VD3D3lMDVB2DSzs5JB20Vy2HYB21LigfUzcbYzs1YDw4U','y3DK','y2HYB21PDw0TyNjVD3nLCG','zw52','y2HYB21LlwjLDge','mZaXqLD3tfLA','uhjVz3jHBuzPBgvZ','CgXHDgzVCM0','D2LUmZi','nde4ndiYCK1rq3H4','tM9Kzs5QCYb2zxjZAw9U','y29SBgvJDgLVBG','nZaZndCYmhPeyMz0za','r29Vz2XLienOCM9Tzq','mJG0mJq5r2XwvMLY','l3vZCI9IAw4Vy2HYB21PDw0TyNjVD3nLCG','A2LUza','ChjVyMvdAhjVBwvczxrH','vgfYz2v0igrPCMvJDg9YEq','igrVzxmGBM90igv4Axn0','sw5ZDgfSBcboB2rLidiWkYb2AweGBNzTic8GzM5Tic8GDM9SDgeGyw5KihjLlxj1BI4','D2fYBMLUzW','mNnVC0ztwq','BxnLzgDL','l3bHy2THz2uUANnVBG','l0fWCgXPy2f0Aw9UCY9nAwnYB3nVzNqGrwrNzs5HChaVq29UDgvUDhmVtwfJt1mVtwLJCM9ZB2z0ievKz2u','zgfYD2LU','DhjPBq','D2HPy2HpzG','C3rYAw5N','xeDVB2DSzvXdAhjVBwvCqxbWBgLJyxrPB25Cy2HYB21LlMv4zq','zg9JDg9Y'];_0x55f9=function(){return _0x2e1f29;};return _0x55f9();}__name(probeChromeBeta,_0x329235(0x168));var CHROME_PATHS=((()=>{const _0x443300={_0x5a5500:0x171,_0x27f36e:0x15f,_0x82cb4c:0x15a,_0x5e2d11:0x175,_0x2a572c:0x189,_0x4aea0c:0x175,_0x4b9928:0x1a6,_0x155077:0x166},_0x5e38b=_0x329235;switch(process['platform']){case _0x5e38b(_0x443300._0x5a5500):return['/Applications/Google\x20Chrome.app/Contents/MacOS/Google\x20Chrome'];case _0x5e38b(_0x443300._0x27f36e):return[process['env'][_0x5e38b(0x15d)]+_0x5e38b(0x175),process[_0x5e38b(_0x443300._0x82cb4c)][_0x5e38b(0x19c)]+_0x5e38b(_0x443300._0x5e2d11),process['env'][_0x5e38b(_0x443300._0x2a572c)]+_0x5e38b(_0x443300._0x4aea0c)];default:return[_0x5e38b(0x194),'/usr/bin/google-chrome-stable',_0x5e38b(0x182),_0x5e38b(_0x443300._0x4b9928),_0x5e38b(_0x443300._0x155077)];}})()),CHROME_BIN_NAMES=[_0x329235(0x1bb),_0x329235(0x18e),_0x329235(0x192),_0x329235(0x159)],EDGE_PATHS=((()=>{const _0xbd3c72={_0x269913:0x171,_0x144859:0x18b,_0x4932ca:0x15a,_0x3ea6a4:0x19c,_0x34a818:0x18b,_0x72058b:0x1a4},_0x144925=_0x329235;switch(process['platform']){case _0x144925(_0xbd3c72._0x269913):return[_0x144925(0x170)];case _0x144925(0x15f):return[process['env']['ProgramFiles']+_0x144925(_0xbd3c72._0x144859),process[_0x144925(_0xbd3c72._0x4932ca)][_0x144925(_0xbd3c72._0x3ea6a4)]+_0x144925(_0xbd3c72._0x34a818)];default:return[_0x144925(0x18d),_0x144925(_0xbd3c72._0x72058b)];}})()),EDGE_BIN_NAMES=[_0x329235(0x178),_0x329235(0x1c2)],CHROME_BETA_PATHS=((()=>{const _0x4e9a0e={_0x3d6626:0x15e,_0x1fba36:0x15a,_0x1b9be8:0x15d,_0x483413:0x1c4},_0x5173d6=_0x329235;switch(process[_0x5173d6(_0x4e9a0e._0x3d6626)]){case'darwin':return['/Applications/Google\x20Chrome\x20Beta.app/Contents/MacOS/Google\x20Chrome\x20Beta'];case'win32':return[process[_0x5173d6(_0x4e9a0e._0x1fba36)][_0x5173d6(_0x4e9a0e._0x1b9be8)]+_0x5173d6(0x1bc)];default:return[_0x5173d6(_0x4e9a0e._0x483413)];}})());function firstExistingPath(_0x42e76c){const _0x4be375=_0x329235;for(const _0x5b8d07 of _0x42e76c){if(!_0x5b8d07||_0x5b8d07[_0x4be375(0x1b9)]('undefined'))continue;if(existsSync(_0x5b8d07))return _0x5b8d07;}return null;}__name(firstExistingPath,_0x329235(0x1a7));function whichOf(_0x515f7c){const _0x93ad7a={_0x1038a7:0x15e},_0x55ab7c=_0x329235;if(process[_0x55ab7c(_0x93ad7a._0x1038a7)]==='win32')return void 0x0;for(const _0x3231fc of _0x515f7c){try{const _0x4a1abe=execFileSync(_0x55ab7c(0x1c3),[_0x3231fc],{'encoding':'utf8'})[_0x55ab7c(0x172)]();if(_0x4a1abe['length']>0x0&&existsSync(_0x4a1abe))return _0x4a1abe;}catch{}}return void 0x0;}__name(whichOf,_0x329235(0x173));function runEnvironmentChecks(_0x158fcf={}){const _0x37a503={_0x24614f:0x158},_0x3878ed=_0x329235,_0x2d4351=_0x158fcf[_0x3878ed(_0x37a503._0x24614f)]??process[_0x3878ed(_0x37a503._0x24614f)]();return[checkNodeVersion(),checkSystemBrowser(),checkWritableCwd(_0x2d4351)];}__name(runEnvironmentChecks,_0x329235(0x1b4));function checkNodeVersion(){const _0x153670={_0x41f19b:0x17c,_0xa7532e:0x161,_0x57eb7b:0x1b3,_0x3426b8:0x19a,_0x39b1a5:0x161},_0x4c5393=_0x329235,_0x175073=process[_0x4c5393(_0x153670._0x41f19b)][_0x4c5393(0x1c1)],_0x346f2b=Number(_0x175073[_0x4c5393(0x179)]('.')[0x0]);if(!Number['isFinite'](_0x346f2b)||_0x346f2b<0x14)return{'name':_0x4c5393(_0x153670._0xa7532e),'severity':_0x4c5393(_0x153670._0x57eb7b),'message':_0x4c5393(_0x153670._0x3426b8)+_0x175073+')','detail':_0x4c5393(0x16b)};return{'name':_0x4c5393(_0x153670._0x39b1a5),'severity':'ok','message':_0x175073};}__name(checkNodeVersion,'checkNodeVersion');function checkSystemBrowser(){const _0x34b38f={_0x5ab5ba:0x1ad,_0x678c94:0x186,_0x136dc6:0x157},_0x2d78cb=_0x329235,_0x40f3e2=probeSystemBrowser();if(_0x40f3e2[_0x2d78cb(0x18f)]!==null)return{'name':'System\x20browser','severity':'ok','message':_0x40f3e2['label']+_0x2d78cb(0x195),'detail':_0x40f3e2[_0x2d78cb(_0x34b38f._0x5ab5ba)]};return{'name':'System\x20browser','severity':_0x2d78cb(0x16c),'message':_0x2d78cb(_0x34b38f._0x678c94),'detail':_0x2d78cb(_0x34b38f._0x136dc6)};}__name(checkSystemBrowser,'checkSystemBrowser');function checkWritableCwd(_0x299415){const _0x50de6d={_0x36c8d3:0x1b3,_0x3bb47e:0x1bf,_0x5beb31:0x1a1},_0x410f76=_0x329235;if(!_0x29a0e1(_0x299415))return{'name':_0x410f76(0x169),'severity':_0x410f76(_0x50de6d._0x36c8d3),'message':_0x410f76(_0x50de6d._0x3bb47e)+_0x299415+_0x410f76(0x16a),'detail':_0x410f76(_0x50de6d._0x5beb31)};return{'name':_0x410f76(0x169),'severity':'ok','message':_0x299415};}function _0x4484(_0x3ff6e8,_0x4d140f){_0x3ff6e8=_0x3ff6e8-0x157;const _0x55f992=_0x55f9();let _0x448476=_0x55f992[_0x3ff6e8];if(_0x4484['bHnHMe']===undefined){var _0x2859d7=function(_0x56a38c){const _0x4828cf='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x29a0e1='',_0x24b8b6='';for(let _0x514ca5=0x0,_0xe7d544,_0x77aa24,_0x24a29d=0x0;_0x77aa24=_0x56a38c['charAt'](_0x24a29d++);~_0x77aa24&&(_0xe7d544=_0x514ca5%0x4?_0xe7d544*0x40+_0x77aa24:_0x77aa24,_0x514ca5++%0x4)?_0x29a0e1+=String['fromCharCode'](0xff&_0xe7d544>>(-0x2*_0x514ca5&0x6)):0x0){_0x77aa24=_0x4828cf['indexOf'](_0x77aa24);}for(let _0x61672a=0x0,_0x37a41b=_0x29a0e1['length'];_0x61672a<_0x37a41b;_0x61672a++){_0x24b8b6+='%'+('00'+_0x29a0e1['charCodeAt'](_0x61672a)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x24b8b6);};_0x4484['wsOxbd']=_0x2859d7,_0x4484['MOcnRO']={},_0x4484['bHnHMe']=!![];}const _0x367359=_0x55f992[0x0],_0x252d31=_0x3ff6e8+_0x367359,_0x49ce1d=_0x4484['MOcnRO'][_0x252d31];return!_0x49ce1d?(_0x448476=_0x4484['wsOxbd'](_0x448476),_0x4484['MOcnRO'][_0x252d31]=_0x448476):_0x448476=_0x49ce1d,_0x448476;}__name(checkWritableCwd,_0x329235(0x17a));var PACKAGE_NAME=_0x329235(0x184),WebRunnerAdapter=class{static{__name(this,_0x329235(0x187));}[_0x329235(0x1ac)]=PACKAGE_NAME;[_0x329235(0x1be)]='';['debug']={'picker':!![],'attach':!![],'resumeFromFailure':![]};['supportedKinds']=['scenario',_0x329235(0x162),_0x329235(0x1bd)];[_0x329235(0x1b6)](){const _0x40aab7={_0x194042:0x16f,_0x4f5d74:0x1a8,_0x366f20:0x1a3},_0x2d097a=_0x329235,_0x33d343=createRequire(import.meta.url),_0x5e4a42=_0x33d343[_0x2d097a(0x1b8)](PACKAGE_NAME+_0x2d097a(_0x40aab7._0x194042)),_0x2a8e00=JSON[_0x2d097a(0x1af)](readFileSync(_0x5e4a42,_0x2d097a(_0x40aab7._0x4f5d74))),_0xc9b0bf=pickBin(_0x2a8e00);if(!_0xc9b0bf)throw new Error(PACKAGE_NAME+_0x2d097a(_0x40aab7._0x366f20));return join(dirname(_0x5e4a42),_0xc9b0bf);}['buildArgs'](_0x17aa74){const _0x2ad116={_0x2d43a3:0x18a,_0x5b5606:0x198,_0x4189be:0x183,_0x172360:0x183,_0x233f29:0x1ae,_0x2b59ea:0x1b7,_0xa456a7:0x1a2,_0x127100:0x18c,_0x1365a8:0x191},_0x2c6c4c=_0x329235;if(_0x17aa74[_0x2c6c4c(0x167)]==='scenario'){const _0x3785b1=[_0x2c6c4c(_0x2ad116._0x2d43a3),_0x17aa74[_0x2c6c4c(_0x2ad116._0x5b5606)]];if(_0x17aa74[_0x2c6c4c(0x1b1)])_0x3785b1['push']('--debug');return _0x17aa74[_0x2c6c4c(_0x2ad116._0x4189be)]&&_0x17aa74[_0x2c6c4c(_0x2ad116._0x172360)]['length']>0x0&&_0x3785b1['push']('--break',_0x17aa74[_0x2c6c4c(0x183)][_0x2c6c4c(_0x2ad116._0x233f29)](',')),_0x3785b1;}if(_0x17aa74['kind']==='collection'){const _0x3ad045=['collection',_0x17aa74['collection']];_0x17aa74[_0x2c6c4c(0x1b7)]!==void 0x0&&_0x17aa74[_0x2c6c4c(_0x2ad116._0x2b59ea)]>0x1&&_0x3ad045[_0x2c6c4c(0x199)](_0x2c6c4c(_0x2ad116._0xa456a7)+_0x17aa74[_0x2c6c4c(0x1b7)]);if(_0x17aa74[_0x2c6c4c(_0x2ad116._0x127100)])_0x3ad045['push'](_0x2c6c4c(0x197));return _0x3ad045;}if(_0x17aa74[_0x2c6c4c(0x167)]===_0x2c6c4c(0x1bd))return[_0x2c6c4c(_0x2ad116._0x1365a8),_0x17aa74[_0x2c6c4c(_0x2ad116._0x5b5606)]];const _0x48a217=_0x17aa74;throw new UnsupportedRunKindError(_0x48a217['kind'],this['name']);}[_0x329235(0x17b)](_0x4d8391){const _0x15347b={_0x5201fd:0x17f,_0x124018:0x177},_0x34227a=_0x329235,_0x2a75c0={};if(_0x4d8391[_0x34227a(_0x15347b._0x5201fd)])_0x2a75c0[_0x34227a(_0x15347b._0x124018)]='1';return _0x2a75c0;}[_0x329235(0x1b5)](){const _0x534a11=_0x329235;return[_0x534a11(0x17d)];}[_0x329235(0x19f)](){const _0x4a52b3={_0x4bd66f:0x196},_0x6b533a=_0x329235;return[_0x6b533a(0x188),_0x6b533a(_0x4a52b3._0x4bd66f)];}async[_0x329235(0x176)](_0x581ffd){const _0x32716e=_0x329235;return runEnvironmentChecks({'cwd':_0x581ffd[_0x32716e(0x1a0)]});}},webRunnerAdapter=new WebRunnerAdapter(),web_runner_adapter_default=webRunnerAdapter;function pickBin(_0x3979f8){const _0x2f08f2={_0x18648d:0x174,_0x3972b0:0x1ba},_0x1e470d=_0x329235;if(typeof _0x3979f8[_0x1e470d(0x1ab)]===_0x1e470d(_0x2f08f2._0x18648d))return _0x3979f8[_0x1e470d(0x1ab)];if(_0x3979f8[_0x1e470d(0x1ab)]&&typeof _0x3979f8['bin']===_0x1e470d(_0x2f08f2._0x3972b0))return _0x3979f8['bin']['unotest-web']??Object[_0x1e470d(0x1a9)](_0x3979f8[_0x1e470d(0x1ab)])[0x0]??null;return null;}__name(pickBin,'pickBin');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` / `
|
|
109
|
-
`ground_element` (still needs `UNOTEST_GROUNDER_MODE`),
|
|
110
|
-
`save_exploration_as_test`, `run_test`.
|
|
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
|
-
###
|
|
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
|
|
@@ -624,6 +720,9 @@ What the server **cannot** do (by design — D-25):
|
|
|
624
720
|
What it **can** do (with your approval):
|
|
625
721
|
|
|
626
722
|
- Run your scenarios + drive browsers
|
|
723
|
+
- Act on your unotest cloud account through the `cloud_*` tools, with the
|
|
724
|
+
key `login` stored — renting, deleting and turning the Picker on wait
|
|
725
|
+
for a person in the cabinet
|
|
627
726
|
- Read failure artifacts from `.unotest/failures/`
|
|
628
727
|
- Execute sandbox primitives — `shell(cmd, …args)` (execFile, not
|
|
629
728
|
shell), `dbQuery` / `dbExec` (against `sandbox.database`), `apiCall`
|
package/guides/dsl-reference.md
CHANGED
|
@@ -1056,6 +1056,25 @@ The variable must hold an http(s) URL; an unknown name fails with the
|
|
|
1056
1056
|
usual "add it to unotest/.env" message. URLs never appear in the
|
|
1057
1057
|
scenario — hosts are controlled by project env files only.
|
|
1058
1058
|
|
|
1059
|
+
**With an environment overlay active, the base must come from it.**
|
|
1060
|
+
Running `--env dev` while `API_BASE_CHAT` is set only in the base
|
|
1061
|
+
`unotest/.env` is refused — before the browser, by `lint`, by the run
|
|
1062
|
+
and by the MCP tools alike — because the call would otherwise go to the
|
|
1063
|
+
base host while everything else in the run resolves against `dev`. Set
|
|
1064
|
+
the name in `unotest/.env.dev`, or, when the base value really is meant
|
|
1065
|
+
for every environment, list the name in the config:
|
|
1066
|
+
|
|
1067
|
+
```js
|
|
1068
|
+
// unotest/unotest.config.mjs
|
|
1069
|
+
export default { env: { shared: ['API_BASE_CHAT'] } };
|
|
1070
|
+
```
|
|
1071
|
+
|
|
1072
|
+
A value supplied by the process environment (a shell variable, a box)
|
|
1073
|
+
is never affected: the rule is about a value silently inherited from a
|
|
1074
|
+
file the overlay was supposed to replace. The same rule covers
|
|
1075
|
+
`APP_BASE_URL` (the base every relative `goto` resolves against) and a
|
|
1076
|
+
variable used as the URL in `goto(NAME)`.
|
|
1077
|
+
|
|
1059
1078
|
**Multipart file upload — `upload(path, options?)`.** Passing the
|
|
1060
1079
|
result of `upload(...)` as the body posts `multipart/form-data`:
|
|
1061
1080
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unotest/web",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.0",
|
|
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.
|
|
87
|
-
"@unotest/grounder-client": "^0.
|
|
88
|
-
"@unotest/
|
|
89
|
-
"@unotest/
|
|
90
|
-
"@unotest/
|
|
86
|
+
"@unotest/core": "^0.43.0",
|
|
87
|
+
"@unotest/grounder-client": "^0.43.0",
|
|
88
|
+
"@unotest/viewer": "^0.43.0",
|
|
89
|
+
"@unotest/protocol": "^0.43.0",
|
|
90
|
+
"@unotest/dsl": "^0.43.0"
|
|
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.
|
|
98
|
-
"@unotest/judge": "^0.
|
|
97
|
+
"@unotest/grounder": "^0.43.0",
|
|
98
|
+
"@unotest/judge": "^0.43.0"
|
|
99
99
|
}
|
|
100
100
|
}
|