@ranger-testing/ranger-cli 2.5.4-alpha.1f7a251-7 → 2.5.4-alpha.36a12ca-10
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/build/cli.js +1 -1
- package/build/commands/addEnv.js +1 -1
- package/build/commands/authEncrypt.js +1 -1
- package/build/commands/clean.js +1 -1
- package/build/commands/config.js +1 -1
- package/build/commands/env.js +1 -1
- package/build/commands/feature.js +1 -1
- package/build/commands/hook.js +1 -1
- package/build/commands/hooks/autoPrompt.js +1 -1
- package/build/commands/hooks/disable.js +1 -1
- package/build/commands/hooks/enable.js +1 -1
- package/build/commands/hooks/exitPlanMode.js +1 -1
- package/build/commands/hooks/index.js +1 -1
- package/build/commands/hooks/output.js +1 -1
- package/build/commands/hooks/planReminder.js +1 -1
- package/build/commands/hooks/planStart.js +1 -1
- package/build/commands/hooks/postEdit.js +1 -1
- package/build/commands/hooks/preCompact.js +1 -1
- package/build/commands/hooks/sessionEnd.js +1 -1
- package/build/commands/hooks/sessionStart.js +1 -1
- package/build/commands/hooks/stopHook.js +1 -1
- package/build/commands/index.js +1 -1
- package/build/commands/login.js +1 -1
- package/build/commands/mcpBootstrap.js +1 -1
- package/build/commands/migrateProfile.js +1 -1
- package/build/commands/setup/claude.js +1 -1
- package/build/commands/setup/opencode.js +1 -1
- package/build/commands/setupCi.js +1 -1
- package/build/commands/skillup.js +1 -1
- package/build/commands/start.js +1 -1
- package/build/commands/status.js +1 -1
- package/build/commands/update.js +1 -1
- package/build/commands/updateEnv.js +1 -1
- package/build/commands/useEnv.js +1 -1
- package/build/commands/utils/activeProfile.js +1 -1
- package/build/commands/utils/agentEnv.js +1 -1
- package/build/commands/utils/browserSessionsApi.js +1 -1
- package/build/commands/utils/claudeConfig.js +1 -1
- package/build/commands/utils/claudeOverrideSettings.js +1 -1
- package/build/commands/utils/claudePlugin.js +1 -1
- package/build/commands/utils/cloudProfile.js +1 -1
- package/build/commands/utils/cloudProfileSession.js +1 -1
- package/build/commands/utils/crypto.js +1 -1
- package/build/commands/utils/desirePathLog.js +1 -1
- package/build/commands/utils/deviceAuth.js +1 -1
- package/build/commands/utils/environment.js +1 -1
- package/build/commands/utils/featureApi.js +1 -1
- package/build/commands/utils/fixWebmDuration.js +1 -1
- package/build/commands/utils/gitTracked.js +1 -1
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/matchAuthEnvironment.js +1 -1
- package/build/commands/utils/mcpImageBase64.js +1 -1
- package/build/commands/utils/model.js +1 -1
- package/build/commands/utils/opencodeConfig.js +1 -1
- package/build/commands/utils/playwrightCli.js +1 -1
- package/build/commands/utils/profileMessages.js +1 -1
- package/build/commands/utils/profileSetupBanner.js +1 -1
- package/build/commands/utils/projectsConfig.js +1 -1
- package/build/commands/utils/rangerConfig.js +1 -1
- package/build/commands/utils/rangerRoot.js +1 -1
- package/build/commands/utils/resolveProfileContext.js +1 -1
- package/build/commands/utils/resolveProfileUrl.js +1 -1
- package/build/commands/utils/retry.js +1 -1
- package/build/commands/utils/sessionCache.js +1 -1
- package/build/commands/utils/settings.js +1 -1
- package/build/commands/utils/skillContent.js +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/utils/stitchWebmFiles.js +1 -1
- package/build/commands/utils/telemetry.js +1 -1
- package/build/commands/utils/tokenRefresh.js +1 -1
- package/build/commands/utils/traceSnapshotMapper.js +1 -1
- package/build/commands/utils/userApi.js +1 -1
- package/build/commands/utils/version.js +1 -1
- package/build/commands/verifyFeature.js +1 -1
- package/build/commands/verifyFeatureCli.js +1 -1
- package/build/skills/ranger/verify.md +6 -12
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x18d502,_0x5b1b28){const _0x3a1625=_0x3816,_0x355bfc=_0x18d502();while(!![]){try{const _0x1720f9=parseInt(_0x3a1625(0x121))/0x1*(-parseInt(_0x3a1625(0x13c))/0x2)+parseInt(_0x3a1625(0x173))/0x3+parseInt(_0x3a1625(0x153))/0x4*(-parseInt(_0x3a1625(0x14c))/0x5)+-parseInt(_0x3a1625(0x188))/0x6+parseInt(_0x3a1625(0x12b))/0x7*(parseInt(_0x3a1625(0x14d))/0x8)+-parseInt(_0x3a1625(0x176))/0x9*(-parseInt(_0x3a1625(0x17b))/0xa)+parseInt(_0x3a1625(0x177))/0xb*(parseInt(_0x3a1625(0x129))/0xc);if(_0x1720f9===_0x5b1b28)break;else _0x355bfc['push'](_0x355bfc['shift']());}catch(_0x2fd36a){_0x355bfc['push'](_0x355bfc['shift']());}}}(_0xd62d,0xaf260));import{mkdir,readFile,readdir,rename,stat}from'fs/promises';import{basename,join}from'path';function _0x3816(_0x36474b,_0x3c2b2d){_0x36474b=_0x36474b-0x103;const _0xd62d62=_0xd62d();let _0x3816af=_0xd62d62[_0x36474b];return _0x3816af;}import{extractBashCommand,parsePlaywrightCliCommand,quoteShellArg,runPlaywrightCliCommand}from'./utils/playwrightCli.js';const PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS=0xea60,PLAYWRIGHT_CLI_PREVIEW_LIMIT=0xf0,VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN=/^(?:\d{2}_.+\.(?:png|ya?ml)|key_.+\.png|session-recording(?:-\d+)?\.webm|trace(?:\.trace)?(?:-\d+)?\.zip|current_snap\.ya?ml)$/i;function truncatePreview(_0x444994,_0x6ba93c=PLAYWRIGHT_CLI_PREVIEW_LIMIT){const _0x2810ff=_0x3816,_0x1d53c3={'AXlRR':function(_0x3f7b3a,_0x48f7dc){return _0x3f7b3a+_0x48f7dc;},'lKgUq':'...'};return _0x444994['length']>_0x6ba93c?_0x1d53c3['AXlRR'](_0x444994[_0x2810ff(0x16e)](0x0,_0x6ba93c),_0x1d53c3['lKgUq']):_0x444994;}function buildCliArtifactPath(_0x4443ff,_0x2f5c78){return join(_0x4443ff,_0x2f5c78);}function toStepDisplayName(_0x43dfdc){const _0x593b49=_0x3816,_0x1836c6=basename(_0x43dfdc)['replace'](/\.(?:png|ya?ml)$/i,'')['replace'](/^key_/i,'')['replace'](/^\d+_/,'')[_0x593b49(0x13b)](/-/g,'\x20');return{'name':_0x1836c6,'isKeyStep':/^key_/i[_0x593b49(0x10a)](basename(_0x43dfdc))};}function extractShellValue(_0x1b35c6){if(!_0x1b35c6)return null;return _0x1b35c6[0x1]??_0x1b35c6[0x2]??_0x1b35c6[0x3]??null;}function extractFilenameOption(_0x58b72f){return extractShellValue(_0x58b72f['match'](/--filename(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function extractFirstCommandArgument(_0xc52965,_0x43df9d){const _0x56a521=_0x3816,_0x1541d6={'IpvAz':'\x5c$&','gPWvr':function(_0x20a298,_0x3012f5){return _0x20a298(_0x3012f5);}},_0x4b2f73=_0x43df9d['replace'](/[.*+?^${}()|[\]\\]/g,_0x1541d6[_0x56a521(0x10b)]);return _0x1541d6['gPWvr'](extractShellValue,_0xc52965['match'](new RegExp('(?:^|\x5cs)'+_0x4b2f73+_0x56a521(0x184))));}function _0xd62d(){const _0x3ff655=['`\x0a\x0a-\x20Write\x20all\x20artifacts\x20under\x20`','commandArgs','open\x20new\x20tab','GWzmy','authorName','hxnbg','--filename=','03_learn-more.png','01_initial-state.png','`\x20and\x20read\x20the\x20snapshot\x20file\x20to\x20inspect\x20the\x20page.\x0a5.\x20**IMMEDIATELY\x20check\x20for\x20blocking\x20HTTP\x20errors\x20before\x20proceeding.**\x0a6.\x20Execute\x20the\x20task\x20step-by-step\x20with\x20Playwright\x20CLI\x20commands.\x0a7.\x20Use\x20`','slice','keys','invocation','clBzV','notes','1734879FykGJu','short','\x20snapshot\x20--filename\x20','1278qtPWjO','33CXDxhS','capture\x20snapshot','\x0a\x0a##\x20Reviewer\x20Feedback\x20to\x20Address\x0aThe\x20following\x20reviewer\x20comments\x20were\x20left\x20on\x20the\x20previous\x20version\x20of\x20this\x20item.\x0aVerify\x20that\x20each\x20concern\x20has\x20been\x20addressed\x20in\x20the\x20current\x20implementation.\x0aFor\x20each\x20comment\x20you\x20believe\x20has\x20been\x20addressed,\x20include\x20its\x20ID\x20(the\x20bracketed\x20value)\x20in\x20the\x20addressedCommentIds\x20array\x20in\x20your\x20output.\x0a\x0a','QgSfP','64360SzxOkV','npxtt','SjYgO','BDeQM','\x20tracing-start`\x0a3.\x20Run\x20`','-\x20[','open\x20new\x20tab\x20','\x20(on\x20element:\x20<','\x20open`,\x20then\x20`','(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))','You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Playwright\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a','gETUO','env','3227592yKqLVD','pop','\x0a-\x20You\x20may\x20ONLY\x20navigate\x20to\x20paths\x20under\x20this\x20base\x20URL\x20(same\x20protocol,\x20host,\x20and\x20port)\x0a-\x20For\x20example,\x20if\x20the\x20base\x20URL\x20is\x20\x22http://localhost:3000\x22,\x20you\x20can\x20navigate\x20to\x20\x22http://localhost:3000/home\x22,\x20\x22http://localhost:3000/settings\x22,\x20etc.\x0a-\x20DO\x20NOT\x20navigate\x20to\x20any\x20different\x20domain,\x20host,\x20or\x20port\x20under\x20any\x20circumstances\x0a-\x20If\x20documentation\x20or\x20code\x20diffs\x20suggest\x20a\x20path\x20exists\x20(e.g.,\x20\x22/dashboard\x22),\x20you\x20may\x20navigate\x20to\x20that\x20path\x20ONLY\x20under\x20the\x20base\x20URL\x20above\x0a-\x20The\x20base\x20URL\x20above\x20is\x20the\x20ONLY\x20authorized\x20profile\x20for\x20this\x20verification','`\x0a5.\x20Read\x20the\x20snapshot\x20file\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20reference\x0a6.\x20Run\x20`','\x0a\x0a1.\x20Run\x20`','`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a6.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`','\x0a\x0aAfter\x20completing\x20authentication,\x20proceed\x20with\x20the\x20verification\x20task\x20below.\x0aIf\x20authentication\x20fails,\x20return\x20immediately\x20with\x20evaluation\x20\x22blocked\x22\x20and\x20describe\x20the\x20auth\x20failure.','press','\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','click\x20','createdAt','CQALy','test','IpvAz','hook_event_name','**\x20(','`\x0a-\x20`run-code\x20\x22await\x20page.waitForTimeout(1000)\x22`\x20for\x20waits\x20or\x20small\x20custom\x20checks\x0a\x0a##\x20Screenshot\x20Guidelines\x20-\x20IMPORTANT\x0aTake\x20screenshots\x20throughout\x20the\x20verification\x20flow\x20so\x20a\x20human\x20can\x20review\x20it\x20for\x20completeness.\x20Screenshots\x20are\x20your\x20evidence\x20trail.\x0a\x0a**When\x20to\x20take\x20screenshots\x20(use\x20Playwright\x20CLI\x20screenshot):**\x0a-\x20After\x20the\x20initial\x20snapshot\x20(capture\x20starting\x20state)\x0a-\x20Before\x20and\x20after\x20clicking\x20buttons\x20or\x20submitting\x20forms\x0a-\x20When\x20important\x20UI\x20elements\x20appear\x20(modals,\x20notifications,\x20loading\x20states)\x0a-\x20After\x20navigating\x20to\x20different\x20views\x20or\x20pages\x0a-\x20When\x20verifying\x20specific\x20elements\x20exist\x0a-\x20At\x20the\x20final\x20state\x20showing\x20the\x20completed\x20action\x0a\x0a**Screenshot\x20naming:**\x0a-\x20Use\x20descriptive\x20filenames\x20under\x20`','snapshot','key_04_success-state.png','trace.zip','playwright_cli_video_stop','`,\x20then\x20`','ClJrY','tracing-stop','run\x20custom\x20Playwright\x20code','meFEn','textContent','TNhMk','Bash','stderr','authorEmail','numeric','`\x20writes\x20a\x20YAML\x20snapshot\x20you\x20can\x20read\x20for\x20element\x20refs\x0a-\x20`click\x20<ref>`,\x20`fill\x20<ref>\x20\x22text\x22`,\x20`check\x20<ref>`,\x20`press\x20Enter`\x0a-\x20`tab-list`,\x20`tab-select\x20<index>`,\x20`tab-new\x20<url>`\x0a-\x20`screenshot\x20--filename\x20','isFile','\x0a\x0a##\x20Critical:\x20Early\x20Error\x20Detection\x0aAfter\x20step\x202\x20(taking\x20initial\x20snapshot),\x20IMMEDIATELY\x20check\x20for\x20blocking\x20HTTP\x20errors:\x0a\x0a**Blocking\x20errors\x20to\x20detect:**\x0a-\x20HTTP\x20404:\x20\x22404\x22,\x20\x22Not\x20Found\x22,\x20\x22Page\x20not\x20found\x22,\x20\x22does\x20not\x20exist\x22\x0a-\x20HTTP\x20500:\x20\x22500\x22,\x20\x22Internal\x20Server\x20Error\x22,\x20\x22Server\x20Error\x22,\x20\x22Something\x20went\x20wrong\x22\x0a-\x20HTTP\x20400:\x20\x22400\x22,\x20\x22Bad\x20Request\x22,\x20\x22Invalid\x20request\x22\x0a\x0a**Also\x20check\x20for:**\x0a-\x20Framework\x20error\x20pages\x20(Next.js\x20error\x20boundary,\x20React\x20error\x20page,\x20\x22Application\x20error\x22)\x0a-\x20Completely\x20blank/empty\x20pages\x20with\x20no\x20content\x0a-\x20\x22Cannot\x20GET\x20/path\x22\x20messages\x0a\x0a**If\x20ANY\x20blocking\x20error\x20is\x20detected:**\x0a1.\x20DO\x20NOT\x20continue\x20with\x20the\x20task\x0a2.\x20Return\x20IMMEDIATELY\x20with\x20evaluation:\x20\x22blocked\x22\x0a3.\x20Set\x20evaluationReason\x20to\x20describe\x20the\x20specific\x20error\x20(e.g.,\x20\x22HTTP\x20404\x20-\x20Page\x20not\x20found\x20at\x20/dashboard\x22)\x0a4.\x20Include\x20the\x20error\x20in\x20issues\x20array\x20with\x20severity:\x20\x22BLOCKER\x22\x20and\x20appropriate\x20type\x20(HTTP_404,\x20HTTP_500,\x20HTTP_400,\x20or\x20NAVIGATION_ERROR)\x0a\x0aThis\x20early\x20exit\x20prevents\x20wasting\x20time\x20on\x20tasks\x20that\x20cannot\x20succeed\x20due\x20to\x20fundamental\x20errors.','507082HjLGLk','close','tool_call','canonicalFlow','bfMxk','trackPhaseEnd','rnaUL','selector','6054564iSvBpD','KohhG','14MopNIV','open','02_learn-more.yml','kbdsU','select\x20tab','GbsBh','target','split','stop\x20video\x20recording','jbunm','00_mozilla-homepage.yml','\x20run-code\x20\x22<playwright\x20code>\x22`.\x0a7.\x20Do\x20not\x20run\x20`close`,\x20`tracing-stop`,\x20or\x20`video-stop`;\x20the\x20host\x20finalizes\x20the\x20session\x20and\x20artifacts.\x0a8.\x20After\x20completing\x20the\x20verification,\x20evaluate\x20whether\x20the\x20result\x20adequately\x20verifies\x20the\x20scenario','MSYIy','wiRKT','CAJvN','playwright-cli','replace','2xEGQBF','name','tool_name','length','map','\x20run-code\x20\x22<playwright\x20code>\x22`.\x0a9.\x20Do\x20not\x20run\x20`close`,\x20`tracing-stop`,\x20or\x20`video-stop`;\x20the\x20host\x20finalizes\x20the\x20session\x20and\x20artifacts.\x0a10.\x20After\x20completing\x20the\x20verification,\x20evaluate\x20whether\x20the\x20result\x20adequately\x20verifies\x20the\x20scenario','set','YOjPz','key_03_success-state.png','[ranger-verification-agent]\x20','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a5.\x20Run\x20`','click','WtXBv','##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20(Chrome\x20DevTools\x20Protocol)\x20at\x20','##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`','video-start','19250ZAKMKL','647304lzQXQg','\x20screenshot\x20--filename\x20','DYmCP','`\x0a9.\x20Run\x20`','trace.trace.zip','UBVcB','1460BxLZhq','OLIni','join','error','ckGUf','open\x20browser','content','EAcfj','\x0a\x0a##\x20Task\x20to\x20Execute\x0a','tool_input','\x20open\x20','FzMJW','Reviewer','sort','01_initial.yml','FXRJQ','check'];_0xd62d=function(){return _0x3ff655;};return _0xd62d();}function formatCommandTarget(_0x4cd515){const _0x352ccf=_0x3816;if(!_0x4cd515)return _0x352ccf(0x131);if(/^e\d+$/i[_0x352ccf(0x10a)](_0x4cd515))return'ref\x20'+_0x4cd515;return JSON['stringify'](truncatePreview(_0x4cd515,0x78));}function formatPlaywrightCliLog(_0x93a6c1,_0x5beca8){const _0x5c2113=_0x3816,_0x5c453a={'qpzZr':_0x5c2113(0x12c),'meFEn':function(_0x2a1dcb,_0xbf6c87,_0x141476){return _0x2a1dcb(_0xbf6c87,_0x141476);},'DhDON':'tracing-start','wiRKT':'start\x20tracing','xhEaK':'start\x20video\x20recording','CQALy':_0x5c2113(0x133),'lhnJI':_0x5c2113(0x10f),'qsnDA':function(_0x21c7eb,_0x19f4e0){return _0x21c7eb(_0x19f4e0);},'HyRtZ':function(_0x532b9f,_0x3c1bdc){return _0x532b9f(_0x3c1bdc);},'YJXkN':_0x5c2113(0x163),'SXFeU':'fill','OLIni':function(_0x46bd4c,_0x1d161a){return _0x46bd4c(_0x1d161a);},'RKtoZ':'tab-select','EVJnL':_0x5c2113(0x12f)};switch(_0x5beca8){case _0x5c453a['qpzZr']:{const _0x408e46=_0x5c453a[_0x5c2113(0x117)](extractFirstCommandArgument,_0x93a6c1,_0x5beca8);return _0x408e46?'open\x20'+_0x408e46:_0x5c2113(0x158);}case _0x5c453a['DhDON']:return _0x5c453a[_0x5c2113(0x138)];case'tracing-stop':return'stop\x20tracing';case _0x5c2113(0x14b):return _0x5c453a['xhEaK'];case'video-stop':return _0x5c453a[_0x5c2113(0x109)];case _0x5c453a['lhnJI']:{const _0x23d1da=extractFilenameOption(_0x93a6c1);if(!_0x23d1da)return _0x5c2113(0x178);const {name:_0x9fc40e}=toStepDisplayName(_0x23d1da);return'capture\x20snapshot\x20`'+_0x9fc40e+'`';}case'screenshot':{const _0x56dd7a=extractFilenameOption(_0x93a6c1);if(!_0x56dd7a)return'capture\x20screenshot';const {name:_0x40fa74,isKeyStep:_0x2907d4}=_0x5c453a['qsnDA'](toStepDisplayName,_0x56dd7a);return _0x2907d4?'capture\x20key\x20step\x20`'+_0x40fa74+'`':'capture\x20step\x20`'+_0x40fa74+'`';}case _0x5c2113(0x147):return _0x5c2113(0x107)+_0x5c453a['HyRtZ'](formatCommandTarget,extractFirstCommandArgument(_0x93a6c1,_0x5beca8));case _0x5c453a['YJXkN']:return'check\x20'+formatCommandTarget(extractFirstCommandArgument(_0x93a6c1,_0x5beca8));case _0x5c453a['SXFeU']:return'fill\x20'+_0x5c453a[_0x5c2113(0x154)](formatCommandTarget,extractFirstCommandArgument(_0x93a6c1,_0x5beca8));case _0x5c2113(0x105):return'press\x20'+_0x5c453a[_0x5c2113(0x154)](formatCommandTarget,_0x5c453a['meFEn'](extractFirstCommandArgument,_0x93a6c1,_0x5beca8));case'run-code':return _0x5c2113(0x116);case'tab-new':{const _0x31306c=extractFirstCommandArgument(_0x93a6c1,_0x5beca8);return _0x31306c?_0x5c2113(0x181)+_0x31306c:_0x5c2113(0x166);}case _0x5c453a['RKtoZ']:{const _0xe10a13=extractFirstCommandArgument(_0x93a6c1,_0x5beca8);return _0xe10a13?'select\x20tab\x20'+_0xe10a13:_0x5c453a['EVJnL'];}default:return _0x5beca8;}}function extractPlaywrightCliToolDescription(_0x2ab466){const _0x56ce2=_0x3816,_0x567eca={'KohhG':function(_0x2e6bab,_0x129c45){return _0x2e6bab>_0x129c45;}},_0x540bc6=_0x2ab466['description'];if(typeof _0x540bc6!=='string')return null;const _0x41c091=_0x540bc6['trim']()[_0x56ce2(0x13b)](/\s+/g,'\x20');return _0x567eca[_0x56ce2(0x12a)](_0x41c091[_0x56ce2(0x13f)],0x0)?_0x41c091:null;}export function formatPlaywrightCliConsoleLogMessage(_0x541d57,_0x592458,_0x54c27b){const _0x41e450=_0x3816,_0x10a42f={'jCiMM':function(_0xf45fad,_0xdf6f03,_0x22222f){return _0xf45fad(_0xdf6f03,_0x22222f);}},_0x184c6c=_0x10a42f['jCiMM'](formatPlaywrightCliLog,_0x592458,_0x54c27b),_0x2ae345=extractPlaywrightCliToolDescription(_0x541d57);if(!_0x2ae345)return'[playwright-cli]\x20'+_0x184c6c;if(process[_0x41e450(0x187)]['DEBUG'])return _0x41e450(0x145)+_0x2ae345+'\x20('+_0x184c6c+')';return _0x41e450(0x145)+_0x2ae345;}export function buildVerifyFeatureCliDebugPrompt(_0x5b6150,_0x1002f4){const _0x4a0aeb=_0x3816,_0x57f012={'SjYgO':function(_0x48b1c1,_0x1b2b38,_0xfdba39){return _0x48b1c1(_0x1b2b38,_0xfdba39);},'zjdAL':_0x4a0aeb(0x12d),'npxtt':function(_0x39cee9,_0x405e55){return _0x39cee9(_0x405e55);}},_0x545532=_0x57f012[_0x4a0aeb(0x17d)](buildCliArtifactPath,_0x1002f4,_0x4a0aeb(0x135)),_0x577f3a=_0x57f012[_0x4a0aeb(0x17d)](buildCliArtifactPath,_0x1002f4,'01_mozilla-homepage.png'),_0xca6536=_0x57f012[_0x4a0aeb(0x17d)](buildCliArtifactPath,_0x1002f4,_0x57f012['zjdAL']),_0x4dbe80=buildCliArtifactPath(_0x1002f4,_0x4a0aeb(0x16b)),_0x5548fd=quoteShellArg(_0x545532),_0x2c75c9=quoteShellArg(_0x577f3a),_0x58d3d0=quoteShellArg(_0xca6536),_0x18586e=_0x57f012[_0x4a0aeb(0x17c)](quoteShellArg,_0x4dbe80);return _0x4a0aeb(0x185)+_0x5b6150+_0x4a0aeb(0x18c)+_0x5b6150+'\x20open\x20https://www.mozilla.org`\x0a2.\x20Run\x20`'+_0x5b6150+_0x4a0aeb(0x17f)+_0x5b6150+'\x20video-start`\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x1002f4+_0x4a0aeb(0x146)+_0x5b6150+'\x20snapshot\x20--filename\x20'+_0x5548fd+_0x4a0aeb(0x18b)+_0x5b6150+_0x4a0aeb(0x14e)+_0x2c75c9+'`\x0a7.\x20Click\x20the\x20\x22Learn\x20More\x22\x20link\x20with\x20Playwright\x20CLI\x0a8.\x20Run\x20`'+_0x5b6150+_0x4a0aeb(0x175)+_0x58d3d0+_0x4a0aeb(0x150)+_0x5b6150+'\x20screenshot\x20--filename\x20'+_0x18586e+'`\x0a10.\x20Return\x20immediately\x20with\x20the\x20structured\x20output\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.';}export function buildVerifyFeatureCliPrompt(_0xf574c0){const _0x4f2352=_0x3816,_0x36df48={'tWUkz':'en-US','EAcfj':_0x4f2352(0x174),'ckGUf':_0x4f2352(0x11d),'XAgQA':_0x4f2352(0x15f),'QgSfP':'\x20>\x20','GWzmy':'element','rnaUL':function(_0x3a0237,_0x561dbf,_0x507ef0){return _0x3a0237(_0x561dbf,_0x507ef0);},'bfMxk':'02_state.yml','GbsBh':function(_0x50df3b,_0x1d88b1,_0x50a258){return _0x50df3b(_0x1d88b1,_0x50a258);},'iPynj':function(_0x4c0e13,_0x3eb26f){return _0x4c0e13(_0x3eb26f);},'FuTDb':function(_0x51ce4e,_0x367de9){return _0x51ce4e(_0x367de9);},'kbdsU':'02_button-clicked.png','DYmCP':'03_result-visible.png','jbunm':_0x4f2352(0x110)},{checklistItem:_0x3cc1ef,itemFeedback:_0xf0b1b1,taskDescription:_0x52a49,cliCommandPrefix:_0x5f0f76,cliArtifactDir:_0x140061,isCdpMode:_0x1e84cc,url:_0x332e04,cdpEndpoint:_0x3cb580,loginInstructions:_0x5369e3}=_0xf574c0,_0x14a8ba=buildCliArtifactPath(_0x140061,_0x4f2352(0x161)),_0x449da1=_0x36df48[_0x4f2352(0x127)](buildCliArtifactPath,_0x140061,_0x36df48[_0x4f2352(0x125)]),_0x5c2f2a=_0x36df48['GbsBh'](buildCliArtifactPath,_0x140061,_0x4f2352(0x144)),_0x4b2bd2=_0x36df48[_0x4f2352(0x130)](buildCliArtifactPath,_0x140061,_0x4f2352(0x16c)),_0x2646fb=quoteShellArg(_0x14a8ba),_0x75b2cb=quoteShellArg(_0x449da1),_0x303383=_0x36df48['iPynj'](quoteShellArg,_0x5c2f2a),_0x2c289f=_0x36df48['FuTDb'](quoteShellArg,_0x4b2bd2),_0x1728bc=_0x3cc1ef[_0x4f2352(0x172)]?'\x0a\x0a##\x20Additional\x20Notes\x0a'+_0x3cc1ef[_0x4f2352(0x172)]:'';let _0x3d4bcd='';if(_0xf0b1b1&&_0xf0b1b1['unaddressedComments'][_0x4f2352(0x13f)]>0x0){const _0x19bf5a=_0xf0b1b1['unaddressedComments'][_0x4f2352(0x140)](_0x5427f2=>{const _0x24a640=_0x4f2352,_0x15be93=new Date(_0x5427f2[_0x24a640(0x108)])['toLocaleDateString'](_0x36df48['tWUkz'],{'month':_0x36df48[_0x24a640(0x15a)],'day':_0x36df48[_0x24a640(0x157)]}),_0x5b488f=_0x5427f2[_0x24a640(0x168)]||_0x5427f2[_0x24a640(0x11c)]||_0x36df48['XAgQA'],_0x15db18=_0x5427f2['domRef']?_0x24a640(0x182)+(_0x5427f2['domRef'][_0x24a640(0x128)][_0x24a640(0x132)](_0x36df48[_0x24a640(0x17a)])[_0x24a640(0x189)]()?.['split'](':')[0x0]||_0x36df48[_0x24a640(0x167)])+'>\x20\x22'+(_0x5427f2['domRef'][_0x24a640(0x118)]||'')['slice'](0x0,0x32)+'\x22)':'';return _0x24a640(0x180)+_0x5427f2['id']+']\x20**'+_0x5b488f+_0x24a640(0x10d)+_0x15be93+'):\x20\x22'+_0x5427f2[_0x24a640(0x159)]+'\x22'+_0x15db18;})[_0x4f2352(0x155)]('\x0a');_0x3d4bcd=_0x4f2352(0x179)+_0x19bf5a;}const _0x59429c=_0xf0b1b1?.[_0x4f2352(0x124)]?'\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a'+_0xf0b1b1[_0x4f2352(0x124)]:'',_0x2dad88=_0x1e84cc?_0x4f2352(0x149)+_0x3cb580+'.\x0aThis\x20is\x20NOT\x20a\x20web\x20app\x20—\x20there\x20is\x20no\x20URL\x20to\x20navigate\x20to.\x20The\x20app\x20is\x20already\x20running\x20and\x20connected.':'CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20'+_0x332e04+_0x4f2352(0x18a),_0x424e39=_0x332e04?quoteShellArg(_0x332e04):'',_0x131aaf=_0x1e84cc?_0x4f2352(0x14a)+_0x5f0f76+_0x4f2352(0x183)+_0x5f0f76+'\x20tracing-start`,\x20then\x20`'+_0x5f0f76+'\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x140061+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`'+_0x5f0f76+'\x20snapshot\x20--filename\x20'+_0x2646fb+'`\x20to\x20inspect\x20the\x20current\x20app\x20state.\x0a5.\x20Read\x20snapshot\x20YAML\x20files\x20to\x20find\x20element\x20references\x20like\x20`e12`,\x20then\x20use\x20them\x20with\x20`click`,\x20`fill`,\x20`check`,\x20or\x20`select`.\x0a6.\x20Use\x20`'+_0x5f0f76+_0x4f2352(0x14e)+_0x2c289f+_0x4f2352(0x103)+_0x5f0f76+_0x4f2352(0x136):'##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`'+_0x5f0f76+_0x4f2352(0x15d)+_0x424e39+_0x4f2352(0x113)+_0x5f0f76+'\x20tracing-start`,\x20then\x20`'+_0x5f0f76+_0x4f2352(0x106)+_0x140061+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`'+_0x5f0f76+_0x4f2352(0x175)+_0x2646fb+_0x4f2352(0x16d)+_0x5f0f76+_0x4f2352(0x14e)+_0x2c289f+'`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a8.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`'+_0x5f0f76+_0x4f2352(0x141),_0x3261fe=_0x1e84cc?'\x0a\x0a##\x20Critical:\x20Early\x20Error\x20Detection\x0aAfter\x20taking\x20the\x20initial\x20snapshot,\x20IMMEDIATELY\x20check\x20for\x20blocking\x20errors:\x0a\x0a**Blocking\x20errors\x20to\x20detect:**\x0a-\x20Crash\x20or\x20error\x20dialogs\x20(\x22An\x20error\x20occurred\x22,\x20\x22Something\x20went\x20wrong\x22,\x20unhandled\x20exception\x20messages)\x0a-\x20Blank\x20or\x20empty\x20window\x20with\x20no\x20rendered\x20content\x0a-\x20Framework\x20error\x20boundaries\x20(React\x20error\x20page,\x20Electron\x20crash\x20reporter)\x0a-\x20Unresponsive\x20or\x20frozen\x20UI\x20(no\x20interactive\x20elements\x20in\x20snapshot)\x0a\x0a**If\x20ANY\x20blocking\x20error\x20is\x20detected:**\x0a1.\x20DO\x20NOT\x20continue\x20with\x20the\x20task\x0a2.\x20Return\x20IMMEDIATELY\x20with\x20evaluation:\x20\x22blocked\x22\x0a3.\x20Set\x20evaluationReason\x20to\x20describe\x20the\x20specific\x20error\x20(e.g.,\x20\x22App\x20crashed\x20—\x20error\x20dialog\x20visible\x20on\x20launch\x22)\x0a4.\x20Include\x20the\x20error\x20in\x20issues\x20array\x20with\x20severity:\x20\x22BLOCKER\x22\x20and\x20type:\x20\x22APP_ERROR\x22\x0a\x0aThis\x20early\x20exit\x20prevents\x20wasting\x20time\x20on\x20tasks\x20that\x20cannot\x20succeed\x20due\x20to\x20fundamental\x20errors.':_0x4f2352(0x120),_0x207a52=_0x5369e3?'\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20you\x20MUST\x20authenticate\x20using\x20these\x20steps:\x0a'+_0x5369e3+_0x4f2352(0x104):'';return'You\x20are\x20a\x20Feature\x20Review\x20Verifier.\x20Your\x20job\x20is\x20to\x20verify\x20a\x20scenario\x20by\x20executing\x20a\x20UI\x20flow\x20and\x20evaluating\x20whether\x20it\x20adequately\x20completes\x20the\x20scenario.\x0a\x0a##\x20Scenario\x20to\x20Verify\x0a'+_0x3cc1ef['description']+_0x1728bc+_0x3d4bcd+_0x59429c+_0x4f2352(0x15b)+_0x52a49+'\x0a\x0a'+_0x2dad88+_0x207a52+'\x0a\x0a'+_0x131aaf+'\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Playwright\x20CLI\x20commands\x20with\x20this\x20exact\x20prefix:\x0a`'+_0x5f0f76+_0x4f2352(0x164)+_0x140061+'`\x0a-\x20`snapshot\x20--filename\x20'+_0x75b2cb+_0x4f2352(0x11e)+_0x303383+_0x4f2352(0x10e)+_0x140061+'`:\x20\x22'+_0x4b2bd2+'\x22,\x20\x22'+buildCliArtifactPath(_0x140061,_0x36df48[_0x4f2352(0x12e)])+'\x22,\x20\x22'+buildCliArtifactPath(_0x140061,_0x36df48[_0x4f2352(0x14f)])+'\x22\x0a-\x20Number\x20prefixes\x20(01_,\x2002_,\x20etc.)\x20help\x20maintain\x20chronological\x20order\x0a-\x20For\x20KEY\x20MOMENTS\x20that\x20prove\x20the\x20scenario\x20is\x20complete,\x20prefix\x20with\x20\x22key_\x22:\x20\x22'+buildCliArtifactPath(_0x140061,_0x36df48[_0x4f2352(0x134)])+'\x22\x0a-\x20The\x20\x22key_\x22\x20prefix\x20marks\x20screenshots\x20as\x20high-priority\x20evidence\x20for\x20human\x20reviewers\x0a\x0a**Aim\x20for\x203-6\x20screenshots\x20per\x20verification**\x20to\x20document\x20the\x20complete\x20flow.\x20Mark\x201-2\x20of\x20the\x20most\x20important\x20ones\x20with\x20the\x20\x22key_\x22\x20prefix.\x0a'+_0x3261fe+'\x0a##\x20Evaluation\x20Criteria\x0a-\x20VERIFIED:\x20The\x20task\x20completed\x20successfully\x20and\x20the\x20scenario\x20requirements\x20are\x20fully\x20met\x0a-\x20PARTIAL:\x20The\x20task\x20partially\x20completed\x20but\x20some\x20aspects\x20of\x20the\x20scenario\x20are\x20not\x20verified\x0a-\x20BLOCKED:\x20A\x20blocking\x20issue\x20(bug,\x20error,\x20missing\x20feature)\x20prevents\x20completion\x0a-\x20FAILED:\x20The\x20task\x20could\x20not\x20be\x20completed\x20due\x20to\x20errors\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format\x20with\x20your\x20evaluation.';}export function summarizeVerifyFeatureCliCommandAvailability(_0x47eb57){const _0x33bd83=_0x3816,_0x4b7fd2={'XetJI':function(_0x5727d4,_0x1ec8eb){return _0x5727d4===_0x1ec8eb;}},_0x16b19d=[..._0x47eb57[_0x33bd83(0x16f)]()]['sort']();let _0x17339a=0x0;for(const _0x547571 of _0x47eb57['values']()){_0x17339a+=_0x547571;}return{'cliCommandCount':_0x17339a,'cliCommandsSeen':_0x16b19d,'noCliCommandsCalled':_0x4b7fd2['XetJI'](_0x17339a,0x0)};}export function createVerifyFeatureCliHooks(_0x77aade){const _0xbe2e71=_0x3816,_0x546196={'wXlxZ':function(_0x309f67,_0xfe0687){return _0x309f67!==_0xfe0687;},'WtXBv':function(_0x1cca6e,_0x2b8f83){return _0x1cca6e!==_0x2b8f83;},'hxnbg':'Bash','CAJvN':_0xbe2e71(0x123),'UBVcB':_0xbe2e71(0x13a),'wyMSm':function(_0x337753,_0xb9b38c){return _0x337753(_0xb9b38c);},'ClJrY':'snapshot','fRmnC':'PostToolUseFailure'},_0x2435a9=new Map(),_0x5cc998=async _0x3a0a78=>{const _0x1152e8=_0xbe2e71;if(_0x546196['wXlxZ'](_0x3a0a78['hook_event_name'],'PostToolUse'))return{};const _0x49d562=_0x3a0a78;if(_0x546196[_0x1152e8(0x148)](_0x49d562[_0x1152e8(0x13e)],_0x546196[_0x1152e8(0x169)]))return{};const _0x3f0376=_0x49d562[_0x1152e8(0x15c)],_0x38ba37=extractBashCommand(_0x3f0376);if(!_0x38ba37)return{};const _0x85b5f7=parsePlaywrightCliCommand(_0x38ba37);if(!_0x85b5f7)return{};return _0x2435a9[_0x1152e8(0x142)](_0x85b5f7,(_0x2435a9['get'](_0x85b5f7)||0x0)+0x1),_0x77aade['trackPhaseStart'](_0x546196[_0x1152e8(0x139)],{'transport':_0x546196['UBVcB'],'toolName':_0x85b5f7}),_0x77aade[_0x1152e8(0x126)](_0x546196['CAJvN'],{'transport':_0x546196[_0x1152e8(0x152)],'toolName':_0x85b5f7,'bashCommandPreview':_0x546196['wyMSm'](truncatePreview,_0x38ba37)}),_0x85b5f7!==_0x546196[_0x1152e8(0x114)]&&console['log'](formatPlaywrightCliConsoleLogMessage(_0x3f0376,_0x38ba37,_0x85b5f7)),{};},_0x394e88=async _0x46ce2c=>{const _0x440a14=_0xbe2e71;if(_0x46ce2c[_0x440a14(0x10c)]!==_0x546196['fRmnC'])return{};const _0x2c6d0c=_0x46ce2c;if(_0x2c6d0c['tool_name']!==_0x546196[_0x440a14(0x169)])return{};return await _0x77aade['trackPhaseError']('tool_failure',_0x2c6d0c[_0x440a14(0x156)],{'transport':_0x440a14(0x13a),'toolName':_0x440a14(0x11a)}),{};};return{'postToolUseHook':_0x5cc998,'postToolUseFailureHook':_0x394e88,'commandCounts':_0x2435a9};}async function runPlaywrightCliLifecycleCommand(_0x4c9a33){const _0x5955b5=_0x3816,{sessionId:_0x36d9e5,configPath:_0xb3fc3a,commandArgs:_0x410a8f,env:_0x1939aa,telemetry:_0x1adbb5,phase:_0x2bb929,metadata:_0x2c2726,timeoutMs:_0x1e5d62}=_0x4c9a33;_0x1adbb5['trackPhaseStart'](_0x2bb929,_0x2c2726);try{const _0x35297c=await runPlaywrightCliCommand({'sessionId':_0x36d9e5,'configPath':_0xb3fc3a,'commandArgs':_0x410a8f,'cwd':process['cwd'](),'env':_0x1939aa,'timeoutMs':_0x1e5d62??PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS});_0x1adbb5['trackPhaseEnd'](_0x2bb929,{..._0x2c2726,'subcommand':_0x35297c[_0x5955b5(0x170)]['subcommand'],'stdoutPreview':truncatePreview(_0x35297c['stdout'],0x7d0),'stderrPreview':truncatePreview(_0x35297c[_0x5955b5(0x11b)],0x7d0)});}catch(_0x428b78){await _0x1adbb5['trackPhaseError'](_0x2bb929,_0x428b78,_0x2c2726);throw _0x428b78;}}export async function finalizeVerifyFeatureCliSession(_0x1a4f78){const _0x5245c2=_0x3816,_0x54966d={'clBzV':'playwright_cli_tracing_stop','FXRJQ':_0x5245c2(0x115),'MSYIy':_0x5245c2(0x112),'BDeQM':'video-stop','gETUO':function(_0x58ac04,_0x2dc25a,_0x4372e4){return _0x58ac04(_0x2dc25a,_0x4372e4);}},{telemetry:_0x561790,sessionId:_0x5669ab,configPath:_0x341474,cliArtifactDir:_0x590fc9,env:_0x543bb2,transportMetadata:_0x12ea48}=_0x1a4f78,_0x75603d=[{'phase':_0x54966d[_0x5245c2(0x171)],'commandArgs':[_0x54966d[_0x5245c2(0x162)]]},{'phase':_0x54966d[_0x5245c2(0x137)],'commandArgs':[_0x54966d[_0x5245c2(0x17e)],_0x5245c2(0x16a)+_0x54966d[_0x5245c2(0x186)](buildCliArtifactPath,_0x590fc9,'session-recording.webm')]},{'phase':'playwright_cli_close','commandArgs':[_0x5245c2(0x122)]}];for(const _0x6dbf2b of _0x75603d){try{await runPlaywrightCliLifecycleCommand({'sessionId':_0x5669ab,'configPath':_0x341474,'commandArgs':[..._0x6dbf2b[_0x5245c2(0x165)]],'env':_0x543bb2,'telemetry':_0x561790,'phase':_0x6dbf2b['phase'],'metadata':_0x12ea48});}catch{}}}export async function loadVerifyFeatureCliTraceUploadArtifact(_0x225a37){const _0x51e31f=_0x3816,_0x217e65={'CAOzi':function(_0x20e017,_0x709fe,_0x97636f){return _0x20e017(_0x709fe,_0x97636f);}},_0x149ea9=[_0x51e31f(0x111),_0x51e31f(0x151)];for(const _0xbd9b9 of _0x149ea9){const _0x3cfa9c=_0x217e65['CAOzi'](join,_0x225a37,_0xbd9b9);try{return{'buffer':await readFile(_0x3cfa9c),'source':_0x3cfa9c};}catch{}}return null;}export async function rehomeVerifyFeatureCliArtifacts(_0x3d6972){const _0x133d58=_0x3816,_0xf5b9bf={'FzMJW':function(_0x5547cc,_0x3a1cdb,_0x21765b){return _0x5547cc(_0x3a1cdb,_0x21765b);},'OqAVL':function(_0x4a1be9,_0x5ca443){return _0x4a1be9(_0x5ca443);},'TNhMk':function(_0x42b9fd,_0x234515,_0x41000c){return _0x42b9fd(_0x234515,_0x41000c);},'WtlsW':function(_0x50fa6d,_0x5ac9af){return _0x50fa6d===_0x5ac9af;},'YOjPz':function(_0x3d1a11,_0x15f683,_0x4dde45){return _0x3d1a11(_0x15f683,_0x4dde45);}},{cwd:_0x338484,cliArtifactDir:_0x2dccad,startTime:_0x2594f5}=_0x3d6972,_0x4be2a8=[];await mkdir(_0x2dccad,{'recursive':!![]});const _0x465fb1=await _0xf5b9bf[_0x133d58(0x15e)](readdir,_0x338484,{'withFileTypes':!![]});for(const _0x2a84b0 of _0x465fb1){if(!_0x2a84b0[_0x133d58(0x11f)]()||!VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN['test'](_0x2a84b0['name']))continue;const _0x5cc3d9=join(_0x338484,_0x2a84b0['name']),_0x176dc3=await _0xf5b9bf['OqAVL'](stat,_0x5cc3d9);if(_0x176dc3['mtimeMs']+0x7d0<_0x2594f5)continue;const _0x55d15f=_0xf5b9bf[_0x133d58(0x119)](buildCliArtifactPath,_0x2dccad,_0x2a84b0[_0x133d58(0x13d)]);if(_0xf5b9bf['WtlsW'](_0x5cc3d9,_0x55d15f))continue;await _0xf5b9bf[_0x133d58(0x143)](rename,_0x5cc3d9,_0x55d15f),_0x4be2a8['push'](_0x2a84b0[_0x133d58(0x13d)]);}return _0x4be2a8[_0x133d58(0x160)]();}
|
|
1
|
+
(function(_0x332bdd,_0x28c3d9){const _0x1e212c=_0x579f,_0x19f181=_0x332bdd();while(!![]){try{const _0xe28e3a=-parseInt(_0x1e212c(0x15a))/0x1+parseInt(_0x1e212c(0x192))/0x2*(parseInt(_0x1e212c(0x194))/0x3)+-parseInt(_0x1e212c(0x14b))/0x4*(-parseInt(_0x1e212c(0x139))/0x5)+-parseInt(_0x1e212c(0x1b3))/0x6*(parseInt(_0x1e212c(0x1c2))/0x7)+-parseInt(_0x1e212c(0x137))/0x8+parseInt(_0x1e212c(0x19d))/0x9+parseInt(_0x1e212c(0x18f))/0xa*(parseInt(_0x1e212c(0x174))/0xb);if(_0xe28e3a===_0x28c3d9)break;else _0x19f181['push'](_0x19f181['shift']());}catch(_0x29cb1a){_0x19f181['push'](_0x19f181['shift']());}}}(_0x3cab,0x77b99));import{mkdir,readFile,readdir,rename,stat}from'fs/promises';import{basename,join}from'path';import{extractBashCommand,parsePlaywrightCliCommand,quoteShellArg,runPlaywrightCliCommand}from'./utils/playwrightCli.js';const PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS=0xea60,PLAYWRIGHT_CLI_PREVIEW_LIMIT=0xf0,VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN=/^(?:\d{2}_.+\.(?:png|ya?ml)|key_.+\.png|session-recording(?:-\d+)?\.webm|trace(?:\.trace)?(?:-\d+)?\.zip|current_snap\.ya?ml)$/i;function truncatePreview(_0x5e3133,_0x140eee=PLAYWRIGHT_CLI_PREVIEW_LIMIT){const _0x340c52=_0x579f,_0x23b6d8={'PepjR':function(_0x5d6252,_0x473748){return _0x5d6252+_0x473748;},'USCVK':_0x340c52(0x147)};return _0x5e3133[_0x340c52(0x16a)]>_0x140eee?_0x23b6d8[_0x340c52(0x143)](_0x5e3133['slice'](0x0,_0x140eee),_0x23b6d8['USCVK']):_0x5e3133;}function buildCliArtifactPath(_0x23a768,_0x2335dd){return join(_0x23a768,_0x2335dd);}function toStepDisplayName(_0xa463fa){const _0x433236=_0x579f,_0x5a73ed={'wTGJb':function(_0x26a7b5,_0x3d602b){return _0x26a7b5(_0x3d602b);}},_0x2f9036=basename(_0xa463fa)[_0x433236(0x167)](/\.(?:png|ya?ml)$/i,'')[_0x433236(0x167)](/^key_/i,'')['replace'](/^\d+_/,'')[_0x433236(0x167)](/-/g,'\x20');return{'name':_0x2f9036,'isKeyStep':/^key_/i[_0x433236(0x150)](_0x5a73ed['wTGJb'](basename,_0xa463fa))};}function extractShellValue(_0x2bbbaa){if(!_0x2bbbaa)return null;return _0x2bbbaa[0x1]??_0x2bbbaa[0x2]??_0x2bbbaa[0x3]??null;}function extractFilenameOption(_0x18e571){const _0x5f11c0={'RmtSR':function(_0x237261,_0x42c9b2){return _0x237261(_0x42c9b2);}};return _0x5f11c0['RmtSR'](extractShellValue,_0x18e571['match'](/--filename(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function _0x579f(_0x5bb7ba,_0x3ef4c8){_0x5bb7ba=_0x5bb7ba-0x137;const _0x3cab79=_0x3cab();let _0x579fb8=_0x3cab79[_0x5bb7ba];return _0x579fb8;}function extractFirstCommandArgument(_0x3f9800,_0x1738c0){const _0x4953f2=_0x579f,_0x2e1344={'yUqna':function(_0x5c8255,_0x20ee86){return _0x5c8255(_0x20ee86);}},_0xb514be=_0x1738c0['replace'](/[.*+?^${}()|[\]\\]/g,_0x4953f2(0x173));return _0x2e1344['yUqna'](extractShellValue,_0x3f9800['match'](new RegExp(_0x4953f2(0x17d)+_0xb514be+'(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))')));}function formatCommandTarget(_0x17574e){if(!_0x17574e)return'target';if(/^e\d+$/i['test'](_0x17574e))return'ref\x20'+_0x17574e;return JSON['stringify'](truncatePreview(_0x17574e,0x78));}function _0x3cab(){const _0x3f1256=['\x20open\x20https://www.mozilla.org`\x0a2.\x20Run\x20`','domRef','xeMQV','authorName','open\x20','[ranger-verification-agent]\x20','`\x0a10.\x20Return\x20immediately\x20with\x20the\x20structured\x20output\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.','trace.zip','nWShZ','saEgq','tool_failure','playwright-cli','sort','stop\x20tracing','OdJMp','ucBZy','1513750UoPvXC','uhCCo','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`','436906pbyzHZ','trackPhaseStart','12fzwCBp','open','start\x20video\x20recording','press\x20','key_03_success-state.png','get','oiHoY','tool_name','`\x20to\x20inspect\x20the\x20current\x20app\x20state.\x0a5.\x20Read\x20snapshot\x20YAML\x20files\x20to\x20find\x20element\x20references\x20like\x20`e12`,\x20then\x20use\x20them\x20with\x20`click`,\x20`fill`,\x20`check`,\x20or\x20`select`.\x0a6.\x20Use\x20`','2406555MhrZpY','video-stop','hVBWI','--filename=','push','aKlsn','##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`','keys','PzKsV','gEODJ','Bash','):\x20\x22','\x0a\x0a##\x20Reviewer\x20Feedback\x20to\x20Address\x0aThe\x20following\x20reviewer\x20comments\x20were\x20left\x20on\x20the\x20previous\x20version\x20of\x20this\x20item.\x0aVerify\x20that\x20each\x20concern\x20has\x20been\x20addressed\x20in\x20the\x20current\x20implementation.\x0aFor\x20each\x20comment\x20you\x20believe\x20has\x20been\x20addressed,\x20include\x20its\x20ID\x20(the\x20bracketed\x20value)\x20in\x20the\x20addressedCommentIds\x20array\x20in\x20your\x20output.\x0a\x0a','01_initial.yml','\x20(on\x20element:\x20<','hook_event_name','\x0a-\x20You\x20may\x20ONLY\x20navigate\x20to\x20paths\x20under\x20this\x20base\x20URL\x20(same\x20protocol,\x20host,\x20and\x20port)\x0a-\x20For\x20example,\x20if\x20the\x20base\x20URL\x20is\x20\x22http://localhost:3000\x22,\x20you\x20can\x20navigate\x20to\x20\x22http://localhost:3000/home\x22,\x20\x22http://localhost:3000/settings\x22,\x20etc.\x0a-\x20DO\x20NOT\x20navigate\x20to\x20any\x20different\x20domain,\x20host,\x20or\x20port\x20under\x20any\x20circumstances\x0a-\x20If\x20documentation\x20or\x20code\x20diffs\x20suggest\x20a\x20path\x20exists\x20(e.g.,\x20\x22/dashboard\x22),\x20you\x20may\x20navigate\x20to\x20that\x20path\x20ONLY\x20under\x20the\x20base\x20URL\x20above\x0a-\x20The\x20base\x20URL\x20above\x20is\x20the\x20ONLY\x20authorized\x20profile\x20for\x20this\x20verification','jFJEd','**\x20(','\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a','>\x20\x22','toLocaleDateString','4030494tTvCas','fill\x20','set','dmWNK','subcommand','stop\x20video\x20recording','isFile','`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a6.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`','`,\x20then\x20`','select\x20tab','02_state.yml','cNHPf','trackPhaseError','`\x0a\x0a-\x20Write\x20all\x20artifacts\x20under\x20`','HTRMc','7Geuplk','6572344jSiZnk','PaOXh','5yQwdWz','\x20run-code\x20\x22<playwright\x20code>\x22`.\x0a9.\x20Do\x20not\x20run\x20`close`,\x20`tracing-stop`,\x20or\x20`video-stop`;\x20the\x20host\x20finalizes\x20the\x20session\x20and\x20artifacts.\x0a10.\x20After\x20completing\x20the\x20verification,\x20evaluate\x20whether\x20the\x20result\x20adequately\x20verifies\x20the\x20scenario','rpvOG','cwd','khzau','rzHmF','short','capture\x20key\x20step\x20`','playwright_cli_tracing_stop','\x20snapshot\x20--filename\x20','PepjR','xWWit','IAkiU','\x0a\x0a##\x20Critical:\x20Early\x20Error\x20Detection\x0aAfter\x20step\x202\x20(taking\x20initial\x20snapshot),\x20IMMEDIATELY\x20check\x20for\x20blocking\x20HTTP\x20errors:\x0a\x0a**Blocking\x20errors\x20to\x20detect:**\x0a-\x20HTTP\x20404:\x20\x22404\x22,\x20\x22Not\x20Found\x22,\x20\x22Page\x20not\x20found\x22,\x20\x22does\x20not\x20exist\x22\x0a-\x20HTTP\x20500:\x20\x22500\x22,\x20\x22Internal\x20Server\x20Error\x22,\x20\x22Server\x20Error\x22,\x20\x22Something\x20went\x20wrong\x22\x0a-\x20HTTP\x20400:\x20\x22400\x22,\x20\x22Bad\x20Request\x22,\x20\x22Invalid\x20request\x22\x0a\x0a**Also\x20check\x20for:**\x0a-\x20Framework\x20error\x20pages\x20(Next.js\x20error\x20boundary,\x20React\x20error\x20page,\x20\x22Application\x20error\x22)\x0a-\x20Completely\x20blank/empty\x20pages\x20with\x20no\x20content\x0a-\x20\x22Cannot\x20GET\x20/path\x22\x20messages\x0a\x0a**If\x20ANY\x20blocking\x20error\x20is\x20detected:**\x0a1.\x20DO\x20NOT\x20continue\x20with\x20the\x20task\x0a2.\x20Return\x20IMMEDIATELY\x20with\x20evaluation:\x20\x22blocked\x22\x0a3.\x20Set\x20evaluationReason\x20to\x20describe\x20the\x20specific\x20error\x20(e.g.,\x20\x22HTTP\x20404\x20-\x20Page\x20not\x20found\x20at\x20/dashboard\x22)\x0a4.\x20Include\x20the\x20error\x20in\x20issues\x20array\x20with\x20severity:\x20\x22BLOCKER\x22\x20and\x20appropriate\x20type\x20(HTTP_404,\x20HTTP_500,\x20HTTP_400,\x20or\x20NAVIGATION_ERROR)\x0a\x0aThis\x20early\x20exit\x20prevents\x20wasting\x20time\x20on\x20tasks\x20that\x20cannot\x20succeed\x20due\x20to\x20fundamental\x20errors.','...','start\x20tracing','BBlci','You\x20are\x20a\x20Feature\x20Review\x20Verifier.\x20Your\x20job\x20is\x20to\x20verify\x20a\x20scenario\x20by\x20executing\x20a\x20UI\x20flow\x20and\x20evaluating\x20whether\x20it\x20adequately\x20completes\x20the\x20scenario.\x0a\x0a##\x20Scenario\x20to\x20Verify\x0a','353824wPoDfv','lvrHF','01_mozilla-homepage.png','\x20screenshot\x20--filename\x20','tracing-stop','test','\x22,\x20\x22','key_04_success-state.png','QenKC','mtimeMs','DARXT','click\x20','log','unaddressedComments','opbdG','305603YhLeEd','tool_input','name','capture\x20step\x20`','click','tab-select','open\x20new\x20tab','notes','\x20tracing-start`,\x20then\x20`','\x0a\x0a##\x20Additional\x20Notes\x0a','string','description','xRjdc','replace','PostToolUseFailure','map','length','agtin','\x22\x0a-\x20Number\x20prefixes\x20(01_,\x2002_,\x20etc.)\x20help\x20maintain\x20chronological\x20order\x0a-\x20For\x20KEY\x20MOMENTS\x20that\x20prove\x20the\x20scenario\x20is\x20complete,\x20prefix\x20with\x20\x22key_\x22:\x20\x22','VUJyZ','03_result-visible.png','NgWFl','GQvPl','YZVEE','capture\x20screenshot','\x5c$&','77xFMzOo','ITrhh','You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Playwright\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a','PcpfE','UmBtE','fill','.\x0aThis\x20is\x20NOT\x20a\x20web\x20app\x20—\x20there\x20is\x20no\x20URL\x20to\x20navigate\x20to.\x20The\x20app\x20is\x20already\x20running\x20and\x20connected.','video-start','DEBUG','(?:^|\x5cs)','\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'];_0x3cab=function(){return _0x3f1256;};return _0x3cab();}function formatPlaywrightCliLog(_0x1b5e90,_0x4fb81f){const _0x49d484=_0x579f,_0x364fcb={'bmdDC':_0x49d484(0x195),'oiHoY':'open\x20browser','nWShZ':'tracing-start','opbdG':_0x49d484(0x148),'xkgvw':_0x49d484(0x14f),'cNHPf':_0x49d484(0x17b),'hVBWI':_0x49d484(0x196),'rzHmF':_0x49d484(0x19e),'pDBtY':_0x49d484(0x1b8),'LLGKG':'snapshot','rpvOG':function(_0x521354,_0x3400e7){return _0x521354(_0x3400e7);},'QenKC':'capture\x20snapshot','uhCCo':function(_0x3b8d39,_0x4dd0ab){return _0x3b8d39(_0x4dd0ab);},'lvrHF':'screenshot','aKlsn':_0x49d484(0x172),'PzKsV':function(_0x2f4f14,_0x276f30){return _0x2f4f14(_0x276f30);},'PaOXh':function(_0xb7e4ae,_0x2624fd,_0xa4a91e){return _0xb7e4ae(_0x2624fd,_0xa4a91e);},'ITrhh':'run-code','BBlci':'tab-new','jFJEd':_0x49d484(0x1bc)};switch(_0x4fb81f){case _0x364fcb['bmdDC']:{const _0x170c6d=extractFirstCommandArgument(_0x1b5e90,_0x4fb81f);return _0x170c6d?_0x49d484(0x183)+_0x170c6d:_0x364fcb[_0x49d484(0x19a)];}case _0x364fcb[_0x49d484(0x187)]:return _0x364fcb[_0x49d484(0x159)];case _0x364fcb['xkgvw']:return _0x49d484(0x18c);case _0x364fcb[_0x49d484(0x1be)]:return _0x364fcb[_0x49d484(0x19f)];case _0x364fcb[_0x49d484(0x13e)]:return _0x364fcb['pDBtY'];case _0x364fcb['LLGKG']:{const _0x216959=_0x364fcb[_0x49d484(0x13b)](extractFilenameOption,_0x1b5e90);if(!_0x216959)return _0x364fcb[_0x49d484(0x153)];const {name:_0x42aa0a}=_0x364fcb['uhCCo'](toStepDisplayName,_0x216959);return'capture\x20snapshot\x20`'+_0x42aa0a+'`';}case _0x364fcb[_0x49d484(0x14c)]:{const _0x1c8ea9=_0x364fcb['rpvOG'](extractFilenameOption,_0x1b5e90);if(!_0x1c8ea9)return _0x364fcb[_0x49d484(0x1a2)];const {name:_0x51a607,isKeyStep:_0x59fae6}=toStepDisplayName(_0x1c8ea9);return _0x59fae6?_0x49d484(0x140)+_0x51a607+'`':_0x49d484(0x15d)+_0x51a607+'`';}case _0x49d484(0x15e):return _0x49d484(0x156)+_0x364fcb[_0x49d484(0x1a5)](formatCommandTarget,_0x364fcb['PaOXh'](extractFirstCommandArgument,_0x1b5e90,_0x4fb81f));case'check':return'check\x20'+formatCommandTarget(extractFirstCommandArgument(_0x1b5e90,_0x4fb81f));case _0x49d484(0x179):return _0x49d484(0x1b4)+formatCommandTarget(_0x364fcb['PaOXh'](extractFirstCommandArgument,_0x1b5e90,_0x4fb81f));case'press':return _0x49d484(0x197)+_0x364fcb[_0x49d484(0x190)](formatCommandTarget,_0x364fcb[_0x49d484(0x138)](extractFirstCommandArgument,_0x1b5e90,_0x4fb81f));case _0x364fcb[_0x49d484(0x175)]:return'run\x20custom\x20Playwright\x20code';case _0x364fcb[_0x49d484(0x149)]:{const _0x27496c=extractFirstCommandArgument(_0x1b5e90,_0x4fb81f);return _0x27496c?'open\x20new\x20tab\x20'+_0x27496c:_0x49d484(0x160);}case _0x49d484(0x15f):{const _0x4d16ee=_0x364fcb[_0x49d484(0x138)](extractFirstCommandArgument,_0x1b5e90,_0x4fb81f);return _0x4d16ee?'select\x20tab\x20'+_0x4d16ee:_0x364fcb[_0x49d484(0x1ae)];}default:return _0x4fb81f;}}function extractPlaywrightCliToolDescription(_0x365b58){const _0x1f98ca=_0x579f,_0x377311={'DARXT':function(_0x228378,_0x4547e3){return _0x228378!==_0x4547e3;}},_0x877323=_0x365b58['description'];if(_0x377311[_0x1f98ca(0x155)](typeof _0x877323,_0x1f98ca(0x164)))return null;const _0x2a4d4e=_0x877323['trim']()['replace'](/\s+/g,'\x20');return _0x2a4d4e['length']>0x0?_0x2a4d4e:null;}export function formatPlaywrightCliConsoleLogMessage(_0x2de0f3,_0x15bd21,_0x8fde14){const _0x52ab03=_0x579f,_0x149489={'PZsmK':function(_0x427b63,_0x3f22d6,_0x50f95f){return _0x427b63(_0x3f22d6,_0x50f95f);},'zTKAj':function(_0x4a1605,_0xac16ed){return _0x4a1605(_0xac16ed);}},_0x2ddf74=_0x149489['PZsmK'](formatPlaywrightCliLog,_0x15bd21,_0x8fde14),_0x597a35=_0x149489['zTKAj'](extractPlaywrightCliToolDescription,_0x2de0f3);if(!_0x597a35)return'[playwright-cli]\x20'+_0x2ddf74;if(process['env'][_0x52ab03(0x17c)])return'[ranger-verification-agent]\x20'+_0x597a35+'\x20('+_0x2ddf74+')';return _0x52ab03(0x184)+_0x597a35;}export function buildVerifyFeatureCliDebugPrompt(_0x5ee63a,_0x14bbc8){const _0x253242=_0x579f,_0x35167b={'tllLQ':function(_0x26b0d0,_0x33ea97,_0x582b2f){return _0x26b0d0(_0x33ea97,_0x582b2f);},'xRjdc':'02_learn-more.yml','TPHBz':'03_learn-more.png','NgWFl':function(_0xed4e12,_0x479ba3){return _0xed4e12(_0x479ba3);}},_0x138e84=buildCliArtifactPath(_0x14bbc8,'00_mozilla-homepage.yml'),_0x61b43b=_0x35167b['tllLQ'](buildCliArtifactPath,_0x14bbc8,_0x253242(0x14d)),_0x3f11d8=buildCliArtifactPath(_0x14bbc8,_0x35167b[_0x253242(0x166)]),_0x38135c=_0x35167b['tllLQ'](buildCliArtifactPath,_0x14bbc8,_0x35167b['TPHBz']),_0x13b660=quoteShellArg(_0x138e84),_0x1d6b49=_0x35167b[_0x253242(0x16f)](quoteShellArg,_0x61b43b),_0x176a6b=quoteShellArg(_0x3f11d8),_0x36bba3=_0x35167b['NgWFl'](quoteShellArg,_0x38135c);return _0x253242(0x176)+_0x5ee63a+'\x0a\x0a1.\x20Run\x20`'+_0x5ee63a+_0x253242(0x17f)+_0x5ee63a+'\x20tracing-start`\x0a3.\x20Run\x20`'+_0x5ee63a+'\x20video-start`\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x14bbc8+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a5.\x20Run\x20`'+_0x5ee63a+_0x253242(0x142)+_0x13b660+'`\x0a5.\x20Read\x20the\x20snapshot\x20file\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20reference\x0a6.\x20Run\x20`'+_0x5ee63a+'\x20screenshot\x20--filename\x20'+_0x1d6b49+'`\x0a7.\x20Click\x20the\x20\x22Learn\x20More\x22\x20link\x20with\x20Playwright\x20CLI\x0a8.\x20Run\x20`'+_0x5ee63a+_0x253242(0x142)+_0x176a6b+'`\x0a9.\x20Run\x20`'+_0x5ee63a+_0x253242(0x14e)+_0x36bba3+_0x253242(0x185);}export function buildVerifyFeatureCliPrompt(_0x547c51){const _0x48c4b5=_0x579f,_0x32e98e={'ucBZy':'en-US','Daykv':_0x48c4b5(0x13f),'koiif':'Reviewer','khzau':function(_0x26110d,_0xf4fa46,_0x374f2){return _0x26110d(_0xf4fa46,_0x374f2);},'zaofY':_0x48c4b5(0x1aa),'xeMQV':function(_0x155efb,_0x19292f){return _0x155efb(_0x19292f);},'dmWNK':function(_0x20a27e,_0x221285){return _0x20a27e>_0x221285;},'HwnGP':function(_0x1d5278,_0x599d59,_0x2dc21a){return _0x1d5278(_0x599d59,_0x2dc21a);},'ypVOX':_0x48c4b5(0x16e)},{checklistItem:_0x348a8a,itemFeedback:_0x59ee26,taskDescription:_0x308155,cliCommandPrefix:_0x449502,cliArtifactDir:_0x154267,isCdpMode:_0xadb6f9,url:_0x370015,cdpEndpoint:_0x5180c3,loginInstructions:_0x3e6564}=_0x547c51,_0x50ab21=_0x32e98e[_0x48c4b5(0x13d)](buildCliArtifactPath,_0x154267,_0x32e98e['zaofY']),_0x12b999=buildCliArtifactPath(_0x154267,_0x48c4b5(0x1bd)),_0x40af24=buildCliArtifactPath(_0x154267,_0x48c4b5(0x198)),_0x24934c=_0x32e98e['khzau'](buildCliArtifactPath,_0x154267,'01_initial-state.png'),_0xafae38=quoteShellArg(_0x50ab21),_0x2756f7=quoteShellArg(_0x12b999),_0x485b15=_0x32e98e['xeMQV'](quoteShellArg,_0x40af24),_0xc7b746=quoteShellArg(_0x24934c),_0x74525a=_0x348a8a['notes']?_0x48c4b5(0x163)+_0x348a8a[_0x48c4b5(0x161)]:'';let _0x49609c='';if(_0x59ee26&&_0x32e98e[_0x48c4b5(0x1b6)](_0x59ee26[_0x48c4b5(0x158)]['length'],0x0)){const _0x2a978a=_0x59ee26[_0x48c4b5(0x158)][_0x48c4b5(0x169)](_0x35d5e7=>{const _0x14865c=_0x48c4b5,_0x541db1=new Date(_0x35d5e7['createdAt'])[_0x14865c(0x1b2)](_0x32e98e[_0x14865c(0x18e)],{'month':_0x32e98e['Daykv'],'day':'numeric'}),_0x3f90d1=_0x35d5e7[_0x14865c(0x182)]||_0x35d5e7['authorEmail']||_0x32e98e['koiif'],_0x2819bf=_0x35d5e7[_0x14865c(0x180)]?_0x14865c(0x1ab)+(_0x35d5e7['domRef']['selector']['split']('\x20>\x20')['pop']()?.['split'](':')[0x0]||'element')+_0x14865c(0x1b1)+(_0x35d5e7['domRef']['textContent']||'')['slice'](0x0,0x32)+'\x22)':'';return'-\x20['+_0x35d5e7['id']+']\x20**'+_0x3f90d1+_0x14865c(0x1af)+_0x541db1+_0x14865c(0x1a8)+_0x35d5e7['content']+'\x22'+_0x2819bf;})['join']('\x0a');_0x49609c=_0x48c4b5(0x1a9)+_0x2a978a;}const _0x5639da=_0x59ee26?.['canonicalFlow']?_0x48c4b5(0x1b0)+_0x59ee26['canonicalFlow']:'',_0x263691=_0xadb6f9?'##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20(Chrome\x20DevTools\x20Protocol)\x20at\x20'+_0x5180c3+_0x48c4b5(0x17a):'CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20'+_0x370015+_0x48c4b5(0x1ad),_0x4cf5b3=_0x370015?_0x32e98e[_0x48c4b5(0x181)](quoteShellArg,_0x370015):'',_0x1dd35d=_0xadb6f9?_0x48c4b5(0x1a3)+_0x449502+'\x20open`,\x20then\x20`'+_0x449502+_0x48c4b5(0x162)+_0x449502+_0x48c4b5(0x17e)+_0x154267+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`'+_0x449502+'\x20snapshot\x20--filename\x20'+_0xafae38+_0x48c4b5(0x19c)+_0x449502+'\x20screenshot\x20--filename\x20'+_0xc7b746+_0x48c4b5(0x1ba)+_0x449502+'\x20run-code\x20\x22<playwright\x20code>\x22`.\x0a7.\x20Do\x20not\x20run\x20`close`,\x20`tracing-stop`,\x20or\x20`video-stop`;\x20the\x20host\x20finalizes\x20the\x20session\x20and\x20artifacts.\x0a8.\x20After\x20completing\x20the\x20verification,\x20evaluate\x20whether\x20the\x20result\x20adequately\x20verifies\x20the\x20scenario':_0x48c4b5(0x1a3)+_0x449502+'\x20open\x20'+_0x4cf5b3+_0x48c4b5(0x1bb)+_0x449502+'\x20tracing-start`,\x20then\x20`'+_0x449502+'\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x154267+_0x48c4b5(0x191)+_0x449502+'\x20snapshot\x20--filename\x20'+_0xafae38+'`\x20and\x20read\x20the\x20snapshot\x20file\x20to\x20inspect\x20the\x20page.\x0a5.\x20**IMMEDIATELY\x20check\x20for\x20blocking\x20HTTP\x20errors\x20before\x20proceeding.**\x0a6.\x20Execute\x20the\x20task\x20step-by-step\x20with\x20Playwright\x20CLI\x20commands.\x0a7.\x20Use\x20`'+_0x449502+_0x48c4b5(0x14e)+_0xc7b746+'`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a8.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`'+_0x449502+_0x48c4b5(0x13a),_0x138204=_0xadb6f9?'\x0a\x0a##\x20Critical:\x20Early\x20Error\x20Detection\x0aAfter\x20taking\x20the\x20initial\x20snapshot,\x20IMMEDIATELY\x20check\x20for\x20blocking\x20errors:\x0a\x0a**Blocking\x20errors\x20to\x20detect:**\x0a-\x20Crash\x20or\x20error\x20dialogs\x20(\x22An\x20error\x20occurred\x22,\x20\x22Something\x20went\x20wrong\x22,\x20unhandled\x20exception\x20messages)\x0a-\x20Blank\x20or\x20empty\x20window\x20with\x20no\x20rendered\x20content\x0a-\x20Framework\x20error\x20boundaries\x20(React\x20error\x20page,\x20Electron\x20crash\x20reporter)\x0a-\x20Unresponsive\x20or\x20frozen\x20UI\x20(no\x20interactive\x20elements\x20in\x20snapshot)\x0a\x0a**If\x20ANY\x20blocking\x20error\x20is\x20detected:**\x0a1.\x20DO\x20NOT\x20continue\x20with\x20the\x20task\x0a2.\x20Return\x20IMMEDIATELY\x20with\x20evaluation:\x20\x22blocked\x22\x0a3.\x20Set\x20evaluationReason\x20to\x20describe\x20the\x20specific\x20error\x20(e.g.,\x20\x22App\x20crashed\x20—\x20error\x20dialog\x20visible\x20on\x20launch\x22)\x0a4.\x20Include\x20the\x20error\x20in\x20issues\x20array\x20with\x20severity:\x20\x22BLOCKER\x22\x20and\x20type:\x20\x22APP_ERROR\x22\x0a\x0aThis\x20early\x20exit\x20prevents\x20wasting\x20time\x20on\x20tasks\x20that\x20cannot\x20succeed\x20due\x20to\x20fundamental\x20errors.':_0x48c4b5(0x146),_0x56afdf=_0x3e6564?'\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20you\x20MUST\x20authenticate\x20using\x20these\x20steps:\x0a'+_0x3e6564+'\x0a\x0aAfter\x20completing\x20authentication,\x20proceed\x20with\x20the\x20verification\x20task\x20below.\x0aIf\x20authentication\x20fails,\x20return\x20immediately\x20with\x20evaluation\x20\x22blocked\x22\x20and\x20describe\x20the\x20auth\x20failure.':'';return _0x48c4b5(0x14a)+_0x348a8a[_0x48c4b5(0x165)]+_0x74525a+_0x49609c+_0x5639da+'\x0a\x0a##\x20Task\x20to\x20Execute\x0a'+_0x308155+'\x0a\x0a'+_0x263691+_0x56afdf+'\x0a\x0a'+_0x1dd35d+'\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Playwright\x20CLI\x20commands\x20with\x20this\x20exact\x20prefix:\x0a`'+_0x449502+_0x48c4b5(0x1c0)+_0x154267+'`\x0a-\x20`snapshot\x20--filename\x20'+_0x2756f7+'`\x20writes\x20a\x20YAML\x20snapshot\x20you\x20can\x20read\x20for\x20element\x20refs\x0a-\x20`click\x20<ref>`,\x20`fill\x20<ref>\x20\x22text\x22`,\x20`check\x20<ref>`,\x20`press\x20Enter`\x0a-\x20`tab-list`,\x20`tab-select\x20<index>`,\x20`tab-new\x20<url>`\x0a-\x20`screenshot\x20--filename\x20'+_0x485b15+'`\x0a-\x20`run-code\x20\x22await\x20page.waitForTimeout(1000)\x22`\x20for\x20waits\x20or\x20small\x20custom\x20checks\x0a\x0a##\x20Screenshot\x20Guidelines\x20-\x20IMPORTANT\x0aTake\x20screenshots\x20throughout\x20the\x20verification\x20flow\x20so\x20a\x20human\x20can\x20review\x20it\x20for\x20completeness.\x20Screenshots\x20are\x20your\x20evidence\x20trail.\x0a\x0a**When\x20to\x20take\x20screenshots\x20(use\x20Playwright\x20CLI\x20screenshot):**\x0a-\x20After\x20the\x20initial\x20snapshot\x20(capture\x20starting\x20state)\x0a-\x20Before\x20and\x20after\x20clicking\x20buttons\x20or\x20submitting\x20forms\x0a-\x20When\x20important\x20UI\x20elements\x20appear\x20(modals,\x20notifications,\x20loading\x20states)\x0a-\x20After\x20navigating\x20to\x20different\x20views\x20or\x20pages\x0a-\x20When\x20verifying\x20specific\x20elements\x20exist\x0a-\x20At\x20the\x20final\x20state\x20showing\x20the\x20completed\x20action\x0a\x0a**Screenshot\x20naming:**\x0a-\x20Use\x20descriptive\x20filenames\x20under\x20`'+_0x154267+'`:\x20\x22'+_0x24934c+_0x48c4b5(0x151)+buildCliArtifactPath(_0x154267,'02_button-clicked.png')+'\x22,\x20\x22'+_0x32e98e['HwnGP'](buildCliArtifactPath,_0x154267,_0x32e98e['ypVOX'])+_0x48c4b5(0x16c)+buildCliArtifactPath(_0x154267,_0x48c4b5(0x152))+'\x22\x0a-\x20The\x20\x22key_\x22\x20prefix\x20marks\x20screenshots\x20as\x20high-priority\x20evidence\x20for\x20human\x20reviewers\x0a\x0a**Aim\x20for\x203-6\x20screenshots\x20per\x20verification**\x20to\x20document\x20the\x20complete\x20flow.\x20Mark\x201-2\x20of\x20the\x20most\x20important\x20ones\x20with\x20the\x20\x22key_\x22\x20prefix.\x0a'+_0x138204+'\x0a##\x20Evaluation\x20Criteria\x0a-\x20VERIFIED:\x20The\x20task\x20completed\x20successfully\x20and\x20the\x20scenario\x20requirements\x20are\x20fully\x20met\x0a-\x20PARTIAL:\x20The\x20task\x20partially\x20completed\x20but\x20some\x20aspects\x20of\x20the\x20scenario\x20are\x20not\x20verified\x0a-\x20BLOCKED:\x20A\x20blocking\x20issue\x20(bug,\x20error,\x20missing\x20feature)\x20prevents\x20completion\x0a-\x20FAILED:\x20The\x20task\x20could\x20not\x20be\x20completed\x20due\x20to\x20errors\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format\x20with\x20your\x20evaluation.';}export function summarizeVerifyFeatureCliCommandAvailability(_0x560167){const _0x35ed85=_0x579f,_0x18ef15=[..._0x560167[_0x35ed85(0x1a4)]()][_0x35ed85(0x18b)]();let _0x329bac=0x0;for(const _0x1bd0cf of _0x560167['values']()){_0x329bac+=_0x1bd0cf;}return{'cliCommandCount':_0x329bac,'cliCommandsSeen':_0x18ef15,'noCliCommandsCalled':_0x329bac===0x0};}export function createVerifyFeatureCliHooks(_0x2487cb){const _0x11be17=_0x579f,_0x207a8a={'PqzNh':'PostToolUse','vIGlQ':function(_0x107aae,_0x1fa48a){return _0x107aae(_0x1fa48a);},'eNJsU':function(_0x5493ca,_0x2b3274){return _0x5493ca+_0x2b3274;},'HTRMc':'tool_call','PcpfE':function(_0x24ba70,_0x598285){return _0x24ba70(_0x598285);},'pdeee':'snapshot','iezRO':function(_0x426650,_0x29c5da,_0x3f456f,_0x2aa8c2){return _0x426650(_0x29c5da,_0x3f456f,_0x2aa8c2);},'YZVEE':_0x11be17(0x168),'xWWit':function(_0xf40c7f,_0x2e1986){return _0xf40c7f!==_0x2e1986;},'GQvPl':_0x11be17(0x189),'OdJMp':_0x11be17(0x18a)},_0x14ced5=new Map(),_0x2ec0a2=async _0x18785f=>{const _0x130057=_0x11be17;if(_0x18785f[_0x130057(0x1ac)]!==_0x207a8a['PqzNh'])return{};const _0xbf415c=_0x18785f;if(_0xbf415c[_0x130057(0x19b)]!==_0x130057(0x1a7))return{};const _0xb2f3c3=_0xbf415c[_0x130057(0x15b)],_0x37bf10=extractBashCommand(_0xb2f3c3);if(!_0x37bf10)return{};const _0x504107=_0x207a8a['vIGlQ'](parsePlaywrightCliCommand,_0x37bf10);if(!_0x504107)return{};return _0x14ced5[_0x130057(0x1b5)](_0x504107,_0x207a8a['eNJsU'](_0x14ced5[_0x130057(0x199)](_0x504107)||0x0,0x1)),_0x2487cb[_0x130057(0x193)](_0x207a8a[_0x130057(0x1c1)],{'transport':'playwright-cli','toolName':_0x504107}),_0x2487cb['trackPhaseEnd'](_0x207a8a['HTRMc'],{'transport':'playwright-cli','toolName':_0x504107,'bashCommandPreview':_0x207a8a[_0x130057(0x177)](truncatePreview,_0x37bf10)}),_0x504107!==_0x207a8a['pdeee']&&console[_0x130057(0x157)](_0x207a8a['iezRO'](formatPlaywrightCliConsoleLogMessage,_0xb2f3c3,_0x37bf10,_0x504107)),{};},_0x4c1773=async _0x5e33b6=>{const _0x551805=_0x11be17;if(_0x5e33b6[_0x551805(0x1ac)]!==_0x207a8a[_0x551805(0x171)])return{};const _0xbede37=_0x5e33b6;if(_0x207a8a[_0x551805(0x144)](_0xbede37['tool_name'],'Bash'))return{};return await _0x2487cb['trackPhaseError'](_0x207a8a[_0x551805(0x170)],_0xbede37['error'],{'transport':_0x207a8a[_0x551805(0x18d)],'toolName':'Bash'}),{};};return{'postToolUseHook':_0x2ec0a2,'postToolUseFailureHook':_0x4c1773,'commandCounts':_0x14ced5};}async function runPlaywrightCliLifecycleCommand(_0x4b44e2){const _0x5237fc=_0x579f,_0x389cee={'JKWkm':function(_0x33ab15,_0x3b830d,_0x2a6bf2){return _0x33ab15(_0x3b830d,_0x2a6bf2);},'saEgq':function(_0x3e4c71,_0x31c589,_0x393dda){return _0x3e4c71(_0x31c589,_0x393dda);}},{sessionId:_0xf2711a,configPath:_0x44a9a5,commandArgs:_0x31d2c7,env:_0x2fa292,telemetry:_0x289a64,phase:_0x9ae311,metadata:_0x2f6df3,timeoutMs:_0x4df255}=_0x4b44e2;_0x289a64[_0x5237fc(0x193)](_0x9ae311,_0x2f6df3);try{const _0x170d8d=await runPlaywrightCliCommand({'sessionId':_0xf2711a,'configPath':_0x44a9a5,'commandArgs':_0x31d2c7,'cwd':process[_0x5237fc(0x13c)](),'env':_0x2fa292,'timeoutMs':_0x4df255??PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS});_0x289a64['trackPhaseEnd'](_0x9ae311,{..._0x2f6df3,'subcommand':_0x170d8d['invocation'][_0x5237fc(0x1b7)],'stdoutPreview':_0x389cee['JKWkm'](truncatePreview,_0x170d8d['stdout'],0x7d0),'stderrPreview':_0x389cee[_0x5237fc(0x188)](truncatePreview,_0x170d8d['stderr'],0x7d0)});}catch(_0x3be32b){await _0x289a64[_0x5237fc(0x1bf)](_0x9ae311,_0x3be32b,_0x2f6df3);throw _0x3be32b;}}export async function finalizeVerifyFeatureCliSession(_0xcd533b){const _0x28c3b1=_0x579f,_0xc868ed={'agtin':_0x28c3b1(0x141),'XmVCM':'session-recording.webm','LVpuw':'playwright_cli_close','EwYXb':function(_0x1e1029,_0x1a4f56){return _0x1e1029(_0x1a4f56);}},{telemetry:_0x27080b,sessionId:_0x3d9968,configPath:_0x5775d1,cliArtifactDir:_0x318fe5,env:_0x2603f1,transportMetadata:_0x41c1c1}=_0xcd533b,_0x44af75=[{'phase':_0xc868ed[_0x28c3b1(0x16b)],'commandArgs':[_0x28c3b1(0x14f)]},{'phase':'playwright_cli_video_stop','commandArgs':[_0x28c3b1(0x19e),_0x28c3b1(0x1a0)+buildCliArtifactPath(_0x318fe5,_0xc868ed['XmVCM'])]},{'phase':_0xc868ed['LVpuw'],'commandArgs':['close']}];for(const _0x54e7eb of _0x44af75){try{await _0xc868ed['EwYXb'](runPlaywrightCliLifecycleCommand,{'sessionId':_0x3d9968,'configPath':_0x5775d1,'commandArgs':[..._0x54e7eb['commandArgs']],'env':_0x2603f1,'telemetry':_0x27080b,'phase':_0x54e7eb['phase'],'metadata':_0x41c1c1});}catch{}}}export async function loadVerifyFeatureCliTraceUploadArtifact(_0x58cdfb){const _0x22adf9=_0x579f,_0x43fd9c={'rgjgF':'trace.trace.zip','IAkiU':function(_0x2ccb0e,_0x105295,_0x18cc3f){return _0x2ccb0e(_0x105295,_0x18cc3f);}},_0x37cf6f=[_0x22adf9(0x186),_0x43fd9c['rgjgF']];for(const _0x4ea16b of _0x37cf6f){const _0x213ced=_0x43fd9c[_0x22adf9(0x145)](join,_0x58cdfb,_0x4ea16b);try{return{'buffer':await readFile(_0x213ced),'source':_0x213ced};}catch{}}return null;}export async function rehomeVerifyFeatureCliArtifacts(_0x2f12ac){const _0x3d0106=_0x579f,_0x51b86b={'UmBtE':function(_0x5630f6,_0x2b86d0,_0x11b237){return _0x5630f6(_0x2b86d0,_0x11b237);},'gEODJ':function(_0x432748,_0x18d9c0){return _0x432748<_0x18d9c0;},'DMwRJ':function(_0xb6c80f,_0x4eaf8a){return _0xb6c80f+_0x4eaf8a;},'VUJyZ':function(_0x2dd009,_0x6cf8dd,_0x138b0f){return _0x2dd009(_0x6cf8dd,_0x138b0f);}},{cwd:_0x5370d6,cliArtifactDir:_0x2efe0c,startTime:_0x312376}=_0x2f12ac,_0x1e237=[];await _0x51b86b['UmBtE'](mkdir,_0x2efe0c,{'recursive':!![]});const _0x3bad19=await readdir(_0x5370d6,{'withFileTypes':!![]});for(const _0x232845 of _0x3bad19){if(!_0x232845[_0x3d0106(0x1b9)]()||!VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN['test'](_0x232845[_0x3d0106(0x15c)]))continue;const _0x48cf37=join(_0x5370d6,_0x232845[_0x3d0106(0x15c)]),_0x3bea30=await stat(_0x48cf37);if(_0x51b86b[_0x3d0106(0x1a6)](_0x51b86b['DMwRJ'](_0x3bea30[_0x3d0106(0x154)],0x7d0),_0x312376))continue;const _0x99e40c=_0x51b86b[_0x3d0106(0x178)](buildCliArtifactPath,_0x2efe0c,_0x232845[_0x3d0106(0x15c)]);if(_0x48cf37===_0x99e40c)continue;await _0x51b86b[_0x3d0106(0x16d)](rename,_0x48cf37,_0x99e40c),_0x1e237[_0x3d0106(0x1a1)](_0x232845['name']);}return _0x1e237['sort']();}
|
|
@@ -8,27 +8,21 @@ After implementing code for a scenario, verify it works in the browser. This cre
|
|
|
8
8
|
ranger-cli go --scenario <N> --notes "<what to verify>"
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
## Profile resolution
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
The fastest path: when the user gives you a username + password (in chat or in a `.env`), set them inline and run `go`. The CLI handles the rest — no `profile add` step.
|
|
13
|
+
When the user gives you a username + password, set them inline and run `go` — no `profile add` step:
|
|
16
14
|
|
|
17
15
|
```bash
|
|
18
16
|
RANGER_TEST_USERNAME='alice@example.com' RANGER_TEST_PASSWORD='hunter2' \
|
|
19
17
|
ranger-cli go --url <target> --notes '<what to verify>'
|
|
20
18
|
```
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
`go` resolves which profile to use in this order:
|
|
20
|
+
Resolution order:
|
|
25
21
|
|
|
26
22
|
1. `--profile <name>` flag (or `RANGER_PROFILE` env var)
|
|
27
|
-
2.
|
|
28
|
-
3. `RANGER_TEST_USERNAME` (
|
|
29
|
-
4. The org's
|
|
30
|
-
|
|
31
|
-
For pinned-session use (`RANGER_SESSION_STATE_PATH=/path/to/storageState.json`), the CLI uses that file directly and skips both cloud-side login and the `sessionDeps` freshness check.
|
|
23
|
+
2. Saved active profile (`ranger-cli profile use <name>`)
|
|
24
|
+
3. `RANGER_TEST_USERNAME` (reuses or creates a matching profile)
|
|
25
|
+
4. The org's sole profile when exactly one exists
|
|
32
26
|
|
|
33
27
|
## Required: Active Feature Review
|
|
34
28
|
|