@ranger-testing/ranger-cli 1.1.4 → 1.1.6
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/README.md +73 -112
- package/build/cli.js +42 -4
- package/build/cli.js.map +1 -1
- package/build/commands/addEnv.js +1 -1
- package/build/commands/addEnv.js.map +1 -1
- package/build/commands/authEncrypt.js +1 -1
- package/build/commands/authEncrypt.js.map +1 -1
- package/build/commands/clean.js +1 -1
- package/build/commands/clean.js.map +1 -1
- package/build/commands/dataMcpServer.js +1 -1
- package/build/commands/dataMcpServer.js.map +1 -1
- package/build/commands/feature.js +142 -29
- package/build/commands/feature.js.map +1 -1
- package/build/commands/hooks/sessionStart.js +2 -0
- package/build/commands/hooks/sessionStart.js.map +1 -1
- package/build/commands/skillup.js +2 -2
- package/build/commands/skillup.js.map +1 -1
- package/build/commands/start.js +1 -1
- package/build/commands/start.js.map +1 -1
- package/build/commands/updateEnv.js +1 -1
- package/build/commands/useEnv.js +1 -1
- package/build/commands/utils/browserSessionsApi.js +1 -1
- package/build/commands/utils/cliSecret.js +1 -1
- package/build/commands/utils/featureApi.js +86 -0
- package/build/commands/utils/featureApi.js.map +1 -1
- package/build/commands/utils/featureReportGenerator.js +8 -8
- package/build/commands/utils/featureReportGenerator.js.map +1 -1
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/rangerRoot.js +18 -0
- package/build/commands/utils/rangerRoot.js.map +1 -1
- package/build/commands/utils/settings.js +20 -0
- package/build/commands/utils/settings.js.map +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/verifyFeature.js +223 -26
- package/build/commands/verifyFeature.js.map +1 -1
- package/build/commands/verifyInBrowser.js +1 -1
- package/build/skills/ranger/SKILL.md +43 -2
- package/build/skills/ranger/feedback.md +64 -0
- package/build/skills/ranger/start.md +17 -1
- package/build/skills/ranger/verify.md +15 -5
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x68a05c,_0x3a823f){const _0x56eaa7=_0x1b3f,_0x222156=_0x68a05c();while(!![]){try{const _0x3d6113=-parseInt(_0x56eaa7(0x13a))/0x1+-parseInt(_0x56eaa7(0x115))/0x2*(parseInt(_0x56eaa7(0x116))/0x3)+-parseInt(_0x56eaa7(0xdf))/0x4+-parseInt(_0x56eaa7(0xfa))/0x5+parseInt(_0x56eaa7(0x87))/0x6*(parseInt(_0x56eaa7(0x127))/0x7)+parseInt(_0x56eaa7(0x107))/0x8+parseInt(_0x56eaa7(0xf8))/0x9;if(_0x3d6113===_0x3a823f)break;else _0x222156['push'](_0x222156['shift']());}catch(_0x5c0420){_0x222156['push'](_0x222156['shift']());}}}(_0x255a,0x53d58));const _0x25ae4e=(function(){const _0x3affa4={'KaGVs':function(_0x2a00a,_0x4d4e4d){return _0x2a00a===_0x4d4e4d;},'zOBsj':'VgCft'};let _0x4aeab2=!![];return function(_0x307bf6,_0x285fa1){const _0x357967={'GZwOZ':function(_0xe44f2a,_0x54a28c){const _0x44eb57=_0x1b3f;return _0x3affa4[_0x44eb57(0x7d)](_0xe44f2a,_0x54a28c);},'wYXOh':_0x3affa4['zOBsj']},_0x1497e6=_0x4aeab2?function(){const _0x339979=_0x1b3f;if(_0x285fa1){if(_0x357967['GZwOZ'](_0x357967['wYXOh'],_0x357967[_0x339979(0xd7)])){const _0x400d88=_0x285fa1[_0x339979(0x9c)](_0x307bf6,arguments);return _0x285fa1=null,_0x400d88;}else throw new _0x3f48db(_0x339979(0x96)+_0x5b0547+_0x339979(0x144)+_0xf1cba+_0x339979(0xe7));}}:function(){};return _0x4aeab2=![],_0x1497e6;};}()),_0x23e407=_0x25ae4e(this,function(){const _0x22f999=_0x1b3f,_0x49c66f={'dCPnk':_0x22f999(0x129)};return _0x23e407[_0x22f999(0x93)]()[_0x22f999(0xff)](_0x49c66f[_0x22f999(0xc8)])[_0x22f999(0x93)]()[_0x22f999(0xb5)](_0x23e407)[_0x22f999(0xff)](_0x49c66f[_0x22f999(0xc8)]);});_0x23e407();import{query}from'@anthropic-ai/claude-agent-sdk';import{join,dirname}from'path';import{readFile,readdir,appendFile,mkdir,rm}from'fs/promises';import{existsSync}from'fs';import{execSync}from'child_process';import{tmpdir}from'os';import{loadSettings,resolveEnvVars,buildPlaywrightConfig,cleanupTempFiles,getEnvDir}from'./utils/settings.js';import{createBrowserSession,updateBrowserSession,getUploadUrls,uploadTrace,uploadConversation,uploadScreenshot,buildTraceViewerUrl,getAnthropicApiKey,computeChecksum}from'./utils/browserSessionsApi.js';import{getToken}from'./utils/keychain.js';import{getRangerDir}from'./utils/rangerRoot.js';async function zipDirectory(_0x3ec656){const _0x233141=_0x1b3f,_0x246313={'TxzHv':_0x233141(0xe6),'FCjKh':function(_0x2e3c03,_0x8faec9,_0x5058e2){return _0x2e3c03(_0x8faec9,_0x5058e2);},'CfRHm':function(_0x2c24c9,_0x472c30,_0x66284a){return _0x2c24c9(_0x472c30,_0x66284a);},'HUyYy':_0x233141(0x101)},_0x25d5b7=join(_0x3ec656,'..',_0x246313[_0x233141(0xd8)]);_0x246313[_0x233141(0xc3)](execSync,'cd\x20\x22'+_0x3ec656+_0x233141(0xb8)+_0x25d5b7+_0x233141(0xbe),{'stdio':_0x233141(0x101)});const _0x88fcaa=await readFile(_0x25d5b7);return _0x246313[_0x233141(0xe0)](execSync,'rm\x20\x22'+_0x25d5b7+'\x22',{'stdio':_0x246313[_0x233141(0x140)]}),_0x88fcaa;}function getTraceDirectory(_0x552a17){const _0x1de364=_0x1b3f,_0x10d51b={'POaKD':function(_0x1b0488,_0x16aaba,_0x58677f,_0x515ca6){return _0x1b0488(_0x16aaba,_0x58677f,_0x515ca6);},'VrmGr':function(_0x1c9f89){return _0x1c9f89();},'yyXvi':_0x1de364(0xd9)};return _0x10d51b[_0x1de364(0xf0)](join,_0x10d51b[_0x1de364(0x7f)](getRangerDir),_0x10d51b['yyXvi'],_0x552a17);}function _0x1b3f(_0x2fc958,_0x3bcdf4){_0x2fc958=_0x2fc958-0x7c;const _0x31a041=_0x255a();let _0x23e407=_0x31a041[_0x2fc958];if(_0x1b3f['uSzGDK']===undefined){var _0x25ae4e=function(_0x3b205d){const _0x4eff19='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x420be3='',_0x4c46a2='',_0x5579de=_0x420be3+_0x25ae4e;for(let _0x5bf40a=0x0,_0x3936ee,_0x6feebc,_0x6b8e1d=0x0;_0x6feebc=_0x3b205d['charAt'](_0x6b8e1d++);~_0x6feebc&&(_0x3936ee=_0x5bf40a%0x4?_0x3936ee*0x40+_0x6feebc:_0x6feebc,_0x5bf40a++%0x4)?_0x420be3+=_0x5579de['charCodeAt'](_0x6b8e1d+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x3936ee>>(-0x2*_0x5bf40a&0x6)):_0x5bf40a:0x0){_0x6feebc=_0x4eff19['indexOf'](_0x6feebc);}for(let _0x38c750=0x0,_0x3c87b7=_0x420be3['length'];_0x38c750<_0x3c87b7;_0x38c750++){_0x4c46a2+='%'+('00'+_0x420be3['charCodeAt'](_0x38c750)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4c46a2);};_0x1b3f['TzXvop']=_0x25ae4e,_0x1b3f['MnrrDx']={},_0x1b3f['uSzGDK']=!![];}const _0x255a47=_0x31a041[0x0],_0x1b3faa=_0x2fc958+_0x255a47,_0x481fe2=_0x1b3f['MnrrDx'][_0x1b3faa];if(!_0x481fe2){const _0x10e175=function(_0x33c903){this['Cvmrew']=_0x33c903,this['SbQzbI']=[0x1,0x0,0x0],this['VGtNIx']=function(){return'newState';},this['VWxLJP']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['IXsUdR']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x10e175['prototype']['JNmVqQ']=function(){const _0x435977=new RegExp(this['VWxLJP']+this['IXsUdR']),_0x4a8e69=_0x435977['test'](this['VGtNIx']['toString']())?--this['SbQzbI'][0x1]:--this['SbQzbI'][0x0];return this['PlLHuv'](_0x4a8e69);},_0x10e175['prototype']['PlLHuv']=function(_0x4f2703){if(!Boolean(~_0x4f2703))return _0x4f2703;return this['kuxBYq'](this['Cvmrew']);},_0x10e175['prototype']['kuxBYq']=function(_0x1c18c1){for(let _0x5da8f1=0x0,_0x3302ca=this['SbQzbI']['length'];_0x5da8f1<_0x3302ca;_0x5da8f1++){this['SbQzbI']['push'](Math['round'](Math['random']())),_0x3302ca=this['SbQzbI']['length'];}return _0x1c18c1(this['SbQzbI'][0x0]);},new _0x10e175(_0x1b3f)['JNmVqQ'](),_0x23e407=_0x1b3f['TzXvop'](_0x23e407),_0x1b3f['MnrrDx'][_0x1b3faa]=_0x23e407;}else _0x23e407=_0x481fe2;return _0x23e407;}function _0x255a(){const _0x5834bd=['Dg9mB3DLCKnHC2u','EMLW','u2virLK','C3rYAw5N','BuXlyLq','wNvlyuO','Bg9N','D3nYtLm','CgzKwKG','qwnyrem','ufbTrg0','A1PAuhi','sLPowva','y2XHDwrLlw9WDxmTnc01','ndG3nZeYA2ftz1r2','C2vZC2LVBKLK','lNbUzW','tgv3vMi','zxjYB3i','ANnVBMW','sfv5wxK','DhD2Dhe','Dg9gEwS','y29UzMLNugf0Aa','iI4GuNvUoIbYyw5NzxiGy29UzMLNihnLDca','weXksMi','s2fhvNm','BgvUz3rO','vNjTr3i','D3viugq','C3rYDwn0DxjLzf9VDxrWDxq','qwHpAfy','B3H5Aha','BgnyqNe','r1LeEe4','DMPkrfC','mtjXAKnvreq','tvvxwuW','vw5RBM93BIbLCNjVCG','iIbUB3qGzM91BMqUifj1BJOGCMfUz2vYigfKzcbLBNyG','sw9QC0y','qxj5q0S','ls1JB25MAwC','DgvnseS','zw52','BwfW','EeXbzeO','wM51t1y','Dg9tDhjPBMC','DhjPBq','AM9PBG','tM8GyMfZzvvYBcbJB25MAwD1CMvKigzVCIbLBNzPCM9UBwvUDcaI','uwjlAge','yM9VBgvHBG','zxjYB3jZ','ELLMs1C','tM8GCMvZDwX0ihjLy2vPDMvKigzYB20GywDLBNq','yxbWBhK','sMLPyNq','rNfUtKi','z1rutvu','DhLWzq','AgTrAfa','CK9ctge','CMfJzq','CvrVuKe','u3rYDwn0DxjLze91Dhb1Da','z0Xzzgi','se9qzhe','wuvowKS','DfH5seW','sKj0sKW','sxrXExq','AKTlDMi','BerHwMG','t1bAtw8','ANnVBL9Zy2HLBwe','rensA00','vhHbrLy','tfzNB3a','y0PTsgS','veLqzfe','y29UC3rYDwn0B3i','DxbSB2fKvxjS','C3vJy2vZCW','iIaMjIb6AxaGlxiGiG','vM9qCKi','A1DfDvC','C3vIDhLWzq','sNPzyNq','A1rbvgi','iIaU','Dg9VBf91C2u','shLztwq','yM1etvG','BhjRt3K','rKnQs2G','q2jwyKq','rM1Juuu','AfDVtxu','AK1rB04','zenqBMS','txnVt2y','tM8GqvbjihrVA2vUignVBMzPz3vYzwqUifj1BJOGCMfUz2vYihn0yxj0idX0B2TLBJ4','C2vZC2LVBKrPCG','mNWZFdv8mxW0Fda','Bwryrg8','vMvYAwzPy2f0Aw9UigzHAwXLzdOG','D0jjwhq','DxPpA2m','cI0Gww91ig1HEsbptKXzig5HDMLNyxrLihrVihbHDgHZihvUzgvYihrOAxmGyMfZzsbvuKWGkhnHBwuGChjVDg9JB2WSigHVC3qSigfUzcbWB3j0kqOTiezVCIbLEgfTCgXLlcbPzIb0AguGyMfZzsbvuKWGAxmGiMH0Dha6lY9SB2nHBgHVC3q6mZaWmciSihLVDsbJyw4GBMf2AwDHDguGDg8GiMH0Dha6lY9SB2nHBgHVC3q6mZaWmc9OB21LiIWGiMH0Dha6lY9SB2nHBgHVC3q6mZaWmc9Zzxr0Aw5NCYiSigv0yY4klsbetYbot1qGBMf2AwDHDguGDg8Gyw55igrPzMzLCMvUDcbKB21HAw4SigHVC3qSig9YihbVCNqGDw5KzxiGyw55ignPCMn1Bxn0yw5Jzxmklsbjr05puKuGyw55ifvsthmGzNjVBsbWCM9KDwn0igrVy3vTzw50yxrPB24Gkg1JCf9FCMfUz2vYx19NzxrFChjVzhvJDf9KB2nZksb0Agf0igHHDMuGysbKAwzMzxjLBNqGyMfZzsbvuKWklsbjzIbKB2n1BwvUDgf0Aw9Uig9YignVzguGzgLMzNmGC3vNz2vZDcbHihbHDgGGzxHPC3rZicHLlMCUlcaIl2rHC2HIB2fYzciPlcb5B3uGBwf5ig5HDMLNyxrLihrVihrOyxqGCgf0AcbptKXzihvUzgvYihrOzsbIyxnLifvstcbHyM92zqOTifrOzsbIyxnLifvstcbHyM92zsbPCYb0AguGt05mwsbHDxrOB3jPEMvKigvUDMLYB25Tzw50igzVCIb0AgLZihzLCMLMAwnHDgLVBGOkq1jjveLdquWGsu5tvfjvq1rjt05toGOXlIboyxzPz2f0zsb0BYb0AguGvvjmigfIB3zLihvZAw5NigjYB3DZzxjFBMf2AwDHDgukmI4GvgfRzsbHihnUyxbZAg90ihDPDgGGyNjVD3nLCL9ZBMfWC2HVDcb0BYbZzwuGDgHLihbHz2ukmY4GrxHLy3v0zsb0AguGDgfZAYbZDgvWlwj5lxn0zxaGDxnPBMCGyNjVD3nLCIb0B29SCWO0lIbjzIb5B3uGzMLUzcbbtLKGyNvNCYWGCMvWB3j0igLTBwvKAwf0zwX5ihDPDgGGC2v2zxjPDhKkns4GuMv0DxjUihLVDxiGzMLUzgLUz3mGAw4GDgHLihn0CNvJDhvYzwqGB3v0Chv0igzVCM1HDaOkww91CIb0yxnRoIa','vND0uey','vxHgD3a','q1LiqNm','De5Oteu','y29UDgvUDa','D1Lyt2G','vhH6shy','C2vZC2LVBNm','wvrrzhO','BwvZC2fNzq','zgvZy3jPChrPB24','ExDSv1y','DgnjCLu','mJm5mdGZmMLktfnlsa','q2zssg0','uKfYtKG','DNPZzLK','qwDLBNqGzxHLy3v0Aw9UihrPBwvKig91DcbHzNrLCIa1osbTAw51DgvZ','yMfZzvvYBa','zw5KC1DPDgG','DhjHy2uTDxbSB2fKlNPPCa','igjHC2vvCMWGphvYBd4','vfnOquS','B3jpwxG','ywn0AxzLlwvUDI50Ehq','DgHLBG','s0LvthC','veLUC1G','zhvYyxrPB25nCW','vvzXyuu','ue9Hs0q','CfDXtxq','y0HpCgu','ww91igfYzsbHifvjifzLCMLMAwvYlIbzB3vYie9otfKGAM9IigLZihrVignSAwnRihrOCM91z2GGysbvssbMBg93igfUzcbYzxbVCNqGyNvNCYbPBw1LzgLHDgvSEsb3AgvUigzVDw5KlGOkq1jjveLdquWGvvjmifjfuvvjuKvnru5uoGPzB3vYigjHC2uGvvjmigLZoIa','CMfUz2vYlwjYB3DZzxiTC2vZC2LVBNm','ufj1q0O','BM93','twrOuLi','mtaWmtu0nZbMC3ffvNC','q25HDKq','mtm3mJK2nvvmzNLwra','weXkANa','tufkt1i','tM8Gywn0AxzLigvUDMLYB25Tzw50lIbsDw46ihjHBMDLCIb1C2uGpgvUDI1Uyw1LpG','zLHOB0G','C2vHCMnO','AuTisgC','CgLWzq','sgfTwfu','BwnWx19Yyw5NzxiTyNjVD3nLCL9FkG','Aw5WDxq','wLfWtLi','cLvstdOG','mtm2ntC2ohzvzMn1yW','DgfZAW','yxnZAxn0yw50','tfP6BKe','y29UDMvYC2f0Aw9UlMPZB25S','CuTfqLi','Eu9SAvm','swrHru4','BNb4','DhjHy2vwAwv3zxjvCMW','DMLrt3K','vMH5EwO','D2DXsvK','zMLSDgvY','nti0ntyWthbUt2Dp','m25erg9yua','s05Nquy','zvvxD0y','sfH2D3O','DxjS','whbNDxm','qKXpq0TfuG','DhbOz3C','EMHAExa','zMfPBgvK','BMfTzq','qhjHBMDLCI10zxn0Aw5Nl3bSyxL3CMLNAhq','ywrir3a','ueXxwKK','y1jTChC','ruDsquW','DLveAum','mJm4nZq0mxLJyxbvBG','C3vTBwfYEq','kcGOlISPkYKRksSK','tuLot1i','Dgv4Da'];_0x255a=function(){return _0x5834bd;};return _0x255a();}function getConversationFilePath(_0x55e864){const _0x2bbb29=_0x1b3f,_0x32bc4b={'eUWwF':function(_0x21d7b7,_0x1c5985,_0x5eb544,_0x23618d,_0x55fc76){return _0x21d7b7(_0x1c5985,_0x5eb544,_0x23618d,_0x55fc76);},'mdXDo':function(_0x5181cd){return _0x5181cd();},'kTATb':_0x2bbb29(0x10b)};return _0x32bc4b[_0x2bbb29(0x118)](join,_0x32bc4b[_0x2bbb29(0xcd)](tmpdir),_0x2bbb29(0xf4),_0x55e864,_0x32bc4b[_0x2bbb29(0xbd)]);}export async function verifyInBrowser(_0x325d08,_0x16af78={}){const _0x5a4f74=_0x1b3f,_0x54abdd={'LVgop':function(_0x464f6f,_0x373c5b,_0x49c4dc,_0x3c992c,_0x2d8a16){return _0x464f6f(_0x373c5b,_0x49c4dc,_0x3c992c,_0x2d8a16);},'AhOhV':function(_0x463d07){return _0x463d07();},'Xpgus':_0x5a4f74(0xf4),'AfYdw':_0x5a4f74(0x10b),'VwtPF':_0x5a4f74(0xbf),'wBIXt':function(_0x58e3b3,_0x2dfd71){return _0x58e3b3===_0x2dfd71;},'mLKbT':_0x5a4f74(0xa5),'qVlEP':_0x5a4f74(0xca),'HamXU':'czzmG','HOPdq':function(_0x4efca1,_0x15ae83){return _0x4efca1(_0x15ae83);},'lcXBq':_0x5a4f74(0xe3),'GYDxN':function(_0x4305ec,_0x476267,_0x4f60c9){return _0x4305ec(_0x476267,_0x4f60c9);},'hkQhP':_0x5a4f74(0xcc),'ZQpNR':function(_0x3f8595,_0x39339a){return _0x3f8595(_0x39339a);},'IojsF':function(_0x37d754,_0x5b62e3){return _0x37d754(_0x5b62e3);},'oxyhp':function(_0x129a75,_0xc4958d){return _0x129a75!==_0xc4958d;},'zhZyp':_0x5a4f74(0x100),'pFOJb':function(_0x5940ae,_0x175e06){return _0x5940ae!==_0x175e06;},'nNNDw':_0x5a4f74(0x126),'Wrgbg':'jKKGe','HGkJw':function(_0x48e6f7,_0x5a511d){return _0x48e6f7+_0x5a511d;},'EGRAL':'utf-8','HFVof':_0x5a4f74(0x109),'UxFwp':function(_0x4b3ba7,_0x3cbdfe){return _0x4b3ba7===_0x3cbdfe;},'KIULw':function(_0x6b3e39,_0x460223){return _0x6b3e39===_0x460223;},'JZNYP':_0x5a4f74(0xc2),'twvtq':_0x5a4f74(0x8e),'ywlWV':function(_0x2359b3,_0x56c1b3){return _0x2359b3>_0x56c1b3;},'YENZK':'result','MUWYL':'nujnJ','OPZMo':function(_0x4896b0,_0x4a0b3c){return _0x4896b0!==_0x4a0b3c;},'gvtpr':_0x5a4f74(0xb7),'viQOy':function(_0x28bda8,_0x3ef0a6){return _0x28bda8===_0x3ef0a6;},'IdaEN':function(_0x40e57d,_0x1e63a8){return _0x40e57d===_0x1e63a8;},'QbKha':_0x5a4f74(0xc0),'gTTMU':_0x5a4f74(0xb4),'kWEuW':_0x5a4f74(0xfd),'hfVZA':_0x5a4f74(0x129),'jKKvb':function(_0x1b2e87,_0x1a781f){return _0x1b2e87===_0x1a781f;},'lDaZh':_0x5a4f74(0xa6),'hWoMu':_0x5a4f74(0xea),'KNgAF':function(_0x24c25d,_0x22b985){return _0x24c25d(_0x22b985);},'fXhoH':function(_0x593345,_0x2dfdf8,_0x2127b4){return _0x593345(_0x2dfdf8,_0x2127b4);},'adHGp':function(_0x3caef5,_0x336e06){return _0x3caef5(_0x336e06);},'uzOkc':function(_0x337ca5,_0xf0c245){return _0x337ca5(_0xf0c245);},'cJmHk':function(_0x6e1268,_0x291ae7){return _0x6e1268(_0x291ae7);},'CbVbD':function(_0x456a07,_0xb0bf3c){return _0x456a07(_0xb0bf3c);},'xLAdJ':function(_0x281b08){return _0x281b08();},'YTQdz':_0x5a4f74(0x10f),'wgqIY':_0x5a4f74(0x121),'FmcQE':'run-mcp-server','LjWfb':_0x5a4f74(0x8d),'wsrNS':'keSPP','VCksw':_0x5a4f74(0xa2),'kZkvq':function(_0x13edd2){return _0x13edd2();},'Vhyyj':function(_0x16aaa3,_0x508f1a){return _0x16aaa3!==_0x508f1a;},'sWiQG':_0x5a4f74(0x12e),'CnavD':function(_0x2ef890,_0x42a2d8){return _0x2ef890 instanceof _0x42a2d8;},'toFyk':function(_0x184072,_0x1ad774,_0x456701){return _0x184072(_0x1ad774,_0x456701);},'cRmpw':'object','pfdZH':_0x5a4f74(0x98),'kZZPr':_0x5a4f74(0x12f),'tcIrU':_0x5a4f74(0x11c),'cHOpe':_0x5a4f74(0xfc),'FqnNB':_0x5a4f74(0x12a),'PRuCJ':'severity','BXAJT':_0x5a4f74(0xdc),'TxAFV':_0x5a4f74(0x128),'phfgq':_0x5a4f74(0x139),'YESZu':_0x5a4f74(0xaf),'TShAK':function(_0x16509f,_0x38f618,_0x278600){return _0x16509f(_0x38f618,_0x278600);},'qToRA':function(_0xb481ae,_0x311b19){return _0xb481ae*_0x311b19;},'Itqyt':function(_0x5010e1,_0x19815a){return _0x5010e1(_0x19815a);},'pWqMt':function(_0x402abf,_0x2dee86){return _0x402abf-_0x2dee86;},'AryCK':_0x5a4f74(0xd5),'ZuKaJ':function(_0x26f0cc,_0x1f013a){return _0x26f0cc(_0x1f013a);},'LewVb':function(_0x3bcc04,_0x1a92d7){return _0x3bcc04(_0x1a92d7);},'TInsX':'JQbwI','orOYx':function(_0x2de0c7,_0x5eebab){return _0x2de0c7(_0x5eebab);},'XLJjp':_0x5a4f74(0x12d),'qKEBR':_0x5a4f74(0x86),'vzsfY':function(_0x5e115b,_0x2d8a0e,_0x368eac){return _0x5e115b(_0x2d8a0e,_0x368eac);},'AcXDC':function(_0x13328e,_0x22e8cc){return _0x13328e(_0x22e8cc);},'CYHBs':function(_0x1930f3,_0x4e96de){return _0x1930f3(_0x4e96de);},'tphgw':function(_0x4fc3f0,_0x207a23,_0xd1303f,_0x4e3445,_0xe52171){return _0x4fc3f0(_0x207a23,_0xd1303f,_0x4e3445,_0xe52171);},'DCRkM':function(_0x14a711,_0x480e0f){return _0x14a711(_0x480e0f);},'pFtty':function(_0x183902,_0x4fdfd9){return _0x183902(_0x4fdfd9);},'LZznA':_0x5a4f74(0x13f),'MsoOf':_0x5a4f74(0x11f),'tkecg':'completed','ZnuOV':function(_0x19da1a,_0x52a0b5){return _0x19da1a||_0x52a0b5;},'yOliS':function(_0x180d5,_0x1aeb63){return _0x180d5&&_0x1aeb63;},'Jiibt':_0x5a4f74(0x9b),'PPmDm':'ZiuZe','JBtJL':_0x5a4f74(0x119),'tXyHL':function(_0x33651e,_0x35471d){return _0x33651e(_0x35471d);},'PLWZI':_0x5a4f74(0xe1)},{env:_0x20a760,headed:headed=![]}=_0x16af78;let _0x29c6ac;if(_0x20a760)_0x29c6ac=_0x20a760;else{if(_0x54abdd['lDaZh']===_0x54abdd[_0x5a4f74(0xad)]){const _0x318bc1=join(getRangerDir(),_0x54abdd[_0x5a4f74(0xc6)]);if(!_0x54abdd[_0x5a4f74(0x117)](existsSync,_0x318bc1))throw new Error(_0x54abdd[_0x5a4f74(0xba)]);_0x29c6ac=await _0x54abdd[_0x5a4f74(0xfe)](readFile,_0x318bc1,_0x54abdd[_0x5a4f74(0x125)])[_0x5a4f74(0xeb)](_0x3ad1aa=>_0x3ad1aa[_0x5a4f74(0x94)]());}else return _0x54abdd[_0x5a4f74(0xb2)](_0x3d6950,_0x54abdd[_0x5a4f74(0x82)](_0x4f7561),_0x54abdd[_0x5a4f74(0x11b)],_0x21043c,_0x54abdd['AfYdw']);}const _0x173b50=_0x54abdd[_0x5a4f74(0x122)](getEnvDir,_0x29c6ac);if(!_0x54abdd[_0x5a4f74(0xd0)](existsSync,_0x173b50))throw new Error('Environment\x20\x22'+_0x29c6ac+_0x5a4f74(0x8a)+_0x29c6ac);const _0x33af59=await _0x54abdd[_0x5a4f74(0xb3)](loadSettings,_0x29c6ac),_0x57eeff=_0x54abdd[_0x5a4f74(0xc4)](resolveEnvVars,_0x33af59),_0x790a2=_0x57eeff[_0x5a4f74(0xe4)];if(!_0x790a2)throw new Error(_0x5a4f74(0x96)+_0x29c6ac+_0x5a4f74(0x144)+_0x29c6ac+_0x5a4f74(0xe7));const _0x325179=await _0x54abdd[_0x5a4f74(0x91)](getToken);if(!_0x325179)throw new Error(_0x54abdd['qVlEP']);const _0xbc3270=await _0x54abdd[_0x5a4f74(0xa7)](createBrowserSession,{'environmentName':_0x29c6ac,'settings':_0x57eeff,'task':_0x325d08,'url':_0x790a2});console[_0x5a4f74(0x132)]('Browser\x20session\x20created:\x20'+_0xbc3270['id']);const _0x31a66f=await _0x54abdd[_0x5a4f74(0xb2)](buildPlaywrightConfig,_0x57eeff,_0x29c6ac,_0xbc3270?.['id'],headed),_0x20d0a1={'command':_0x54abdd[_0x5a4f74(0xda)],'args':[_0x54abdd[_0x5a4f74(0x113)],_0x54abdd[_0x5a4f74(0xc5)],_0x54abdd['LjWfb'],_0x31a66f[_0x5a4f74(0x143)]]},_0x16133d=Date[_0x5a4f74(0xf6)]();let _0x349894;try{if(_0x54abdd[_0x5a4f74(0x133)]!==_0x54abdd['VCksw'])_0x349894=await _0x54abdd['kZkvq'](getAnthropicApiKey);else for(const _0x5393d9 of _0x586d5a[_0x5a4f74(0xdb)]['content']){_0x5393d9['type']===_0x54abdd[_0x5a4f74(0xd2)]&&_0x54abdd[_0x5a4f74(0xcf)](_0x5393d9[_0x5a4f74(0x120)],_0x54abdd[_0x5a4f74(0x130)])&&_0x5393d9[_0x5a4f74(0x104)]&&(_0xcebcf9=_0x5393d9['input']);}}catch(_0x17e483){if(_0x54abdd[_0x5a4f74(0x112)](_0x54abdd['sWiQG'],'SeHFY')){const _0x5b3a16=_0x13c632[_0x5a4f74(0x9c)](_0x49ce52,arguments);return _0x594cbf=null,_0x5b3a16;}else{const _0x145e3b=_0x54abdd['CnavD'](_0x17e483,Error)?_0x17e483[_0x5a4f74(0xdb)]:String(_0x17e483),_0x130def='Failed\x20to\x20fetch\x20Anthropic\x20API\x20key\x20from\x20Ranger\x20API.\x20'+_0x145e3b;try{await _0x54abdd[_0x5a4f74(0x142)](updateBrowserSession,_0xbc3270['id'],{'status':_0x5a4f74(0x11f),'durationMs':Date[_0x5a4f74(0xf6)]()-_0x16133d,'errorMessage':_0x130def});}catch{}throw new Error(_0x130def);}}const _0x21042b=_0x5a4f74(0xf3)+_0x790a2+_0x5a4f74(0xd1)+_0x325d08+_0x5a4f74(0x106)+_0x790a2,_0x2b26ce={'type':_0x54abdd[_0x5a4f74(0x124)],'properties':{'success':{'type':_0x54abdd[_0x5a4f74(0x134)]},'summary':{'type':_0x54abdd[_0x5a4f74(0x137)]},'issues':{'type':'array','items':{'type':_0x54abdd['cRmpw'],'properties':{'severity':{'type':_0x54abdd[_0x5a4f74(0x137)],'enum':[_0x54abdd[_0x5a4f74(0xde)],_0x54abdd[_0x5a4f74(0xf2)],_0x54abdd[_0x5a4f74(0x9e)]]},'description':{'type':_0x54abdd[_0x5a4f74(0x137)]},'screenshot':{'type':'string'}},'required':[_0x54abdd[_0x5a4f74(0xf5)],_0x54abdd['BXAJT']]}},'screenshots':{'type':'array','items':{'type':_0x54abdd[_0x5a4f74(0x137)]}}},'required':[_0x5a4f74(0xb7),_0x54abdd[_0x5a4f74(0xb1)]]},_0x40b064=_0x54abdd[_0x5a4f74(0xb3)](query,{'prompt':_0x21042b,'options':{'cwd':process['cwd'](),'model':_0x54abdd['phfgq'],'mcpServers':{'ranger-browser':_0x20d0a1},'tools':[_0x5a4f74(0x103)],'permissionMode':'bypassPermissions','allowDangerouslySkipPermissions':!![],'outputFormat':{'type':_0x54abdd['YESZu'],'schema':_0x2b26ce},'env':{...process[_0x5a4f74(0x8f)],'ANTHROPIC_API_KEY':_0x349894},'persistSession':![]}});let _0x569026=null,_0x52a9f2=null,_0x25ec78=null;const _0x3460ff=_0x54abdd[_0x5a4f74(0x122)](getConversationFilePath,_0xbc3270['id']),_0x38c935=_0x54abdd[_0x5a4f74(0xa7)](dirname,_0x3460ff);await _0x54abdd[_0x5a4f74(0xe8)](mkdir,_0x38c935,{'recursive':!![]});const _0x1c2490=_0x54abdd[_0x5a4f74(0xa4)](0x3b*0x3c,0x3e8),_0x13bb1e=new Promise((_0x1fa93a,_0x2f6cce)=>{const _0x1e0802=_0x5a4f74,_0x27bddc={'JzYbt':_0x54abdd['qVlEP'],'VoPrB':_0x54abdd[_0x1e0802(0x102)],'jMQoN':'xfNNr','XLJJb':function(_0x46650e,_0x30d50a){return _0x54abdd['HOPdq'](_0x46650e,_0x30d50a);},'UVqaE':_0x54abdd[_0x1e0802(0x84)]};_0x54abdd[_0x1e0802(0x85)](setTimeout,()=>{const _0x26c12d=_0x1e0802,_0x6e7fe5={'bmDMX':_0x27bddc[_0x26c12d(0xbc)]};if(_0x27bddc[_0x26c12d(0xb9)]===_0x27bddc[_0x26c12d(0xc7)])throw new _0x490e07(_0x6e7fe5[_0x26c12d(0xc1)]);else _0x27bddc[_0x26c12d(0x7c)](_0x2f6cce,new Error(_0x27bddc[_0x26c12d(0xef)]));},_0x1c2490);});try{try{await Promise[_0x5a4f74(0xa3)]([((async()=>{const _0x16ae61=_0x5a4f74,_0x1713ef={'IpWhD':function(_0x1e2d80,_0x3aa365,_0x3485ee){return _0x1e2d80(_0x3aa365,_0x3485ee);}};for await(const _0xb72699 of _0x40b064){if(_0x54abdd[_0x16ae61(0x83)](_0x54abdd[_0x16ae61(0x11e)],_0x54abdd[_0x16ae61(0x11e)])){const _0x37bee7=_0x54abdd[_0x16ae61(0xa1)]['split']('|');let _0x195b68=0x0;while(!![]){switch(_0x37bee7[_0x195b68++]){case'0':_0x202f3c['url']=_0x104ac6;continue;case'1':_0x6528bf[_0x16ae61(0xee)]=_0x38abfa;continue;case'2':_0x28c919['traceViewerUrl']=_0x54abdd['HOPdq'](_0x5d1e42,_0x1ebf0a);continue;case'3':_0x469035[_0x16ae61(0x13b)]=_0x2c2454['id'];continue;case'4':_0x2ddb37['task']=_0x39cbc3;continue;case'5':_0x4d9ed0[_0x16ae61(0xcb)]=_0x54abdd[_0x16ae61(0x105)](_0x3037be,_0x57d543['id']);continue;}break;}}else{try{if(_0x54abdd['pFOJb'](_0x54abdd['nNNDw'],_0x54abdd['Wrgbg'])){const _0x35dfe9=_0x54abdd['HGkJw'](JSON['stringify'](_0xb72699),'\x0a');await appendFile(_0x3460ff,_0x35dfe9,_0x54abdd[_0x16ae61(0x125)]);}else _0x54abdd[_0x16ae61(0xa7)](_0x35e96d,new _0x8b8d97(_0x16ae61(0xe3)));}catch{}const _0x5db9e3=_0xb72699;if(_0x54abdd[_0x16ae61(0xcf)](_0x5db9e3[_0x16ae61(0xa0)],_0x54abdd['HFVof'])&&_0x5db9e3[_0x16ae61(0xdb)]?.['content'])for(const _0x1c9729 of _0x5db9e3[_0x16ae61(0xdb)]['content']){if(_0x54abdd[_0x16ae61(0xd3)](_0x1c9729['type'],_0x54abdd[_0x16ae61(0xd2)])&&_0x54abdd[_0x16ae61(0xec)](_0x1c9729['name'],_0x16ae61(0xa5))&&_0x1c9729[_0x16ae61(0x104)]){if(_0x54abdd[_0x16ae61(0xcf)](_0x16ae61(0xf7),_0x54abdd[_0x16ae61(0x138)])){if(_0x29da7e){const _0x26a3ff=_0x4a269d['apply'](_0x394072,arguments);return _0x430995=null,_0x26a3ff;}}else _0x25ec78=_0x1c9729[_0x16ae61(0x104)];}}if(_0x5db9e3[_0x16ae61(0x13e)]){let _0x9b906=_0x5db9e3['error'];if(_0x5db9e3[_0x16ae61(0xdb)]?.[_0x16ae61(0xd6)]&&Array['isArray'](_0x5db9e3[_0x16ae61(0xdb)][_0x16ae61(0xd6)])){if(_0x54abdd[_0x16ae61(0x141)]!==_0x16ae61(0x8e))_0x23d458=_0x29b47d[_0x16ae61(0x95)]('\x20');else{const _0x150430=_0x5db9e3[_0x16ae61(0xdb)][_0x16ae61(0xd6)][_0x16ae61(0x114)](_0x1654e9=>_0x1654e9[_0x16ae61(0xa0)]===_0x16ae61(0x12b))[_0x16ae61(0x90)](_0x3ebce2=>_0x3ebce2[_0x16ae61(0x12b)]||'')['filter'](Boolean);_0x54abdd[_0x16ae61(0xdd)](_0x150430['length'],0x0)&&(_0x9b906=_0x150430['join']('\x20'));}}_0x52a9f2=_0x9b906;}if(_0x54abdd[_0x16ae61(0xec)](_0xb72699['type'],_0x54abdd[_0x16ae61(0xa8)])){if('HxPnR'!==_0x54abdd[_0x16ae61(0x88)]){if(_0xb72699[_0x16ae61(0xbb)]===_0x16ae61(0xb7)&&_0xb72699['structured_output'])_0x569026=_0xb72699['structured_output'];else{if(_0x54abdd[_0x16ae61(0xae)](_0xb72699[_0x16ae61(0xbb)],_0x54abdd['gvtpr'])){if(_0x25ec78&&_0x54abdd[_0x16ae61(0x111)](_0xb72699[_0x16ae61(0x99)]?.[_0x16ae61(0x7e)],0x0)){if(_0x54abdd[_0x16ae61(0x10e)](_0x16ae61(0x80),_0x54abdd[_0x16ae61(0x97)])){const _0x3c4583={'zYfKW':function(_0x50b414,_0x1a2500){return _0x50b414(_0x1a2500);}};_0x1713ef['IpWhD'](_0x3db2ef,()=>{const _0x1848b5=_0x16ae61;_0x3c4583[_0x1848b5(0x9a)](_0x35cf83,new _0x490f8e('Agent\x20execution\x20timed\x20out\x20after\x2059\x20minutes'));},_0x3ea3d9);}else _0x569026=_0x25ec78,_0x52a9f2=null;}else!_0x52a9f2&&(_0x54abdd[_0x16ae61(0x9f)]!==_0x54abdd[_0x16ae61(0x9f)]?_0x2f3380=_0x2f47d0[_0x16ae61(0x81)]:_0x52a9f2=_0xb72699[_0x16ae61(0x99)]?.[_0x16ae61(0x95)](',\x20')||_0x16ae61(0x89));}}}else _0x5e43ad=_0xf075fb instanceof _0x21c718?_0x270ff8[_0x16ae61(0xdb)]:_0x54abdd[_0x16ae61(0x8b)](_0x3f49a2,_0x1f9e0b);}}}})()),_0x13bb1e]);}catch(_0x470294){_0x52a9f2=_0x54abdd[_0x5a4f74(0xf9)](_0x470294,Error)?_0x470294[_0x5a4f74(0xdb)]:_0x54abdd[_0x5a4f74(0xab)](String,_0x470294);}const _0x301ca4=_0x54abdd[_0x5a4f74(0xf1)](Date['now'](),_0x16133d);let _0x45ef83;try{if(_0x54abdd[_0x5a4f74(0x111)](_0x54abdd['AryCK'],_0x54abdd[_0x5a4f74(0x8c)])){const _0x289b3d=_0x54abdd[_0x5a4f74(0xc4)](getTraceDirectory,_0xbc3270['id']);if(_0x54abdd[_0x5a4f74(0x131)](existsSync,_0x289b3d)){const _0x34d174=await _0x54abdd['LewVb'](readdir,_0x289b3d);if(_0x54abdd[_0x5a4f74(0xdd)](_0x34d174['length'],0x0)){if(_0x54abdd[_0x5a4f74(0xac)](_0x54abdd[_0x5a4f74(0xed)],_0x54abdd['TInsX'])){const _0xa0594b=await _0x54abdd[_0x5a4f74(0xe9)](zipDirectory,_0x289b3d),_0x1deafd=computeChecksum(_0xa0594b),_0x942e90=await _0x54abdd['LVgop'](getUploadUrls,_0xbc3270['id'],'trace.zip',_0x54abdd[_0x5a4f74(0xfb)],{'size':_0xa0594b[_0x5a4f74(0x7e)],'checksum':_0x1deafd});await uploadTrace(_0x942e90[_0x5a4f74(0xb6)],_0xa0594b),_0x45ef83=_0x942e90['downloadUrl'];const _0x312cdc=_0x34d174[_0x5a4f74(0x114)](_0x28b520=>_0x28b520[_0x5a4f74(0x12c)]()[_0x5a4f74(0xe5)](_0x5a4f74(0x13c)));for(const _0x4fefd7 of _0x312cdc){try{if('vjJDW'===_0x54abdd[_0x5a4f74(0x10c)]){const _0xdd805c=_0x54abdd[_0x5a4f74(0xe2)](join,_0x289b3d,_0x4fefd7),_0x1e3585=await _0x54abdd[_0x5a4f74(0x135)](readFile,_0xdd805c),_0x274f0c=_0x54abdd[_0x5a4f74(0xd4)](computeChecksum,_0x1e3585),_0x1b9132=await _0x54abdd[_0x5a4f74(0x11d)](getUploadUrls,_0xbc3270['id'],_0x4fefd7,'png',{'size':_0x1e3585[_0x5a4f74(0x7e)],'checksum':_0x274f0c});await _0x54abdd[_0x5a4f74(0x85)](uploadScreenshot,_0x1b9132['uploadUrl'],_0x1e3585);}else throw new _0x109159(_0x5a4f74(0xce)+_0x17af03);}catch{}}}else _0x126578=_0x2f7bfc,_0x560b2b=null;}}if(_0x54abdd[_0x5a4f74(0xb0)](existsSync,_0x3460ff))try{const _0xf840cb=await _0x54abdd['adHGp'](readFile,_0x3460ff),_0x2e7cd6=_0x54abdd['pFtty'](computeChecksum,_0xf840cb),_0x6abd02=await getUploadUrls(_0xbc3270['id'],_0x54abdd['AfYdw'],_0x54abdd[_0x5a4f74(0x10a)],{'size':_0xf840cb[_0x5a4f74(0x7e)],'checksum':_0x2e7cd6});await _0x54abdd[_0x5a4f74(0xe8)](uploadConversation,_0x6abd02[_0x5a4f74(0xb6)],_0xf840cb);}catch{}const _0x23a936=_0x569026,_0x16990c={'status':_0x52a9f2?_0x54abdd[_0x5a4f74(0xc9)]:_0x54abdd['tkecg'],'durationMs':_0x301ca4,'agentResponse':_0x23a936?.[_0x5a4f74(0x128)]||_0x52a9f2||undefined,'errorMessage':_0x54abdd[_0x5a4f74(0x92)](_0x52a9f2,undefined)};await updateBrowserSession(_0xbc3270['id'],_0x16990c),_0x54abdd[_0x5a4f74(0x10d)](_0x23a936,_0x45ef83)&&(_0x23a936[_0x5a4f74(0x110)]=_0x54abdd[_0x5a4f74(0x8b)](buildTraceViewerUrl,_0x45ef83),_0x23a936[_0x5a4f74(0x13b)]=_0xbc3270['id'],_0x23a936[_0x5a4f74(0xcb)]=_0x54abdd[_0x5a4f74(0x13d)](getTraceDirectory,_0xbc3270['id']),_0x23a936['durationMs']=_0x301ca4,_0x23a936[_0x5a4f74(0x108)]=_0x325d08,_0x23a936[_0x5a4f74(0x11a)]=_0x790a2);}else throw new _0x1d9ec2(_0x54abdd[_0x5a4f74(0xba)]);}catch{}if(_0x54abdd[_0x5a4f74(0x10d)](_0x52a9f2,!_0x569026))throw new Error(_0x5a4f74(0xce)+_0x52a9f2);if(!_0x569026)throw new Error(_0x54abdd[_0x5a4f74(0x9d)]);return _0x569026;}finally{if(_0x54abdd[_0x5a4f74(0x136)]===_0x54abdd[_0x5a4f74(0xaa)])return _0x5ecf0a['toString']()[_0x5a4f74(0xff)]('(((.+)+)+)+$')[_0x5a4f74(0x93)]()[_0x5a4f74(0xb5)](_0x2dae33)[_0x5a4f74(0xff)](kgtIYS['hfVZA']);else{await _0x54abdd['cJmHk'](cleanupTempFiles,_0x31a66f);try{const _0x356e49=_0x54abdd[_0x5a4f74(0xa9)](getTraceDirectory,_0xbc3270['id']);if(existsSync(_0x356e49)){if(_0x54abdd['PLWZI']===_0x54abdd[_0x5a4f74(0x123)])await _0x54abdd[_0x5a4f74(0x85)](rm,_0x356e49,{'recursive':!![],'force':!![]});else{if(_0x30ff0e&&_0x54abdd[_0x5a4f74(0xac)](_0x3c6923[_0x5a4f74(0x99)]?.[_0x5a4f74(0x7e)],0x0))_0x2deef8=_0x152761,_0x51d413=null;else!_0xec02c7&&(_0x561111=_0x43ba8e['errors']?.[_0x5a4f74(0x95)](',\x20')||_0x5a4f74(0x89));}}}catch{}try{existsSync(_0x38c935)&&await _0x54abdd[_0x5a4f74(0xe8)](rm,_0x38c935,{'recursive':!![],'force':!![]});}catch{}}}}
|
|
1
|
+
(function(_0x569677,_0x25a482){const _0x5912c9=_0x1478,_0x48ba45=_0x569677();while(!![]){try{const _0x295397=-parseInt(_0x5912c9(0x15c))/0x1*(parseInt(_0x5912c9(0x1cb))/0x2)+parseInt(_0x5912c9(0x198))/0x3+parseInt(_0x5912c9(0x142))/0x4*(parseInt(_0x5912c9(0x12a))/0x5)+-parseInt(_0x5912c9(0x1ae))/0x6*(parseInt(_0x5912c9(0x1d3))/0x7)+parseInt(_0x5912c9(0x1ab))/0x8+-parseInt(_0x5912c9(0x1c6))/0x9+-parseInt(_0x5912c9(0x14b))/0xa*(-parseInt(_0x5912c9(0x172))/0xb);if(_0x295397===_0x25a482)break;else _0x48ba45['push'](_0x48ba45['shift']());}catch(_0x5a90b2){_0x48ba45['push'](_0x48ba45['shift']());}}}(_0x8cd2,0x78189));function _0x1478(_0x223c9d,_0x55e8f2){_0x223c9d=_0x223c9d-0x11e;const _0x7c091c=_0x8cd2();let _0x25bd2c=_0x7c091c[_0x223c9d];if(_0x1478['cfvKGv']===undefined){var _0x491bdf=function(_0x308356){const _0x3c6c38='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3e3559='',_0xc2500d='',_0x2609ce=_0x3e3559+_0x491bdf;for(let _0x14f4d7=0x0,_0x25d8d0,_0x1f1998,_0x26bb2f=0x0;_0x1f1998=_0x308356['charAt'](_0x26bb2f++);~_0x1f1998&&(_0x25d8d0=_0x14f4d7%0x4?_0x25d8d0*0x40+_0x1f1998:_0x1f1998,_0x14f4d7++%0x4)?_0x3e3559+=_0x2609ce['charCodeAt'](_0x26bb2f+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x25d8d0>>(-0x2*_0x14f4d7&0x6)):_0x14f4d7:0x0){_0x1f1998=_0x3c6c38['indexOf'](_0x1f1998);}for(let _0x481723=0x0,_0xf75afd=_0x3e3559['length'];_0x481723<_0xf75afd;_0x481723++){_0xc2500d+='%'+('00'+_0x3e3559['charCodeAt'](_0x481723)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xc2500d);};_0x1478['iellCs']=_0x491bdf,_0x1478['DqJOEu']={},_0x1478['cfvKGv']=!![];}const _0x8cd2ad=_0x7c091c[0x0],_0x1478ed=_0x223c9d+_0x8cd2ad,_0x3400d9=_0x1478['DqJOEu'][_0x1478ed];if(!_0x3400d9){const _0x51b5ce=function(_0xd6b4c2){this['WHVDRo']=_0xd6b4c2,this['blhQJt']=[0x1,0x0,0x0],this['XCPoBJ']=function(){return'newState';},this['vxAdqs']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['GfOVtu']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x51b5ce['prototype']['vsaAsK']=function(){const _0x49cfa4=new RegExp(this['vxAdqs']+this['GfOVtu']),_0x464bb7=_0x49cfa4['test'](this['XCPoBJ']['toString']())?--this['blhQJt'][0x1]:--this['blhQJt'][0x0];return this['toEEJg'](_0x464bb7);},_0x51b5ce['prototype']['toEEJg']=function(_0x40c9d2){if(!Boolean(~_0x40c9d2))return _0x40c9d2;return this['tTVKMB'](this['WHVDRo']);},_0x51b5ce['prototype']['tTVKMB']=function(_0x2f9d07){for(let _0x345652=0x0,_0x3f9400=this['blhQJt']['length'];_0x345652<_0x3f9400;_0x345652++){this['blhQJt']['push'](Math['round'](Math['random']())),_0x3f9400=this['blhQJt']['length'];}return _0x2f9d07(this['blhQJt'][0x0]);},new _0x51b5ce(_0x1478)['vsaAsK'](),_0x25bd2c=_0x1478['iellCs'](_0x25bd2c),_0x1478['DqJOEu'][_0x1478ed]=_0x25bd2c;}else _0x25bd2c=_0x3400d9;return _0x25bd2c;}const _0x491bdf=(function(){const _0x6c6c79=_0x1478,_0x15ea4d={'egdZX':_0x6c6c79(0x131),'IGwUK':_0x6c6c79(0x168)};let _0x30eccd=!![];return function(_0x4922d5,_0x3a4b81){const _0x14d4c7=_0x6c6c79,_0x128411={'Xxaqd':_0x15ea4d[_0x14d4c7(0x132)]};if(_0x15ea4d[_0x14d4c7(0x139)]!==_0x14d4c7(0x168))return _0x451ed3[_0x14d4c7(0x162)]()[_0x14d4c7(0x179)](_0x14d4c7(0x131))[_0x14d4c7(0x162)]()[_0x14d4c7(0x153)](_0x437584)[_0x14d4c7(0x179)](_0x128411[_0x14d4c7(0x18b)]);else{const _0x4301bf=_0x30eccd?function(){if(_0x3a4b81){const _0xdf25e6=_0x3a4b81['apply'](_0x4922d5,arguments);return _0x3a4b81=null,_0xdf25e6;}}:function(){};return _0x30eccd=![],_0x4301bf;}};}()),_0x25bd2c=_0x491bdf(this,function(){const _0x23416b=_0x1478,_0x6361c7={'xdBGt':'(((.+)+)+)+$'};return _0x25bd2c[_0x23416b(0x162)]()[_0x23416b(0x179)](_0x6361c7[_0x23416b(0x1e4)])[_0x23416b(0x162)]()['constructor'](_0x25bd2c)[_0x23416b(0x179)](_0x6361c7[_0x23416b(0x1e4)]);});_0x25bd2c();import{query}from'@anthropic-ai/claude-agent-sdk';import{join,dirname}from'path';import{readFile,readdir,appendFile,mkdir,rm}from'fs/promises';import{existsSync}from'fs';import{execSync}from'child_process';import{tmpdir}from'os';import{loadSettings,resolveEnvVars,buildPlaywrightConfig,cleanupTempFiles,getEnvDir}from'./utils/settings.js';import{createBrowserSession,updateBrowserSession,getUploadUrls,uploadTrace,uploadConversation,uploadScreenshot,buildTraceViewerUrl,getAnthropicApiKey,computeChecksum}from'./utils/browserSessionsApi.js';import{getToken}from'./utils/keychain.js';import{getRangerDir}from'./utils/rangerRoot.js';function _0x8cd2(){const _0x2c2866=['A01WwuC','zw5KC1DPDgG','uLzZEK0','mKHnv3bTzW','AhbTvMO','BwvZC2fNzq','qu5vD3q','vhPYB2q','ue5IDNC','zMfPBgvK','uML6Avm','n1jOv3jbuW','C3rYDwn0DxjLzf9VDxrWDxq','DefwAuS','v1bzzK8','AM9PBG','r1j6BuG','C2vZC2LVBNm','yMfZzvvYBa','tM8GqvbjihrVA2vUignVBMzPz3vYzwqUifj1BJOGCMfUz2vYihn0yxj0idX0B2TLBJ4','C3rYAw5N','A29TwMO','ls1JB25MAwC','Dg9VBf91C2u','yNrPyuy','u3rYDwn0DxjLze91Dhb1Da','DxPoANG','AMjgzeW','Egrcr3q','y29UDMvYC2f0Aw9UlMPZB25S','ANnVBMW','tM8GyMfZzvvYBcbJB25MAwD1CMvKigzVCIbLBNzPCM9UBwvUDcaI','DhjHy2vwAwv3zxjvCMW','rNzJqLu','DefOBK0','r21oz0S','rMfPBgvKihrVigzLDgnOiefUDgHYB3bPyYbbueKGA2v5igzYB20GuMfUz2vYiefqss4G','EhzwvfC','DhjHy2uTDxbSB2fKlNPPCa','rgfLyvy','BMfTzq','Dgv4Da','DwPbz1i','Bg9N','nJvjsgL3Exe','u3P3q3C','y2XHDwrLlw9WDxmTnc01','C3vJy2vZCW','rNLivMO','iIaU','rvD3teW','kcGOlISPkYKRksSK','zwDKwLG','AxnbCNjHEq','vhjvB2e','DgHLBG','z2XUyvK','uvvwwMi','wxzdCMu','suD3vuS','DxbSB2fKvxjS','DKj3B0e','CM0GiG','A2zHsgq','BhvMCem','C3bSAxq','vNDoywC','vKfwDMC','mtiWnZG4vxnkBLbj','yNLWyxnZugvYBwLZC2LVBNm','tM8Gywn0AxzLigvUDMLYB25Tzw50lIbsDw46ihjHBMDLCIb1C2uGpgvUDI1Uyw1LpG','CNvUlw1JCc1Zzxj2zxi','y29UzMLNugf0Aa','vvnMwLu','zw52','lNbUzW','zKHtvLO','mtu4oduWCw9Kz3jz','zhvYyxrPB25nCW','uLr0uvq','DhjPBq','qKXpq0TfuG','swH2D1u','tLj0zva','CgLWzq','y29UC3rYDwn0B3i','EMLW','C3vIDhLWzq','igjHC2vvCMWGphvYBd4','ug9swKu','z1Lmvhm','D2HyAeS','rMLRv0q','qNrQAhi','ote2mdyXB3rZy0zs','z2PKsvC','BNb4','vhn1uKe','sgvXDKC','Dxjsr2q','Dg9tDhjPBMC','AeT2Cvy','vfHQDxC','yxbWBhK','q2nUzhG','BgvUz3rO','tvrxwuG','sKLbz2u','BM93','AgnVzxe','mxW1Fdj8m3WWFdq','wxLiqMW','tM8GCMvZDwX0ihjLy2vPDMvKigzYB20GywDLBNq','DgfZAW','svjgzei','v0LgsNy','nZe1uejXAhLZ','AwrWDM4','qwDLBNqGzxHLy3v0Aw9UihrPBwvKig91DcbHzNrLCIa1osbTAw51DgvZ','r3PxEey','DNjPsKK','zgvZy3jPChrPB24','Aw5WDxq','C2vHCMnO','BezjsKy','vMvYAwzPy2f0Aw9UigzHAwXLzdOG','DwTSwei','vw5RBM93BIbLCNjVCG','C3rYAw5NAwz5','CMvZDwX0','rw52AxjVBM1LBNqGiG','vwnXCgG','yxjYyxK','DxLXuMG','wuDdDeS','zMLSDgvY','tufkt1i','C3vTBwfYEq','rer5rgS','qNjVD3nLCIbZzxnZAw9UignYzwf0zwq6ia','DhLWzq','whHHCwq','wgXIC1G','sw5RAKq','y3n6rKC','AvfcuNa','senKt0O','iIbUB3qGzM91BMqUifj1BJOGCMfUz2vYigfKzcbLBNyG','B2rQzwy','y3DK','DK9ez08','A0HZt1i','D2ThBhK','cLvstdOG','mty1m3zpvhPwqG','ANnVBL9Zy2HLBwe','suTsBve','y29UDgvUDa','iI4GuNvUoIbYyw5NzxiGy29UzMLNihnLDca','CefXsuS','DxjS','sK1uBem','D3nUBLO','vgjfswy','EvfAzMS','D05ZqLi','zxzitwu','C2vZC2LVBKLK','iIaMjIb6AxaGlxiGiG','z25HyLe','uwDMvuO','Dg9mB3DLCKnHC2u','ExHnzhe','nZy3nJyXnLnRAwXLtG','shfeyxy','zxjYB3i','nteZndqYmKfduK1Suq','s1bLDuS','wgrNB2e','r2LzDvq','BK91q2O','nhW1Fdb8m3WYFde','sLboCeG','zg93BMXVywrvCMW','yM9VBgvHBG','uevbCwC','Chjvsfm','tNfhwNO','C2vZC2LVBKrPCG','B2jQzwn0','qKHLyvK','Cw54D0e','z2nqAu4','C2v2zxjPDhK','tuLot1i','Aunksvu','yxnZAxn0yw50','qLDxrNy','DvnyDvu','vu9rtLK','mta5mZuYn2TutNHntW','ww91igfYzsbHifvjifzLCMLMAwvYlIbzB3vYie9otfKGAM9IigLZihrVignSAwnRihrOCM91z2GGysbvssbMBg93igfUzcbYzxbVCNqGyNvNCYbPBw1LzgLHDgvSEsb3AgvUigzVDw5KlGOkq1jjveLdquWGvvjmifjfuvvjuKvnru5uoGPzB3vYigjHC2uGvvjmigLZoIa'];_0x8cd2=function(){return _0x2c2866;};return _0x8cd2();}async function zipDirectory(_0x5c9cb4){const _0x39811f=_0x1478,_0x562554={'komZj':function(_0xf8ee0,_0x54862d,_0x424af8,_0x29b52d){return _0xf8ee0(_0x54862d,_0x424af8,_0x29b52d);},'NqGZz':_0x39811f(0x124),'FRqnG':function(_0x1cd32b,_0x387828,_0xf1dd31){return _0x1cd32b(_0x387828,_0xf1dd31);},'USfZU':_0x39811f(0x152),'IKRmQ':function(_0x4e428b,_0x1f1e20){return _0x4e428b(_0x1f1e20);}},_0x1b950d=_0x562554[_0x39811f(0x1dd)](join,_0x5c9cb4,'..',_0x562554[_0x39811f(0x1b9)]);_0x562554['FRqnG'](execSync,'cd\x20\x22'+_0x5c9cb4+_0x39811f(0x1a6)+_0x1b950d+_0x39811f(0x12f),{'stdio':_0x562554['USfZU']});const _0x116237=await _0x562554[_0x39811f(0x19a)](readFile,_0x1b950d);return execSync(_0x39811f(0x13c)+_0x1b950d+'\x22',{'stdio':_0x562554[_0x39811f(0x147)]}),_0x116237;}function getTraceDirectory(_0x1d82dd){const _0x2b8594=_0x1478,_0x4deeec={'idpvn':function(_0x2a5769,_0xed76b9,_0x18f1fe,_0x591e7e){return _0x2a5769(_0xed76b9,_0x18f1fe,_0x591e7e);},'RiziS':function(_0x3c5f76){return _0x3c5f76();},'gcPiN':_0x2b8594(0x1d9)};return _0x4deeec[_0x2b8594(0x173)](join,_0x4deeec[_0x2b8594(0x1d2)](getRangerDir),_0x4deeec[_0x2b8594(0x1be)],_0x1d82dd);}function getConversationFilePath(_0x45da22){const _0x3f543e=_0x1478,_0x2b88d4={'ujAgR':function(_0x4ded92){return _0x4ded92();},'InkjD':'ranger-browser-sessions','JMxgc':_0x3f543e(0x1e5)};return join(_0x2b88d4[_0x3f543e(0x128)](tmpdir),_0x2b88d4[_0x3f543e(0x18d)],_0x45da22,_0x2b88d4['JMxgc']);}export async function verifyInBrowser(_0xf265cd,_0x11f9c6={}){const _0x1fe635=_0x1478,_0x433a86={'Ccndx':_0x1fe635(0x16c),'GzWxF':function(_0x217672,_0x31ac41){return _0x217672(_0x31ac41);},'KPeuK':_0x1fe635(0x174),'YGCtK':function(_0x30537d,_0x19f651,_0x5648c8){return _0x30537d(_0x19f651,_0x5648c8);},'WIFJv':function(_0x4a0f7f,_0x5a5e69,_0x4c9422,_0x58a9eb,_0x19493f){return _0x4a0f7f(_0x5a5e69,_0x4c9422,_0x58a9eb,_0x19493f);},'PEAqg':_0x1fe635(0x1e5),'RTtQT':_0x1fe635(0x1cc),'HCdOJ':_0x1fe635(0x140),'wsnnZ':function(_0xcaa82f,_0x4dcae5){return _0xcaa82f!==_0x4dcae5;},'AbHAW':'GRzmH','NYZpn':'utf-8','QgfUJ':function(_0x5e9d10,_0x25ebd5){return _0x5e9d10===_0x25ebd5;},'nOuCj':_0x1fe635(0x1c2),'Btjhr':function(_0x325919,_0x99840a){return _0x325919!==_0x99840a;},'wNsBR':'qQoZn','XlbsX':function(_0x1e570c,_0x4c3259){return _0x1e570c!==_0x4c3259;},'MpexG':_0x1fe635(0x15f),'LUxHa':function(_0x3d016e,_0x1ad775){return _0x3d016e===_0x1ad775;},'GmNgK':_0x1fe635(0x1df),'UOQNY':_0x1fe635(0x1e1),'hcoeq':_0x1fe635(0x1a1),'zcbWi':function(_0x208a39,_0x42ce4e){return _0x208a39>_0x42ce4e;},'blCBZ':_0x1fe635(0x17f),'TrUoa':_0x1fe635(0x12d),'pAqIK':function(_0x3010ac,_0x47967f){return _0x3010ac===_0x47967f;},'HzSin':_0x1fe635(0x17a),'AsBru':_0x1fe635(0x195),'gGmpK':_0x1fe635(0x17d),'vriJI':function(_0x289f0e,_0x1a46a2){return _0x289f0e>_0x1a46a2;},'odjef':function(_0x3de6ee,_0x19220a){return _0x3de6ee instanceof _0x19220a;},'TugRL':function(_0x27fb46,_0x5e458a){return _0x27fb46!==_0x5e458a;},'yQZfk':'XAlSq','iQBRp':'AXGwb','kMpYG':_0x1fe635(0x15a),'uSXuU':function(_0x1a8931,_0x2e84bd,_0x1e32ef){return _0x1a8931(_0x2e84bd,_0x1e32ef);},'RVszM':function(_0x8937ba){return _0x8937ba();},'uebVJ':'active-env.txt','whXhK':_0x1fe635(0x144),'jbFdL':function(_0x43cdc6,_0x2e9e3b,_0x3bc7c3){return _0x43cdc6(_0x2e9e3b,_0x3bc7c3);},'SzwCw':function(_0x144075,_0x172029){return _0x144075(_0x172029);},'MIpQT':_0x1fe635(0x15d),'tAViK':_0x1fe635(0x141),'JPNpH':_0x1fe635(0x1db),'yxMdq':function(_0x3648ba,_0x2fa471){return _0x3648ba(_0x2fa471);},'JIAge':function(_0x58c927,_0x3bdff3,_0x9a2b71,_0x28e4a9,_0x23ed8a){return _0x58c927(_0x3bdff3,_0x9a2b71,_0x28e4a9,_0x23ed8a);},'tWRSa':_0x1fe635(0x15e),'BWWFv':'@ranger-testing/playwright','aKvdj':_0x1fe635(0x145),'qnxwA':_0x1fe635(0x1de),'prUHS':_0x1fe635(0x150),'WPYfO':function(_0x16b281,_0x17c2d9){return _0x16b281 instanceof _0x17c2d9;},'WbfME':function(_0x56b740,_0x2f0164,_0x5eb140){return _0x56b740(_0x2f0164,_0x5eb140);},'Xdgoa':function(_0x1ee8aa,_0x2355f8){return _0x1ee8aa-_0x2355f8;},'GiYuT':'object','dPUqY':_0x1fe635(0x1b6),'FyHVj':_0x1fe635(0x1dc),'EWwLL':_0x1fe635(0x182),'Tzrod':_0x1fe635(0x14f),'urRGd':_0x1fe635(0x186),'uQrqk':_0x1fe635(0x1c0),'lufpC':_0x1fe635(0x1bf),'IRFdB':_0x1fe635(0x177),'HqDav':'summary','gYLTs':_0x1fe635(0x12c),'SIAxD':'mcp__ranger-browser__*','xvVTW':_0x1fe635(0x143),'MZcZA':_0x1fe635(0x199),'uklXB':function(_0x46919d,_0x3e006c){return _0x46919d(_0x3e006c);},'tqkps':function(_0x4f8ce8,_0x1db64e){return _0x4f8ce8*_0x1db64e;},'BHeaY':_0x1fe635(0x13d),'cszFG':_0x1fe635(0x11f),'TXjuw':function(_0x459dcd,_0x1bb861){return _0x459dcd===_0x1bb861;},'ANUwt':_0x1fe635(0x1e2),'ppJrk':'rLkTo','tAhnM':function(_0x21411d,_0x33aeee){return _0x21411d(_0x33aeee);},'DDyDk':function(_0x1385c4,_0x1b0631,_0x4389e8,_0x53cd21,_0x48f33e){return _0x1385c4(_0x1b0631,_0x4389e8,_0x53cd21,_0x48f33e);},'hKvqV':'trace.zip','NRteP':function(_0x5673e1,_0x2e23aa,_0x52a6e9){return _0x5673e1(_0x2e23aa,_0x52a6e9);},'gnabQ':function(_0x4cbff9,_0x4ccce3,_0x5bdac7){return _0x4cbff9(_0x4ccce3,_0x5bdac7);},'YyHBl':function(_0x2a3746,_0x3ed5cf){return _0x2a3746(_0x3ed5cf);},'evHMe':'png','iCJIU':_0x1fe635(0x194),'UCLfQ':_0x1fe635(0x1e6),'MGJhV':function(_0x556b5b,_0x334345,_0x160ee6){return _0x556b5b(_0x334345,_0x160ee6);},'NMHxq':_0x1fe635(0x1d1),'XuTqe':'completed','glnaY':function(_0x2c6a56,_0x9a3480){return _0x2c6a56||_0x9a3480;},'PoRZE':function(_0x1dfa70,_0x35e529){return _0x1dfa70&&_0x35e529;},'TXGOD':_0x1fe635(0x1b3),'fHSVZ':function(_0x1d815c,_0x4dcbad){return _0x1d815c(_0x4dcbad);},'Ucqph':function(_0x5ed5af,_0x173a18){return _0x5ed5af!==_0x173a18;},'QUVZb':_0x1fe635(0x13b),'HeqvG':_0x1fe635(0x16e),'JMTlC':'IPtay','PFgjy':function(_0x4b0fcd,_0x2da0b4){return _0x4b0fcd(_0x2da0b4);},'ouvmQ':function(_0x28b1d1,_0x124dc1){return _0x28b1d1(_0x124dc1);},'FtzgX':function(_0x445afe,_0x5e5b1b,_0x65f293){return _0x445afe(_0x5e5b1b,_0x65f293);}},{env:_0x2f41c1,headed:headed=![]}=_0x11f9c6;let _0x508799;if(_0x2f41c1){if(_0x433a86['TugRL'](_0x433a86[_0x1fe635(0x1a2)],_0x433a86[_0x1fe635(0x18f)]))_0x508799=_0x2f41c1;else{const _0x402d7a=_0x433a86[_0x1fe635(0x166)][_0x1fe635(0x13f)]('|');let _0x59f640=0x0;while(!![]){switch(_0x402d7a[_0x59f640++]){case'0':_0x3fed20['task']=_0x5b0251;continue;case'1':_0x3b9a17[_0x1fe635(0x11e)]=_0x55931b(_0x340561);continue;case'2':_0x12c7e1[_0x1fe635(0x1ba)]=_0x3c1fea(_0x33841f['id']);continue;case'3':_0x567638[_0x1fe635(0x14c)]=_0x41789d;continue;case'4':_0x1ac1e9['url']=_0x558c96;continue;case'5':_0x2a1ebc['sessionId']=_0x576d85['id'];continue;}break;}}}else{if(_0x433a86['Btjhr'](_0x433a86[_0x1fe635(0x1c8)],_0x433a86[_0x1fe635(0x1c8)]))_0x433a86[_0x1fe635(0x184)](_0xbbcfb7,()=>{const _0x457cf2=_0x1fe635;_0x433a86[_0x457cf2(0x175)](_0x35b8d4,new _0x84ccf7(_0x433a86[_0x457cf2(0x1af)]));},_0x1276fc);else{const _0x3e9d08=_0x433a86[_0x1fe635(0x1c4)](join,_0x433a86[_0x1fe635(0x1ca)](getRangerDir),_0x433a86['uebVJ']);if(!existsSync(_0x3e9d08))throw new Error(_0x433a86[_0x1fe635(0x159)]);_0x508799=await _0x433a86[_0x1fe635(0x1e3)](readFile,_0x3e9d08,_0x433a86['NYZpn'])[_0x1fe635(0x135)](_0x180a58=>_0x180a58[_0x1fe635(0x14e)]());}}const _0x193c2a=getEnvDir(_0x508799);if(!_0x433a86['SzwCw'](existsSync,_0x193c2a)){if(_0x433a86['pAqIK']('SRCZX',_0x433a86['MIpQT']))_0x2bfdc9(new _0x54617f(_0x433a86[_0x1fe635(0x1af)]));else throw new Error(_0x1fe635(0x180)+_0x508799+'\x22\x20not\x20found.\x20Run:\x20ranger\x20add\x20env\x20'+_0x508799);}const _0x56f4d3=await _0x433a86[_0x1fe635(0x12b)](loadSettings,_0x508799),_0x179415=resolveEnvVars(_0x56f4d3),_0x2dd991=_0x179415[_0x1fe635(0x1da)];if(!_0x2dd991)throw new Error(_0x1fe635(0x1e7)+_0x508799+_0x1fe635(0x19c)+_0x508799+_0x1fe635(0x156));const _0x4fc0f3=await getToken();if(!_0x4fc0f3){if(_0x433a86['tAViK']===_0x433a86[_0x1fe635(0x1d5)])throw new Error(_0x433a86[_0x1fe635(0x1b4)]);else{const _0x14bce4=_0x45c04b['message']['content'][_0x1fe635(0x185)](_0x5ec75d=>_0x5ec75d['type']==='text')['map'](_0x585ae7=>_0x585ae7[_0x1fe635(0x127)]||'')[_0x1fe635(0x185)](_0x580f86);_0x14bce4[_0x1fe635(0x167)]>0x0&&(_0x1af71a=_0x14bce4[_0x1fe635(0x1d7)]('\x20'));}}const _0x2f8cdd=await _0x433a86[_0x1fe635(0x1aa)](createBrowserSession,{'environmentName':_0x508799,'settings':_0x179415,'task':_0xf265cd,'url':_0x2dd991});console[_0x1fe635(0x129)](_0x1fe635(0x189)+_0x2f8cdd['id']);const _0x3ba8ad=await _0x433a86[_0x1fe635(0x169)](buildPlaywrightConfig,_0x179415,_0x508799,_0x2f8cdd?.['id'],headed),_0xc3166a={'command':_0x433a86['tWRSa'],'args':[_0x433a86[_0x1fe635(0x1c3)],_0x433a86['aKvdj'],_0x433a86[_0x1fe635(0x1bd)],_0x3ba8ad[_0x1fe635(0x146)]]},_0x227bfa=Date[_0x1fe635(0x16a)]();let _0x54db8b;try{_0x54db8b=await _0x433a86['RVszM'](getAnthropicApiKey);}catch(_0x7f5cd7){if(_0x433a86[_0x1fe635(0x15b)](_0x433a86[_0x1fe635(0x1b8)],_0x433a86['prUHS']))throw new _0xe44ea9(_0x1fe635(0x180)+_0x3904c9+_0x1fe635(0x191)+_0x36c064);else{const _0x4e7cd7=_0x433a86[_0x1fe635(0x1d6)](_0x7f5cd7,Error)?_0x7f5cd7['message']:_0x433a86[_0x1fe635(0x175)](String,_0x7f5cd7),_0x232d59=_0x1fe635(0x122)+_0x4e7cd7;try{await _0x433a86['WbfME'](updateBrowserSession,_0x2f8cdd['id'],{'status':_0x1fe635(0x1d1),'durationMs':_0x433a86[_0x1fe635(0x1b0)](Date[_0x1fe635(0x16a)](),_0x227bfa),'errorMessage':_0x232d59});}catch{}throw new Error(_0x232d59);}}const _0x2fbfb6=_0x1fe635(0x1c7)+_0x2dd991+'\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-\x20IGNORE\x20any\x20URLs\x20from\x20product\x20documentation\x20(mcp__ranger__get_product_docs)\x20that\x20have\x20a\x20different\x20base\x20URL\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\x20environment\x20for\x20this\x20verification\x0a\x0aCRITICAL\x20INSTRUCTIONS:\x0a1.\x20Navigate\x20to\x20the\x20URL\x20above\x20using\x20browser_navigate\x0a2.\x20Take\x20a\x20snapshot\x20with\x20browser_snapshot\x20to\x20see\x20the\x20page\x0a3.\x20Execute\x20the\x20task\x20step-by-step\x20using\x20browser\x20tools\x0a4.\x20If\x20you\x20find\x20ANY\x20bugs,\x20report\x20immediately\x20with\x20severity\x0a5.\x20Return\x20your\x20findings\x20in\x20the\x20structured\x20output\x20format\x0a\x0aYour\x20task:\x20'+_0xf265cd+_0x1fe635(0x197)+_0x2dd991,_0x45d71b={'type':_0x433a86[_0x1fe635(0x1b1)],'properties':{'success':{'type':_0x433a86['dPUqY']},'summary':{'type':_0x433a86['FyHVj']},'issues':{'type':_0x433a86['EWwLL'],'items':{'type':_0x1fe635(0x1bb),'properties':{'severity':{'type':_0x433a86['FyHVj'],'enum':[_0x433a86[_0x1fe635(0x1cf)],_0x433a86[_0x1fe635(0x161)],_0x433a86['uQrqk']]},'description':{'type':_0x433a86[_0x1fe635(0x12e)]},'screenshot':{'type':_0x433a86[_0x1fe635(0x12e)]}},'required':[_0x433a86[_0x1fe635(0x13e)],_0x433a86[_0x1fe635(0x170)]]}},'screenshots':{'type':_0x433a86[_0x1fe635(0x130)],'items':{'type':_0x1fe635(0x1dc)}}},'required':[_0x433a86[_0x1fe635(0x134)],_0x433a86[_0x1fe635(0x1ac)]]},_0x36ece6=_0x433a86['GzWxF'](query,{'prompt':_0x2fbfb6,'options':{'cwd':process[_0x1fe635(0x193)](),'model':_0x433a86[_0x1fe635(0x158)],'mcpServers':{'ranger-browser':_0xc3166a},'tools':[_0x433a86['SIAxD']],'permissionMode':_0x433a86[_0x1fe635(0x123)],'allowDangerouslySkipPermissions':!![],'outputFormat':{'type':_0x433a86['MZcZA'],'schema':_0x45d71b},'env':{...process[_0x1fe635(0x148)],'ANTHROPIC_API_KEY':_0x54db8b},'persistSession':![]}});let _0x2373c4=null,_0x19f00c=null,_0x389f29=null;const _0x477297=_0x433a86['uklXB'](getConversationFilePath,_0x2f8cdd['id']),_0xe9ad4=dirname(_0x477297);await _0x433a86[_0x1fe635(0x184)](mkdir,_0xe9ad4,{'recursive':!![]});const _0x50a0fb=_0x433a86['tqkps'](0x3b,0x3c)*0x3e8,_0x2bd12f=new Promise((_0x416557,_0x2a2994)=>{const _0x5a8648=_0x1fe635;if(_0x433a86[_0x5a8648(0x1a0)](_0x433a86['AbHAW'],_0x5a8648(0x1d8)))throw new _0x3786ea(_0x5a8648(0x1db));else setTimeout(()=>{const _0x2c2cbc=_0x5a8648,_0x197afb={'uyqRh':function(_0x349aac,_0x2d5fd1,_0x31152e,_0x260df4,_0x1435df){const _0x456203=_0x1478;return _0x433a86[_0x456203(0x171)](_0x349aac,_0x2d5fd1,_0x31152e,_0x260df4,_0x1435df);},'wkGly':'ranger-browser-sessions','jkgLG':_0x433a86['PEAqg']};if(_0x433a86[_0x2c2cbc(0x14d)]===_0x433a86[_0x2c2cbc(0x190)])return _0x197afb[_0x2c2cbc(0x183)](_0x5bc417,_0x184ed2(),_0x197afb[_0x2c2cbc(0x196)],_0x3c1613,_0x197afb['jkgLG']);else _0x433a86['GzWxF'](_0x2a2994,new Error(_0x433a86[_0x2c2cbc(0x1af)]));},_0x50a0fb);});try{try{if(_0x433a86[_0x1fe635(0x18c)](_0x433a86[_0x1fe635(0x1bc)],_0x433a86[_0x1fe635(0x18e)]))await Promise['race']([((async()=>{const _0x3a615b=_0x1fe635,_0xb809a3={'btiaF':'No\x20result\x20received\x20from\x20agent'};for await(const _0x4cc37e of _0x36ece6){try{const _0x4ca343=JSON[_0x3a615b(0x17e)](_0x4cc37e)+'\x0a';await appendFile(_0x477297,_0x4ca343,_0x433a86['NYZpn']);}catch{}const _0x1d9be9=_0x4cc37e;if(_0x433a86[_0x3a615b(0x1a8)](_0x1d9be9[_0x3a615b(0x18a)],_0x433a86[_0x3a615b(0x1b2)])&&_0x1d9be9[_0x3a615b(0x1cd)]?.[_0x3a615b(0x19b)]){if(_0x433a86['Btjhr'](_0x433a86[_0x3a615b(0x1a3)],_0x433a86[_0x3a615b(0x1a3)]))throw new _0x4250ba(_0xb809a3[_0x3a615b(0x1e0)]);else for(const _0x51a84d of _0x1d9be9['message'][_0x3a615b(0x19b)]){if(_0x433a86[_0x3a615b(0x18c)](_0x433a86['MpexG'],_0x3a615b(0x15f)))throw new _0x82ab61(_0x3a615b(0x17b)+_0x246488);else _0x433a86['LUxHa'](_0x51a84d[_0x3a615b(0x18a)],_0x433a86[_0x3a615b(0x121)])&&_0x433a86['QgfUJ'](_0x51a84d[_0x3a615b(0x126)],_0x433a86[_0x3a615b(0x1c5)])&&_0x51a84d[_0x3a615b(0x178)]&&(_0x389f29=_0x51a84d[_0x3a615b(0x178)]);}}if(_0x1d9be9[_0x3a615b(0x1ad)]){if(_0x433a86[_0x3a615b(0x16b)]===_0x3a615b(0x138))_0x5a1813=_0x2af1eb[_0x3a615b(0x178)];else{let _0x1dcba0=_0x1d9be9[_0x3a615b(0x1ad)];if(_0x1d9be9[_0x3a615b(0x1cd)]?.[_0x3a615b(0x19b)]&&Array[_0x3a615b(0x133)](_0x1d9be9['message'][_0x3a615b(0x19b)])){const _0x124d8f=_0x1d9be9['message'][_0x3a615b(0x19b)][_0x3a615b(0x185)](_0x42a660=>_0x42a660['type']===_0x3a615b(0x127))['map'](_0x1d67bd=>_0x1d67bd[_0x3a615b(0x127)]||'')[_0x3a615b(0x185)](Boolean);_0x433a86['zcbWi'](_0x124d8f[_0x3a615b(0x167)],0x0)&&(_0x1dcba0=_0x124d8f[_0x3a615b(0x1d7)]('\x20'));}_0x19f00c=_0x1dcba0;}}if(_0x433a86[_0x3a615b(0x1a8)](_0x4cc37e[_0x3a615b(0x18a)],_0x433a86['blCBZ'])){if(_0x433a86['QgfUJ'](_0x4cc37e['subtype'],_0x3a615b(0x12d))&&_0x4cc37e['structured_output'])_0x2373c4=_0x4cc37e[_0x3a615b(0x1d4)];else{if(_0x4cc37e[_0x3a615b(0x155)]!==_0x433a86[_0x3a615b(0x134)]){if(_0x389f29&&_0x433a86[_0x3a615b(0x19d)](_0x4cc37e['errors']?.[_0x3a615b(0x167)],0x0))_0x2373c4=_0x389f29,_0x19f00c=null;else{if(!_0x19f00c){if(_0x433a86[_0x3a615b(0x18c)](_0x433a86['HzSin'],_0x433a86['AsBru']))_0x19f00c=_0x4cc37e['errors']?.[_0x3a615b(0x1d7)](',\x20')||_0x433a86['gGmpK'];else{const _0x4332b6=_0x51b5ce?function(){const _0x36bc53=_0x3a615b;if(_0x345652){const _0x34948b=_0x57ca33[_0x36bc53(0x165)](_0x450015,arguments);return _0x1c5004=null,_0x34948b;}}:function(){};return _0x2f9d07=![],_0x4332b6;}}}}}}}})()),_0x2bd12f]);else{if(_0x494523){const _0xae6d5b=_0x59377f[_0x1fe635(0x165)](_0x44824d,arguments);return _0x8403a=null,_0xae6d5b;}}}catch(_0x9aeacd){_0x19f00c=_0x433a86['WPYfO'](_0x9aeacd,Error)?_0x9aeacd[_0x1fe635(0x1cd)]:String(_0x9aeacd);}const _0x132b67=Date[_0x1fe635(0x16a)]()-_0x227bfa;let _0x4d29a2;try{if(_0x433a86[_0x1fe635(0x164)](_0x433a86[_0x1fe635(0x1ce)],_0x433a86['ppJrk']))for(const _0x55aea3 of _0x45a540[_0x1fe635(0x1cd)][_0x1fe635(0x19b)]){_0x433a86[_0x1fe635(0x1a8)](_0x55aea3['type'],_0x433a86[_0x1fe635(0x121)])&&_0x55aea3[_0x1fe635(0x126)]===_0x433a86[_0x1fe635(0x1c5)]&&_0x55aea3['input']&&(_0x5a9781=_0x55aea3['input']);}else{const _0x31dda5=getTraceDirectory(_0x2f8cdd['id']);if(_0x433a86['uklXB'](existsSync,_0x31dda5)){const _0x5edc6f=await _0x433a86[_0x1fe635(0x175)](readdir,_0x31dda5);if(_0x5edc6f[_0x1fe635(0x167)]>0x0){const _0x5554c0=await _0x433a86[_0x1fe635(0x1aa)](zipDirectory,_0x31dda5),_0x569747=_0x433a86[_0x1fe635(0x120)](computeChecksum,_0x5554c0),_0x1d00d0=await _0x433a86[_0x1fe635(0x188)](getUploadUrls,_0x2f8cdd['id'],_0x433a86[_0x1fe635(0x163)],_0x1fe635(0x154),{'size':_0x5554c0['length'],'checksum':_0x569747});await _0x433a86['NRteP'](uploadTrace,_0x1d00d0[_0x1fe635(0x13a)],_0x5554c0),_0x4d29a2=_0x1d00d0[_0x1fe635(0x1b5)];const _0x4283e1=_0x5edc6f[_0x1fe635(0x185)](_0x2cd4f1=>_0x2cd4f1[_0x1fe635(0x1a9)]()[_0x1fe635(0x1c9)](_0x1fe635(0x149)));for(const _0x44125c of _0x4283e1){try{const _0x5b4611=_0x433a86[_0x1fe635(0x1a7)](join,_0x31dda5,_0x44125c),_0x26988f=await readFile(_0x5b4611),_0x3b5fb3=_0x433a86[_0x1fe635(0x16d)](computeChecksum,_0x26988f),_0x54a91f=await getUploadUrls(_0x2f8cdd['id'],_0x44125c,_0x433a86[_0x1fe635(0x1a4)],{'size':_0x26988f[_0x1fe635(0x167)],'checksum':_0x3b5fb3});await _0x433a86[_0x1fe635(0x151)](uploadScreenshot,_0x54a91f['uploadUrl'],_0x26988f);}catch{}}}}if(_0x433a86[_0x1fe635(0x12b)](existsSync,_0x477297))try{if(_0x433a86['iCJIU']!==_0x433a86[_0x1fe635(0x1c1)]){let _0x55ffff=_0x26b6f9['error'];if(_0x34e9b9['message']?.['content']&&_0x964530['isArray'](_0x5d865d[_0x1fe635(0x1cd)]['content'])){const _0x49437c=_0x31fe81[_0x1fe635(0x1cd)][_0x1fe635(0x19b)][_0x1fe635(0x185)](_0x47a5bd=>_0x47a5bd[_0x1fe635(0x18a)]==='text')['map'](_0x3f8ed9=>_0x3f8ed9[_0x1fe635(0x127)]||'')[_0x1fe635(0x185)](_0x3b682d);_0x433a86[_0x1fe635(0x176)](_0x49437c[_0x1fe635(0x167)],0x0)&&(_0x55ffff=_0x49437c['join']('\x20'));}_0x16b462=_0x55ffff;}else{const _0x5137eb=await readFile(_0x477297),_0x2408bd=_0x433a86[_0x1fe635(0x175)](computeChecksum,_0x5137eb),_0x545c5d=await getUploadUrls(_0x2f8cdd['id'],_0x433a86[_0x1fe635(0x1b7)],_0x433a86['UCLfQ'],{'size':_0x5137eb[_0x1fe635(0x167)],'checksum':_0x2408bd});await _0x433a86['MGJhV'](uploadConversation,_0x545c5d['uploadUrl'],_0x5137eb);}}catch{}const _0xe97238=_0x2373c4,_0x20bdcd={'status':_0x19f00c?_0x433a86['NMHxq']:_0x433a86['XuTqe'],'durationMs':_0x132b67,'agentResponse':_0xe97238?.[_0x1fe635(0x187)]||_0x19f00c||undefined,'errorMessage':_0x433a86[_0x1fe635(0x136)](_0x19f00c,undefined)};await _0x433a86[_0x1fe635(0x1e3)](updateBrowserSession,_0x2f8cdd['id'],_0x20bdcd);if(_0x433a86[_0x1fe635(0x157)](_0xe97238,_0x4d29a2)){if(_0x433a86[_0x1fe635(0x15b)](_0x1fe635(0x125),_0x1fe635(0x1d0))){const _0x2dfe19=_0x433a86['TXGOD'][_0x1fe635(0x13f)]('|');let _0x302bb8=0x0;while(!![]){switch(_0x2dfe19[_0x302bb8++]){case'0':_0xe97238[_0x1fe635(0x1ba)]=_0x433a86[_0x1fe635(0x14a)](getTraceDirectory,_0x2f8cdd['id']);continue;case'1':_0xe97238[_0x1fe635(0x19e)]=_0x2dd991;continue;case'2':_0xe97238[_0x1fe635(0x16f)]=_0xf265cd;continue;case'3':_0xe97238[_0x1fe635(0x14c)]=_0x132b67;continue;case'4':_0xe97238[_0x1fe635(0x11e)]=_0x433a86[_0x1fe635(0x17c)](buildTraceViewerUrl,_0x4d29a2);continue;case'5':_0xe97238[_0x1fe635(0x1a5)]=_0x2f8cdd['id'];continue;}break;}}else _0x46e3e8=_0x44881c['errors']?.[_0x1fe635(0x1d7)](',\x20')||_0x1fe635(0x17d);}}}catch{}if(_0x19f00c&&!_0x2373c4){if(_0x433a86[_0x1fe635(0x181)](_0x433a86[_0x1fe635(0x137)],_0x1fe635(0x13b)))_0x1cc08f=_0x55e211['join']('\x20');else throw new Error(_0x1fe635(0x17b)+_0x19f00c);}if(!_0x2373c4)throw new Error(_0x433a86[_0x1fe635(0x160)]);return _0x2373c4;}finally{if(_0x433a86['TugRL'](_0x433a86[_0x1fe635(0x19f)],_0x433a86['JMTlC']))_0x5315ac=_0x433a86[_0x1fe635(0x192)](_0xdc43c,_0x5a505a)?_0x3f6325[_0x1fe635(0x1cd)]:_0x433a86['GzWxF'](_0x3d0c8f,_0x1d79aa);else{await _0x433a86['PFgjy'](cleanupTempFiles,_0x3ba8ad);try{const _0x20baf8=getTraceDirectory(_0x2f8cdd['id']);_0x433a86[_0x1fe635(0x12b)](existsSync,_0x20baf8)&&await rm(_0x20baf8,{'recursive':!![],'force':!![]});}catch{}try{_0x433a86['ouvmQ'](existsSync,_0xe9ad4)&&await _0x433a86['FtzgX'](rm,_0xe9ad4,{'recursive':!![],'force':!![]});}catch{}}}}
|
|
@@ -16,6 +16,7 @@ This skill covers three workflows for Ranger feature tracking:
|
|
|
16
16
|
| **Resuming a Feature** | Starting a session | **MUST read [start.md](./start.md)** |
|
|
17
17
|
| **Creating a Feature** | Starting new UI work | **MUST read [create.md](./create.md)** |
|
|
18
18
|
| **Verifying a Feature** | After implementing UI changes | **MUST read [verify.md](./verify.md)** |
|
|
19
|
+
| **Addressing Feedback** | After reviewer leaves comments | **MUST read [feedback.md](./feedback.md)** |
|
|
19
20
|
|
|
20
21
|
---
|
|
21
22
|
|
|
@@ -105,6 +106,29 @@ The verification agent will:
|
|
|
105
106
|
|
|
106
107
|
---
|
|
107
108
|
|
|
109
|
+
# Workflow 4: Addressing Reviewer Feedback
|
|
110
|
+
|
|
111
|
+
**MANDATORY: Read [feedback.md](./feedback.md) when items have reviewer comments.**
|
|
112
|
+
|
|
113
|
+
Use this workflow when:
|
|
114
|
+
- `ranger feature show` displays items with comment badges
|
|
115
|
+
- Items show as v2/v3 (revised after reviewer feedback)
|
|
116
|
+
- `ranger feature resume` warns about unaddressed comments
|
|
117
|
+
|
|
118
|
+
### Quick Start
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# See all reviewer comments across items
|
|
122
|
+
ranger feature get-feedback
|
|
123
|
+
|
|
124
|
+
# After fixing code, re-verify the item
|
|
125
|
+
ranger verify-feature --item <N>
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
The verification agent automatically receives reviewer comments, so it will check that each concern was addressed.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
108
132
|
# Finally Report
|
|
109
133
|
|
|
110
134
|
Once you're done verifying, and just before stopping the session, share the feature review link with the user:
|
|
@@ -146,8 +170,24 @@ Once you're done verifying, and just before stopping the session, share the feat
|
|
|
146
170
|
│ NO (all verified)
|
|
147
171
|
▼
|
|
148
172
|
┌───────────────────────┐
|
|
149
|
-
│
|
|
150
|
-
|
|
173
|
+
│ Feature sent for │
|
|
174
|
+
│ review │
|
|
175
|
+
└───────────┬───────────┘
|
|
176
|
+
│
|
|
177
|
+
▼
|
|
178
|
+
Reviewer comments?
|
|
179
|
+
│ │
|
|
180
|
+
NO YES
|
|
181
|
+
│ │
|
|
182
|
+
▼ ▼
|
|
183
|
+
┌─────────┐ ┌──────────────────────┐
|
|
184
|
+
│ Done! │ │ 4. ADDRESS FEEDBACK │ ◀── MUST READ feedback.md
|
|
185
|
+
└─────────┘ │ • get-feedback │
|
|
186
|
+
│ • fix code │
|
|
187
|
+
│ • re-verify │
|
|
188
|
+
└──────────┬───────────┘
|
|
189
|
+
│
|
|
190
|
+
└──▶ Back to step 2
|
|
151
191
|
```
|
|
152
192
|
|
|
153
193
|
---
|
|
@@ -161,6 +201,7 @@ Once you're done verifying, and just before stopping the session, share the feat
|
|
|
161
201
|
| `ranger feature show` | Show current feature status |
|
|
162
202
|
| `ranger feature create` | Create new feature with checklist |
|
|
163
203
|
| `ranger feature add-checklist-item` | Add a checklist item to active feature |
|
|
204
|
+
| `ranger feature get-feedback` | See reviewer comments on items |
|
|
164
205
|
| `ranger verify-feature` | Verify checklist item in browser |
|
|
165
206
|
|
|
166
207
|
# Key Principles
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# Addressing Reviewer Feedback
|
|
2
|
+
|
|
3
|
+
When a reviewer leaves comments on checklist items, a new version (v2) of the item is created to incorporate the feedback. The reviewer's comments were left on the **previous version** (v1), but they are the reason this v2 item exists. Use this workflow to understand what the reviewer wants, fix the code, and re-verify.
|
|
4
|
+
|
|
5
|
+
v2+ items inherit comments from their parent version. Run `get-feedback` to see them.
|
|
6
|
+
|
|
7
|
+
## When This Applies
|
|
8
|
+
|
|
9
|
+
- Items show as v2/v3 with `[has reviewer feedback]` tag
|
|
10
|
+
- `ranger feature resume` prints a warning about unaddressed comments
|
|
11
|
+
|
|
12
|
+
## Step 1: Read the Feedback
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
ranger feature get-feedback
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
This shows ALL reviewer comments across all items, including:
|
|
19
|
+
- The specific comment content and who wrote it
|
|
20
|
+
- The previous version description (what changed from v1 to v2)
|
|
21
|
+
- The expected flow from prior verification (canonical flow)
|
|
22
|
+
|
|
23
|
+
### Example Output
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
📋 Feedback for: User Authentication (feat_abc123)
|
|
27
|
+
|
|
28
|
+
Item 1: "User can log in" (v2) — 2 unaddressed comments (from previous version)
|
|
29
|
+
Previous version: "User can log in with email"
|
|
30
|
+
This item was created to address the following reviewer feedback:
|
|
31
|
+
💬 Jane (Feb 5): "Password field should show/hide toggle"
|
|
32
|
+
💬 Bob (Feb 5): "Error message not visible on failed login"
|
|
33
|
+
Expected flow:
|
|
34
|
+
1. Navigate to /login
|
|
35
|
+
2. Enter email and password
|
|
36
|
+
3. Click Submit
|
|
37
|
+
4. Verify dashboard appears
|
|
38
|
+
|
|
39
|
+
Item 2: "Dashboard loads" — 0 comments
|
|
40
|
+
✅ No feedback to address
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Step 2: Fix the Code
|
|
44
|
+
|
|
45
|
+
For each unaddressed comment:
|
|
46
|
+
1. Read the comment carefully — what is the reviewer asking for?
|
|
47
|
+
2. Look at the "previous version" description to understand what changed
|
|
48
|
+
3. If a canonical flow is provided, that's the expected user journey to verify against
|
|
49
|
+
4. Make the code changes that address each concern
|
|
50
|
+
|
|
51
|
+
## Step 3: Re-verify
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
ranger verify-feature --item <N>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
The verification agent **automatically receives the reviewer comments** in its prompt. It will specifically check that each reviewer concern was addressed in the current implementation.
|
|
58
|
+
|
|
59
|
+
## Key Points
|
|
60
|
+
|
|
61
|
+
- Always run `get-feedback` **before** making code changes — understand what the reviewer wants first
|
|
62
|
+
- v2+ items inherit their parent's comments — those comments are the reason this version exists
|
|
63
|
+
- The verify-feature command auto-injects feedback into the browser agent's prompt, so you don't need to manually include comments in your `--task` description
|
|
64
|
+
- Address ALL unaddressed comments before re-verifying — partial fixes may result in another review round
|
|
@@ -45,6 +45,16 @@ This displays:
|
|
|
45
45
|
- Git context (repo, branch)
|
|
46
46
|
- Checklist with item statuses
|
|
47
47
|
|
|
48
|
+
## Check for Reviewer Feedback
|
|
49
|
+
|
|
50
|
+
If any checklist items show comment badges (e.g., `[2 comments]`) or are at v2+, reviewer feedback needs to be addressed:
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
ranger feature get-feedback
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
This shows the actual comment content, who wrote it, and the previous version description. **Read [feedback.md](./feedback.md) for the full feedback workflow.**
|
|
57
|
+
|
|
48
58
|
## Add Checklist Items
|
|
49
59
|
|
|
50
60
|
If you need to add new work to an existing feature:
|
|
@@ -88,7 +98,13 @@ ranger feature list
|
|
|
88
98
|
│ ranger feature show
|
|
89
99
|
│ │
|
|
90
100
|
│ ▼
|
|
91
|
-
│
|
|
101
|
+
│ Items have comments?
|
|
102
|
+
│ │ │
|
|
103
|
+
│ YES NO
|
|
104
|
+
│ │ │
|
|
105
|
+
│ ▼ ▼
|
|
106
|
+
│ get-feedback Continue working
|
|
107
|
+
│ fix + verify
|
|
92
108
|
│
|
|
93
109
|
└── None exist? ──▶ See create.md
|
|
94
110
|
```
|
|
@@ -22,10 +22,20 @@ ranger feature resume <id> # Resume a specific feature
|
|
|
22
22
|
## The Verification Flow
|
|
23
23
|
|
|
24
24
|
1. **Select checklist item** - CLI prompts which item this verifies
|
|
25
|
-
2. **
|
|
26
|
-
3. **
|
|
27
|
-
4. **
|
|
28
|
-
5. **
|
|
25
|
+
2. **Fetch reviewer feedback** - If the item has unaddressed comments or a parent item, reviewer comments are automatically injected into the verification prompt
|
|
26
|
+
3. **Run browser verification** - Agent executes the task in a real browser
|
|
27
|
+
4. **Evaluate results** - Agent determines if the checklist item is satisfied (including whether reviewer concerns were addressed)
|
|
28
|
+
5. **Update status** - Item is marked verified, partial, blocked, or failed
|
|
29
|
+
6. **Link evidence** - Session trace is attached to the item
|
|
30
|
+
|
|
31
|
+
### Reviewer Feedback Auto-Injection
|
|
32
|
+
|
|
33
|
+
When verifying items that have reviewer comments (v2+ items or items with unaddressed comments), the verification agent automatically receives a **"Reviewer Feedback to Address"** section in its prompt. This includes:
|
|
34
|
+
- Each reviewer comment with author and date
|
|
35
|
+
- The previous version's description
|
|
36
|
+
- The canonical flow from prior verification (if available)
|
|
37
|
+
|
|
38
|
+
You do NOT need to manually include reviewer feedback in your `--task` description — it's handled automatically. Just make sure you've addressed the feedback in your code before verifying.
|
|
29
39
|
|
|
30
40
|
## Options
|
|
31
41
|
|
|
@@ -151,7 +161,7 @@ Check progress:
|
|
|
151
161
|
ranger feature show
|
|
152
162
|
```
|
|
153
163
|
|
|
154
|
-
If all non-
|
|
164
|
+
If all non-closed items are verified, the feature auto-completes:
|
|
155
165
|
|
|
156
166
|
```
|
|
157
167
|
✅ User Authentication (feat_abc123)
|