@ranger-testing/ranger-cli 3.1.5-alpha.aebd071-49 → 3.1.5

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 (86) hide show
  1. package/build/cli.js +1 -1
  2. package/build/commands/addEnv.js +1 -1
  3. package/build/commands/authEncrypt.js +1 -1
  4. package/build/commands/clean.js +1 -1
  5. package/build/commands/config.js +1 -1
  6. package/build/commands/deleteProfile.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 -1
  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/novaActCli.js +1 -1
  58. package/build/commands/utils/opencodeConfig.js +1 -1
  59. package/build/commands/utils/organizationEnvApi.js +1 -1
  60. package/build/commands/utils/playwrightCli.js +1 -1
  61. package/build/commands/utils/profileMessages.js +1 -1
  62. package/build/commands/utils/profileSetupBanner.js +1 -1
  63. package/build/commands/utils/projectsConfig.js +1 -1
  64. package/build/commands/utils/rangerConfig.js +1 -1
  65. package/build/commands/utils/rangerRoot.js +1 -1
  66. package/build/commands/utils/rangerwrightCli.js +1 -1
  67. package/build/commands/utils/resolveProfileContext.js +1 -1
  68. package/build/commands/utils/resolveProfileUrl.js +1 -1
  69. package/build/commands/utils/retry.js +1 -1
  70. package/build/commands/utils/scenarioOriginCheck.js +1 -1
  71. package/build/commands/utils/sessionCache.js +1 -1
  72. package/build/commands/utils/settings.js +1 -1
  73. package/build/commands/utils/skillContent.js +1 -1
  74. package/build/commands/utils/skills.js +1 -1
  75. package/build/commands/utils/stitchWebmFiles.js +1 -1
  76. package/build/commands/utils/telemetry.js +1 -1
  77. package/build/commands/utils/tokenRefresh.js +1 -1
  78. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  79. package/build/commands/utils/tunnelClient.js +1 -1
  80. package/build/commands/utils/userApi.js +1 -1
  81. package/build/commands/utils/version.js +1 -1
  82. package/build/commands/verifyFeature.js +1 -1
  83. package/build/commands/verifyFeatureCli.js +1 -1
  84. package/build/commands/verifyFeatureNovaCli.js +1 -1
  85. package/build/commands/verifyFeatureRangerwrightCli.js +1 -1
  86. package/package.json +2 -2
@@ -1 +1 @@
1
- (function(_0x2ea9eb,_0x543a03){const _0x4cf616=_0x3984,_0x6649c8=_0x2ea9eb();while(!![]){try{const _0x10543d=parseInt(_0x4cf616(0x80))/0x1*(-parseInt(_0x4cf616(0x7f))/0x2)+parseInt(_0x4cf616(0x7a))/0x3*(parseInt(_0x4cf616(0x89))/0x4)+-parseInt(_0x4cf616(0x86))/0x5+parseInt(_0x4cf616(0x85))/0x6*(parseInt(_0x4cf616(0x7c))/0x7)+parseInt(_0x4cf616(0x87))/0x8*(parseInt(_0x4cf616(0x7e))/0x9)+parseInt(_0x4cf616(0x84))/0xa+-parseInt(_0x4cf616(0x8a))/0xb;if(_0x10543d===_0x543a03)break;else _0x6649c8['push'](_0x6649c8['shift']());}catch(_0x315ed5){_0x6649c8['push'](_0x6649c8['shift']());}}}(_0x37aa,0xc533b));function _0x3984(_0x43fe4c,_0x2fec5d){_0x43fe4c=_0x43fe4c-0x7a;const _0x37aa3d=_0x37aa();let _0x398428=_0x37aa3d[_0x43fe4c];return _0x398428;}import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x37aa(){const _0x113704=['18LsVeDN','18GTMnDU','123257rcwGrX','log','\x0a✅\x20API\x20key\x20stored\x20successfully','Login\x20failed:\x20','4778950jEfvtQ','599838UmgTju','406265WsGyjA','2591192xDnNYA','message','84CmjwRS','5414695tSArRD','52161FCyBaX','EemTO','70TzFqWp','BDhAp'];_0x37aa=function(){return _0x113704;};return _0x37aa();}import{getCurrentUser}from'./utils/userApi.js';import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';import{isInteractive}from'./utils/cloudProfileSession.js';export async function login(){const _0x131895=_0x3984,_0x40f39b={'iGIKr':function(_0x5cf634){return _0x5cf634();},'BDhAp':'Re-authenticating\x20via\x20MCP\x20bootstrap...','jtiiW':'Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','EemTO':_0x131895(0x82),'hsoRn':function(_0x5c86f1,_0xc3a3b2){return _0x5c86f1 instanceof _0xc3a3b2;}},_0x43ff91=await _0x40f39b['iGIKr'](getMcpAuthOrigin);if(_0x43ff91){console[_0x131895(0x81)](_0x40f39b[_0x131895(0x7d)]),await mcpBootstrap();return;}if(!isInteractive())throw new Error(_0x40f39b['jtiiW']);try{const _0x59ed0c=await runDeviceAuthFlow(),_0x2e9603=await getCurrentUser(_0x59ed0c);_0x2e9603['success']?console['log']('\x0a✅\x20Logged\x20in\x20to\x20'+_0x2e9603['user']['organizationName']):console['log'](_0x40f39b[_0x131895(0x7b)]);}catch(_0x2b7ab5){throw new Error(_0x131895(0x83)+(_0x40f39b['hsoRn'](_0x2b7ab5,Error)?_0x2b7ab5[_0x131895(0x88)]:_0x2b7ab5));}}
1
+ (function(_0x5126b3,_0x567f3e){const _0x4810a2=_0x3d4e,_0x52ecf3=_0x5126b3();while(!![]){try{const _0x17ed43=parseInt(_0x4810a2(0x1be))/0x1+parseInt(_0x4810a2(0x1c2))/0x2+parseInt(_0x4810a2(0x1c1))/0x3+parseInt(_0x4810a2(0x1ca))/0x4+parseInt(_0x4810a2(0x1cb))/0x5*(-parseInt(_0x4810a2(0x1c6))/0x6)+-parseInt(_0x4810a2(0x1c9))/0x7+parseInt(_0x4810a2(0x1c8))/0x8*(parseInt(_0x4810a2(0x1c7))/0x9);if(_0x17ed43===_0x567f3e)break;else _0x52ecf3['push'](_0x52ecf3['shift']());}catch(_0x54b794){_0x52ecf3['push'](_0x52ecf3['shift']());}}}(_0x3fcb,0x24275));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x3fcb(){const _0x156c78=['log','\x0a✅\x20Logged\x20in\x20to\x20','user','13754fpXqMT','success','Login\x20failed:\x20','63882BpVJLb','312964ovqzez','bcSEY','message','\x0a✅\x20API\x20key\x20stored\x20successfully','118308oMiGzM','4582179ylLdqj','8GOwhOj','1949402UcCbyg','7848HBXBqg','70igvqNB','organizationName'];_0x3fcb=function(){return _0x156c78;};return _0x3fcb();}import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';import{isInteractive}from'./utils/cloudProfileSession.js';function _0x3d4e(_0x5e5588,_0x35c9f7){_0x5e5588=_0x5e5588-0x1bd;const _0x3fcb73=_0x3fcb();let _0x3d4ef1=_0x3fcb73[_0x5e5588];return _0x3d4ef1;}export async function login(){const _0x165506=_0x3d4e,_0x58b932={'bcSEY':function(_0x1d0892){return _0x1d0892();},'zoAVC':function(_0x3070b5,_0x3a1ddd){return _0x3070b5(_0x3a1ddd);}},_0x2e7425=await _0x58b932[_0x165506(0x1c3)](getMcpAuthOrigin);if(_0x2e7425){console[_0x165506(0x1cd)]('Re-authenticating\x20via\x20MCP\x20bootstrap...'),await mcpBootstrap();return;}if(!isInteractive())throw new Error('Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.');try{const _0x6af1e5=await runDeviceAuthFlow(),_0xffa51e=await _0x58b932['zoAVC'](getCurrentUser,_0x6af1e5);_0xffa51e[_0x165506(0x1bf)]?console['log'](_0x165506(0x1ce)+_0xffa51e[_0x165506(0x1bd)][_0x165506(0x1cc)]):console[_0x165506(0x1cd)](_0x165506(0x1c5));}catch(_0x57e2d9){throw new Error(_0x165506(0x1c0)+(_0x57e2d9 instanceof Error?_0x57e2d9[_0x165506(0x1c4)]:_0x57e2d9));}}
@@ -1 +1 @@
1
- function _0x4af4(){const _0x5902dd=['UPMvO','isTTY','client_id','none','application/x-www-form-urlencoded','282UzIkho','MgOfy','token','code_challenge','WnSdc','prVrt','toString','listen','error','update','http://localhost:','lpAHq','stringify','jzQHz','get','oaEoD','write','DckUU','type','end','IPrWb','clientId','YfNOM','Qwhnv','open','xdg-open','application/json,\x20text/event-stream','hUicL','trim','QKjcj','rzNpI','UxrzQ','hfqpd','OPKyJ','688ImEyVV','origin','now','digest','isError','initialize','Token\x20exchange\x20failed:\x20','150206ejxDiC','Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a','nlPZh','Rajcc','application/json','Unknown\x20error','registration_endpoint','1934106MMePZV','structuredContent','tools/call','parse','MCP\x20server\x20returned\x20HTTP\x20','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','1110708plvYRW','OAuthTimeoutError','GwYKY','ziKTV','ysuvY','CNEaM','redirect_uri','EtyZA','\x20done','WYxav','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','Initializing\x20MCP\x20session...','vAHjO','uzyCW','sha256','tuWff','match','trAwA','Not\x20found','2.0','proxied','includes','content-type','311170DWFXnA','Registering\x20OAuth\x20client...','expires_in','needs-oauth','close','Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','akBcU','response_type','writeHead','lZCFA','auth-origin.txt','data:','BNwAy','pBQoe','replace','searchParams','refresh_token','.ranger','code','\x0aOpening\x20browser\x20for\x20authentication...','text','get_cli_token\x20failed:\x20','<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','591520eXRzaK','text/html','1.0.0','88NrlpRE','darwin','message','MCP\x20initialize\x20failed:\x20','EQACP','gsCYT','Bearer\x20','ByzrU','refresh.txt','EJrGh','QmyAY','status','start','4Ulpkzi','ACjRr','set','lhcUi','client_secret','result','hLPLK','stdout','Authorization','131751riqfNh','utf-8','Discovering\x20authorization\x20server...','tbDJo','json','pathname','TixVA','POST','url','log','resource','MBSpC','accessToken','2OsaQxl','2166415rfuRXF','platform','jCWTO','access_token','TBFVb','state','Xdmoj','RHivM','clientSecret','length','AslMB','authorization_code','notifications/initialized','VeeAr','fEYKi','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','/callback','WyQLx','name'];_0x4af4=function(){return _0x5902dd;};return _0x4af4();}const _0x1062a6=_0x4710;(function(_0x66d401,_0x46048b){const _0x4936ed=_0x4710,_0x504960=_0x66d401();while(!![]){try{const _0xc8fbd9=-parseInt(_0x4936ed(0x137))/0x1+parseInt(_0x4936ed(0x15d))/0x2*(-parseInt(_0x4936ed(0x103))/0x3)+parseInt(_0x4936ed(0x147))/0x4*(-parseInt(_0x4936ed(0x15e))/0x5)+parseInt(_0x4936ed(0xd3))/0x6*(parseInt(_0x4936ed(0xfc))/0x7)+-parseInt(_0x4936ed(0xf5))/0x8*(-parseInt(_0x4936ed(0x150))/0x9)+-parseInt(_0x4936ed(0x120))/0xa*(-parseInt(_0x4936ed(0x13a))/0xb)+-parseInt(_0x4936ed(0x109))/0xc;if(_0xc8fbd9===_0x46048b)break;else _0x504960['push'](_0x504960['shift']());}catch(_0x23fc47){_0x504960['push'](_0x504960['shift']());}}}(_0x4af4,0xb82b0));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{exec}from'child_process';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(),_0x1062a6(0x131),_0x1062a6(0x12a));export async function getMcpAuthOrigin(){const _0x54ce82=_0x1062a6,_0x5e0460={'AslMB':function(_0x5728fe,_0x70ddb7,_0x2aa371){return _0x5728fe(_0x70ddb7,_0x2aa371);},'EWmuP':_0x54ce82(0x151),'ARxJl':function(_0x4990e1,_0x4899dc){return _0x4990e1||_0x4899dc;}};try{const _0x9430bb=(await _0x5e0460[_0x54ce82(0xc5)](readFile,AUTH_ORIGIN_PATH,_0x5e0460['EWmuP']))['trim']();return _0x5e0460['ARxJl'](_0x9430bb,null);}catch{return null;}}export async function mcpBootstrap(){const _0x45283a=_0x1062a6,_0x3cad18={'JNJrQ':function(_0x26a2a9,_0x4052cc){return _0x26a2a9(_0x4052cc);},'mHHKN':'proxied','DDsyI':function(_0x1021dc){return _0x1021dc();},'hUicL':function(_0x7a12dc,_0x1db07f){return _0x7a12dc+_0x1db07f;},'fThzU':'Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','aJeUz':function(_0x3a13fa,_0x27e2af,_0x34fa17){return _0x3a13fa(_0x27e2af,_0x34fa17);}},_0x1cc4a9=getMcpAuthUrl();currentOrigin=_0x1cc4a9;const _0x5b7c3d=process[_0x45283a(0x14e)][_0x45283a(0xcf)]??![];console['log'](_0x45283a(0x113)+_0x1cc4a9+'\x0a');const _0x473f4b=await _0x3cad18['JNJrQ'](tryUnauthenticated,_0x1cc4a9);let _0x53104f=null;if(_0x473f4b===_0x3cad18['mHHKN'])_0x53104f='';else{_0x53104f=await _0x3cad18['DDsyI'](loadCachedToken);if(!_0x53104f){if(!_0x5b7c3d)throw new Error(_0x3cad18[_0x45283a(0xee)]('MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a',_0x3cad18['fThzU']));_0x53104f=await oauthFlow(_0x1cc4a9);}}await _0x3cad18['aJeUz'](callGetCliToken,_0x1cc4a9,_0x53104f);}async function tryUnauthenticated(_0x31a950){const _0x5843ce=_0x1062a6,_0x325e25={'ziKTV':_0x5843ce(0x100),'lhcUi':_0x5843ce(0x11c),'Zgvns':_0x5843ce(0xfa),'WyQLx':function(_0x3f998a,_0x38e8dc){return _0x3f998a===_0x38e8dc;},'QKjcj':_0x5843ce(0x123)},_0x2e1a6d=await fetch(_0x31a950,{'method':_0x5843ce(0x157),'headers':{'Content-Type':_0x325e25[_0x5843ce(0x10c)],'Accept':'application/json,\x20text/event-stream'},'body':JSON['stringify']({'jsonrpc':_0x325e25[_0x5843ce(0x14a)],'id':0x1,'method':_0x325e25['Zgvns'],'params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':'ranger-cli','version':'1.0.0'}}})});if(_0x2e1a6d['ok'])return await _0x2e1a6d[_0x5843ce(0x134)](),_0x5843ce(0x11d);if(_0x325e25[_0x5843ce(0xcc)](_0x2e1a6d['status'],0x191))return await _0x2e1a6d['text'](),_0x325e25[_0x5843ce(0xf0)];const _0x1c4ac8=await _0x2e1a6d['text']();throw new Error(_0x5843ce(0x107)+_0x2e1a6d['status']+':\x20'+_0x1c4ac8);}class OAuthTimeoutError extends Error{constructor(_0x4a529b){const _0x1f19e1=_0x1062a6;super(_0x4a529b),this[_0x1f19e1(0xcd)]=_0x1f19e1(0x10a);}}async function oauthFlow(_0x22de21){const _0x1d9e22=_0x1062a6,_0x1cfa2c={'OPKyJ':function(_0x2658b4,_0x4b4881){return _0x2658b4 instanceof _0x4b4881;},'jCWTO':function(_0x5c2de5){return _0x5c2de5();}};try{return await oauthFlowAttempt(_0x22de21);}catch(_0xac4506){if(_0x1cfa2c[_0x1d9e22(0xf4)](_0xac4506,OAuthTimeoutError)&&await loadCachedClient())return console[_0x1d9e22(0x159)]('\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'),await _0x1cfa2c[_0x1d9e22(0x160)](clearCachedClient),await oauthFlowAttempt(_0x22de21);throw _0xac4506;}}async function oauthFlowAttempt(_0x164c5c){const _0x145d9d=_0x1062a6,_0x298496={'TBFVb':'No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','ByzrU':_0x145d9d(0x121),'MocyI':function(_0x5f18d1,_0x464424,_0x485326){return _0x5f18d1(_0x464424,_0x485326);},'gsCYT':'POST','Xdmoj':'Ranger\x20CLI','tbDJo':'authorization_code','DckUU':'\x20done','EtyZA':function(_0x14fce0,_0x20ad8){return _0x14fce0(_0x20ad8);},'CNEaM':'base64url','IPrWb':function(_0x4d9fda,_0x52fca6){return _0x4d9fda(_0x52fca6);},'EPETQ':'hex','VxzZJ':_0x145d9d(0xd0),'tUaOH':_0x145d9d(0x10f),'SFiri':_0x145d9d(0xd6),'QDOfN':'S256','pmLeg':_0x145d9d(0x15a),'Rajcc':function(_0x4ec011,_0x5521de,_0x1a9181,_0x2419b8){return _0x4ec011(_0x5521de,_0x1a9181,_0x2419b8);}},_0x4170a8=_0x164c5c[_0x145d9d(0x12e)](/\/mcp$/,'');process['stdout'][_0x145d9d(0xe3)](_0x145d9d(0x152));const _0x44126a=await fetch(_0x4170a8+'/.well-known/oauth-protected-resource');if(!_0x44126a['ok'])throw new Error('Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server');const _0x47d038=await _0x44126a[_0x145d9d(0x154)](),_0x16cc82=_0x47d038['authorization_servers']?.[0x0];if(!_0x16cc82)throw new Error(_0x298496[_0x145d9d(0xbf)]);console[_0x145d9d(0x159)]('\x20'+_0x16cc82);const _0x427813=await fetchAuthServerMetadata(_0x16cc82);let _0x5a2f03,_0xeadb2f;const _0x588dbd=await loadCachedClient();if(_0x588dbd)_0x5a2f03=_0x588dbd[_0x145d9d(0xe8)],_0xeadb2f=_0x588dbd['clientSecret'];else{if(_0x427813[_0x145d9d(0x102)]){process[_0x145d9d(0x14e)]['write'](_0x298496[_0x145d9d(0x141)]);const _0x393e4b=await _0x298496['MocyI'](fetch,_0x427813[_0x145d9d(0x102)],{'method':_0x298496['gsCYT'],'headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'client_name':_0x298496[_0x145d9d(0xc1)],'redirect_uris':['http://localhost:'+CALLBACK_PORT+_0x145d9d(0xcb)],'grant_types':[_0x298496[_0x145d9d(0x153)],_0x145d9d(0x130)],'response_types':[_0x145d9d(0x132)],'token_endpoint_auth_method':_0x145d9d(0xd1)})});if(!_0x393e4b['ok']){const _0x327d02=await _0x393e4b[_0x145d9d(0x134)]();throw new Error('Client\x20registration\x20failed:\x20'+_0x327d02);}const _0x51ff0c=await _0x393e4b['json']();_0x5a2f03=_0x51ff0c[_0x145d9d(0xd0)],_0xeadb2f=_0x51ff0c['client_secret'],await saveCachedClient(_0x5a2f03,_0xeadb2f),console['log'](_0x298496[_0x145d9d(0xe4)]);}else throw new Error('Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found');}const _0x4b83fa=_0x298496['EtyZA'](randomBytes,0x20)[_0x145d9d(0xd9)](_0x298496['CNEaM']),_0x31a12c=_0x298496[_0x145d9d(0xe7)](createHash,_0x145d9d(0x117))[_0x145d9d(0xdc)](_0x4b83fa)[_0x145d9d(0xf8)](_0x298496[_0x145d9d(0x10e)]),_0x30047d=_0x298496['IPrWb'](randomBytes,0x10)['toString'](_0x298496['EPETQ']),_0x2e19d7=new URL(_0x427813['authorization_endpoint']);_0x2e19d7[_0x145d9d(0x12f)][_0x145d9d(0x149)](_0x145d9d(0x127),'code'),_0x2e19d7[_0x145d9d(0x12f)]['set'](_0x298496['VxzZJ'],_0x5a2f03),_0x2e19d7['searchParams'][_0x145d9d(0x149)](_0x298496['tUaOH'],_0x145d9d(0xdd)+CALLBACK_PORT+'/callback'),_0x2e19d7[_0x145d9d(0x12f)][_0x145d9d(0x149)](_0x298496['SFiri'],_0x31a12c),_0x2e19d7[_0x145d9d(0x12f)]['set']('code_challenge_method',_0x298496['QDOfN']),_0x2e19d7['searchParams'][_0x145d9d(0x149)](_0x145d9d(0xc0),_0x30047d);_0x47d038['resource']&&_0x2e19d7[_0x145d9d(0x12f)]['set']('resource',_0x47d038['resource']);console[_0x145d9d(0x159)](_0x145d9d(0x133)),console['log'](_0x145d9d(0xca)+_0x2e19d7[_0x145d9d(0xd9)]()+'\x0a'),await openBrowser(_0x2e19d7[_0x145d9d(0xd9)]());const _0x754eab=await _0x298496[_0x145d9d(0x110)](waitForCallback,_0x30047d);process['stdout']['write']('Exchanging\x20authorization\x20code...');const _0x37fd95=new URLSearchParams({'grant_type':_0x145d9d(0xc6),'code':_0x754eab,'redirect_uri':'http://localhost:'+CALLBACK_PORT+_0x145d9d(0xcb),'client_id':_0x5a2f03,'code_verifier':_0x4b83fa});_0xeadb2f&&_0x37fd95['set'](_0x145d9d(0x14b),_0xeadb2f);_0x47d038['resource']&&_0x37fd95['set'](_0x298496['pmLeg'],_0x47d038[_0x145d9d(0x15a)]);const _0xb3f1c1=await fetch(_0x427813['token_endpoint'],{'method':_0x298496[_0x145d9d(0x13f)],'headers':{'Content-Type':_0x145d9d(0xd2)},'body':_0x37fd95});if(!_0xb3f1c1['ok']){const _0x36cfc5=await _0xb3f1c1[_0x145d9d(0x134)]();throw new Error(_0x145d9d(0xfb)+_0x36cfc5);}const _0x2bc26d=await _0xb3f1c1[_0x145d9d(0x154)]();return console['log'](_0x298496['DckUU']),await _0x298496[_0x145d9d(0xff)](saveCachedToken,_0x2bc26d['access_token'],_0x2bc26d['refresh_token'],_0x2bc26d[_0x145d9d(0x122)]),_0x2bc26d[_0x145d9d(0xbe)];}async function callGetCliToken(_0x3463c3,_0x321c6f){const _0x28a054=_0x1062a6,_0x3070e5={'RHivM':function(_0x4007d5,_0x12f183,_0x3f9b2c){return _0x4007d5(_0x12f183,_0x3f9b2c);},'qaMEV':_0x28a054(0x100),'eXkAL':_0x28a054(0x14f),'dhrfb':_0x28a054(0x114),'oaEoD':function(_0x3ead66,_0x47dfc9){return _0x3ead66(_0x47dfc9);},'GwYKY':_0x28a054(0x139),'DjdNf':'\x20done','MgOfy':function(_0x1cdb4b,_0xba6264,_0x54f3a7){return _0x1cdb4b(_0xba6264,_0x54f3a7);},'iFBpg':'POST','EJrGh':'Requesting\x20CLI\x20token...','nlPZh':'2.0','trAwA':'\x0aUnexpected\x20response\x20structure:','plLDe':_0x28a054(0x125),'YfNOM':_0x28a054(0x131),'lZCFA':function(_0x33421c,_0x34dc6c,_0x1272a1){return _0x33421c(_0x34dc6c,_0x1272a1);},'hLPLK':_0x28a054(0x12a),'QmyAY':_0x28a054(0xfd)},_0x38332e={'Content-Type':_0x3070e5['qaMEV'],'Accept':_0x28a054(0xed)};_0x321c6f&&(_0x38332e[_0x3070e5['eXkAL']]=_0x28a054(0x140)+_0x321c6f);const _0x2a2c43=async _0x4af292=>{const _0x30fbc0=_0x28a054,_0x2b7cef=await _0x3070e5[_0x30fbc0(0xc2)](fetch,_0x3463c3,{'method':'POST','headers':_0x38332e,'body':JSON[_0x30fbc0(0xdf)](_0x4af292)});if(!_0x2b7cef['ok']){const _0x411fb4=await _0x2b7cef[_0x30fbc0(0x134)]();throw new Error('HTTP\x20'+_0x2b7cef[_0x30fbc0(0x145)]+':\x20'+_0x411fb4);}return parseResponse(_0x2b7cef);};process['stdout'][_0x28a054(0xe3)](_0x3070e5['dhrfb']);const _0x15d972=await _0x3070e5[_0x28a054(0xe2)](_0x2a2c43,{'jsonrpc':_0x28a054(0x11c),'id':0x1,'method':'initialize','params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':'ranger-cli','version':_0x3070e5[_0x28a054(0x10b)]}}});if(_0x15d972[_0x28a054(0xdb)])throw new Error(_0x28a054(0x13d)+(_0x15d972['error'][_0x28a054(0x13c)]??JSON[_0x28a054(0xdf)](_0x15d972['error'])));console['log'](_0x3070e5['DjdNf']),await _0x3070e5[_0x28a054(0xd4)](fetch,_0x3463c3,{'method':_0x3070e5['iFBpg'],'headers':_0x38332e,'body':JSON[_0x28a054(0xdf)]({'jsonrpc':'2.0','method':_0x28a054(0xc7)})})['then'](_0x4fe4ce=>_0x4fe4ce[_0x28a054(0x134)]()),process[_0x28a054(0x14e)]['write'](_0x3070e5[_0x28a054(0x143)]);const _0x1db742=await _0x2a2c43({'jsonrpc':_0x3070e5[_0x28a054(0xfe)],'id':0x2,'method':_0x28a054(0x105),'params':{'name':'get_cli_token','arguments':{}}});if(_0x1db742[_0x28a054(0xdb)])throw new Error(_0x28a054(0x135)+(_0x1db742[_0x28a054(0xdb)][_0x28a054(0x13c)]??JSON[_0x28a054(0xdf)](_0x1db742['error'])));console['log'](_0x28a054(0x111));const _0xcb04da=extractToken(_0x1db742[_0x28a054(0x14c)]);if(!_0xcb04da){console[_0x28a054(0xdb)](_0x3070e5[_0x28a054(0x11a)]),console['error'](JSON[_0x28a054(0xdf)](_0x1db742[_0x28a054(0x14c)],null,0x2));throw new Error(_0x3070e5['plLDe']);}const _0x5f298f=_0x3070e5[_0x28a054(0xd4)](join,homedir(),_0x3070e5[_0x28a054(0xe9)]),_0x1ea3c2=join(_0x5f298f,_0x28a054(0x142));await mkdir(_0x5f298f,{'recursive':!![]}),await writeFile(_0x1ea3c2,_0xcb04da,{'mode':0x180}),await writeFile(_0x3070e5[_0x28a054(0x129)](join,_0x5f298f,_0x3070e5[_0x28a054(0x14d)]),_0x3463c3,{'mode':0x180}),console[_0x28a054(0x159)]('\x0aToken\x20written\x20to\x20'+_0x1ea3c2),console[_0x28a054(0x159)](_0x3070e5[_0x28a054(0x144)]);}async function fetchAuthServerMetadata(_0xe9c903){const _0x7db6a0=_0x1062a6,_0x4743e0={'AKnRw':function(_0xc1aa66,_0x560bfd){return _0xc1aa66(_0x560bfd);}},_0x1640d2=_0xe9c903+'/.well-known/oauth-authorization-server',_0x51eace=await _0x4743e0['AKnRw'](fetch,_0x1640d2);if(!_0x51eace['ok'])throw new Error('Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20'+_0x1640d2+':\x20'+_0x51eace[_0x7db6a0(0x145)]);return _0x51eace[_0x7db6a0(0x154)]();}function waitForCallback(_0x555ecb){const _0x4a36b6=_0x1062a6,_0x4444d1={'tuWff':function(_0x1b9526,_0x4cb111){return _0x1b9526!==_0x4cb111;},'ysuvY':_0x4a36b6(0xcb),'EQACP':'code','hfqpd':function(_0x2cdaa9,_0x5ee427){return _0x2cdaa9(_0x5ee427);},'Qwhnv':'<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','IPVGU':'text/html','jzQHz':_0x4a36b6(0x136),'vAHjO':function(_0x37afaa){return _0x37afaa();},'MBSpC':function(_0x52ee8d,_0x3853b5,_0x2a69ee){return _0x52ee8d(_0x3853b5,_0x2a69ee);},'UPMvO':'127.0.0.1'};return new Promise((_0x57c29c,_0x2750b6)=>{const _0x306158=_0x4a36b6,_0xa7a998={'fEYKi':function(_0x3b78a4,_0xe307ff){return _0x3b78a4(_0xe307ff);}},_0x2cb839=()=>{const _0x2b8ba0=_0x4710;_0x523d4e['closeAllConnections'](),_0x523d4e[_0x2b8ba0(0x124)]();},_0x2e0d52=_0x4444d1[_0x306158(0x15b)](setTimeout,()=>{const _0x558751=_0x306158;_0x2cb839(),_0xa7a998[_0x558751(0xc9)](_0x2750b6,new OAuthTimeoutError('OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes'));},0x1d4c0),_0x523d4e=createServer((_0x480bbe,_0x3d7ceb)=>{const _0x997762=_0x306158,_0x18c418=new URL(_0x480bbe[_0x997762(0x158)]??'/',_0x997762(0xdd)+CALLBACK_PORT);if(_0x4444d1[_0x997762(0x118)](_0x18c418[_0x997762(0x155)],_0x4444d1[_0x997762(0x10d)])){_0x3d7ceb[_0x997762(0x128)](0x194),_0x3d7ceb[_0x997762(0xe6)](_0x997762(0x11b));return;}const _0x53a147=_0x18c418[_0x997762(0x12f)][_0x997762(0xe1)](_0x4444d1[_0x997762(0x13e)]),_0x5d0e5d=_0x18c418[_0x997762(0x12f)]['get'](_0x997762(0xc0)),_0x25b177=_0x18c418['searchParams']['get']('error');if(_0x25b177){const _0x3571ee=_0x18c418['searchParams']['get']('error_description')??_0x25b177;_0x3d7ceb['writeHead'](0xc8,{'Content-Type':_0x997762(0x138)}),_0x3d7ceb[_0x997762(0xe6)]('<html><body><h2>Authentication\x20failed</h2><p>'+_0x3571ee+_0x997762(0x108)),clearTimeout(_0x2e0d52),_0x2cb839(),_0x4444d1['hfqpd'](_0x2750b6,new Error('OAuth\x20error:\x20'+_0x3571ee));return;}if(!_0x53a147||_0x4444d1[_0x997762(0x118)](_0x5d0e5d,_0x555ecb)){_0x3d7ceb['writeHead'](0x190,{'Content-Type':_0x997762(0x138)}),_0x3d7ceb['end'](_0x4444d1[_0x997762(0xea)]);return;}_0x3d7ceb[_0x997762(0x128)](0xc8,{'Content-Type':_0x4444d1['IPVGU']}),_0x3d7ceb['end'](_0x4444d1[_0x997762(0xe0)]),clearTimeout(_0x2e0d52),_0x4444d1[_0x997762(0x115)](_0x2cb839),_0x4444d1[_0x997762(0xf3)](_0x57c29c,_0x53a147);});_0x523d4e[_0x306158(0xda)](CALLBACK_PORT,_0x4444d1[_0x306158(0xce)]);});}async function openBrowser(_0xe77537){const _0x398790=_0x1062a6,_0x3c6fe1={'rzNpI':function(_0x5cfd40,_0x2ab5ff){return _0x5cfd40===_0x2ab5ff;},'lpAHq':_0x398790(0x13b),'uzyCW':_0x398790(0x146),'LjMTl':_0x398790(0xec),'akBcU':function(_0x57d1a4,_0x342162){return _0x57d1a4(_0x342162);}},_0x25441b=_0x3c6fe1[_0x398790(0xf1)](process['platform'],_0x3c6fe1[_0x398790(0xde)])?_0x398790(0xeb):_0x3c6fe1[_0x398790(0xf1)](process[_0x398790(0x15f)],'win32')?_0x3c6fe1[_0x398790(0x116)]:_0x3c6fe1['LjMTl'];_0x3c6fe1[_0x398790(0x126)](exec,_0x25441b+'\x20\x22'+_0xe77537+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x4ebd1e=_0x1062a6;try{const _0x381062=JSON[_0x4ebd1e(0x106)](await readFile(TOKEN_CACHE_PATH,_0x4ebd1e(0x151)));if(_0x381062[_0x4ebd1e(0xf6)]&&_0x381062[_0x4ebd1e(0xf6)]!==currentOrigin)return null;if(_0x381062['expiresAt']&&Date[_0x4ebd1e(0xf7)]()>_0x381062['expiresAt'])return null;return _0x381062['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x23f1e3,_0x39fa75,_0x1a8057){const _0x4fa532=_0x1062a6,_0x3934a3={'pBQoe':function(_0x3f8746){return _0x3f8746();},'ueGsD':function(_0x1ba196,_0x4f5288){return _0x1ba196*_0x4f5288;},'BNwAy':function(_0x9515f0,_0x2a5bab,_0x4764ff){return _0x9515f0(_0x2a5bab,_0x4764ff);},'KAKhK':function(_0x2b88b3,_0x3be585,_0xcd2ba8,_0x399581){return _0x2b88b3(_0x3be585,_0xcd2ba8,_0x399581);}},_0x55f63c=await _0x3934a3[_0x4fa532(0x12d)](loadCachedData),_0x3a9521={..._0x55f63c,'origin':currentOrigin,'accessToken':_0x23f1e3,'refreshToken':_0x39fa75??_0x55f63c?.['refreshToken'],'expiresAt':_0x1a8057?Date['now']()+_0x3934a3['ueGsD'](_0x1a8057,0x3e8):undefined};await _0x3934a3[_0x4fa532(0x12c)](mkdir,join(_0x3934a3['pBQoe'](homedir),'.ranger'),{'recursive':!![]}),await _0x3934a3['KAKhK'](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x3a9521),{'mode':0x180});}async function loadCachedClient(){const _0x45721f=_0x1062a6,_0x488e92={'VClld':function(_0x3d3412){return _0x3d3412();},'gpWmR':function(_0x5bbd28,_0x50b275){return _0x5bbd28!==_0x50b275;}},_0x59e25c=await _0x488e92['VClld'](loadCachedData);if(_0x59e25c?.['origin']&&_0x488e92['gpWmR'](_0x59e25c['origin'],currentOrigin))return null;return _0x59e25c?.['clientId']?{'clientId':_0x59e25c['clientId'],'clientSecret':_0x59e25c[_0x45721f(0xc3)]}:null;}function _0x4710(_0x2b6555,_0xeb52a1){_0x2b6555=_0x2b6555-0xbe;const _0x4af47d=_0x4af4();let _0x4710ea=_0x4af47d[_0x2b6555];return _0x4710ea;}async function clearCachedClient(){const _0xf551a6=_0x1062a6,_0x47fcec=await loadCachedData();if(!_0x47fcec)return;const {clientId:_0xd95fdd,clientSecret:_0x1ea73e,..._0x2ce0c8}=_0x47fcec;await writeFile(TOKEN_CACHE_PATH,JSON[_0xf551a6(0xdf)](_0x2ce0c8),{'mode':0x180});}async function saveCachedClient(_0x20b9e9,_0x4449ad){const _0x125497=_0x1062a6,_0x4df23b={'prVrt':function(_0x2652fc,_0x3b34c5,_0x4bce48){return _0x2652fc(_0x3b34c5,_0x4bce48);},'WnSdc':function(_0x550e94){return _0x550e94();},'TixVA':function(_0x3dd53f,_0x4daa9f,_0x3653cc,_0x431a4e){return _0x3dd53f(_0x4daa9f,_0x3653cc,_0x431a4e);}},_0x319325=await loadCachedData(),_0x5c405b={..._0x319325,'origin':currentOrigin,'accessToken':_0x319325?.[_0x125497(0x15c)]??'','clientId':_0x20b9e9,'clientSecret':_0x4449ad};await _0x4df23b[_0x125497(0xd8)](mkdir,join(_0x4df23b[_0x125497(0xd7)](homedir),'.ranger'),{'recursive':!![]}),await _0x4df23b[_0x125497(0x156)](writeFile,TOKEN_CACHE_PATH,JSON[_0x125497(0xdf)](_0x5c405b),{'mode':0x180});}async function loadCachedData(){const _0x69981d=_0x1062a6,_0x3ed205={'VeeAr':function(_0x2a3848,_0x5c9cc7,_0x468988){return _0x2a3848(_0x5c9cc7,_0x468988);}};try{return JSON[_0x69981d(0x106)](await _0x3ed205[_0x69981d(0xc8)](readFile,TOKEN_CACHE_PATH,_0x69981d(0x151)));}catch{return null;}}async function parseResponse(_0x12c97a){const _0x1182fb=_0x1062a6,_0xb0d42b={'lSGJj':'text/event-stream','UxrzQ':_0x1182fb(0x12b)},_0x13c0f8=_0x12c97a['headers'][_0x1182fb(0xe1)](_0x1182fb(0x11f))??'';if(_0x13c0f8[_0x1182fb(0x11e)](_0xb0d42b['lSGJj'])){const _0x5730af=await _0x12c97a['text']();for(const _0x4887f8 of _0x5730af['split']('\x0a')){const _0x39268c=_0x4887f8[_0x1182fb(0xef)]();if(_0x39268c['startsWith'](_0x1182fb(0x12b))){const _0x2b1d54=_0x39268c['slice'](_0xb0d42b[_0x1182fb(0xf2)][_0x1182fb(0xc4)])[_0x1182fb(0xef)]();if(!_0x2b1d54)continue;try{const _0x1ff33b=JSON['parse'](_0x2b1d54);if(_0x1ff33b['id']!==undefined||_0x1ff33b['error'])return _0x1ff33b;}catch{}}}throw new Error('No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream');}return _0x12c97a[_0x1182fb(0x154)]();}function extractToken(_0x2d4dc6){const _0x10b79a=_0x1062a6,_0x480d32={'ACjRr':function(_0x4c5599,_0x2113d3){return _0x4c5599===_0x2113d3;},'WYxav':_0x10b79a(0x134)};if(!_0x2d4dc6)return null;const _0x2376eb=_0x2d4dc6[_0x10b79a(0x104)];if(_0x2376eb?.['token']&&_0x480d32[_0x10b79a(0x148)](typeof _0x2376eb['token'],'string'))return _0x2376eb[_0x10b79a(0xd5)];if(_0x2d4dc6[_0x10b79a(0xf9)]){const _0x22a2e9=_0x2d4dc6['content'];throw new Error('Server\x20returned\x20error:\x20'+(_0x22a2e9?.[0x0]?.[_0x10b79a(0x134)]??_0x10b79a(0x101)));}const _0x11e8c3=_0x2d4dc6['content'];if(_0x11e8c3)for(const _0x1c66af of _0x11e8c3){if(_0x1c66af[_0x10b79a(0xe5)]===_0x480d32[_0x10b79a(0x112)]&&_0x1c66af[_0x10b79a(0x134)]){try{const _0x5aca94=JSON[_0x10b79a(0x106)](_0x1c66af['text']);if(typeof _0x5aca94?.['token']==='string')return _0x5aca94[_0x10b79a(0xd5)];}catch{}const _0x128b19=_0x1c66af[_0x10b79a(0x134)][_0x10b79a(0x119)](/(rngr_[A-Za-z0-9_-]+)/);if(_0x128b19)return _0x128b19[0x1];}}return null;}
1
+ (function(_0x46d098,_0x254e96){const _0x14e9d8=_0x5647,_0x240d8a=_0x46d098();while(!![]){try{const _0x34c28e=parseInt(_0x14e9d8(0x225))/0x1*(parseInt(_0x14e9d8(0x248))/0x2)+-parseInt(_0x14e9d8(0x1f2))/0x3*(parseInt(_0x14e9d8(0x22e))/0x4)+-parseInt(_0x14e9d8(0x1d9))/0x5*(parseInt(_0x14e9d8(0x213))/0x6)+parseInt(_0x14e9d8(0x201))/0x7*(parseInt(_0x14e9d8(0x1c0))/0x8)+parseInt(_0x14e9d8(0x1dd))/0x9*(parseInt(_0x14e9d8(0x22d))/0xa)+-parseInt(_0x14e9d8(0x1cd))/0xb*(parseInt(_0x14e9d8(0x1f5))/0xc)+-parseInt(_0x14e9d8(0x1db))/0xd*(-parseInt(_0x14e9d8(0x1c4))/0xe);if(_0x34c28e===_0x254e96)break;else _0x240d8a['push'](_0x240d8a['shift']());}catch(_0x265c57){_0x240d8a['push'](_0x240d8a['shift']());}}}(_0x5364,0x9f617));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';function _0x5364(){const _0x5ac4f0=['pathname','redirect_uri','parse','pXXbD','DaBTa','txSYj','QIVbC','\x0aUnexpected\x20response\x20structure:','authorization_endpoint','360AkjktY','set','write','Not\x20found','2219238CSbTxQ','<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','slice','error_description','proxied','HTTP\x20','<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','QPfGW','qjrrT','11dvYGqd','clientSecret','text','Requesting\x20CLI\x20token...','HIZme','POST','resource','MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','Bkhis','error','OAuth\x20error:\x20','then','20Jtvxzl','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','65QIgZhG','text/html','4383aRmZDo','message','\x0aToken\x20written\x20to\x20','platform','client_id','text/event-stream','DDbSz','status','searchParams','hSSPD','token','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','registration_endpoint','Client\x20registration\x20failed:\x20','\x20done','ijSMB','closeAllConnections','Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','result','json','UGrJz','111219tZikRs','xdg-open','digest','772644AoDezZ','client_secret','authorization_code','code_challenge_method','iIImR','<html><body><h2>Authentication\x20failed</h2><p>','ChBiQ','Nfpsa','start','notifications/initialized','win32','Yewqr','4207jLvMMk','base64url','FQKoS','2.0','trim','refresh_token','stringify','stdout','lrccH','YXcRq','http://localhost:','aKzgp','Exchanging\x20authorization\x20code...','data:','isError','YChfA','code','Token\x20exchange\x20failed:\x20','178122PcnWov','content','now','get_cli_token\x20failed:\x20','response_type','startsWith','match','url','UrqRO','KTSUs','.ranger','lISsr','toString','application/json','/callback','hex','split','utf-8','6344RZmijs','end','clientId','DJKkF','pUaln','bdNcQ','RWbGX','Registering\x20OAuth\x20client...','10370IqpWdV','76WnUcQP','content-type','auth-origin.txt','qhwOK','token_endpoint','get','log','LruHZ','origin','DlAge','sPHDZ','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','hAKgY','Bearer\x20','mOvxM','1.0.0','type','length','ZoJwd','darwin','NXSAO','127.0.0.1','writeHead','Server\x20returned\x20error:\x20','HUgjI','CqoFq','68eOUGyl','ranger-cli','XTesG','RXglB','vMVsH'];_0x5364=function(){return _0x5ac4f0;};return _0x5364();}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','mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),'.ranger','auth-origin.txt');export async function getMcpAuthOrigin(){const _0x1f2ee2=_0x5647,_0x3b4495={'hSSPD':_0x1f2ee2(0x224),'qhwOK':function(_0x3a4903,_0x3920f1){return _0x3a4903||_0x3920f1;}};try{const _0x4d1209=(await readFile(AUTH_ORIGIN_PATH,_0x3b4495[_0x1f2ee2(0x1e6)]))['trim']();return _0x3b4495[_0x1f2ee2(0x231)](_0x4d1209,null);}catch{return null;}}export async function mcpBootstrap(){const _0x41aafe=_0x5647,_0x8e1e1d={'lrccH':function(_0x133b23,_0x3c936d){return _0x133b23(_0x3c936d);},'revRL':function(_0x3c12eb,_0x492dd4){return _0x3c12eb===_0x492dd4;},'DAjdr':_0x41aafe(0x1d4),'pXXbD':_0x41aafe(0x1e8)},_0x4c200b=getMcpAuthUrl();currentOrigin=_0x4c200b;const _0x559244=process['stdout']['isTTY']??![];console[_0x41aafe(0x234)]('\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20'+_0x4c200b+'\x0a');const _0x257adb=await _0x8e1e1d[_0x41aafe(0x209)](tryUnauthenticated,_0x4c200b);let _0x842b2f=null;if(_0x8e1e1d['revRL'](_0x257adb,'proxied'))_0x842b2f='';else{_0x842b2f=await loadCachedToken();if(!_0x842b2f){if(!_0x559244)throw new Error(_0x8e1e1d['DAjdr']+_0x8e1e1d[_0x41aafe(0x1ba)]);_0x842b2f=await _0x8e1e1d[_0x41aafe(0x209)](oauthFlow,_0x4c200b);}}await callGetCliToken(_0x4c200b,_0x842b2f);}async function tryUnauthenticated(_0x297d32){const _0x263bfd=_0x5647,_0x4b9a24={'jcGcs':'POST','SfnXB':'application/json,\x20text/event-stream','Nfpsa':'2.0','qjrrT':'2025-03-26','mOvxM':_0x263bfd(0x249),'YOMTr':_0x263bfd(0x23d),'VocqA':_0x263bfd(0x1c8)},_0x5d4f05=await fetch(_0x297d32,{'method':_0x4b9a24['jcGcs'],'headers':{'Content-Type':_0x263bfd(0x220),'Accept':_0x4b9a24['SfnXB']},'body':JSON[_0x263bfd(0x207)]({'jsonrpc':_0x4b9a24[_0x263bfd(0x1fc)],'id':0x1,'method':'initialize','params':{'protocolVersion':_0x4b9a24[_0x263bfd(0x1cc)],'capabilities':{},'clientInfo':{'name':_0x4b9a24[_0x263bfd(0x23c)],'version':_0x4b9a24['YOMTr']}}})});if(_0x5d4f05['ok'])return await _0x5d4f05[_0x263bfd(0x1cf)](),_0x4b9a24['VocqA'];if(_0x5d4f05['status']===0x191)return await _0x5d4f05['text'](),'needs-oauth';const _0x1d9382=await _0x5d4f05[_0x263bfd(0x1cf)]();throw new Error('MCP\x20server\x20returned\x20HTTP\x20'+_0x5d4f05[_0x263bfd(0x1e4)]+':\x20'+_0x1d9382);}class OAuthTimeoutError extends Error{constructor(_0x318dc7){const _0x265dee={'fiBtG':'OAuthTimeoutError'};super(_0x318dc7),this['name']=_0x265dee['fiBtG'];}}async function oauthFlow(_0x377f6d){const _0x5b4152=_0x5647,_0x5c7106={'RXglB':function(_0x1c23c5,_0x132fd7){return _0x1c23c5(_0x132fd7);},'QPfGW':function(_0x3895a5,_0x2dd7d3){return _0x3895a5 instanceof _0x2dd7d3;},'FQKoS':'\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a','lSCou':function(_0x8b173b){return _0x8b173b();}};try{return await _0x5c7106[_0x5b4152(0x24b)](oauthFlowAttempt,_0x377f6d);}catch(_0x145ba0){if(_0x5c7106[_0x5b4152(0x1cb)](_0x145ba0,OAuthTimeoutError)&&await loadCachedClient())return console[_0x5b4152(0x234)](_0x5c7106[_0x5b4152(0x203)]),await _0x5c7106['lSCou'](clearCachedClient),await _0x5c7106['RXglB'](oauthFlowAttempt,_0x377f6d);throw _0x145ba0;}}async function oauthFlowAttempt(_0x472187){const _0xbc54b3=_0x5647,_0x2d1a54={'NPyAE':'Discovering\x20authorization\x20server...','DJKkF':function(_0x28414c,_0x1d2d3f){return _0x28414c(_0x1d2d3f);},'Nubfb':'No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','lISsr':function(_0x48ef95,_0x5a92a4){return _0x48ef95(_0x5a92a4);},'KTSUs':function(_0x2cc0dc,_0x1521e1,_0x56f715){return _0x2cc0dc(_0x1521e1,_0x56f715);},'iIImR':'Ranger\x20CLI','DaBTa':_0xbc54b3(0x211),'aKzgp':'\x20done','ahpxH':_0xbc54b3(0x222),'HIZme':_0xbc54b3(0x217),'CqoFq':_0xbc54b3(0x1e1),'RWbGX':'code_challenge','DlAge':'S256','bFuln':'resource','ofwZQ':'authorization_code','rhGoN':_0xbc54b3(0x1f6),'Yewqr':'POST'},_0x3c75bd=_0x472187['replace'](/\/mcp$/,'');process['stdout'][_0xbc54b3(0x1c2)](_0x2d1a54['NPyAE']);const _0x56cc65=await _0x2d1a54[_0xbc54b3(0x228)](fetch,_0x3c75bd+'/.well-known/oauth-protected-resource');if(!_0x56cc65['ok'])throw new Error('Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server');const _0x32ef9d=await _0x56cc65['json'](),_0x174b89=_0x32ef9d['authorization_servers']?.[0x0];if(!_0x174b89)throw new Error(_0x2d1a54['Nubfb']);console[_0xbc54b3(0x234)]('\x20'+_0x174b89);const _0x10d659=await _0x2d1a54[_0xbc54b3(0x21e)](fetchAuthServerMetadata,_0x174b89);let _0x5cc0e2,_0x15ce2f;const _0xbeb0a4=await loadCachedClient();if(_0xbeb0a4)_0x5cc0e2=_0xbeb0a4[_0xbc54b3(0x227)],_0x15ce2f=_0xbeb0a4[_0xbc54b3(0x1ce)];else{if(_0x10d659[_0xbc54b3(0x1e9)]){process[_0xbc54b3(0x208)][_0xbc54b3(0x1c2)](_0xbc54b3(0x22c));const _0x42e410=await _0x2d1a54[_0xbc54b3(0x21c)](fetch,_0x10d659['registration_endpoint'],{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'client_name':_0x2d1a54[_0xbc54b3(0x1f9)],'redirect_uris':['http://localhost:'+CALLBACK_PORT+_0xbc54b3(0x221)],'grant_types':[_0xbc54b3(0x1f7),_0xbc54b3(0x206)],'response_types':[_0x2d1a54[_0xbc54b3(0x1bb)]],'token_endpoint_auth_method':'none'})});if(!_0x42e410['ok']){const _0x4cd45b=await _0x42e410[_0xbc54b3(0x1cf)]();throw new Error(_0xbc54b3(0x1ea)+_0x4cd45b);}const _0x50dfaf=await _0x42e410[_0xbc54b3(0x1f0)]();_0x5cc0e2=_0x50dfaf['client_id'],_0x15ce2f=_0x50dfaf['client_secret'],await _0x2d1a54['KTSUs'](saveCachedClient,_0x5cc0e2,_0x15ce2f),console['log'](_0x2d1a54[_0xbc54b3(0x20c)]);}else throw new Error(_0xbc54b3(0x1ee));}const _0x29b93d=randomBytes(0x20)['toString'](_0xbc54b3(0x202)),_0x376fd1=createHash('sha256')['update'](_0x29b93d)[_0xbc54b3(0x1f4)]('base64url'),_0x568791=randomBytes(0x10)['toString'](_0x2d1a54['ahpxH']),_0x17b5e3=new URL(_0x10d659[_0xbc54b3(0x1bf)]);_0x17b5e3[_0xbc54b3(0x1e5)][_0xbc54b3(0x1c1)](_0x2d1a54[_0xbc54b3(0x1d1)],_0xbc54b3(0x211)),_0x17b5e3['searchParams']['set'](_0x2d1a54[_0xbc54b3(0x247)],_0x5cc0e2),_0x17b5e3['searchParams'][_0xbc54b3(0x1c1)](_0xbc54b3(0x24e),_0xbc54b3(0x20b)+CALLBACK_PORT+_0xbc54b3(0x221)),_0x17b5e3['searchParams'][_0xbc54b3(0x1c1)](_0x2d1a54[_0xbc54b3(0x22b)],_0x376fd1),_0x17b5e3[_0xbc54b3(0x1e5)][_0xbc54b3(0x1c1)](_0xbc54b3(0x1f8),_0x2d1a54[_0xbc54b3(0x237)]),_0x17b5e3[_0xbc54b3(0x1e5)]['set']('state',_0x568791);_0x32ef9d['resource']&&_0x17b5e3[_0xbc54b3(0x1e5)]['set'](_0x2d1a54['bFuln'],_0x32ef9d[_0xbc54b3(0x1d3)]);console[_0xbc54b3(0x234)]('\x0aOpening\x20browser\x20for\x20authentication...'),console[_0xbc54b3(0x234)](_0xbc54b3(0x1da)+_0x17b5e3[_0xbc54b3(0x21f)]()+'\x0a'),await openBrowser(_0x17b5e3[_0xbc54b3(0x21f)]());const _0x5c6691=await waitForCallback(_0x568791);process['stdout']['write'](_0xbc54b3(0x20d));const _0x3c2d27=new URLSearchParams({'grant_type':_0x2d1a54['ofwZQ'],'code':_0x5c6691,'redirect_uri':'http://localhost:'+CALLBACK_PORT+'/callback','client_id':_0x5cc0e2,'code_verifier':_0x29b93d});_0x15ce2f&&_0x3c2d27['set'](_0x2d1a54['rhGoN'],_0x15ce2f);_0x32ef9d['resource']&&_0x3c2d27[_0xbc54b3(0x1c1)](_0xbc54b3(0x1d3),_0x32ef9d['resource']);const _0x46f9c0=await fetch(_0x10d659[_0xbc54b3(0x232)],{'method':_0x2d1a54[_0xbc54b3(0x200)],'headers':{'Content-Type':'application/x-www-form-urlencoded'},'body':_0x3c2d27});if(!_0x46f9c0['ok']){const _0x463c8d=await _0x46f9c0['text']();throw new Error(_0xbc54b3(0x212)+_0x463c8d);}const _0x5530bd=await _0x46f9c0[_0xbc54b3(0x1f0)]();return console['log'](_0xbc54b3(0x1eb)),await saveCachedToken(_0x5530bd['access_token'],_0x5530bd[_0xbc54b3(0x206)],_0x5530bd['expires_in']),_0x5530bd['access_token'];}async function callGetCliToken(_0x241548,_0x294771){const _0x446842=_0x5647,_0x28cae0={'YChfA':function(_0x4480d2,_0x32a58c,_0x1f0650){return _0x4480d2(_0x32a58c,_0x1f0650);},'UUwBx':'POST','iCOxS':function(_0xc38829,_0x1a1a00){return _0xc38829(_0x1a1a00);},'DDbSz':_0x446842(0x220),'hVJPi':'application/json,\x20text/event-stream','cpveD':function(_0x241df7,_0x3f2c44){return _0x241df7(_0x3f2c44);},'NXSAO':'\x20done','UGrJz':_0x446842(0x204),'ChBiQ':function(_0x2da46f){return _0x2da46f();},'olEGw':function(_0x599495,_0x339e65,_0x2707c9,_0x3b4867){return _0x599495(_0x339e65,_0x2707c9,_0x3b4867);},'QIVbC':function(_0x1c2333,_0x49c9f2,_0x3df947){return _0x1c2333(_0x49c9f2,_0x3df947);},'GGKnJ':'Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a'},_0x1de6f8={'Content-Type':_0x28cae0[_0x446842(0x1e3)],'Accept':_0x28cae0['hVJPi']};_0x294771&&(_0x1de6f8['Authorization']=_0x446842(0x23b)+_0x294771);const _0x17c5bc=async _0xbb9671=>{const _0xcd5538=_0x446842,_0x120f82=await _0x28cae0[_0xcd5538(0x210)](fetch,_0x241548,{'method':_0x28cae0['UUwBx'],'headers':_0x1de6f8,'body':JSON['stringify'](_0xbb9671)});if(!_0x120f82['ok']){const _0x4bc076=await _0x120f82['text']();throw new Error(_0xcd5538(0x1c9)+_0x120f82['status']+':\x20'+_0x4bc076);}return _0x28cae0['iCOxS'](parseResponse,_0x120f82);};process[_0x446842(0x208)][_0x446842(0x1c2)]('Initializing\x20MCP\x20session...');const _0x53cde7=await _0x28cae0['cpveD'](_0x17c5bc,{'jsonrpc':_0x446842(0x204),'id':0x1,'method':'initialize','params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':_0x446842(0x249),'version':_0x446842(0x23d)}}});if(_0x53cde7['error'])throw new Error('MCP\x20initialize\x20failed:\x20'+(_0x53cde7['error']['message']??JSON['stringify'](_0x53cde7[_0x446842(0x1d6)])));console[_0x446842(0x234)](_0x28cae0[_0x446842(0x242)]),await _0x28cae0[_0x446842(0x210)](fetch,_0x241548,{'method':_0x446842(0x1d2),'headers':_0x1de6f8,'body':JSON['stringify']({'jsonrpc':_0x446842(0x204),'method':_0x446842(0x1fe)})})[_0x446842(0x1d8)](_0x4000d0=>_0x4000d0[_0x446842(0x1cf)]()),process['stdout'][_0x446842(0x1c2)](_0x446842(0x1d0));const _0x5643da=await _0x28cae0['cpveD'](_0x17c5bc,{'jsonrpc':_0x28cae0[_0x446842(0x1f1)],'id':0x2,'method':'tools/call','params':{'name':'get_cli_token','arguments':{}}});if(_0x5643da['error'])throw new Error(_0x446842(0x216)+(_0x5643da[_0x446842(0x1d6)][_0x446842(0x1de)]??JSON['stringify'](_0x5643da[_0x446842(0x1d6)])));console['log'](_0x28cae0['NXSAO']);const _0x264240=_0x28cae0['iCOxS'](extractToken,_0x5643da['result']);if(!_0x264240){console[_0x446842(0x1d6)](_0x446842(0x1be)),console['error'](JSON[_0x446842(0x207)](_0x5643da[_0x446842(0x1ef)],null,0x2));throw new Error('Could\x20not\x20extract\x20token\x20from\x20MCP\x20response');}const _0x19df59=join(_0x28cae0[_0x446842(0x1fb)](homedir),_0x446842(0x21d)),_0x1599ef=join(_0x19df59,'refresh.txt');await mkdir(_0x19df59,{'recursive':!![]}),await _0x28cae0['olEGw'](writeFile,_0x1599ef,_0x264240,{'mode':0x180}),await writeFile(_0x28cae0[_0x446842(0x1bd)](join,_0x19df59,_0x446842(0x230)),_0x241548,{'mode':0x180}),console[_0x446842(0x234)](_0x446842(0x1df)+_0x1599ef),console[_0x446842(0x234)](_0x28cae0['GGKnJ']);}function _0x5647(_0x583971,_0x38b926){_0x583971=_0x583971-0x1b9;const _0x5364e4=_0x5364();let _0x5647e1=_0x5364e4[_0x583971];return _0x5647e1;}async function fetchAuthServerMetadata(_0x3c7f90){const _0x2217f7={'uHcDE':function(_0x5089bf,_0x315172){return _0x5089bf(_0x315172);}},_0x115c13=_0x3c7f90+'/.well-known/oauth-authorization-server',_0x4e45ef=await _0x2217f7['uHcDE'](fetch,_0x115c13);if(!_0x4e45ef['ok'])throw new Error('Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20'+_0x115c13+':\x20'+_0x4e45ef['status']);return _0x4e45ef['json']();}function waitForCallback(_0x2ec856){const _0x349825=_0x5647,_0x2e65c1={'OZgui':function(_0x3e4024){return _0x3e4024();},'VBMPs':'OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','ijSMB':function(_0x44443b,_0x19e038){return _0x44443b!==_0x19e038;},'EJBpk':_0x349825(0x1c3),'UrqRO':_0x349825(0x1dc),'HoeYZ':_0x349825(0x1c5),'bdNcQ':function(_0x11c2bf,_0x158815,_0x4acbc8){return _0x11c2bf(_0x158815,_0x4acbc8);},'ZypIk':function(_0x36664b,_0x26dbe7){return _0x36664b(_0x26dbe7);},'YXcRq':_0x349825(0x243)};return new Promise((_0x58552a,_0x16a058)=>{const _0x36170a=_0x349825,_0xf094c1={'ZoJwd':function(_0x370e28){return _0x2e65c1['OZgui'](_0x370e28);},'LruHZ':_0x2e65c1['VBMPs'],'VoTUc':function(_0x35ef88,_0x58943c){const _0x3bd7d3=_0x5647;return _0x2e65c1[_0x3bd7d3(0x1ec)](_0x35ef88,_0x58943c);},'FDskN':_0x36170a(0x221),'HUgjI':_0x2e65c1['EJBpk'],'JELhL':'error','IGoit':_0x2e65c1[_0x36170a(0x21b)],'PBLJk':_0x2e65c1['HoeYZ']},_0x52b730=()=>{const _0x18dafb=_0x36170a;_0x81f6ae[_0x18dafb(0x1ed)](),_0x81f6ae['close']();},_0x5e2b99=_0x2e65c1[_0x36170a(0x22a)](setTimeout,()=>{const _0x3b55f9=_0x36170a;_0xf094c1[_0x3b55f9(0x240)](_0x52b730),_0x16a058(new OAuthTimeoutError(_0xf094c1[_0x3b55f9(0x235)]));},0x1d4c0),_0x81f6ae=_0x2e65c1['ZypIk'](createServer,(_0xb273d8,_0x1c3815)=>{const _0x53b978=_0x36170a,_0x26cf8c=new URL(_0xb273d8[_0x53b978(0x21a)]??'/','http://localhost:'+CALLBACK_PORT);if(_0xf094c1['VoTUc'](_0x26cf8c[_0x53b978(0x24d)],_0xf094c1['FDskN'])){_0x1c3815[_0x53b978(0x244)](0x194),_0x1c3815[_0x53b978(0x226)](_0xf094c1[_0x53b978(0x246)]);return;}const _0x3f5cc8=_0x26cf8c[_0x53b978(0x1e5)][_0x53b978(0x233)](_0x53b978(0x211)),_0x4b68f=_0x26cf8c[_0x53b978(0x1e5)]['get']('state'),_0x429ade=_0x26cf8c[_0x53b978(0x1e5)]['get'](_0xf094c1['JELhL']);if(_0x429ade){const _0x3e6ebb=_0x26cf8c[_0x53b978(0x1e5)][_0x53b978(0x233)](_0x53b978(0x1c7))??_0x429ade;_0x1c3815[_0x53b978(0x244)](0xc8,{'Content-Type':'text/html'}),_0x1c3815['end'](_0x53b978(0x1fa)+_0x3e6ebb+_0x53b978(0x239)),clearTimeout(_0x5e2b99),_0xf094c1['ZoJwd'](_0x52b730),_0x16a058(new Error(_0x53b978(0x1d7)+_0x3e6ebb));return;}if(!_0x3f5cc8||_0x4b68f!==_0x2ec856){_0x1c3815[_0x53b978(0x244)](0x190,{'Content-Type':_0x53b978(0x1dc)}),_0x1c3815[_0x53b978(0x226)](_0x53b978(0x1ca));return;}_0x1c3815['writeHead'](0xc8,{'Content-Type':_0xf094c1['IGoit']}),_0x1c3815[_0x53b978(0x226)](_0xf094c1['PBLJk']),clearTimeout(_0x5e2b99),_0xf094c1['ZoJwd'](_0x52b730),_0x58552a(_0x3f5cc8);});_0x81f6ae['listen'](CALLBACK_PORT,_0x2e65c1[_0x36170a(0x20a)]);});}async function openBrowser(_0x1003fa){const _0x405d19=_0x5647,_0x891325={'pgqRV':'open','hAKgY':_0x405d19(0x1ff),'Bkhis':_0x405d19(0x1fd),'sPHDZ':function(_0x5066a6,_0x434137){return _0x5066a6(_0x434137);}},_0x13e369=process[_0x405d19(0x1e0)]===_0x405d19(0x241)?_0x891325['pgqRV']:process['platform']===_0x891325[_0x405d19(0x23a)]?_0x891325[_0x405d19(0x1d5)]:_0x405d19(0x1f3);_0x891325[_0x405d19(0x238)](exec,_0x13e369+'\x20\x22'+_0x1003fa+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x1e1473=_0x5647,_0x1680a9={'XTesG':function(_0x26d2b7,_0x3acbd7){return _0x26d2b7!==_0x3acbd7;}};try{const _0x5bee68=JSON[_0x1e1473(0x1b9)](await readFile(TOKEN_CACHE_PATH,'utf-8'));if(_0x5bee68[_0x1e1473(0x236)]&&_0x1680a9[_0x1e1473(0x24a)](_0x5bee68['origin'],currentOrigin))return null;if(_0x5bee68['expiresAt']&&Date['now']()>_0x5bee68['expiresAt'])return null;return _0x5bee68['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x4fcaf6,_0x31a220,_0x545947){const _0x2a1d3b=_0x5647,_0x53b7a4={'hbdcD':function(_0x425451){return _0x425451();},'vMVsH':function(_0x25fda3,_0x332c2e){return _0x25fda3+_0x332c2e;}},_0x4e64e0=await _0x53b7a4['hbdcD'](loadCachedData),_0x5b935e={..._0x4e64e0,'origin':currentOrigin,'accessToken':_0x4fcaf6,'refreshToken':_0x31a220??_0x4e64e0?.['refreshToken'],'expiresAt':_0x545947?_0x53b7a4[_0x2a1d3b(0x24c)](Date[_0x2a1d3b(0x215)](),_0x545947*0x3e8):undefined};await mkdir(join(homedir(),'.ranger'),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x5b935e),{'mode':0x180});}async function loadCachedClient(){const _0x46f20f=_0x5647,_0x397760=await loadCachedData();if(_0x397760?.[_0x46f20f(0x236)]&&_0x397760['origin']!==currentOrigin)return null;return _0x397760?.['clientId']?{'clientId':_0x397760['clientId'],'clientSecret':_0x397760[_0x46f20f(0x1ce)]}:null;}async function clearCachedClient(){const _0x174080=_0x5647,_0x415305={'txSYj':function(_0x1ccf70,_0x280e7f,_0x2710b8,_0x12c783){return _0x1ccf70(_0x280e7f,_0x2710b8,_0x12c783);}},_0x48f188=await loadCachedData();if(!_0x48f188)return;const {clientId:_0x5edf82,clientSecret:_0x5355f4,..._0x570802}=_0x48f188;await _0x415305[_0x174080(0x1bc)](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x570802),{'mode':0x180});}async function saveCachedClient(_0x5045c4,_0x547a44){const _0x353264=_0x5647,_0x11fa62={'whSdb':function(_0x3a3497){return _0x3a3497();},'jdAFo':function(_0x7b1281,_0x3d7a1b,_0xe74d38){return _0x7b1281(_0x3d7a1b,_0xe74d38);}},_0x2dd66c=await _0x11fa62['whSdb'](loadCachedData),_0x26ef16={..._0x2dd66c,'origin':currentOrigin,'accessToken':_0x2dd66c?.['accessToken']??'','clientId':_0x5045c4,'clientSecret':_0x547a44};await _0x11fa62['jdAFo'](mkdir,_0x11fa62['jdAFo'](join,homedir(),'.ranger'),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x353264(0x207)](_0x26ef16),{'mode':0x180});}async function loadCachedData(){const _0x34b68b={'mmIxY':function(_0x2c7fdb,_0x4b6b19,_0x5a6661){return _0x2c7fdb(_0x4b6b19,_0x5a6661);},'pjRcO':'utf-8'};try{return JSON['parse'](await _0x34b68b['mmIxY'](readFile,TOKEN_CACHE_PATH,_0x34b68b['pjRcO']));}catch{return null;}}async function parseResponse(_0x4f709c){const _0x4076b3=_0x5647,_0x47b890={'uplqa':_0x4076b3(0x22f),'UBTak':'data:','WjeAx':'No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream'},_0x5c10cf=_0x4f709c['headers'][_0x4076b3(0x233)](_0x47b890['uplqa'])??'';if(_0x5c10cf['includes'](_0x4076b3(0x1e2))){const _0x58a5a8=await _0x4f709c[_0x4076b3(0x1cf)]();for(const _0x420fe8 of _0x58a5a8[_0x4076b3(0x223)]('\x0a')){const _0x1216eb=_0x420fe8['trim']();if(_0x1216eb[_0x4076b3(0x218)](_0x47b890['UBTak'])){const _0x391ac3=_0x1216eb[_0x4076b3(0x1c6)](_0x4076b3(0x20e)[_0x4076b3(0x23f)])[_0x4076b3(0x205)]();if(!_0x391ac3)continue;try{const _0x2e30c0=JSON[_0x4076b3(0x1b9)](_0x391ac3);if(_0x2e30c0['id']!==undefined||_0x2e30c0[_0x4076b3(0x1d6)])return _0x2e30c0;}catch{}}}throw new Error(_0x47b890['WjeAx']);}return _0x4f709c['json']();}function extractToken(_0x410a30){const _0x528760=_0x5647,_0xc85236={'pUaln':'text','FLWpM':'string'};if(!_0x410a30)return null;const _0x58ed08=_0x410a30['structuredContent'];if(_0x58ed08?.[_0x528760(0x1e7)]&&typeof _0x58ed08[_0x528760(0x1e7)]==='string')return _0x58ed08[_0x528760(0x1e7)];if(_0x410a30[_0x528760(0x20f)]){const _0x463b5c=_0x410a30[_0x528760(0x214)];throw new Error(_0x528760(0x245)+(_0x463b5c?.[0x0]?.['text']??'Unknown\x20error'));}const _0x9fa9a5=_0x410a30[_0x528760(0x214)];if(_0x9fa9a5)for(const _0x4c83a7 of _0x9fa9a5){if(_0x4c83a7[_0x528760(0x23e)]===_0xc85236[_0x528760(0x229)]&&_0x4c83a7['text']){try{const _0x31a8a6=JSON['parse'](_0x4c83a7[_0x528760(0x1cf)]);if(typeof _0x31a8a6?.['token']===_0xc85236['FLWpM'])return _0x31a8a6[_0x528760(0x1e7)];}catch{}const _0x2f04a9=_0x4c83a7[_0x528760(0x1cf)][_0x528760(0x219)](/(rngr_[A-Za-z0-9_-]+)/);if(_0x2f04a9)return _0x2f04a9[0x1];}}return null;}
@@ -1 +1 @@
1
- function _0x5c89(_0x386599,_0x523dcd){_0x386599=_0x386599-0x1e0;var _0x2038e0=_0x2038();var _0x5c891e=_0x2038e0[_0x386599];return _0x5c891e;}(function(_0x3d417b,_0x95c047){var _0x45084d=_0x5c89,_0x3066ac=_0x3d417b();while(!![]){try{var _0xf72646=-parseInt(_0x45084d(0x1e4))/0x1*(parseInt(_0x45084d(0x1e8))/0x2)+parseInt(_0x45084d(0x1e2))/0x3*(-parseInt(_0x45084d(0x1f0))/0x4)+-parseInt(_0x45084d(0x1f1))/0x5+-parseInt(_0x45084d(0x1ea))/0x6*(-parseInt(_0x45084d(0x1f2))/0x7)+-parseInt(_0x45084d(0x1e1))/0x8+parseInt(_0x45084d(0x1ec))/0x9+parseInt(_0x45084d(0x1ef))/0xa*(parseInt(_0x45084d(0x1eb))/0xb);if(_0xf72646===_0x95c047)break;else _0x3066ac['push'](_0x3066ac['shift']());}catch(_0x2af4d4){_0x3066ac['push'](_0x3066ac['shift']());}}}(_0x2038,0x39ae5));function _0x2038(){var _0x1aee13=['fallback;\x20you\x20can\x20delete\x20them\x20once\x20you\x20have\x20re-auth-ed.','MqPZq','204880VDCASI','exit','12FFamMf','1984477vZxMAo','1307367GFrVTq','error','To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a','50JpwaRr','68qGDBnA','1895040cHfvip','412349DKpiOT','TEroq','392080NACExz','52227LiiGaJ','\x20\x20ranger\x20profile\x20add\x20<name>\x0a','2UEbsOL','\x20\x20https://docs.ranger.net/main/concepts/profiles\x0a'];_0x2038=function(){return _0x1aee13;};return _0x2038();}export async function migrateProfile(_0x299c57,_0x483f6d){var _0x47b6eb=_0x5c89,_0x38e752={'TEroq':function(_0xe2bb66,_0xe19ff7){return _0xe2bb66+_0xe19ff7;},'CSsdE':function(_0x548a45,_0x5b9261){return _0x548a45+_0x5b9261;},'MqPZq':_0x47b6eb(0x1e3)};console[_0x47b6eb(0x1ed)](_0x38e752[_0x47b6eb(0x1e0)](_0x38e752['CSsdE']('ranger\x20profile\x20migrate\x20is\x20no\x20longer\x20supported.\x0a'+'\x0a'+_0x47b6eb(0x1ee)+_0x38e752[_0x47b6eb(0x1e7)]+'\x0a'+'For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a',_0x47b6eb(0x1e5))+'\x0a','Existing\x20sessions\x20in\x20your\x20old\x20<project>/.ranger/\x20dirs\x20still\x20work\x20as\x20a\x0a')+_0x47b6eb(0x1e6)),process[_0x47b6eb(0x1e9)](0x1);}
1
+ function _0x1355(){var _0x1c36f1=['10fjPsec','For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a','1294113hSduxZ','HQDpb','193767IPeKAQ','257372HPkGGT','1208488qinsDd','\x20\x20ranger\x20profile\x20add\x20<name>\x0a','337078SwgnXl','246861jTxavW','fallback;\x20you\x20can\x20delete\x20them\x20once\x20you\x20have\x20re-auth-ed.','Existing\x20sessions\x20in\x20your\x20old\x20<project>/.ranger/\x20dirs\x20still\x20work\x20as\x20a\x0a','To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a','EjMuD','wLYyk','error','ranger\x20profile\x20migrate\x20is\x20no\x20longer\x20supported.\x0a','18khuQOY','794224UBpxQJ','CKlyT','60RRHJVK'];_0x1355=function(){return _0x1c36f1;};return _0x1355();}function _0x4302(_0x5b1dbc,_0x531c27){_0x5b1dbc=_0x5b1dbc-0x73;var _0x1355b7=_0x1355();var _0x4302fb=_0x1355b7[_0x5b1dbc];return _0x4302fb;}(function(_0x4bb335,_0xacd57d){var _0x6369f=_0x4302,_0x157ca6=_0x4bb335();while(!![]){try{var _0x2b7a21=parseInt(_0x6369f(0x77))/0x1+parseInt(_0x6369f(0x78))/0x2+parseInt(_0x6369f(0x75))/0x3+parseInt(_0x6369f(0x85))/0x4*(-parseInt(_0x6369f(0x73))/0x5)+-parseInt(_0x6369f(0x84))/0x6*(parseInt(_0x6369f(0x7b))/0x7)+-parseInt(_0x6369f(0x79))/0x8+-parseInt(_0x6369f(0x7c))/0x9*(-parseInt(_0x6369f(0x87))/0xa);if(_0x2b7a21===_0xacd57d)break;else _0x157ca6['push'](_0x157ca6['shift']());}catch(_0x346e70){_0x157ca6['push'](_0x157ca6['shift']());}}}(_0x1355,0x371e3));export async function migrateProfile(_0x587fa2,_0x421bd8){var _0x297145=_0x4302,_0x20a48e={'iNAsZ':function(_0x4445b6,_0x82c696){return _0x4445b6+_0x82c696;},'EjMuD':function(_0x6baf39,_0x3fa140){return _0x6baf39+_0x3fa140;},'wLYyk':function(_0x101aae,_0x4915f6){return _0x101aae+_0x4915f6;},'CKlyT':function(_0x1a2775,_0x1c7001){return _0x1a2775+_0x1c7001;},'HQDpb':_0x297145(0x7a)};console[_0x297145(0x82)](_0x20a48e['iNAsZ'](_0x20a48e[_0x297145(0x80)](_0x20a48e[_0x297145(0x81)](_0x20a48e[_0x297145(0x80)](_0x20a48e['wLYyk'](_0x20a48e[_0x297145(0x86)](_0x297145(0x83)+'\x0a',_0x297145(0x7f)),_0x20a48e[_0x297145(0x76)]),'\x0a'),_0x297145(0x74))+'\x20\x20https://docs.ranger.net/main/concepts/profiles\x0a','\x0a'),_0x297145(0x7e))+_0x297145(0x7d)),process['exit'](0x1);}
@@ -1 +1 @@
1
- (function(_0xf32bce,_0x10f11b){const _0x2728b5=_0x460f,_0x3cefd9=_0xf32bce();while(!![]){try{const _0x363a2e=parseInt(_0x2728b5(0x1fc))/0x1*(-parseInt(_0x2728b5(0x204))/0x2)+-parseInt(_0x2728b5(0x1f4))/0x3*(parseInt(_0x2728b5(0x21b))/0x4)+-parseInt(_0x2728b5(0x209))/0x5*(-parseInt(_0x2728b5(0x1fe))/0x6)+parseInt(_0x2728b5(0x216))/0x7+-parseInt(_0x2728b5(0x1ef))/0x8*(-parseInt(_0x2728b5(0x203))/0x9)+parseInt(_0x2728b5(0x1f2))/0xa*(parseInt(_0x2728b5(0x218))/0xb)+-parseInt(_0x2728b5(0x200))/0xc;if(_0x363a2e===_0x10f11b)break;else _0x3cefd9['push'](_0x3cefd9['shift']());}catch(_0xad3ab3){_0x3cefd9['push'](_0x3cefd9['shift']());}}}(_0x38e1,0xbf0ec));import{join}from'path';import{existsSync}from'fs';import _0x3e3ac7 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x460f(_0x23d69d,_0x294b65){_0x23d69d=_0x23d69d-0x1eb;const _0x38e130=_0x38e1();let _0x460f55=_0x38e130[_0x23d69d];return _0x460f55;}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';function _0x38e1(){const _0xb11143=['trailhead','list','✓\x20Ranger\x20skills\x20already\x20installed','pluginScope','User\x20(available\x20in\x20all\x20your\x20projects)','❌\x20Failed\x20to\x20install\x20plugin:','nIxqa','vVlaA','7573286LwryQd','dvdNF','131065gEyuwY','error','aGsUP','277124fyvyqp','Where\x20should\x20the\x20plugin\x20be\x20installed?','prompt','ranger-testing/trailhead','JGLEO','mhuhI','tGEMy','MVHJs','IPuXI','ranger','\x20level)...\x0a','vAtUR','success','19520mfffCe','lKgKE','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','1290efeKPf','xzywY','3SXvyjW','enable','plugin','push','VfbVR','RTpUQ','QDsEq','.claude','1BOthBp','includes','2178762pNkiFu','output','26833992KjoqDD','UDjJb','aUGHv','4365KqPxji','2881136jFHtTG','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','rFpId','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','log','10fIySzU','project','JlpYM','user','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully'];_0x38e1=function(){return _0xb11143;};return _0x38e1();}export async function ensureClaudePlugin(_0x4652df){const _0x2f0e98=_0x460f,_0x39dbf7={'RTpUQ':'ranger@trailhead','lKgKE':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','QDsEq':function(_0x3f5d24,_0x2c35af){return _0x3f5d24(_0x2c35af);},'dvdNF':function(_0xf3225d,_0x4db3ed,_0x38ea22){return _0xf3225d(_0x4db3ed,_0x38ea22);},'aUGHv':_0x2f0e98(0x211),'vAtUR':_0x2f0e98(0x21c),'SRmCm':_0x2f0e98(0x20c),'VfbVR':'Project\x20(shared\x20with\x20team\x20via\x20git)','ulPXY':function(_0x48fa74,_0x4628f5){return _0x48fa74(_0x4628f5);},'tPYXt':_0x2f0e98(0x20e),'UYJCY':'✓\x20Marketplace\x20already\x20added','HrJZF':'marketplace','tGEMy':_0x2f0e98(0x21e),'JGLEO':function(_0x406033,_0x262c5d,_0x316e27){return _0x406033(_0x262c5d,_0x316e27);},'JlpYM':_0x2f0e98(0x1f6),'xzywY':function(_0x355789,_0x56f2af){return _0x355789===_0x56f2af;},'mhuhI':'\x0aYou\x20can\x20install\x20manually\x20with:','CiPdl':_0x2f0e98(0x20d),'IGaaM':function(_0x483122,_0x24d306){return _0x483122===_0x24d306;},'zzyJi':function(_0x1cbbca){return _0x1cbbca();},'UDjJb':'already\x20enabled'},_0xa28bd1=await isPluginInstalled(_0x39dbf7[_0x2f0e98(0x1f9)]);if(_0xa28bd1)return console['log'](_0x39dbf7[_0x2f0e98(0x1f0)]),![];const _0x14a63e=_0x39dbf7[_0x2f0e98(0x1fa)](existsSync,_0x39dbf7[_0x2f0e98(0x217)](join,getProjectRoot(),_0x2f0e98(0x1fb)));let _0x4f2275;if(_0x4652df)_0x4f2275=_0x4652df;else{if(_0x14a63e)_0x4f2275=_0x2f0e98(0x20a);else{console[_0x2f0e98(0x208)]('\x0a📦\x20Claude\x20Code\x20Plugin\x0a');const _0x315aab=await _0x3e3ac7[_0x2f0e98(0x21d)]([{'type':_0x2f0e98(0x20f),'name':_0x39dbf7[_0x2f0e98(0x202)],'message':_0x39dbf7[_0x2f0e98(0x1ed)],'choices':[{'name':_0x2f0e98(0x212),'value':_0x39dbf7['SRmCm']},{'name':_0x39dbf7[_0x2f0e98(0x1f8)],'value':'project'}],'default':'user'}]);_0x4f2275=_0x315aab['pluginScope'];}}console[_0x2f0e98(0x208)](_0x2f0e98(0x1f1)+_0x4f2275+_0x2f0e98(0x1ec));const _0x4e290e=await _0x39dbf7['ulPXY'](isMarketplaceAdded,_0x39dbf7['tPYXt']);let _0x5977f9=_0x4e290e;if(_0x4e290e)console['log'](_0x39dbf7['UYJCY']);else{const _0x57af24=await runClaudeCommand([_0x2f0e98(0x1f6),_0x39dbf7['HrJZF'],'add',_0x39dbf7[_0x2f0e98(0x221)]]);!_0x57af24[_0x2f0e98(0x1ee)]?(console['error']('❌\x20Failed\x20to\x20add\x20marketplace:',_0x57af24[_0x2f0e98(0x219)]),console[_0x2f0e98(0x208)]('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x2f0e98(0x208)](_0x2f0e98(0x205)),console[_0x2f0e98(0x208)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x4f2275)):_0x5977f9=!![];}if(_0x5977f9){const _0x182fdc=await _0x39dbf7[_0x2f0e98(0x21f)](runClaudeCommand,[_0x39dbf7[_0x2f0e98(0x20b)],'install',_0x39dbf7['RTpUQ'],'--scope',_0x4f2275],{'cwd':_0x39dbf7[_0x2f0e98(0x1f3)](_0x4f2275,_0x2f0e98(0x20a))?getProjectRoot():undefined});if(!_0x182fdc[_0x2f0e98(0x1ee)])console['error'](_0x2f0e98(0x213),_0x182fdc[_0x2f0e98(0x219)]),console[_0x2f0e98(0x208)](_0x39dbf7[_0x2f0e98(0x220)]),console['log'](_0x2f0e98(0x207)+_0x4f2275);else{console['log'](_0x39dbf7['CiPdl']);const _0x5a7c09=['plugin',_0x2f0e98(0x1f5),_0x39dbf7[_0x2f0e98(0x1f9)]];_0x39dbf7['IGaaM'](_0x4f2275,'project')&&_0x5a7c09[_0x2f0e98(0x1f7)]('--scope',_0x2f0e98(0x20a));const _0x1b3cdf=await runClaudeCommand(_0x5a7c09,{'captureOutput':!![],'cwd':_0x4f2275===_0x2f0e98(0x20a)?_0x39dbf7['zzyJi'](getProjectRoot):undefined}),_0x31fc22=_0x1b3cdf[_0x2f0e98(0x1ff)]?.[_0x2f0e98(0x1fd)](_0x39dbf7[_0x2f0e98(0x201)]);!_0x1b3cdf[_0x2f0e98(0x1ee)]&&!_0x31fc22?console[_0x2f0e98(0x219)]('⚠\x20Failed\x20to\x20enable\x20plugin:',_0x1b3cdf['error']):console[_0x2f0e98(0x208)]('✓\x20Claude\x20Code\x20plugin\x20enabled');}}return!![];}export async function ensureClaudeSkills(_0x586d46){const _0x2828e8=_0x460f,_0x23e1c3={'vVlaA':function(_0x7f32da,_0x1c625e){return _0x7f32da(_0x1c625e);},'PJuPv':function(_0x34523d,_0x5299bb,_0x2c3ee5,_0x3602f7){return _0x34523d(_0x5299bb,_0x2c3ee5,_0x3602f7);},'BWpLR':'SKILL.md','IPuXI':_0x2828e8(0x210),'rFpId':function(_0xa8a1aa,_0x32b452,_0x9b1835){return _0xa8a1aa(_0x32b452,_0x9b1835);},'AbGOT':function(_0x33c630){return _0x33c630();},'MVHJs':'.claude','aGsUP':function(_0x154444,_0x177059){return _0x154444(_0x177059);},'nIxqa':function(_0x3c2ec8,_0xc9b1b3){return _0x3c2ec8(_0xc9b1b3);}},_0x49916e=_0x23e1c3[_0x2828e8(0x215)](existsSync,_0x23e1c3['PJuPv'](join,getSkillsDir('user'),'ranger',_0x23e1c3['BWpLR'])),_0x2efb59=_0x23e1c3[_0x2828e8(0x215)](existsSync,join(getSkillsDir('project'),_0x2828e8(0x1eb),'SKILL.md'));if(_0x49916e||_0x2efb59)return console[_0x2828e8(0x208)](_0x23e1c3[_0x2828e8(0x223)]),![];const _0x1a9c93=existsSync(_0x23e1c3[_0x2828e8(0x206)](join,_0x23e1c3['AbGOT'](getProjectRoot),_0x23e1c3[_0x2828e8(0x222)]));let _0x53977e=!![];if(_0x586d46)await skillup({'autoInstall':_0x586d46,'suppressUsage':!![]});else{if(_0x1a9c93)await _0x23e1c3[_0x2828e8(0x21a)](skillup,{'autoInstall':_0x2828e8(0x20a),'suppressUsage':!![]});else{const _0x4c61aa=await _0x3e3ac7['prompt']([{'type':'confirm','name':'wantsSkillup','message':'Would\x20you\x20like\x20to\x20install\x20skills?','default':!![]}]);_0x53977e=_0x4c61aa['wantsSkillup'],_0x53977e&&await _0x23e1c3[_0x2828e8(0x214)](skillup,{'suppressUsage':!![]});}}return _0x53977e;}
1
+ (function(_0x323fca,_0x4198ee){const _0x15ceca=_0x4888,_0x599dd7=_0x323fca();while(!![]){try{const _0x4a25ba=-parseInt(_0x15ceca(0x185))/0x1+-parseInt(_0x15ceca(0x18e))/0x2*(-parseInt(_0x15ceca(0x1a3))/0x3)+parseInt(_0x15ceca(0x193))/0x4+-parseInt(_0x15ceca(0x19d))/0x5+parseInt(_0x15ceca(0x183))/0x6*(parseInt(_0x15ceca(0x190))/0x7)+parseInt(_0x15ceca(0x17c))/0x8*(-parseInt(_0x15ceca(0x19b))/0x9)+-parseInt(_0x15ceca(0x18b))/0xa;if(_0x4a25ba===_0x4198ee)break;else _0x599dd7['push'](_0x599dd7['shift']());}catch(_0xad3730){_0x599dd7['push'](_0x599dd7['shift']());}}}(_0x31ea,0xb1bdd));import{join}from'path';import{existsSync}from'fs';import _0x149f26 from'inquirer';function _0x4888(_0x40d3db,_0x448a54){_0x40d3db=_0x40d3db-0x179;const _0x31ea37=_0x31ea();let _0x48880f=_0x31ea37[_0x40d3db];return _0x48880f;}import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x31ea(){const _0x1a94bc=['kDgCC','Where\x20should\x20the\x20plugin\x20be\x20installed?','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','201384byofNj','✓\x20Claude\x20Code\x20plugin\x20enabled','1406510MQfFJV','plugin','SKILL.md','includes','ranger-testing/trailhead','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','7090440zLMyMq','pluginScope','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','2hUNDkb','install','287qVIJCI','iBTjP','UKjSX','3345828EukYpD','iAWFu','IzHaK','HVUEt','UtPdA','XStRw','enable','error','476712AOaKFo','HysTT','509045TJTUiE','VbyfF','MJHvo','prompt','❌\x20Failed\x20to\x20add\x20marketplace:','.claude','2357337KaVZXH','eYNcX','project','log','wHWJw','sFYit','8IESCgq','success','RpvAB','Project\x20(shared\x20with\x20team\x20via\x20git)'];_0x31ea=function(){return _0x1a94bc;};return _0x31ea();}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0xccb038){const _0x56e88e=_0x4888,_0x46adb1={'JzBJL':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','Pkajb':function(_0x2ef18e,_0x5efcfc){return _0x2ef18e(_0x5efcfc);},'XStRw':function(_0xc96c67,_0x1e7f20,_0x2e3321){return _0xc96c67(_0x1e7f20,_0x2e3321);},'wHWJw':function(_0x12c40c){return _0x12c40c();},'kDgCC':_0x56e88e(0x1a2),'eRtux':'pluginScope','TMAZV':_0x56e88e(0x17f),'IzHaK':'user','iJJcY':function(_0x4f5b60,_0x2da395){return _0x4f5b60(_0x2da395);},'lDvyI':'trailhead','iAWFu':'marketplace','sqcnW':'add','RpvAB':_0x56e88e(0x186),'UtPdA':'ranger@trailhead','HysTT':function(_0xebeccc,_0x32e6bf){return _0xebeccc===_0x32e6bf;},'MJHvo':_0x56e88e(0x1a5),'KiFpd':'\x0aYou\x20can\x20install\x20manually\x20with:','UKjSX':_0x56e88e(0x199),'MFdwA':'--scope','HQumY':'⚠\x20Failed\x20to\x20enable\x20plugin:'},_0x7fbb35=await isPluginInstalled('ranger@trailhead');if(_0x7fbb35)return console['log'](_0x46adb1['JzBJL']),![];const _0x2ef81b=_0x46adb1['Pkajb'](existsSync,_0x46adb1['XStRw'](join,_0x46adb1['wHWJw'](getProjectRoot),_0x46adb1[_0x56e88e(0x180)]));let _0x45d4b1;if(_0xccb038)_0x45d4b1=_0xccb038;else{if(_0x2ef81b)_0x45d4b1='project';else{console['log'](_0x56e88e(0x18a));const _0x34270d=await _0x149f26[_0x56e88e(0x1a0)]([{'type':'list','name':_0x46adb1['eRtux'],'message':_0x56e88e(0x181),'choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':'user'},{'name':_0x46adb1['TMAZV'],'value':'project'}],'default':_0x46adb1[_0x56e88e(0x195)]}]);_0x45d4b1=_0x34270d[_0x56e88e(0x18c)];}}console[_0x56e88e(0x179)](_0x56e88e(0x182)+_0x45d4b1+'\x20level)...\x0a');const _0x403bfa=await _0x46adb1['iJJcY'](isMarketplaceAdded,_0x46adb1['lDvyI']);let _0x1e0afa=_0x403bfa;if(_0x403bfa)console['log']('✓\x20Marketplace\x20already\x20added');else{const _0x186c0d=await runClaudeCommand([_0x56e88e(0x186),_0x46adb1[_0x56e88e(0x194)],_0x46adb1['sqcnW'],_0x56e88e(0x189)]);!_0x186c0d['success']?(console['error'](_0x56e88e(0x1a1),_0x186c0d['error']),console[_0x56e88e(0x179)]('\x0aYou\x20can\x20install\x20manually\x20with:'),console['log']('\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead'),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x45d4b1)):_0x1e0afa=!![];}if(_0x1e0afa){const _0xc13218=await _0x46adb1[_0x56e88e(0x198)](runClaudeCommand,[_0x46adb1[_0x56e88e(0x17e)],_0x56e88e(0x18f),_0x46adb1['UtPdA'],'--scope',_0x45d4b1],{'cwd':_0x46adb1[_0x56e88e(0x19c)](_0x45d4b1,_0x46adb1['MJHvo'])?_0x46adb1[_0x56e88e(0x17a)](getProjectRoot):undefined});if(!_0xc13218['success'])console['error']('❌\x20Failed\x20to\x20install\x20plugin:',_0xc13218['error']),console['log'](_0x46adb1['KiFpd']),console[_0x56e88e(0x179)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x45d4b1);else{console['log'](_0x56e88e(0x18d));const _0x5b70a1=[_0x46adb1[_0x56e88e(0x17e)],_0x46adb1[_0x56e88e(0x192)],_0x46adb1[_0x56e88e(0x197)]];_0x46adb1['HysTT'](_0x45d4b1,'project')&&_0x5b70a1['push'](_0x46adb1['MFdwA'],_0x46adb1['MJHvo']);const _0x1cdb57=await _0x46adb1['XStRw'](runClaudeCommand,_0x5b70a1,{'captureOutput':!![],'cwd':_0x45d4b1===_0x46adb1[_0x56e88e(0x19f)]?getProjectRoot():undefined}),_0x40568d=_0x1cdb57['output']?.[_0x56e88e(0x188)]('already\x20enabled');!_0x1cdb57[_0x56e88e(0x17d)]&&!_0x40568d?console['error'](_0x46adb1['HQumY'],_0x1cdb57[_0x56e88e(0x19a)]):console['log'](_0x56e88e(0x184));}}return!![];}export async function ensureClaudeSkills(_0x138a2c){const _0x2c5f05=_0x4888,_0xaabaf1={'VbyfF':function(_0xde78b0,_0x59145a){return _0xde78b0(_0x59145a);},'XDuch':function(_0x3252cc,_0x53cdb4,_0x13996a,_0xd783b9){return _0x3252cc(_0x53cdb4,_0x13996a,_0xd783b9);},'iBTjP':function(_0x36078c,_0x4f19ff){return _0x36078c(_0x4f19ff);},'eYNcX':'user','IrleZ':'ranger','sFYit':function(_0x551f3c){return _0x551f3c();},'HVUEt':_0x2c5f05(0x1a2),'lhmfe':'confirm'},_0x489dd4=_0xaabaf1[_0x2c5f05(0x19e)](existsSync,_0xaabaf1['XDuch'](join,_0xaabaf1[_0x2c5f05(0x191)](getSkillsDir,_0xaabaf1[_0x2c5f05(0x1a4)]),_0xaabaf1['IrleZ'],'SKILL.md')),_0x33c2c4=existsSync(_0xaabaf1['XDuch'](join,getSkillsDir('project'),'ranger',_0x2c5f05(0x187)));if(_0x489dd4||_0x33c2c4)return console['log']('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0x3c971b=existsSync(join(_0xaabaf1[_0x2c5f05(0x17b)](getProjectRoot),_0xaabaf1[_0x2c5f05(0x196)]));let _0x153c0d=!![];if(_0x138a2c)await _0xaabaf1[_0x2c5f05(0x191)](skillup,{'autoInstall':_0x138a2c,'suppressUsage':!![]});else{if(_0x3c971b)await _0xaabaf1[_0x2c5f05(0x19e)](skillup,{'autoInstall':'project','suppressUsage':!![]});else{const _0x40fa48=await _0x149f26[_0x2c5f05(0x1a0)]([{'type':_0xaabaf1['lhmfe'],'name':'wantsSkillup','message':'Would\x20you\x20like\x20to\x20install\x20skills?','default':!![]}]);_0x153c0d=_0x40fa48['wantsSkillup'],_0x153c0d&&await skillup({'suppressUsage':!![]});}}return _0x153c0d;}
@@ -1 +1 @@
1
- (function(_0x36ab59,_0x30a688){const _0x39075c=_0x2bbb,_0x14306b=_0x36ab59();while(!![]){try{const _0x1662f3=parseInt(_0x39075c(0x131))/0x1*(parseInt(_0x39075c(0x140))/0x2)+-parseInt(_0x39075c(0x133))/0x3+parseInt(_0x39075c(0x13f))/0x4*(parseInt(_0x39075c(0x13c))/0x5)+parseInt(_0x39075c(0x126))/0x6+-parseInt(_0x39075c(0x12b))/0x7*(-parseInt(_0x39075c(0x12f))/0x8)+parseInt(_0x39075c(0x12d))/0x9+-parseInt(_0x39075c(0x127))/0xa;if(_0x1662f3===_0x30a688)break;else _0x14306b['push'](_0x14306b['shift']());}catch(_0x47ef66){_0x14306b['push'](_0x14306b['shift']());}}}(_0xa507,0xad16d));function _0x2bbb(_0x164cea,_0xfeb7dc){_0x164cea=_0x164cea-0x124;const _0xa507ae=_0xa507();let _0x2bbb78=_0xa507ae[_0x164cea];return _0x2bbb78;}import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x155b58 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';function _0xa507(){const _0x4f674a=['utf-8','user','cRGoD','https://opencode.ai/config.json','log','@ranger-testing/opencode-plugin','5147634HazuXE','21147550UoNKyf','isArray','stringify','Where\x20should\x20the\x20plugin\x20be\x20installed?','657769igReDk','pluginScope','5543154oTwytg','list','96VQXPPA','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','52CcRyJQ','LhiHc','923775TcOQeW','parse','opencode.json','NnUqf','includes','KseQy','YmCtP','LcJka','User\x20(available\x20in\x20all\x20your\x20projects)','15GSKvxS','error','RlrRe','588656zvbCmv','3412wOWbVn'];_0xa507=function(){return _0x4f674a;};return _0xa507();}export async function ensureOpencodePluginConfig(_0x406182){const _0xcc633b=_0x2bbb,_0x3a8877={'LcJka':function(_0x1ce781,_0x490ff5){return _0x1ce781(_0x490ff5);},'VvARP':_0xcc633b(0x135),'cptIC':_0xcc633b(0x12e),'cWIMm':'user','YmCtP':'Project\x20(shared\x20with\x20team\x20via\x20git)','NnUqf':'project','PxMHJ':function(_0x18db26,_0x3a1b9b,_0x104ef0){return _0x18db26(_0x3a1b9b,_0x104ef0);},'CoAoV':_0xcc633b(0x125),'LhiHc':_0xcc633b(0x141),'RlrRe':_0xcc633b(0x130),'KseQy':'✓\x20OpenCode\x20plugin\x20already\x20configured','cRGoD':function(_0x1eaccc,_0x3e23e9,_0x206236){return _0x1eaccc(_0x3e23e9,_0x206236);},'yHVRq':function(_0x2cf212,_0x18dbde){return _0x2cf212(_0x18dbde);},'ayWzG':function(_0x39bf64,_0x2c447e){return _0x39bf64+_0x2c447e;}},_0x264d4c=_0x3a8877[_0xcc633b(0x13a)](existsSync,join(_0x3a8877['LcJka'](getOpencodeConfigDir,'project'),_0x3a8877['VvARP']));let _0xb3e073;if(_0x406182)_0xb3e073=_0x406182;else{if(_0x264d4c)_0xb3e073='project';else{console['log']('\x0a📦\x20OpenCode\x20Plugin\x0a');const _0x5d70de=await _0x155b58['prompt']([{'type':_0x3a8877['cptIC'],'name':_0xcc633b(0x12c),'message':_0xcc633b(0x12a),'choices':[{'name':_0xcc633b(0x13b),'value':_0x3a8877['cWIMm']},{'name':_0x3a8877[_0xcc633b(0x139)],'value':_0x3a8877[_0xcc633b(0x136)]}],'default':_0xcc633b(0x142)}]);_0xb3e073=_0x5d70de['pluginScope'];}}const _0x5e29ca=_0x3a8877['PxMHJ'](join,_0x3a8877[_0xcc633b(0x13a)](getOpencodeConfigDir,_0xb3e073),_0x3a8877['VvARP']),_0x1c7d10=_0x3a8877['CoAoV'],_0x4fc072=_0xcc633b(0x144);let _0xc4c382={};if(existsSync(_0x5e29ca))try{const _0x1ba8e2=await readFile(_0x5e29ca,_0x3a8877[_0xcc633b(0x132)]);_0xc4c382=JSON[_0xcc633b(0x134)](_0x1ba8e2);}catch(_0x5ace82){return console[_0xcc633b(0x13d)](_0x3a8877[_0xcc633b(0x13e)]),{'configured':![],'scope':_0xb3e073,'error':'Failed\x20to\x20read\x20opencode.json','details':_0x5ace82};}const _0x9d9cb=Array[_0xcc633b(0x128)](_0xc4c382['plugin'])?_0xc4c382['plugin']:[];if(_0x9d9cb[_0xcc633b(0x137)](_0x1c7d10))return console[_0xcc633b(0x124)](_0x3a8877[_0xcc633b(0x138)]),{'configured':![],'scope':_0xb3e073};return _0xc4c382['$schema']=_0xc4c382['$schema']||_0x4fc072,_0xc4c382['plugin']=[..._0x9d9cb,_0x1c7d10],await _0x3a8877[_0xcc633b(0x143)](mkdir,_0x3a8877['yHVRq'](getOpencodeConfigDir,_0xb3e073),{'recursive':!![]}),await writeFile(_0x5e29ca,_0x3a8877['ayWzG'](JSON[_0xcc633b(0x129)](_0xc4c382,null,0x2),'\x0a')),console[_0xcc633b(0x124)]('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0xb3e073};}
1
+ (function(_0x5bef3a,_0x538ee9){const _0x76fb28=_0x3e55,_0x4292db=_0x5bef3a();while(!![]){try{const _0x90aaf3=-parseInt(_0x76fb28(0x1e4))/0x1*(parseInt(_0x76fb28(0x1da))/0x2)+parseInt(_0x76fb28(0x1d2))/0x3*(-parseInt(_0x76fb28(0x1dc))/0x4)+-parseInt(_0x76fb28(0x1d5))/0x5+-parseInt(_0x76fb28(0x1ce))/0x6*(parseInt(_0x76fb28(0x1cc))/0x7)+-parseInt(_0x76fb28(0x1df))/0x8+parseInt(_0x76fb28(0x1de))/0x9+parseInt(_0x76fb28(0x1e2))/0xa*(parseInt(_0x76fb28(0x1e1))/0xb);if(_0x90aaf3===_0x538ee9)break;else _0x4292db['push'](_0x4292db['shift']());}catch(_0x3528f6){_0x4292db['push'](_0x4292db['shift']());}}}(_0x24d7,0xefa95));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';function _0x3e55(_0x3490df,_0x5dcee8){_0x3490df=_0x3490df-0x1c4;const _0x24d7f7=_0x24d7();let _0x3e552d=_0x24d7f7[_0x3490df];return _0x3e552d;}import _0x2b0ac2 from'inquirer';function _0x24d7(){const _0x4a4063=['889141NQbVmN','530uZzWJR','Where\x20should\x20the\x20plugin\x20be\x20installed?','1sJoKlU','✓\x20OpenCode\x20plugin\x20configured','isArray','utf-8','project','Failed\x20to\x20read\x20opencode.json','$schema','prompt','bGsxD','barbE','YjLLY','MmcEY','5698693JcbmoG','pluginScope','6EaomnT','AqGXj','opencode.json','BkSrP','225FCSYEs','includes','zItHt','7305490cxhcvD','user','Project\x20(shared\x20with\x20team\x20via\x20git)','log','plugin','3706894FIOPQn','\x0a📦\x20OpenCode\x20Plugin\x0a','9956qeQiwC','User\x20(available\x20in\x20all\x20your\x20projects)','15790311SRkgWv','5932400Fynfao','list'];_0x24d7=function(){return _0x4a4063;};return _0x24d7();}import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x1fe77f){const _0x49d8d3=_0x3e55,_0x426a14={'YjLLY':function(_0x100073,_0x6f398){return _0x100073(_0x6f398);},'BkSrP':function(_0x3dc6b8,_0x3953a1,_0x49ddf2){return _0x3dc6b8(_0x3953a1,_0x49ddf2);},'UIlsd':_0x49d8d3(0x1c4),'barbE':'pluginScope','bGsxD':_0x49d8d3(0x1e3),'AqGXj':'@ranger-testing/opencode-plugin','AppZB':_0x49d8d3(0x1e7),'MiwIE':'⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','zItHt':_0x49d8d3(0x1c5),'MmcEY':'✓\x20OpenCode\x20plugin\x20already\x20configured','tHjQG':_0x49d8d3(0x1e5)},_0x4dea81=_0x426a14['YjLLY'](existsSync,_0x426a14[_0x49d8d3(0x1d1)](join,getOpencodeConfigDir(_0x426a14['UIlsd']),_0x49d8d3(0x1d0)));let _0x1b76c5;if(_0x1fe77f)_0x1b76c5=_0x1fe77f;else{if(_0x4dea81)_0x1b76c5='project';else{console[_0x49d8d3(0x1d8)](_0x49d8d3(0x1db));const _0x1ad5ac=await _0x2b0ac2[_0x49d8d3(0x1c7)]([{'type':_0x49d8d3(0x1e0),'name':_0x426a14[_0x49d8d3(0x1c9)],'message':_0x426a14[_0x49d8d3(0x1c8)],'choices':[{'name':_0x49d8d3(0x1dd),'value':_0x49d8d3(0x1d6)},{'name':_0x49d8d3(0x1d7),'value':_0x426a14['UIlsd']}],'default':_0x49d8d3(0x1d6)}]);_0x1b76c5=_0x1ad5ac[_0x49d8d3(0x1cd)];}}const _0x9f84a=join(_0x426a14[_0x49d8d3(0x1ca)](getOpencodeConfigDir,_0x1b76c5),_0x49d8d3(0x1d0)),_0x4d9f94=_0x426a14[_0x49d8d3(0x1cf)],_0x54a9e1='https://opencode.ai/config.json';let _0x375507={};if(_0x426a14['YjLLY'](existsSync,_0x9f84a))try{const _0x38fad3=await readFile(_0x9f84a,_0x426a14['AppZB']);_0x375507=JSON['parse'](_0x38fad3);}catch(_0x29d499){return console['error'](_0x426a14['MiwIE']),{'configured':![],'scope':_0x1b76c5,'error':_0x426a14[_0x49d8d3(0x1d4)],'details':_0x29d499};}const _0x1363a8=Array[_0x49d8d3(0x1e6)](_0x375507[_0x49d8d3(0x1d9)])?_0x375507[_0x49d8d3(0x1d9)]:[];if(_0x1363a8[_0x49d8d3(0x1d3)](_0x4d9f94))return console['log'](_0x426a14[_0x49d8d3(0x1cb)]),{'configured':![],'scope':_0x1b76c5};return _0x375507[_0x49d8d3(0x1c6)]=_0x375507[_0x49d8d3(0x1c6)]||_0x54a9e1,_0x375507[_0x49d8d3(0x1d9)]=[..._0x1363a8,_0x4d9f94],await _0x426a14['BkSrP'](mkdir,getOpencodeConfigDir(_0x1b76c5),{'recursive':!![]}),await writeFile(_0x9f84a,JSON['stringify'](_0x375507,null,0x2)+'\x0a'),console[_0x49d8d3(0x1d8)](_0x426a14['tHjQG']),{'configured':!![],'scope':_0x1b76c5};}
@@ -1 +1 @@
1
- (function(_0x5bec28,_0x3fa58b){var _0x216db6=_0x3535,_0x326aa9=_0x5bec28();while(!![]){try{var _0x5ce299=parseInt(_0x216db6(0x138))/0x1+parseInt(_0x216db6(0x13b))/0x2*(parseInt(_0x216db6(0x132))/0x3)+-parseInt(_0x216db6(0x13d))/0x4*(-parseInt(_0x216db6(0x12f))/0x5)+-parseInt(_0x216db6(0x134))/0x6*(-parseInt(_0x216db6(0x136))/0x7)+-parseInt(_0x216db6(0x131))/0x8+parseInt(_0x216db6(0x139))/0x9*(parseInt(_0x216db6(0x13e))/0xa)+parseInt(_0x216db6(0x130))/0xb*(-parseInt(_0x216db6(0x135))/0xc);if(_0x5ce299===_0x3fa58b)break;else _0x326aa9['push'](_0x326aa9['shift']());}catch(_0x4df8e3){_0x326aa9['push'](_0x326aa9['shift']());}}}(_0x15cb,0x71f69));function _0x3535(_0x87bb0a,_0x1e5583){_0x87bb0a=_0x87bb0a-0x12f;var _0x15cb59=_0x15cb();var _0x353504=_0x15cb59[_0x87bb0a];return _0x353504;}export async function setupCi(_0x5636a4,_0x1b4a22,_0x28738f){var _0x15d58e=_0x3535,_0x59660a={'mGQyD':function(_0x41b46d,_0xa87532){return _0x41b46d+_0xa87532;},'XMbXB':_0x15d58e(0x13c),'pSNKA':'For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a','LkZbe':_0x15d58e(0x137)};console['error'](_0x59660a['mGQyD'](_0x59660a['mGQyD'](_0x15d58e(0x133)+'\x0a'+'To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a',_0x59660a['XMbXB'])+'\x0a',_0x59660a[_0x15d58e(0x13a)])+_0x59660a['LkZbe']),process['exit'](0x1);}function _0x15cb(){var _0x8ff96e=['786520slYHpv','54eqDCqk','pSNKA','2qEMJaT','\x20\x20ranger\x20profile\x20add\x20<name>\x0a','4LvXgxf','811510SVpfuF','4634675IihpkU','260348YdBsPl','7334432PVXQZe','2257584eTAUqr','ranger\x20setup\x20--ci\x20writes\x20to\x20the\x20legacy\x20.ranger/ci/\x20tree\x20which\x20is\x20no\x20longer\x20supported.\x0a','12JAvZRU','1032gncTFs','1631546ZRTbNd','\x20\x20https://docs.ranger.net/main/concepts/profiles'];_0x15cb=function(){return _0x8ff96e;};return _0x15cb();}
1
+ function _0x45ab(){var _0x3daf85=['npErg','exit','\x20\x20ranger\x20profile\x20add\x20<name>\x0a','6186440REaRmT','6128Fzibnb','27655TCzKwn','3FmuvCV','429600FvDzZP','1197514UvhFie','380uCVWbh','22890RgGKok','7910584nwUigI','1098kPqLQG','Gbrfc','7551FkdLGI'];_0x45ab=function(){return _0x3daf85;};return _0x45ab();}function _0x459f(_0x4f8999,_0x30c90b){_0x4f8999=_0x4f8999-0x112;var _0x45ab37=_0x45ab();var _0x459f5e=_0x45ab37[_0x4f8999];return _0x459f5e;}(function(_0x13c0f9,_0x1a8acd){var _0x10547d=_0x459f,_0x284e3b=_0x13c0f9();while(!![]){try{var _0x56c12f=parseInt(_0x10547d(0x120))/0x1+parseInt(_0x10547d(0x112))/0x2*(-parseInt(_0x10547d(0x11f))/0x3)+-parseInt(_0x10547d(0x113))/0x4*(-parseInt(_0x10547d(0x11e))/0x5)+parseInt(_0x10547d(0x116))/0x6*(parseInt(_0x10547d(0x114))/0x7)+-parseInt(_0x10547d(0x11d))/0x8*(parseInt(_0x10547d(0x118))/0x9)+-parseInt(_0x10547d(0x11c))/0xa+parseInt(_0x10547d(0x115))/0xb;if(_0x56c12f===_0x1a8acd)break;else _0x284e3b['push'](_0x284e3b['shift']());}catch(_0xd114be){_0x284e3b['push'](_0x284e3b['shift']());}}}(_0x45ab,0x64b6c));export async function setupCi(_0x550981,_0x135f85,_0xd02066){var _0x2624e8=_0x459f,_0x12fa5e={'ABzgx':_0x2624e8(0x11b),'npErg':'For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a','Gbrfc':'\x20\x20https://docs.ranger.net/main/concepts/profiles'};console['error']('ranger\x20setup\x20--ci\x20writes\x20to\x20the\x20legacy\x20.ranger/ci/\x20tree\x20which\x20is\x20no\x20longer\x20supported.\x0a'+'\x0a'+'To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a'+_0x12fa5e['ABzgx']+'\x0a'+_0x12fa5e[_0x2624e8(0x119)]+_0x12fa5e[_0x2624e8(0x117)]),process[_0x2624e8(0x11a)](0x1);}
@@ -1 +1 @@
1
- function _0x5165(_0x2cd897,_0x4de743){_0x2cd897=_0x2cd897-0xf4;const _0x4e1ce1=_0x4e1c();let _0x5165af=_0x4e1ce1[_0x2cd897];return _0x5165af;}function _0x4e1c(){const _0x2cad0f=['/.claude/skills/','To\x20get\x20started:','isTTY','All\x20projects\x20(','11446meYrEr','\x20--opencode','177mkEocz','DhExp','\x20skill','xTJsx','\x20successfully!\x0a','/skills/','5|4|1|3|2|0','mvlSD','\x20\x203.\x20Run:\x20ranger\x20skillup','prompt','EjYcN','warn','ToVuE','2001320nPjwNZ','121QeonKr','stdin','192174jeMtwP','project-level','claude','log','VkhHm','4XCrjcD','154xwYKWJ','\x20<your-api-token>','JqBhi','553240SmSusL','pZsGb','user','618846aezXas','autoInstall','6588900NpzzHz','platform','user-level','19910uYGiIz'];_0x4e1c=function(){return _0x2cad0f;};return _0x4e1c();}(function(_0x478650,_0x50dfa9){const _0x1b20da=_0x5165,_0x4e47d4=_0x478650();while(!![]){try{const _0xd85066=parseInt(_0x1b20da(0x110))/0x1+-parseInt(_0x1b20da(0x11a))/0x2*(parseInt(_0x1b20da(0xf4))/0x3)+parseInt(_0x1b20da(0x109))/0x4*(-parseInt(_0x1b20da(0x10d))/0x5)+-parseInt(_0x1b20da(0x104))/0x6*(parseInt(_0x1b20da(0x10a))/0x7)+parseInt(_0x1b20da(0x101))/0x8+parseInt(_0x1b20da(0x112))/0x9+parseInt(_0x1b20da(0x115))/0xa*(parseInt(_0x1b20da(0x102))/0xb);if(_0xd85066===_0x50dfa9)break;else _0x4e47d4['push'](_0x4e47d4['shift']());}catch(_0x145e7a){_0x4e47d4['push'](_0x4e47d4['shift']());}}}(_0x4e1c,0x72c35));import{basename}from'path';import _0x168f59 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(_0x38ad9e={}){const _0x57872e=_0x5165,_0x598842={'YEaNO':'\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','DhExp':function(_0x2fd100,_0x5011c8){return _0x2fd100===_0x5011c8;},'JqBhi':'opencode','xTJsx':_0x57872e(0x11b),'BXNvR':'✓\x20Found\x20API\x20token','mvlSD':function(_0x358c04,_0x245f78){return _0x358c04(_0x245f78);},'pZsGb':'installLevel','EjYcN':'user','XNQKo':'project','GeSZF':function(_0x4326ba){return _0x4326ba();},'hdFwo':'\x0a📦\x20Installing\x20skills...\x0a','tsXhp':'\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','bGJFv':_0x57872e(0x105),'IuZSq':function(_0x59739a,_0x21cfe6){return _0x59739a>_0x21cfe6;},'VkhHm':'\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','ToVuE':'\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!'};console[_0x57872e(0x107)](_0x598842['YEaNO']);const _0x36c33d=_0x38ad9e[_0x57872e(0x113)]??_0x57872e(0x106),_0x46db94=await getToken();if(!_0x46db94){const _0x962920=_0x57872e(0xfa)['split']('|');let _0x108fbf=0x0;while(!![]){switch(_0x962920[_0x108fbf++]){case'0':return;case'1':console['log']('\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli');continue;case'2':console[_0x57872e(0x107)](_0x57872e(0xfc)+(_0x598842['DhExp'](_0x36c33d,_0x598842['JqBhi'])?'\x20--opencode':'')+'\x0a');continue;case'3':console['log']('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x36c33d===_0x598842[_0x57872e(0x10c)]?_0x598842[_0x57872e(0xf7)]:'')+_0x57872e(0x10b));continue;case'4':console['log'](_0x57872e(0x117));continue;case'5':console['log']('❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a');continue;}break;}}console[_0x57872e(0x107)](_0x598842['BXNvR']);const _0x5bbb5c=getProjectRoot(),_0x14f351=_0x598842[_0x57872e(0xfb)](basename,_0x5bbb5c),_0x576095=_0x36c33d===_0x598842['JqBhi']?getOpencodeConfigDir(_0x57872e(0x10f))+_0x57872e(0xf9):getClaudeConfigDir()+_0x57872e(0xf9),_0x265f9d=_0x598842['DhExp'](_0x36c33d,_0x598842[_0x57872e(0x10c)])?_0x5bbb5c+'/.opencode/skills/':_0x5bbb5c+_0x57872e(0x116),_0x1521d7=process[_0x57872e(0x103)][_0x57872e(0x118)]&&process['stdout']['isTTY'];let _0x4cdf48;if(_0x38ad9e[_0x57872e(0x111)])_0x4cdf48=_0x38ad9e[_0x57872e(0x111)];else{if(_0x1521d7){const _0x9e7114=await _0x168f59[_0x57872e(0xfd)]([{'type':'list','name':_0x598842[_0x57872e(0x10e)],'message':'Where\x20should\x20skills\x20be\x20installed?','choices':[{'name':_0x57872e(0x119)+_0x576095+')','value':_0x598842[_0x57872e(0xfe)]},{'name':'This\x20project\x20only\x20('+_0x265f9d+')','value':'project'}]}]);_0x4cdf48=_0x9e7114['installLevel'];}else _0x4cdf48=_0x598842['XNQKo'],console[_0x57872e(0x107)]('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x265f9d+')');}let _0x8950d8=0x0;const _0x5e9b2e=_0x598842['GeSZF'](getCurrentVersion);console[_0x57872e(0x107)](_0x598842['hdFwo']);try{const _0x358778=await installSkill('ranger',{'cliVersion':_0x5e9b2e,'level':_0x4cdf48,'platform':_0x36c33d});_0x358778&&_0x8950d8++;}catch(_0x225836){console[_0x57872e(0xff)](_0x598842['tsXhp'],_0x225836 instanceof Error?_0x225836['message']:_0x225836);}if(_0x8950d8>0x0){const _0x40d14a=_0x598842[_0x57872e(0xf5)](_0x4cdf48,_0x598842[_0x57872e(0xfe)])?_0x57872e(0x114):_0x598842['bGJFv'];console[_0x57872e(0x107)]('\x0a✅\x20Installed\x20'+_0x8950d8+'\x20'+_0x40d14a+_0x57872e(0xf6)+(_0x598842['IuZSq'](_0x8950d8,0x1)?'s':'')+_0x57872e(0xf8)),!_0x38ad9e['suppressUsage']&&(console[_0x57872e(0x107)]('To\x20use:'),_0x36c33d===_0x598842[_0x57872e(0x10c)]?console[_0x57872e(0x107)](_0x598842[_0x57872e(0x108)]):console['log'](_0x598842[_0x57872e(0x100)]));}else console[_0x57872e(0x107)]('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}
1
+ (function(_0x30c193,_0x5c92e5){const _0x56f4a7=_0x402c,_0x54d6f9=_0x30c193();while(!![]){try{const _0x346418=parseInt(_0x56f4a7(0x10c))/0x1*(parseInt(_0x56f4a7(0x103))/0x2)+-parseInt(_0x56f4a7(0x110))/0x3*(-parseInt(_0x56f4a7(0x112))/0x4)+-parseInt(_0x56f4a7(0x10a))/0x5+-parseInt(_0x56f4a7(0x114))/0x6+-parseInt(_0x56f4a7(0x11e))/0x7*(-parseInt(_0x56f4a7(0x108))/0x8)+-parseInt(_0x56f4a7(0x10b))/0x9+-parseInt(_0x56f4a7(0x127))/0xa*(-parseInt(_0x56f4a7(0x117))/0xb);if(_0x346418===_0x5c92e5)break;else _0x54d6f9['push'](_0x54d6f9['shift']());}catch(_0x11a50e){_0x54d6f9['push'](_0x54d6f9['shift']());}}}(_0xcea8,0xec66a));import{basename}from'path';import _0x44f2c8 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';function _0xcea8(){const _0x35de62=['warn','\x0a✅\x20Installed\x20','project-level','This\x20project\x20only\x20(','opencode','2|0|1|5|4|3','24410mlxWgk','log','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','/.opencode/skills/','To\x20use:','PwWGh','WAswK','Where\x20should\x20skills\x20be\x20installed?','claude','hzOVo','platform','rWIAQ','4QzQHcg','All\x20projects\x20(','\x20--opencode','KuKti','ztAkM','18376jZKTKx','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','16395wepNiZ','4649220LeySvr','544241DBnkpK','eZpLV','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','✓\x20Found\x20API\x20token','3WGGQnm','yRmOk','41556aEiaKV','\x20skill','6595416KJskBg','user-level','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','5269bRbbLg','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','/skills/','ranger','stdin','installLevel','suppressUsage','973nvXUfN','\x20\x203.\x20Run:\x20ranger\x20skillup','autoInstall'];_0xcea8=function(){return _0x35de62;};return _0xcea8();}function _0x402c(_0xd84b6e,_0x2e8dc2){_0xd84b6e=_0xd84b6e-0xf9;const _0xcea827=_0xcea8();let _0x402c58=_0xcea827[_0xd84b6e];return _0x402c58;}export async function skillup(_0x349668={}){const _0x11b471=_0x402c,_0x749404={'FIRNN':_0x11b471(0x126),'qAFYs':_0x11b471(0xf9),'oawAB':function(_0x1876e4,_0x901c5c){return _0x1876e4===_0x901c5c;},'yRmOk':'opencode','PwWGh':function(_0x213b7d,_0x1a67cf){return _0x213b7d===_0x1a67cf;},'eZpLV':_0x11b471(0x105),'vpPqc':function(_0x511078,_0x5c7f5a){return _0x511078(_0x5c7f5a);},'rWIAQ':'user','zBZiJ':_0x11b471(0x11c),'ztAkM':'project','WAswK':function(_0x52be3d,_0x5ec05b,_0x3246ec){return _0x52be3d(_0x5ec05b,_0x3246ec);},'Yiron':_0x11b471(0x116),'yBnof':function(_0x4c5716,_0x1ee3ba){return _0x4c5716 instanceof _0x1ee3ba;},'KuKti':_0x11b471(0x115),'MXDrh':_0x11b471(0xfb),'hzOVo':_0x11b471(0x109),'ZpRml':'\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a'};console[_0x11b471(0x128)](_0x11b471(0x10e));const _0x1ec605=_0x349668[_0x11b471(0x101)]??_0x11b471(0xff),_0xc578d2=await getToken();if(!_0xc578d2){const _0x521f75=_0x749404['FIRNN']['split']('|');let _0x1f8d99=0x0;while(!![]){switch(_0x521f75[_0x1f8d99++]){case'0':console['log']('To\x20get\x20started:');continue;case'1':console[_0x11b471(0x128)](_0x11b471(0x118));continue;case'2':console[_0x11b471(0x128)](_0x749404['qAFYs']);continue;case'3':return;case'4':console[_0x11b471(0x128)](_0x11b471(0x11f)+(_0x749404['oawAB'](_0x1ec605,_0x749404[_0x11b471(0x111)])?_0x11b471(0x105):'')+'\x0a');continue;case'5':console['log']('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x749404[_0x11b471(0xfc)](_0x1ec605,_0x11b471(0x125))?_0x749404[_0x11b471(0x10d)]:'')+'\x20<your-api-token>');continue;}break;}}console[_0x11b471(0x128)](_0x11b471(0x10f));const _0x56c23e=getProjectRoot(),_0x1c64d7=_0x749404['vpPqc'](basename,_0x56c23e),_0x50ff94=_0x749404['PwWGh'](_0x1ec605,_0x749404[_0x11b471(0x111)])?getOpencodeConfigDir(_0x749404[_0x11b471(0x102)])+_0x11b471(0x119):getClaudeConfigDir()+'/skills/',_0x118c24=_0x1ec605===_0x749404[_0x11b471(0x111)]?_0x56c23e+_0x11b471(0xfa):_0x56c23e+'/.claude/skills/',_0x88605e=process[_0x11b471(0x11b)]['isTTY']&&process['stdout']['isTTY'];let _0x42b7ef;if(_0x349668[_0x11b471(0x120)])_0x42b7ef=_0x349668['autoInstall'];else{if(_0x88605e){const _0x10c246=await _0x44f2c8['prompt']([{'type':'list','name':_0x749404['zBZiJ'],'message':_0x11b471(0xfe),'choices':[{'name':_0x11b471(0x104)+_0x50ff94+')','value':_0x749404[_0x11b471(0x102)]},{'name':_0x11b471(0x124)+_0x118c24+')','value':_0x749404[_0x11b471(0x107)]}]}]);_0x42b7ef=_0x10c246['installLevel'];}else _0x42b7ef=_0x749404['ztAkM'],console['log']('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x118c24+')');}let _0x1e3599=0x0;const _0xde3a33=getCurrentVersion();console['log']('\x0a📦\x20Installing\x20skills...\x0a');try{const _0x5eb9a9=await _0x749404[_0x11b471(0xfd)](installSkill,_0x11b471(0x11a),{'cliVersion':_0xde3a33,'level':_0x42b7ef,'platform':_0x1ec605});_0x5eb9a9&&_0x1e3599++;}catch(_0x2ece1c){console[_0x11b471(0x121)](_0x749404['Yiron'],_0x749404['yBnof'](_0x2ece1c,Error)?_0x2ece1c['message']:_0x2ece1c);}if(_0x1e3599>0x0){const _0xceeac9=_0x749404['oawAB'](_0x42b7ef,'user')?_0x749404[_0x11b471(0x106)]:_0x11b471(0x123);console[_0x11b471(0x128)](_0x11b471(0x122)+_0x1e3599+'\x20'+_0xceeac9+_0x11b471(0x113)+(_0x1e3599>0x1?'s':'')+'\x20successfully!\x0a'),!_0x349668[_0x11b471(0x11d)]&&(console[_0x11b471(0x128)](_0x749404['MXDrh']),_0x1ec605===_0x749404[_0x11b471(0x111)]?console['log'](_0x749404[_0x11b471(0x100)]):console['log']('\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['log'](_0x749404['ZpRml']);}
@@ -1 +1 @@
1
- const _0x5782b5=_0x176a;(function(_0x3731c0,_0x284f4b){const _0x4ee03b=_0x176a,_0xfbada0=_0x3731c0();while(!![]){try{const _0x5f4063=parseInt(_0x4ee03b(0xe5))/0x1+parseInt(_0x4ee03b(0xe7))/0x2+parseInt(_0x4ee03b(0xe4))/0x3+parseInt(_0x4ee03b(0xbf))/0x4+parseInt(_0x4ee03b(0x11b))/0x5*(parseInt(_0x4ee03b(0xf7))/0x6)+parseInt(_0x4ee03b(0xd3))/0x7*(-parseInt(_0x4ee03b(0xe6))/0x8)+-parseInt(_0x4ee03b(0xfb))/0x9;if(_0x5f4063===_0x284f4b)break;else _0xfbada0['push'](_0xfbada0['shift']());}catch(_0x463fa2){_0xfbada0['push'](_0xfbada0['shift']());}}}(_0x14a9,0x6b655));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';function _0x14a9(){const _0x64104f=['skipChromium','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','warn','lrRYv','LoXAP','.gitignore','method','\x0a🚀\x20Ranger\x20Setup\x0a','organizationName','\x20\x20npx\x20playwright@','auth','log','VdVXR','chromium','\x0aTo\x20set\x20up\x20a\x20profile\x20for\x20your\x20app,\x20run:','stdin','existing_token','npx','7YsednA','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','scope','TFZpF','platform','GITHUB_ENV','url','RtYRT','✓\x20Created\x20~/.ranger/\x20directory','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','user','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','Setup\x20always\x20installs\x20at\x20user\x20scope\x20now\x20(cloud\x20profiles\x20make\x20','YswWP','\x1b[0m','✓\x20Playwright\x20Chromium\x20browser\x20found','skills','2053470lVaqXt','796782eLHQzD','498248QuBYXA','1430906iiVGNC','zkBKq','skipAuth','✓\x20Created\x20.ranger/.gitignore','The\x20required\x20version\x20(','ymKlY','HLbQD','⚠\x20No\x20git\x20repository\x20found.\x20Re-run\x20with\x20`--scope\x20user`\x20to\x20store\x20the\x20profile\x20at\x20~/.ranger/.','success','vsoFW','✓\x20Exported\x20credentials\x20for\x20CI','sjcfg','FhWaV','inherit','SQqpu','skipped','5268084OCsQgL','\x0a⚠\x20Skipping\x20Chromium\x20installation.','opencode','version','23387607GSmOoB','stdout','exit','\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','\x0a\x20\x20','pmzWP','\x20now?','You\x20can\x20install\x20it\x20manually\x20by\x20running:','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','ranger\x20setup\x20--scope=','\x0a❌\x20Profile\x20setup\x20failed:','ready','fPLuC','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','✓\x20Already\x20authenticated\x20to\x20','MRfHt','xUSDB','withDeps','device_auth','OoUfm','txNws','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','isTTY','1.58.2','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','\x1b[1m','SFKmg','--with-deps','ignore','trackPhaseEnd','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','UJrkh','5sWQtNE','\x20(fallback\x20version)','Authentication\x20failed:\x20','...','trackPhaseStart','error','install','OsUTb','force','✓\x20Authenticated\x20to\x20','playwright@','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','sdUho','ranger','message','xLcdl','WXhyI','104232KwuXNJ','\x20install\x20chromium'];_0x14a9=function(){return _0x64104f;};return _0x14a9();}import{spawn}from'child_process';import _0x3b8a3a 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';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';function _0x176a(_0xd10cb,_0x451a8a){_0xd10cb=_0xd10cb-0xb3;const _0x14a91f=_0x14a9();let _0x176abd=_0x14a91f[_0xd10cb];return _0x176abd;}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=_0x5782b5(0x112);const bold=_0x32af46=>_0x5782b5(0x114)+_0x32af46+_0x5782b5(0xe1);export function getPlaywrightVersion(){const _0x395f0b=_0x5782b5,_0x36e089={'CkMYG':'playwright/package.json'};try{const _0x1e6ed6=require['resolve'](_0x36e089['CkMYG']),_0x17f424=require(_0x1e6ed6);return _0x17f424[_0x395f0b(0xfa)];}catch{return null;}}export function installChromiumBinary(_0x345c6b,_0x4ea5d2=![]){const _0x1f992c=_0x5782b5,_0x40211a={'piitl':function(_0x2a4e6d,_0x4bcb03){return _0x2a4e6d===_0x4bcb03;},'PReOC':function(_0x2786fa,_0x45eb15){return _0x2786fa(_0x45eb15);},'dOFtx':_0x1f992c(0xb4),'TKWep':function(_0x58a0fe,_0x752810,_0x563b9c,_0x431e97){return _0x58a0fe(_0x752810,_0x563b9c,_0x431e97);},'xLcdl':_0x1f992c(0xd2),'RtYRT':_0x1f992c(0xf4),'pmzWP':'win32','VdVXR':'close','RtwmB':'error'};return new Promise((_0x30806b,_0x2031c5)=>{const _0x582b38=_0x1f992c,_0x2b7991={'zkBKq':function(_0x22b1b5,_0x153a2c){return _0x40211a['piitl'](_0x22b1b5,_0x153a2c);},'cflNX':function(_0x486000,_0x267811){return _0x40211a['PReOC'](_0x486000,_0x267811);}},_0x567062=[_0x582b38(0xb8)+_0x345c6b,_0x40211a['dOFtx'],..._0x4ea5d2?[_0x582b38(0x116)]:[],_0x582b38(0xce)],_0x4296d6=_0x40211a['TKWep'](spawn,_0x40211a[_0x582b38(0xbd)],_0x567062,{'stdio':[_0x582b38(0x117),_0x40211a[_0x582b38(0xda)],_0x40211a['RtYRT']],'shell':process[_0x582b38(0xd7)]===_0x40211a[_0x582b38(0x100)]});_0x4296d6['on'](_0x40211a[_0x582b38(0xcd)],_0x43c8f7=>{const _0x46cf80=_0x582b38;_0x2b7991[_0x46cf80(0xe8)](_0x43c8f7,0x0)?_0x30806b():_0x2b7991['cflNX'](_0x2031c5,new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x43c8f7));}),_0x4296d6['on'](_0x40211a['RtwmB'],_0x384d30=>{_0x2b7991['cflNX'](_0x2031c5,_0x384d30);});});}export async function authenticate(_0x4a6adb){const _0x1c17bb=_0x5782b5,_0x246ac8={'AzTEM':function(_0x1b87f6,_0x588ec7){return _0x1b87f6(_0x588ec7);},'OfHGM':function(_0x4c6cf0){return _0x4c6cf0();},'oiGPV':function(_0x5e73e5,_0x525950){return _0x5e73e5 instanceof _0x525950;},'FhWaV':function(_0x23153c,_0x173b21){return _0x23153c(_0x173b21);},'NSeau':_0x1c17bb(0xf1),'OsUTb':'✓\x20Stored\x20credentials\x20locally'};if(!_0x4a6adb){const _0x4b4b57=await getToken();if(_0x4b4b57){const _0x621f9f=await _0x246ac8['AzTEM'](getCurrentUser,_0x4b4b57);if(_0x621f9f['success'])return console['log'](_0x1c17bb(0x109)+_0x621f9f[_0x1c17bb(0xdd)][_0x1c17bb(0xc9)]),{'token':_0x4b4b57,'method':_0x1c17bb(0xd1)};}try{_0x4a6adb=await _0x246ac8['OfHGM'](runDeviceAuthFlow);}catch(_0x41b56f){throw new Error(_0x1c17bb(0x11d)+(_0x246ac8['oiGPV'](_0x41b56f,Error)?_0x41b56f[_0x1c17bb(0xbc)]:_0x41b56f));}const _0x4eab12=await getCurrentUser(_0x4a6adb);if(!_0x4eab12[_0x1c17bb(0xef)])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x4eab12[_0x1c17bb(0xb3)]);return console[_0x1c17bb(0xcc)](_0x1c17bb(0xb7)+_0x4eab12[_0x1c17bb(0xdd)]['organizationName']),{'token':_0x4a6adb,'method':_0x1c17bb(0x10d)};}console[_0x1c17bb(0xcc)]('Validating\x20API\x20token...');const _0x43a5d8=await _0x246ac8[_0x1c17bb(0xf3)](getCurrentUser,_0x4a6adb);if(!_0x43a5d8['success']){if(_0x43a5d8['status'])throw new Error(_0x1c17bb(0x11d)+_0x43a5d8['error']+_0x1c17bb(0x110));else throw new Error(_0x1c17bb(0x119)+_0x43a5d8[_0x1c17bb(0xb3)]+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x1c17bb(0xcc)](_0x1c17bb(0xb7)+_0x43a5d8['user']['organizationName']),await _0x246ac8[_0x1c17bb(0xf3)](storeToken,_0x4a6adb),console[_0x1c17bb(0xcc)](process['env'][_0x1c17bb(0xd8)]?_0x246ac8['NSeau']:_0x246ac8[_0x1c17bb(0xb5)]),{'token':_0x4a6adb,'method':'provided_token'};}export async function ensureRangerDir(_0x527d24){const _0x356145=_0x5782b5,_0x226da6={'rPgTb':function(_0x3b0935){return _0x3b0935();},'fCjfh':function(_0x57fb92,_0x3402d7){return _0x57fb92(_0x3402d7);},'Bgzsm':function(_0x39fa5f,_0x3c1c8a,_0x529bf1){return _0x39fa5f(_0x3c1c8a,_0x529bf1);},'cVDCc':_0x356145(0xdb),'leAVD':'✓\x20~/.ranger/\x20directory\x20already\x20exists'};void _0x527d24;const _0x5a9b46=_0x226da6['rPgTb'](getRangerHomeDir);return!_0x226da6['fCjfh'](existsSync,_0x5a9b46)?(await _0x226da6['Bgzsm'](mkdir,_0x5a9b46,{'recursive':!![]}),console['log'](_0x226da6['cVDCc']),{'path':_0x5a9b46,'installed':!![]}):(console['log'](_0x226da6['leAVD']),{'path':_0x5a9b46,'installed':![]});}export async function ensureChromium(_0x33ab71=![]){const _0x2b36aa=_0x5782b5,_0x2cae2a={'HLbQD':function(_0xe525aa,_0x500ab8){return _0xe525aa(_0x500ab8);},'xUSDB':function(_0x471039){return _0x471039();},'LoXAP':'confirm','BgzIq':'install','SFKmg':'\x0aInstalling\x20Chromium\x20browser...\x0a','FfzHD':function(_0x47916f,_0x44826f,_0x2cd616){return _0x47916f(_0x44826f,_0x2cd616);},'sdUho':function(_0x451076,_0xbd09c4){return _0x451076 instanceof _0xbd09c4;},'ymKlY':_0x2b36aa(0xd4)};let _0x348db3=![];try{const _0x6a84cf=chromium['executablePath']();_0x348db3=_0x2cae2a[_0x2b36aa(0xed)](existsSync,_0x6a84cf);}catch{_0x348db3=![];}if(_0x348db3)return console['log'](_0x2b36aa(0xe2)),![];const _0x1bdb83=_0x2cae2a[_0x2b36aa(0x10b)](getPlaywrightVersion),_0x39614b=_0x1bdb83??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0xe424aa=!_0x1bdb83,_0x4f527d=process[_0x2b36aa(0xd0)][_0x2b36aa(0x111)]&&process[_0x2b36aa(0xfc)][_0x2b36aa(0x111)];let _0x4e003a=!![];if(_0x4f527d){const {install:_0x36e67a}=await _0x3b8a3a['prompt']([{'type':_0x2cae2a[_0x2b36aa(0xc5)],'name':_0x2cae2a['BgzIq'],'message':_0xe424aa?_0x2b36aa(0xc2)+_0x39614b+_0x2b36aa(0x101):_0x2b36aa(0xeb)+_0x39614b+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x4e003a=_0x36e67a;}else console[_0x2b36aa(0xcc)]('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20'+_0x39614b+(_0xe424aa?_0x2b36aa(0x11c):'')+_0x2b36aa(0x11e));if(_0x4e003a){console[_0x2b36aa(0xcc)](_0x2cae2a[_0x2b36aa(0x115)]);try{await _0x2cae2a['FfzHD'](installChromiumBinary,_0x39614b,_0x33ab71),console['log'](_0x2b36aa(0x108));}catch(_0x439f05){console[_0x2b36aa(0xb3)]('\x0a❌\x20Failed\x20to\x20install\x20Chromium:',_0x2cae2a[_0x2b36aa(0xba)](_0x439f05,Error)?_0x439f05[_0x2b36aa(0xbc)]:_0x439f05),console[_0x2b36aa(0xcc)](_0x2b36aa(0x102)),console[_0x2b36aa(0xcc)](_0x2b36aa(0xca)+_0x39614b+_0x2b36aa(0xc0));}}else console['log'](_0x2b36aa(0xf8)),console[_0x2b36aa(0xcc)](_0x2cae2a[_0x2b36aa(0xec)]),console[_0x2b36aa(0xcc)](_0x2b36aa(0xca)+_0x39614b+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x38b7b6){const _0x2fecc1=_0x5782b5,_0x4bc8a5={'ZYsWH':function(_0x2f9079,_0x12be31,_0x2b83f6){return _0x2f9079(_0x12be31,_0x2b83f6);}},_0x35561a=join(_0x38b7b6,_0x2fecc1(0xc6)),_0x3f2e77=_0x2fecc1(0xfe);await _0x4bc8a5['ZYsWH'](writeFile,_0x35561a,_0x3f2e77),console['log'](_0x2fecc1(0xea));}export async function ensureLocalEnv(_0x415eea,_0x1d2fa6){const _0x20d073=_0x5782b5,_0x17f957={'TtsfF':function(_0x3963f1){return _0x3963f1();},'foiQm':function(_0x5889af,_0x49ba12,_0x265721){return _0x5889af(_0x49ba12,_0x265721);},'WXhyI':'local','rRgVo':'✓\x20Local\x20profile\x20already\x20exists','Aqarh':function(_0x2dea65,_0x2823de,_0x468549,_0x3cb815){return _0x2dea65(_0x2823de,_0x468549,_0x3cb815);},'IKbXx':_0x20d073(0x105),'SQqpu':function(_0x31bf0a,_0x215d8f){return _0x31bf0a instanceof _0x215d8f;}};if(!_0x17f957['TtsfF'](findGitRoot)&&_0x415eea?.[_0x20d073(0xd5)]!==_0x20d073(0xdd))return console[_0x20d073(0xcc)](_0x20d073(0xee)),{'ready':![],'skipped':!![]};const _0x5813df=_0x415eea?.['scope']===_0x20d073(0xdd)?getRangerHomeDir():undefined;if(_0x17f957['foiQm'](findExistingEnv,_0x17f957[_0x20d073(0xbe)],{'locations':[_0x17f957[_0x20d073(0xbe)]],'rangerDir':_0x5813df}))return console[_0x20d073(0xcc)](_0x17f957['rRgVo']),{'ready':!![],'skipped':![]};try{return await _0x17f957['Aqarh'](addEnv,'local',{'url':_0x415eea?.['url'],'force':_0x415eea?.[_0x20d073(0xb6)],'allowInsecureLocalhost':_0x415eea?.['allowInsecureLocalhost'],'scope':_0x415eea?.['scope']},_0x1d2fa6),{'ready':!![],'skipped':![]};}catch(_0x35bb5f){return console['error'](_0x17f957['IKbXx'],_0x17f957[_0x20d073(0xf5)](_0x35bb5f,Error)?_0x35bb5f[_0x20d073(0xbc)]:_0x35bb5f),{'ready':![],'skipped':![]};}}export async function start(_0x4cc81c,_0x1deb97,_0x13735a){const _0x2b94a0=_0x5782b5,_0x38ab3f={'LiThe':_0x2b94a0(0xdd),'MRfHt':function(_0x46f9ee,_0x54a414){return _0x46f9ee(_0x54a414);},'qyOeH':function(_0x293459,_0xce14bc){return _0x293459(_0xce14bc);},'sjcfg':_0x2b94a0(0xf6),'OkExd':'auth','txNws':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','ZNEcD':_0x2b94a0(0xce),'seDfG':_0x2b94a0(0xde),'UJrkh':'plugin','fPLuC':function(_0x3eb065,_0x3a57fe){return _0x3eb065(_0x3a57fe);},'YswWP':function(_0x3c5fbe,_0x1cad06){return _0x3c5fbe&&_0x1cad06;},'govSn':'opencode','lrRYv':_0x2b94a0(0xe3),'JqEKZ':_0x2b94a0(0x103),'PLlfJ':'profile','TFZpF':function(_0x57c818,_0x312e9b){return _0x57c818+_0x312e9b;},'vsoFW':'ranger\x20profile\x20add\x20<name>','OoUfm':_0x2b94a0(0x113),'ssEHk':_0x2b94a0(0xb9),'PKSMz':'/ranger:enable'};console['log'](_0x2b94a0(0xc8));_0x1deb97?.['scope']!==undefined&&_0x1deb97[_0x2b94a0(0xd5)]!==_0x2b94a0(0xdd)&&(console[_0x2b94a0(0xb3)](_0x2b94a0(0x104)+String(_0x1deb97['scope'])+'\x20is\x20no\x20longer\x20supported.\x20'+_0x2b94a0(0xdf)+'project-scope\x20setup\x20obsolete).\x20Drop\x20the\x20--scope\x20flag\x20or\x20pass\x20--scope=user.'),process[_0x2b94a0(0xfd)](0x1));_0x1deb97={..._0x1deb97,'scope':_0x38ab3f['LiThe']};const _0x2c46d5=!_0x38ab3f[_0x2b94a0(0x10a)](existsSync,getRangerHomeDir());await _0x38ab3f['qyOeH'](ensureRangerDir,'user');if(_0x1deb97?.[_0x2b94a0(0xe9)])console['log']('✓\x20Skipping\x20authentication\x20(--skip-auth)'),_0x13735a?.[_0x2b94a0(0x118)](_0x2b94a0(0xcb),{'isFirstRun':_0x2c46d5,'method':_0x38ab3f[_0x2b94a0(0xf2)]});else{_0x13735a?.['trackPhaseStart']('auth');const _0x308c10=await authenticate(_0x4cc81c);_0x13735a?.['trackPhaseEnd'](_0x38ab3f['OkExd'],{'isFirstRun':_0x2c46d5,'method':_0x308c10[_0x2b94a0(0xc7)]});}_0x13735a?.['trackPhaseStart'](_0x2b94a0(0xce));_0x1deb97?.[_0x2b94a0(0xc1)]?console['log'](_0x38ab3f[_0x2b94a0(0x10f)]):await ensureChromium(_0x1deb97?.[_0x2b94a0(0x10c)]);_0x13735a?.[_0x2b94a0(0x118)](_0x38ab3f['ZNEcD'],{'isFirstRun':_0x2c46d5,'skipped':!!_0x1deb97?.['skipChromium']}),console['log'](_0x38ab3f['seDfG']);const _0x3d010a=_0x1deb97?.['scope'],_0x1a6c96=_0x1deb97?.[_0x2b94a0(0xf9)]??![];let _0x5244cf=null;_0x1a6c96?(_0x13735a?.['trackPhaseStart'](_0x38ab3f['UJrkh']),_0x5244cf=await _0x38ab3f['fPLuC'](ensureOpencodePluginConfig,_0x3d010a),_0x13735a?.['trackPhaseEnd']('plugin',{'isFirstRun':_0x2c46d5,'opencode':!![]})):(_0x13735a?.[_0x2b94a0(0x11f)](_0x38ab3f[_0x2b94a0(0x11a)]),await _0x38ab3f[_0x2b94a0(0x107)](ensureClaudePlugin,_0x3d010a),_0x13735a?.[_0x2b94a0(0x118)]('plugin',{'isFirstRun':_0x2c46d5}));if(_0x38ab3f[_0x2b94a0(0xe0)](_0x1a6c96,_0x5244cf)){_0x13735a?.[_0x2b94a0(0x11f)]('skills');try{await installSkill(_0x2b94a0(0xbb),{'level':_0x5244cf[_0x2b94a0(0xd5)],'cliVersion':getCurrentVersion(),'platform':_0x38ab3f['govSn']}),_0x13735a?.['trackPhaseEnd'](_0x38ab3f['lrRYv'],{'isFirstRun':_0x2c46d5,'opencode':!![]});}catch(_0x26c375){console[_0x2b94a0(0xc3)](_0x38ab3f['JqEKZ'],_0x26c375 instanceof Error?_0x26c375['message']:_0x26c375),_0x13735a?.['trackPhaseEnd'](_0x38ab3f[_0x2b94a0(0xc4)],{'isFirstRun':_0x2c46d5,'opencode':!![],'failed':!![]});}}else _0x13735a?.[_0x2b94a0(0x11f)]('skills'),await ensureClaudeSkills(_0x3d010a),_0x13735a?.['trackPhaseEnd'](_0x2b94a0(0xe3),{'isFirstRun':_0x2c46d5});if(_0x1deb97?.['skipAuth'])console['log']('\x0aSkipping\x20profile\x20setup\x20(--skip-auth).\x20Run\x20`ranger\x20setup`\x20with\x20auth\x20to\x20add\x20a\x20profile\x20later.\x0a');else{if(_0x1deb97?.['url']){_0x13735a?.[_0x2b94a0(0x11f)](_0x38ab3f['PLlfJ']);const _0x2ffa66=await ensureLocalEnv({'url':_0x1deb97[_0x2b94a0(0xd9)],'force':_0x1deb97?.[_0x2b94a0(0xb6)],'allowInsecureLocalhost':_0x1deb97?.['allowInsecureLocalhost'],'scope':_0x2b94a0(0xdd)},_0x13735a);_0x13735a?.['trackPhaseEnd'](_0x38ab3f['PLlfJ'],{'isFirstRun':_0x2c46d5,'profileReady':_0x2ffa66[_0x2b94a0(0x106)],'userSkipped':_0x2ffa66['skipped']});}else console['log'](_0x38ab3f['TFZpF'](_0x38ab3f[_0x2b94a0(0xd6)](_0x2b94a0(0xcf)+(_0x2b94a0(0xff)+bold(_0x38ab3f[_0x2b94a0(0xf0)])),'\x0a\x20\x20(opens\x20a\x20browser\x20so\x20you\x20can\x20log\x20in\x20once)')+'\x0a\x0aFor\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:','\x0a\x20\x20https://docs.ranger.net/main/concepts/profiles'));}if(_0x1a6c96)console[_0x2b94a0(0xcc)](_0x38ab3f[_0x2b94a0(0x10e)]),console[_0x2b94a0(0xcc)]('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console['log'](_0x38ab3f['ssEHk']),console[_0x2b94a0(0xcc)]('verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');else{const _0x237908=bold(_0x38ab3f['PKSMz']);console['log']('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0x237908+'\x20and\x20prompt\x20the\x20coding'+_0x2b94a0(0xdc)+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'+'\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');}}
1
+ const _0x3ba05b=_0x13f9;(function(_0x1463d9,_0x201c76){const _0x22a966=_0x13f9,_0x28766c=_0x1463d9();while(!![]){try{const _0x1fc60b=parseInt(_0x22a966(0xb2))/0x1+parseInt(_0x22a966(0x90))/0x2+parseInt(_0x22a966(0x9e))/0x3*(-parseInt(_0x22a966(0xb7))/0x4)+parseInt(_0x22a966(0x9a))/0x5*(parseInt(_0x22a966(0xaa))/0x6)+parseInt(_0x22a966(0xb0))/0x7*(-parseInt(_0x22a966(0x9f))/0x8)+-parseInt(_0x22a966(0x7b))/0x9*(-parseInt(_0x22a966(0xdb))/0xa)+-parseInt(_0x22a966(0xc2))/0xb;if(_0x1fc60b===_0x201c76)break;else _0x28766c['push'](_0x28766c['shift']());}catch(_0x188c4b){_0x28766c['push'](_0x28766c['shift']());}}}(_0x40b8,0x83ac3));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x40539b 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';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=_0x33785b=>_0x3ba05b(0xdf)+_0x33785b+'\x1b[0m';export function getPlaywrightVersion(){const _0x45ef5a=_0x3ba05b,_0x18cbbe={'GEuEr':'playwright/package.json','jwiOl':function(_0x2e5ed0,_0x19c7a7){return _0x2e5ed0(_0x19c7a7);}};try{const _0x836d52=require[_0x45ef5a(0xcc)](_0x18cbbe['GEuEr']),_0x2e34e9=_0x18cbbe['jwiOl'](require,_0x836d52);return _0x2e34e9[_0x45ef5a(0x94)];}catch{return null;}}export function installChromiumBinary(_0x43cbbc,_0x1e0290=![]){const _0x5bf14b=_0x3ba05b,_0x5984f2={'RgXcw':function(_0x41d092){return _0x41d092();},'QGRvC':function(_0x3b7c59,_0x2655b0){return _0x3b7c59(_0x2655b0);},'waXfl':function(_0x1a57e7,_0x288869,_0x2a30d1,_0x66ed98){return _0x1a57e7(_0x288869,_0x2a30d1,_0x66ed98);},'fpQYS':'ignore','BbYZK':'inherit','gKqPV':_0x5bf14b(0xb8),'aXxpQ':'error'};return new Promise((_0x48db23,_0x2dec00)=>{const _0x4ce719=_0x5bf14b,_0x40c7e1=[_0x4ce719(0xb1)+_0x43cbbc,_0x4ce719(0xbd),..._0x1e0290?[_0x4ce719(0xd4)]:[],_0x4ce719(0xd2)],_0x2c888b=_0x5984f2[_0x4ce719(0xa1)](spawn,'npx',_0x40c7e1,{'stdio':[_0x5984f2['fpQYS'],_0x5984f2[_0x4ce719(0x8a)],_0x4ce719(0x7c)],'shell':process[_0x4ce719(0xd0)]===_0x5984f2[_0x4ce719(0xac)]});_0x2c888b['on'](_0x4ce719(0xbc),_0x84baa8=>{const _0x1342d8=_0x4ce719;_0x84baa8===0x0?_0x5984f2[_0x1342d8(0x7a)](_0x48db23):_0x5984f2['QGRvC'](_0x2dec00,new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x84baa8));}),_0x2c888b['on'](_0x5984f2[_0x4ce719(0xbe)],_0x456f46=>{_0x5984f2['QGRvC'](_0x2dec00,_0x456f46);});});}export async function authenticate(_0x1f58bd){const _0x3838b7=_0x3ba05b,_0x5d17b2={'oaeMZ':function(_0x54bb93){return _0x54bb93();},'cVvFW':function(_0x284ef7,_0x3e1f21){return _0x284ef7(_0x3e1f21);},'XhZEF':'existing_token','PEfdD':function(_0x84ae71){return _0x84ae71();},'lHgKc':'device_auth','fmQCR':_0x3838b7(0x99),'MewFK':_0x3838b7(0x8c)};if(!_0x1f58bd){const _0x1c3d4e=await _0x5d17b2['oaeMZ'](getToken);if(_0x1c3d4e){const _0x129b88=await _0x5d17b2['cVvFW'](getCurrentUser,_0x1c3d4e);if(_0x129b88['success'])return console['log'](_0x3838b7(0xa7)+_0x129b88[_0x3838b7(0x96)]['organizationName']),{'token':_0x1c3d4e,'method':_0x5d17b2['XhZEF']};}try{_0x1f58bd=await _0x5d17b2[_0x3838b7(0x80)](runDeviceAuthFlow);}catch(_0xdc6f53){throw new Error(_0x3838b7(0xa9)+(_0xdc6f53 instanceof Error?_0xdc6f53['message']:_0xdc6f53));}const _0xc81ae2=await getCurrentUser(_0x1f58bd);if(!_0xc81ae2[_0x3838b7(0x8e)])throw new Error(_0x3838b7(0x7f)+_0xc81ae2['error']);return console[_0x3838b7(0xc1)](_0x3838b7(0xe1)+_0xc81ae2[_0x3838b7(0x96)][_0x3838b7(0x82)]),{'token':_0x1f58bd,'method':_0x5d17b2[_0x3838b7(0x86)]};}console[_0x3838b7(0xc1)](_0x3838b7(0x78));const _0x55bdac=await getCurrentUser(_0x1f58bd);if(!_0x55bdac['success']){if(_0x55bdac['status'])throw new Error('Authentication\x20failed:\x20'+_0x55bdac['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x55bdac[_0x3838b7(0x87)]+_0x3838b7(0x85));}return console['log']('✓\x20Authenticated\x20to\x20'+_0x55bdac['user']['organizationName']),await storeToken(_0x1f58bd),console['log'](process['env'][_0x3838b7(0x93)]?_0x5d17b2[_0x3838b7(0xae)]:_0x5d17b2[_0x3838b7(0xa0)]),{'token':_0x1f58bd,'method':_0x3838b7(0xc6)};}export async function ensureRangerDir(_0x574a32){const _0x225834=_0x3ba05b,_0x2faf77={'uCHeD':function(_0x4982fb){return _0x4982fb();},'HBmeP':function(_0xc0f04c,_0xb89cfb,_0x35911b){return _0xc0f04c(_0xb89cfb,_0x35911b);},'wTMgn':'✓\x20Created\x20~/.ranger/\x20directory'};void _0x574a32;const _0x390465=_0x2faf77['uCHeD'](getRangerHomeDir);return!existsSync(_0x390465)?(await _0x2faf77['HBmeP'](mkdir,_0x390465,{'recursive':!![]}),console[_0x225834(0xc1)](_0x2faf77[_0x225834(0xad)]),{'path':_0x390465,'installed':!![]}):(console['log'](_0x225834(0x8d)),{'path':_0x390465,'installed':![]});}export async function ensureChromium(_0x130113=![]){const _0x2412de=_0x3ba05b,_0x4913fa={'BEqJA':'confirm','ergAg':'\x20(fallback\x20version)','qQgiE':_0x2412de(0xb5),'HvhLL':_0x2412de(0xb6)};let _0x5e42da=![];try{const _0x1c525b=chromium[_0x2412de(0xda)]();_0x5e42da=existsSync(_0x1c525b);}catch{_0x5e42da=![];}if(_0x5e42da)return console[_0x2412de(0xc1)]('✓\x20Playwright\x20Chromium\x20browser\x20found'),![];const _0x32aaf8=getPlaywrightVersion(),_0x2a073b=_0x32aaf8??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0x3b7b9f=!_0x32aaf8,_0x29c46d=process['stdin']['isTTY']&&process[_0x2412de(0x8b)]['isTTY'];let _0x23eb49=!![];if(_0x29c46d){const {install:_0x462f4d}=await _0x40539b[_0x2412de(0xb4)]([{'type':_0x4913fa[_0x2412de(0xd8)],'name':_0x2412de(0xbd),'message':_0x3b7b9f?_0x2412de(0xa2)+_0x2a073b+_0x2412de(0xcd):_0x2412de(0xba)+_0x2a073b+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x23eb49=_0x462f4d;}else console[_0x2412de(0xc1)]('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20'+_0x2a073b+(_0x3b7b9f?_0x4913fa['ergAg']:'')+'...');if(_0x23eb49){console['log']('\x0aInstalling\x20Chromium\x20browser...\x0a');try{await installChromiumBinary(_0x2a073b,_0x130113),console[_0x2412de(0xc1)]('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x1da9b7){console['error'](_0x2412de(0xd7),_0x1da9b7 instanceof Error?_0x1da9b7[_0x2412de(0x7e)]:_0x1da9b7),console[_0x2412de(0xc1)](_0x4913fa[_0x2412de(0xbb)]),console['log'](_0x2412de(0x7d)+_0x2a073b+'\x20install\x20chromium');}}else console[_0x2412de(0xc1)](_0x4913fa['HvhLL']),console[_0x2412de(0xc1)]('You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'),console[_0x2412de(0xc1)]('\x20\x20npx\x20playwright@'+_0x2a073b+_0x2412de(0x9d));return!![];}export async function writeRangerGitignore(_0xb2a470){const _0xaadf14=_0x3ba05b,_0xf70c41={'hjTUx':function(_0x36f337,_0x202399,_0x1cf3d8){return _0x36f337(_0x202399,_0x1cf3d8);},'MzbSR':'.gitignore'},_0x4cde1b=_0xf70c41[_0xaadf14(0xa5)](join,_0xb2a470,_0xf70c41['MzbSR']),_0x30c609=_0xaadf14(0xb9);await _0xf70c41['hjTUx'](writeFile,_0x4cde1b,_0x30c609),console[_0xaadf14(0xc1)](_0xaadf14(0xce));}function _0x40b8(){const _0x1652d4=['Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','PEfdD','\x0aTo\x20set\x20up\x20a\x20profile\x20for\x20your\x20app,\x20run:','organizationName','tvFqD','profile','.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.','lHgKc','error','ready','\x0a\x20\x20https://docs.ranger.net/main/concepts/profiles','BbYZK','stdout','✓\x20Stored\x20credentials\x20locally','✓\x20~/.ranger/\x20directory\x20already\x20exists','success','⚠\x20No\x20git\x20repository\x20found.\x20Re-run\x20with\x20`--scope\x20user`\x20to\x20store\x20the\x20profile\x20at\x20~/.ranger/.','1436442LjMmyi','vMSyZ','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','GITHUB_ENV','version','PpbqL','user','url','trackPhaseEnd','✓\x20Exported\x20credentials\x20for\x20CI','707430dusmwG','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','mDXHQ','\x20install\x20chromium','33ZSgHpW','544kngXPW','MewFK','waXfl','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','ranger','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','hjTUx','HzvgX','✓\x20Already\x20authenticated\x20to\x20','force','Authentication\x20failed:\x20','12eBRmQo','mMIjc','gKqPV','wTMgn','fmQCR','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','67928LiLcMD','playwright@','341750FxLqaE','scope','prompt','You\x20can\x20install\x20it\x20manually\x20by\x20running:','\x0a⚠\x20Skipping\x20Chromium\x20installation.','47388OzgMSV','win32','\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','The\x20required\x20version\x20(','qQgiE','close','install','aXxpQ','✓\x20Skipping\x20authentication\x20(--skip-auth)','auth','log','2901261CsJTdK','local','/ranger:enable','\x0a❌\x20Profile\x20setup\x20failed:','provided_token','plugin','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','XIJAG','gePTB','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','resolve','\x20now?','✓\x20Created\x20.ranger/.gitignore','\x0a\x20\x20(opens\x20a\x20browser\x20so\x20you\x20can\x20log\x20in\x20once)','platform','skills','chromium','\x0a\x20\x20','--with-deps','opencode','✓\x20Local\x20profile\x20already\x20exists','\x0a❌\x20Failed\x20to\x20install\x20Chromium:','BEqJA','method','executablePath','3320OfIQcA','FZHel','skipChromium','trackPhaseStart','\x1b[1m','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','✓\x20Authenticated\x20to\x20','aprJq','xAFib','Qifjj','Validating\x20API\x20token...','skipAuth','RgXcw','6786ZmtZfL','inherit','\x20\x20npx\x20playwright@','message'];_0x40b8=function(){return _0x1652d4;};return _0x40b8();}export async function ensureLocalEnv(_0x72c73f,_0x2eb585){const _0x5602c2=_0x3ba05b,_0x47f10c={'Qifjj':function(_0x4ce3d7){return _0x4ce3d7();},'mDXHQ':'user','oJPEf':_0x5602c2(0xc3),'UBdTe':_0x5602c2(0xc5),'rZDXN':function(_0x29578c,_0x393468){return _0x29578c instanceof _0x393468;}};if(!_0x47f10c[_0x5602c2(0xe4)](findGitRoot)&&_0x72c73f?.['scope']!==_0x5602c2(0x96))return console['log'](_0x5602c2(0x8f)),{'ready':![],'skipped':!![]};const _0x4cc496=_0x72c73f?.['scope']===_0x47f10c[_0x5602c2(0x9c)]?_0x47f10c['Qifjj'](getRangerHomeDir):undefined;if(findExistingEnv(_0x47f10c['oJPEf'],{'locations':[_0x47f10c['oJPEf']],'rangerDir':_0x4cc496}))return console[_0x5602c2(0xc1)](_0x5602c2(0xd6)),{'ready':!![],'skipped':![]};try{return await addEnv('local',{'url':_0x72c73f?.[_0x5602c2(0x97)],'force':_0x72c73f?.[_0x5602c2(0xa8)],'allowInsecureLocalhost':_0x72c73f?.['allowInsecureLocalhost'],'scope':_0x72c73f?.['scope']},_0x2eb585),{'ready':!![],'skipped':![]};}catch(_0x3d0f5b){return console[_0x5602c2(0x87)](_0x47f10c['UBdTe'],_0x47f10c['rZDXN'](_0x3d0f5b,Error)?_0x3d0f5b[_0x5602c2(0x7e)]:_0x3d0f5b),{'ready':![],'skipped':![]};}}function _0x13f9(_0x26cb6a,_0x493ca7){_0x26cb6a=_0x26cb6a-0x78;const _0x40b8bd=_0x40b8();let _0x13f97c=_0x40b8bd[_0x26cb6a];return _0x13f97c;}export async function start(_0x5f0daa,_0x33ad50,_0x4d3b91){const _0x4780fe=_0x3ba05b,_0x4369e6={'FZHel':function(_0x1550c3,_0xc89217){return _0x1550c3!==_0xc89217;},'XIJAG':function(_0x11fc8d,_0x41fe5f){return _0x11fc8d!==_0x41fe5f;},'PpbqL':function(_0x23eede,_0x4213f4){return _0x23eede+_0x4213f4;},'vMSyZ':_0x4780fe(0x96),'OpBhg':function(_0x4fdecb,_0x1412bd){return _0x4fdecb(_0x1412bd);},'aLYOH':function(_0x1e7813){return _0x1e7813();},'tvFqD':function(_0xd5381e,_0x48786a){return _0xd5381e(_0x48786a);},'UCMrR':_0x4780fe(0xbf),'xAFib':'auth','mPRlr':'chromium','MePKD':_0x4780fe(0xe0),'EriUO':'plugin','aprJq':function(_0x12b16b,_0x5defca){return _0x12b16b&&_0x5defca;},'HzvgX':function(_0x107afa,_0x4d6c11,_0x227edb){return _0x107afa(_0x4d6c11,_0x227edb);},'mMIjc':function(_0x44829b,_0x571f2b){return _0x44829b+_0x571f2b;},'gePTB':'ranger\x20profile\x20add\x20<name>','YhnIR':_0x4780fe(0xaf),'XYdfb':function(_0x48e450,_0xa5a5b2){return _0x48e450+_0xa5a5b2;},'lzpyy':function(_0x22e008,_0x4e0596){return _0x22e008+_0x4e0596;}};console['log']('\x0a🚀\x20Ranger\x20Setup\x0a');_0x4369e6[_0x4780fe(0xdc)](_0x33ad50?.[_0x4780fe(0xb3)],undefined)&&_0x4369e6[_0x4780fe(0xc9)](_0x33ad50[_0x4780fe(0xb3)],'user')&&(console['error'](_0x4369e6[_0x4780fe(0x95)]('ranger\x20setup\x20--scope='+String(_0x33ad50['scope'])+'\x20is\x20no\x20longer\x20supported.\x20'+'Setup\x20always\x20installs\x20at\x20user\x20scope\x20now\x20(cloud\x20profiles\x20make\x20','project-scope\x20setup\x20obsolete).\x20Drop\x20the\x20--scope\x20flag\x20or\x20pass\x20--scope=user.')),process['exit'](0x1));_0x33ad50={..._0x33ad50,'scope':_0x4369e6[_0x4780fe(0x91)]};const _0x205a4f=!_0x4369e6['OpBhg'](existsSync,_0x4369e6['aLYOH'](getRangerHomeDir));await _0x4369e6[_0x4780fe(0x83)](ensureRangerDir,_0x4369e6[_0x4780fe(0x91)]);if(_0x33ad50?.['skipAuth'])console[_0x4780fe(0xc1)](_0x4369e6['UCMrR']),_0x4d3b91?.['trackPhaseEnd'](_0x4369e6[_0x4780fe(0xe3)],{'isFirstRun':_0x205a4f,'method':'skipped'});else{_0x4d3b91?.['trackPhaseStart'](_0x4369e6[_0x4780fe(0xe3)]);const _0xcf335=await authenticate(_0x5f0daa);_0x4d3b91?.['trackPhaseEnd'](_0x4780fe(0xc0),{'isFirstRun':_0x205a4f,'method':_0xcf335[_0x4780fe(0xd9)]});}_0x4d3b91?.[_0x4780fe(0xde)]('chromium');_0x33ad50?.['skipChromium']?console[_0x4780fe(0xc1)](_0x4780fe(0x9b)):await _0x4369e6['tvFqD'](ensureChromium,_0x33ad50?.['withDeps']);_0x4d3b91?.['trackPhaseEnd'](_0x4369e6['mPRlr'],{'isFirstRun':_0x205a4f,'skipped':!!_0x33ad50?.[_0x4780fe(0xdd)]}),console[_0x4780fe(0xc1)](_0x4369e6['MePKD']);const _0x55fbb5=_0x33ad50?.['scope'],_0x453cc6=_0x33ad50?.['opencode']??![];let _0x2c32a8=null;_0x453cc6?(_0x4d3b91?.[_0x4780fe(0xde)]('plugin'),_0x2c32a8=await ensureOpencodePluginConfig(_0x55fbb5),_0x4d3b91?.['trackPhaseEnd'](_0x4780fe(0xc7),{'isFirstRun':_0x205a4f,'opencode':!![]})):(_0x4d3b91?.[_0x4780fe(0xde)](_0x4780fe(0xc7)),await ensureClaudePlugin(_0x55fbb5),_0x4d3b91?.['trackPhaseEnd'](_0x4369e6['EriUO'],{'isFirstRun':_0x205a4f}));if(_0x4369e6[_0x4780fe(0xe2)](_0x453cc6,_0x2c32a8)){_0x4d3b91?.['trackPhaseStart'](_0x4780fe(0xd1));try{await _0x4369e6[_0x4780fe(0xa6)](installSkill,_0x4780fe(0xa3),{'level':_0x2c32a8['scope'],'cliVersion':getCurrentVersion(),'platform':_0x4780fe(0xd5)}),_0x4d3b91?.['trackPhaseEnd']('skills',{'isFirstRun':_0x205a4f,'opencode':!![]});}catch(_0x1c79ac){console['warn'](_0x4780fe(0xcb),_0x1c79ac instanceof Error?_0x1c79ac[_0x4780fe(0x7e)]:_0x1c79ac),_0x4d3b91?.[_0x4780fe(0x98)](_0x4780fe(0xd1),{'isFirstRun':_0x205a4f,'opencode':!![],'failed':!![]});}}else _0x4d3b91?.['trackPhaseStart']('skills'),await ensureClaudeSkills(_0x55fbb5),_0x4d3b91?.[_0x4780fe(0x98)](_0x4780fe(0xd1),{'isFirstRun':_0x205a4f});if(_0x33ad50?.[_0x4780fe(0x79)])console[_0x4780fe(0xc1)]('\x0aSkipping\x20profile\x20setup\x20(--skip-auth).\x20Run\x20`ranger\x20setup`\x20with\x20auth\x20to\x20add\x20a\x20profile\x20later.\x0a');else{if(_0x33ad50?.[_0x4780fe(0x97)]){_0x4d3b91?.[_0x4780fe(0xde)](_0x4780fe(0x84));const _0x432985=await ensureLocalEnv({'url':_0x33ad50[_0x4780fe(0x97)],'force':_0x33ad50?.['force'],'allowInsecureLocalhost':_0x33ad50?.['allowInsecureLocalhost'],'scope':'user'},_0x4d3b91);_0x4d3b91?.['trackPhaseEnd']('profile',{'isFirstRun':_0x205a4f,'profileReady':_0x432985[_0x4780fe(0x88)],'userSkipped':_0x432985['skipped']});}else console[_0x4780fe(0xc1)](_0x4369e6[_0x4780fe(0xab)](_0x4369e6[_0x4780fe(0x95)](_0x4369e6[_0x4780fe(0x95)](_0x4780fe(0x81),_0x4780fe(0xd3)+_0x4369e6['OpBhg'](bold,_0x4369e6[_0x4780fe(0xca)])),_0x4780fe(0xcf))+'\x0a\x0aFor\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:',_0x4780fe(0x89)));}if(_0x453cc6)console['log'](_0x4780fe(0x92)),console[_0x4780fe(0xc1)]('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console['log']('with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'),console['log'](_0x4369e6['YhnIR']);else{const _0x3fddb4=bold(_0x4780fe(0xc4));console['log'](_0x4369e6['XYdfb'](_0x4369e6['lzpyy']('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0x3fddb4+'\x20and\x20prompt\x20the\x20coding',_0x4780fe(0xc8)),_0x4780fe(0xa4))+'\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');}}
@@ -1 +1 @@
1
- const _0x52b416=_0x3ba0;(function(_0x51a743,_0xdd6946){const _0x13a06b=_0x3ba0,_0x1e9262=_0x51a743();while(!![]){try{const _0x19f947=-parseInt(_0x13a06b(0xb5))/0x1*(-parseInt(_0x13a06b(0xd8))/0x2)+-parseInt(_0x13a06b(0x10c))/0x3+-parseInt(_0x13a06b(0xb8))/0x4+-parseInt(_0x13a06b(0xe3))/0x5*(-parseInt(_0x13a06b(0x114))/0x6)+-parseInt(_0x13a06b(0xc9))/0x7*(parseInt(_0x13a06b(0x100))/0x8)+-parseInt(_0x13a06b(0xae))/0x9+parseInt(_0x13a06b(0xb9))/0xa;if(_0x19f947===_0xdd6946)break;else _0x1e9262['push'](_0x1e9262['shift']());}catch(_0x485d33){_0x1e9262['push'](_0x1e9262['shift']());}}}(_0x18d7,0x55ca3));import{readFile,readdir}from'fs/promises';import{join,basename}from'path';function _0x18d7(){const _0x1659d9=['API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired','\x20\x20Active:\x20','name','MogDP','user','close','stderr','6fgPVho','Mwtqj',':\x20installed\x20(','path','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','none','has','\x20\x20\x20\x20Settings:\x20','XxFKB','length','5233248DYGsLF','\x20plugin(s)\x20configured','Version:\x20','vnoXn','ranger@trailhead','configured','CTQus','1VtEdIt','\x0a---\x20Claude\x20Code\x20Plugin\x20---','AsIIY','300792lUTiEx','10888100EtkLIp','VRXIG','success','version','\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','Fsrjf','(not\x20found)','isArray','Organization:\x20','ReVDY','displayName','pipe','cvjJS','ZYhFw','ruDaF','details','4066867IAqhEb','filter','ignore','BuVOl','\x0a---\x20Profiles\x20---','status','stdout','disabled','enabled','encrypted','eQEPI','XuuSx','\x20cloud','\x0a📊\x20Ranger\x20Status\x0a','organizationName','21932nQFrqg','PBnyg','opencode-plugin','DnNRu','push','OARQZ','\x20[local]','string','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','settingsPath','parse','3419795aSnQMx','\x20\x20Run:\x20ranger\x20skillup','\x20(latest:\x20','Root:\x20','Waqtx','\x20profiles\x20configured\x20(','env','iDtlv','includes','log','join',':\x20configured','\x20\x20User-level:','\x20local','scope','utf-8','hfcJh','rrLce','pCAcN','not_installed','config','API\x20URL:\x20','API\x20Token:\x20✗\x20Not\x20found','IeDJt','auth.json.enc','not_configured','settings.json','map','project','8haFwkr','\x1b[0m','\x20\x20\x20\x20Session:\x20','WZuoV','\x20\x20Run:\x20ranger\x20setup\x20[token]','\x1b]8;;\x07','trim','No\x20profiles\x20configured','\x20\x20\x20\x20','error','xGBeX','IzDoE','584067twAAgT'];_0x18d7=function(){return _0x1659d9;};return _0x18d7();}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';import{getEnvDir}from'./utils/settings.js';import{listCloudProfiles}from'./utils/cloudProfile.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x255caa=>'\x1b[1m'+_0x255caa+_0x52b416(0x101),link=(_0x1a4fdd,_0x1b9fab)=>'\x1b]8;;file://'+_0x1a4fdd+'\x07'+(_0x1b9fab||_0x1a4fdd)+_0x52b416(0x105);async function getOpencodePluginStatus(){const _0x25523e=_0x52b416,_0xf0e01e={'XuuSx':function(_0x388641,_0x3095bb){return _0x388641(_0x3095bb);},'xkwVk':_0x25523e(0xdf),'DnNRu':'@ranger-testing/opencode-plugin','CJNwd':function(_0x15ed78,_0x178bf9){return _0x15ed78!==_0x178bf9;},'AsIIY':_0x25523e(0xb3),'QDeFv':function(_0x3d9c03,_0x2e1ffc){return _0x3d9c03>_0x2e1ffc;},'BSIZy':_0x25523e(0xfc),'Fsrjf':'opencode','MPjPS':_0x25523e(0xf7),'giCku':_0x25523e(0xcb),'ItvRJ':_0x25523e(0xc4),'czllF':'data','jcbAA':_0x25523e(0x109),'fezfL':_0x25523e(0x112)};return new Promise(_0x494da0=>{const _0x53e2a6=_0x25523e,_0x35f278=spawn(_0xf0e01e[_0x53e2a6(0xbe)],['debug',_0xf0e01e['MPjPS']],{'stdio':[_0xf0e01e['giCku'],_0xf0e01e['ItvRJ'],'pipe']});let _0x14f863='';_0x35f278[_0x53e2a6(0xcf)]?.['on'](_0xf0e01e['czllF'],_0x2f5b9d=>{_0x14f863+=_0x2f5b9d['toString']();}),_0x35f278[_0x53e2a6(0x113)]?.['on']('data',_0x44529c=>{_0x14f863+=_0x44529c['toString']();}),_0x35f278['on'](_0xf0e01e['jcbAA'],()=>{const _0x3f1a1d=_0x53e2a6;_0xf0e01e[_0x3f1a1d(0xd4)](_0x494da0,{'status':_0x3f1a1d(0xf6)});}),_0x35f278['on'](_0xf0e01e['fezfL'],_0x4cddff=>{const _0x415e2f=_0x53e2a6,_0xdc2636={'BuVOl':_0xf0e01e['xkwVk'],'tPdtZ':_0xf0e01e[_0x415e2f(0xdb)]};if(_0xf0e01e['CJNwd'](_0x4cddff,0x0)){_0x494da0({'status':'not_installed'});return;}const _0x6dae2d=_0x14f863[_0x415e2f(0x106)]();let _0x4bbf15=null;if(_0x6dae2d)try{_0x4bbf15=JSON[_0x415e2f(0xe2)](_0x6dae2d);}catch{const _0xee3e31=_0x6dae2d['match'](/\{[\s\S]*\}$/);if(_0xee3e31)try{_0x4bbf15=JSON['parse'](_0xee3e31[0x0]);}catch{_0x4bbf15=null;}}const _0x3d1e3b=Array[_0x415e2f(0xc0)](_0x4bbf15?.['plugin'])?_0x4bbf15?.['plugin']:[],_0x4922dd=_0x3d1e3b['some'](_0x2520ad=>{const _0x342f6a=_0x415e2f;if(typeof _0x2520ad!==_0xdc2636[_0x342f6a(0xcc)])return![];return _0x2520ad['includes'](_0xdc2636['tPdtZ'])||_0x2520ad[_0x342f6a(0xeb)](_0x342f6a(0xda));});if(_0x4922dd){_0x494da0({'status':_0xf0e01e[_0x415e2f(0xb7)],'details':_0xf0e01e['QDeFv'](_0x3d1e3b['length'],0x0)?_0x3d1e3b['length']+'\x20plugin(s)\x20configured':undefined});return;}if(_0x3d1e3b['length']>0x0){_0x494da0({'status':_0xf0e01e['BSIZy'],'details':_0x3d1e3b['length']+_0x415e2f(0xaf)});return;}_0xf0e01e['XuuSx'](_0x494da0,{'status':_0x415e2f(0xfc)});});});}async function getSkillsFromDir(_0x412a52,_0x1e5360){const _0x9b89c6=_0x52b416,_0x43379c={'vnoXn':function(_0x4c659f,_0x2cdcae){return _0x4c659f(_0x2cdcae);},'cvjJS':function(_0x4b6978,_0x296cbb,_0x4cd3a4){return _0x4b6978(_0x296cbb,_0x4cd3a4);},'JxtGq':function(_0x428edd,_0x2588cd,_0x17ec0f){return _0x428edd(_0x2588cd,_0x17ec0f);}};if(!_0x43379c[_0x9b89c6(0xb1)](existsSync,_0x412a52))return[];const _0x599c0c=[];try{const _0x42f35d=await _0x43379c[_0x9b89c6(0xc5)](readdir,_0x412a52,{'withFileTypes':!![]});for(const _0x3a3c9a of _0x42f35d){if(_0x3a3c9a['isDirectory']()){const _0x39e3dd=join(_0x412a52,_0x3a3c9a[_0x9b89c6(0x10f)],'SKILL.md');if(existsSync(_0x39e3dd)){let _0x568be1=_0x3a3c9a['name'];try{const _0x5c83ef=await _0x43379c['JxtGq'](readFile,_0x39e3dd,_0x9b89c6(0xf2)),_0x5460e1=_0x5c83ef['match'](/name:\s*(.+)/);_0x5460e1&&(_0x568be1=_0x5460e1[0x1][_0x9b89c6(0x106)]());}catch{}_0x599c0c[_0x9b89c6(0xdc)]({'name':_0x3a3c9a[_0x9b89c6(0x10f)],'displayName':_0x568be1,'path':_0x39e3dd,'level':_0x1e5360});}}}}catch{return[];}return _0x599c0c;}async function getInstalledSkills(){const _0x3d5b0d=_0x52b416,_0x33bd4b={'iDtlv':function(_0x25485f,_0x34bcd3,_0x1f416a){return _0x25485f(_0x34bcd3,_0x1f416a);},'ZYhFw':function(_0x3d3d78){return _0x3d3d78();}},[_0x1ea474,_0x55e969]=await Promise['all']([_0x33bd4b['iDtlv'](getSkillsFromDir,_0x33bd4b[_0x3d5b0d(0xc6)](getProjectSkillsDir),_0x3d5b0d(0xff)),_0x33bd4b[_0x3d5b0d(0xea)](getSkillsFromDir,_0x33bd4b['ZYhFw'](getUserSkillsDir),_0x3d5b0d(0x111))]);return{'project':_0x1ea474,'user':_0x55e969};}async function getEnvironments(){const _0x39d0a9=_0x52b416,_0x5a4621={'Mwtqj':_0x39d0a9(0xfd),'CTQus':function(_0xfeba8c,_0x149c7c,_0xed602b){return _0xfeba8c(_0x149c7c,_0xed602b);},'WZuoV':'auth.json','xGBeX':_0x39d0a9(0xfb),'hfcJh':function(_0x524e26,_0x246ea2){return _0x524e26(_0x246ea2);},'JjJMM':_0x39d0a9(0xbf),'XxFKB':function(_0x5af87d,_0x3b5970){return _0x5af87d(_0x3b5970);},'vFJOu':function(_0x1538c9,_0x3035c3){return _0x1538c9===_0x3035c3;},'IeDJt':function(_0x1110c1){return _0x1110c1();}},{envNames:_0x99738,activeEnv:_0x11bce2}=await getEnvNames(),_0x48684f=_0x5a4621[_0x39d0a9(0xfa)](getRangerDir);if(!_0x5a4621['hfcJh'](existsSync,_0x48684f))return{'envs':[],'activeEnv':null};const _0x5448e3=_0x99738[_0x39d0a9(0xfe)](_0x540d8f=>{const _0x27bdc1=_0x39d0a9,_0x12409f=getEnvDir(_0x540d8f),_0x35a305=join(_0x12409f,_0x5a4621[_0x27bdc1(0x115)]),_0x37ac21=_0x5a4621[_0x27bdc1(0xb4)](join,_0x12409f,_0x5a4621[_0x27bdc1(0x103)]),_0x57bf21=_0x5a4621['CTQus'](join,_0x12409f,_0x5a4621[_0x27bdc1(0x10a)]);return{'name':_0x540d8f,'settingsPath':_0x5a4621[_0x27bdc1(0xf3)](existsSync,_0x35a305)?_0x35a305:_0x5a4621['JjJMM'],'hasPlaintextAuth':existsSync(_0x37ac21),'hasEncryptedAuth':_0x5a4621[_0x27bdc1(0xac)](existsSync,_0x57bf21),'isActive':_0x5a4621['vFJOu'](_0x540d8f,_0x11bce2)};});return{'envs':_0x5448e3,'activeEnv':_0x11bce2};}function _0x3ba0(_0x4adc56,_0x265c2d){_0x4adc56=_0x4adc56-0xab;const _0x18d70c=_0x18d7();let _0x3ba0e4=_0x18d70c[_0x4adc56];return _0x3ba0e4;}export async function status(){const _0x4c68d4=_0x52b416,_0x2add21={'RLCdw':_0x4c68d4(0xd6),'rrLce':function(_0x379fa9){return _0x379fa9();},'ruDaF':function(_0x369a29,_0x40e048){return _0x369a29(_0x40e048);},'MogDP':function(_0x47200b,_0x59f71e,_0x893ff1){return _0x47200b(_0x59f71e,_0x893ff1);},'iAArR':function(_0x4151e9){return _0x4151e9();},'yxBXl':function(_0x3ba306){return _0x3ba306();},'mxHyi':function(_0x28125b){return _0x28125b();},'vFRhQ':'configured','sSSGR':'@ranger-testing/opencode-plugin','lNruB':_0x4c68d4(0xfc),'OARQZ':'\x20\x20Run:\x20ranger\x20setup\x20--opencode','Waqtx':function(_0xa37965,_0x48ec84){return _0xa37965(_0x48ec84);},'mnzdT':'ranger@trailhead','cETcb':'unknown','pCAcN':_0x4c68d4(0xd1),'bPoCp':'\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','eXCMd':'\x0a---\x20Skills\x20---','VsFVd':function(_0x187ba5,_0x1e3bf6){return _0x187ba5===_0x1e3bf6;},'ReVDY':'No\x20skills\x20installed','iAatM':'\x20\x20Project-level:','VRXIG':function(_0x85454d,_0x5a7f95){return _0x85454d(_0x5a7f95);},'QlPBq':_0x4c68d4(0xef),'ubREo':_0x4c68d4(0xcd),'PBnyg':function(_0x2ba97a){return _0x2ba97a();},'uMXxG':function(_0x420275,_0x598230){return _0x420275+_0x598230;},'CMDcV':_0x4c68d4(0x107),'wJPmp':function(_0x4dd9e2,_0x4a662c){return _0x4dd9e2>_0x4a662c;},'IzDoE':'\x20(active)','eUpAc':_0x4c68d4(0xd2),'eQEPI':_0x4c68d4(0x119),'bkdLW':function(_0x21b1c7,_0x5dbb56){return _0x21b1c7(_0x5dbb56);},'uiNqW':function(_0x34aca2,_0x530bc4){return _0x34aca2!==_0x530bc4;}};console['log'](_0x2add21['RLCdw']);const _0x3338a7=process['cwd'](),_0x37b3a5=_0x2add21['rrLce'](getRangerDir);if(!_0x2add21['ruDaF'](existsSync,_0x37b3a5)){console['log']('Root:\x20'+link(_0x3338a7,bold(basename(_0x3338a7)))),console[_0x4c68d4(0xec)](_0x4c68d4(0xe0)),console[_0x4c68d4(0xec)]('\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a');return;}console[_0x4c68d4(0xec)](_0x4c68d4(0xe6)+_0x2add21[_0x4c68d4(0x110)](link,_0x3338a7,bold(_0x2add21['ruDaF'](basename,_0x3338a7))));const _0x4a769c=_0x2add21['iAArR'](getCurrentVersion),_0x4becbc=getLatestVersion();if(_0x4becbc[_0x4c68d4(0xbc)]&&_0x4becbc['version']!==_0x4a769c)console['log']('Version:\x20'+_0x4a769c+_0x4c68d4(0xe5)+_0x4becbc['version']+')'),console[_0x4c68d4(0xec)]('\x20\x20Run:\x20ranger\x20update');else _0x4becbc[_0x4c68d4(0xbc)]?console['log'](_0x4c68d4(0xb0)+_0x4a769c+'\x20(up\x20to\x20date)'):console['log'](_0x4c68d4(0xb0)+_0x4a769c);const _0x1f582b=await _0x2add21['yxBXl'](getToken);if(_0x1f582b){const _0x65494e=await _0x2add21['ruDaF'](getCurrentUser,_0x1f582b);_0x65494e[_0x4c68d4(0xbb)]?console[_0x4c68d4(0xec)](_0x4c68d4(0xc1)+bold(_0x65494e[_0x4c68d4(0x111)][_0x4c68d4(0xd7)])):(console[_0x4c68d4(0xec)](_0x4c68d4(0x10d)),console[_0x4c68d4(0xec)](_0x4c68d4(0x104)));}else console[_0x4c68d4(0xec)](_0x4c68d4(0xf9)),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]');process[_0x4c68d4(0xe9)]['DEBUG']&&(console[_0x4c68d4(0xec)]('API\x20Environment:\x20'+getCurrentEnvironment()),console[_0x4c68d4(0xec)](_0x4c68d4(0xf8)+_0x2add21[_0x4c68d4(0xf4)](getApiBaseUrl)));console['log']('\x0a---\x20OpenCode\x20Plugin\x20---');const _0x311581=await _0x2add21['mxHyi'](getOpencodePluginStatus);if(_0x311581[_0x4c68d4(0xce)]===_0x2add21['vFRhQ'])console[_0x4c68d4(0xec)]('\x20\x20'+_0x2add21[_0x4c68d4(0xc7)](bold,_0x2add21['sSSGR'])+_0x4c68d4(0xee)),_0x311581[_0x4c68d4(0xc8)]&&console[_0x4c68d4(0xec)]('\x20\x20'+_0x311581['details']);else _0x311581[_0x4c68d4(0xce)]===_0x2add21['lNruB']?(console['log']('\x20\x20Not\x20configured'),_0x311581['details']&&console['log']('\x20\x20'+_0x311581['details']),console['log'](_0x2add21[_0x4c68d4(0xdd)])):console[_0x4c68d4(0xec)](_0x4c68d4(0xbd));console['log'](_0x4c68d4(0xb6));const _0x1037c3=await _0x2add21[_0x4c68d4(0xe7)](getPluginInfo,_0x2add21['mnzdT']);if(_0x1037c3){const _0x27d6e4=_0x1037c3[_0x4c68d4(0xf1)]||_0x2add21['cETcb'],_0x573ddd=_0x1037c3['enabled']?_0x2add21[_0x4c68d4(0xf5)]:_0x4c68d4(0xd0);console[_0x4c68d4(0xec)]('\x20\x20'+bold(_0x4c68d4(0xb2))+_0x4c68d4(0x116)+_0x27d6e4+',\x20'+_0x573ddd+')');}else console[_0x4c68d4(0xec)]('\x20\x20Not\x20installed'),console['log'](_0x2add21['bPoCp']);console['log'](_0x2add21['eXCMd']);const {project:_0x32a1bc,user:_0x2c9fc5}=await _0x2add21['yxBXl'](getInstalledSkills),_0x293695=_0x32a1bc['filter'](_0x8fd36f=>RANGER_MANAGED_SKILLS[_0x4c68d4(0xeb)](_0x8fd36f['name'])),_0x240843=_0x2c9fc5[_0x4c68d4(0xca)](_0x28454b=>RANGER_MANAGED_SKILLS[_0x4c68d4(0xeb)](_0x28454b[_0x4c68d4(0x10f)])),_0x21824c=_0x293695[_0x4c68d4(0xad)]+_0x240843['length'];if(_0x2add21['VsFVd'](_0x21824c,0x0))console[_0x4c68d4(0xec)](_0x2add21[_0x4c68d4(0xc2)]),console['log'](_0x4c68d4(0xe4));else{if(_0x293695[_0x4c68d4(0xad)]>0x0){console['log'](_0x2add21['iAatM']);for(const _0x294e0d of _0x293695){console[_0x4c68d4(0xec)](_0x4c68d4(0x108)+bold(_0x294e0d[_0x4c68d4(0xc3)])+':\x20'+link(_0x294e0d['path'],_0x2add21[_0x4c68d4(0xba)](basename,_0x294e0d['path'])));}}if(_0x240843[_0x4c68d4(0xad)]>0x0){console[_0x4c68d4(0xec)](_0x2add21['QlPBq']);for(const _0x4c1ba7 of _0x240843){console['log']('\x20\x20\x20\x20'+bold(_0x4c1ba7[_0x4c68d4(0xc3)])+':\x20'+link(_0x4c1ba7['path'],_0x2add21['ruDaF'](basename,_0x4c1ba7[_0x4c68d4(0x117)])));}}}console['log'](_0x2add21['ubREo']);const {envs:_0x445ee4,activeEnv:_0x5b1179}=await _0x2add21[_0x4c68d4(0xd9)](getEnvironments);let _0x49637b=[];if(_0x1f582b)try{_0x49637b=await listCloudProfiles();}catch{}const _0x4d3502=_0x2add21['uMXxG'](_0x445ee4[_0x4c68d4(0xad)],_0x49637b['length']);if(_0x4d3502===0x0)console[_0x4c68d4(0xec)](_0x2add21['CMDcV']),console[_0x4c68d4(0xec)](_0x4c68d4(0x118));else{if(_0x2add21['wJPmp'](_0x4d3502,0x5)){const _0x3d5297=[];_0x49637b[_0x4c68d4(0xad)]>0x0&&_0x3d5297['push'](_0x49637b[_0x4c68d4(0xad)]+_0x4c68d4(0xd5)),_0x445ee4['length']>0x0&&_0x3d5297[_0x4c68d4(0xdc)](_0x445ee4['length']+_0x4c68d4(0xf0)),console[_0x4c68d4(0xec)](_0x4d3502+_0x4c68d4(0xe8)+_0x3d5297['join'](',\x20')+')'),_0x5b1179&&console['log'](_0x4c68d4(0x10e)+bold(_0x5b1179)),console['log']('\x20\x20Run:\x20ranger\x20profile\x20ls\x20\x20(list\x20all)');}else{for(const _0x117ae0 of _0x49637b){const _0x522e7e=_0x117ae0[_0x4c68d4(0x10f)]===_0x5b1179?_0x2add21[_0x4c68d4(0x10b)]:'';console[_0x4c68d4(0xec)]('\x20\x20'+bold(_0x117ae0['name'])+'\x20[cloud]'+_0x522e7e);const _0x53c870=_0x117ae0['sessionUpdatedAt']?'cached\x20(updated\x20'+_0x117ae0['sessionUpdatedAt']+')':'no\x20session';console[_0x4c68d4(0xec)](_0x4c68d4(0x102)+_0x53c870);}const _0x5638bf=new Set(_0x49637b['map'](_0x18fcf3=>_0x18fcf3[_0x4c68d4(0x10f)]));for(const _0x4f400f of _0x445ee4){if(_0x5638bf['has'](_0x4f400f['name']))continue;const _0x2dec19=_0x4f400f['isActive']?'\x20(active)':'',_0x5c9b81=_0x4f400f['hasEncryptedAuth']?_0x2add21['eUpAc']:_0x4f400f['hasPlaintextAuth']?'plaintext':_0x2add21[_0x4c68d4(0xd3)];console[_0x4c68d4(0xec)]('\x20\x20'+_0x2add21['bkdLW'](bold,_0x4f400f[_0x4c68d4(0x10f)])+_0x4c68d4(0xde)+_0x2dec19),console['log']('\x20\x20\x20\x20Auth:\x20'+_0x5c9b81),_0x2add21['uiNqW'](_0x4f400f[_0x4c68d4(0xe1)],_0x4c68d4(0xbf))&&console[_0x4c68d4(0xec)](_0x4c68d4(0xab)+link(_0x4f400f[_0x4c68d4(0xe1)],basename(_0x4f400f['settingsPath'])));}if(!_0x5b1179){console['log']('\x0a\x20\x20No\x20active\x20profile\x20set');const _0x341181=[..._0x49637b[_0x4c68d4(0xfe)](_0xf382b7=>_0xf382b7['name']),..._0x445ee4[_0x4c68d4(0xca)](_0x2d923b=>!_0x5638bf[_0x4c68d4(0x11a)](_0x2d923b[_0x4c68d4(0x10f)]))[_0x4c68d4(0xfe)](_0x3b7b09=>_0x3b7b09[_0x4c68d4(0x10f)])];console[_0x4c68d4(0xec)]('\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20'+_0x341181[_0x4c68d4(0xed)](',\x20')+')');}}}console[_0x4c68d4(0xec)]('');}
1
+ const _0x4cd6ed=_0x2d06;(function(_0x36cd33,_0x22f5b1){const _0x3cd277=_0x2d06,_0x104eab=_0x36cd33();while(!![]){try{const _0x55583f=-parseInt(_0x3cd277(0x9b))/0x1*(-parseInt(_0x3cd277(0xd5))/0x2)+-parseInt(_0x3cd277(0xb7))/0x3*(-parseInt(_0x3cd277(0xfc))/0x4)+-parseInt(_0x3cd277(0x8e))/0x5*(parseInt(_0x3cd277(0xdd))/0x6)+parseInt(_0x3cd277(0x97))/0x7*(parseInt(_0x3cd277(0xe7))/0x8)+-parseInt(_0x3cd277(0x9f))/0x9*(-parseInt(_0x3cd277(0xd4))/0xa)+-parseInt(_0x3cd277(0x90))/0xb*(parseInt(_0x3cd277(0xac))/0xc)+-parseInt(_0x3cd277(0xca))/0xd;if(_0x55583f===_0x22f5b1)break;else _0x104eab['push'](_0x104eab['shift']());}catch(_0x37dbfc){_0x104eab['push'](_0x104eab['shift']());}}}(_0x4875,0xedd3e));import{readFile,readdir}from'fs/promises';function _0x4875(){const _0x335b14=['\x20\x20\x20\x20Settings:\x20','HVcvO','NHAju','6HJZiWQ','opencode-plugin','\x20\x20Run:\x20ranger\x20update','\x20\x20Run:\x20ranger\x20setup\x20[token]','lZmqd','parse','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20','settings.json','not_configured','includes','8cXOgHk','iHKHV','API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired','No\x20profiles\x20configured','API\x20URL:\x20','filter','pqhDY','mNZLD','hasEncryptedAuth','version','none','tKDte','has','\x20\x20\x20\x20Auth:\x20','ranger@trailhead','success','configured','zgPfA','\x20\x20\x20\x20','Version:\x20','HEDBq','20DHbfHX','qYDMw','GHEoY','TvbZm','plugin','9384405xcYJUa','No\x20skills\x20installed','16862857jDyiAv','oPeKP','SwVsN','OyXey','fLFXH','(not\x20found)','unknown','4540214kFVnjl','name','\x20\x20Not\x20configured','API\x20Environment:\x20','661eqeykr','gAPKU','\x0a📊\x20Ranger\x20Status\x0a','\x20\x20Run:\x20ranger\x20skillup','27HzSlMg','utf-8','edLKu','@ranger-testing/opencode-plugin','isArray','opencode','some','match','\x20\x20\x20\x20Session:\x20','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','scqUu','\x0a---\x20Profiles\x20---','UxHfT','12xRNQob','rMUOm','\x20\x20User-level:','UKVgf','\x20(up\x20to\x20date)','bbkrl','\x20\x20Not\x20installed','details','log','\x1b[1m','assNL','408297umqiSd','disabled','sessionUpdatedAt','QRMBg','pipe','RnnjD','debug','map','cached\x20(updated\x20','enabled','NFBnS','\x0a---\x20Claude\x20Code\x20Plugin\x20---','not_installed','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','organizationName','CnctV','path','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','Organization:\x20','1310673SDDWcH','FENwi','join','user','plaintext','Root:\x20','CENMB','length','GSoYJ','data','4065550GPRjrQ','5858FMypee','isDirectory','\x20[local]','lejAw','\x20(active)'];_0x4875=function(){return _0x335b14;};return _0x4875();}import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';function _0x2d06(_0x5de0f8,_0x4370ee){_0x5de0f8=_0x5de0f8-0x8e;const _0x4875e5=_0x4875();let _0x2d0627=_0x4875e5[_0x5de0f8];return _0x2d0627;}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';import{getEnvDir}from'./utils/settings.js';import{listCloudProfiles}from'./utils/cloudProfile.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x33541b=>_0x4cd6ed(0xb5)+_0x33541b+'\x1b[0m',link=(_0x86b2b8,_0x1cb39c)=>'\x1b]8;;file://'+_0x86b2b8+'\x07'+(_0x1cb39c||_0x86b2b8)+'\x1b]8;;\x07';async function getOpencodePluginStatus(){const _0x3eabbe=_0x4cd6ed,_0x519f02={'TvbZm':'string','assNL':_0x3eabbe(0xde),'zgPfA':function(_0x131659,_0x298da0){return _0x131659!==_0x298da0;},'lejAw':function(_0x575bee,_0xfd45af){return _0x575bee(_0xfd45af);},'pqhDY':_0x3eabbe(0xf7),'oFiii':function(_0x13fe89,_0x18d263){return _0x13fe89>_0x18d263;},'mNZLD':function(_0x3e74fe,_0x3dd52d){return _0x3e74fe(_0x3dd52d);},'lVXRr':function(_0xa93c00,_0x5b6fb0){return _0xa93c00(_0x5b6fb0);},'FENwi':_0x3eabbe(0xe5),'iHKHV':function(_0x44e0f8,_0x1e2c57){return _0x44e0f8(_0x1e2c57);},'rMUOm':_0x3eabbe(0xa4),'oPeKP':_0x3eabbe(0xbd),'HEDBq':'config','OyXey':'ignore','shCNM':'pipe','NFBnS':_0x3eabbe(0xd3)};return new Promise(_0x54c2f4=>{const _0x5abcda=_0x3eabbe,_0x3d5907={'tKDte':function(_0xd993c,_0x41a543){const _0x5bb3af=_0x2d06;return _0x519f02[_0x5bb3af(0xe8)](_0xd993c,_0x41a543);}},_0x5ab02d=spawn(_0x519f02[_0x5abcda(0xad)],[_0x519f02[_0x5abcda(0x91)],_0x519f02[_0x5abcda(0xfb)]],{'stdio':[_0x519f02[_0x5abcda(0x93)],_0x519f02['shCNM'],_0x5abcda(0xbb)]});let _0x2017ae='';_0x5ab02d['stdout']?.['on'](_0x519f02[_0x5abcda(0xc1)],_0x45aaa1=>{_0x2017ae+=_0x45aaa1['toString']();}),_0x5ab02d['stderr']?.['on']('data',_0xedb072=>{_0x2017ae+=_0xedb072['toString']();}),_0x5ab02d['on']('error',()=>{const _0x51a533=_0x5abcda;_0x3d5907[_0x51a533(0xf2)](_0x54c2f4,{'status':_0x51a533(0xc3)});}),_0x5ab02d['on']('close',_0x18ae9e=>{const _0x1ae982=_0x5abcda,_0x859e4e={'GHEoY':_0x519f02[_0x1ae982(0xff)],'bbkrl':_0x519f02[_0x1ae982(0xb6)]};if(_0x519f02[_0x1ae982(0xf8)](_0x18ae9e,0x0)){_0x519f02['lejAw'](_0x54c2f4,{'status':_0x1ae982(0xc3)});return;}const _0x120e06=_0x2017ae['trim']();let _0x22e0c8=null;if(_0x120e06)try{_0x22e0c8=JSON['parse'](_0x120e06);}catch{const _0x359170=_0x120e06['match'](/\{[\s\S]*\}$/);if(_0x359170)try{_0x22e0c8=JSON[_0x1ae982(0xe2)](_0x359170[0x0]);}catch{_0x22e0c8=null;}}const _0x345a03=Array[_0x1ae982(0xa3)](_0x22e0c8?.[_0x1ae982(0x100)])?_0x22e0c8?.['plugin']:[],_0x314989=_0x345a03[_0x1ae982(0xa5)](_0x293653=>{const _0x3fa740=_0x1ae982;if(typeof _0x293653!==_0x859e4e[_0x3fa740(0xfe)])return![];return _0x293653['includes'](_0x3fa740(0xa2))||_0x293653['includes'](_0x859e4e[_0x3fa740(0xb1)]);});if(_0x314989){_0x519f02[_0x1ae982(0xd8)](_0x54c2f4,{'status':_0x519f02[_0x1ae982(0xed)],'details':_0x519f02['oFiii'](_0x345a03[_0x1ae982(0xd1)],0x0)?_0x345a03[_0x1ae982(0xd1)]+'\x20plugin(s)\x20configured':undefined});return;}if(_0x345a03['length']>0x0){_0x519f02[_0x1ae982(0xee)](_0x54c2f4,{'status':_0x1ae982(0xe5),'details':_0x345a03['length']+'\x20plugin(s)\x20configured'});return;}_0x519f02['lVXRr'](_0x54c2f4,{'status':_0x519f02[_0x1ae982(0xcb)]});});});}async function getSkillsFromDir(_0xa28512,_0x172ac4){const _0x2dae58=_0x4cd6ed,_0x3ec649={'eLPnU':function(_0x1627a4,_0x5cec9d){return _0x1627a4(_0x5cec9d);},'UxHfT':function(_0x47fed7,_0x343b4f,_0x4695e8,_0x2c1550){return _0x47fed7(_0x343b4f,_0x4695e8,_0x2c1550);}};if(!_0x3ec649['eLPnU'](existsSync,_0xa28512))return[];const _0x4173cb=[];try{const _0x198634=await readdir(_0xa28512,{'withFileTypes':!![]});for(const _0x2c16f2 of _0x198634){if(_0x2c16f2[_0x2dae58(0xd6)]()){const _0x31d2e4=_0x3ec649[_0x2dae58(0xab)](join,_0xa28512,_0x2c16f2[_0x2dae58(0x98)],'SKILL.md');if(existsSync(_0x31d2e4)){let _0x575842=_0x2c16f2['name'];try{const _0x37fee7=await readFile(_0x31d2e4,_0x2dae58(0xa0)),_0x3355a1=_0x37fee7[_0x2dae58(0xa6)](/name:\s*(.+)/);_0x3355a1&&(_0x575842=_0x3355a1[0x1]['trim']());}catch{}_0x4173cb['push']({'name':_0x2c16f2['name'],'displayName':_0x575842,'path':_0x31d2e4,'level':_0x172ac4});}}}}catch{return[];}return _0x4173cb;}async function getInstalledSkills(){const _0x10ab62=_0x4cd6ed,_0x41f3ac={'DQMNq':function(_0x29ac83,_0x3b8242,_0x4623c3){return _0x29ac83(_0x3b8242,_0x4623c3);},'wEGwL':function(_0xfcb0b7){return _0xfcb0b7();},'lZmqd':'project'},[_0x2ce421,_0x20f9cb]=await Promise['all']([_0x41f3ac['DQMNq'](getSkillsFromDir,_0x41f3ac['wEGwL'](getProjectSkillsDir),_0x41f3ac[_0x10ab62(0xe1)]),_0x41f3ac['DQMNq'](getSkillsFromDir,getUserSkillsDir(),'user')]);return{'project':_0x2ce421,'user':_0x20f9cb};}async function getEnvironments(){const _0x5007c7=_0x4cd6ed,_0x4e9f62={'DukXB':_0x5007c7(0xe4),'RnnjD':function(_0xd2ae0c,_0x451241,_0x967b53){return _0xd2ae0c(_0x451241,_0x967b53);},'SwVsN':'auth.json.enc','PUfEO':function(_0x4e19d4,_0x56a3c8){return _0x4e19d4(_0x56a3c8);},'PdWho':'(not\x20found)','mShCV':function(_0x5cd63b,_0x4f7d22){return _0x5cd63b===_0x4f7d22;}},{envNames:_0x1e27fe,activeEnv:_0x572782}=await getEnvNames(),_0x321fed=getRangerDir();if(!existsSync(_0x321fed))return{'envs':[],'activeEnv':null};const _0xdc3c86=_0x1e27fe['map'](_0x492d74=>{const _0x8a6711=_0x5007c7,_0x3f6643=getEnvDir(_0x492d74),_0x5cc161=join(_0x3f6643,_0x4e9f62['DukXB']),_0x38f38a=_0x4e9f62[_0x8a6711(0xbc)](join,_0x3f6643,'auth.json'),_0x32862d=_0x4e9f62['RnnjD'](join,_0x3f6643,_0x4e9f62[_0x8a6711(0x92)]);return{'name':_0x492d74,'settingsPath':_0x4e9f62['PUfEO'](existsSync,_0x5cc161)?_0x5cc161:_0x4e9f62['PdWho'],'hasPlaintextAuth':existsSync(_0x38f38a),'hasEncryptedAuth':existsSync(_0x32862d),'isActive':_0x4e9f62['mShCV'](_0x492d74,_0x572782)};});return{'envs':_0xdc3c86,'activeEnv':_0x572782};}export async function status(){const _0x10a7d2=_0x4cd6ed,_0x94b7da={'QRMBg':_0x10a7d2(0x9d),'fLFXH':function(_0x36ded6,_0x4ebe38,_0x25bd87){return _0x36ded6(_0x4ebe38,_0x25bd87);},'CENMB':function(_0x30cde2,_0x451cac){return _0x30cde2(_0x451cac);},'mPMRr':function(_0x1475d7){return _0x1475d7();},'UKVgf':'\x0a---\x20OpenCode\x20Plugin\x20---','CnctV':function(_0x1cecea){return _0x1cecea();},'PJsNp':function(_0xd8b28c,_0x2daf2f){return _0xd8b28c===_0x2daf2f;},'gAPKU':'configured','HVcvO':'not_configured','vRsmt':_0x10a7d2(0x96),'DJMjP':_0x10a7d2(0xb8),'edLKu':function(_0x553eb7,_0x4b47c9){return _0x553eb7+_0x4b47c9;},'scqUu':function(_0xaf40a1,_0x165d4f){return _0xaf40a1(_0x165d4f);},'dAFwb':_0x10a7d2(0xae),'XzbQJ':function(_0x3f2da4,_0x3be574){return _0x3f2da4>_0x3be574;},'jAVdI':function(_0x23df02,_0x405c40){return _0x23df02(_0x405c40);},'OvQtd':function(_0x1993be,_0x442585){return _0x1993be===_0x442585;},'GSoYJ':_0x10a7d2(0xd9),'qYDMw':function(_0x1d03d3,_0xb9addd){return _0x1d03d3(_0xb9addd);},'NHAju':_0x10a7d2(0x95),'CQHwC':function(_0x2c89c7,_0x39525e){return _0x2c89c7(_0x39525e);}};console[_0x10a7d2(0xb4)](_0x94b7da[_0x10a7d2(0xba)]);const _0xdb0a34=process['cwd'](),_0x215ed4=getRangerDir();if(!existsSync(_0x215ed4)){console['log'](_0x10a7d2(0xcf)+_0x94b7da[_0x10a7d2(0x94)](link,_0xdb0a34,bold(basename(_0xdb0a34)))),console['log'](_0x10a7d2(0xa8)),console['log'](_0x10a7d2(0xc4));return;}console['log']('Root:\x20'+link(_0xdb0a34,bold(_0x94b7da[_0x10a7d2(0xd0)](basename,_0xdb0a34))));const _0x19ebf7=getCurrentVersion(),_0x255db6=_0x94b7da['mPMRr'](getLatestVersion);if(_0x255db6['version']&&_0x255db6['version']!==_0x19ebf7)console[_0x10a7d2(0xb4)]('Version:\x20'+_0x19ebf7+'\x20(latest:\x20'+_0x255db6[_0x10a7d2(0xf0)]+')'),console['log'](_0x10a7d2(0xdf));else _0x255db6[_0x10a7d2(0xf0)]?console[_0x10a7d2(0xb4)](_0x10a7d2(0xfa)+_0x19ebf7+_0x10a7d2(0xb0)):console[_0x10a7d2(0xb4)](_0x10a7d2(0xfa)+_0x19ebf7);const _0x1cb8df=await getToken();if(_0x1cb8df){const _0xd9e15=await getCurrentUser(_0x1cb8df);_0xd9e15[_0x10a7d2(0xf6)]?console['log'](_0x10a7d2(0xc9)+bold(_0xd9e15[_0x10a7d2(0xcd)][_0x10a7d2(0xc5)])):(console['log'](_0x10a7d2(0xe9)),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]'));}else console['log']('API\x20Token:\x20✗\x20Not\x20found'),console['log'](_0x10a7d2(0xe0));process['env']['DEBUG']&&(console[_0x10a7d2(0xb4)](_0x10a7d2(0x9a)+getCurrentEnvironment()),console[_0x10a7d2(0xb4)](_0x10a7d2(0xeb)+_0x94b7da['mPMRr'](getApiBaseUrl)));console[_0x10a7d2(0xb4)](_0x94b7da[_0x10a7d2(0xaf)]);const _0x4990a7=await _0x94b7da[_0x10a7d2(0xc6)](getOpencodePluginStatus);if(_0x94b7da['PJsNp'](_0x4990a7['status'],_0x94b7da[_0x10a7d2(0x9c)]))console[_0x10a7d2(0xb4)]('\x20\x20'+bold('@ranger-testing/opencode-plugin')+':\x20configured'),_0x4990a7['details']&&console['log']('\x20\x20'+_0x4990a7[_0x10a7d2(0xb3)]);else _0x4990a7['status']===_0x94b7da[_0x10a7d2(0xdb)]?(console[_0x10a7d2(0xb4)](_0x10a7d2(0x99)),_0x4990a7[_0x10a7d2(0xb3)]&&console['log']('\x20\x20'+_0x4990a7['details']),console['log']('\x20\x20Run:\x20ranger\x20setup\x20--opencode')):console['log']('\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available');console[_0x10a7d2(0xb4)](_0x10a7d2(0xc2));const _0x449c70=await getPluginInfo(_0x10a7d2(0xf5));if(_0x449c70){const _0x4bc470=_0x449c70['scope']||_0x94b7da['vRsmt'],_0x4917ea=_0x449c70[_0x10a7d2(0xc0)]?'enabled':_0x94b7da['DJMjP'];console[_0x10a7d2(0xb4)]('\x20\x20'+bold('ranger@trailhead')+':\x20installed\x20('+_0x4bc470+',\x20'+_0x4917ea+')');}else console[_0x10a7d2(0xb4)](_0x10a7d2(0xb2)),console['log'](_0x10a7d2(0xc8));console['log']('\x0a---\x20Skills\x20---');const {project:_0x53fe90,user:_0x14d0a3}=await getInstalledSkills(),_0x323f33=_0x53fe90['filter'](_0x52a558=>RANGER_MANAGED_SKILLS[_0x10a7d2(0xe6)](_0x52a558[_0x10a7d2(0x98)])),_0x2b700b=_0x14d0a3[_0x10a7d2(0xec)](_0x130792=>RANGER_MANAGED_SKILLS[_0x10a7d2(0xe6)](_0x130792[_0x10a7d2(0x98)])),_0x359799=_0x94b7da[_0x10a7d2(0xa1)](_0x323f33[_0x10a7d2(0xd1)],_0x2b700b['length']);if(_0x94b7da['PJsNp'](_0x359799,0x0))console[_0x10a7d2(0xb4)](_0x10a7d2(0x8f)),console['log'](_0x10a7d2(0x9e));else{if(_0x323f33['length']>0x0){console['log']('\x20\x20Project-level:');for(const _0x55471c of _0x323f33){console[_0x10a7d2(0xb4)](_0x10a7d2(0xf9)+bold(_0x55471c['displayName'])+':\x20'+_0x94b7da['fLFXH'](link,_0x55471c['path'],_0x94b7da[_0x10a7d2(0xa9)](basename,_0x55471c[_0x10a7d2(0xc7)])));}}if(_0x2b700b[_0x10a7d2(0xd1)]>0x0){console[_0x10a7d2(0xb4)](_0x94b7da['dAFwb']);for(const _0x348b4e of _0x2b700b){console['log']('\x20\x20\x20\x20'+bold(_0x348b4e['displayName'])+':\x20'+_0x94b7da[_0x10a7d2(0x94)](link,_0x348b4e[_0x10a7d2(0xc7)],basename(_0x348b4e['path'])));}}}console['log'](_0x10a7d2(0xaa));const {envs:_0x44e013,activeEnv:_0x37b6cb}=await getEnvironments();let _0x576155=[];if(_0x1cb8df)try{_0x576155=await listCloudProfiles();}catch{}const _0x3556d4=_0x44e013[_0x10a7d2(0xd1)]+_0x576155[_0x10a7d2(0xd1)];if(_0x3556d4===0x0)console[_0x10a7d2(0xb4)](_0x10a7d2(0xea)),console['log']('\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>');else{if(_0x94b7da['XzbQJ'](_0x3556d4,0x5)){const _0x3102a9=[];_0x94b7da['XzbQJ'](_0x576155['length'],0x0)&&_0x3102a9['push'](_0x576155['length']+'\x20cloud'),_0x44e013[_0x10a7d2(0xd1)]>0x0&&_0x3102a9['push'](_0x44e013[_0x10a7d2(0xd1)]+'\x20local'),console[_0x10a7d2(0xb4)](_0x3556d4+'\x20profiles\x20configured\x20('+_0x3102a9['join'](',\x20')+')'),_0x37b6cb&&console[_0x10a7d2(0xb4)]('\x20\x20Active:\x20'+_0x94b7da['jAVdI'](bold,_0x37b6cb)),console[_0x10a7d2(0xb4)]('\x20\x20Run:\x20ranger\x20profile\x20ls\x20\x20(list\x20all)');}else{for(const _0x5da8f3 of _0x576155){const _0x4863bf=_0x94b7da['OvQtd'](_0x5da8f3['name'],_0x37b6cb)?_0x94b7da[_0x10a7d2(0xd2)]:'';console[_0x10a7d2(0xb4)]('\x20\x20'+_0x94b7da[_0x10a7d2(0xfd)](bold,_0x5da8f3[_0x10a7d2(0x98)])+'\x20[cloud]'+_0x4863bf);const _0x2f47bf=_0x5da8f3[_0x10a7d2(0xb9)]?_0x10a7d2(0xbf)+_0x5da8f3[_0x10a7d2(0xb9)]+')':'no\x20session';console[_0x10a7d2(0xb4)](_0x10a7d2(0xa7)+_0x2f47bf);}const _0x4aba90=new Set(_0x576155[_0x10a7d2(0xbe)](_0x4d249a=>_0x4d249a[_0x10a7d2(0x98)]));for(const _0x2bf4ac of _0x44e013){if(_0x4aba90[_0x10a7d2(0xf3)](_0x2bf4ac['name']))continue;const _0x177ab8=_0x2bf4ac['isActive']?_0x94b7da['GSoYJ']:'',_0x43e580=_0x2bf4ac[_0x10a7d2(0xef)]?'encrypted':_0x2bf4ac['hasPlaintextAuth']?_0x10a7d2(0xce):_0x10a7d2(0xf1);console['log']('\x20\x20'+bold(_0x2bf4ac[_0x10a7d2(0x98)])+_0x10a7d2(0xd7)+_0x177ab8),console[_0x10a7d2(0xb4)](_0x10a7d2(0xf4)+_0x43e580),_0x2bf4ac['settingsPath']!==_0x94b7da[_0x10a7d2(0xdc)]&&console['log'](_0x10a7d2(0xda)+link(_0x2bf4ac['settingsPath'],_0x94b7da['CQHwC'](basename,_0x2bf4ac['settingsPath'])));}if(!_0x37b6cb){console[_0x10a7d2(0xb4)]('\x0a\x20\x20No\x20active\x20profile\x20set');const _0x44eada=[..._0x576155['map'](_0x21144b=>_0x21144b['name']),..._0x44e013[_0x10a7d2(0xec)](_0x1eed2e=>!_0x4aba90[_0x10a7d2(0xf3)](_0x1eed2e['name']))['map'](_0x2e0eb3=>_0x2e0eb3[_0x10a7d2(0x98)])];console[_0x10a7d2(0xb4)](_0x10a7d2(0xe3)+_0x44eada[_0x10a7d2(0xcc)](',\x20')+')');}}}console['log']('');}