@ranger-testing/ranger-cli 2.5.4-alpha.0e8b82c-9 → 2.5.4-alpha.152f635-21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +36 -14
  2. package/build/cli.js +1 -1
  3. package/build/commands/addEnv.js +1 -1
  4. package/build/commands/authEncrypt.js +1 -1
  5. package/build/commands/clean.js +1 -1
  6. package/build/commands/config.js +1 -1
  7. package/build/commands/env.js +1 -1
  8. package/build/commands/feature.js +1 -1
  9. package/build/commands/hook.js +1 -1
  10. package/build/commands/hooks/autoPrompt.js +1 -1
  11. package/build/commands/hooks/disable.js +1 -1
  12. package/build/commands/hooks/enable.js +1 -1
  13. package/build/commands/hooks/exitPlanMode.js +1 -1
  14. package/build/commands/hooks/index.js +1 -1
  15. package/build/commands/hooks/output.js +1 -1
  16. package/build/commands/hooks/planReminder.js +1 -1
  17. package/build/commands/hooks/planStart.js +1 -1
  18. package/build/commands/hooks/postEdit.js +1 -1
  19. package/build/commands/hooks/preCompact.js +1 -1
  20. package/build/commands/hooks/sessionEnd.js +1 -1
  21. package/build/commands/hooks/sessionStart.js +1 -1
  22. package/build/commands/hooks/stopHook.js +1 -1
  23. package/build/commands/index.js +1 -1
  24. package/build/commands/login.js +1 -1
  25. package/build/commands/mcpBootstrap.js +1 -1
  26. package/build/commands/migrateProfile.js +1 -1
  27. package/build/commands/setup/claude.js +1 -1
  28. package/build/commands/setup/opencode.js +1 -1
  29. package/build/commands/setupCi.js +1 -1
  30. package/build/commands/skillup.js +1 -1
  31. package/build/commands/start.js +1 -1
  32. package/build/commands/status.js +1 -1
  33. package/build/commands/update.js +1 -1
  34. package/build/commands/updateEnv.js +1 -1
  35. package/build/commands/useEnv.js +1 -1
  36. package/build/commands/utils/activeProfile.js +1 -1
  37. package/build/commands/utils/agentEnv.js +1 -1
  38. package/build/commands/utils/browserSessionsApi.js +1 -1
  39. package/build/commands/utils/claudeConfig.js +1 -1
  40. package/build/commands/utils/claudeOverrideSettings.js +1 -1
  41. package/build/commands/utils/claudePlugin.js +1 -1
  42. package/build/commands/utils/cloudProfile.js +1 -1
  43. package/build/commands/utils/cloudProfileSession.js +1 -1
  44. package/build/commands/utils/crypto.js +1 -1
  45. package/build/commands/utils/desirePathLog.js +1 -1
  46. package/build/commands/utils/deviceAuth.js +1 -1
  47. package/build/commands/utils/environment.js +1 -1
  48. package/build/commands/utils/featureApi.js +1 -1
  49. package/build/commands/utils/fixWebmDuration.js +1 -1
  50. package/build/commands/utils/gitTracked.js +1 -1
  51. package/build/commands/utils/keychain.js +1 -1
  52. package/build/commands/utils/legacyWarning.js +1 -0
  53. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  54. package/build/commands/utils/matchAuthEnvironment.js +1 -1
  55. package/build/commands/utils/mcpImageBase64.js +1 -1
  56. package/build/commands/utils/model.js +1 -1
  57. package/build/commands/utils/opencodeConfig.js +1 -1
  58. package/build/commands/utils/playwrightCli.js +1 -1
  59. package/build/commands/utils/profileMessages.js +1 -1
  60. package/build/commands/utils/profileSetupBanner.js +1 -1
  61. package/build/commands/utils/projectsConfig.js +1 -1
  62. package/build/commands/utils/rangerConfig.js +1 -1
  63. package/build/commands/utils/rangerRoot.js +1 -1
  64. package/build/commands/utils/resolveProfileContext.js +1 -1
  65. package/build/commands/utils/resolveProfileUrl.js +1 -1
  66. package/build/commands/utils/retry.js +1 -1
  67. package/build/commands/utils/sessionCache.js +1 -1
  68. package/build/commands/utils/settings.js +1 -1
  69. package/build/commands/utils/skillContent.js +1 -1
  70. package/build/commands/utils/skills.js +1 -1
  71. package/build/commands/utils/stitchWebmFiles.js +1 -1
  72. package/build/commands/utils/telemetry.js +1 -1
  73. package/build/commands/utils/tokenRefresh.js +1 -1
  74. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  75. package/build/commands/utils/userApi.js +1 -1
  76. package/build/commands/utils/version.js +1 -1
  77. package/build/commands/verifyFeature.js +1 -1
  78. package/build/commands/verifyFeatureCli.js +1 -1
  79. package/build/skills/ranger/SKILL.md +24 -8
  80. package/build/skills/ranger/create.md +16 -3
  81. package/build/skills/ranger/verify.md +35 -10
  82. package/package.json +3 -2
@@ -1 +1 @@
1
- function _0x4fdc(_0x568f1d,_0x215ea7){_0x568f1d=_0x568f1d-0x90;const _0x4b2e29=_0x4b2e();let _0x4fdccf=_0x4b2e29[_0x568f1d];return _0x4fdccf;}(function(_0x327953,_0x3f42b0){const _0x2019a7=_0x4fdc,_0x182022=_0x327953();while(!![]){try{const _0x262196=parseInt(_0x2019a7(0x96))/0x1*(-parseInt(_0x2019a7(0xa0))/0x2)+-parseInt(_0x2019a7(0x9e))/0x3+-parseInt(_0x2019a7(0x95))/0x4+-parseInt(_0x2019a7(0x90))/0x5+parseInt(_0x2019a7(0x9b))/0x6+parseInt(_0x2019a7(0x99))/0x7*(-parseInt(_0x2019a7(0x9d))/0x8)+-parseInt(_0x2019a7(0x9f))/0x9*(-parseInt(_0x2019a7(0x9c))/0xa);if(_0x262196===_0x3f42b0)break;else _0x182022['push'](_0x182022['shift']());}catch(_0x3ad43c){_0x182022['push'](_0x182022['shift']());}}}(_0x4b2e,0x4cf8f));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x4b2e(){const _0x5673ad=['1256703UvfBRW','27hvpFrE','2LzJLEz','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','1372420vUgAnt','isTTY','log','user','message','1700172YHHjEd','481647Eiijuv','\x0a✅\x20API\x20key\x20stored\x20successfully','Re-authenticating\x20via\x20MCP\x20bootstrap...','38829ykejxb','stdout','2430024Dtksdv','5052990xWVzLN','8bAYAbB'];_0x4b2e=function(){return _0x5673ad;};return _0x4b2e();}import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';export async function login(){const _0x5c4467=_0x4fdc,_0x241b43={'DMwul':_0x5c4467(0xa1)},_0x493209=await getMcpAuthOrigin();if(_0x493209){console[_0x5c4467(0x92)](_0x5c4467(0x98)),await mcpBootstrap();return;}const _0x2b9b39=process['stdin'][_0x5c4467(0x91)]&&process[_0x5c4467(0x9a)][_0x5c4467(0x91)];if(!_0x2b9b39)throw new Error(_0x241b43['DMwul']);try{const _0x3b43f7=await runDeviceAuthFlow(),_0x5870f3=await getCurrentUser(_0x3b43f7);_0x5870f3['success']?console[_0x5c4467(0x92)]('\x0a✅\x20Logged\x20in\x20to\x20'+_0x5870f3[_0x5c4467(0x93)]['organizationName']):console['log'](_0x5c4467(0x97));}catch(_0x18a785){throw new Error('Login\x20failed:\x20'+(_0x18a785 instanceof Error?_0x18a785[_0x5c4467(0x94)]:_0x18a785));}}
1
+ function _0x51e8(){const _0xb5fa1d=['3902900qbczZq','30Nkrois','\x0a✅\x20Logged\x20in\x20to\x20','3083836tuOfmA','user','48728BmVNtb','6465200XCkqlc','5614764McUzzj','36bIndEN','1370257GKGRMA','973024WfjWCM','stdin','\x0a✅\x20API\x20key\x20stored\x20successfully','log','2BDGaKj','dHAWM'];_0x51e8=function(){return _0xb5fa1d;};return _0x51e8();}function _0x2e9d(_0x44a7d1,_0xebef1b){_0x44a7d1=_0x44a7d1-0x1b1;const _0x51e89b=_0x51e8();let _0x2e9d19=_0x51e89b[_0x44a7d1];return _0x2e9d19;}(function(_0x141cbb,_0x1c2219){const _0x2a1e7e=_0x2e9d,_0x12b1ae=_0x141cbb();while(!![]){try{const _0x4d2a63=-parseInt(_0x2a1e7e(0x1bd))/0x1*(-parseInt(_0x2a1e7e(0x1b1))/0x2)+-parseInt(_0x2a1e7e(0x1ba))/0x3+-parseInt(_0x2a1e7e(0x1b6))/0x4+parseInt(_0x2a1e7e(0x1b9))/0x5+-parseInt(_0x2a1e7e(0x1b4))/0x6*(-parseInt(_0x2a1e7e(0x1bc))/0x7)+parseInt(_0x2a1e7e(0x1b8))/0x8*(-parseInt(_0x2a1e7e(0x1bb))/0x9)+parseInt(_0x2a1e7e(0x1b3))/0xa;if(_0x4d2a63===_0x1c2219)break;else _0x12b1ae['push'](_0x12b1ae['shift']());}catch(_0x27fff0){_0x12b1ae['push'](_0x12b1ae['shift']());}}}(_0x51e8,0xec606));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';export async function login(){const _0x1e2075=_0x2e9d,_0x40e351={'eZxth':'Re-authenticating\x20via\x20MCP\x20bootstrap...','sNUxu':function(_0x291dc2){return _0x291dc2();},'dHAWM':'Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','rwyAy':_0x1e2075(0x1bf)},_0x44194e=await getMcpAuthOrigin();if(_0x44194e){console[_0x1e2075(0x1c0)](_0x40e351['eZxth']),await _0x40e351['sNUxu'](mcpBootstrap);return;}const _0x1dcd98=process[_0x1e2075(0x1be)]['isTTY']&&process['stdout']['isTTY'];if(!_0x1dcd98)throw new Error(_0x40e351[_0x1e2075(0x1b2)]);try{const _0xf08971=await runDeviceAuthFlow(),_0x545941=await getCurrentUser(_0xf08971);_0x545941['success']?console['log'](_0x1e2075(0x1b5)+_0x545941[_0x1e2075(0x1b7)]['organizationName']):console[_0x1e2075(0x1c0)](_0x40e351['rwyAy']);}catch(_0x5c7f0b){throw new Error('Login\x20failed:\x20'+(_0x5c7f0b instanceof Error?_0x5c7f0b['message']:_0x5c7f0b));}}
@@ -1 +1 @@
1
- function _0x84d7(_0x4d3b1f,_0x36044c){_0x4d3b1f=_0x4d3b1f-0x1cf;const _0x7a23d5=_0x7a23();let _0x84d7e3=_0x7a23d5[_0x4d3b1f];return _0x84d7e3;}const _0x30785e=_0x84d7;function _0x7a23(){const _0x3a8f42=['Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','ovZgQ','\x20done','OxaVY','CbBfA','.ranger','MapMx','HTTP\x20','XBFYk','Initializing\x20MCP\x20session...','OtCIc','aQMPl','initialize','refresh_token','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','client_secret','log','mhUdm','iAMND','child_process','toString','NfXwq','ranger-cli','LohGH','isError','\x0aUnexpected\x20response\x20structure:','NQATg','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','error_description','get_cli_token','text/event-stream','now','MCP\x20initialize\x20failed:\x20','ssLKR','tKerN','2.0','144392wtvKTE','expires_in','win32','2025-03-26','6751107lJDcFn','Not\x20found','error','VCbrs','writeHead','NEaap','eEZPy','dXXlI','Token\x20exchange\x20failed:\x20','auth-origin.txt','kIiUB','iTEAe','application/json','/callback','\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a','\x0aToken\x20written\x20to\x20','1660NuLRYH','stdout','swyPI','Discovering\x20authorization\x20server...','resource','authorization_endpoint','platform','dYJtR','redirect_uri','Authorization','type','refreshToken','get','code','QHNxI','NcbcX','KOTFi','evfUi','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','text/html','XpGtg','then','status','1.0.0','trim','access_token','text','aAEeF','tkEma','update','url','IKGKX','BBIru','utf-8','proxied','wAiay','includes','jrpGC','nizey','9155tmlVPK','/.well-known/oauth-authorization-server','nNAoe','stringify','start','authorization_code','GIFId','pAOWh','1439310CLiEVs','write','faEqM','replace','base64url','http://localhost:','Nxamk','origin','pathname','vwbWa','client_id','response_type','authorization_servers','listen','ZqUtA','fxZoi','application/x-www-form-urlencoded','POST','token','clientId','message','clientSecret','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','aNHbp','token_endpoint','searchParams','data:','469lsIchr','25980410LnEZMv','state','TVRTf','accessToken','Ranger\x20CLI','754452ByJMnh','json','lHKBO','expiresAt','62BFEhpD','Irlsl','lBwqw','length','close','application/json,\x20text/event-stream','dZlps','oxUQL','HmhLx','slice','registration_endpoint','GzwGj','Client\x20registration\x20failed:\x20','20521VHtgJQ','set'];_0x7a23=function(){return _0x3a8f42;};return _0x7a23();}(function(_0x2dc62d,_0x540877){const _0x1df598=_0x84d7,_0x32223f=_0x2dc62d();while(!![]){try{const _0x33a55d=-parseInt(_0x1df598(0x1e1))/0x1*(-parseInt(_0x1df598(0x1d4))/0x2)+parseInt(_0x1df598(0x1d0))/0x3+-parseInt(_0x1df598(0x21b))/0x4*(-parseInt(_0x1df598(0x242))/0x5)+-parseInt(_0x1df598(0x24a))/0x6+-parseInt(_0x1df598(0x265))/0x7*(-parseInt(_0x1df598(0x207))/0x8)+parseInt(_0x1df598(0x20b))/0x9+-parseInt(_0x1df598(0x266))/0xa;if(_0x33a55d===_0x540877)break;else _0x32223f['push'](_0x32223f['shift']());}catch(_0x1efc75){_0x32223f['push'](_0x32223f['shift']());}}}(_0x7a23,0xbbbd4));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),'.ranger','mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),'.ranger',_0x30785e(0x214));export async function getMcpAuthOrigin(){const _0x1b68a9=_0x30785e,_0x38cdbd={'YJUQu':function(_0x17b9cf,_0x21c812,_0x54d592){return _0x17b9cf(_0x21c812,_0x54d592);}};try{const _0x20ac34=(await _0x38cdbd['YJUQu'](readFile,AUTH_ORIGIN_PATH,_0x1b68a9(0x23c)))['trim']();return _0x20ac34||null;}catch{return null;}}export async function mcpBootstrap(){const _0x5a3e14=_0x30785e,_0x2db4fb={'XXtMZ':function(_0xd7f66c){return _0xd7f66c();},'aQMPl':function(_0x574b36,_0x436020){return _0x574b36===_0x436020;}},_0x3fd8b8=_0x2db4fb['XXtMZ'](getMcpAuthUrl);currentOrigin=_0x3fd8b8;const _0x222b24=process[_0x5a3e14(0x21c)]['isTTY']??![];console[_0x5a3e14(0x1f3)]('\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20'+_0x3fd8b8+'\x0a');const _0x51202c=await tryUnauthenticated(_0x3fd8b8);let _0x497106=null;if(_0x2db4fb[_0x5a3e14(0x1ee)](_0x51202c,_0x5a3e14(0x23d)))_0x497106='';else{_0x497106=await _0x2db4fb['XXtMZ'](loadCachedToken);if(!_0x497106){if(!_0x222b24)throw new Error('MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a'+_0x5a3e14(0x1f1));_0x497106=await oauthFlow(_0x3fd8b8);}}await callGetCliToken(_0x3fd8b8,_0x497106);}async function tryUnauthenticated(_0x3aa063){const _0x29a213=_0x30785e,_0x113aca={'EdBFQ':'POST','sBLnL':'application/json','QHNxI':_0x29a213(0x1d9),'OxaVY':_0x29a213(0x20a),'OtCIc':_0x29a213(0x1f9),'vwbWa':'proxied','SniDd':function(_0x139e25,_0x278abb){return _0x139e25===_0x278abb;},'wxRYQ':'needs-oauth'},_0x2a19de=await fetch(_0x3aa063,{'method':_0x113aca['EdBFQ'],'headers':{'Content-Type':_0x113aca['sBLnL'],'Accept':_0x113aca[_0x29a213(0x229)]},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x1,'method':'initialize','params':{'protocolVersion':_0x113aca[_0x29a213(0x1e6)],'capabilities':{},'clientInfo':{'name':_0x113aca[_0x29a213(0x1ed)],'version':_0x29a213(0x232)}}})});if(_0x2a19de['ok'])return await _0x2a19de[_0x29a213(0x235)](),_0x113aca[_0x29a213(0x253)];if(_0x113aca['SniDd'](_0x2a19de['status'],0x191))return await _0x2a19de[_0x29a213(0x235)](),_0x113aca['wxRYQ'];const _0xa8a275=await _0x2a19de['text']();throw new Error('MCP\x20server\x20returned\x20HTTP\x20'+_0x2a19de[_0x29a213(0x231)]+':\x20'+_0xa8a275);}class OAuthTimeoutError extends Error{constructor(_0x429cde){super(_0x429cde),this['name']='OAuthTimeoutError';}}async function oauthFlow(_0x33c5bb){const _0x204abe=_0x30785e,_0x16211f={'JcKbr':function(_0x99fd2c,_0xae2ac4){return _0x99fd2c(_0xae2ac4);},'KOTFi':function(_0x2e9d9c){return _0x2e9d9c();},'lHKBO':function(_0x3fb054,_0x28fafe){return _0x3fb054(_0x28fafe);}};try{return await _0x16211f['JcKbr'](oauthFlowAttempt,_0x33c5bb);}catch(_0x4770f9){if(_0x4770f9 instanceof OAuthTimeoutError&&await _0x16211f[_0x204abe(0x22b)](loadCachedClient))return console['log'](_0x204abe(0x219)),await clearCachedClient(),await _0x16211f[_0x204abe(0x1d2)](oauthFlowAttempt,_0x33c5bb);throw _0x4770f9;}}async function oauthFlowAttempt(_0x33772e){const _0x12d0cc=_0x30785e,_0x38ee59={'mhUdm':_0x12d0cc(0x21e),'aAEeF':'Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','UZzAa':'No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','FClVm':'Registering\x20OAuth\x20client...','uuEON':'POST','BqnkU':_0x12d0cc(0x217),'GIFId':_0x12d0cc(0x247),'aNHbp':'none','etsgo':_0x12d0cc(0x24e),'vPquK':'sha256','MapMx':function(_0x2c0bef,_0x7aac45){return _0x2c0bef(_0x7aac45);},'XCOWE':'hex','NQATg':_0x12d0cc(0x228),'UuODv':'code_challenge','IKGKX':'code_challenge_method','tKerN':function(_0x2bdb39,_0x3a0e48){return _0x2bdb39(_0x3a0e48);},'eEZPy':'Exchanging\x20authorization\x20code...','fxZoi':'resource','XpGtg':_0x12d0cc(0x1e5)},_0x4a8adf=_0x33772e[_0x12d0cc(0x24d)](/\/mcp$/,'');process['stdout']['write'](_0x38ee59[_0x12d0cc(0x1f4)]);const _0x233584=await fetch(_0x4a8adf+'/.well-known/oauth-protected-resource');if(!_0x233584['ok'])throw new Error(_0x38ee59[_0x12d0cc(0x236)]);const _0x221436=await _0x233584['json'](),_0x5bdcb0=_0x221436[_0x12d0cc(0x256)]?.[0x0];if(!_0x5bdcb0)throw new Error(_0x38ee59['UZzAa']);console[_0x12d0cc(0x1f3)]('\x20'+_0x5bdcb0);const _0x4084eb=await fetchAuthServerMetadata(_0x5bdcb0);let _0x2ae56b,_0x1684f5;const _0x5cd95a=await loadCachedClient();if(_0x5cd95a)_0x2ae56b=_0x5cd95a['clientId'],_0x1684f5=_0x5cd95a['clientSecret'];else{if(_0x4084eb[_0x12d0cc(0x1de)]){process[_0x12d0cc(0x21c)][_0x12d0cc(0x24b)](_0x38ee59['FClVm']);const _0x33b810=await fetch(_0x4084eb['registration_endpoint'],{'method':_0x38ee59['uuEON'],'headers':{'Content-Type':_0x38ee59['BqnkU']},'body':JSON['stringify']({'client_name':_0x12d0cc(0x1cf),'redirect_uris':['http://localhost:'+CALLBACK_PORT+_0x12d0cc(0x218)],'grant_types':[_0x38ee59['GIFId'],_0x12d0cc(0x1f0)],'response_types':['code'],'token_endpoint_auth_method':_0x38ee59[_0x12d0cc(0x261)]})});if(!_0x33b810['ok']){const _0x545b28=await _0x33b810[_0x12d0cc(0x235)]();throw new Error(_0x12d0cc(0x1e0)+_0x545b28);}const _0x343ad1=await _0x33b810[_0x12d0cc(0x1d1)]();_0x2ae56b=_0x343ad1[_0x12d0cc(0x254)],_0x1684f5=_0x343ad1[_0x12d0cc(0x1f2)],await saveCachedClient(_0x2ae56b,_0x1684f5),console[_0x12d0cc(0x1f3)]('\x20done');}else throw new Error(_0x12d0cc(0x1e3));}const _0x43cf99=randomBytes(0x20)[_0x12d0cc(0x1f7)](_0x38ee59['etsgo']),_0x39da41=createHash(_0x38ee59['vPquK'])[_0x12d0cc(0x238)](_0x43cf99)['digest'](_0x12d0cc(0x24e)),_0x373f5c=_0x38ee59[_0x12d0cc(0x1e9)](randomBytes,0x10)[_0x12d0cc(0x1f7)](_0x38ee59['XCOWE']),_0xd25062=new URL(_0x4084eb[_0x12d0cc(0x220)]);_0xd25062[_0x12d0cc(0x263)][_0x12d0cc(0x1e2)](_0x12d0cc(0x255),_0x38ee59[_0x12d0cc(0x1fd)]),_0xd25062['searchParams'][_0x12d0cc(0x1e2)]('client_id',_0x2ae56b),_0xd25062[_0x12d0cc(0x263)][_0x12d0cc(0x1e2)](_0x12d0cc(0x223),'http://localhost:'+CALLBACK_PORT+_0x12d0cc(0x218)),_0xd25062[_0x12d0cc(0x263)]['set'](_0x38ee59['UuODv'],_0x39da41),_0xd25062['searchParams'][_0x12d0cc(0x1e2)](_0x38ee59[_0x12d0cc(0x23a)],'S256'),_0xd25062['searchParams'][_0x12d0cc(0x1e2)]('state',_0x373f5c);_0x221436[_0x12d0cc(0x21f)]&&_0xd25062['searchParams']['set'](_0x12d0cc(0x21f),_0x221436['resource']);console[_0x12d0cc(0x1f3)]('\x0aOpening\x20browser\x20for\x20authentication...'),console['log'](_0x12d0cc(0x1fe)+_0xd25062[_0x12d0cc(0x1f7)]()+'\x0a'),await _0x38ee59[_0x12d0cc(0x1e9)](openBrowser,_0xd25062[_0x12d0cc(0x1f7)]());const _0x8c6da1=await _0x38ee59[_0x12d0cc(0x205)](waitForCallback,_0x373f5c);process['stdout'][_0x12d0cc(0x24b)](_0x38ee59[_0x12d0cc(0x211)]);const _0x4ebc9a=new URLSearchParams({'grant_type':_0x38ee59[_0x12d0cc(0x248)],'code':_0x8c6da1,'redirect_uri':'http://localhost:'+CALLBACK_PORT+_0x12d0cc(0x218),'client_id':_0x2ae56b,'code_verifier':_0x43cf99});_0x1684f5&&_0x4ebc9a[_0x12d0cc(0x1e2)](_0x12d0cc(0x1f2),_0x1684f5);_0x221436[_0x12d0cc(0x21f)]&&_0x4ebc9a['set'](_0x38ee59[_0x12d0cc(0x259)],_0x221436['resource']);const _0x21844e=await fetch(_0x4084eb[_0x12d0cc(0x262)],{'method':'POST','headers':{'Content-Type':_0x12d0cc(0x25a)},'body':_0x4ebc9a});if(!_0x21844e['ok']){const _0x3d6b5b=await _0x21844e[_0x12d0cc(0x235)]();throw new Error(_0x12d0cc(0x213)+_0x3d6b5b);}const _0x5159a1=await _0x21844e[_0x12d0cc(0x1d1)]();return console[_0x12d0cc(0x1f3)](_0x38ee59[_0x12d0cc(0x22f)]),await saveCachedToken(_0x5159a1[_0x12d0cc(0x234)],_0x5159a1['refresh_token'],_0x5159a1[_0x12d0cc(0x208)]),_0x5159a1[_0x12d0cc(0x234)];}async function callGetCliToken(_0x273307,_0x23fd3d){const _0x2a787c=_0x30785e,_0x4e2886={'Nxamk':function(_0x21e879,_0x220f83,_0x1ac2d1){return _0x21e879(_0x220f83,_0x1ac2d1);},'jXoOr':function(_0x5d8952,_0x4959c5){return _0x5d8952(_0x4959c5);},'HmhLx':'application/json','pAOWh':_0x2a787c(0x1ec),'nizey':_0x2a787c(0x206),'NfXwq':'2025-03-26','ZqUtA':'ranger-cli','LMlQE':_0x2a787c(0x232),'aRJvu':'\x20done','tkEma':_0x2a787c(0x25b),'aKIIG':'notifications/initialized','WRlFV':'tools/call','kIiUB':_0x2a787c(0x200),'ssLKR':'Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','Yazvr':function(_0x1a60a9){return _0x1a60a9();},'nNAoe':function(_0x9b473e,_0xedf57c,_0x4a0ea4){return _0x9b473e(_0xedf57c,_0x4a0ea4);},'Irlsl':function(_0x441492,_0x2d376b,_0x49fd06,_0x5f0e2b){return _0x441492(_0x2d376b,_0x49fd06,_0x5f0e2b);}},_0x48e661={'Content-Type':_0x4e2886[_0x2a787c(0x1dc)],'Accept':_0x2a787c(0x1d9)};_0x23fd3d&&(_0x48e661[_0x2a787c(0x224)]='Bearer\x20'+_0x23fd3d);const _0x295464=async _0x190870=>{const _0x209060=_0x2a787c,_0xc8678a=await _0x4e2886[_0x209060(0x250)](fetch,_0x273307,{'method':_0x209060(0x25b),'headers':_0x48e661,'body':JSON['stringify'](_0x190870)});if(!_0xc8678a['ok']){const _0x206594=await _0xc8678a['text']();throw new Error(_0x209060(0x1ea)+_0xc8678a['status']+':\x20'+_0x206594);}return _0x4e2886['jXoOr'](parseResponse,_0xc8678a);};process[_0x2a787c(0x21c)]['write'](_0x4e2886[_0x2a787c(0x249)]);const _0x197afb=await _0x4e2886['jXoOr'](_0x295464,{'jsonrpc':_0x4e2886[_0x2a787c(0x241)],'id':0x1,'method':_0x2a787c(0x1ef),'params':{'protocolVersion':_0x4e2886[_0x2a787c(0x1f8)],'capabilities':{},'clientInfo':{'name':_0x4e2886[_0x2a787c(0x258)],'version':_0x4e2886['LMlQE']}}});if(_0x197afb[_0x2a787c(0x20d)])throw new Error(_0x2a787c(0x203)+(_0x197afb[_0x2a787c(0x20d)]['message']??JSON['stringify'](_0x197afb[_0x2a787c(0x20d)])));console[_0x2a787c(0x1f3)](_0x4e2886['aRJvu']),await _0x4e2886['Nxamk'](fetch,_0x273307,{'method':_0x4e2886[_0x2a787c(0x237)],'headers':_0x48e661,'body':JSON[_0x2a787c(0x245)]({'jsonrpc':_0x4e2886[_0x2a787c(0x241)],'method':_0x4e2886['aKIIG']})})[_0x2a787c(0x230)](_0x4a623e=>_0x4a623e[_0x2a787c(0x235)]()),process['stdout'][_0x2a787c(0x24b)]('Requesting\x20CLI\x20token...');const _0x12d14f=await _0x295464({'jsonrpc':_0x4e2886['nizey'],'id':0x2,'method':_0x4e2886['WRlFV'],'params':{'name':_0x4e2886[_0x2a787c(0x215)],'arguments':{}}});if(_0x12d14f[_0x2a787c(0x20d)])throw new Error('get_cli_token\x20failed:\x20'+(_0x12d14f[_0x2a787c(0x20d)][_0x2a787c(0x25e)]??JSON['stringify'](_0x12d14f[_0x2a787c(0x20d)])));console['log']('\x20done');const _0x1b6fa1=extractToken(_0x12d14f['result']);if(!_0x1b6fa1){console[_0x2a787c(0x20d)](_0x2a787c(0x1fc)),console[_0x2a787c(0x20d)](JSON['stringify'](_0x12d14f['result'],null,0x2));throw new Error(_0x4e2886[_0x2a787c(0x204)]);}const _0x47f64b=join(_0x4e2886['Yazvr'](homedir),'.ranger'),_0x32b6b4=_0x4e2886[_0x2a787c(0x244)](join,_0x47f64b,'refresh.txt');await mkdir(_0x47f64b,{'recursive':!![]}),await _0x4e2886[_0x2a787c(0x1d5)](writeFile,_0x32b6b4,_0x1b6fa1,{'mode':0x180}),await writeFile(_0x4e2886[_0x2a787c(0x244)](join,_0x47f64b,_0x2a787c(0x214)),_0x273307,{'mode':0x180}),console[_0x2a787c(0x1f3)](_0x2a787c(0x21a)+_0x32b6b4),console[_0x2a787c(0x1f3)]('Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a');}async function fetchAuthServerMetadata(_0x2c3ed2){const _0x1b285f=_0x30785e,_0x5da648=_0x2c3ed2+_0x1b285f(0x243),_0x1d1b5c=await fetch(_0x5da648);if(!_0x1d1b5c['ok'])throw new Error(_0x1b285f(0x22d)+_0x5da648+':\x20'+_0x1d1b5c['status']);return _0x1d1b5c[_0x1b285f(0x1d1)]();}function waitForCallback(_0x4a1dc6){const _0x3f1a32=_0x30785e,_0x55a031={'RKXAJ':'OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','oxUQL':function(_0x4e2dd3,_0x16c358){return _0x4e2dd3!==_0x16c358;},'hMYVv':_0x3f1a32(0x20c),'iAMND':_0x3f1a32(0x1ff),'PNYLw':_0x3f1a32(0x22e),'kVFbP':function(_0x537b2a,_0x3cacbd){return _0x537b2a(_0x3cacbd);},'jFdHQ':'<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','tXIri':function(_0x319b2d,_0x48e3dc,_0x2ea0c3){return _0x319b2d(_0x48e3dc,_0x2ea0c3);}};return new Promise((_0x5b5076,_0x2303af)=>{const _0x350c8a=_0x3f1a32,_0x491d71={'iTEAe':function(_0x14e5a1,_0x1dec66){return _0x14e5a1(_0x1dec66);},'AuUlE':_0x55a031['RKXAJ'],'GKQHY':function(_0xe1ab32,_0x4e30d2){const _0x25b9ea=_0x84d7;return _0x55a031[_0x25b9ea(0x1db)](_0xe1ab32,_0x4e30d2);},'YuvRF':_0x55a031['hMYVv'],'dYJtR':_0x350c8a(0x228),'kBRtZ':_0x350c8a(0x267),'WMNsN':_0x55a031[_0x350c8a(0x1f5)],'TVRTf':_0x55a031['PNYLw'],'NEaap':function(_0x2da7c2,_0x32d069){return _0x55a031['kVFbP'](_0x2da7c2,_0x32d069);},'ahbLm':function(_0xeaf045,_0x59730b){return _0xeaf045!==_0x59730b;},'lyHVO':_0x55a031['jFdHQ'],'CbBfA':'<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','BBIru':function(_0x3b270f,_0xd72f95){return _0x3b270f(_0xd72f95);}},_0x2bac98=_0x55a031['tXIri'](setTimeout,()=>{const _0xde0d6f=_0x350c8a;_0x1d8133[_0xde0d6f(0x1d8)](),_0x491d71[_0xde0d6f(0x216)](_0x2303af,new OAuthTimeoutError(_0x491d71['AuUlE']));},0x1d4c0),_0x1d8133=createServer((_0x615bb2,_0x591ef1)=>{const _0x433f92=_0x350c8a,_0x5c7770=new URL(_0x615bb2[_0x433f92(0x239)]??'/',_0x433f92(0x24f)+CALLBACK_PORT);if(_0x491d71['GKQHY'](_0x5c7770[_0x433f92(0x252)],'/callback')){_0x591ef1[_0x433f92(0x20f)](0x194),_0x591ef1['end'](_0x491d71['YuvRF']);return;}const _0x1a8f8d=_0x5c7770['searchParams'][_0x433f92(0x227)](_0x491d71[_0x433f92(0x222)]),_0x5bdd4f=_0x5c7770[_0x433f92(0x263)]['get'](_0x491d71['kBRtZ']),_0x3dd75f=_0x5c7770[_0x433f92(0x263)]['get'](_0x433f92(0x20d));if(_0x3dd75f){const _0x3fd270=_0x5c7770[_0x433f92(0x263)]['get'](_0x491d71['WMNsN'])??_0x3dd75f;_0x591ef1[_0x433f92(0x20f)](0xc8,{'Content-Type':_0x491d71[_0x433f92(0x268)]}),_0x591ef1['end']('<html><body><h2>Authentication\x20failed</h2><p>'+_0x3fd270+_0x433f92(0x260)),_0x491d71[_0x433f92(0x210)](clearTimeout,_0x2bac98),_0x1d8133['close'](),_0x491d71['iTEAe'](_0x2303af,new Error('OAuth\x20error:\x20'+_0x3fd270));return;}if(!_0x1a8f8d||_0x491d71['ahbLm'](_0x5bdd4f,_0x4a1dc6)){_0x591ef1[_0x433f92(0x20f)](0x190,{'Content-Type':_0x433f92(0x22e)}),_0x591ef1['end'](_0x491d71['lyHVO']);return;}_0x591ef1[_0x433f92(0x20f)](0xc8,{'Content-Type':_0x433f92(0x22e)}),_0x591ef1['end'](_0x491d71[_0x433f92(0x1e7)]),clearTimeout(_0x2bac98),_0x1d8133['close'](),_0x491d71[_0x433f92(0x23b)](_0x5b5076,_0x1a8f8d);});_0x1d8133[_0x350c8a(0x257)](CALLBACK_PORT,'127.0.0.1');});}async function openBrowser(_0xdca1d7){const _0x4fe33d=_0x30785e,_0x5edb61={'wAiay':function(_0x6c7013,_0x2728f2){return _0x6c7013===_0x2728f2;},'LohGH':'darwin','ovZgQ':'xdg-open','faEqM':function(_0x4e0c12,_0x13c08e){return _0x4e0c12(_0x13c08e);}},{exec:_0x21b2f8}=await import(_0x4fe33d(0x1f6)),_0x2440c2=_0x5edb61[_0x4fe33d(0x23e)](process[_0x4fe33d(0x221)],_0x5edb61[_0x4fe33d(0x1fa)])?'open':process[_0x4fe33d(0x221)]===_0x4fe33d(0x209)?_0x4fe33d(0x246):_0x5edb61[_0x4fe33d(0x1e4)];_0x5edb61[_0x4fe33d(0x24c)](_0x21b2f8,_0x2440c2+'\x20\x22'+_0xdca1d7+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x3e0f74=_0x30785e,_0x161781={'lgcIY':_0x3e0f74(0x23c),'evfUi':function(_0x193681,_0x5e9294){return _0x193681!==_0x5e9294;},'VCbrs':function(_0x1165aa,_0x56e11a){return _0x1165aa>_0x56e11a;}};try{const _0x284e23=JSON['parse'](await readFile(TOKEN_CACHE_PATH,_0x161781['lgcIY']));if(_0x284e23['origin']&&_0x161781[_0x3e0f74(0x22c)](_0x284e23['origin'],currentOrigin))return null;if(_0x284e23['expiresAt']&&_0x161781[_0x3e0f74(0x20e)](Date[_0x3e0f74(0x202)](),_0x284e23[_0x3e0f74(0x1d3)]))return null;return _0x284e23[_0x3e0f74(0x269)]??null;}catch{return null;}}async function saveCachedToken(_0x45e2d0,_0x4c8394,_0x44078d){const _0x48bb23=_0x30785e,_0x117bfe={'JTAME':function(_0x463ae0){return _0x463ae0();},'swyPI':function(_0x482419,_0x40097d,_0x206127){return _0x482419(_0x40097d,_0x206127);},'GzwGj':function(_0x5f3dde){return _0x5f3dde();}},_0x2a222d=await _0x117bfe['JTAME'](loadCachedData),_0x2ca542={..._0x2a222d,'origin':currentOrigin,'accessToken':_0x45e2d0,'refreshToken':_0x4c8394??_0x2a222d?.[_0x48bb23(0x226)],'expiresAt':_0x44078d?Date['now']()+_0x44078d*0x3e8:undefined};await _0x117bfe[_0x48bb23(0x21d)](mkdir,_0x117bfe[_0x48bb23(0x21d)](join,_0x117bfe[_0x48bb23(0x1df)](homedir),'.ranger'),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x2ca542),{'mode':0x180});}async function loadCachedClient(){const _0x2dbe99=_0x30785e,_0xbc85d9={'dXXlI':function(_0x1ca918){return _0x1ca918();}},_0x420d73=await _0xbc85d9[_0x2dbe99(0x212)](loadCachedData);if(_0x420d73?.[_0x2dbe99(0x251)]&&_0x420d73['origin']!==currentOrigin)return null;return _0x420d73?.[_0x2dbe99(0x25d)]?{'clientId':_0x420d73[_0x2dbe99(0x25d)],'clientSecret':_0x420d73[_0x2dbe99(0x25f)]}:null;}async function clearCachedClient(){const _0x2b5fe0=_0x30785e,_0x4b8700={'NcbcX':function(_0x584200,_0x2a5ec9,_0x5cb219,_0x28bff4){return _0x584200(_0x2a5ec9,_0x5cb219,_0x28bff4);}},_0x2f2fc5=await loadCachedData();if(!_0x2f2fc5)return;const {clientId:_0x3239a0,clientSecret:_0x2f1a05,..._0x548400}=_0x2f2fc5;await _0x4b8700[_0x2b5fe0(0x22a)](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x548400),{'mode':0x180});}async function saveCachedClient(_0x18988f,_0x426f05){const _0x1daaaf=_0x30785e,_0x73cf0d={'lBwqw':function(_0x2cc09){return _0x2cc09();},'ZmJuL':function(_0x33b2c9,_0x4a88ea,_0x6337ba){return _0x33b2c9(_0x4a88ea,_0x6337ba);}},_0x55b3ba=await _0x73cf0d[_0x1daaaf(0x1d6)](loadCachedData),_0x199712={..._0x55b3ba,'origin':currentOrigin,'accessToken':_0x55b3ba?.[_0x1daaaf(0x269)]??'','clientId':_0x18988f,'clientSecret':_0x426f05};await _0x73cf0d['ZmJuL'](mkdir,join(_0x73cf0d['lBwqw'](homedir),_0x1daaaf(0x1e8)),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x199712),{'mode':0x180});}async function loadCachedData(){const _0x3f37bd=_0x30785e,_0x44bbfc={'jrpGC':function(_0x313060,_0x29828e,_0x15692c){return _0x313060(_0x29828e,_0x15692c);},'dZlps':_0x3f37bd(0x23c)};try{return JSON['parse'](await _0x44bbfc[_0x3f37bd(0x240)](readFile,TOKEN_CACHE_PATH,_0x44bbfc[_0x3f37bd(0x1da)]));}catch{return null;}}async function parseResponse(_0x5ac972){const _0x287613=_0x30785e,_0x306fcf={'Xkrnp':'data:'},_0x2022ee=_0x5ac972['headers'][_0x287613(0x227)]('content-type')??'';if(_0x2022ee[_0x287613(0x23f)](_0x287613(0x201))){const _0x3c228f=await _0x5ac972['text']();for(const _0x17f059 of _0x3c228f['split']('\x0a')){const _0x2e0164=_0x17f059[_0x287613(0x233)]();if(_0x2e0164['startsWith'](_0x287613(0x264))){const _0x1054aa=_0x2e0164[_0x287613(0x1dd)](_0x306fcf['Xkrnp'][_0x287613(0x1d7)])['trim']();if(!_0x1054aa)continue;try{const _0x1d447d=JSON['parse'](_0x1054aa);if(_0x1d447d['id']!==undefined||_0x1d447d[_0x287613(0x20d)])return _0x1d447d;}catch{}}}throw new Error('No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream');}return _0x5ac972[_0x287613(0x1d1)]();}function extractToken(_0x85f594){const _0x1036d2=_0x30785e,_0x5258ed={'XBFYk':'string','QaxaO':_0x1036d2(0x235)};if(!_0x85f594)return null;const _0x24e9ee=_0x85f594['structuredContent'];if(_0x24e9ee?.[_0x1036d2(0x25c)]&&typeof _0x24e9ee[_0x1036d2(0x25c)]===_0x5258ed[_0x1036d2(0x1eb)])return _0x24e9ee['token'];if(_0x85f594[_0x1036d2(0x1fb)]){const _0x553312=_0x85f594['content'];throw new Error('Server\x20returned\x20error:\x20'+(_0x553312?.[0x0]?.['text']??'Unknown\x20error'));}const _0x1f9964=_0x85f594['content'];if(_0x1f9964)for(const _0x4ca356 of _0x1f9964){if(_0x4ca356[_0x1036d2(0x225)]===_0x5258ed['QaxaO']&&_0x4ca356[_0x1036d2(0x235)]){try{const _0x5889bd=JSON['parse'](_0x4ca356['text']);if(typeof _0x5889bd?.['token']==='string')return _0x5889bd[_0x1036d2(0x25c)];}catch{}const _0x49f48d=_0x4ca356['text']['match'](/(rngr_[A-Za-z0-9_-]+)/);if(_0x49f48d)return _0x49f48d[0x1];}}return null;}
1
+ const _0x18dc21=_0x301b;(function(_0x5580bf,_0x90bafd){const _0x1b43aa=_0x301b,_0x8e42ac=_0x5580bf();while(!![]){try{const _0x2ef3da=-parseInt(_0x1b43aa(0x198))/0x1*(-parseInt(_0x1b43aa(0x160))/0x2)+parseInt(_0x1b43aa(0x1a6))/0x3*(-parseInt(_0x1b43aa(0x194))/0x4)+-parseInt(_0x1b43aa(0x14e))/0x5+parseInt(_0x1b43aa(0x14c))/0x6+-parseInt(_0x1b43aa(0x14d))/0x7*(-parseInt(_0x1b43aa(0x122))/0x8)+-parseInt(_0x1b43aa(0x17c))/0x9*(-parseInt(_0x1b43aa(0x168))/0xa)+parseInt(_0x1b43aa(0x17e))/0xb*(-parseInt(_0x1b43aa(0x143))/0xc);if(_0x2ef3da===_0x90bafd)break;else _0x8e42ac['push'](_0x8e42ac['shift']());}catch(_0x5b31d4){_0x8e42ac['push'](_0x8e42ac['shift']());}}}(_0x3fd9,0xc6c51));import{mkdir,writeFile,readFile}from'fs/promises';function _0x301b(_0x364117,_0x8a8ec9){_0x364117=_0x364117-0x114;const _0x3fd9e8=_0x3fd9();let _0x301ba3=_0x3fd9e8[_0x364117];return _0x301ba3;}import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{exec}from'child_process';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),'.ranger',_0x18dc21(0x19f)),AUTH_ORIGIN_PATH=join(homedir(),_0x18dc21(0x11d),'auth-origin.txt');export async function getMcpAuthOrigin(){const _0x52fc49=_0x18dc21,_0x1d48ed={'VZMLy':function(_0x2b8e61,_0xaa00bb,_0x3f2799){return _0x2b8e61(_0xaa00bb,_0x3f2799);}};try{const _0x19dfa4=(await _0x1d48ed['VZMLy'](readFile,AUTH_ORIGIN_PATH,_0x52fc49(0x14a)))[_0x52fc49(0x144)]();return _0x19dfa4||null;}catch{return null;}}export async function mcpBootstrap(){const _0x399817=_0x18dc21,_0x34072e={'olUZB':'proxied','TuskX':function(_0x59cc0f){return _0x59cc0f();},'ISdGw':_0x399817(0x16c),'ulhjz':'Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','ItnRl':function(_0x118c88,_0x59bbad,_0x35a8e1){return _0x118c88(_0x59bbad,_0x35a8e1);}},_0x4eafa3=getMcpAuthUrl();currentOrigin=_0x4eafa3;const _0x1f2512=process['stdout']['isTTY']??![];console['log'](_0x399817(0x146)+_0x4eafa3+'\x0a');const _0x556375=await tryUnauthenticated(_0x4eafa3);let _0x46bed1=null;if(_0x556375===_0x34072e['olUZB'])_0x46bed1='';else{_0x46bed1=await _0x34072e[_0x399817(0x16d)](loadCachedToken);if(!_0x46bed1){if(!_0x1f2512)throw new Error(_0x34072e['ISdGw']+_0x34072e['ulhjz']);_0x46bed1=await oauthFlow(_0x4eafa3);}}await _0x34072e[_0x399817(0x175)](callGetCliToken,_0x4eafa3,_0x46bed1);}async function tryUnauthenticated(_0xd05171){const _0x58deb3=_0x18dc21,_0x18bc25={'RDxme':'application/json,\x20text/event-stream','HRHIH':_0x58deb3(0x164),'CSlkt':_0x58deb3(0x176),'jdabJ':'ranger-cli','TpUgl':'needs-oauth'},_0xdc161d=await fetch(_0xd05171,{'method':_0x58deb3(0x163),'headers':{'Content-Type':'application/json','Accept':_0x18bc25[_0x58deb3(0x130)]},'body':JSON['stringify']({'jsonrpc':_0x18bc25['HRHIH'],'id':0x1,'method':'initialize','params':{'protocolVersion':_0x18bc25[_0x58deb3(0x179)],'capabilities':{},'clientInfo':{'name':_0x18bc25[_0x58deb3(0x17d)],'version':'1.0.0'}}})});if(_0xdc161d['ok'])return await _0xdc161d[_0x58deb3(0x148)](),_0x58deb3(0x172);if(_0xdc161d['status']===0x191)return await _0xdc161d[_0x58deb3(0x148)](),_0x18bc25[_0x58deb3(0x12e)];const _0x3c0c20=await _0xdc161d[_0x58deb3(0x148)]();throw new Error(_0x58deb3(0x184)+_0xdc161d[_0x58deb3(0x193)]+':\x20'+_0x3c0c20);}class OAuthTimeoutError extends Error{constructor(_0x481ec1){const _0x1375eb=_0x18dc21,_0x1e8e4a={'cjETv':_0x1375eb(0x11a)};super(_0x481ec1),this['name']=_0x1e8e4a[_0x1375eb(0x13d)];}}async function oauthFlow(_0x3d0540){const _0x59f2d4=_0x18dc21,_0x1487eb={'gQQDu':function(_0x3bd302,_0x569502){return _0x3bd302 instanceof _0x569502;},'xlxDw':function(_0x3e82a1){return _0x3e82a1();},'MwqPF':function(_0x1b1ec1,_0x19cdbe){return _0x1b1ec1(_0x19cdbe);}};try{return await oauthFlowAttempt(_0x3d0540);}catch(_0x5c9492){if(_0x1487eb[_0x59f2d4(0x17b)](_0x5c9492,OAuthTimeoutError)&&await loadCachedClient())return console[_0x59f2d4(0x15e)](_0x59f2d4(0x11b)),await _0x1487eb['xlxDw'](clearCachedClient),await _0x1487eb[_0x59f2d4(0x129)](oauthFlowAttempt,_0x3d0540);throw _0x5c9492;}}function _0x3fd9(){const _0x1b655f=['authorization_servers','token','<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','VUqNp','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','get','nUptn','cjETv','writeHead','client_secret','accessToken','gqVDZ','jXprR','46164EWHIZy','trim','closeAllConnections','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','clientSecret','text','resource','utf-8','string','7661250PhOSSx','2219VeYjYh','4276415duRAtV','set','NWjyk','searchParams','stringify','begUK','http://localhost:','DQFJJ','xClQh','result','tools/call','IPkxl','lAHMQ','content','kObRN','get_cli_token\x20failed:\x20','log','EiadZ','397502qwjrlP','refreshToken','WQqEq','POST','2.0','redirect_uri','<html><body><h2>Authentication\x20failed</h2><p>','APCGg','50lfXGup','authorization_endpoint','WqEYU','/.well-known/oauth-protected-resource','MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','TuskX','Eciyj','/callback','GwmBn','application/x-www-form-urlencoded','proxied','toString','slice','ItnRl','2025-03-26','wUbNu','refresh_token','CSlkt','EwKqG','gQQDu','2040651jiHBOW','jdabJ','363sPgYqa','text/html','expiresAt','tpSUk','write','jfUgP','MCP\x20server\x20returned\x20HTTP\x20','LtwRN','Bearer\x20','<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','RtuyF','parse','hex','uwoup','XAuwM','error','Exchanging\x20authorization\x20code...','RgEfP','json','Requesting\x20CLI\x20token...','isError','status','2855780KPZWVe','state','Not\x20found','LXVuU','3KKOTVC','bYXNr','pQAXd','close','token_endpoint','Server\x20returned\x20error:\x20','code','mcp-oauth-tokens.json','then','sha256','get_cli_token','end','iduwI','Unknown\x20error','6SpwZdf','headers','registration_endpoint','CLnKv','message','url','PgjWX','now','qWXap','OAuthTimeoutError','\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a','PFory','.ranger','OAuth\x20error:\x20','notifications/initialized','dPlyI','Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','5488UBJYcs','Client\x20registration\x20failed:\x20','access_token','ROkpJ','fKtlu','open','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','MwqPF','clVJJ','application/json','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','update','TpUgl','origin','RDxme','stdout','content-type','rUlKT','application/json,\x20text/event-stream','clientId'];_0x3fd9=function(){return _0x1b655f;};return _0x3fd9();}async function oauthFlowAttempt(_0x58dad9){const _0xcb0e6b=_0x18dc21,_0x45dea7={'CLnKv':'Discovering\x20authorization\x20server...','pQAXd':function(_0x2d07b1,_0x526f4e){return _0x2d07b1(_0x526f4e);},'uwoup':_0xcb0e6b(0x121),'EiadZ':'No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','kObRN':function(_0x2a43cd){return _0x2a43cd();},'APCGg':'Registering\x20OAuth\x20client...','MAAbk':function(_0x8ab7bf,_0x99c6a0,_0x2bce40){return _0x8ab7bf(_0x99c6a0,_0x2bce40);},'NuHCY':_0xcb0e6b(0x12b),'iZAHy':'Ranger\x20CLI','Eciyj':'authorization_code','svOce':_0xcb0e6b(0x178),'begUK':_0xcb0e6b(0x19e),'ZQYVc':'none','zqvpU':function(_0x3d77eb,_0x4e441e){return _0x3d77eb(_0x4e441e);},'DofZl':_0xcb0e6b(0x1a1),'EiCDd':'base64url','IPkxl':function(_0x48cd5c,_0x4a5d68){return _0x48cd5c(_0x4a5d68);},'iduwI':'client_id','nUptn':_0xcb0e6b(0x165),'eVrlT':'code_challenge','VUqNp':'code_challenge_method','ScTZk':'S256','xClQh':'resource','XAuwM':_0xcb0e6b(0x18e),'tpSUk':_0xcb0e6b(0x13f),'ROkpJ':'POST','WCShe':'\x20done'},_0xabae0b=_0x58dad9['replace'](/\/mcp$/,'');process['stdout'][_0xcb0e6b(0x182)](_0x45dea7[_0xcb0e6b(0x114)]);const _0x4ea97f=await _0x45dea7[_0xcb0e6b(0x19a)](fetch,_0xabae0b+_0xcb0e6b(0x16b));if(!_0x4ea97f['ok'])throw new Error(_0x45dea7[_0xcb0e6b(0x18b)]);const _0x24bb2f=await _0x4ea97f[_0xcb0e6b(0x190)](),_0x6b0d50=_0x24bb2f[_0xcb0e6b(0x136)]?.[0x0];if(!_0x6b0d50)throw new Error(_0x45dea7[_0xcb0e6b(0x15f)]);console[_0xcb0e6b(0x15e)]('\x20'+_0x6b0d50);const _0xd34f7e=await fetchAuthServerMetadata(_0x6b0d50);let _0x49fcfc,_0x4cb3af;const _0x19ce67=await _0x45dea7[_0xcb0e6b(0x15c)](loadCachedClient);if(_0x19ce67)_0x49fcfc=_0x19ce67['clientId'],_0x4cb3af=_0x19ce67[_0xcb0e6b(0x147)];else{if(_0xd34f7e[_0xcb0e6b(0x1a8)]){process['stdout']['write'](_0x45dea7[_0xcb0e6b(0x167)]);const _0xf60ea9=await _0x45dea7['MAAbk'](fetch,_0xd34f7e['registration_endpoint'],{'method':'POST','headers':{'Content-Type':_0x45dea7['NuHCY']},'body':JSON[_0xcb0e6b(0x152)]({'client_name':_0x45dea7['iZAHy'],'redirect_uris':[_0xcb0e6b(0x154)+CALLBACK_PORT+'/callback'],'grant_types':[_0x45dea7[_0xcb0e6b(0x16e)],_0x45dea7['svOce']],'response_types':[_0x45dea7[_0xcb0e6b(0x153)]],'token_endpoint_auth_method':_0x45dea7['ZQYVc']})});if(!_0xf60ea9['ok']){const _0x21298e=await _0xf60ea9[_0xcb0e6b(0x148)]();throw new Error(_0xcb0e6b(0x123)+_0x21298e);}const _0x24048e=await _0xf60ea9['json']();_0x49fcfc=_0x24048e['client_id'],_0x4cb3af=_0x24048e[_0xcb0e6b(0x13f)],await saveCachedClient(_0x49fcfc,_0x4cb3af),console['log']('\x20done');}else throw new Error('Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found');}const _0x4d0374=_0x45dea7['zqvpU'](randomBytes,0x20)[_0xcb0e6b(0x173)]('base64url'),_0x4b76ed=createHash(_0x45dea7['DofZl'])[_0xcb0e6b(0x12d)](_0x4d0374)['digest'](_0x45dea7['EiCDd']),_0x5bee7e=_0x45dea7[_0xcb0e6b(0x159)](randomBytes,0x10)['toString'](_0xcb0e6b(0x18a)),_0x44f45f=new URL(_0xd34f7e[_0xcb0e6b(0x169)]);_0x44f45f[_0xcb0e6b(0x151)][_0xcb0e6b(0x14f)]('response_type',_0x45dea7['begUK']),_0x44f45f['searchParams'][_0xcb0e6b(0x14f)](_0x45dea7[_0xcb0e6b(0x1a4)],_0x49fcfc),_0x44f45f['searchParams']['set'](_0x45dea7[_0xcb0e6b(0x13c)],_0xcb0e6b(0x154)+CALLBACK_PORT+_0xcb0e6b(0x16f)),_0x44f45f[_0xcb0e6b(0x151)][_0xcb0e6b(0x14f)](_0x45dea7['eVrlT'],_0x4b76ed),_0x44f45f[_0xcb0e6b(0x151)]['set'](_0x45dea7[_0xcb0e6b(0x139)],_0x45dea7['ScTZk']),_0x44f45f['searchParams'][_0xcb0e6b(0x14f)](_0xcb0e6b(0x195),_0x5bee7e);_0x24bb2f['resource']&&_0x44f45f['searchParams']['set'](_0x45dea7['xClQh'],_0x24bb2f['resource']);console[_0xcb0e6b(0x15e)]('\x0aOpening\x20browser\x20for\x20authentication...'),console[_0xcb0e6b(0x15e)](_0xcb0e6b(0x128)+_0x44f45f['toString']()+'\x0a'),await openBrowser(_0x44f45f[_0xcb0e6b(0x173)]());const _0x16641c=await waitForCallback(_0x5bee7e);process['stdout']['write'](_0x45dea7[_0xcb0e6b(0x18c)]);const _0x3d76a1=new URLSearchParams({'grant_type':_0x45dea7['Eciyj'],'code':_0x16641c,'redirect_uri':_0xcb0e6b(0x154)+CALLBACK_PORT+_0xcb0e6b(0x16f),'client_id':_0x49fcfc,'code_verifier':_0x4d0374});_0x4cb3af&&_0x3d76a1[_0xcb0e6b(0x14f)](_0x45dea7[_0xcb0e6b(0x181)],_0x4cb3af);_0x24bb2f[_0xcb0e6b(0x149)]&&_0x3d76a1['set'](_0x45dea7[_0xcb0e6b(0x156)],_0x24bb2f[_0xcb0e6b(0x149)]);const _0x202f18=await fetch(_0xd34f7e[_0xcb0e6b(0x19c)],{'method':_0x45dea7[_0xcb0e6b(0x125)],'headers':{'Content-Type':_0xcb0e6b(0x171)},'body':_0x3d76a1});if(!_0x202f18['ok']){const _0x5f05cd=await _0x202f18[_0xcb0e6b(0x148)]();throw new Error('Token\x20exchange\x20failed:\x20'+_0x5f05cd);}const _0x2fc88f=await _0x202f18['json']();return console['log'](_0x45dea7['WCShe']),await saveCachedToken(_0x2fc88f[_0xcb0e6b(0x124)],_0x2fc88f['refresh_token'],_0x2fc88f['expires_in']),_0x2fc88f['access_token'];}async function callGetCliToken(_0x30328c,_0x58ce7b){const _0x2f6e6e=_0x18dc21,_0x16262d={'sHyTf':function(_0x27b31e,_0x236129,_0x121812){return _0x27b31e(_0x236129,_0x121812);},'RgEfP':'application/json','QKxHP':_0x2f6e6e(0x134),'qZFkx':'Authorization','owUdc':'Initializing\x20MCP\x20session...','TklyF':function(_0x225677,_0x3ccc7f){return _0x225677(_0x3ccc7f);},'WQqEq':'initialize','RtuyF':'1.0.0','GwmBn':'\x20done','EwKqG':function(_0x59de55,_0x3ad582,_0x57c20f){return _0x59de55(_0x3ad582,_0x57c20f);},'dPlyI':_0x2f6e6e(0x163),'mFmuA':_0x2f6e6e(0x164),'DQFJJ':_0x2f6e6e(0x158),'UkctQ':_0x2f6e6e(0x1a2),'lAHMQ':'Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','gqVDZ':function(_0x2d04c8,_0x5124f1,_0x53500f){return _0x2d04c8(_0x5124f1,_0x53500f);},'nVLcJ':'refresh.txt','fKtlu':function(_0x4644a6,_0x3e29c9,_0x5d83d1,_0x443813){return _0x4644a6(_0x3e29c9,_0x5d83d1,_0x443813);},'jfUgP':function(_0x426c6c,_0x449a0e,_0x24b3e6,_0x5cc533){return _0x426c6c(_0x449a0e,_0x24b3e6,_0x5cc533);},'CCPLB':'Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a'},_0x2f3f47={'Content-Type':_0x16262d[_0x2f6e6e(0x18f)],'Accept':_0x16262d['QKxHP']};_0x58ce7b&&(_0x2f3f47[_0x16262d['qZFkx']]=_0x2f6e6e(0x186)+_0x58ce7b);const _0x22add5=async _0x2e302a=>{const _0x309571=_0x2f6e6e,_0x464b9b=await _0x16262d['sHyTf'](fetch,_0x30328c,{'method':_0x309571(0x163),'headers':_0x2f3f47,'body':JSON[_0x309571(0x152)](_0x2e302a)});if(!_0x464b9b['ok']){const _0x3e7d19=await _0x464b9b['text']();throw new Error('HTTP\x20'+_0x464b9b[_0x309571(0x193)]+':\x20'+_0x3e7d19);}return parseResponse(_0x464b9b);};process['stdout'][_0x2f6e6e(0x182)](_0x16262d['owUdc']);const _0x216526=await _0x16262d['TklyF'](_0x22add5,{'jsonrpc':_0x2f6e6e(0x164),'id':0x1,'method':_0x16262d[_0x2f6e6e(0x162)],'params':{'protocolVersion':_0x2f6e6e(0x176),'capabilities':{},'clientInfo':{'name':'ranger-cli','version':_0x16262d[_0x2f6e6e(0x188)]}}});if(_0x216526['error'])throw new Error('MCP\x20initialize\x20failed:\x20'+(_0x216526[_0x2f6e6e(0x18d)][_0x2f6e6e(0x115)]??JSON['stringify'](_0x216526[_0x2f6e6e(0x18d)])));console[_0x2f6e6e(0x15e)](_0x16262d[_0x2f6e6e(0x170)]),await _0x16262d[_0x2f6e6e(0x17a)](fetch,_0x30328c,{'method':_0x16262d[_0x2f6e6e(0x120)],'headers':_0x2f3f47,'body':JSON[_0x2f6e6e(0x152)]({'jsonrpc':_0x2f6e6e(0x164),'method':_0x2f6e6e(0x11f)})})[_0x2f6e6e(0x1a0)](_0x55928f=>_0x55928f['text']()),process[_0x2f6e6e(0x131)][_0x2f6e6e(0x182)](_0x2f6e6e(0x191));const _0xe4e59b=await _0x16262d['TklyF'](_0x22add5,{'jsonrpc':_0x16262d['mFmuA'],'id':0x2,'method':_0x16262d[_0x2f6e6e(0x155)],'params':{'name':_0x16262d['UkctQ'],'arguments':{}}});if(_0xe4e59b[_0x2f6e6e(0x18d)])throw new Error(_0x2f6e6e(0x15d)+(_0xe4e59b['error']['message']??JSON[_0x2f6e6e(0x152)](_0xe4e59b['error'])));console['log']('\x20done');const _0x37e3a3=extractToken(_0xe4e59b[_0x2f6e6e(0x157)]);if(!_0x37e3a3){console['error']('\x0aUnexpected\x20response\x20structure:'),console['error'](JSON[_0x2f6e6e(0x152)](_0xe4e59b['result'],null,0x2));throw new Error(_0x16262d[_0x2f6e6e(0x15a)]);}const _0xc05a5f=_0x16262d[_0x2f6e6e(0x141)](join,homedir(),_0x2f6e6e(0x11d)),_0x369ec4=_0x16262d[_0x2f6e6e(0x17a)](join,_0xc05a5f,_0x16262d['nVLcJ']);await mkdir(_0xc05a5f,{'recursive':!![]}),await _0x16262d[_0x2f6e6e(0x126)](writeFile,_0x369ec4,_0x37e3a3,{'mode':0x180}),await _0x16262d[_0x2f6e6e(0x183)](writeFile,_0x16262d[_0x2f6e6e(0x141)](join,_0xc05a5f,'auth-origin.txt'),_0x30328c,{'mode':0x180}),console['log']('\x0aToken\x20written\x20to\x20'+_0x369ec4),console['log'](_0x16262d['CCPLB']);}async function fetchAuthServerMetadata(_0x13d330){const _0x36466e=_0x18dc21,_0x401108=_0x13d330+'/.well-known/oauth-authorization-server',_0x1ff132=await fetch(_0x401108);if(!_0x1ff132['ok'])throw new Error(_0x36466e(0x13a)+_0x401108+':\x20'+_0x1ff132[_0x36466e(0x193)]);return _0x1ff132['json']();}function waitForCallback(_0x37a3cd){const _0x5e4526=_0x18dc21,_0x16279c={'PFory':function(_0x2b389c){return _0x2b389c();},'WqEYU':function(_0x45bc9d,_0x3ce683){return _0x45bc9d(_0x3ce683);},'FTvuM':_0x5e4526(0x19e),'jXprR':_0x5e4526(0x17f),'IXeri':function(_0x53e7ff,_0x1810ba,_0x5e45a7){return _0x53e7ff(_0x1810ba,_0x5e45a7);},'rUlKT':'127.0.0.1'};return new Promise((_0x43fa36,_0x2d9be1)=>{const _0x5250dc=_0x5e4526,_0x43e466={'FoIzO':_0x16279c['FTvuM'],'iBoLZ':_0x5250dc(0x195),'avkYJ':_0x16279c[_0x5250dc(0x142)],'fZmiI':function(_0x515681,_0x41ff9f){return _0x515681(_0x41ff9f);},'klnxe':function(_0x5d401b,_0x1aa190){return _0x5d401b!==_0x1aa190;}},_0xc4f67e=()=>{const _0x37d55e=_0x5250dc;_0x367fa2[_0x37d55e(0x145)](),_0x367fa2[_0x37d55e(0x19b)]();},_0x42614b=_0x16279c['IXeri'](setTimeout,()=>{const _0x54ab04=_0x5250dc;_0x16279c[_0x54ab04(0x11c)](_0xc4f67e),_0x16279c[_0x54ab04(0x16a)](_0x2d9be1,new OAuthTimeoutError('OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes'));},0x1d4c0),_0x367fa2=createServer((_0x3d8734,_0x3dd4b4)=>{const _0x5276d7=_0x5250dc,_0xcff3c1=new URL(_0x3d8734[_0x5276d7(0x116)]??'/',_0x5276d7(0x154)+CALLBACK_PORT);if(_0xcff3c1['pathname']!=='/callback'){_0x3dd4b4['writeHead'](0x194),_0x3dd4b4['end'](_0x5276d7(0x196));return;}const _0xe18649=_0xcff3c1['searchParams'][_0x5276d7(0x13b)](_0x43e466['FoIzO']),_0x341d72=_0xcff3c1['searchParams'][_0x5276d7(0x13b)](_0x43e466['iBoLZ']),_0x10d550=_0xcff3c1[_0x5276d7(0x151)][_0x5276d7(0x13b)](_0x5276d7(0x18d));if(_0x10d550){const _0x4a8c59=_0xcff3c1[_0x5276d7(0x151)]['get']('error_description')??_0x10d550;_0x3dd4b4[_0x5276d7(0x13e)](0xc8,{'Content-Type':_0x43e466['avkYJ']}),_0x3dd4b4[_0x5276d7(0x1a3)](_0x5276d7(0x166)+_0x4a8c59+_0x5276d7(0x12c)),_0x43e466['fZmiI'](clearTimeout,_0x42614b),_0xc4f67e(),_0x2d9be1(new Error(_0x5276d7(0x11e)+_0x4a8c59));return;}if(!_0xe18649||_0x43e466['klnxe'](_0x341d72,_0x37a3cd)){_0x3dd4b4['writeHead'](0x190,{'Content-Type':_0x43e466['avkYJ']}),_0x3dd4b4[_0x5276d7(0x1a3)](_0x5276d7(0x138));return;}_0x3dd4b4[_0x5276d7(0x13e)](0xc8,{'Content-Type':_0x5276d7(0x17f)}),_0x3dd4b4['end'](_0x5276d7(0x187)),clearTimeout(_0x42614b),_0xc4f67e(),_0x43fa36(_0xe18649);});_0x367fa2['listen'](CALLBACK_PORT,_0x16279c[_0x5250dc(0x133)]);});}async function openBrowser(_0x1994ef){const _0x44dd4b=_0x18dc21,_0x2cd368={'NWjyk':function(_0x48f7c3,_0x13a88c){return _0x48f7c3===_0x13a88c;},'kNuWa':'win32','ErEcn':'start','wUbNu':function(_0x5d4e3a,_0x171265){return _0x5d4e3a(_0x171265);}},_0x14ebd9=_0x2cd368[_0x44dd4b(0x150)](process['platform'],'darwin')?_0x44dd4b(0x127):process['platform']===_0x2cd368['kNuWa']?_0x2cd368['ErEcn']:'xdg-open';_0x2cd368[_0x44dd4b(0x177)](exec,_0x14ebd9+'\x20\x22'+_0x1994ef+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x2466c6=_0x18dc21;try{const _0x5eeb83=JSON[_0x2466c6(0x189)](await readFile(TOKEN_CACHE_PATH,_0x2466c6(0x14a)));if(_0x5eeb83[_0x2466c6(0x12f)]&&_0x5eeb83[_0x2466c6(0x12f)]!==currentOrigin)return null;if(_0x5eeb83['expiresAt']&&Date[_0x2466c6(0x118)]()>_0x5eeb83[_0x2466c6(0x180)])return null;return _0x5eeb83[_0x2466c6(0x140)]??null;}catch{return null;}}async function saveCachedToken(_0x3d12b0,_0x57cdf3,_0x1a2001){const _0x5056f7=_0x18dc21,_0x1ae3a8={'GOiUS':function(_0x487240,_0x3d37c2){return _0x487240+_0x3d37c2;},'LXVuU':function(_0x18a640,_0x19c19d,_0xe3cc66){return _0x18a640(_0x19c19d,_0xe3cc66);},'eNkXK':function(_0x3d283f){return _0x3d283f();},'clVJJ':_0x5056f7(0x11d)},_0x835ebe=await loadCachedData(),_0x89bf48={..._0x835ebe,'origin':currentOrigin,'accessToken':_0x3d12b0,'refreshToken':_0x57cdf3??_0x835ebe?.[_0x5056f7(0x161)],'expiresAt':_0x1a2001?_0x1ae3a8['GOiUS'](Date[_0x5056f7(0x118)](),_0x1a2001*0x3e8):undefined};await _0x1ae3a8[_0x5056f7(0x197)](mkdir,_0x1ae3a8['LXVuU'](join,_0x1ae3a8['eNkXK'](homedir),_0x1ae3a8[_0x5056f7(0x12a)]),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x89bf48),{'mode':0x180});}async function loadCachedClient(){const _0x200b0d=_0x18dc21,_0x37d5bc=await loadCachedData();if(_0x37d5bc?.[_0x200b0d(0x12f)]&&_0x37d5bc[_0x200b0d(0x12f)]!==currentOrigin)return null;return _0x37d5bc?.[_0x200b0d(0x135)]?{'clientId':_0x37d5bc['clientId'],'clientSecret':_0x37d5bc['clientSecret']}:null;}async function clearCachedClient(){const _0x12ac45=_0x18dc21,_0x495228={'RvQKS':function(_0x16a10a,_0x2a26ec,_0x2f46ea,_0x596962){return _0x16a10a(_0x2a26ec,_0x2f46ea,_0x596962);}},_0x19330d=await loadCachedData();if(!_0x19330d)return;const {clientId:_0x35c9c9,clientSecret:_0x2eb18b,..._0x16aaec}=_0x19330d;await _0x495228['RvQKS'](writeFile,TOKEN_CACHE_PATH,JSON[_0x12ac45(0x152)](_0x16aaec),{'mode':0x180});}async function saveCachedClient(_0xad0100,_0x2acd18){const _0x508dce=_0x18dc21,_0x302fe3={'nSkaZ':function(_0x41a57d){return _0x41a57d();},'LtwRN':function(_0x24166f,_0x12d084,_0x1cbd23){return _0x24166f(_0x12d084,_0x1cbd23);},'qWXap':function(_0x45eb8e,_0xba6e3d,_0x57368b){return _0x45eb8e(_0xba6e3d,_0x57368b);},'wySkC':'.ranger'},_0xf7fc8b=await _0x302fe3['nSkaZ'](loadCachedData),_0x1c5d2a={..._0xf7fc8b,'origin':currentOrigin,'accessToken':_0xf7fc8b?.[_0x508dce(0x140)]??'','clientId':_0xad0100,'clientSecret':_0x2acd18};await _0x302fe3[_0x508dce(0x185)](mkdir,_0x302fe3[_0x508dce(0x119)](join,homedir(),_0x302fe3['wySkC']),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x508dce(0x152)](_0x1c5d2a),{'mode':0x180});}async function loadCachedData(){const _0x522554={'iMedp':function(_0x58406b,_0x5996e6,_0x51255a){return _0x58406b(_0x5996e6,_0x51255a);},'mmESn':'utf-8'};try{return JSON['parse'](await _0x522554['iMedp'](readFile,TOKEN_CACHE_PATH,_0x522554['mmESn']));}catch{return null;}}async function parseResponse(_0xa9ded7){const _0x5ce14c=_0x18dc21,_0x3fa643={'qbnnP':_0x5ce14c(0x132),'PgjWX':'data:','xuhET':'No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream'},_0x46e8ce=_0xa9ded7[_0x5ce14c(0x1a7)]['get'](_0x3fa643['qbnnP'])??'';if(_0x46e8ce['includes']('text/event-stream')){const _0x59e2a0=await _0xa9ded7['text']();for(const _0x2a6917 of _0x59e2a0['split']('\x0a')){const _0x14a727=_0x2a6917['trim']();if(_0x14a727['startsWith'](_0x3fa643['PgjWX'])){const _0x3641c7=_0x14a727[_0x5ce14c(0x174)](_0x3fa643[_0x5ce14c(0x117)]['length'])['trim']();if(!_0x3641c7)continue;try{const _0x541e7=JSON['parse'](_0x3641c7);if(_0x541e7['id']!==undefined||_0x541e7['error'])return _0x541e7;}catch{}}}throw new Error(_0x3fa643['xuhET']);}return _0xa9ded7['json']();}function extractToken(_0x4eb4a2){const _0x4805c2=_0x18dc21,_0x1028c2={'ObkiE':_0x4805c2(0x14b),'bYXNr':_0x4805c2(0x1a5),'tbEMF':function(_0x537ef8,_0x50f12f){return _0x537ef8===_0x50f12f;}};if(!_0x4eb4a2)return null;const _0x1933ce=_0x4eb4a2['structuredContent'];if(_0x1933ce?.['token']&&typeof _0x1933ce[_0x4805c2(0x137)]===_0x1028c2['ObkiE'])return _0x1933ce[_0x4805c2(0x137)];if(_0x4eb4a2[_0x4805c2(0x192)]){const _0x308048=_0x4eb4a2[_0x4805c2(0x15b)];throw new Error(_0x4805c2(0x19d)+(_0x308048?.[0x0]?.[_0x4805c2(0x148)]??_0x1028c2[_0x4805c2(0x199)]));}const _0x776056=_0x4eb4a2['content'];if(_0x776056)for(const _0x4cc26c of _0x776056){if(_0x1028c2['tbEMF'](_0x4cc26c['type'],_0x4805c2(0x148))&&_0x4cc26c['text']){try{const _0x40d3b3=JSON[_0x4805c2(0x189)](_0x4cc26c['text']);if(_0x1028c2['tbEMF'](typeof _0x40d3b3?.['token'],_0x4805c2(0x14b)))return _0x40d3b3['token'];}catch{}const _0x171ab3=_0x4cc26c[_0x4805c2(0x148)]['match'](/(rngr_[A-Za-z0-9_-]+)/);if(_0x171ab3)return _0x171ab3[0x1];}}return null;}
@@ -1 +1 @@
1
- (function(_0x20ee61,_0x5d2ac6){const _0x2820e5=_0x3267,_0x49c71a=_0x20ee61();while(!![]){try{const _0x2ae43e=-parseInt(_0x2820e5(0x21f))/0x1*(-parseInt(_0x2820e5(0x1fa))/0x2)+-parseInt(_0x2820e5(0x21a))/0x3*(-parseInt(_0x2820e5(0x1f5))/0x4)+-parseInt(_0x2820e5(0x232))/0x5*(parseInt(_0x2820e5(0x20e))/0x6)+-parseInt(_0x2820e5(0x231))/0x7*(-parseInt(_0x2820e5(0x215))/0x8)+parseInt(_0x2820e5(0x22a))/0x9+-parseInt(_0x2820e5(0x23e))/0xa*(parseInt(_0x2820e5(0x212))/0xb)+-parseInt(_0x2820e5(0x219))/0xc*(parseInt(_0x2820e5(0x227))/0xd);if(_0x2ae43e===_0x5d2ac6)break;else _0x49c71a['push'](_0x49c71a['shift']());}catch(_0x14f7b7){_0x49c71a['push'](_0x49c71a['shift']());}}}(_0x1e06,0x4e565));import{readFile,rm}from'fs/promises';import{existsSync}from'fs';import{join}from'path';function _0x1e06(){const _0x2357f2=['185861djRPwZ','\x20\x20⚠\x20','tEDyP',',\x20baseUrl\x20override\x20→\x20projects.json)','RANGER_TEST_PASSWORD','length','ZvAuQ','env','3586791weyFoV',':\x20failed\x20to\x20delete\x20local\x20dir\x20','fKGBp','3728691RCTmLr','ovLkf','Aborted.','migrate','zsdcd','authJsonPath','profile.migrate.started','119pUYEvC','22965geaBCk','SvdEk','trackPhaseStart','AXaUu','HDJJo','BFAJD','trackPhaseEnd','kind','AfmiI','environments','log','preserveBaseUrl','50KdynuK','\x20migrated\x20to\x20cloud\x20(env:\x20','idJpj','yHTvY','KQZXT','some','sdbxO','profile.migrate.succeeded','saveCreds','profileName',':\x20--save-creds\x20requested,\x20but\x20RANGER_TEST_USERNAME/PASSWORD\x20not\x20set\x20in\x20env.','OmPkg','\x20profile','htXCk','yTQvX','name_conflict','\x20\x20✓\x20',',\x20matches\x20','25436dhjVqj','rsGAu','No\x20cloud\x20profile\x20auth\x20config\x20found\x20for\x20this\x20org.\x20Migration\x20requires\x20at\x20least\x20one\x20configured\x20auth\x20environment.','settings','join','4jwvJBN','ZXgot','reason','AsRiS','baseUrl','\x20migrated','NCtyF','skip','keys','\x20skipped','message','no\x20baseUrl\x20in\x20settings.json','RNFyP','After\x20migration,\x20uncommit\x20it:','dryRun','\x20→\x20skip\x20(',':\x20session\x20upload\x20failed\x20(','Continuing\x20with\x20migration...','push','cwd','708cVLACf','Warning:\x20.ranger/\x20is\x20tracked\x20in\x20this\x20git\x20repo.','\x20\x20✗\x20','envKey','1262547HGexuM','padEnd','lCphO','145784YxHsax','yWrXR','\x20→\x20cloud\x20(env:\x20','Nhfdb','12AVIrrx','291MEsBPj','ies','entries','isTTY','ZReUW'];_0x1e06=function(){return _0x2357f2;};return _0x1e06();}import _0x28ea0f from'inquirer';import{getEnvNames}from'./env.js';import{getEnvDir,loadSettings}from'./utils/settings.js';import{getRangerDir}from'./utils/rangerRoot.js';import{ApiError,createCloudProfile,fetchAuthConfig,saveCloudProfileCredentials,uploadCloudProfileSession}from'./utils/cloudProfile.js';import{matchAuthEnvironment}from'./utils/matchAuthEnvironment.js';import{readProjectsConfig,setProfileOverride,writeProjectsConfig}from'./utils/projectsConfig.js';import{isPathGitTracked}from'./utils/gitTracked.js';function _0x3267(_0x2ad2e1,_0x24a2ee){_0x2ad2e1=_0x2ad2e1-0x1f3;const _0x1e0617=_0x1e06();let _0x3267fb=_0x1e0617[_0x2ad2e1];return _0x3267fb;}function formatPlanLine(_0x232c34){const _0x5f31fd=_0x3267;if(_0x232c34[_0x5f31fd(0x239)]===_0x5f31fd(0x201))return'\x20\x20'+_0x232c34[_0x5f31fd(0x247)][_0x5f31fd(0x213)](0x1e)+_0x5f31fd(0x209)+_0x232c34[_0x5f31fd(0x1fc)]+')';if(_0x232c34[_0x5f31fd(0x23d)]&&_0x232c34['baseUrl'])return'\x20\x20'+_0x232c34['profileName']['padEnd'](0x1e)+'\x20→\x20cloud\x20(env:\x20'+_0x232c34[_0x5f31fd(0x211)]+',\x20preserving\x20baseUrl\x20'+_0x232c34[_0x5f31fd(0x1fe)]+'\x20as\x20project\x20override)';if(_0x232c34[_0x5f31fd(0x1fe)])return'\x20\x20'+_0x232c34['profileName'][_0x5f31fd(0x213)](0x1e)+'\x20→\x20cloud\x20(env:\x20'+_0x232c34[_0x5f31fd(0x211)]+_0x5f31fd(0x1f4)+_0x232c34['baseUrl']+')';return'\x20\x20'+_0x232c34['profileName']['padEnd'](0x1e)+_0x5f31fd(0x217)+_0x232c34[_0x5f31fd(0x211)]+')';}function shouldWarnGitTrackedOnce(_0xf229ec){const _0x210606=_0x3267,_0x339b04={'sdbxO':function(_0x287e57){return _0x287e57();},'htXCk':function(_0x207b50,_0x9a9943){return _0x207b50===_0x9a9943;},'dDsDH':function(_0x46092e,_0x26cfee){return _0x46092e(_0x26cfee);}},_0x2d2506=_0x339b04[_0x210606(0x244)](readProjectsConfig),_0x5d9ae5=_0x2d2506['projects'][_0xf229ec]??={},_0x58ee0f=_0x5d9ae5['_warnings']??={},_0x535ba7=_0x58ee0f['gitTrackedRanger'],_0x20f248=new Date(),_0xb5f363=_0x20f248['toISOString']()['slice'](0x0,0xa);if(_0x339b04[_0x210606(0x24b)](_0x535ba7,_0xb5f363))return![];return _0x58ee0f['gitTrackedRanger']=_0xb5f363,_0x339b04['dDsDH'](writeProjectsConfig,_0x2d2506),!![];}export async function migrateProfile(_0x3d3ab7,_0x125ba3){const _0x4dfbe8=_0x3267,_0x48b329={'AzkeC':function(_0x816468,_0x27afaa){return _0x816468===_0x27afaa;},'tRkqi':'Provide\x20a\x20profile\x20name\x20or\x20--all.\x0a\x20\x20Example:\x20ranger\x20profile\x20migrate\x20--all\x20--dry-run','ZXgot':function(_0x23f58a,_0xcf7471){return _0x23f58a===_0xcf7471;},'HXjSd':'No\x20local\x20profiles\x20found\x20to\x20migrate.','OmPkg':function(_0x4add4e,_0x2515fd){return _0x4add4e(_0x2515fd);},'BFAJD':'local\x20profile\x20directory\x20not\x20found','yHTvY':function(_0x325de9,_0x333362){return _0x325de9(_0x333362);},'idJpj':'skip','nyVGa':'no\x20matching\x20auth\x20env','Huvsq':function(_0x57dda5,_0x3fbc07){return _0x57dda5===_0x3fbc07;},'uXWnU':function(_0x32c45d,_0x2f3ae8){return _0x32c45d===_0x2f3ae8;},'fKGBp':function(_0x43a26d,_0x5d9670,_0x51cb12){return _0x43a26d(_0x5d9670,_0x51cb12);},'SvdEk':'auth.json','RNFyP':_0x4dfbe8(0x22d),'qMGCd':'Nothing\x20migrated.\x20Run\x20without\x20--dry-run\x20to\x20apply.','AfmiI':function(_0x226503,_0x29bf23){return _0x226503&&_0x29bf23;},'OqFzC':'confirm','rsGAu':'proceed','lCphO':function(_0x25186b){return _0x25186b();},'AsRiS':function(_0x65954c,_0x312de0){return _0x65954c(_0x312de0);},'tEDyP':'\x20\x20git\x20rm\x20-r\x20--cached\x20.ranger/','zsdcd':'\x20\x20echo\x20\x27.ranger/\x27\x20>>\x20.gitignore','QqUBy':_0x4dfbe8(0x20b),'AXaUu':'profile.migrate.skipped','ovLkf':function(_0x4eda77,_0x26d53d,_0x683d9,_0x38e80b){return _0x4eda77(_0x26d53d,_0x683d9,_0x38e80b);},'ZvAuQ':function(_0x3f2fec,_0x252082){return _0x3f2fec instanceof _0x252082;},'NCtyF':_0x4dfbe8(0x24d),'KQZXT':'utf-8','KXstR':function(_0x3fe4a7,_0x488e2d,_0x4bda1c){return _0x3fe4a7(_0x488e2d,_0x4bda1c);},'yTQvX':function(_0x4863a8,_0x3d1258){return _0x4863a8 instanceof _0x3d1258;},'yWrXR':function(_0x1a82b3,_0x985ecc,_0x3d6f7a){return _0x1a82b3(_0x985ecc,_0x3d6f7a);},'ZReUW':function(_0x177779,_0x369712){return _0x177779(_0x369712);},'Nhfdb':function(_0xbae068,_0x44f8b6){return _0xbae068>_0x44f8b6;},'oeNyv':function(_0x1d782c,_0x818984){return _0x1d782c===_0x818984;},'HDJJo':_0x4dfbe8(0x21b)};if(!_0x3d3ab7[_0x4dfbe8(0x247)]&&!_0x3d3ab7['all'])throw new Error(_0x48b329['tRkqi']);let _0x4ef71e;try{_0x4ef71e=await fetchAuthConfig();}catch(_0x40c63a){throw new Error('Could\x20not\x20fetch\x20auth\x20config\x20('+(_0x40c63a instanceof Error?_0x40c63a[_0x4dfbe8(0x204)]:String(_0x40c63a))+').\x20Run:\x20ranger\x20setup');}if(!_0x4ef71e||!_0x4ef71e['environments']||_0x48b329['ZXgot'](Object[_0x4dfbe8(0x202)](_0x4ef71e[_0x4dfbe8(0x23b)])['length'],0x0))throw new Error(_0x4dfbe8(0x1f7));const _0x1f6e91=[];if(_0x3d3ab7['all']){const {envNames:_0x36326e,envTypes:_0x5614b7}=await getEnvNames();for(const _0x2c4565 of _0x36326e){if(_0x5614b7[_0x2c4565]==='ci')continue;_0x1f6e91['push'](_0x2c4565);}}else _0x3d3ab7[_0x4dfbe8(0x247)]&&_0x1f6e91[_0x4dfbe8(0x20c)](_0x3d3ab7[_0x4dfbe8(0x247)]);if(_0x1f6e91[_0x4dfbe8(0x224)]===0x0){console['log'](_0x48b329['HXjSd']);return;}const _0x322ad0=[];for(const _0x3e13dd of _0x1f6e91){const _0x406eac=_0x48b329[_0x4dfbe8(0x249)](getEnvDir,_0x3e13dd);if(!_0x48b329['OmPkg'](existsSync,_0x406eac)){_0x322ad0['push']({'kind':_0x4dfbe8(0x201),'profileName':_0x3e13dd,'reason':_0x48b329[_0x4dfbe8(0x237)]});continue;}const _0x5ea7f6=await _0x48b329[_0x4dfbe8(0x241)](loadSettings,_0x3e13dd),_0x50c42f=_0x5ea7f6[_0x4dfbe8(0x1fe)];if(!_0x50c42f){_0x322ad0[_0x4dfbe8(0x20c)]({'kind':_0x48b329['idJpj'],'profileName':_0x3e13dd,'reason':_0x4dfbe8(0x205)});continue;}const _0x3c9643=matchAuthEnvironment(_0x50c42f,_0x4ef71e);if(!_0x3c9643){_0x322ad0['push']({'kind':_0x48b329[_0x4dfbe8(0x240)],'profileName':_0x3e13dd,'reason':_0x48b329['nyVGa']});continue;}const _0x104fa6=_0x4ef71e['environments'][_0x3c9643],_0x389341=_0x104fa6?.['domains']??[],_0x10a992=_0x389341[_0x4dfbe8(0x243)](_0x53782a=>{try{return _0x48b329['AzkeC'](new URL(_0x53782a)['origin'],new URL(_0x50c42f)['origin']);}catch{return![];}}),_0x346954={};for(const [_0x185a89,_0x224af9]of Object[_0x4dfbe8(0x21c)](_0x5ea7f6)){if(_0x48b329['Huvsq'](_0x185a89,'baseUrl'))continue;if(_0x48b329['uXWnU'](_0x224af9,undefined))continue;_0x346954[_0x185a89]=_0x224af9;}!_0x10a992&&(_0x346954[_0x4dfbe8(0x1fe)]=_0x50c42f);const _0x294acc=_0x48b329[_0x4dfbe8(0x229)](join,_0x406eac,_0x48b329[_0x4dfbe8(0x233)]),_0x4c8a1f=existsSync(_0x294acc);_0x322ad0[_0x4dfbe8(0x20c)]({'kind':_0x48b329[_0x4dfbe8(0x206)],'profileName':_0x3e13dd,'envKey':_0x3c9643,'baseUrl':_0x50c42f,'preserveBaseUrl':!_0x10a992,'settings':_0x346954,'authJsonPath':_0x4c8a1f?_0x294acc:null});}console[_0x4dfbe8(0x23c)]('Plan:');for(const _0x1dce6a of _0x322ad0){console['log'](formatPlanLine(_0x1dce6a));}if(_0x3d3ab7[_0x4dfbe8(0x208)]){console[_0x4dfbe8(0x23c)](_0x48b329['qMGCd']);return;}const _0x310cfc=Boolean(process['stdin']['isTTY']&&process['stdout'][_0x4dfbe8(0x21d)]),_0x3bb00a=_0x322ad0['some'](_0x4565d4=>_0x4565d4[_0x4dfbe8(0x239)]===_0x4dfbe8(0x22d));if(_0x48b329[_0x4dfbe8(0x23a)](_0x3bb00a,_0x310cfc)&&!_0x3d3ab7['yes']){const {proceed:_0x3f0a7b}=await _0x28ea0f['prompt']([{'type':_0x48b329['OqFzC'],'name':_0x48b329[_0x4dfbe8(0x1f6)],'message':'Proceed?','default':![]}]);if(!_0x3f0a7b){console['log'](_0x4dfbe8(0x22c));return;}}const _0x10b475=_0x48b329[_0x4dfbe8(0x214)](getRangerDir);let _0x895d3a=![];if(existsSync(_0x10b475))try{_0x895d3a=await isPathGitTracked(_0x10b475);}catch{_0x895d3a=![];}_0x895d3a&&_0x48b329[_0x4dfbe8(0x1fd)](shouldWarnGitTrackedOnce,process[_0x4dfbe8(0x20d)]())&&(console[_0x4dfbe8(0x23c)](_0x4dfbe8(0x20f)),console['log'](_0x4dfbe8(0x207)),console['log'](_0x48b329[_0x4dfbe8(0x221)]),console[_0x4dfbe8(0x23c)](_0x48b329[_0x4dfbe8(0x22e)]),console[_0x4dfbe8(0x23c)](_0x48b329['QqUBy']));let _0x232834=0x0,_0x56ff4e=0x0,_0x386083=0x0,_0x4bb560=0x0;for(const _0x8e7e97 of _0x322ad0){if(_0x48b329[_0x4dfbe8(0x1fb)](_0x8e7e97[_0x4dfbe8(0x239)],_0x48b329[_0x4dfbe8(0x240)])){_0x4bb560++,_0x125ba3?.[_0x4dfbe8(0x238)](_0x48b329['AXaUu'],{'profileName':_0x8e7e97['profileName'],'reason':_0x8e7e97['reason']});continue;}_0x125ba3?.[_0x4dfbe8(0x234)](_0x4dfbe8(0x230),{'profileName':_0x8e7e97[_0x4dfbe8(0x247)],'envKey':_0x8e7e97[_0x4dfbe8(0x211)]});try{try{await _0x48b329[_0x4dfbe8(0x22b)](createCloudProfile,_0x8e7e97[_0x4dfbe8(0x247)],_0x8e7e97['envKey'],{'settings':_0x8e7e97[_0x4dfbe8(0x1f8)]});}catch(_0x82bd29){if(_0x48b329[_0x4dfbe8(0x225)](_0x82bd29,ApiError)&&_0x82bd29['status']===0x199){console[_0x4dfbe8(0x23c)](_0x4dfbe8(0x220)+_0x8e7e97['profileName']+':\x20cloud\x20profile\x20with\x20this\x20name\x20already\x20exists.\x20Skipping.'),_0x4bb560++,_0x125ba3?.['trackPhaseEnd'](_0x48b329[_0x4dfbe8(0x235)],{'profileName':_0x8e7e97['profileName'],'reason':_0x48b329[_0x4dfbe8(0x200)]});continue;}throw _0x82bd29;}let _0x2ed994=![],_0x22d741=![];if(_0x8e7e97['authJsonPath'])try{const _0x697bbd=await readFile(_0x8e7e97[_0x4dfbe8(0x22f)],_0x48b329[_0x4dfbe8(0x242)]),_0x3a95a=JSON['parse'](_0x697bbd);await _0x48b329['KXstR'](uploadCloudProfileSession,_0x8e7e97[_0x4dfbe8(0x247)],_0x3a95a),_0x2ed994=!![];}catch(_0x1c58a4){_0x22d741=!![],console['log'](_0x4dfbe8(0x220)+_0x8e7e97['profileName']+_0x4dfbe8(0x20a)+(_0x48b329['yTQvX'](_0x1c58a4,Error)?_0x1c58a4['message']:String(_0x1c58a4))+').\x20Cloud\x20profile\x20created;\x20local\x20auth.json\x20left\x20in\x20place.');}let _0x452ca1=![];if(_0x3d3ab7[_0x4dfbe8(0x246)]){const _0x32ae64=process[_0x4dfbe8(0x226)]['RANGER_TEST_USERNAME'],_0x488de6=process[_0x4dfbe8(0x226)][_0x4dfbe8(0x223)];if(_0x32ae64&&_0x488de6)try{await _0x48b329[_0x4dfbe8(0x22b)](saveCloudProfileCredentials,_0x8e7e97['profileName'],_0x32ae64,_0x488de6),_0x452ca1=!![];}catch(_0x28563f){console[_0x4dfbe8(0x23c)]('\x20\x20⚠\x20'+_0x8e7e97[_0x4dfbe8(0x247)]+':\x20failed\x20to\x20save\x20credentials\x20('+(_0x28563f instanceof Error?_0x28563f['message']:String(_0x28563f))+').');}else console[_0x4dfbe8(0x23c)]('\x20\x20⚠\x20'+_0x8e7e97[_0x4dfbe8(0x247)]+_0x4dfbe8(0x248));}if(_0x8e7e97[_0x4dfbe8(0x23d)]&&_0x8e7e97[_0x4dfbe8(0x1fe)])try{setProfileOverride(process['cwd'](),_0x8e7e97['profileName'],_0x4dfbe8(0x1fe),_0x8e7e97[_0x4dfbe8(0x1fe)]);}catch(_0x5c1621){console[_0x4dfbe8(0x23c)]('\x20\x20⚠\x20'+_0x8e7e97[_0x4dfbe8(0x247)]+':\x20failed\x20to\x20write\x20projects.json\x20override\x20('+(_0x48b329[_0x4dfbe8(0x24c)](_0x5c1621,Error)?_0x5c1621[_0x4dfbe8(0x204)]:_0x48b329['OmPkg'](String,_0x5c1621))+').');}const _0x16933c=getEnvDir(_0x8e7e97['profileName']);if(!_0x22d741&&existsSync(_0x16933c))try{await _0x48b329[_0x4dfbe8(0x216)](rm,_0x16933c,{'recursive':!![],'force':!![]}),_0x56ff4e++;}catch(_0xda0d99){console['log'](_0x4dfbe8(0x220)+_0x8e7e97[_0x4dfbe8(0x247)]+_0x4dfbe8(0x228)+_0x16933c+'\x20('+(_0x48b329[_0x4dfbe8(0x225)](_0xda0d99,Error)?_0xda0d99[_0x4dfbe8(0x204)]:String(_0xda0d99))+').');}_0x232834++,_0x8e7e97[_0x4dfbe8(0x23d)]&&_0x8e7e97[_0x4dfbe8(0x1fe)]?console[_0x4dfbe8(0x23c)]('\x20\x20✓\x20'+_0x8e7e97[_0x4dfbe8(0x247)]+_0x4dfbe8(0x23f)+_0x8e7e97[_0x4dfbe8(0x211)]+_0x4dfbe8(0x222)):console['log'](_0x4dfbe8(0x1f3)+_0x8e7e97[_0x4dfbe8(0x247)]+_0x4dfbe8(0x23f)+_0x8e7e97['envKey']+')'),_0x125ba3?.['trackPhaseEnd'](_0x4dfbe8(0x245),{'profileName':_0x8e7e97[_0x4dfbe8(0x247)],'envKey':_0x8e7e97['envKey'],'wasGitTracked':_0x895d3a,'hadSession':_0x2ed994,'savedCreds':_0x452ca1});}catch(_0x195ff2){_0x386083++,console['log'](_0x4dfbe8(0x210)+_0x8e7e97[_0x4dfbe8(0x247)]+'\x20failed:\x20'+(_0x48b329['yTQvX'](_0x195ff2,Error)?_0x195ff2['message']:String(_0x195ff2))),_0x125ba3?.['trackPhaseEnd']('profile.migrate.failed',{'profileName':_0x8e7e97['profileName'],'error':_0x195ff2 instanceof Error?_0x195ff2['message']:_0x48b329[_0x4dfbe8(0x21e)](String,_0x195ff2)});}}const _0x3706a7=[];if(_0x48b329[_0x4dfbe8(0x218)](_0x232834,0x0))_0x3706a7['push'](_0x232834+_0x4dfbe8(0x24a)+(_0x48b329['oeNyv'](_0x232834,0x1)?'':'s')+_0x4dfbe8(0x1ff));if(_0x48b329['Nhfdb'](_0x56ff4e,0x0))_0x3706a7[_0x4dfbe8(0x20c)]('Deleted\x20'+_0x56ff4e+'\x20local\x20director'+(_0x56ff4e===0x1?'y':_0x48b329[_0x4dfbe8(0x236)]));if(_0x4bb560>0x0)_0x3706a7[_0x4dfbe8(0x20c)](_0x4bb560+_0x4dfbe8(0x203));if(_0x48b329['Nhfdb'](_0x386083,0x0))_0x3706a7[_0x4dfbe8(0x20c)](_0x386083+'\x20failed');if(_0x3706a7['length']>0x0)console[_0x4dfbe8(0x23c)](_0x3706a7[_0x4dfbe8(0x1f9)]('.\x20')+'.');}
1
+ (function(_0x130e38,_0x3f73d2){var _0x3053ac=_0x3011,_0x521875=_0x130e38();while(!![]){try{var _0x558030=-parseInt(_0x3053ac(0x1d6))/0x1+parseInt(_0x3053ac(0x1d0))/0x2*(parseInt(_0x3053ac(0x1db))/0x3)+-parseInt(_0x3053ac(0x1e5))/0x4+-parseInt(_0x3053ac(0x1dc))/0x5*(parseInt(_0x3053ac(0x1da))/0x6)+-parseInt(_0x3053ac(0x1e1))/0x7*(-parseInt(_0x3053ac(0x1e0))/0x8)+-parseInt(_0x3053ac(0x1e2))/0x9+-parseInt(_0x3053ac(0x1e3))/0xa*(-parseInt(_0x3053ac(0x1d2))/0xb);if(_0x558030===_0x3f73d2)break;else _0x521875['push'](_0x521875['shift']());}catch(_0x5dc43a){_0x521875['push'](_0x521875['shift']());}}}(_0x4a7f,0x54ee0));function _0x3011(_0x43e120,_0x5ea76d){_0x43e120=_0x43e120-0x1ce;var _0x4a7f25=_0x4a7f();var _0x3011d5=_0x4a7f25[_0x43e120];return _0x3011d5;}function _0x4a7f(){var _0x37559f=['\x20\x20ranger\x20profile\x20add\x20<name>\x0a','24XcLqIQ','uNzyV','638737nvfGti','For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a','IsNrP','Existing\x20sessions\x20in\x20your\x20old\x20<project>/.ranger/\x20dirs\x20still\x20work\x20as\x20a\x0a','305663heIoen','error','To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a','oBpuH','1150722PtsLjp','113214irupVv','10SVWNYA','YeYxd','flpmU','fallback;\x20you\x20can\x20delete\x20them\x20once\x20you\x20have\x20re-auth-ed.','8rNIvqs','3206399SMpwSS','6185592OdySsl','250EgozZc','hbUSW','2552764Wsjnpw','ranger\x20profile\x20migrate\x20is\x20no\x20longer\x20supported.\x0a'];_0x4a7f=function(){return _0x37559f;};return _0x4a7f();}export async function migrateProfile(_0x53481f,_0x1ac29d){var _0x3b3844=_0x3011,_0x3a797b={'hbUSW':function(_0x2f386d,_0x2967bb){return _0x2f386d+_0x2967bb;},'okiMM':function(_0xa61a11,_0x218b1c){return _0xa61a11+_0x218b1c;},'flpmU':_0x3b3844(0x1ce),'IsNrP':_0x3b3844(0x1d8),'YeYxd':'\x20\x20https://docs.ranger.net/main/concepts/profiles\x0a','uNzyV':_0x3b3844(0x1d5),'oBpuH':_0x3b3844(0x1df)};console[_0x3b3844(0x1d7)](_0x3a797b[_0x3b3844(0x1e4)](_0x3a797b['hbUSW'](_0x3a797b['hbUSW'](_0x3a797b['hbUSW'](_0x3a797b['okiMM'](_0x3a797b[_0x3b3844(0x1de)],'\x0a')+_0x3a797b[_0x3b3844(0x1d4)],_0x3b3844(0x1cf))+'\x0a',_0x3b3844(0x1d3)),_0x3a797b[_0x3b3844(0x1dd)])+'\x0a'+_0x3a797b[_0x3b3844(0x1d1)],_0x3a797b[_0x3b3844(0x1d9)])),process['exit'](0x1);}
@@ -1 +1 @@
1
- function _0x1efc(_0x5dee12,_0x401da1){_0x5dee12=_0x5dee12-0x1da;const _0x270736=_0x2707();let _0x1efc2c=_0x270736[_0x5dee12];return _0x1efc2c;}(function(_0x37b2d5,_0x54affb){const _0x37edd1=_0x1efc,_0x2f9a53=_0x37b2d5();while(!![]){try{const _0x523bd2=parseInt(_0x37edd1(0x213))/0x1+parseInt(_0x37edd1(0x1eb))/0x2*(-parseInt(_0x37edd1(0x1f7))/0x3)+-parseInt(_0x37edd1(0x1fb))/0x4*(parseInt(_0x37edd1(0x205))/0x5)+-parseInt(_0x37edd1(0x1e6))/0x6*(-parseInt(_0x37edd1(0x207))/0x7)+-parseInt(_0x37edd1(0x1e9))/0x8*(parseInt(_0x37edd1(0x1f5))/0x9)+-parseInt(_0x37edd1(0x1f1))/0xa+parseInt(_0x37edd1(0x209))/0xb*(parseInt(_0x37edd1(0x1f9))/0xc);if(_0x523bd2===_0x54affb)break;else _0x2f9a53['push'](_0x2f9a53['shift']());}catch(_0x321c63){_0x2f9a53['push'](_0x2f9a53['shift']());}}}(_0x2707,0x1f714));import{join}from'path';import{existsSync}from'fs';import _0x288aae from'inquirer';function _0x2707(){const _0x4c4c41=['PQBQh','\x0aYou\x20can\x20install\x20manually\x20with:','gYxKm','pluginScope','error','Where\x20should\x20the\x20plugin\x20be\x20installed?','250396KdXVEE','QedTV','marketplace','install','prompt','SKILL.md','tJqfq','User\x20(available\x20in\x20all\x20your\x20projects)','pRmoP','YqDhJ','confirm','project','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','MNHbF','plugin','push','ranger-testing/trailhead','pQULC','1878Mgnatc','⚠\x20Failed\x20to\x20enable\x20plugin:','WaBJt','248VRWsdL','enable','4jesVHi','TgyFc','✓\x20Marketplace\x20already\x20added','ranger@trailhead','❌\x20Failed\x20to\x20add\x20marketplace:','UGsvs','1790230sdhKSA','ranger','jWkPm','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','30510EQXNCw','TDIKj','331851WJMmuc','CbCtN','73164ZUsyJF','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','97004nAKubx','iBeMj','KScjU','trailhead','YNOzZ','VMTTE','wantsSkillup','user','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','Would\x20you\x20like\x20to\x20install\x20skills?','35hiljyC','\x20level)...\x0a','4879rdYOac','✓\x20Ranger\x20skills\x20already\x20installed','605lKTtno','add','log','LHXoQ'];_0x2707=function(){return _0x4c4c41;};return _0x2707();}import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x11ae01){const _0x2a4c49=_0x1efc,_0x5ddfc6={'LHXoQ':function(_0x639689,_0x2d409d){return _0x639689(_0x2d409d);},'uEywr':_0x2a4c49(0x203),'VMTTE':function(_0x18d5b6,_0x1bce82,_0x394b21){return _0x18d5b6(_0x1bce82,_0x394b21);},'MNHbF':'.claude','ZZDEZ':'project','CbCtN':_0x2a4c49(0x210),'pRmoP':_0x2a4c49(0x212),'YqDhJ':_0x2a4c49(0x1db),'pQULC':'user','PQBQh':_0x2a4c49(0x1ed),'YNOzZ':_0x2a4c49(0x215),'WaBJt':_0x2a4c49(0x20a),'iBeMj':_0x2a4c49(0x1ef),'JZCvK':'\x0aYou\x20can\x20install\x20manually\x20with:','jWkPm':'ranger@trailhead','KScjU':'--scope','gYxKm':'❌\x20Failed\x20to\x20install\x20plugin:','akDjt':'plugin','UGsvs':_0x2a4c49(0x1ea),'tJqfq':function(_0xe7ea07,_0x202e1a){return _0xe7ea07===_0x202e1a;},'LoKYZ':'already\x20enabled'},_0x4b4514=await _0x5ddfc6[_0x2a4c49(0x20c)](isPluginInstalled,_0x2a4c49(0x1ee));if(_0x4b4514)return console['log'](_0x5ddfc6['uEywr']),![];const _0x4f28b5=existsSync(_0x5ddfc6[_0x2a4c49(0x200)](join,getProjectRoot(),_0x5ddfc6[_0x2a4c49(0x1e1)]));let _0x43c3d3;if(_0x11ae01)_0x43c3d3=_0x11ae01;else{if(_0x4f28b5)_0x43c3d3=_0x5ddfc6['ZZDEZ'];else{console['log'](_0x2a4c49(0x1e0));const _0x139dab=await _0x288aae[_0x2a4c49(0x217)]([{'type':'list','name':_0x5ddfc6[_0x2a4c49(0x1f8)],'message':_0x5ddfc6[_0x2a4c49(0x1dc)],'choices':[{'name':_0x5ddfc6[_0x2a4c49(0x1dd)],'value':_0x5ddfc6[_0x2a4c49(0x1e5)]},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x2a4c49(0x1df)}],'default':_0x5ddfc6['pQULC']}]);_0x43c3d3=_0x139dab['pluginScope'];}}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x43c3d3+_0x2a4c49(0x206));const _0x4e313a=await isMarketplaceAdded(_0x2a4c49(0x1fe));let _0x5b0209=_0x4e313a;if(_0x4e313a)console['log'](_0x5ddfc6[_0x2a4c49(0x20d)]);else{const _0x39fd46=await _0x5ddfc6['LHXoQ'](runClaudeCommand,[_0x2a4c49(0x1e2),_0x5ddfc6[_0x2a4c49(0x1ff)],_0x5ddfc6[_0x2a4c49(0x1e8)],_0x2a4c49(0x1e4)]);!_0x39fd46['success']?(console['error'](_0x5ddfc6[_0x2a4c49(0x1fc)],_0x39fd46[_0x2a4c49(0x211)]),console['log'](_0x5ddfc6['JZCvK']),console[_0x2a4c49(0x20b)]('\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead'),console[_0x2a4c49(0x20b)](_0x2a4c49(0x1f4)+_0x43c3d3)):_0x5b0209=!![];}if(_0x5b0209){const _0x335c6e=await runClaudeCommand([_0x2a4c49(0x1e2),_0x2a4c49(0x216),_0x5ddfc6[_0x2a4c49(0x1f3)],_0x5ddfc6[_0x2a4c49(0x1fd)],_0x43c3d3]);if(!_0x335c6e['success'])console[_0x2a4c49(0x211)](_0x5ddfc6[_0x2a4c49(0x20f)],_0x335c6e['error']),console[_0x2a4c49(0x20b)](_0x2a4c49(0x20e)),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x43c3d3);else{console[_0x2a4c49(0x20b)](_0x2a4c49(0x1fa));const _0x109ac6=[_0x5ddfc6['akDjt'],_0x5ddfc6[_0x2a4c49(0x1f0)],_0x5ddfc6['jWkPm']];_0x5ddfc6[_0x2a4c49(0x1da)](_0x43c3d3,_0x2a4c49(0x1df))&&_0x109ac6[_0x2a4c49(0x1e3)]('--scope',_0x5ddfc6['ZZDEZ']);const _0x13bcc0=await runClaudeCommand(_0x109ac6,{'captureOutput':!![]}),_0x27cfc6=_0x13bcc0['output']?.['includes'](_0x5ddfc6['LoKYZ']);!_0x13bcc0['success']&&!_0x27cfc6?console[_0x2a4c49(0x211)](_0x2a4c49(0x1e7),_0x13bcc0[_0x2a4c49(0x211)]):console[_0x2a4c49(0x20b)]('✓\x20Claude\x20Code\x20plugin\x20enabled');}}return!![];}export async function ensureClaudeSkills(_0x1eefc0){const _0x254275=_0x1efc,_0x28996b={'yTccj':function(_0x384b2e,_0x18cc76){return _0x384b2e(_0x18cc76);},'QedTV':function(_0x52b217,_0x2fb90c,_0x8f3414,_0x591255){return _0x52b217(_0x2fb90c,_0x8f3414,_0x591255);},'meuFr':_0x254275(0x1f2),'oxABN':function(_0x52d977,_0x474cb7){return _0x52d977(_0x474cb7);},'ibJpG':function(_0x3e20c0,_0x50569d){return _0x3e20c0||_0x50569d;},'pMKcS':'.claude','tCdQI':function(_0x4d2d39,_0x38808b){return _0x4d2d39(_0x38808b);},'TDIKj':_0x254275(0x201),'TgyFc':_0x254275(0x204)},_0x28fce6=_0x28996b['yTccj'](existsSync,_0x28996b[_0x254275(0x214)](join,_0x28996b['yTccj'](getSkillsDir,_0x254275(0x202)),_0x28996b['meuFr'],'SKILL.md')),_0x455b2f=existsSync(_0x28996b['QedTV'](join,_0x28996b['oxABN'](getSkillsDir,_0x254275(0x1df)),_0x28996b['meuFr'],_0x254275(0x218)));if(_0x28996b['ibJpG'](_0x28fce6,_0x455b2f))return console['log'](_0x254275(0x208)),![];const _0x5c2b36=existsSync(join(getProjectRoot(),_0x28996b['pMKcS']));let _0x121469=!![];if(_0x1eefc0)await skillup({'autoInstall':_0x1eefc0,'suppressUsage':!![]});else{if(_0x5c2b36)await _0x28996b['tCdQI'](skillup,{'autoInstall':'project','suppressUsage':!![]});else{const _0x354425=await _0x288aae[_0x254275(0x217)]([{'type':_0x254275(0x1de),'name':_0x28996b[_0x254275(0x1f6)],'message':_0x28996b[_0x254275(0x1ec)],'default':!![]}]);_0x121469=_0x354425['wantsSkillup'],_0x121469&&await skillup({'suppressUsage':!![]});}}return _0x121469;}
1
+ (function(_0x3e796a,_0x15db68){const _0x175d0c=_0xbd5d,_0x35f843=_0x3e796a();while(!![]){try{const _0x347f23=-parseInt(_0x175d0c(0x15c))/0x1*(-parseInt(_0x175d0c(0x146))/0x2)+parseInt(_0x175d0c(0x142))/0x3*(-parseInt(_0x175d0c(0x169))/0x4)+-parseInt(_0x175d0c(0x16c))/0x5*(-parseInt(_0x175d0c(0x13b))/0x6)+parseInt(_0x175d0c(0x172))/0x7+-parseInt(_0x175d0c(0x14a))/0x8*(parseInt(_0x175d0c(0x139))/0x9)+parseInt(_0x175d0c(0x16d))/0xa+parseInt(_0x175d0c(0x171))/0xb*(-parseInt(_0x175d0c(0x156))/0xc);if(_0x347f23===_0x15db68)break;else _0x35f843['push'](_0x35f843['shift']());}catch(_0x591417){_0x35f843['push'](_0x35f843['shift']());}}}(_0x4495,0xcf32a));import{join}from'path';import{existsSync}from'fs';import _0x2888d7 from'inquirer';import{skillup}from'../skillup.js';function _0x4495(){const _0x2556e8=['wantsSkillup','721272yvIuCV','--scope','list','ranger','Would\x20you\x20like\x20to\x20install\x20skills?','mdjZB','Project\x20(shared\x20with\x20team\x20via\x20git)','⚠\x20Failed\x20to\x20enable\x20plugin:','jlvMl','nlLHJ','pluginScope','❌\x20Failed\x20to\x20install\x20plugin:','1272Hfkzrn','LIZtL','ranger@trailhead','✓\x20Ranger\x20skills\x20already\x20installed','User\x20(available\x20in\x20all\x20your\x20projects)','DrTbo','1ZkMqZQ','error','prompt','UsDuk','project','ranger-testing/trailhead','Where\x20should\x20the\x20plugin\x20be\x20installed?','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','Vjxbe','\x0aYou\x20can\x20install\x20manually\x20with:','jVluO','wqJaw','lBjbV','4ibTRKZ','❌\x20Failed\x20to\x20add\x20marketplace:','\x20level)...\x0a','5WSdOKE','14080890FWxHMp','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','dXgBz','eckPv','115126fimRCy','3323880BFPnTe','DsmVU','OoeHd','72roGPVr','DJzLY','8144898mMlOUy','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','ohCNj','output','HlzXH','user','fkJbT','3333684NabODG','BxOxg','eaRRB','CsCyg','1100332JgZlCP','log','confirm'];_0x4495=function(){return _0x2556e8;};return _0x4495();}import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0xbd5d(_0x31d6ca,_0x5482b5){_0x31d6ca=_0x31d6ca-0x139;const _0x449577=_0x4495();let _0xbd5d95=_0x449577[_0x31d6ca];return _0xbd5d95;}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x205af0){const _0x1c8eab=_0xbd5d,_0x3f316a={'wqJaw':function(_0x1ca1c1,_0x87afae){return _0x1ca1c1(_0x87afae);},'fkJbT':_0x1c8eab(0x158),'DrTbo':_0x1c8eab(0x163),'Vjxbe':function(_0x44dbff,_0x820d8c,_0x28d089){return _0x44dbff(_0x820d8c,_0x28d089);},'eaRRB':function(_0x365792){return _0x365792();},'UsDuk':_0x1c8eab(0x14c),'ohCNj':_0x1c8eab(0x154),'JaFVz':_0x1c8eab(0x150),'LIZtL':'trailhead','wJdcU':'✓\x20Marketplace\x20already\x20added','dXgBz':'marketplace','RSerS':'add','nMScx':_0x1c8eab(0x16a),'mdjZB':'plugin','GxzvE':'install','jVluO':function(_0x910032,_0x5829ad){return _0x910032===_0x5829ad;},'BxOxg':'project','AJWCZ':function(_0x232e6d){return _0x232e6d();},'CsCyg':'\x0aYou\x20can\x20install\x20manually\x20with:','DJzLY':'✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','PwdKL':function(_0x5dd9f7,_0x143ccf){return _0x5dd9f7===_0x143ccf;},'DsmVU':'--scope','jlvMl':'already\x20enabled','mepKG':_0x1c8eab(0x151),'mfOXq':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x1d4824=await _0x3f316a[_0x1c8eab(0x167)](isPluginInstalled,_0x3f316a[_0x1c8eab(0x141)]);if(_0x1d4824)return console[_0x1c8eab(0x147)](_0x3f316a[_0x1c8eab(0x15b)]),![];const _0x1ed65d=existsSync(_0x3f316a['Vjxbe'](join,_0x3f316a[_0x1c8eab(0x144)](getProjectRoot),'.claude'));let _0x1f098f;if(_0x205af0)_0x1f098f=_0x205af0;else{if(_0x1ed65d)_0x1f098f=_0x1c8eab(0x160);else{console[_0x1c8eab(0x147)]('\x0a📦\x20Claude\x20Code\x20Plugin\x0a');const _0x4bec36=await _0x2888d7['prompt']([{'type':_0x3f316a[_0x1c8eab(0x15f)],'name':_0x3f316a[_0x1c8eab(0x13d)],'message':_0x1c8eab(0x162),'choices':[{'name':_0x1c8eab(0x15a),'value':'user'},{'name':_0x3f316a['JaFVz'],'value':'project'}],'default':'user'}]);_0x1f098f=_0x4bec36['pluginScope'];}}console['log'](_0x1c8eab(0x16e)+_0x1f098f+_0x1c8eab(0x16b));const _0x4df72b=await _0x3f316a['wqJaw'](isMarketplaceAdded,_0x3f316a[_0x1c8eab(0x157)]);let _0x31161c=_0x4df72b;if(_0x4df72b)console['log'](_0x3f316a['wJdcU']);else{const _0x39022f=await runClaudeCommand(['plugin',_0x3f316a[_0x1c8eab(0x16f)],_0x3f316a['RSerS'],_0x1c8eab(0x161)]);!_0x39022f['success']?(console[_0x1c8eab(0x15d)](_0x3f316a['nMScx'],_0x39022f['error']),console['log'](_0x1c8eab(0x165)),console['log'](_0x1c8eab(0x13c)),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x1f098f)):_0x31161c=!![];}if(_0x31161c){const _0x529464=await runClaudeCommand([_0x3f316a[_0x1c8eab(0x14f)],_0x3f316a['GxzvE'],_0x3f316a[_0x1c8eab(0x141)],_0x1c8eab(0x14b),_0x1f098f],{'cwd':_0x3f316a[_0x1c8eab(0x166)](_0x1f098f,_0x3f316a['BxOxg'])?_0x3f316a['AJWCZ'](getProjectRoot):undefined});if(!_0x529464['success'])console[_0x1c8eab(0x15d)](_0x1c8eab(0x155),_0x529464['error']),console[_0x1c8eab(0x147)](_0x3f316a[_0x1c8eab(0x145)]),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x1f098f);else{console[_0x1c8eab(0x147)](_0x3f316a[_0x1c8eab(0x13a)]);const _0x11b481=['plugin','enable',_0x1c8eab(0x158)];_0x3f316a['PwdKL'](_0x1f098f,_0x3f316a[_0x1c8eab(0x143)])&&_0x11b481['push'](_0x3f316a[_0x1c8eab(0x173)],_0x1c8eab(0x160));const _0xd6daa0=await _0x3f316a[_0x1c8eab(0x164)](runClaudeCommand,_0x11b481,{'captureOutput':!![],'cwd':_0x1f098f===_0x3f316a[_0x1c8eab(0x143)]?getProjectRoot():undefined}),_0xa6d7a3=_0xd6daa0[_0x1c8eab(0x13e)]?.['includes'](_0x3f316a[_0x1c8eab(0x152)]);!_0xd6daa0['success']&&!_0xa6d7a3?console[_0x1c8eab(0x15d)](_0x3f316a['mepKG'],_0xd6daa0[_0x1c8eab(0x15d)]):console['log'](_0x3f316a['mfOXq']);}}return!![];}export async function ensureClaudeSkills(_0x598237){const _0x5d9ded=_0xbd5d,_0x2331cd={'eckPv':function(_0x2d91da,_0x115228){return _0x2d91da(_0x115228);},'skCsn':'SKILL.md','AeTLZ':function(_0x592d86,_0x21b6f6,_0xbca518,_0x414fcc){return _0x592d86(_0x21b6f6,_0xbca518,_0x414fcc);},'lBjbV':_0x5d9ded(0x160),'KfuAH':_0x5d9ded(0x159),'sExwp':function(_0x3ffd58,_0x599b95){return _0x3ffd58(_0x599b95);},'LWUBK':function(_0x23be7,_0x43813f,_0x2da9ba){return _0x23be7(_0x43813f,_0x2da9ba);},'HlzXH':'.claude','nlLHJ':_0x5d9ded(0x149),'OoeHd':_0x5d9ded(0x14e),'YOOSA':function(_0x17d2d1,_0x172b4c){return _0x17d2d1(_0x172b4c);}},_0x28915e=_0x2331cd[_0x5d9ded(0x170)](existsSync,join(_0x2331cd['eckPv'](getSkillsDir,_0x5d9ded(0x140)),'ranger',_0x2331cd['skCsn'])),_0x2620d9=_0x2331cd[_0x5d9ded(0x170)](existsSync,_0x2331cd['AeTLZ'](join,_0x2331cd[_0x5d9ded(0x170)](getSkillsDir,_0x2331cd[_0x5d9ded(0x168)]),_0x5d9ded(0x14d),_0x2331cd['skCsn']));if(_0x28915e||_0x2620d9)return console[_0x5d9ded(0x147)](_0x2331cd['KfuAH']),![];const _0x41d8de=_0x2331cd['sExwp'](existsSync,_0x2331cd['LWUBK'](join,getProjectRoot(),_0x2331cd[_0x5d9ded(0x13f)]));let _0x5b72ea=!![];if(_0x598237)await _0x2331cd['sExwp'](skillup,{'autoInstall':_0x598237,'suppressUsage':!![]});else{if(_0x41d8de)await skillup({'autoInstall':'project','suppressUsage':!![]});else{const _0x1329cb=await _0x2888d7[_0x5d9ded(0x15e)]([{'type':_0x5d9ded(0x148),'name':_0x2331cd[_0x5d9ded(0x153)],'message':_0x2331cd[_0x5d9ded(0x174)],'default':!![]}]);_0x5b72ea=_0x1329cb['wantsSkillup'],_0x5b72ea&&await _0x2331cd['YOOSA'](skillup,{'suppressUsage':!![]});}}return _0x5b72ea;}
@@ -1 +1 @@
1
- (function(_0x51913c,_0x222294){const _0xa284cc=_0x24ba,_0x4b9df6=_0x51913c();while(!![]){try{const _0xbe1897=-parseInt(_0xa284cc(0xdf))/0x1+-parseInt(_0xa284cc(0xe0))/0x2*(-parseInt(_0xa284cc(0xd7))/0x3)+-parseInt(_0xa284cc(0xe7))/0x4+-parseInt(_0xa284cc(0xd2))/0x5+-parseInt(_0xa284cc(0xda))/0x6+parseInt(_0xa284cc(0xcf))/0x7*(-parseInt(_0xa284cc(0xe5))/0x8)+parseInt(_0xa284cc(0xd4))/0x9*(parseInt(_0xa284cc(0xe3))/0xa);if(_0xbe1897===_0x222294)break;else _0x4b9df6['push'](_0x4b9df6['shift']());}catch(_0x2233e6){_0x4b9df6['push'](_0x4b9df6['shift']());}}}(_0x17b3,0xe089f));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x71da78 from'inquirer';function _0x24ba(_0xd47d43,_0x354b94){_0xd47d43=_0xd47d43-0xcd;const _0x17b318=_0x17b3();let _0x24baca=_0x17b318[_0xd47d43];return _0x24baca;}import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x22ce48){const _0x41edb8=_0x24ba,_0x4dd614={'PybPG':function(_0x116ddf,_0x8c936c,_0x51e0f9){return _0x116ddf(_0x8c936c,_0x51e0f9);},'Mivrr':_0x41edb8(0xe2),'LiFUz':'project','CeuUz':'\x0a📦\x20OpenCode\x20Plugin\x0a','tvEyl':'list','ZmDDo':'user','ZxODH':_0x41edb8(0xdb),'QqrQD':function(_0x556d5b,_0x488238){return _0x556d5b(_0x488238);},'uqnaa':'utf-8','yrYsJ':'✓\x20OpenCode\x20plugin\x20already\x20configured','ZxPwQ':function(_0x38a5c6,_0x50f16d){return _0x38a5c6(_0x50f16d);},'sXaCn':_0x41edb8(0xe6)},_0x2fd71c=existsSync(_0x4dd614[_0x41edb8(0xcd)](join,getOpencodeConfigDir('project'),_0x4dd614['Mivrr']));let _0x92d0a1;if(_0x22ce48)_0x92d0a1=_0x22ce48;else{if(_0x2fd71c)_0x92d0a1=_0x4dd614[_0x41edb8(0xe1)];else{console[_0x41edb8(0xd6)](_0x4dd614[_0x41edb8(0xd3)]);const _0x14e296=await _0x71da78['prompt']([{'type':_0x4dd614['tvEyl'],'name':_0x41edb8(0xdc),'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x41edb8(0xd8),'value':_0x4dd614['ZmDDo']},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':'project'}],'default':_0x4dd614[_0x41edb8(0xe4)]}]);_0x92d0a1=_0x14e296['pluginScope'];}}const _0x4e6b30=_0x4dd614[_0x41edb8(0xcd)](join,getOpencodeConfigDir(_0x92d0a1),_0x4dd614[_0x41edb8(0xd9)]),_0x1a198e='@ranger-testing/opencode-plugin',_0x15e210=_0x4dd614['ZxODH'];let _0x3c6fbc={};if(_0x4dd614['QqrQD'](existsSync,_0x4e6b30))try{const _0x44eee5=await _0x4dd614['PybPG'](readFile,_0x4e6b30,_0x4dd614[_0x41edb8(0xd0)]);_0x3c6fbc=JSON['parse'](_0x44eee5);}catch(_0x10f82b){return console[_0x41edb8(0xce)](_0x41edb8(0xde)),{'configured':![],'scope':_0x92d0a1,'error':'Failed\x20to\x20read\x20opencode.json','details':_0x10f82b};}const _0x7956dd=Array[_0x41edb8(0xdd)](_0x3c6fbc['plugin'])?_0x3c6fbc['plugin']:[];if(_0x7956dd['includes'](_0x1a198e))return console[_0x41edb8(0xd6)](_0x4dd614['yrYsJ']),{'configured':![],'scope':_0x92d0a1};return _0x3c6fbc['$schema']=_0x3c6fbc['$schema']||_0x15e210,_0x3c6fbc[_0x41edb8(0xd1)]=[..._0x7956dd,_0x1a198e],await _0x4dd614[_0x41edb8(0xcd)](mkdir,_0x4dd614['ZxPwQ'](getOpencodeConfigDir,_0x92d0a1),{'recursive':!![]}),await writeFile(_0x4e6b30,JSON['stringify'](_0x3c6fbc,null,0x2)+'\x0a'),console[_0x41edb8(0xd6)](_0x4dd614[_0x41edb8(0xd5)]),{'configured':!![],'scope':_0x92d0a1};}function _0x17b3(){const _0x5bbd58=['https://opencode.ai/config.json','pluginScope','isArray','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','64814yvnNhk','2QJyDhf','LiFUz','opencode.json','12122430VEJaTN','ZmDDo','8YjouWh','✓\x20OpenCode\x20plugin\x20configured','4477184wApNvH','PybPG','error','2573095yzDsVi','uqnaa','plugin','371520uJMomU','CeuUz','18YhUCYW','sXaCn','log','2979927jdDROx','User\x20(available\x20in\x20all\x20your\x20projects)','Mivrr','5232510JYUdiw'];_0x17b3=function(){return _0x5bbd58;};return _0x17b3();}
1
+ function _0x4d4d(){const _0x2acc94=['project','isArray','67350HSvwBZ','536tEXqjF','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','378RUYshX','https://opencode.ai/config.json','@ranger-testing/opencode-plugin','88681StpsCd','SdNdL','20882MlyUPO','user','iAUok','User\x20(available\x20in\x20all\x20your\x20projects)','Where\x20should\x20the\x20plugin\x20be\x20installed?','4270gMwUBq','13391UjmqWA','YMkAS','PTEDb','1684aPOCDG','CEzWC','998973jgUgSD','TzKxM','108090HluiFs','plugin','MAqnk','includes','Failed\x20to\x20read\x20opencode.json','error','✓\x20OpenCode\x20plugin\x20configured','stringify','$schema','log'];_0x4d4d=function(){return _0x2acc94;};return _0x4d4d();}(function(_0xea2c50,_0x1cf6f0){const _0x7d409a=_0x75d8,_0x5f0b4c=_0xea2c50();while(!![]){try{const _0x2dad61=parseInt(_0x7d409a(0xc3))/0x1+-parseInt(_0x7d409a(0xc5))/0x2+parseInt(_0x7d409a(0xd0))/0x3+-parseInt(_0x7d409a(0xce))/0x4*(-parseInt(_0x7d409a(0xca))/0x5)+parseInt(_0x7d409a(0xbd))/0x6+parseInt(_0x7d409a(0xcb))/0x7*(-parseInt(_0x7d409a(0xbe))/0x8)+-parseInt(_0x7d409a(0xc0))/0x9*(parseInt(_0x7d409a(0xd2))/0xa);if(_0x2dad61===_0x1cf6f0)break;else _0x5f0b4c['push'](_0x5f0b4c['shift']());}catch(_0x1bd9d1){_0x5f0b4c['push'](_0x5f0b4c['shift']());}}}(_0x4d4d,0x30ca1));function _0x75d8(_0x11a1ea,_0x5abfaa){_0x11a1ea=_0x11a1ea-0xbc;const _0x4d4dd3=_0x4d4d();let _0x75d881=_0x4d4dd3[_0x11a1ea];return _0x75d881;}import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x16f2b2 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x1a4b9b){const _0x375834=_0x75d8,_0x3cbf4d={'PTEDb':function(_0x1c48c5,_0x4fe4bd,_0x28b7ec){return _0x1c48c5(_0x4fe4bd,_0x28b7ec);},'sWGKW':function(_0xa196cc,_0xe2d3e6){return _0xa196cc(_0xe2d3e6);},'YMkAS':_0x375834(0xdc),'MAqnk':_0x375834(0xc2),'CEzWC':function(_0x4845ce,_0x5bcf62){return _0x4845ce(_0x5bcf62);},'iAUok':_0x375834(0xbf),'ycDVW':_0x375834(0xd6),'nwpHE':'✓\x20OpenCode\x20plugin\x20already\x20configured','SdNdL':function(_0x5dbb92,_0xe26008,_0x45ff75){return _0x5dbb92(_0xe26008,_0x45ff75);},'TzKxM':_0x375834(0xd8)},_0x444fe3=existsSync(_0x3cbf4d[_0x375834(0xcd)](join,_0x3cbf4d['sWGKW'](getOpencodeConfigDir,_0x3cbf4d[_0x375834(0xcc)]),'opencode.json'));let _0x110649;if(_0x1a4b9b)_0x110649=_0x1a4b9b;else{if(_0x444fe3)_0x110649=_0x3cbf4d['YMkAS'];else{console['log']('\x0a📦\x20OpenCode\x20Plugin\x0a');const _0x2061f5=await _0x16f2b2['prompt']([{'type':'list','name':'pluginScope','message':_0x375834(0xc9),'choices':[{'name':_0x375834(0xc8),'value':_0x375834(0xc6)},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x3cbf4d['YMkAS']}],'default':'user'}]);_0x110649=_0x2061f5['pluginScope'];}}const _0x3ced55=_0x3cbf4d[_0x375834(0xcd)](join,getOpencodeConfigDir(_0x110649),'opencode.json'),_0x45cddc=_0x3cbf4d[_0x375834(0xd4)],_0x1b6506=_0x375834(0xc1);let _0x2e65c3={};if(_0x3cbf4d[_0x375834(0xcf)](existsSync,_0x3ced55))try{const _0x22d5be=await readFile(_0x3ced55,'utf-8');_0x2e65c3=JSON['parse'](_0x22d5be);}catch(_0x7e2ad9){return console[_0x375834(0xd7)](_0x3cbf4d[_0x375834(0xc7)]),{'configured':![],'scope':_0x110649,'error':_0x3cbf4d['ycDVW'],'details':_0x7e2ad9};}const _0x5ab4d4=Array[_0x375834(0xbc)](_0x2e65c3['plugin'])?_0x2e65c3[_0x375834(0xd3)]:[];if(_0x5ab4d4[_0x375834(0xd5)](_0x45cddc))return console[_0x375834(0xdb)](_0x3cbf4d['nwpHE']),{'configured':![],'scope':_0x110649};return _0x2e65c3['$schema']=_0x2e65c3[_0x375834(0xda)]||_0x1b6506,_0x2e65c3[_0x375834(0xd3)]=[..._0x5ab4d4,_0x45cddc],await _0x3cbf4d[_0x375834(0xc4)](mkdir,_0x3cbf4d[_0x375834(0xcf)](getOpencodeConfigDir,_0x110649),{'recursive':!![]}),await _0x3cbf4d[_0x375834(0xcd)](writeFile,_0x3ced55,JSON[_0x375834(0xd9)](_0x2e65c3,null,0x2)+'\x0a'),console[_0x375834(0xdb)](_0x3cbf4d[_0x375834(0xd1)]),{'configured':!![],'scope':_0x110649};}
@@ -1 +1 @@
1
- (function(_0x140f0a,_0xd7ff77){const _0x2a4083=_0x290b,_0x122af1=_0x140f0a();while(!![]){try{const _0x58abc7=-parseInt(_0x2a4083(0x227))/0x1*(parseInt(_0x2a4083(0x1f5))/0x2)+-parseInt(_0x2a4083(0x214))/0x3*(-parseInt(_0x2a4083(0x202))/0x4)+-parseInt(_0x2a4083(0x224))/0x5+-parseInt(_0x2a4083(0x1fa))/0x6*(-parseInt(_0x2a4083(0x22e))/0x7)+parseInt(_0x2a4083(0x20e))/0x8+parseInt(_0x2a4083(0x221))/0x9+parseInt(_0x2a4083(0x21b))/0xa;if(_0x58abc7===_0xd7ff77)break;else _0x122af1['push'](_0x122af1['shift']());}catch(_0x3ca121){_0x122af1['push'](_0x122af1['shift']());}}}(_0x1eee,0xcffab));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';function _0x1eee(){const _0x3e4556=['bGFVH','4543820htHfVj','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','LIuzH','marketplace','nBLVw','OVkbV','1551960LvDbiQ','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','log','6181975TvIkbx','message','ranger@trailhead','9754qJwmEZ','profile','HnQJM','Uldkg','RwnrP','WXQVa','plugin','1981fahXMk','vTWxu','map','cRImN','SVowi','dir_setup','EaTji','filter','profile_activate','16bqjAjo','skipChromium','✓\x20Active\x20profile:\x20','trailhead','auth.json.enc','2982odlqEx','MyoRj','trackPhaseStart','NSfta','isDirectory','keYNb','FZojo','CI\x20profile\x20\x22','12eGItVt','error','ffqCM','success','USepq','trackPhaseEnd','lMxsh','sessions','baseUrl','xMqhU','ToCOd','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','5835072QPKham','RDmEk','length','path','tpapH','name','669453nFWJqC','add','eJPgp','ranger-testing/trailhead','No\x20API\x20token\x20available\x20for\x20decryption','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a'];_0x1eee=function(){return _0x3e4556;};return _0x1eee();}import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';function _0x290b(_0xf4a8d0,_0x494036){_0xf4a8d0=_0xf4a8d0-0x1f4;const _0x1eee07=_0x1eee();let _0x290b30=_0x1eee07[_0xf4a8d0];return _0x290b30;}async function findCiProfile(_0x598683){const _0x57c937=_0x290b,_0x551121={'wjMfb':function(_0x56c2aa,_0x150a15,_0x2c7554){return _0x56c2aa(_0x150a15,_0x2c7554);},'WCnnM':function(_0x1d96f4,_0x189fb7,_0x7fd202){return _0x1d96f4(_0x189fb7,_0x7fd202);},'jLZwr':function(_0x3f8cf5,_0x147d29){return _0x3f8cf5(_0x147d29);},'dyiTZ':'No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','ToCOd':_0x57c937(0x21c),'RwnrP':function(_0x98a612,_0x367597,_0x5040d2){return _0x98a612(_0x367597,_0x5040d2);},'USepq':function(_0x5496d1,_0x40e702){return _0x5496d1===_0x40e702;},'orwbt':function(_0x4356fd,_0xc6055){return _0x4356fd===_0xc6055;}},_0x485e63=getRangerDir(),_0x1e1ae5=_0x551121['wjMfb'](join,_0x485e63,'ci');if(_0x598683){const _0x3cb93c=_0x551121['WCnnM'](join,_0x1e1ae5,_0x598683);return{'name':_0x598683,'path':_0x3cb93c};}if(!_0x551121['jLZwr'](existsSync,_0x1e1ae5))throw new Error(_0x551121['dyiTZ']+_0x551121[_0x57c937(0x20c)]);const _0x28e913=await _0x551121[_0x57c937(0x22b)](readdir,_0x1e1ae5,{'withFileTypes':!![]}),_0x307f4=_0x28e913[_0x57c937(0x235)](_0x2e24df=>_0x2e24df[_0x57c937(0x1fe)]())[_0x57c937(0x230)](_0x23666d=>_0x23666d[_0x57c937(0x213)]);if(_0x551121[_0x57c937(0x206)](_0x307f4[_0x57c937(0x210)],0x0))throw new Error(_0x57c937(0x219)+_0x551121['ToCOd']);if(_0x551121['orwbt'](_0x307f4[_0x57c937(0x210)],0x1)){const _0x128438=_0x307f4[0x0];return console['log']('Auto-detected\x20CI\x20profile:\x20'+_0x128438),{'name':_0x128438,'path':join(_0x1e1ae5,_0x128438)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x307f4['join'](',\x20')+'.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.');}async function installPluginNonInteractive(){const _0x4e54e2=_0x290b,_0x66ce29={'cRImN':function(_0x28bdba,_0x36b26e){return _0x28bdba(_0x36b26e);},'MyoRj':_0x4e54e2(0x1f8),'kfUzD':_0x4e54e2(0x217),'FZojo':'Failed\x20to\x20add\x20marketplace:','LIuzH':_0x4e54e2(0x226),'ffqCM':'--scope','keYNb':'project','zoNcC':'✓\x20Claude\x20Code\x20plugin\x20installed'},_0x26b7d4=await isPluginInstalled('ranger@trailhead');if(_0x26b7d4)return console[_0x4e54e2(0x223)]('✓\x20Claude\x20Code\x20plugin\x20already\x20installed'),![];console[_0x4e54e2(0x223)]('Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...');const _0x122382=await _0x66ce29[_0x4e54e2(0x231)](isMarketplaceAdded,_0x66ce29[_0x4e54e2(0x1fb)]);let _0x1fba21=_0x122382;if(_0x122382)console[_0x4e54e2(0x223)]('✓\x20Marketplace\x20already\x20added');else{const _0x1c8bed=await runClaudeCommand(['plugin',_0x4e54e2(0x21e),_0x4e54e2(0x215),_0x66ce29['kfUzD']]);!_0x1c8bed[_0x4e54e2(0x205)]?(console['error'](_0x66ce29[_0x4e54e2(0x200)],_0x1c8bed['error']),console[_0x4e54e2(0x223)]('You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead')):_0x1fba21=!![];}if(_0x1fba21){const _0x112d3d=await runClaudeCommand(['plugin','install',_0x66ce29[_0x4e54e2(0x21d)],_0x66ce29[_0x4e54e2(0x204)],_0x66ce29[_0x4e54e2(0x1ff)]]);!_0x112d3d[_0x4e54e2(0x205)]?(console['error']('Failed\x20to\x20install\x20plugin:',_0x112d3d[_0x4e54e2(0x203)]),console[_0x4e54e2(0x223)]('You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project')):console[_0x4e54e2(0x223)](_0x66ce29['zoNcC']);}return!![];}export async function setupCi(_0x166bc3,_0x3f4cde,_0x12facc){const _0x232e07=_0x290b,_0x1d97f8={'HnQJM':'\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','RDmEk':'auth','jPdHh':_0x232e07(0x233),'NSfta':function(_0x50b903,_0x3f3f42){return _0x50b903(_0x3f3f42);},'SVowi':function(_0x2c1dd5,_0x2deced,_0x27a6ad){return _0x2c1dd5(_0x2deced,_0x27a6ad);},'WDScY':_0x232e07(0x209),'EaTji':function(_0x15ad09,_0xa2643a){return _0x15ad09(_0xa2643a);},'yLAVH':function(_0x41dd61,_0x268d6c,_0x412b13){return _0x41dd61(_0x268d6c,_0x412b13);},'vTWxu':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','WXQVa':function(_0x215145){return _0x215145();},'eJPgp':'chromium','tpapH':function(_0x3b4993,_0x13cae0,_0x222b99){return _0x3b4993(_0x13cae0,_0x222b99);},'xMqhU':'auth.json','axGuP':_0x232e07(0x1f9),'Uldkg':function(_0x193565,_0x1da69b){return _0x193565(_0x1da69b);},'bGFVH':function(_0xccbd33,_0x8175d5){return _0xccbd33(_0x8175d5);},'lMxsh':function(_0x1f1f81,_0x77aef3,_0x268135){return _0x1f1f81(_0x77aef3,_0x268135);},'ZNcRD':'✓\x20Auth\x20state\x20found','OVkbV':_0x232e07(0x20d),'rFMzF':'skills','nBLVw':'project'};console['log'](_0x1d97f8[_0x232e07(0x229)]),_0x12facc?.[_0x232e07(0x1fc)](_0x1d97f8[_0x232e07(0x20f)]),await authenticate(_0x166bc3),_0x12facc?.[_0x232e07(0x207)](_0x1d97f8['RDmEk']),_0x12facc?.[_0x232e07(0x1fc)](_0x1d97f8['jPdHh']);const {path:_0xfafbd3,installed:_0x45aaa0}=await ensureRangerDir();await _0x1d97f8[_0x232e07(0x1fd)](writeRangerGitignore,_0xfafbd3);const _0x55ade6=_0x1d97f8[_0x232e07(0x232)](join,_0xfafbd3,_0x1d97f8['WDScY']);!_0x1d97f8[_0x232e07(0x234)](existsSync,_0x55ade6)&&await _0x1d97f8['yLAVH'](mkdir,_0x55ade6,{'recursive':!![]});_0x12facc?.[_0x232e07(0x207)](_0x232e07(0x233),{'installed':_0x45aaa0}),_0x12facc?.[_0x232e07(0x1fc)]('chromium');let _0x404216=![];_0x3f4cde?.[_0x232e07(0x1f6)]?console['log'](_0x1d97f8[_0x232e07(0x22f)]):_0x404216=await _0x1d97f8[_0x232e07(0x22c)](ensureChromium);_0x12facc?.['trackPhaseEnd'](_0x1d97f8[_0x232e07(0x216)],{'installed':_0x404216,'skipped':!!_0x3f4cde?.[_0x232e07(0x1f6)]}),_0x12facc?.['trackPhaseStart']('profile_activate');const _0x51cb85=await _0x1d97f8[_0x232e07(0x1fd)](findCiProfile,_0x3f4cde?.[_0x232e07(0x228)]);let _0x1c8f32=![];_0x3f4cde?.['baseUrl']&&(await mkdir(_0x51cb85[_0x232e07(0x211)],{'recursive':!![]}),await _0x1d97f8[_0x232e07(0x212)](saveSettings,_0x51cb85[_0x232e07(0x213)],{'baseUrl':_0x3f4cde[_0x232e07(0x20a)],'headless':!![]}),console['log']('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x3f4cde[_0x232e07(0x20a)]),_0x1c8f32=!![]);const _0x26333d=_0x1d97f8[_0x232e07(0x212)](join,_0x51cb85['path'],'settings.json');if(!existsSync(_0x26333d)&&!_0x1c8f32)throw new Error(_0x232e07(0x201)+_0x51cb85['name']+_0x232e07(0x222));const _0x15e2d7=join(_0x51cb85[_0x232e07(0x211)],_0x1d97f8[_0x232e07(0x20b)]),_0x19c5af=_0x1d97f8['SVowi'](join,_0x51cb85['path'],_0x1d97f8['axGuP']),_0x2bedc4=_0x1d97f8[_0x232e07(0x22a)](existsSync,_0x15e2d7),_0x4b9a61=_0x1d97f8[_0x232e07(0x21a)](existsSync,_0x19c5af);if(_0x4b9a61)try{const _0x18aebb=await getToken();if(!_0x18aebb)throw new Error(_0x232e07(0x218));const _0x101d47=await readFile(_0x19c5af);_0x1d97f8[_0x232e07(0x208)](decrypt,_0x101d47,_0x18aebb),console[_0x232e07(0x223)]('✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)');}catch(_0x14b041){const _0x26d92d=_0x14b041 instanceof Error?_0x14b041[_0x232e07(0x225)]:String(_0x14b041);throw new Error('Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22'+_0x51cb85['name']+'\x22:\x20'+_0x26d92d);}else _0x2bedc4?console['log'](_0x1d97f8['ZNcRD']):console['log'](_0x1d97f8[_0x232e07(0x220)]);await writeActiveProfileName(_0x51cb85['name']),console[_0x232e07(0x223)](_0x232e07(0x1f7)+_0x51cb85[_0x232e07(0x213)]),_0x12facc?.[_0x232e07(0x207)](_0x232e07(0x1f4),{'profileName':_0x51cb85[_0x232e07(0x213)],'hasAuth':_0x2bedc4,'hasEncryptedAuth':_0x4b9a61,'createdSettings':_0x1c8f32}),_0x12facc?.['trackPhaseStart'](_0x232e07(0x22d));const _0x29fc77=await installPluginNonInteractive();_0x12facc?.['trackPhaseEnd'](_0x232e07(0x22d),{'installed':_0x29fc77}),_0x12facc?.[_0x232e07(0x1fc)](_0x1d97f8['rFMzF']),await skillup({'autoInstall':_0x1d97f8[_0x232e07(0x21f)]}),_0x12facc?.[_0x232e07(0x207)]('skills'),console['log']('\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a');}
1
+ function _0x5c81(_0x36e88a,_0x3507f7){_0x36e88a=_0x36e88a-0x1a3;var _0x25245a=_0x2524();var _0x5c81f9=_0x25245a[_0x36e88a];return _0x5c81f9;}(function(_0x3e3f8d,_0x387cc8){var _0x41b1ef=_0x5c81,_0x58b0f5=_0x3e3f8d();while(!![]){try{var _0x2f82a4=parseInt(_0x41b1ef(0x1b2))/0x1+parseInt(_0x41b1ef(0x1ac))/0x2*(parseInt(_0x41b1ef(0x1a5))/0x3)+parseInt(_0x41b1ef(0x1ab))/0x4+parseInt(_0x41b1ef(0x1a9))/0x5*(-parseInt(_0x41b1ef(0x1a8))/0x6)+-parseInt(_0x41b1ef(0x1a7))/0x7*(-parseInt(_0x41b1ef(0x1b1))/0x8)+-parseInt(_0x41b1ef(0x1af))/0x9+-parseInt(_0x41b1ef(0x1a6))/0xa*(parseInt(_0x41b1ef(0x1b4))/0xb);if(_0x2f82a4===_0x387cc8)break;else _0x58b0f5['push'](_0x58b0f5['shift']());}catch(_0x5712f4){_0x58b0f5['push'](_0x58b0f5['shift']());}}}(_0x2524,0xb7afb));function _0x2524(){var _0x3d552a=['24QLnOIq','200005nudycI','exit','1021768tVtiND','598oRdola','For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a','error','11804256jyLRUF','zpGJe','352936vxDoQJ','503191dYEZhl','\x20\x20ranger\x20profile\x20add\x20<name>\x0a','374lVVGww','LLViU','ranger\x20setup\x20--ci\x20writes\x20to\x20the\x20legacy\x20.ranger/ci/\x20tree\x20which\x20is\x20no\x20longer\x20supported.\x0a','3810eyrvcL','18070WgWmgS','182jUZxyc'];_0x2524=function(){return _0x3d552a;};return _0x2524();}export async function setupCi(_0x4a95ed,_0x4d38b4,_0x5a5202){var _0x47f439=_0x5c81,_0x2f7671={'LLViU':function(_0x22bca7,_0x20a8c7){return _0x22bca7+_0x20a8c7;},'zpGJe':function(_0x47ddf2,_0x5b7205){return _0x47ddf2+_0x5b7205;},'USkoZ':_0x47f439(0x1a4),'lZejH':'To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a'};console[_0x47f439(0x1ae)](_0x2f7671[_0x47f439(0x1a3)](_0x2f7671['LLViU'](_0x2f7671['LLViU'](_0x2f7671[_0x47f439(0x1b0)](_0x2f7671[_0x47f439(0x1a3)](_0x2f7671['USkoZ'],'\x0a'),_0x2f7671['lZejH']),_0x47f439(0x1b3))+'\x0a',_0x47f439(0x1ad)),'\x20\x20https://docs.ranger.net/main/concepts/profiles')),process[_0x47f439(0x1aa)](0x1);}
@@ -1 +1 @@
1
- (function(_0xd8d16b,_0x168322){const _0x1c656f=_0x3442,_0x1d28de=_0xd8d16b();while(!![]){try{const _0x5a5288=parseInt(_0x1c656f(0x92))/0x1+-parseInt(_0x1c656f(0xb9))/0x2+-parseInt(_0x1c656f(0x94))/0x3+-parseInt(_0x1c656f(0x97))/0x4+parseInt(_0x1c656f(0xb0))/0x5+parseInt(_0x1c656f(0xa2))/0x6*(parseInt(_0x1c656f(0x9d))/0x7)+parseInt(_0x1c656f(0x95))/0x8;if(_0x5a5288===_0x168322)break;else _0x1d28de['push'](_0x1d28de['shift']());}catch(_0x3ad7ce){_0x1d28de['push'](_0x1d28de['shift']());}}}(_0xff30,0xb29dc));function _0x3442(_0x4834a8,_0x3cc363){_0x4834a8=_0x4834a8-0x92;const _0xff3039=_0xff30();let _0x344212=_0xff3039[_0x4834a8];return _0x344212;}import{basename}from'path';function _0xff30(){const _0x31ca64=['\x20skill','276544YBqWDV','autoInstall','2805210yJPEVm','13629592faZvgn','This\x20project\x20only\x20(','1692288OkoBzb','opencode','DbPZf','/skills/','log','0|2|5|3|4|1','7ctWaVT','\x20<your-api-token>','To\x20get\x20started:','✓\x20Found\x20API\x20token','/.claude/skills/','1448130eUEBMe','user-level','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','uJmNv','MHKzW','\x20--opencode','prompt','project','installLevel','uhqeZ','YyZki','CbwjP','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','claude','1147785nnltYv','suppressUsage','\x0a📦\x20Installing\x20skills...\x0a','Zxclq','Where\x20should\x20skills\x20be\x20installed?','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!','user','All\x20projects\x20(','722802EusLsa'];_0xff30=function(){return _0x31ca64;};return _0xff30();}import _0x262268 from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x437dd9={}){const _0x5af054=_0x3442,_0x2e1519={'Zxclq':_0x5af054(0xa4),'DxPeZ':_0x5af054(0x9f),'uhqeZ':_0x5af054(0x98),'MHKzW':_0x5af054(0xa7),'besrk':_0x5af054(0xb5),'sGDtd':_0x5af054(0xa0),'tsFzw':'list','DbPZf':_0x5af054(0xb4),'KOmRw':_0x5af054(0xa9),'uJmNv':function(_0x56eed3){return _0x56eed3();},'BMfRl':_0x5af054(0xb2),'YyZki':'ranger','FcMYz':function(_0x23007f,_0x23a560){return _0x23007f===_0x23a560;},'CbwjP':'project-level','NPacD':function(_0xada6e5,_0x5d97ea){return _0xada6e5>_0x5d97ea;},'RCaWn':_0x5af054(0xb6)};console['log']('\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a');const _0x5d1039=_0x437dd9['platform']??_0x5af054(0xaf),_0x19b388=await getToken();if(!_0x19b388){const _0x4de4c7=_0x5af054(0x9c)['split']('|');let _0x4b01e4=0x0;while(!![]){switch(_0x4de4c7[_0x4b01e4++]){case'0':console[_0x5af054(0x9b)](_0x2e1519[_0x5af054(0xb3)]);continue;case'1':return;case'2':console[_0x5af054(0x9b)](_0x2e1519['DxPeZ']);continue;case'3':console[_0x5af054(0x9b)]('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x5d1039===_0x2e1519[_0x5af054(0xab)]?'\x20--opencode':'')+_0x5af054(0x9e));continue;case'4':console['log']('\x20\x203.\x20Run:\x20ranger\x20skillup'+(_0x5d1039==='opencode'?_0x2e1519[_0x5af054(0xa6)]:'')+'\x0a');continue;case'5':console[_0x5af054(0x9b)](_0x2e1519['besrk']);continue;}break;}}console[_0x5af054(0x9b)](_0x2e1519['sGDtd']);const _0x1e2dcd=getProjectRoot(),_0x1a186e=basename(_0x1e2dcd),_0x2a485e=_0x5d1039===_0x2e1519[_0x5af054(0xab)]?getOpencodeConfigDir('user')+_0x5af054(0x9a):getClaudeConfigDir()+'/skills/',_0x315562=_0x5d1039==='opencode'?_0x1e2dcd+'/.opencode/skills/':_0x1e2dcd+_0x5af054(0xa1),_0x4e302f=process['stdin']['isTTY']&&process['stdout']['isTTY'];let _0x2e02df;if(_0x437dd9['autoInstall'])_0x2e02df=_0x437dd9[_0x5af054(0x93)];else{if(_0x4e302f){const _0x270e1a=await _0x262268[_0x5af054(0xa8)]([{'type':_0x2e1519['tsFzw'],'name':_0x5af054(0xaa),'message':_0x2e1519[_0x5af054(0x99)],'choices':[{'name':_0x5af054(0xb8)+_0x2a485e+')','value':'user'},{'name':_0x5af054(0x96)+_0x315562+')','value':'project'}]}]);_0x2e02df=_0x270e1a[_0x5af054(0xaa)];}else _0x2e02df=_0x2e1519['KOmRw'],console[_0x5af054(0x9b)]('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x315562+')');}let _0x1e5bc8=0x0;const _0x42dc2a=_0x2e1519[_0x5af054(0xa5)](getCurrentVersion);console['log'](_0x2e1519['BMfRl']);try{const _0x3cafa3=await installSkill(_0x2e1519[_0x5af054(0xac)],{'cliVersion':_0x42dc2a,'level':_0x2e02df,'platform':_0x5d1039});_0x3cafa3&&_0x1e5bc8++;}catch(_0xcda177){console['warn'](_0x5af054(0xae),_0xcda177 instanceof Error?_0xcda177['message']:_0xcda177);}if(_0x1e5bc8>0x0){const _0x51be11=_0x2e1519['FcMYz'](_0x2e02df,_0x5af054(0xb7))?_0x5af054(0xa3):_0x2e1519[_0x5af054(0xad)];console[_0x5af054(0x9b)]('\x0a✅\x20Installed\x20'+_0x1e5bc8+'\x20'+_0x51be11+_0x5af054(0xba)+(_0x2e1519['NPacD'](_0x1e5bc8,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x437dd9[_0x5af054(0xb1)]&&(console['log']('To\x20use:'),_0x5d1039===_0x2e1519['uhqeZ']?console['log']('\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.'):console['log'](_0x2e1519['RCaWn']));}else console[_0x5af054(0x9b)]('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}
1
+ (function(_0x8c14cd,_0x29adcc){const _0x283c42=_0x4208,_0x1783ef=_0x8c14cd();while(!![]){try{const _0x1ad0d8=parseInt(_0x283c42(0xfa))/0x1+parseInt(_0x283c42(0xf1))/0x2*(parseInt(_0x283c42(0x105))/0x3)+parseInt(_0x283c42(0xeb))/0x4+-parseInt(_0x283c42(0xfc))/0x5*(parseInt(_0x283c42(0xf3))/0x6)+-parseInt(_0x283c42(0x103))/0x7+parseInt(_0x283c42(0xf8))/0x8+parseInt(_0x283c42(0xfb))/0x9*(parseInt(_0x283c42(0xe4))/0xa);if(_0x1ad0d8===_0x29adcc)break;else _0x1783ef['push'](_0x1783ef['shift']());}catch(_0x46d10e){_0x1783ef['push'](_0x1783ef['shift']());}}}(_0x13eb,0x309e2));import{basename}from'path';import _0x417dad from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';function _0x13eb(){const _0x347c29=['/skills/','ranger','project','606248nmmNVG','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','314679CUvrms','16668mAQwOl','890KELJUL','user','FFxid','zdgSH','claude','\x20\x203.\x20Run:\x20ranger\x20skillup','FpgHC','2232111wnoxpR','/.claude/skills/','48123opwece','RvAen','fwgeH','CycPz','opencode','✓\x20Found\x20API\x20token','qkjFh','autoInstall','1450bazSVE','\x20--opencode','log','stdin','To\x20get\x20started:','LDJNZ','split','56320xPJXKd','qrvsr','AODVD','message','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','/.opencode/skills/','14BPGuDE','mRXTr','9012QkaPnM','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli'];_0x13eb=function(){return _0x347c29;};return _0x13eb();}import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';function _0x4208(_0x44d988,_0x47ab8b){_0x44d988=_0x44d988-0xe2;const _0x13ebf7=_0x13eb();let _0x420819=_0x13ebf7[_0x44d988];return _0x420819;}export async function skillup(_0x4300ac={}){const _0x3ada6a=_0x4208,_0x570e76={'mRXTr':_0x3ada6a(0x100),'jcWHt':function(_0x1147a2){return _0x1147a2();},'OAxjy':_0x3ada6a(0xe8),'PmPcY':function(_0x13a057,_0x16b651){return _0x13a057===_0x16b651;},'CycPz':_0x3ada6a(0x109),'xAAuR':'❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','qkjFh':_0x3ada6a(0xf4),'AODVD':function(_0x5831db){return _0x5831db();},'RvAen':'user','qrvsr':'list','mlKcy':'installLevel','fwgeH':'Where\x20should\x20skills\x20be\x20installed?','qSuPV':function(_0x3cb810,_0x18528d){return _0x3cb810 instanceof _0x18528d;},'FFxid':function(_0x444ac9,_0x2f47bd){return _0x444ac9>_0x2f47bd;},'zdgSH':function(_0x366caa,_0xeb2245){return _0x366caa===_0xeb2245;},'FpgHC':'user-level','pTqyx':'project-level','Pukcv':function(_0x4462be,_0x573ae1){return _0x4462be>_0x573ae1;},'LDJNZ':function(_0x2934ef,_0x2efb9b){return _0x2934ef===_0x2efb9b;},'wcMdr':'\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.'};console['log'](_0x3ada6a(0xf9));const _0x25f1d3=_0x4300ac['platform']??_0x570e76[_0x3ada6a(0xf2)],_0x89c4b9=await _0x570e76['jcWHt'](getToken);if(!_0x89c4b9){const _0x577720='4|1|5|2|3|0'[_0x3ada6a(0xea)]('|');let _0x2a3458=0x0;while(!![]){switch(_0x577720[_0x2a3458++]){case'0':return;case'1':console[_0x3ada6a(0xe6)](_0x570e76['OAxjy']);continue;case'2':console['log']('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x570e76['PmPcY'](_0x25f1d3,_0x570e76[_0x3ada6a(0x108)])?'\x20--opencode':'')+'\x20<your-api-token>');continue;case'3':console['log'](_0x3ada6a(0x101)+(_0x25f1d3==='opencode'?_0x3ada6a(0xe5):'')+'\x0a');continue;case'4':console['log'](_0x570e76['xAAuR']);continue;case'5':console[_0x3ada6a(0xe6)](_0x570e76[_0x3ada6a(0xe2)]);continue;}break;}}console['log'](_0x3ada6a(0x10a));const _0x3e2ca3=_0x570e76[_0x3ada6a(0xed)](getProjectRoot),_0x34e5cc=basename(_0x3e2ca3),_0x52edcc=_0x25f1d3===_0x570e76[_0x3ada6a(0x108)]?getOpencodeConfigDir(_0x570e76[_0x3ada6a(0x106)])+'/skills/':getClaudeConfigDir()+_0x3ada6a(0xf5),_0x2b477c=_0x25f1d3==='opencode'?_0x3e2ca3+_0x3ada6a(0xf0):_0x3e2ca3+_0x3ada6a(0x104),_0x2dea80=process[_0x3ada6a(0xe7)]['isTTY']&&process['stdout']['isTTY'];let _0x1a24ff;if(_0x4300ac['autoInstall'])_0x1a24ff=_0x4300ac[_0x3ada6a(0xe3)];else{if(_0x2dea80){const _0x16bd2f=await _0x417dad['prompt']([{'type':_0x570e76[_0x3ada6a(0xec)],'name':_0x570e76['mlKcy'],'message':_0x570e76[_0x3ada6a(0x107)],'choices':[{'name':'All\x20projects\x20('+_0x52edcc+')','value':_0x3ada6a(0xfd)},{'name':'This\x20project\x20only\x20('+_0x2b477c+')','value':'project'}]}]);_0x1a24ff=_0x16bd2f['installLevel'];}else _0x1a24ff=_0x3ada6a(0xf7),console[_0x3ada6a(0xe6)](_0x3ada6a(0xef)+_0x2b477c+')');}let _0x28c22a=0x0;const _0x4fa896=_0x570e76[_0x3ada6a(0xed)](getCurrentVersion);console['log']('\x0a📦\x20Installing\x20skills...\x0a');try{const _0x50c859=await installSkill(_0x3ada6a(0xf6),{'cliVersion':_0x4fa896,'level':_0x1a24ff,'platform':_0x25f1d3});_0x50c859&&_0x28c22a++;}catch(_0x1c0b45){console['warn']('\x20\x20Failed\x20to\x20install\x20ranger\x20skill:',_0x570e76['qSuPV'](_0x1c0b45,Error)?_0x1c0b45[_0x3ada6a(0xee)]:_0x1c0b45);}if(_0x570e76[_0x3ada6a(0xfe)](_0x28c22a,0x0)){const _0x3b6a09=_0x570e76[_0x3ada6a(0xff)](_0x1a24ff,'user')?_0x570e76[_0x3ada6a(0x102)]:_0x570e76['pTqyx'];console['log']('\x0a✅\x20Installed\x20'+_0x28c22a+'\x20'+_0x3b6a09+'\x20skill'+(_0x570e76['Pukcv'](_0x28c22a,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x4300ac['suppressUsage']&&(console['log']('To\x20use:'),_0x570e76[_0x3ada6a(0xe9)](_0x25f1d3,'opencode')?console[_0x3ada6a(0xe6)](_0x570e76['wcMdr']):console[_0x3ada6a(0xe6)]('\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'));}else console[_0x3ada6a(0xe6)]('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}
@@ -1 +1 @@
1
- const _0x3ea4f4=_0x3261;(function(_0x157bb2,_0x149e1d){const _0x3a0ef0=_0x3261,_0x234101=_0x157bb2();while(!![]){try{const _0x5d9459=-parseInt(_0x3a0ef0(0x156))/0x1*(parseInt(_0x3a0ef0(0x145))/0x2)+parseInt(_0x3a0ef0(0x101))/0x3*(-parseInt(_0x3a0ef0(0x14f))/0x4)+-parseInt(_0x3a0ef0(0xf7))/0x5+parseInt(_0x3a0ef0(0x116))/0x6*(-parseInt(_0x3a0ef0(0x143))/0x7)+parseInt(_0x3a0ef0(0x155))/0x8*(-parseInt(_0x3a0ef0(0x13d))/0x9)+parseInt(_0x3a0ef0(0xee))/0xa*(parseInt(_0x3a0ef0(0x147))/0xb)+parseInt(_0x3a0ef0(0xef))/0xc*(parseInt(_0x3a0ef0(0x130))/0xd);if(_0x5d9459===_0x149e1d)break;else _0x234101['push'](_0x234101['shift']());}catch(_0x5dbe12){_0x234101['push'](_0x234101['shift']());}}}(_0x4ff5,0x21f83));import{mkdir,writeFile}from'fs/promises';function _0x4ff5(){const _0x310c9d=['3434mZLyHL','scope','2620222Vmxblr','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','✓\x20Skipping\x20authentication\x20(--skip-auth)','skipped','UszOj','Validating\x20API\x20token...','\x0aTo\x20verify\x20with\x20a\x20browser,\x20set\x20','iAySA','8ZMiAxR','success','\x20for\x20explicit\x20profile\x20management).','skipChromium','install','...','8DVsEYP','157dDSZGf','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','allowInsecureLocalhost','ignore','skipAuth','TZeIH','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','gjYHz','\x20when\x20the\x20org\x27s\x20login','skills','IHcSx','BsZIG','OXvJa','bCYOw','10idQGEP','2835132cURzGR','executablePath','env','edSIh','DCADY','\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','✓\x20Authenticated\x20to\x20','1157785oKoNvM','stdout','zWhdO','\x20(fallback\x20version)','(and\x20','dSHDG','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','lqDNM','message','--with-deps','130671RNwOcA','XPQrt','/ranger:enable','mxgxC','npx','existing_token','version','plugin','local','DMPGc','win32','✓\x20Created\x20.ranger/.gitignore','status','OYYxY','prompt','\x0aIn\x20Claude\x20Code,\x20run\x20','\x0a\x20\x20config\x20uses\x20username+password).\x20Orgs\x20on\x20SSO/SAML/OAuth','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','playwright/package.json','✓\x20Exported\x20credentials\x20for\x20CI','RANGER_TEST_USERNAME','78RXolYP','\x0a❌\x20Profile\x20setup\x20failed:','log','inherit','PuUqc','rSlbU','error','✓\x20Playwright\x20Chromium\x20browser\x20found','user','✓\x20Created\x20~/.ranger/\x20directory','zGajF','\x0aInstalling\x20Chromium\x20browser...\x0a','method','close','⚠\x20No\x20git\x20repository\x20found.\x20Re-run\x20with\x20`--scope\x20user`\x20to\x20store\x20the\x20profile\x20at\x20~/.ranger/.','uzsYz','ranger\x20profile\x20add','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','fKaXQ','warn','trackPhaseStart','resolve','Authentication\x20failed:\x20','bwayW','ranger','platform','39JuqIyC',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','haYUj','uOkPp','opencode','auth','trackPhaseEnd','chromium','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','playwright@','You\x20can\x20install\x20it\x20manually\x20by\x20running:','url','\x20\x20npx\x20playwright@','1187874PbnTkg','BncsG','\x1b[0m','provided_token','GoFbM','nyiXl','47180wYuxAB','oYtHj'];_0x4ff5=function(){return _0x310c9d;};return _0x4ff5();}import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x3e7fb1 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerHomeDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';function _0x3261(_0x486c45,_0xb20c4c){_0x486c45=_0x486c45-0xe2;const _0x4ff577=_0x4ff5();let _0x32613b=_0x4ff577[_0x486c45];return _0x32613b;}import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url);export const PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2';const bold=_0x3c92ca=>'\x1b[1m'+_0x3c92ca+_0x3ea4f4(0x13f);export function getPlaywrightVersion(){const _0x550fd6=_0x3ea4f4;try{const _0x23e827=require[_0x550fd6(0x12b)](_0x550fd6(0x113)),_0x3ef905=require(_0x23e827);return _0x3ef905[_0x550fd6(0x107)];}catch{return null;}}export function installChromiumBinary(_0x2d3bd1,_0x827917=![]){const _0x41fe4f=_0x3ea4f4,_0x423535={'shAUi':_0x41fe4f(0x153),'tXdFX':'chromium','iAySA':_0x41fe4f(0x119),'KwMDV':_0x41fe4f(0x11c)};return new Promise((_0x4b9c83,_0xc7e75f)=>{const _0x183de=_0x41fe4f,_0x34e5de={'UszOj':function(_0x2c9934){return _0x2c9934();},'bUeLo':function(_0x550016,_0xe33811){return _0x550016(_0xe33811);}},_0x5609b9=[_0x183de(0x139)+_0x2d3bd1,_0x423535['shAUi'],..._0x827917?[_0x183de(0x100)]:[],_0x423535['tXdFX']],_0x512311=spawn(_0x183de(0x105),_0x5609b9,{'stdio':[_0x183de(0xe3),_0x423535[_0x183de(0x14e)],_0x423535[_0x183de(0x14e)]],'shell':process[_0x183de(0x12f)]===_0x183de(0x10b)});_0x512311['on'](_0x183de(0x123),_0x13a5b6=>{const _0x5d4d7c=_0x183de;_0x13a5b6===0x0?_0x34e5de[_0x5d4d7c(0x14b)](_0x4b9c83):_0xc7e75f(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x13a5b6));}),_0x512311['on'](_0x423535['KwMDV'],_0x556891=>{_0x34e5de['bUeLo'](_0xc7e75f,_0x556891);});});}export async function authenticate(_0x7e552e){const _0x41ab4b=_0x3ea4f4,_0x40c2ba={'BsZIG':_0x41ab4b(0x106),'jLHpm':function(_0x3c3703){return _0x3c3703();},'IHcSx':function(_0x2c95d4,_0x128245){return _0x2c95d4 instanceof _0x128245;}};if(!_0x7e552e){const _0x2cd25e=await getToken();if(_0x2cd25e){const _0x374812=await getCurrentUser(_0x2cd25e);if(_0x374812[_0x41ab4b(0x150)])return console[_0x41ab4b(0x118)]('✓\x20Already\x20authenticated\x20to\x20'+_0x374812[_0x41ab4b(0x11e)]['organizationName']),{'token':_0x2cd25e,'method':_0x40c2ba[_0x41ab4b(0xeb)]};}try{_0x7e552e=await _0x40c2ba['jLHpm'](runDeviceAuthFlow);}catch(_0x2f4149){throw new Error(_0x41ab4b(0x12c)+(_0x40c2ba[_0x41ab4b(0xea)](_0x2f4149,Error)?_0x2f4149['message']:_0x2f4149));}const _0x423fbf=await getCurrentUser(_0x7e552e);if(!_0x423fbf['success'])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x423fbf['error']);return console['log'](_0x41ab4b(0xf6)+_0x423fbf['user']['organizationName']),{'token':_0x7e552e,'method':'device_auth'};}console['log'](_0x41ab4b(0x14c));const _0x46a98a=await getCurrentUser(_0x7e552e);if(!_0x46a98a[_0x41ab4b(0x150)]){if(_0x46a98a[_0x41ab4b(0x10d)])throw new Error('Authentication\x20failed:\x20'+_0x46a98a['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error(_0x41ab4b(0x157)+_0x46a98a[_0x41ab4b(0x11c)]+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console['log'](_0x41ab4b(0xf6)+_0x46a98a['user']['organizationName']),await storeToken(_0x7e552e),console[_0x41ab4b(0x118)](process[_0x41ab4b(0xf1)]['GITHUB_ENV']?_0x41ab4b(0x114):'✓\x20Stored\x20credentials\x20locally'),{'token':_0x7e552e,'method':_0x41ab4b(0x140)};}export async function ensureRangerDir(_0x37c4a6){const _0x26a46c=_0x3ea4f4,_0x4d5a6f={'YxdAQ':'✓\x20~/.ranger/\x20directory\x20already\x20exists'};void _0x37c4a6;const _0x39bde5=getRangerHomeDir();return!existsSync(_0x39bde5)?(await mkdir(_0x39bde5,{'recursive':!![]}),console[_0x26a46c(0x118)](_0x26a46c(0x11f)),{'path':_0x39bde5,'installed':!![]}):(console['log'](_0x4d5a6f['YxdAQ']),{'path':_0x39bde5,'installed':![]});}export async function ensureChromium(_0x5bbbfd=![]){const _0x3a5843=_0x3ea4f4,_0x3339bb={'OXvJa':function(_0x2f4ce3,_0xd20ad6){return _0x2f4ce3(_0xd20ad6);},'gjYHz':function(_0x27b2a5,_0x5c3cf7){return _0x27b2a5??_0x5c3cf7;},'mxgxC':'confirm','zGajF':_0x3a5843(0xfa),'NVpRL':function(_0xe3e093,_0x6b4345,_0x169591){return _0xe3e093(_0x6b4345,_0x169591);},'TZeIH':_0x3a5843(0x158),'GoFbM':function(_0x3500e9,_0x51457c){return _0x3500e9 instanceof _0x51457c;},'fKaXQ':'\x0a⚠\x20Skipping\x20Chromium\x20installation.'};let _0x3e04e8=![];try{const _0x13f3f1=chromium[_0x3a5843(0xf0)]();_0x3e04e8=_0x3339bb[_0x3a5843(0xec)](existsSync,_0x13f3f1);}catch{_0x3e04e8=![];}if(_0x3e04e8)return console['log'](_0x3a5843(0x11d)),![];const _0x50bc93=getPlaywrightVersion(),_0xbfe409=_0x3339bb[_0x3a5843(0xe7)](_0x50bc93,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x3b0959=!_0x50bc93,_0x1fb20f=process['stdin']['isTTY']&&process[_0x3a5843(0xf8)]['isTTY'];let _0x12280e=!![];if(_0x1fb20f){const {install:_0x29c75e}=await _0x3e7fb1[_0x3a5843(0x10f)]([{'type':_0x3339bb[_0x3a5843(0x104)],'name':_0x3a5843(0x153),'message':_0x3b0959?_0x3a5843(0xfd)+_0xbfe409+'\x20now?':'The\x20required\x20version\x20('+_0xbfe409+_0x3a5843(0x131),'default':!![]}]);_0x12280e=_0x29c75e;}else console['log'](_0x3a5843(0xf5)+_0xbfe409+(_0x3b0959?_0x3339bb[_0x3a5843(0x120)]:'')+_0x3a5843(0x154));if(_0x12280e){console['log'](_0x3a5843(0x121));try{await _0x3339bb['NVpRL'](installChromiumBinary,_0xbfe409,_0x5bbbfd),console[_0x3a5843(0x118)](_0x3339bb[_0x3a5843(0xe5)]);}catch(_0x5393e3){console['error']('\x0a❌\x20Failed\x20to\x20install\x20Chromium:',_0x3339bb[_0x3a5843(0x141)](_0x5393e3,Error)?_0x5393e3['message']:_0x5393e3),console[_0x3a5843(0x118)](_0x3a5843(0x13a)),console[_0x3a5843(0x118)](_0x3a5843(0x13c)+_0xbfe409+'\x20install\x20chromium');}}else console[_0x3a5843(0x118)](_0x3339bb[_0x3a5843(0x128)]),console['log'](_0x3a5843(0xe6)),console['log'](_0x3a5843(0x13c)+_0xbfe409+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x35a461){const _0x3d282c=_0x3ea4f4,_0xae0e81={'avOEe':function(_0x2cfc7c,_0x74b70,_0x58dcd0){return _0x2cfc7c(_0x74b70,_0x58dcd0);},'sNEju':'.gitignore','hYjbu':_0x3d282c(0x10c)},_0x51bf0a=_0xae0e81['avOEe'](join,_0x35a461,_0xae0e81['sNEju']),_0x471c10=_0x3d282c(0xf4);await _0xae0e81['avOEe'](writeFile,_0x51bf0a,_0x471c10),console[_0x3d282c(0x118)](_0xae0e81['hYjbu']);}export async function ensureLocalEnv(_0xdd1910,_0x3a456e){const _0x526833=_0x3ea4f4,_0x33c352={'xpfNa':function(_0x21d520){return _0x21d520();},'DKQiX':function(_0x24d837,_0x4151f3){return _0x24d837!==_0x4151f3;},'DCADY':_0x526833(0x11e),'dSHDG':_0x526833(0x124),'zWhdO':_0x526833(0x109),'ThakB':function(_0x235eff,_0x3006c0,_0x2767b,_0x20d170){return _0x235eff(_0x3006c0,_0x2767b,_0x20d170);},'pQBfS':function(_0x24535a,_0x53c314){return _0x24535a instanceof _0x53c314;}};if(!_0x33c352['xpfNa'](findGitRoot)&&_0x33c352['DKQiX'](_0xdd1910?.[_0x526833(0x146)],_0x33c352['DCADY']))return console['log'](_0x33c352[_0x526833(0xfc)]),{'ready':![],'skipped':!![]};const _0x4e3bde=_0xdd1910?.[_0x526833(0x146)]===_0x33c352[_0x526833(0xf3)]?_0x33c352['xpfNa'](getRangerHomeDir):undefined;if(findExistingEnv(_0x33c352[_0x526833(0xf9)],{'locations':[_0x526833(0x109)],'rangerDir':_0x4e3bde}))return console['log']('✓\x20Local\x20profile\x20already\x20exists'),{'ready':!![],'skipped':![]};try{return await _0x33c352['ThakB'](addEnv,_0x526833(0x109),{'url':_0xdd1910?.[_0x526833(0x13b)],'force':_0xdd1910?.['force'],'allowInsecureLocalhost':_0xdd1910?.[_0x526833(0xe2)],'scope':_0xdd1910?.[_0x526833(0x146)]},_0x3a456e),{'ready':!![],'skipped':![]};}catch(_0x311ef9){return console[_0x526833(0x11c)](_0x526833(0x117),_0x33c352['pQBfS'](_0x311ef9,Error)?_0x311ef9[_0x526833(0xff)]:_0x311ef9),{'ready':![],'skipped':![]};}}export async function start(_0x3d2892,_0x302cac,_0x76c357){const _0x420f30=_0x3ea4f4,_0x4180b1={'XPQrt':'\x0a🚀\x20Ranger\x20Setup\x0a','BncsG':function(_0x1f286e){return _0x1f286e();},'uzsYz':'user','irOXO':_0x420f30(0x149),'bwayW':'auth','DMPGc':function(_0x43912e,_0x39b33a){return _0x43912e(_0x39b33a);},'UwIwK':'chromium','mEoqU':'\x0a✅\x20Ranger\x20setup\x20complete!\x0a','lqDNM':'plugin','haYUj':_0x420f30(0xe9),'nyiXl':_0x420f30(0x134),'bCYOw':'\x0aSkipping\x20profile\x20setup\x20(--skip-auth).\x20Run\x20`ranger\x20setup`\x20with\x20auth\x20to\x20add\x20a\x20profile\x20later.\x0a','uOkPp':'profile','PuUqc':function(_0x2ecc6e,_0x395c86){return _0x2ecc6e+_0x395c86;},'rSlbU':function(_0x5323d2,_0x2b877d){return _0x5323d2+_0x2b877d;},'EikKO':_0x420f30(0x115),'OYYxY':function(_0x56c179,_0x501e5c){return _0x56c179(_0x501e5c);},'oYtHj':'\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','GHesk':_0x420f30(0x148),'edSIh':_0x420f30(0x103),'buXJb':function(_0x1cc4ae,_0x4e8691){return _0x1cc4ae+_0x4e8691;}};console['log'](_0x4180b1[_0x420f30(0x102)]),_0x302cac={..._0x302cac,'scope':'user'};const _0x26cc49=!existsSync(_0x4180b1['BncsG'](getRangerHomeDir));await ensureRangerDir(_0x4180b1[_0x420f30(0x125)]);if(_0x302cac?.[_0x420f30(0xe4)])console['log'](_0x4180b1['irOXO']),_0x76c357?.['trackPhaseEnd'](_0x4180b1[_0x420f30(0x12d)],{'isFirstRun':_0x26cc49,'method':_0x420f30(0x14a)});else{_0x76c357?.[_0x420f30(0x12a)](_0x420f30(0x135));const _0x577e8a=await _0x4180b1[_0x420f30(0x10a)](authenticate,_0x3d2892);_0x76c357?.['trackPhaseEnd'](_0x4180b1['bwayW'],{'isFirstRun':_0x26cc49,'method':_0x577e8a[_0x420f30(0x122)]});}_0x76c357?.[_0x420f30(0x12a)](_0x420f30(0x137));_0x302cac?.[_0x420f30(0x152)]?console[_0x420f30(0x118)]('✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)'):await _0x4180b1[_0x420f30(0x10a)](ensureChromium,_0x302cac?.['withDeps']);_0x76c357?.['trackPhaseEnd'](_0x4180b1['UwIwK'],{'isFirstRun':_0x26cc49,'skipped':!!_0x302cac?.['skipChromium']}),console['log'](_0x4180b1['mEoqU']);const _0x28317c=_0x302cac?.[_0x420f30(0x146)],_0x3b8785=_0x302cac?.[_0x420f30(0x134)]??![];let _0x592658=null;_0x3b8785?(_0x76c357?.['trackPhaseStart'](_0x420f30(0x108)),_0x592658=await _0x4180b1['DMPGc'](ensureOpencodePluginConfig,_0x28317c),_0x76c357?.[_0x420f30(0x136)](_0x4180b1[_0x420f30(0xfe)],{'isFirstRun':_0x26cc49,'opencode':!![]})):(_0x76c357?.[_0x420f30(0x12a)](_0x4180b1[_0x420f30(0xfe)]),await _0x4180b1['DMPGc'](ensureClaudePlugin,_0x28317c),_0x76c357?.[_0x420f30(0x136)](_0x4180b1[_0x420f30(0xfe)],{'isFirstRun':_0x26cc49}));if(_0x3b8785&&_0x592658){_0x76c357?.['trackPhaseStart'](_0x4180b1[_0x420f30(0x132)]);try{await installSkill(_0x420f30(0x12e),{'level':_0x592658['scope'],'cliVersion':_0x4180b1[_0x420f30(0x13e)](getCurrentVersion),'platform':_0x4180b1[_0x420f30(0x142)]}),_0x76c357?.['trackPhaseEnd']('skills',{'isFirstRun':_0x26cc49,'opencode':!![]});}catch(_0x3e07e3){console[_0x420f30(0x129)]('\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:',_0x3e07e3 instanceof Error?_0x3e07e3['message']:_0x3e07e3),_0x76c357?.[_0x420f30(0x136)](_0x4180b1[_0x420f30(0x132)],{'isFirstRun':_0x26cc49,'opencode':!![],'failed':!![]});}}else _0x76c357?.[_0x420f30(0x12a)]('skills'),await ensureClaudeSkills(_0x28317c),_0x76c357?.[_0x420f30(0x136)]('skills',{'isFirstRun':_0x26cc49});if(_0x302cac?.[_0x420f30(0xe4)])console[_0x420f30(0x118)](_0x4180b1[_0x420f30(0xed)]);else{if(_0x302cac?.[_0x420f30(0x13b)]){_0x76c357?.[_0x420f30(0x12a)](_0x4180b1[_0x420f30(0x133)]);const _0x3505d0=await ensureLocalEnv({'url':_0x302cac['url'],'force':_0x302cac?.['force'],'allowInsecureLocalhost':_0x302cac?.[_0x420f30(0xe2)],'scope':_0x4180b1['uzsYz']},_0x76c357);_0x76c357?.['trackPhaseEnd'](_0x4180b1[_0x420f30(0x133)],{'isFirstRun':_0x26cc49,'profileReady':_0x3505d0['ready'],'userSkipped':_0x3505d0['skipped']});}else console['log'](_0x4180b1[_0x420f30(0x11a)](_0x4180b1[_0x420f30(0x11b)](_0x420f30(0x14d)+_0x4180b1['DMPGc'](bold,_0x4180b1['EikKO'])+'\x20',_0x420f30(0xfb)+_0x4180b1[_0x420f30(0x10e)](bold,'RANGER_TEST_PASSWORD')+_0x420f30(0xe8))+_0x420f30(0x111),'\x20may\x20need\x20a\x20one-time\x20headed\x20login\x20instead\x20—')+'\x0a\x20\x20your\x20org\x27s\x20auth\x20config\x20drives\x20which\x20flow\x20runs.'),console[_0x420f30(0x118)]('\x20\x20(or\x20use\x20'+bold(_0x420f30(0x126))+_0x420f30(0x151));}if(_0x3b8785)console['log'](_0x4180b1[_0x420f30(0x144)]),console[_0x420f30(0x118)]('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console['log'](_0x4180b1['GHesk']),console[_0x420f30(0x118)](_0x420f30(0x138));else{const _0x3f1e9f=_0x4180b1[_0x420f30(0x10e)](bold,_0x4180b1[_0x420f30(0xf2)]);console[_0x420f30(0x118)](_0x4180b1['buXJb'](_0x420f30(0x110)+_0x3f1e9f+'\x20and\x20prompt\x20the\x20coding',_0x420f30(0x112))+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'+_0x420f30(0x127));}}
1
+ const _0x17d1d2=_0x5e30;(function(_0x133db8,_0x4b522e){const _0x51da45=_0x5e30,_0x451f2e=_0x133db8();while(!![]){try{const _0x25d53e=-parseInt(_0x51da45(0x124))/0x1+parseInt(_0x51da45(0x11d))/0x2*(-parseInt(_0x51da45(0x104))/0x3)+parseInt(_0x51da45(0x125))/0x4+-parseInt(_0x51da45(0x12f))/0x5*(-parseInt(_0x51da45(0xd5))/0x6)+parseInt(_0x51da45(0x102))/0x7+-parseInt(_0x51da45(0xd8))/0x8+parseInt(_0x51da45(0xf6))/0x9;if(_0x25d53e===_0x4b522e)break;else _0x451f2e['push'](_0x451f2e['shift']());}catch(_0x3bc3df){_0x451f2e['push'](_0x451f2e['shift']());}}}(_0xf18b,0x993f8));import{mkdir,writeFile}from'fs/promises';function _0xf18b(){const _0x4faa91=['ihkhh','AZLCU','1488487sjCACf','lMziH','21UvZnCj','\x0a\x20\x20(opens\x20a\x20browser\x20so\x20you\x20can\x20log\x20in\x20once)','user','skipped','QlcMT','error','deHOs','inherit','trackPhaseEnd','--with-deps','.gitignore','nIdrF','ranger\x20setup\x20--scope=','Authentication\x20failed:\x20','chromium','message','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','ready','device_auth','organizationName','project-scope\x20setup\x20obsolete).\x20Drop\x20the\x20--scope\x20flag\x20or\x20pass\x20--scope=user.','executablePath','VGiem','✓\x20Stored\x20credentials\x20locally','wbzgz','87692JiwcYd','playwright@','opencode','\x0aSkipping\x20profile\x20setup\x20(--skip-auth).\x20Run\x20`ranger\x20setup`\x20with\x20auth\x20to\x20add\x20a\x20profile\x20later.\x0a','\x0aIn\x20Claude\x20Code,\x20run\x20','plugin','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','771695tzIOoD','777076HxtRRG','force','vSAwY','✓\x20Created\x20.ranger/.gitignore','NQssE','✓\x20Authenticated\x20to\x20','owlvL','Installation\x20failed\x20with\x20exit\x20code\x20','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','install','336130pGYwCQ','playwright/package.json','log','npx','✓\x20Playwright\x20Chromium\x20browser\x20found','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','WfPMA','\x0a\x0aFor\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:','\x20install\x20chromium','\x0a⚠\x20Skipping\x20Chromium\x20installation.','skipChromium','18agOWiJ','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','\x0a❌\x20Failed\x20to\x20install\x20Chromium:','1161616tQUzku','version','\x1b[0m','\x0a\x20\x20','✓\x20Exported\x20credentials\x20for\x20CI','⚠\x20No\x20git\x20repository\x20found.\x20Re-run\x20with\x20`--scope\x20user`\x20to\x20store\x20the\x20profile\x20at\x20~/.ranger/.',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','skills','win32','lFJgH','sYXOh','1.58.2','ICyof','success','AXmWU','/ranger:enable','vBHqZ','trackPhaseStart','scope','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','WjTco','\x0aTo\x20set\x20up\x20a\x20profile\x20for\x20your\x20app,\x20run:','\x20(fallback\x20version)','jEZAn','auth','\x20is\x20no\x20longer\x20supported.\x20','✓\x20Already\x20authenticated\x20to\x20','\x1b[1m','prompt','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','11186415GhmrXs','bJZDt','GvhhT','OoGsb','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','ranger','skipAuth','status','local','isTTY'];_0xf18b=function(){return _0x4faa91;};return _0xf18b();}import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x77a804 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerHomeDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';function _0x5e30(_0x2bac6f,_0x3f1330){_0x2bac6f=_0x2bac6f-0xcd;const _0xf18b1d=_0xf18b();let _0x5e3086=_0xf18b1d[_0x2bac6f];return _0x5e3086;}import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url);export const PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION=_0x17d1d2(0xe3);const bold=_0x4e722f=>_0x17d1d2(0xf3)+_0x4e722f+_0x17d1d2(0xda);export function getPlaywrightVersion(){const _0x5008d6=_0x17d1d2,_0x3e3a0b={'MiYZo':_0x5008d6(0x130),'EKNpJ':function(_0x20e58d,_0x41c664){return _0x20e58d(_0x41c664);}};try{const _0x6b9b99=require['resolve'](_0x3e3a0b['MiYZo']),_0x3f447a=_0x3e3a0b['EKNpJ'](require,_0x6b9b99);return _0x3f447a[_0x5008d6(0xd9)];}catch{return null;}}export function installChromiumBinary(_0xedf65e,_0x3a4b09=![]){const _0xc988ca=_0x17d1d2,_0x68b827={'WfPMA':function(_0x340871,_0x501e9a){return _0x340871===_0x501e9a;},'owlvL':function(_0xdb00b,_0x16d0b9){return _0xdb00b(_0x16d0b9);},'vSAwY':'install','sYXOh':_0xc988ca(0x10b),'wbzgz':function(_0x24992c,_0x3bd439){return _0x24992c===_0x3bd439;}};return new Promise((_0x1e62c5,_0x23ccb1)=>{const _0x370cd3=_0xc988ca,_0x1a00b5={'WjTco':function(_0x2559fc,_0x1feef8){const _0x14869b=_0x5e30;return _0x68b827[_0x14869b(0xd0)](_0x2559fc,_0x1feef8);},'deHOs':function(_0x5823be,_0x4b3265){const _0x534712=_0x5e30;return _0x68b827[_0x534712(0x12b)](_0x5823be,_0x4b3265);}},_0x4a9f60=[_0x370cd3(0x11e)+_0xedf65e,_0x68b827[_0x370cd3(0x127)],..._0x3a4b09?[_0x370cd3(0x10d)]:[],'chromium'],_0x3abaee=spawn(_0x370cd3(0xcd),_0x4a9f60,{'stdio':['ignore',_0x68b827[_0x370cd3(0xe2)],_0x68b827[_0x370cd3(0xe2)]],'shell':_0x68b827[_0x370cd3(0x11c)](process['platform'],_0x370cd3(0xe0))});_0x3abaee['on']('close',_0x96d0e2=>{const _0x5b6477=_0x370cd3;_0x1a00b5[_0x5b6477(0xec)](_0x96d0e2,0x0)?_0x1e62c5():_0x23ccb1(new Error(_0x5b6477(0x12c)+_0x96d0e2));}),_0x3abaee['on'](_0x370cd3(0x109),_0x5c9fc8=>{const _0x18cbf0=_0x370cd3;_0x1a00b5[_0x18cbf0(0x10a)](_0x23ccb1,_0x5c9fc8);});});}export async function authenticate(_0x2611cf){const _0x15eee1=_0x17d1d2,_0xd2330={'utHgT':function(_0x5892d6){return _0x5892d6();},'wvYQb':'existing_token','wrfvj':function(_0x4d7258,_0x56889c){return _0x4d7258 instanceof _0x56889c;},'gcAPD':_0x15eee1(0x116),'RPtAq':function(_0x1052b0,_0x22c4b1){return _0x1052b0(_0x22c4b1);},'nvVKY':'provided_token'};if(!_0x2611cf){const _0x9906a9=await _0xd2330['utHgT'](getToken);if(_0x9906a9){const _0x3c2be6=await getCurrentUser(_0x9906a9);if(_0x3c2be6['success'])return console[_0x15eee1(0x131)](_0x15eee1(0xf2)+_0x3c2be6['user'][_0x15eee1(0x117)]),{'token':_0x9906a9,'method':_0xd2330['wvYQb']};}try{_0x2611cf=await runDeviceAuthFlow();}catch(_0x39bae7){throw new Error(_0x15eee1(0x111)+(_0xd2330['wrfvj'](_0x39bae7,Error)?_0x39bae7['message']:_0x39bae7));}const _0x537db4=await getCurrentUser(_0x2611cf);if(!_0x537db4['success'])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x537db4[_0x15eee1(0x109)]);return console[_0x15eee1(0x131)](_0x15eee1(0x12a)+_0x537db4['user'][_0x15eee1(0x117)]),{'token':_0x2611cf,'method':_0xd2330['gcAPD']};}console['log']('Validating\x20API\x20token...');const _0x297ab1=await _0xd2330['RPtAq'](getCurrentUser,_0x2611cf);if(!_0x297ab1[_0x15eee1(0xe5)]){if(_0x297ab1[_0x15eee1(0xfd)])throw new Error(_0x15eee1(0x111)+_0x297ab1['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error(_0x15eee1(0xf5)+_0x297ab1['error']+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x15eee1(0x131)](_0x15eee1(0x12a)+_0x297ab1['user'][_0x15eee1(0x117)]),await storeToken(_0x2611cf),console[_0x15eee1(0x131)](process['env']['GITHUB_ENV']?_0x15eee1(0xdc):_0x15eee1(0x11b)),{'token':_0x2611cf,'method':_0xd2330['nvVKY']};}export async function ensureRangerDir(_0x37046b){const _0x2aa609=_0x17d1d2,_0x3ccb9e={'YDqct':function(_0x26ec74,_0x582f33,_0x35434a){return _0x26ec74(_0x582f33,_0x35434a);}};void _0x37046b;const _0x174b4f=getRangerHomeDir();return!existsSync(_0x174b4f)?(await _0x3ccb9e['YDqct'](mkdir,_0x174b4f,{'recursive':!![]}),console['log']('✓\x20Created\x20~/.ranger/\x20directory'),{'path':_0x174b4f,'installed':!![]}):(console[_0x2aa609(0x131)]('✓\x20~/.ranger/\x20directory\x20already\x20exists'),{'path':_0x174b4f,'installed':![]});}export async function ensureChromium(_0x5a4627=![]){const _0x52efea=_0x17d1d2,_0x3a06ed={'wWcJi':function(_0x555f16,_0x429fc0){return _0x555f16(_0x429fc0);},'AXmWU':function(_0x95956e,_0x4c86fa){return _0x95956e??_0x4c86fa;},'PYiDI':'confirm','uzdhm':'\x0aInstalling\x20Chromium\x20browser...\x0a','PcmXX':function(_0x50365b,_0x4132b4,_0xa676ed){return _0x50365b(_0x4132b4,_0xa676ed);},'NQssE':'You\x20can\x20install\x20it\x20manually\x20by\x20running:'};let _0x231861=![];try{const _0x53c44c=chromium[_0x52efea(0x119)]();_0x231861=_0x3a06ed['wWcJi'](existsSync,_0x53c44c);}catch{_0x231861=![];}if(_0x231861)return console['log'](_0x52efea(0xce)),![];const _0x2f7687=getPlaywrightVersion(),_0x2b142b=_0x3a06ed[_0x52efea(0xe6)](_0x2f7687,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x1af8d6=!_0x2f7687,_0x189ab7=process['stdin'][_0x52efea(0xff)]&&process['stdout']['isTTY'];let _0x53a038=!![];if(_0x189ab7){const {install:_0x3c90c0}=await _0x77a804[_0x52efea(0xf4)]([{'type':_0x3a06ed['PYiDI'],'name':_0x52efea(0x12e),'message':_0x1af8d6?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x2b142b+'\x20now?':'The\x20required\x20version\x20('+_0x2b142b+_0x52efea(0xde),'default':!![]}]);_0x53a038=_0x3c90c0;}else console[_0x52efea(0x131)](_0x52efea(0xcf)+_0x2b142b+(_0x1af8d6?_0x52efea(0xee):'')+'...');if(_0x53a038){console['log'](_0x3a06ed['uzdhm']);try{await _0x3a06ed['PcmXX'](installChromiumBinary,_0x2b142b,_0x5a4627),console[_0x52efea(0x131)]('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x36ca84){console[_0x52efea(0x109)](_0x52efea(0xd7),_0x36ca84 instanceof Error?_0x36ca84[_0x52efea(0x113)]:_0x36ca84),console[_0x52efea(0x131)](_0x3a06ed[_0x52efea(0x129)]),console[_0x52efea(0x131)]('\x20\x20npx\x20playwright@'+_0x2b142b+'\x20install\x20chromium');}}else console[_0x52efea(0x131)](_0x52efea(0xd3)),console[_0x52efea(0x131)](_0x52efea(0xd6)),console['log']('\x20\x20npx\x20playwright@'+_0x2b142b+_0x52efea(0xd2));return!![];}export async function writeRangerGitignore(_0x1fb91f){const _0x5b24b3=_0x17d1d2,_0x29b672={'QlcMT':function(_0x19c9e8,_0x53deb9,_0x4b40b6){return _0x19c9e8(_0x53deb9,_0x4b40b6);},'ciQfB':_0x5b24b3(0x128)},_0x18c6a7=join(_0x1fb91f,_0x5b24b3(0x10e)),_0x2cd1be='\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a';await _0x29b672[_0x5b24b3(0x108)](writeFile,_0x18c6a7,_0x2cd1be),console['log'](_0x29b672['ciQfB']);}export async function ensureLocalEnv(_0x138311,_0x32893f){const _0x2e69aa=_0x17d1d2,_0x1a78e1={'EMMgn':_0x2e69aa(0x106),'qOwSZ':_0x2e69aa(0xdd),'iobjt':function(_0x1e8ebf,_0x3a1a1e,_0xe67d00){return _0x1e8ebf(_0x3a1a1e,_0xe67d00);},'GvhhT':'✓\x20Local\x20profile\x20already\x20exists','ICyof':function(_0x2bbfe0,_0x4d891c,_0x34e530,_0x12ad91){return _0x2bbfe0(_0x4d891c,_0x34e530,_0x12ad91);},'HxlyX':_0x2e69aa(0xfe),'eDnhc':'\x0a❌\x20Profile\x20setup\x20failed:','AdtpF':function(_0x2619a8,_0xa5bff9){return _0x2619a8 instanceof _0xa5bff9;}};if(!findGitRoot()&&_0x138311?.['scope']!==_0x1a78e1['EMMgn'])return console['log'](_0x1a78e1['qOwSZ']),{'ready':![],'skipped':!![]};const _0x1b3abe=_0x138311?.['scope']===_0x1a78e1['EMMgn']?getRangerHomeDir():undefined;if(_0x1a78e1['iobjt'](findExistingEnv,'local',{'locations':[_0x2e69aa(0xfe)],'rangerDir':_0x1b3abe}))return console['log'](_0x1a78e1[_0x2e69aa(0xf8)]),{'ready':!![],'skipped':![]};try{return await _0x1a78e1[_0x2e69aa(0xe4)](addEnv,_0x1a78e1['HxlyX'],{'url':_0x138311?.['url'],'force':_0x138311?.[_0x2e69aa(0x126)],'allowInsecureLocalhost':_0x138311?.['allowInsecureLocalhost'],'scope':_0x138311?.['scope']},_0x32893f),{'ready':!![],'skipped':![]};}catch(_0x12b74a){return console[_0x2e69aa(0x109)](_0x1a78e1['eDnhc'],_0x1a78e1['AdtpF'](_0x12b74a,Error)?_0x12b74a[_0x2e69aa(0x113)]:_0x12b74a),{'ready':![],'skipped':![]};}}export async function start(_0x389ea5,_0x14ec4c,_0x54234e){const _0x6e91e6=_0x17d1d2,_0x285fd1={'nIdrF':'\x0a🚀\x20Ranger\x20Setup\x0a','AZLCU':function(_0x18abca,_0x113f2b){return _0x18abca!==_0x113f2b;},'RFEhz':function(_0x3888d6,_0x3a6afd){return _0x3888d6+_0x3a6afd;},'lFJgH':function(_0x54142f,_0x41da4e){return _0x54142f(_0x41da4e);},'NdsnN':'✓\x20Skipping\x20authentication\x20(--skip-auth)','GdyCK':'skipped','bJZDt':_0x6e91e6(0x122),'ihkhh':function(_0x40ca2d,_0x31234e){return _0x40ca2d&&_0x31234e;},'vBHqZ':'skills','JEFDa':_0x6e91e6(0xfb),'VGiem':function(_0x2ebc00){return _0x2ebc00();},'yzsYT':_0x6e91e6(0x11f),'lMziH':function(_0xf59cf,_0x2c2f9b){return _0xf59cf instanceof _0x2c2f9b;},'VCuJM':'user','gZcvC':'profile','OoGsb':function(_0xed8e3a,_0x526927){return _0xed8e3a+_0x526927;},'seGlh':function(_0x351d3f,_0x7cd464){return _0x351d3f+_0x7cd464;},'SskGZ':'ranger\x20profile\x20add\x20<name>','zbOGn':_0x6e91e6(0xfa),'jEZAn':'with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','oryzf':function(_0x1ec5fd,_0x32c60a){return _0x1ec5fd+_0x32c60a;}};console['log'](_0x285fd1[_0x6e91e6(0x10f)]);_0x285fd1[_0x6e91e6(0x101)](_0x14ec4c?.['scope'],undefined)&&_0x285fd1[_0x6e91e6(0x101)](_0x14ec4c['scope'],_0x6e91e6(0x106))&&(console[_0x6e91e6(0x109)](_0x285fd1['RFEhz'](_0x6e91e6(0x110)+String(_0x14ec4c[_0x6e91e6(0xea)])+_0x6e91e6(0xf1),'Setup\x20always\x20installs\x20at\x20user\x20scope\x20now\x20(cloud\x20profiles\x20make\x20')+_0x6e91e6(0x118)),process['exit'](0x1));_0x14ec4c={..._0x14ec4c,'scope':_0x6e91e6(0x106)};const _0x404117=!existsSync(getRangerHomeDir());await _0x285fd1[_0x6e91e6(0xe1)](ensureRangerDir,_0x6e91e6(0x106));if(_0x14ec4c?.[_0x6e91e6(0xfc)])console[_0x6e91e6(0x131)](_0x285fd1['NdsnN']),_0x54234e?.['trackPhaseEnd'](_0x6e91e6(0xf0),{'isFirstRun':_0x404117,'method':_0x285fd1['GdyCK']});else{_0x54234e?.[_0x6e91e6(0xe9)]('auth');const _0x29f7e8=await authenticate(_0x389ea5);_0x54234e?.[_0x6e91e6(0x10c)]('auth',{'isFirstRun':_0x404117,'method':_0x29f7e8['method']});}_0x54234e?.['trackPhaseStart']('chromium');_0x14ec4c?.[_0x6e91e6(0xd4)]?console['log'](_0x6e91e6(0x114)):await ensureChromium(_0x14ec4c?.['withDeps']);_0x54234e?.[_0x6e91e6(0x10c)](_0x6e91e6(0x112),{'isFirstRun':_0x404117,'skipped':!!_0x14ec4c?.['skipChromium']}),console[_0x6e91e6(0x131)](_0x6e91e6(0xeb));const _0x1ae43d=_0x14ec4c?.['scope'],_0x57ca3e=_0x14ec4c?.['opencode']??![];let _0x51859d=null;_0x57ca3e?(_0x54234e?.['trackPhaseStart'](_0x285fd1[_0x6e91e6(0xf7)]),_0x51859d=await _0x285fd1['lFJgH'](ensureOpencodePluginConfig,_0x1ae43d),_0x54234e?.['trackPhaseEnd'](_0x285fd1[_0x6e91e6(0xf7)],{'isFirstRun':_0x404117,'opencode':!![]})):(_0x54234e?.[_0x6e91e6(0xe9)]('plugin'),await ensureClaudePlugin(_0x1ae43d),_0x54234e?.[_0x6e91e6(0x10c)](_0x285fd1[_0x6e91e6(0xf7)],{'isFirstRun':_0x404117}));if(_0x285fd1[_0x6e91e6(0x100)](_0x57ca3e,_0x51859d)){_0x54234e?.['trackPhaseStart'](_0x285fd1['vBHqZ']);try{await installSkill(_0x285fd1['JEFDa'],{'level':_0x51859d[_0x6e91e6(0xea)],'cliVersion':_0x285fd1[_0x6e91e6(0x11a)](getCurrentVersion),'platform':_0x285fd1['yzsYT']}),_0x54234e?.[_0x6e91e6(0x10c)](_0x285fd1[_0x6e91e6(0xe8)],{'isFirstRun':_0x404117,'opencode':!![]});}catch(_0x187697){console['warn']('\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:',_0x285fd1[_0x6e91e6(0x103)](_0x187697,Error)?_0x187697['message']:_0x187697),_0x54234e?.[_0x6e91e6(0x10c)](_0x285fd1[_0x6e91e6(0xe8)],{'isFirstRun':_0x404117,'opencode':!![],'failed':!![]});}}else _0x54234e?.['trackPhaseStart'](_0x6e91e6(0xdf)),await ensureClaudeSkills(_0x1ae43d),_0x54234e?.[_0x6e91e6(0x10c)]('skills',{'isFirstRun':_0x404117});if(_0x14ec4c?.[_0x6e91e6(0xfc)])console[_0x6e91e6(0x131)](_0x6e91e6(0x120));else{if(_0x14ec4c?.['url']){_0x54234e?.['trackPhaseStart']('profile');const _0x8d2c85=await ensureLocalEnv({'url':_0x14ec4c['url'],'force':_0x14ec4c?.['force'],'allowInsecureLocalhost':_0x14ec4c?.['allowInsecureLocalhost'],'scope':_0x285fd1['VCuJM']},_0x54234e);_0x54234e?.[_0x6e91e6(0x10c)](_0x285fd1['gZcvC'],{'isFirstRun':_0x404117,'profileReady':_0x8d2c85[_0x6e91e6(0x115)],'userSkipped':_0x8d2c85[_0x6e91e6(0x107)]});}else console['log'](_0x285fd1[_0x6e91e6(0xf9)](_0x285fd1['seGlh'](_0x6e91e6(0xed),_0x6e91e6(0xdb)+_0x285fd1['lFJgH'](bold,_0x285fd1['SskGZ']))+_0x6e91e6(0x105),_0x6e91e6(0xd1))+'\x0a\x20\x20https://docs.ranger.net/main/concepts/profiles');}if(_0x57ca3e)console['log'](_0x285fd1['zbOGn']),console['log']('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console['log'](_0x285fd1[_0x6e91e6(0xef)]),console[_0x6e91e6(0x131)](_0x6e91e6(0x12d));else{const _0xae5bb1=bold(_0x6e91e6(0xe7));console[_0x6e91e6(0x131)](_0x285fd1['OoGsb'](_0x285fd1['oryzf'](_0x6e91e6(0x121)+_0xae5bb1+'\x20and\x20prompt\x20the\x20coding'+_0x6e91e6(0x123),'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'),'\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.'));}}
@@ -1 +1 @@
1
- const _0x3021aa=_0x44be;(function(_0x20c21b,_0x4b8698){const _0x2cc1dc=_0x44be,_0x17709f=_0x20c21b();while(!![]){try{const _0x151515=parseInt(_0x2cc1dc(0x1a9))/0x1+parseInt(_0x2cc1dc(0x1c0))/0x2+parseInt(_0x2cc1dc(0x1c7))/0x3*(parseInt(_0x2cc1dc(0x1e7))/0x4)+-parseInt(_0x2cc1dc(0x1a6))/0x5*(parseInt(_0x2cc1dc(0x1d5))/0x6)+parseInt(_0x2cc1dc(0x1b2))/0x7+parseInt(_0x2cc1dc(0x1bd))/0x8+-parseInt(_0x2cc1dc(0x1b6))/0x9;if(_0x151515===_0x4b8698)break;else _0x17709f['push'](_0x17709f['shift']());}catch(_0x13aa4d){_0x17709f['push'](_0x17709f['shift']());}}}(_0x38bc,0xa0f74));import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';function _0x44be(_0x1f3d08,_0xee701e){_0x1f3d08=_0x1f3d08-0x199;const _0x38bcaf=_0x38bc();let _0x44be6d=_0x38bcaf[_0x1f3d08];return _0x44be6d;}import{getCurrentVersion,getLatestVersion}from'./utils/version.js';function _0x38bc(){const _0x33f9fe=['dFvrZ','FxpxL','cKvqn','665166jVxEpS','\x20(up\x20to\x20date)','displayName','all','ranger@trailhead','\x20\x20Not\x20configured','kvbfh','project','HyFqT','No\x20profiles\x20configured','DEBUG','bjync','utf-8','QgJKA','431388eLhitA','not_configured','HpxNd','Msyyf','success','name','details','\x1b]8;;file://','xdUYs','\x20\x20\x20\x20','map','WAWwS','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','zDbPG','\x1b[1m','BcnUj','Root:\x20','GoFHq','12dcsiMI','\x20\x20Run:\x20ranger\x20setup\x20[token]','settingsPath','log','No\x20skills\x20installed','@ranger-testing/opencode-plugin','parse','\x20\x20\x20\x20Settings:\x20','wYXce','unknown','Version:\x20','opencode','includes','version','plaintext','toString',':\x20configured','debug','DKEDh','length','15eLoLfx','data','Organization:\x20','566406fxLiBS','trim','MyaFz','cwd','GOuWs','RgFyv','stderr','MVWfj','\x20\x20\x20\x20Auth:\x20','4893448BIhlcF','API\x20URL:\x20','\x0a\x20\x20No\x20active\x20profile\x20set','disabled','21028590JJbZbD','path','Zybrc','vxTBk','join','jJLFe','status','2889744VAfdWH','close','\x20\x20User-level:','1839332LztFTy','string','VfEYR','IdElQ'];_0x38bc=function(){return _0x33f9fe;};return _0x38bc();}import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';import{getRangerDir}from'./utils/rangerRoot.js';import{getEnvDir}from'./utils/settings.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x1555b3=>_0x3021aa(0x1e3)+_0x1555b3+'\x1b[0m',link=(_0x5eaf8f,_0x5b342b)=>_0x3021aa(0x1dc)+_0x5eaf8f+'\x07'+(_0x5b342b||_0x5eaf8f)+'\x1b]8;;\x07';async function getOpencodePluginStatus(){const _0x524fcc=_0x3021aa,_0x1cfe10={'PrdSa':_0x524fcc(0x1c1),'HpxNd':function(_0x76c640,_0x4d3d08){return _0x76c640(_0x4d3d08);},'tGBCt':'configured','Msyyf':'not_configured','DDVsL':function(_0x3eef10,_0x440d2f){return _0x3eef10(_0x440d2f);},'RgFyv':function(_0x384ce3,_0x3d9a81,_0x10a0cb,_0x57e1b3){return _0x384ce3(_0x3d9a81,_0x10a0cb,_0x57e1b3);},'QFoHq':_0x524fcc(0x19d),'IdElQ':_0x524fcc(0x1a3),'zDasH':'config','kvbfh':'pipe','yRpum':_0x524fcc(0x1a7)};return new Promise(_0x5e82eb=>{const _0x29c92a=_0x524fcc,_0x16aef0={'vxTBk':function(_0x18aa03,_0x350ce9){return _0x18aa03(_0x350ce9);}},_0x40d945=_0x1cfe10[_0x29c92a(0x1ae)](spawn,_0x1cfe10['QFoHq'],[_0x1cfe10[_0x29c92a(0x1c3)],_0x1cfe10['zDasH']],{'stdio':['ignore',_0x1cfe10['kvbfh'],_0x1cfe10[_0x29c92a(0x1cd)]]});let _0x1fe32c='';_0x40d945['stdout']?.['on']('data',_0x592004=>{const _0x115386=_0x29c92a;_0x1fe32c+=_0x592004[_0x115386(0x1a1)]();}),_0x40d945[_0x29c92a(0x1af)]?.['on'](_0x1cfe10['yRpum'],_0x5b7770=>{const _0x2b7519=_0x29c92a;_0x1fe32c+=_0x5b7770[_0x2b7519(0x1a1)]();}),_0x40d945['on']('error',()=>{const _0x3a5868=_0x29c92a;_0x16aef0[_0x3a5868(0x1b9)](_0x5e82eb,{'status':'not_installed'});}),_0x40d945['on'](_0x29c92a(0x1be),_0x5ed908=>{const _0x3f155a=_0x29c92a,_0x238769={'MyaFz':function(_0x23f336,_0x442c29){return _0x23f336!==_0x442c29;},'HKqZL':_0x1cfe10['PrdSa'],'BcnUj':'opencode-plugin'};if(_0x5ed908!==0x0){_0x1cfe10[_0x3f155a(0x1d7)](_0x5e82eb,{'status':'not_installed'});return;}const _0x1f59b=_0x1fe32c['trim']();let _0x47a09c=null;if(_0x1f59b)try{_0x47a09c=JSON[_0x3f155a(0x1ed)](_0x1f59b);}catch{const _0x52cbd8=_0x1f59b['match'](/\{[\s\S]*\}$/);if(_0x52cbd8)try{_0x47a09c=JSON[_0x3f155a(0x1ed)](_0x52cbd8[0x0]);}catch{_0x47a09c=null;}}const _0x49321e=Array['isArray'](_0x47a09c?.['plugin'])?_0x47a09c?.['plugin']:[],_0x1cfa30=_0x49321e['some'](_0x3f1b60=>{const _0x472859=_0x3f155a;if(_0x238769[_0x472859(0x1ab)](typeof _0x3f1b60,_0x238769['HKqZL']))return![];return _0x3f1b60[_0x472859(0x19e)](_0x472859(0x1ec))||_0x3f1b60[_0x472859(0x19e)](_0x238769[_0x472859(0x1e4)]);});if(_0x1cfa30){_0x1cfe10['HpxNd'](_0x5e82eb,{'status':_0x1cfe10['tGBCt'],'details':_0x49321e[_0x3f155a(0x1a5)]>0x0?_0x49321e['length']+'\x20plugin(s)\x20configured':undefined});return;}if(_0x49321e[_0x3f155a(0x1a5)]>0x0){_0x5e82eb({'status':_0x1cfe10[_0x3f155a(0x1d8)],'details':_0x49321e[_0x3f155a(0x1a5)]+'\x20plugin(s)\x20configured'});return;}_0x1cfe10['DDVsL'](_0x5e82eb,{'status':_0x3f155a(0x1d6)});});});}async function getSkillsFromDir(_0x42451c,_0x4675d6){const _0x4ba88a=_0x3021aa,_0x2dfc0c={'uHSsy':function(_0xbfc886,_0x5bc5fd){return _0xbfc886(_0x5bc5fd);},'ADhLd':function(_0x4cb176,_0x4721d5,_0x2314cb){return _0x4cb176(_0x4721d5,_0x2314cb);},'WAWwS':function(_0x2bbf11,_0x465048,_0x378811,_0xe66ff6){return _0x2bbf11(_0x465048,_0x378811,_0xe66ff6);},'jJLFe':'SKILL.md','dYuyq':function(_0x264233,_0x14c160,_0x2f9d20){return _0x264233(_0x14c160,_0x2f9d20);}};if(!_0x2dfc0c['uHSsy'](existsSync,_0x42451c))return[];const _0x154946=[];try{const _0x2823fe=await _0x2dfc0c['ADhLd'](readdir,_0x42451c,{'withFileTypes':!![]});for(const _0x15df44 of _0x2823fe){if(_0x15df44['isDirectory']()){const _0x37844e=_0x2dfc0c[_0x4ba88a(0x1e0)](join,_0x42451c,_0x15df44['name'],_0x2dfc0c[_0x4ba88a(0x1bb)]);if(existsSync(_0x37844e)){let _0x5c0056=_0x15df44[_0x4ba88a(0x1da)];try{const _0x3fbc03=await _0x2dfc0c['dYuyq'](readFile,_0x37844e,_0x4ba88a(0x1d3)),_0xd73e42=_0x3fbc03['match'](/name:\s*(.+)/);_0xd73e42&&(_0x5c0056=_0xd73e42[0x1][_0x4ba88a(0x1aa)]());}catch{}_0x154946['push']({'name':_0x15df44['name'],'displayName':_0x5c0056,'path':_0x37844e,'level':_0x4675d6});}}}}catch{return[];}return _0x154946;}async function getInstalledSkills(){const _0x5414c6=_0x3021aa,_0x419e66={'kEXAX':function(_0x403515){return _0x403515();},'ohoeq':_0x5414c6(0x1ce)},[_0x4d147d,_0x48b622]=await Promise[_0x5414c6(0x1ca)]([getSkillsFromDir(_0x419e66['kEXAX'](getProjectSkillsDir),_0x419e66['ohoeq']),getSkillsFromDir(_0x419e66['kEXAX'](getUserSkillsDir),'user')]);return{'project':_0x4d147d,'user':_0x48b622};}async function getEnvironments(){const _0x24e3ed={'Cebla':'settings.json','QhdBq':function(_0x126fde,_0x10af95,_0x828419){return _0x126fde(_0x10af95,_0x828419);},'IrSHU':function(_0x5a2f0b,_0x25546f,_0x373384){return _0x5a2f0b(_0x25546f,_0x373384);},'GOuWs':'auth.json.enc','ucCwX':function(_0x2ca94d,_0x28a55b){return _0x2ca94d(_0x28a55b);},'tYOsm':function(_0x4785ea){return _0x4785ea();}},{envNames:_0x39ad7c,activeEnv:_0x15c1b9}=await _0x24e3ed['tYOsm'](getEnvNames),_0x57508c=getRangerDir();if(!existsSync(_0x57508c))return{'envs':[],'activeEnv':null};const _0x3da93f=_0x39ad7c['map'](_0x1f1c77=>{const _0x5c445b=_0x44be,_0x4dbf6c=getEnvDir(_0x1f1c77),_0x1a1c7c=join(_0x4dbf6c,_0x24e3ed['Cebla']),_0x25e4e0=_0x24e3ed['QhdBq'](join,_0x4dbf6c,'auth.json'),_0x1707e9=_0x24e3ed['IrSHU'](join,_0x4dbf6c,_0x24e3ed[_0x5c445b(0x1ad)]);return{'name':_0x1f1c77,'settingsPath':_0x24e3ed['ucCwX'](existsSync,_0x1a1c7c)?_0x1a1c7c:'(not\x20found)','hasPlaintextAuth':existsSync(_0x25e4e0),'hasEncryptedAuth':existsSync(_0x1707e9),'isActive':_0x1f1c77===_0x15c1b9};});return{'envs':_0x3da93f,'activeEnv':_0x15c1b9};}export async function status(){const _0x6831e3=_0x3021aa,_0x2953c5={'zDbPG':function(_0x266608){return _0x266608();},'xdUYs':function(_0x55ee21,_0x11ff78,_0x5aada3){return _0x55ee21(_0x11ff78,_0x5aada3);},'uZxaV':function(_0x21a4b6,_0x5b86f1){return _0x21a4b6(_0x5b86f1);},'dFvrZ':function(_0x1139bd,_0x4cb70d){return _0x1139bd(_0x4cb70d);},'QgJKA':function(_0x30d202,_0x31725c){return _0x30d202!==_0x31725c;},'RcIRK':function(_0x41db13,_0x267292){return _0x41db13(_0x267292);},'DKEDh':function(_0x386036){return _0x386036();},'Zybrc':function(_0xb7db6){return _0xb7db6();},'ZlXXB':function(_0x1d42bb,_0x3f0020){return _0x1d42bb===_0x3f0020;},'XOGJI':'configured','HyFqT':_0x6831e3(0x1ec),'FxpxL':_0x6831e3(0x1d6),'ieRBI':_0x6831e3(0x1cb),'hJCJi':'enabled','cKvqn':'\x20\x20Not\x20installed','VfEYR':'\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','GoFHq':'\x0a---\x20Skills\x20---','mahDu':function(_0x151ce2){return _0x151ce2();},'VyExP':_0x6831e3(0x1eb),'Ydmpa':function(_0x296228,_0x2c503f){return _0x296228(_0x2c503f);},'VDCNW':function(_0x579e38,_0x1e89ef){return _0x579e38>_0x1e89ef;},'MZkxC':_0x6831e3(0x1bf),'vROmj':function(_0x3baced){return _0x3baced();},'bjync':_0x6831e3(0x1d0),'wYXce':'\x20(active)','aoCNI':'encrypted','MVWfj':function(_0x553f2b,_0x3cce0b){return _0x553f2b!==_0x3cce0b;},'vlFCc':'(not\x20found)'};console[_0x6831e3(0x1ea)]('\x0a📊\x20Ranger\x20Status\x0a');const _0x479413=process[_0x6831e3(0x1ac)](),_0x3040e9=_0x2953c5[_0x6831e3(0x1e2)](getRangerDir);if(!existsSync(_0x3040e9)){console['log']('Root:\x20'+_0x2953c5[_0x6831e3(0x1dd)](link,_0x479413,bold(_0x2953c5['uZxaV'](basename,_0x479413)))),console['log']('\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.'),console[_0x6831e3(0x1ea)]('\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a');return;}console[_0x6831e3(0x1ea)](_0x6831e3(0x1e5)+_0x2953c5[_0x6831e3(0x1dd)](link,_0x479413,_0x2953c5[_0x6831e3(0x1c4)](bold,basename(_0x479413))));const _0x38f7e5=getCurrentVersion(),_0xf1814c=getLatestVersion();if(_0xf1814c[_0x6831e3(0x19f)]&&_0x2953c5[_0x6831e3(0x1d4)](_0xf1814c[_0x6831e3(0x19f)],_0x38f7e5))console[_0x6831e3(0x1ea)](_0x6831e3(0x19c)+_0x38f7e5+'\x20(latest:\x20'+_0xf1814c['version']+')'),console[_0x6831e3(0x1ea)]('\x20\x20Run:\x20ranger\x20update');else _0xf1814c['version']?console[_0x6831e3(0x1ea)](_0x6831e3(0x19c)+_0x38f7e5+_0x6831e3(0x1c8)):console[_0x6831e3(0x1ea)]('Version:\x20'+_0x38f7e5);const _0x3e69ea=await _0x2953c5['zDbPG'](getToken);if(_0x3e69ea){const _0xa76103=await getCurrentUser(_0x3e69ea);_0xa76103[_0x6831e3(0x1d9)]?console['log'](_0x6831e3(0x1a8)+_0x2953c5['RcIRK'](bold,_0xa76103['user']['organizationName'])):(console['log']('API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired'),console['log'](_0x6831e3(0x1e8)));}else console['log']('API\x20Token:\x20✗\x20Not\x20found'),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]');process['env'][_0x6831e3(0x1d1)]&&(console['log']('API\x20Environment:\x20'+getCurrentEnvironment()),console['log'](_0x6831e3(0x1b3)+_0x2953c5[_0x6831e3(0x1a4)](getApiBaseUrl)));console['log']('\x0a---\x20OpenCode\x20Plugin\x20---');const _0x5beb77=await _0x2953c5[_0x6831e3(0x1b8)](getOpencodePluginStatus);if(_0x2953c5['ZlXXB'](_0x5beb77[_0x6831e3(0x1bc)],_0x2953c5['XOGJI']))console[_0x6831e3(0x1ea)]('\x20\x20'+bold(_0x2953c5[_0x6831e3(0x1cf)])+_0x6831e3(0x1a2)),_0x5beb77[_0x6831e3(0x1db)]&&console[_0x6831e3(0x1ea)]('\x20\x20'+_0x5beb77[_0x6831e3(0x1db)]);else _0x2953c5['ZlXXB'](_0x5beb77['status'],_0x2953c5[_0x6831e3(0x1c5)])?(console['log'](_0x6831e3(0x1cc)),_0x5beb77[_0x6831e3(0x1db)]&&console['log']('\x20\x20'+_0x5beb77[_0x6831e3(0x1db)]),console[_0x6831e3(0x1ea)]('\x20\x20Run:\x20ranger\x20setup\x20--opencode')):console['log']('\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available');console[_0x6831e3(0x1ea)]('\x0a---\x20Claude\x20Code\x20Plugin\x20---');const _0x1b1d74=await getPluginInfo(_0x2953c5['ieRBI']);if(_0x1b1d74){const _0x33d0b8=_0x1b1d74['scope']||_0x6831e3(0x19b),_0x46a6c5=_0x1b1d74['enabled']?_0x2953c5['hJCJi']:_0x6831e3(0x1b5);console['log']('\x20\x20'+bold('ranger@trailhead')+':\x20installed\x20('+_0x33d0b8+',\x20'+_0x46a6c5+')');}else console['log'](_0x2953c5[_0x6831e3(0x1c6)]),console[_0x6831e3(0x1ea)](_0x2953c5[_0x6831e3(0x1c2)]);console['log'](_0x2953c5[_0x6831e3(0x1e6)]);const {project:_0x22a5f1,user:_0x48de94}=await _0x2953c5['mahDu'](getInstalledSkills),_0x55fdc3=_0x22a5f1['filter'](_0x2cc690=>RANGER_MANAGED_SKILLS['includes'](_0x2cc690[_0x6831e3(0x1da)])),_0x2a6762=_0x48de94['filter'](_0x4c62b4=>RANGER_MANAGED_SKILLS['includes'](_0x4c62b4[_0x6831e3(0x1da)])),_0x43a244=_0x55fdc3['length']+_0x2a6762[_0x6831e3(0x1a5)];if(_0x43a244===0x0)console['log'](_0x2953c5['VyExP']),console['log']('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x55fdc3['length']>0x0){console[_0x6831e3(0x1ea)]('\x20\x20Project-level:');for(const _0x43b5ee of _0x55fdc3){console[_0x6831e3(0x1ea)](_0x6831e3(0x1de)+_0x2953c5[_0x6831e3(0x1c4)](bold,_0x43b5ee['displayName'])+':\x20'+link(_0x43b5ee[_0x6831e3(0x1b7)],_0x2953c5['Ydmpa'](basename,_0x43b5ee[_0x6831e3(0x1b7)])));}}if(_0x2953c5['VDCNW'](_0x2a6762[_0x6831e3(0x1a5)],0x0)){console[_0x6831e3(0x1ea)](_0x2953c5['MZkxC']);for(const _0x1d6af3 of _0x2a6762){console[_0x6831e3(0x1ea)]('\x20\x20\x20\x20'+_0x2953c5[_0x6831e3(0x1c4)](bold,_0x1d6af3[_0x6831e3(0x1c9)])+':\x20'+link(_0x1d6af3[_0x6831e3(0x1b7)],basename(_0x1d6af3[_0x6831e3(0x1b7)])));}}}console[_0x6831e3(0x1ea)]('\x0a---\x20Profiles\x20---');const {envs:_0x19562a,activeEnv:_0x37fa55}=await _0x2953c5['vROmj'](getEnvironments);if(_0x2953c5['ZlXXB'](_0x19562a[_0x6831e3(0x1a5)],0x0))console[_0x6831e3(0x1ea)](_0x2953c5[_0x6831e3(0x1d2)]),console[_0x6831e3(0x1ea)](_0x6831e3(0x1e1));else{for(const _0x3b61c1 of _0x19562a){const _0x1bcbd5=_0x3b61c1['isActive']?_0x2953c5[_0x6831e3(0x19a)]:'',_0x1a6004=_0x3b61c1['hasEncryptedAuth']?_0x2953c5['aoCNI']:_0x3b61c1['hasPlaintextAuth']?_0x6831e3(0x1a0):'none';console['log']('\x20\x20'+bold(_0x3b61c1[_0x6831e3(0x1da)])+_0x1bcbd5),console['log'](_0x6831e3(0x1b1)+_0x1a6004),_0x2953c5[_0x6831e3(0x1b0)](_0x3b61c1[_0x6831e3(0x1e9)],_0x2953c5['vlFCc'])&&console[_0x6831e3(0x1ea)](_0x6831e3(0x199)+link(_0x3b61c1[_0x6831e3(0x1e9)],basename(_0x3b61c1[_0x6831e3(0x1e9)])));}!_0x37fa55&&(console['log'](_0x6831e3(0x1b4)),console['log']('\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20'+_0x19562a[_0x6831e3(0x1df)](_0x3d5e6b=>_0x3d5e6b[_0x6831e3(0x1da)])[_0x6831e3(0x1ba)](',\x20')+')'));}console[_0x6831e3(0x1ea)]('');}
1
+ const _0x4d9a78=_0x2c80;function _0x2c80(_0x297f86,_0x190c8c){_0x297f86=_0x297f86-0x1bf;const _0x406ad6=_0x406a();let _0x2c807f=_0x406ad6[_0x297f86];return _0x2c807f;}(function(_0x5cecbe,_0x3b1998){const _0x22e025=_0x2c80,_0x22c5fb=_0x5cecbe();while(!![]){try{const _0x297699=parseInt(_0x22e025(0x1db))/0x1*(-parseInt(_0x22e025(0x1d7))/0x2)+-parseInt(_0x22e025(0x1e1))/0x3+-parseInt(_0x22e025(0x1f4))/0x4*(-parseInt(_0x22e025(0x1e4))/0x5)+-parseInt(_0x22e025(0x20f))/0x6+parseInt(_0x22e025(0x1d3))/0x7+-parseInt(_0x22e025(0x20e))/0x8+-parseInt(_0x22e025(0x1ce))/0x9*(-parseInt(_0x22e025(0x1d4))/0xa);if(_0x297699===_0x3b1998)break;else _0x22c5fb['push'](_0x22c5fb['shift']());}catch(_0x4b4a48){_0x22c5fb['push'](_0x22c5fb['shift']());}}}(_0x406a,0x6ab90));import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';import{getCurrentVersion,getLatestVersion}from'./utils/version.js';import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';import{getRangerDir}from'./utils/rangerRoot.js';function _0x406a(){const _0x6a089b=['SKILL.md','plugin','\x20(active)','settings.json','JnOOl','BwoCv','user','kjOWM','YnlRe','zNIFl','enabled','XtduU','path','disabled','dCsBJ','PqnGU','CrklX','@ranger-testing/opencode-plugin','189flpMNq','FRjdj','\x0a---\x20OpenCode\x20Plugin\x20---','wHRWH','\x20plugin(s)\x20configured','2716182ENFlfP','1151110STrKvs','\x1b]8;;\x07','isArray','12EUTDst','EeFRf','\x20\x20\x20\x20Auth:\x20','debug','126033TCVFac','TuxoG','unknown','includes','pipe','yZfZg','2241402DmmveR','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','rXWBy','240yWaurE','GiFCw','match','GcMHp','rMxRo','GMILD','name','oXjPV','\x0a\x20\x20No\x20active\x20profile\x20set','\x1b[1m','WxQqc','\x20\x20\x20\x20','IdVfX','ignore','none','ranger@trailhead','12088UFJPVZ','version','\x20\x20Run:\x20ranger\x20setup\x20[token]','status','XmhLN','isDirectory','plaintext','CkjUz','details','fwUIW','auth.json','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20','Root:\x20','BXxJi','YOjnl','VMciW','stdout','parse','mwWVo','\x20\x20Run:\x20ranger\x20update','env','\x20\x20Run:\x20ranger\x20setup\x20--opencode','FknWv','(not\x20found)','API\x20Environment:\x20','all','3674984SFpZhM','3303432wszxNI','\x20\x20Run:\x20ranger\x20skillup','not_configured','length','configured','map','not_installed','trim','EyOMt','log','auth.json.enc'];_0x406a=function(){return _0x6a089b;};return _0x406a();}import{getEnvDir}from'./utils/settings.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x15799c=>_0x4d9a78(0x1ed)+_0x15799c+'\x1b[0m',link=(_0x576734,_0x116520)=>'\x1b]8;;file://'+_0x576734+'\x07'+(_0x116520||_0x576734)+_0x4d9a78(0x1d5);async function getOpencodePluginStatus(){const _0x34b9ea=_0x4d9a78,_0x526e91={'FknWv':function(_0x17a3d1,_0x25c2fc){return _0x17a3d1!==_0x25c2fc;},'WxQqc':function(_0x135bd8,_0x400bee){return _0x135bd8(_0x400bee);},'EyOMt':_0x34b9ea(0x215),'accrH':function(_0x485242,_0xd78fea){return _0x485242>_0xd78fea;},'fwUIW':'not_configured','dCsBJ':'string','sCxQv':_0x34b9ea(0x1da),'aVRDZ':_0x34b9ea(0x1f1)};return new Promise(_0x16dc83=>{const _0x39956a=_0x34b9ea,_0x1d6d89={'rIDvD':_0x526e91[_0x39956a(0x1ca)],'oXjPV':'@ranger-testing/opencode-plugin'},_0x163fe7=spawn('opencode',[_0x526e91['sCxQv'],'config'],{'stdio':[_0x526e91['aVRDZ'],'pipe',_0x39956a(0x1df)]});let _0x3ff3f4='';_0x163fe7[_0x39956a(0x204)]?.['on']('data',_0x39d2c1=>{_0x3ff3f4+=_0x39d2c1['toString']();}),_0x163fe7['stderr']?.['on']('data',_0x51b877=>{_0x3ff3f4+=_0x51b877['toString']();}),_0x163fe7['on']('error',()=>{_0x16dc83({'status':'not_installed'});}),_0x163fe7['on']('close',_0x2b2178=>{const _0x40c746=_0x39956a;if(_0x526e91[_0x40c746(0x20a)](_0x2b2178,0x0)){_0x526e91[_0x40c746(0x1ee)](_0x16dc83,{'status':_0x526e91[_0x40c746(0x217)]});return;}const _0x387680=_0x3ff3f4[_0x40c746(0x216)]();let _0x209a62=null;if(_0x387680)try{_0x209a62=JSON[_0x40c746(0x205)](_0x387680);}catch{const _0x308dc1=_0x387680[_0x40c746(0x1e6)](/\{[\s\S]*\}$/);if(_0x308dc1)try{_0x209a62=JSON[_0x40c746(0x205)](_0x308dc1[0x0]);}catch{_0x209a62=null;}}const _0x2d3905=Array[_0x40c746(0x1d6)](_0x209a62?.[_0x40c746(0x21b)])?_0x209a62?.[_0x40c746(0x21b)]:[],_0x23b5bf=_0x2d3905['some'](_0x244706=>{const _0x36de46=_0x40c746;if(typeof _0x244706!==_0x1d6d89['rIDvD'])return![];return _0x244706[_0x36de46(0x1de)](_0x1d6d89[_0x36de46(0x1eb)])||_0x244706['includes']('opencode-plugin');});if(_0x23b5bf){_0x16dc83({'status':'configured','details':_0x2d3905[_0x40c746(0x212)]>0x0?_0x2d3905['length']+'\x20plugin(s)\x20configured':undefined});return;}if(_0x526e91['accrH'](_0x2d3905['length'],0x0)){_0x16dc83({'status':_0x526e91[_0x40c746(0x1fd)],'details':_0x2d3905['length']+_0x40c746(0x1d2)});return;}_0x16dc83({'status':_0x40c746(0x211)});});});}async function getSkillsFromDir(_0x351944,_0x12046e){const _0x3572c7=_0x4d9a78,_0x5a76c0={'FRjdj':function(_0x5ed4e0,_0x3ce99e){return _0x5ed4e0(_0x3ce99e);},'qQKKl':'utf-8'};if(!_0x5a76c0['FRjdj'](existsSync,_0x351944))return[];const _0x2c8e68=[];try{const _0x27b835=await readdir(_0x351944,{'withFileTypes':!![]});for(const _0x1afbb4 of _0x27b835){if(_0x1afbb4[_0x3572c7(0x1f9)]()){const _0xa5722f=join(_0x351944,_0x1afbb4['name'],_0x3572c7(0x21a));if(_0x5a76c0[_0x3572c7(0x1cf)](existsSync,_0xa5722f)){let _0x5223a6=_0x1afbb4[_0x3572c7(0x1ea)];try{const _0x244483=await readFile(_0xa5722f,_0x5a76c0['qQKKl']),_0x375d1d=_0x244483['match'](/name:\s*(.+)/);_0x375d1d&&(_0x5223a6=_0x375d1d[0x1]['trim']());}catch{}_0x2c8e68['push']({'name':_0x1afbb4['name'],'displayName':_0x5223a6,'path':_0xa5722f,'level':_0x12046e});}}}}catch{return[];}return _0x2c8e68;}async function getInstalledSkills(){const _0x51382d=_0x4d9a78,_0x2abff8={'GcMHp':function(_0x544aa6){return _0x544aa6();},'aaMSP':'project','VMciW':function(_0x1113e2,_0xd812c0,_0x2c494a){return _0x1113e2(_0xd812c0,_0x2c494a);},'YDlNk':function(_0xc38d27){return _0xc38d27();},'CkjUz':_0x51382d(0x1c2)},[_0x210b30,_0x20c3b2]=await Promise[_0x51382d(0x20d)]([getSkillsFromDir(_0x2abff8[_0x51382d(0x1e7)](getProjectSkillsDir),_0x2abff8['aaMSP']),_0x2abff8[_0x51382d(0x203)](getSkillsFromDir,_0x2abff8['YDlNk'](getUserSkillsDir),_0x2abff8[_0x51382d(0x1fb)])]);return{'project':_0x210b30,'user':_0x20c3b2};}async function getEnvironments(){const _0x13445b=_0x4d9a78,_0x4e1d81={'QYwVJ':_0x13445b(0x1bf),'viJtV':_0x13445b(0x1fe),'rnHrv':function(_0xc0aafe,_0x2555cf,_0x4fa90d){return _0xc0aafe(_0x2555cf,_0x4fa90d);},'BwoCv':_0x13445b(0x219),'BXxJi':function(_0x1d57c8,_0x1163ab){return _0x1d57c8(_0x1163ab);},'rMxRo':function(_0x5c84be,_0x3eccdd){return _0x5c84be===_0x3eccdd;},'wHRWH':function(_0x38df9e){return _0x38df9e();},'GMILD':function(_0x4bb3c6,_0x10822d){return _0x4bb3c6(_0x10822d);}},{envNames:_0x3ca053,activeEnv:_0x37fab8}=await _0x4e1d81[_0x13445b(0x1d1)](getEnvNames),_0x50bd04=_0x4e1d81['wHRWH'](getRangerDir);if(!_0x4e1d81[_0x13445b(0x1e9)](existsSync,_0x50bd04))return{'envs':[],'activeEnv':null};const _0x1dd22e=_0x3ca053['map'](_0x53357f=>{const _0x35f72c=_0x13445b,_0x451632=getEnvDir(_0x53357f),_0x5c31d5=join(_0x451632,_0x4e1d81['QYwVJ']),_0x486393=join(_0x451632,_0x4e1d81['viJtV']),_0x218294=_0x4e1d81['rnHrv'](join,_0x451632,_0x4e1d81[_0x35f72c(0x1c1)]);return{'name':_0x53357f,'settingsPath':existsSync(_0x5c31d5)?_0x5c31d5:_0x35f72c(0x20b),'hasPlaintextAuth':_0x4e1d81[_0x35f72c(0x201)](existsSync,_0x486393),'hasEncryptedAuth':_0x4e1d81['BXxJi'](existsSync,_0x218294),'isActive':_0x4e1d81[_0x35f72c(0x1e8)](_0x53357f,_0x37fab8)};});return{'envs':_0x1dd22e,'activeEnv':_0x37fab8};}export async function status(){const _0x45f0fe=_0x4d9a78,_0x2b2ddc={'DxARO':'\x0a📊\x20Ranger\x20Status\x0a','kjOWM':function(_0x3c3837){return _0x3c3837();},'XtduU':function(_0x261208,_0x5e1ffe,_0x31d41b){return _0x261208(_0x5e1ffe,_0x31d41b);},'PqnGU':function(_0x25ad91,_0x2fa4ba){return _0x25ad91(_0x2fa4ba);},'TuxoG':function(_0xf008d9,_0x14a25d){return _0xf008d9(_0x14a25d);},'CrklX':function(_0x576867){return _0x576867();},'XmhLN':function(_0x36e553){return _0x36e553();},'YOjnl':function(_0x437755,_0x1c309c){return _0x437755(_0x1c309c);},'IdVfX':_0x45f0fe(0x213),'zNIFl':function(_0x12a276,_0x3385a0){return _0x12a276(_0x3385a0);},'JnOOl':_0x45f0fe(0x1cd),'yZfZg':_0x45f0fe(0x209),'YRVLk':_0x45f0fe(0x1dd),'tZVVA':_0x45f0fe(0x1c9),'YnlRe':'\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','Gnufp':function(_0x466f59,_0x2e7b2c){return _0x466f59+_0x2e7b2c;},'gMLSt':function(_0x252764,_0x51dd8f){return _0x252764>_0x51dd8f;},'mwWVo':function(_0x4322c2,_0x752a9e){return _0x4322c2(_0x752a9e);},'rXWBy':function(_0x2651fd,_0x5edb3e){return _0x2651fd>_0x5edb3e;},'GiFCw':'\x20\x20User-level:','SNHHJ':'\x0a---\x20Profiles\x20---','EeFRf':function(_0x3c74a7,_0x17a1af){return _0x3c74a7!==_0x17a1af;}};console[_0x45f0fe(0x218)](_0x2b2ddc['DxARO']);const _0x157be4=process['cwd'](),_0x59ea6b=_0x2b2ddc[_0x45f0fe(0x1c3)](getRangerDir);if(!existsSync(_0x59ea6b)){console['log'](_0x45f0fe(0x200)+_0x2b2ddc[_0x45f0fe(0x1c7)](link,_0x157be4,bold(_0x2b2ddc[_0x45f0fe(0x1cb)](basename,_0x157be4)))),console['log'](_0x45f0fe(0x1e2)),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a');return;}console[_0x45f0fe(0x218)]('Root:\x20'+link(_0x157be4,_0x2b2ddc[_0x45f0fe(0x1cb)](bold,_0x2b2ddc[_0x45f0fe(0x1dc)](basename,_0x157be4))));const _0x207b6d=_0x2b2ddc[_0x45f0fe(0x1cc)](getCurrentVersion),_0x1f7674=_0x2b2ddc[_0x45f0fe(0x1f8)](getLatestVersion);if(_0x1f7674['version']&&_0x1f7674[_0x45f0fe(0x1f5)]!==_0x207b6d)console[_0x45f0fe(0x218)]('Version:\x20'+_0x207b6d+'\x20(latest:\x20'+_0x1f7674['version']+')'),console['log'](_0x45f0fe(0x207));else _0x1f7674['version']?console[_0x45f0fe(0x218)]('Version:\x20'+_0x207b6d+'\x20(up\x20to\x20date)'):console[_0x45f0fe(0x218)]('Version:\x20'+_0x207b6d);const _0x11d1b7=await getToken();if(_0x11d1b7){const _0x5b3553=await getCurrentUser(_0x11d1b7);_0x5b3553['success']?console[_0x45f0fe(0x218)]('Organization:\x20'+_0x2b2ddc['YOjnl'](bold,_0x5b3553[_0x45f0fe(0x1c2)]['organizationName'])):(console[_0x45f0fe(0x218)]('API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired'),console[_0x45f0fe(0x218)](_0x45f0fe(0x1f6)));}else console[_0x45f0fe(0x218)]('API\x20Token:\x20✗\x20Not\x20found'),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]');process[_0x45f0fe(0x208)]['DEBUG']&&(console['log'](_0x45f0fe(0x20c)+_0x2b2ddc[_0x45f0fe(0x1cc)](getCurrentEnvironment)),console[_0x45f0fe(0x218)]('API\x20URL:\x20'+getApiBaseUrl()));console[_0x45f0fe(0x218)](_0x45f0fe(0x1d0));const _0xebc427=await _0x2b2ddc[_0x45f0fe(0x1f8)](getOpencodePluginStatus);if(_0xebc427[_0x45f0fe(0x1f7)]===_0x2b2ddc[_0x45f0fe(0x1f0)])console[_0x45f0fe(0x218)]('\x20\x20'+_0x2b2ddc['zNIFl'](bold,_0x2b2ddc[_0x45f0fe(0x1c0)])+':\x20configured'),_0xebc427[_0x45f0fe(0x1fc)]&&console[_0x45f0fe(0x218)]('\x20\x20'+_0xebc427['details']);else _0xebc427['status']===_0x45f0fe(0x211)?(console[_0x45f0fe(0x218)]('\x20\x20Not\x20configured'),_0xebc427['details']&&console[_0x45f0fe(0x218)]('\x20\x20'+_0xebc427[_0x45f0fe(0x1fc)]),console['log'](_0x2b2ddc[_0x45f0fe(0x1e0)])):console['log']('\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available');console['log']('\x0a---\x20Claude\x20Code\x20Plugin\x20---');const _0x285f2c=await _0x2b2ddc[_0x45f0fe(0x1c5)](getPluginInfo,'ranger@trailhead');if(_0x285f2c){const _0x57b1e7=_0x285f2c['scope']||_0x2b2ddc['YRVLk'],_0x585ccb=_0x285f2c[_0x45f0fe(0x1c6)]?'enabled':_0x2b2ddc['tZVVA'];console['log']('\x20\x20'+_0x2b2ddc['zNIFl'](bold,_0x45f0fe(0x1f3))+':\x20installed\x20('+_0x57b1e7+',\x20'+_0x585ccb+')');}else console[_0x45f0fe(0x218)]('\x20\x20Not\x20installed'),console['log'](_0x2b2ddc[_0x45f0fe(0x1c4)]);console['log']('\x0a---\x20Skills\x20---');const {project:_0x3eaffe,user:_0x389498}=await getInstalledSkills(),_0x26db32=_0x3eaffe['filter'](_0x18b0ad=>RANGER_MANAGED_SKILLS['includes'](_0x18b0ad['name'])),_0x18f9b2=_0x389498['filter'](_0xb913c=>RANGER_MANAGED_SKILLS['includes'](_0xb913c[_0x45f0fe(0x1ea)])),_0x11e8d9=_0x2b2ddc['Gnufp'](_0x26db32[_0x45f0fe(0x212)],_0x18f9b2['length']);if(_0x11e8d9===0x0)console[_0x45f0fe(0x218)]('No\x20skills\x20installed'),console[_0x45f0fe(0x218)](_0x45f0fe(0x210));else{if(_0x2b2ddc['gMLSt'](_0x26db32['length'],0x0)){console[_0x45f0fe(0x218)]('\x20\x20Project-level:');for(const _0x5cb934 of _0x26db32){console[_0x45f0fe(0x218)]('\x20\x20\x20\x20'+_0x2b2ddc[_0x45f0fe(0x206)](bold,_0x5cb934['displayName'])+':\x20'+link(_0x5cb934[_0x45f0fe(0x1c8)],_0x2b2ddc[_0x45f0fe(0x202)](basename,_0x5cb934['path'])));}}if(_0x2b2ddc[_0x45f0fe(0x1e3)](_0x18f9b2['length'],0x0)){console['log'](_0x2b2ddc[_0x45f0fe(0x1e5)]);for(const _0x3f5fd3 of _0x18f9b2){console['log'](_0x45f0fe(0x1ef)+_0x2b2ddc['TuxoG'](bold,_0x3f5fd3['displayName'])+':\x20'+link(_0x3f5fd3['path'],basename(_0x3f5fd3['path'])));}}}console['log'](_0x2b2ddc['SNHHJ']);const {envs:_0x3c34a7,activeEnv:_0x1caf7a}=await _0x2b2ddc[_0x45f0fe(0x1f8)](getEnvironments);if(_0x3c34a7['length']===0x0)console['log']('No\x20profiles\x20configured'),console['log']('\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>');else{for(const _0x1c8afa of _0x3c34a7){const _0x2cd6e9=_0x1c8afa['isActive']?_0x45f0fe(0x21c):'',_0x2c3064=_0x1c8afa['hasEncryptedAuth']?'encrypted':_0x1c8afa['hasPlaintextAuth']?_0x45f0fe(0x1fa):_0x45f0fe(0x1f2);console['log']('\x20\x20'+_0x2b2ddc[_0x45f0fe(0x1c5)](bold,_0x1c8afa['name'])+_0x2cd6e9),console['log'](_0x45f0fe(0x1d9)+_0x2c3064),_0x2b2ddc[_0x45f0fe(0x1d8)](_0x1c8afa['settingsPath'],'(not\x20found)')&&console['log']('\x20\x20\x20\x20Settings:\x20'+_0x2b2ddc['XtduU'](link,_0x1c8afa['settingsPath'],basename(_0x1c8afa['settingsPath'])));}!_0x1caf7a&&(console['log'](_0x45f0fe(0x1ec)),console[_0x45f0fe(0x218)](_0x45f0fe(0x1ff)+_0x3c34a7[_0x45f0fe(0x214)](_0x4258b3=>_0x4258b3['name'])['join'](',\x20')+')'));}console[_0x45f0fe(0x218)]('');}