@ranger-testing/ranger-cli 3.1.7-alpha.a5be4ca-60 → 3.1.7-alpha.be2850d-64
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 +5 -14
|
@@ -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(_0x28ec65,_0x2f7978){const _0x45cd62=_0x3790,_0x278990=_0x28ec65();while(!![]){try{const _0x32d06c=parseInt(_0x45cd62(0x100))/0x1+parseInt(_0x45cd62(0x129))/0x2*(parseInt(_0x45cd62(0xf3))/0x3)+-parseInt(_0x45cd62(0x137))/0x4+parseInt(_0x45cd62(0x141))/0x5+parseInt(_0x45cd62(0x11e))/0x6*(-parseInt(_0x45cd62(0x136))/0x7)+parseInt(_0x45cd62(0xda))/0x8*(-parseInt(_0x45cd62(0xcf))/0x9)+parseInt(_0x45cd62(0x132))/0xa;if(_0x32d06c===_0x2f7978)break;else _0x278990['push'](_0x278990['shift']());}catch(_0x1d983f){_0x278990['push'](_0x278990['shift']());}}}(_0x1431,0x27d31));import{mkdir,readFile,readdir,rename,stat}from'fs/promises';function _0x1431(){const _0x3a097b=['\x20open`,\x20then\x20`','423bBwbMV','screenshot','Vdecv','vNuYP','EEcWe','\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',']\x20**','\x20snapshot\x20--filename\x20','pop','textContent','open\x20','31448XauiPg','`\x0a5.\x20Read\x20the\x20snapshot\x20file\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20reference\x0a6.\x20Run\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','Bash','error','stderr','playwright-cli','capture\x20key\x20step\x20`','notes','map','open\x20browser','\x20/\x20','aXjod','BxzKb','CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20','ZbPDL','push','capture\x20step\x20`','`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a6.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`','playwright_cli_video_stop','log','vVMbP','\x0a\x0a##\x20Additional\x20Notes\x0a','the\x20primary\x20actor','capture\x20screenshot','69TVnpdS','`\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`','xUWGH','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','-\x20[','qBExu','Nyoow','QPEdO','##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20(Chrome\x20DevTools\x20Protocol)\x20at\x20','\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a5.\x20Run\x20`','trace.zip','TsAVL','254344qbGJdk','commandArgs','Reviewer','UKaxH','pROFE','DEBUG','name','03_result-visible.png','jRxhK','WyKAr','canonicalFlow','`\x20using\x20absolute\x20paths\x20only.\x20Do\x20not\x20use\x20relative\x20filenames.\x0a4.\x20Take\x20a\x20snapshot\x20with\x20`','`\x20(e.g.\x20`','\x22,\x20\x22','02_learn-more.yml','WGSFP','trackPhaseError','\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','join','kdgTx','replace','start\x20video\x20recording','`:\x20\x22','stdout','artifactDir','capture\x20snapshot\x20`','\x20>\x20','snapshot','\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','mtimeMs','168372EprUYu','subcommand','\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','open\x20new\x20tab','select\x20tab\x20','\x0a\x0a##\x20Browser\x20Command\x20Reference\x0aUse\x20Bash\x20to\x20run\x20Playwright\x20CLI\x20commands\x20with\x20this\x20exact\x20prefix:\x0a`','>\x20\x22','tracing-stop','TYEMW','actorPrefixes','open','9908wqhInF','\x20open\x20','capture\x20snapshot','open\x20new\x20tab\x20','ijCVO','trace.trace.zip','[ranger-verification-agent]\x20','domRef','slice','2857640ZDJPNJ','match','session-recording.webm','env','21LbECEo','925096doGgcB','selector','get','set','`\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`','test','\x0a\x0a1.\x20Run\x20`','\x20tracing-start`,\x20then\x20`','`\x0a-\x20`run-code\x20\x22await\x20page.waitForTimeout(1000)\x22`\x20for\x20waits\x20or\x20small\x20custom\x20checks','split','46440bbGbNe','stop\x20video\x20recording','sort','\x20(on\x20element:\x20<','description','\x20screenshot\x20--filename\x20','createdAt','You\x20are\x20testing\x20browser\x20automation.\x20Your\x20task\x20is\x20simple:\x0a\x0aUse\x20Bash\x20and\x20Playwright\x20CLI\x20only.\x20The\x20browser\x20command\x20prefix\x20is:\x0a','video-start','HerhY','tool_name','/01_state.png`).','`\x20style\x20absolute\x20paths\x20at\x20key\x20moments.\x0a8.\x20If\x20you\x20need\x20waits\x20or\x20custom\x20assertions,\x20use\x20`','tool_call','trackPhaseStart','**\x20(','sUrDH','srUSL','close','trackPhaseEnd','--filename=','length','PostToolUse','unaddressedComments','toLocaleDateString','element','\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','prefix','\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.','(?:^|\x5cs)','phase'];_0x1431=function(){return _0x3a097b;};return _0x1431();}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 _0x3790(_0xe04b1a,_0x46cf02){_0xe04b1a=_0xe04b1a-0xc9;const _0x143187=_0x1431();let _0x379087=_0x143187[_0xe04b1a];return _0x379087;}function truncatePreview(_0x219667,_0xa10bad=PLAYWRIGHT_CLI_PREVIEW_LIMIT){const _0x1062ed=_0x3790,_0x8d85c={'jRxhK':function(_0x34e1d0,_0x375a12){return _0x34e1d0>_0x375a12;},'CUGAH':function(_0x5c77d6,_0xf302bf){return _0x5c77d6+_0xf302bf;}};return _0x8d85c[_0x1062ed(0x108)](_0x219667['length'],_0xa10bad)?_0x8d85c['CUGAH'](_0x219667['slice'](0x0,_0xa10bad),'...'):_0x219667;}function buildCliArtifactPath(_0x593d02,_0x2ecc48){return join(_0x593d02,_0x2ecc48);}function toStepDisplayName(_0x4c3fce){const _0x59cb39=_0x3790,_0x2fb0f5=basename(_0x4c3fce)['replace'](/\.(?:png|ya?ml)$/i,'')[_0x59cb39(0x114)](/^key_/i,'')[_0x59cb39(0x114)](/^\d+_/,'')['replace'](/-/g,'\x20');return{'name':_0x2fb0f5,'isKeyStep':/^key_/i[_0x59cb39(0x13c)](basename(_0x4c3fce))};}function extractShellValue(_0x21667d){if(!_0x21667d)return null;return _0x21667d[0x1]??_0x21667d[0x2]??_0x21667d[0x3]??null;}function extractFilenameOption(_0x5c3524){const _0x2adcbe=_0x3790;return extractShellValue(_0x5c3524[_0x2adcbe(0x133)](/--filename(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function extractFirstCommandArgument(_0x30a255,_0x56f567){const _0x217a03=_0x3790,_0x29711d={'ZjPIT':'\x5c$&'},_0xd95e6b=_0x56f567[_0x217a03(0x114)](/[.*+?^${}()|[\]\\]/g,_0x29711d['ZjPIT']);return extractShellValue(_0x30a255[_0x217a03(0x133)](new RegExp(_0x217a03(0xcc)+_0xd95e6b+'(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))')));}function formatCommandTarget(_0x44ef0a){const _0x8e7f19=_0x3790;if(!_0x44ef0a)return'target';if(/^e\d+$/i[_0x8e7f19(0x13c)](_0x44ef0a))return'ref\x20'+_0x44ef0a;return JSON['stringify'](truncatePreview(_0x44ef0a,0x78));}function formatPlaywrightCliLog(_0x1207c6,_0x2fce51){const _0x291e0b=_0x3790,_0x402f57={'nrpOF':_0x291e0b(0xe4),'EWkMJ':'tracing-start','xUdFM':'start\x20tracing','kdgTx':_0x291e0b(0x125),'rhlWM':_0x291e0b(0x149),'Nyoow':'video-stop','FYRQS':function(_0x30fc4c,_0xe545a2){return _0x30fc4c(_0xe545a2);},'kkTkT':_0x291e0b(0x12b),'JMKPX':function(_0x24c095,_0x53ead0){return _0x24c095(_0x53ead0);},'srUSL':'check','lAlGH':function(_0x2372b8,_0xb2172d){return _0x2372b8(_0xb2172d);},'sYGDA':function(_0x773fc3,_0x1a124b){return _0x773fc3(_0x1a124b);},'ijCVO':function(_0x393b64,_0x51bc5f,_0x394fc2){return _0x393b64(_0x51bc5f,_0x394fc2);},'UKaxH':'press','fhkYq':'run-code','vVMbP':'run\x20custom\x20Playwright\x20code','zskVK':'select\x20tab'};switch(_0x2fce51){case _0x291e0b(0x128):{const _0x2f9c22=extractFirstCommandArgument(_0x1207c6,_0x2fce51);return _0x2f9c22?_0x291e0b(0xd9)+_0x2f9c22:_0x402f57['nrpOF'];}case _0x402f57['EWkMJ']:return _0x402f57['xUdFM'];case _0x402f57[_0x291e0b(0x113)]:return'stop\x20tracing';case _0x402f57['rhlWM']:return _0x291e0b(0x115);case _0x402f57[_0x291e0b(0xf9)]:return _0x291e0b(0x142);case'snapshot':{const _0x2f0d32=_0x402f57['FYRQS'](extractFilenameOption,_0x1207c6);if(!_0x2f0d32)return _0x402f57['kkTkT'];const {name:_0x273c7e}=toStepDisplayName(_0x2f0d32);return _0x291e0b(0x119)+_0x273c7e+'`';}case _0x291e0b(0xd0):{const _0x36719d=extractFilenameOption(_0x1207c6);if(!_0x36719d)return _0x291e0b(0xf2);const {name:_0xc6ca0e,isKeyStep:_0x37e2d4}=_0x402f57['JMKPX'](toStepDisplayName,_0x36719d);return _0x37e2d4?_0x291e0b(0xe1)+_0xc6ca0e+'`':_0x291e0b(0xeb)+_0xc6ca0e+'`';}case'click':return'click\x20'+_0x402f57['JMKPX'](formatCommandTarget,extractFirstCommandArgument(_0x1207c6,_0x2fce51));case _0x402f57[_0x291e0b(0x152)]:return'check\x20'+_0x402f57['lAlGH'](formatCommandTarget,extractFirstCommandArgument(_0x1207c6,_0x2fce51));case'fill':return'fill\x20'+_0x402f57['sYGDA'](formatCommandTarget,_0x402f57[_0x291e0b(0x12d)](extractFirstCommandArgument,_0x1207c6,_0x2fce51));case _0x402f57[_0x291e0b(0x103)]:return'press\x20'+formatCommandTarget(extractFirstCommandArgument(_0x1207c6,_0x2fce51));case _0x402f57['fhkYq']:return _0x402f57[_0x291e0b(0xef)];case'tab-new':{const _0x7db7c5=_0x402f57['ijCVO'](extractFirstCommandArgument,_0x1207c6,_0x2fce51);return _0x7db7c5?_0x291e0b(0x12c)+_0x7db7c5:_0x291e0b(0x121);}case'tab-select':{const _0x3bb80f=extractFirstCommandArgument(_0x1207c6,_0x2fce51);return _0x3bb80f?_0x291e0b(0x122)+_0x3bb80f:_0x402f57['zskVK'];}default:return _0x2fce51;}}function extractPlaywrightCliToolDescription(_0x536f1a){const _0x5bf7a3=_0x3790,_0xfef4fa={'ssnYO':function(_0x4eb77a,_0xbf755e){return _0x4eb77a!==_0xbf755e;}},_0xccc4f8=_0x536f1a['description'];if(_0xfef4fa['ssnYO'](typeof _0xccc4f8,'string'))return null;const _0x24da89=_0xccc4f8['trim']()[_0x5bf7a3(0x114)](/\s+/g,'\x20');return _0x24da89['length']>0x0?_0x24da89:null;}export function formatPlaywrightCliConsoleLogMessage(_0x295a3f,_0x421282,_0xb80500){const _0x4d585f=_0x3790,_0x164e88=formatPlaywrightCliLog(_0x421282,_0xb80500),_0x228218=extractPlaywrightCliToolDescription(_0x295a3f);if(!_0x228218)return'[playwright-cli]\x20'+_0x164e88;if(process[_0x4d585f(0x135)][_0x4d585f(0x105)])return'[ranger-verification-agent]\x20'+_0x228218+'\x20('+_0x164e88+')';return _0x4d585f(0x12f)+_0x228218;}export function buildVerifyFeatureCliDebugPrompt(_0x1e6a02,_0x190e79){const _0x3eb22d=_0x3790,_0x854a96={'KQVlN':'00_mozilla-homepage.yml','rfILC':function(_0x43f8f4,_0x2f4cc3,_0x2750c0){return _0x43f8f4(_0x2f4cc3,_0x2750c0);},'dVQpp':'01_mozilla-homepage.png','HerhY':'03_learn-more.png','BHSPC':function(_0x8ba3e9,_0x255811){return _0x8ba3e9(_0x255811);},'pROFE':function(_0x3c36b8,_0x1074e4){return _0x3c36b8(_0x1074e4);},'WiMpg':function(_0x4450f0,_0x352d2e){return _0x4450f0(_0x352d2e);}},_0x12d2ea=buildCliArtifactPath(_0x190e79,_0x854a96['KQVlN']),_0x4b6c9b=_0x854a96['rfILC'](buildCliArtifactPath,_0x190e79,_0x854a96['dVQpp']),_0x2abede=buildCliArtifactPath(_0x190e79,_0x3eb22d(0x10e)),_0x14997e=_0x854a96['rfILC'](buildCliArtifactPath,_0x190e79,_0x854a96[_0x3eb22d(0x14a)]),_0x10cbcc=_0x854a96['BHSPC'](quoteShellArg,_0x12d2ea),_0x254b68=_0x854a96[_0x3eb22d(0x104)](quoteShellArg,_0x4b6c9b),_0x4f53ef=_0x854a96['WiMpg'](quoteShellArg,_0x2abede),_0x4ccc81=quoteShellArg(_0x14997e);return _0x3eb22d(0x148)+_0x1e6a02+_0x3eb22d(0x13d)+_0x1e6a02+'\x20open\x20https://www.mozilla.org`\x0a2.\x20Run\x20`'+_0x1e6a02+'\x20tracing-start`\x0a3.\x20Run\x20`'+_0x1e6a02+'\x20video-start`\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x190e79+_0x3eb22d(0xfd)+_0x1e6a02+'\x20snapshot\x20--filename\x20'+_0x10cbcc+_0x3eb22d(0xdb)+_0x1e6a02+'\x20screenshot\x20--filename\x20'+_0x254b68+'`\x0a7.\x20Click\x20the\x20\x22Learn\x20More\x22\x20link\x20with\x20Playwright\x20CLI\x0a8.\x20Run\x20`'+_0x1e6a02+_0x3eb22d(0xd6)+_0x4f53ef+'`\x0a9.\x20Run\x20`'+_0x1e6a02+_0x3eb22d(0x146)+_0x4ccc81+'`\x0a10.\x20Return\x20immediately\x20with\x20the\x20structured\x20output\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.';}export function buildVerifyFeatureCliPrompt(_0x126b89){const _0x119032=_0x3790,_0x5389f8={'izEsS':'numeric','sUrDH':_0x119032(0x11a),'TsAVL':_0x119032(0x15a),'mwMma':'01_initial.yml','XBRZj':function(_0x243af2,_0x34f1d9,_0x1d16e2){return _0x243af2(_0x34f1d9,_0x1d16e2);},'HGkWS':function(_0x22d144,_0x245831){return _0x22d144>_0x245831;},'WGSFP':function(_0x4d410a,_0x729c8f){return _0x4d410a(_0x729c8f);},'vNuYP':_0x119032(0xe5),'DPXtk':function(_0x2cf893,_0x446de6,_0x552208){return _0x2cf893(_0x446de6,_0x552208);},'QPEdO':'02_button-clicked.png','rlyqN':_0x119032(0x107),'JjMeR':'key_04_success-state.png'},{checklistItem:_0x1d3e43,itemFeedback:_0x19ef0d,taskDescription:_0xfa11ca,cliCommandPrefix:_0xd1563c,cliArtifactDir:_0x1a341d,isCdpMode:_0x218b46,url:_0x3cb76d,cdpEndpoint:_0x266ef7,loginInstructions:_0x379dbf}=_0x126b89,_0x182946=buildCliArtifactPath(_0x1a341d,_0x5389f8['mwMma']),_0x488890=_0x5389f8['XBRZj'](buildCliArtifactPath,_0x1a341d,'02_state.yml'),_0x55a47e=buildCliArtifactPath(_0x1a341d,'key_03_success-state.png'),_0x5ee868=buildCliArtifactPath(_0x1a341d,'01_initial-state.png'),_0x51c29a=quoteShellArg(_0x182946),_0x48ac38=quoteShellArg(_0x488890),_0x3b8644=quoteShellArg(_0x55a47e),_0x3662a0=quoteShellArg(_0x5ee868),_0x2e0880=_0x1d3e43['notes']?_0x119032(0xf0)+_0x1d3e43[_0x119032(0xe2)]:'';let _0x450e1f='';if(_0x19ef0d&&_0x5389f8['HGkWS'](_0x19ef0d[_0x119032(0x158)][_0x119032(0x156)],0x0)){const _0x49c2e7=_0x19ef0d[_0x119032(0x158)][_0x119032(0xe3)](_0x24328c=>{const _0x1e7949=_0x119032,_0x5c54d6=new Date(_0x24328c[_0x1e7949(0x147)])[_0x1e7949(0x159)]('en-US',{'month':'short','day':_0x5389f8['izEsS']}),_0x164f70=_0x24328c['authorName']||_0x24328c['authorEmail']||_0x1e7949(0x102),_0x15a044=_0x24328c[_0x1e7949(0x130)]?_0x1e7949(0x144)+(_0x24328c['domRef'][_0x1e7949(0x138)][_0x1e7949(0x140)](_0x5389f8[_0x1e7949(0x151)])[_0x1e7949(0xd7)]()?.[_0x1e7949(0x140)](':')[0x0]||_0x5389f8[_0x1e7949(0xff)])+_0x1e7949(0x124)+(_0x24328c['domRef'][_0x1e7949(0xd8)]||'')[_0x1e7949(0x131)](0x0,0x32)+'\x22)':'';return _0x1e7949(0xf7)+_0x24328c['id']+_0x1e7949(0xd5)+_0x164f70+_0x1e7949(0x150)+_0x5c54d6+'):\x20\x22'+_0x24328c['content']+'\x22'+_0x15a044;})['join']('\x0a');_0x450e1f='\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'+_0x49c2e7;}const _0x45899f=_0x19ef0d?.['canonicalFlow']?_0x119032(0xfc)+_0x19ef0d[_0x119032(0x10a)]:'',_0x189c27=_0x218b46?_0x119032(0xfb)+_0x266ef7+'.\x0aThis\x20is\x20NOT\x20a\x20web\x20app\x20—\x20there\x20is\x20no\x20URL\x20to\x20navigate\x20to.\x20The\x20app\x20is\x20already\x20running\x20and\x20connected.':_0x119032(0xe8)+_0x3cb76d+_0x119032(0xdc),_0x1b8dfb=_0x3cb76d?_0x5389f8[_0x119032(0x10f)](quoteShellArg,_0x3cb76d):'',_0x344160=_0x218b46?'##\x20Instructions\x0a1.\x20Use\x20Bash\x20plus\x20Playwright\x20CLI\x20only.\x20Do\x20NOT\x20call\x20MCP\x20browser\x20tools.\x0a2.\x20Start\x20by\x20running\x20`'+_0xd1563c+_0x119032(0xce)+_0xd1563c+'\x20tracing-start`,\x20then\x20`'+_0xd1563c+'\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x1a341d+_0x119032(0x10b)+_0xd1563c+_0x119032(0xd6)+_0x51c29a+_0x119032(0x13b)+_0xd1563c+_0x119032(0x146)+_0x3662a0+_0x119032(0xec)+_0xd1563c+'\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`'+_0xd1563c+_0x119032(0x12a)+_0x1b8dfb+'`,\x20then\x20`'+_0xd1563c+_0x119032(0x13e)+_0xd1563c+'\x20video-start`.\x0a3.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x1a341d+_0x119032(0x10b)+_0xd1563c+_0x119032(0xd6)+_0x51c29a+_0x119032(0xf4)+_0xd1563c+'\x20screenshot\x20--filename\x20'+_0x3662a0+_0x119032(0x14d)+_0xd1563c+_0x119032(0x11c),_0x279e64=_0x218b46?'\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.':_0x119032(0xcb),_0x19b7af=_0x379dbf?'\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20you\x20MUST\x20authenticate\x20using\x20these\x20steps:\x0a'+_0x379dbf+'\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.':'',_0x25351b=_0x126b89['actorPrefixes']&&_0x126b89['actorPrefixes']['length']>=0x2?_0x119032(0x120)+_0x126b89['actorPrefixes'][_0x119032(0xe3)](_0x195740=>'-\x20As\x20'+_0x195740['label']+',\x20…\x20\x20→\x20\x20`'+_0x195740['prefix']+'`\x20<subcommand>\x20…\x20\x20and\x20save\x20this\x20actor\x27s\x20screenshots/snapshots\x20UNDER\x20`'+_0x195740['artifactDir']+_0x119032(0x10c)+_0x195740[_0x119032(0xca)]+_0x119032(0x146)+_0x195740[_0x119032(0x118)]+_0x119032(0x14c))['join']('\x0a')+'\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('+_0x126b89[_0x119032(0x127)]['map'](_0x178f37=>'\x22As\x20'+_0x178f37['label']+',\x20…\x22')[_0x119032(0x112)](_0x5389f8[_0x119032(0xd2)])+_0x119032(0xc9)+(_0x126b89['actorPrefixes'][0x0]?.['label']??_0x119032(0xf1))+_0x119032(0x15b):'';return _0x119032(0xf6)+_0x1d3e43[_0x119032(0x145)]+_0x2e0880+_0x450e1f+_0x45899f+'\x0a\x0a##\x20Task\x20to\x20Execute\x0a'+_0xfa11ca+'\x0a\x0a'+_0x189c27+_0x19b7af+'\x0a\x0a'+_0x344160+_0x119032(0x123)+_0xd1563c+'`\x0a\x0a-\x20Write\x20all\x20artifacts\x20under\x20`'+_0x1a341d+'`\x0a-\x20`snapshot\x20--filename\x20'+_0x48ac38+'`\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'+_0x3b8644+_0x119032(0x13f)+_0x25351b+'\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`'+_0x1a341d+_0x119032(0x116)+_0x5ee868+_0x119032(0x10d)+_0x5389f8['DPXtk'](buildCliArtifactPath,_0x1a341d,_0x5389f8[_0x119032(0xfa)])+'\x22,\x20\x22'+buildCliArtifactPath(_0x1a341d,_0x5389f8['rlyqN'])+_0x119032(0xd4)+buildCliArtifactPath(_0x1a341d,_0x5389f8['JjMeR'])+_0x119032(0x111)+_0x279e64+'\x0a##\x20Evaluation\x20Criteria\x0a-\x20VERIFIED:\x20The\x20task\x20completed\x20successfully\x20and\x20the\x20scenario\x20requirements\x20are\x20fully\x20met\x0a-\x20PARTIAL:\x20The\x20task\x20partially\x20completed\x20but\x20some\x20aspects\x20of\x20the\x20scenario\x20are\x20not\x20verified\x0a-\x20BLOCKED:\x20A\x20blocking\x20issue\x20(bug,\x20error,\x20missing\x20feature)\x20prevents\x20completion\x0a-\x20FAILED:\x20The\x20task\x20could\x20not\x20be\x20completed\x20due\x20to\x20errors\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format\x20with\x20your\x20evaluation.';}export function summarizeVerifyFeatureCliCommandAvailability(_0x547927){const _0x52d5f1=_0x3790,_0x444530={'vygFt':function(_0x5f27,_0x1ee979){return _0x5f27===_0x1ee979;}},_0x5e78d5=[..._0x547927['keys']()][_0x52d5f1(0x143)]();let _0x4910b3=0x0;for(const _0x5c67e2 of _0x547927['values']()){_0x4910b3+=_0x5c67e2;}return{'cliCommandCount':_0x4910b3,'cliCommandsSeen':_0x5e78d5,'noCliCommandsCalled':_0x444530['vygFt'](_0x4910b3,0x0)};}export function createVerifyFeatureCliHooks(_0x444027){const _0x4900da=_0x3790,_0x34d6fb={'WyKAr':_0x4900da(0x157),'LXDND':function(_0x3c3827,_0x102c5b){return _0x3c3827!==_0x102c5b;},'avFza':function(_0x3da577,_0x3799bf){return _0x3da577(_0x3799bf);},'KrGqo':function(_0x2d5eb8,_0xc06301){return _0x2d5eb8(_0xc06301);},'IaobA':_0x4900da(0x14e),'ZbPDL':_0x4900da(0x11b),'EEcWe':'PostToolUseFailure','xUWGH':function(_0x16de3a,_0x523677){return _0x16de3a!==_0x523677;},'aXjod':'tool_failure','YTYTF':_0x4900da(0xe0)},_0x401fa6=new Map(),_0xe6399d=async _0x1d2262=>{const _0x4f9ebb=_0x4900da;if(_0x1d2262['hook_event_name']!==_0x34d6fb[_0x4f9ebb(0x109)])return{};const _0x1990d0=_0x1d2262;if(_0x34d6fb['LXDND'](_0x1990d0['tool_name'],'Bash'))return{};const _0x3cd259=_0x1990d0['tool_input'],_0x2a515e=_0x34d6fb['avFza'](extractBashCommand,_0x3cd259);if(!_0x2a515e)return{};const _0x523358=_0x34d6fb['KrGqo'](parsePlaywrightCliCommand,_0x2a515e);if(!_0x523358)return{};return _0x401fa6[_0x4f9ebb(0x13a)](_0x523358,(_0x401fa6[_0x4f9ebb(0x139)](_0x523358)||0x0)+0x1),_0x444027['trackPhaseStart'](_0x34d6fb['IaobA'],{'transport':'playwright-cli','toolName':_0x523358}),_0x444027['trackPhaseEnd']('tool_call',{'transport':_0x4f9ebb(0xe0),'toolName':_0x523358,'bashCommandPreview':truncatePreview(_0x2a515e)}),_0x523358!==_0x34d6fb[_0x4f9ebb(0xe9)]&&console[_0x4f9ebb(0xee)](formatPlaywrightCliConsoleLogMessage(_0x3cd259,_0x2a515e,_0x523358)),{};},_0x32fc04=async _0x1ab955=>{const _0x5b5477=_0x4900da;if(_0x1ab955['hook_event_name']!==_0x34d6fb[_0x5b5477(0xd3)])return{};const _0x39e088=_0x1ab955;if(_0x34d6fb[_0x5b5477(0xf5)](_0x39e088[_0x5b5477(0x14b)],_0x5b5477(0xdd)))return{};return await _0x444027[_0x5b5477(0x110)](_0x34d6fb[_0x5b5477(0xe6)],_0x39e088[_0x5b5477(0xde)],{'transport':_0x34d6fb['YTYTF'],'toolName':'Bash'}),{};};return{'postToolUseHook':_0xe6399d,'postToolUseFailureHook':_0x32fc04,'commandCounts':_0x401fa6};}async function runPlaywrightCliLifecycleCommand(_0x5ee696){const _0x14f1f0=_0x3790,{sessionId:_0x3a7d6d,configPath:_0x18ed34,commandArgs:_0x1f0841,env:_0x8adbf9,telemetry:_0x1c5edf,phase:_0x4b08e9,metadata:_0x5a1fbd,timeoutMs:_0x245aa2}=_0x5ee696;_0x1c5edf[_0x14f1f0(0x14f)](_0x4b08e9,_0x5a1fbd);try{const _0x1ad13f=await runPlaywrightCliCommand({'sessionId':_0x3a7d6d,'configPath':_0x18ed34,'commandArgs':_0x1f0841,'cwd':process['cwd'](),'env':_0x8adbf9,'timeoutMs':_0x245aa2??PLAYWRIGHT_CLI_COMMAND_TIMEOUT_MS});_0x1c5edf[_0x14f1f0(0x154)](_0x4b08e9,{..._0x5a1fbd,'subcommand':_0x1ad13f['invocation'][_0x14f1f0(0x11f)],'stdoutPreview':truncatePreview(_0x1ad13f[_0x14f1f0(0x117)],0x7d0),'stderrPreview':truncatePreview(_0x1ad13f[_0x14f1f0(0xdf)],0x7d0)});}catch(_0x32613f){await _0x1c5edf[_0x14f1f0(0x110)](_0x4b08e9,_0x32613f,_0x5a1fbd);throw _0x32613f;}}export async function finalizeVerifyFeatureCliSession(_0x553409){const _0x3bc88f=_0x3790,_0xbfb66e={'qBExu':'tracing-stop','Vdecv':'video-stop','bnMsd':function(_0x2fba81,_0x153cbd,_0x2ac50e){return _0x2fba81(_0x153cbd,_0x2ac50e);},'BepWU':'playwright_cli_close'},{telemetry:_0x541c78,sessionId:_0x53eef3,configPath:_0x38962c,cliArtifactDir:_0x39b9d2,env:_0x2dbc8b,transportMetadata:_0x1359fb}=_0x553409,_0x26ddfe=[{'phase':'playwright_cli_tracing_stop','commandArgs':[_0xbfb66e[_0x3bc88f(0xf8)]]},{'phase':_0x3bc88f(0xed),'commandArgs':[_0xbfb66e[_0x3bc88f(0xd1)],_0x3bc88f(0x155)+_0xbfb66e['bnMsd'](buildCliArtifactPath,_0x39b9d2,_0x3bc88f(0x134))]},{'phase':_0xbfb66e['BepWU'],'commandArgs':[_0x3bc88f(0x153)]}];for(const _0x4e921b of _0x26ddfe){try{await runPlaywrightCliLifecycleCommand({'sessionId':_0x53eef3,'configPath':_0x38962c,'commandArgs':[..._0x4e921b[_0x3bc88f(0x101)]],'env':_0x2dbc8b,'telemetry':_0x541c78,'phase':_0x4e921b[_0x3bc88f(0xcd)],'metadata':_0x1359fb});}catch{}}}export async function loadVerifyFeatureCliTraceUploadArtifact(_0x475f6f){const _0x23ef5a=_0x3790,_0x403e69={'AKxBG':function(_0x54b7c6,_0x20f9d9){return _0x54b7c6(_0x20f9d9);}},_0x4c7052=[_0x23ef5a(0xfe),_0x23ef5a(0x12e)];for(const _0x2eeb03 of _0x4c7052){const _0x647a16=join(_0x475f6f,_0x2eeb03);try{return{'buffer':await _0x403e69['AKxBG'](readFile,_0x647a16),'source':_0x647a16};}catch{}}return null;}export async function rehomeVerifyFeatureCliArtifacts(_0x8ec622){const _0x2ada9e=_0x3790,_0x50b00f={'BxzKb':function(_0x562e6b,_0x5aa17f,_0x107e63){return _0x562e6b(_0x5aa17f,_0x107e63);},'xWzRp':function(_0x457f40,_0x360518,_0xc5a66e){return _0x457f40(_0x360518,_0xc5a66e);},'rLqGn':function(_0xcfe14b,_0x36872f){return _0xcfe14b(_0x36872f);},'TYEMW':function(_0x4b49b5,_0x20eb72){return _0x4b49b5<_0x20eb72;},'geKVa':function(_0x27097d,_0x2174ff){return _0x27097d===_0x2174ff;},'mDtBR':function(_0x276b58,_0x1fbdad,_0x544b4e){return _0x276b58(_0x1fbdad,_0x544b4e);}},{cwd:_0x597e2f,cliArtifactDir:_0xc897a7,startTime:_0x3ecc1c}=_0x8ec622,_0x1ebd1a=[];await _0x50b00f['BxzKb'](mkdir,_0xc897a7,{'recursive':!![]});const _0x2e8087=await _0x50b00f[_0x2ada9e(0xe7)](readdir,_0x597e2f,{'withFileTypes':!![]});for(const _0x506e8c of _0x2e8087){if(!_0x506e8c['isFile']()||!VERIFY_FEATURE_CLI_ARTIFACT_FILE_PATTERN['test'](_0x506e8c['name']))continue;const _0x52e9df=_0x50b00f['xWzRp'](join,_0x597e2f,_0x506e8c['name']),_0x324deb=await _0x50b00f['rLqGn'](stat,_0x52e9df);if(_0x50b00f[_0x2ada9e(0x126)](_0x324deb[_0x2ada9e(0x11d)]+0x7d0,_0x3ecc1c))continue;const _0x2bd85f=buildCliArtifactPath(_0xc897a7,_0x506e8c[_0x2ada9e(0x106)]);if(_0x50b00f['geKVa'](_0x52e9df,_0x2bd85f))continue;await _0x50b00f['mDtBR'](rename,_0x52e9df,_0x2bd85f),_0x1ebd1a[_0x2ada9e(0xea)](_0x506e8c[_0x2ada9e(0x106)]);}return _0x1ebd1a['sort']();}
|
|
@@ -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 _0x152c0a=_0x1c86;(function(_0x52680c,_0x184fc3){const _0x4999db=_0x1c86,_0x36446c=_0x52680c();while(!![]){try{const _0x5d1357=parseInt(_0x4999db(0x21c))/0x1*(-parseInt(_0x4999db(0x245))/0x2)+parseInt(_0x4999db(0x1ed))/0x3*(parseInt(_0x4999db(0x219))/0x4)+-parseInt(_0x4999db(0x26f))/0x5+parseInt(_0x4999db(0x20a))/0x6+-parseInt(_0x4999db(0x1d6))/0x7+-parseInt(_0x4999db(0x1cc))/0x8*(-parseInt(_0x4999db(0x1d1))/0x9)+parseInt(_0x4999db(0x224))/0xa;if(_0x5d1357===_0x184fc3)break;else _0x36446c['push'](_0x36446c['shift']());}catch(_0x598af5){_0x36446c['push'](_0x36446c['shift']());}}}(_0x37fb,0xd4781));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','execute',_0x152c0a(0x284),'ask','goto',_0x152c0a(0x26d),_0x152c0a(0x1cb),_0x152c0a(0x29b)]),execFileAsync=promisify(execFile);function buildCliArtifactPath(_0x319a5b,_0xd512d0){return join(_0x319a5b,_0xd512d0);}export class NovaActArtifactRecorder{[_0x152c0a(0x20f)];[_0x152c0a(0x24c)]=null;[_0x152c0a(0x2a2)]=null;[_0x152c0a(0x246)]=null;[_0x152c0a(0x1d8)]=[];[_0x152c0a(0x270)]=0x0;[_0x152c0a(0x240)]=0x0;[_0x152c0a(0x238)]=null;['traceSampleInFlight']=null;[_0x152c0a(0x209)]=![];['screencastStarted']=![];[_0x152c0a(0x289)]=![];[_0x152c0a(0x229)]=![];constructor(_0x2696c1){this['params']=_0x2696c1;}async[_0x152c0a(0x25d)](){const _0x49a611=_0x152c0a,_0x443681={'HvUZN':_0x49a611(0x29f),'hUckE':'nova_act_artifact_recording'};if(this['startAttempted'])return;this['startAttempted']=!![];const _0x381c6f=await this[_0x49a611(0x1fc)](),_0x4fe99e=_0x381c6f[_0x49a611(0x259)];if(!_0x4fe99e)throw new Error('Nova\x20session\x20metadata\x20did\x20not\x20include\x20cdp_endpoint\x20for\x20'+this['params']['novaOptions'][_0x49a611(0x298)]);await mkdir(this[_0x49a611(0x20f)][_0x49a611(0x24d)],{'recursive':!![]}),this[_0x49a611(0x24c)]=await chromium[_0x49a611(0x273)](_0x4fe99e,{'timeout':NOVA_ARTIFACT_CDP_CONNECT_TIMEOUT_MS}),this[_0x49a611(0x2a2)]=this['browser'][_0x49a611(0x27d)]()[0x0]??null;if(!this[_0x49a611(0x2a2)])throw new Error(_0x443681['HvUZN']);await this['context']['tracing'][_0x49a611(0x25d)]({'screenshots':!![],'snapshots':!![],'sources':!![]}),this[_0x49a611(0x209)]=!![],this['startTraceSampling'](),await this['startScreencast'](),this[_0x49a611(0x20f)][_0x49a611(0x286)][_0x49a611(0x223)](_0x49a611(0x250),{...this[_0x49a611(0x20f)][_0x49a611(0x216)],'cdpEndpoint':_0x4fe99e,'browserPid':_0x381c6f['browser_pid'],'sessionState':_0x381c6f['state']}),this[_0x49a611(0x20f)]['telemetry'][_0x49a611(0x255)](_0x443681['hUckE'],{...this['params'][_0x49a611(0x216)],'tracingStarted':this['tracingStarted'],'screencastStarted':this[_0x49a611(0x1fa)]});}async[_0x152c0a(0x29e)](){const _0x1c1428=_0x152c0a,_0x223835={'oJXdi':function(_0x4d75c2,_0x2531fe,_0xba8cd2){return _0x4d75c2(_0x2531fe,_0xba8cd2);},'dsCLW':'trace.zip','MhVid':'nova_act_artifact_recording_stop'};if(this[_0x1c1428(0x229)])return;this['stopped']=!![];const _0x4021fd={...this['params']['transportMetadata'],'frameCount':this['frameCount'],'traceSampleCount':this[_0x1c1428(0x240)],'tracingStarted':this[_0x1c1428(0x209)],'screencastStarted':this[_0x1c1428(0x1fa)]};this['params']['telemetry'][_0x1c1428(0x223)](_0x1c1428(0x201),_0x4021fd);try{await this[_0x1c1428(0x225)](),await this[_0x1c1428(0x1da)](),await this['stopScreencast'](),await Promise['allSettled'](this['frameWrites']);this[_0x1c1428(0x2a2)]&&this[_0x1c1428(0x209)]&&await this['context'][_0x1c1428(0x204)]['stop']({'path':_0x223835[_0x1c1428(0x236)](buildCliArtifactPath,this['params'][_0x1c1428(0x24d)],_0x223835[_0x1c1428(0x1f9)])});const _0x114000=await this['encodeScreencastVideo']();this[_0x1c1428(0x20f)][_0x1c1428(0x286)]['trackPhaseEnd'](_0x223835['MhVid'],{..._0x4021fd,'videoPath':_0x114000});}catch(_0x51a42b){await this[_0x1c1428(0x20f)]['telemetry'][_0x1c1428(0x1dd)](_0x223835[_0x1c1428(0x252)],_0x51a42b,_0x4021fd);}finally{await this['browser']?.[_0x1c1428(0x264)]()[_0x1c1428(0x1d3)](()=>undefined),this[_0x1c1428(0x24c)]=null,this[_0x1c1428(0x2a2)]=null,this[_0x1c1428(0x246)]=null;}}async['readSessionMetadataWithRetry'](){const _0x2e7077=_0x152c0a,_0x2d7251={'ATwbE':function(_0x274471){return _0x274471();},'uazFW':_0x2e7077(0x248),'QiwoT':'browser','dnBEL':function(_0x28346e,_0x33b61b,_0x2b74da){return _0x28346e(_0x33b61b,_0x2b74da);},'aBiKr':_0x2e7077(0x1e8),'pNqzA':function(_0x479517,_0x4077e8){return _0x479517(_0x4077e8);},'AHcAQ':function(_0x37e6b8,_0x46f858){return _0x37e6b8 instanceof _0x46f858;}},_0x2aff0d=join(_0x2d7251[_0x2e7077(0x288)](homedir),_0x2d7251['uazFW'],_0x2d7251['QiwoT'],'sessions',this[_0x2e7077(0x20f)][_0x2e7077(0x25c)]['sessionId']+_0x2e7077(0x235)),_0x121a9d=Date[_0x2e7077(0x23d)]();let _0x303261;do{try{const _0x70d079=JSON['parse'](await _0x2d7251[_0x2e7077(0x1df)](readFile,_0x2aff0d,_0x2d7251[_0x2e7077(0x1e1)]));if(_0x70d079['cdp_endpoint'])return _0x70d079;_0x303261=new Error(_0x2e7077(0x244)+_0x2aff0d);}catch(_0x351f9a){_0x303261=_0x351f9a;}await _0x2d7251[_0x2e7077(0x271)](delay,0x64);}while(Date['now']()-_0x121a9d<NOVA_ARTIFACT_METADATA_WAIT_MS);if(_0x2d7251[_0x2e7077(0x261)](_0x303261,Error))throw _0x303261;throw new Error('Unable\x20to\x20read\x20Nova\x20session\x20metadata\x20at\x20'+_0x2aff0d);}async[_0x152c0a(0x25e)](){const _0xb662d0=_0x152c0a,_0x35b274={'tGYxS':function(_0x35d39e,_0x349dab,_0x13fb63){return _0x35d39e(_0x349dab,_0x13fb63);},'tPaJQ':function(_0x3fbce1,_0x457872){return _0x3fbce1(_0x457872);},'gePOq':_0xb662d0(0x1ce),'tPeXW':'jpeg'};if(!this[_0xb662d0(0x2a2)])return;const _0x2c7e45=this['context'][_0xb662d0(0x276)]()[0x0];if(!_0x2c7e45)return;const _0x50dbf9=this['getFrameDir']();await mkdir(_0x50dbf9,{'recursive':!![]});const _0x1e59bd=await this[_0xb662d0(0x2a2)]['newCDPSession'](_0x2c7e45);this['frameSession']=_0x1e59bd,_0x1e59bd['on']('Page.screencastFrame',_0x355307=>{const _0x4dc46e=_0xb662d0,_0x2dc3e4=++this[_0x4dc46e(0x270)],_0x391183=_0x35b274['tGYxS'](join,_0x50dbf9,'frame-'+_0x35b274['tPaJQ'](String,_0x2dc3e4)[_0x4dc46e(0x247)](0x6,'0')+'.jpg'),_0x356f49=writeFile(_0x391183,Buffer[_0x4dc46e(0x299)](_0x355307[_0x4dc46e(0x1e4)],_0x4dc46e(0x1e0)))[_0x4dc46e(0x1d3)](()=>undefined)[_0x4dc46e(0x287)](()=>_0x1e59bd[_0x4dc46e(0x279)](_0x4dc46e(0x200),{'sessionId':_0x355307['sessionId']}))[_0x4dc46e(0x237)](()=>undefined)[_0x4dc46e(0x1d3)](()=>undefined);this['frameWrites']['push'](_0x356f49);}),await _0x1e59bd['send'](_0x35b274[_0xb662d0(0x23f)],{'format':_0x35b274[_0xb662d0(0x297)],'quality':0x4b,'everyNthFrame':0x6}),this['screencastStarted']=!![];}async[_0x152c0a(0x220)](){const _0x2bb031=_0x152c0a;if(!this['frameSession']||!this[_0x2bb031(0x1fa)])return;await this[_0x2bb031(0x246)][_0x2bb031(0x279)](_0x2bb031(0x1e5))['catch'](()=>undefined);}['startTraceSampling'](){const _0xa1cd53=_0x152c0a,_0x549032={'dzITV':function(_0x874670,_0x2b4e2f,_0x52814a){return _0x874670(_0x2b4e2f,_0x52814a);}};this['queueTraceSample'](),this[_0xa1cd53(0x238)]=_0x549032[_0xa1cd53(0x272)](setInterval,()=>this['queueTraceSample'](),NOVA_ARTIFACT_TRACE_SAMPLE_INTERVAL_MS);}[_0x152c0a(0x280)](){const _0x507e65=_0x152c0a;if(this[_0x507e65(0x1cd)])return;this[_0x507e65(0x1cd)]=this[_0x507e65(0x1da)]()[_0x507e65(0x287)](()=>{const _0x10ceff=_0x507e65;this[_0x10ceff(0x1cd)]=null;});}async[_0x152c0a(0x225)](){const _0x1fc058=_0x152c0a,_0x1c1c00={'tUwXE':function(_0x375cea,_0x1bad21){return _0x375cea(_0x1bad21);}};this[_0x1fc058(0x238)]&&(_0x1c1c00[_0x1fc058(0x21d)](clearInterval,this['traceSampleTimer']),this['traceSampleTimer']=null),await this[_0x1fc058(0x1cd)]?.[_0x1fc058(0x1d3)](()=>undefined);}async[_0x152c0a(0x1da)](){const _0x4d97e4=_0x152c0a,_0x53c2ac=this[_0x4d97e4(0x2a2)]?.[_0x4d97e4(0x276)]()[0x0];if(!_0x53c2ac)return;try{await _0x53c2ac[_0x4d97e4(0x1f4)]('body')['evaluate'](_0x5b94ac=>_0x5b94ac['tagName'],undefined,{'timeout':0x3e8}),this['traceSampleCount']++;}catch{}}async[_0x152c0a(0x295)](){const _0x51888c=_0x152c0a,_0x369c3b={'HfdvQ':function(_0x2820b5,_0x226d3d,_0x29423c){return _0x2820b5(_0x226d3d,_0x29423c);},'SAXxm':'session-recording.webm','EvOZl':_0x51888c(0x221),'SXZCv':'error','PcwAt':'-framerate','VALzH':function(_0x373042,_0x59a6c8,_0x768dfc){return _0x373042(_0x59a6c8,_0x768dfc);},'vtKdR':_0x51888c(0x214)};if(this['frameCount']<0x2)return null;const _0x52269f=await resolveFfmpegPath();if(!_0x52269f)return null;const _0x4edace=_0x369c3b[_0x51888c(0x1fb)](join,this['params'][_0x51888c(0x24d)],_0x51888c(0x1f0));await _0x369c3b['HfdvQ'](mkdir,_0x4edace,{'recursive':!![]});const _0x1af081=join(_0x4edace,_0x369c3b['SAXxm']);return await _0x369c3b['HfdvQ'](execFileAsync,_0x52269f,['-y','-hide_banner',_0x369c3b[_0x51888c(0x1e2)],_0x369c3b['SXZCv'],_0x369c3b['PcwAt'],'10','-i',_0x369c3b[_0x51888c(0x290)](join,this['getFrameDir'](),_0x51888c(0x260)),'-vf',_0x51888c(0x2a5),_0x51888c(0x26e),_0x51888c(0x24f),'-pix_fmt',_0x369c3b[_0x51888c(0x217)],_0x1af081]),_0x1af081;}[_0x152c0a(0x21e)](){const _0x286ae9=_0x152c0a;return join(this[_0x286ae9(0x20f)][_0x286ae9(0x24d)],_0x286ae9(0x234));}}async function delay(_0xe8db91){await new Promise(_0x3cdff2=>setTimeout(_0x3cdff2,_0xe8db91));}function _0x37fb(){const _0x361557=['ytsER','00_initial-state.yml','params','\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20authenticate\x20using\x20these\x20steps:\x0a','yUkiu','env','\x0a\x0a##\x20Additional\x20Notes\x0a','yuv420p','nxKIc','transportMetadata','vtKdR','nova_act_session_report','3716RumLJF','CRgMl','pqkFL','1348973iXEojM','tUwXE','getFrameDir','`\x0a-\x20`','stopScreencast','-loglevel','cnesw','trackPhaseStart','13284780BLbRai','stopTraceSampling','iCsxQ','\x20>\x20','export','stopped','WOaJr','tool_input','RTiZw','CHLlD','\x20screenshot\x20--output\x20','length','ggswj','match','\x0a\x0a##\x20Task\x20to\x20Execute\x0a','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.','nova-video-frames','.json','oJXdi','then','traceSampleTimer','commandArgs','wYGmn','trim','unaddressedComments','now','invocation','gePOq','traceSampleCount','`\x20using\x20absolute\x20paths\x20only.\x0a5.\x20Take\x20an\x20initial\x20snapshot:\x20`','auQPg','--output','Nova\x20metadata\x20missing\x20cdp_endpoint\x20at\x20','2AUjrRG','frameSession','padStart','.act_cli','textContent','hook_event_name','short','browser','cliArtifactDir','`.\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`','libvpx-vp9','nova_act_artifact_recording','**\x20(','MhVid','\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','pCuLG','trackPhaseEnd','\x20execute\x20\x221.\x20Open\x20the\x20account\x20settings\x20menu.\x202.\x20Click\x20Billing.\x203.\x20Wait\x20for\x20the\x20Billing\x20page\x20to\x20load.\x22\x20','\x0a\x0aExamples:\x0a-\x20`','stderr','cdp_endpoint','`\x0a\x0aAppend\x20this\x20option\x20suffix\x20to\x20browser\x20commands:\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.','novaOptions','start','startScreencast','zADSu','frame-%06d.jpg','AHcAQ','rtuhz','Caches','close','bKeQP','xYwxh','authorName','Scmzm','KABhF','replace','nova-act-cli','02_final-state.yml','wait-for','-c:v','6060400QdDXSI','frameCount','pNqzA','dzITV','connectOverCDP','session','PostToolUse','pages','Ybbgw','json','send','ffmpeg.exe','nova-session-export.json','domRef','contexts','TzcZA','FExzK','queueTraceSample','`\x0a3.\x20Run\x20`','Bash','phase','verify','Bqroi','telemetry','finally','ATwbE','startAttempted','subcommand','lJOQh','01_initial.yml','ydrgn','\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`','lqQma','VALzH','-\x20[','key_final-state.png','`<none;\x20the\x20command\x20prefix\x20injects\x20shared\x20options>`','goto','encodeScreencastVideo','dAWUw','tPeXW','sessionId','from','ffmpeg-linux','screenshot','block','--output-dir','stop','Nova\x20CDP\x20connection\x20did\x20not\x20expose\x20a\x20browser\x20context','startsWith','stdout','context','keys','nova-report','scale=trunc(iw/2)*2:trunc(ih/2)*2','snapshot','837064fsMwmD','traceSampleInFlight','Page.startScreencast','Library','mksqK','72LXPwmW','createdAt','catch','\x20snapshot\x20--output\x20','giYKq','3475689FIIKrU','wVdZN','frameWrites','command','captureTraceSample','mbIdo','lfoal','trackPhaseError','pop','dnBEL','base64','aBiKr','EvOZl','`\x0a7.\x20Return\x20immediately\x20with\x20the\x20structured\x20output.\x0a\x0aSave\x20every\x20artifact\x20under\x20`','data','Page.stopScreencast','en-US','Use\x20only\x20the\x20provided\x20Nova\x20browser\x20command\x20prefix\x20for\x20browser\x20verification.\x20Do\x20not\x20inspect\x20setup,\x20credentials,\x20files,\x20or\x20the\x20local\x20environment.','utf-8','navigate\x20browser','nova_act_session_close','jckuj','Append\x20this\x20option\x20suffix\x20to\x20every\x20browser\x20command\x20unless\x20the\x20host\x20gives\x20a\x20more\x20specific\x20example:\x0a','2370QeMkFM','\x20session\x20create\x20','cwd','videos','\x0a\x0a##\x20App\x20Context\x0aYour\x20base\x20URL\x20is:\x20','nova_act_final_screenshot','get','locator','mtimeMs','test','execute','ask','dsCLW','screencastStarted','HfdvQ','readSessionMetadataWithRetry','ApXks','capture\x20snapshot\x20`','authorEmail','Page.screencastFrameAck','nova_act_artifact_recording_stop','notes','execute\x20Nova\x20browser\x20action','tracing','`\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.','flatMap','--format','UpYuW','tracingStarted','6170406EtqLdg','name','aSfvE'];_0x37fb=function(){return _0x361557;};return _0x37fb();}async function resolveFfmpegPath(){const _0x2e1801=_0x152c0a,_0x2e39f2={'DkodA':function(_0x283646,_0x45397c){return _0x283646(_0x45397c);},'BoLfd':function(_0xb2f8c1,_0x4a1e9b,_0x588760,_0x2f8a35,_0x1df007){return _0xb2f8c1(_0x4a1e9b,_0x588760,_0x2f8a35,_0x1df007);},'FExzK':function(_0x2a8643){return _0x2a8643();},'CAjgF':_0x2e1801(0x263),'lfoal':function(_0x1aed38,_0x38f7e3,_0x24a657,_0x126cc6){return _0x1aed38(_0x38f7e3,_0x24a657,_0x126cc6);},'pqkFL':'.cache'};if(await _0x2e39f2['DkodA'](canRunFfmpeg,'ffmpeg'))return'ffmpeg';const _0x5a66ed=[_0x2e39f2['BoLfd'](join,_0x2e39f2[_0x2e1801(0x27f)](homedir),_0x2e1801(0x1cf),_0x2e39f2['CAjgF'],'ms-playwright'),_0x2e39f2[_0x2e1801(0x1dc)](join,homedir(),_0x2e39f2[_0x2e1801(0x21b)],'ms-playwright')];for(const _0x56552b of _0x5a66ed){try{const _0x282774=await readdir(_0x56552b),_0x4e7484=_0x282774['filter'](_0xef01bf=>_0xef01bf[_0x2e1801(0x2a0)]('ffmpeg-'))['sort']()['reverse']()[_0x2e1801(0x206)](_0x189563=>[join(_0x56552b,_0x189563,'ffmpeg-mac'),join(_0x56552b,_0x189563,_0x2e1801(0x29a)),join(_0x56552b,_0x189563,_0x2e1801(0x27a))]);for(const _0xe7cfda of _0x4e7484){if(await canRunFfmpeg(_0xe7cfda))return _0xe7cfda;}}catch{}}return null;}async function canRunFfmpeg(_0x16c01b){const _0x396766=_0x152c0a,_0x4c67e4={'CHLlD':function(_0x5d427a,_0x2b89b1,_0x5c8823){return _0x5d427a(_0x2b89b1,_0x5c8823);}};try{return await _0x4c67e4[_0x396766(0x22d)](execFileAsync,_0x16c01b,['-version']),!![];}catch{return![];}}function toStepDisplayName(_0x2ca30a){const _0x49c8c3=_0x152c0a,_0x52dbf1=basename(_0x2ca30a)[_0x49c8c3(0x26a)](/\.(?:png|ya?ml)$/i,'')[_0x49c8c3(0x26a)](/^key_/i,'')['replace'](/^\d+_/,'')['replace'](/-/g,'\x20');return{'name':_0x52dbf1,'isKeyStep':/^key_/i['test'](basename(_0x2ca30a))};}function extractShellValue(_0xcde528){if(!_0xcde528)return null;return _0xcde528[0x1]??_0xcde528[0x2]??_0xcde528[0x3]??null;}function extractOutputOption(_0x51723d){const _0x58f7ef=_0x152c0a,_0x55d579={'lqQma':function(_0x3b8b50,_0x3e2f0c){return _0x3b8b50(_0x3e2f0c);}};return _0x55d579[_0x58f7ef(0x28f)](extractShellValue,_0x51723d[_0x58f7ef(0x231)](/--output(?:=|\s+)(?:"([^"]+)"|'([^']+)'|(\S+))/));}function formatNovaActCliLog(_0x1a9415,_0x11c21d){const _0x246176=_0x152c0a,_0x6c3571={'whyRC':_0x246176(0x1f7),'odmCS':'verify','MZMcc':'verify\x20page\x20condition','RTiZw':_0x246176(0x1f8),'ydrgn':'ask\x20page\x20question','Bqroi':_0x246176(0x1e9),'KABhF':function(_0x1f5128,_0x4341a3){return _0x1f5128(_0x4341a3);},'jckuj':'session\x20export','RNYUI':'export\x20Nova\x20session'};switch(_0x11c21d){case'session\x20create':return'create\x20Nova\x20browser\x20session';case _0x6c3571['whyRC']:return _0x246176(0x203);case _0x6c3571['odmCS']:return _0x6c3571['MZMcc'];case _0x6c3571[_0x246176(0x22c)]:return _0x6c3571[_0x246176(0x28d)];case _0x246176(0x294):return _0x6c3571[_0x246176(0x285)];case _0x246176(0x26d):return'wait\x20for\x20page\x20condition';case _0x246176(0x1cb):{const _0x1a2f5c=extractOutputOption(_0x1a9415);if(!_0x1a2f5c)return'capture\x20snapshot';const {name:_0x30f425}=toStepDisplayName(_0x1a2f5c);return _0x246176(0x1fe)+_0x30f425+'`';}case _0x246176(0x29b):{const _0x1f2184=extractOutputOption(_0x1a9415);if(!_0x1f2184)return'capture\x20screenshot';const {name:_0x3b84bb,isKeyStep:_0x3d5963}=_0x6c3571[_0x246176(0x269)](toStepDisplayName,_0x1f2184);return _0x3d5963?'capture\x20key\x20step\x20`'+_0x3b84bb+'`':'capture\x20step\x20`'+_0x3b84bb+'`';}case _0x6c3571[_0x246176(0x1eb)]:return _0x6c3571['RNYUI'];default:return _0x11c21d;}}function getNovaActCliCommandBlockReason(_0x360155){const _0x26badc=_0x152c0a,_0x44eb1a={'ibDHW':function(_0x17380a,_0x55845a){return _0x17380a(_0x55845a);},'ggpJg':function(_0x2b8250,_0x6204bd){return _0x2b8250===_0x6204bd;},'CRgMl':_0x26badc(0x25b)},_0x1186a0=_0x44eb1a['ibDHW'](parseNovaActCliCommand,_0x360155);if(!_0x1186a0)return _0x26badc(0x1e7);if(!NOVA_ACT_ALLOWED_AGENT_COMMANDS['has'](_0x1186a0))return'Nova\x20command\x20`'+_0x1186a0+'`\x20is\x20reserved\x20for\x20the\x20host.\x20Use\x20only\x20session\x20create,\x20execute,\x20verify,\x20ask,\x20goto,\x20wait-for,\x20snapshot,\x20and\x20screenshot.';if(_0x44eb1a['ggpJg'](_0x1186a0,'verify')&&/\b(?:previously visited|visited pages|pages visited|at least one of the pages visited)\b/i['test'](_0x360155))return _0x44eb1a[_0x26badc(0x21a)];if(/\s--help\b|\bdoctor\b|\bscript\b|\bsession\s+(?:close|list|export)\b/['test'](_0x360155))return'Do\x20not\x20run\x20Nova\x20help,\x20doctor,\x20script,\x20session\x20list,\x20session\x20export,\x20or\x20session\x20close\x20commands\x20during\x20verification.';return null;}function buildFeedbackSection(_0x1f43ff){const _0x2c11ee=_0x152c0a,_0x1d0025={'Hqaxf':_0x2c11ee(0x24b),'rtuhz':'numeric','cnesw':'Reviewer','jEoaY':_0x2c11ee(0x227),'WvXrw':function(_0x54fe44,_0x32db98){return _0x54fe44===_0x32db98;}};if(!_0x1f43ff||_0x1d0025['WvXrw'](_0x1f43ff[_0x2c11ee(0x23c)][_0x2c11ee(0x22f)],0x0))return'';const _0xe73395=_0x1f43ff[_0x2c11ee(0x23c)]['map'](_0x5e2a42=>{const _0x39ec73=_0x2c11ee,_0x433213=new Date(_0x5e2a42[_0x39ec73(0x1d2)])['toLocaleDateString'](_0x39ec73(0x1e6),{'month':_0x1d0025['Hqaxf'],'day':_0x1d0025[_0x39ec73(0x262)]}),_0x489034=_0x5e2a42[_0x39ec73(0x267)]||_0x5e2a42[_0x39ec73(0x1ff)]||_0x1d0025[_0x39ec73(0x222)],_0x297c4d=_0x5e2a42[_0x39ec73(0x27c)]?'\x20(on\x20element:\x20<'+(_0x5e2a42['domRef']['selector']['split'](_0x1d0025['jEoaY'])[_0x39ec73(0x1de)]()?.['split'](':')[0x0]||'element')+'>\x20\x22'+(_0x5e2a42[_0x39ec73(0x27c)][_0x39ec73(0x249)]||'')['slice'](0x0,0x32)+'\x22)':'';return _0x39ec73(0x291)+_0x5e2a42['id']+']\x20**'+_0x489034+_0x39ec73(0x251)+_0x433213+'):\x20\x22'+_0x5e2a42['content']+'\x22'+_0x297c4d;})['join']('\x0a');return'\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'+_0xe73395;}function buildNovaSharedOptionsInstruction(_0x536fb3){const _0xefbae4=_0x152c0a;if(!_0x536fb3[_0xefbae4(0x23b)]())return _0xefbae4(0x233);return _0xefbae4(0x1ec)+_0x536fb3;}export function buildVerifyFeatureNovaCliDebugPrompt(_0x3b40ba){const _0x5d753c=_0x152c0a,_0xf68b11={'WFFRp':function(_0x5c676b,_0x2e817f,_0x3632d7){return _0x5c676b(_0x2e817f,_0x3632d7);},'pCuLG':function(_0x276a6a,_0x56a543,_0x1461f8){return _0x276a6a(_0x56a543,_0x1461f8);},'SXIpb':function(_0x4841b0,_0x73b321,_0x580188){return _0x4841b0(_0x73b321,_0x580188);},'enpAN':function(_0x2e4a7f,_0x4e4c49){return _0x2e4a7f(_0x4e4c49);}},{novaCommandPrefix:_0x450e7,novaSharedOptionsSuffix:_0x134702,cliArtifactDir:_0x41e63c,url:_0x3b0fc7}=_0x3b40ba,_0x1f6773=buildCliArtifactPath(_0x41e63c,_0x5d753c(0x20e)),_0x52796e=_0xf68b11['WFFRp'](buildCliArtifactPath,_0x41e63c,'01_initial-state.png'),_0x1853d1=_0xf68b11[_0x5d753c(0x254)](buildCliArtifactPath,_0x41e63c,_0x5d753c(0x26c)),_0x35f7d1=_0xf68b11['SXIpb'](buildCliArtifactPath,_0x41e63c,'03_final-state.png');return'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'+_0x450e7+'\x0a\x0a'+buildNovaSharedOptionsInstruction(_0x134702)+'\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`'+_0x450e7+'\x20session\x20create\x20'+_0xf68b11['enpAN'](quoteShellArg,_0x3b0fc7)+'\x20'+_0x134702+'`\x0a2.\x20Run\x20`'+_0x450e7+'\x20snapshot\x20--output\x20'+_0xf68b11['enpAN'](quoteShellArg,_0x1f6773)+'\x20'+_0x134702+_0x5d753c(0x281)+_0x450e7+_0x5d753c(0x22e)+_0xf68b11['enpAN'](quoteShellArg,_0x52796e)+'\x20'+_0x134702+'`\x0a4.\x20Run\x20one\x20batched\x20`'+_0x450e7+'\x20execute\x20\x22...\x22`\x20command\x20to\x20exercise\x20the\x20current\x20page.\x0a5.\x20Run\x20`'+_0x450e7+'\x20snapshot\x20--output\x20'+quoteShellArg(_0x1853d1)+'\x20'+_0x134702+'`\x0a6.\x20Run\x20`'+_0x450e7+_0x5d753c(0x22e)+quoteShellArg(_0x35f7d1)+'\x20'+_0x134702+_0x5d753c(0x1e3)+_0x41e63c+'`\x20using\x20absolute\x20paths\x20only.\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.';}export function buildVerifyFeatureNovaCliPrompt(_0x25feaa){const _0x4897ed=_0x152c0a,_0x4e112f={'mbIdo':function(_0x35a5ca,_0x2aa76d,_0x5a12a5){return _0x35a5ca(_0x2aa76d,_0x5a12a5);},'TzcZA':_0x4897ed(0x28c),'ugroy':'01_initial-state.png','Ybbgw':'key_03_success-state.png','Wewug':_0x4897ed(0x293),'giYKq':function(_0x52a39c,_0x2ea2e1){return _0x52a39c(_0x2ea2e1);}},{checklistItem:_0x464d6c,itemFeedback:_0x30bf0a,taskDescription:_0x44c478,novaCommandPrefix:_0x275750,novaSharedOptionsSuffix:_0x2376cc,cliArtifactDir:_0x48458c,url:_0x55dbae,loginInstructions:_0x40ebc0}=_0x25feaa,_0xff0bd=_0x464d6c['notes']?_0x4897ed(0x213)+_0x464d6c[_0x4897ed(0x202)]:'',_0x66b62f=buildFeedbackSection(_0x30bf0a),_0x2319e3=_0x30bf0a?.['canonicalFlow']?'\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a'+_0x30bf0a['canonicalFlow']:'',_0x36ed44=_0x40ebc0?_0x4897ed(0x210)+_0x40ebc0+'\x0a\x0aIf\x20authentication\x20fails,\x20return\x20evaluation\x20\x22blocked\x22\x20and\x20describe\x20the\x20auth\x20failure.':'',_0x2e5f82=_0x4e112f[_0x4897ed(0x1db)](buildCliArtifactPath,_0x48458c,_0x4e112f[_0x4897ed(0x27e)]),_0x749fcf=_0x4e112f[_0x4897ed(0x1db)](buildCliArtifactPath,_0x48458c,_0x4e112f['ugroy']),_0x36817b=_0x4e112f['mbIdo'](buildCliArtifactPath,_0x48458c,_0x4e112f[_0x4897ed(0x277)]);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'+_0x464d6c['description']+_0xff0bd+_0x66b62f+_0x2319e3+_0x4897ed(0x232)+_0x44c478+_0x4897ed(0x1f1)+_0x55dbae+_0x4897ed(0x253)+_0x36ed44+_0x4897ed(0x28e)+_0x275750+_0x4897ed(0x1ee)+quoteShellArg(_0x55dbae)+'\x20'+_0x2376cc+'`.\x0a4.\x20Save\x20every\x20snapshot\x20and\x20screenshot\x20under\x20`'+_0x48458c+_0x4897ed(0x241)+_0x275750+'\x20snapshot\x20--output\x20'+quoteShellArg(_0x2e5f82)+'\x20'+_0x2376cc+'`.\x0a6.\x20Take\x20an\x20initial\x20screenshot:\x20`'+_0x275750+'\x20screenshot\x20--output\x20'+quoteShellArg(_0x749fcf)+'\x20'+_0x2376cc+_0x4897ed(0x24e)+_0x36817b+'`.\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`'+_0x275750+_0x4897ed(0x25a)+(_0x2376cc['trim']()?'`'+_0x2376cc+'`':_0x4e112f['Wewug'])+'\x0a\x0a'+_0x4e112f[_0x4897ed(0x1d5)](buildNovaSharedOptionsInstruction,_0x2376cc)+_0x4897ed(0x257)+_0x275750+_0x4897ed(0x256)+_0x2376cc+_0x4897ed(0x21f)+_0x275750+'\x20verify\x20\x22The\x20Billing\x20page\x20is\x20visible\x20and\x20shows\x20the\x20current\x20plan.\x22\x20'+_0x2376cc+'`\x0a-\x20`'+_0x275750+_0x4897ed(0x1d4)+quoteShellArg(_0x2e5f82)+'\x20'+_0x2376cc+'`\x0a-\x20`'+_0x275750+'\x20screenshot\x20--output\x20'+quoteShellArg(_0x36817b)+'\x20'+_0x2376cc+_0x4897ed(0x205);}export function summarizeVerifyFeatureNovaCliCommandAvailability(_0x265529){const _0x593239=_0x152c0a,_0x5ca280={'ggswj':function(_0x1164d0,_0x483c3e){return _0x1164d0===_0x483c3e;}},_0x1760b7=[..._0x265529[_0x593239(0x2a3)]()]['sort']();let _0xae3309=0x0;for(const _0x547ce6 of _0x265529['values']()){_0xae3309+=_0x547ce6;}return{'cliCommandCount':_0xae3309,'cliCommandsSeen':_0x1760b7,'noCliCommandsCalled':_0x5ca280[_0x593239(0x230)](_0xae3309,0x0)};}export function createVerifyFeatureNovaCliHooks(_0xa01ca,_0x482424){const _0x40ec53=_0x152c0a,_0x57e8cb={'mksqK':function(_0x2abd62,_0xfafbc7){return _0x2abd62!==_0xfafbc7;},'wYGmn':'PreToolUse','bgIZV':'Bash','ApXks':function(_0x4a199c,_0x1c0947){return _0x4a199c(_0x1c0947);},'lhAia':_0x40ec53(0x29c),'EknWY':_0x40ec53(0x275),'lJOQh':function(_0x134d3a,_0x7bd9f0){return _0x134d3a!==_0x7bd9f0;},'wVdZN':function(_0x3b7d80,_0x1a1a8f){return _0x3b7d80(_0x1a1a8f);},'dAWUw':'nova_act_command','sFJjx':function(_0xf4cb26,_0x51bb9a,_0x36822f){return _0xf4cb26(_0x51bb9a,_0x36822f);},'vfixA':function(_0x4cf8dc,_0x4bb7c0){return _0x4cf8dc===_0x4bb7c0;},'bEdKZ':'session\x20create','aSfvE':'nova_act_artifact_recording','IyBbe':function(_0x152b7e,_0xbf20db){return _0x152b7e!==_0xbf20db;}},_0x1b7834=new Map(),_0x4652eb=async _0x5e4728=>{const _0x1f4d0e=_0x40ec53;if(_0x57e8cb['mksqK'](_0x5e4728['hook_event_name'],_0x57e8cb[_0x1f4d0e(0x23a)]))return{};const _0x1d99ae=_0x5e4728;if(_0x57e8cb[_0x1f4d0e(0x1d0)](_0x1d99ae['tool_name'],_0x57e8cb['bgIZV']))return{};const _0x371f7e=_0x1d99ae[_0x1f4d0e(0x22b)],_0x4a0ec7=_0x57e8cb[_0x1f4d0e(0x1fd)](extractBashCommand,_0x371f7e);if(!_0x4a0ec7)return{};const _0xc5c17d=getNovaActCliCommandBlockReason(_0x4a0ec7);if(!_0xc5c17d)return{};return{'decision':_0x57e8cb['lhAia'],'reason':_0xc5c17d};},_0x248c5d=async _0x220cca=>{const _0x14306b=_0x40ec53;if(_0x220cca[_0x14306b(0x24a)]!==_0x57e8cb['EknWY'])return{};const _0xb0ebde=_0x220cca;if(_0x57e8cb[_0x14306b(0x28b)](_0xb0ebde['tool_name'],'Bash'))return{};const _0x1fd632=_0xb0ebde[_0x14306b(0x22b)],_0x49c736=_0x57e8cb[_0x14306b(0x1d7)](extractBashCommand,_0x1fd632);if(!_0x49c736)return{};const _0x2099bc=parseNovaActCliCommand(_0x49c736);if(!_0x2099bc)return{};_0x1b7834['set'](_0x2099bc,(_0x1b7834[_0x14306b(0x1f3)](_0x2099bc)||0x0)+0x1),_0xa01ca['trackPhaseStart'](_0x57e8cb[_0x14306b(0x296)],{'subcommand':_0x2099bc}),_0xa01ca[_0x14306b(0x255)]('nova_act_command',{'subcommand':_0x2099bc,'commandPreview':previewNovaActCliCommand(_0x49c736)}),console['log']('[nova-act-cli]\x20'+_0x57e8cb['sFJjx'](formatNovaActCliLog,_0x49c736,_0x2099bc));if(_0x57e8cb['vfixA'](_0x2099bc,_0x57e8cb['bEdKZ'])&&_0x482424)try{await _0x482424['start']();}catch(_0x455b3c){await _0xa01ca[_0x14306b(0x1dd)](_0x57e8cb[_0x14306b(0x20c)],_0x455b3c,{'transport':'nova-act-cli'});}return{};},_0xc238d0=async _0x562a48=>{const _0x9b6c1d=_0x40ec53;if(_0x57e8cb['IyBbe'](_0x562a48[_0x9b6c1d(0x24a)],'PostToolUseFailure'))return{};const _0x3feeec=_0x562a48;if(_0x3feeec['tool_name']!=='Bash')return{};return await _0xa01ca[_0x9b6c1d(0x1dd)]('nova_act_command_failure',_0x3feeec['error'],{'transport':_0x9b6c1d(0x26b),'toolName':_0x9b6c1d(0x282)}),{};};return{'preToolUseHook':_0x4652eb,'postToolUseHook':_0x248c5d,'postToolUseFailureHook':_0xc238d0,'commandCounts':_0x1b7834};}async function runNovaLifecycleCommand(_0x29df9b){const _0x3da69d=_0x152c0a,_0x729132={'fdCrO':function(_0x4b4f73,_0x5c6bb5){return _0x4b4f73(_0x5c6bb5);},'oOuLC':function(_0x3574e6,_0x49c528){return _0x3574e6(_0x49c528);},'UpYuW':function(_0x130a49,_0x12a4dd){return _0x130a49(_0x12a4dd);}},{novaOptions:_0x523345,commandArgs:_0x598f23,telemetry:_0x9e0b21,phase:_0x1bce70,metadata:_0x27e675,timeoutMs:_0x549904}=_0x29df9b;_0x9e0b21['trackPhaseStart'](_0x1bce70,_0x27e675);try{const _0x48a30e=await runNovaActCliCommand({..._0x523345,'commandArgs':_0x598f23,'cwd':process[_0x3da69d(0x1ef)](),'env':process[_0x3da69d(0x212)],'timeoutMs':_0x549904??NOVA_ACT_CLI_COMMAND_TIMEOUT_MS});_0x9e0b21['trackPhaseEnd'](_0x1bce70,{..._0x27e675,'subcommand':_0x48a30e['invocation'][_0x3da69d(0x28a)],'commandPreview':_0x729132['fdCrO'](previewNovaActCliCommand,_0x48a30e[_0x3da69d(0x23e)]['shellCommand']),'stdoutPreview':previewNovaActCliCommand(_0x48a30e['stdout']),'stderrPreview':_0x729132['oOuLC'](previewNovaActCliCommand,_0x48a30e[_0x3da69d(0x258)]),'logDir':_0x729132[_0x3da69d(0x208)](extractNovaActLogDir,_0x48a30e[_0x3da69d(0x2a1)])});}catch(_0x13ab9d){await _0x9e0b21[_0x3da69d(0x1dd)](_0x1bce70,_0x13ab9d,_0x27e675);throw _0x13ab9d;}}function _0x1c86(_0xb90637,_0x658003){_0xb90637=_0xb90637-0x1cb;const _0x37fb2=_0x37fb();let _0x1c8661=_0x37fb2[_0xb90637];return _0x1c8661;}export async function finalizeVerifyFeatureNovaCliSession(_0x3c07a2){const _0x30f532=_0x152c0a,_0x46cc87={'NvVMf':'screenshot','Scmzm':_0x30f532(0x243),'haYUr':_0x30f532(0x292),'atAGe':_0x30f532(0x1cb),'zADSu':_0x30f532(0x228),'yUkiu':function(_0x5143c3,_0x5e5814,_0x495fa0){return _0x5143c3(_0x5e5814,_0x495fa0);},'Nhrso':_0x30f532(0x29d),'FQHTQ':_0x30f532(0x2a4),'xYwxh':_0x30f532(0x264)},{telemetry:_0x54a841,novaOptions:_0x3cc640,cliArtifactDir:_0xa738c5,transportMetadata:_0x2eafeb,artifactRecorder:_0x25d441}=_0x3c07a2,_0x4d8f26=[{'phase':_0x30f532(0x1f2),'commandArgs':[_0x46cc87['NvVMf'],_0x46cc87['Scmzm'],buildCliArtifactPath(_0xa738c5,_0x46cc87['haYUr'])]},{'phase':'nova_act_final_snapshot','commandArgs':[_0x46cc87['atAGe'],_0x46cc87[_0x30f532(0x268)],buildCliArtifactPath(_0xa738c5,'final-state.yaml')]},{'phase':'nova_act_session_export','commandArgs':['session',_0x46cc87[_0x30f532(0x25f)],_0x30f532(0x207),_0x30f532(0x278),_0x46cc87['Scmzm'],_0x46cc87[_0x30f532(0x211)](buildCliArtifactPath,_0xa738c5,_0x30f532(0x27b))]},{'phase':_0x30f532(0x218),'commandArgs':[_0x30f532(0x274),_0x30f532(0x228),'--report',_0x46cc87['Nhrso'],buildCliArtifactPath(_0xa738c5,_0x46cc87['FQHTQ'])]},{'phase':_0x30f532(0x1ea),'commandArgs':['session',_0x46cc87[_0x30f532(0x266)]]}];for(const _0x5d0274 of _0x4d8f26){_0x5d0274['phase']==='nova_act_session_close'&&await _0x25d441?.[_0x30f532(0x29e)]();try{await runNovaLifecycleCommand({'novaOptions':_0x3cc640,'commandArgs':[..._0x5d0274['commandArgs']],'telemetry':_0x54a841,'phase':_0x5d0274[_0x30f532(0x283)],'metadata':_0x2eafeb});}catch{}}}export async function harvestVerifyFeatureNovaCliArtifacts(_0x3448bb){const _0x13f86b=_0x152c0a,_0x1e62ad={'bKeQP':function(_0x3628db,_0x5c10e2,_0x354223){return _0x3628db(_0x5c10e2,_0x354223);},'nxKIc':function(_0xefbcd8,_0x45700e){return _0xefbcd8(_0x45700e);},'WWYoN':function(_0x19c158,_0xf3e094){return _0x19c158+_0xf3e094;}},{cwd:_0x9a8dc4,cliArtifactDir:_0x465d31,startTime:_0x4abd7a}=_0x3448bb,_0x324362=[];await mkdir(_0x465d31,{'recursive':!![]});const _0x41f1bb=await readdir(_0x9a8dc4,{'withFileTypes':!![]});for(const _0x55c57d of _0x41f1bb){if(!_0x55c57d['isFile']()||!VERIFY_FEATURE_NOVA_ARTIFACT_FILE_PATTERN[_0x13f86b(0x1f6)](_0x55c57d[_0x13f86b(0x20b)]))continue;const _0x233c9c=_0x1e62ad[_0x13f86b(0x265)](join,_0x9a8dc4,_0x55c57d['name']),_0x305b90=await _0x1e62ad[_0x13f86b(0x215)](stat,_0x233c9c);if(_0x1e62ad['WWYoN'](_0x305b90[_0x13f86b(0x1f5)],0x7d0)<_0x4abd7a)continue;const _0x4c3d59=_0x1e62ad['bKeQP'](buildCliArtifactPath,_0x465d31,_0x55c57d[_0x13f86b(0x20b)]);if(_0x233c9c===_0x4c3d59)continue;await rename(_0x233c9c,_0x4c3d59),_0x324362['push'](_0x55c57d['name']);}return _0x324362['sort']();}export async function loadVerifyFeatureNovaTraceUploadArtifact(_0x37fc41){const _0x5a6a48={'mLYSz':'trace.zip','pZDaZ':function(_0x907c58,_0x91e3d0){return _0x907c58(_0x91e3d0);}},_0x5b8e30=join(_0x37fc41,_0x5a6a48['mLYSz']);try{return{'buffer':await readFile(_0x5b8e30),'source':_0x5b8e30};}catch{return{'buffer':await _0x5a6a48['pZDaZ'](zipVerifyFeatureNovaArtifacts,_0x37fc41),'source':_0x37fc41};}}async function zipVerifyFeatureNovaArtifacts(_0x35f748){const _0x35e899=_0x152c0a,_0x455758={'WOaJr':function(_0x46a67e,_0x53d0d6,_0x531007,_0x576eb3){return _0x46a67e(_0x53d0d6,_0x531007,_0x576eb3);},'iCsxQ':'-qr','ytsER':'nova-user-data/*','dVobV':function(_0x2cb614,_0x21e8a1){return _0x2cb614(_0x21e8a1);}},_0x257118=join(_0x35f748,'..','nova-artifacts.zip');try{return await _0x455758[_0x35e899(0x22a)](execFileAsync,'zip',[_0x455758[_0x35e899(0x226)],_0x257118,'.','-x',_0x455758[_0x35e899(0x20d)]],{'cwd':_0x35f748}),await _0x455758['dVobV'](readFile,_0x257118);}finally{await rm(_0x257118,{'force':!![]});}}export function buildNovaActCliDiagnostics(_0x467058){const _0x24a2ad=_0x152c0a,_0x43722c={'auQPg':function(_0x51d8c0,_0xdafcd1,_0x43cc5a){return _0x51d8c0(_0xdafcd1,_0x43cc5a);}},_0x176f6b=buildNovaActCliInvocation(_0x467058[_0x24a2ad(0x25c)],_0x467058[_0x24a2ad(0x239)]);return{'command':_0x176f6b[_0x24a2ad(0x1d9)],'args':_0x176f6b['args'],'commandPreview':previewNovaActCliCommand(_0x176f6b['shellCommand']),'subcommand':_0x176f6b[_0x24a2ad(0x28a)],'sharedOptionsSuffix':_0x43722c[_0x24a2ad(0x242)](buildNovaActCliSharedOptionsSuffix,_0x467058[_0x24a2ad(0x25c)],_0x467058['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(_0x242d24,_0x3c6450){const _0x4e4e2d=_0x39ca,_0x28d68b=_0x242d24();while(!![]){try{const _0x125a8a=-parseInt(_0x4e4e2d(0x1ff))/0x1*(parseInt(_0x4e4e2d(0x1f5))/0x2)+parseInt(_0x4e4e2d(0x222))/0x3*(parseInt(_0x4e4e2d(0x1c0))/0x4)+parseInt(_0x4e4e2d(0x210))/0x5+parseInt(_0x4e4e2d(0x1cb))/0x6+-parseInt(_0x4e4e2d(0x21e))/0x7+-parseInt(_0x4e4e2d(0x1c9))/0x8*(-parseInt(_0x4e4e2d(0x20d))/0x9)+-parseInt(_0x4e4e2d(0x1fb))/0xa;if(_0x125a8a===_0x3c6450)break;else _0x28d68b['push'](_0x28d68b['shift']());}catch(_0x236a3f){_0x28d68b['push'](_0x28d68b['shift']());}}}(_0x114c,0x792b0));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(_0x382aeb,_0x58a991=RANGERWRIGHT_CLI_PREVIEW_LIMIT){const _0x469401=_0x39ca,_0x4c9886={'kASHU':function(_0x3d8f81,_0x296c37){return _0x3d8f81>_0x296c37;}};return _0x4c9886[_0x469401(0x1d4)](_0x382aeb['length'],_0x58a991)?_0x382aeb['slice'](0x0,_0x58a991)+'...':_0x382aeb;}function extractShellValue(_0x53ed86){if(!_0x53ed86)return null;return _0x53ed86[0x1]??_0x53ed86[0x2]??_0x53ed86[0x3]??null;}function extractFirstCommandArgument(_0x55ecd0,_0x1933c6){const _0x1ada46=_0x39ca,_0x43d80f=_0x1933c6['replace'](/[.*+?^${}()|[\]\\]/g,_0x1ada46(0x1db));return extractShellValue(_0x55ecd0['match'](new RegExp('(?:^|\x5cs)'+_0x43d80f+'(?:\x5cs+(?:\x22([^\x22]+)\x22|\x27([^\x27]+)\x27|(\x5cS+)))')));}function formatCommandTarget(_0x457a85){const _0xb68fba=_0x39ca,_0x58241a={'lUTxz':_0xb68fba(0x203),'OFxmR':function(_0x3abff9,_0x5c85d7,_0x52f891){return _0x3abff9(_0x5c85d7,_0x52f891);}};if(!_0x457a85)return _0x58241a['lUTxz'];if(/^e\d+$/i[_0xb68fba(0x1ca)](_0x457a85))return _0xb68fba(0x221)+_0x457a85;return JSON[_0xb68fba(0x1cf)](_0x58241a[_0xb68fba(0x1c8)](truncatePreview,_0x457a85,0x78));}function formatRangerwrightCliLog(_0xa6ea3c,_0x19999e){const _0xa4165f=_0x39ca,_0x49c1b3={'cHERt':function(_0x29a2cd,_0x1992d4,_0x442feb){return _0x29a2cd(_0x1992d4,_0x442feb);},'JQthK':_0xa4165f(0x1df),'ODKrE':function(_0xb51f31,_0x564df2){return _0xb51f31(_0x564df2);},'axLEk':_0xa4165f(0x212),'sdCPZ':'go\x20back\x20and\x20inspect','rFhsf':'inspect','EZOzm':_0xa4165f(0x1bf),'WIQSi':_0xa4165f(0x1ed)};switch(_0x19999e){case _0xa4165f(0x1f2):{const _0x4a5cae=extractFirstCommandArgument(_0xa6ea3c,_0x19999e);return _0x4a5cae?'open\x20and\x20inspect\x20'+_0x4a5cae:_0xa4165f(0x1dc);}case _0xa4165f(0x214):return _0xa4165f(0x205)+formatCommandTarget(_0x49c1b3[_0xa4165f(0x1e6)](extractFirstCommandArgument,_0xa6ea3c,_0x19999e));case'fill':case _0x49c1b3[_0xa4165f(0x1c3)]:return _0xa4165f(0x1cc)+_0x49c1b3[_0xa4165f(0x202)](formatCommandTarget,extractFirstCommandArgument(_0xa6ea3c,_0x19999e));case _0x49c1b3[_0xa4165f(0x20a)]:return _0x49c1b3['sdCPZ'];case _0x49c1b3['rFhsf']:return _0x49c1b3[_0xa4165f(0x207)];case _0xa4165f(0x206):return'stop\x20tracing';case _0xa4165f(0x1e7):return _0xa4165f(0x1d3);case _0x49c1b3[_0xa4165f(0x1e0)]:return _0xa4165f(0x1f4);default:return _0x19999e;}}function renderScenarioSections(_0x3786e2){const _0xeef77c=_0x39ca,_0x5907ae={'JAzwv':_0xeef77c(0x1c1),'IivWb':_0xeef77c(0x21a),'YyCCd':function(_0x10add9,_0x42552b){return _0x10add9>_0x42552b;}},{checklistItem:_0x32f350,itemFeedback:_0x5d76fb}=_0x3786e2,_0x4f47e9=_0x32f350[_0xeef77c(0x1fd)]?_0xeef77c(0x20b)+_0x32f350[_0xeef77c(0x1fd)]:'';let _0x430e7e='';if(_0x5d76fb&&_0x5907ae[_0xeef77c(0x1f8)](_0x5d76fb[_0xeef77c(0x200)]['length'],0x0)){const _0x2141cf=_0x5d76fb['unaddressedComments'][_0xeef77c(0x1d9)](_0x2daf94=>{const _0x1824b2=_0xeef77c,_0x2b5fa5=new Date(_0x2daf94['createdAt'])['toLocaleDateString']('en-US',{'month':_0x5907ae[_0x1824b2(0x213)],'day':'numeric'}),_0x218064=_0x2daf94['authorName']||_0x2daf94['authorEmail']||_0x5907ae['IivWb'],_0x42d827=_0x2daf94[_0x1824b2(0x1e3)]?_0x1824b2(0x1ef)+(_0x2daf94[_0x1824b2(0x1e3)]['selector']['split']('\x20>\x20')['pop']()?.['split'](':')[0x0]||_0x1824b2(0x1c6))+_0x1824b2(0x1be)+(_0x2daf94['domRef'][_0x1824b2(0x220)]||'')['slice'](0x0,0x32)+'\x22)':'';return _0x1824b2(0x1dd)+_0x2daf94['id']+']\x20'+_0x218064+'\x20('+_0x2b5fa5+'):\x20\x22'+_0x2daf94['content']+'\x22'+_0x42d827;})[_0xeef77c(0x1e8)]('\x0a');_0x430e7e='\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'+_0x2141cf;}const _0x234c48=_0x5d76fb?.['canonicalFlow']?'\x0a\x0a##\x20Expected\x20Flow\x20(from\x20previous\x20verification)\x0a'+_0x5d76fb[_0xeef77c(0x1c4)]:'';return''+_0x32f350[_0xeef77c(0x216)]+_0x4f47e9+_0x430e7e+_0x234c48;}export function buildVerifyFeatureRangerwrightCliPrompt(_0x35dbfd){const _0x31cdef=_0x39ca,_0x4d5546={'TcnFo':'01_initial-state.png','wzcNL':function(_0x43813a,_0xb3ea61){return _0x43813a(_0xb3ea61);},'fWxLm':'about:blank','ZHMFO':function(_0x28b07c,_0x5a75cc){return _0x28b07c(_0x5a75cc);}},{checklistItem:_0x3c873e,itemFeedback:_0x49f25d,taskDescription:_0x3f0928,commandPrefix:_0x252acf,isCdpMode:_0x3fd5d4,url:_0x382fd7,cdpEndpoint:_0x45fcb2,loginInstructions:_0x30568f}=_0x35dbfd,_0x3ea79a=_0x4d5546['TcnFo'],_0x1b76dc='key_99_final-state.png',_0x2314aa=_0x3fd5d4?_0x252acf+'\x20inspect\x20--screenshot-path\x20'+quoteShellArg(_0x3ea79a):_0x252acf+_0x31cdef(0x1d8)+_0x4d5546[_0x31cdef(0x21c)](quoteShellArg,_0x382fd7??_0x4d5546['fWxLm'])+'\x20--screenshot-path\x20'+_0x4d5546[_0x31cdef(0x21c)](quoteShellArg,_0x3ea79a),_0x29b15f=_0x3fd5d4?'##\x20App\x20Context\x0aYou\x20are\x20connected\x20to\x20a\x20desktop\x20application\x20via\x20CDP\x20at\x20'+_0x45fcb2+'.\x0aThe\x20app\x20is\x20already\x20running\x20and\x20connected.\x20Start\x20with\x20inspect\x20instead\x20of\x20opening\x20a\x20URL.':'CRITICAL\x20URL\x20REQUIREMENT:\x0aYour\x20base\x20URL\x20is:\x20'+_0x382fd7+_0x31cdef(0x1d2),_0x423237=_0x30568f?'\x0a\x0a##\x20Authentication\x0aBEFORE\x20starting\x20the\x20verification\x20task,\x20authenticate\x20using\x20these\x20steps:\x0a'+_0x30568f+'\x0a\x0aAfter\x20completing\x20authentication,\x20proceed\x20with\x20the\x20verification\x20task\x20below.\x0aIf\x20authentication\x20fails,\x20return\x20evaluation\x20\x22blocked\x22\x20and\x20describe\x20the\x20auth\x20failure.':'';return'You\x20are\x20a\x20Feature\x20Review\x20Verifier.\x20Your\x20job\x20is\x20to\x20verify\x20a\x20scenario\x20by\x20executing\x20a\x20UI\x20flow\x20and\x20evaluating\x20whether\x20it\x20adequately\x20completes\x20the\x20scenario.\x0a\x0a##\x20Scenario\x20to\x20Verify\x0a'+_0x4d5546['ZHMFO'](renderScenarioSections,{'checklistItem':_0x3c873e,'itemFeedback':_0x49f25d})+'\x0a\x0a##\x20Task\x20to\x20Execute\x0a'+_0x3f0928+'\x0a\x0a'+_0x29b15f+_0x423237+'\x0a\x0a##\x20Rangerwright\x20Instructions\x0aUse\x20Bash\x20and\x20Rangerwright\x20only.\x0a\x0aEvery\x20browser\x20command\x20must\x20start\x20with\x20this\x20exact\x20literal\x20command\x20prefix:\x0a\x0a'+_0x252acf+_0x31cdef(0x1d1)+_0x2314aa+'\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'+_0x252acf+'\x20click-and-inspect\x20e37\x20--screenshot-path\x20'+_0x4d5546[_0x31cdef(0x1f1)](quoteShellArg,_0x1b76dc)+'\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(_0x106713){const _0x2c4a42=_0x39ca,_0x1416f4={'szhQG':_0x2c4a42(0x1c5)},_0x2d9d64=_0x1416f4[_0x2c4a42(0x1f0)],_0x4341ab=_0x2c4a42(0x201);return _0x2c4a42(0x1f3)+_0x106713[_0x2c4a42(0x20f)]+_0x2c4a42(0x1f6)+_0x106713['commandPrefix']+'\x20open-and-inspect\x20'+quoteShellArg(_0x106713['url'])+'\x20--screenshot-path\x20'+quoteShellArg(_0x2d9d64)+'`\x0a2.\x20Use\x20the\x20returned\x20JSON\x20to\x20find\x20the\x20\x22Learn\x20More\x22\x20link\x20ref.\x0a3.\x20Run\x20`'+_0x106713[_0x2c4a42(0x20f)]+'\x20click-and-inspect\x20<ref>\x20--screenshot-path\x20'+quoteShellArg(_0x4341ab)+'`\x0a4.\x20Return\x20immediately\x20with\x20the\x20structured\x20output.\x0a\x0aReturn\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format.';}export function extractRangerwrightScreenshotPaths(_0x48a105){const _0x3ddaff=_0x39ca,_0x6f738d={'QfLzk':function(_0x4cae8e,_0xd7737e){return _0x4cae8e(_0xd7737e);}};if(!_0x6f738d[_0x3ddaff(0x1c2)](parseRangerwrightCliCommand,_0x48a105))return[];const _0x1aaaf1=[],_0x23ef40=/--screenshot-path(?:=|\s+)(?:"([^"]*)"|'([^']*)'|(\S+))/g;for(const _0x22fdf5 of _0x48a105[_0x3ddaff(0x1de)](_0x23ef40)){const _0x1ee2ae=_0x22fdf5[0x1]??_0x22fdf5[0x2]??_0x22fdf5[0x3]??'',_0x40a90f=_0x1ee2ae['startsWith']('./')?_0x1ee2ae['slice'](0x2):_0x1ee2ae;if(!_0x40a90f||_0x40a90f[_0x3ddaff(0x1f7)]('/'))continue;if(_0x40a90f[_0x3ddaff(0x1ea)]('/')[_0x3ddaff(0x211)](_0x86a521=>_0x86a521==='..'))continue;_0x1aaaf1['push'](_0x40a90f);}return _0x1aaaf1;}export function summarizeVerifyFeatureRangerwrightCliCommandAvailability(_0x1f4a76){const _0x1c2007=_0x39ca,_0x232c7b={'AOWhS':function(_0x56b89b,_0x3b6dac){return _0x56b89b===_0x3b6dac;}},_0x47b71f=[..._0x1f4a76[_0x1c2007(0x1fe)]()]['sort']();let _0x2a52ba=0x0;for(const _0x4c3369 of _0x1f4a76[_0x1c2007(0x1d5)]()){_0x2a52ba+=_0x4c3369;}return{'cliCommandCount':_0x2a52ba,'cliCommandsSeen':_0x47b71f,'noCliCommandsCalled':_0x232c7b['AOWhS'](_0x2a52ba,0x0)};}function _0x114c(){const _0x4546d0=['GvDWM','cHERt','video-stop','join','[rangerwright-cli]\x20','split','subcommand','set','close','LahTV','\x20(on\x20element:\x20<','szhQG','ZHMFO','open-and-inspect','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','close\x20browser\x20session','914CNjMSO','\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`','startsWith','YyCCd','OUuta','commandArgs','7079070isxewR','rangerwright-cli','notes','keys','1381aTSysI','unaddressedComments','key_02_learn-more.png','ODKrE','target','rangerwright_cli_video_stop','click\x20and\x20inspect\x20','tracing-stop','EZOzm','tool_name','rangerwright_cli_tracing_stop','axLEk','\x0a\x0a##\x20Additional\x20Notes\x0a','stderr','9SuLXcr','trackPhaseEnd','commandPrefix','4713305wPcFUJ','some','back-and-inspect','JAzwv','click-and-inspect','qTjJH','description','error','iqXqk','rangerwright_cli_command','Reviewer','PmOfb','wzcNL','VlMox','3109253ikShjc','trackPhaseStart','textContent','ref\x20','902397qvfMUx','>\x20\x22','inspect\x20page','8ucenta','short','QfLzk','JQthK','canonicalFlow','01_mozilla-homepage.png','element','iAPQg','OFxmR','2319704ozLepP','test','2671710eqwirX','fill\x20','MBvSO','Bash','stringify','trackPhaseError','\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','\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.','stop\x20video\x20recording','kASHU','values','cwd','PostToolUse','\x20open-and-inspect\x20','map','stdout','\x5c$&','open\x20and\x20inspect','-\x20[','matchAll','fill-and-inspect','WIQSi','sCxen','hook_event_name','domRef','rangerwright_cli_command_failure'];_0x114c=function(){return _0x4546d0;};return _0x114c();}export function createVerifyFeatureRangerwrightCliHooks(_0x4436b2){const _0x38907d=_0x39ca,_0x5ceb3f={'VlMox':function(_0x52846a,_0x57d87e){return _0x52846a!==_0x57d87e;},'GvDWM':'Bash','wwrUf':function(_0x21a44f,_0x57262e){return _0x21a44f+_0x57262e;},'iqXqk':_0x38907d(0x219),'MBvSO':function(_0x47dd07,_0x47c0a3){return _0x47dd07(_0x47c0a3);},'OUuta':function(_0x4ed774,_0x155a8a,_0x1e46d4){return _0x4ed774(_0x155a8a,_0x1e46d4);},'iAPQg':'PostToolUseFailure','sCxen':_0x38907d(0x1fc)},_0x3bf25f=new Map(),_0x709514=async _0x336a10=>{const _0x24d40e=_0x38907d;if(_0x336a10[_0x24d40e(0x1e2)]!==_0x24d40e(0x1d7))return{};const _0x205946=_0x336a10;if(_0x5ceb3f[_0x24d40e(0x21d)](_0x205946[_0x24d40e(0x208)],_0x5ceb3f[_0x24d40e(0x1e5)]))return{};const _0x19d6d9=_0x205946['tool_input'],_0x4cb4df=extractBashCommand(_0x19d6d9);if(!_0x4cb4df)return{};const _0x147df5=parseRangerwrightCliCommand(_0x4cb4df);if(!_0x147df5)return{};return _0x3bf25f[_0x24d40e(0x1ec)](_0x147df5,_0x5ceb3f['wwrUf'](_0x3bf25f['get'](_0x147df5)||0x0,0x1)),_0x4436b2['trackPhaseStart']('rangerwright_cli_command',{'subcommand':_0x147df5}),_0x4436b2['trackPhaseEnd'](_0x5ceb3f[_0x24d40e(0x218)],{'subcommand':_0x147df5,'commandPreview':_0x5ceb3f[_0x24d40e(0x1cd)](truncatePreview,_0x4cb4df)}),console['log'](_0x24d40e(0x1e9)+_0x5ceb3f[_0x24d40e(0x1f9)](formatRangerwrightCliLog,_0x4cb4df,_0x147df5)),{};},_0x46dbed=async _0x385a70=>{const _0xc98888=_0x38907d;if(_0x385a70[_0xc98888(0x1e2)]!==_0x5ceb3f[_0xc98888(0x1c7)])return{};const _0x483725=_0x385a70;if(_0x5ceb3f[_0xc98888(0x21d)](_0x483725[_0xc98888(0x208)],_0xc98888(0x1ce)))return{};return await _0x4436b2[_0xc98888(0x1d0)](_0xc98888(0x1e4),_0x483725[_0xc98888(0x217)],{'transport':_0x5ceb3f[_0xc98888(0x1e1)],'toolName':_0x5ceb3f[_0xc98888(0x1e5)]}),{};};return{'postToolUseHook':_0x709514,'postToolUseFailureHook':_0x46dbed,'commandCounts':_0x3bf25f};}function _0x39ca(_0x1dda14,_0x509a82){_0x1dda14=_0x1dda14-0x1be;const _0x114c2c=_0x114c();let _0x39cac3=_0x114c2c[_0x1dda14];return _0x39cac3;}async function runRangerwrightLifecycleCommand(_0x1d0386){const _0x4d334c=_0x39ca,_0x1af986={'LahTV':function(_0x48dacb,_0x9865e1,_0x16c392){return _0x48dacb(_0x9865e1,_0x16c392);},'ygAJk':function(_0x554ddd,_0x229266,_0x395165){return _0x554ddd(_0x229266,_0x395165);}},{options:_0xeb7be2,commandArgs:_0xe98cab,env:_0x3b827d,telemetry:_0x2f2631,phase:_0x315fa7,metadata:_0x28d685,timeoutMs:_0x28c52f}=_0x1d0386;_0x2f2631[_0x4d334c(0x21f)](_0x315fa7,_0x28d685);try{const _0xaf196d=await runRangerwrightCliCommand({..._0xeb7be2,'commandArgs':_0xe98cab,'cwd':process[_0x4d334c(0x1d6)](),'env':_0x3b827d,'timeoutMs':_0x28c52f??RANGERWRIGHT_CLI_COMMAND_TIMEOUT_MS});_0x2f2631[_0x4d334c(0x20e)](_0x315fa7,{..._0x28d685,'subcommand':_0xaf196d['invocation'][_0x4d334c(0x1eb)],'stdoutPreview':_0x1af986[_0x4d334c(0x1ee)](truncatePreview,_0xaf196d[_0x4d334c(0x1da)],0x7d0),'stderrPreview':_0x1af986['ygAJk'](truncatePreview,_0xaf196d[_0x4d334c(0x20c)],0x7d0)});}catch(_0x25d8c7){await _0x2f2631[_0x4d334c(0x1d0)](_0x315fa7,_0x25d8c7,_0x28d685);throw _0x25d8c7;}}export async function finalizeVerifyFeatureRangerwrightCliSession(_0x3cbdf1){const _0x336553=_0x39ca,_0x4921b9={'PmOfb':_0x336553(0x204),'qTjJH':_0x336553(0x1e7),'SFwcU':function(_0x14c0b6,_0x2de3e2){return _0x14c0b6(_0x2de3e2);}},{telemetry:_0x16be33,rangerwrightOptions:_0x21f507,env:_0x258f8d,transportMetadata:_0x5e5d52}=_0x3cbdf1,_0x475c6f=[{'phase':_0x336553(0x209),'commandArgs':['tracing-stop']},{'phase':_0x4921b9[_0x336553(0x21b)],'commandArgs':[_0x4921b9[_0x336553(0x215)]]},{'phase':'rangerwright_cli_close','commandArgs':[_0x336553(0x1ed)]}];for(const _0x3d5d12 of _0x475c6f){try{await _0x4921b9['SFwcU'](runRangerwrightLifecycleCommand,{'options':_0x21f507,'commandArgs':[..._0x3d5d12[_0x336553(0x1fa)]],'env':_0x258f8d,'telemetry':_0x16be33,'phase':_0x3d5d12['phase'],'metadata':_0x5e5d52});}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 |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ranger-testing/ranger-cli",
|
|
3
|
-
"version": "3.1.7-alpha.
|
|
3
|
+
"version": "3.1.7-alpha.be2850d-64",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"bin": {
|
|
6
6
|
"ranger": "./build/cli.js",
|
|
@@ -21,12 +21,11 @@
|
|
|
21
21
|
],
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@anthropic-ai/claude-agent-sdk": "^0.1.0",
|
|
24
|
-
"@playwright/cli": "0.1.
|
|
25
|
-
"@
|
|
26
|
-
"@ranger-testing/rangerwright": "^0.0.32",
|
|
24
|
+
"@playwright/cli": "0.1.1",
|
|
25
|
+
"@ranger-testing/rangerwright": "^0.0.27",
|
|
27
26
|
"dotenv": "^16.4.5",
|
|
28
27
|
"inquirer": "^9.2.12",
|
|
29
|
-
"playwright": "1.
|
|
28
|
+
"playwright": "1.56.1",
|
|
30
29
|
"ws": "^8.20.1",
|
|
31
30
|
"yargs": "^17.7.2",
|
|
32
31
|
"zod": "^3.23.8"
|
|
@@ -46,14 +45,6 @@
|
|
|
46
45
|
"brace-expansion": "^5.0.6",
|
|
47
46
|
"fast-uri": "3.1.2",
|
|
48
47
|
"@babel/core": "^7.29.6",
|
|
49
|
-
"js-yaml": "^4.2.0"
|
|
50
|
-
"@playwright/cli": {
|
|
51
|
-
"playwright": "1.60.0",
|
|
52
|
-
"playwright-core": "1.60.0"
|
|
53
|
-
},
|
|
54
|
-
"@playwright/mcp": {
|
|
55
|
-
"playwright": "1.60.0",
|
|
56
|
-
"playwright-core": "1.60.0"
|
|
57
|
-
}
|
|
48
|
+
"js-yaml": "^4.2.0"
|
|
58
49
|
}
|
|
59
50
|
}
|