@ranger-testing/ranger-cli 2.5.4-alpha.1f7a251-7 → 2.5.4-alpha.27e3ee8-11

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.
Files changed (78) hide show
  1. package/build/cli.js +1 -1
  2. package/build/commands/addEnv.js +1 -1
  3. package/build/commands/authEncrypt.js +1 -1
  4. package/build/commands/clean.js +1 -1
  5. package/build/commands/config.js +1 -1
  6. package/build/commands/env.js +1 -1
  7. package/build/commands/feature.js +1 -1
  8. package/build/commands/hook.js +1 -1
  9. package/build/commands/hooks/autoPrompt.js +1 -1
  10. package/build/commands/hooks/disable.js +1 -1
  11. package/build/commands/hooks/enable.js +1 -1
  12. package/build/commands/hooks/exitPlanMode.js +1 -1
  13. package/build/commands/hooks/index.js +1 -1
  14. package/build/commands/hooks/output.js +1 -1
  15. package/build/commands/hooks/planReminder.js +1 -1
  16. package/build/commands/hooks/planStart.js +1 -1
  17. package/build/commands/hooks/postEdit.js +1 -1
  18. package/build/commands/hooks/preCompact.js +1 -1
  19. package/build/commands/hooks/sessionEnd.js +1 -1
  20. package/build/commands/hooks/sessionStart.js +1 -1
  21. package/build/commands/hooks/stopHook.js +1 -1
  22. package/build/commands/index.js +1 -1
  23. package/build/commands/login.js +1 -1
  24. package/build/commands/mcpBootstrap.js +1 -1
  25. package/build/commands/migrateProfile.js +1 -1
  26. package/build/commands/setup/claude.js +1 -1
  27. package/build/commands/setup/opencode.js +1 -1
  28. package/build/commands/setupCi.js +1 -1
  29. package/build/commands/skillup.js +1 -1
  30. package/build/commands/start.js +1 -1
  31. package/build/commands/status.js +1 -1
  32. package/build/commands/update.js +1 -1
  33. package/build/commands/updateEnv.js +1 -1
  34. package/build/commands/useEnv.js +1 -1
  35. package/build/commands/utils/activeProfile.js +1 -1
  36. package/build/commands/utils/agentEnv.js +1 -1
  37. package/build/commands/utils/browserSessionsApi.js +1 -1
  38. package/build/commands/utils/claudeConfig.js +1 -1
  39. package/build/commands/utils/claudeOverrideSettings.js +1 -1
  40. package/build/commands/utils/claudePlugin.js +1 -1
  41. package/build/commands/utils/cloudProfile.js +1 -1
  42. package/build/commands/utils/cloudProfileSession.js +1 -1
  43. package/build/commands/utils/crypto.js +1 -1
  44. package/build/commands/utils/desirePathLog.js +1 -1
  45. package/build/commands/utils/deviceAuth.js +1 -1
  46. package/build/commands/utils/environment.js +1 -1
  47. package/build/commands/utils/featureApi.js +1 -1
  48. package/build/commands/utils/fixWebmDuration.js +1 -1
  49. package/build/commands/utils/gitTracked.js +1 -1
  50. package/build/commands/utils/keychain.js +1 -1
  51. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  52. package/build/commands/utils/matchAuthEnvironment.js +1 -1
  53. package/build/commands/utils/mcpImageBase64.js +1 -1
  54. package/build/commands/utils/model.js +1 -1
  55. package/build/commands/utils/opencodeConfig.js +1 -1
  56. package/build/commands/utils/playwrightCli.js +1 -1
  57. package/build/commands/utils/profileMessages.js +1 -1
  58. package/build/commands/utils/profileSetupBanner.js +1 -1
  59. package/build/commands/utils/projectsConfig.js +1 -1
  60. package/build/commands/utils/rangerConfig.js +1 -1
  61. package/build/commands/utils/rangerRoot.js +1 -1
  62. package/build/commands/utils/resolveProfileContext.js +1 -1
  63. package/build/commands/utils/resolveProfileUrl.js +1 -1
  64. package/build/commands/utils/retry.js +1 -1
  65. package/build/commands/utils/sessionCache.js +1 -1
  66. package/build/commands/utils/settings.js +1 -1
  67. package/build/commands/utils/skillContent.js +1 -1
  68. package/build/commands/utils/skills.js +1 -1
  69. package/build/commands/utils/stitchWebmFiles.js +1 -1
  70. package/build/commands/utils/telemetry.js +1 -1
  71. package/build/commands/utils/tokenRefresh.js +1 -1
  72. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  73. package/build/commands/utils/userApi.js +1 -1
  74. package/build/commands/utils/version.js +1 -1
  75. package/build/commands/verifyFeature.js +1 -1
  76. package/build/commands/verifyFeatureCli.js +1 -1
  77. package/build/skills/ranger/verify.md +6 -12
  78. 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 _0x3113(_0x3e3c53,_0x53fa0b){_0x3e3c53=_0x3e3c53-0x10a;const _0x58185d=_0x5818();let _0x31133d=_0x58185d[_0x3e3c53];return _0x31133d;}(function(_0x2b303a,_0x1b08a4){const _0x4ea188=_0x3113,_0x1e70da=_0x2b303a();while(!![]){try{const _0x75fa45=-parseInt(_0x4ea188(0x135))/0x1+-parseInt(_0x4ea188(0x141))/0x2*(-parseInt(_0x4ea188(0x161))/0x3)+-parseInt(_0x4ea188(0x142))/0x4*(parseInt(_0x4ea188(0x140))/0x5)+parseInt(_0x4ea188(0x16c))/0x6*(-parseInt(_0x4ea188(0x181))/0x7)+parseInt(_0x4ea188(0x132))/0x8+-parseInt(_0x4ea188(0x194))/0x9+parseInt(_0x4ea188(0x189))/0xa*(parseInt(_0x4ea188(0x185))/0xb);if(_0x75fa45===_0x1b08a4)break;else _0x1e70da['push'](_0x1e70da['shift']());}catch(_0x4542d4){_0x1e70da['push'](_0x1e70da['shift']());}}}(_0x5818,0x9bdea));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(_0x57b73b,_0x451484=PLAYWRIGHT_CLI_PREVIEW_LIMIT){const _0xabe00a=_0x3113,_0x11532f={'frSjC':function(_0x1fa18e,_0x48ce3a){return _0x1fa18e>_0x48ce3a;},'yNqgy':function(_0x436078,_0x305680){return _0x436078+_0x305680;},'JpDrD':_0xabe00a(0x115)};return _0x11532f[_0xabe00a(0x13e)](_0x57b73b['length'],_0x451484)?_0x11532f[_0xabe00a(0x12e)](_0x57b73b['slice'](0x0,_0x451484),_0x11532f[_0xabe00a(0x160)]):_0x57b73b;}function buildCliArtifactPath(_0x41a81c,_0x38058d){const _0x2a30d9={'fAHHh':function(_0x29ac1a,_0x45e808,_0x4325bf){return _0x29ac1a(_0x45e808,_0x4325bf);}};return _0x2a30d9['fAHHh'](join,_0x41a81c,_0x38058d);}function toStepDisplayName(_0x43c644){const _0x15fcc0=_0x3113,_0x13e9f3=basename(_0x43c644)['replace'](/\.(?:png|ya?ml)$/i,'')['replace'](/^key_/i,'')['replace'](/^\d+_/,'')[_0x15fcc0(0x113)](/-/g,'\x20');return{'name':_0x13e9f3,'isKeyStep':/^key_/i[_0x15fcc0(0x184)](basename(_0x43c644))};}function extractShellValue(_0xf85638){if(!_0xf85638)return null;return _0xf85638[0x1]??_0xf85638[0x2]??_0xf85638[0x3]??null;}function extractFilenameOption(_0x1d5997){const _0x27f79b=_0x3113,_0x2a5a95={'BRRgi':function(_0xbd5f0a,_0x11f8d7){return _0xbd5f0a(_0x11f8d7);}};return _0x2a5a95['BRRgi'](extractShellValue,_0x1d5997[_0x27f79b(0x11c)](/--filename(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function extractFirstCommandArgument(_0x3f5a48,_0x109cc6){const _0x29e90f=_0x3113,_0x5bb579={'ewnMl':'\x5c$&'},_0x2a591d=_0x109cc6[_0x29e90f(0x113)](/[.*+?^${}()|[\]\\]/g,_0x5bb579[_0x29e90f(0x120)]);return extractShellValue(_0x3f5a48[_0x29e90f(0x11c)](new RegExp('(?:^|\x5cs)'+_0x2a591d+'(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))')));}function formatCommandTarget(_0x33a450){const _0x4929d6=_0x3113,_0x3d911f={'WlUuJ':_0x4929d6(0x11d),'kyHkj':function(_0x2ddd37,_0x47b7f3,_0x49b86e){return _0x2ddd37(_0x47b7f3,_0x49b86e);}};if(!_0x33a450)return _0x3d911f[_0x4929d6(0x172)];if(/^e\d+$/i[_0x4929d6(0x184)](_0x33a450))return _0x4929d6(0x169)+_0x33a450;return JSON[_0x4929d6(0x179)](_0x3d911f[_0x4929d6(0x149)](truncatePreview,_0x33a450,0x78));}function formatPlaywrightCliLog(_0x3eac7b,_0x5385c2){const _0x9a6938=_0x3113,_0x26f5b2={'UxKkV':function(_0xabdb8b,_0xcce35c,_0x297915){return _0xabdb8b(_0xcce35c,_0x297915);},'cclGB':_0x9a6938(0x131),'Wxvuy':_0x9a6938(0x15d),'LURIn':'tracing-stop','mtgwW':'video-start','KrlMb':_0x9a6938(0x10a),'pqnSW':_0x9a6938(0x168),'yJQzj':function(_0x25c33e,_0x5a0fde){return _0x25c33e(_0x5a0fde);},'Amqfv':_0x9a6938(0x190),'klmmi':_0x9a6938(0x122),'uKydz':'fill','lzpkP':function(_0xde73b,_0x20150c){return _0xde73b(_0x20150c);},'tCKiq':_0x9a6938(0x18a),'cvRTU':'tab-new'};switch(_0x5385c2){case _0x9a6938(0x112):{const _0x2d7ce8=_0x26f5b2['UxKkV'](extractFirstCommandArgument,_0x3eac7b,_0x5385c2);return _0x2d7ce8?_0x9a6938(0x110)+_0x2d7ce8:_0x26f5b2['cclGB'];}case'tracing-start':return _0x26f5b2[_0x9a6938(0x193)];case _0x26f5b2['LURIn']:return'stop\x20tracing';case _0x26f5b2['mtgwW']:return _0x26f5b2[_0x9a6938(0x14f)];case _0x26f5b2['pqnSW']:return'stop\x20video\x20recording';case _0x9a6938(0x10b):{const _0x3d4c1c=_0x26f5b2[_0x9a6938(0x12f)](extractFilenameOption,_0x3eac7b);if(!_0x3d4c1c)return _0x9a6938(0x145);const {name:_0x4a0ca9}=_0x26f5b2['yJQzj'](toStepDisplayName,_0x3d4c1c);return'capture\x20snapshot\x20`'+_0x4a0ca9+'`';}case _0x26f5b2['Amqfv']:{const _0x398139=_0x26f5b2[_0x9a6938(0x12f)](extractFilenameOption,_0x3eac7b);if(!_0x398139)return _0x9a6938(0x18d);const {name:_0x1bfc9e,isKeyStep:_0x66c2de}=_0x26f5b2[_0x9a6938(0x12f)](toStepDisplayName,_0x398139);return _0x66c2de?'capture\x20key\x20step\x20`'+_0x1bfc9e+'`':_0x9a6938(0x19a)+_0x1bfc9e+'`';}case _0x26f5b2['klmmi']:return _0x9a6938(0x144)+formatCommandTarget(extractFirstCommandArgument(_0x3eac7b,_0x5385c2));case _0x9a6938(0x175):return'check\x20'+_0x26f5b2[_0x9a6938(0x12f)](formatCommandTarget,_0x26f5b2[_0x9a6938(0x15b)](extractFirstCommandArgument,_0x3eac7b,_0x5385c2));case _0x26f5b2[_0x9a6938(0x13f)]:return'fill\x20'+_0x26f5b2['lzpkP'](formatCommandTarget,_0x26f5b2[_0x9a6938(0x15b)](extractFirstCommandArgument,_0x3eac7b,_0x5385c2));case _0x26f5b2[_0x9a6938(0x118)]:return'press\x20'+formatCommandTarget(extractFirstCommandArgument(_0x3eac7b,_0x5385c2));case _0x9a6938(0x15c):return'run\x20custom\x20Playwright\x20code';case _0x26f5b2[_0x9a6938(0x15f)]:{const _0x4f28f6=extractFirstCommandArgument(_0x3eac7b,_0x5385c2);return _0x4f28f6?'open\x20new\x20tab\x20'+_0x4f28f6:_0x9a6938(0x174);}case'tab-select':{const _0x45350d=_0x26f5b2['UxKkV'](extractFirstCommandArgument,_0x3eac7b,_0x5385c2);return _0x45350d?_0x9a6938(0x126)+_0x45350d:'select\x20tab';}default:return _0x5385c2;}}function extractPlaywrightCliToolDescription(_0x1fb20a){const _0xc3a455=_0x3113,_0xf606e={'MPWHW':_0xc3a455(0x18e),'ujhAl':function(_0x29f925,_0xbd71d5){return _0x29f925>_0xbd71d5;}},_0x499159=_0x1fb20a['description'];if(typeof _0x499159!==_0xf606e['MPWHW'])return null;const _0x8fc188=_0x499159['trim']()[_0xc3a455(0x113)](/\s+/g,'\x20');return _0xf606e['ujhAl'](_0x8fc188['length'],0x0)?_0x8fc188:null;}export function formatPlaywrightCliConsoleLogMessage(_0x1edf08,_0x6aa19c,_0x4586b8){const _0x1a1c0e=_0x3113,_0x4aeb78={'BfTdW':function(_0x1ecda4,_0x47c4a1,_0x1588dc){return _0x1ecda4(_0x47c4a1,_0x1588dc);}},_0x331cc1=_0x4aeb78['BfTdW'](formatPlaywrightCliLog,_0x6aa19c,_0x4586b8),_0x9ea6ab=extractPlaywrightCliToolDescription(_0x1edf08);if(!_0x9ea6ab)return'[playwright-cli]\x20'+_0x331cc1;if(process[_0x1a1c0e(0x11e)][_0x1a1c0e(0x10c)])return _0x1a1c0e(0x195)+_0x9ea6ab+'\x20('+_0x331cc1+')';return'[ranger-verification-agent]\x20'+_0x9ea6ab;}export function buildVerifyFeatureCliDebugPrompt(_0xee13e1,_0x4bb5da){const _0x327ad3=_0x3113,_0x5f2112={'VrpzH':function(_0x1937a3,_0xc56c72,_0x4c3638){return _0x1937a3(_0xc56c72,_0x4c3638);},'WjPIu':'00_mozilla-homepage.yml','Mlceo':'03_learn-more.png','TAmuf':function(_0x59be03,_0x196c75){return _0x59be03(_0x196c75);}},_0x552e82=_0x5f2112['VrpzH'](buildCliArtifactPath,_0x4bb5da,_0x5f2112[_0x327ad3(0x177)]),_0x12b399=_0x5f2112[_0x327ad3(0x156)](buildCliArtifactPath,_0x4bb5da,'01_mozilla-homepage.png'),_0x3ab7dd=buildCliArtifactPath(_0x4bb5da,'02_learn-more.yml'),_0x21829a=buildCliArtifactPath(_0x4bb5da,_0x5f2112['Mlceo']),_0x1089ac=quoteShellArg(_0x552e82),_0x37b4dc=quoteShellArg(_0x12b399),_0x21dec8=quoteShellArg(_0x3ab7dd),_0x55e5d3=_0x5f2112[_0x327ad3(0x196)](quoteShellArg,_0x21829a);return'You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Playwright\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a'+_0xee13e1+_0x327ad3(0x17a)+_0xee13e1+'\x20open\x20https://www.mozilla.org`\x0a2.\x20Run\x20`'+_0xee13e1+'\x20tracing-start`\x0a3.\x20Run\x20`'+_0xee13e1+_0x327ad3(0x19b)+_0x4bb5da+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a5.\x20Run\x20`'+_0xee13e1+_0x327ad3(0x16e)+_0x1089ac+_0x327ad3(0x17b)+_0xee13e1+'\x20screenshot\x20--filename\x20'+_0x37b4dc+_0x327ad3(0x139)+_0xee13e1+'\x20snapshot\x20--filename\x20'+_0x21dec8+_0x327ad3(0x13b)+_0xee13e1+_0x327ad3(0x178)+_0x55e5d3+_0x327ad3(0x183);}export function buildVerifyFeatureCliPrompt(_0x439f47){const _0x405dff=_0x3113,_0x4fca67={'xjVVc':_0x405dff(0x134),'jtoos':_0x405dff(0x10f),'olqmJ':function(_0xc54d03,_0x4e929f,_0x59b0dd){return _0xc54d03(_0x4e929f,_0x59b0dd);},'hxnaq':'01_initial.yml','rwZVP':_0x405dff(0x10d),'VvmcE':'01_initial-state.png','cFtJA':function(_0x342076,_0x27a2de){return _0x342076(_0x27a2de);},'LcBIe':function(_0x1c3596,_0x4b32b2){return _0x1c3596>_0x4b32b2;},'wJVlr':function(_0x3c5bdf,_0x170fbf,_0x5ad2e4){return _0x3c5bdf(_0x170fbf,_0x5ad2e4);}},{checklistItem:_0x4ad9ae,itemFeedback:_0x4bdb60,taskDescription:_0x66a05e,cliCommandPrefix:_0x497b5b,cliArtifactDir:_0x4d53ef,isCdpMode:_0x3fd2cb,url:_0x3a9dda,cdpEndpoint:_0x29d420,loginInstructions:_0x3fba52}=_0x439f47,_0x32aba3=_0x4fca67[_0x405dff(0x16b)](buildCliArtifactPath,_0x4d53ef,_0x4fca67[_0x405dff(0x15a)]),_0x51dae1=_0x4fca67['olqmJ'](buildCliArtifactPath,_0x4d53ef,_0x405dff(0x173)),_0x1d2059=_0x4fca67['olqmJ'](buildCliArtifactPath,_0x4d53ef,_0x4fca67['rwZVP']),_0x5a842b=buildCliArtifactPath(_0x4d53ef,_0x4fca67[_0x405dff(0x111)]),_0x2ebed9=quoteShellArg(_0x32aba3),_0x37b4ac=_0x4fca67[_0x405dff(0x11a)](quoteShellArg,_0x51dae1),_0x2b3c5a=quoteShellArg(_0x1d2059),_0x2ad33e=quoteShellArg(_0x5a842b),_0x5773c6=_0x4ad9ae['notes']?_0x405dff(0x12b)+_0x4ad9ae['notes']:'';let _0x28a97c='';if(_0x4bdb60&&_0x4fca67['LcBIe'](_0x4bdb60['unaddressedComments'][_0x405dff(0x147)],0x0)){const _0x7d36d7=_0x4bdb60[_0x405dff(0x153)][_0x405dff(0x121)](_0x501b61=>{const _0x40cc89=_0x405dff,_0x26eacd=new Date(_0x501b61[_0x40cc89(0x186)])['toLocaleDateString'](_0x40cc89(0x11f),{'month':_0x4fca67['xjVVc'],'day':_0x4fca67[_0x40cc89(0x199)]}),_0x3ca3ed=_0x501b61[_0x40cc89(0x148)]||_0x501b61[_0x40cc89(0x125)]||_0x40cc89(0x159),_0x1cd644=_0x501b61[_0x40cc89(0x157)]?'\x20(on\x20element:\x20<'+(_0x501b61['domRef']['selector'][_0x40cc89(0x171)](_0x40cc89(0x18c))['pop']()?.['split'](':')[0x0]||_0x40cc89(0x152))+_0x40cc89(0x180)+(_0x501b61[_0x40cc89(0x157)]['textContent']||'')[_0x40cc89(0x17d)](0x0,0x32)+'\x22)':'';return'-\x20['+_0x501b61['id']+_0x40cc89(0x187)+_0x3ca3ed+'**\x20('+_0x26eacd+'):\x20\x22'+_0x501b61['content']+'\x22'+_0x1cd644;})[_0x405dff(0x17c)]('\x0a');_0x28a97c='\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'+_0x7d36d7;}const _0x35d157=_0x4bdb60?.[_0x405dff(0x166)]?_0x405dff(0x154)+_0x4bdb60['canonicalFlow']:'',_0x2d413f=_0x3fd2cb?_0x405dff(0x16f)+_0x29d420+_0x405dff(0x18b):'CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20'+_0x3a9dda+_0x405dff(0x114),_0x5d7fd9=_0x3a9dda?_0x4fca67['cFtJA'](quoteShellArg,_0x3a9dda):'',_0x3838ff=_0x3fd2cb?_0x405dff(0x129)+_0x497b5b+_0x405dff(0x158)+_0x497b5b+'\x20tracing-start`,\x20then\x20`'+_0x497b5b+'\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x4d53ef+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`'+_0x497b5b+_0x405dff(0x16e)+_0x2ebed9+'`\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`'+_0x497b5b+_0x405dff(0x178)+_0x2ad33e+'`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a6.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`'+_0x497b5b+'\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':_0x405dff(0x129)+_0x497b5b+'\x20open\x20'+_0x5d7fd9+'`,\x20then\x20`'+_0x497b5b+_0x405dff(0x116)+_0x497b5b+'\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x4d53ef+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`'+_0x497b5b+_0x405dff(0x16e)+_0x2ebed9+'`\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`'+_0x497b5b+'\x20screenshot\x20--filename\x20'+_0x2ad33e+'`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a8.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`'+_0x497b5b+'\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',_0x38fbed=_0x3fd2cb?'\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.':'\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.',_0x2710ed=_0x3fba52?'\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20you\x20MUST\x20authenticate\x20using\x20these\x20steps:\x0a'+_0x3fba52+'\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 _0x405dff(0x13a)+_0x4ad9ae[_0x405dff(0x128)]+_0x5773c6+_0x28a97c+_0x35d157+_0x405dff(0x163)+_0x66a05e+'\x0a\x0a'+_0x2d413f+_0x2710ed+'\x0a\x0a'+_0x3838ff+'\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Playwright\x20CLI\x20commands\x20with\x20this\x20exact\x20prefix:\x0a`'+_0x497b5b+_0x405dff(0x146)+_0x4d53ef+_0x405dff(0x176)+_0x37b4ac+'`\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'+_0x2b3c5a+_0x405dff(0x16a)+_0x4d53ef+_0x405dff(0x11b)+_0x5a842b+'\x22,\x20\x22'+_0x4fca67['olqmJ'](buildCliArtifactPath,_0x4d53ef,'02_button-clicked.png')+_0x405dff(0x13c)+_0x4fca67['wJVlr'](buildCliArtifactPath,_0x4d53ef,_0x405dff(0x123))+_0x405dff(0x191)+_0x4fca67['olqmJ'](buildCliArtifactPath,_0x4d53ef,'key_04_success-state.png')+_0x405dff(0x167)+_0x38fbed+_0x405dff(0x198);}export function summarizeVerifyFeatureCliCommandAvailability(_0x5b702a){const _0x3ba2b9=_0x3113,_0x51409d=[..._0x5b702a[_0x3ba2b9(0x137)]()]['sort']();let _0x2f61f3=0x0;for(const _0x57f675 of _0x5b702a[_0x3ba2b9(0x18f)]()){_0x2f61f3+=_0x57f675;}return{'cliCommandCount':_0x2f61f3,'cliCommandsSeen':_0x51409d,'noCliCommandsCalled':_0x2f61f3===0x0};}export function createVerifyFeatureCliHooks(_0x4633d6){const _0x49ffc1=_0x3113,_0x3de183={'ESvUA':function(_0x5d8a3d,_0x37419a){return _0x5d8a3d!==_0x37419a;},'CReTV':function(_0x499ac3,_0x1ca776){return _0x499ac3!==_0x1ca776;},'mwhUt':function(_0x5552e5,_0x3e1c46){return _0x5552e5+_0x3e1c46;},'eWdqI':_0x49ffc1(0x138),'iHBTg':_0x49ffc1(0x17e),'EyJDD':function(_0x31922f,_0x503319){return _0x31922f!==_0x503319;},'VYJrw':function(_0x49b3d6,_0x23be01,_0x293446,_0x55530d){return _0x49b3d6(_0x23be01,_0x293446,_0x55530d);},'qDvRS':'Bash'},_0x2e40b4=new Map(),_0x5ad3bf=async _0x45b163=>{const _0x3f8303=_0x49ffc1;if(_0x3de183[_0x3f8303(0x130)](_0x45b163[_0x3f8303(0x197)],'PostToolUse'))return{};const _0x3e4039=_0x45b163;if(_0x3de183['CReTV'](_0x3e4039[_0x3f8303(0x10e)],_0x3f8303(0x14b)))return{};const _0x17b870=_0x3e4039['tool_input'],_0x424594=extractBashCommand(_0x17b870);if(!_0x424594)return{};const _0x5d1df1=parsePlaywrightCliCommand(_0x424594);if(!_0x5d1df1)return{};return _0x2e40b4[_0x3f8303(0x150)](_0x5d1df1,_0x3de183['mwhUt'](_0x2e40b4[_0x3f8303(0x117)](_0x5d1df1)||0x0,0x1)),_0x4633d6[_0x3f8303(0x15e)]('tool_call',{'transport':_0x3de183[_0x3f8303(0x14e)],'toolName':_0x5d1df1}),_0x4633d6[_0x3f8303(0x12d)](_0x3de183['iHBTg'],{'transport':_0x3de183[_0x3f8303(0x14e)],'toolName':_0x5d1df1,'bashCommandPreview':truncatePreview(_0x424594)}),_0x3de183['EyJDD'](_0x5d1df1,'snapshot')&&console['log'](_0x3de183['VYJrw'](formatPlaywrightCliConsoleLogMessage,_0x17b870,_0x424594,_0x5d1df1)),{};},_0x3c14e4=async _0x576ac8=>{const _0x463a93=_0x49ffc1;if(_0x576ac8[_0x463a93(0x197)]!==_0x463a93(0x14a))return{};const _0x14934e=_0x576ac8;if(_0x14934e[_0x463a93(0x10e)]!==_0x3de183[_0x463a93(0x17f)])return{};return await _0x4633d6[_0x463a93(0x164)](_0x463a93(0x182),_0x14934e['error'],{'transport':'playwright-cli','toolName':'Bash'}),{};};return{'postToolUseHook':_0x5ad3bf,'postToolUseFailureHook':_0x3c14e4,'commandCounts':_0x2e40b4};}async function runPlaywrightCliLifecycleCommand(_0x3e8140){const _0x15164c=_0x3113,_0x46087f={'EcwCe':function(_0x10f2f6,_0x29f4e5){return _0x10f2f6(_0x29f4e5);},'bBVNl':function(_0x249f85,_0x3df225,_0x602831){return _0x249f85(_0x3df225,_0x602831);}},{sessionId:_0x41b976,configPath:_0x2a2d2f,commandArgs:_0x152745,env:_0x1030cf,telemetry:_0x5190f1,phase:_0x2e0ed0,metadata:_0x2d7c65,timeoutMs:_0x3be022}=_0x3e8140;_0x5190f1[_0x15164c(0x15e)](_0x2e0ed0,_0x2d7c65);try{const _0xd34ae8=await _0x46087f[_0x15164c(0x165)](runPlaywrightCliCommand,{'sessionId':_0x41b976,'configPath':_0x2a2d2f,'commandArgs':_0x152745,'cwd':process[_0x15164c(0x119)](),'env':_0x1030cf,'timeoutMs':_0x3be022??PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS});_0x5190f1[_0x15164c(0x12d)](_0x2e0ed0,{..._0x2d7c65,'subcommand':_0xd34ae8['invocation'][_0x15164c(0x170)],'stdoutPreview':_0x46087f[_0x15164c(0x14d)](truncatePreview,_0xd34ae8['stdout'],0x7d0),'stderrPreview':truncatePreview(_0xd34ae8['stderr'],0x7d0)});}catch(_0x3a919c){await _0x5190f1['trackPhaseError'](_0x2e0ed0,_0x3a919c,_0x2d7c65);throw _0x3a919c;}}export async function finalizeVerifyFeatureCliSession(_0x3940b7){const _0x318bb5=_0x3113,_0x1f8215={'VyzHN':_0x318bb5(0x12a),'WkfAL':'playwright_cli_video_stop','HLlKf':_0x318bb5(0x168),'fUEgk':function(_0x4c0c58,_0x4ae0d5,_0x555f1a){return _0x4c0c58(_0x4ae0d5,_0x555f1a);},'UryhU':_0x318bb5(0x133)},{telemetry:_0x163fb9,sessionId:_0x51b9c1,configPath:_0x50602b,cliArtifactDir:_0x377266,env:_0x1e4540,transportMetadata:_0x8ff9ee}=_0x3940b7,_0x35e00b=[{'phase':_0x318bb5(0x151),'commandArgs':[_0x1f8215[_0x318bb5(0x16d)]]},{'phase':_0x1f8215[_0x318bb5(0x162)],'commandArgs':[_0x1f8215['HLlKf'],_0x318bb5(0x155)+_0x1f8215[_0x318bb5(0x14c)](buildCliArtifactPath,_0x377266,'session-recording.webm')]},{'phase':_0x1f8215['UryhU'],'commandArgs':['close']}];for(const _0x30b14d of _0x35e00b){try{await runPlaywrightCliLifecycleCommand({'sessionId':_0x51b9c1,'configPath':_0x50602b,'commandArgs':[..._0x30b14d[_0x318bb5(0x192)]],'env':_0x1e4540,'telemetry':_0x163fb9,'phase':_0x30b14d[_0x318bb5(0x127)],'metadata':_0x8ff9ee});}catch{}}}export async function loadVerifyFeatureCliTraceUploadArtifact(_0x335479){const _0x3f194d=_0x3113,_0x40386d={'pWSnm':_0x3f194d(0x136)},_0x2a8ab0=[_0x40386d['pWSnm'],'trace.trace.zip'];for(const _0x3f1db9 of _0x2a8ab0){const _0x2dfa84=join(_0x335479,_0x3f1db9);try{return{'buffer':await readFile(_0x2dfa84),'source':_0x2dfa84};}catch{}}return null;}export async function rehomeVerifyFeatureCliArtifacts(_0x530ff3){const _0x1cca01=_0x3113,_0x229de4={'UHpXx':function(_0x2f8e79,_0x28a31f,_0x55762e){return _0x2f8e79(_0x28a31f,_0x55762e);},'kEVtN':function(_0x1bfacc,_0x30b822){return _0x1bfacc+_0x30b822;},'CAcRz':function(_0xb2ee1c,_0x13fe23){return _0xb2ee1c===_0x13fe23;},'DDfRy':function(_0x39f5a3,_0x3215ca,_0x11a1b4){return _0x39f5a3(_0x3215ca,_0x11a1b4);}},{cwd:_0x3934aa,cliArtifactDir:_0x309c70,startTime:_0x126f6b}=_0x530ff3,_0x2dd5c6=[];await _0x229de4['UHpXx'](mkdir,_0x309c70,{'recursive':!![]});const _0x18ba03=await _0x229de4[_0x1cca01(0x188)](readdir,_0x3934aa,{'withFileTypes':!![]});for(const _0x3c88d4 of _0x18ba03){if(!_0x3c88d4['isFile']()||!VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN[_0x1cca01(0x184)](_0x3c88d4[_0x1cca01(0x124)]))continue;const _0x39149f=join(_0x3934aa,_0x3c88d4[_0x1cca01(0x124)]),_0x10a817=await stat(_0x39149f);if(_0x229de4[_0x1cca01(0x12c)](_0x10a817['mtimeMs'],0x7d0)<_0x126f6b)continue;const _0x28c984=buildCliArtifactPath(_0x309c70,_0x3c88d4[_0x1cca01(0x124)]);if(_0x229de4[_0x1cca01(0x13d)](_0x39149f,_0x28c984))continue;await _0x229de4['DDfRy'](rename,_0x39149f,_0x28c984),_0x2dd5c6['push'](_0x3c88d4['name']);}return _0x2dd5c6[_0x1cca01(0x143)]();}function _0x5818(){const _0x1ebe8f=['795162qLtfPr','VyzHN','\x20snapshot\x20--filename\x20','##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20(Chrome\x20DevTools\x20Protocol)\x20at\x20','subcommand','split','WlUuJ','02_state.yml','open\x20new\x20tab','check','`\x0a-\x20`snapshot\x20--filename\x20','WjPIu','\x20screenshot\x20--filename\x20','stringify','\x0a\x0a1.\x20Run\x20`','`\x0a5.\x20Read\x20the\x20snapshot\x20file\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20reference\x0a6.\x20Run\x20`','join','slice','tool_call','qDvRS','>\x20\x22','28HSMmPo','tool_failure','`\x0a10.\x20Return\x20immediately\x20with\x20the\x20structured\x20output\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.','test','22KIqqAu','createdAt',']\x20**','UHpXx','11737610AazoXO','press','.\x0aThis\x20is\x20NOT\x20a\x20web\x20app\x20—\x20there\x20is\x20no\x20URL\x20to\x20navigate\x20to.\x20The\x20app\x20is\x20already\x20running\x20and\x20connected.','\x20>\x20','capture\x20screenshot','string','values','screenshot','\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','commandArgs','Wxvuy','6831369zHxgwo','[ranger-verification-agent]\x20','TAmuf','hook_event_name','\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.','jtoos','capture\x20step\x20`','\x20video-start`\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','start\x20video\x20recording','snapshot','DEBUG','key_03_success-state.png','tool_name','numeric','open\x20','VvmcE','open','replace','\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','...','\x20tracing-start`,\x20then\x20`','get','tCKiq','cwd','cFtJA','`:\x20\x22','match','target','env','en-US','ewnMl','map','click','03_result-visible.png','name','authorEmail','select\x20tab\x20','phase','description','##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`','tracing-stop','\x0a\x0a##\x20Additional\x20Notes\x0a','kEVtN','trackPhaseEnd','yNqgy','yJQzj','ESvUA','open\x20browser','4251088LEodJf','playwright_cli_close','short','163487zwfEjr','trace.zip','keys','playwright-cli','`\x0a7.\x20Click\x20the\x20\x22Learn\x20More\x22\x20link\x20with\x20Playwright\x20CLI\x0a8.\x20Run\x20`','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','`\x0a9.\x20Run\x20`','\x22,\x20\x22','CAcRz','frSjC','uKydz','42095kWgwmX','2jhMcLo','588jbUpFj','sort','click\x20','capture\x20snapshot','`\x0a\x0a-\x20Write\x20all\x20artifacts\x20under\x20`','length','authorName','kyHkj','PostToolUseFailure','Bash','fUEgk','bBVNl','eWdqI','KrlMb','set','playwright_cli_tracing_stop','element','unaddressedComments','\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a','--filename=','VrpzH','domRef','\x20open`,\x20then\x20`','Reviewer','hxnaq','UxKkV','run-code','start\x20tracing','trackPhaseStart','cvRTU','JpDrD','1349289alcyVV','WkfAL','\x0a\x0a##\x20Task\x20to\x20Execute\x0a','trackPhaseError','EcwCe','canonicalFlow','\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','video-stop','ref\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`','olqmJ'];_0x5818=function(){return _0x1ebe8f;};return _0x5818();}
@@ -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
- The URL is derived from your active profile's `baseUrl` setting (or auto-materialized — see below).
11
+ ## Profile resolution
12
12
 
13
- ## Profile resolution (no setup required)
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
- If `RANGER_TEST_USERNAME` already matches an existing cloud profile, the CLI just logs in as that user. If not, a new cloud profile keyed off that username is saved so the next run reuses it.
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. The saved active profile (`ranger-cli profile use <name>`)
28
- 3. `RANGER_TEST_USERNAME` (logs in as that user; reuses or creates the matching cloud profile)
29
- 4. The org's only cloud profile, if exactly one exists
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
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ranger-testing/ranger-cli",
3
- "version": "2.5.4-alpha.1f7a251-7",
3
+ "version": "2.5.4-alpha.27e3ee8-11",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "ranger": "./build/cli.js",