@ranger-testing/ranger-cli 3.1.5-alpha.9b89f77-48 → 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 +5 -3
@@ -1 +1 @@
1
- function _0x3345(){const _0x14bade=['log','pHTES','1000044zslZAy','organizationName','1TmarOx','2003018nRZMZV','993240SUoBow','BZzen','376574zWhTKz','4524804EAIhWy','254997hpCCTh','160DYVKzJ','success','8EhQknx','Login\x20failed:\x20','IkIup','1007485JCfBvZ','42QMBPyN','EuwnY'];_0x3345=function(){return _0x14bade;};return _0x3345();}(function(_0x1ab4b2,_0x2685d7){const _0xe649bd=_0x4bda,_0x57bc75=_0x1ab4b2();while(!![]){try{const _0x23a979=-parseInt(_0xe649bd(0x105))/0x1*(-parseInt(_0xe649bd(0x106))/0x2)+-parseInt(_0xe649bd(0x10b))/0x3*(parseInt(_0xe649bd(0x10e))/0x4)+-parseInt(_0xe649bd(0x111))/0x5+parseInt(_0xe649bd(0x116))/0x6*(-parseInt(_0xe649bd(0x112))/0x7)+parseInt(_0xe649bd(0x107))/0x8+parseInt(_0xe649bd(0x10a))/0x9+-parseInt(_0xe649bd(0x10c))/0xa*(-parseInt(_0xe649bd(0x109))/0xb);if(_0x23a979===_0x2685d7)break;else _0x57bc75['push'](_0x57bc75['shift']());}catch(_0x2c43cd){_0x57bc75['push'](_0x57bc75['shift']());}}}(_0x3345,0xc4711));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';import{isInteractive}from'./utils/cloudProfileSession.js';function _0x4bda(_0x494264,_0x1473da){_0x494264=_0x494264-0x104;const _0x334536=_0x3345();let _0x4bda6e=_0x334536[_0x494264];return _0x4bda6e;}export async function login(){const _0xad4258=_0x4bda,_0x284e12={'BZzen':function(_0x7bb918){return _0x7bb918();},'IkIup':'Re-authenticating\x20via\x20MCP\x20bootstrap...','pHTES':function(_0x372e1f){return _0x372e1f();},'LHEOu':'\x0a✅\x20API\x20key\x20stored\x20successfully','EuwnY':function(_0x27869b,_0xc968c){return _0x27869b instanceof _0xc968c;}},_0x245ecd=await _0x284e12[_0xad4258(0x108)](getMcpAuthOrigin);if(_0x245ecd){console['log'](_0x284e12[_0xad4258(0x110)]),await mcpBootstrap();return;}if(!_0x284e12[_0xad4258(0x115)](isInteractive))throw new Error('Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.');try{const _0xc2939f=await runDeviceAuthFlow(),_0x4c3d88=await getCurrentUser(_0xc2939f);_0x4c3d88[_0xad4258(0x10d)]?console[_0xad4258(0x114)]('\x0a✅\x20Logged\x20in\x20to\x20'+_0x4c3d88['user'][_0xad4258(0x104)]):console[_0xad4258(0x114)](_0x284e12['LHEOu']);}catch(_0x1b6ac2){throw new Error(_0xad4258(0x10f)+(_0x284e12[_0xad4258(0x113)](_0x1b6ac2,Error)?_0x1b6ac2['message']:_0x1b6ac2));}}
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
- const _0x3a9246=_0x2bd8;(function(_0x238952,_0x3fb191){const _0x331bf1=_0x2bd8,_0x21a2a9=_0x238952();while(!![]){try{const _0x53e5b1=parseInt(_0x331bf1(0x205))/0x1*(parseInt(_0x331bf1(0x26d))/0x2)+-parseInt(_0x331bf1(0x1ee))/0x3+parseInt(_0x331bf1(0x22f))/0x4+parseInt(_0x331bf1(0x267))/0x5*(-parseInt(_0x331bf1(0x1f7))/0x6)+-parseInt(_0x331bf1(0x275))/0x7+-parseInt(_0x331bf1(0x20a))/0x8+parseInt(_0x331bf1(0x24f))/0x9*(parseInt(_0x331bf1(0x216))/0xa);if(_0x53e5b1===_0x3fb191)break;else _0x21a2a9['push'](_0x21a2a9['shift']());}catch(_0x5abee6){_0x21a2a9['push'](_0x21a2a9['shift']());}}}(_0x1bf3,0x5de93));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',_0x3a9246(0x20b)),AUTH_ORIGIN_PATH=join(homedir(),'.ranger',_0x3a9246(0x25e));export async function getMcpAuthOrigin(){const _0x208985=_0x3a9246,_0x1519f1={'CwVAg':function(_0x4429c5,_0x371204,_0x38946a){return _0x4429c5(_0x371204,_0x38946a);}};try{const _0x383570=(await _0x1519f1[_0x208985(0x204)](readFile,AUTH_ORIGIN_PATH,_0x208985(0x227)))['trim']();return _0x383570||null;}catch{return null;}}export async function mcpBootstrap(){const _0x28a099=_0x3a9246,_0x1c5956={'rvFCY':function(_0x5b0b74,_0x3f91a6){return _0x5b0b74(_0x3f91a6);},'MnNZs':'proxied','bJXoZ':'MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','mYXfQ':function(_0x57d786,_0x38229a,_0x53750c){return _0x57d786(_0x38229a,_0x53750c);}},_0x3e43a1=getMcpAuthUrl();currentOrigin=_0x3e43a1;const _0x56ccf0=process['stdout']['isTTY']??![];console['log']('\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20'+_0x3e43a1+'\x0a');const _0x4d406b=await _0x1c5956[_0x28a099(0x1ec)](tryUnauthenticated,_0x3e43a1);let _0xa4a46c=null;if(_0x4d406b===_0x1c5956[_0x28a099(0x279)])_0xa4a46c='';else{_0xa4a46c=await loadCachedToken();if(!_0xa4a46c){if(!_0x56ccf0)throw new Error(_0x1c5956[_0x28a099(0x218)]+'Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.');_0xa4a46c=await _0x1c5956[_0x28a099(0x1ec)](oauthFlow,_0x3e43a1);}}await _0x1c5956[_0x28a099(0x236)](callGetCliToken,_0x3e43a1,_0xa4a46c);}async function tryUnauthenticated(_0x2f2ae5){const _0x358f3b=_0x3a9246,_0x52e6e5={'ygRTx':'POST','fLwHS':'application/json,\x20text/event-stream','gvUhV':'2.0','dKalD':'ranger-cli','HJCsu':'1.0.0','SkpKa':_0x358f3b(0x26e)},_0x5f456b=await fetch(_0x2f2ae5,{'method':_0x52e6e5['ygRTx'],'headers':{'Content-Type':'application/json','Accept':_0x52e6e5['fLwHS']},'body':JSON[_0x358f3b(0x20f)]({'jsonrpc':_0x52e6e5['gvUhV'],'id':0x1,'method':'initialize','params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':_0x52e6e5['dKalD'],'version':_0x52e6e5['HJCsu']}}})});if(_0x5f456b['ok'])return await _0x5f456b[_0x358f3b(0x253)](),'proxied';if(_0x5f456b[_0x358f3b(0x250)]===0x191)return await _0x5f456b[_0x358f3b(0x253)](),_0x52e6e5['SkpKa'];const _0x332ddf=await _0x5f456b[_0x358f3b(0x253)]();throw new Error(_0x358f3b(0x1f2)+_0x5f456b['status']+':\x20'+_0x332ddf);}class OAuthTimeoutError extends Error{constructor(_0x89e179){const _0x5d7d4b={'TeFeJ':'OAuthTimeoutError'};super(_0x89e179),this['name']=_0x5d7d4b['TeFeJ'];}}async function oauthFlow(_0x4f1bf4){const _0x31c85e=_0x3a9246,_0xe9eeb7={'KcPIq':function(_0xa17012,_0x13a44d){return _0xa17012(_0x13a44d);},'EwFjV':function(_0x2535c7,_0x183d8d){return _0x2535c7 instanceof _0x183d8d;},'EzeQU':function(_0x3ea653){return _0x3ea653();},'bNdyR':'\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'};try{return await _0xe9eeb7['KcPIq'](oauthFlowAttempt,_0x4f1bf4);}catch(_0x42f062){if(_0xe9eeb7[_0x31c85e(0x208)](_0x42f062,OAuthTimeoutError)&&await _0xe9eeb7['EzeQU'](loadCachedClient))return console['log'](_0xe9eeb7[_0x31c85e(0x1fc)]),await _0xe9eeb7[_0x31c85e(0x226)](clearCachedClient),await _0xe9eeb7[_0x31c85e(0x27c)](oauthFlowAttempt,_0x4f1bf4);throw _0x42f062;}}async function oauthFlowAttempt(_0x4f658f){const _0x33b825=_0x3a9246,_0x56b905={'LXzTM':'Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','CnFqC':_0x33b825(0x23e),'DfOuL':function(_0x1fa28d,_0x522955){return _0x1fa28d(_0x522955);},'Dyhlq':function(_0x2d935f){return _0x2d935f();},'VwCZD':_0x33b825(0x200),'neNAt':_0x33b825(0x202),'kbsAK':'\x20done','MHPHA':_0x33b825(0x24e),'djbIe':function(_0x97ff02,_0x2778f0){return _0x97ff02(_0x2778f0);},'hWMJC':'sha256','VIGUZ':_0x33b825(0x220),'RNUbG':_0x33b825(0x217),'srEoe':'code_challenge','jTLFs':'S256','cALSY':'state','byaZu':function(_0x5dcaa4,_0x16031a){return _0x5dcaa4(_0x16031a);},'XwXdL':_0x33b825(0x254),'avMmG':function(_0x60f265,_0x228f06,_0x3085be){return _0x60f265(_0x228f06,_0x3085be);},'bTNsz':function(_0x544759,_0x2d397a,_0x550171,_0x1019a3){return _0x544759(_0x2d397a,_0x550171,_0x1019a3);}},_0x23b248=_0x4f658f[_0x33b825(0x219)](/\/mcp$/,'');process[_0x33b825(0x239)][_0x33b825(0x206)]('Discovering\x20authorization\x20server...');const _0x26f54c=await fetch(_0x23b248+_0x33b825(0x245));if(!_0x26f54c['ok'])throw new Error(_0x56b905[_0x33b825(0x212)]);const _0x43f1f0=await _0x26f54c['json'](),_0x320780=_0x43f1f0['authorization_servers']?.[0x0];if(!_0x320780)throw new Error(_0x56b905['CnFqC']);console[_0x33b825(0x1ef)]('\x20'+_0x320780);const _0x9c6ed7=await _0x56b905['DfOuL'](fetchAuthServerMetadata,_0x320780);let _0x5baaf1,_0x478244;const _0x1e5ce2=await _0x56b905['Dyhlq'](loadCachedClient);if(_0x1e5ce2)_0x5baaf1=_0x1e5ce2['clientId'],_0x478244=_0x1e5ce2[_0x33b825(0x25a)];else{if(_0x9c6ed7[_0x33b825(0x24b)]){process['stdout']['write'](_0x56b905['VwCZD']);const _0x5e71f8=await fetch(_0x9c6ed7['registration_endpoint'],{'method':_0x56b905[_0x33b825(0x241)],'headers':{'Content-Type':'application/json'},'body':JSON[_0x33b825(0x20f)]({'client_name':_0x33b825(0x221),'redirect_uris':[_0x33b825(0x23f)+CALLBACK_PORT+'/callback'],'grant_types':[_0x33b825(0x254),_0x33b825(0x24a)],'response_types':['code'],'token_endpoint_auth_method':'none'})});if(!_0x5e71f8['ok']){const _0x4e3d19=await _0x5e71f8[_0x33b825(0x253)]();throw new Error('Client\x20registration\x20failed:\x20'+_0x4e3d19);}const _0x40963b=await _0x5e71f8['json']();_0x5baaf1=_0x40963b[_0x33b825(0x215)],_0x478244=_0x40963b['client_secret'],await saveCachedClient(_0x5baaf1,_0x478244),console[_0x33b825(0x1ef)](_0x56b905[_0x33b825(0x278)]);}else throw new Error('Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found');}const _0x5632ea=_0x56b905['DfOuL'](randomBytes,0x20)[_0x33b825(0x266)](_0x56b905['MHPHA']),_0x41e182=_0x56b905['djbIe'](createHash,_0x56b905['hWMJC'])['update'](_0x5632ea)['digest']('base64url'),_0x4bc714=_0x56b905['djbIe'](randomBytes,0x10)[_0x33b825(0x266)](_0x33b825(0x25c)),_0x340861=new URL(_0x9c6ed7['authorization_endpoint']);_0x340861['searchParams'][_0x33b825(0x240)](_0x33b825(0x209),_0x56b905['VIGUZ']),_0x340861[_0x33b825(0x260)]['set'](_0x33b825(0x215),_0x5baaf1),_0x340861['searchParams'][_0x33b825(0x240)](_0x56b905[_0x33b825(0x235)],'http://localhost:'+CALLBACK_PORT+_0x33b825(0x262)),_0x340861['searchParams']['set'](_0x56b905['srEoe'],_0x41e182),_0x340861['searchParams'][_0x33b825(0x240)]('code_challenge_method',_0x56b905['jTLFs']),_0x340861[_0x33b825(0x260)]['set'](_0x56b905[_0x33b825(0x20c)],_0x4bc714);_0x43f1f0['resource']&&_0x340861['searchParams']['set']('resource',_0x43f1f0[_0x33b825(0x27b)]);console[_0x33b825(0x1ef)]('\x0aOpening\x20browser\x20for\x20authentication...'),console[_0x33b825(0x1ef)]('If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a'+_0x340861[_0x33b825(0x266)]()+'\x0a'),await _0x56b905[_0x33b825(0x274)](openBrowser,_0x340861['toString']());const _0x5fba7d=await _0x56b905[_0x33b825(0x213)](waitForCallback,_0x4bc714);process[_0x33b825(0x239)]['write']('Exchanging\x20authorization\x20code...');const _0x340dd4=new URLSearchParams({'grant_type':_0x56b905['XwXdL'],'code':_0x5fba7d,'redirect_uri':'http://localhost:'+CALLBACK_PORT+_0x33b825(0x262),'client_id':_0x5baaf1,'code_verifier':_0x5632ea});_0x478244&&_0x340dd4['set'](_0x33b825(0x273),_0x478244);_0x43f1f0[_0x33b825(0x27b)]&&_0x340dd4[_0x33b825(0x240)](_0x33b825(0x27b),_0x43f1f0['resource']);const _0x31ea4c=await _0x56b905[_0x33b825(0x268)](fetch,_0x9c6ed7['token_endpoint'],{'method':_0x56b905[_0x33b825(0x241)],'headers':{'Content-Type':_0x33b825(0x238)},'body':_0x340dd4});if(!_0x31ea4c['ok']){const _0x3c5971=await _0x31ea4c['text']();throw new Error(_0x33b825(0x210)+_0x3c5971);}const _0xa4c9b=await _0x31ea4c['json']();return console[_0x33b825(0x1ef)](_0x56b905[_0x33b825(0x278)]),await _0x56b905[_0x33b825(0x246)](saveCachedToken,_0xa4c9b['access_token'],_0xa4c9b['refresh_token'],_0xa4c9b[_0x33b825(0x222)]),_0xa4c9b[_0x33b825(0x256)];}async function callGetCliToken(_0x13d5b2,_0x382564){const _0x36a53a=_0x3a9246,_0x178e6a={'FSzpx':function(_0xc08669,_0x258508,_0x53a251){return _0xc08669(_0x258508,_0x53a251);},'jcEyI':'POST','tmUre':function(_0x6526b6,_0x3ca78e){return _0x6526b6(_0x3ca78e);},'IWZol':'application/json','jABYq':_0x36a53a(0x264),'QoxHu':'Initializing\x20MCP\x20session...','ZfQvR':function(_0x1badb6,_0x15082a){return _0x1badb6(_0x15082a);},'Fniqw':'2025-03-26','vKTRM':'Requesting\x20CLI\x20token...','oYAec':function(_0x1ecb99,_0x9233a5){return _0x1ecb99(_0x9233a5);},'MHvyI':'2.0','JAhcK':'tools/call','oLeCn':_0x36a53a(0x237),'RETeb':'\x0aUnexpected\x20response\x20structure:','lGwBM':'.ranger','rdcTS':function(_0x345ce4,_0xd008eb,_0xc1ed6c){return _0x345ce4(_0xd008eb,_0xc1ed6c);},'YRXDI':'refresh.txt','LCZNr':'Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a'},_0x56438a={'Content-Type':_0x178e6a[_0x36a53a(0x1f0)],'Accept':'application/json,\x20text/event-stream'};_0x382564&&(_0x56438a[_0x178e6a['jABYq']]=_0x36a53a(0x257)+_0x382564);const _0x2661f3=async _0x38f65b=>{const _0x2ffbd2=_0x36a53a,_0x4d49be=await _0x178e6a['FSzpx'](fetch,_0x13d5b2,{'method':_0x178e6a[_0x2ffbd2(0x20d)],'headers':_0x56438a,'body':JSON['stringify'](_0x38f65b)});if(!_0x4d49be['ok']){const _0x28c13a=await _0x4d49be[_0x2ffbd2(0x253)]();throw new Error('HTTP\x20'+_0x4d49be[_0x2ffbd2(0x250)]+':\x20'+_0x28c13a);}return _0x178e6a[_0x2ffbd2(0x242)](parseResponse,_0x4d49be);};process[_0x36a53a(0x239)][_0x36a53a(0x206)](_0x178e6a[_0x36a53a(0x23b)]);const _0x4e070c=await _0x178e6a[_0x36a53a(0x258)](_0x2661f3,{'jsonrpc':_0x36a53a(0x276),'id':0x1,'method':_0x36a53a(0x225),'params':{'protocolVersion':_0x178e6a[_0x36a53a(0x27a)],'capabilities':{},'clientInfo':{'name':_0x36a53a(0x23c),'version':'1.0.0'}}});if(_0x4e070c['error'])throw new Error(_0x36a53a(0x201)+(_0x4e070c['error'][_0x36a53a(0x1fd)]??JSON['stringify'](_0x4e070c['error'])));console[_0x36a53a(0x1ef)]('\x20done'),await fetch(_0x13d5b2,{'method':_0x36a53a(0x202),'headers':_0x56438a,'body':JSON['stringify']({'jsonrpc':'2.0','method':_0x36a53a(0x24d)})})['then'](_0x27111a=>_0x27111a[_0x36a53a(0x253)]()),process[_0x36a53a(0x239)][_0x36a53a(0x206)](_0x178e6a['vKTRM']);const _0x3b0dfc=await _0x178e6a['oYAec'](_0x2661f3,{'jsonrpc':_0x178e6a['MHvyI'],'id':0x2,'method':_0x178e6a[_0x36a53a(0x1f3)],'params':{'name':_0x178e6a['oLeCn'],'arguments':{}}});if(_0x3b0dfc['error'])throw new Error(_0x36a53a(0x261)+(_0x3b0dfc[_0x36a53a(0x26c)][_0x36a53a(0x1fd)]??JSON['stringify'](_0x3b0dfc['error'])));console[_0x36a53a(0x1ef)]('\x20done');const _0xea06c2=_0x178e6a['tmUre'](extractToken,_0x3b0dfc[_0x36a53a(0x26b)]);if(!_0xea06c2){console[_0x36a53a(0x26c)](_0x178e6a[_0x36a53a(0x1f9)]),console[_0x36a53a(0x26c)](JSON['stringify'](_0x3b0dfc['result'],null,0x2));throw new Error(_0x36a53a(0x269));}const _0x3b289a=_0x178e6a[_0x36a53a(0x1f5)](join,homedir(),_0x178e6a['lGwBM']),_0xe5a4dd=_0x178e6a['rdcTS'](join,_0x3b289a,_0x178e6a[_0x36a53a(0x1f6)]);await mkdir(_0x3b289a,{'recursive':!![]}),await writeFile(_0xe5a4dd,_0xea06c2,{'mode':0x180}),await writeFile(_0x178e6a[_0x36a53a(0x214)](join,_0x3b289a,'auth-origin.txt'),_0x13d5b2,{'mode':0x180}),console[_0x36a53a(0x1ef)]('\x0aToken\x20written\x20to\x20'+_0xe5a4dd),console['log'](_0x178e6a['LCZNr']);}async function fetchAuthServerMetadata(_0x56a95b){const _0x42d124=_0x3a9246,_0x1a8c2a=_0x56a95b+_0x42d124(0x265),_0xe7ce79=await fetch(_0x1a8c2a);if(!_0xe7ce79['ok'])throw new Error('Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20'+_0x1a8c2a+':\x20'+_0xe7ce79[_0x42d124(0x250)]);return _0xe7ce79[_0x42d124(0x277)]();}function waitForCallback(_0x16955a){const _0xcc5381=_0x3a9246,_0x42775b={'KwhvG':function(_0x55a452){return _0x55a452();},'wHanV':function(_0x2ce19f,_0x3f10b6){return _0x2ce19f!==_0x3f10b6;},'mKruE':'/callback','zJKWf':'state','SVcah':'error_description','jCMif':_0xcc5381(0x252),'QoWLe':function(_0x1e6e91,_0x5fd60a){return _0x1e6e91(_0x5fd60a);},'ekiTT':'<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','kbsJb':_0xcc5381(0x21e),'BjMfL':function(_0x2faa7d){return _0x2faa7d();}};return new Promise((_0x50778a,_0x22ef0b)=>{const _0x1bf248=_0xcc5381,_0x28ecdf=()=>{const _0x1b2c25=_0x2bd8;_0x513979[_0x1b2c25(0x223)](),_0x513979['close']();},_0x324941=setTimeout(()=>{const _0x29d8b4=_0x2bd8;_0x42775b[_0x29d8b4(0x228)](_0x28ecdf),_0x22ef0b(new OAuthTimeoutError(_0x29d8b4(0x233)));},0x1d4c0),_0x513979=_0x42775b['QoWLe'](createServer,(_0x1b8ab1,_0x1d9364)=>{const _0x4ece04=_0x2bd8,_0x4d0d12=new URL(_0x1b8ab1['url']??'/',_0x4ece04(0x23f)+CALLBACK_PORT);if(_0x42775b['wHanV'](_0x4d0d12['pathname'],_0x42775b[_0x4ece04(0x22b)])){_0x1d9364['writeHead'](0x194),_0x1d9364['end']('Not\x20found');return;}const _0x1a5ce3=_0x4d0d12[_0x4ece04(0x260)]['get'](_0x4ece04(0x220)),_0x2c1eb7=_0x4d0d12[_0x4ece04(0x260)][_0x4ece04(0x248)](_0x42775b['zJKWf']),_0x506d7b=_0x4d0d12['searchParams']['get'](_0x4ece04(0x26c));if(_0x506d7b){const _0x1b8555=_0x4d0d12['searchParams']['get'](_0x42775b[_0x4ece04(0x244)])??_0x506d7b;_0x1d9364[_0x4ece04(0x25f)](0xc8,{'Content-Type':_0x42775b[_0x4ece04(0x270)]}),_0x1d9364['end']('<html><body><h2>Authentication\x20failed</h2><p>'+_0x1b8555+_0x4ece04(0x259)),clearTimeout(_0x324941),_0x42775b['KwhvG'](_0x28ecdf),_0x42775b[_0x4ece04(0x272)](_0x22ef0b,new Error(_0x4ece04(0x263)+_0x1b8555));return;}if(!_0x1a5ce3||_0x42775b[_0x4ece04(0x21b)](_0x2c1eb7,_0x16955a)){_0x1d9364['writeHead'](0x190,{'Content-Type':_0x42775b[_0x4ece04(0x270)]}),_0x1d9364['end'](_0x42775b[_0x4ece04(0x22a)]);return;}_0x1d9364['writeHead'](0xc8,{'Content-Type':_0x42775b[_0x4ece04(0x270)]}),_0x1d9364[_0x4ece04(0x1f1)](_0x42775b[_0x4ece04(0x25d)]),_0x42775b['QoWLe'](clearTimeout,_0x324941),_0x42775b['BjMfL'](_0x28ecdf),_0x50778a(_0x1a5ce3);});_0x513979['listen'](CALLBACK_PORT,_0x1bf248(0x26f));});}function _0x2bd8(_0x51a005,_0x53d384){_0x51a005=_0x51a005-0x1ec;const _0x1bf3b0=_0x1bf3();let _0x2bd892=_0x1bf3b0[_0x51a005];return _0x2bd892;}async function openBrowser(_0x1cb3ab){const _0x5a19fd=_0x3a9246,_0x2f29ac={'tTcgO':function(_0x3d59ce,_0x3aea1d){return _0x3d59ce===_0x3aea1d;},'mCpsz':_0x5a19fd(0x22d),'NPanp':_0x5a19fd(0x1f8),'eHYJt':'xdg-open','ynwcT':function(_0x2c32bc,_0x7fc972){return _0x2c32bc(_0x7fc972);}},_0x185a05=_0x2f29ac['tTcgO'](process[_0x5a19fd(0x24c)],_0x2f29ac['mCpsz'])?_0x5a19fd(0x243):_0x2f29ac['tTcgO'](process['platform'],_0x2f29ac[_0x5a19fd(0x271)])?_0x5a19fd(0x211):_0x2f29ac[_0x5a19fd(0x20e)];_0x2f29ac['ynwcT'](exec,_0x185a05+'\x20\x22'+_0x1cb3ab+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x26ed14=_0x3a9246,_0x3b7ca4={'dYJuq':function(_0x199ab7,_0x3a7bef,_0x28be53){return _0x199ab7(_0x3a7bef,_0x28be53);},'nDCyc':function(_0x5ee7fa,_0x18f1a8){return _0x5ee7fa!==_0x18f1a8;}};try{const _0x483b59=JSON['parse'](await _0x3b7ca4['dYJuq'](readFile,TOKEN_CACHE_PATH,_0x26ed14(0x227)));if(_0x483b59['origin']&&_0x3b7ca4[_0x26ed14(0x23d)](_0x483b59[_0x26ed14(0x231)],currentOrigin))return null;if(_0x483b59[_0x26ed14(0x203)]&&Date['now']()>_0x483b59[_0x26ed14(0x203)])return null;return _0x483b59['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x572320,_0x39e673,_0x1395f4){const _0x513626=_0x3a9246,_0xd63b4f={'bnvHg':function(_0xf15557,_0x32a43b){return _0xf15557*_0x32a43b;},'nVcMc':function(_0x4311af,_0x574d48,_0x41eac7){return _0x4311af(_0x574d48,_0x41eac7);},'GnPJr':function(_0x494428){return _0x494428();},'BDlto':_0x513626(0x22c),'PdKIj':function(_0x15ba8e,_0x42c866,_0x402a6c,_0x1b6721){return _0x15ba8e(_0x42c866,_0x402a6c,_0x1b6721);}},_0x3a093b=await loadCachedData(),_0x3a4f8f={..._0x3a093b,'origin':currentOrigin,'accessToken':_0x572320,'refreshToken':_0x39e673??_0x3a093b?.['refreshToken'],'expiresAt':_0x1395f4?Date[_0x513626(0x1fa)]()+_0xd63b4f[_0x513626(0x23a)](_0x1395f4,0x3e8):undefined};await _0xd63b4f[_0x513626(0x230)](mkdir,join(_0xd63b4f[_0x513626(0x249)](homedir),_0xd63b4f[_0x513626(0x1fe)]),{'recursive':!![]}),await _0xd63b4f['PdKIj'](writeFile,TOKEN_CACHE_PATH,JSON[_0x513626(0x20f)](_0x3a4f8f),{'mode':0x180});}async function loadCachedClient(){const _0x8b0ff0=_0x3a9246,_0x31aca8={'IOAln':function(_0x10ce74){return _0x10ce74();}},_0x54e06b=await _0x31aca8[_0x8b0ff0(0x26a)](loadCachedData);if(_0x54e06b?.[_0x8b0ff0(0x231)]&&_0x54e06b['origin']!==currentOrigin)return null;return _0x54e06b?.[_0x8b0ff0(0x234)]?{'clientId':_0x54e06b[_0x8b0ff0(0x234)],'clientSecret':_0x54e06b[_0x8b0ff0(0x25a)]}:null;}async function clearCachedClient(){const _0x5eda65=_0x3a9246,_0x2fe3f5={'hfyuK':function(_0x4c5427){return _0x4c5427();},'ZVfES':function(_0x53c972,_0x34ab07,_0x498855,_0x458bf7){return _0x53c972(_0x34ab07,_0x498855,_0x458bf7);}},_0x209e07=await _0x2fe3f5['hfyuK'](loadCachedData);if(!_0x209e07)return;const {clientId:_0x582b20,clientSecret:_0x52b803,..._0x1e1320}=_0x209e07;await _0x2fe3f5[_0x5eda65(0x1ff)](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x1e1320),{'mode':0x180});}function _0x1bf3(){const _0x29a407=['RETeb','now','WOBRg','bNdyR','message','BDlto','ZVfES','Registering\x20OAuth\x20client...','MCP\x20initialize\x20failed:\x20','POST','expiresAt','CwVAg','112917BbPfIV','write','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','EwFjV','response_type','2178504OAEaNj','mcp-oauth-tokens.json','cALSY','jcEyI','eHYJt','stringify','Token\x20exchange\x20failed:\x20','start','LXzTM','byaZu','rdcTS','client_id','10vMCcjj','redirect_uri','bJXoZ','replace','gDIOP','wHanV','length','trim','<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','parse','code','Ranger\x20CLI','expires_in','closeAllConnections','content','initialize','EzeQU','utf-8','KwhvG','Unknown\x20error','ekiTT','mKruE','.ranger','darwin','data:','3020684WRyBKU','nVcMc','origin','includes','OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','clientId','RNUbG','mYXfQ','get_cli_token','application/x-www-form-urlencoded','stdout','bnvHg','QoxHu','ranger-cli','nDCyc','No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','http://localhost:','set','neNAt','tmUre','open','SVcah','/.well-known/oauth-protected-resource','bTNsz','eKeQh','get','GnPJr','refresh_token','registration_endpoint','platform','notifications/initialized','base64url','7850817RZKaoG','status','token','text/html','text','authorization_code','startsWith','access_token','Bearer\x20','ZfQvR','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','clientSecret','string','hex','kbsJb','auth-origin.txt','writeHead','searchParams','get_cli_token\x20failed:\x20','/callback','OAuth\x20error:\x20','Authorization','/.well-known/oauth-authorization-server','toString','869180bKUnBd','avMmG','Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','IOAln','result','error','2StUmgN','needs-oauth','127.0.0.1','jCMif','NPanp','QoWLe','client_secret','DfOuL','3327863HaBTzP','2.0','json','kbsAK','MnNZs','Fniqw','resource','KcPIq','rvFCY','tmyen','781044AhNmId','log','IWZol','end','MCP\x20server\x20returned\x20HTTP\x20','JAhcK','type','FSzpx','YRXDI','12inPHWa','win32'];_0x1bf3=function(){return _0x29a407;};return _0x1bf3();}async function saveCachedClient(_0xe4e2ae,_0x55bc61){const _0x5b50a6=_0x3a9246,_0x1ce7b3={'KvtJz':function(_0xedf5f,_0xa16b23,_0x40c04c){return _0xedf5f(_0xa16b23,_0x40c04c);}},_0xecd286=await loadCachedData(),_0x188308={..._0xecd286,'origin':currentOrigin,'accessToken':_0xecd286?.['accessToken']??'','clientId':_0xe4e2ae,'clientSecret':_0x55bc61};await _0x1ce7b3['KvtJz'](mkdir,join(homedir(),_0x5b50a6(0x22c)),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x188308),{'mode':0x180});}async function loadCachedData(){const _0x3eb18e=_0x3a9246;try{return JSON[_0x3eb18e(0x21f)](await readFile(TOKEN_CACHE_PATH,_0x3eb18e(0x227)));}catch{return null;}}async function parseResponse(_0x474e6b){const _0x40de05=_0x3a9246,_0x16ef9f={'qmkyg':'content-type','eKeQh':'text/event-stream','tmyen':_0x40de05(0x22e),'WOBRg':_0x40de05(0x207)},_0x2cfeb6=_0x474e6b['headers'][_0x40de05(0x248)](_0x16ef9f['qmkyg'])??'';if(_0x2cfeb6[_0x40de05(0x232)](_0x16ef9f[_0x40de05(0x247)])){const _0x2d5e31=await _0x474e6b[_0x40de05(0x253)]();for(const _0x1cb2d1 of _0x2d5e31['split']('\x0a')){const _0x4e4b6e=_0x1cb2d1[_0x40de05(0x21d)]();if(_0x4e4b6e[_0x40de05(0x255)](_0x16ef9f[_0x40de05(0x1ed)])){const _0x2a512c=_0x4e4b6e['slice'](_0x40de05(0x22e)[_0x40de05(0x21c)])[_0x40de05(0x21d)]();if(!_0x2a512c)continue;try{const _0x105cef=JSON[_0x40de05(0x21f)](_0x2a512c);if(_0x105cef['id']!==undefined||_0x105cef[_0x40de05(0x26c)])return _0x105cef;}catch{}}}throw new Error(_0x16ef9f[_0x40de05(0x1fb)]);}return _0x474e6b[_0x40de05(0x277)]();}function extractToken(_0x342408){const _0x4597fe=_0x3a9246,_0x323a70={'ZIRln':function(_0x401eab,_0x39c618){return _0x401eab===_0x39c618;},'lFqAS':_0x4597fe(0x25b),'yXKVG':_0x4597fe(0x229),'gDIOP':function(_0x446cd8,_0x4f1204){return _0x446cd8===_0x4f1204;}};if(!_0x342408)return null;const _0x48e355=_0x342408['structuredContent'];if(_0x48e355?.['token']&&_0x323a70['ZIRln'](typeof _0x48e355['token'],_0x323a70['lFqAS']))return _0x48e355['token'];if(_0x342408['isError']){const _0x2f389d=_0x342408[_0x4597fe(0x224)];throw new Error('Server\x20returned\x20error:\x20'+(_0x2f389d?.[0x0]?.['text']??_0x323a70['yXKVG']));}const _0x49bdd2=_0x342408['content'];if(_0x49bdd2)for(const _0x24c084 of _0x49bdd2){if(_0x323a70['ZIRln'](_0x24c084[_0x4597fe(0x1f4)],_0x4597fe(0x253))&&_0x24c084[_0x4597fe(0x253)]){try{const _0x39f483=JSON[_0x4597fe(0x21f)](_0x24c084['text']);if(_0x323a70[_0x4597fe(0x21a)](typeof _0x39f483?.[_0x4597fe(0x251)],'string'))return _0x39f483['token'];}catch{}const _0x3b7ab7=_0x24c084['text']['match'](/(rngr_[A-Za-z0-9_-]+)/);if(_0x3b7ab7)return _0x3b7ab7[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 _0x592f(_0x5a293b,_0x3c8e67){_0x5a293b=_0x5a293b-0x137;var _0x505228=_0x5052();var _0x592f5a=_0x505228[_0x5a293b];return _0x592f5a;}(function(_0x2401c1,_0x22254a){var _0x6091b0=_0x592f,_0x586a80=_0x2401c1();while(!![]){try{var _0x2bce83=parseInt(_0x6091b0(0x13f))/0x1+parseInt(_0x6091b0(0x137))/0x2+-parseInt(_0x6091b0(0x140))/0x3*(parseInt(_0x6091b0(0x142))/0x4)+parseInt(_0x6091b0(0x143))/0x5+parseInt(_0x6091b0(0x145))/0x6*(-parseInt(_0x6091b0(0x146))/0x7)+-parseInt(_0x6091b0(0x138))/0x8*(parseInt(_0x6091b0(0x13d))/0x9)+parseInt(_0x6091b0(0x13c))/0xa;if(_0x2bce83===_0x22254a)break;else _0x586a80['push'](_0x586a80['shift']());}catch(_0x1fce98){_0x586a80['push'](_0x586a80['shift']());}}}(_0x5052,0x216d8));export async function migrateProfile(_0x575ac6,_0x354c1f){var _0x157eb8=_0x592f,_0x5a46fa={'oygYg':function(_0x31c5d3,_0x2720b8){return _0x31c5d3+_0x2720b8;},'IIpZn':function(_0x59f3b1,_0x581293){return _0x59f3b1+_0x581293;},'qftZf':_0x157eb8(0x144),'nKzww':'\x20\x20ranger\x20profile\x20add\x20<name>\x0a','enBKO':'Existing\x20sessions\x20in\x20your\x20old\x20<project>/.ranger/\x20dirs\x20still\x20work\x20as\x20a\x0a','EBqdW':'fallback;\x20you\x20can\x20delete\x20them\x20once\x20you\x20have\x20re-auth-ed.'};console['error'](_0x5a46fa[_0x157eb8(0x13b)](_0x5a46fa[_0x157eb8(0x139)](_0x5a46fa['IIpZn'](_0x5a46fa['IIpZn']('ranger\x20profile\x20migrate\x20is\x20no\x20longer\x20supported.\x0a','\x0a'),_0x5a46fa['qftZf'])+_0x5a46fa[_0x157eb8(0x13a)],'\x0a')+'For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a','\x20\x20https://docs.ranger.net/main/concepts/profiles\x0a')+'\x0a'+_0x5a46fa['enBKO']+_0x5a46fa[_0x157eb8(0x141)]),process[_0x157eb8(0x13e)](0x1);}function _0x5052(){var _0x269526=['847TqaHwt','283660MsWZQj','232XQwGGE','IIpZn','nKzww','oygYg','822660DmknwZ','76851tlzwpx','exit','259717lLsUoj','9qrKlgU','EBqdW','62164FEtaFk','778010UVtjyR','To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a','10326qFQcCE'];_0x5052=function(){return _0x269526;};return _0x5052();}
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(_0x12302f,_0x33d0d2){const _0x167796=_0x2208,_0x3df60b=_0x12302f();while(!![]){try{const _0x2dfd4f=-parseInt(_0x167796(0x151))/0x1*(parseInt(_0x167796(0x15a))/0x2)+-parseInt(_0x167796(0x14a))/0x3+parseInt(_0x167796(0x12f))/0x4*(-parseInt(_0x167796(0x152))/0x5)+parseInt(_0x167796(0x154))/0x6+-parseInt(_0x167796(0x143))/0x7+parseInt(_0x167796(0x133))/0x8+parseInt(_0x167796(0x15d))/0x9;if(_0x2dfd4f===_0x33d0d2)break;else _0x3df60b['push'](_0x3df60b['shift']());}catch(_0x31385c){_0x3df60b['push'](_0x3df60b['shift']());}}}(_0x32b3,0xa4fbb));import{join}from'path';import{existsSync}from'fs';import _0xa97010 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';function _0x2208(_0x3c3060,_0x36177e){_0x3c3060=_0x3c3060-0x12a;const _0x32b3e9=_0x32b3();let _0x220874=_0x32b3e9[_0x3c3060];return _0x220874;}export async function ensureClaudePlugin(_0x2b3d66){const _0x473845=_0x2208,_0xd16d95={'mOrns':function(_0xb7debb,_0x3bfaba){return _0xb7debb(_0x3bfaba);},'MQaYn':_0x473845(0x13d),'YhtSJ':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','kGLSS':function(_0x1a9d07){return _0x1a9d07();},'rWzvm':_0x473845(0x153),'TiGli':'\x0a📦\x20Claude\x20Code\x20Plugin\x0a','EKLIh':_0x473845(0x15b),'jXTTg':_0x473845(0x158),'cAZBw':'Project\x20(shared\x20with\x20team\x20via\x20git)','oRois':function(_0x17ddb6,_0x54d5bf){return _0x17ddb6(_0x54d5bf);},'gFBDn':_0x473845(0x159),'cBwdr':_0x473845(0x15e),'NxtuI':_0x473845(0x134),'EPSKQ':_0x473845(0x13a),'UNhBa':_0x473845(0x142),'yrUGY':function(_0x9b4735,_0x184617,_0x366565){return _0x9b4735(_0x184617,_0x366565);},'xlSSU':'plugin','tqmRJ':function(_0x568eff){return _0x568eff();},'gyzVE':_0x473845(0x12d),'ZmPLS':_0x473845(0x15c),'qwoop':function(_0x3eb59b,_0x351690){return _0x3eb59b===_0x351690;},'txWtq':'--scope','yxjos':function(_0x53a064){return _0x53a064();},'fxndH':'already\x20enabled','fqRUa':'⚠\x20Failed\x20to\x20enable\x20plugin:','ZrQww':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x1abd04=await _0xd16d95[_0x473845(0x14e)](isPluginInstalled,_0xd16d95['MQaYn']);if(_0x1abd04)return console['log'](_0xd16d95[_0x473845(0x14c)]),![];const _0x3e143e=_0xd16d95['mOrns'](existsSync,join(_0xd16d95[_0x473845(0x12e)](getProjectRoot),'.claude'));let _0x2f954c;if(_0x2b3d66)_0x2f954c=_0x2b3d66;else{if(_0x3e143e)_0x2f954c=_0xd16d95['rWzvm'];else{console['log'](_0xd16d95[_0x473845(0x163)]);const _0x3a235b=await _0xa97010['prompt']([{'type':'list','name':_0xd16d95['EKLIh'],'message':_0x473845(0x14d),'choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':_0xd16d95[_0x473845(0x14b)]},{'name':_0xd16d95[_0x473845(0x137)],'value':'project'}],'default':_0x473845(0x158)}]);_0x2f954c=_0x3a235b[_0x473845(0x15b)];}}console['log'](_0x473845(0x15f)+_0x2f954c+_0x473845(0x138));const _0x282334=await _0xd16d95[_0x473845(0x162)](isMarketplaceAdded,'trailhead');let _0x2a2c06=_0x282334;if(_0x282334)console[_0x473845(0x14f)](_0xd16d95[_0x473845(0x156)]);else{const _0x4ae76d=await runClaudeCommand(['plugin',_0xd16d95['cBwdr'],_0xd16d95['NxtuI'],_0xd16d95['EPSKQ']]);!_0x4ae76d[_0x473845(0x12a)]?(console[_0x473845(0x160)](_0x473845(0x155),_0x4ae76d['error']),console[_0x473845(0x14f)]('\x0aYou\x20can\x20install\x20manually\x20with:'),console['log'](_0xd16d95[_0x473845(0x149)]),console[_0x473845(0x14f)](_0x473845(0x13f)+_0x2f954c)):_0x2a2c06=!![];}if(_0x2a2c06){const _0x25f92e=await _0xd16d95[_0x473845(0x12c)](runClaudeCommand,[_0xd16d95['xlSSU'],'install',_0x473845(0x13d),_0x473845(0x136),_0x2f954c],{'cwd':_0x2f954c===_0x473845(0x153)?_0xd16d95[_0x473845(0x13c)](getProjectRoot):undefined});if(!_0x25f92e[_0x473845(0x12a)])console[_0x473845(0x160)](_0xd16d95[_0x473845(0x146)],_0x25f92e[_0x473845(0x160)]),console[_0x473845(0x14f)](_0x473845(0x135)),console['log'](_0x473845(0x13f)+_0x2f954c);else{console[_0x473845(0x14f)]('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x402cd3=['plugin',_0xd16d95[_0x473845(0x130)],_0xd16d95['MQaYn']];_0xd16d95[_0x473845(0x144)](_0x2f954c,_0x473845(0x153))&&_0x402cd3['push'](_0xd16d95[_0x473845(0x145)],'project');const _0x40c236=await runClaudeCommand(_0x402cd3,{'captureOutput':!![],'cwd':_0xd16d95[_0x473845(0x144)](_0x2f954c,_0xd16d95[_0x473845(0x147)])?_0xd16d95['yxjos'](getProjectRoot):undefined}),_0x5cae83=_0x40c236[_0x473845(0x12b)]?.['includes'](_0xd16d95[_0x473845(0x139)]);!_0x40c236['success']&&!_0x5cae83?console['error'](_0xd16d95['fqRUa'],_0x40c236['error']):console[_0x473845(0x14f)](_0xd16d95['ZrQww']);}}return!![];}export async function ensureClaudeSkills(_0x36f164){const _0x38697b=_0x2208,_0x5577d8={'iWgJO':function(_0x464227,_0x2858e0){return _0x464227(_0x2858e0);},'bwiva':function(_0x227445,_0x338aa2){return _0x227445(_0x338aa2);},'tSHlZ':'SKILL.md','JksgX':_0x38697b(0x140),'gPnTV':function(_0x5adb13,_0x10dae2){return _0x5adb13(_0x10dae2);},'WnTCJ':_0x38697b(0x153),'rAjLC':_0x38697b(0x141)},_0x3864d4=_0x5577d8[_0x38697b(0x150)](existsSync,join(getSkillsDir('user'),'ranger',_0x38697b(0x13b))),_0x1069ce=_0x5577d8[_0x38697b(0x131)](existsSync,join(getSkillsDir('project'),'ranger',_0x5577d8[_0x38697b(0x157)]));if(_0x3864d4||_0x1069ce)return console[_0x38697b(0x14f)](_0x5577d8[_0x38697b(0x161)]),![];const _0x2f721a=_0x5577d8['gPnTV'](existsSync,join(getProjectRoot(),_0x38697b(0x132)));let _0xeda2b0=!![];if(_0x36f164)await skillup({'autoInstall':_0x36f164,'suppressUsage':!![]});else{if(_0x2f721a)await _0x5577d8[_0x38697b(0x150)](skillup,{'autoInstall':_0x5577d8['WnTCJ'],'suppressUsage':!![]});else{const _0x4af997=await _0xa97010['prompt']([{'type':'confirm','name':_0x38697b(0x148),'message':_0x5577d8[_0x38697b(0x13e)],'default':!![]}]);_0xeda2b0=_0x4af997[_0x38697b(0x148)],_0xeda2b0&&await skillup({'suppressUsage':!![]});}}return _0xeda2b0;}function _0x32b3(){const _0xb0e38e=['project','2786532qmYsFC','❌\x20Failed\x20to\x20add\x20marketplace:','gFBDn','tSHlZ','user','✓\x20Marketplace\x20already\x20added','2QDqBJm','pluginScope','enable','32194746wakDiJ','marketplace','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','error','JksgX','oRois','TiGli','success','output','yrUGY','❌\x20Failed\x20to\x20install\x20plugin:','kGLSS','3375628RcSOxv','ZmPLS','bwiva','.claude','1348424isqUHt','add','\x0aYou\x20can\x20install\x20manually\x20with:','--scope','cAZBw','\x20level)...\x0a','fxndH','ranger-testing/trailhead','SKILL.md','tqmRJ','ranger@trailhead','rAjLC','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','✓\x20Ranger\x20skills\x20already\x20installed','Would\x20you\x20like\x20to\x20install\x20skills?','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','4369134puQXZW','qwoop','txWtq','gyzVE','rWzvm','wantsSkillup','UNhBa','2161968mDcoEK','jXTTg','YhtSJ','Where\x20should\x20the\x20plugin\x20be\x20installed?','mOrns','log','iWgJO','1345673qghIXG','5gOIHSP'];_0x32b3=function(){return _0xb0e38e;};return _0x32b3();}
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(_0x3bd01b,_0x37f001){const _0x3482f1=_0x3f2f,_0x48f1a8=_0x3bd01b();while(!![]){try{const _0x35409e=-parseInt(_0x3482f1(0x86))/0x1*(-parseInt(_0x3482f1(0x8e))/0x2)+-parseInt(_0x3482f1(0x87))/0x3*(-parseInt(_0x3482f1(0x94))/0x4)+-parseInt(_0x3482f1(0x85))/0x5*(parseInt(_0x3482f1(0x8c))/0x6)+parseInt(_0x3482f1(0x9b))/0x7*(-parseInt(_0x3482f1(0x90))/0x8)+-parseInt(_0x3482f1(0x7f))/0x9+parseInt(_0x3482f1(0x98))/0xa*(-parseInt(_0x3482f1(0x83))/0xb)+-parseInt(_0x3482f1(0x96))/0xc*(-parseInt(_0x3482f1(0x99))/0xd);if(_0x35409e===_0x37f001)break;else _0x48f1a8['push'](_0x48f1a8['shift']());}catch(_0x5841b4){_0x48f1a8['push'](_0x48f1a8['shift']());}}}(_0x5c4f,0xe2bb9));import{join}from'path';import{existsSync}from'fs';function _0x5c4f(){const _0x12c72e=['stringify','537688FmJJUa','parse','project','GUqtd','332ngIVOx','✓\x20OpenCode\x20plugin\x20configured','30062580hYpIAU','User\x20(available\x20in\x20all\x20your\x20projects)','2246810UERcHr','13FIISaW','log','49gXFJEV','cxgSp','YOIzG','JUGRV','isArray','vYIzy','$schema','opencode.json','14392260aanTPh','@ranger-testing/opencode-plugin','RbbwY','\x0a📦\x20OpenCode\x20Plugin\x0a','22WgCAvt','user','14345spaBYh','825808falXLF','53577asZupM','vgxIh','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','list','pluginScope','2856BXjAgr','plugin','2SVbhqQ'];_0x5c4f=function(){return _0x12c72e;};return _0x5c4f();}import{mkdir,readFile,writeFile}from'fs/promises';function _0x3f2f(_0x1d894d,_0x4fba25){_0x1d894d=_0x1d894d-0x7e;const _0x5c4fa6=_0x5c4f();let _0x3f2f7b=_0x5c4fa6[_0x1d894d];return _0x3f2f7b;}import _0x2c7531 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0xce8afc){const _0x1f73f9=_0x3f2f,_0x4de47f={'tUrDa':function(_0x2171a0,_0x3913c2,_0x1e1060){return _0x2171a0(_0x3913c2,_0x1e1060);},'RbbwY':function(_0x39a828,_0x27615a){return _0x39a828(_0x27615a);},'GUqtd':'project','eSKhv':'Where\x20should\x20the\x20plugin\x20be\x20installed?','YOIzG':_0x1f73f9(0x97),'TmdRZ':_0x1f73f9(0x84),'vYIzy':function(_0x4e2b2c,_0xedac4,_0x35a520){return _0x4e2b2c(_0xedac4,_0x35a520);},'JUGRV':function(_0x3cfb9b,_0x36f9f2){return _0x3cfb9b(_0x36f9f2);},'vgxIh':function(_0x56c0e1,_0x59d9c3){return _0x56c0e1+_0x59d9c3;},'cxgSp':_0x1f73f9(0x95)},_0x179628=existsSync(_0x4de47f['tUrDa'](join,_0x4de47f[_0x1f73f9(0x81)](getOpencodeConfigDir,_0x1f73f9(0x92)),'opencode.json'));let _0x55036c;if(_0xce8afc)_0x55036c=_0xce8afc;else{if(_0x179628)_0x55036c=_0x4de47f[_0x1f73f9(0x93)];else{console[_0x1f73f9(0x9a)](_0x1f73f9(0x82));const _0x82c6bc=await _0x2c7531['prompt']([{'type':_0x1f73f9(0x8a),'name':_0x1f73f9(0x8b),'message':_0x4de47f['eSKhv'],'choices':[{'name':_0x4de47f[_0x1f73f9(0x9d)],'value':_0x1f73f9(0x84)},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x4de47f['GUqtd']}],'default':_0x4de47f['TmdRZ']}]);_0x55036c=_0x82c6bc[_0x1f73f9(0x8b)];}}const _0x5b389b=_0x4de47f[_0x1f73f9(0xa0)](join,getOpencodeConfigDir(_0x55036c),_0x1f73f9(0x7e)),_0x1e14ec=_0x1f73f9(0x80),_0x23fb9a='https://opencode.ai/config.json';let _0x11c432={};if(_0x4de47f[_0x1f73f9(0x9e)](existsSync,_0x5b389b))try{const _0x18d820=await readFile(_0x5b389b,'utf-8');_0x11c432=JSON[_0x1f73f9(0x91)](_0x18d820);}catch(_0x462b06){return console['error'](_0x1f73f9(0x89)),{'configured':![],'scope':_0x55036c,'error':'Failed\x20to\x20read\x20opencode.json','details':_0x462b06};}const _0x1f27af=Array[_0x1f73f9(0x9f)](_0x11c432['plugin'])?_0x11c432['plugin']:[];if(_0x1f27af['includes'](_0x1e14ec))return console[_0x1f73f9(0x9a)]('✓\x20OpenCode\x20plugin\x20already\x20configured'),{'configured':![],'scope':_0x55036c};return _0x11c432[_0x1f73f9(0xa1)]=_0x11c432[_0x1f73f9(0xa1)]||_0x23fb9a,_0x11c432[_0x1f73f9(0x8d)]=[..._0x1f27af,_0x1e14ec],await mkdir(getOpencodeConfigDir(_0x55036c),{'recursive':!![]}),await writeFile(_0x5b389b,_0x4de47f[_0x1f73f9(0x88)](JSON[_0x1f73f9(0x8f)](_0x11c432,null,0x2),'\x0a')),console[_0x1f73f9(0x9a)](_0x4de47f[_0x1f73f9(0x9c)]),{'configured':!![],'scope':_0x55036c};}
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 _0x569e(){var _0x5259fe=['976338imtzmp','To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a','error','33720wkHkKc','1313753FjGTeT','mNqAI','zrVzX','14968BOhdMs','\x20\x20https://docs.ranger.net/main/concepts/profiles','3650OFacag','5860cmkbut','1890720VdApLI','26ahCTym','972lpXvFe','5ZLMqOp'];_0x569e=function(){return _0x5259fe;};return _0x569e();}(function(_0x356c9a,_0x28ffda){var _0x14f22e=_0x560f,_0x323dea=_0x356c9a();while(!![]){try{var _0xf10409=parseInt(_0x14f22e(0xa4))/0x1*(-parseInt(_0x14f22e(0xa7))/0x2)+-parseInt(_0x14f22e(0x9b))/0x3+-parseInt(_0x14f22e(0xa5))/0x4*(-parseInt(_0x14f22e(0x9a))/0x5)+parseInt(_0x14f22e(0x9e))/0x6+parseInt(_0x14f22e(0x9f))/0x7+-parseInt(_0x14f22e(0xa2))/0x8*(-parseInt(_0x14f22e(0x99))/0x9)+parseInt(_0x14f22e(0xa6))/0xa;if(_0xf10409===_0x28ffda)break;else _0x323dea['push'](_0x323dea['shift']());}catch(_0x41092e){_0x323dea['push'](_0x323dea['shift']());}}}(_0x569e,0x34010));function _0x560f(_0x3127e8,_0x301ee7){_0x3127e8=_0x3127e8-0x99;var _0x569e1e=_0x569e();var _0x560f83=_0x569e1e[_0x3127e8];return _0x560f83;}export async function setupCi(_0x562e7b,_0x820950,_0x4c9385){var _0x2617ea=_0x560f,_0x480368={'mNqAI':function(_0x30c004,_0xdbd6ea){return _0x30c004+_0xdbd6ea;},'SUdpX':function(_0x1890d4,_0x2bafbe){return _0x1890d4+_0x2bafbe;},'afJvL':function(_0xa07296,_0x4e699a){return _0xa07296+_0x4e699a;},'qKXji':_0x2617ea(0x9c),'IInEk':'\x20\x20ranger\x20profile\x20add\x20<name>\x0a','zrVzX':'For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a','ysxbg':_0x2617ea(0xa3)};console[_0x2617ea(0x9d)](_0x480368['mNqAI'](_0x480368[_0x2617ea(0xa0)](_0x480368['SUdpX'](_0x480368['afJvL']('ranger\x20setup\x20--ci\x20writes\x20to\x20the\x20legacy\x20.ranger/ci/\x20tree\x20which\x20is\x20no\x20longer\x20supported.\x0a','\x0a')+_0x480368['qKXji']+_0x480368['IInEk'],'\x0a'),_0x480368[_0x2617ea(0xa1)]),_0x480368['ysxbg'])),process['exit'](0x1);}
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(_0x305669,_0x38c48f){const _0x485c4d=_0xacde,_0x478e85=_0x305669();while(!![]){try{const _0x441b58=parseInt(_0x485c4d(0xa3))/0x1*(parseInt(_0x485c4d(0x8b))/0x2)+-parseInt(_0x485c4d(0x8f))/0x3*(-parseInt(_0x485c4d(0x92))/0x4)+-parseInt(_0x485c4d(0xa0))/0x5+parseInt(_0x485c4d(0xab))/0x6*(parseInt(_0x485c4d(0xad))/0x7)+parseInt(_0x485c4d(0x9e))/0x8*(-parseInt(_0x485c4d(0xa7))/0x9)+parseInt(_0x485c4d(0x94))/0xa+-parseInt(_0x485c4d(0xa6))/0xb;if(_0x441b58===_0x38c48f)break;else _0x478e85['push'](_0x478e85['shift']());}catch(_0x25a3a5){_0x478e85['push'](_0x478e85['shift']());}}}(_0x5343,0xd730d));import{basename}from'path';import _0x2f1636 from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';function _0xacde(_0x85eecd,_0x1eee4f){_0x85eecd=_0x85eecd-0x8b;const _0x53430c=_0x5343();let _0xacdebf=_0x53430c[_0x85eecd];return _0xacdebf;}import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x24e044={}){const _0x1051d8=_0xacde,_0x2fea58={'PhePW':function(_0x10b482){return _0x10b482();},'sqgjz':'4|2|0|1|5|3','RYTpJ':_0x1051d8(0xb1),'Enece':function(_0x4ae3c3,_0x405fc6){return _0x4ae3c3===_0x405fc6;},'EFWXU':'opencode','WSNbV':'To\x20get\x20started:','aluam':function(_0x30a0cd,_0x37dbc3){return _0x30a0cd===_0x37dbc3;},'dMjrf':function(_0xcba51b,_0x44141f){return _0xcba51b(_0x44141f);},'ejPVF':function(_0x3d5173,_0x2386ab){return _0x3d5173(_0x2386ab);},'tVCyi':'installLevel','QAfhd':'user','WuVRH':function(_0x101d32){return _0x101d32();},'HopKd':_0x1051d8(0x8c),'ihqHF':'ranger','HVxXS':'\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','HlXzc':'project-level','zisTA':_0x1051d8(0xae),'UppEr':'\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a'};console[_0x1051d8(0x95)]('\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a');const _0x14af4f=_0x24e044['platform']??'claude',_0x4a876b=await _0x2fea58[_0x1051d8(0x97)](getToken);if(!_0x4a876b){const _0x322cc7=_0x2fea58['sqgjz']['split']('|');let _0x3e2f3c=0x0;while(!![]){switch(_0x322cc7[_0x3e2f3c++]){case'0':console[_0x1051d8(0x95)](_0x2fea58['RYTpJ']);continue;case'1':console[_0x1051d8(0x95)](_0x1051d8(0x90)+(_0x2fea58['Enece'](_0x14af4f,_0x2fea58['EFWXU'])?'\x20--opencode':'')+'\x20<your-api-token>');continue;case'2':console['log'](_0x2fea58[_0x1051d8(0x9d)]);continue;case'3':return;case'4':console['log']('❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a');continue;case'5':console['log']('\x20\x203.\x20Run:\x20ranger\x20skillup'+(_0x2fea58['aluam'](_0x14af4f,_0x2fea58[_0x1051d8(0xa4)])?'\x20--opencode':'')+'\x0a');continue;}break;}}console['log']('✓\x20Found\x20API\x20token');const _0x5cefc4=getProjectRoot(),_0x6f09e8=_0x2fea58[_0x1051d8(0xb0)](basename,_0x5cefc4),_0x1ab681=_0x14af4f==='opencode'?_0x2fea58[_0x1051d8(0x99)](getOpencodeConfigDir,_0x1051d8(0xaa))+'/skills/':getClaudeConfigDir()+_0x1051d8(0x9a),_0x45a42e=_0x14af4f===_0x2fea58[_0x1051d8(0xa4)]?_0x5cefc4+'/.opencode/skills/':_0x5cefc4+_0x1051d8(0xa2),_0x2ce9e1=process[_0x1051d8(0xb2)][_0x1051d8(0xa5)]&&process['stdout'][_0x1051d8(0xa5)];let _0x1f7945;if(_0x24e044['autoInstall'])_0x1f7945=_0x24e044[_0x1051d8(0xa1)];else{if(_0x2ce9e1){const _0x2f223c=await _0x2f1636['prompt']([{'type':'list','name':_0x2fea58[_0x1051d8(0xac)],'message':_0x1051d8(0x9b),'choices':[{'name':_0x1051d8(0xaf)+_0x1ab681+')','value':_0x2fea58['QAfhd']},{'name':_0x1051d8(0x98)+_0x45a42e+')','value':_0x1051d8(0x91)}]}]);_0x1f7945=_0x2f223c['installLevel'];}else _0x1f7945=_0x1051d8(0x91),console['log'](_0x1051d8(0x8e)+_0x45a42e+')');}let _0xffe75c=0x0;const _0x527815=_0x2fea58['WuVRH'](getCurrentVersion);console[_0x1051d8(0x95)](_0x2fea58[_0x1051d8(0xb4)]);try{const _0x718b30=await installSkill(_0x2fea58['ihqHF'],{'cliVersion':_0x527815,'level':_0x1f7945,'platform':_0x14af4f});_0x718b30&&_0xffe75c++;}catch(_0xb809d2){console['warn'](_0x2fea58[_0x1051d8(0x9c)],_0xb809d2 instanceof Error?_0xb809d2['message']:_0xb809d2);}if(_0xffe75c>0x0){const _0x3b6af8=_0x2fea58['aluam'](_0x1f7945,_0x2fea58['QAfhd'])?_0x1051d8(0x9f):_0x2fea58[_0x1051d8(0x96)];console['log'](_0x1051d8(0x93)+_0xffe75c+'\x20'+_0x3b6af8+'\x20skill'+(_0xffe75c>0x1?'s':'')+_0x1051d8(0xa9)),!_0x24e044['suppressUsage']&&(console['log'](_0x2fea58['zisTA']),_0x14af4f===_0x2fea58[_0x1051d8(0xa4)]?console[_0x1051d8(0x95)](_0x1051d8(0xa8)):console[_0x1051d8(0x95)](_0x1051d8(0xb3)));}else console[_0x1051d8(0x95)](_0x2fea58[_0x1051d8(0x8d)]);}function _0x5343(){const _0x315234=['768926sghshl','EFWXU','isTTY','31770486UvrUPp','637803GGDHRH','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','\x20successfully!\x0a','user','1156542uBmEXM','tVCyi','21mwuRtB','To\x20use:','All\x20projects\x20(','dMjrf','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','stdin','\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!','HopKd','2TXdlHw','\x0a📦\x20Installing\x20skills...\x0a','UppEr','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','52077uUSBum','\x20\x202.\x20Run:\x20ranger\x20setup','project','376KqvUNF','\x0a✅\x20Installed\x20','9344090zPbqBT','log','HlXzc','PhePW','This\x20project\x20only\x20(','ejPVF','/skills/','Where\x20should\x20skills\x20be\x20installed?','HVxXS','WSNbV','8dJDEAc','user-level','364190Qhywld','autoInstall','/.claude/skills/'];_0x5343=function(){return _0x315234;};return _0x5343();}
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 _0x2f3c02=_0x27dc;(function(_0x300453,_0x46ac0f){const _0x22456f=_0x27dc,_0x1a3659=_0x300453();while(!![]){try{const _0xfd86c5=parseInt(_0x22456f(0x15f))/0x1*(parseInt(_0x22456f(0x17a))/0x2)+-parseInt(_0x22456f(0x198))/0x3+parseInt(_0x22456f(0x191))/0x4*(-parseInt(_0x22456f(0x182))/0x5)+parseInt(_0x22456f(0x14c))/0x6*(-parseInt(_0x22456f(0x153))/0x7)+parseInt(_0x22456f(0x130))/0x8*(parseInt(_0x22456f(0x144))/0x9)+-parseInt(_0x22456f(0x142))/0xa*(-parseInt(_0x22456f(0x183))/0xb)+-parseInt(_0x22456f(0x165))/0xc*(-parseInt(_0x22456f(0x133))/0xd);if(_0xfd86c5===_0x46ac0f)break;else _0x1a3659['push'](_0x1a3659['shift']());}catch(_0x548800){_0x1a3659['push'](_0x1a3659['shift']());}}}(_0x3356,0x3525a));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';function _0x3356(){const _0x453462=['Authentication\x20failed:\x20','ZZUix','opencode','isTTY','\x20install\x20chromium','126PnPhFB','exit','\x0aIn\x20Claude\x20Code,\x20run\x20','trackPhaseEnd','message','version','stdout','113869opsabp','force','\x0a\x20\x20(opens\x20a\x20browser\x20so\x20you\x20can\x20log\x20in\x20once)','1.58.2','confirm','CDpqE','tWMto','skipped','sOMoQ','OKObF','warn','log','1AfnZGn','Installation\x20failed\x20with\x20exit\x20code\x20','GITHUB_ENV','vxFub','✓\x20Local\x20profile\x20already\x20exists','\x0a\x20\x20https://docs.ranger.net/main/concepts/profiles','12CHgHCP','\x20and\x20prompt\x20the\x20coding','ohVvz','✓\x20Skipping\x20authentication\x20(--skip-auth)','scope','lZfxM','env','trackPhaseStart','\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','You\x20can\x20install\x20it\x20manually\x20by\x20running:','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','\x0a❌\x20Failed\x20to\x20install\x20Chromium:','VUejm','✓\x20Already\x20authenticated\x20to\x20','aPluE','organizationName','RgYAh','close','\x0a\x20\x20','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','withDeps','789962aFqeFi','playwright@','project-scope\x20setup\x20obsolete).\x20Drop\x20the\x20--scope\x20flag\x20or\x20pass\x20--scope=user.','prompt','Setup\x20always\x20installs\x20at\x20user\x20scope\x20now\x20(cloud\x20profiles\x20make\x20','✓\x20Playwright\x20Chromium\x20browser\x20found','url','RYSYw','1685105GjwWAH','110NwVfiZ','skills','local','ranger\x20profile\x20add\x20<name>','allowInsecureLocalhost','OwZCh','\x0a⚠\x20Skipping\x20Chromium\x20installation.','playwright/package.json','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','KEedP','provided_token','zrhvo','stdin','\x20\x20npx\x20playwright@','4WRANYx','✓\x20Exported\x20credentials\x20for\x20CI','xCGbu','and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','\x20(fallback\x20version)','\x0aSkipping\x20profile\x20setup\x20(--skip-auth).\x20Run\x20`ranger\x20setup`\x20with\x20auth\x20to\x20add\x20a\x20profile\x20later.\x0a','user','714204YPzQsC','ZOPkY','✓\x20Created\x20.ranger/.gitignore','32HDFRDV','hmdXE','chromium','5313997DGKEfa','ranger','The\x20required\x20version\x20(','method','executablePath','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','success','zJoRf','inherit','✓\x20Authenticated\x20to\x20','ignore','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','\x20is\x20no\x20longer\x20supported.\x20','ready','xiEzF','268960comCgz','msdCH','138771SCqpNX','eRZht','error'];_0x3356=function(){return _0x453462;};return _0x3356();}import{createRequire}from'module';import{spawn}from'child_process';import _0xf7d27 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';function _0x27dc(_0x2b8fb5,_0x376f86){_0x2b8fb5=_0x2b8fb5-0x130;const _0x33566c=_0x3356();let _0x27dccc=_0x33566c[_0x2b8fb5];return _0x27dccc;}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=_0x2f3c02(0x156);const bold=_0xf2a9f7=>'\x1b[1m'+_0xf2a9f7+'\x1b[0m';export function getPlaywrightVersion(){const _0x22d716=_0x2f3c02,_0x14a6b0={'ZZUix':_0x22d716(0x18a),'ofWpS':function(_0x25b131,_0x3b4c10){return _0x25b131(_0x3b4c10);}};try{const _0x39102a=require['resolve'](_0x14a6b0[_0x22d716(0x148)]),_0x346435=_0x14a6b0['ofWpS'](require,_0x39102a);return _0x346435[_0x22d716(0x151)];}catch{return null;}}export function installChromiumBinary(_0x198651,_0x235c47=![]){const _0x321322=_0x2f3c02,_0x42c190={'afAjV':function(_0x3120a9,_0xc30a9e){return _0x3120a9===_0xc30a9e;},'sOMoQ':function(_0xf290f7){return _0xf290f7();},'fhssx':'--with-deps','GHAyj':'chromium','HLHFG':'npx','ZOPkY':'win32','jlhIy':_0x321322(0x176),'MJKnf':'error'};return new Promise((_0x449433,_0x290446)=>{const _0x1b2689=_0x321322,_0x42aefe={'zJoRf':function(_0x49e14c,_0x192ec5){return _0x42c190['afAjV'](_0x49e14c,_0x192ec5);},'cVnfh':function(_0x1ee3cd){const _0x53a57b=_0x27dc;return _0x42c190[_0x53a57b(0x15b)](_0x1ee3cd);}},_0x56f23c=[_0x1b2689(0x17b)+_0x198651,'install',..._0x235c47?[_0x42c190['fhssx']]:[],_0x42c190['GHAyj']],_0x2fa26d=spawn(_0x42c190['HLHFG'],_0x56f23c,{'stdio':[_0x1b2689(0x13d),_0x1b2689(0x13b),_0x1b2689(0x13b)],'shell':_0x42c190['afAjV'](process['platform'],_0x42c190[_0x1b2689(0x199)])});_0x2fa26d['on'](_0x42c190['jlhIy'],_0x19a41e=>{const _0x5618a4=_0x1b2689;_0x42aefe[_0x5618a4(0x13a)](_0x19a41e,0x0)?_0x42aefe['cVnfh'](_0x449433):_0x290446(new Error(_0x5618a4(0x160)+_0x19a41e));}),_0x2fa26d['on'](_0x42c190['MJKnf'],_0x445903=>{_0x290446(_0x445903);});});}export async function authenticate(_0x685b70){const _0x56186c=_0x2f3c02,_0x3f5e8f={'aPluE':function(_0x43a2bd){return _0x43a2bd();},'myyNK':'existing_token','POmdn':function(_0x1f6817,_0x2d7ae3){return _0x1f6817(_0x2d7ae3);},'GIUND':'device_auth','mYjhn':_0x56186c(0x192),'ImGHi':'✓\x20Stored\x20credentials\x20locally','Tedry':_0x56186c(0x18d)};if(!_0x685b70){const _0xe4d0bd=await _0x3f5e8f[_0x56186c(0x173)](getToken);if(_0xe4d0bd){const _0x520ad9=await getCurrentUser(_0xe4d0bd);if(_0x520ad9[_0x56186c(0x139)])return console['log'](_0x56186c(0x172)+_0x520ad9[_0x56186c(0x197)]['organizationName']),{'token':_0xe4d0bd,'method':_0x3f5e8f['myyNK']};}try{_0x685b70=await _0x3f5e8f[_0x56186c(0x173)](runDeviceAuthFlow);}catch(_0x252772){throw new Error('Authentication\x20failed:\x20'+(_0x252772 instanceof Error?_0x252772[_0x56186c(0x150)]:_0x252772));}const _0x12bda2=await _0x3f5e8f['POmdn'](getCurrentUser,_0x685b70);if(!_0x12bda2['success'])throw new Error(_0x56186c(0x18b)+_0x12bda2['error']);return console[_0x56186c(0x15e)](_0x56186c(0x13c)+_0x12bda2[_0x56186c(0x197)][_0x56186c(0x174)]),{'token':_0x685b70,'method':_0x3f5e8f['GIUND']};}console[_0x56186c(0x15e)]('Validating\x20API\x20token...');const _0x1f92fb=await getCurrentUser(_0x685b70);if(!_0x1f92fb[_0x56186c(0x139)]){if(_0x1f92fb['status'])throw new Error(_0x56186c(0x147)+_0x1f92fb['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x1f92fb['error']+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x56186c(0x15e)]('✓\x20Authenticated\x20to\x20'+_0x1f92fb[_0x56186c(0x197)]['organizationName']),await storeToken(_0x685b70),console[_0x56186c(0x15e)](process[_0x56186c(0x16b)][_0x56186c(0x161)]?_0x3f5e8f['mYjhn']:_0x3f5e8f['ImGHi']),{'token':_0x685b70,'method':_0x3f5e8f['Tedry']};}export async function ensureRangerDir(_0x3494f0){const _0x1ae690=_0x2f3c02,_0x48765f={'lZfxM':function(_0x5c02d1){return _0x5c02d1();},'jmKIa':'✓\x20~/.ranger/\x20directory\x20already\x20exists'};void _0x3494f0;const _0x3cd711=_0x48765f[_0x1ae690(0x16a)](getRangerHomeDir);return!existsSync(_0x3cd711)?(await mkdir(_0x3cd711,{'recursive':!![]}),console[_0x1ae690(0x15e)]('✓\x20Created\x20~/.ranger/\x20directory'),{'path':_0x3cd711,'installed':!![]}):(console['log'](_0x48765f['jmKIa']),{'path':_0x3cd711,'installed':![]});}export async function ensureChromium(_0xfd233d=![]){const _0x1d1bc3=_0x2f3c02,_0x28c384={'aWTlg':_0x1d1bc3(0x157),'hmdXE':_0x1d1bc3(0x195),'XcnMC':'\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','MgBcb':function(_0x185428,_0x49a030){return _0x185428 instanceof _0x49a030;},'KEedP':_0x1d1bc3(0x189),'hpRlf':'You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'};let _0x1c4eaf=![];try{const _0x4e2485=chromium[_0x1d1bc3(0x137)]();_0x1c4eaf=existsSync(_0x4e2485);}catch{_0x1c4eaf=![];}if(_0x1c4eaf)return console[_0x1d1bc3(0x15e)](_0x1d1bc3(0x17f)),![];const _0x49b7fb=getPlaywrightVersion(),_0x23cb36=_0x49b7fb??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0x3f763e=!_0x49b7fb,_0x486e30=process[_0x1d1bc3(0x18f)][_0x1d1bc3(0x14a)]&&process[_0x1d1bc3(0x152)]['isTTY'];let _0x585e74=!![];if(_0x486e30){const {install:_0x1a064f}=await _0xf7d27[_0x1d1bc3(0x17d)]([{'type':_0x28c384['aWTlg'],'name':'install','message':_0x3f763e?_0x1d1bc3(0x138)+_0x23cb36+'\x20now?':_0x1d1bc3(0x135)+_0x23cb36+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x585e74=_0x1a064f;}else console['log'](_0x1d1bc3(0x13e)+_0x23cb36+(_0x3f763e?_0x28c384[_0x1d1bc3(0x131)]:'')+'...');if(_0x585e74){console['log']('\x0aInstalling\x20Chromium\x20browser...\x0a');try{await installChromiumBinary(_0x23cb36,_0xfd233d),console[_0x1d1bc3(0x15e)](_0x28c384['XcnMC']);}catch(_0x2f251a){console['error'](_0x1d1bc3(0x170),_0x28c384['MgBcb'](_0x2f251a,Error)?_0x2f251a['message']:_0x2f251a),console[_0x1d1bc3(0x15e)](_0x1d1bc3(0x16e)),console[_0x1d1bc3(0x15e)](_0x1d1bc3(0x190)+_0x23cb36+_0x1d1bc3(0x14b));}}else console['log'](_0x28c384[_0x1d1bc3(0x18c)]),console[_0x1d1bc3(0x15e)](_0x28c384['hpRlf']),console['log']('\x20\x20npx\x20playwright@'+_0x23cb36+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x520787){const _0x51f897=_0x2f3c02,_0x23634a={'eRZht':function(_0x427187,_0x4d1320,_0x515177){return _0x427187(_0x4d1320,_0x515177);},'VUejm':_0x51f897(0x19a)},_0x103c22=join(_0x520787,'.gitignore'),_0x5d7d54=_0x51f897(0x16d);await _0x23634a[_0x51f897(0x145)](writeFile,_0x103c22,_0x5d7d54),console[_0x51f897(0x15e)](_0x23634a[_0x51f897(0x171)]);}export async function ensureLocalEnv(_0x46e017,_0x4243ac){const _0x46d67b=_0x2f3c02,_0x404d51={'FPhns':function(_0x4bf559){return _0x4bf559();},'zEugL':function(_0x2ff81f,_0x33b263){return _0x2ff81f===_0x33b263;},'CDpqE':_0x46d67b(0x185),'XOYkc':function(_0x5555f7,_0x27272a,_0x36234a,_0x36fcff){return _0x5555f7(_0x27272a,_0x36234a,_0x36fcff);},'OwZCh':'\x0a❌\x20Profile\x20setup\x20failed:'};if(!_0x404d51['FPhns'](findGitRoot)&&_0x46e017?.['scope']!=='user')return console['log']('⚠\x20No\x20git\x20repository\x20found.\x20Re-run\x20with\x20`--scope\x20user`\x20to\x20store\x20the\x20profile\x20at\x20~/.ranger/.'),{'ready':![],'skipped':!![]};const _0x3f05c9=_0x404d51['zEugL'](_0x46e017?.['scope'],'user')?getRangerHomeDir():undefined;if(findExistingEnv(_0x404d51[_0x46d67b(0x158)],{'locations':[_0x404d51['CDpqE']],'rangerDir':_0x3f05c9}))return console[_0x46d67b(0x15e)](_0x46d67b(0x163)),{'ready':!![],'skipped':![]};try{return await _0x404d51['XOYkc'](addEnv,_0x404d51['CDpqE'],{'url':_0x46e017?.[_0x46d67b(0x180)],'force':_0x46e017?.['force'],'allowInsecureLocalhost':_0x46e017?.['allowInsecureLocalhost'],'scope':_0x46e017?.[_0x46d67b(0x169)]},_0x4243ac),{'ready':!![],'skipped':![]};}catch(_0x3ef5cc){return console[_0x46d67b(0x146)](_0x404d51[_0x46d67b(0x188)],_0x3ef5cc instanceof Error?_0x3ef5cc[_0x46d67b(0x150)]:_0x3ef5cc),{'ready':![],'skipped':![]};}}export async function start(_0x2ec5b0,_0x3e4398,_0x57d510){const _0x303faf=_0x2f3c02,_0x30d6b1={'RgYAh':'\x0a🚀\x20Ranger\x20Setup\x0a','bVcfE':function(_0x574898,_0x2b0948){return _0x574898!==_0x2b0948;},'zrhvo':_0x303faf(0x197),'RYSYw':function(_0x1f1c7b,_0x514578){return _0x1f1c7b(_0x514578);},'ohVvz':_0x303faf(0x168),'tWMto':'auth','OcQYe':function(_0x4faa0b,_0x273a57){return _0x4faa0b(_0x273a57);},'bDarl':_0x303faf(0x132),'xiEzF':'plugin','xCGbu':function(_0x3ec4c5,_0x4519b8){return _0x3ec4c5&&_0x4519b8;},'JtrwJ':function(_0x47a16e,_0x18d809,_0x3e14ca){return _0x47a16e(_0x18d809,_0x3e14ca);},'vxFub':_0x303faf(0x134),'EwprS':function(_0x57bffa){return _0x57bffa();},'iVqzp':_0x303faf(0x184),'luoPC':function(_0x5d6c32,_0x5c850c){return _0x5d6c32(_0x5c850c);},'msdCH':'profile','OKObF':function(_0x177fc3,_0x2aeb33,_0x35f548){return _0x177fc3(_0x2aeb33,_0x35f548);},'LOKqp':function(_0x2d9eae,_0x3df7e4){return _0x2d9eae+_0x3df7e4;},'MRbCc':_0x303faf(0x178),'AwEMh':'with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','Aqgdz':function(_0x5f48b7,_0x5b30c9){return _0x5f48b7+_0x5b30c9;}};console[_0x303faf(0x15e)](_0x30d6b1[_0x303faf(0x175)]);_0x30d6b1['bVcfE'](_0x3e4398?.['scope'],undefined)&&_0x3e4398['scope']!==_0x303faf(0x197)&&(console[_0x303faf(0x146)]('ranger\x20setup\x20--scope='+String(_0x3e4398[_0x303faf(0x169)])+_0x303faf(0x13f)+_0x303faf(0x17e)+_0x303faf(0x17c)),process[_0x303faf(0x14d)](0x1));_0x3e4398={..._0x3e4398,'scope':_0x30d6b1[_0x303faf(0x18e)]};const _0x50abbf=!_0x30d6b1[_0x303faf(0x181)](existsSync,getRangerHomeDir());await ensureRangerDir(_0x30d6b1['zrhvo']);if(_0x3e4398?.['skipAuth'])console['log'](_0x30d6b1[_0x303faf(0x167)]),_0x57d510?.[_0x303faf(0x14f)]('auth',{'isFirstRun':_0x50abbf,'method':'skipped'});else{_0x57d510?.['trackPhaseStart'](_0x30d6b1[_0x303faf(0x159)]);const _0x1933fd=await _0x30d6b1['OcQYe'](authenticate,_0x2ec5b0);_0x57d510?.[_0x303faf(0x14f)]('auth',{'isFirstRun':_0x50abbf,'method':_0x1933fd[_0x303faf(0x136)]});}_0x57d510?.[_0x303faf(0x16c)](_0x30d6b1['bDarl']);_0x3e4398?.['skipChromium']?console[_0x303faf(0x15e)]('✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)'):await _0x30d6b1['OcQYe'](ensureChromium,_0x3e4398?.[_0x303faf(0x179)]);_0x57d510?.[_0x303faf(0x14f)](_0x303faf(0x132),{'isFirstRun':_0x50abbf,'skipped':!!_0x3e4398?.['skipChromium']}),console[_0x303faf(0x15e)]('\x0a✅\x20Ranger\x20setup\x20complete!\x0a');const _0x1000ac=_0x3e4398?.['scope'],_0x1c4dfb=_0x3e4398?.[_0x303faf(0x149)]??![];let _0x525f4a=null;_0x1c4dfb?(_0x57d510?.['trackPhaseStart'](_0x30d6b1[_0x303faf(0x141)]),_0x525f4a=await _0x30d6b1['OcQYe'](ensureOpencodePluginConfig,_0x1000ac),_0x57d510?.[_0x303faf(0x14f)](_0x30d6b1['xiEzF'],{'isFirstRun':_0x50abbf,'opencode':!![]})):(_0x57d510?.[_0x303faf(0x16c)]('plugin'),await _0x30d6b1['OcQYe'](ensureClaudePlugin,_0x1000ac),_0x57d510?.[_0x303faf(0x14f)](_0x30d6b1['xiEzF'],{'isFirstRun':_0x50abbf}));if(_0x30d6b1[_0x303faf(0x193)](_0x1c4dfb,_0x525f4a)){_0x57d510?.[_0x303faf(0x16c)](_0x303faf(0x184));try{await _0x30d6b1['JtrwJ'](installSkill,_0x30d6b1[_0x303faf(0x162)],{'level':_0x525f4a['scope'],'cliVersion':_0x30d6b1['EwprS'](getCurrentVersion),'platform':_0x303faf(0x149)}),_0x57d510?.['trackPhaseEnd'](_0x30d6b1['iVqzp'],{'isFirstRun':_0x50abbf,'opencode':!![]});}catch(_0x147ec3){console[_0x303faf(0x15d)]('\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:',_0x147ec3 instanceof Error?_0x147ec3[_0x303faf(0x150)]:_0x147ec3),_0x57d510?.['trackPhaseEnd']('skills',{'isFirstRun':_0x50abbf,'opencode':!![],'failed':!![]});}}else _0x57d510?.[_0x303faf(0x16c)]('skills'),await _0x30d6b1['luoPC'](ensureClaudeSkills,_0x1000ac),_0x57d510?.['trackPhaseEnd'](_0x303faf(0x184),{'isFirstRun':_0x50abbf});if(_0x3e4398?.['skipAuth'])console[_0x303faf(0x15e)](_0x303faf(0x196));else{if(_0x3e4398?.['url']){_0x57d510?.[_0x303faf(0x16c)](_0x30d6b1[_0x303faf(0x143)]);const _0xbd15ba=await _0x30d6b1[_0x303faf(0x15c)](ensureLocalEnv,{'url':_0x3e4398['url'],'force':_0x3e4398?.[_0x303faf(0x154)],'allowInsecureLocalhost':_0x3e4398?.[_0x303faf(0x187)],'scope':_0x30d6b1[_0x303faf(0x18e)]},_0x57d510);_0x57d510?.[_0x303faf(0x14f)]('profile',{'isFirstRun':_0x50abbf,'profileReady':_0xbd15ba[_0x303faf(0x140)],'userSkipped':_0xbd15ba[_0x303faf(0x15a)]});}else console[_0x303faf(0x15e)](_0x30d6b1['LOKqp']('\x0aTo\x20set\x20up\x20a\x20profile\x20for\x20your\x20app,\x20run:'+(_0x303faf(0x177)+bold(_0x303faf(0x186)))+_0x303faf(0x155),'\x0a\x0aFor\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:')+_0x303faf(0x164));}if(_0x1c4dfb)console[_0x303faf(0x15e)](_0x30d6b1['MRbCc']),console[_0x303faf(0x15e)](_0x303faf(0x194)),console[_0x303faf(0x15e)](_0x30d6b1['AwEMh']),console['log']('verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');else{const _0x3c8151=_0x30d6b1[_0x303faf(0x181)](bold,'/ranger:enable');console[_0x303faf(0x15e)](_0x30d6b1['Aqgdz'](_0x30d6b1['Aqgdz'](_0x303faf(0x14e)+_0x3c8151+_0x303faf(0x166),'\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with'),'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser')+_0x303faf(0x16f));}}
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 _0x3921db=_0x4c60;(function(_0x107dfe,_0x35795a){const _0x538da0=_0x4c60,_0xb217da=_0x107dfe();while(!![]){try{const _0x5f5bae=parseInt(_0x538da0(0x227))/0x1*(parseInt(_0x538da0(0x21c))/0x2)+-parseInt(_0x538da0(0x20c))/0x3+-parseInt(_0x538da0(0x22b))/0x4*(-parseInt(_0x538da0(0x23c))/0x5)+-parseInt(_0x538da0(0x1de))/0x6+-parseInt(_0x538da0(0x23d))/0x7*(-parseInt(_0x538da0(0x1e7))/0x8)+parseInt(_0x538da0(0x20b))/0x9*(-parseInt(_0x538da0(0x236))/0xa)+parseInt(_0x538da0(0x1f1))/0xb;if(_0x5f5bae===_0x35795a)break;else _0xb217da['push'](_0xb217da['shift']());}catch(_0x3ec75b){_0xb217da['push'](_0xb217da['shift']());}}}(_0x2d83,0xd046c));import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';import{getCurrentVersion,getLatestVersion}from'./utils/version.js';import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';function _0x4c60(_0x2bd818,_0x530a9b){_0x2bd818=_0x2bd818-0x1d5;const _0x2d83ff=_0x2d83();let _0x4c605a=_0x2d83ff[_0x2bd818];return _0x4c605a;}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=_0x3fcc4a=>_0x3921db(0x1dc)+_0x3fcc4a+_0x3921db(0x238),link=(_0x450904,_0x97a9fa)=>'\x1b]8;;file://'+_0x450904+'\x07'+(_0x97a9fa||_0x450904)+_0x3921db(0x248);function _0x2d83(){const _0x3197f9=['API\x20Environment:\x20','details','19544oQhTfz','UZgju','disabled','push','Root:\x20','SnpuS','organizationName','UdKYN','ranger@trailhead','\x20[local]','4768467DThsVN','stdout','scope','name','HByie','configured','yizYw','hCGSe','aqPAn','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','filter','settings.json','no\x20session','none','version','(not\x20found)','GDLgW','data','log','bqdFV','bulwc','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20','unknown','Organization:\x20','error','CseLz','11871xJaYoj','1575138bYTFXZ','bhoDS','\x20\x20Run:\x20ranger\x20skillup','env','isDirectory','includes','\x0a\x20\x20No\x20active\x20profile\x20set','FPzAZ','WotlD','\x20(active)','toString','auth.json','sXEeT','MqEsq','isActive','GSLGD','6pjxNgb','CaupT','\x20\x20\x20\x20Session:\x20','kldDd','WoMyi','GaNLi','ejMgz','displayName','status','bEkbD','isArray','41147UieKos','success','\x20\x20\x20\x20','\x20\x20User-level:','4783820qPbaYx','not_configured','ZxpHe','ePavf','\x20plugin(s)\x20configured','dSjdJ','yuOdF','API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired','API\x20Token:\x20✗\x20Not\x20found','vckbN','mWqwM','12120wHkUiO','dVbRv','\x1b[0m','\x20\x20Run:\x20ranger\x20setup\x20[token]','CMSAD','No\x20profiles\x20configured','5EweVGn','4648pGIuUa','has','opencode-plugin','\x20\x20Not\x20installed','plugin','user','path','API\x20URL:\x20','\x20cloud','debug','AJuRw','\x1b]8;;\x07','hasPlaintextAuth','\x20\x20Project-level:','some','join','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','sessionUpdatedAt','vNcQE','\x20\x20Run:\x20ranger\x20update','\x0a---\x20OpenCode\x20Plugin\x20---','\x20profiles\x20configured\x20(','zykIK','YHnRh','DEBUG','map','\x1b[1m','No\x20skills\x20installed','2389626AioikE','length','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','\x20local','not_installed','hasEncryptedAuth','aUZnC'];_0x2d83=function(){return _0x3197f9;};return _0x2d83();}async function getOpencodePluginStatus(){const _0x5f0a98=_0x3921db,_0x28f0dd={'rKDjL':'string','Uhhmh':function(_0x23ea1e,_0x31290d,_0x38c173,_0x29be17){return _0x23ea1e(_0x31290d,_0x38c173,_0x29be17);},'GDLgW':'opencode','ePavf':'config','PpZvy':'ignore','UZgju':'pipe','QahDm':_0x5f0a98(0x202),'MqEsq':_0x5f0a98(0x209)};return new Promise(_0x54af18=>{const _0x2f5a64=_0x5f0a98,_0x38ff1e={'GSLGD':function(_0x3a22fa,_0x4aabeb){return _0x3a22fa!==_0x4aabeb;},'YHnRh':_0x28f0dd['rKDjL'],'ZxpHe':function(_0x1793aa,_0x49e5a0){return _0x1793aa(_0x49e5a0);},'UdKYN':_0x2f5a64(0x1e2),'hjUDl':function(_0x238b65,_0x4ce181){return _0x238b65(_0x4ce181);},'ouqiG':_0x2f5a64(0x22c)},_0xa151b8=_0x28f0dd['Uhhmh'](spawn,_0x28f0dd[_0x2f5a64(0x201)],[_0x2f5a64(0x246),_0x28f0dd[_0x2f5a64(0x22e)]],{'stdio':[_0x28f0dd['PpZvy'],_0x28f0dd[_0x2f5a64(0x1e8)],'pipe']});let _0x43e490='';_0xa151b8[_0x2f5a64(0x1f2)]?.['on'](_0x28f0dd['QahDm'],_0x5d2057=>{const _0x4faac3=_0x2f5a64;_0x43e490+=_0x5d2057[_0x4faac3(0x216)]();}),_0xa151b8['stderr']?.['on'](_0x28f0dd['QahDm'],_0x3b335d=>{_0x43e490+=_0x3b335d['toString']();}),_0xa151b8['on'](_0x28f0dd[_0x2f5a64(0x219)],()=>{_0x54af18({'status':'not_installed'});}),_0xa151b8['on']('close',_0x277673=>{const _0x190bab=_0x2f5a64;if(_0x277673!==0x0){_0x38ff1e[_0x190bab(0x22d)](_0x54af18,{'status':_0x38ff1e[_0x190bab(0x1ee)]});return;}const _0x2ef133=_0x43e490['trim']();let _0x5790ae=null;if(_0x2ef133)try{_0x5790ae=JSON['parse'](_0x2ef133);}catch{const _0x315d13=_0x2ef133['match'](/\{[\s\S]*\}$/);if(_0x315d13)try{_0x5790ae=JSON['parse'](_0x315d13[0x0]);}catch{_0x5790ae=null;}}const _0x2b3d12=Array[_0x190bab(0x226)](_0x5790ae?.[_0x190bab(0x241)])?_0x5790ae?.[_0x190bab(0x241)]:[],_0x240a77=_0x2b3d12[_0x190bab(0x24b)](_0x34b87f=>{const _0x32c014=_0x190bab;if(_0x38ff1e[_0x32c014(0x21b)](typeof _0x34b87f,_0x38ff1e[_0x32c014(0x1d9)]))return![];return _0x34b87f['includes']('@ranger-testing/opencode-plugin')||_0x34b87f['includes'](_0x32c014(0x23f));});if(_0x240a77){_0x38ff1e['ZxpHe'](_0x54af18,{'status':_0x190bab(0x1f6),'details':_0x2b3d12[_0x190bab(0x1df)]>0x0?_0x2b3d12[_0x190bab(0x1df)]+_0x190bab(0x22f):undefined});return;}if(_0x2b3d12['length']>0x0){_0x38ff1e['hjUDl'](_0x54af18,{'status':_0x38ff1e['ouqiG'],'details':_0x2b3d12['length']+'\x20plugin(s)\x20configured'});return;}_0x38ff1e['hjUDl'](_0x54af18,{'status':'not_configured'});});});}async function getSkillsFromDir(_0x16d9e6,_0x516005){const _0x28a2d9=_0x3921db,_0x5439d8={'hoUgS':function(_0x1a1b22,_0x542075,_0x3d8b7c,_0x113e06){return _0x1a1b22(_0x542075,_0x3d8b7c,_0x113e06);},'dSjdJ':function(_0x1d16d4,_0x517c5a,_0x23562f){return _0x1d16d4(_0x517c5a,_0x23562f);}};if(!existsSync(_0x16d9e6))return[];const _0x254591=[];try{const _0xd2c5aa=await readdir(_0x16d9e6,{'withFileTypes':!![]});for(const _0x11eb7f of _0xd2c5aa){if(_0x11eb7f[_0x28a2d9(0x210)]()){const _0x5907ec=_0x5439d8['hoUgS'](join,_0x16d9e6,_0x11eb7f['name'],'SKILL.md');if(existsSync(_0x5907ec)){let _0x130bb7=_0x11eb7f[_0x28a2d9(0x1f4)];try{const _0xa801d4=await _0x5439d8[_0x28a2d9(0x230)](readFile,_0x5907ec,'utf-8'),_0x546873=_0xa801d4['match'](/name:\s*(.+)/);_0x546873&&(_0x130bb7=_0x546873[0x1]['trim']());}catch{}_0x254591[_0x28a2d9(0x1ea)]({'name':_0x11eb7f[_0x28a2d9(0x1f4)],'displayName':_0x130bb7,'path':_0x5907ec,'level':_0x516005});}}}}catch{return[];}return _0x254591;}async function getInstalledSkills(){const _0x1c2c0d=_0x3921db,_0x369084={'yuOdF':function(_0x57507f,_0x246aef,_0x58e95b){return _0x57507f(_0x246aef,_0x58e95b);},'RRoJh':function(_0x283c79){return _0x283c79();},'aUZnC':_0x1c2c0d(0x242)},[_0x571a29,_0x458ddb]=await Promise['all']([_0x369084[_0x1c2c0d(0x231)](getSkillsFromDir,_0x369084['RRoJh'](getProjectSkillsDir),'project'),_0x369084[_0x1c2c0d(0x231)](getSkillsFromDir,getUserSkillsDir(),_0x369084[_0x1c2c0d(0x1e4)])]);return{'project':_0x571a29,'user':_0x458ddb};}async function getEnvironments(){const _0x16ab3b=_0x3921db,_0x1e4074={'CseLz':function(_0x501ea4,_0x52d503){return _0x501ea4(_0x52d503);},'Zscmj':function(_0x20c2d9,_0x21007c,_0x4b6cf7){return _0x20c2d9(_0x21007c,_0x4b6cf7);},'isHEh':_0x16ab3b(0x1fc),'vckbN':function(_0x1efa0a,_0x36dc06,_0x11d2d2){return _0x1efa0a(_0x36dc06,_0x11d2d2);},'TmQan':function(_0x51b03a,_0x4024ed,_0x4da9e7){return _0x51b03a(_0x4024ed,_0x4da9e7);},'sXMRl':_0x16ab3b(0x200),'zykIK':function(_0x547a06,_0x5cef80){return _0x547a06(_0x5cef80);},'AJuRw':function(_0x2d7a16,_0x3edf8c){return _0x2d7a16===_0x3edf8c;},'CMSAD':function(_0x3ec811){return _0x3ec811();}},{envNames:_0x2320bb,activeEnv:_0x190532}=await getEnvNames(),_0xe7d4e3=_0x1e4074[_0x16ab3b(0x23a)](getRangerDir);if(!_0x1e4074['CseLz'](existsSync,_0xe7d4e3))return{'envs':[],'activeEnv':null};const _0x3fc242=_0x2320bb[_0x16ab3b(0x1db)](_0x98a6d3=>{const _0x3b7c69=_0x16ab3b,_0x1a11f1=_0x1e4074[_0x3b7c69(0x20a)](getEnvDir,_0x98a6d3),_0x59b7af=_0x1e4074['Zscmj'](join,_0x1a11f1,_0x1e4074['isHEh']),_0x273cf1=_0x1e4074[_0x3b7c69(0x234)](join,_0x1a11f1,_0x3b7c69(0x217)),_0x16bc59=_0x1e4074['TmQan'](join,_0x1a11f1,'auth.json.enc');return{'name':_0x98a6d3,'settingsPath':_0x1e4074['CseLz'](existsSync,_0x59b7af)?_0x59b7af:_0x1e4074['sXMRl'],'hasPlaintextAuth':existsSync(_0x273cf1),'hasEncryptedAuth':_0x1e4074[_0x3b7c69(0x1d8)](existsSync,_0x16bc59),'isActive':_0x1e4074[_0x3b7c69(0x247)](_0x98a6d3,_0x190532)};});return{'envs':_0x3fc242,'activeEnv':_0x190532};}export async function status(){const _0x374b92=_0x3921db,_0x3196de={'bEkbD':'\x0a📊\x20Ranger\x20Status\x0a','dVbRv':function(_0x1f6f0a,_0x3733c7){return _0x1f6f0a(_0x3733c7);},'GaNLi':function(_0x2ed6bf,_0x29ae1d,_0x41809c){return _0x2ed6bf(_0x29ae1d,_0x41809c);},'gIMhb':function(_0x5ccefe,_0x5326d8){return _0x5ccefe(_0x5326d8);},'hCGSe':function(_0x1c11e1,_0x401cf6){return _0x1c11e1(_0x401cf6);},'jktVn':function(_0x4ff89b){return _0x4ff89b();},'PLpDp':function(_0x44897d){return _0x44897d();},'FPzAZ':function(_0x2c1ae3){return _0x2c1ae3();},'oZfhI':function(_0x33d92b,_0x3e1300){return _0x33d92b(_0x3e1300);},'WotlD':function(_0x378f01){return _0x378f01();},'CaupT':function(_0x1e95d3){return _0x1e95d3();},'BSZmw':_0x374b92(0x1d6),'WoMyi':function(_0x57aca,_0x5eceab){return _0x57aca===_0x5eceab;},'kldDd':'configured','sXEeT':'@ranger-testing/opencode-plugin','EPlos':'\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','TpZsL':_0x374b92(0x207),'GbLJt':'enabled','bulwc':'ranger@trailhead','yizYw':_0x374b92(0x240),'bhoDS':function(_0x2448b0,_0xe94796){return _0x2448b0>_0xe94796;},'yZSBH':_0x374b92(0x24a),'aqPAn':_0x374b92(0x22a),'jpgls':function(_0x2ec58a,_0x5e4eea,_0xa00d05){return _0x2ec58a(_0x5e4eea,_0xa00d05);},'CufAs':function(_0x3d0945,_0x3d4d94){return _0x3d0945(_0x3d4d94);},'SnpuS':function(_0x14e701){return _0x14e701();},'bMzDP':function(_0x565ef8,_0x5372d3){return _0x565ef8+_0x5372d3;},'mWqwM':function(_0x18284a,_0x2766ac){return _0x18284a===_0x2766ac;},'bqdFV':function(_0x41288d,_0x27bde0){return _0x41288d>_0x27bde0;},'HByie':function(_0x11781a,_0x52e860){return _0x11781a>_0x52e860;},'qdLRs':function(_0x4570a9,_0x40baf8){return _0x4570a9(_0x40baf8);},'ejMgz':_0x374b92(0x215),'vNcQE':_0x374b92(0x1fd),'rutFK':'encrypted','kIkjB':_0x374b92(0x1fe)};console[_0x374b92(0x203)](_0x3196de[_0x374b92(0x225)]);const _0x5b6f98=process['cwd'](),_0x5bd9ce=getRangerDir();if(!_0x3196de['dVbRv'](existsSync,_0x5bd9ce)){console[_0x374b92(0x203)](_0x374b92(0x1eb)+_0x3196de['GaNLi'](link,_0x5b6f98,_0x3196de['dVbRv'](bold,basename(_0x5b6f98)))),console['log']('\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.'),console['log'](_0x374b92(0x1e0));return;}console[_0x374b92(0x203)](_0x374b92(0x1eb)+_0x3196de[_0x374b92(0x221)](link,_0x5b6f98,_0x3196de['gIMhb'](bold,_0x3196de[_0x374b92(0x1f8)](basename,_0x5b6f98))));const _0x3d3883=_0x3196de['jktVn'](getCurrentVersion),_0x351423=_0x3196de['PLpDp'](getLatestVersion);if(_0x351423['version']&&_0x351423[_0x374b92(0x1ff)]!==_0x3d3883)console[_0x374b92(0x203)]('Version:\x20'+_0x3d3883+'\x20(latest:\x20'+_0x351423['version']+')'),console['log'](_0x374b92(0x1d5));else _0x351423[_0x374b92(0x1ff)]?console['log']('Version:\x20'+_0x3d3883+'\x20(up\x20to\x20date)'):console[_0x374b92(0x203)]('Version:\x20'+_0x3d3883);const _0x3e1219=await _0x3196de[_0x374b92(0x213)](getToken);if(_0x3e1219){const _0x16b28b=await _0x3196de['oZfhI'](getCurrentUser,_0x3e1219);_0x16b28b[_0x374b92(0x228)]?console['log'](_0x374b92(0x208)+_0x3196de[_0x374b92(0x1f8)](bold,_0x16b28b['user'][_0x374b92(0x1ed)])):(console['log'](_0x374b92(0x232)),console[_0x374b92(0x203)](_0x374b92(0x239)));}else console[_0x374b92(0x203)](_0x374b92(0x233)),console[_0x374b92(0x203)]('\x20\x20Run:\x20ranger\x20setup\x20[token]');process[_0x374b92(0x20f)][_0x374b92(0x1da)]&&(console['log'](_0x374b92(0x1e5)+_0x3196de[_0x374b92(0x214)](getCurrentEnvironment)),console['log'](_0x374b92(0x244)+_0x3196de[_0x374b92(0x21d)](getApiBaseUrl)));console[_0x374b92(0x203)](_0x3196de['BSZmw']);const _0xb80109=await getOpencodePluginStatus();if(_0x3196de[_0x374b92(0x220)](_0xb80109['status'],_0x3196de[_0x374b92(0x21f)]))console[_0x374b92(0x203)]('\x20\x20'+bold(_0x3196de[_0x374b92(0x218)])+':\x20configured'),_0xb80109[_0x374b92(0x1e6)]&&console[_0x374b92(0x203)]('\x20\x20'+_0xb80109['details']);else _0xb80109[_0x374b92(0x224)]==='not_configured'?(console['log']('\x20\x20Not\x20configured'),_0xb80109['details']&&console[_0x374b92(0x203)]('\x20\x20'+_0xb80109['details']),console[_0x374b92(0x203)]('\x20\x20Run:\x20ranger\x20setup\x20--opencode')):console[_0x374b92(0x203)](_0x3196de['EPlos']);console[_0x374b92(0x203)]('\x0a---\x20Claude\x20Code\x20Plugin\x20---');const _0x58c0ea=await getPluginInfo(_0x374b92(0x1ef));if(_0x58c0ea){const _0x2659f4=_0x58c0ea[_0x374b92(0x1f3)]||_0x3196de['TpZsL'],_0x3a88e5=_0x58c0ea['enabled']?_0x3196de['GbLJt']:_0x374b92(0x1e9);console['log']('\x20\x20'+_0x3196de['hCGSe'](bold,_0x3196de[_0x374b92(0x205)])+':\x20installed\x20('+_0x2659f4+',\x20'+_0x3a88e5+')');}else console['log'](_0x3196de[_0x374b92(0x1f7)]),console[_0x374b92(0x203)](_0x374b92(0x24d));console['log']('\x0a---\x20Skills\x20---');const {project:_0x2fb3ca,user:_0x286ba4}=await _0x3196de['CaupT'](getInstalledSkills),_0x143d73=_0x2fb3ca['filter'](_0x136558=>RANGER_MANAGED_SKILLS[_0x374b92(0x211)](_0x136558['name'])),_0x2aa5b=_0x286ba4[_0x374b92(0x1fb)](_0x3cd494=>RANGER_MANAGED_SKILLS['includes'](_0x3cd494[_0x374b92(0x1f4)])),_0x2f9da4=_0x143d73['length']+_0x2aa5b['length'];if(_0x2f9da4===0x0)console['log'](_0x374b92(0x1dd)),console['log'](_0x374b92(0x20e));else{if(_0x3196de[_0x374b92(0x20d)](_0x143d73[_0x374b92(0x1df)],0x0)){console['log'](_0x3196de['yZSBH']);for(const _0x4c3d99 of _0x143d73){console[_0x374b92(0x203)]('\x20\x20\x20\x20'+bold(_0x4c3d99[_0x374b92(0x223)])+':\x20'+link(_0x4c3d99[_0x374b92(0x243)],_0x3196de['oZfhI'](basename,_0x4c3d99[_0x374b92(0x243)])));}}if(_0x2aa5b['length']>0x0){console['log'](_0x3196de[_0x374b92(0x1f9)]);for(const _0xa7d7b3 of _0x2aa5b){console[_0x374b92(0x203)](_0x374b92(0x229)+_0x3196de[_0x374b92(0x237)](bold,_0xa7d7b3[_0x374b92(0x223)])+':\x20'+_0x3196de['jpgls'](link,_0xa7d7b3[_0x374b92(0x243)],_0x3196de['CufAs'](basename,_0xa7d7b3[_0x374b92(0x243)])));}}}console[_0x374b92(0x203)]('\x0a---\x20Profiles\x20---');const {envs:_0x3ced86,activeEnv:_0x548a17}=await getEnvironments();let _0x4db6f4=[];if(_0x3e1219)try{_0x4db6f4=await _0x3196de[_0x374b92(0x1ec)](listCloudProfiles);}catch{}const _0x254811=_0x3196de['bMzDP'](_0x3ced86['length'],_0x4db6f4['length']);if(_0x3196de[_0x374b92(0x235)](_0x254811,0x0))console[_0x374b92(0x203)](_0x374b92(0x23b)),console[_0x374b92(0x203)](_0x374b92(0x1fa));else{if(_0x3196de[_0x374b92(0x204)](_0x254811,0x5)){const _0x353bdd=[];_0x3196de[_0x374b92(0x1f5)](_0x4db6f4['length'],0x0)&&_0x353bdd[_0x374b92(0x1ea)](_0x4db6f4[_0x374b92(0x1df)]+_0x374b92(0x245)),_0x3196de['HByie'](_0x3ced86[_0x374b92(0x1df)],0x0)&&_0x353bdd['push'](_0x3ced86[_0x374b92(0x1df)]+_0x374b92(0x1e1)),console['log'](_0x254811+_0x374b92(0x1d7)+_0x353bdd['join'](',\x20')+')'),_0x548a17&&console[_0x374b92(0x203)]('\x20\x20Active:\x20'+_0x3196de['qdLRs'](bold,_0x548a17)),console[_0x374b92(0x203)]('\x20\x20Run:\x20ranger\x20profile\x20ls\x20\x20(list\x20all)');}else{for(const _0x426412 of _0x4db6f4){const _0x2b6dc7=_0x426412[_0x374b92(0x1f4)]===_0x548a17?_0x3196de[_0x374b92(0x222)]:'';console[_0x374b92(0x203)]('\x20\x20'+bold(_0x426412[_0x374b92(0x1f4)])+'\x20[cloud]'+_0x2b6dc7);const _0xf16729=_0x426412['sessionUpdatedAt']?'cached\x20(updated\x20'+_0x426412[_0x374b92(0x24e)]+')':_0x3196de[_0x374b92(0x24f)];console[_0x374b92(0x203)](_0x374b92(0x21e)+_0xf16729);}const _0x45e7da=new Set(_0x4db6f4[_0x374b92(0x1db)](_0x47e938=>_0x47e938[_0x374b92(0x1f4)]));for(const _0x39f8c0 of _0x3ced86){if(_0x45e7da[_0x374b92(0x23e)](_0x39f8c0[_0x374b92(0x1f4)]))continue;const _0x54457a=_0x39f8c0[_0x374b92(0x21a)]?_0x3196de[_0x374b92(0x222)]:'',_0x32b428=_0x39f8c0[_0x374b92(0x1e3)]?_0x3196de['rutFK']:_0x39f8c0[_0x374b92(0x249)]?'plaintext':_0x3196de['kIkjB'];console['log']('\x20\x20'+bold(_0x39f8c0[_0x374b92(0x1f4)])+_0x374b92(0x1f0)+_0x54457a),console['log']('\x20\x20\x20\x20Auth:\x20'+_0x32b428),_0x39f8c0['settingsPath']!==_0x374b92(0x200)&&console[_0x374b92(0x203)]('\x20\x20\x20\x20Settings:\x20'+link(_0x39f8c0['settingsPath'],basename(_0x39f8c0['settingsPath'])));}if(!_0x548a17){console[_0x374b92(0x203)](_0x374b92(0x212));const _0x36257b=[..._0x4db6f4['map'](_0x1fecd1=>_0x1fecd1['name']),..._0x3ced86['filter'](_0x382a3f=>!_0x45e7da['has'](_0x382a3f[_0x374b92(0x1f4)]))[_0x374b92(0x1db)](_0x36937f=>_0x36937f['name'])];console['log'](_0x374b92(0x206)+_0x36257b[_0x374b92(0x24c)](',\x20')+')');}}}console['log']('');}
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']('');}