@ranger-testing/ranger-cli 3.1.7-alpha.a5be4ca-60 → 3.1.7-alpha.d64f22a-65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cli.js +1 -1
- package/build/commands/addEnv.js +1 -1
- package/build/commands/authEncrypt.js +1 -1
- package/build/commands/clean.js +1 -1
- package/build/commands/config.js +1 -1
- package/build/commands/deleteProfile.js +1 -1
- package/build/commands/env.js +1 -1
- package/build/commands/feature.js +1 -1
- package/build/commands/hook.js +1 -1
- package/build/commands/hooks/autoPrompt.js +1 -1
- package/build/commands/hooks/disable.js +1 -1
- package/build/commands/hooks/enable.js +1 -1
- package/build/commands/hooks/exitPlanMode.js +1 -1
- package/build/commands/hooks/index.js +1 -1
- package/build/commands/hooks/output.js +1 -1
- package/build/commands/hooks/planReminder.js +1 -1
- package/build/commands/hooks/planStart.js +1 -1
- package/build/commands/hooks/postEdit.js +1 -1
- package/build/commands/hooks/preCompact.js +1 -1
- package/build/commands/hooks/sessionEnd.js +1 -1
- package/build/commands/hooks/sessionStart.js +1 -1
- package/build/commands/hooks/stopHook.js +1 -1
- package/build/commands/index.js +1 -1
- package/build/commands/login.js +1 -1
- package/build/commands/mcpBootstrap.js +1 -1
- package/build/commands/migrateProfile.js +1 -1
- package/build/commands/setup/claude.js +1 -1
- package/build/commands/setup/opencode.js +1 -1
- package/build/commands/setupCi.js +1 -1
- package/build/commands/skillup.js +1 -1
- package/build/commands/start.js +1 -1
- package/build/commands/status.js +1 -1
- package/build/commands/update.js +1 -1
- package/build/commands/updateEnv.js +1 -1
- package/build/commands/useEnv.js +1 -1
- package/build/commands/utils/activeProfile.js +1 -1
- package/build/commands/utils/actors.js +1 -0
- package/build/commands/utils/agentEnv.js +1 -1
- package/build/commands/utils/browserSessionsApi.js +1 -1
- package/build/commands/utils/claudeConfig.js +1 -1
- package/build/commands/utils/claudeOverrideSettings.js +1 -1
- package/build/commands/utils/claudePlugin.js +1 -1
- package/build/commands/utils/cloudProfile.js +1 -1
- package/build/commands/utils/cloudProfileSession.js +1 -1
- package/build/commands/utils/crypto.js +1 -1
- package/build/commands/utils/desirePathLog.js +1 -1
- package/build/commands/utils/deviceAuth.js +1 -1
- package/build/commands/utils/environment.js +1 -1
- package/build/commands/utils/featureApi.js +1 -1
- package/build/commands/utils/fixWebmDuration.js +1 -1
- package/build/commands/utils/gitTracked.js +1 -1
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/legacyWarning.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/matchAuthEnvironment.js +1 -1
- package/build/commands/utils/mcpImageBase64.js +1 -1
- package/build/commands/utils/model.js +1 -1
- package/build/commands/utils/novaActCli.js +1 -1
- package/build/commands/utils/opencodeConfig.js +1 -1
- package/build/commands/utils/organizationEnvApi.js +1 -1
- package/build/commands/utils/playwrightCli.js +1 -1
- package/build/commands/utils/profileMessages.js +1 -1
- package/build/commands/utils/profileSetupBanner.js +1 -1
- package/build/commands/utils/projectsConfig.js +1 -1
- package/build/commands/utils/rangerConfig.js +1 -1
- package/build/commands/utils/rangerRoot.js +1 -1
- package/build/commands/utils/rangerwrightCli.js +1 -1
- package/build/commands/utils/resolveProfileContext.js +1 -1
- package/build/commands/utils/resolveProfileUrl.js +1 -1
- package/build/commands/utils/retry.js +1 -1
- package/build/commands/utils/scenarioOriginCheck.js +1 -1
- package/build/commands/utils/sessionCache.js +1 -1
- package/build/commands/utils/settings.js +1 -1
- package/build/commands/utils/skillContent.js +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/utils/stitchWebmFiles.js +1 -1
- package/build/commands/utils/telemetry.js +1 -1
- package/build/commands/utils/tokenRefresh.js +1 -1
- package/build/commands/utils/traceSnapshotMapper.js +1 -1
- package/build/commands/utils/tunnelClient.js +1 -1
- package/build/commands/utils/userApi.js +1 -1
- package/build/commands/utils/version.js +1 -1
- package/build/commands/verifyFeature.js +1 -1
- package/build/commands/verifyFeatureCli.js +1 -1
- package/build/commands/verifyFeatureNovaCli.js +1 -1
- package/build/commands/verifyFeatureRangerwrightCli.js +1 -1
- package/build/skills/ranger/SKILL.md +8 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x39ddb2,_0x180288){const _0x3599e5=_0x2a3a,_0x13028c=_0x39ddb2();while(!![]){try{const _0x4de75a=-parseInt(_0x3599e5(0xeb))/0x1+parseInt(_0x3599e5(0xfd))/0x2+parseInt(_0x3599e5(0x112))/0x3*(-parseInt(_0x3599e5(0xed))/0x4)+-parseInt(_0x3599e5(0xc7))/0x5+-parseInt(_0x3599e5(0x8f))/0x6+parseInt(_0x3599e5(0xcb))/0x7*(parseInt(_0x3599e5(0x10d))/0x8)+-parseInt(_0x3599e5(0xea))/0x9*(-parseInt(_0x3599e5(0xa8))/0xa);if(_0x4de75a===_0x180288)break;else _0x13028c['push'](_0x13028c['shift']());}catch(_0x109557){_0x13028c['push'](_0x13028c['shift']());}}}(_0x5b50,0x6c429));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(_0x5cbf25,_0x51a712=PLAYWRIGHT_CLI_PREVIEW_LIMIT){const _0x2b8da=_0x2a3a,_0x285030={'bDiyP':function(_0x108167,_0x3b04ba){return _0x108167>_0x3b04ba;},'OLrZM':'...'};return _0x285030[_0x2b8da(0xa3)](_0x5cbf25[_0x2b8da(0xc2)],_0x51a712)?_0x5cbf25['slice'](0x0,_0x51a712)+_0x285030[_0x2b8da(0x99)]:_0x5cbf25;}function _0x5b50(){const _0x1c9409=['\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Playwright\x20CLI\x20commands\x20with\x20this\x20exact\x20prefix:\x0a`','hbPAm','key_04_success-state.png','\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','tool_call','TzNus','en-US','bDiyP','phase','QrIkh','target','select\x20tab\x20','1352210pwVBrb','`\x0a7.\x20Click\x20the\x20\x22Learn\x20More\x22\x20link\x20with\x20Playwright\x20CLI\x0a8.\x20Run\x20`','aEsWT','\x20screenshot\x20--filename\x20','cwd','tab-new','GnzXE','tracing-stop','screenshot','WwMNw','`\x0a10.\x20Return\x20immediately\x20with\x20the\x20structured\x20output\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.','run\x20custom\x20Playwright\x20code','log','JMCuP','trace.zip','AVgYe','canonicalFlow','OkLeW','split','snapshot','02_learn-more.yml','mbAlp','start\x20video\x20recording','mxGaR','bXvcb','notes','length','Reviewer','\x20open\x20https://www.mozilla.org`\x0a2.\x20Run\x20`','select\x20tab','--filename=','1088305DCAzCx','tVLaX','isFile','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','581ALCWng','stdout','aRWUy','jMHtN','textContent','name','PvXAl','ljock','`\x0a\x0a-\x20Write\x20all\x20artifacts\x20under\x20`','oTYkC','`\x0a-\x20`snapshot\x20--filename\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','NpVUQ','unaddressedComments','\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','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`','-\x20[','ObrVs','tool_name','dqhyM','vKbsi','playwright-cli','description',']\x20**','subcommand','DEBUG','open\x20new\x20tab\x20','mtimeMs','stop\x20tracing','Daeyd','playwright_cli_close','72tbVXEp','220246bMbJkP','playwright_cli_tracing_stop','16rDETlk','ZLrVI','PmjaY','set','`\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`','mJhTT','`\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`','fill','`\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`','.\x0aThis\x20is\x20NOT\x20a\x20web\x20app\x20—\x20there\x20is\x20no\x20URL\x20to\x20navigate\x20to.\x20The\x20app\x20is\x20already\x20running\x20and\x20connected.','aIVBW','LBIwj','BQlKE','selector','biElC','ZKRvx','238278lJNmSZ','**\x20(','\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','RpCCE','replace','nrefd','map','`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a6.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`','\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','03_learn-more.png','\x20(on\x20element:\x20<','authorEmail','test','\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','session-recording.webm','trackPhaseError','45128iNhNzu','click\x20','error','element','UojSy','100365vxDzMw','capture\x20snapshot\x20`','\x20tracing-start`,\x20then\x20`','tXyPo','XJowA','\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.','zFkKv','vSUbN','authorName','content','TlIsl','check','[ranger-verification-agent]\x20','hook_event_name','open\x20browser','stop\x20video\x20recording','domRef','3923700WrIqwK','invocation','stringify','\x20video-start`\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','sort','toLocaleDateString','01_initial-state.png','open\x20new\x20tab','\x20tracing-start`\x0a3.\x20Run\x20`','click','OLrZM','match','`\x0a9.\x20Run\x20`'];_0x5b50=function(){return _0x1c9409;};return _0x5b50();}function buildCliArtifactPath(_0x1e4fae,_0x5eb2dd){return join(_0x1e4fae,_0x5eb2dd);}function toStepDisplayName(_0x24d9a9){const _0x2a4c55=_0x2a3a,_0x5cda1b=basename(_0x24d9a9)['replace'](/\.(?:png|ya?ml)$/i,'')[_0x2a4c55(0x101)](/^key_/i,'')[_0x2a4c55(0x101)](/^\d+_/,'')[_0x2a4c55(0x101)](/-/g,'\x20');return{'name':_0x5cda1b,'isKeyStep':/^key_/i[_0x2a4c55(0x109)](basename(_0x24d9a9))};}function extractShellValue(_0x298e02){if(!_0x298e02)return null;return _0x298e02[0x1]??_0x298e02[0x2]??_0x298e02[0x3]??null;}function extractFilenameOption(_0x485d03){const _0x54b5a2=_0x2a3a,_0x2da070={'aRWUy':function(_0x5f1bb4,_0xf6667c){return _0x5f1bb4(_0xf6667c);}};return _0x2da070[_0x54b5a2(0xcd)](extractShellValue,_0x485d03[_0x54b5a2(0x9a)](/--filename(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function _0x2a3a(_0x4d55aa,_0x5a22e3){_0x4d55aa=_0x4d55aa-0x8f;const _0x5b506e=_0x5b50();let _0x2a3a6a=_0x5b506e[_0x4d55aa];return _0x2a3a6a;}function extractFirstCommandArgument(_0x549162,_0x31c211){const _0x3666ae={'FoJew':'\x5c$&'},_0x19fd80=_0x31c211['replace'](/[.*+?^${}()|[\]\\]/g,_0x3666ae['FoJew']);return extractShellValue(_0x549162['match'](new RegExp('(?:^|\x5cs)'+_0x19fd80+'(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))')));}function formatCommandTarget(_0x1e8a80){const _0x5dcfbe=_0x2a3a,_0x4b7196={'cLauK':_0x5dcfbe(0xa6),'bXvcb':function(_0x50528f,_0x3b6e6d,_0xc53396){return _0x50528f(_0x3b6e6d,_0xc53396);}};if(!_0x1e8a80)return _0x4b7196['cLauK'];if(/^e\d+$/i['test'](_0x1e8a80))return'ref\x20'+_0x1e8a80;return JSON[_0x5dcfbe(0x91)](_0x4b7196[_0x5dcfbe(0xc0)](truncatePreview,_0x1e8a80,0x78));}function formatPlaywrightCliLog(_0x1583db,_0x2b9324){const _0x42dd07=_0x2a3a,_0x1889ce={'LBIwj':'open','nrefd':function(_0x4726fc,_0x554e9f,_0x3dfe72){return _0x4726fc(_0x554e9f,_0x3dfe72);},'dqhyM':'start\x20tracing','LwoGl':'video-start','vKbsi':'video-stop','BQlKE':_0x42dd07(0x121),'oTYkC':function(_0x4301e5,_0x2d480c){return _0x4301e5(_0x2d480c);},'hlxus':'capture\x20screenshot','PvXAl':_0x42dd07(0x98),'Daeyd':function(_0x5710a2,_0x4101fc){return _0x5710a2(_0x4101fc);},'NpVUQ':_0x42dd07(0xf4),'ftjpC':function(_0x44c577,_0x24be06,_0x4c6c4e){return _0x44c577(_0x24be06,_0x4c6c4e);},'UyuHq':'run-code','EjnAY':_0x42dd07(0xb3),'XJowA':_0x42dd07(0xad),'aEsWT':'tab-select','ZkcsC':_0x42dd07(0xc5)};switch(_0x2b9324){case _0x1889ce[_0x42dd07(0xf8)]:{const _0x50701c=_0x1889ce['nrefd'](extractFirstCommandArgument,_0x1583db,_0x2b9324);return _0x50701c?'open\x20'+_0x50701c:_0x42dd07(0x120);}case'tracing-start':return _0x1889ce[_0x42dd07(0xde)];case _0x42dd07(0xaf):return _0x42dd07(0xe7);case _0x1889ce['LwoGl']:return _0x42dd07(0xbe);case _0x1889ce[_0x42dd07(0xdf)]:return _0x1889ce[_0x42dd07(0xf9)];case _0x42dd07(0xbb):{const _0x451a29=_0x1889ce[_0x42dd07(0xd4)](extractFilenameOption,_0x1583db);if(!_0x451a29)return'capture\x20snapshot';const {name:_0x286ae2}=_0x1889ce[_0x42dd07(0xd4)](toStepDisplayName,_0x451a29);return _0x42dd07(0x113)+_0x286ae2+'`';}case _0x42dd07(0xb0):{const _0x5da3be=extractFilenameOption(_0x1583db);if(!_0x5da3be)return _0x1889ce['hlxus'];const {name:_0x14bf62,isKeyStep:_0x2e8180}=_0x1889ce[_0x42dd07(0xd4)](toStepDisplayName,_0x5da3be);return _0x2e8180?'capture\x20key\x20step\x20`'+_0x14bf62+'`':'capture\x20step\x20`'+_0x14bf62+'`';}case _0x1889ce[_0x42dd07(0xd1)]:return _0x42dd07(0x10e)+formatCommandTarget(extractFirstCommandArgument(_0x1583db,_0x2b9324));case _0x42dd07(0x11d):return'check\x20'+_0x1889ce[_0x42dd07(0xe8)](formatCommandTarget,_0x1889ce[_0x42dd07(0x102)](extractFirstCommandArgument,_0x1583db,_0x2b9324));case _0x1889ce[_0x42dd07(0xd7)]:return'fill\x20'+_0x1889ce[_0x42dd07(0xe8)](formatCommandTarget,extractFirstCommandArgument(_0x1583db,_0x2b9324));case'press':return'press\x20'+_0x1889ce['Daeyd'](formatCommandTarget,_0x1889ce['ftjpC'](extractFirstCommandArgument,_0x1583db,_0x2b9324));case _0x1889ce['UyuHq']:return _0x1889ce['EjnAY'];case _0x1889ce[_0x42dd07(0x116)]:{const _0x47dd98=extractFirstCommandArgument(_0x1583db,_0x2b9324);return _0x47dd98?_0x42dd07(0xe5)+_0x47dd98:_0x42dd07(0x96);}case _0x1889ce[_0x42dd07(0xaa)]:{const _0xbd5c9b=_0x1889ce[_0x42dd07(0x102)](extractFirstCommandArgument,_0x1583db,_0x2b9324);return _0xbd5c9b?_0x42dd07(0xa7)+_0xbd5c9b:_0x1889ce['ZkcsC'];}default:return _0x2b9324;}}function extractPlaywrightCliToolDescription(_0x555104){const _0x23814e=_0x2a3a,_0x33e24d={'DiawZ':function(_0x539214,_0x550a7a){return _0x539214!==_0x550a7a;}},_0x1f84a1=_0x555104[_0x23814e(0xe1)];if(_0x33e24d['DiawZ'](typeof _0x1f84a1,'string'))return null;const _0x467b4e=_0x1f84a1['trim']()['replace'](/\s+/g,'\x20');return _0x467b4e[_0x23814e(0xc2)]>0x0?_0x467b4e:null;}export function formatPlaywrightCliConsoleLogMessage(_0x4e7736,_0x588ea3,_0x117e15){const _0x5d7729=_0x2a3a,_0x32710a={'RpCCE':function(_0x5ec0d,_0x4bc8f4,_0x4e43ad){return _0x5ec0d(_0x4bc8f4,_0x4e43ad);}},_0x3aa0a0=_0x32710a[_0x5d7729(0x100)](formatPlaywrightCliLog,_0x588ea3,_0x117e15),_0x14c1f1=extractPlaywrightCliToolDescription(_0x4e7736);if(!_0x14c1f1)return'[playwright-cli]\x20'+_0x3aa0a0;if(process['env'][_0x5d7729(0xe4)])return'[ranger-verification-agent]\x20'+_0x14c1f1+'\x20('+_0x3aa0a0+')';return _0x5d7729(0x11e)+_0x14c1f1;}export function buildVerifyFeatureCliDebugPrompt(_0x1ba676,_0xba4192){const _0x48ddd2=_0x2a3a,_0x37d3c0={'jMHtN':'00_mozilla-homepage.yml','OlFez':function(_0x46cf1e,_0x1d5c76,_0x468ebd){return _0x46cf1e(_0x1d5c76,_0x468ebd);},'fKUxv':'01_mozilla-homepage.png','tXyPo':_0x48ddd2(0xbc),'mxGaR':function(_0x4ac786,_0x53562c){return _0x4ac786(_0x53562c);}},_0x31cc06=buildCliArtifactPath(_0xba4192,_0x37d3c0[_0x48ddd2(0xce)]),_0x52c8ae=_0x37d3c0['OlFez'](buildCliArtifactPath,_0xba4192,_0x37d3c0['fKUxv']),_0xcefd58=buildCliArtifactPath(_0xba4192,_0x37d3c0[_0x48ddd2(0x115)]),_0x5e3880=buildCliArtifactPath(_0xba4192,_0x48ddd2(0x106)),_0x30e115=quoteShellArg(_0x31cc06),_0x5de7c8=_0x37d3c0['mxGaR'](quoteShellArg,_0x52c8ae),_0x459e49=_0x37d3c0[_0x48ddd2(0xbf)](quoteShellArg,_0xcefd58),_0x3f4197=quoteShellArg(_0x5e3880);return'You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Playwright\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a'+_0x1ba676+'\x0a\x0a1.\x20Run\x20`'+_0x1ba676+_0x48ddd2(0xc4)+_0x1ba676+_0x48ddd2(0x97)+_0x1ba676+_0x48ddd2(0x92)+_0xba4192+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a5.\x20Run\x20`'+_0x1ba676+'\x20snapshot\x20--filename\x20'+_0x30e115+'`\x0a5.\x20Read\x20the\x20snapshot\x20file\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20reference\x0a6.\x20Run\x20`'+_0x1ba676+'\x20screenshot\x20--filename\x20'+_0x5de7c8+_0x48ddd2(0xa9)+_0x1ba676+'\x20snapshot\x20--filename\x20'+_0x459e49+_0x48ddd2(0x9b)+_0x1ba676+'\x20screenshot\x20--filename\x20'+_0x3f4197+_0x48ddd2(0xb2);}export function buildVerifyFeatureCliPrompt(_0x52785a){const _0xc1f474=_0x2a3a,_0xd4bf80={'QrIkh':_0xc1f474(0xa2),'mJhTT':'short','VHyQb':'numeric','zFkKv':_0xc1f474(0xc3),'TlIsl':'\x20>\x20','PmjaY':_0xc1f474(0x110),'ZKRvx':function(_0x1defa0,_0x393cf2,_0x584850){return _0x1defa0(_0x393cf2,_0x584850);},'aIVBW':'02_state.yml','UzSdT':_0xc1f474(0x95),'ljock':function(_0x4ec0a1,_0x2cb9d3){return _0x4ec0a1(_0x2cb9d3);},'vSUbN':function(_0x5dd359,_0x592cf2){return _0x5dd359(_0x592cf2);},'tVLaX':function(_0x58a43c,_0x2d28d4){return _0x58a43c(_0x2d28d4);},'UojSy':function(_0x203148,_0x266228){return _0x203148>_0x266228;},'TzNus':function(_0x153f79,_0x4adc67,_0x32c24b){return _0x153f79(_0x4adc67,_0x32c24b);},'mbAlp':'02_button-clicked.png','OkLeW':'03_result-visible.png','AAPHU':function(_0x27c9e5,_0x5a1ff5,_0x2d8054){return _0x27c9e5(_0x5a1ff5,_0x2d8054);}},{checklistItem:_0x565beb,itemFeedback:_0x1ca551,taskDescription:_0x400d71,cliCommandPrefix:_0x4566cd,cliArtifactDir:_0x5e01fb,isCdpMode:_0x77750b,url:_0x2f7063,cdpEndpoint:_0x34d013,loginInstructions:_0x31c277}=_0x52785a,_0x9b57f1=_0xd4bf80[_0xc1f474(0xfc)](buildCliArtifactPath,_0x5e01fb,'01_initial.yml'),_0x1641f3=_0xd4bf80[_0xc1f474(0xfc)](buildCliArtifactPath,_0x5e01fb,_0xd4bf80[_0xc1f474(0xf7)]),_0x304736=_0xd4bf80[_0xc1f474(0xfc)](buildCliArtifactPath,_0x5e01fb,'key_03_success-state.png'),_0x22bdc4=buildCliArtifactPath(_0x5e01fb,_0xd4bf80['UzSdT']),_0x4bbf48=quoteShellArg(_0x9b57f1),_0x3c6b79=_0xd4bf80[_0xc1f474(0xd2)](quoteShellArg,_0x1641f3),_0x3bbabc=_0xd4bf80[_0xc1f474(0x119)](quoteShellArg,_0x304736),_0x5c5f3f=_0xd4bf80[_0xc1f474(0xc8)](quoteShellArg,_0x22bdc4),_0x254f73=_0x565beb[_0xc1f474(0xc1)]?'\x0a\x0a##\x20Additional\x20Notes\x0a'+_0x565beb[_0xc1f474(0xc1)]:'';let _0x25c64e='';if(_0x1ca551&&_0xd4bf80[_0xc1f474(0x111)](_0x1ca551['unaddressedComments']['length'],0x0)){const _0x2f52d2=_0x1ca551[_0xc1f474(0xd8)][_0xc1f474(0x103)](_0x46b044=>{const _0x1e31c6=_0xc1f474,_0x4f2a7f=new Date(_0x46b044['createdAt'])[_0x1e31c6(0x94)](_0xd4bf80[_0x1e31c6(0xa5)],{'month':_0xd4bf80[_0x1e31c6(0xf2)],'day':_0xd4bf80['VHyQb']}),_0x1aa566=_0x46b044[_0x1e31c6(0x11a)]||_0x46b044[_0x1e31c6(0x108)]||_0xd4bf80[_0x1e31c6(0x118)],_0x30ae3e=_0x46b044[_0x1e31c6(0x122)]?_0x1e31c6(0x107)+(_0x46b044['domRef'][_0x1e31c6(0xfa)]['split'](_0xd4bf80[_0x1e31c6(0x11c)])['pop']()?.[_0x1e31c6(0xba)](':')[0x0]||_0xd4bf80[_0x1e31c6(0xef)])+'>\x20\x22'+(_0x46b044['domRef'][_0x1e31c6(0xcf)]||'')['slice'](0x0,0x32)+'\x22)':'';return _0x1e31c6(0xdb)+_0x46b044['id']+_0x1e31c6(0xe2)+_0x1aa566+_0x1e31c6(0xfe)+_0x4f2a7f+'):\x20\x22'+_0x46b044[_0x1e31c6(0x11b)]+'\x22'+_0x30ae3e;})['join']('\x0a');_0x25c64e=_0xc1f474(0xd9)+_0x2f52d2;}const _0x5c355c=_0x1ca551?.[_0xc1f474(0xb8)]?'\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a'+_0x1ca551[_0xc1f474(0xb8)]:'',_0x241a33=_0x77750b?'##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20(Chrome\x20DevTools\x20Protocol)\x20at\x20'+_0x34d013+_0xc1f474(0xf6):'CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20'+_0x2f7063+_0xc1f474(0x105),_0x2ff3a4=_0x2f7063?_0xd4bf80['tVLaX'](quoteShellArg,_0x2f7063):'',_0x580625=_0x77750b?'##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`'+_0x4566cd+'\x20open`,\x20then\x20`'+_0x4566cd+'\x20tracing-start`,\x20then\x20`'+_0x4566cd+_0xc1f474(0x10a)+_0x5e01fb+_0xc1f474(0xda)+_0x4566cd+'\x20snapshot\x20--filename\x20'+_0x4bbf48+_0xc1f474(0xf5)+_0x4566cd+_0xc1f474(0xab)+_0x5c5f3f+_0xc1f474(0x104)+_0x4566cd+_0xc1f474(0xd6):'##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`'+_0x4566cd+'\x20open\x20'+_0x2ff3a4+'`,\x20then\x20`'+_0x4566cd+_0xc1f474(0x114)+_0x4566cd+'\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x5e01fb+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`'+_0x4566cd+'\x20snapshot\x20--filename\x20'+_0x4bbf48+_0xc1f474(0xf1)+_0x4566cd+'\x20screenshot\x20--filename\x20'+_0x5c5f3f+'`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a8.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`'+_0x4566cd+'\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',_0x38995e=_0x77750b?'\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-\x20Login/sign-in/auth\x20pages\x20when\x20no\x20Authentication\x20section\x20is\x20present\x20in\x20this\x20prompt\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.',_0xa5422=_0x31c277?'\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20you\x20MUST\x20authenticate\x20using\x20these\x20steps:\x0a'+_0x31c277+'\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 _0xc1f474(0xca)+_0x565beb['description']+_0x254f73+_0x25c64e+_0x5c355c+'\x0a\x0a##\x20Task\x20to\x20Execute\x0a'+_0x400d71+'\x0a\x0a'+_0x241a33+_0xa5422+'\x0a\x0a'+_0x580625+_0xc1f474(0x9c)+_0x4566cd+_0xc1f474(0xd3)+_0x5e01fb+_0xc1f474(0xd5)+_0x3c6b79+'`\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'+_0x3bbabc+_0xc1f474(0xf3)+_0x5e01fb+'`:\x20\x22'+_0x22bdc4+'\x22,\x20\x22'+_0xd4bf80[_0xc1f474(0xa1)](buildCliArtifactPath,_0x5e01fb,_0xd4bf80[_0xc1f474(0xbd)])+'\x22,\x20\x22'+_0xd4bf80[_0xc1f474(0xfc)](buildCliArtifactPath,_0x5e01fb,_0xd4bf80[_0xc1f474(0xb9)])+_0xc1f474(0x9f)+_0xd4bf80['AAPHU'](buildCliArtifactPath,_0x5e01fb,_0xc1f474(0x9e))+_0xc1f474(0xff)+_0x38995e+_0xc1f474(0x117);}export function summarizeVerifyFeatureCliCommandAvailability(_0x203424){const _0x2592b0=_0x2a3a,_0x412fd4=[..._0x203424['keys']()][_0x2592b0(0x93)]();let _0x52e9f6=0x0;for(const _0x1a0c06 of _0x203424['values']()){_0x52e9f6+=_0x1a0c06;}return{'cliCommandCount':_0x52e9f6,'cliCommandsSeen':_0x412fd4,'noCliCommandsCalled':_0x52e9f6===0x0};}export function createVerifyFeatureCliHooks(_0x3352da){const _0x2a216e={'JMCuP':function(_0x118c8a,_0x458276){return _0x118c8a!==_0x458276;},'AVgYe':function(_0x161e82,_0x3d8de3){return _0x161e82(_0x3d8de3);},'GnzXE':'playwright-cli','Inopf':'snapshot','MpCbi':function(_0x38d08d,_0x1cc9f1){return _0x38d08d!==_0x1cc9f1;},'hbPAm':'Bash'},_0x4139a7=new Map(),_0x460026=async _0x49f25f=>{const _0x23a6c0=_0x2a3a;if(_0x49f25f[_0x23a6c0(0x11f)]!=='PostToolUse')return{};const _0x2fa1bb=_0x49f25f;if(_0x2a216e[_0x23a6c0(0xb5)](_0x2fa1bb[_0x23a6c0(0xdd)],'Bash'))return{};const _0x3c1a31=_0x2fa1bb['tool_input'],_0x32233f=_0x2a216e['AVgYe'](extractBashCommand,_0x3c1a31);if(!_0x32233f)return{};const _0x29f749=parsePlaywrightCliCommand(_0x32233f);if(!_0x29f749)return{};return _0x4139a7[_0x23a6c0(0xf0)](_0x29f749,(_0x4139a7['get'](_0x29f749)||0x0)+0x1),_0x3352da['trackPhaseStart']('tool_call',{'transport':_0x2a216e['GnzXE'],'toolName':_0x29f749}),_0x3352da['trackPhaseEnd'](_0x23a6c0(0xa0),{'transport':_0x23a6c0(0xe0),'toolName':_0x29f749,'bashCommandPreview':_0x2a216e[_0x23a6c0(0xb7)](truncatePreview,_0x32233f)}),_0x2a216e['JMCuP'](_0x29f749,_0x2a216e['Inopf'])&&console[_0x23a6c0(0xb4)](formatPlaywrightCliConsoleLogMessage(_0x3c1a31,_0x32233f,_0x29f749)),{};},_0x2ad988=async _0x4f368b=>{const _0x35a62f=_0x2a3a;if(_0x4f368b['hook_event_name']!=='PostToolUseFailure')return{};const _0x1c3a19=_0x4f368b;if(_0x2a216e['MpCbi'](_0x1c3a19[_0x35a62f(0xdd)],'Bash'))return{};return await _0x3352da['trackPhaseError']('tool_failure',_0x1c3a19[_0x35a62f(0x10f)],{'transport':_0x2a216e[_0x35a62f(0xae)],'toolName':_0x2a216e[_0x35a62f(0x9d)]}),{};};return{'postToolUseHook':_0x460026,'postToolUseFailureHook':_0x2ad988,'commandCounts':_0x4139a7};}async function runPlaywrightCliLifecycleCommand(_0xa35bd5){const _0x29a473=_0x2a3a,_0x11afe5={'IfsCP':function(_0x328a90,_0x171a83){return _0x328a90(_0x171a83);},'vVQPX':function(_0x51fd4d,_0xfaaa00){return _0x51fd4d??_0xfaaa00;},'xbmvY':function(_0x5506e7,_0x356731,_0x370783){return _0x5506e7(_0x356731,_0x370783);}},{sessionId:_0x5bae77,configPath:_0x44eb6a,commandArgs:_0x2ceeaa,env:_0x393624,telemetry:_0x37736b,phase:_0x5a804d,metadata:_0x2f327b,timeoutMs:_0x58d2bf}=_0xa35bd5;_0x37736b['trackPhaseStart'](_0x5a804d,_0x2f327b);try{const _0xa47e6d=await _0x11afe5['IfsCP'](runPlaywrightCliCommand,{'sessionId':_0x5bae77,'configPath':_0x44eb6a,'commandArgs':_0x2ceeaa,'cwd':process[_0x29a473(0xac)](),'env':_0x393624,'timeoutMs':_0x11afe5['vVQPX'](_0x58d2bf,PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS)});_0x37736b['trackPhaseEnd'](_0x5a804d,{..._0x2f327b,'subcommand':_0xa47e6d[_0x29a473(0x90)][_0x29a473(0xe3)],'stdoutPreview':_0x11afe5['xbmvY'](truncatePreview,_0xa47e6d[_0x29a473(0xcc)],0x7d0),'stderrPreview':truncatePreview(_0xa47e6d['stderr'],0x7d0)});}catch(_0x294763){await _0x37736b[_0x29a473(0x10c)](_0x5a804d,_0x294763,_0x2f327b);throw _0x294763;}}export async function finalizeVerifyFeatureCliSession(_0x500517){const _0x1860ab=_0x2a3a,_0x423d91={'aMWZV':'playwright_cli_video_stop','ZLrVI':'video-stop','UZwEf':function(_0x250b22,_0x5dc667,_0x57fa77){return _0x250b22(_0x5dc667,_0x57fa77);},'EBnpF':_0x1860ab(0xe9),'biElC':function(_0xb9a82a,_0x56d24a){return _0xb9a82a(_0x56d24a);}},{telemetry:_0x2ac68f,sessionId:_0x49ef73,configPath:_0x24db89,cliArtifactDir:_0x477a7d,env:_0x123c13,transportMetadata:_0x4cd74f}=_0x500517,_0x56ef16=[{'phase':_0x1860ab(0xec),'commandArgs':['tracing-stop']},{'phase':_0x423d91['aMWZV'],'commandArgs':[_0x423d91[_0x1860ab(0xee)],_0x1860ab(0xc6)+_0x423d91['UZwEf'](buildCliArtifactPath,_0x477a7d,_0x1860ab(0x10b))]},{'phase':_0x423d91['EBnpF'],'commandArgs':['close']}];for(const _0x4c277e of _0x56ef16){try{await _0x423d91[_0x1860ab(0xfb)](runPlaywrightCliLifecycleCommand,{'sessionId':_0x49ef73,'configPath':_0x24db89,'commandArgs':[..._0x4c277e['commandArgs']],'env':_0x123c13,'telemetry':_0x2ac68f,'phase':_0x4c277e[_0x1860ab(0xa4)],'metadata':_0x4cd74f});}catch{}}}export async function loadVerifyFeatureCliTraceUploadArtifact(_0x89805d){const _0x307d6c=_0x2a3a,_0xdaec4f={'cxJBY':_0x307d6c(0xb6),'xukXl':'trace.trace.zip'},_0x4c4b27=[_0xdaec4f['cxJBY'],_0xdaec4f['xukXl']];for(const _0x10e6d1 of _0x4c4b27){const _0x2daf6d=join(_0x89805d,_0x10e6d1);try{return{'buffer':await readFile(_0x2daf6d),'source':_0x2daf6d};}catch{}}return null;}export async function rehomeVerifyFeatureCliArtifacts(_0x5840bd){const _0x5595d7=_0x2a3a,_0x24871f={'ObrVs':function(_0x507786,_0x113134,_0x5a6e44){return _0x507786(_0x113134,_0x5a6e44);},'DzXCV':function(_0x10cfe0,_0x3c71cc){return _0x10cfe0(_0x3c71cc);},'WwMNw':function(_0x544a13,_0x554423){return _0x544a13<_0x554423;},'bkhDc':function(_0x479fdb,_0x2eda4e){return _0x479fdb===_0x2eda4e;}},{cwd:_0x40bd2c,cliArtifactDir:_0x346ba3,startTime:_0x181522}=_0x5840bd,_0x550dbe=[];await mkdir(_0x346ba3,{'recursive':!![]});const _0x1ef664=await readdir(_0x40bd2c,{'withFileTypes':!![]});for(const _0x566e57 of _0x1ef664){if(!_0x566e57[_0x5595d7(0xc9)]()||!VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN[_0x5595d7(0x109)](_0x566e57[_0x5595d7(0xd0)]))continue;const _0x368fa1=_0x24871f[_0x5595d7(0xdc)](join,_0x40bd2c,_0x566e57[_0x5595d7(0xd0)]),_0x28386f=await _0x24871f['DzXCV'](stat,_0x368fa1);if(_0x24871f[_0x5595d7(0xb1)](_0x28386f[_0x5595d7(0xe6)]+0x7d0,_0x181522))continue;const _0x5f312d=buildCliArtifactPath(_0x346ba3,_0x566e57[_0x5595d7(0xd0)]);if(_0x24871f['bkhDc'](_0x368fa1,_0x5f312d))continue;await rename(_0x368fa1,_0x5f312d),_0x550dbe['push'](_0x566e57[_0x5595d7(0xd0)]);}return _0x550dbe[_0x5595d7(0x93)]();}
|
|
1
|
+
(function(_0x548a28,_0x45d51b){const _0x3991ff=_0x5eac,_0x97d46e=_0x548a28();while(!![]){try{const _0x4ce137=parseInt(_0x3991ff(0xcc))/0x1+parseInt(_0x3991ff(0xa5))/0x2*(parseInt(_0x3991ff(0x108))/0x3)+parseInt(_0x3991ff(0x9f))/0x4*(-parseInt(_0x3991ff(0x9c))/0x5)+parseInt(_0x3991ff(0xbb))/0x6*(parseInt(_0x3991ff(0x11c))/0x7)+-parseInt(_0x3991ff(0x122))/0x8*(parseInt(_0x3991ff(0x109))/0x9)+parseInt(_0x3991ff(0xb6))/0xa*(parseInt(_0x3991ff(0xe0))/0xb)+-parseInt(_0x3991ff(0xa7))/0xc;if(_0x4ce137===_0x45d51b)break;else _0x97d46e['push'](_0x97d46e['shift']());}catch(_0xcaf952){_0x97d46e['push'](_0x97d46e['shift']());}}}(_0x2845,0x44114));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(_0x2c0d45,_0xf3ad7a=PLAYWRIGHT_CLI_PREVIEW_LIMIT){const _0x1e856b=_0x5eac,_0x35873a={'awNGn':function(_0x5d72b2,_0x10e04d){return _0x5d72b2>_0x10e04d;},'FXdJD':_0x1e856b(0x13a)};return _0x35873a['awNGn'](_0x2c0d45[_0x1e856b(0xc4)],_0xf3ad7a)?_0x2c0d45[_0x1e856b(0xee)](0x0,_0xf3ad7a)+_0x35873a[_0x1e856b(0xd9)]:_0x2c0d45;}function buildCliArtifactPath(_0x59e80c,_0x4cb045){const _0x1286a2=_0x5eac,_0x3f7da2={'jSCZS':function(_0xabce40,_0xad5571,_0x51767a){return _0xabce40(_0xad5571,_0x51767a);}};return _0x3f7da2[_0x1286a2(0xa9)](join,_0x59e80c,_0x4cb045);}function _0x2845(){const _0x8a368c=['bXtLv','test','7116PrvzKl','commandArgs','44364GDvRvz','label','jSCZS','\x20tracing-start`\x0a3.\x20Run\x20`','open\x20','\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','DoApY','(?:^|\x5cs)','MOwKw','UyYxb','invocation','select\x20tab','tool_input','tool_name','CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20','20HLGHjy','\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`','qHdcv','rZswF','\x22,\x20\x22','43572LdcWXW','run-code','select\x20tab\x20','numeric','playwright-cli','YSmWx','the\x20primary\x20actor','\x20snapshot\x20--filename\x20','qAAfM','length','\x20(the\x20primary\x20actor).\x0a-\x20You\x20may\x20still\x20run\x20`tracing-start`\x20/\x20`video-start`\x20once\x20per\x20actor\x20session,\x20exactly\x20as\x20you\x20do\x20for\x20the\x20single\x20prefix.\x0a-\x20Do\x20NOT\x20run\x20`close`,\x20`tracing-stop`,\x20or\x20`video-stop`\x20for\x20any\x20actor;\x20the\x20host\x20finalizes\x20every\x20actor\x27s\x20session\x20and\x20artifacts.','):\x20pick\x20the\x20prefix\x20whose\x20label\x20matches\x20the\x20step\x27s\x20actor.\x0a-\x20The\x20prefix\x20shown\x20in\x20\x22Browser\x20Command\x20Reference\x22\x20above\x20drives\x20','name','replace','notes','Bash','(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))','159905OjDDOO','01_initial.yml','video-start','PostToolUse','KPqAm','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`','lfVeO','element','`,\x20then\x20`','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a5.\x20Run\x20`','\x0a\x0a##\x20Additional\x20Notes\x0a','fill\x20','**\x20(','FXdJD','keys','YVoXq','`\x20<subcommand>\x20…\x20\x20and\x20save\x20this\x20actor\x27s\x20screenshots/snapshots\x20UNDER\x20`','`\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`','GfNAd','\x20open\x20https://www.mozilla.org`\x0a2.\x20Run\x20`','2785343dojyNV','prefix','hook_event_name','unaddressedComments','.\x0aThis\x20is\x20NOT\x20a\x20web\x20app\x20—\x20there\x20is\x20no\x20URL\x20to\x20navigate\x20to.\x20The\x20app\x20is\x20already\x20running\x20and\x20connected.','\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','You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Playwright\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a','actorPrefixes','YoTwv','`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a6.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`','xfiBN','`\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','qJHjT','>\x20\x22','slice','YMwEo','`:\x20\x22','[playwright-cli]\x20','VYniz','run\x20custom\x20Playwright\x20code','\x5c$&','push','get','Khwes','\x20screenshot\x20--filename\x20','capture\x20snapshot\x20`','tab-select','01_initial-state.png','tracing-stop','THLKq','tool_call','domRef','capture\x20key\x20step\x20`','press','trackPhaseError','\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','open\x20browser','`\x0a9.\x20Run\x20`','playwright_cli_close','session-recording.webm','138FlVNhj','18hyPxOJ','##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`','gEozd','click\x20','\x0a\x0a-\x20Each\x20actor\x20has\x20its\x20OWN\x20artifact\x20directory\x20—\x20save\x20each\x20actor\x27s\x20screenshots\x20under\x20that\x20actor\x27s\x20directory\x20shown\x20above;\x20do\x20NOT\x20write\x20one\x20actor\x27s\x20screenshots\x20into\x20another\x20actor\x27s\x20directory.\x0a-\x20Switch\x20actors\x20as\x20the\x20scenario\x20dictates\x20(','close','phase','fvnnB','\x20(on\x20element:\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.','playwright_cli_tracing_stop','tool_failure','IFSmI','stringify','short','open\x20new\x20tab\x20','\x20/\x20','trackPhaseStart','`\x20(e.g.\x20`','56TYVzxQ','capture\x20snapshot','trim','match','\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','video-stop','1511080MsJcjb','Tqmgz','`\x0a5.\x20Read\x20the\x20snapshot\x20file\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20reference\x0a6.\x20Run\x20`','description','jrVgI','`\x0a-\x20`snapshot\x20--filename\x20','/01_state.png`).','ywXnC','capture\x20step\x20`','\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.','env','\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a','zBKXg','GzTDM','\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`','lhJoD','OMtqP','\x20open\x20','trackPhaseEnd','fill','`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a8.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`','-\x20[','`\x0a7.\x20Click\x20the\x20\x22Learn\x20More\x22\x20link\x20with\x20Playwright\x20CLI\x0a8.\x20Run\x20`','sort','...','join','ZWqQz','key_04_success-state.png','kNWfY','2455oaxflj',',\x20…\x20\x20→\x20\x20`','key_03_success-state.png','1856FMktRg','selector','mlpaQ','stop\x20tracing'];_0x2845=function(){return _0x8a368c;};return _0x2845();}function toStepDisplayName(_0x3cc32a){const _0xc2456=_0x5eac,_0x124d27={'MlqSi':function(_0x3a6977,_0x20a237){return _0x3a6977(_0x20a237);},'GkmBQ':function(_0x5f4955,_0x2961c1){return _0x5f4955(_0x2961c1);}},_0x2f0ca6=_0x124d27['MlqSi'](basename,_0x3cc32a)['replace'](/\.(?:png|ya?ml)$/i,'')['replace'](/^key_/i,'')[_0xc2456(0xc8)](/^\d+_/,'')[_0xc2456(0xc8)](/-/g,'\x20');return{'name':_0x2f0ca6,'isKeyStep':/^key_/i[_0xc2456(0xa4)](_0x124d27['GkmBQ'](basename,_0x3cc32a))};}function extractShellValue(_0x32959f){if(!_0x32959f)return null;return _0x32959f[0x1]??_0x32959f[0x2]??_0x32959f[0x3]??null;}function extractFilenameOption(_0x3538b1){const _0x2f2d77=_0x5eac,_0x4e0c47={'gEozd':function(_0x18df1c,_0x391ae9){return _0x18df1c(_0x391ae9);}};return _0x4e0c47[_0x2f2d77(0x10b)](extractShellValue,_0x3538b1['match'](/--filename(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function extractFirstCommandArgument(_0x2f8397,_0x44803a){const _0x18d57f=_0x5eac,_0x3bf641={'DoApY':function(_0x18038b,_0x1ff848){return _0x18038b(_0x1ff848);}},_0x297f7f=_0x44803a['replace'](/[.*+?^${}()|[\]\\]/g,_0x18d57f(0xf4));return _0x3bf641[_0x18d57f(0xad)](extractShellValue,_0x2f8397[_0x18d57f(0x11f)](new RegExp(_0x18d57f(0xae)+_0x297f7f+_0x18d57f(0xcb))));}function formatCommandTarget(_0xf69694){const _0x3131d5=_0x5eac,_0x4431eb={'LtoZV':'target','deBrx':function(_0x28cc06,_0x5ab6e5,_0x19d9be){return _0x28cc06(_0x5ab6e5,_0x19d9be);}};if(!_0xf69694)return _0x4431eb['LtoZV'];if(/^e\d+$/i['test'](_0xf69694))return'ref\x20'+_0xf69694;return JSON[_0x3131d5(0x116)](_0x4431eb['deBrx'](truncatePreview,_0xf69694,0x78));}function formatPlaywrightCliLog(_0x34c3f3,_0x5acaf7){const _0x438636=_0x5eac,_0x1e5ca6={'nrtQq':'open','Tqmgz':function(_0x5b4da9,_0xc9e13,_0x3941bf){return _0x5b4da9(_0xc9e13,_0x3941bf);},'fvnnB':_0x438636(0x104),'cnRCv':'tracing-start','Fqlsq':_0x438636(0xfc),'WYGzV':_0x438636(0xa2),'qAAfM':function(_0x241d5e,_0x2d48fd){return _0x241d5e(_0x2d48fd);},'sJItI':function(_0x183a14,_0x52a1af){return _0x183a14(_0x52a1af);},'emgUJ':'capture\x20screenshot','IeScc':function(_0x5cee2e,_0x2bfb02){return _0x5cee2e(_0x2bfb02);},'ZWqQz':function(_0x422325,_0x529596,_0x478616){return _0x422325(_0x529596,_0x478616);},'hsIuT':_0x438636(0x101),'Khwes':_0x438636(0xbc),'avwnX':'tab-new','KbcMK':'open\x20new\x20tab','xkbyk':_0x438636(0xfa),'bXtLv':_0x438636(0xb2)};switch(_0x5acaf7){case _0x1e5ca6['nrtQq']:{const _0x4bb1ce=_0x1e5ca6[_0x438636(0x123)](extractFirstCommandArgument,_0x34c3f3,_0x5acaf7);return _0x4bb1ce?_0x438636(0xab)+_0x4bb1ce:_0x1e5ca6[_0x438636(0x110)];}case _0x1e5ca6['cnRCv']:return'start\x20tracing';case _0x1e5ca6['Fqlsq']:return _0x1e5ca6['WYGzV'];case _0x438636(0xce):return'start\x20video\x20recording';case _0x438636(0x121):return'stop\x20video\x20recording';case'snapshot':{const _0x54d10f=extractFilenameOption(_0x34c3f3);if(!_0x54d10f)return _0x438636(0x11d);const {name:_0x3a94af}=_0x1e5ca6[_0x438636(0xc3)](toStepDisplayName,_0x54d10f);return _0x438636(0xf9)+_0x3a94af+'`';}case'screenshot':{const _0x522614=_0x1e5ca6['sJItI'](extractFilenameOption,_0x34c3f3);if(!_0x522614)return _0x1e5ca6['emgUJ'];const {name:_0x1669c0,isKeyStep:_0x493312}=_0x1e5ca6['IeScc'](toStepDisplayName,_0x522614);return _0x493312?_0x438636(0x100)+_0x1669c0+'`':_0x438636(0x12a)+_0x1669c0+'`';}case'click':return _0x438636(0x10c)+formatCommandTarget(extractFirstCommandArgument(_0x34c3f3,_0x5acaf7));case'check':return'check\x20'+formatCommandTarget(extractFirstCommandArgument(_0x34c3f3,_0x5acaf7));case _0x438636(0x135):return _0x438636(0xd7)+formatCommandTarget(_0x1e5ca6['ZWqQz'](extractFirstCommandArgument,_0x34c3f3,_0x5acaf7));case _0x1e5ca6['hsIuT']:return'press\x20'+formatCommandTarget(extractFirstCommandArgument(_0x34c3f3,_0x5acaf7));case _0x1e5ca6[_0x438636(0xf7)]:return _0x438636(0xf3);case _0x1e5ca6['avwnX']:{const _0xf798ff=_0x1e5ca6[_0x438636(0x13c)](extractFirstCommandArgument,_0x34c3f3,_0x5acaf7);return _0xf798ff?_0x438636(0x118)+_0xf798ff:_0x1e5ca6['KbcMK'];}case _0x1e5ca6['xkbyk']:{const _0x5dcf8d=extractFirstCommandArgument(_0x34c3f3,_0x5acaf7);return _0x5dcf8d?_0x438636(0xbd)+_0x5dcf8d:_0x1e5ca6[_0x438636(0xa3)];}default:return _0x5acaf7;}}function extractPlaywrightCliToolDescription(_0x21de48){const _0x57c96c=_0x5eac,_0x458984={'VObmK':'string'},_0x4ff72a=_0x21de48[_0x57c96c(0x125)];if(typeof _0x4ff72a!==_0x458984['VObmK'])return null;const _0x2e3979=_0x4ff72a[_0x57c96c(0x11e)]()[_0x57c96c(0xc8)](/\s+/g,'\x20');return _0x2e3979[_0x57c96c(0xc4)]>0x0?_0x2e3979:null;}export function formatPlaywrightCliConsoleLogMessage(_0x3eb37c,_0x1f3023,_0x2f2002){const _0x1b21b5=_0x5eac,_0x1bccc3={'fSDmF':function(_0x4a14ea,_0x443dfb,_0x203aca){return _0x4a14ea(_0x443dfb,_0x203aca);},'qJHjT':function(_0x19d6e8,_0x1174ec){return _0x19d6e8(_0x1174ec);}},_0x5c8c2d=_0x1bccc3['fSDmF'](formatPlaywrightCliLog,_0x1f3023,_0x2f2002),_0x285ff0=_0x1bccc3[_0x1b21b5(0xec)](extractPlaywrightCliToolDescription,_0x3eb37c);if(!_0x285ff0)return _0x1b21b5(0xf1)+_0x5c8c2d;if(process[_0x1b21b5(0x12c)]['DEBUG'])return'[ranger-verification-agent]\x20'+_0x285ff0+'\x20('+_0x5c8c2d+')';return'[ranger-verification-agent]\x20'+_0x285ff0;}export function buildVerifyFeatureCliDebugPrompt(_0x2088d3,_0x4927bd){const _0x5a37e2=_0x5eac,_0x3276ff={'xQwFU':function(_0x2f54e0,_0x1e1cb3,_0x2e635c){return _0x2f54e0(_0x1e1cb3,_0x2e635c);},'zBKXg':function(_0x5b0738,_0x15e6e9){return _0x5b0738(_0x15e6e9);}},_0x792b9d=_0x3276ff['xQwFU'](buildCliArtifactPath,_0x4927bd,'00_mozilla-homepage.yml'),_0x3e969d=buildCliArtifactPath(_0x4927bd,'01_mozilla-homepage.png'),_0xeeb391=buildCliArtifactPath(_0x4927bd,'02_learn-more.yml'),_0x54a94b=buildCliArtifactPath(_0x4927bd,'03_learn-more.png'),_0x3913b8=_0x3276ff[_0x5a37e2(0x12e)](quoteShellArg,_0x792b9d),_0x2a28b7=_0x3276ff['zBKXg'](quoteShellArg,_0x3e969d),_0x52ce47=quoteShellArg(_0xeeb391),_0x5c5ac0=quoteShellArg(_0x54a94b);return _0x5a37e2(0xe6)+_0x2088d3+'\x0a\x0a1.\x20Run\x20`'+_0x2088d3+_0x5a37e2(0xdf)+_0x2088d3+_0x5a37e2(0xaa)+_0x2088d3+'\x20video-start`\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x4927bd+_0x5a37e2(0xd5)+_0x2088d3+'\x20snapshot\x20--filename\x20'+_0x3913b8+_0x5a37e2(0x124)+_0x2088d3+'\x20screenshot\x20--filename\x20'+_0x2a28b7+_0x5a37e2(0x138)+_0x2088d3+_0x5a37e2(0xc2)+_0x52ce47+_0x5a37e2(0x105)+_0x2088d3+'\x20screenshot\x20--filename\x20'+_0x5c5ac0+'`\x0a10.\x20Return\x20immediately\x20with\x20the\x20structured\x20output\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.';}export function buildVerifyFeatureCliPrompt(_0x4bf414){const _0x49795a=_0x5eac,_0x54a5ed={'EMdAS':'\x20>\x20','MOwKw':_0x49795a(0xd3),'IFSmI':function(_0x2cc8e9,_0x4a7be1,_0xcd6df2){return _0x2cc8e9(_0x4a7be1,_0xcd6df2);},'UsonF':'02_state.yml','sjEXe':function(_0x8c72fa,_0x2ced3f,_0xc48e96){return _0x8c72fa(_0x2ced3f,_0xc48e96);},'nCcLm':function(_0x447fc7,_0x415d61){return _0x447fc7(_0x415d61);},'BUfBH':function(_0xbfb94e,_0x83803d){return _0xbfb94e(_0x83803d);},'xCpbk':'02_button-clicked.png','jrVgI':function(_0x18e653,_0x281ab8,_0x36e023){return _0x18e653(_0x281ab8,_0x36e023);},'THLKq':'03_result-visible.png','YVoXq':function(_0x3b7e1a,_0x187994,_0x1d81aa){return _0x3b7e1a(_0x187994,_0x1d81aa);}},{checklistItem:_0x62209d,itemFeedback:_0x353211,taskDescription:_0x20a612,cliCommandPrefix:_0x309c19,cliArtifactDir:_0x1c1465,isCdpMode:_0x4cc5ce,url:_0x7fe346,cdpEndpoint:_0x5a6cef,loginInstructions:_0x221766}=_0x4bf414,_0x228f9d=buildCliArtifactPath(_0x1c1465,_0x49795a(0xcd)),_0x2cad5e=_0x54a5ed['IFSmI'](buildCliArtifactPath,_0x1c1465,_0x54a5ed['UsonF']),_0x3a3a05=_0x54a5ed['sjEXe'](buildCliArtifactPath,_0x1c1465,_0x49795a(0x9e)),_0x57cb2f=_0x54a5ed[_0x49795a(0x115)](buildCliArtifactPath,_0x1c1465,_0x49795a(0xfb)),_0x5eb882=_0x54a5ed['nCcLm'](quoteShellArg,_0x228f9d),_0x67a4b6=quoteShellArg(_0x2cad5e),_0x284fd1=_0x54a5ed['BUfBH'](quoteShellArg,_0x3a3a05),_0x11c4af=quoteShellArg(_0x57cb2f),_0x668167=_0x62209d['notes']?_0x49795a(0xd6)+_0x62209d[_0x49795a(0xc9)]:'';let _0x275392='';if(_0x353211&&_0x353211['unaddressedComments']['length']>0x0){const _0x233523=_0x353211[_0x49795a(0xe3)]['map'](_0x3e45ce=>{const _0x3807a9=_0x49795a,_0x586478=new Date(_0x3e45ce['createdAt'])['toLocaleDateString']('en-US',{'month':_0x3807a9(0x117),'day':_0x3807a9(0xbe)}),_0x32e0c9=_0x3e45ce['authorName']||_0x3e45ce['authorEmail']||'Reviewer',_0x28d1b7=_0x3e45ce[_0x3807a9(0xff)]?_0x3807a9(0x111)+(_0x3e45ce[_0x3807a9(0xff)][_0x3807a9(0xa0)]['split'](_0x54a5ed['EMdAS'])['pop']()?.['split'](':')[0x0]||_0x54a5ed[_0x3807a9(0xaf)])+_0x3807a9(0xed)+(_0x3e45ce['domRef']['textContent']||'')['slice'](0x0,0x32)+'\x22)':'';return _0x3807a9(0x137)+_0x3e45ce['id']+']\x20**'+_0x32e0c9+_0x3807a9(0xd8)+_0x586478+'):\x20\x22'+_0x3e45ce['content']+'\x22'+_0x28d1b7;})['join']('\x0a');_0x275392=_0x49795a(0xe5)+_0x233523;}const _0x63b95e=_0x353211?.['canonicalFlow']?_0x49795a(0x12d)+_0x353211['canonicalFlow']:'',_0x1b2192=_0x4cc5ce?'##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20(Chrome\x20DevTools\x20Protocol)\x20at\x20'+_0x5a6cef+_0x49795a(0xe4):_0x49795a(0xb5)+_0x7fe346+_0x49795a(0x103),_0xca5587=_0x7fe346?_0x54a5ed['BUfBH'](quoteShellArg,_0x7fe346):'',_0x414597=_0x4cc5ce?_0x49795a(0x10a)+_0x309c19+'\x20open`,\x20then\x20`'+_0x309c19+'\x20tracing-start`,\x20then\x20`'+_0x309c19+'\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x1c1465+_0x49795a(0xd1)+_0x309c19+'\x20snapshot\x20--filename\x20'+_0x5eb882+_0x49795a(0xdd)+_0x309c19+'\x20screenshot\x20--filename\x20'+_0x11c4af+_0x49795a(0xe9)+_0x309c19+'\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':'##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`'+_0x309c19+_0x49795a(0x133)+_0xca5587+_0x49795a(0xd4)+_0x309c19+'\x20tracing-start`,\x20then\x20`'+_0x309c19+_0x49795a(0xb7)+_0x1c1465+'`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`'+_0x309c19+'\x20snapshot\x20--filename\x20'+_0x5eb882+'`\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`'+_0x309c19+_0x49795a(0xf8)+_0x11c4af+_0x49795a(0x136)+_0x309c19+'\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',_0x2733fd=_0x4cc5ce?'\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-\x20Login/sign-in/auth\x20pages\x20when\x20no\x20Authentication\x20section\x20is\x20present\x20in\x20this\x20prompt\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.',_0x5338e1=_0x221766?'\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20you\x20MUST\x20authenticate\x20using\x20these\x20steps:\x0a'+_0x221766+_0x49795a(0x112):'',_0x363c02=_0x4bf414['actorPrefixes']&&_0x4bf414[_0x49795a(0xe7)][_0x49795a(0xc4)]>=0x2?'\x0a\x0a##\x20Multiple\x20Actors\x20—\x20one\x20live\x20browser\x20session\x20each\x0aRun\x20every\x20browser\x20command\x20with\x20the\x20prefix\x20for\x20the\x20actor\x20named\x20in\x20the\x20step.\x20Each\x20actor\x20is\x20a\x20separate,\x20independent\x20browser\x20session\x20(its\x20own\x20login,\x20cookies,\x20and\x20storage)\x20—\x20the\x20same\x20prefix\x20always\x20drives\x20the\x20same\x20actor\x27s\x20session.\x0a\x0a'+_0x4bf414['actorPrefixes']['map'](_0x4d7d55=>'-\x20As\x20'+_0x4d7d55['label']+_0x49795a(0x9d)+_0x4d7d55[_0x49795a(0xe1)]+_0x49795a(0xdc)+_0x4d7d55['artifactDir']+_0x49795a(0x11b)+_0x4d7d55['prefix']+'\x20screenshot\x20--filename\x20'+_0x4d7d55['artifactDir']+_0x49795a(0x128))[_0x49795a(0x13b)]('\x0a')+_0x49795a(0x10d)+_0x4bf414[_0x49795a(0xe7)]['map'](_0x3123cc=>'\x22As\x20'+_0x3123cc[_0x49795a(0xa8)]+',\x20…\x22')[_0x49795a(0x13b)](_0x49795a(0x119))+_0x49795a(0xc6)+(_0x4bf414['actorPrefixes'][0x0]?.['label']??_0x49795a(0xc1))+_0x49795a(0xc5):'';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'+_0x62209d['description']+_0x668167+_0x275392+_0x63b95e+'\x0a\x0a##\x20Task\x20to\x20Execute\x0a'+_0x20a612+'\x0a\x0a'+_0x1b2192+_0x5338e1+'\x0a\x0a'+_0x414597+'\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Playwright\x20CLI\x20commands\x20with\x20this\x20exact\x20prefix:\x0a`'+_0x309c19+'`\x0a\x0a-\x20Write\x20all\x20artifacts\x20under\x20`'+_0x1c1465+_0x49795a(0x127)+_0x67a4b6+_0x49795a(0xeb)+_0x284fd1+'`\x0a-\x20`run-code\x20\x22await\x20page.waitForTimeout(1000)\x22`\x20for\x20waits\x20or\x20small\x20custom\x20checks'+_0x363c02+_0x49795a(0x130)+_0x1c1465+_0x49795a(0xf0)+_0x57cb2f+'\x22,\x20\x22'+buildCliArtifactPath(_0x1c1465,_0x54a5ed['xCpbk'])+_0x49795a(0xba)+_0x54a5ed[_0x49795a(0x126)](buildCliArtifactPath,_0x1c1465,_0x54a5ed[_0x49795a(0xfd)])+_0x49795a(0x120)+_0x54a5ed[_0x49795a(0xdb)](buildCliArtifactPath,_0x1c1465,_0x49795a(0x9a))+_0x49795a(0xac)+_0x2733fd+_0x49795a(0x12b);}function _0x5eac(_0x4d094d,_0x1adb76){_0x4d094d=_0x4d094d-0x9a;const _0x284576=_0x2845();let _0x5eac8f=_0x284576[_0x4d094d];return _0x5eac8f;}export function summarizeVerifyFeatureCliCommandAvailability(_0x589885){const _0x5568ea=_0x5eac,_0x5a6c95={'YMwEo':function(_0x4b0280,_0x3072ef){return _0x4b0280===_0x3072ef;}},_0x49a3cf=[..._0x589885[_0x5568ea(0xda)]()][_0x5568ea(0x139)]();let _0x2756cc=0x0;for(const _0x717161 of _0x589885['values']()){_0x2756cc+=_0x717161;}return{'cliCommandCount':_0x2756cc,'cliCommandsSeen':_0x49a3cf,'noCliCommandsCalled':_0x5a6c95[_0x5568ea(0xef)](_0x2756cc,0x0)};}export function createVerifyFeatureCliHooks(_0x1b73de){const _0xeee675=_0x5eac,_0x1b128b={'jCxjp':function(_0x43445e,_0x55e0f1){return _0x43445e!==_0x55e0f1;},'OMtqP':_0xeee675(0xcf),'GzTDM':function(_0x358d3c,_0x45f59b){return _0x358d3c+_0x45f59b;},'XEUTf':_0xeee675(0xfe),'GfNAd':_0xeee675(0xbf),'kNWfY':function(_0x58e166,_0x3183be){return _0x58e166!==_0x3183be;},'LgmwK':function(_0x1f26bd,_0x27549e,_0x14a800,_0x149f34){return _0x1f26bd(_0x27549e,_0x14a800,_0x149f34);},'mlpaQ':'PostToolUseFailure','KPqAm':function(_0x45e2cf,_0x134300){return _0x45e2cf!==_0x134300;},'UyYxb':_0xeee675(0x114)},_0x3b5884=new Map(),_0x18faf6=async _0x4474bc=>{const _0x219067=_0xeee675;if(_0x1b128b['jCxjp'](_0x4474bc[_0x219067(0xe2)],_0x1b128b[_0x219067(0x132)]))return{};const _0x49840f=_0x4474bc;if(_0x49840f[_0x219067(0xb4)]!=='Bash')return{};const _0x39a521=_0x49840f[_0x219067(0xb3)],_0x3a0aea=extractBashCommand(_0x39a521);if(!_0x3a0aea)return{};const _0x2b64bf=parsePlaywrightCliCommand(_0x3a0aea);if(!_0x2b64bf)return{};return _0x3b5884['set'](_0x2b64bf,_0x1b128b[_0x219067(0x12f)](_0x3b5884[_0x219067(0xf6)](_0x2b64bf)||0x0,0x1)),_0x1b73de['trackPhaseStart'](_0x1b128b['XEUTf'],{'transport':'playwright-cli','toolName':_0x2b64bf}),_0x1b73de[_0x219067(0x134)]('tool_call',{'transport':_0x1b128b[_0x219067(0xde)],'toolName':_0x2b64bf,'bashCommandPreview':truncatePreview(_0x3a0aea)}),_0x1b128b['kNWfY'](_0x2b64bf,'snapshot')&&console['log'](_0x1b128b['LgmwK'](formatPlaywrightCliConsoleLogMessage,_0x39a521,_0x3a0aea,_0x2b64bf)),{};},_0x205d33=async _0x526bde=>{const _0x3d6908=_0xeee675;if(_0x1b128b[_0x3d6908(0x9b)](_0x526bde[_0x3d6908(0xe2)],_0x1b128b[_0x3d6908(0xa1)]))return{};const _0x195ae0=_0x526bde;if(_0x1b128b[_0x3d6908(0xd0)](_0x195ae0['tool_name'],_0x3d6908(0xca)))return{};return await _0x1b73de['trackPhaseError'](_0x1b128b[_0x3d6908(0xb0)],_0x195ae0['error'],{'transport':'playwright-cli','toolName':_0x3d6908(0xca)}),{};};return{'postToolUseHook':_0x18faf6,'postToolUseFailureHook':_0x205d33,'commandCounts':_0x3b5884};}async function runPlaywrightCliLifecycleCommand(_0x21c673){const _0x2f8dce=_0x5eac,_0x5a3eba={'vmfIV':function(_0x1f9a1f,_0x1cb957){return _0x1f9a1f??_0x1cb957;},'VYniz':function(_0x5b6c4c,_0x51e29c,_0x2b0cdc){return _0x5b6c4c(_0x51e29c,_0x2b0cdc);}},{sessionId:_0x5f4443,configPath:_0x26428c,commandArgs:_0x1eb6ed,env:_0xa206f0,telemetry:_0x431a59,phase:_0x45038a,metadata:_0x2bbb79,timeoutMs:_0x5c7a8f}=_0x21c673;_0x431a59[_0x2f8dce(0x11a)](_0x45038a,_0x2bbb79);try{const _0x43d5e1=await runPlaywrightCliCommand({'sessionId':_0x5f4443,'configPath':_0x26428c,'commandArgs':_0x1eb6ed,'cwd':process['cwd'](),'env':_0xa206f0,'timeoutMs':_0x5a3eba['vmfIV'](_0x5c7a8f,PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS)});_0x431a59['trackPhaseEnd'](_0x45038a,{..._0x2bbb79,'subcommand':_0x43d5e1[_0x2f8dce(0xb1)]['subcommand'],'stdoutPreview':_0x5a3eba[_0x2f8dce(0xf2)](truncatePreview,_0x43d5e1['stdout'],0x7d0),'stderrPreview':_0x5a3eba['VYniz'](truncatePreview,_0x43d5e1['stderr'],0x7d0)});}catch(_0x48d30b){await _0x431a59[_0x2f8dce(0x102)](_0x45038a,_0x48d30b,_0x2bbb79);throw _0x48d30b;}}export async function finalizeVerifyFeatureCliSession(_0x1543c7){const _0x28b63d=_0x5eac,_0x3b6815={'ywXnC':'tracing-stop','YoTwv':'playwright_cli_video_stop','qHdcv':_0x28b63d(0x121),'rZswF':_0x28b63d(0x107)},{telemetry:_0x28ce67,sessionId:_0x24b6d3,configPath:_0xe6814c,cliArtifactDir:_0x255951,env:_0x2a6154,transportMetadata:_0x3d5d41}=_0x1543c7,_0xf3bfc9=[{'phase':_0x28b63d(0x113),'commandArgs':[_0x3b6815[_0x28b63d(0x129)]]},{'phase':_0x3b6815[_0x28b63d(0xe8)],'commandArgs':[_0x3b6815[_0x28b63d(0xb8)],'--filename='+buildCliArtifactPath(_0x255951,_0x3b6815[_0x28b63d(0xb9)])]},{'phase':_0x28b63d(0x106),'commandArgs':[_0x28b63d(0x10e)]}];for(const _0x45faa5 of _0xf3bfc9){try{await runPlaywrightCliLifecycleCommand({'sessionId':_0x24b6d3,'configPath':_0xe6814c,'commandArgs':[..._0x45faa5[_0x28b63d(0xa6)]],'env':_0x2a6154,'telemetry':_0x28ce67,'phase':_0x45faa5[_0x28b63d(0x10f)],'metadata':_0x3d5d41});}catch{}}}export async function loadVerifyFeatureCliTraceUploadArtifact(_0x1d92b5){const _0x1ceefc=_0x5eac,_0xc89b27={'lfVeO':'trace.zip','YSmWx':function(_0x4ba088,_0x520202){return _0x4ba088(_0x520202);}},_0x21274f=[_0xc89b27[_0x1ceefc(0xd2)],'trace.trace.zip'];for(const _0x3849c9 of _0x21274f){const _0x12a5b6=join(_0x1d92b5,_0x3849c9);try{return{'buffer':await _0xc89b27[_0x1ceefc(0xc0)](readFile,_0x12a5b6),'source':_0x12a5b6};}catch{}}return null;}export async function rehomeVerifyFeatureCliArtifacts(_0x393c1e){const _0x5a9e72=_0x5eac,_0xd19563={'lhJoD':function(_0x359653,_0x3055a7,_0xafdeb7){return _0x359653(_0x3055a7,_0xafdeb7);},'NmOHU':function(_0x116a86,_0x2f5b8e,_0x15c6ab){return _0x116a86(_0x2f5b8e,_0x15c6ab);},'xfiBN':function(_0x40e8d7,_0x5bf0cf){return _0x40e8d7(_0x5bf0cf);},'gVHIq':function(_0x598284,_0x923ac5){return _0x598284+_0x923ac5;},'eKeaO':function(_0x44a50a,_0x165495,_0x48ac03){return _0x44a50a(_0x165495,_0x48ac03);}},{cwd:_0x3da7b8,cliArtifactDir:_0x3b4c18,startTime:_0x51dd42}=_0x393c1e,_0x44d439=[];await _0xd19563[_0x5a9e72(0x131)](mkdir,_0x3b4c18,{'recursive':!![]});const _0x2d8d2c=await _0xd19563['NmOHU'](readdir,_0x3da7b8,{'withFileTypes':!![]});for(const _0x4f537a of _0x2d8d2c){if(!_0x4f537a['isFile']()||!VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN['test'](_0x4f537a[_0x5a9e72(0xc7)]))continue;const _0x3280c0=join(_0x3da7b8,_0x4f537a[_0x5a9e72(0xc7)]),_0x5152a9=await _0xd19563[_0x5a9e72(0xea)](stat,_0x3280c0);if(_0xd19563['gVHIq'](_0x5152a9['mtimeMs'],0x7d0)<_0x51dd42)continue;const _0x67c709=buildCliArtifactPath(_0x3b4c18,_0x4f537a[_0x5a9e72(0xc7)]);if(_0x3280c0===_0x67c709)continue;await _0xd19563['eKeaO'](rename,_0x3280c0,_0x67c709),_0x44d439[_0x5a9e72(0xf5)](_0x4f537a[_0x5a9e72(0xc7)]);}return _0x44d439[_0x5a9e72(0x139)]();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0xe620d5=_0x50f2;(function(_0x817a4,_0x355e23){const _0x5ea058=_0x50f2,_0x5e0902=_0x817a4();while(!![]){try{const _0x44bf34=parseInt(_0x5ea058(0x283))/0x1+parseInt(_0x5ea058(0x1f4))/0x2+parseInt(_0x5ea058(0x216))/0x3+-parseInt(_0x5ea058(0x295))/0x4*(parseInt(_0x5ea058(0x224))/0x5)+-parseInt(_0x5ea058(0x1ef))/0x6+-parseInt(_0x5ea058(0x22b))/0x7+parseInt(_0x5ea058(0x26e))/0x8;if(_0x44bf34===_0x355e23)break;else _0x5e0902['push'](_0x5e0902['shift']());}catch(_0x34db32){_0x5e0902['push'](_0x5e0902['shift']());}}}(_0x5947,0xe1644));import{execFile}from'child_process';import{mkdir,readdir,readFile,rename,rm,stat,writeFile}from'fs/promises';import{homedir}from'os';import{basename,join}from'path';import{promisify}from'util';import{chromium}from'playwright';import{buildNovaActCliInvocation,buildNovaActCliSharedOptionsSuffix,extractNovaActLogDir,parseNovaActCliCommand,previewNovaActCliCommand,runNovaActCliCommand}from'./utils/novaActCli.js';import{extractBashCommand,quoteShellArg}from'./utils/playwrightCli.js';const NOVA_ACT_CLI_COMMAND_TIMEOUT_MS=0x1d4c0,NOVA_ARTIFACT_CDP_CONNECT_TIMEOUT_MS=0x3a98,NOVA_ARTIFACT_METADATA_WAIT_MS=0x1388,NOVA_ARTIFACT_TRACE_SAMPLE_INTERVAL_MS=0x1388,VERIFY_FEATURE_NOVA_ARTIFACT_FILE_PATTERN=/^(?:\d{2}_.+\.(?:png|ya?ml)|key_.+\.png|final-state\.ya?ml|nova-session-export\.json)$/i,NOVA_ACT_ALLOWED_AGENT_COMMANDS=new Set([_0xe620d5(0x228),'execute','verify','ask','goto','wait-for','snapshot',_0xe620d5(0x259)]),execFileAsync=promisify(execFile);function buildCliArtifactPath(_0x19063a,_0x1d9ee1){return join(_0x19063a,_0x1d9ee1);}export class NovaActArtifactRecorder{[_0xe620d5(0x287)];[_0xe620d5(0x218)]=null;['context']=null;[_0xe620d5(0x1e9)]=null;['frameWrites']=[];[_0xe620d5(0x222)]=0x0;[_0xe620d5(0x1d3)]=0x0;[_0xe620d5(0x1df)]=null;['traceSampleInFlight']=null;[_0xe620d5(0x208)]=![];['screencastStarted']=![];[_0xe620d5(0x1e5)]=![];[_0xe620d5(0x267)]=![];constructor(_0x2ac057){this['params']=_0x2ac057;}async[_0xe620d5(0x1fa)](){const _0x444ad6=_0xe620d5,_0x154819={'pltGI':function(_0x49e16f,_0x3b3c8c,_0xea7c0b){return _0x49e16f(_0x3b3c8c,_0xea7c0b);}};if(this[_0x444ad6(0x1e5)])return;this[_0x444ad6(0x1e5)]=!![];const _0x24a547=await this['readSessionMetadataWithRetry'](),_0x32daf5=_0x24a547['cdp_endpoint'];if(!_0x32daf5)throw new Error(_0x444ad6(0x201)+this['params']['novaOptions']['sessionId']);await _0x154819['pltGI'](mkdir,this[_0x444ad6(0x287)]['cliArtifactDir'],{'recursive':!![]}),this[_0x444ad6(0x218)]=await chromium[_0x444ad6(0x227)](_0x32daf5,{'timeout':NOVA_ARTIFACT_CDP_CONNECT_TIMEOUT_MS}),this[_0x444ad6(0x1c9)]=this['browser']['contexts']()[0x0]??null;if(!this[_0x444ad6(0x1c9)])throw new Error('Nova\x20CDP\x20connection\x20did\x20not\x20expose\x20a\x20browser\x20context');await this['context'][_0x444ad6(0x221)][_0x444ad6(0x1fa)]({'screenshots':!![],'snapshots':!![],'sources':!![]}),this[_0x444ad6(0x208)]=!![],this[_0x444ad6(0x1f9)](),await this['startScreencast'](),this['params']['telemetry']['trackPhaseStart']('nova_act_artifact_recording',{...this[_0x444ad6(0x287)]['transportMetadata'],'cdpEndpoint':_0x32daf5,'browserPid':_0x24a547[_0x444ad6(0x268)],'sessionState':_0x24a547['state']}),this['params']['telemetry']['trackPhaseEnd']('nova_act_artifact_recording',{...this['params']['transportMetadata'],'tracingStarted':this[_0x444ad6(0x208)],'screencastStarted':this[_0x444ad6(0x261)]});}async['stop'](){const _0x7179e1=_0xe620d5,_0x50bf1a={'hKHpL':'nova_act_artifact_recording_stop','DnVkW':function(_0x487386,_0x583e33,_0xdce52e){return _0x487386(_0x583e33,_0xdce52e);}};if(this[_0x7179e1(0x267)])return;this['stopped']=!![];const _0x2f46b0={...this['params']['transportMetadata'],'frameCount':this[_0x7179e1(0x222)],'traceSampleCount':this[_0x7179e1(0x1d3)],'tracingStarted':this[_0x7179e1(0x208)],'screencastStarted':this[_0x7179e1(0x261)]};this[_0x7179e1(0x287)]['telemetry']['trackPhaseStart'](_0x50bf1a[_0x7179e1(0x266)],_0x2f46b0);try{await this[_0x7179e1(0x260)](),await this[_0x7179e1(0x240)](),await this['stopScreencast'](),await Promise['allSettled'](this['frameWrites']);this[_0x7179e1(0x1c9)]&&this[_0x7179e1(0x208)]&&await this['context']['tracing']['stop']({'path':_0x50bf1a[_0x7179e1(0x254)](buildCliArtifactPath,this[_0x7179e1(0x287)]['cliArtifactDir'],_0x7179e1(0x289))});const _0x2f9637=await this[_0x7179e1(0x288)]();this['params']['telemetry']['trackPhaseEnd'](_0x50bf1a[_0x7179e1(0x266)],{..._0x2f46b0,'videoPath':_0x2f9637});}catch(_0x5c0b0a){await this['params']['telemetry'][_0x7179e1(0x245)]('nova_act_artifact_recording_stop',_0x5c0b0a,_0x2f46b0);}finally{await this[_0x7179e1(0x218)]?.['close']()[_0x7179e1(0x251)](()=>undefined),this['browser']=null,this[_0x7179e1(0x1c9)]=null,this['frameSession']=null;}}async[_0xe620d5(0x285)](){const _0x15ce9d=_0xe620d5,_0x3058b4={'mrfkh':function(_0x43a083,_0x4d429a,_0x260c5d,_0x58635f,_0xa0ae3d,_0x1df621){return _0x43a083(_0x4d429a,_0x260c5d,_0x58635f,_0xa0ae3d,_0x1df621);},'styIa':_0x15ce9d(0x23d),'ifJQR':'utf-8','DovQu':function(_0x3b4d8b,_0x58fd65){return _0x3b4d8b<_0x58fd65;},'IYHAi':function(_0x1885ef,_0x25e2b3){return _0x1885ef-_0x25e2b3;}},_0x259e38=_0x3058b4[_0x15ce9d(0x1d4)](join,homedir(),'.act_cli','browser',_0x3058b4['styIa'],this[_0x15ce9d(0x287)]['novaOptions'][_0x15ce9d(0x265)]+'.json'),_0x4ebac4=Date['now']();let _0x32e258;do{try{const _0x55e6e0=JSON[_0x15ce9d(0x1e2)](await readFile(_0x259e38,_0x3058b4['ifJQR']));if(_0x55e6e0['cdp_endpoint'])return _0x55e6e0;_0x32e258=new Error(_0x15ce9d(0x26b)+_0x259e38);}catch(_0x2b3546){_0x32e258=_0x2b3546;}await delay(0x64);}while(_0x3058b4[_0x15ce9d(0x219)](_0x3058b4[_0x15ce9d(0x1f5)](Date['now'](),_0x4ebac4),NOVA_ARTIFACT_METADATA_WAIT_MS));if(_0x32e258 instanceof Error)throw _0x32e258;throw new Error('Unable\x20to\x20read\x20Nova\x20session\x20metadata\x20at\x20'+_0x259e38);}async['startScreencast'](){const _0x3b3982=_0xe620d5,_0x44053f={'CRzva':function(_0x35de41,_0x31d03a,_0x4d0e72){return _0x35de41(_0x31d03a,_0x4d0e72);},'OeJPa':function(_0x1ed574,_0x8d0071){return _0x1ed574(_0x8d0071);},'ObsUb':_0x3b3982(0x29b)};if(!this[_0x3b3982(0x1c9)])return;const _0x1c6cbb=this[_0x3b3982(0x1c9)][_0x3b3982(0x1cb)]()[0x0];if(!_0x1c6cbb)return;const _0xe7ec97=this[_0x3b3982(0x29d)]();await mkdir(_0xe7ec97,{'recursive':!![]});const _0x4feb1f=await this['context']['newCDPSession'](_0x1c6cbb);this['frameSession']=_0x4feb1f,_0x4feb1f['on'](_0x3b3982(0x204),_0x268147=>{const _0x57bd07=_0x3b3982,_0x538c4b=++this[_0x57bd07(0x222)],_0x2f434a=_0x44053f[_0x57bd07(0x26f)](join,_0xe7ec97,_0x57bd07(0x239)+_0x44053f[_0x57bd07(0x26d)](String,_0x538c4b)[_0x57bd07(0x296)](0x6,'0')+_0x57bd07(0x23b)),_0x509fec=writeFile(_0x2f434a,Buffer[_0x57bd07(0x1cf)](_0x268147['data'],'base64'))['catch'](()=>undefined)[_0x57bd07(0x1eb)](()=>_0x4feb1f['send']('Page.screencastFrameAck',{'sessionId':_0x268147[_0x57bd07(0x265)]}))[_0x57bd07(0x1c8)](()=>undefined)['catch'](()=>undefined);this['frameWrites'][_0x57bd07(0x263)](_0x509fec);}),await _0x4feb1f['send']('Page.startScreencast',{'format':_0x44053f[_0x3b3982(0x213)],'quality':0x4b,'everyNthFrame':0x6}),this[_0x3b3982(0x261)]=!![];}async[_0xe620d5(0x298)](){const _0x5e127c=_0xe620d5,_0x5581fb={'ZnWgX':_0x5e127c(0x29e)};if(!this[_0x5e127c(0x1e9)]||!this[_0x5e127c(0x261)])return;await this['frameSession']['send'](_0x5581fb['ZnWgX'])[_0x5e127c(0x251)](()=>undefined);}['startTraceSampling'](){const _0x1c110a=_0xe620d5;this['queueTraceSample'](),this[_0x1c110a(0x1df)]=setInterval(()=>this['queueTraceSample'](),NOVA_ARTIFACT_TRACE_SAMPLE_INTERVAL_MS);}['queueTraceSample'](){const _0x3e3edb=_0xe620d5;if(this['traceSampleInFlight'])return;this[_0x3e3edb(0x294)]=this['captureTraceSample']()[_0x3e3edb(0x1eb)](()=>{const _0x5e91ea=_0x3e3edb;this[_0x5e91ea(0x294)]=null;});}async[_0xe620d5(0x260)](){const _0x39bae2=_0xe620d5,_0x55e446={'yNfDG':function(_0x3ecf14,_0x2dc15a){return _0x3ecf14(_0x2dc15a);}};this['traceSampleTimer']&&(_0x55e446[_0x39bae2(0x20b)](clearInterval,this[_0x39bae2(0x1df)]),this['traceSampleTimer']=null),await this[_0x39bae2(0x294)]?.[_0x39bae2(0x251)](()=>undefined);}async['captureTraceSample'](){const _0xcdc8e1=_0xe620d5,_0xc68084={'LZVhP':'body'},_0x1f3386=this['context']?.[_0xcdc8e1(0x1cb)]()[0x0];if(!_0x1f3386)return;try{await _0x1f3386[_0xcdc8e1(0x25d)](_0xc68084[_0xcdc8e1(0x256)])['evaluate'](_0x3c8094=>_0x3c8094[_0xcdc8e1(0x24c)],undefined,{'timeout':0x3e8}),this[_0xcdc8e1(0x1d3)]++;}catch{}}async[_0xe620d5(0x288)](){const _0x1270d5=_0xe620d5,_0x3710ae={'OEJqr':function(_0x51c7b2,_0x2c962a){return _0x51c7b2<_0x2c962a;},'TsIFq':function(_0x23abd0){return _0x23abd0();},'Qhmzz':_0x1270d5(0x293),'qZpRm':function(_0x1e87f8,_0x39b0be,_0x5bf0be){return _0x1e87f8(_0x39b0be,_0x5bf0be);},'JHUgt':function(_0x1f809b,_0x49d88a,_0x49a5a1){return _0x1f809b(_0x49d88a,_0x49a5a1);},'zZawo':_0x1270d5(0x282),'Swtue':_0x1270d5(0x22c),'jPEIK':_0x1270d5(0x2a0),'FXAKt':_0x1270d5(0x1cc),'omwdX':'libvpx-vp9','VtTAy':'-pix_fmt','iUcMN':_0x1270d5(0x1ec)};if(_0x3710ae['OEJqr'](this['frameCount'],0x2))return null;const _0x1e549c=await _0x3710ae[_0x1270d5(0x25b)](resolveFfmpegPath);if(!_0x1e549c)return null;const _0x44c866=join(this['params'][_0x1270d5(0x1f3)],_0x3710ae['Qhmzz']);await _0x3710ae['qZpRm'](mkdir,_0x44c866,{'recursive':!![]});const _0x1f6904=_0x3710ae[_0x1270d5(0x214)](join,_0x44c866,'session-recording.webm');return await execFileAsync(_0x1e549c,['-y',_0x3710ae[_0x1270d5(0x210)],_0x1270d5(0x241),_0x3710ae[_0x1270d5(0x28c)],'-framerate','10','-i',_0x3710ae[_0x1270d5(0x207)](join,this[_0x1270d5(0x29d)](),_0x3710ae['jPEIK']),'-vf','scale=trunc(iw/2)*2:trunc(ih/2)*2',_0x3710ae[_0x1270d5(0x1e3)],_0x3710ae[_0x1270d5(0x21d)],_0x3710ae['VtTAy'],_0x3710ae['iUcMN'],_0x1f6904]),_0x1f6904;}[_0xe620d5(0x29d)](){const _0x3de459=_0xe620d5,_0x250870={'HHJyV':'nova-video-frames'};return join(this[_0x3de459(0x287)]['cliArtifactDir'],_0x250870[_0x3de459(0x21c)]);}}async function delay(_0x39a3b7){await new Promise(_0x27567c=>setTimeout(_0x27567c,_0x39a3b7));}async function resolveFfmpegPath(){const _0x324fcc=_0xe620d5,_0x3a58de={'XCVwD':function(_0x27da8e,_0x2be6d6,_0x1b986b,_0x457ba4,_0x5d2eb1){return _0x27da8e(_0x2be6d6,_0x1b986b,_0x457ba4,_0x5d2eb1);},'PDtcd':function(_0x55c80c){return _0x55c80c();},'gwzQA':function(_0x5d95e3,_0x23e094,_0xa53db8,_0x118d7e){return _0x5d95e3(_0x23e094,_0xa53db8,_0x118d7e);},'oDzJN':function(_0x43d6ea){return _0x43d6ea();},'xzEwR':_0x324fcc(0x236),'dxDOJ':'ms-playwright','jGyNn':function(_0x228b4a,_0x53a9af){return _0x228b4a(_0x53a9af);}};if(await canRunFfmpeg('ffmpeg'))return _0x324fcc(0x255);const _0x52784e=[_0x3a58de['XCVwD'](join,_0x3a58de['PDtcd'](homedir),'Library',_0x324fcc(0x23c),_0x324fcc(0x1db)),_0x3a58de['gwzQA'](join,_0x3a58de['oDzJN'](homedir),_0x3a58de['xzEwR'],_0x3a58de[_0x324fcc(0x200)])];for(const _0x497325 of _0x52784e){try{const _0x488833=await _0x3a58de['jGyNn'](readdir,_0x497325),_0x47b936=_0x488833[_0x324fcc(0x1dd)](_0x34b9b7=>_0x34b9b7[_0x324fcc(0x24d)](_0x324fcc(0x1d7)))['sort']()['reverse']()[_0x324fcc(0x25a)](_0x12aca2=>[join(_0x497325,_0x12aca2,'ffmpeg-mac'),join(_0x497325,_0x12aca2,_0x324fcc(0x248)),join(_0x497325,_0x12aca2,'ffmpeg.exe')]);for(const _0x404f11 of _0x47b936){if(await _0x3a58de['jGyNn'](canRunFfmpeg,_0x404f11))return _0x404f11;}}catch{}}return null;}async function canRunFfmpeg(_0x56d00f){const _0x4c394e={'MrHBN':function(_0xc679da,_0x4b6c3a,_0x50d409){return _0xc679da(_0x4b6c3a,_0x50d409);}};try{return await _0x4c394e['MrHBN'](execFileAsync,_0x56d00f,['-version']),!![];}catch{return![];}}function toStepDisplayName(_0x464ca1){const _0x205cf6=_0xe620d5,_0xc99bff={'enLLn':function(_0x52284a,_0x51ffdf){return _0x52284a(_0x51ffdf);}},_0x6b9108=_0xc99bff[_0x205cf6(0x242)](basename,_0x464ca1)[_0x205cf6(0x28a)](/\.(?:png|ya?ml)$/i,'')['replace'](/^key_/i,'')[_0x205cf6(0x28a)](/^\d+_/,'')[_0x205cf6(0x28a)](/-/g,'\x20');return{'name':_0x6b9108,'isKeyStep':/^key_/i[_0x205cf6(0x262)](basename(_0x464ca1))};}function extractShellValue(_0x214efe){if(!_0x214efe)return null;return _0x214efe[0x1]??_0x214efe[0x2]??_0x214efe[0x3]??null;}function extractOutputOption(_0x2fe5e2){const _0x4e9b16=_0xe620d5,_0x81c674={'nnrHV':function(_0xe3bc3f,_0x14dc9a){return _0xe3bc3f(_0x14dc9a);}};return _0x81c674['nnrHV'](extractShellValue,_0x2fe5e2[_0x4e9b16(0x215)](/--output(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function formatNovaActCliLog(_0x1ca9cd,_0x1f7c4f){const _0x4f6443=_0xe620d5,_0x4abeca={'qUNgA':_0x4f6443(0x244),'WqWbQ':'execute','ficTh':'execute\x20Nova\x20browser\x20action','acRds':_0x4f6443(0x27c),'CyaeS':_0x4f6443(0x273),'PyJDj':'navigate\x20browser','Vabse':_0x4f6443(0x1f6),'FdfvI':'wait\x20for\x20page\x20condition','tnWPa':_0x4f6443(0x206),'Siivy':'screenshot','NbAyP':function(_0x450df3,_0xe2c777){return _0x450df3(_0xe2c777);},'FKqAy':_0x4f6443(0x269)};switch(_0x1f7c4f){case'session\x20create':return _0x4abeca['qUNgA'];case _0x4abeca[_0x4f6443(0x232)]:return _0x4abeca['ficTh'];case _0x4f6443(0x23e):return _0x4abeca['acRds'];case _0x4abeca['CyaeS']:return _0x4f6443(0x247);case'goto':return _0x4abeca['PyJDj'];case _0x4abeca[_0x4f6443(0x1d0)]:return _0x4abeca['FdfvI'];case'snapshot':{const _0xe6aaa=extractOutputOption(_0x1ca9cd);if(!_0xe6aaa)return _0x4abeca['tnWPa'];const {name:_0x26d12c}=toStepDisplayName(_0xe6aaa);return _0x4f6443(0x1ee)+_0x26d12c+'`';}case _0x4abeca[_0x4f6443(0x212)]:{const _0x203e35=_0x4abeca[_0x4f6443(0x290)](extractOutputOption,_0x1ca9cd);if(!_0x203e35)return'capture\x20screenshot';const {name:_0x3aab95,isKeyStep:_0x45455f}=toStepDisplayName(_0x203e35);return _0x45455f?'capture\x20key\x20step\x20`'+_0x3aab95+'`':_0x4f6443(0x299)+_0x3aab95+'`';}case'session\x20export':return _0x4abeca[_0x4f6443(0x1f0)];default:return _0x1f7c4f;}}function getNovaActCliCommandBlockReason(_0x124289){const _0x1b1e1f=_0xe620d5,_0x5d885a={'dMlzo':'Use\x20only\x20the\x20provided\x20Nova\x20browser\x20command\x20prefix\x20for\x20browser\x20verification.\x20Do\x20not\x20inspect\x20setup,\x20credentials,\x20files,\x20or\x20the\x20local\x20environment.','kSkRZ':function(_0x5b44f5,_0x194ab2){return _0x5b44f5===_0x194ab2;},'NkAet':'verify','qwTuZ':_0x1b1e1f(0x21b)},_0x46901b=parseNovaActCliCommand(_0x124289);if(!_0x46901b)return _0x5d885a['dMlzo'];if(!NOVA_ACT_ALLOWED_AGENT_COMMANDS[_0x1b1e1f(0x20f)](_0x46901b))return'Nova\x20command\x20`'+_0x46901b+'`\x20is\x20reserved\x20for\x20the\x20host.\x20Use\x20only\x20session\x20create,\x20execute,\x20verify,\x20ask,\x20goto,\x20wait-for,\x20snapshot,\x20and\x20screenshot.';if(_0x5d885a['kSkRZ'](_0x46901b,_0x5d885a['NkAet'])&&/\b(?:previously visited|visited pages|pages visited|at least one of the pages visited)\b/i[_0x1b1e1f(0x262)](_0x124289))return _0x5d885a['qwTuZ'];if(/\s--help\b|\bdoctor\b|\bscript\b|\bsession\s+(?:close|list|export)\b/['test'](_0x124289))return'Do\x20not\x20run\x20Nova\x20help,\x20doctor,\x20script,\x20session\x20list,\x20session\x20export,\x20or\x20session\x20close\x20commands\x20during\x20verification.';return null;}function buildFeedbackSection(_0x27155a){const _0x1d8e92=_0xe620d5,_0x580102={'KsdiF':'en-US','zbvgI':_0x1d8e92(0x270),'vVrHD':_0x1d8e92(0x1f7),'Pivif':_0x1d8e92(0x258)};if(!_0x27155a||_0x27155a[_0x1d8e92(0x20c)]['length']===0x0)return'';const _0x34e39d=_0x27155a['unaddressedComments']['map'](_0x257dca=>{const _0x5432e9=_0x1d8e92,_0x2939a2=new Date(_0x257dca['createdAt'])['toLocaleDateString'](_0x580102['KsdiF'],{'month':_0x580102['zbvgI'],'day':_0x580102['vVrHD']}),_0x1be812=_0x257dca[_0x5432e9(0x29a)]||_0x257dca[_0x5432e9(0x1fb)]||'Reviewer',_0x47ece1=_0x257dca['domRef']?'\x20(on\x20element:\x20<'+(_0x257dca['domRef']['selector']['split'](_0x580102['Pivif'])['pop']()?.['split'](':')[0x0]||_0x5432e9(0x27b))+_0x5432e9(0x26c)+(_0x257dca['domRef']['textContent']||'')[_0x5432e9(0x238)](0x0,0x32)+'\x22)':'';return _0x5432e9(0x24e)+_0x257dca['id']+']\x20**'+_0x1be812+_0x5432e9(0x237)+_0x2939a2+'):\x20\x22'+_0x257dca['content']+'\x22'+_0x47ece1;})[_0x1d8e92(0x1f2)]('\x0a');return _0x1d8e92(0x1d2)+_0x34e39d;}function buildNovaSharedOptionsInstruction(_0x1d0884){const _0x3efc7=_0xe620d5;if(!_0x1d0884['trim']())return _0x3efc7(0x25e);return'Append\x20this\x20option\x20suffix\x20to\x20every\x20browser\x20command\x20unless\x20the\x20host\x20gives\x20a\x20more\x20specific\x20example:\x0a'+_0x1d0884;}function _0x5947(){const _0x29b817=['trace.zip','replace','`\x0a\x0a##\x20Screenshot\x20Guidelines\x0aTake\x20screenshots\x20at\x20scenario\x20milestones\x20so\x20a\x20human\x20can\x20review\x20each\x20completed\x20step\x20and\x20the\x20final\x20state.\x20Use\x20numbered\x20filenames\x20and\x20prefix\x201-2\x20key\x20proof\x20screenshots\x20with\x20`key_`.\x20Avoid\x20duplicate\x20screenshots\x20of\x20the\x20same\x20unchanged\x20page\x20when\x20an\x20existing\x20verifier\x20screenshot\x20or\x20host\x20final\x20screenshot\x20is\x20accessible.\x0a\x0a##\x20Snapshot\x20Guidelines\x0aYou\x20must\x20take\x20the\x20initial\x20snapshot\x20listed\x20above.\x20After\x20that,\x20prefer\x20screenshots\x20plus\x20the\x20page\x20summaries\x20returned\x20by\x20`execute`\x20and\x20`verify`.\x20Only\x20call\x20`snapshot`\x20again\x20if\x20you\x20cannot\x20determine\x20the\x20next\x20action\x20or\x20evaluation\x20from\x20those\x20outputs.\x0a\x0a##\x20Early\x20Error\x20Detection\x0aAfter\x20the\x20initial\x20snapshot\x20and\x20screenshot,\x20check\x20for\x20blocking\x20HTTP\x20errors,\x20framework\x20error\x20pages,\x20blank\x20pages,\x20and\x20authentication\x20failures.\x20If\x20any\x20blocking\x20issue\x20is\x20present,\x20stop\x20and\x20return\x20evaluation\x20\x22blocked\x22\x20with\x20a\x20specific\x20reason.\x0a\x0a##\x20Failed\x20Assertions\x0aIf\x20`verify`\x20returns\x20`ASSERTION_FAILED`,\x20use\x20its\x20`actual`\x20and\x20`evidence`\x20fields\x20as\x20proof\x20for\x20the\x20final\x20evaluation.\x20Continue\x20only\x20to\x20finish\x20other\x20already-named\x20scenario\x20milestones.\x20Do\x20not\x20retry,\x20ask\x20about,\x20or\x20search\x20around\x20the\x20failed\x20condition.\x0a\x0a##\x20Final\x20Page\x20Stop\x0aWhen\x20the\x20scenario\x20names\x20a\x20final\x20page\x20or\x20final\x20navigation\x20target,\x20that\x20page\x20is\x20the\x20last\x20browser\x20milestone.\x20Once\x20it\x20is\x20loaded\x20and\x20screenshotted,\x20make\x20the\x20final\x20evaluation\x20from\x20the\x20collected\x20evidence.\x20Do\x20not\x20navigate,\x20search,\x20ask,\x20or\x20verify\x20beyond\x20that\x20final\x20page\x20unless\x20the\x20scenario\x20explicitly\x20names\x20another\x20page.\x0a\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\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.','Swtue','zvgjt','folpE','nova_act_command_failure','NbAyP','export','`\x0a2.\x20Run\x20`','videos','traceSampleInFlight','4rzbFTr','padStart','-qr','stopScreencast','capture\x20step\x20`','authorName','jpeg','\x20screenshot\x20--output\x20','getFrameDir','Page.stopScreencast','`<none;\x20the\x20command\x20prefix\x20injects\x20shared\x20options>`','frame-%06d.jpg','pBlkh','ahGpN','then','context','args','pages','-c:v','trackPhaseStart','zuqKZ','from','Vabse','`.\x0a15.\x20As\x20soon\x20as\x20all\x20scenario\x20requirements\x20are\x20satisfied,\x20return\x20structured\x20output\x20immediately.\x20Do\x20not\x20keep\x20exploring,\x20asking,\x20or\x20taking\x20extra\x20screenshots.\x0a16.\x20Treat\x20a\x20Nova\x20`verify`\x20result\x20with\x20`ASSERTION_FAILED`\x20as\x20useful\x20evidence,\x20not\x20as\x20a\x20tool\x20crash.\x20Do\x20not\x20retry\x20the\x20same\x20assertion\x20or\x20search\x20for\x20alternatives\x20unless\x20the\x20scenario\x20explicitly\x20asks\x20you\x20to\x20find\x20any\x20matching\x20page.\x0a17.\x20Stay\x20within\x20the\x20pages\x20and\x20flow\x20named\x20by\x20the\x20scenario.\x20If\x20a\x20required\x20condition\x20is\x20absent\x20after\x20checking\x20the\x20relevant\x20named\x20page\x20once,\x20stop\x20and\x20return\x20\x22partial\x22\x20or\x20\x22failed\x22\x20with\x20the\x20missing\x20requirement.\x20Do\x20not\x20expand\x20into\x20unrelated\x20pages\x20or\x20broad\x20site\x20searches.\x0a18.\x20After\x20you\x20reach\x20and\x20screenshot\x20the\x20final\x20named\x20scenario\x20page,\x20do\x20not\x20execute\x20more\x20browser\x20commands.\x20Evaluate\x20any\x20\x22at\x20least\x20one\x20visited\x20page\x22\x20requirement\x20from\x20the\x20pages\x20already\x20visited\x20and\x20the\x20evidence\x20already\x20collected.\x0a19.\x20Do\x20not\x20run\x20`session\x20close`,\x20`session\x20list`,\x20`session\x20export`,\x20`script`,\x20`doctor`,\x20`--help`,\x20`aws`,\x20`find`,\x20`grep`,\x20`env`,\x20`printenv`,\x20package\x20managers,\x20or\x20setup\x20commands.\x20The\x20host\x20owns\x20setup,\x20auth,\x20session\x20cleanup,\x20and\x20artifact\x20export.\x0a20.\x20The\x20host\x20also\x20captures\x20final\x20screenshots,\x20snapshots,\x20and\x20exports\x20after\x20you\x20finish,\x20but\x20every\x20scenario\x20milestone\x20still\x20needs\x20an\x20accessible\x20screenshot.\x20If\x20the\x20last\x20milestone\x20is\x20the\x20final\x20browser\x20state\x20and\x20you\x20have\x20already\x20captured\x20it,\x20you\x20do\x20not\x20need\x20a\x20duplicate\x20final\x20screenshot.\x0a21.\x20Do\x20not\x20close\x20the\x20Nova\x20session.\x20The\x20host\x20exports\x20artifacts\x20after\x20you\x20finish.\x0a22.\x20The\x20structured\x20output\x20is\x20your\x20final\x20response.\x20After\x20returning\x20it,\x20do\x20not\x20write\x20a\x20separate\x20markdown\x20summary\x20or\x20repeat\x20the\x20findings.\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Nova\x20Act\x20CLI\x20commands\x20with\x20this\x20prefix:\x0a`','\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\x20in\x20addressedCommentIds.\x0a\x0a','traceSampleCount','mrfkh','DzQZf','cwd','ffmpeg-','trackPhaseEnd','name','nova_act_session_export','ms-playwright','NKgRT','filter','--output-dir','traceSampleTimer','isFile','KzXHI','parse','FXAKt','PostToolUseFailure','startAttempted','`\x20using\x20absolute\x20paths\x20only.\x0a5.\x20Take\x20an\x20initial\x20snapshot:\x20`','shellCommand','MIUFS','frameSession','iTwcQ','finally','yuv420p','nova-report','capture\x20snapshot\x20`','1130706FVcbrq','FKqAy','`\x0a-\x20`','join','cliArtifactDir','1688386EtqQbr','IYHAi','wait-for','numeric','hhuxC','startTraceSampling','start','authorEmail','values','[nova-act-cli]\x20','tool_input','final-state.yaml','dxDOJ','Nova\x20session\x20metadata\x20did\x20not\x20include\x20cdp_endpoint\x20for\x20','`\x0a3.\x20Run\x20`','\x0a\x0a##\x20App\x20Context\x0aYour\x20base\x20URL\x20is:\x20','Page.screencastFrame','block','capture\x20snapshot','qZpRm','tracingStarted','LJrrz','03_final-state.png','yNfDG','unaddressedComments','session','`\x20using\x20absolute\x20paths\x20only.\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.','has','zZawo','TOpBx','Siivy','ObsUb','JHUgt','match','1804218DvgmXu','`.\x0a6.\x20Take\x20an\x20initial\x20screenshot:\x20`','browser','DovQu','\x0a\x0a##\x20Additional\x20Notes\x0a','Evaluate\x20visited-page\x20aggregate\x20requirements\x20from\x20the\x20collected\x20URLs,\x20titles,\x20headings,\x20verify\x20results,\x20and\x20screenshots.\x20Do\x20not\x20run\x20another\x20browser\x20command\x20to\x20re-check\x20pages\x20already\x20visited.','HHJyV','omwdX','nova_act_command','subcommand','EAHyR','tracing','frameCount','CWFBw','6292635nLftIO','commandArgs','key_final-state.png','connectOverCDP','session\x20create','snapshot','fOwaK','3358838DdVrQA','error','DoeDt','nova_act_final_screenshot','nova-user-data/*','\x20snapshot\x20--output\x20','\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a','WqWbQ','--output','Bash','command','.cache','**\x20(','slice','frame-','nova-session-export.json','.jpg','Caches','sessions','verify','irZTL','captureTraceSample','-loglevel','enLLn','stop','create\x20Nova\x20browser\x20session','trackPhaseError','`\x0a\x0aAppend\x20this\x20option\x20suffix\x20to\x20browser\x20commands:\x0a','ask\x20page\x20question','ffmpeg-linux','GylJj','Wqokr','vnzYY','tagName','startsWith','-\x20[','\x20execute\x20\x221.\x20Open\x20the\x20account\x20settings\x20menu.\x202.\x20Click\x20Billing.\x203.\x20Wait\x20for\x20the\x20Billing\x20page\x20to\x20load.\x22\x20','\x20session\x20create\x20','catch','phase','MAmHZ','DnVkW','ffmpeg','LZVhP','yZZnf','\x20>\x20','screenshot','flatMap','TsIFq','ozwKB','locator','The\x20command\x20prefix\x20already\x20injects\x20session,\x20auth,\x20region,\x20workflow,\x20user-data,\x20headless,\x20and\x20JSON\x20options.\x0aDo\x20not\x20run\x20raw\x20`act\x20browser`.\x20Do\x20not\x20add\x20`--auth-mode`,\x20`--aws-profile`,\x20`--region`,\x20`--workflow-name`,\x20`--session-id`,\x20`--user-data-dir`,\x20`--headless`,\x20or\x20`--headed`\x20yourself.','01_initial-state.png','stopTraceSampling','screencastStarted','test','push','json','sessionId','hKHpL','stopped','browser_pid','export\x20Nova\x20session','WPWIi','Nova\x20metadata\x20missing\x20cdp_endpoint\x20at\x20','>\x20\x22','OeJPa','288784hYMYvS','CRzva','short','tool_name','Ffsqh','ask','trim','hwQKd','notes','FgEil','PpGab','nova-act-cli','\x0a-\x20You\x20may\x20ONLY\x20navigate\x20to\x20paths\x20under\x20this\x20base\x20URL\x27s\x20origin.\x0a-\x20Do\x20not\x20navigate\x20to\x20any\x20different\x20protocol,\x20host,\x20or\x20port.\x0a-\x20If\x20the\x20browser\x20leaves\x20this\x20origin,\x20navigate\x20back\x20once.\x20If\x20you\x20cannot\x20recover,\x20return\x20evaluation\x20\x22blocked\x22.\x0a','element','verify\x20page\x20condition','wtlkP','--report','--format','hook_event_name','invocation','-hide_banner','1368319japsMT','close','readSessionMetadataWithRetry','You\x20are\x20testing\x20Nova\x20Act\x20browser\x20automation.\x20Your\x20task\x20is\x20simple.\x0a\x0aUse\x20Bash\x20and\x20Nova\x20Act\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a','params','encodeScreencastVideo'];_0x5947=function(){return _0x29b817;};return _0x5947();}export function buildVerifyFeatureNovaCliDebugPrompt(_0xe11a2f){const _0x47a203=_0xe620d5,_0x2acd13={'ahGpN':function(_0xbff668,_0x3bcd5c,_0x4dd94a){return _0xbff668(_0x3bcd5c,_0x4dd94a);},'AubHH':'00_initial-state.yml','WPWIi':function(_0x2cf5cc,_0x2b9ba5,_0x58165f){return _0x2cf5cc(_0x2b9ba5,_0x58165f);},'zvgjt':_0x47a203(0x25f),'tjBhp':'02_final-state.yml','SBsJm':_0x47a203(0x20a),'BvrbK':function(_0x2238d1,_0x2923d9){return _0x2238d1(_0x2923d9);},'GylJj':function(_0x44e27d,_0x42f6e4){return _0x44e27d(_0x42f6e4);}},{novaCommandPrefix:_0x5e20c4,novaSharedOptionsSuffix:_0x41ca3e,cliArtifactDir:_0x41b1ed,url:_0x5911c0}=_0xe11a2f,_0x11904b=_0x2acd13['ahGpN'](buildCliArtifactPath,_0x41b1ed,_0x2acd13['AubHH']),_0x59057b=_0x2acd13[_0x47a203(0x26a)](buildCliArtifactPath,_0x41b1ed,_0x2acd13[_0x47a203(0x28d)]),_0x156267=_0x2acd13[_0x47a203(0x2a2)](buildCliArtifactPath,_0x41b1ed,_0x2acd13['tjBhp']),_0x18eda4=buildCliArtifactPath(_0x41b1ed,_0x2acd13['SBsJm']);return _0x47a203(0x286)+_0x5e20c4+'\x0a\x0a'+_0x2acd13['BvrbK'](buildNovaSharedOptionsInstruction,_0x41ca3e)+'\x0a\x0aThe\x20act\x20CLI\x20is\x20already\x20installed\x20and\x20available\x20on\x20PATH.\x20Do\x20not\x20search\x20the\x20filesystem\x20for\x20Nova,\x20install\x20packages,\x20inspect\x20docs,\x20or\x20run\x20setup.\x20Your\x20first\x20Bash\x20command\x20must\x20be\x20the\x20session\x20create\x20command\x20below.\x0a\x0a1.\x20Run\x20`'+_0x5e20c4+'\x20session\x20create\x20'+_0x2acd13[_0x47a203(0x249)](quoteShellArg,_0x5911c0)+'\x20'+_0x41ca3e+_0x47a203(0x292)+_0x5e20c4+_0x47a203(0x230)+quoteShellArg(_0x11904b)+'\x20'+_0x41ca3e+_0x47a203(0x202)+_0x5e20c4+_0x47a203(0x29c)+quoteShellArg(_0x59057b)+'\x20'+_0x41ca3e+'`\x0a4.\x20Run\x20one\x20batched\x20`'+_0x5e20c4+'\x20execute\x20\x22...\x22`\x20command\x20to\x20exercise\x20the\x20current\x20page.\x0a5.\x20Run\x20`'+_0x5e20c4+'\x20snapshot\x20--output\x20'+quoteShellArg(_0x156267)+'\x20'+_0x41ca3e+'`\x0a6.\x20Run\x20`'+_0x5e20c4+'\x20screenshot\x20--output\x20'+quoteShellArg(_0x18eda4)+'\x20'+_0x41ca3e+'`\x0a7.\x20Return\x20immediately\x20with\x20the\x20structured\x20output.\x0a\x0aSave\x20every\x20artifact\x20under\x20`'+_0x41b1ed+_0x47a203(0x20e);}export function buildVerifyFeatureNovaCliPrompt(_0x1f3219){const _0xd88050=_0xe620d5,_0x2b66ee={'rLRdV':function(_0x1319b8,_0x14a279){return _0x1319b8(_0x14a279);},'fOwaK':function(_0x4153f5,_0x1d72ad,_0x28745e){return _0x4153f5(_0x1d72ad,_0x28745e);},'irZTL':'01_initial.yml','gEZth':'key_03_success-state.png'},{checklistItem:_0x433bdd,itemFeedback:_0x413e07,taskDescription:_0x6e5866,novaCommandPrefix:_0x1ec7a4,novaSharedOptionsSuffix:_0xc170e9,cliArtifactDir:_0x4a5ca4,url:_0x8913e4,loginInstructions:_0x568266}=_0x1f3219,_0x5599bd=_0x433bdd[_0xd88050(0x276)]?_0xd88050(0x21a)+_0x433bdd[_0xd88050(0x276)]:'',_0x4be258=_0x2b66ee['rLRdV'](buildFeedbackSection,_0x413e07),_0x2c6bcb=_0x413e07?.['canonicalFlow']?_0xd88050(0x231)+_0x413e07['canonicalFlow']:'',_0x6c3568=_0x568266?'\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20authenticate\x20using\x20these\x20steps:\x0a'+_0x568266+'\x0a\x0aIf\x20authentication\x20fails,\x20return\x20evaluation\x20\x22blocked\x22\x20and\x20describe\x20the\x20auth\x20failure.':'',_0x54df61=_0x2b66ee[_0xd88050(0x22a)](buildCliArtifactPath,_0x4a5ca4,_0x2b66ee[_0xd88050(0x23f)]),_0x19c984=buildCliArtifactPath(_0x4a5ca4,'01_initial-state.png'),_0x46c5f8=buildCliArtifactPath(_0x4a5ca4,_0x2b66ee['gEZth']);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'+_0x433bdd['description']+_0x5599bd+_0x4be258+_0x2c6bcb+'\x0a\x0a##\x20Task\x20to\x20Execute\x0a'+_0x6e5866+_0xd88050(0x203)+_0x8913e4+_0xd88050(0x27a)+_0x6c3568+'\x0a\x0a##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Nova\x20Act\x20CLI\x20only.\x20Do\x20not\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20The\x20act\x20CLI\x20is\x20already\x20installed\x20and\x20available\x20through\x20the\x20browser\x20command\x20prefix\x20below.\x20Do\x20not\x20search\x20the\x20filesystem\x20for\x20Nova,\x20install\x20packages,\x20inspect\x20docs,\x20check\x20AWS/auth\x20status,\x20read\x20env\x20files,\x20run\x20setup,\x20or\x20call\x20raw\x20`act\x20browser`.\x0a3.\x20Your\x20first\x20Bash\x20command\x20must\x20be\x20`'+_0x1ec7a4+_0xd88050(0x250)+quoteShellArg(_0x8913e4)+'\x20'+_0xc170e9+'`.\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x4a5ca4+_0xd88050(0x1e6)+_0x1ec7a4+'\x20snapshot\x20--output\x20'+quoteShellArg(_0x54df61)+'\x20'+_0xc170e9+_0xd88050(0x217)+_0x1ec7a4+_0xd88050(0x29c)+quoteShellArg(_0x19c984)+'\x20'+_0xc170e9+'`.\x0a7.\x20Optimize\x20for\x20few\x20browser\x20round\x20trips.\x20Each\x20Nova\x20CLI\x20call\x20has\x20high\x20latency.\x0a8.\x20Use\x203-5\x20high-level\x20`execute`\x20commands\x20total.\x20Each\x20`execute`\x20should\x20contain\x202-5\x20concrete\x20browser\x20steps\x20and\x20should\x20drive\x20to\x20the\x20next\x20milestone\x20page.\x0a9.\x20Do\x20not\x20split\x20a\x20simple\x20navigation\x20into\x20separate\x20commands\x20like\x20\x22open\x20menu\x22,\x20then\x20\x22click\x20link\x22,\x20then\x20\x22screenshot\x22.\x20Batch\x20those\x20into\x20one\x20`execute`\x20when\x20the\x20target\x20is\x20clear.\x0a10.\x20Do\x20not\x20use\x20`ask`\x20unless\x20you\x20are\x20genuinely\x20stuck\x20or\x20need\x20to\x20disambiguate\x20visible\x20page\x20content.\x20Prefer\x20reading\x20the\x20output\x20from\x20`execute`,\x20`snapshot`,\x20and\x20`verify`.\x0a11.\x20Use\x20`verify`\x20only\x20at\x20milestone\x20pages\x20that\x20map\x20directly\x20to\x20scenario\x20requirements.\x20Do\x20not\x20verify\x20after\x20every\x20click.\x0a12.\x20Take\x20screenshots\x20for\x20each\x20scenario\x20milestone\x20so\x20every\x20verified\x20step\x20has\x20reviewable\x20image\x20evidence,\x20including\x20the\x20final\x20state.\x20Avoid\x20duplicate\x20screenshots\x20of\x20the\x20same\x20unchanged\x20page.\x0a13.\x20After\x20the\x20required\x20initial\x20snapshot,\x20do\x20not\x20take\x20separate\x20milestone\x20snapshots\x20unless\x20you\x20cannot\x20understand\x20the\x20page\x20from\x20the\x20`execute`,\x20`verify`,\x20and\x20screenshot\x20outputs.\x0a14.\x20Mark\x20the\x20most\x20important\x20proof\x20screenshot\x20with\x20`key_`,\x20for\x20example\x20`'+_0x46c5f8+_0xd88050(0x1d1)+_0x1ec7a4+_0xd88050(0x246)+(_0xc170e9[_0xd88050(0x274)]()?'`'+_0xc170e9+'`':_0xd88050(0x29f))+'\x0a\x0a'+buildNovaSharedOptionsInstruction(_0xc170e9)+'\x0a\x0aExamples:\x0a-\x20`'+_0x1ec7a4+_0xd88050(0x24f)+_0xc170e9+_0xd88050(0x1f1)+_0x1ec7a4+'\x20verify\x20\x22The\x20Billing\x20page\x20is\x20visible\x20and\x20shows\x20the\x20current\x20plan.\x22\x20'+_0xc170e9+_0xd88050(0x1f1)+_0x1ec7a4+'\x20snapshot\x20--output\x20'+quoteShellArg(_0x54df61)+'\x20'+_0xc170e9+'`\x0a-\x20`'+_0x1ec7a4+'\x20screenshot\x20--output\x20'+quoteShellArg(_0x46c5f8)+'\x20'+_0xc170e9+_0xd88050(0x28b);}export function summarizeVerifyFeatureNovaCliCommandAvailability(_0x1adc20){const _0x3f9d25=_0xe620d5,_0x1a5041={'DoeDt':function(_0x1a2a9b,_0x3ebb8f){return _0x1a2a9b===_0x3ebb8f;}},_0x1c862a=[..._0x1adc20['keys']()]['sort']();let _0x35ebac=0x0;for(const _0x1f3448 of _0x1adc20[_0x3f9d25(0x1fc)]()){_0x35ebac+=_0x1f3448;}return{'cliCommandCount':_0x35ebac,'cliCommandsSeen':_0x1c862a,'noCliCommandsCalled':_0x1a5041[_0x3f9d25(0x22d)](_0x35ebac,0x0)};}export function createVerifyFeatureNovaCliHooks(_0x351b77,_0x1772f2){const _0x5cc26=_0xe620d5,_0x8d6602={'MAmHZ':'PreToolUse','LJrrz':function(_0x37d67e,_0x2f1cae){return _0x37d67e(_0x2f1cae);},'dBnNu':_0x5cc26(0x205),'Wqokr':'PostToolUse','oJoUF':function(_0xdbf29b,_0x2a3ca8){return _0xdbf29b(_0x2a3ca8);},'bqxqH':_0x5cc26(0x21e),'FgEil':function(_0x17342b,_0x2eed0c){return _0x17342b!==_0x2eed0c;},'CWFBw':_0x5cc26(0x234)},_0x5ef954=new Map(),_0x12d9cd=async _0x159845=>{const _0x2dc3e9=_0x5cc26;if(_0x159845[_0x2dc3e9(0x280)]!==_0x8d6602[_0x2dc3e9(0x253)])return{};const _0x4592c8=_0x159845;if(_0x4592c8['tool_name']!=='Bash')return{};const _0x59c32e=_0x4592c8[_0x2dc3e9(0x1fe)],_0x2872cb=extractBashCommand(_0x59c32e);if(!_0x2872cb)return{};const _0x4ebf02=_0x8d6602[_0x2dc3e9(0x209)](getNovaActCliCommandBlockReason,_0x2872cb);if(!_0x4ebf02)return{};return{'decision':_0x8d6602['dBnNu'],'reason':_0x4ebf02};},_0x3d52cd=async _0x3e9ec8=>{const _0x15f3d0=_0x5cc26;if(_0x3e9ec8['hook_event_name']!==_0x8d6602[_0x15f3d0(0x24a)])return{};const _0x5d5d25=_0x3e9ec8;if(_0x5d5d25[_0x15f3d0(0x271)]!==_0x15f3d0(0x234))return{};const _0x562b15=_0x5d5d25['tool_input'],_0x4fa16f=_0x8d6602[_0x15f3d0(0x209)](extractBashCommand,_0x562b15);if(!_0x4fa16f)return{};const _0x1a65ae=_0x8d6602['oJoUF'](parseNovaActCliCommand,_0x4fa16f);if(!_0x1a65ae)return{};_0x5ef954['set'](_0x1a65ae,(_0x5ef954['get'](_0x1a65ae)||0x0)+0x1),_0x351b77['trackPhaseStart'](_0x8d6602['bqxqH'],{'subcommand':_0x1a65ae}),_0x351b77[_0x15f3d0(0x1d8)](_0x15f3d0(0x21e),{'subcommand':_0x1a65ae,'commandPreview':previewNovaActCliCommand(_0x4fa16f)}),console['log'](_0x15f3d0(0x1fd)+formatNovaActCliLog(_0x4fa16f,_0x1a65ae));if(_0x1a65ae==='session\x20create'&&_0x1772f2)try{await _0x1772f2[_0x15f3d0(0x1fa)]();}catch(_0x3cdbe4){await _0x351b77[_0x15f3d0(0x245)]('nova_act_artifact_recording',_0x3cdbe4,{'transport':'nova-act-cli'});}return{};},_0x5a5d8b=async _0x54ea89=>{const _0x59c8b6=_0x5cc26;if(_0x8d6602[_0x59c8b6(0x277)](_0x54ea89['hook_event_name'],_0x59c8b6(0x1e4)))return{};const _0x2b0c64=_0x54ea89;if(_0x8d6602['FgEil'](_0x2b0c64[_0x59c8b6(0x271)],_0x8d6602['CWFBw']))return{};return await _0x351b77['trackPhaseError'](_0x59c8b6(0x28f),_0x2b0c64['error'],{'transport':_0x59c8b6(0x279),'toolName':_0x8d6602[_0x59c8b6(0x223)]}),{};};return{'preToolUseHook':_0x12d9cd,'postToolUseHook':_0x3d52cd,'postToolUseFailureHook':_0x5a5d8b,'commandCounts':_0x5ef954};}async function runNovaLifecycleCommand(_0x5adb9c){const _0x1b3841=_0xe620d5,_0xc4b0f9={'Ffsqh':function(_0x356fe6,_0x5ae3af){return _0x356fe6(_0x5ae3af);},'tVUXA':function(_0x2ff149,_0x36f2a9){return _0x2ff149??_0x36f2a9;}},{novaOptions:_0x5ac76e,commandArgs:_0x5eb138,telemetry:_0x360c13,phase:_0x4be70e,metadata:_0x225b5f,timeoutMs:_0x3d99d6}=_0x5adb9c;_0x360c13[_0x1b3841(0x1cd)](_0x4be70e,_0x225b5f);try{const _0x4307a8=await _0xc4b0f9['Ffsqh'](runNovaActCliCommand,{..._0x5ac76e,'commandArgs':_0x5eb138,'cwd':process[_0x1b3841(0x1d6)](),'env':process['env'],'timeoutMs':_0xc4b0f9['tVUXA'](_0x3d99d6,NOVA_ACT_CLI_COMMAND_TIMEOUT_MS)});_0x360c13['trackPhaseEnd'](_0x4be70e,{..._0x225b5f,'subcommand':_0x4307a8['invocation'][_0x1b3841(0x21f)],'commandPreview':previewNovaActCliCommand(_0x4307a8[_0x1b3841(0x281)]['shellCommand']),'stdoutPreview':previewNovaActCliCommand(_0x4307a8['stdout']),'stderrPreview':previewNovaActCliCommand(_0x4307a8['stderr']),'logDir':_0xc4b0f9[_0x1b3841(0x272)](extractNovaActLogDir,_0x4307a8['stdout'])});}catch(_0x55162b){await _0x360c13[_0x1b3841(0x245)](_0x4be70e,_0x55162b,_0x225b5f);throw _0x55162b;}}export async function finalizeVerifyFeatureNovaCliSession(_0x1795b5){const _0x3754dd=_0xe620d5,_0x51a543={'TOpBx':_0x3754dd(0x22e),'hwQKd':_0x3754dd(0x226),'jGVuF':'nova_act_final_snapshot','wtlkP':_0x3754dd(0x229),'pBlkh':_0x3754dd(0x233),'NKgRT':_0x3754dd(0x27f),'ozwKB':_0x3754dd(0x264),'jcZZs':_0x3754dd(0x23a),'zuqKZ':'nova_act_session_report','PpGab':_0x3754dd(0x27e),'DzQZf':function(_0x4e781e,_0x28f3e9,_0x1d12d4){return _0x4e781e(_0x28f3e9,_0x1d12d4);},'iTwcQ':_0x3754dd(0x1ed),'hhuxC':'nova_act_session_close','hHgct':_0x3754dd(0x284),'KzXHI':function(_0x46b9e5,_0x2ef6fa){return _0x46b9e5(_0x2ef6fa);}},{telemetry:_0x14834d,novaOptions:_0x49554e,cliArtifactDir:_0xb1026d,transportMetadata:_0x34979d,artifactRecorder:_0x1e4ffa}=_0x1795b5,_0x5e2a7f=[{'phase':_0x51a543[_0x3754dd(0x211)],'commandArgs':['screenshot',_0x3754dd(0x233),buildCliArtifactPath(_0xb1026d,_0x51a543[_0x3754dd(0x275)])]},{'phase':_0x51a543['jGVuF'],'commandArgs':[_0x51a543[_0x3754dd(0x27d)],_0x51a543[_0x3754dd(0x2a1)],buildCliArtifactPath(_0xb1026d,_0x3754dd(0x1ff))]},{'phase':_0x3754dd(0x1da),'commandArgs':[_0x3754dd(0x20d),'export',_0x51a543[_0x3754dd(0x1dc)],_0x51a543[_0x3754dd(0x25c)],_0x3754dd(0x233),buildCliArtifactPath(_0xb1026d,_0x51a543['jcZZs'])]},{'phase':_0x51a543[_0x3754dd(0x1ce)],'commandArgs':['session',_0x3754dd(0x291),_0x51a543[_0x3754dd(0x278)],_0x3754dd(0x1de),_0x51a543[_0x3754dd(0x1d5)](buildCliArtifactPath,_0xb1026d,_0x51a543[_0x3754dd(0x1ea)])]},{'phase':_0x51a543[_0x3754dd(0x1f8)],'commandArgs':['session',_0x51a543['hHgct']]}];for(const _0x3b5344 of _0x5e2a7f){_0x3b5344[_0x3754dd(0x252)]===_0x51a543[_0x3754dd(0x1f8)]&&await _0x1e4ffa?.[_0x3754dd(0x243)]();try{await _0x51a543[_0x3754dd(0x1e1)](runNovaLifecycleCommand,{'novaOptions':_0x49554e,'commandArgs':[..._0x3b5344[_0x3754dd(0x225)]],'telemetry':_0x14834d,'phase':_0x3b5344[_0x3754dd(0x252)],'metadata':_0x34979d});}catch{}}}export async function harvestVerifyFeatureNovaCliArtifacts(_0x5316ac){const _0x348f56=_0xe620d5,_0x551fcb={'yZZnf':function(_0x329ee5,_0xb033bc,_0x151105){return _0x329ee5(_0xb033bc,_0x151105);},'qkQJD':function(_0xfab531,_0x9dcdc1){return _0xfab531<_0x9dcdc1;},'MIUFS':function(_0x16f952,_0x14fbbb,_0x1515df){return _0x16f952(_0x14fbbb,_0x1515df);}},{cwd:_0x2996a0,cliArtifactDir:_0x287b2a,startTime:_0x4e30ed}=_0x5316ac,_0x549a1f=[];await _0x551fcb[_0x348f56(0x257)](mkdir,_0x287b2a,{'recursive':!![]});const _0x2084a6=await _0x551fcb[_0x348f56(0x257)](readdir,_0x2996a0,{'withFileTypes':!![]});for(const _0x41c45c of _0x2084a6){if(!_0x41c45c[_0x348f56(0x1e0)]()||!VERIFY_FEATURE_NOVA_ARTIFACT_FILE_PATTERN[_0x348f56(0x262)](_0x41c45c[_0x348f56(0x1d9)]))continue;const _0x2210e6=join(_0x2996a0,_0x41c45c[_0x348f56(0x1d9)]),_0x5e4d31=await stat(_0x2210e6);if(_0x551fcb['qkQJD'](_0x5e4d31['mtimeMs']+0x7d0,_0x4e30ed))continue;const _0x5907fd=buildCliArtifactPath(_0x287b2a,_0x41c45c[_0x348f56(0x1d9)]);if(_0x2210e6===_0x5907fd)continue;await _0x551fcb[_0x348f56(0x1e8)](rename,_0x2210e6,_0x5907fd),_0x549a1f[_0x348f56(0x263)](_0x41c45c[_0x348f56(0x1d9)]);}return _0x549a1f['sort']();}function _0x50f2(_0x488d86,_0xb9a6f3){_0x488d86=_0x488d86-0x1c8;const _0x594792=_0x5947();let _0x50f2a0=_0x594792[_0x488d86];return _0x50f2a0;}export async function loadVerifyFeatureNovaTraceUploadArtifact(_0x49c66e){const _0x7271d0=_0xe620d5,_0x408646={'EYjLE':function(_0x469814,_0x4808c9,_0x729b89){return _0x469814(_0x4808c9,_0x729b89);},'folpE':function(_0x4ea304,_0x5639d3){return _0x4ea304(_0x5639d3);}},_0x23d2ef=_0x408646['EYjLE'](join,_0x49c66e,'trace.zip');try{return{'buffer':await _0x408646[_0x7271d0(0x28e)](readFile,_0x23d2ef),'source':_0x23d2ef};}catch{return{'buffer':await zipVerifyFeatureNovaArtifacts(_0x49c66e),'source':_0x49c66e};}}async function zipVerifyFeatureNovaArtifacts(_0x39b72b){const _0x5ca638=_0xe620d5,_0x5bcc63={'dZFve':function(_0x489727,_0x512a9b,_0x53eef2,_0x47cbcd){return _0x489727(_0x512a9b,_0x53eef2,_0x47cbcd);},'sUNrD':'zip','BwPzZ':_0x5ca638(0x297),'vnzYY':_0x5ca638(0x22f)},_0x44840a=join(_0x39b72b,'..','nova-artifacts.zip');try{return await _0x5bcc63['dZFve'](execFileAsync,_0x5bcc63['sUNrD'],[_0x5bcc63['BwPzZ'],_0x44840a,'.','-x',_0x5bcc63[_0x5ca638(0x24b)]],{'cwd':_0x39b72b}),await readFile(_0x44840a);}finally{await rm(_0x44840a,{'force':!![]});}}export function buildNovaActCliDiagnostics(_0x1e3bb8){const _0x3da896=_0xe620d5,_0x14a6f9={'EAHyR':function(_0x167027,_0x35d823,_0x23e4b6){return _0x167027(_0x35d823,_0x23e4b6);}},_0xe5de56=_0x14a6f9[_0x3da896(0x220)](buildNovaActCliInvocation,_0x1e3bb8['novaOptions'],_0x1e3bb8['commandArgs']);return{'command':_0xe5de56[_0x3da896(0x235)],'args':_0xe5de56[_0x3da896(0x1ca)],'commandPreview':previewNovaActCliCommand(_0xe5de56[_0x3da896(0x1e7)]),'subcommand':_0xe5de56[_0x3da896(0x21f)],'sharedOptionsSuffix':_0x14a6f9['EAHyR'](buildNovaActCliSharedOptionsSuffix,_0x1e3bb8['novaOptions'],_0x1e3bb8['commandArgs'])};}
|
|
1
|
+
const _0x227a0c=_0x32b4;(function(_0x155bba,_0x1ffcec){const _0x4ddac7=_0x32b4,_0x32ed39=_0x155bba();while(!![]){try{const _0x1b9b18=-parseInt(_0x4ddac7(0x19b))/0x1*(-parseInt(_0x4ddac7(0x142))/0x2)+-parseInt(_0x4ddac7(0x1d5))/0x3*(-parseInt(_0x4ddac7(0x10a))/0x4)+parseInt(_0x4ddac7(0x15b))/0x5*(parseInt(_0x4ddac7(0x111))/0x6)+-parseInt(_0x4ddac7(0x1d1))/0x7+parseInt(_0x4ddac7(0x1aa))/0x8*(parseInt(_0x4ddac7(0x1b7))/0x9)+-parseInt(_0x4ddac7(0x11e))/0xa+-parseInt(_0x4ddac7(0x18d))/0xb*(parseInt(_0x4ddac7(0x129))/0xc);if(_0x1b9b18===_0x1ffcec)break;else _0x32ed39['push'](_0x32ed39['shift']());}catch(_0x1f4f43){_0x32ed39['push'](_0x32ed39['shift']());}}}(_0x4cd1,0xa3c90));function _0x32b4(_0xbfbe36,_0x13a36a){_0xbfbe36=_0xbfbe36-0xff;const _0x4cd1ae=_0x4cd1();let _0x32b476=_0x4cd1ae[_0xbfbe36];return _0x32b476;}import{execFile}from'child_process';import{mkdir,readdir,readFile,rename,rm,stat,writeFile}from'fs/promises';import{homedir}from'os';import{basename,join}from'path';import{promisify}from'util';import{chromium}from'playwright';import{buildNovaActCliInvocation,buildNovaActCliSharedOptionsSuffix,extractNovaActLogDir,parseNovaActCliCommand,previewNovaActCliCommand,runNovaActCliCommand}from'./utils/novaActCli.js';import{extractBashCommand,quoteShellArg}from'./utils/playwrightCli.js';const NOVA_ACT_CLI_COMMAND_TIMEOUT_MS=0x1d4c0,NOVA_ARTIFACT_CDP_CONNECT_TIMEOUT_MS=0x3a98,NOVA_ARTIFACT_METADATA_WAIT_MS=0x1388,NOVA_ARTIFACT_TRACE_SAMPLE_INTERVAL_MS=0x1388,VERIFY_FEATURE_NOVA_ARTIFACT_FILE_PATTERN=/^(?:\d{2}_.+\.(?:png|ya?ml)|key_.+\.png|final-state\.ya?ml|nova-session-export\.json)$/i,NOVA_ACT_ALLOWED_AGENT_COMMANDS=new Set(['session\x20create',_0x227a0c(0x1c3),'verify',_0x227a0c(0x161),_0x227a0c(0x189),'wait-for','snapshot',_0x227a0c(0x121)]),execFileAsync=promisify(execFile);function buildCliArtifactPath(_0x2b7363,_0x18c858){return join(_0x2b7363,_0x18c858);}export class NovaActArtifactRecorder{[_0x227a0c(0x19d)];['browser']=null;['context']=null;['frameSession']=null;[_0x227a0c(0x120)]=[];[_0x227a0c(0x168)]=0x0;[_0x227a0c(0x15e)]=0x0;['traceSampleTimer']=null;['traceSampleInFlight']=null;[_0x227a0c(0x1da)]=![];[_0x227a0c(0x18e)]=![];[_0x227a0c(0x152)]=![];['stopped']=![];constructor(_0x23e92b){this['params']=_0x23e92b;}async[_0x227a0c(0x126)](){const _0xaf1e94=_0x227a0c,_0x45bb67={'msRMa':function(_0x7eb9d9,_0x26b516,_0x14c059){return _0x7eb9d9(_0x26b516,_0x14c059);},'GFUmw':_0xaf1e94(0x14e)};if(this['startAttempted'])return;this['startAttempted']=!![];const _0x3779f4=await this['readSessionMetadataWithRetry'](),_0x4dd257=_0x3779f4['cdp_endpoint'];if(!_0x4dd257)throw new Error('Nova\x20session\x20metadata\x20did\x20not\x20include\x20cdp_endpoint\x20for\x20'+this[_0xaf1e94(0x19d)][_0xaf1e94(0x1c5)][_0xaf1e94(0x1bd)]);await _0x45bb67['msRMa'](mkdir,this[_0xaf1e94(0x19d)][_0xaf1e94(0x154)],{'recursive':!![]}),this[_0xaf1e94(0x1b3)]=await chromium[_0xaf1e94(0x186)](_0x4dd257,{'timeout':NOVA_ARTIFACT_CDP_CONNECT_TIMEOUT_MS}),this[_0xaf1e94(0x1cc)]=this['browser']['contexts']()[0x0]??null;if(!this['context'])throw new Error('Nova\x20CDP\x20connection\x20did\x20not\x20expose\x20a\x20browser\x20context');await this[_0xaf1e94(0x1cc)][_0xaf1e94(0x176)][_0xaf1e94(0x126)]({'screenshots':!![],'snapshots':!![],'sources':!![]}),this['tracingStarted']=!![],this[_0xaf1e94(0x196)](),await this['startScreencast'](),this[_0xaf1e94(0x19d)]['telemetry'][_0xaf1e94(0x1b9)](_0x45bb67[_0xaf1e94(0x167)],{...this[_0xaf1e94(0x19d)][_0xaf1e94(0x1ae)],'cdpEndpoint':_0x4dd257,'browserPid':_0x3779f4['browser_pid'],'sessionState':_0x3779f4['state']}),this['params'][_0xaf1e94(0x14c)][_0xaf1e94(0x199)]('nova_act_artifact_recording',{...this['params'][_0xaf1e94(0x1ae)],'tracingStarted':this[_0xaf1e94(0x1da)],'screencastStarted':this['screencastStarted']});}async[_0x227a0c(0x1a6)](){const _0x335e47=_0x227a0c,_0x785b50={'XaOfF':_0x335e47(0x1d0),'gvsDM':function(_0x193c47,_0x53b523,_0x13bd42){return _0x193c47(_0x53b523,_0x13bd42);}};if(this['stopped'])return;this[_0x335e47(0x182)]=!![];const _0x2c57b3={...this['params'][_0x335e47(0x1ae)],'frameCount':this['frameCount'],'traceSampleCount':this[_0x335e47(0x15e)],'tracingStarted':this['tracingStarted'],'screencastStarted':this[_0x335e47(0x18e)]};this['params'][_0x335e47(0x14c)]['trackPhaseStart'](_0x785b50[_0x335e47(0x135)],_0x2c57b3);try{await this[_0x335e47(0x14f)](),await this['captureTraceSample'](),await this['stopScreencast'](),await Promise['allSettled'](this['frameWrites']);this['context']&&this[_0x335e47(0x1da)]&&await this['context'][_0x335e47(0x176)]['stop']({'path':_0x785b50[_0x335e47(0x151)](buildCliArtifactPath,this[_0x335e47(0x19d)][_0x335e47(0x154)],_0x335e47(0x1b2))});const _0x3099c8=await this['encodeScreencastVideo']();this['params'][_0x335e47(0x14c)]['trackPhaseEnd'](_0x785b50[_0x335e47(0x135)],{..._0x2c57b3,'videoPath':_0x3099c8});}catch(_0x7be19a){await this[_0x335e47(0x19d)][_0x335e47(0x14c)]['trackPhaseError']('nova_act_artifact_recording_stop',_0x7be19a,_0x2c57b3);}finally{await this['browser']?.['close']()['catch'](()=>undefined),this['browser']=null,this['context']=null,this[_0x335e47(0x11a)]=null;}}async['readSessionMetadataWithRetry'](){const _0x589424=_0x227a0c,_0x1259be={'kHyzp':function(_0x4df9fb,_0x111b20,_0x351994,_0x42f15a,_0x310b7e,_0x44a765){return _0x4df9fb(_0x111b20,_0x351994,_0x42f15a,_0x310b7e,_0x44a765);},'cYpAK':function(_0x46f30c,_0x532d93,_0x55240d){return _0x46f30c(_0x532d93,_0x55240d);},'jSbId':function(_0x50d568,_0x3d3f69){return _0x50d568 instanceof _0x3d3f69;}},_0x388c42=_0x1259be['kHyzp'](join,homedir(),'.act_cli','browser',_0x589424(0x155),this[_0x589424(0x19d)]['novaOptions'][_0x589424(0x1bd)]+'.json'),_0x2cfc6c=Date['now']();let _0x11772b;do{try{const _0x49013a=JSON[_0x589424(0x1bf)](await _0x1259be['cYpAK'](readFile,_0x388c42,'utf-8'));if(_0x49013a[_0x589424(0x19e)])return _0x49013a;_0x11772b=new Error(_0x589424(0x1d6)+_0x388c42);}catch(_0x1afbdf){_0x11772b=_0x1afbdf;}await delay(0x64);}while(Date[_0x589424(0x1d2)]()-_0x2cfc6c<NOVA_ARTIFACT_METADATA_WAIT_MS);if(_0x1259be[_0x589424(0x163)](_0x11772b,Error))throw _0x11772b;throw new Error('Unable\x20to\x20read\x20Nova\x20session\x20metadata\x20at\x20'+_0x388c42);}async['startScreencast'](){const _0x326d80=_0x227a0c,_0x3c8fed={'HHgHY':_0x326d80(0xff)};if(!this['context'])return;const _0x296a01=this[_0x326d80(0x1cc)][_0x326d80(0x1a3)]()[0x0];if(!_0x296a01)return;const _0x50e56b=this['getFrameDir']();await mkdir(_0x50e56b,{'recursive':!![]});const _0x52715b=await this['context']['newCDPSession'](_0x296a01);this[_0x326d80(0x11a)]=_0x52715b,_0x52715b['on']('Page.screencastFrame',_0x1b5d4e=>{const _0x1dfb62=_0x326d80,_0x3e1a31=++this['frameCount'],_0x21d350=join(_0x50e56b,'frame-'+String(_0x3e1a31)[_0x1dfb62(0x1cf)](0x6,'0')+_0x1dfb62(0x1b4)),_0x4af611=writeFile(_0x21d350,Buffer[_0x1dfb62(0x17f)](_0x1b5d4e[_0x1dfb62(0x16a)],_0x3c8fed[_0x1dfb62(0x114)]))[_0x1dfb62(0x15d)](()=>undefined)[_0x1dfb62(0x16b)](()=>_0x52715b[_0x1dfb62(0x1bb)]('Page.screencastFrameAck',{'sessionId':_0x1b5d4e['sessionId']}))[_0x1dfb62(0x12d)](()=>undefined)[_0x1dfb62(0x15d)](()=>undefined);this['frameWrites'][_0x1dfb62(0x118)](_0x4af611);}),await _0x52715b['send'](_0x326d80(0x169),{'format':'jpeg','quality':0x4b,'everyNthFrame':0x6}),this[_0x326d80(0x18e)]=!![];}async['stopScreencast'](){const _0x35ab01=_0x227a0c;if(!this['frameSession']||!this['screencastStarted'])return;await this['frameSession'][_0x35ab01(0x1bb)](_0x35ab01(0x183))[_0x35ab01(0x15d)](()=>undefined);}[_0x227a0c(0x196)](){const _0x35ddc4=_0x227a0c;this['queueTraceSample'](),this['traceSampleTimer']=setInterval(()=>this[_0x35ddc4(0x10f)](),NOVA_ARTIFACT_TRACE_SAMPLE_INTERVAL_MS);}['queueTraceSample'](){const _0x2cc851=_0x227a0c;if(this['traceSampleInFlight'])return;this['traceSampleInFlight']=this[_0x2cc851(0x17a)]()[_0x2cc851(0x16b)](()=>{const _0x113c12=_0x2cc851;this[_0x113c12(0x104)]=null;});}async[_0x227a0c(0x14f)](){const _0x32d452=_0x227a0c;this['traceSampleTimer']&&(clearInterval(this['traceSampleTimer']),this['traceSampleTimer']=null),await this['traceSampleInFlight']?.[_0x32d452(0x15d)](()=>undefined);}async[_0x227a0c(0x17a)](){const _0x574c2f=_0x227a0c,_0x5f3362=this[_0x574c2f(0x1cc)]?.[_0x574c2f(0x1a3)]()[0x0];if(!_0x5f3362)return;try{await _0x5f3362['locator'](_0x574c2f(0x113))['evaluate'](_0x524346=>_0x524346[_0x574c2f(0x18f)],undefined,{'timeout':0x3e8}),this['traceSampleCount']++;}catch{}}async['encodeScreencastVideo'](){const _0x1523aa=_0x227a0c,_0x46a24c={'IBLMP':function(_0x2e9461,_0x3bf2da){return _0x2e9461<_0x3bf2da;},'GWzBq':function(_0x48ceb8){return _0x48ceb8();},'rJodd':function(_0x395340,_0x5910d6,_0x42fa68){return _0x395340(_0x5910d6,_0x42fa68);},'lFukU':_0x1523aa(0x112),'EGkdN':'-hide_banner','VSXso':_0x1523aa(0x181),'YTqBA':_0x1523aa(0x194),'TVlxQ':'scale=trunc(iw/2)*2:trunc(ih/2)*2','INTWj':_0x1523aa(0x11b),'BfSoz':'libvpx-vp9','TqKEA':_0x1523aa(0x1a7)};if(_0x46a24c['IBLMP'](this['frameCount'],0x2))return null;const _0x1b4ecf=await _0x46a24c['GWzBq'](resolveFfmpegPath);if(!_0x1b4ecf)return null;const _0x4f47fe=_0x46a24c[_0x1523aa(0x133)](join,this['params'][_0x1523aa(0x154)],_0x1523aa(0x1ab));await mkdir(_0x4f47fe,{'recursive':!![]});const _0x49d775=_0x46a24c[_0x1523aa(0x133)](join,_0x4f47fe,_0x46a24c['lFukU']);return await execFileAsync(_0x1b4ecf,['-y',_0x46a24c[_0x1523aa(0x1bc)],'-loglevel','error',_0x46a24c['VSXso'],'10','-i',join(this['getFrameDir'](),_0x46a24c['YTqBA']),'-vf',_0x46a24c['TVlxQ'],_0x46a24c['INTWj'],_0x46a24c['BfSoz'],_0x46a24c['TqKEA'],'yuv420p',_0x49d775]),_0x49d775;}['getFrameDir'](){const _0xd45fa=_0x227a0c,_0xd69cbf={'PnqtS':function(_0x3c82a5,_0x3158ab,_0x39baa1){return _0x3c82a5(_0x3158ab,_0x39baa1);}};return _0xd69cbf['PnqtS'](join,this[_0xd45fa(0x19d)]['cliArtifactDir'],'nova-video-frames');}}async function delay(_0x259721){await new Promise(_0x156c51=>setTimeout(_0x156c51,_0x259721));}async function resolveFfmpegPath(){const _0x33c6ed=_0x227a0c,_0x48247d={'boYnd':function(_0x3c2af0,_0x4d7fa9){return _0x3c2af0(_0x4d7fa9);},'GQEbU':function(_0x568999,_0x166188,_0x33407e,_0x524116,_0x3be5e5){return _0x568999(_0x166188,_0x33407e,_0x524116,_0x3be5e5);},'zBbzm':'Library','LzlIl':function(_0x320726,_0x2b3a08,_0x2548a6,_0x20c27a){return _0x320726(_0x2b3a08,_0x2548a6,_0x20c27a);},'UJQba':_0x33c6ed(0x18a)};if(await _0x48247d[_0x33c6ed(0x1be)](canRunFfmpeg,'ffmpeg'))return'ffmpeg';const _0x10478c=[_0x48247d[_0x33c6ed(0x13c)](join,homedir(),_0x48247d[_0x33c6ed(0x170)],'Caches',_0x33c6ed(0x18a)),_0x48247d[_0x33c6ed(0x10b)](join,homedir(),_0x33c6ed(0x19c),_0x48247d['UJQba'])];for(const _0x39088b of _0x10478c){try{const _0x329059=await readdir(_0x39088b),_0x335a73=_0x329059[_0x33c6ed(0x131)](_0x56dd2a=>_0x56dd2a[_0x33c6ed(0x1d3)]('ffmpeg-'))['sort']()['reverse']()['flatMap'](_0x49c4f8=>[join(_0x39088b,_0x49c4f8,'ffmpeg-mac'),join(_0x39088b,_0x49c4f8,'ffmpeg-linux'),join(_0x39088b,_0x49c4f8,_0x33c6ed(0x1a4))]);for(const _0xfdd82e of _0x335a73){if(await canRunFfmpeg(_0xfdd82e))return _0xfdd82e;}}catch{}}return null;}async function canRunFfmpeg(_0x1672c4){const _0x351bab=_0x227a0c,_0x47f75a={'CFxvP':_0x351bab(0x125)};try{return await execFileAsync(_0x1672c4,[_0x47f75a['CFxvP']]),!![];}catch{return![];}}function toStepDisplayName(_0x170990){const _0x1a7945=_0x227a0c,_0x96345d={'cHkrl':function(_0x3a671e,_0x38ae36){return _0x3a671e(_0x38ae36);},'DBGHK':function(_0x236d48,_0x2ade40){return _0x236d48(_0x2ade40);}},_0x405161=_0x96345d[_0x1a7945(0x14d)](basename,_0x170990)['replace'](/\.(?:png|ya?ml)$/i,'')[_0x1a7945(0x191)](/^key_/i,'')[_0x1a7945(0x191)](/^\d+_/,'')[_0x1a7945(0x191)](/-/g,'\x20');return{'name':_0x405161,'isKeyStep':/^key_/i['test'](_0x96345d['DBGHK'](basename,_0x170990))};}function extractShellValue(_0x51ca12){if(!_0x51ca12)return null;return _0x51ca12[0x1]??_0x51ca12[0x2]??_0x51ca12[0x3]??null;}function extractOutputOption(_0x1bcb89){const _0x1a2501=_0x227a0c,_0x4d18c1={'mPsCP':function(_0x1cc4e3,_0x2933be){return _0x1cc4e3(_0x2933be);}};return _0x4d18c1[_0x1a2501(0x193)](extractShellValue,_0x1bcb89[_0x1a2501(0x1a2)](/--output(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function formatNovaActCliLog(_0x2c78f0,_0x350c71){const _0x393136=_0x227a0c,_0x5b8b63={'eXeGt':_0x393136(0x14b),'TotBe':'verify','GNWGI':_0x393136(0x13e),'iHIZM':'ask','UhLqT':_0x393136(0x1c7),'dqaMP':_0x393136(0x164),'CefrE':_0x393136(0x159),'PUeCd':_0x393136(0x130),'miaRT':'capture\x20snapshot','javxy':'capture\x20screenshot','HaPYT':function(_0x9be7ee,_0x4b2538){return _0x9be7ee(_0x4b2538);},'vdvSx':_0x393136(0x147),'UIinO':'export\x20Nova\x20session'};switch(_0x350c71){case _0x393136(0x1c6):return'create\x20Nova\x20browser\x20session';case _0x393136(0x1c3):return _0x5b8b63[_0x393136(0x197)];case _0x5b8b63['TotBe']:return _0x5b8b63['GNWGI'];case _0x5b8b63['iHIZM']:return _0x5b8b63['UhLqT'];case'goto':return _0x5b8b63['dqaMP'];case _0x5b8b63['CefrE']:return'wait\x20for\x20page\x20condition';case _0x5b8b63[_0x393136(0x1d8)]:{const _0x468e21=extractOutputOption(_0x2c78f0);if(!_0x468e21)return _0x5b8b63['miaRT'];const {name:_0x1dec44}=toStepDisplayName(_0x468e21);return'capture\x20snapshot\x20`'+_0x1dec44+'`';}case'screenshot':{const _0x795a56=extractOutputOption(_0x2c78f0);if(!_0x795a56)return _0x5b8b63['javxy'];const {name:_0x1a3e59,isKeyStep:_0x472243}=_0x5b8b63['HaPYT'](toStepDisplayName,_0x795a56);return _0x472243?'capture\x20key\x20step\x20`'+_0x1a3e59+'`':_0x393136(0x17c)+_0x1a3e59+'`';}case _0x5b8b63[_0x393136(0x149)]:return _0x5b8b63[_0x393136(0x19a)];default:return _0x350c71;}}function getNovaActCliCommandBlockReason(_0x45527a){const _0x3a3d23=_0x227a0c,_0x40eacd={'DDfwN':function(_0x190f6d,_0x332d93){return _0x190f6d(_0x332d93);},'tNADQ':_0x3a3d23(0x1a8),'bFgQa':function(_0x14ab4a,_0x2c6b6f){return _0x14ab4a===_0x2c6b6f;},'FvHED':'verify','kzOyt':_0x3a3d23(0x10c)},_0x2657f6=_0x40eacd['DDfwN'](parseNovaActCliCommand,_0x45527a);if(!_0x2657f6)return _0x40eacd[_0x3a3d23(0x122)];if(!NOVA_ACT_ALLOWED_AGENT_COMMANDS['has'](_0x2657f6))return'Nova\x20command\x20`'+_0x2657f6+'`\x20is\x20reserved\x20for\x20the\x20host.\x20Use\x20only\x20session\x20create,\x20execute,\x20verify,\x20ask,\x20goto,\x20wait-for,\x20snapshot,\x20and\x20screenshot.';if(_0x40eacd['bFgQa'](_0x2657f6,_0x40eacd['FvHED'])&&/\b(?:previously visited|visited pages|pages visited|at least one of the pages visited)\b/i[_0x3a3d23(0x117)](_0x45527a))return _0x3a3d23(0x13f);if(/\s--help\b|\bdoctor\b|\bscript\b|\bsession\s+(?:close|list|export)\b/['test'](_0x45527a))return _0x40eacd['kzOyt'];return null;}function buildFeedbackSection(_0x35e0b8){const _0xe72be1=_0x227a0c,_0x9f8c17={'KerrM':_0xe72be1(0x157),'HggzI':'short','wWaGY':'Reviewer','UwaTs':_0xe72be1(0x132),'CDPyz':'element'};if(!_0x35e0b8||_0x35e0b8[_0xe72be1(0x1cb)]['length']===0x0)return'';const _0xf2813=_0x35e0b8[_0xe72be1(0x1cb)][_0xe72be1(0x140)](_0x17446a=>{const _0x42f5da=_0xe72be1,_0x2da0ca=new Date(_0x17446a[_0x42f5da(0x1a5)])[_0x42f5da(0x1cd)](_0x9f8c17['KerrM'],{'month':_0x9f8c17['HggzI'],'day':'numeric'}),_0x509007=_0x17446a['authorName']||_0x17446a['authorEmail']||_0x9f8c17[_0x42f5da(0x148)],_0x11f71f=_0x17446a['domRef']?_0x42f5da(0x15c)+(_0x17446a[_0x42f5da(0x1a1)][_0x42f5da(0x119)]['split'](_0x9f8c17['UwaTs'])[_0x42f5da(0x195)]()?.['split'](':')[0x0]||_0x9f8c17[_0x42f5da(0x116)])+_0x42f5da(0x128)+(_0x17446a['domRef']['textContent']||'')['slice'](0x0,0x32)+'\x22)':'';return _0x42f5da(0x110)+_0x17446a['id']+_0x42f5da(0x16c)+_0x509007+'**\x20('+_0x2da0ca+'):\x20\x22'+_0x17446a['content']+'\x22'+_0x11f71f;})['join']('\x0a');return _0xe72be1(0x15f)+_0xf2813;}function buildNovaSharedOptionsInstruction(_0x1a24a4){if(!_0x1a24a4['trim']())return'The\x20command\x20prefix\x20already\x20injects\x20session,\x20auth,\x20region,\x20workflow,\x20user-data,\x20headless,\x20and\x20JSON\x20options.\x0aDo\x20not\x20run\x20raw\x20`act\x20browser`.\x20Do\x20not\x20add\x20`--auth-mode`,\x20`--aws-profile`,\x20`--region`,\x20`--workflow-name`,\x20`--session-id`,\x20`--user-data-dir`,\x20`--headless`,\x20or\x20`--headed`\x20yourself.';return'Append\x20this\x20option\x20suffix\x20to\x20every\x20browser\x20command\x20unless\x20the\x20host\x20gives\x20a\x20more\x20specific\x20example:\x0a'+_0x1a24a4;}export function buildVerifyFeatureNovaCliDebugPrompt(_0x15ca90){const _0x2fd933=_0x227a0c,_0xbd5691={'ZJlpY':function(_0x252d2e,_0x4888eb,_0x3ac05e){return _0x252d2e(_0x4888eb,_0x3ac05e);},'MuHQe':'00_initial-state.yml','KuGSG':'01_initial-state.png','SNDUz':function(_0x425067,_0x2c0631,_0x8eebc9){return _0x425067(_0x2c0631,_0x8eebc9);},'XCiDc':'02_final-state.yml','WVyNW':function(_0x57d6e5,_0x349ed5){return _0x57d6e5(_0x349ed5);},'qCNrj':function(_0x26af3e,_0x463fe2){return _0x26af3e(_0x463fe2);}},{novaCommandPrefix:_0x37d4d5,novaSharedOptionsSuffix:_0x508101,cliArtifactDir:_0x4012ec,url:_0x17c326}=_0x15ca90,_0x46a9a9=_0xbd5691[_0x2fd933(0x1a9)](buildCliArtifactPath,_0x4012ec,_0xbd5691['MuHQe']),_0x538a84=buildCliArtifactPath(_0x4012ec,_0xbd5691[_0x2fd933(0x17e)]),_0x388624=_0xbd5691[_0x2fd933(0x165)](buildCliArtifactPath,_0x4012ec,_0xbd5691[_0x2fd933(0x11c)]),_0x2671d0=_0xbd5691['SNDUz'](buildCliArtifactPath,_0x4012ec,'03_final-state.png');return _0x2fd933(0x141)+_0x37d4d5+'\x0a\x0a'+buildNovaSharedOptionsInstruction(_0x508101)+_0x2fd933(0x1b0)+_0x37d4d5+'\x20session\x20create\x20'+_0xbd5691['WVyNW'](quoteShellArg,_0x17c326)+'\x20'+_0x508101+_0x2fd933(0x17d)+_0x37d4d5+_0x2fd933(0x15a)+quoteShellArg(_0x46a9a9)+'\x20'+_0x508101+'`\x0a3.\x20Run\x20`'+_0x37d4d5+'\x20screenshot\x20--output\x20'+_0xbd5691[_0x2fd933(0x138)](quoteShellArg,_0x538a84)+'\x20'+_0x508101+_0x2fd933(0x12a)+_0x37d4d5+'\x20execute\x20\x22...\x22`\x20command\x20to\x20exercise\x20the\x20current\x20page.\x0a5.\x20Run\x20`'+_0x37d4d5+'\x20snapshot\x20--output\x20'+quoteShellArg(_0x388624)+'\x20'+_0x508101+'`\x0a6.\x20Run\x20`'+_0x37d4d5+'\x20screenshot\x20--output\x20'+quoteShellArg(_0x2671d0)+'\x20'+_0x508101+_0x2fd933(0x145)+_0x4012ec+_0x2fd933(0x1d9);}export function buildVerifyFeatureNovaCliPrompt(_0x44c66a){const _0x2b42b0=_0x227a0c,_0x1dd59f={'sBWGM':function(_0x5893dd,_0x351dd1,_0xd326d1){return _0x5893dd(_0x351dd1,_0xd326d1);},'IClHm':function(_0x55a4f7,_0x241eeb,_0x1dfefc){return _0x55a4f7(_0x241eeb,_0x1dfefc);},'RvPbh':'key_03_success-state.png','wQWxZ':function(_0x293b7e,_0x4d1414){return _0x293b7e(_0x4d1414);}},{checklistItem:_0xaf8c25,itemFeedback:_0xae6963,taskDescription:_0x1b7d0e,novaCommandPrefix:_0x328721,novaSharedOptionsSuffix:_0xebea68,cliArtifactDir:_0x4cb348,url:_0x2b5bd6,loginInstructions:_0x41412f}=_0x44c66a,_0x4497ae=_0xaf8c25[_0x2b42b0(0x136)]?_0x2b42b0(0x14a)+_0xaf8c25[_0x2b42b0(0x136)]:'',_0x431486=buildFeedbackSection(_0xae6963),_0x247e22=_0xae6963?.['canonicalFlow']?_0x2b42b0(0x13b)+_0xae6963[_0x2b42b0(0x150)]:'',_0x48e37e=_0x41412f?_0x2b42b0(0x158)+_0x41412f+'\x0a\x0aIf\x20authentication\x20fails,\x20return\x20evaluation\x20\x22blocked\x22\x20and\x20describe\x20the\x20auth\x20failure.':'',_0x47125a=_0x1dd59f[_0x2b42b0(0x12b)](buildCliArtifactPath,_0x4cb348,_0x2b42b0(0x185)),_0x28155f=buildCliArtifactPath(_0x4cb348,_0x2b42b0(0x115)),_0x37696b=_0x1dd59f[_0x2b42b0(0x13a)](buildCliArtifactPath,_0x4cb348,_0x1dd59f['RvPbh']);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'+_0xaf8c25['description']+_0x4497ae+_0x431486+_0x247e22+'\x0a\x0a##\x20Task\x20to\x20Execute\x0a'+_0x1b7d0e+'\x0a\x0a##\x20App\x20Context\x0aYour\x20base\x20URL\x20is:\x20'+_0x2b5bd6+_0x2b42b0(0x146)+_0x48e37e+_0x2b42b0(0x1c1)+_0x328721+'\x20session\x20create\x20'+quoteShellArg(_0x2b5bd6)+'\x20'+_0xebea68+'`.\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x4cb348+_0x2b42b0(0x1c2)+_0x328721+_0x2b42b0(0x15a)+quoteShellArg(_0x47125a)+'\x20'+_0xebea68+_0x2b42b0(0x184)+_0x328721+_0x2b42b0(0x175)+quoteShellArg(_0x28155f)+'\x20'+_0xebea68+'`.\x0a7.\x20Optimize\x20for\x20few\x20browser\x20round\x20trips.\x20Each\x20Nova\x20CLI\x20call\x20has\x20high\x20latency.\x0a8.\x20Use\x203-5\x20high-level\x20`execute`\x20commands\x20total.\x20Each\x20`execute`\x20should\x20contain\x202-5\x20concrete\x20browser\x20steps\x20and\x20should\x20drive\x20to\x20the\x20next\x20milestone\x20page.\x0a9.\x20Do\x20not\x20split\x20a\x20simple\x20navigation\x20into\x20separate\x20commands\x20like\x20\x22open\x20menu\x22,\x20then\x20\x22click\x20link\x22,\x20then\x20\x22screenshot\x22.\x20Batch\x20those\x20into\x20one\x20`execute`\x20when\x20the\x20target\x20is\x20clear.\x0a10.\x20Do\x20not\x20use\x20`ask`\x20unless\x20you\x20are\x20genuinely\x20stuck\x20or\x20need\x20to\x20disambiguate\x20visible\x20page\x20content.\x20Prefer\x20reading\x20the\x20output\x20from\x20`execute`,\x20`snapshot`,\x20and\x20`verify`.\x0a11.\x20Use\x20`verify`\x20only\x20at\x20milestone\x20pages\x20that\x20map\x20directly\x20to\x20scenario\x20requirements.\x20Do\x20not\x20verify\x20after\x20every\x20click.\x0a12.\x20Take\x20screenshots\x20for\x20each\x20scenario\x20milestone\x20so\x20every\x20verified\x20step\x20has\x20reviewable\x20image\x20evidence,\x20including\x20the\x20final\x20state.\x20Avoid\x20duplicate\x20screenshots\x20of\x20the\x20same\x20unchanged\x20page.\x0a13.\x20After\x20the\x20required\x20initial\x20snapshot,\x20do\x20not\x20take\x20separate\x20milestone\x20snapshots\x20unless\x20you\x20cannot\x20understand\x20the\x20page\x20from\x20the\x20`execute`,\x20`verify`,\x20and\x20screenshot\x20outputs.\x0a14.\x20Mark\x20the\x20most\x20important\x20proof\x20screenshot\x20with\x20`key_`,\x20for\x20example\x20`'+_0x37696b+_0x2b42b0(0x1c0)+_0x328721+'`\x0a\x0aAppend\x20this\x20option\x20suffix\x20to\x20browser\x20commands:\x0a'+(_0xebea68[_0x2b42b0(0x19f)]()?'`'+_0xebea68+'`':_0x2b42b0(0x100))+'\x0a\x0a'+_0x1dd59f[_0x2b42b0(0x137)](buildNovaSharedOptionsInstruction,_0xebea68)+_0x2b42b0(0x134)+_0x328721+_0x2b42b0(0x1af)+_0xebea68+'`\x0a-\x20`'+_0x328721+'\x20verify\x20\x22The\x20Billing\x20page\x20is\x20visible\x20and\x20shows\x20the\x20current\x20plan.\x22\x20'+_0xebea68+'`\x0a-\x20`'+_0x328721+'\x20snapshot\x20--output\x20'+_0x1dd59f[_0x2b42b0(0x137)](quoteShellArg,_0x47125a)+'\x20'+_0xebea68+_0x2b42b0(0x17b)+_0x328721+'\x20screenshot\x20--output\x20'+_0x1dd59f['wQWxZ'](quoteShellArg,_0x37696b)+'\x20'+_0xebea68+'`\x0a\x0a##\x20Screenshot\x20Guidelines\x0aTake\x20screenshots\x20at\x20scenario\x20milestones\x20so\x20a\x20human\x20can\x20review\x20each\x20completed\x20step\x20and\x20the\x20final\x20state.\x20Use\x20numbered\x20filenames\x20and\x20prefix\x201-2\x20key\x20proof\x20screenshots\x20with\x20`key_`.\x20Avoid\x20duplicate\x20screenshots\x20of\x20the\x20same\x20unchanged\x20page\x20when\x20an\x20existing\x20verifier\x20screenshot\x20or\x20host\x20final\x20screenshot\x20is\x20accessible.\x0a\x0a##\x20Snapshot\x20Guidelines\x0aYou\x20must\x20take\x20the\x20initial\x20snapshot\x20listed\x20above.\x20After\x20that,\x20prefer\x20screenshots\x20plus\x20the\x20page\x20summaries\x20returned\x20by\x20`execute`\x20and\x20`verify`.\x20Only\x20call\x20`snapshot`\x20again\x20if\x20you\x20cannot\x20determine\x20the\x20next\x20action\x20or\x20evaluation\x20from\x20those\x20outputs.\x0a\x0a##\x20Early\x20Error\x20Detection\x0aAfter\x20the\x20initial\x20snapshot\x20and\x20screenshot,\x20check\x20for\x20blocking\x20HTTP\x20errors,\x20framework\x20error\x20pages,\x20blank\x20pages,\x20and\x20authentication\x20failures.\x20If\x20any\x20blocking\x20issue\x20is\x20present,\x20stop\x20and\x20return\x20evaluation\x20\x22blocked\x22\x20with\x20a\x20specific\x20reason.\x0a\x0a##\x20Failed\x20Assertions\x0aIf\x20`verify`\x20returns\x20`ASSERTION_FAILED`,\x20use\x20its\x20`actual`\x20and\x20`evidence`\x20fields\x20as\x20proof\x20for\x20the\x20final\x20evaluation.\x20Continue\x20only\x20to\x20finish\x20other\x20already-named\x20scenario\x20milestones.\x20Do\x20not\x20retry,\x20ask\x20about,\x20or\x20search\x20around\x20the\x20failed\x20condition.\x0a\x0a##\x20Final\x20Page\x20Stop\x0aWhen\x20the\x20scenario\x20names\x20a\x20final\x20page\x20or\x20final\x20navigation\x20target,\x20that\x20page\x20is\x20the\x20last\x20browser\x20milestone.\x20Once\x20it\x20is\x20loaded\x20and\x20screenshotted,\x20make\x20the\x20final\x20evaluation\x20from\x20the\x20collected\x20evidence.\x20Do\x20not\x20navigate,\x20search,\x20ask,\x20or\x20verify\x20beyond\x20that\x20final\x20page\x20unless\x20the\x20scenario\x20explicitly\x20names\x20another\x20page.\x0a\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\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 summarizeVerifyFeatureNovaCliCommandAvailability(_0x1dbc1c){const _0x2e651c=_0x227a0c,_0x17df62={'RUodm':function(_0x149538,_0x10db95){return _0x149538===_0x10db95;}},_0x593691=[..._0x1dbc1c[_0x2e651c(0x1b8)]()]['sort']();let _0x5b4fa1=0x0;for(const _0x74f2c2 of _0x1dbc1c[_0x2e651c(0x1ac)]()){_0x5b4fa1+=_0x74f2c2;}return{'cliCommandCount':_0x5b4fa1,'cliCommandsSeen':_0x593691,'noCliCommandsCalled':_0x17df62['RUodm'](_0x5b4fa1,0x0)};}export function createVerifyFeatureNovaCliHooks(_0x51cf43,_0x517479){const _0x583698=_0x227a0c,_0x3e797d={'GxnuV':function(_0x56c9fe,_0x145257){return _0x56c9fe!==_0x145257;},'qhKAJ':'PreToolUse','yLDkE':'block','mZmUM':function(_0x571215,_0x1f08d4){return _0x571215!==_0x1f08d4;},'XOtGu':'PostToolUse','kcVZc':'Bash','tZHAZ':_0x583698(0x179),'tESJV':function(_0x3e0806,_0xf53b57){return _0x3e0806===_0xf53b57;},'FRWXc':_0x583698(0x14e),'PmBYh':_0x583698(0x1b1),'Kpewt':'PostToolUseFailure','kFNTv':'nova_act_command_failure'},_0x2b4e95=new Map(),_0x185045=async _0x4e599f=>{const _0x295597=_0x583698;if(_0x3e797d['GxnuV'](_0x4e599f[_0x295597(0x106)],_0x3e797d['qhKAJ']))return{};const _0x32b594=_0x4e599f;if(_0x32b594[_0x295597(0x13d)]!==_0x295597(0x101))return{};const _0x3a5265=_0x32b594['tool_input'],_0x57feb0=extractBashCommand(_0x3a5265);if(!_0x57feb0)return{};const _0x45e8c9=getNovaActCliCommandBlockReason(_0x57feb0);if(!_0x45e8c9)return{};return{'decision':_0x3e797d['yLDkE'],'reason':_0x45e8c9};},_0x509675=async _0x3314b9=>{const _0x503028=_0x583698;if(_0x3e797d[_0x503028(0x139)](_0x3314b9['hook_event_name'],_0x3e797d[_0x503028(0x1b6)]))return{};const _0xbe352a=_0x3314b9;if(_0x3e797d['GxnuV'](_0xbe352a['tool_name'],_0x3e797d[_0x503028(0x10d)]))return{};const _0x3ff1d1=_0xbe352a['tool_input'],_0x1c75a3=extractBashCommand(_0x3ff1d1);if(!_0x1c75a3)return{};const _0x431005=parseNovaActCliCommand(_0x1c75a3);if(!_0x431005)return{};_0x2b4e95['set'](_0x431005,(_0x2b4e95[_0x503028(0x16d)](_0x431005)||0x0)+0x1),_0x51cf43['trackPhaseStart'](_0x3e797d[_0x503028(0x192)],{'subcommand':_0x431005}),_0x51cf43[_0x503028(0x199)](_0x3e797d[_0x503028(0x192)],{'subcommand':_0x431005,'commandPreview':previewNovaActCliCommand(_0x1c75a3)}),console[_0x503028(0x198)](_0x503028(0x105)+formatNovaActCliLog(_0x1c75a3,_0x431005));if(_0x3e797d[_0x503028(0x124)](_0x431005,_0x503028(0x1c6))&&_0x517479)try{await _0x517479['start']();}catch(_0x4b26fa){await _0x51cf43[_0x503028(0x10e)](_0x3e797d[_0x503028(0x12c)],_0x4b26fa,{'transport':_0x3e797d[_0x503028(0x11d)]});}return{};},_0x3f35aa=async _0x275044=>{const _0x187e09=_0x583698;if(_0x3e797d[_0x187e09(0x188)](_0x275044[_0x187e09(0x106)],_0x3e797d[_0x187e09(0x102)]))return{};const _0x387135=_0x275044;if(_0x387135['tool_name']!==_0x187e09(0x101))return{};return await _0x51cf43[_0x187e09(0x10e)](_0x3e797d[_0x187e09(0x123)],_0x387135[_0x187e09(0x16f)],{'transport':_0x3e797d['PmBYh'],'toolName':_0x187e09(0x101)}),{};};return{'preToolUseHook':_0x185045,'postToolUseHook':_0x509675,'postToolUseFailureHook':_0x3f35aa,'commandCounts':_0x2b4e95};}function _0x4cd1(){const _0x2d8e66=['pop','startTraceSampling','eXeGt','log','trackPhaseEnd','UIinO','5JjwNzL','.cache','params','cdp_endpoint','trim','ZYwUp','domRef','match','pages','ffmpeg.exe','createdAt','stop','-pix_fmt','Use\x20only\x20the\x20provided\x20Nova\x20browser\x20command\x20prefix\x20for\x20browser\x20verification.\x20Do\x20not\x20inspect\x20setup,\x20credentials,\x20files,\x20or\x20the\x20local\x20environment.','ZJlpY','56bOyySN','videos','values','close','transportMetadata','\x20execute\x20\x221.\x20Open\x20the\x20account\x20settings\x20menu.\x202.\x20Click\x20Billing.\x203.\x20Wait\x20for\x20the\x20Billing\x20page\x20to\x20load.\x22\x20','\x0a\x0aThe\x20act\x20CLI\x20is\x20already\x20installed\x20and\x20available\x20on\x20PATH.\x20Do\x20not\x20search\x20the\x20filesystem\x20for\x20Nova,\x20install\x20packages,\x20inspect\x20docs,\x20or\x20run\x20setup.\x20Your\x20first\x20Bash\x20command\x20must\x20be\x20the\x20session\x20create\x20command\x20below.\x0a\x0a1.\x20Run\x20`','nova-act-cli','trace.zip','browser','.jpg','env','XOtGu','1021653zleBaI','keys','trackPhaseStart','--output','send','EGkdN','sessionId','boYnd','parse','`.\x0a15.\x20As\x20soon\x20as\x20all\x20scenario\x20requirements\x20are\x20satisfied,\x20return\x20structured\x20output\x20immediately.\x20Do\x20not\x20keep\x20exploring,\x20asking,\x20or\x20taking\x20extra\x20screenshots.\x0a16.\x20Treat\x20a\x20Nova\x20`verify`\x20result\x20with\x20`ASSERTION_FAILED`\x20as\x20useful\x20evidence,\x20not\x20as\x20a\x20tool\x20crash.\x20Do\x20not\x20retry\x20the\x20same\x20assertion\x20or\x20search\x20for\x20alternatives\x20unless\x20the\x20scenario\x20explicitly\x20asks\x20you\x20to\x20find\x20any\x20matching\x20page.\x0a17.\x20Stay\x20within\x20the\x20pages\x20and\x20flow\x20named\x20by\x20the\x20scenario.\x20If\x20a\x20required\x20condition\x20is\x20absent\x20after\x20checking\x20the\x20relevant\x20named\x20page\x20once,\x20stop\x20and\x20return\x20\x22partial\x22\x20or\x20\x22failed\x22\x20with\x20the\x20missing\x20requirement.\x20Do\x20not\x20expand\x20into\x20unrelated\x20pages\x20or\x20broad\x20site\x20searches.\x0a18.\x20After\x20you\x20reach\x20and\x20screenshot\x20the\x20final\x20named\x20scenario\x20page,\x20do\x20not\x20execute\x20more\x20browser\x20commands.\x20Evaluate\x20any\x20\x22at\x20least\x20one\x20visited\x20page\x22\x20requirement\x20from\x20the\x20pages\x20already\x20visited\x20and\x20the\x20evidence\x20already\x20collected.\x0a19.\x20Do\x20not\x20run\x20`session\x20close`,\x20`session\x20list`,\x20`session\x20export`,\x20`script`,\x20`doctor`,\x20`--help`,\x20`aws`,\x20`find`,\x20`grep`,\x20`env`,\x20`printenv`,\x20package\x20managers,\x20or\x20setup\x20commands.\x20The\x20host\x20owns\x20setup,\x20auth,\x20session\x20cleanup,\x20and\x20artifact\x20export.\x0a20.\x20The\x20host\x20also\x20captures\x20final\x20screenshots,\x20snapshots,\x20and\x20exports\x20after\x20you\x20finish,\x20but\x20every\x20scenario\x20milestone\x20still\x20needs\x20an\x20accessible\x20screenshot.\x20If\x20the\x20last\x20milestone\x20is\x20the\x20final\x20browser\x20state\x20and\x20you\x20have\x20already\x20captured\x20it,\x20you\x20do\x20not\x20need\x20a\x20duplicate\x20final\x20screenshot.\x0a21.\x20Do\x20not\x20close\x20the\x20Nova\x20session.\x20The\x20host\x20exports\x20artifacts\x20after\x20you\x20finish.\x0a22.\x20The\x20structured\x20output\x20is\x20your\x20final\x20response.\x20After\x20returning\x20it,\x20do\x20not\x20write\x20a\x20separate\x20markdown\x20summary\x20or\x20repeat\x20the\x20findings.\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Nova\x20Act\x20CLI\x20commands\x20with\x20this\x20prefix:\x0a`','\x0a\x0a##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Nova\x20Act\x20CLI\x20only.\x20Do\x20not\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20The\x20act\x20CLI\x20is\x20already\x20installed\x20and\x20available\x20through\x20the\x20browser\x20command\x20prefix\x20below.\x20Do\x20not\x20search\x20the\x20filesystem\x20for\x20Nova,\x20install\x20packages,\x20inspect\x20docs,\x20check\x20AWS/auth\x20status,\x20read\x20env\x20files,\x20run\x20setup,\x20or\x20call\x20raw\x20`act\x20browser`.\x0a3.\x20Your\x20first\x20Bash\x20command\x20must\x20be\x20`','`\x20using\x20absolute\x20paths\x20only.\x0a5.\x20Take\x20an\x20initial\x20snapshot:\x20`','execute','eOXLi','novaOptions','session\x20create','ask\x20page\x20question','final-state.yaml','command','shellCommand','unaddressedComments','context','toLocaleDateString','QnWDK','padStart','nova_act_artifact_recording_stop','2371866qiHvVQ','now','startsWith','nova-user-data/*','3knDKkZ','Nova\x20metadata\x20missing\x20cdp_endpoint\x20at\x20','nova_act_session_report','PUeCd','`\x20using\x20absolute\x20paths\x20only.\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.','tracingStarted','TJCkK','base64','`<none;\x20the\x20command\x20prefix\x20injects\x20shared\x20options>`','Bash','Kpewt','jBhtN','traceSampleInFlight','[nova-act-cli]\x20','hook_event_name','--output-dir','session','name','1229732bWHFTp','LzlIl','Do\x20not\x20run\x20Nova\x20help,\x20doctor,\x20script,\x20session\x20list,\x20session\x20export,\x20or\x20session\x20close\x20commands\x20during\x20verification.','kcVZc','trackPhaseError','queueTraceSample','-\x20[','24FyhTrC','session-recording.webm','body','HHgHY','01_initial-state.png','CDPyz','test','push','selector','frameSession','-c:v','XCiDc','PmBYh','1424210pqbqrm','export','frameWrites','screenshot','tNADQ','kFNTv','tESJV','-version','start','RKrLM','>\x20\x22','127284uevlSx','`\x0a4.\x20Run\x20one\x20batched\x20`','sBWGM','FRWXc','then','MQGyL','XYILx','snapshot','filter','\x20>\x20','rJodd','\x0a\x0aExamples:\x0a-\x20`','XaOfF','notes','wQWxZ','qCNrj','mZmUM','IClHm','\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a','GQEbU','tool_name','verify\x20page\x20condition','Evaluate\x20visited-page\x20aggregate\x20requirements\x20from\x20the\x20collected\x20URLs,\x20titles,\x20headings,\x20verify\x20results,\x20and\x20screenshots.\x20Do\x20not\x20run\x20another\x20browser\x20command\x20to\x20re-check\x20pages\x20already\x20visited.','map','You\x20are\x20testing\x20Nova\x20Act\x20browser\x20automation.\x20Your\x20task\x20is\x20simple.\x0a\x0aUse\x20Bash\x20and\x20Nova\x20Act\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a','488972ocJQYw','nova-report','DbmOs','`\x0a7.\x20Return\x20immediately\x20with\x20the\x20structured\x20output.\x0a\x0aSave\x20every\x20artifact\x20under\x20`','\x0a-\x20You\x20may\x20ONLY\x20navigate\x20to\x20paths\x20under\x20this\x20base\x20URL\x27s\x20origin.\x0a-\x20Do\x20not\x20navigate\x20to\x20any\x20different\x20protocol,\x20host,\x20or\x20port.\x0a-\x20If\x20the\x20browser\x20leaves\x20this\x20origin,\x20navigate\x20back\x20once.\x20If\x20you\x20cannot\x20recover,\x20return\x20evaluation\x20\x22blocked\x22.\x0a','session\x20export','wWaGY','vdvSx','\x0a\x0a##\x20Additional\x20Notes\x0a','execute\x20Nova\x20browser\x20action','telemetry','cHkrl','nova_act_artifact_recording','stopTraceSampling','canonicalFlow','gvsDM','startAttempted','nova_act_final_screenshot','cliArtifactDir','sessions','fXVdS','en-US','\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20authenticate\x20using\x20these\x20steps:\x0a','wait-for','\x20snapshot\x20--output\x20','510105qdHzbH','\x20(on\x20element:\x20<','catch','traceSampleCount','\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\x20in\x20addressedCommentIds.\x0a\x0a','invocation','ask','--report','jSbId','navigate\x20browser','SNDUz','zip','GFUmw','frameCount','Page.startScreencast','data','finally',']\x20**','get','iGrEB','error','zBbzm','cwd','subcommand','fCOGJ','phase','\x20screenshot\x20--output\x20','tracing','OhPPY','fNrCU','nova_act_command','captureTraceSample','`\x0a-\x20`','capture\x20step\x20`','`\x0a2.\x20Run\x20`','KuGSG','from','kPdhv','-framerate','stopped','Page.stopScreencast','`.\x0a6.\x20Take\x20an\x20initial\x20screenshot:\x20`','01_initial.yml','connectOverCDP','key_final-state.png','GxnuV','goto','ms-playwright','stdout','nova_act_session_close','1639FuXrcp','screencastStarted','tagName','json','replace','tZHAZ','mPsCP','frame-%06d.jpg'];_0x4cd1=function(){return _0x2d8e66;};return _0x4cd1();}async function runNovaLifecycleCommand(_0x2131b7){const _0x39e31f=_0x227a0c,_0x2c6011={'XYILx':function(_0x1acb2a,_0x3752b1){return _0x1acb2a(_0x3752b1);},'WQMcr':function(_0x35cd6d,_0x3afee1){return _0x35cd6d??_0x3afee1;},'QnWDK':function(_0xfcf2e1,_0x23da11){return _0xfcf2e1(_0x23da11);},'Hkkrt':function(_0x43edb6,_0x51fb88){return _0x43edb6(_0x51fb88);}},{novaOptions:_0x12edc8,commandArgs:_0x168a79,telemetry:_0x43fb36,phase:_0x423e41,metadata:_0x10ae16,timeoutMs:_0x2863cd}=_0x2131b7;_0x43fb36[_0x39e31f(0x1b9)](_0x423e41,_0x10ae16);try{const _0x1f3be7=await _0x2c6011[_0x39e31f(0x12f)](runNovaActCliCommand,{..._0x12edc8,'commandArgs':_0x168a79,'cwd':process[_0x39e31f(0x171)](),'env':process[_0x39e31f(0x1b5)],'timeoutMs':_0x2c6011['WQMcr'](_0x2863cd,NOVA_ACT_CLI_COMMAND_TIMEOUT_MS)});_0x43fb36['trackPhaseEnd'](_0x423e41,{..._0x10ae16,'subcommand':_0x1f3be7[_0x39e31f(0x160)]['subcommand'],'commandPreview':_0x2c6011[_0x39e31f(0x1ce)](previewNovaActCliCommand,_0x1f3be7['invocation']['shellCommand']),'stdoutPreview':_0x2c6011[_0x39e31f(0x12f)](previewNovaActCliCommand,_0x1f3be7['stdout']),'stderrPreview':_0x2c6011['Hkkrt'](previewNovaActCliCommand,_0x1f3be7['stderr']),'logDir':extractNovaActLogDir(_0x1f3be7[_0x39e31f(0x18b)])});}catch(_0x504c2a){await _0x43fb36[_0x39e31f(0x10e)](_0x423e41,_0x504c2a,_0x10ae16);throw _0x504c2a;}}export async function finalizeVerifyFeatureNovaCliSession(_0x6cfa7d){const _0xe0263e=_0x227a0c,_0x38cf22={'OhPPY':_0xe0263e(0x153),'ZYwUp':'--output','TJCkK':'session','fXVdS':_0xe0263e(0x11f),'IqzJX':_0xe0263e(0x162),'MQGyL':function(_0x5882ec,_0x43d06c,_0x2caf33){return _0x5882ec(_0x43d06c,_0x2caf33);},'YExhz':_0xe0263e(0x1ad),'DbmOs':function(_0x10c9c7,_0x35679e){return _0x10c9c7===_0x35679e;}},{telemetry:_0xeca73,novaOptions:_0x3b49ac,cliArtifactDir:_0x50bd90,transportMetadata:_0x943b92,artifactRecorder:_0x3293fc}=_0x6cfa7d,_0x3157f5=[{'phase':_0x38cf22[_0xe0263e(0x177)],'commandArgs':[_0xe0263e(0x121),_0xe0263e(0x1ba),buildCliArtifactPath(_0x50bd90,_0xe0263e(0x187))]},{'phase':'nova_act_final_snapshot','commandArgs':['snapshot',_0x38cf22[_0xe0263e(0x1a0)],buildCliArtifactPath(_0x50bd90,_0xe0263e(0x1c8))]},{'phase':'nova_act_session_export','commandArgs':['session',_0xe0263e(0x11f),'--format',_0xe0263e(0x190),'--output',buildCliArtifactPath(_0x50bd90,'nova-session-export.json')]},{'phase':_0xe0263e(0x1d7),'commandArgs':[_0x38cf22[_0xe0263e(0x1db)],_0x38cf22[_0xe0263e(0x156)],_0x38cf22['IqzJX'],_0xe0263e(0x107),_0x38cf22[_0xe0263e(0x12e)](buildCliArtifactPath,_0x50bd90,_0xe0263e(0x143))]},{'phase':'nova_act_session_close','commandArgs':[_0xe0263e(0x108),_0x38cf22['YExhz']]}];for(const _0x2a64d3 of _0x3157f5){_0x38cf22[_0xe0263e(0x144)](_0x2a64d3[_0xe0263e(0x174)],_0xe0263e(0x18c))&&await _0x3293fc?.[_0xe0263e(0x1a6)]();try{await runNovaLifecycleCommand({'novaOptions':_0x3b49ac,'commandArgs':[..._0x2a64d3['commandArgs']],'telemetry':_0xeca73,'phase':_0x2a64d3['phase'],'metadata':_0x943b92});}catch{}}}export async function harvestVerifyFeatureNovaCliArtifacts(_0x1a3905){const _0x4c8410=_0x227a0c,_0x340b55={'fNrCU':function(_0x361407,_0x2d6ded,_0x293917){return _0x361407(_0x2d6ded,_0x293917);},'ZeKig':function(_0x26d94f,_0x2d211e,_0x444597){return _0x26d94f(_0x2d211e,_0x444597);},'VtOfW':function(_0x50d695,_0xa16f6c){return _0x50d695(_0xa16f6c);},'lcHvr':function(_0x15a23c,_0x4d21c0,_0x56f315){return _0x15a23c(_0x4d21c0,_0x56f315);}},{cwd:_0x5c947a,cliArtifactDir:_0x2cf23f,startTime:_0x1ee2fd}=_0x1a3905,_0x14a911=[];await _0x340b55[_0x4c8410(0x178)](mkdir,_0x2cf23f,{'recursive':!![]});const _0x5745ba=await readdir(_0x5c947a,{'withFileTypes':!![]});for(const _0x618e8d of _0x5745ba){if(!_0x618e8d['isFile']()||!VERIFY_FEATURE_NOVA_ARTIFACT_FILE_PATTERN[_0x4c8410(0x117)](_0x618e8d['name']))continue;const _0x91f83=_0x340b55['ZeKig'](join,_0x5c947a,_0x618e8d['name']),_0x439f5d=await _0x340b55['VtOfW'](stat,_0x91f83);if(_0x439f5d['mtimeMs']+0x7d0<_0x1ee2fd)continue;const _0x50cf8b=_0x340b55['lcHvr'](buildCliArtifactPath,_0x2cf23f,_0x618e8d[_0x4c8410(0x109)]);if(_0x91f83===_0x50cf8b)continue;await rename(_0x91f83,_0x50cf8b),_0x14a911[_0x4c8410(0x118)](_0x618e8d['name']);}return _0x14a911['sort']();}export async function loadVerifyFeatureNovaTraceUploadArtifact(_0x583f18){const _0x34483c=_0x227a0c,_0x2db5ee={'iGrEB':function(_0x1f314d,_0x181676,_0x438353){return _0x1f314d(_0x181676,_0x438353);},'fCOGJ':'trace.zip'},_0x12850f=_0x2db5ee[_0x34483c(0x16e)](join,_0x583f18,_0x2db5ee[_0x34483c(0x173)]);try{return{'buffer':await readFile(_0x12850f),'source':_0x12850f};}catch{return{'buffer':await zipVerifyFeatureNovaArtifacts(_0x583f18),'source':_0x583f18};}}async function zipVerifyFeatureNovaArtifacts(_0x286e8d){const _0x2f1840=_0x227a0c,_0x92373d={'yRsij':'nova-artifacts.zip','kPdhv':function(_0x103f2d,_0x1a6635,_0x540ecc,_0x12edd3){return _0x103f2d(_0x1a6635,_0x540ecc,_0x12edd3);},'eOXLi':_0x2f1840(0x166),'RKrLM':_0x2f1840(0x1d4)},_0x4f0e39=join(_0x286e8d,'..',_0x92373d['yRsij']);try{return await _0x92373d[_0x2f1840(0x180)](execFileAsync,_0x92373d[_0x2f1840(0x1c4)],['-qr',_0x4f0e39,'.','-x',_0x92373d[_0x2f1840(0x127)]],{'cwd':_0x286e8d}),await readFile(_0x4f0e39);}finally{await rm(_0x4f0e39,{'force':!![]});}}export function buildNovaActCliDiagnostics(_0x3ab493){const _0x2a87ec=_0x227a0c,_0x1c1ac4={'jBhtN':function(_0x248705,_0x50e8fc,_0x289556){return _0x248705(_0x50e8fc,_0x289556);},'jjXFq':function(_0xfb95ec,_0x46653e){return _0xfb95ec(_0x46653e);}},_0xf8b3d0=_0x1c1ac4[_0x2a87ec(0x103)](buildNovaActCliInvocation,_0x3ab493[_0x2a87ec(0x1c5)],_0x3ab493['commandArgs']);return{'command':_0xf8b3d0[_0x2a87ec(0x1c9)],'args':_0xf8b3d0['args'],'commandPreview':_0x1c1ac4['jjXFq'](previewNovaActCliCommand,_0xf8b3d0[_0x2a87ec(0x1ca)]),'subcommand':_0xf8b3d0[_0x2a87ec(0x172)],'sharedOptionsSuffix':buildNovaActCliSharedOptionsSuffix(_0x3ab493['novaOptions'],_0x3ab493['commandArgs'])};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x2b7448,_0xa53566){const _0x368bc7=_0x1673,_0xf8fa2e=_0x2b7448();while(!![]){try{const _0x56b14c=-parseInt(_0x368bc7(0x14d))/0x1*(parseInt(_0x368bc7(0xff))/0x2)+-parseInt(_0x368bc7(0x14a))/0x3*(-parseInt(_0x368bc7(0x13f))/0x4)+parseInt(_0x368bc7(0x12d))/0x5*(-parseInt(_0x368bc7(0x114))/0x6)+parseInt(_0x368bc7(0xf4))/0x7+-parseInt(_0x368bc7(0x11d))/0x8*(-parseInt(_0x368bc7(0xf8))/0x9)+-parseInt(_0x368bc7(0x14f))/0xa*(-parseInt(_0x368bc7(0x110))/0xb)+-parseInt(_0x368bc7(0x13d))/0xc;if(_0x56b14c===_0xa53566)break;else _0xf8fa2e['push'](_0xf8fa2e['shift']());}catch(_0x42d4aa){_0xf8fa2e['push'](_0xf8fa2e['shift']());}}}(_0x35b8,0x419bf));import{extractBashCommand,quoteShellArg}from'./utils/playwrightCli.js';import{parseRangerwrightCliCommand,runRangerwrightCliCommand}from'./utils/rangerwrightCli.js';const RANGERWRIGHT_CLI_COMMAND_TIMEOUT_MS=0xea60,RANGERWRIGHT_CLI_PREVIEW_LIMIT=0xf0;function truncatePreview(_0x224b41,_0x43a87c=RANGERWRIGHT_CLI_PREVIEW_LIMIT){const _0x32e962=_0x1673,_0x7dd7c7={'vrFyT':function(_0x50e308,_0x4ba412){return _0x50e308+_0x4ba412;},'yjCkJ':'...'};return _0x224b41[_0x32e962(0x100)]>_0x43a87c?_0x7dd7c7[_0x32e962(0xf3)](_0x224b41[_0x32e962(0xf1)](0x0,_0x43a87c),_0x7dd7c7[_0x32e962(0x11c)]):_0x224b41;}function extractShellValue(_0x2d760c){if(!_0x2d760c)return null;return _0x2d760c[0x1]??_0x2d760c[0x2]??_0x2d760c[0x3]??null;}function extractFirstCommandArgument(_0x21134d,_0x14f688){const _0xe01c75=_0x1673,_0x400bd1={'WyNbV':_0xe01c75(0x104),'zVZRo':function(_0x496c11,_0x43daa9){return _0x496c11(_0x43daa9);}},_0x5409c0=_0x14f688[_0xe01c75(0x143)](/[.*+?^${}()|[\]\\]/g,_0x400bd1['WyNbV']);return _0x400bd1['zVZRo'](extractShellValue,_0x21134d['match'](new RegExp(_0xe01c75(0x13c)+_0x5409c0+'(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))')));}function formatCommandTarget(_0x42ebb2){const _0x1be2d8=_0x1673,_0x148f05={'ZIjyL':_0x1be2d8(0x148),'jSNIB':function(_0x58d923,_0x54292c,_0x5c5fd0){return _0x58d923(_0x54292c,_0x5c5fd0);}};if(!_0x42ebb2)return _0x148f05['ZIjyL'];if(/^e\d+$/i[_0x1be2d8(0x106)](_0x42ebb2))return _0x1be2d8(0x134)+_0x42ebb2;return JSON[_0x1be2d8(0xfc)](_0x148f05['jSNIB'](truncatePreview,_0x42ebb2,0x78));}function _0x35b8(){const _0x38e213=['content','vrFyT','3232537DTCmRr','01_initial-state.png','join','trackPhaseError','2925dGUppg','authorEmail','):\x20\x22','tKmfL','stringify','stop\x20video\x20recording','ibDgU','1051530Wtqjxr','length','IJSNB','get','PostToolUseFailure','\x5c$&','>\x20\x22','test','xvZcJ','wzqYr','authorName','tool_input','PostToolUse','trackPhaseEnd','phase','inspect','PKtnD','22llMhAJ','MgYiY','tool_name','textContent','6lPDQJF','error','gayPn','uIXPm','close','rangerwright_cli_command','`\x0a2.\x20Use\x20the\x20returned\x20JSON\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20ref.\x0a3.\x20Run\x20`','[rangerwright-cli]\x20','yjCkJ','13120qdYbdT','sort','split','push','fZZsi','matchAll','xsiaZ','meJco','##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20at\x20','\x20>\x20','tracing-stop','notes','Bash','\x20open-and-inspect\x20','\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20authenticate\x20using\x20these\x20steps:\x0a','weBwN','2451420bxScPN','inspect\x20page','commandPrefix','VoPLn','srrPU','key_02_learn-more.png','open\x20and\x20inspect','ref\x20','zFsAe','values','keys','rangerwright_cli_video_stop','fill','domRef','unaddressedComments','(?:^|\x5cs)','2358948gAIplK','\x20--screenshot-path\x20','8WdfRRt','numeric','trackPhaseStart','\x20click-and-inspect\x20e37\x20--screenshot-path\x20','replace','lAiUE','click\x20and\x20inspect\x20','MJKeL','stderr','target','map','453339kpYDrJ','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','HZGBq','1tqGGCH','Reviewer','921730sfLRuY','NzAYu','PGunP','subcommand','slice'];_0x35b8=function(){return _0x38e213;};return _0x35b8();}function formatRangerwrightCliLog(_0x20fed3,_0x29d92c){const _0xedccae=_0x1673,_0x153122={'myQUu':'open-and-inspect','xsiaZ':function(_0x1cc623,_0x11675b,_0x142261){return _0x1cc623(_0x11675b,_0x142261);},'qMCEX':'click-and-inspect','wzqYr':function(_0x4a15fd,_0x52f99a){return _0x4a15fd(_0x52f99a);},'PKtnD':function(_0x3cb09e,_0x257841,_0x3e61c8){return _0x3cb09e(_0x257841,_0x3e61c8);},'jKPIi':_0xedccae(0x139),'RoGOe':'go\x20back\x20and\x20inspect','hOIaz':_0xedccae(0x12e),'GrUid':_0xedccae(0x127),'jdQVq':'video-stop','tQwcb':_0xedccae(0xfd),'PWRfb':'close\x20browser\x20session'};switch(_0x29d92c){case _0x153122['myQUu']:{const _0x2e18fc=_0x153122[_0xedccae(0x123)](extractFirstCommandArgument,_0x20fed3,_0x29d92c);return _0x2e18fc?'open\x20and\x20inspect\x20'+_0x2e18fc:_0xedccae(0x133);}case _0x153122['qMCEX']:return _0xedccae(0x145)+_0x153122[_0xedccae(0x108)](formatCommandTarget,_0x153122[_0xedccae(0x10f)](extractFirstCommandArgument,_0x20fed3,_0x29d92c));case _0x153122['jKPIi']:case'fill-and-inspect':return'fill\x20'+formatCommandTarget(extractFirstCommandArgument(_0x20fed3,_0x29d92c));case'back-and-inspect':return _0x153122['RoGOe'];case _0xedccae(0x10e):return _0x153122['hOIaz'];case _0x153122['GrUid']:return'stop\x20tracing';case _0x153122['jdQVq']:return _0x153122['tQwcb'];case _0xedccae(0x118):return _0x153122['PWRfb'];default:return _0x29d92c;}}function renderScenarioSections(_0x52fd2e){const _0x596404=_0x1673,_0x3e3f17={'HZGBq':'en-US','NzAYu':'short','MJKeL':_0x596404(0x14e),'VoPLn':_0x596404(0x126),'yubFB':'element','fZZsi':function(_0x157468,_0x25bfa1){return _0x157468>_0x25bfa1;}},{checklistItem:_0x1068aa,itemFeedback:_0x1979e2}=_0x52fd2e,_0xdeac24=_0x1068aa[_0x596404(0x128)]?'\x0a\x0a##\x20Additional\x20Notes\x0a'+_0x1068aa[_0x596404(0x128)]:'';let _0x2fba0f='';if(_0x1979e2&&_0x3e3f17[_0x596404(0x121)](_0x1979e2[_0x596404(0x13b)]['length'],0x0)){const _0x2f27c3=_0x1979e2[_0x596404(0x13b)][_0x596404(0x149)](_0x47d945=>{const _0x1889c6=_0x596404,_0x47d614=new Date(_0x47d945['createdAt'])['toLocaleDateString'](_0x3e3f17[_0x1889c6(0x14c)],{'month':_0x3e3f17[_0x1889c6(0x150)],'day':_0x1889c6(0x140)}),_0x5a89d1=_0x47d945[_0x1889c6(0x109)]||_0x47d945[_0x1889c6(0xf9)]||_0x3e3f17[_0x1889c6(0x146)],_0x427ead=_0x47d945[_0x1889c6(0x13a)]?'\x20(on\x20element:\x20<'+(_0x47d945['domRef']['selector'][_0x1889c6(0x11f)](_0x3e3f17[_0x1889c6(0x130)])['pop']()?.['split'](':')[0x0]||_0x3e3f17['yubFB'])+_0x1889c6(0x105)+(_0x47d945[_0x1889c6(0x13a)][_0x1889c6(0x113)]||'')[_0x1889c6(0xf1)](0x0,0x32)+'\x22)':'';return'-\x20['+_0x47d945['id']+']\x20'+_0x5a89d1+'\x20('+_0x47d614+_0x1889c6(0xfa)+_0x47d945[_0x1889c6(0xf2)]+'\x22'+_0x427ead;})[_0x596404(0xf6)]('\x0a');_0x2fba0f='\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\x20in\x20addressedCommentIds.\x0a\x0a'+_0x2f27c3;}const _0x5764cc=_0x1979e2?.['canonicalFlow']?'\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a'+_0x1979e2['canonicalFlow']:'';return''+_0x1068aa['description']+_0xdeac24+_0x2fba0f+_0x5764cc;}function _0x1673(_0x3c28ef,_0x5e0177){_0x3c28ef=_0x3c28ef-0xf0;const _0x35b8a5=_0x35b8();let _0x16735a=_0x35b8a5[_0x3c28ef];return _0x16735a;}export function buildVerifyFeatureRangerwrightCliPrompt(_0x2b2b88){const _0x2b95e3=_0x1673,_0x2cab96={'xvZcJ':'key_99_final-state.png','uIXPm':function(_0x30b63b,_0x111d41){return _0x30b63b(_0x111d41);},'ibDgU':function(_0x24c767,_0x16b17a){return _0x24c767(_0x16b17a);},'YuNCB':function(_0x252ea4,_0x3b1207){return _0x252ea4(_0x3b1207);}},{checklistItem:_0x31fd49,itemFeedback:_0x2d33ad,taskDescription:_0x6133f8,commandPrefix:_0xcbf0c8,isCdpMode:_0x4d7082,url:_0x584a5b,cdpEndpoint:_0x292877,loginInstructions:_0x5e214d}=_0x2b2b88,_0x118eea=_0x2b95e3(0xf5),_0x4a9b19=_0x2cab96[_0x2b95e3(0x107)],_0x5a87aa=_0x4d7082?_0xcbf0c8+'\x20inspect\x20--screenshot-path\x20'+quoteShellArg(_0x118eea):_0xcbf0c8+_0x2b95e3(0x12a)+_0x2cab96[_0x2b95e3(0x117)](quoteShellArg,_0x584a5b??'about:blank')+_0x2b95e3(0x13e)+_0x2cab96['ibDgU'](quoteShellArg,_0x118eea),_0x4f2c8b=_0x4d7082?_0x2b95e3(0x125)+_0x292877+'.\x0aThe\x20app\x20is\x20already\x20running\x20and\x20connected.\x20Start\x20with\x20inspect\x20instead\x20of\x20opening\x20a\x20URL.':'CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20'+_0x584a5b+'\x0a-\x20You\x20may\x20ONLY\x20navigate\x20to\x20paths\x20under\x20this\x20base\x20URL.\x0a-\x20DO\x20NOT\x20navigate\x20to\x20any\x20different\x20domain,\x20host,\x20or\x20port.\x0a-\x20If\x20documentation\x20or\x20code\x20diffs\x20suggest\x20a\x20path\x20exists,\x20navigate\x20to\x20it\x20only\x20under\x20this\x20base\x20URL.',_0x4b3691=_0x5e214d?_0x2b95e3(0x12b)+_0x5e214d+'\x0a\x0aAfter\x20completing\x20authentication,\x20proceed\x20with\x20the\x20verification\x20task\x20below.\x0aIf\x20authentication\x20fails,\x20return\x20evaluation\x20\x22blocked\x22\x20and\x20describe\x20the\x20auth\x20failure.':'';return _0x2b95e3(0x14b)+_0x2cab96['YuNCB'](renderScenarioSections,{'checklistItem':_0x31fd49,'itemFeedback':_0x2d33ad})+'\x0a\x0a##\x20Task\x20to\x20Execute\x0a'+_0x6133f8+'\x0a\x0a'+_0x4f2c8b+_0x4b3691+'\x0a\x0a##\x20Rangerwright\x20Instructions\x0aUse\x20Bash\x20and\x20Rangerwright\x20only.\x0a\x0aEvery\x20browser\x20command\x20must\x20start\x20with\x20this\x20exact\x20literal\x20command\x20prefix:\x0a\x0a'+_0xcbf0c8+'\x0a\x0aDo\x20not\x20define\x20an\x20RW\x20variable.\x20Do\x20not\x20use\x20node_modules/.bin/rangerwright,\x20npx,\x20npm,\x20cd,\x20find,\x20grep,\x20or\x20search\x20for\x20the\x20binary.\x20Browser\x20Trek\x20only\x20counts\x20literal\x20Rangerwright\x20command\x20invocations.\x0a\x0aTreat\x20the\x20command\x20prefix\x20as\x20immutable.\x20Copy\x20it\x20exactly,\x20then\x20append\x20one\x20supported\x20Rangerwright\x20subcommand\x20and\x20its\x20arguments.\x20If\x20a\x20browser\x20command\x20fails\x20because\x20the\x20binary\x20path\x20is\x20missing\x20or\x20the\x20command\x20syntax\x20is\x20malformed,\x20retry\x20once\x20with\x20the\x20exact\x20prefix\x20from\x20this\x20prompt\x20before\x20deciding\x20the\x20task\x20is\x20blocked.\x0a\x0aFirst\x20command:\x0a\x0a'+_0x5a87aa+'\x0a\x0aPrefer\x20open-and-inspect\x20and\x20click-and-inspect\x20when\x20you\x20need\x20a\x20fresh\x20snapshot\x20plus\x20evidence.\x0a\x0aUse\x20back-and-inspect\x20to\x20return\x20to\x20the\x20previous\x20page\x20after\x20checking\x20a\x20detail\x20page.\x20Refresh\x20refs\x20after\x20going\x20back.\x0a\x0aEach\x20command\x20returns\x20JSON\x20with\x20success,\x20data,\x20and\x20error\x20fields.\x0a\x0aUse\x20data.title,\x20data.headings,\x20data.pageText,\x20and\x20data.snapshotText\x20together.\x20snapshotText\x20is\x20best\x20for\x20refs\x20and\x20controls;\x20pageText\x20is\x20valid\x20visible\x20evidence\x20for\x20page\x20content.\x0a\x0aDo\x20not\x20verify\x20from\x20a\x20broad\x20landing,\x20index,\x20category,\x20search,\x20or\x20navigation\x20page\x20when\x20the\x20task\x20asks\x20for\x20a\x20specific\x20page,\x20topic,\x20item,\x20or\x20action.\x20Click\x20and\x20inspect\x20the\x20most\x20specific\x20visible\x20target\x20first;\x20if\x20no\x20specific\x20target\x20exists,\x20report\x20the\x20missing\x20target.\x0a\x0aSave\x20screenshots\x20by\x20using\x20--screenshot-path\x20on\x20inspect\x20commands.\x20Relative\x20screenshot\x20paths\x20are\x20saved\x20under\x20the\x20run\x20artifact\x20directory.\x20Do\x20not\x20call\x20screenshot\x20--path.\x0a\x0aExample:\x0a\x0a'+_0xcbf0c8+_0x2b95e3(0x142)+_0x2cab96[_0x2b95e3(0xfe)](quoteShellArg,_0x4a9b19)+'\x0a\x0aRefs\x20like\x20e37\x20are\x20only\x20valid\x20for\x20the\x20snapshot\x20that\x20produced\x20them.\x20Refresh\x20refs\x20after\x20navigation.\x0a\x0aUse\x20short\x20concrete\x20checkpoints\x20internally:\x20what\x20target\x20is\x20visible,\x20what\x20command\x20changes\x20state,\x20and\x20what\x20evidence\x20is\x20still\x20missing.\x20Issue\x20one\x20browser\x20command\x20at\x20a\x20time.\x20After\x20navigation,\x20validation,\x20or\x20a\x20changed\x20page,\x20inspect\x20before\x20deciding\x20the\x20next\x20action.\x0a\x0aBefore\x20reporting\x20success,\x20compare\x20each\x20required\x20CTA,\x20page\x20purpose,\x20and\x20topic\x20against\x20visible\x20page\x20evidence.\x20A\x20related\x20page\x20does\x20not\x20satisfy\x20a\x20different\x20required\x20topic\x20unless\x20the\x20page\x20text\x20directly\x20supports\x20that\x20topic\x20or\x20an\x20obvious\x20synonym.\x20If\x20required\x20evidence\x20is\x20missing,\x20mismatched,\x20or\x20only\x20inferred\x20from\x20adjacent\x20content,\x20report\x20that\x20plainly\x20and\x20do\x20not\x20mark\x20the\x20task\x20verified.\x0a\x0aFor\x20goals\x20with\x20more\x20than\x20one\x20required\x20condition,\x20use\x20an\x20internal\x20checklist\x20built\x20from\x20the\x20user\x27s\x20exact\x20requested\x20conditions.\x20Verify\x20each\x20checklist\x20item\x20against\x20visible\x20evidence\x20from\x20the\x20latest\x20browser\x20result.\x20If\x20any\x20item\x20lacks\x20direct\x20evidence,\x20report\x20the\x20task\x20as\x20not\x20verified\x20and\x20name\x20the\x20missing\x20item.\x0a\x0aOn\x20forms,\x20fill\x20only\x20visible\x20task-relevant\x20editable\x20fields\x20in\x20the\x20current\x20step\x20before\x20submitting\x20or\x20advancing.\x20Use\x20labels,\x20placeholders,\x20and\x20current\x20page\x20text\x20to\x20decide\x20which\x20fields\x20are\x20required.\x20Do\x20not\x20fill\x20fields\x20that\x20are\x20not\x20visible\x20in\x20the\x20latest\x20snapshot.\x0a\x0aUse\x20one\x20fill\x20command\x20per\x20field.\x20Do\x20not\x20combine\x20multiple\x20fields\x20into\x20one\x20fill\x20command\x20with\x20semicolons.\x0a\x0aIf\x20an\x20inspect-action\x20click\x20returns\x20the\x20same\x20page\x20or\x20shows\x20validation,\x20inspect\x20the\x20current\x20page\x20and\x20fill\x20blank\x20required\x20fields\x20before\x20retrying.\x20Do\x20not\x20repeat\x20the\x20same\x20blocked\x20click\x20unchanged.\x0a\x0aIf\x20a\x20click-and-inspect\x20result\x20keeps\x20the\x20same\x20URL\x20and\x20does\x20not\x20show\x20the\x20intended\x20target,\x20treat\x20it\x20as\x20a\x20no-op.\x20Refresh\x20refs\x20and\x20choose\x20a\x20different\x20visible\x20link,\x20or\x20use\x20back-and-inspect\x20if\x20you\x20need\x20the\x20prior\x20page.\x0a\x0aA\x20page\x20with\x20visible\x20required\x20fields\x20and\x20a\x20next,\x20submit,\x20continue,\x20or\x20confirm\x20control\x20is\x20still\x20actionable.\x20Fill\x20the\x20required\x20fields\x20with\x20values\x20from\x20the\x20task\x20before\x20reporting\x20incomplete\x20or\x20blocked.\x0a\x0a##\x20Critical:\x20Early\x20Error\x20Detection\x0aAfter\x20the\x20first\x20inspect\x20result,\x20check\x20for\x20blocking\x20errors:\x0a-\x20HTTP\x20404,\x20500,\x20400,\x20\x22Not\x20Found\x22,\x20\x22Server\x20Error\x22,\x20or\x20\x22Bad\x20Request\x22\x0a-\x20Framework\x20error\x20pages\x0a-\x20Blank\x20pages\x20with\x20no\x20content\x0a-\x20App\x20crash\x20or\x20error\x20dialogs\x0a\x0aIf\x20any\x20blocking\x20error\x20is\x20visible,\x20return\x20evaluation\x20\x22blocked\x22\x20immediately\x20with\x20a\x20specific\x20reason.\x0a\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\x20are\x20not\x20verified\x0a-\x20BLOCKED:\x20A\x20blocking\x20issue\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 buildVerifyFeatureRangerwrightCliDebugPrompt(_0xd043b9){const _0x5e4399=_0x1673,_0x5948f8={'iGkFv':'01_mozilla-homepage.png','meJco':function(_0x29e51f,_0x4e85ff){return _0x29e51f(_0x4e85ff);}},_0x15073c=_0x5948f8['iGkFv'],_0x7b5284=_0x5e4399(0x132);return'You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Rangerwright\x20only.\x20Every\x20browser\x20command\x20must\x20start\x20with\x20this\x20exact\x20literal\x20command\x20prefix:\x0a\x0a'+_0xd043b9['commandPrefix']+'\x0a\x0aDo\x20not\x20define\x20an\x20RW\x20variable.\x20Do\x20not\x20use\x20node_modules/.bin/rangerwright,\x20npx,\x20npm,\x20cd,\x20find,\x20grep,\x20or\x20search\x20for\x20the\x20binary.\x0a\x0a1.\x20Run\x20`'+_0xd043b9[_0x5e4399(0x12f)]+_0x5e4399(0x12a)+quoteShellArg(_0xd043b9['url'])+'\x20--screenshot-path\x20'+_0x5948f8[_0x5e4399(0x124)](quoteShellArg,_0x15073c)+_0x5e4399(0x11a)+_0xd043b9[_0x5e4399(0x12f)]+'\x20click-and-inspect\x20<ref>\x20--screenshot-path\x20'+quoteShellArg(_0x7b5284)+'`\x0a4.\x20Return\x20immediately\x20with\x20the\x20structured\x20output.\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.';}export function extractRangerwrightScreenshotPaths(_0x20eb03){const _0x22e1f2=_0x1673,_0x303ba9={'srrPU':function(_0x9151be,_0x1e2484){return _0x9151be(_0x1e2484);}};if(!_0x303ba9[_0x22e1f2(0x131)](parseRangerwrightCliCommand,_0x20eb03))return[];const _0x25e8bd=[],_0x25c138=/--screenshot-path(?:=|\s+)(?:"([^"]*)"|'([^']*)'|(\S+))/g;for(const _0x22751e of _0x20eb03[_0x22e1f2(0x122)](_0x25c138)){const _0x40a560=_0x22751e[0x1]??_0x22751e[0x2]??_0x22751e[0x3]??'',_0x3c50c0=_0x40a560['startsWith']('./')?_0x40a560['slice'](0x2):_0x40a560;if(!_0x3c50c0||_0x3c50c0['startsWith']('/'))continue;_0x25e8bd[_0x22e1f2(0x120)](_0x3c50c0);}return _0x25e8bd;}export function summarizeVerifyFeatureRangerwrightCliCommandAvailability(_0x1b31af){const _0xefbacf=_0x1673,_0x347153=[..._0x1b31af[_0xefbacf(0x137)]()][_0xefbacf(0x11e)]();let _0x2a7bf6=0x0;for(const _0x3806ad of _0x1b31af[_0xefbacf(0x136)]()){_0x2a7bf6+=_0x3806ad;}return{'cliCommandCount':_0x2a7bf6,'cliCommandsSeen':_0x347153,'noCliCommandsCalled':_0x2a7bf6===0x0};}export function createVerifyFeatureRangerwrightCliHooks(_0x6b0bf1){const _0x4a6de2=_0x1673,_0x46492a={'lAiUE':function(_0x57637d,_0x582c48){return _0x57637d!==_0x582c48;},'tKmfL':'Bash','sqQpQ':_0x4a6de2(0x119),'zFsAe':function(_0x347cfe,_0x7413fd){return _0x347cfe(_0x7413fd);},'PGunP':function(_0x35a835,_0x55e2fd,_0x4045b9){return _0x35a835(_0x55e2fd,_0x4045b9);},'weBwN':_0x4a6de2(0x103)},_0x20768d=new Map(),_0x18476a=async _0x8a98d9=>{const _0x45abe3=_0x4a6de2;if(_0x46492a[_0x45abe3(0x144)](_0x8a98d9['hook_event_name'],_0x45abe3(0x10b)))return{};const _0x46a370=_0x8a98d9;if(_0x46a370[_0x45abe3(0x112)]!==_0x46492a['tKmfL'])return{};const _0x133964=_0x46a370[_0x45abe3(0x10a)],_0x414927=extractBashCommand(_0x133964);if(!_0x414927)return{};const _0x3bd3eb=parseRangerwrightCliCommand(_0x414927);if(!_0x3bd3eb)return{};return _0x20768d['set'](_0x3bd3eb,(_0x20768d[_0x45abe3(0x102)](_0x3bd3eb)||0x0)+0x1),_0x6b0bf1[_0x45abe3(0x141)]('rangerwright_cli_command',{'subcommand':_0x3bd3eb}),_0x6b0bf1[_0x45abe3(0x10c)](_0x46492a['sqQpQ'],{'subcommand':_0x3bd3eb,'commandPreview':_0x46492a[_0x45abe3(0x135)](truncatePreview,_0x414927)}),console['log'](_0x45abe3(0x11b)+_0x46492a[_0x45abe3(0x151)](formatRangerwrightCliLog,_0x414927,_0x3bd3eb)),{};},_0x1f4e19=async _0x329b02=>{const _0x4dd98d=_0x4a6de2;if(_0x46492a[_0x4dd98d(0x144)](_0x329b02['hook_event_name'],_0x46492a[_0x4dd98d(0x12c)]))return{};const _0x168a11=_0x329b02;if(_0x168a11[_0x4dd98d(0x112)]!==_0x46492a[_0x4dd98d(0xfb)])return{};return await _0x6b0bf1[_0x4dd98d(0xf7)]('rangerwright_cli_command_failure',_0x168a11[_0x4dd98d(0x115)],{'transport':'rangerwright-cli','toolName':_0x4dd98d(0x129)}),{};};return{'postToolUseHook':_0x18476a,'postToolUseFailureHook':_0x1f4e19,'commandCounts':_0x20768d};}async function runRangerwrightLifecycleCommand(_0x324c90){const _0x2754ab=_0x1673,_0x204c16={'IJSNB':function(_0x18788e,_0xfb378a){return _0x18788e(_0xfb378a);},'gayPn':function(_0x1118b0,_0x34b94d){return _0x1118b0??_0x34b94d;}},{options:_0x239ce6,commandArgs:_0x23f2bb,env:_0x3129af,telemetry:_0x194692,phase:_0x149388,metadata:_0x54ad82,timeoutMs:_0x23182a}=_0x324c90;_0x194692['trackPhaseStart'](_0x149388,_0x54ad82);try{const _0x1b3f98=await _0x204c16[_0x2754ab(0x101)](runRangerwrightCliCommand,{..._0x239ce6,'commandArgs':_0x23f2bb,'cwd':process['cwd'](),'env':_0x3129af,'timeoutMs':_0x204c16[_0x2754ab(0x116)](_0x23182a,RANGERWRIGHT_CLI_COMMAND_TIMEOUT_MS)});_0x194692['trackPhaseEnd'](_0x149388,{..._0x54ad82,'subcommand':_0x1b3f98['invocation'][_0x2754ab(0xf0)],'stdoutPreview':truncatePreview(_0x1b3f98['stdout'],0x7d0),'stderrPreview':truncatePreview(_0x1b3f98[_0x2754ab(0x147)],0x7d0)});}catch(_0x267362){await _0x194692['trackPhaseError'](_0x149388,_0x267362,_0x54ad82);throw _0x267362;}}export async function finalizeVerifyFeatureRangerwrightCliSession(_0x515717){const _0x577048=_0x1673,_0x2ca0ea={'MgYiY':'rangerwright_cli_tracing_stop','QZqOJ':_0x577048(0x138),'CpaBO':function(_0xe042d9,_0x245ddf){return _0xe042d9(_0x245ddf);}},{telemetry:_0x4570ce,rangerwrightOptions:_0x474c5c,env:_0x5140e5,transportMetadata:_0x184827}=_0x515717,_0x5ddcf5=[{'phase':_0x2ca0ea[_0x577048(0x111)],'commandArgs':['tracing-stop']},{'phase':_0x2ca0ea['QZqOJ'],'commandArgs':['video-stop']},{'phase':'rangerwright_cli_close','commandArgs':[_0x577048(0x118)]}];for(const _0x5eaaf6 of _0x5ddcf5){try{await _0x2ca0ea['CpaBO'](runRangerwrightLifecycleCommand,{'options':_0x474c5c,'commandArgs':[..._0x5eaaf6['commandArgs']],'env':_0x5140e5,'telemetry':_0x4570ce,'phase':_0x5eaaf6[_0x577048(0x10d)],'metadata':_0x184827});}catch{}}}
|
|
1
|
+
(function(_0x58fc0c,_0xec2d11){const _0xf9ace9=_0xc16f,_0x232a78=_0x58fc0c();while(!![]){try{const _0x4efdb3=parseInt(_0xf9ace9(0x95))/0x1+parseInt(_0xf9ace9(0x99))/0x2*(-parseInt(_0xf9ace9(0x93))/0x3)+-parseInt(_0xf9ace9(0xa6))/0x4+-parseInt(_0xf9ace9(0x91))/0x5*(parseInt(_0xf9ace9(0xbe))/0x6)+parseInt(_0xf9ace9(0x8b))/0x7*(parseInt(_0xf9ace9(0xa9))/0x8)+-parseInt(_0xf9ace9(0xc3))/0x9+parseInt(_0xf9ace9(0xc1))/0xa;if(_0x4efdb3===_0xec2d11)break;else _0x232a78['push'](_0x232a78['shift']());}catch(_0x846343){_0x232a78['push'](_0x232a78['shift']());}}}(_0x2379,0x306ef));import{extractBashCommand,quoteShellArg}from'./utils/playwrightCli.js';function _0xc16f(_0x3387ce,_0x2fadd6){_0x3387ce=_0x3387ce-0x88;const _0x23791e=_0x2379();let _0xc16f34=_0x23791e[_0x3387ce];return _0xc16f34;}import{parseRangerwrightCliCommand,runRangerwrightCliCommand}from'./utils/rangerwrightCli.js';const RANGERWRIGHT_CLI_COMMAND_TIMEOUT_MS=0xea60,RANGERWRIGHT_CLI_PREVIEW_LIMIT=0xf0;function truncatePreview(_0x14b0c8,_0x114977=RANGERWRIGHT_CLI_PREVIEW_LIMIT){const _0x405b39=_0xc16f,_0x42976b={'CXRda':function(_0x3cef2b,_0x32cd84){return _0x3cef2b>_0x32cd84;}};return _0x42976b['CXRda'](_0x14b0c8[_0x405b39(0xca)],_0x114977)?_0x14b0c8[_0x405b39(0x96)](0x0,_0x114977)+_0x405b39(0xb4):_0x14b0c8;}function extractShellValue(_0x2b6785){if(!_0x2b6785)return null;return _0x2b6785[0x1]??_0x2b6785[0x2]??_0x2b6785[0x3]??null;}function extractFirstCommandArgument(_0x5b0948,_0x338ebf){const _0x4935aa=_0xc16f,_0x31cbde={'pGerA':function(_0xa99bc1,_0x2d1a57){return _0xa99bc1(_0x2d1a57);}},_0x365518=_0x338ebf['replace'](/[.*+?^${}()|[\]\\]/g,'\x5c$&');return _0x31cbde['pGerA'](extractShellValue,_0x5b0948['match'](new RegExp('(?:^|\x5cs)'+_0x365518+_0x4935aa(0xcb))));}function formatCommandTarget(_0x4c70f4){const _0x21d465={'uytyQ':'target'};if(!_0x4c70f4)return _0x21d465['uytyQ'];if(/^e\d+$/i['test'](_0x4c70f4))return'ref\x20'+_0x4c70f4;return JSON['stringify'](truncatePreview(_0x4c70f4,0x78));}function formatRangerwrightCliLog(_0x4b6e55,_0x97cc05){const _0x42435=_0xc16f,_0x7f2a52={'DEoLO':'open-and-inspect','pWECG':function(_0x374639,_0x5bfeca,_0x3328b9){return _0x374639(_0x5bfeca,_0x3328b9);},'irYRE':'open\x20and\x20inspect','uPvsj':function(_0x9068bc,_0x5368ea){return _0x9068bc(_0x5368ea);},'eikca':_0x42435(0xcd),'ZTMxD':'inspect\x20page','AVzBo':'tracing-stop','nkZDv':'close\x20browser\x20session'};switch(_0x97cc05){case _0x7f2a52['DEoLO']:{const _0x3b0299=_0x7f2a52['pWECG'](extractFirstCommandArgument,_0x4b6e55,_0x97cc05);return _0x3b0299?_0x42435(0x8d)+_0x3b0299:_0x7f2a52['irYRE'];}case _0x42435(0xd0):return _0x42435(0xc9)+_0x7f2a52[_0x42435(0xd4)](formatCommandTarget,extractFirstCommandArgument(_0x4b6e55,_0x97cc05));case'fill':case _0x42435(0x92):return'fill\x20'+formatCommandTarget(extractFirstCommandArgument(_0x4b6e55,_0x97cc05));case _0x7f2a52[_0x42435(0x97)]:return'go\x20back\x20and\x20inspect';case _0x42435(0xa1):return _0x7f2a52[_0x42435(0x8e)];case _0x7f2a52['AVzBo']:return _0x42435(0xaa);case'video-stop':return _0x42435(0xc8);case'close':return _0x7f2a52['nkZDv'];default:return _0x97cc05;}}function renderScenarioSections(_0x4a9290){const _0x205a83=_0xc16f,_0x343153={'cOVbU':'numeric','YqTrb':_0x205a83(0x9e),'KdejS':_0x205a83(0xd1),'ytGNf':'element','QZPNA':function(_0x436bf8,_0x5134bd){return _0x436bf8>_0x5134bd;}},{checklistItem:_0x25d1ae,itemFeedback:_0x2f75ba}=_0x4a9290,_0x22fb90=_0x25d1ae['notes']?'\x0a\x0a##\x20Additional\x20Notes\x0a'+_0x25d1ae[_0x205a83(0x9b)]:'';let _0x321952='';if(_0x2f75ba&&_0x343153['QZPNA'](_0x2f75ba['unaddressedComments']['length'],0x0)){const _0xc2cdca=_0x2f75ba['unaddressedComments']['map'](_0x121277=>{const _0x16847f=_0x205a83,_0x16a4b2=new Date(_0x121277[_0x16847f(0xbf)])['toLocaleDateString']('en-US',{'month':_0x16847f(0xdc),'day':_0x343153[_0x16847f(0x9d)]}),_0x2a65e7=_0x121277[_0x16847f(0xae)]||_0x121277[_0x16847f(0x9f)]||_0x343153[_0x16847f(0x98)],_0x523d98=_0x121277[_0x16847f(0xde)]?_0x16847f(0xb5)+(_0x121277[_0x16847f(0xde)]['selector']['split'](_0x343153[_0x16847f(0x88)])['pop']()?.[_0x16847f(0xd6)](':')[0x0]||_0x343153['ytGNf'])+'>\x20\x22'+(_0x121277['domRef']['textContent']||'')[_0x16847f(0x96)](0x0,0x32)+'\x22)':'';return _0x16847f(0xc0)+_0x121277['id']+']\x20'+_0x2a65e7+'\x20('+_0x16a4b2+_0x16847f(0xd9)+_0x121277['content']+'\x22'+_0x523d98;})['join']('\x0a');_0x321952=_0x205a83(0x94)+_0xc2cdca;}const _0x345bea=_0x2f75ba?.['canonicalFlow']?_0x205a83(0xa4)+_0x2f75ba['canonicalFlow']:'';return''+_0x25d1ae[_0x205a83(0xb2)]+_0x22fb90+_0x321952+_0x345bea;}export function buildVerifyFeatureRangerwrightCliPrompt(_0x257ca6){const _0x1e8e74=_0xc16f,_0x12b6ec={'YuVed':_0x1e8e74(0xb1),'lbmfS':function(_0x447288,_0x15129b){return _0x447288??_0x15129b;},'vqYPf':_0x1e8e74(0xc5),'nFZTS':function(_0x195d9a,_0x19cbb9){return _0x195d9a(_0x19cbb9);}},{checklistItem:_0xc6b35d,itemFeedback:_0xf71baf,taskDescription:_0x3eaf78,commandPrefix:_0x5209a7,isCdpMode:_0x1f5c3d,url:_0x44511f,cdpEndpoint:_0xd88b13,loginInstructions:_0x1fe9c4}=_0x257ca6,_0x356fd3='01_initial-state.png',_0x2b49f0=_0x12b6ec['YuVed'],_0x429523=_0x1f5c3d?_0x5209a7+_0x1e8e74(0xd3)+quoteShellArg(_0x356fd3):_0x5209a7+'\x20open-and-inspect\x20'+quoteShellArg(_0x12b6ec[_0x1e8e74(0xac)](_0x44511f,_0x12b6ec['vqYPf']))+'\x20--screenshot-path\x20'+quoteShellArg(_0x356fd3),_0x419a49=_0x1f5c3d?'##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20at\x20'+_0xd88b13+_0x1e8e74(0xa5):'CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20'+_0x44511f+_0x1e8e74(0xb0),_0x489b57=_0x1fe9c4?_0x1e8e74(0xdd)+_0x1fe9c4+'\x0a\x0aAfter\x20completing\x20authentication,\x20proceed\x20with\x20the\x20verification\x20task\x20below.\x0aIf\x20authentication\x20fails,\x20return\x20evaluation\x20\x22blocked\x22\x20and\x20describe\x20the\x20auth\x20failure.':'';return _0x1e8e74(0x90)+renderScenarioSections({'checklistItem':_0xc6b35d,'itemFeedback':_0xf71baf})+'\x0a\x0a##\x20Task\x20to\x20Execute\x0a'+_0x3eaf78+'\x0a\x0a'+_0x419a49+_0x489b57+_0x1e8e74(0xdb)+_0x5209a7+'\x0a\x0aDo\x20not\x20define\x20an\x20RW\x20variable.\x20Do\x20not\x20use\x20node_modules/.bin/rangerwright,\x20npx,\x20npm,\x20cd,\x20find,\x20grep,\x20or\x20search\x20for\x20the\x20binary.\x20Browser\x20Trek\x20only\x20counts\x20literal\x20Rangerwright\x20command\x20invocations.\x0a\x0aTreat\x20the\x20command\x20prefix\x20as\x20immutable.\x20Copy\x20it\x20exactly,\x20then\x20append\x20one\x20supported\x20Rangerwright\x20subcommand\x20and\x20its\x20arguments.\x20If\x20a\x20browser\x20command\x20fails\x20because\x20the\x20binary\x20path\x20is\x20missing\x20or\x20the\x20command\x20syntax\x20is\x20malformed,\x20retry\x20once\x20with\x20the\x20exact\x20prefix\x20from\x20this\x20prompt\x20before\x20deciding\x20the\x20task\x20is\x20blocked.\x0a\x0aFirst\x20command:\x0a\x0a'+_0x429523+'\x0a\x0aPrefer\x20open-and-inspect\x20and\x20click-and-inspect\x20when\x20you\x20need\x20a\x20fresh\x20snapshot\x20plus\x20evidence.\x0a\x0aUse\x20back-and-inspect\x20to\x20return\x20to\x20the\x20previous\x20page\x20after\x20checking\x20a\x20detail\x20page.\x20Refresh\x20refs\x20after\x20going\x20back.\x0a\x0aEach\x20command\x20returns\x20JSON\x20with\x20success,\x20data,\x20and\x20error\x20fields.\x0a\x0aUse\x20data.title,\x20data.headings,\x20data.pageText,\x20and\x20data.snapshotText\x20together.\x20snapshotText\x20is\x20best\x20for\x20refs\x20and\x20controls;\x20pageText\x20is\x20valid\x20visible\x20evidence\x20for\x20page\x20content.\x0a\x0aDo\x20not\x20verify\x20from\x20a\x20broad\x20landing,\x20index,\x20category,\x20search,\x20or\x20navigation\x20page\x20when\x20the\x20task\x20asks\x20for\x20a\x20specific\x20page,\x20topic,\x20item,\x20or\x20action.\x20Click\x20and\x20inspect\x20the\x20most\x20specific\x20visible\x20target\x20first;\x20if\x20no\x20specific\x20target\x20exists,\x20report\x20the\x20missing\x20target.\x0a\x0aSave\x20screenshots\x20by\x20using\x20--screenshot-path\x20on\x20inspect\x20commands.\x20Relative\x20screenshot\x20paths\x20are\x20saved\x20under\x20the\x20run\x20artifact\x20directory.\x20Do\x20not\x20call\x20screenshot\x20--path.\x0a\x0aExample:\x0a\x0a'+_0x5209a7+_0x1e8e74(0xab)+_0x12b6ec['nFZTS'](quoteShellArg,_0x2b49f0)+_0x1e8e74(0xbc);}export function buildVerifyFeatureRangerwrightCliDebugPrompt(_0x4c5ea1){const _0x376a49=_0xc16f,_0x26b9e0={'GPCGK':'01_mozilla-homepage.png','nVjHh':function(_0x443f3a,_0x220805){return _0x443f3a(_0x220805);},'pwKJe':function(_0x5c0170,_0xad41a){return _0x5c0170(_0xad41a);}},_0x110fa2=_0x26b9e0[_0x376a49(0xa3)],_0x331dae=_0x376a49(0x89);return _0x376a49(0xcc)+_0x4c5ea1['commandPrefix']+'\x0a\x0aDo\x20not\x20define\x20an\x20RW\x20variable.\x20Do\x20not\x20use\x20node_modules/.bin/rangerwright,\x20npx,\x20npm,\x20cd,\x20find,\x20grep,\x20or\x20search\x20for\x20the\x20binary.\x0a\x0a1.\x20Run\x20`'+_0x4c5ea1[_0x376a49(0xa0)]+_0x376a49(0xcf)+_0x26b9e0['nVjHh'](quoteShellArg,_0x4c5ea1[_0x376a49(0xd5)])+_0x376a49(0xc7)+_0x26b9e0['pwKJe'](quoteShellArg,_0x110fa2)+_0x376a49(0x9c)+_0x4c5ea1['commandPrefix']+'\x20click-and-inspect\x20<ref>\x20--screenshot-path\x20'+quoteShellArg(_0x331dae)+'`\x0a4.\x20Return\x20immediately\x20with\x20the\x20structured\x20output.\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.';}export function extractRangerwrightScreenshotPaths(_0x44dee4){const _0x19672b=_0xc16f,_0x1ff111={'dhswM':function(_0x2649e8,_0x563f20){return _0x2649e8(_0x563f20);}};if(!_0x1ff111[_0x19672b(0xb7)](parseRangerwrightCliCommand,_0x44dee4))return[];const _0x1dd537=[],_0x2c0c9a=/--screenshot-path(?:=|\s+)(?:"([^"]*)"|'([^']*)'|(\S+))/g;for(const _0x30746e of _0x44dee4[_0x19672b(0xbb)](_0x2c0c9a)){const _0x2103c8=_0x30746e[0x1]??_0x30746e[0x2]??_0x30746e[0x3]??'',_0x5a1c2d=_0x2103c8['startsWith']('./')?_0x2103c8['slice'](0x2):_0x2103c8;if(!_0x5a1c2d||_0x5a1c2d[_0x19672b(0xb8)]('/'))continue;if(_0x5a1c2d['split']('/')[_0x19672b(0x8a)](_0x2e1091=>_0x2e1091==='..'))continue;_0x1dd537['push'](_0x5a1c2d);}return _0x1dd537;}export function summarizeVerifyFeatureRangerwrightCliCommandAvailability(_0x5b880a){const _0x170f72=_0xc16f,_0x2e0cd8={'wtiss':function(_0x239f19,_0x782952){return _0x239f19===_0x782952;}},_0x4ba078=[..._0x5b880a[_0x170f72(0xbd)]()][_0x170f72(0xaf)]();let _0x2a1c2b=0x0;for(const _0x244688 of _0x5b880a['values']()){_0x2a1c2b+=_0x244688;}return{'cliCommandCount':_0x2a1c2b,'cliCommandsSeen':_0x4ba078,'noCliCommandsCalled':_0x2e0cd8['wtiss'](_0x2a1c2b,0x0)};}export function createVerifyFeatureRangerwrightCliHooks(_0x2835a0){const _0x252d67=_0xc16f,_0x8e6940={'DLysA':'PostToolUse','vukiF':function(_0x4201ea,_0x48d5f6){return _0x4201ea!==_0x48d5f6;},'poEdt':_0x252d67(0xb3),'kLWQb':_0x252d67(0xda),'xZxIW':function(_0x7b7808,_0x195f65){return _0x7b7808(_0x195f65);},'FGTSA':function(_0x14fa48,_0x31681e,_0x2e4512){return _0x14fa48(_0x31681e,_0x2e4512);},'qtRGf':'PostToolUseFailure','CmqPv':_0x252d67(0xc2),'HScee':_0x252d67(0x8f)},_0x1cac42=new Map(),_0x57a283=async _0x5dfc0b=>{const _0x390c14=_0x252d67;if(_0x5dfc0b[_0x390c14(0xb6)]!==_0x8e6940['DLysA'])return{};const _0x2567b6=_0x5dfc0b;if(_0x8e6940[_0x390c14(0xce)](_0x2567b6['tool_name'],_0x8e6940['poEdt']))return{};const _0x14fc98=_0x2567b6['tool_input'],_0xa28a0=extractBashCommand(_0x14fc98);if(!_0xa28a0)return{};const _0x530b4a=parseRangerwrightCliCommand(_0xa28a0);if(!_0x530b4a)return{};return _0x1cac42['set'](_0x530b4a,(_0x1cac42['get'](_0x530b4a)||0x0)+0x1),_0x2835a0['trackPhaseStart'](_0x8e6940['kLWQb'],{'subcommand':_0x530b4a}),_0x2835a0['trackPhaseEnd'](_0x390c14(0xda),{'subcommand':_0x530b4a,'commandPreview':_0x8e6940[_0x390c14(0x8c)](truncatePreview,_0xa28a0)}),console['log'](_0x390c14(0xa8)+_0x8e6940['FGTSA'](formatRangerwrightCliLog,_0xa28a0,_0x530b4a)),{};},_0x1aee01=async _0x54acb7=>{const _0x534731=_0x252d67;if(_0x8e6940['vukiF'](_0x54acb7[_0x534731(0xb6)],_0x8e6940[_0x534731(0xd8)]))return{};const _0x5d204b=_0x54acb7;if(_0x5d204b[_0x534731(0xba)]!==_0x8e6940[_0x534731(0xa2)])return{};return await _0x2835a0['trackPhaseError'](_0x8e6940['CmqPv'],_0x5d204b['error'],{'transport':_0x8e6940[_0x534731(0xd2)],'toolName':'Bash'}),{};};return{'postToolUseHook':_0x57a283,'postToolUseFailureHook':_0x1aee01,'commandCounts':_0x1cac42};}async function runRangerwrightLifecycleCommand(_0x32e1b1){const _0x1f3c5a=_0xc16f,_0x2a352a={'xvPsZ':function(_0xcdb23d,_0xb6f137){return _0xcdb23d(_0xb6f137);},'Isaek':function(_0x691935,_0x4a885a){return _0x691935??_0x4a885a;},'JcUBh':function(_0x66d2f4,_0x1bc828,_0x5bbd0b){return _0x66d2f4(_0x1bc828,_0x5bbd0b);},'gQMYO':function(_0x33303d,_0x4461e7,_0x5cca26){return _0x33303d(_0x4461e7,_0x5cca26);}},{options:_0x57ab5d,commandArgs:_0x527788,env:_0x3ae6c0,telemetry:_0x2fcc9b,phase:_0xe6ea85,metadata:_0xcb36d6,timeoutMs:_0x519a88}=_0x32e1b1;_0x2fcc9b['trackPhaseStart'](_0xe6ea85,_0xcb36d6);try{const _0x2d4045=await _0x2a352a['xvPsZ'](runRangerwrightCliCommand,{..._0x57ab5d,'commandArgs':_0x527788,'cwd':process[_0x1f3c5a(0xa7)](),'env':_0x3ae6c0,'timeoutMs':_0x2a352a['Isaek'](_0x519a88,RANGERWRIGHT_CLI_COMMAND_TIMEOUT_MS)});_0x2fcc9b['trackPhaseEnd'](_0xe6ea85,{..._0xcb36d6,'subcommand':_0x2d4045[_0x1f3c5a(0xc4)][_0x1f3c5a(0x9a)],'stdoutPreview':_0x2a352a[_0x1f3c5a(0xb9)](truncatePreview,_0x2d4045['stdout'],0x7d0),'stderrPreview':_0x2a352a['gQMYO'](truncatePreview,_0x2d4045['stderr'],0x7d0)});}catch(_0x198616){await _0x2fcc9b['trackPhaseError'](_0xe6ea85,_0x198616,_0xcb36d6);throw _0x198616;}}function _0x2379(){const _0x3f82af=['Bash','...','\x20(on\x20element:\x20<','hook_event_name','dhswM','startsWith','JcUBh','tool_name','matchAll','\x0a\x0aRefs\x20like\x20e37\x20are\x20only\x20valid\x20for\x20the\x20snapshot\x20that\x20produced\x20them.\x20Refresh\x20refs\x20after\x20navigation.\x0a\x0aUse\x20short\x20concrete\x20checkpoints\x20internally:\x20what\x20target\x20is\x20visible,\x20what\x20command\x20changes\x20state,\x20and\x20what\x20evidence\x20is\x20still\x20missing.\x20Issue\x20one\x20browser\x20command\x20at\x20a\x20time.\x20After\x20navigation,\x20validation,\x20or\x20a\x20changed\x20page,\x20inspect\x20before\x20deciding\x20the\x20next\x20action.\x0a\x0aBefore\x20reporting\x20success,\x20compare\x20each\x20required\x20CTA,\x20page\x20purpose,\x20and\x20topic\x20against\x20visible\x20page\x20evidence.\x20A\x20related\x20page\x20does\x20not\x20satisfy\x20a\x20different\x20required\x20topic\x20unless\x20the\x20page\x20text\x20directly\x20supports\x20that\x20topic\x20or\x20an\x20obvious\x20synonym.\x20If\x20required\x20evidence\x20is\x20missing,\x20mismatched,\x20or\x20only\x20inferred\x20from\x20adjacent\x20content,\x20report\x20that\x20plainly\x20and\x20do\x20not\x20mark\x20the\x20task\x20verified.\x0a\x0aFor\x20goals\x20with\x20more\x20than\x20one\x20required\x20condition,\x20use\x20an\x20internal\x20checklist\x20built\x20from\x20the\x20user\x27s\x20exact\x20requested\x20conditions.\x20Verify\x20each\x20checklist\x20item\x20against\x20visible\x20evidence\x20from\x20the\x20latest\x20browser\x20result.\x20If\x20any\x20item\x20lacks\x20direct\x20evidence,\x20report\x20the\x20task\x20as\x20not\x20verified\x20and\x20name\x20the\x20missing\x20item.\x0a\x0aOn\x20forms,\x20fill\x20only\x20visible\x20task-relevant\x20editable\x20fields\x20in\x20the\x20current\x20step\x20before\x20submitting\x20or\x20advancing.\x20Use\x20labels,\x20placeholders,\x20and\x20current\x20page\x20text\x20to\x20decide\x20which\x20fields\x20are\x20required.\x20Do\x20not\x20fill\x20fields\x20that\x20are\x20not\x20visible\x20in\x20the\x20latest\x20snapshot.\x0a\x0aUse\x20one\x20fill\x20command\x20per\x20field.\x20Do\x20not\x20combine\x20multiple\x20fields\x20into\x20one\x20fill\x20command\x20with\x20semicolons.\x0a\x0aIf\x20an\x20inspect-action\x20click\x20returns\x20the\x20same\x20page\x20or\x20shows\x20validation,\x20inspect\x20the\x20current\x20page\x20and\x20fill\x20blank\x20required\x20fields\x20before\x20retrying.\x20Do\x20not\x20repeat\x20the\x20same\x20blocked\x20click\x20unchanged.\x0a\x0aIf\x20a\x20click-and-inspect\x20result\x20keeps\x20the\x20same\x20URL\x20and\x20does\x20not\x20show\x20the\x20intended\x20target,\x20treat\x20it\x20as\x20a\x20no-op.\x20Refresh\x20refs\x20and\x20choose\x20a\x20different\x20visible\x20link,\x20or\x20use\x20back-and-inspect\x20if\x20you\x20need\x20the\x20prior\x20page.\x0a\x0aA\x20page\x20with\x20visible\x20required\x20fields\x20and\x20a\x20next,\x20submit,\x20continue,\x20or\x20confirm\x20control\x20is\x20still\x20actionable.\x20Fill\x20the\x20required\x20fields\x20with\x20values\x20from\x20the\x20task\x20before\x20reporting\x20incomplete\x20or\x20blocked.\x0a\x0a##\x20Critical:\x20Early\x20Error\x20Detection\x0aAfter\x20the\x20first\x20inspect\x20result,\x20check\x20for\x20blocking\x20errors:\x0a-\x20HTTP\x20404,\x20500,\x20400,\x20\x22Not\x20Found\x22,\x20\x22Server\x20Error\x22,\x20or\x20\x22Bad\x20Request\x22\x0a-\x20Framework\x20error\x20pages\x0a-\x20Blank\x20pages\x20with\x20no\x20content\x0a-\x20App\x20crash\x20or\x20error\x20dialogs\x0a\x0aIf\x20any\x20blocking\x20error\x20is\x20visible,\x20return\x20evaluation\x20\x22blocked\x22\x20immediately\x20with\x20a\x20specific\x20reason.\x0a\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\x20are\x20not\x20verified\x0a-\x20BLOCKED:\x20A\x20blocking\x20issue\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.','keys','30Uetaxr','createdAt','-\x20[','1978230kdNEqN','rangerwright_cli_command_failure','3530169XDkfTa','invocation','about:blank','lIiVN','\x20--screenshot-path\x20','stop\x20video\x20recording','click\x20and\x20inspect\x20','length','(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))','You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Rangerwright\x20only.\x20Every\x20browser\x20command\x20must\x20start\x20with\x20this\x20exact\x20literal\x20command\x20prefix:\x0a\x0a','back-and-inspect','vukiF','\x20open-and-inspect\x20','click-and-inspect','\x20>\x20','HScee','\x20inspect\x20--screenshot-path\x20','uPvsj','url','split','rangerwright_cli_video_stop','qtRGf','):\x20\x22','rangerwright_cli_command','\x0a\x0a##\x20Rangerwright\x20Instructions\x0aUse\x20Bash\x20and\x20Rangerwright\x20only.\x0a\x0aEvery\x20browser\x20command\x20must\x20start\x20with\x20this\x20exact\x20literal\x20command\x20prefix:\x0a\x0a','short','\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20authenticate\x20using\x20these\x20steps:\x0a','domRef','KdejS','key_02_learn-more.png','some','3752mqmrjA','xZxIW','open\x20and\x20inspect\x20','ZTMxD','rangerwright-cli','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','11735yHwbPW','fill-and-inspect','168IlULeh','\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\x20in\x20addressedCommentIds.\x0a\x0a','187654qDoNdK','slice','eikca','YqTrb','32zJPNNb','subcommand','notes','`\x0a2.\x20Use\x20the\x20returned\x20JSON\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20ref.\x0a3.\x20Run\x20`','cOVbU','Reviewer','authorEmail','commandPrefix','inspect','poEdt','GPCGK','\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a','.\x0aThe\x20app\x20is\x20already\x20running\x20and\x20connected.\x20Start\x20with\x20inspect\x20instead\x20of\x20opening\x20a\x20URL.','687576CcDMBx','cwd','[rangerwright-cli]\x20','5816oFScHH','stop\x20tracing','\x20click-and-inspect\x20e37\x20--screenshot-path\x20','lbmfS','rAzHp','authorName','sort','\x0a-\x20You\x20may\x20ONLY\x20navigate\x20to\x20paths\x20under\x20this\x20base\x20URL.\x0a-\x20DO\x20NOT\x20navigate\x20to\x20any\x20different\x20domain,\x20host,\x20or\x20port.\x0a-\x20If\x20documentation\x20or\x20code\x20diffs\x20suggest\x20a\x20path\x20exists,\x20navigate\x20to\x20it\x20only\x20under\x20this\x20base\x20URL.','key_99_final-state.png','description'];_0x2379=function(){return _0x3f82af;};return _0x2379();}export async function finalizeVerifyFeatureRangerwrightCliSession(_0xa49e57){const _0x2a3b53=_0xc16f,_0x8dd360={'rAzHp':'tracing-stop','lIiVN':_0x2a3b53(0xd7),'lRROX':'close','NdkPF':function(_0x44e47e,_0x394237){return _0x44e47e(_0x394237);}},{telemetry:_0x3abb39,rangerwrightOptions:_0x4ac50e,env:_0x2ea2a9,transportMetadata:_0x133238}=_0xa49e57,_0x371a5f=[{'phase':'rangerwright_cli_tracing_stop','commandArgs':[_0x8dd360[_0x2a3b53(0xad)]]},{'phase':_0x8dd360[_0x2a3b53(0xc6)],'commandArgs':['video-stop']},{'phase':'rangerwright_cli_close','commandArgs':[_0x8dd360['lRROX']]}];for(const _0x4bab6d of _0x371a5f){try{await _0x8dd360['NdkPF'](runRangerwrightLifecycleCommand,{'options':_0x4ac50e,'commandArgs':[..._0x4bab6d['commandArgs']],'env':_0x2ea2a9,'telemetry':_0x3abb39,'phase':_0x4bab6d['phase'],'metadata':_0x133238});}catch{}}}
|
|
@@ -230,6 +230,14 @@ When completing your work or ending the session, your final message to the user
|
|
|
230
230
|
|
|
231
231
|
---
|
|
232
232
|
|
|
233
|
+
# Graduating a feature review into a durable test
|
|
234
|
+
|
|
235
|
+
Feature reviews are your inner loop: they verify a change against the app you're running locally, for you, right now. They are not permanent tests, and they do not run for the rest of the team.
|
|
236
|
+
|
|
237
|
+
When a change is shipping and you want it protected going forward — a test that runs continuously across the team against your deployed environment — that's a Ranger **test** (testgen), created through the Ranger MCP, not the CLI. Testgen runs in Ranger's cloud against a deployed, reachable environment, so offer it **once the change is deployed**, not while it's only on localhost. If the testgen tools are available in this session, offer to set that up after the feature review is verified; otherwise point the user to them.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
233
241
|
# Quick Reference
|
|
234
242
|
|
|
235
243
|
| Command | Purpose |
|