@ranger-testing/ranger-cli 2.5.4-alpha.78800d3-3 → 2.5.4-alpha.bc88254-5

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 (79) 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/SKILL.md +5 -4
  78. package/build/skills/ranger/verify.md +15 -3
  79. package/package.json +1 -1
@@ -1 +1 @@
1
- (function(_0x1c8c03,_0x33d803){const _0x2aa9ba=_0x1e08,_0x40e4fc=_0x1c8c03();while(!![]){try{const _0x4b38b7=-parseInt(_0x2aa9ba(0x223))/0x1+parseInt(_0x2aa9ba(0x1f1))/0x2+-parseInt(_0x2aa9ba(0x22d))/0x3*(parseInt(_0x2aa9ba(0x242))/0x4)+-parseInt(_0x2aa9ba(0x1fa))/0x5+-parseInt(_0x2aa9ba(0x1e5))/0x6+-parseInt(_0x2aa9ba(0x24d))/0x7+parseInt(_0x2aa9ba(0x211))/0x8;if(_0x4b38b7===_0x33d803)break;else _0x40e4fc['push'](_0x40e4fc['shift']());}catch(_0x454549){_0x40e4fc['push'](_0x40e4fc['shift']());}}}(_0x216d,0x7eb11));import{mkdir,readFile,readdir,rename,stat}from'fs/promises';function _0x216d(){const _0x56eec2=['pop','split','length','PzEQq','trim','):\x20\x22','`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a6.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`','76vzuBqx','canonicalFlow','dnVUH','short','tracing-stop','PostToolUse','snapshot','CTfIu','string','--filename=','ASjyw','1121582cESRFo','invocation','ZPBoy','\x20open`,\x20then\x20`','`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a8.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`','EyNVA','ePPhV','name','\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','(?:^|\x5cs)','check\x20','start\x20video\x20recording','...',']\x20**','stop\x20tracing','VGmkw','oystI','selector','target','ref\x20','IzRjb','`\x0a10.\x20Return\x20immediately\x20with\x20the\x20structured\x20output\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.','ahBSV','\x20open\x20https://www.mozilla.org`\x0a2.\x20Run\x20`','-\x20[','nDNAh','DEBUG','replace','**\x20(','1455348QQjSuJ','trackPhaseError','00_mozilla-homepage.yml','uDNZy','\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20you\x20MUST\x20authenticate\x20using\x20these\x20steps:\x0a','[playwright-cli]\x20','IICUH','\x20>\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.','You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Playwright\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a','(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))','press\x20','31460cqSDhc','iqdRH','02_state.yml','[ranger-verification-agent]\x20','\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','\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.','\x22,\x20\x22','phase','FNDCb','1908805jLXnGm','\x0a\x0a##\x20Additional\x20Notes\x0a','subcommand','notes','01_initial.yml','description','\x20tracing-start`,\x20then\x20`','unaddressedComments','screenshot','domRef','stringify','capture\x20snapshot','vgwPI','click','gHYdi','KZSXU','`\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`','capture\x20step\x20`','playwright_cli_close','Bash','tool_call','set','\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Playwright\x20CLI\x20commands\x20with\x20this\x20exact\x20prefix:\x0a`','22546888eykDYN','02_button-clicked.png','trackPhaseEnd','TzDgj','bSBwz','trackPhaseStart','kjfMw','##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`','BAmIV','env','trace.trace.zip','log','trace.zip','fhAPh','run\x20custom\x20Playwright\x20code','numeric','OIYRH','\x0a\x0a##\x20Task\x20to\x20Execute\x0a','656883LtsNrO','commandArgs','twCAc','IUIqO','cKdjx','match','slice','FEWJA','toLocaleDateString','\x20snapshot\x20--filename\x20','137958ViFoqS','join','\x20video-start`\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','cabIv','open\x20new\x20tab','hook_event_name','sFGoT','sDWgS','\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','03_result-visible.png','01_mozilla-homepage.png','capture\x20key\x20step\x20`','01_initial-state.png','tool_failure'];_0x216d=function(){return _0x56eec2;};return _0x216d();}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(_0x30fcbc,_0x3c3d20=PLAYWRIGHT_CLI_PREVIEW_LIMIT){const _0x6021a7=_0x1e08;return _0x30fcbc[_0x6021a7(0x23d)]>_0x3c3d20?_0x30fcbc[_0x6021a7(0x229)](0x0,_0x3c3d20)+_0x6021a7(0x259):_0x30fcbc;}function buildCliArtifactPath(_0x209009,_0x37d49d){const _0x25c4fe=_0x1e08,_0x495bbd={'IICUH':function(_0x57ca56,_0x1ff8a4,_0x1cdb45){return _0x57ca56(_0x1ff8a4,_0x1cdb45);}};return _0x495bbd[_0x25c4fe(0x1eb)](join,_0x209009,_0x37d49d);}function toStepDisplayName(_0x503e96){const _0xa3373e=_0x1e08,_0x4a4d32={'cKdjx':function(_0x5a2bd7,_0x32865a){return _0x5a2bd7(_0x32865a);}},_0x21ddf9=basename(_0x503e96)[_0xa3373e(0x1e3)](/\.(?:png|ya?ml)$/i,'')[_0xa3373e(0x1e3)](/^key_/i,'')['replace'](/^\d+_/,'')[_0xa3373e(0x1e3)](/-/g,'\x20');return{'name':_0x21ddf9,'isKeyStep':/^key_/i['test'](_0x4a4d32[_0xa3373e(0x227)](basename,_0x503e96))};}function extractShellValue(_0x3ca31f){if(!_0x3ca31f)return null;return _0x3ca31f[0x1]??_0x3ca31f[0x2]??_0x3ca31f[0x3]??null;}function extractFilenameOption(_0x2ea097){const _0x3e4615=_0x1e08;return extractShellValue(_0x2ea097[_0x3e4615(0x228)](/--filename(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function extractFirstCommandArgument(_0x13e1dc,_0x27c346){const _0x4883f1=_0x1e08,_0x3ceac7={'YFsbQ':function(_0x5b47c7,_0x1f80f5){return _0x5b47c7(_0x1f80f5);}},_0x4010ff=_0x27c346['replace'](/[.*+?^${}()|[\]\\]/g,'\x5c$&');return _0x3ceac7['YFsbQ'](extractShellValue,_0x13e1dc['match'](new RegExp(_0x4883f1(0x256)+_0x4010ff+_0x4883f1(0x1ef))));}function formatCommandTarget(_0x584615){const _0xb225b2=_0x1e08;if(!_0x584615)return _0xb225b2(0x1da);if(/^e\d+$/i['test'](_0x584615))return _0xb225b2(0x1db)+_0x584615;return JSON[_0xb225b2(0x204)](truncatePreview(_0x584615,0x78));}function formatPlaywrightCliLog(_0x504db7,_0x53ae76){const _0x2ea5af=_0x1e08,_0xbd68eb={'iFCXd':'open\x20browser','sFGoT':'tracing-stop','QPeyF':_0x2ea5af(0x248),'TzDgj':function(_0x1fe3cb,_0x1d02ab){return _0x1fe3cb(_0x1d02ab);},'YZWIq':_0x2ea5af(0x205),'sFBRj':'capture\x20screenshot','twCAc':function(_0x2eb735,_0x5e2f14){return _0x2eb735(_0x5e2f14);},'gHYdi':function(_0x75dbee,_0x5d6cd4,_0x15ddfc){return _0x75dbee(_0x5d6cd4,_0x15ddfc);},'iqdRH':'press','FEWJA':function(_0x24ac16,_0x2c7442,_0x3e9f61){return _0x24ac16(_0x2c7442,_0x3e9f61);},'nDNAh':'tab-new','ikQbk':_0x2ea5af(0x231),'FNDCb':'select\x20tab'};switch(_0x53ae76){case'open':{const _0x591887=extractFirstCommandArgument(_0x504db7,_0x53ae76);return _0x591887?'open\x20'+_0x591887:_0xbd68eb['iFCXd'];}case'tracing-start':return'start\x20tracing';case _0xbd68eb[_0x2ea5af(0x233)]:return _0x2ea5af(0x1d6);case'video-start':return _0x2ea5af(0x258);case'video-stop':return'stop\x20video\x20recording';case _0xbd68eb['QPeyF']:{const _0xc303e7=_0xbd68eb[_0x2ea5af(0x214)](extractFilenameOption,_0x504db7);if(!_0xc303e7)return _0xbd68eb['YZWIq'];const {name:_0x172131}=toStepDisplayName(_0xc303e7);return'capture\x20snapshot\x20`'+_0x172131+'`';}case _0x2ea5af(0x202):{const _0x476da0=_0xbd68eb[_0x2ea5af(0x214)](extractFilenameOption,_0x504db7);if(!_0x476da0)return _0xbd68eb['sFBRj'];const {name:_0x3ae87d,isKeyStep:_0x3db849}=_0xbd68eb[_0x2ea5af(0x225)](toStepDisplayName,_0x476da0);return _0x3db849?_0x2ea5af(0x238)+_0x3ae87d+'`':_0x2ea5af(0x20b)+_0x3ae87d+'`';}case _0x2ea5af(0x207):return'click\x20'+formatCommandTarget(extractFirstCommandArgument(_0x504db7,_0x53ae76));case'check':return _0x2ea5af(0x257)+formatCommandTarget(_0xbd68eb[_0x2ea5af(0x208)](extractFirstCommandArgument,_0x504db7,_0x53ae76));case'fill':return'fill\x20'+formatCommandTarget(_0xbd68eb['gHYdi'](extractFirstCommandArgument,_0x504db7,_0x53ae76));case _0xbd68eb[_0x2ea5af(0x1f2)]:return _0x2ea5af(0x1f0)+formatCommandTarget(_0xbd68eb[_0x2ea5af(0x22a)](extractFirstCommandArgument,_0x504db7,_0x53ae76));case'run-code':return _0x2ea5af(0x21f);case _0xbd68eb[_0x2ea5af(0x1e1)]:{const _0x3d5a86=extractFirstCommandArgument(_0x504db7,_0x53ae76);return _0x3d5a86?'open\x20new\x20tab\x20'+_0x3d5a86:_0xbd68eb['ikQbk'];}case'tab-select':{const _0x3ba04a=extractFirstCommandArgument(_0x504db7,_0x53ae76);return _0x3ba04a?'select\x20tab\x20'+_0x3ba04a:_0xbd68eb[_0x2ea5af(0x1f9)];}default:return _0x53ae76;}}function extractPlaywrightCliToolDescription(_0xd59549){const _0x174965=_0x1e08,_0x315364={'vgwPI':function(_0x39ac4a,_0x575b0b){return _0x39ac4a!==_0x575b0b;},'obHOK':function(_0x182acf,_0x3417ed){return _0x182acf>_0x3417ed;}},_0xb0fc5a=_0xd59549['description'];if(_0x315364[_0x174965(0x206)](typeof _0xb0fc5a,_0x174965(0x24a)))return null;const _0x2a7b41=_0xb0fc5a[_0x174965(0x23f)]()['replace'](/\s+/g,'\x20');return _0x315364['obHOK'](_0x2a7b41[_0x174965(0x23d)],0x0)?_0x2a7b41:null;}export function formatPlaywrightCliConsoleLogMessage(_0x281293,_0x534d81,_0x46c06e){const _0xa5d24c=_0x1e08,_0x1a4583={'ASjyw':function(_0x45e9f8,_0x1456a5,_0xb9670e){return _0x45e9f8(_0x1456a5,_0xb9670e);}},_0x24b9c3=_0x1a4583[_0xa5d24c(0x24c)](formatPlaywrightCliLog,_0x534d81,_0x46c06e),_0x3efb8f=extractPlaywrightCliToolDescription(_0x281293);if(!_0x3efb8f)return _0xa5d24c(0x1ea)+_0x24b9c3;if(process[_0xa5d24c(0x21a)][_0xa5d24c(0x1e2)])return'[ranger-verification-agent]\x20'+_0x3efb8f+'\x20('+_0x24b9c3+')';return _0xa5d24c(0x1f4)+_0x3efb8f;}export function buildVerifyFeatureCliDebugPrompt(_0x146354,_0x485af3){const _0x510591=_0x1e08,_0x3f6c02={'KZSXU':_0x510591(0x1e7),'LJHsa':_0x510591(0x237),'bSBwz':function(_0x5cc083,_0x34d00e,_0x3f294e){return _0x5cc083(_0x34d00e,_0x3f294e);},'MnKvb':'03_learn-more.png','ZPBoy':function(_0x5076a6,_0x4505b6){return _0x5076a6(_0x4505b6);}},_0x3bc421=buildCliArtifactPath(_0x485af3,_0x3f6c02[_0x510591(0x209)]),_0x1f85c8=buildCliArtifactPath(_0x485af3,_0x3f6c02['LJHsa']),_0x7f646c=_0x3f6c02[_0x510591(0x215)](buildCliArtifactPath,_0x485af3,'02_learn-more.yml'),_0x2929e6=_0x3f6c02[_0x510591(0x215)](buildCliArtifactPath,_0x485af3,_0x3f6c02['MnKvb']),_0x233911=_0x3f6c02[_0x510591(0x24f)](quoteShellArg,_0x3bc421),_0x467b5b=quoteShellArg(_0x1f85c8),_0x8972ff=quoteShellArg(_0x7f646c),_0x55db02=_0x3f6c02[_0x510591(0x24f)](quoteShellArg,_0x2929e6);return _0x510591(0x1ee)+_0x146354+'\x0a\x0a1.\x20Run\x20`'+_0x146354+_0x510591(0x1df)+_0x146354+'\x20tracing-start`\x0a3.\x20Run\x20`'+_0x146354+_0x510591(0x22f)+_0x485af3+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a5.\x20Run\x20`'+_0x146354+'\x20snapshot\x20--filename\x20'+_0x233911+'`\x0a5.\x20Read\x20the\x20snapshot\x20file\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20reference\x0a6.\x20Run\x20`'+_0x146354+'\x20screenshot\x20--filename\x20'+_0x467b5b+'`\x0a7.\x20Click\x20the\x20\x22Learn\x20More\x22\x20link\x20with\x20Playwright\x20CLI\x0a8.\x20Run\x20`'+_0x146354+_0x510591(0x22c)+_0x8972ff+'`\x0a9.\x20Run\x20`'+_0x146354+'\x20screenshot\x20--filename\x20'+_0x55db02+_0x510591(0x1dd);}export function buildVerifyFeatureCliPrompt(_0x36eca0){const _0x1cb489=_0x1e08,_0x365dad={'tmWBJ':_0x1cb489(0x245),'IzRjb':_0x1cb489(0x220),'fhAPh':_0x1cb489(0x1ec),'dnVUH':'element','NLheP':function(_0xce214d,_0xcb0488,_0x5b5c7e){return _0xce214d(_0xcb0488,_0x5b5c7e);},'BAmIV':_0x1cb489(0x1f3),'iAmWa':function(_0x58677b,_0x1280d5,_0x2e0b37){return _0x58677b(_0x1280d5,_0x2e0b37);},'dSRrR':_0x1cb489(0x239),'ahBSV':function(_0x399f6e,_0x5dbfa2){return _0x399f6e(_0x5dbfa2);},'sBGFy':function(_0x18b17d,_0x4b1e1a,_0x57c162){return _0x18b17d(_0x4b1e1a,_0x57c162);},'JZgzA':_0x1cb489(0x212),'jgelH':function(_0xff750e,_0x2c1043,_0x2b9e75){return _0xff750e(_0x2c1043,_0x2b9e75);}},{checklistItem:_0x5f1381,itemFeedback:_0x3fc93f,taskDescription:_0xe9ad2e,cliCommandPrefix:_0x774c9a,cliArtifactDir:_0x2f77dc,isCdpMode:_0x4c158d,url:_0x27dbdd,cdpEndpoint:_0x4a97f1,loginInstructions:_0x152f3b}=_0x36eca0,_0x56cf90=buildCliArtifactPath(_0x2f77dc,_0x1cb489(0x1fe)),_0x12fb0e=_0x365dad['NLheP'](buildCliArtifactPath,_0x2f77dc,_0x365dad[_0x1cb489(0x219)]),_0x49331a=_0x365dad['NLheP'](buildCliArtifactPath,_0x2f77dc,'key_03_success-state.png'),_0xb23e2b=_0x365dad['iAmWa'](buildCliArtifactPath,_0x2f77dc,_0x365dad['dSRrR']),_0x1317b8=quoteShellArg(_0x56cf90),_0x58f5f6=quoteShellArg(_0x12fb0e),_0x5819ee=_0x365dad[_0x1cb489(0x1de)](quoteShellArg,_0x49331a),_0x59fdd9=quoteShellArg(_0xb23e2b),_0x2fe5e1=_0x5f1381['notes']?_0x1cb489(0x1fb)+_0x5f1381[_0x1cb489(0x1fd)]:'';let _0x221868='';if(_0x3fc93f&&_0x3fc93f[_0x1cb489(0x201)]['length']>0x0){const _0x20f5c9=_0x3fc93f['unaddressedComments']['map'](_0x85b4c0=>{const _0x5a202d=_0x1cb489,_0x124be4=new Date(_0x85b4c0['createdAt'])[_0x5a202d(0x22b)]('en-US',{'month':_0x365dad['tmWBJ'],'day':_0x365dad[_0x5a202d(0x1dc)]}),_0xb56985=_0x85b4c0['authorName']||_0x85b4c0['authorEmail']||'Reviewer',_0x44315b=_0x85b4c0['domRef']?'\x20(on\x20element:\x20<'+(_0x85b4c0['domRef'][_0x5a202d(0x1d9)][_0x5a202d(0x23c)](_0x365dad[_0x5a202d(0x21e)])[_0x5a202d(0x23b)]()?.['split'](':')[0x0]||_0x365dad[_0x5a202d(0x244)])+'>\x20\x22'+(_0x85b4c0[_0x5a202d(0x203)]['textContent']||'')['slice'](0x0,0x32)+'\x22)':'';return _0x5a202d(0x1e0)+_0x85b4c0['id']+_0x5a202d(0x1d5)+_0xb56985+_0x5a202d(0x1e4)+_0x124be4+_0x5a202d(0x240)+_0x85b4c0['content']+'\x22'+_0x44315b;})[_0x1cb489(0x22e)]('\x0a');_0x221868='\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'+_0x20f5c9;}const _0x1da03e=_0x3fc93f?.[_0x1cb489(0x243)]?'\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a'+_0x3fc93f[_0x1cb489(0x243)]:'',_0x2f25ba=_0x4c158d?'##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20(Chrome\x20DevTools\x20Protocol)\x20at\x20'+_0x4a97f1+'.\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'+_0x27dbdd+'\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',_0x312942=_0x27dbdd?quoteShellArg(_0x27dbdd):'',_0x2fe5f9=_0x4c158d?_0x1cb489(0x218)+_0x774c9a+_0x1cb489(0x250)+_0x774c9a+_0x1cb489(0x200)+_0x774c9a+_0x1cb489(0x255)+_0x2f77dc+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`'+_0x774c9a+_0x1cb489(0x22c)+_0x1317b8+_0x1cb489(0x20a)+_0x774c9a+'\x20screenshot\x20--filename\x20'+_0x59fdd9+_0x1cb489(0x241)+_0x774c9a+_0x1cb489(0x1f5):'##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`'+_0x774c9a+'\x20open\x20'+_0x312942+'`,\x20then\x20`'+_0x774c9a+_0x1cb489(0x200)+_0x774c9a+_0x1cb489(0x255)+_0x2f77dc+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`'+_0x774c9a+'\x20snapshot\x20--filename\x20'+_0x1317b8+'`\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`'+_0x774c9a+'\x20screenshot\x20--filename\x20'+_0x59fdd9+_0x1cb489(0x251)+_0x774c9a+'\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',_0x16518e=_0x4c158d?'\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.',_0x3ab943=_0x152f3b?_0x1cb489(0x1e9)+_0x152f3b+_0x1cb489(0x1ed):'';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'+_0x5f1381[_0x1cb489(0x1ff)]+_0x2fe5e1+_0x221868+_0x1da03e+_0x1cb489(0x222)+_0xe9ad2e+'\x0a\x0a'+_0x2f25ba+_0x3ab943+'\x0a\x0a'+_0x2fe5f9+_0x1cb489(0x210)+_0x774c9a+'`\x0a\x0a-\x20Write\x20all\x20artifacts\x20under\x20`'+_0x2f77dc+'`\x0a-\x20`snapshot\x20--filename\x20'+_0x58f5f6+'`\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'+_0x5819ee+'`\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`'+_0x2f77dc+'`:\x20\x22'+_0xb23e2b+_0x1cb489(0x1f7)+_0x365dad['sBGFy'](buildCliArtifactPath,_0x2f77dc,_0x365dad['JZgzA'])+_0x1cb489(0x1f7)+_0x365dad['jgelH'](buildCliArtifactPath,_0x2f77dc,_0x1cb489(0x236))+_0x1cb489(0x235)+buildCliArtifactPath(_0x2f77dc,'key_04_success-state.png')+'\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'+_0x16518e+_0x1cb489(0x1f6);}export function summarizeVerifyFeatureCliCommandAvailability(_0x4cbde0){const _0x36b6a2=_0x1e08,_0x1c49c7={'uDNZy':function(_0x42e297,_0x270407){return _0x42e297===_0x270407;}},_0x86b07a=[..._0x4cbde0['keys']()]['sort']();let _0x20a301=0x0;for(const _0x57130d of _0x4cbde0['values']()){_0x20a301+=_0x57130d;}return{'cliCommandCount':_0x20a301,'cliCommandsSeen':_0x86b07a,'noCliCommandsCalled':_0x1c49c7[_0x36b6a2(0x1e8)](_0x20a301,0x0)};}export function createVerifyFeatureCliHooks(_0x183793){const _0x2848b6=_0x1e08,_0x239eab={'VopSe':_0x2848b6(0x247),'VGmkw':function(_0x3969e2,_0x46c845){return _0x3969e2!==_0x46c845;},'oystI':function(_0x1749ad,_0x1c91db){return _0x1749ad(_0x1c91db);},'sDWgS':_0x2848b6(0x20e),'PzEQq':'playwright-cli','szGlt':function(_0x66910c,_0x7e914a){return _0x66910c(_0x7e914a);},'ePPhV':'PostToolUseFailure','EyNVA':_0x2848b6(0x20d),'dhVio':_0x2848b6(0x23a)},_0x1015af=new Map(),_0x1906fa=async _0x44e7a5=>{const _0x1a7a6b=_0x2848b6;if(_0x44e7a5[_0x1a7a6b(0x232)]!==_0x239eab['VopSe'])return{};const _0x6123a=_0x44e7a5;if(_0x239eab[_0x1a7a6b(0x1d7)](_0x6123a['tool_name'],'Bash'))return{};const _0x52219e=_0x6123a['tool_input'],_0x3c3460=_0x239eab['oystI'](extractBashCommand,_0x52219e);if(!_0x3c3460)return{};const _0x80a7ca=_0x239eab[_0x1a7a6b(0x1d8)](parsePlaywrightCliCommand,_0x3c3460);if(!_0x80a7ca)return{};return _0x1015af[_0x1a7a6b(0x20f)](_0x80a7ca,(_0x1015af['get'](_0x80a7ca)||0x0)+0x1),_0x183793[_0x1a7a6b(0x216)](_0x1a7a6b(0x20e),{'transport':'playwright-cli','toolName':_0x80a7ca}),_0x183793['trackPhaseEnd'](_0x239eab[_0x1a7a6b(0x234)],{'transport':_0x239eab[_0x1a7a6b(0x23e)],'toolName':_0x80a7ca,'bashCommandPreview':_0x239eab['szGlt'](truncatePreview,_0x3c3460)}),_0x239eab['VGmkw'](_0x80a7ca,'snapshot')&&console[_0x1a7a6b(0x21c)](formatPlaywrightCliConsoleLogMessage(_0x52219e,_0x3c3460,_0x80a7ca)),{};},_0x42d996=async _0x286a4b=>{const _0x50ed60=_0x2848b6;if(_0x286a4b['hook_event_name']!==_0x239eab[_0x50ed60(0x253)])return{};const _0x55392c=_0x286a4b;if(_0x55392c['tool_name']!==_0x239eab['EyNVA'])return{};return await _0x183793['trackPhaseError'](_0x239eab['dhVio'],_0x55392c['error'],{'transport':_0x239eab['PzEQq'],'toolName':_0x239eab[_0x50ed60(0x252)]}),{};};return{'postToolUseHook':_0x1906fa,'postToolUseFailureHook':_0x42d996,'commandCounts':_0x1015af};}function _0x1e08(_0x293d4c,_0x21afe3){_0x293d4c=_0x293d4c-0x1d5;const _0x216da3=_0x216d();let _0x1e081e=_0x216da3[_0x293d4c];return _0x1e081e;}async function runPlaywrightCliLifecycleCommand(_0x223e1f){const _0x4097c4=_0x1e08,_0x41c576={'OIYRH':function(_0x1e8d70,_0x3bbffa){return _0x1e8d70??_0x3bbffa;},'cDwZO':function(_0x19dbb,_0x3c36f2,_0x13d67d){return _0x19dbb(_0x3c36f2,_0x13d67d);}},{sessionId:_0x490f17,configPath:_0x4c9edb,commandArgs:_0x450984,env:_0x423d1e,telemetry:_0x54f9a7,phase:_0x52487f,metadata:_0x26ba2c,timeoutMs:_0x44b4e2}=_0x223e1f;_0x54f9a7['trackPhaseStart'](_0x52487f,_0x26ba2c);try{const _0xb73b60=await runPlaywrightCliCommand({'sessionId':_0x490f17,'configPath':_0x4c9edb,'commandArgs':_0x450984,'cwd':process['cwd'](),'env':_0x423d1e,'timeoutMs':_0x41c576[_0x4097c4(0x221)](_0x44b4e2,PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS)});_0x54f9a7[_0x4097c4(0x213)](_0x52487f,{..._0x26ba2c,'subcommand':_0xb73b60[_0x4097c4(0x24e)][_0x4097c4(0x1fc)],'stdoutPreview':truncatePreview(_0xb73b60['stdout'],0x7d0),'stderrPreview':_0x41c576['cDwZO'](truncatePreview,_0xb73b60['stderr'],0x7d0)});}catch(_0x53b314){await _0x54f9a7[_0x4097c4(0x1e6)](_0x52487f,_0x53b314,_0x26ba2c);throw _0x53b314;}}export async function finalizeVerifyFeatureCliSession(_0x11211b){const _0x576f4b=_0x1e08,_0x4bcb1f={'TwuEi':_0x576f4b(0x246),'kjfMw':'session-recording.webm'},{telemetry:_0x1418e3,sessionId:_0x20a06f,configPath:_0xc980bd,cliArtifactDir:_0x22a2ab,env:_0x391afc,transportMetadata:_0x3645ae}=_0x11211b,_0x349f30=[{'phase':'playwright_cli_tracing_stop','commandArgs':[_0x4bcb1f['TwuEi']]},{'phase':'playwright_cli_video_stop','commandArgs':['video-stop',_0x576f4b(0x24b)+buildCliArtifactPath(_0x22a2ab,_0x4bcb1f[_0x576f4b(0x217)])]},{'phase':_0x576f4b(0x20c),'commandArgs':['close']}];for(const _0x575738 of _0x349f30){try{await runPlaywrightCliLifecycleCommand({'sessionId':_0x20a06f,'configPath':_0xc980bd,'commandArgs':[..._0x575738[_0x576f4b(0x224)]],'env':_0x391afc,'telemetry':_0x1418e3,'phase':_0x575738[_0x576f4b(0x1f8)],'metadata':_0x3645ae});}catch{}}}export async function loadVerifyFeatureCliTraceUploadArtifact(_0x55775d){const _0x34844c=_0x1e08,_0x53ff10={'ytWkN':_0x34844c(0x21b)},_0x32f750=[_0x34844c(0x21d),_0x53ff10['ytWkN']];for(const _0x31f8a6 of _0x32f750){const _0x43b887=join(_0x55775d,_0x31f8a6);try{return{'buffer':await readFile(_0x43b887),'source':_0x43b887};}catch{}}return null;}export async function rehomeVerifyFeatureCliArtifacts(_0x180979){const _0x486ccc=_0x1e08,_0xf34b17={'cabIv':function(_0x313e9b,_0x2aa01a,_0x263a91){return _0x313e9b(_0x2aa01a,_0x263a91);},'IUIqO':function(_0x52a59a,_0x350fff){return _0x52a59a(_0x350fff);},'ZNzwj':function(_0x55225b,_0x98ba8){return _0x55225b+_0x98ba8;},'CTfIu':function(_0x295c2f,_0x2754dc){return _0x295c2f===_0x2754dc;}},{cwd:_0x34b79f,cliArtifactDir:_0x396cac,startTime:_0x1ebba2}=_0x180979,_0x1f5529=[];await _0xf34b17['cabIv'](mkdir,_0x396cac,{'recursive':!![]});const _0x1bc437=await _0xf34b17[_0x486ccc(0x230)](readdir,_0x34b79f,{'withFileTypes':!![]});for(const _0x41d72f of _0x1bc437){if(!_0x41d72f['isFile']()||!VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN['test'](_0x41d72f['name']))continue;const _0x1fbe8a=join(_0x34b79f,_0x41d72f['name']),_0xf8fbfe=await _0xf34b17[_0x486ccc(0x226)](stat,_0x1fbe8a);if(_0xf34b17['ZNzwj'](_0xf8fbfe['mtimeMs'],0x7d0)<_0x1ebba2)continue;const _0x12c1c5=_0xf34b17['cabIv'](buildCliArtifactPath,_0x396cac,_0x41d72f[_0x486ccc(0x254)]);if(_0xf34b17[_0x486ccc(0x249)](_0x1fbe8a,_0x12c1c5))continue;await rename(_0x1fbe8a,_0x12c1c5),_0x1f5529['push'](_0x41d72f['name']);}return _0x1f5529['sort']();}
1
+ (function(_0x4bc1e1,_0x4e485b){const _0x444ab6=_0x3644,_0x957365=_0x4bc1e1();while(!![]){try{const _0x1086d8=parseInt(_0x444ab6(0x12a))/0x1*(-parseInt(_0x444ab6(0x147))/0x2)+parseInt(_0x444ab6(0x165))/0x3*(-parseInt(_0x444ab6(0x148))/0x4)+-parseInt(_0x444ab6(0x11a))/0x5+-parseInt(_0x444ab6(0x116))/0x6+-parseInt(_0x444ab6(0x14c))/0x7*(parseInt(_0x444ab6(0x102))/0x8)+-parseInt(_0x444ab6(0x11d))/0x9*(-parseInt(_0x444ab6(0x152))/0xa)+parseInt(_0x444ab6(0x17d))/0xb;if(_0x1086d8===_0x4e485b)break;else _0x957365['push'](_0x957365['shift']());}catch(_0x139e8e){_0x957365['push'](_0x957365['shift']());}}}(_0x167e,0xf414b));import{mkdir,readFile,readdir,rename,stat}from'fs/promises';import{basename,join}from'path';function _0x3644(_0x33691e,_0x30a321){_0x33691e=_0x33691e-0xe4;const _0x167e11=_0x167e();let _0x36447d=_0x167e11[_0x33691e];return _0x36447d;}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(_0x354021,_0x1cc011=PLAYWRIGHT_CLI_PREVIEW_LIMIT){const _0x7a5207=_0x3644,_0x38502c={'DNctC':function(_0x4a2166,_0x5e5009){return _0x4a2166+_0x5e5009;}};return _0x354021['length']>_0x1cc011?_0x38502c[_0x7a5207(0xed)](_0x354021['slice'](0x0,_0x1cc011),_0x7a5207(0x11f)):_0x354021;}function buildCliArtifactPath(_0xddb2d,_0x4e3dc7){return join(_0xddb2d,_0x4e3dc7);}function toStepDisplayName(_0x5d7d77){const _0x404a39=_0x3644,_0x465988={'BhVJw':function(_0x3f3a78,_0x3e26bd){return _0x3f3a78(_0x3e26bd);}},_0x58be9e=basename(_0x5d7d77)['replace'](/\.(?:png|ya?ml)$/i,'')[_0x404a39(0x130)](/^key_/i,'')['replace'](/^\d+_/,'')[_0x404a39(0x130)](/-/g,'\x20');return{'name':_0x58be9e,'isKeyStep':/^key_/i[_0x404a39(0x14d)](_0x465988['BhVJw'](basename,_0x5d7d77))};}function extractShellValue(_0x62d049){if(!_0x62d049)return null;return _0x62d049[0x1]??_0x62d049[0x2]??_0x62d049[0x3]??null;}function extractFilenameOption(_0x50f5b5){const _0x54f46b={'ZTzij':function(_0x299179,_0x429f01){return _0x299179(_0x429f01);}};return _0x54f46b['ZTzij'](extractShellValue,_0x50f5b5['match'](/--filename(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function extractFirstCommandArgument(_0x2f5831,_0x2d55b1){const _0x410ee4=_0x3644,_0x114340=_0x2d55b1['replace'](/[.*+?^${}()|[\]\\]/g,'\x5c$&');return extractShellValue(_0x2f5831['match'](new RegExp('(?:^|\x5cs)'+_0x114340+_0x410ee4(0x111))));}function formatCommandTarget(_0x49f17f){const _0x3d0356=_0x3644,_0x10ac70={'iodXS':function(_0xbeef1b,_0x502d6c,_0x44b4ca){return _0xbeef1b(_0x502d6c,_0x44b4ca);}};if(!_0x49f17f)return'target';if(/^e\d+$/i['test'](_0x49f17f))return'ref\x20'+_0x49f17f;return JSON[_0x3d0356(0xe8)](_0x10ac70['iodXS'](truncatePreview,_0x49f17f,0x78));}function _0x167e(){const _0x3b9a32=['yUsda','video-stop','DEBUG','bgZth','##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`','unaddressedComments','set','01_initial-state.png','nOQPM','402632RRXsya','playwright_cli_close','xugfA','tool_name','`\x0a10.\x20Return\x20immediately\x20with\x20the\x20structured\x20output\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.','tracing-stop','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a5.\x20Run\x20`','run-code','\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','\x20open\x20https://www.mozilla.org`\x0a2.\x20Run\x20`','[ranger-verification-agent]\x20','fill\x20','press','QmGKY','capture\x20step\x20`','(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))','`\x0a\x0a-\x20Write\x20all\x20artifacts\x20under\x20`','PoAzr','BlDTJ','`\x0a5.\x20Read\x20the\x20snapshot\x20file\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20reference\x0a6.\x20Run\x20`','7451544ohxdHc','`\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`','oRwaV','NSqLr','1609775xIcMQX','values','pWtFA','9zIZTeC','length','...','capture\x20snapshot','en-US','kyaWZ','BHXhS','toLocaleDateString','selector','01_initial.yml','02_state.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','key_04_success-state.png','752yrFqJV','pop','\x20screenshot\x20--filename\x20','textContent','hrDkL','screenshot','replace','get','ZKRHp','mlvWO','split','\x20snapshot\x20--filename\x20','\x20video-start`\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','XUPKn','MEjif','`\x0a9.\x20Run\x20`','fRKIq','session-recording.webm','\x0a\x0a##\x20Task\x20to\x20Execute\x0a',']\x20**','##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20(Chrome\x20DevTools\x20Protocol)\x20at\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`','PostToolUseFailure','`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a8.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`','hook_event_name','\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','snapshot','**\x20(','name','1682AHofRf','236PRLUBT','CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20','QavPs','playwright_cli_video_stop','203bTVZjL','test','You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Playwright\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a','\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a','dIsua','stderr','10510790UNGOiv','rjyhH','stdout','click\x20','phase','open\x20','numeric','feclK','trackPhaseEnd','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`','gWyki','`:\x20\x22','check','stop\x20video\x20recording','tool_input','BOUIS','subcommand','`\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','\x0a\x0a##\x20Additional\x20Notes\x0a','77955pKWyof','mgIcw','BRZyF','03_result-visible.png','PQyXc','content','isFile','03_learn-more.png','eZEFI','>\x20\x22','\x0a\x0a1.\x20Run\x20`','\x20tracing-start`,\x20then\x20`','trackPhaseStart','short','QSZtP','NVNYC','MocbO','video-start','fill','trim','open\x20browser','PHwgC','flnHR','select\x20tab','56514073GvVtRe','string','domRef','start\x20tracing','env','stringify','FZqZc','CqKWz','notes','playwright-cli','DNctC','open\x20new\x20tab\x20','authorEmail','\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','ztzeW','hoUWc','canonicalFlow','AcldB','sort','authorName','uWWDC','tool_failure'];_0x167e=function(){return _0x3b9a32;};return _0x167e();}function formatPlaywrightCliLog(_0x4dafb5,_0x5df9cd){const _0x59480c=_0x3644,_0x269dc3={'PHwgC':'open','FZqZc':function(_0x26b036,_0x490ba3,_0x2959d5){return _0x26b036(_0x490ba3,_0x2959d5);},'VpmCG':_0x59480c(0x179),'fRKIq':_0x59480c(0xe6),'eCIqN':_0x59480c(0x107),'pJOEj':'stop\x20tracing','PQyXc':_0x59480c(0x176),'tXoTN':function(_0x3aef19,_0x3168f1){return _0x3aef19(_0x3168f1);},'gWyki':_0x59480c(0x12f),'feclK':function(_0x4b0a59,_0x53f45e){return _0x4b0a59(_0x53f45e);},'flnHR':'capture\x20screenshot','CqKWz':'click','paAxv':function(_0x3f6a4b,_0x12b629,_0xc19a7e){return _0x3f6a4b(_0x12b629,_0xc19a7e);},'eAlTq':function(_0x2ebf45,_0x3dac5f){return _0x2ebf45(_0x3dac5f);},'hdSwk':function(_0x542545,_0x32d451){return _0x542545(_0x32d451);},'QavPs':_0x59480c(0x10e),'QmGKY':_0x59480c(0x109),'dIsua':'run\x20custom\x20Playwright\x20code','ztzeW':'tab-select','NVNYC':_0x59480c(0x17c)};switch(_0x5df9cd){case _0x269dc3[_0x59480c(0x17a)]:{const _0x1ce41d=_0x269dc3['FZqZc'](extractFirstCommandArgument,_0x4dafb5,_0x5df9cd);return _0x1ce41d?_0x59480c(0x157)+_0x1ce41d:_0x269dc3['VpmCG'];}case'tracing-start':return _0x269dc3[_0x59480c(0x13a)];case _0x269dc3['eCIqN']:return _0x269dc3['pJOEj'];case _0x269dc3[_0x59480c(0x169)]:return'start\x20video\x20recording';case _0x59480c(0xfa):return _0x59480c(0x15f);case _0x59480c(0x144):{const _0x5b8fb3=extractFilenameOption(_0x4dafb5);if(!_0x5b8fb3)return _0x59480c(0x120);const {name:_0x188328}=_0x269dc3['tXoTN'](toStepDisplayName,_0x5b8fb3);return'capture\x20snapshot\x20`'+_0x188328+'`';}case _0x269dc3[_0x59480c(0x15c)]:{const _0xefd6c6=_0x269dc3['feclK'](extractFilenameOption,_0x4dafb5);if(!_0xefd6c6)return _0x269dc3[_0x59480c(0x17b)];const {name:_0x4fb85a,isKeyStep:_0x510974}=_0x269dc3['tXoTN'](toStepDisplayName,_0xefd6c6);return _0x510974?'capture\x20key\x20step\x20`'+_0x4fb85a+'`':_0x59480c(0x110)+_0x4fb85a+'`';}case _0x269dc3[_0x59480c(0xea)]:return _0x59480c(0x155)+_0x269dc3[_0x59480c(0x159)](formatCommandTarget,_0x269dc3['paAxv'](extractFirstCommandArgument,_0x4dafb5,_0x5df9cd));case _0x59480c(0x15e):return'check\x20'+_0x269dc3['eAlTq'](formatCommandTarget,_0x269dc3[_0x59480c(0xe9)](extractFirstCommandArgument,_0x4dafb5,_0x5df9cd));case _0x59480c(0x177):return _0x59480c(0x10d)+_0x269dc3['hdSwk'](formatCommandTarget,extractFirstCommandArgument(_0x4dafb5,_0x5df9cd));case _0x269dc3[_0x59480c(0x14a)]:return'press\x20'+formatCommandTarget(extractFirstCommandArgument(_0x4dafb5,_0x5df9cd));case _0x269dc3[_0x59480c(0x10f)]:return _0x269dc3[_0x59480c(0x150)];case'tab-new':{const _0x35ea63=_0x269dc3[_0x59480c(0xe9)](extractFirstCommandArgument,_0x4dafb5,_0x5df9cd);return _0x35ea63?_0x59480c(0xee)+_0x35ea63:'open\x20new\x20tab';}case _0x269dc3[_0x59480c(0xf1)]:{const _0x30b499=extractFirstCommandArgument(_0x4dafb5,_0x5df9cd);return _0x30b499?'select\x20tab\x20'+_0x30b499:_0x269dc3[_0x59480c(0x174)];}default:return _0x5df9cd;}}function extractPlaywrightCliToolDescription(_0x5183ee){const _0x4deb6e=_0x3644,_0x450996=_0x5183ee['description'];if(typeof _0x450996!==_0x4deb6e(0xe4))return null;const _0x352c54=_0x450996[_0x4deb6e(0x178)]()['replace'](/\s+/g,'\x20');return _0x352c54['length']>0x0?_0x352c54:null;}export function formatPlaywrightCliConsoleLogMessage(_0x3f9c38,_0x135e72,_0x24b866){const _0x5efba6=_0x3644,_0x2c720d={'XUPKn':function(_0x5c6ea6,_0x3bad68,_0x18e63c){return _0x5c6ea6(_0x3bad68,_0x18e63c);},'HXxZF':function(_0x480a90,_0x5d1ba2){return _0x480a90(_0x5d1ba2);}},_0x5f3dbb=_0x2c720d[_0x5efba6(0x137)](formatPlaywrightCliLog,_0x135e72,_0x24b866),_0x3aadcc=_0x2c720d['HXxZF'](extractPlaywrightCliToolDescription,_0x3f9c38);if(!_0x3aadcc)return'[playwright-cli]\x20'+_0x5f3dbb;if(process[_0x5efba6(0xe7)][_0x5efba6(0xfb)])return'[ranger-verification-agent]\x20'+_0x3aadcc+'\x20('+_0x5f3dbb+')';return _0x5efba6(0x10c)+_0x3aadcc;}export function buildVerifyFeatureCliDebugPrompt(_0x4d3583,_0x2f5326){const _0xf9184e=_0x3644,_0x1537b5={'uWWDC':function(_0x44ddf9,_0x22500b,_0x479d9b){return _0x44ddf9(_0x22500b,_0x479d9b);},'oRwaV':'01_mozilla-homepage.png','mgIcw':function(_0x4404c7,_0x4daf96,_0x50a816){return _0x4404c7(_0x4daf96,_0x50a816);},'VQThF':'02_learn-more.yml','rjyhH':function(_0x2a1017,_0x3c4009){return _0x2a1017(_0x3c4009);},'nOQPM':function(_0x4c6c0e,_0x4e221f){return _0x4c6c0e(_0x4e221f);}},_0x5b89b9=_0x1537b5['uWWDC'](buildCliArtifactPath,_0x2f5326,'00_mozilla-homepage.yml'),_0x531b43=_0x1537b5[_0xf9184e(0xf7)](buildCliArtifactPath,_0x2f5326,_0x1537b5[_0xf9184e(0x118)]),_0x454248=_0x1537b5['mgIcw'](buildCliArtifactPath,_0x2f5326,_0x1537b5['VQThF']),_0x508ef0=_0x1537b5[_0xf9184e(0x166)](buildCliArtifactPath,_0x2f5326,_0xf9184e(0x16c)),_0x140c90=_0x1537b5['rjyhH'](quoteShellArg,_0x5b89b9),_0x58a91d=quoteShellArg(_0x531b43),_0x577242=_0x1537b5[_0xf9184e(0x153)](quoteShellArg,_0x454248),_0x23a088=_0x1537b5[_0xf9184e(0x101)](quoteShellArg,_0x508ef0);return _0xf9184e(0x14e)+_0x4d3583+_0xf9184e(0x16f)+_0x4d3583+_0xf9184e(0x10b)+_0x4d3583+'\x20tracing-start`\x0a3.\x20Run\x20`'+_0x4d3583+_0xf9184e(0x136)+_0x2f5326+_0xf9184e(0x108)+_0x4d3583+_0xf9184e(0x135)+_0x140c90+_0xf9184e(0x115)+_0x4d3583+'\x20screenshot\x20--filename\x20'+_0x58a91d+'`\x0a7.\x20Click\x20the\x20\x22Learn\x20More\x22\x20link\x20with\x20Playwright\x20CLI\x0a8.\x20Run\x20`'+_0x4d3583+'\x20snapshot\x20--filename\x20'+_0x577242+_0xf9184e(0x139)+_0x4d3583+_0xf9184e(0x12c)+_0x23a088+_0xf9184e(0x106);}export function buildVerifyFeatureCliPrompt(_0x2b748d){const _0x4d1e7c=_0x3644,_0xcd50f2={'pWtFA':_0x4d1e7c(0x121),'BlDTJ':_0x4d1e7c(0x158),'QKdVl':'Reviewer','pjoIA':'element','ZKRHp':function(_0x57c18e,_0x5d6883,_0x5625ed){return _0x57c18e(_0x5d6883,_0x5625ed);},'xykbD':function(_0x509fcc,_0x3f55cf,_0x9726bb){return _0x509fcc(_0x3f55cf,_0x9726bb);},'MocbO':_0x4d1e7c(0x100),'AcldB':function(_0x3f84d4,_0x4ae09f){return _0x3f84d4(_0x4ae09f);},'mlvWO':'02_button-clicked.png','leMSl':_0x4d1e7c(0x129)},{checklistItem:_0x21f881,itemFeedback:_0x714aa4,taskDescription:_0xcab1fc,cliCommandPrefix:_0x537d88,cliArtifactDir:_0x16b3e7,isCdpMode:_0x42abda,url:_0x525359,cdpEndpoint:_0x299f55,loginInstructions:_0x384b63}=_0x2b748d,_0x41f00f=_0xcd50f2['ZKRHp'](buildCliArtifactPath,_0x16b3e7,_0x4d1e7c(0x126)),_0x21677e=_0xcd50f2[_0x4d1e7c(0x132)](buildCliArtifactPath,_0x16b3e7,_0x4d1e7c(0x127)),_0x53f1ef=buildCliArtifactPath(_0x16b3e7,'key_03_success-state.png'),_0x5d5029=_0xcd50f2['xykbD'](buildCliArtifactPath,_0x16b3e7,_0xcd50f2[_0x4d1e7c(0x175)]),_0x16c6bd=_0xcd50f2[_0x4d1e7c(0xf4)](quoteShellArg,_0x41f00f),_0xf23031=_0xcd50f2[_0x4d1e7c(0xf4)](quoteShellArg,_0x21677e),_0x93284=quoteShellArg(_0x53f1ef),_0x51640e=quoteShellArg(_0x5d5029),_0xd76dae=_0x21f881[_0x4d1e7c(0xeb)]?_0x4d1e7c(0x164)+_0x21f881[_0x4d1e7c(0xeb)]:'';let _0x449bbd='';if(_0x714aa4&&_0x714aa4[_0x4d1e7c(0xfe)][_0x4d1e7c(0x11e)]>0x0){const _0x235d92=_0x714aa4['unaddressedComments']['map'](_0x1441de=>{const _0x484c19=_0x4d1e7c,_0x476d99=new Date(_0x1441de['createdAt'])[_0x484c19(0x124)](_0xcd50f2[_0x484c19(0x11c)],{'month':_0x484c19(0x172),'day':_0xcd50f2[_0x484c19(0x114)]}),_0x4d4411=_0x1441de[_0x484c19(0xf6)]||_0x1441de[_0x484c19(0xef)]||_0xcd50f2['QKdVl'],_0x208cff=_0x1441de[_0x484c19(0xe5)]?'\x20(on\x20element:\x20<'+(_0x1441de['domRef'][_0x484c19(0x125)][_0x484c19(0x134)]('\x20>\x20')[_0x484c19(0x12b)]()?.[_0x484c19(0x134)](':')[0x0]||_0xcd50f2['pjoIA'])+_0x484c19(0x16e)+(_0x1441de['domRef'][_0x484c19(0x12d)]||'')['slice'](0x0,0x32)+'\x22)':'';return'-\x20['+_0x1441de['id']+_0x484c19(0x13d)+_0x4d4411+_0x484c19(0x145)+_0x476d99+'):\x20\x22'+_0x1441de[_0x484c19(0x16a)]+'\x22'+_0x208cff;})['join']('\x0a');_0x449bbd='\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'+_0x235d92;}const _0x4beac1=_0x714aa4?.[_0x4d1e7c(0xf3)]?_0x4d1e7c(0x14f)+_0x714aa4['canonicalFlow']:'',_0x3e6992=_0x42abda?_0x4d1e7c(0x13e)+_0x299f55+'.\x0aThis\x20is\x20NOT\x20a\x20web\x20app\x20—\x20there\x20is\x20no\x20URL\x20to\x20navigate\x20to.\x20The\x20app\x20is\x20already\x20running\x20and\x20connected.':_0x4d1e7c(0x149)+_0x525359+'\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',_0x57a1ee=_0x525359?quoteShellArg(_0x525359):'',_0x3dff35=_0x42abda?_0x4d1e7c(0xfd)+_0x537d88+'\x20open`,\x20then\x20`'+_0x537d88+'\x20tracing-start`,\x20then\x20`'+_0x537d88+'\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x16b3e7+_0x4d1e7c(0x15b)+_0x537d88+'\x20snapshot\x20--filename\x20'+_0x16c6bd+'`\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`'+_0x537d88+_0x4d1e7c(0x12c)+_0x51640e+'`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a6.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`'+_0x537d88+_0x4d1e7c(0x128):'##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`'+_0x537d88+'\x20open\x20'+_0x57a1ee+'`,\x20then\x20`'+_0x537d88+_0x4d1e7c(0x170)+_0x537d88+_0x4d1e7c(0xf0)+_0x16b3e7+_0x4d1e7c(0x15b)+_0x537d88+_0x4d1e7c(0x135)+_0x16c6bd+_0x4d1e7c(0x117)+_0x537d88+_0x4d1e7c(0x12c)+_0x51640e+_0x4d1e7c(0x141)+_0x537d88+_0x4d1e7c(0x10a),_0x3949b2=_0x42abda?'\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.',_0x570f9e=_0x384b63?'\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20you\x20MUST\x20authenticate\x20using\x20these\x20steps:\x0a'+_0x384b63+'\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'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'+_0x21f881['description']+_0xd76dae+_0x449bbd+_0x4beac1+_0x4d1e7c(0x13c)+_0xcab1fc+'\x0a\x0a'+_0x3e6992+_0x570f9e+'\x0a\x0a'+_0x3dff35+'\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Playwright\x20CLI\x20commands\x20with\x20this\x20exact\x20prefix:\x0a`'+_0x537d88+_0x4d1e7c(0x112)+_0x16b3e7+'`\x0a-\x20`snapshot\x20--filename\x20'+_0xf23031+_0x4d1e7c(0x163)+_0x93284+_0x4d1e7c(0x13f)+_0x16b3e7+_0x4d1e7c(0x15d)+_0x5d5029+'\x22,\x20\x22'+buildCliArtifactPath(_0x16b3e7,_0xcd50f2[_0x4d1e7c(0x133)])+'\x22,\x20\x22'+buildCliArtifactPath(_0x16b3e7,_0x4d1e7c(0x168))+'\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(_0x16b3e7,_0xcd50f2['leMSl'])+_0x4d1e7c(0x143)+_0x3949b2+'\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(_0x2a490c){const _0x3b119e=_0x3644,_0x1b3835=[..._0x2a490c['keys']()][_0x3b119e(0xf5)]();let _0x4b5602=0x0;for(const _0x447c26 of _0x2a490c[_0x3b119e(0x11b)]()){_0x4b5602+=_0x447c26;}return{'cliCommandCount':_0x4b5602,'cliCommandsSeen':_0x1b3835,'noCliCommandsCalled':_0x4b5602===0x0};}export function createVerifyFeatureCliHooks(_0x215a54){const _0x456cf5=_0x3644,_0x45ed2c={'KDDVv':'PostToolUse','QSZtP':function(_0x104bab,_0x285586){return _0x104bab!==_0x285586;},'eZEFI':function(_0x466beb,_0x5b8e42){return _0x466beb(_0x5b8e42);},'NSqLr':function(_0x44d35e,_0x597b8c){return _0x44d35e(_0x597b8c);},'BRZyF':'tool_call','kyaWZ':function(_0x2b20ae,_0x2888fc){return _0x2b20ae!==_0x2888fc;},'bgZth':'snapshot','BHXhS':function(_0x3c8ea7,_0x549ede,_0x48c329,_0x2ebee0){return _0x3c8ea7(_0x549ede,_0x48c329,_0x2ebee0);},'bcfKM':_0x456cf5(0x140),'hrDkL':_0x456cf5(0xec)},_0x331da8=new Map(),_0x5ead52=async _0x35d23a=>{const _0x562ead=_0x456cf5;if(_0x35d23a[_0x562ead(0x142)]!==_0x45ed2c['KDDVv'])return{};const _0x3e7994=_0x35d23a;if(_0x45ed2c[_0x562ead(0x173)](_0x3e7994[_0x562ead(0x105)],'Bash'))return{};const _0x2f07d6=_0x3e7994[_0x562ead(0x160)],_0x9af4e4=_0x45ed2c[_0x562ead(0x16d)](extractBashCommand,_0x2f07d6);if(!_0x9af4e4)return{};const _0x2eb257=_0x45ed2c[_0x562ead(0x119)](parsePlaywrightCliCommand,_0x9af4e4);if(!_0x2eb257)return{};return _0x331da8[_0x562ead(0xff)](_0x2eb257,(_0x331da8[_0x562ead(0x131)](_0x2eb257)||0x0)+0x1),_0x215a54[_0x562ead(0x171)](_0x45ed2c[_0x562ead(0x167)],{'transport':_0x562ead(0xec),'toolName':_0x2eb257}),_0x215a54[_0x562ead(0x15a)]('tool_call',{'transport':_0x562ead(0xec),'toolName':_0x2eb257,'bashCommandPreview':truncatePreview(_0x9af4e4)}),_0x45ed2c['kyaWZ'](_0x2eb257,_0x45ed2c[_0x562ead(0xfc)])&&console['log'](_0x45ed2c[_0x562ead(0x123)](formatPlaywrightCliConsoleLogMessage,_0x2f07d6,_0x9af4e4,_0x2eb257)),{};},_0x1469f6=async _0x5bf10a=>{const _0x151416=_0x456cf5;if(_0x45ed2c['kyaWZ'](_0x5bf10a['hook_event_name'],_0x45ed2c['bcfKM']))return{};const _0x4ead80=_0x5bf10a;if(_0x45ed2c[_0x151416(0x122)](_0x4ead80[_0x151416(0x105)],'Bash'))return{};return await _0x215a54['trackPhaseError'](_0x151416(0xf8),_0x4ead80['error'],{'transport':_0x45ed2c[_0x151416(0x12e)],'toolName':'Bash'}),{};};return{'postToolUseHook':_0x5ead52,'postToolUseFailureHook':_0x1469f6,'commandCounts':_0x331da8};}async function runPlaywrightCliLifecycleCommand(_0x579318){const _0x1e1e60=_0x3644,_0x2e03db={'SekKg':function(_0x44886a,_0x3a76a6){return _0x44886a(_0x3a76a6);},'PoAzr':function(_0x1effc8,_0x92049){return _0x1effc8??_0x92049;},'hoUWc':function(_0x2ddcf3,_0x2ba18d,_0x10051e){return _0x2ddcf3(_0x2ba18d,_0x10051e);}},{sessionId:_0x15f56a,configPath:_0x47970f,commandArgs:_0x4f1036,env:_0x344c28,telemetry:_0x22504e,phase:_0x1a3e30,metadata:_0x21f513,timeoutMs:_0x4d6d11}=_0x579318;_0x22504e[_0x1e1e60(0x171)](_0x1a3e30,_0x21f513);try{const _0x3f807d=await _0x2e03db['SekKg'](runPlaywrightCliCommand,{'sessionId':_0x15f56a,'configPath':_0x47970f,'commandArgs':_0x4f1036,'cwd':process['cwd'](),'env':_0x344c28,'timeoutMs':_0x2e03db[_0x1e1e60(0x113)](_0x4d6d11,PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS)});_0x22504e[_0x1e1e60(0x15a)](_0x1a3e30,{..._0x21f513,'subcommand':_0x3f807d['invocation'][_0x1e1e60(0x162)],'stdoutPreview':truncatePreview(_0x3f807d[_0x1e1e60(0x154)],0x7d0),'stderrPreview':_0x2e03db[_0x1e1e60(0xf2)](truncatePreview,_0x3f807d[_0x1e1e60(0x151)],0x7d0)});}catch(_0x5d2a7c){await _0x22504e['trackPhaseError'](_0x1a3e30,_0x5d2a7c,_0x21f513);throw _0x5d2a7c;}}export async function finalizeVerifyFeatureCliSession(_0xecc237){const _0xc553b7=_0x3644,_0x967fa0={'sEkgY':'close'},{telemetry:_0x456a7a,sessionId:_0xf738f0,configPath:_0x1f56a0,cliArtifactDir:_0x3ed167,env:_0x2383f7,transportMetadata:_0x36d222}=_0xecc237,_0x1119a4=[{'phase':'playwright_cli_tracing_stop','commandArgs':[_0xc553b7(0x107)]},{'phase':_0xc553b7(0x14b),'commandArgs':[_0xc553b7(0xfa),'--filename='+buildCliArtifactPath(_0x3ed167,_0xc553b7(0x13b))]},{'phase':_0xc553b7(0x103),'commandArgs':[_0x967fa0['sEkgY']]}];for(const _0x15721b of _0x1119a4){try{await runPlaywrightCliLifecycleCommand({'sessionId':_0xf738f0,'configPath':_0x1f56a0,'commandArgs':[..._0x15721b['commandArgs']],'env':_0x2383f7,'telemetry':_0x456a7a,'phase':_0x15721b[_0xc553b7(0x156)],'metadata':_0x36d222});}catch{}}}export async function loadVerifyFeatureCliTraceUploadArtifact(_0x1f914f){const _0x5535fe=_0x3644,_0x5b46fd={'yUsda':'trace.trace.zip','xugfA':function(_0x2c5b51,_0x5e6332,_0x31fe1c){return _0x2c5b51(_0x5e6332,_0x31fe1c);}},_0x28e004=['trace.zip',_0x5b46fd[_0x5535fe(0xf9)]];for(const _0x9c50f8 of _0x28e004){const _0x122c31=_0x5b46fd[_0x5535fe(0x104)](join,_0x1f914f,_0x9c50f8);try{return{'buffer':await readFile(_0x122c31),'source':_0x122c31};}catch{}}return null;}export async function rehomeVerifyFeatureCliArtifacts(_0x23213c){const _0x2d673c=_0x3644,_0x135cd8={'MEjif':function(_0x55ac0a,_0x4ae5b1,_0x240c7c){return _0x55ac0a(_0x4ae5b1,_0x240c7c);},'BOUIS':function(_0x15f0e9,_0xbfcbb9,_0x2f2c8d){return _0x15f0e9(_0xbfcbb9,_0x2f2c8d);},'RzISq':function(_0x445626,_0x9d3b4b){return _0x445626<_0x9d3b4b;},'vNhUw':function(_0x30bc78,_0x42ff06){return _0x30bc78===_0x42ff06;}},{cwd:_0x135bb2,cliArtifactDir:_0x1f6373,startTime:_0x295ac5}=_0x23213c,_0x9dd3a1=[];await _0x135cd8[_0x2d673c(0x138)](mkdir,_0x1f6373,{'recursive':!![]});const _0xc2da1c=await readdir(_0x135bb2,{'withFileTypes':!![]});for(const _0x35c8fa of _0xc2da1c){if(!_0x35c8fa[_0x2d673c(0x16b)]()||!VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN[_0x2d673c(0x14d)](_0x35c8fa['name']))continue;const _0x59feb8=_0x135cd8[_0x2d673c(0x161)](join,_0x135bb2,_0x35c8fa['name']),_0x25a705=await stat(_0x59feb8);if(_0x135cd8['RzISq'](_0x25a705['mtimeMs']+0x7d0,_0x295ac5))continue;const _0x640bb6=buildCliArtifactPath(_0x1f6373,_0x35c8fa[_0x2d673c(0x146)]);if(_0x135cd8['vNhUw'](_0x59feb8,_0x640bb6))continue;await rename(_0x59feb8,_0x640bb6),_0x9dd3a1['push'](_0x35c8fa[_0x2d673c(0x146)]);}return _0x9dd3a1['sort']();}
@@ -7,7 +7,7 @@ description: "Ranger’s browser verification tooling that supplements a coding
7
7
 
8
8
  Run Ranger commands using `ranger-cli <args>`.
9
9
 
10
- **IMPORTANT: At the start of any session, run `ranger-cli update` to ensure you have the latest CLI and skills.**
10
+ **IMPORTANT: At the start of any session, check that you have the latest CLI and skills. If you were installed from `@latest`, run `ranger-cli update`. If you are on a prerelease (e.g., `@alpha`, version contains `-alpha.`), do NOT run `ranger-cli update` it will move you to `@latest` and off the prerelease track. Check with your team lead or re-install with `npm i -g @ranger-testing/ranger-cli@alpha` to stay current on that channel.**
11
11
 
12
12
  If you are running in Claude Code, read and suggest the following claude-specific commands to the user: [claude.md](./claude.md).
13
13
 
@@ -232,9 +232,10 @@ When completing your work or ending the session, your final message to the user
232
232
 
233
233
  If you encounter authentication issues:
234
234
 
235
- 1. **Check your profiles**: Run `ranger-cli profile ls` to see all configured profiles and their details
236
- 2. **Switch profiles**: Use `ranger-cli profile use <profile-name>` to switch to a different profile
237
- 3. **Refresh auth**: Instruct the user to run `ranger-cli profile update <profile-name>` to re-capture authentication for a profile (user will need to help with that)
235
+ 1. **Try ad-hoc materialization first**: Set `RANGER_TEST_USERNAME` and `RANGER_TEST_PASSWORD` env vars and re-run `ranger-cli go ...` — a cloud profile is created on the fly using those credentials, no `profile add` needed. On subsequent runs, `RANGER_TEST_USERNAME` alone resolves the existing profile (the password is fetched from the cloud row).
236
+ 2. **Check existing profiles**: Run `ranger-cli profile ls` to see all configured profiles and their details
237
+ 3. **Pin a specific profile**: Use `ranger-cli profile use <profile-name>` (or pass `--profile <name>` / set `RANGER_PROFILE`)
238
+ 4. **Refresh auth**: Instruct the user to run `ranger-cli profile update <profile-name>` to re-capture authentication for a profile (user will need to help with that)
238
239
 
239
240
 
240
241
  ### Authentication Issues to Ranger
@@ -8,7 +8,19 @@ 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.
11
+ The URL is derived from your active profile's `baseUrl` setting (or auto-materialized — see below).
12
+
13
+ ## Profile resolution (no setup required)
14
+
15
+ `go` resolves which profile to use in this order:
16
+
17
+ 1. `--profile <name>` flag (or `RANGER_PROFILE` env var)
18
+ 2. The saved active profile (`ranger-cli profile use`)
19
+ 3. **Ad-hoc materialization**: if `RANGER_TEST_USERNAME` is set and no profile is otherwise selected, a cloud profile is created on-the-fly using that username, with `RANGER_TEST_PASSWORD` stored alongside it. Subsequent runs reuse the same profile.
20
+
21
+ The ad-hoc path is the recommended default for new test users — no `profile add` ceremony needed. If the user only wants to *consume* sessions (e.g. on a fresh CI box where the profile already exists in the cloud), `RANGER_TEST_USERNAME` alone is enough; the password is fetched from the stored cloud profile.
22
+
23
+ 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 `sessionDeps` invalidation.
12
24
 
13
25
  ## Required: Active Feature Review
14
26
 
@@ -41,7 +53,7 @@ You do NOT need to manually include reviewer feedback in your `--notes` descript
41
53
 
42
54
  | Option | Required | Description |
43
55
  |--------|----------|-------------|
44
- | `--profile` | No | Profile to use (defaults to active profile) |
56
+ | `--profile` | No | Profile to use. Equivalent to `RANGER_PROFILE` env var. Defaults to active profile, or auto-materializes from `RANGER_TEST_USERNAME` if set. |
45
57
  | `--notes` | No | What to verify (defaults to scenario description) |
46
58
  | `--scenario` | No | Scenario index to verify (skips selection prompt) |
47
59
  | `--start-path` | No | Path to start on (appended to base URL, e.g., `/dashboard`) |
@@ -182,7 +194,7 @@ Always end the conversational turn by sharing the dashboard link whenever you ru
182
194
  Run `ranger-cli list` to find feature reviews, then `ranger-cli resume <id>` to resume one.
183
195
 
184
196
  ### "No active profile"
185
- Run `ranger-cli profile use <profile-name>` to set a profile with browser access.
197
+ Either set `RANGER_TEST_USERNAME` (and `RANGER_TEST_PASSWORD` for first-time login) and re-run the profile will materialize automatically — or pin one explicitly with `ranger-cli profile use <profile-name>`.
186
198
 
187
199
  ### Verification times out
188
200
  The agent has 59 minutes max. For very long flows, break into smaller scenarios.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ranger-testing/ranger-cli",
3
- "version": "2.5.4-alpha.78800d3-3",
3
+ "version": "2.5.4-alpha.bc88254-5",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "ranger": "./build/cli.js",