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

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 (77) 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 -0
  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 -0
  42. package/build/commands/utils/cloudProfileSession.js +1 -0
  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 -0
  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 -0
  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 -0
  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 -0
  63. package/build/commands/utils/resolveProfileUrl.js +1 -0
  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/package.json +6 -2
@@ -1 +1 @@
1
- (function(_0xc3785f,_0x6f68f4){const _0x1dcd5f=_0x1906,_0x14e9e8=_0xc3785f();while(!![]){try{const _0x2589a3=-parseInt(_0x1dcd5f(0x120))/0x1+-parseInt(_0x1dcd5f(0xbe))/0x2*(-parseInt(_0x1dcd5f(0x123))/0x3)+-parseInt(_0x1dcd5f(0xf3))/0x4+-parseInt(_0x1dcd5f(0xcd))/0x5+parseInt(_0x1dcd5f(0xfd))/0x6+parseInt(_0x1dcd5f(0xcc))/0x7*(parseInt(_0x1dcd5f(0x101))/0x8)+parseInt(_0x1dcd5f(0xda))/0x9*(parseInt(_0x1dcd5f(0x105))/0xa);if(_0x2589a3===_0x6f68f4)break;else _0x14e9e8['push'](_0x14e9e8['shift']());}catch(_0x476f29){_0x14e9e8['push'](_0x14e9e8['shift']());}}}(_0x3e1e,0xa034e));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 _0x3e1e(){const _0x595fd5=['nTWDe','--filename=','(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))','tool_call','mtimeMs','tZDQi','press','YwWpn','capture\x20snapshot','trackPhaseError','values','start\x20video\x20recording','fDzmm','02_state.yml','capture\x20snapshot\x20`','03_result-visible.png','QonmR','4266324YOKqMh','\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.','\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','\x0a\x0a##\x20Additional\x20Notes\x0a','\x22,\x20\x22','push','DEBUG','BlppD','mnoHK','snapshot','5525802DXcFnv','`\x0a\x0a-\x20Write\x20all\x20artifacts\x20under\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','uBanL','221664iBYGYI','You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Playwright\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a','fill\x20','stderr','20QRFyQa','subcommand','jbeng','domRef','\x0a\x0a1.\x20Run\x20`','test','Hvgtu','CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20','pop','error','`\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`','BLagu','pFnGX','):\x20\x22','trackPhaseEnd','textContent','numeric','unaddressedComments','tracing-stop','capture\x20screenshot','voKXt','description','close','canonicalFlow','BrLHk','selector','tool_input','195319OvhOKS','env','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a5.\x20Run\x20`','3045XmydOW','\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','PostToolUseFailure','.\x0aThis\x20is\x20NOT\x20a\x20web\x20app\x20—\x20there\x20is\x20no\x20URL\x20to\x20navigate\x20to.\x20The\x20app\x20is\x20already\x20running\x20and\x20connected.','check','eEPeT','GlgiT','isFile','##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20(Chrome\x20DevTools\x20Protocol)\x20at\x20','ZAcWi','name','dXKXI','set','XNYyU','-\x20[','playwright-cli','cFoBI','RqMat','`\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`','ref\x20','\x20tracing-start`\x0a3.\x20Run\x20`','Bash','stop\x20tracing','map','invocation','authorName','ptAuM','mGyuo','iqcGc','EuGeZ','UVmLE','video-start','`\x0a7.\x20Click\x20the\x20\x22Learn\x20More\x22\x20link\x20with\x20Playwright\x20CLI\x0a8.\x20Run\x20`','SesNj','hook_event_name','`\x0a10.\x20Return\x20immediately\x20with\x20the\x20structured\x20output\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.','trace.zip','trim','run-code','\x20screenshot\x20--filename\x20','trackPhaseStart','cwd','fill','match','310MLINek','key_04_success-state.png','wccsK','split','\x20snapshot\x20--filename\x20','\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','run\x20custom\x20Playwright\x20code','HFjfv','replace','tracing-start','stop\x20video\x20recording','yjvfV','open','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`','259zPMeKY','6294320exfDXP','\x0a\x0a##\x20Task\x20to\x20Execute\x0a','trace.trace.zip','tool_name','03_learn-more.png','element','`\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`','\x20video-start`\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','sort','(?:^|\x5cs)','HKBvu','\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a','JuCFV','4830669TvfbrR','commandArgs','janFE','##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`','02_button-clicked.png','press\x20','\x5c$&','NdWgF'];_0x3e1e=function(){return _0x595fd5;};return _0x3e1e();}function truncatePreview(_0x20ed24,_0x12edfc=PLAYWRIGHT_CLI_PREVIEW_LIMIT){return _0x20ed24['length']>_0x12edfc?_0x20ed24['slice'](0x0,_0x12edfc)+'...':_0x20ed24;}function buildCliArtifactPath(_0x245d07,_0x4424a1){const _0x24b3b6=_0x1906,_0x271358={'ZAcWi':function(_0x339ade,_0x417183,_0x2a62f0){return _0x339ade(_0x417183,_0x2a62f0);}};return _0x271358[_0x24b3b6(0x12c)](join,_0x245d07,_0x4424a1);}function _0x1906(_0x13987c,_0x98b125){_0x13987c=_0x13987c-0xa6;const _0x3e1ed9=_0x3e1e();let _0x190632=_0x3e1ed9[_0x13987c];return _0x190632;}function toStepDisplayName(_0x611250){const _0x123f57=_0x1906,_0x13e715={'HFjfv':function(_0x51ae87,_0x25eff2){return _0x51ae87(_0x25eff2);}},_0x20c995=_0x13e715[_0x123f57(0xc5)](basename,_0x611250)['replace'](/\.(?:png|ya?ml)$/i,'')['replace'](/^key_/i,'')['replace'](/^\d+_/,'')[_0x123f57(0xc6)](/-/g,'\x20');return{'name':_0x20c995,'isKeyStep':/^key_/i['test'](basename(_0x611250))};}function extractShellValue(_0x98f4b7){if(!_0x98f4b7)return null;return _0x98f4b7[0x1]??_0x98f4b7[0x2]??_0x98f4b7[0x3]??null;}function extractFilenameOption(_0x118230){return extractShellValue(_0x118230['match'](/--filename(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function extractFirstCommandArgument(_0x584aef,_0x27887e){const _0x19e55c=_0x1906,_0x360d43={'SesNj':_0x19e55c(0xe0),'fDzmm':function(_0x4b211e,_0x4ab5d4){return _0x4b211e(_0x4ab5d4);}},_0x11889b=_0x27887e[_0x19e55c(0xc6)](/[.*+?^${}()|[\]\\]/g,_0x360d43[_0x19e55c(0xb3)]);return _0x360d43[_0x19e55c(0xee)](extractShellValue,_0x584aef[_0x19e55c(0xbd)](new RegExp(_0x19e55c(0xd6)+_0x11889b+_0x19e55c(0xe4))));}function formatCommandTarget(_0x44523f){const _0x1a2230=_0x1906,_0x56bc82={'plrAw':'target'};if(!_0x44523f)return _0x56bc82['plrAw'];if(/^e\d+$/i[_0x1a2230(0x10a)](_0x44523f))return _0x1a2230(0x136)+_0x44523f;return JSON['stringify'](truncatePreview(_0x44523f,0x78));}function formatPlaywrightCliLog(_0x22859d,_0x6085c3){const _0x460921=_0x1906,_0x313a2c={'tXGvZ':_0x460921(0xca),'nTWDe':function(_0x33ae35,_0x40a40f,_0x2804be){return _0x33ae35(_0x40a40f,_0x2804be);},'voKXt':'open\x20browser','uBanL':_0x460921(0xc7),'HKBvu':'start\x20tracing','fCBFX':_0x460921(0xed),'bpDMK':_0x460921(0xc8),'QonmR':_0x460921(0xfc),'BlppD':function(_0x173337,_0x5df837){return _0x173337(_0x5df837);},'ZUKuF':'screenshot','BLagu':_0x460921(0x118),'dXKXI':'click','yXqPx':_0x460921(0xbc),'CVVIj':_0x460921(0xc4),'JuCFV':'open\x20new\x20tab','mGyuo':'tab-select','ptAuM':function(_0x13e6d5,_0x197a48,_0xf5f181){return _0x13e6d5(_0x197a48,_0xf5f181);}};switch(_0x6085c3){case _0x313a2c['tXGvZ']:{const _0x20f85b=_0x313a2c[_0x460921(0xe2)](extractFirstCommandArgument,_0x22859d,_0x6085c3);return _0x20f85b?'open\x20'+_0x20f85b:_0x313a2c[_0x460921(0x119)];}case _0x313a2c[_0x460921(0x100)]:return _0x313a2c[_0x460921(0xd7)];case _0x460921(0x117):return _0x460921(0xa8);case _0x460921(0xb1):return _0x313a2c['fCBFX'];case'video-stop':return _0x313a2c['bpDMK'];case _0x313a2c[_0x460921(0xf2)]:{const _0x25e76f=_0x313a2c[_0x460921(0xfa)](extractFilenameOption,_0x22859d);if(!_0x25e76f)return _0x460921(0xea);const {name:_0x198a44}=toStepDisplayName(_0x25e76f);return _0x460921(0xf0)+_0x198a44+'`';}case _0x313a2c['ZUKuF']:{const _0x470fe4=_0x313a2c[_0x460921(0xfa)](extractFilenameOption,_0x22859d);if(!_0x470fe4)return _0x313a2c[_0x460921(0x110)];const {name:_0x2795b6,isKeyStep:_0x277694}=toStepDisplayName(_0x470fe4);return _0x277694?'capture\x20key\x20step\x20`'+_0x2795b6+'`':'capture\x20step\x20`'+_0x2795b6+'`';}case _0x313a2c[_0x460921(0x12e)]:return'click\x20'+formatCommandTarget(extractFirstCommandArgument(_0x22859d,_0x6085c3));case _0x460921(0x127):return'check\x20'+_0x313a2c[_0x460921(0xfa)](formatCommandTarget,_0x313a2c[_0x460921(0xe2)](extractFirstCommandArgument,_0x22859d,_0x6085c3));case _0x313a2c['yXqPx']:return _0x460921(0x103)+formatCommandTarget(extractFirstCommandArgument(_0x22859d,_0x6085c3));case _0x460921(0xe8):return _0x460921(0xdf)+formatCommandTarget(extractFirstCommandArgument(_0x22859d,_0x6085c3));case _0x460921(0xb8):return _0x313a2c['CVVIj'];case'tab-new':{const _0x30d17d=extractFirstCommandArgument(_0x22859d,_0x6085c3);return _0x30d17d?'open\x20new\x20tab\x20'+_0x30d17d:_0x313a2c[_0x460921(0xd9)];}case _0x313a2c[_0x460921(0xad)]:{const _0x51cb4e=_0x313a2c[_0x460921(0xac)](extractFirstCommandArgument,_0x22859d,_0x6085c3);return _0x51cb4e?'select\x20tab\x20'+_0x51cb4e:'select\x20tab';}default:return _0x6085c3;}}function extractPlaywrightCliToolDescription(_0x44118d){const _0xfdc1aa=_0x1906,_0x22232e=_0x44118d['description'];if(typeof _0x22232e!=='string')return null;const _0x48659c=_0x22232e[_0xfdc1aa(0xb7)]()['replace'](/\s+/g,'\x20');return _0x48659c['length']>0x0?_0x48659c:null;}export function formatPlaywrightCliConsoleLogMessage(_0x3d7b39,_0x5de6d2,_0x558024){const _0x28d829=_0x1906,_0x5adfac={'RqMat':function(_0x21c3f0,_0x3caf5d){return _0x21c3f0(_0x3caf5d);}},_0x4d0e92=formatPlaywrightCliLog(_0x5de6d2,_0x558024),_0x48ab94=_0x5adfac[_0x28d829(0x134)](extractPlaywrightCliToolDescription,_0x3d7b39);if(!_0x48ab94)return'[playwright-cli]\x20'+_0x4d0e92;if(process[_0x28d829(0x121)][_0x28d829(0xf9)])return'[ranger-verification-agent]\x20'+_0x48ab94+'\x20('+_0x4d0e92+')';return'[ranger-verification-agent]\x20'+_0x48ab94;}export function buildVerifyFeatureCliDebugPrompt(_0x15372b,_0x4b3fbf){const _0x2c640e=_0x1906,_0x411c4a={'mnoHK':function(_0x5122b2,_0x78efe3,_0x457bca){return _0x5122b2(_0x78efe3,_0x457bca);},'yjvfV':_0x2c640e(0xd1),'Hvgtu':function(_0x226946,_0x38d38e){return _0x226946(_0x38d38e);},'ZacWf':function(_0xf16cfe,_0x1d8018){return _0xf16cfe(_0x1d8018);}},_0x1e7239=_0x411c4a[_0x2c640e(0xfb)](buildCliArtifactPath,_0x4b3fbf,'00_mozilla-homepage.yml'),_0x1a178c=buildCliArtifactPath(_0x4b3fbf,'01_mozilla-homepage.png'),_0x20c7c3=buildCliArtifactPath(_0x4b3fbf,'02_learn-more.yml'),_0x8000a6=buildCliArtifactPath(_0x4b3fbf,_0x411c4a[_0x2c640e(0xc9)]),_0x2eb8a9=_0x411c4a[_0x2c640e(0x10b)](quoteShellArg,_0x1e7239),_0x116d28=_0x411c4a[_0x2c640e(0x10b)](quoteShellArg,_0x1a178c),_0x2f24c0=_0x411c4a['ZacWf'](quoteShellArg,_0x20c7c3),_0x1f604c=quoteShellArg(_0x8000a6);return _0x2c640e(0x102)+_0x15372b+_0x2c640e(0x109)+_0x15372b+'\x20open\x20https://www.mozilla.org`\x0a2.\x20Run\x20`'+_0x15372b+_0x2c640e(0xa6)+_0x15372b+_0x2c640e(0xd4)+_0x4b3fbf+_0x2c640e(0x122)+_0x15372b+'\x20snapshot\x20--filename\x20'+_0x2eb8a9+'`\x0a5.\x20Read\x20the\x20snapshot\x20file\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20reference\x0a6.\x20Run\x20`'+_0x15372b+_0x2c640e(0xb9)+_0x116d28+_0x2c640e(0xb2)+_0x15372b+'\x20snapshot\x20--filename\x20'+_0x2f24c0+'`\x0a9.\x20Run\x20`'+_0x15372b+'\x20screenshot\x20--filename\x20'+_0x1f604c+_0x2c640e(0xb5);}export function buildVerifyFeatureCliPrompt(_0x4eacd5){const _0x4dff8c=_0x1906,_0x18be0a={'zMDby':_0x4dff8c(0x115),'UcNGE':'\x20>\x20','GlgiT':function(_0x1bfef5,_0x37505f,_0x2c5517){return _0x1bfef5(_0x37505f,_0x2c5517);},'pFnGX':'key_03_success-state.png','GTjsq':function(_0x33b853,_0x48e804){return _0x33b853(_0x48e804);},'qlPUL':function(_0x4b04ac,_0x2ffd55){return _0x4b04ac(_0x2ffd55);},'YpUHw':function(_0x2d51ce,_0x37eae4){return _0x2d51ce(_0x37eae4);},'UVmLE':_0x4dff8c(0xde),'XnrLj':_0x4dff8c(0xbf)},{checklistItem:_0x1020a2,itemFeedback:_0x2bc69e,taskDescription:_0xff138e,cliCommandPrefix:_0x35b73e,cliArtifactDir:_0x34036f,isCdpMode:_0x247860,url:_0x1284ce,cdpEndpoint:_0x470506,loginInstructions:_0x48a385}=_0x4eacd5,_0x3c4aec=buildCliArtifactPath(_0x34036f,'01_initial.yml'),_0x35e5cd=buildCliArtifactPath(_0x34036f,_0x4dff8c(0xef)),_0x8061d0=_0x18be0a[_0x4dff8c(0x129)](buildCliArtifactPath,_0x34036f,_0x18be0a[_0x4dff8c(0x111)]),_0x3d503b=_0x18be0a[_0x4dff8c(0x129)](buildCliArtifactPath,_0x34036f,'01_initial-state.png'),_0x5b3c0f=_0x18be0a['GTjsq'](quoteShellArg,_0x3c4aec),_0x3c313f=quoteShellArg(_0x35e5cd),_0x3d20e7=_0x18be0a['qlPUL'](quoteShellArg,_0x8061d0),_0x18477e=_0x18be0a['qlPUL'](quoteShellArg,_0x3d503b),_0x45fe33=_0x1020a2['notes']?_0x4dff8c(0xf6)+_0x1020a2['notes']:'';let _0x5cbb7e='';if(_0x2bc69e&&_0x2bc69e['unaddressedComments']['length']>0x0){const _0x3c8de1=_0x2bc69e[_0x4dff8c(0x116)][_0x4dff8c(0xa9)](_0x13a784=>{const _0xe3073d=_0x4dff8c,_0x4a917c=new Date(_0x13a784['createdAt'])['toLocaleDateString']('en-US',{'month':'short','day':_0x18be0a['zMDby']}),_0x545cc5=_0x13a784[_0xe3073d(0xab)]||_0x13a784['authorEmail']||'Reviewer',_0x5e20c1=_0x13a784[_0xe3073d(0x108)]?'\x20(on\x20element:\x20<'+(_0x13a784[_0xe3073d(0x108)][_0xe3073d(0x11e)][_0xe3073d(0xc1)](_0x18be0a['UcNGE'])[_0xe3073d(0x10d)]()?.['split'](':')[0x0]||_0xe3073d(0xd2))+'>\x20\x22'+(_0x13a784['domRef'][_0xe3073d(0x114)]||'')['slice'](0x0,0x32)+'\x22)':'';return _0xe3073d(0x131)+_0x13a784['id']+']\x20**'+_0x545cc5+'**\x20('+_0x4a917c+_0xe3073d(0x112)+_0x13a784['content']+'\x22'+_0x5e20c1;})['join']('\x0a');_0x5cbb7e='\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'+_0x3c8de1;}const _0x5b1ebe=_0x2bc69e?.[_0x4dff8c(0x11c)]?_0x4dff8c(0xd8)+_0x2bc69e['canonicalFlow']:'',_0x960474=_0x247860?_0x4dff8c(0x12b)+_0x470506+_0x4dff8c(0x126):_0x4dff8c(0x10c)+_0x1284ce+'\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',_0x50f248=_0x1284ce?_0x18be0a['YpUHw'](quoteShellArg,_0x1284ce):'',_0x4b30bf=_0x247860?_0x4dff8c(0xdd)+_0x35b73e+'\x20open`,\x20then\x20`'+_0x35b73e+'\x20tracing-start`,\x20then\x20`'+_0x35b73e+_0x4dff8c(0x124)+_0x34036f+_0x4dff8c(0xcb)+_0x35b73e+'\x20snapshot\x20--filename\x20'+_0x5b3c0f+_0x4dff8c(0x10f)+_0x35b73e+_0x4dff8c(0xb9)+_0x18477e+'`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a6.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`'+_0x35b73e+_0x4dff8c(0xff):'##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`'+_0x35b73e+'\x20open\x20'+_0x50f248+'`,\x20then\x20`'+_0x35b73e+'\x20tracing-start`,\x20then\x20`'+_0x35b73e+'\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x34036f+_0x4dff8c(0xcb)+_0x35b73e+_0x4dff8c(0xc2)+_0x5b3c0f+_0x4dff8c(0xd3)+_0x35b73e+'\x20screenshot\x20--filename\x20'+_0x18477e+'`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a8.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`'+_0x35b73e+_0x4dff8c(0xc3),_0x3b483b=_0x247860?_0x4dff8c(0xf4):'\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.',_0x5059c0=_0x48a385?'\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20you\x20MUST\x20authenticate\x20using\x20these\x20steps:\x0a'+_0x48a385+'\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'+_0x1020a2[_0x4dff8c(0x11a)]+_0x45fe33+_0x5cbb7e+_0x5b1ebe+_0x4dff8c(0xce)+_0xff138e+'\x0a\x0a'+_0x960474+_0x5059c0+'\x0a\x0a'+_0x4b30bf+'\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Playwright\x20CLI\x20commands\x20with\x20this\x20exact\x20prefix:\x0a`'+_0x35b73e+_0x4dff8c(0xfe)+_0x34036f+'`\x0a-\x20`snapshot\x20--filename\x20'+_0x3c313f+'`\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'+_0x3d20e7+_0x4dff8c(0x135)+_0x34036f+'`:\x20\x22'+_0x3d503b+_0x4dff8c(0xf7)+_0x18be0a[_0x4dff8c(0x129)](buildCliArtifactPath,_0x34036f,_0x18be0a[_0x4dff8c(0xb0)])+'\x22,\x20\x22'+buildCliArtifactPath(_0x34036f,_0x4dff8c(0xf1))+_0x4dff8c(0xf5)+_0x18be0a['GlgiT'](buildCliArtifactPath,_0x34036f,_0x18be0a['XnrLj'])+'\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'+_0x3b483b+'\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(_0x533e79){const _0x5ec125=_0x1906,_0x22aed4=[..._0x533e79['keys']()][_0x5ec125(0xd5)]();let _0x3e8aab=0x0;for(const _0x1844a8 of _0x533e79[_0x5ec125(0xec)]()){_0x3e8aab+=_0x1844a8;}return{'cliCommandCount':_0x3e8aab,'cliCommandsSeen':_0x22aed4,'noCliCommandsCalled':_0x3e8aab===0x0};}export function createVerifyFeatureCliHooks(_0x4e9526){const _0x55684e=_0x1906,_0x44c979={'EuGeZ':function(_0xbf523d,_0x176df3){return _0xbf523d!==_0x176df3;},'mzTTf':'Bash','rxRne':function(_0x36d7dc,_0x3b1836){return _0x36d7dc(_0x3b1836);},'BrLHk':function(_0x2fb28c,_0x51cf20){return _0x2fb28c+_0x51cf20;},'eEPeT':_0x55684e(0xe5),'DvySY':'playwright-cli','vtQTx':function(_0x9933df,_0x1523ae){return _0x9933df(_0x1523ae);},'NdWgF':function(_0x56aafa,_0x18bce2,_0x15b37f,_0x3845d7){return _0x56aafa(_0x18bce2,_0x15b37f,_0x3845d7);},'wccsK':'tool_failure'},_0x178770=new Map(),_0x2f5229=async _0x25f706=>{const _0x359398=_0x55684e;if(_0x44c979[_0x359398(0xaf)](_0x25f706[_0x359398(0xb4)],'PostToolUse'))return{};const _0x1541c4=_0x25f706;if(_0x1541c4[_0x359398(0xd0)]!==_0x44c979['mzTTf'])return{};const _0x512277=_0x1541c4[_0x359398(0x11f)],_0x538d14=_0x44c979['rxRne'](extractBashCommand,_0x512277);if(!_0x538d14)return{};const _0x2dbb31=parsePlaywrightCliCommand(_0x538d14);if(!_0x2dbb31)return{};return _0x178770[_0x359398(0x12f)](_0x2dbb31,_0x44c979[_0x359398(0x11d)](_0x178770['get'](_0x2dbb31)||0x0,0x1)),_0x4e9526['trackPhaseStart'](_0x44c979[_0x359398(0x128)],{'transport':_0x44c979['DvySY'],'toolName':_0x2dbb31}),_0x4e9526[_0x359398(0x113)](_0x359398(0xe5),{'transport':_0x359398(0x132),'toolName':_0x2dbb31,'bashCommandPreview':_0x44c979['vtQTx'](truncatePreview,_0x538d14)}),_0x44c979['EuGeZ'](_0x2dbb31,'snapshot')&&console['log'](_0x44c979[_0x359398(0xe1)](formatPlaywrightCliConsoleLogMessage,_0x512277,_0x538d14,_0x2dbb31)),{};},_0xeb72a1=async _0x2f381d=>{const _0x5670ed=_0x55684e;if(_0x44c979[_0x5670ed(0xaf)](_0x2f381d['hook_event_name'],_0x5670ed(0x125)))return{};const _0x2691ce=_0x2f381d;if(_0x2691ce['tool_name']!==_0x5670ed(0xa7))return{};return await _0x4e9526[_0x5670ed(0xeb)](_0x44c979[_0x5670ed(0xc0)],_0x2691ce[_0x5670ed(0x10e)],{'transport':_0x5670ed(0x132),'toolName':_0x5670ed(0xa7)}),{};};return{'postToolUseHook':_0x2f5229,'postToolUseFailureHook':_0xeb72a1,'commandCounts':_0x178770};}async function runPlaywrightCliLifecycleCommand(_0x30b1ea){const _0x455014=_0x1906,_0x5525b5={'iqcGc':function(_0x134a84,_0x3aa5df){return _0x134a84??_0x3aa5df;},'cFoBI':function(_0x32f36f,_0x3b0cca,_0x39cda5){return _0x32f36f(_0x3b0cca,_0x39cda5);}},{sessionId:_0x15ee24,configPath:_0x1cb610,commandArgs:_0x242f93,env:_0x79b7a,telemetry:_0x282777,phase:_0x159a7,metadata:_0x27a80d,timeoutMs:_0x350b3b}=_0x30b1ea;_0x282777[_0x455014(0xba)](_0x159a7,_0x27a80d);try{const _0x574887=await runPlaywrightCliCommand({'sessionId':_0x15ee24,'configPath':_0x1cb610,'commandArgs':_0x242f93,'cwd':process[_0x455014(0xbb)](),'env':_0x79b7a,'timeoutMs':_0x5525b5[_0x455014(0xae)](_0x350b3b,PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS)});_0x282777[_0x455014(0x113)](_0x159a7,{..._0x27a80d,'subcommand':_0x574887[_0x455014(0xaa)][_0x455014(0x106)],'stdoutPreview':_0x5525b5[_0x455014(0x133)](truncatePreview,_0x574887['stdout'],0x7d0),'stderrPreview':truncatePreview(_0x574887[_0x455014(0x104)],0x7d0)});}catch(_0x32134c){await _0x282777[_0x455014(0xeb)](_0x159a7,_0x32134c,_0x27a80d);throw _0x32134c;}}export async function finalizeVerifyFeatureCliSession(_0x3d40f5){const _0x574673=_0x1906,_0x2e2eb6={'RDSys':'playwright_cli_video_stop','YRJoO':_0x574673(0x11b),'jGFUo':function(_0xa168af,_0x22be95){return _0xa168af(_0x22be95);}},{telemetry:_0x3098e5,sessionId:_0x2a3ef1,configPath:_0x1f9628,cliArtifactDir:_0x28632b,env:_0x21e1b2,transportMetadata:_0x4c006e}=_0x3d40f5,_0xbab236=[{'phase':'playwright_cli_tracing_stop','commandArgs':['tracing-stop']},{'phase':_0x2e2eb6['RDSys'],'commandArgs':['video-stop',_0x574673(0xe3)+buildCliArtifactPath(_0x28632b,'session-recording.webm')]},{'phase':'playwright_cli_close','commandArgs':[_0x2e2eb6['YRJoO']]}];for(const _0x3d73cf of _0xbab236){try{await _0x2e2eb6['jGFUo'](runPlaywrightCliLifecycleCommand,{'sessionId':_0x2a3ef1,'configPath':_0x1f9628,'commandArgs':[..._0x3d73cf[_0x574673(0xdb)]],'env':_0x21e1b2,'telemetry':_0x3098e5,'phase':_0x3d73cf['phase'],'metadata':_0x4c006e});}catch{}}}export async function loadVerifyFeatureCliTraceUploadArtifact(_0x2c39fc){const _0x45682c=_0x1906,_0x2f8a1d={'tZDQi':_0x45682c(0xcf),'YwWpn':function(_0x164885,_0x208c69,_0x17b58f){return _0x164885(_0x208c69,_0x17b58f);},'XNYyU':function(_0x138229,_0x534186){return _0x138229(_0x534186);}},_0x3bb9e9=[_0x45682c(0xb6),_0x2f8a1d[_0x45682c(0xe7)]];for(const _0x5152c4 of _0x3bb9e9){const _0x2e0015=_0x2f8a1d[_0x45682c(0xe9)](join,_0x2c39fc,_0x5152c4);try{return{'buffer':await _0x2f8a1d[_0x45682c(0x130)](readFile,_0x2e0015),'source':_0x2e0015};}catch{}}return null;}export async function rehomeVerifyFeatureCliArtifacts(_0x1eb370){const _0x47b175=_0x1906,_0xdd8929={'janFE':function(_0x326471,_0x4ff840,_0x1493c1){return _0x326471(_0x4ff840,_0x1493c1);},'DhBPt':function(_0x55f9f5,_0xb6764){return _0x55f9f5(_0xb6764);},'jbeng':function(_0x448827,_0x518712){return _0x448827<_0x518712;},'QMTEM':function(_0x6a91be,_0x15a995){return _0x6a91be+_0x15a995;},'stTPr':function(_0x18f614,_0x3bcd35){return _0x18f614===_0x3bcd35;},'xlARc':function(_0x8c448a,_0x12bfa2,_0x30883c){return _0x8c448a(_0x12bfa2,_0x30883c);}},{cwd:_0x3ca8ef,cliArtifactDir:_0xe808ad,startTime:_0x511164}=_0x1eb370,_0xeeca37=[];await _0xdd8929[_0x47b175(0xdc)](mkdir,_0xe808ad,{'recursive':!![]});const _0x2e3988=await _0xdd8929[_0x47b175(0xdc)](readdir,_0x3ca8ef,{'withFileTypes':!![]});for(const _0x5e6938 of _0x2e3988){if(!_0x5e6938[_0x47b175(0x12a)]()||!VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN['test'](_0x5e6938['name']))continue;const _0x5c1045=join(_0x3ca8ef,_0x5e6938['name']),_0xedbee5=await _0xdd8929['DhBPt'](stat,_0x5c1045);if(_0xdd8929[_0x47b175(0x107)](_0xdd8929['QMTEM'](_0xedbee5[_0x47b175(0xe6)],0x7d0),_0x511164))continue;const _0x42f27b=buildCliArtifactPath(_0xe808ad,_0x5e6938[_0x47b175(0x12d)]);if(_0xdd8929['stTPr'](_0x5c1045,_0x42f27b))continue;await _0xdd8929['xlARc'](rename,_0x5c1045,_0x42f27b),_0xeeca37[_0x47b175(0xf8)](_0x5e6938['name']);}return _0xeeca37['sort']();}
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']();}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ranger-testing/ranger-cli",
3
- "version": "2.5.3",
3
+ "version": "2.5.4-alpha.78800d3-3",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "ranger": "./build/cli.js",
@@ -12,7 +12,8 @@
12
12
  "obfuscate": "node scripts/obfuscate.cjs",
13
13
  "dev": "tsx src/cli.ts",
14
14
  "check-playwright-version": "node scripts/check-playwright-version.cjs",
15
- "postinstall": "node scripts/postinstall.js"
15
+ "postinstall": "node scripts/postinstall.js",
16
+ "test": "jest --config jest.config.cjs"
16
17
  },
17
18
  "files": [
18
19
  "build",
@@ -29,9 +30,12 @@
29
30
  },
30
31
  "devDependencies": {
31
32
  "@types/inquirer": "^9.0.7",
33
+ "@types/jest": "^29.5.0",
32
34
  "@types/node": "^22.0.0",
33
35
  "@types/yargs": "^17.0.32",
36
+ "jest": "^29.7.0",
34
37
  "javascript-obfuscator": "^4.1.1",
38
+ "ts-jest": "^29.1.0",
35
39
  "tsx": "^4.20.6",
36
40
  "typescript": "^5.0.0"
37
41
  },