@ranger-testing/ranger-cli 2.5.4-alpha.071b7bd-1 → 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(_0xd11e83,_0x15ae2d){const _0xefe01c=_0x421c,_0xf2479b=_0xd11e83();while(!![]){try{const _0x223f50=parseInt(_0xefe01c(0x236))/0x1+-parseInt(_0xefe01c(0x1db))/0x2*(-parseInt(_0xefe01c(0x201))/0x3)+parseInt(_0xefe01c(0x234))/0x4+parseInt(_0xefe01c(0x252))/0x5*(parseInt(_0xefe01c(0x214))/0x6)+-parseInt(_0xefe01c(0x1f3))/0x7+-parseInt(_0xefe01c(0x20a))/0x8*(parseInt(_0xefe01c(0x262))/0x9)+-parseInt(_0xefe01c(0x22a))/0xa;if(_0x223f50===_0x15ae2d)break;else _0xf2479b['push'](_0xf2479b['shift']());}catch(_0x17199f){_0xf2479b['push'](_0xf2479b['shift']());}}}(_0x4b14,0x6c444));function _0x421c(_0x53d2b8,_0x3da4a8){_0x53d2b8=_0x53d2b8-0x1db;const _0x4b1465=_0x4b14();let _0x421c9f=_0x4b1465[_0x53d2b8];return _0x421c9f;}import{mkdir,readFile,readdir,rename,stat}from'fs/promises';import{basename,join}from'path';import{extractBashCommand,parsePlaywrightCliCommand,quoteShellArg,runPlaywrightCliCommand}from'./utils/playwrightCli.js';const PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS=0xea60,PLAYWRIGHT_CLI_PREVIEW_LIMIT=0xf0,VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN=/^(?:\d{2}_.+\.(?:png|ya?ml)|key_.+\.png|session-recording(?:-\d+)?\.webm|trace(?:\.trace)?(?:-\d+)?\.zip|current_snap\.ya?ml)$/i;function truncatePreview(_0x4ae1fa,_0x5c51ae=PLAYWRIGHT_CLI_PREVIEW_LIMIT){const _0x43bfbd=_0x421c,_0x32c443={'AardL':_0x43bfbd(0x1f7)};return _0x4ae1fa[_0x43bfbd(0x250)]>_0x5c51ae?_0x4ae1fa[_0x43bfbd(0x256)](0x0,_0x5c51ae)+_0x32c443[_0x43bfbd(0x1e7)]:_0x4ae1fa;}function buildCliArtifactPath(_0x2ece33,_0x1c06c9){return join(_0x2ece33,_0x1c06c9);}function toStepDisplayName(_0x220f6c){const _0x403843=_0x421c,_0x390d91={'QGakz':function(_0xbaea00,_0x52bf5d){return _0xbaea00(_0x52bf5d);}},_0x3494df=basename(_0x220f6c)[_0x403843(0x217)](/\.(?:png|ya?ml)$/i,'')[_0x403843(0x217)](/^key_/i,'')[_0x403843(0x217)](/^\d+_/,'')['replace'](/-/g,'\x20');return{'name':_0x3494df,'isKeyStep':/^key_/i[_0x403843(0x25c)](_0x390d91['QGakz'](basename,_0x220f6c))};}function extractShellValue(_0x2017f2){if(!_0x2017f2)return null;return _0x2017f2[0x1]??_0x2017f2[0x2]??_0x2017f2[0x3]??null;}function extractFilenameOption(_0x5af635){const _0x272bfd={'AjHkb':function(_0x2388bb,_0x1a46b7){return _0x2388bb(_0x1a46b7);}};return _0x272bfd['AjHkb'](extractShellValue,_0x5af635['match'](/--filename(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function extractFirstCommandArgument(_0x419532,_0x11dbc6){const _0x12f785=_0x421c,_0x2aebc4={'hYxNc':function(_0x245246,_0x95f96e){return _0x245246(_0x95f96e);}},_0x24101a=_0x11dbc6[_0x12f785(0x217)](/[.*+?^${}()|[\]\\]/g,_0x12f785(0x206));return _0x2aebc4['hYxNc'](extractShellValue,_0x419532[_0x12f785(0x21b)](new RegExp('(?:^|\x5cs)'+_0x24101a+_0x12f785(0x25a))));}function formatCommandTarget(_0x42f9bf){const _0x1d1470=_0x421c,_0x5f3da8={'RInvV':function(_0x3b85c1,_0x5621a7,_0x1805a2){return _0x3b85c1(_0x5621a7,_0x1805a2);}};if(!_0x42f9bf)return'target';if(/^e\d+$/i['test'](_0x42f9bf))return _0x1d1470(0x24a)+_0x42f9bf;return JSON[_0x1d1470(0x253)](_0x5f3da8[_0x1d1470(0x212)](truncatePreview,_0x42f9bf,0x78));}function formatPlaywrightCliLog(_0x5f1f3b,_0x4b4b55){const _0x429863=_0x421c,_0xbd108c={'eViEb':function(_0x1b84f4,_0x596512,_0x56f1c4){return _0x1b84f4(_0x596512,_0x56f1c4);},'CyCdd':_0x429863(0x241),'wcPxN':_0x429863(0x202),'BoGjY':_0x429863(0x224),'abuMp':'stop\x20tracing','hFvBM':_0x429863(0x242),'wrrGE':'stop\x20video\x20recording','mJHlu':function(_0x270432,_0x1942fd){return _0x270432(_0x1942fd);},'difUh':_0x429863(0x259),'sugri':function(_0x290d03,_0x3f1d6f){return _0x290d03(_0x3f1d6f);},'HKCCX':'click','GTqtp':function(_0x4e6cb9,_0x2d8b22){return _0x4e6cb9(_0x2d8b22);},'JWnlE':_0x429863(0x1dc),'NkkLF':function(_0x36062a,_0x162779,_0x245b0f){return _0x36062a(_0x162779,_0x245b0f);},'YZoPE':function(_0x1418e7,_0x4d75bd){return _0x1418e7(_0x4d75bd);},'HIlpu':'tab-new','GOBFX':'select\x20tab'};switch(_0x4b4b55){case'open':{const _0x391a52=_0xbd108c[_0x429863(0x226)](extractFirstCommandArgument,_0x5f1f3b,_0x4b4b55);return _0x391a52?_0x429863(0x1ef)+_0x391a52:_0x429863(0x229);}case _0xbd108c['CyCdd']:return _0xbd108c['wcPxN'];case _0xbd108c['BoGjY']:return _0xbd108c[_0x429863(0x1f2)];case'video-start':return'start\x20video\x20recording';case _0xbd108c['hFvBM']:return _0xbd108c[_0x429863(0x209)];case _0x429863(0x25e):{const _0x15e8db=extractFilenameOption(_0x5f1f3b);if(!_0x15e8db)return'capture\x20snapshot';const {name:_0x328184}=_0xbd108c['mJHlu'](toStepDisplayName,_0x15e8db);return'capture\x20snapshot\x20`'+_0x328184+'`';}case _0xbd108c[_0x429863(0x203)]:{const _0x146c6f=_0xbd108c['mJHlu'](extractFilenameOption,_0x5f1f3b);if(!_0x146c6f)return'capture\x20screenshot';const {name:_0x28f17d,isKeyStep:_0x1f44d0}=_0xbd108c[_0x429863(0x20b)](toStepDisplayName,_0x146c6f);return _0x1f44d0?_0x429863(0x219)+_0x28f17d+'`':_0x429863(0x247)+_0x28f17d+'`';}case _0xbd108c['HKCCX']:return _0x429863(0x22e)+_0xbd108c['GTqtp'](formatCommandTarget,extractFirstCommandArgument(_0x5f1f3b,_0x4b4b55));case'check':return _0x429863(0x1ec)+formatCommandTarget(_0xbd108c[_0x429863(0x226)](extractFirstCommandArgument,_0x5f1f3b,_0x4b4b55));case _0xbd108c['JWnlE']:return'fill\x20'+formatCommandTarget(_0xbd108c[_0x429863(0x216)](extractFirstCommandArgument,_0x5f1f3b,_0x4b4b55));case'press':return _0x429863(0x22d)+_0xbd108c[_0x429863(0x255)](formatCommandTarget,_0xbd108c['eViEb'](extractFirstCommandArgument,_0x5f1f3b,_0x4b4b55));case _0x429863(0x211):return _0x429863(0x23a);case _0xbd108c[_0x429863(0x218)]:{const _0x561f6c=extractFirstCommandArgument(_0x5f1f3b,_0x4b4b55);return _0x561f6c?'open\x20new\x20tab\x20'+_0x561f6c:_0x429863(0x249);}case'tab-select':{const _0x13b7fd=_0xbd108c[_0x429863(0x226)](extractFirstCommandArgument,_0x5f1f3b,_0x4b4b55);return _0x13b7fd?'select\x20tab\x20'+_0x13b7fd:_0xbd108c['GOBFX'];}default:return _0x4b4b55;}}function extractPlaywrightCliToolDescription(_0x11adf7){const _0x2b8b64=_0x421c,_0x185804=_0x11adf7['description'];if(typeof _0x185804!=='string')return null;const _0x55760a=_0x185804[_0x2b8b64(0x1fb)]()['replace'](/\s+/g,'\x20');return _0x55760a[_0x2b8b64(0x250)]>0x0?_0x55760a:null;}export function formatPlaywrightCliConsoleLogMessage(_0x330311,_0x421f1c,_0xc49bad){const _0xa6b3e9=_0x421c,_0x9496d4={'PHjYA':function(_0x1925bf,_0x4d33c4,_0x180b41){return _0x1925bf(_0x4d33c4,_0x180b41);}},_0x1a40eb=_0x9496d4['PHjYA'](formatPlaywrightCliLog,_0x421f1c,_0xc49bad),_0xbc5552=extractPlaywrightCliToolDescription(_0x330311);if(!_0xbc5552)return _0xa6b3e9(0x20f)+_0x1a40eb;if(process['env'][_0xa6b3e9(0x263)])return'[ranger-verification-agent]\x20'+_0xbc5552+'\x20('+_0x1a40eb+')';return'[ranger-verification-agent]\x20'+_0xbc5552;}export function buildVerifyFeatureCliDebugPrompt(_0x2cd93c,_0x5e4d99){const _0x4012f8=_0x421c,_0x3a88f4={'NJzvX':'00_mozilla-homepage.yml','dSXSO':function(_0x4ba7cf,_0x3428ba,_0x1c2026){return _0x4ba7cf(_0x3428ba,_0x1c2026);},'kliHt':'02_learn-more.yml','qldKC':function(_0x1082a8,_0x2225f4,_0xdc59b3){return _0x1082a8(_0x2225f4,_0xdc59b3);},'KKNuy':function(_0x1506da,_0x4b2f65){return _0x1506da(_0x4b2f65);}},_0x2bf79e=buildCliArtifactPath(_0x5e4d99,_0x3a88f4['NJzvX']),_0x3f4ee7=_0x3a88f4['dSXSO'](buildCliArtifactPath,_0x5e4d99,_0x4012f8(0x23d)),_0x597d25=_0x3a88f4[_0x4012f8(0x221)](buildCliArtifactPath,_0x5e4d99,_0x3a88f4[_0x4012f8(0x1f0)]),_0x31c989=_0x3a88f4['qldKC'](buildCliArtifactPath,_0x5e4d99,_0x4012f8(0x215)),_0x7e0e03=quoteShellArg(_0x2bf79e),_0x51db0d=quoteShellArg(_0x3f4ee7),_0x3578c7=quoteShellArg(_0x597d25),_0x55fa23=_0x3a88f4['KKNuy'](quoteShellArg,_0x31c989);return'You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Playwright\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a'+_0x2cd93c+'\x0a\x0a1.\x20Run\x20`'+_0x2cd93c+_0x4012f8(0x248)+_0x2cd93c+_0x4012f8(0x1e6)+_0x2cd93c+_0x4012f8(0x1e9)+_0x5e4d99+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a5.\x20Run\x20`'+_0x2cd93c+'\x20snapshot\x20--filename\x20'+_0x7e0e03+'`\x0a5.\x20Read\x20the\x20snapshot\x20file\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20reference\x0a6.\x20Run\x20`'+_0x2cd93c+'\x20screenshot\x20--filename\x20'+_0x51db0d+_0x4012f8(0x205)+_0x2cd93c+'\x20snapshot\x20--filename\x20'+_0x3578c7+'`\x0a9.\x20Run\x20`'+_0x2cd93c+_0x4012f8(0x1e3)+_0x55fa23+_0x4012f8(0x235);}export function buildVerifyFeatureCliPrompt(_0x2eeba0){const _0x855f08=_0x421c,_0x328faf={'mJjWl':'en-US','MIRJy':'numeric','aZGhJ':_0x855f08(0x222),'xUGaS':_0x855f08(0x246),'HiRXK':'02_state.yml','rzYcE':'key_03_success-state.png','NobEc':function(_0x3e7174,_0x58889f){return _0x3e7174(_0x58889f);},'hjSCk':function(_0x381e2e,_0x15016c,_0x5a07dd){return _0x381e2e(_0x15016c,_0x5a07dd);},'WMgyu':_0x855f08(0x213)},{checklistItem:_0x138d56,itemFeedback:_0x499db7,taskDescription:_0x446a51,cliCommandPrefix:_0x4a3043,cliArtifactDir:_0x280fff,isCdpMode:_0x2fca04,url:_0x44305f,cdpEndpoint:_0x57b378,loginInstructions:_0x4de534}=_0x2eeba0,_0x3b1d52=buildCliArtifactPath(_0x280fff,_0x328faf['xUGaS']),_0x2bd3cc=buildCliArtifactPath(_0x280fff,_0x328faf[_0x855f08(0x1e0)]),_0x546799=buildCliArtifactPath(_0x280fff,_0x328faf[_0x855f08(0x21e)]),_0xaf980c=buildCliArtifactPath(_0x280fff,_0x855f08(0x233)),_0x4dbc7d=_0x328faf[_0x855f08(0x227)](quoteShellArg,_0x3b1d52),_0x475d71=quoteShellArg(_0x2bd3cc),_0x4f16e0=_0x328faf[_0x855f08(0x227)](quoteShellArg,_0x546799),_0x337c8a=quoteShellArg(_0xaf980c),_0x4dd92c=_0x138d56[_0x855f08(0x22c)]?_0x855f08(0x264)+_0x138d56['notes']:'';let _0x1f7c11='';if(_0x499db7&&_0x499db7[_0x855f08(0x1f8)]['length']>0x0){const _0x1ce249=_0x499db7[_0x855f08(0x1f8)]['map'](_0x4eb8e2=>{const _0x5f0eed=_0x855f08,_0x57d76d=new Date(_0x4eb8e2[_0x5f0eed(0x230)])[_0x5f0eed(0x21f)](_0x328faf['mJjWl'],{'month':'short','day':_0x328faf['MIRJy']}),_0x5079e5=_0x4eb8e2[_0x5f0eed(0x20e)]||_0x4eb8e2[_0x5f0eed(0x207)]||_0x5f0eed(0x260),_0x3e0c16=_0x4eb8e2[_0x5f0eed(0x210)]?'\x20(on\x20element:\x20<'+(_0x4eb8e2['domRef'][_0x5f0eed(0x1fd)]['split'](_0x328faf['aZGhJ'])['pop']()?.[_0x5f0eed(0x1ea)](':')[0x0]||'element')+_0x5f0eed(0x237)+(_0x4eb8e2[_0x5f0eed(0x210)]['textContent']||'')[_0x5f0eed(0x256)](0x0,0x32)+'\x22)':'';return _0x5f0eed(0x23f)+_0x4eb8e2['id']+_0x5f0eed(0x21c)+_0x5079e5+'**\x20('+_0x57d76d+_0x5f0eed(0x22b)+_0x4eb8e2[_0x5f0eed(0x200)]+'\x22'+_0x3e0c16;})['join']('\x0a');_0x1f7c11='\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'+_0x1ce249;}const _0x27fd2a=_0x499db7?.['canonicalFlow']?_0x855f08(0x225)+_0x499db7[_0x855f08(0x267)]:'',_0x1faa28=_0x2fca04?_0x855f08(0x208)+_0x57b378+'.\x0aThis\x20is\x20NOT\x20a\x20web\x20app\x20—\x20there\x20is\x20no\x20URL\x20to\x20navigate\x20to.\x20The\x20app\x20is\x20already\x20running\x20and\x20connected.':_0x855f08(0x23c)+_0x44305f+_0x855f08(0x1dd),_0x352c44=_0x44305f?quoteShellArg(_0x44305f):'',_0x205686=_0x2fca04?_0x855f08(0x22f)+_0x4a3043+_0x855f08(0x220)+_0x4a3043+_0x855f08(0x1ed)+_0x4a3043+_0x855f08(0x1f6)+_0x280fff+_0x855f08(0x25d)+_0x4a3043+_0x855f08(0x24d)+_0x4dbc7d+'`\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`'+_0x4a3043+'\x20screenshot\x20--filename\x20'+_0x337c8a+_0x855f08(0x1f5)+_0x4a3043+_0x855f08(0x20d):_0x855f08(0x22f)+_0x4a3043+_0x855f08(0x24f)+_0x352c44+_0x855f08(0x24b)+_0x4a3043+_0x855f08(0x1ed)+_0x4a3043+_0x855f08(0x1f6)+_0x280fff+_0x855f08(0x25d)+_0x4a3043+_0x855f08(0x24d)+_0x4dbc7d+_0x855f08(0x1fe)+_0x4a3043+_0x855f08(0x1e3)+_0x337c8a+'`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a8.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`'+_0x4a3043+_0x855f08(0x1e5),_0x4f3138=_0x2fca04?'\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.':_0x855f08(0x251),_0x353496=_0x4de534?'\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20you\x20MUST\x20authenticate\x20using\x20these\x20steps:\x0a'+_0x4de534+_0x855f08(0x1f1):'';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'+_0x138d56['description']+_0x4dd92c+_0x1f7c11+_0x27fd2a+'\x0a\x0a##\x20Task\x20to\x20Execute\x0a'+_0x446a51+'\x0a\x0a'+_0x1faa28+_0x353496+'\x0a\x0a'+_0x205686+_0x855f08(0x261)+_0x4a3043+'`\x0a\x0a-\x20Write\x20all\x20artifacts\x20under\x20`'+_0x280fff+'`\x0a-\x20`snapshot\x20--filename\x20'+_0x475d71+'`\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'+_0x4f16e0+'`\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`'+_0x280fff+_0x855f08(0x20c)+_0xaf980c+_0x855f08(0x23e)+_0x328faf[_0x855f08(0x1df)](buildCliArtifactPath,_0x280fff,_0x855f08(0x231))+'\x22,\x20\x22'+_0x328faf[_0x855f08(0x1df)](buildCliArtifactPath,_0x280fff,_0x328faf['WMgyu'])+'\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(_0x280fff,_0x855f08(0x1ee))+'\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'+_0x4f3138+_0x855f08(0x269);}export function summarizeVerifyFeatureCliCommandAvailability(_0x3a6501){const _0x4b7f5e=_0x421c,_0x173a87={'ryQUk':function(_0x5b4b05,_0x1af4c){return _0x5b4b05===_0x1af4c;}},_0x39480b=[..._0x3a6501[_0x4b7f5e(0x1e1)]()]['sort']();let _0x2f1759=0x0;for(const _0x199503 of _0x3a6501['values']()){_0x2f1759+=_0x199503;}return{'cliCommandCount':_0x2f1759,'cliCommandsSeen':_0x39480b,'noCliCommandsCalled':_0x173a87[_0x4b7f5e(0x243)](_0x2f1759,0x0)};}export function createVerifyFeatureCliHooks(_0x2ff677){const _0x409505=_0x421c,_0x2fdd3b={'fXPOS':'PostToolUse','GRqUW':function(_0x8a3b57,_0x1c944c){return _0x8a3b57+_0x1c944c;},'oMvkC':_0x409505(0x1e8),'OztzJ':'tool_call','zanNQ':function(_0x210dcd,_0x367815){return _0x210dcd(_0x367815);},'zMWqz':function(_0x470e6d,_0x3c1130){return _0x470e6d!==_0x3c1130;},'tuNWa':_0x409505(0x254),'prktP':function(_0x4a4411,_0x2ab1cd){return _0x4a4411!==_0x2ab1cd;},'yivVb':'Bash'},_0x4c23a2=new Map(),_0xd2e6e5=async _0x39f49f=>{const _0x48ff8c=_0x409505;if(_0x39f49f['hook_event_name']!==_0x2fdd3b['fXPOS'])return{};const _0x43d23d=_0x39f49f;if(_0x43d23d[_0x48ff8c(0x232)]!=='Bash')return{};const _0x4a6224=_0x43d23d[_0x48ff8c(0x1eb)],_0x586c39=extractBashCommand(_0x4a6224);if(!_0x586c39)return{};const _0x8748d3=parsePlaywrightCliCommand(_0x586c39);if(!_0x8748d3)return{};return _0x4c23a2['set'](_0x8748d3,_0x2fdd3b['GRqUW'](_0x4c23a2[_0x48ff8c(0x24c)](_0x8748d3)||0x0,0x1)),_0x2ff677[_0x48ff8c(0x258)]('tool_call',{'transport':_0x2fdd3b[_0x48ff8c(0x1fa)],'toolName':_0x8748d3}),_0x2ff677['trackPhaseEnd'](_0x2fdd3b[_0x48ff8c(0x1e4)],{'transport':_0x2fdd3b[_0x48ff8c(0x1fa)],'toolName':_0x8748d3,'bashCommandPreview':_0x2fdd3b['zanNQ'](truncatePreview,_0x586c39)}),_0x2fdd3b[_0x48ff8c(0x240)](_0x8748d3,_0x48ff8c(0x25e))&&console[_0x48ff8c(0x24e)](formatPlaywrightCliConsoleLogMessage(_0x4a6224,_0x586c39,_0x8748d3)),{};},_0xc212b1=async _0x5695f4=>{const _0x454796=_0x409505;if(_0x5695f4['hook_event_name']!==_0x2fdd3b['tuNWa'])return{};const _0x11d029=_0x5695f4;if(_0x2fdd3b[_0x454796(0x21a)](_0x11d029[_0x454796(0x232)],_0x2fdd3b[_0x454796(0x239)]))return{};return await _0x2ff677['trackPhaseError']('tool_failure',_0x11d029['error'],{'transport':_0x2fdd3b['oMvkC'],'toolName':_0x454796(0x245)}),{};};return{'postToolUseHook':_0xd2e6e5,'postToolUseFailureHook':_0xc212b1,'commandCounts':_0x4c23a2};}async function runPlaywrightCliLifecycleCommand(_0x3a13a7){const _0x189831=_0x421c,_0x4dbc5d={'vasrE':function(_0x5e0935,_0x3892bc){return _0x5e0935(_0x3892bc);},'nshha':function(_0x2e5498,_0x14508c){return _0x2e5498??_0x14508c;}},{sessionId:_0x20e57c,configPath:_0x17a60e,commandArgs:_0x1aafac,env:_0x12e0e9,telemetry:_0xb3829b,phase:_0x3635a3,metadata:_0x18d2b3,timeoutMs:_0x1ad3c4}=_0x3a13a7;_0xb3829b['trackPhaseStart'](_0x3635a3,_0x18d2b3);try{const _0x5edfb5=await _0x4dbc5d[_0x189831(0x1f9)](runPlaywrightCliCommand,{'sessionId':_0x20e57c,'configPath':_0x17a60e,'commandArgs':_0x1aafac,'cwd':process[_0x189831(0x21d)](),'env':_0x12e0e9,'timeoutMs':_0x4dbc5d[_0x189831(0x268)](_0x1ad3c4,PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS)});_0xb3829b[_0x189831(0x244)](_0x3635a3,{..._0x18d2b3,'subcommand':_0x5edfb5[_0x189831(0x25b)]['subcommand'],'stdoutPreview':truncatePreview(_0x5edfb5[_0x189831(0x25f)],0x7d0),'stderrPreview':truncatePreview(_0x5edfb5['stderr'],0x7d0)});}catch(_0x41c1ac){await _0xb3829b[_0x189831(0x228)](_0x3635a3,_0x41c1ac,_0x18d2b3);throw _0x41c1ac;}}export async function finalizeVerifyFeatureCliSession(_0x518d7a){const _0x485f9a=_0x421c,_0xe0ce07={'VAhSX':'playwright_cli_tracing_stop','cFIdj':'tracing-stop','FJEzu':function(_0x32661c,_0x4108ce,_0x45f8e7){return _0x32661c(_0x4108ce,_0x45f8e7);},'vNGoq':'session-recording.webm','BYpqX':_0x485f9a(0x223)},{telemetry:_0x100986,sessionId:_0x1cde0e,configPath:_0x5aa928,cliArtifactDir:_0x38d66e,env:_0x290dea,transportMetadata:_0x3c3807}=_0x518d7a,_0x7370d2=[{'phase':_0xe0ce07['VAhSX'],'commandArgs':[_0xe0ce07['cFIdj']]},{'phase':_0x485f9a(0x1fc),'commandArgs':[_0x485f9a(0x242),_0x485f9a(0x1de)+_0xe0ce07['FJEzu'](buildCliArtifactPath,_0x38d66e,_0xe0ce07['vNGoq'])]},{'phase':_0xe0ce07[_0x485f9a(0x238)],'commandArgs':[_0x485f9a(0x23b)]}];for(const _0x3079cf of _0x7370d2){try{await runPlaywrightCliLifecycleCommand({'sessionId':_0x1cde0e,'configPath':_0x5aa928,'commandArgs':[..._0x3079cf[_0x485f9a(0x1f4)]],'env':_0x290dea,'telemetry':_0x100986,'phase':_0x3079cf[_0x485f9a(0x1e2)],'metadata':_0x3c3807});}catch{}}}export async function loadVerifyFeatureCliTraceUploadArtifact(_0x466571){const _0x392640={'rhGXr':'trace.zip','fHOXv':'trace.trace.zip','bHoVn':function(_0x261e63,_0x5a7c24,_0x4c5508){return _0x261e63(_0x5a7c24,_0x4c5508);}},_0x257ea5=[_0x392640['rhGXr'],_0x392640['fHOXv']];for(const _0x26b145 of _0x257ea5){const _0x42b4d5=_0x392640['bHoVn'](join,_0x466571,_0x26b145);try{return{'buffer':await readFile(_0x42b4d5),'source':_0x42b4d5};}catch{}}return null;}export async function rehomeVerifyFeatureCliArtifacts(_0xfefd80){const _0x2b75f1=_0x421c,_0x57e1aa={'ufnsj':function(_0x315e63,_0x1334f7,_0x3d0743){return _0x315e63(_0x1334f7,_0x3d0743);},'RNRnS':function(_0x410649,_0x79912a){return _0x410649(_0x79912a);},'Ylykl':function(_0x266dda,_0x5a8930){return _0x266dda<_0x5a8930;}},{cwd:_0xdddfc1,cliArtifactDir:_0x17f1a6,startTime:_0x5107e2}=_0xfefd80,_0x25eec7=[];await _0x57e1aa['ufnsj'](mkdir,_0x17f1a6,{'recursive':!![]});const _0x2e1ce9=await readdir(_0xdddfc1,{'withFileTypes':!![]});for(const _0x5b0f28 of _0x2e1ce9){if(!_0x5b0f28['isFile']()||!VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN[_0x2b75f1(0x25c)](_0x5b0f28[_0x2b75f1(0x1ff)]))continue;const _0x1b0707=_0x57e1aa[_0x2b75f1(0x257)](join,_0xdddfc1,_0x5b0f28[_0x2b75f1(0x1ff)]),_0x36bd4b=await _0x57e1aa['RNRnS'](stat,_0x1b0707);if(_0x57e1aa['Ylykl'](_0x36bd4b[_0x2b75f1(0x266)]+0x7d0,_0x5107e2))continue;const _0x2abc9b=buildCliArtifactPath(_0x17f1a6,_0x5b0f28['name']);if(_0x1b0707===_0x2abc9b)continue;await rename(_0x1b0707,_0x2abc9b),_0x25eec7[_0x2b75f1(0x265)](_0x5b0f28['name']);}return _0x25eec7[_0x2b75f1(0x204)]();}function _0x4b14(){const _0x3b85f3=['open\x20new\x20tab','ref\x20','`,\x20then\x20`','get','\x20snapshot\x20--filename\x20','log','\x20open\x20','length','\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.','178015UqEsWi','stringify','PostToolUseFailure','YZoPE','slice','ufnsj','trackPhaseStart','screenshot','(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))','invocation','test','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`','snapshot','stdout','Reviewer','\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Playwright\x20CLI\x20commands\x20with\x20this\x20exact\x20prefix:\x0a`','36uwnvfE','DEBUG','\x0a\x0a##\x20Additional\x20Notes\x0a','push','mtimeMs','canonicalFlow','nshha','\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.','4YSKrBN','fill','\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','--filename=','hjSCk','HiRXK','keys','phase','\x20screenshot\x20--filename\x20','OztzJ','\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','\x20tracing-start`\x0a3.\x20Run\x20`','AardL','playwright-cli','\x20video-start`\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','split','tool_input','check\x20','\x20tracing-start`,\x20then\x20`','key_04_success-state.png','open\x20','kliHt','\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.','abuMp','757001KVDDyg','commandArgs','`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a6.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`','\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','...','unaddressedComments','vasrE','oMvkC','trim','playwright_cli_video_stop','selector','`\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`','name','content','215814bgACYq','start\x20tracing','difUh','sort','`\x0a7.\x20Click\x20the\x20\x22Learn\x20More\x22\x20link\x20with\x20Playwright\x20CLI\x0a8.\x20Run\x20`','\x5c$&','authorEmail','##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20(Chrome\x20DevTools\x20Protocol)\x20at\x20','wrrGE','1331392XGxIjT','sugri','`:\x20\x22','\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','authorName','[playwright-cli]\x20','domRef','run-code','RInvV','03_result-visible.png','18iSCRNY','03_learn-more.png','NkkLF','replace','HIlpu','capture\x20key\x20step\x20`','prktP','match',']\x20**','cwd','rzYcE','toLocaleDateString','\x20open`,\x20then\x20`','dSXSO','\x20>\x20','playwright_cli_close','tracing-stop','\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a','eViEb','NobEc','trackPhaseError','open\x20browser','1895590gVHZHK','):\x20\x22','notes','press\x20','click\x20','##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`','createdAt','02_button-clicked.png','tool_name','01_initial-state.png','3427856ldVuRJ','`\x0a10.\x20Return\x20immediately\x20with\x20the\x20structured\x20output\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.','299209HnGfnn','>\x20\x22','BYpqX','yivVb','run\x20custom\x20Playwright\x20code','close','CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20','01_mozilla-homepage.png','\x22,\x20\x22','-\x20[','zMWqz','tracing-start','video-stop','ryQUk','trackPhaseEnd','Bash','01_initial.yml','capture\x20step\x20`','\x20open\x20https://www.mozilla.org`\x0a2.\x20Run\x20`'];_0x4b14=function(){return _0x3b85f3;};return _0x4b14();}
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.4-alpha.071b7bd-1",
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
  },