@ranger-testing/ranger-cli 2.5.4-alpha.1f7a251-7 → 2.5.4-alpha.27e3ee8-11

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 (78) 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/env.js +1 -1
  7. package/build/commands/feature.js +1 -1
  8. package/build/commands/hook.js +1 -1
  9. package/build/commands/hooks/autoPrompt.js +1 -1
  10. package/build/commands/hooks/disable.js +1 -1
  11. package/build/commands/hooks/enable.js +1 -1
  12. package/build/commands/hooks/exitPlanMode.js +1 -1
  13. package/build/commands/hooks/index.js +1 -1
  14. package/build/commands/hooks/output.js +1 -1
  15. package/build/commands/hooks/planReminder.js +1 -1
  16. package/build/commands/hooks/planStart.js +1 -1
  17. package/build/commands/hooks/postEdit.js +1 -1
  18. package/build/commands/hooks/preCompact.js +1 -1
  19. package/build/commands/hooks/sessionEnd.js +1 -1
  20. package/build/commands/hooks/sessionStart.js +1 -1
  21. package/build/commands/hooks/stopHook.js +1 -1
  22. package/build/commands/index.js +1 -1
  23. package/build/commands/login.js +1 -1
  24. package/build/commands/mcpBootstrap.js +1 -1
  25. package/build/commands/migrateProfile.js +1 -1
  26. package/build/commands/setup/claude.js +1 -1
  27. package/build/commands/setup/opencode.js +1 -1
  28. package/build/commands/setupCi.js +1 -1
  29. package/build/commands/skillup.js +1 -1
  30. package/build/commands/start.js +1 -1
  31. package/build/commands/status.js +1 -1
  32. package/build/commands/update.js +1 -1
  33. package/build/commands/updateEnv.js +1 -1
  34. package/build/commands/useEnv.js +1 -1
  35. package/build/commands/utils/activeProfile.js +1 -1
  36. package/build/commands/utils/agentEnv.js +1 -1
  37. package/build/commands/utils/browserSessionsApi.js +1 -1
  38. package/build/commands/utils/claudeConfig.js +1 -1
  39. package/build/commands/utils/claudeOverrideSettings.js +1 -1
  40. package/build/commands/utils/claudePlugin.js +1 -1
  41. package/build/commands/utils/cloudProfile.js +1 -1
  42. package/build/commands/utils/cloudProfileSession.js +1 -1
  43. package/build/commands/utils/crypto.js +1 -1
  44. package/build/commands/utils/desirePathLog.js +1 -1
  45. package/build/commands/utils/deviceAuth.js +1 -1
  46. package/build/commands/utils/environment.js +1 -1
  47. package/build/commands/utils/featureApi.js +1 -1
  48. package/build/commands/utils/fixWebmDuration.js +1 -1
  49. package/build/commands/utils/gitTracked.js +1 -1
  50. package/build/commands/utils/keychain.js +1 -1
  51. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  52. package/build/commands/utils/matchAuthEnvironment.js +1 -1
  53. package/build/commands/utils/mcpImageBase64.js +1 -1
  54. package/build/commands/utils/model.js +1 -1
  55. package/build/commands/utils/opencodeConfig.js +1 -1
  56. package/build/commands/utils/playwrightCli.js +1 -1
  57. package/build/commands/utils/profileMessages.js +1 -1
  58. package/build/commands/utils/profileSetupBanner.js +1 -1
  59. package/build/commands/utils/projectsConfig.js +1 -1
  60. package/build/commands/utils/rangerConfig.js +1 -1
  61. package/build/commands/utils/rangerRoot.js +1 -1
  62. package/build/commands/utils/resolveProfileContext.js +1 -1
  63. package/build/commands/utils/resolveProfileUrl.js +1 -1
  64. package/build/commands/utils/retry.js +1 -1
  65. package/build/commands/utils/sessionCache.js +1 -1
  66. package/build/commands/utils/settings.js +1 -1
  67. package/build/commands/utils/skillContent.js +1 -1
  68. package/build/commands/utils/skills.js +1 -1
  69. package/build/commands/utils/stitchWebmFiles.js +1 -1
  70. package/build/commands/utils/telemetry.js +1 -1
  71. package/build/commands/utils/tokenRefresh.js +1 -1
  72. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  73. package/build/commands/utils/userApi.js +1 -1
  74. package/build/commands/utils/version.js +1 -1
  75. package/build/commands/verifyFeature.js +1 -1
  76. package/build/commands/verifyFeatureCli.js +1 -1
  77. package/build/skills/ranger/verify.md +6 -12
  78. package/package.json +1 -1
@@ -1 +1 @@
1
- function _0x3f75(){const _0x4861da=['lAbtg','WFXhH','isTTY','aSQEu','7287672oDRqZp','organizationName','success','318951zARiUQ','77WqmqxQ','message','\x0a✅\x20Logged\x20in\x20to\x20','5yCUOhz','log','Login\x20failed:\x20','1278oaCLCZ','429414quRlOB','VfZLo','694230GMjsYN','\x0a✅\x20API\x20key\x20stored\x20successfully','29231774HohByd','44740Inlzzu','14IDCOfT','user','1104332xAGXYm'];_0x3f75=function(){return _0x4861da;};return _0x3f75();}(function(_0x35b5c8,_0x5297d3){const _0x3ba2ca=_0x4633,_0x4a4d92=_0x35b5c8();while(!![]){try{const _0x4707ae=-parseInt(_0x3ba2ca(0xa4))/0x1+parseInt(_0x3ba2ca(0x90))/0x2*(parseInt(_0x3ba2ca(0x9a))/0x3)+-parseInt(_0x3ba2ca(0x92))/0x4*(-parseInt(_0x3ba2ca(0x9e))/0x5)+-parseInt(_0x3ba2ca(0xa2))/0x6*(parseInt(_0x3ba2ca(0x9b))/0x7)+-parseInt(_0x3ba2ca(0x97))/0x8+parseInt(_0x3ba2ca(0xa1))/0x9*(-parseInt(_0x3ba2ca(0x8f))/0xa)+parseInt(_0x3ba2ca(0x8e))/0xb;if(_0x4707ae===_0x5297d3)break;else _0x4a4d92['push'](_0x4a4d92['shift']());}catch(_0x5bab36){_0x4a4d92['push'](_0x4a4d92['shift']());}}}(_0x3f75,0x9eafc));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x4633(_0x39dae2,_0x9d2927){_0x39dae2=_0x39dae2-0x8d;const _0x3f754=_0x3f75();let _0x463347=_0x3f754[_0x39dae2];return _0x463347;}import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';export async function login(){const _0x18d24c=_0x4633,_0x21b97a={'lAbtg':function(_0xef972d){return _0xef972d();},'aSQEu':function(_0x4ef40e){return _0x4ef40e();},'NqSyF':'Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','VfZLo':function(_0x259d8e){return _0x259d8e();},'WFXhH':function(_0x6c4159,_0x522a75){return _0x6c4159(_0x522a75);},'mQRmI':_0x18d24c(0x8d),'ycTFa':function(_0x1a50ea,_0x293e4f){return _0x1a50ea instanceof _0x293e4f;}},_0x6b4c5=await _0x21b97a[_0x18d24c(0x93)](getMcpAuthOrigin);if(_0x6b4c5){console[_0x18d24c(0x9f)]('Re-authenticating\x20via\x20MCP\x20bootstrap...'),await _0x21b97a[_0x18d24c(0x96)](mcpBootstrap);return;}const _0x40e19c=process['stdin'][_0x18d24c(0x95)]&&process['stdout']['isTTY'];if(!_0x40e19c)throw new Error(_0x21b97a['NqSyF']);try{const _0x3dfbc5=await _0x21b97a[_0x18d24c(0xa3)](runDeviceAuthFlow),_0x74db3f=await _0x21b97a[_0x18d24c(0x94)](getCurrentUser,_0x3dfbc5);_0x74db3f[_0x18d24c(0x99)]?console[_0x18d24c(0x9f)](_0x18d24c(0x9d)+_0x74db3f[_0x18d24c(0x91)][_0x18d24c(0x98)]):console[_0x18d24c(0x9f)](_0x21b97a['mQRmI']);}catch(_0x3da58c){throw new Error(_0x18d24c(0xa0)+(_0x21b97a['ycTFa'](_0x3da58c,Error)?_0x3da58c[_0x18d24c(0x9c)]:_0x3da58c));}}
1
+ (function(_0x19e025,_0x5be9ed){const _0x2e7767=_0x4c59,_0x4205c2=_0x19e025();while(!![]){try{const _0x2009a5=parseInt(_0x2e7767(0xab))/0x1*(-parseInt(_0x2e7767(0xac))/0x2)+-parseInt(_0x2e7767(0xa2))/0x3*(parseInt(_0x2e7767(0xb2))/0x4)+parseInt(_0x2e7767(0xb0))/0x5+-parseInt(_0x2e7767(0xa8))/0x6*(-parseInt(_0x2e7767(0xad))/0x7)+parseInt(_0x2e7767(0xa7))/0x8+parseInt(_0x2e7767(0xa4))/0x9*(-parseInt(_0x2e7767(0xa3))/0xa)+parseInt(_0x2e7767(0xa6))/0xb;if(_0x2009a5===_0x5be9ed)break;else _0x4205c2['push'](_0x4205c2['shift']());}catch(_0x274b5d){_0x4205c2['push'](_0x4205c2['shift']());}}}(_0x46c0,0x91620));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x46c0(){const _0x31703f=['7932AgpsIN','157490ySuXvn','342qfudCb','isTTY','1606396dlluyY','7012152YKhgOE','6haWxMb','user','VsErQ','47459RTaeLI','22HDrbUL','7041811EznGqu','log','Login\x20failed:\x20','3500615ROxPrW','stdout','1532RGKkXp','organizationName','nYYMv'];_0x46c0=function(){return _0x31703f;};return _0x46c0();}import{getCurrentUser}from'./utils/userApi.js';function _0x4c59(_0x5d7637,_0x73143a){_0x5d7637=_0x5d7637-0xa0;const _0x46c076=_0x46c0();let _0x4c5973=_0x46c076[_0x5d7637];return _0x4c5973;}import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';export async function login(){const _0x1644e0=_0x4c59,_0xc0e7c1={'nYYMv':function(_0x441b0c){return _0x441b0c();},'VsErQ':function(_0x237da5,_0x142373){return _0x237da5(_0x142373);},'bSvtR':'\x0a✅\x20API\x20key\x20stored\x20successfully'},_0x27f1fe=await getMcpAuthOrigin();if(_0x27f1fe){console[_0x1644e0(0xae)]('Re-authenticating\x20via\x20MCP\x20bootstrap...'),await mcpBootstrap();return;}const _0x590fce=process['stdin'][_0x1644e0(0xa5)]&&process[_0x1644e0(0xb1)][_0x1644e0(0xa5)];if(!_0x590fce)throw new Error('Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.');try{const _0x5e2622=await _0xc0e7c1[_0x1644e0(0xa1)](runDeviceAuthFlow),_0x2c3930=await _0xc0e7c1[_0x1644e0(0xaa)](getCurrentUser,_0x5e2622);_0x2c3930['success']?console['log']('\x0a✅\x20Logged\x20in\x20to\x20'+_0x2c3930[_0x1644e0(0xa9)][_0x1644e0(0xa0)]):console[_0x1644e0(0xae)](_0xc0e7c1['bSvtR']);}catch(_0x2a7cff){throw new Error(_0x1644e0(0xaf)+(_0x2a7cff instanceof Error?_0x2a7cff['message']:_0x2a7cff));}}
@@ -1 +1 @@
1
- const _0x151ee3=_0x3bf6;(function(_0x38daf5,_0x4ee0b1){const _0x15be12=_0x3bf6,_0x24e3e3=_0x38daf5();while(!![]){try{const _0x48ba97=-parseInt(_0x15be12(0xf4))/0x1+-parseInt(_0x15be12(0xc0))/0x2+parseInt(_0x15be12(0xec))/0x3+parseInt(_0x15be12(0xcc))/0x4*(-parseInt(_0x15be12(0x8a))/0x5)+-parseInt(_0x15be12(0xab))/0x6*(parseInt(_0x15be12(0x81))/0x7)+parseInt(_0x15be12(0xd7))/0x8*(-parseInt(_0x15be12(0x9c))/0x9)+parseInt(_0x15be12(0xad))/0xa*(parseInt(_0x15be12(0x9b))/0xb);if(_0x48ba97===_0x4ee0b1)break;else _0x24e3e3['push'](_0x24e3e3['shift']());}catch(_0x32310b){_0x24e3e3['push'](_0x24e3e3['shift']());}}}(_0x4adb,0x1c96f));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),'.ranger',_0x151ee3(0x90)),AUTH_ORIGIN_PATH=join(homedir(),_0x151ee3(0x8d),_0x151ee3(0xbe));function _0x4adb(){const _0x5759a0=['506121kqGNYr','2025-03-26','CofnD','sha256','platform','application/json','refreshToken','Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','165362detdvG','hex','startsWith','YvlSN','refresh_token','oweTe','proxied','token','win32','mgeBr','trim','utf-8','writeHead','message','stdout','text/html','listen','name','Server\x20returned\x20error:\x20','ranger-cli','mSrMe','\x0aToken\x20written\x20to\x20','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','lPcFg','YoXWN','registration_endpoint','searchParams','parse','12215yVXPZd','log','CZvLv','origin','initialize','toString','nOMPc','xdg-open','KCaAC','79865qSDwwr','POST','code_challenge_method','.ranger','/.well-known/oauth-authorization-server','\x20done','mcp-oauth-tokens.json','resource','Ydtiy','application/json,\x20text/event-stream','TLcYb','uiDgy','JeLdn','error','Requesting\x20CLI\x20token...','siMLN','accessToken','22OzzrPY','53910cFoivJ','AdtTZ','http://localhost:','JLnIp','update','uxGcM','MyDXA','get','status','gUUjU','includes','sMyXI','json','type','redirect_uri','366YgkVLt','application/x-www-form-urlencoded','3527290gzFzYp','Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','Discovering\x20authorization\x20server...','/callback','NcsVq','close','length','open','UojMN','write','Ranger\x20CLI','end','zDJQh','QgqyV','2.0','isError','MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','auth-origin.txt','none','407456mAiYvX','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','notifications/initialized','fsHeF','FxGQt','base64url','S256','twnre','EHrVe','vtqTJ','Registering\x20OAuth\x20client...','clientSecret','36agcfyb','split','kPNWX','TtsBe','slice','clientId','expiresAt','client_secret','ZMFwB','headers','\x0aOpening\x20browser\x20for\x20authentication...','184JbbFxD','text','OAuth\x20error:\x20','client_id','string','lXPDa','stringify','YzqaW','Not\x20found','tools/call','expires_in','BneUe','yLYdy','result','fPXcZ','UWpsU','set','zgkGT','cTFmx','code','HDBwT'];_0x4adb=function(){return _0x5759a0;};return _0x4adb();}export async function getMcpAuthOrigin(){const _0x53947a=_0x151ee3,_0x595f4c={'MyDXA':function(_0x56de22,_0x59f88a,_0xf9624a){return _0x56de22(_0x59f88a,_0xf9624a);},'GgDKe':'utf-8','zDJQh':function(_0x519dce,_0x400d56){return _0x519dce||_0x400d56;}};try{const _0x3bc64c=(await _0x595f4c[_0x53947a(0xa2)](readFile,AUTH_ORIGIN_PATH,_0x595f4c['GgDKe']))[_0x53947a(0xfe)]();return _0x595f4c[_0x53947a(0xb9)](_0x3bc64c,null);}catch{return null;}}export async function mcpBootstrap(){const _0x461aed=_0x151ee3,_0x27b469={'fPXcZ':function(_0x4ae61b){return _0x4ae61b();},'mgeBr':function(_0x65c00c,_0x2c357b){return _0x65c00c(_0x2c357b);},'TtwLA':'proxied','goNIH':function(_0x3a68ba,_0x5bac55){return _0x3a68ba+_0x5bac55;}},_0x1d88d2=_0x27b469[_0x461aed(0xe5)](getMcpAuthUrl);currentOrigin=_0x1d88d2;const _0xcefd6e=process[_0x461aed(0x102)]['isTTY']??![];console[_0x461aed(0x82)]('\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20'+_0x1d88d2+'\x0a');const _0x2940d3=await _0x27b469[_0x461aed(0xfd)](tryUnauthenticated,_0x1d88d2);let _0x492559=null;if(_0x2940d3===_0x27b469['TtwLA'])_0x492559='';else{_0x492559=await loadCachedToken();if(!_0x492559){if(!_0xcefd6e)throw new Error(_0x27b469['goNIH'](_0x461aed(0xbd),_0x461aed(0x7b)));_0x492559=await oauthFlow(_0x1d88d2);}}await callGetCliToken(_0x1d88d2,_0x492559);}async function tryUnauthenticated(_0x79fec3){const _0x1d0e7f=_0x151ee3,_0x30383c={'NqJYR':function(_0x2d76dc,_0x34cbeb,_0x18f32f){return _0x2d76dc(_0x34cbeb,_0x18f32f);},'YoXWN':_0x1d0e7f(0xf1),'fsHeF':'1.0.0','KCaAC':_0x1d0e7f(0xfa)},_0x148117=await _0x30383c['NqJYR'](fetch,_0x79fec3,{'method':'POST','headers':{'Content-Type':_0x30383c[_0x1d0e7f(0x7d)],'Accept':_0x1d0e7f(0x93)},'body':JSON['stringify']({'jsonrpc':_0x1d0e7f(0xbb),'id':0x1,'method':'initialize','params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':_0x1d0e7f(0x78),'version':_0x30383c[_0x1d0e7f(0xc3)]}}})});if(_0x148117['ok'])return await _0x148117['text'](),_0x30383c[_0x1d0e7f(0x89)];if(_0x148117['status']===0x191)return await _0x148117['text'](),'needs-oauth';const _0x6f1793=await _0x148117['text']();throw new Error('MCP\x20server\x20returned\x20HTTP\x20'+_0x148117[_0x1d0e7f(0xa4)]+':\x20'+_0x6f1793);}class OAuthTimeoutError extends Error{constructor(_0x5c7a33){const _0x5dd301=_0x151ee3;super(_0x5c7a33),this[_0x5dd301(0x105)]='OAuthTimeoutError';}}async function oauthFlow(_0x53f8eb){const _0x15caa8=_0x151ee3,_0x4ad5e5={'ZhUMa':function(_0x5e91f0,_0x5b83b5){return _0x5e91f0(_0x5b83b5);},'rigoT':function(_0x24795e){return _0x24795e();},'CofnD':'\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'};try{return await _0x4ad5e5['ZhUMa'](oauthFlowAttempt,_0x53f8eb);}catch(_0x5b32dd){if(_0x5b32dd instanceof OAuthTimeoutError&&await _0x4ad5e5['rigoT'](loadCachedClient))return console[_0x15caa8(0x82)](_0x4ad5e5[_0x15caa8(0xee)]),await clearCachedClient(),await oauthFlowAttempt(_0x53f8eb);throw _0x5b32dd;}}async function oauthFlowAttempt(_0x4a443a){const _0x44ae60=_0x151ee3,_0x3442fa={'DqfcO':_0x44ae60(0xaf),'lPcFg':'Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','BneUe':'No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','TtsBe':_0x44ae60(0xca),'EHrVe':'authorization_code','UojMN':_0x44ae60(0xea),'nOMPc':_0x44ae60(0xbf),'BmIjz':_0x44ae60(0x8f),'EyYAh':function(_0x15db22,_0x40943d){return _0x15db22(_0x40943d);},'ifRPE':_0x44ae60(0xf5),'AdtTZ':_0x44ae60(0xda),'ZMFwB':'code_challenge','zgkGT':'state','jiuIw':'resource','gUUjU':_0x44ae60(0xd3),'yLYdy':_0x44ae60(0xac),'yJYaA':function(_0x2ab430,_0x39801a,_0x5dfc0d,_0x3d5387){return _0x2ab430(_0x39801a,_0x5dfc0d,_0x3d5387);}},_0x608054=_0x4a443a['replace'](/\/mcp$/,'');process['stdout']['write'](_0x3442fa['DqfcO']);const _0x1f2119=await fetch(_0x608054+'/.well-known/oauth-protected-resource');if(!_0x1f2119['ok'])throw new Error(_0x3442fa[_0x44ae60(0x7c)]);const _0x512687=await _0x1f2119[_0x44ae60(0xa8)](),_0x574b7e=_0x512687['authorization_servers']?.[0x0];if(!_0x574b7e)throw new Error(_0x3442fa[_0x44ae60(0xe2)]);console['log']('\x20'+_0x574b7e);const _0x551d79=await fetchAuthServerMetadata(_0x574b7e);let _0x12b00a,_0x4d1f91;const _0x5649c6=await loadCachedClient();if(_0x5649c6)_0x12b00a=_0x5649c6[_0x44ae60(0xd1)],_0x4d1f91=_0x5649c6['clientSecret'];else{if(_0x551d79[_0x44ae60(0x7e)]){process['stdout']['write'](_0x3442fa[_0x44ae60(0xcf)]);const _0x1c6355=await fetch(_0x551d79[_0x44ae60(0x7e)],{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'client_name':_0x44ae60(0xb7),'redirect_uris':['http://localhost:'+CALLBACK_PORT+_0x44ae60(0xb0)],'grant_types':[_0x3442fa['EHrVe'],_0x44ae60(0xf8)],'response_types':[_0x3442fa[_0x44ae60(0xb5)]],'token_endpoint_auth_method':_0x3442fa[_0x44ae60(0x87)]})});if(!_0x1c6355['ok']){const _0x33f10d=await _0x1c6355['text']();throw new Error('Client\x20registration\x20failed:\x20'+_0x33f10d);}const _0x31b182=await _0x1c6355[_0x44ae60(0xa8)]();_0x12b00a=_0x31b182['client_id'],_0x4d1f91=_0x31b182[_0x44ae60(0xd3)],await saveCachedClient(_0x12b00a,_0x4d1f91),console['log'](_0x3442fa['BmIjz']);}else throw new Error(_0x44ae60(0xae));}const _0x2b1cff=randomBytes(0x20)['toString'](_0x44ae60(0xc5)),_0x3752a2=_0x3442fa['EyYAh'](createHash,_0x44ae60(0xef))[_0x44ae60(0xa0)](_0x2b1cff)['digest']('base64url'),_0x3aa11d=randomBytes(0x10)[_0x44ae60(0x86)](_0x3442fa['ifRPE']),_0xd6e8bd=new URL(_0x551d79['authorization_endpoint']);_0xd6e8bd['searchParams'][_0x44ae60(0xe7)]('response_type',_0x44ae60(0xea)),_0xd6e8bd['searchParams']['set'](_0x3442fa[_0x44ae60(0x9d)],_0x12b00a),_0xd6e8bd['searchParams'][_0x44ae60(0xe7)](_0x44ae60(0xaa),_0x44ae60(0x9e)+CALLBACK_PORT+'/callback'),_0xd6e8bd[_0x44ae60(0x7f)][_0x44ae60(0xe7)](_0x3442fa[_0x44ae60(0xd4)],_0x3752a2),_0xd6e8bd['searchParams']['set'](_0x44ae60(0x8c),_0x44ae60(0xc6)),_0xd6e8bd[_0x44ae60(0x7f)]['set'](_0x3442fa[_0x44ae60(0xe8)],_0x3aa11d);_0x512687[_0x44ae60(0x91)]&&_0xd6e8bd[_0x44ae60(0x7f)][_0x44ae60(0xe7)](_0x3442fa['jiuIw'],_0x512687['resource']);console['log'](_0x44ae60(0xd6)),console['log']('If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a'+_0xd6e8bd[_0x44ae60(0x86)]()+'\x0a'),await openBrowser(_0xd6e8bd[_0x44ae60(0x86)]());const _0x5712a4=await waitForCallback(_0x3aa11d);process['stdout'][_0x44ae60(0xb6)]('Exchanging\x20authorization\x20code...');const _0x230497=new URLSearchParams({'grant_type':_0x3442fa[_0x44ae60(0xc8)],'code':_0x5712a4,'redirect_uri':'http://localhost:'+CALLBACK_PORT+_0x44ae60(0xb0),'client_id':_0x12b00a,'code_verifier':_0x2b1cff});_0x4d1f91&&_0x230497[_0x44ae60(0xe7)](_0x3442fa[_0x44ae60(0xa5)],_0x4d1f91);_0x512687[_0x44ae60(0x91)]&&_0x230497['set']('resource',_0x512687[_0x44ae60(0x91)]);const _0xb9bb36=await fetch(_0x551d79['token_endpoint'],{'method':_0x44ae60(0x8b),'headers':{'Content-Type':_0x3442fa[_0x44ae60(0xe3)]},'body':_0x230497});if(!_0xb9bb36['ok']){const _0x2fbea0=await _0xb9bb36['text']();throw new Error('Token\x20exchange\x20failed:\x20'+_0x2fbea0);}const _0x18eb44=await _0xb9bb36[_0x44ae60(0xa8)]();return console['log'](_0x3442fa['BmIjz']),await _0x3442fa['yJYaA'](saveCachedToken,_0x18eb44['access_token'],_0x18eb44['refresh_token'],_0x18eb44[_0x44ae60(0xe1)]),_0x18eb44['access_token'];}async function callGetCliToken(_0x4f354f,_0xb5bb04){const _0x5db084=_0x151ee3,_0x38079c={'oweTe':function(_0x280698,_0x4ef678){return _0x280698(_0x4ef678);},'BFdcU':'Authorization','XTjKb':function(_0x3fc70e,_0x4bfe5f){return _0x3fc70e(_0x4bfe5f);},'ezgsI':_0x5db084(0x78),'oidOe':'1.0.0','QgqyV':'\x20done','sMyXI':_0x5db084(0xc2),'mSrMe':'2.0','HDBwT':'\x0aUnexpected\x20response\x20structure:','UALvi':'refresh.txt','ocvTu':function(_0x4dc32d,_0xe8e6eb,_0x127517,_0x40964c){return _0x4dc32d(_0xe8e6eb,_0x127517,_0x40964c);},'wzyWa':_0x5db084(0xbe)},_0x4c5ea0={'Content-Type':'application/json','Accept':_0x5db084(0x93)};_0xb5bb04&&(_0x4c5ea0[_0x38079c['BFdcU']]='Bearer\x20'+_0xb5bb04);const _0x56840a=async _0x3659c9=>{const _0x2c930e=_0x5db084,_0x21c759=await fetch(_0x4f354f,{'method':_0x2c930e(0x8b),'headers':_0x4c5ea0,'body':JSON[_0x2c930e(0xdd)](_0x3659c9)});if(!_0x21c759['ok']){const _0x20bf15=await _0x21c759['text']();throw new Error('HTTP\x20'+_0x21c759[_0x2c930e(0xa4)]+':\x20'+_0x20bf15);}return _0x38079c[_0x2c930e(0xf9)](parseResponse,_0x21c759);};process[_0x5db084(0x102)]['write']('Initializing\x20MCP\x20session...');const _0x1bcd71=await _0x38079c['XTjKb'](_0x56840a,{'jsonrpc':_0x5db084(0xbb),'id':0x1,'method':_0x5db084(0x85),'params':{'protocolVersion':_0x5db084(0xed),'capabilities':{},'clientInfo':{'name':_0x38079c['ezgsI'],'version':_0x38079c['oidOe']}}});if(_0x1bcd71['error'])throw new Error('MCP\x20initialize\x20failed:\x20'+(_0x1bcd71['error'][_0x5db084(0x101)]??JSON['stringify'](_0x1bcd71['error'])));console['log'](_0x38079c[_0x5db084(0xba)]),await fetch(_0x4f354f,{'method':'POST','headers':_0x4c5ea0,'body':JSON[_0x5db084(0xdd)]({'jsonrpc':_0x5db084(0xbb),'method':_0x38079c[_0x5db084(0xa7)]})})['then'](_0x74ef01=>_0x74ef01[_0x5db084(0xd8)]()),process['stdout'][_0x5db084(0xb6)](_0x5db084(0x98));const _0x5c710c=await _0x56840a({'jsonrpc':_0x38079c[_0x5db084(0x79)],'id':0x2,'method':_0x5db084(0xe0),'params':{'name':'get_cli_token','arguments':{}}});if(_0x5c710c[_0x5db084(0x97)])throw new Error('get_cli_token\x20failed:\x20'+(_0x5c710c['error'][_0x5db084(0x101)]??JSON['stringify'](_0x5c710c['error'])));console['log'](_0x38079c[_0x5db084(0xba)]);const _0x22be99=extractToken(_0x5c710c[_0x5db084(0xe4)]);if(!_0x22be99){console['error'](_0x38079c[_0x5db084(0xeb)]),console['error'](JSON['stringify'](_0x5c710c['result'],null,0x2));throw new Error(_0x5db084(0xf3));}const _0x15e8df=join(homedir(),_0x5db084(0x8d)),_0x11f70b=join(_0x15e8df,_0x38079c['UALvi']);await mkdir(_0x15e8df,{'recursive':!![]}),await _0x38079c['ocvTu'](writeFile,_0x11f70b,_0x22be99,{'mode':0x180}),await _0x38079c['ocvTu'](writeFile,join(_0x15e8df,_0x38079c['wzyWa']),_0x4f354f,{'mode':0x180}),console[_0x5db084(0x82)](_0x5db084(0x7a)+_0x11f70b),console[_0x5db084(0x82)]('Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a');}async function fetchAuthServerMetadata(_0x327f42){const _0xd84757=_0x151ee3,_0x35ac1d={'hhHNz':function(_0x28d136,_0x47f82e){return _0x28d136(_0x47f82e);}},_0x396e5c=_0x327f42+_0xd84757(0x8e),_0x5113d1=await _0x35ac1d['hhHNz'](fetch,_0x396e5c);if(!_0x5113d1['ok'])throw new Error(_0xd84757(0xc1)+_0x396e5c+':\x20'+_0x5113d1['status']);return _0x5113d1['json']();}function waitForCallback(_0x50bfa0){const _0x5506ea=_0x151ee3,_0x50685e={'JeLdn':'OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','oANpd':function(_0x39f14a,_0x3299d5){return _0x39f14a!==_0x3299d5;},'JLnIp':'/callback','TLcYb':_0x5506ea(0xdf),'Ydtiy':function(_0x4b5f2f,_0x5666bd){return _0x4b5f2f(_0x5666bd);},'mIAuz':_0x5506ea(0x103),'NcsVq':'<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','lXPDa':'127.0.0.1'};return new Promise((_0x613eb9,_0x374224)=>{const _0x4f9818=_0x5506ea,_0x30c5f3=setTimeout(()=>{const _0xeca439=_0x3bf6;_0x4fd564[_0xeca439(0xb2)](),_0x374224(new OAuthTimeoutError(_0x50685e[_0xeca439(0x96)]));},0x1d4c0),_0x4fd564=createServer((_0x2ae5ea,_0x4137f7)=>{const _0x383ec8=_0x3bf6,_0x52444b=new URL(_0x2ae5ea['url']??'/',_0x383ec8(0x9e)+CALLBACK_PORT);if(_0x50685e['oANpd'](_0x52444b['pathname'],_0x50685e[_0x383ec8(0x9f)])){_0x4137f7[_0x383ec8(0x100)](0x194),_0x4137f7['end'](_0x50685e[_0x383ec8(0x94)]);return;}const _0x5b9b0d=_0x52444b[_0x383ec8(0x7f)][_0x383ec8(0xa3)](_0x383ec8(0xea)),_0x14c6b0=_0x52444b[_0x383ec8(0x7f)]['get']('state'),_0x379915=_0x52444b[_0x383ec8(0x7f)][_0x383ec8(0xa3)]('error');if(_0x379915){const _0x3f8c9c=_0x52444b['searchParams'][_0x383ec8(0xa3)]('error_description')??_0x379915;_0x4137f7[_0x383ec8(0x100)](0xc8,{'Content-Type':'text/html'}),_0x4137f7[_0x383ec8(0xb8)]('<html><body><h2>Authentication\x20failed</h2><p>'+_0x3f8c9c+'</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>'),_0x50685e[_0x383ec8(0x92)](clearTimeout,_0x30c5f3),_0x4fd564[_0x383ec8(0xb2)](),_0x374224(new Error(_0x383ec8(0xd9)+_0x3f8c9c));return;}if(!_0x5b9b0d||_0x50685e['oANpd'](_0x14c6b0,_0x50bfa0)){_0x4137f7[_0x383ec8(0x100)](0x190,{'Content-Type':_0x50685e['mIAuz']}),_0x4137f7['end']('<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>');return;}_0x4137f7[_0x383ec8(0x100)](0xc8,{'Content-Type':_0x383ec8(0x103)}),_0x4137f7['end'](_0x50685e[_0x383ec8(0xb1)]),clearTimeout(_0x30c5f3),_0x4fd564[_0x383ec8(0xb2)](),_0x613eb9(_0x5b9b0d);});_0x4fd564[_0x4f9818(0x104)](CALLBACK_PORT,_0x50685e[_0x4f9818(0xdc)]);});}async function openBrowser(_0x2e91cd){const _0x5cba34=_0x151ee3,_0x59c71c={'UWpsU':function(_0x2fe806,_0x608205){return _0x2fe806===_0x608205;},'Fqwdd':'darwin','twnre':_0x5cba34(0xb4),'kPNWX':_0x5cba34(0xfc),'AEWDL':'start'},{exec:_0x4e36d3}=await import('child_process'),_0x281cc8=_0x59c71c[_0x5cba34(0xe6)](process['platform'],_0x59c71c['Fqwdd'])?_0x59c71c[_0x5cba34(0xc7)]:process[_0x5cba34(0xf0)]===_0x59c71c[_0x5cba34(0xce)]?_0x59c71c['AEWDL']:_0x5cba34(0x88);_0x4e36d3(_0x281cc8+'\x20\x22'+_0x2e91cd+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x585f29=_0x151ee3,_0x193ab7={'siMLN':function(_0x1f5be5,_0x52ea76){return _0x1f5be5!==_0x52ea76;}};try{const _0x1944f8=JSON[_0x585f29(0x80)](await readFile(TOKEN_CACHE_PATH,'utf-8'));if(_0x1944f8['origin']&&_0x193ab7[_0x585f29(0x99)](_0x1944f8[_0x585f29(0x84)],currentOrigin))return null;if(_0x1944f8[_0x585f29(0xd2)]&&Date['now']()>_0x1944f8['expiresAt'])return null;return _0x1944f8['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x28af14,_0x194cae,_0x8d406c){const _0x5d07d7=_0x151ee3,_0x5486a6={'CZvLv':function(_0x39d5c2,_0x3b5b00){return _0x39d5c2+_0x3b5b00;},'JUyTv':function(_0x2ccc30,_0x3bbecd){return _0x2ccc30*_0x3bbecd;},'YvlSN':function(_0x4213af,_0x219151,_0x322a85){return _0x4213af(_0x219151,_0x322a85);},'uxGcM':function(_0x584e8b){return _0x584e8b();},'gopLj':function(_0x28076b,_0x10eb39,_0x72d4b0,_0x4dc2a5){return _0x28076b(_0x10eb39,_0x72d4b0,_0x4dc2a5);}},_0x47f8aa=await loadCachedData(),_0x5e982f={..._0x47f8aa,'origin':currentOrigin,'accessToken':_0x28af14,'refreshToken':_0x194cae??_0x47f8aa?.[_0x5d07d7(0xf2)],'expiresAt':_0x8d406c?_0x5486a6[_0x5d07d7(0x83)](Date['now'](),_0x5486a6['JUyTv'](_0x8d406c,0x3e8)):undefined};await mkdir(_0x5486a6[_0x5d07d7(0xf7)](join,_0x5486a6[_0x5d07d7(0xa1)](homedir),_0x5d07d7(0x8d)),{'recursive':!![]}),await _0x5486a6['gopLj'](writeFile,TOKEN_CACHE_PATH,JSON[_0x5d07d7(0xdd)](_0x5e982f),{'mode':0x180});}async function loadCachedClient(){const _0x33acba=_0x151ee3,_0x2dea72=await loadCachedData();if(_0x2dea72?.[_0x33acba(0x84)]&&_0x2dea72[_0x33acba(0x84)]!==currentOrigin)return null;return _0x2dea72?.[_0x33acba(0xd1)]?{'clientId':_0x2dea72['clientId'],'clientSecret':_0x2dea72[_0x33acba(0xcb)]}:null;}async function clearCachedClient(){const _0x55ca1f=await loadCachedData();if(!_0x55ca1f)return;const {clientId:_0x4b374e,clientSecret:_0x4f70c7,..._0x577550}=_0x55ca1f;await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x577550),{'mode':0x180});}function _0x3bf6(_0x2a9ab8,_0x2c0db0){_0x2a9ab8=_0x2a9ab8-0x77;const _0x4adb3a=_0x4adb();let _0x3bf6e2=_0x4adb3a[_0x2a9ab8];return _0x3bf6e2;}async function saveCachedClient(_0x9f4d3a,_0x3a3215){const _0x40d670=_0x151ee3,_0x19a093={'uiDgy':function(_0xef4afe){return _0xef4afe();},'FxGQt':'.ranger'},_0xd23da6=await loadCachedData(),_0x21322b={..._0xd23da6,'origin':currentOrigin,'accessToken':_0xd23da6?.[_0x40d670(0x9a)]??'','clientId':_0x9f4d3a,'clientSecret':_0x3a3215};await mkdir(join(_0x19a093[_0x40d670(0x95)](homedir),_0x19a093[_0x40d670(0xc4)]),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x40d670(0xdd)](_0x21322b),{'mode':0x180});}async function loadCachedData(){const _0x38a6f7=_0x151ee3;try{return JSON[_0x38a6f7(0x80)](await readFile(TOKEN_CACHE_PATH,_0x38a6f7(0xff)));}catch{return null;}}async function parseResponse(_0x2707e7){const _0x31a06c=_0x151ee3,_0x5ea04b={'YzqaW':'text/event-stream','vtqTJ':'data:','MAygU':'No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream'},_0x335587=_0x2707e7[_0x31a06c(0xd5)][_0x31a06c(0xa3)]('content-type')??'';if(_0x335587[_0x31a06c(0xa6)](_0x5ea04b[_0x31a06c(0xde)])){const _0x323687=await _0x2707e7['text']();for(const _0x559cd8 of _0x323687[_0x31a06c(0xcd)]('\x0a')){const _0x3c059e=_0x559cd8[_0x31a06c(0xfe)]();if(_0x3c059e[_0x31a06c(0xf6)](_0x5ea04b['vtqTJ'])){const _0x1669c7=_0x3c059e[_0x31a06c(0xd0)](_0x5ea04b[_0x31a06c(0xc9)][_0x31a06c(0xb3)])[_0x31a06c(0xfe)]();if(!_0x1669c7)continue;try{const _0x2be9a9=JSON['parse'](_0x1669c7);if(_0x2be9a9['id']!==undefined||_0x2be9a9[_0x31a06c(0x97)])return _0x2be9a9;}catch{}}}throw new Error(_0x5ea04b['MAygU']);}return _0x2707e7['json']();}function extractToken(_0x434154){const _0x2a4f95=_0x151ee3,_0x43edb6={'DOgfy':'Unknown\x20error','cTFmx':function(_0x211378,_0x227408){return _0x211378===_0x227408;},'rYYAC':_0x2a4f95(0xd8),'ttAcD':function(_0x56d244,_0x21e406){return _0x56d244===_0x21e406;}};if(!_0x434154)return null;const _0x5eb6ff=_0x434154['structuredContent'];if(_0x5eb6ff?.['token']&&typeof _0x5eb6ff['token']===_0x2a4f95(0xdb))return _0x5eb6ff['token'];if(_0x434154[_0x2a4f95(0xbc)]){const _0x17d6b=_0x434154['content'];throw new Error(_0x2a4f95(0x77)+(_0x17d6b?.[0x0]?.[_0x2a4f95(0xd8)]??_0x43edb6['DOgfy']));}const _0x308b31=_0x434154['content'];if(_0x308b31)for(const _0x402b53 of _0x308b31){if(_0x43edb6[_0x2a4f95(0xe9)](_0x402b53[_0x2a4f95(0xa9)],_0x43edb6['rYYAC'])&&_0x402b53['text']){try{const _0x11e6bb=JSON['parse'](_0x402b53[_0x2a4f95(0xd8)]);if(_0x43edb6['ttAcD'](typeof _0x11e6bb?.[_0x2a4f95(0xfb)],'string'))return _0x11e6bb['token'];}catch{}const _0x41c1da=_0x402b53[_0x2a4f95(0xd8)]['match'](/(rngr_[A-Za-z0-9_-]+)/);if(_0x41c1da)return _0x41c1da[0x1];}}return null;}
1
+ const _0x1c9213=_0xbb61;(function(_0x1a1873,_0xd8a8f5){const _0x4b75ab=_0xbb61,_0x32659d=_0x1a1873();while(!![]){try{const _0x323e94=-parseInt(_0x4b75ab(0x9c))/0x1*(-parseInt(_0x4b75ab(0x85))/0x2)+parseInt(_0x4b75ab(0xcb))/0x3+-parseInt(_0x4b75ab(0x88))/0x4*(parseInt(_0x4b75ab(0xbd))/0x5)+parseInt(_0x4b75ab(0x8b))/0x6+-parseInt(_0x4b75ab(0x72))/0x7+parseInt(_0x4b75ab(0x73))/0x8+-parseInt(_0x4b75ab(0xc2))/0x9*(-parseInt(_0x4b75ab(0xd3))/0xa);if(_0x323e94===_0xd8a8f5)break;else _0x32659d['push'](_0x32659d['shift']());}catch(_0x13d0fa){_0x32659d['push'](_0x32659d['shift']());}}}(_0x4aec,0xae68d));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),'.ranger','mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),'.ranger',_0x1c9213(0xa3));export async function getMcpAuthOrigin(){const _0x1b38ed=_0x1c9213,_0x2165eb={'dGOda':function(_0x46247d,_0x2366db,_0x21be4a){return _0x46247d(_0x2366db,_0x21be4a);}};try{const _0x41ccfa=(await _0x2165eb['dGOda'](readFile,AUTH_ORIGIN_PATH,_0x1b38ed(0x89)))['trim']();return _0x41ccfa||null;}catch{return null;}}export async function mcpBootstrap(){const _0x2a68ba=_0x1c9213,_0x4b77f6={'LMhaN':function(_0x347fad,_0x2ebe8a){return _0x347fad===_0x2ebe8a;},'AYjZY':_0x2a68ba(0xce),'zoAbk':function(_0xbd970d){return _0xbd970d();},'pRtxR':function(_0x170e46,_0x433c6b){return _0x170e46+_0x433c6b;},'XTrWn':'MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','tIuaX':function(_0x8fac56,_0x4b0ce5){return _0x8fac56(_0x4b0ce5);},'xjWbg':function(_0x41aba7,_0x3e31a5,_0x543c9d){return _0x41aba7(_0x3e31a5,_0x543c9d);}},_0x3e00b2=getMcpAuthUrl();currentOrigin=_0x3e00b2;const _0x5a12ac=process['stdout'][_0x2a68ba(0xb0)]??![];console[_0x2a68ba(0xe8)](_0x2a68ba(0xde)+_0x3e00b2+'\x0a');const _0x3c6619=await tryUnauthenticated(_0x3e00b2);let _0x54584e=null;if(_0x4b77f6[_0x2a68ba(0xd6)](_0x3c6619,_0x4b77f6['AYjZY']))_0x54584e='';else{_0x54584e=await _0x4b77f6['zoAbk'](loadCachedToken);if(!_0x54584e){if(!_0x5a12ac)throw new Error(_0x4b77f6['pRtxR'](_0x4b77f6['XTrWn'],'Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.'));_0x54584e=await _0x4b77f6['tIuaX'](oauthFlow,_0x3e00b2);}}await _0x4b77f6[_0x2a68ba(0xaa)](callGetCliToken,_0x3e00b2,_0x54584e);}async function tryUnauthenticated(_0x5aa428){const _0x645a2e=_0x1c9213,_0x2ed02a={'SrniP':_0x645a2e(0xd5),'IdUDm':_0x645a2e(0xee),'CSKFj':'application/json,\x20text/event-stream','kgmhA':'2.0','WIwnv':_0x645a2e(0xab),'vgwcS':'2025-03-26','CiYiy':'ranger-cli','gDpUd':function(_0x1134e5,_0x2343fb){return _0x1134e5===_0x2343fb;},'ruKKU':_0x645a2e(0xd0)},_0x431f3e=await fetch(_0x5aa428,{'method':_0x2ed02a['SrniP'],'headers':{'Content-Type':_0x2ed02a[_0x645a2e(0xbe)],'Accept':_0x2ed02a['CSKFj']},'body':JSON[_0x645a2e(0x9e)]({'jsonrpc':_0x2ed02a[_0x645a2e(0x78)],'id':0x1,'method':_0x2ed02a['WIwnv'],'params':{'protocolVersion':_0x2ed02a['vgwcS'],'capabilities':{},'clientInfo':{'name':_0x2ed02a['CiYiy'],'version':'1.0.0'}}})});if(_0x431f3e['ok'])return await _0x431f3e['text'](),_0x645a2e(0xce);if(_0x2ed02a['gDpUd'](_0x431f3e['status'],0x191))return await _0x431f3e[_0x645a2e(0x96)](),_0x2ed02a[_0x645a2e(0xe5)];const _0x3edcfa=await _0x431f3e[_0x645a2e(0x96)]();throw new Error(_0x645a2e(0x80)+_0x431f3e[_0x645a2e(0xbc)]+':\x20'+_0x3edcfa);}class OAuthTimeoutError extends Error{constructor(_0x312fd4){const _0x1f0542=_0x1c9213,_0x1d75b0={'XIftN':_0x1f0542(0xba)};super(_0x312fd4),this['name']=_0x1d75b0['XIftN'];}}async function oauthFlow(_0x1a9bd7){const _0x2f7480=_0x1c9213,_0x45f026={'fOCgg':function(_0x771eec,_0x60610e){return _0x771eec(_0x60610e);},'PJceA':function(_0x34ac67){return _0x34ac67();},'XBmGO':'\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'};try{return await _0x45f026['fOCgg'](oauthFlowAttempt,_0x1a9bd7);}catch(_0x5ceec2){if(_0x5ceec2 instanceof OAuthTimeoutError&&await _0x45f026[_0x2f7480(0xa9)](loadCachedClient))return console[_0x2f7480(0xe8)](_0x45f026[_0x2f7480(0xc3)]),await clearCachedClient(),await oauthFlowAttempt(_0x1a9bd7);throw _0x5ceec2;}}async function oauthFlowAttempt(_0x4c5203){const _0x1f3a43=_0x1c9213,_0x5e16e2={'LivIW':function(_0x380b4a,_0x1d41bd){return _0x380b4a(_0x1d41bd);},'NwscY':function(_0x59251f,_0x2a4f16){return _0x59251f(_0x2a4f16);},'nxCRs':_0x1f3a43(0xb1),'miAJx':'application/json','UYcEs':'refresh_token','xGPkd':'code','KUIgc':function(_0x26dc0b,_0x5472f9,_0x22b1b4){return _0x26dc0b(_0x5472f9,_0x22b1b4);},'CNHqH':_0x1f3a43(0xb4),'YlwWB':_0x1f3a43(0xcf),'hjHYM':function(_0x31a8de,_0x9743cf){return _0x31a8de(_0x9743cf);},'DMakZ':'base64url','wIWwU':'response_type','wqObm':'code_challenge_method','nAXIx':_0x1f3a43(0x90),'vWvnO':'resource','ZNdBf':_0x1f3a43(0x99),'wJVAY':_0x1f3a43(0x71),'vQjoR':'client_secret','pGsef':function(_0x30338d,_0x4de567,_0x2c4c6d){return _0x30338d(_0x4de567,_0x2c4c6d);},'Gvxyv':_0x1f3a43(0xad),'uqdtD':function(_0x194b3c,_0x514816,_0x44293f,_0x5efae7){return _0x194b3c(_0x514816,_0x44293f,_0x5efae7);}},_0x5ede23=_0x4c5203[_0x1f3a43(0xec)](/\/mcp$/,'');process['stdout'][_0x1f3a43(0x9f)](_0x1f3a43(0xa1));const _0x3b2248=await _0x5e16e2[_0x1f3a43(0xd7)](fetch,_0x5ede23+'/.well-known/oauth-protected-resource');if(!_0x3b2248['ok'])throw new Error(_0x1f3a43(0xc6));const _0x20f192=await _0x3b2248['json'](),_0x3e7094=_0x20f192[_0x1f3a43(0xf2)]?.[0x0];if(!_0x3e7094)throw new Error(_0x1f3a43(0xb9));console[_0x1f3a43(0xe8)]('\x20'+_0x3e7094);const _0x5b685a=await _0x5e16e2[_0x1f3a43(0xdd)](fetchAuthServerMetadata,_0x3e7094);let _0x231ee5,_0x1e6a24;const _0x282c3d=await loadCachedClient();if(_0x282c3d)_0x231ee5=_0x282c3d[_0x1f3a43(0x69)],_0x1e6a24=_0x282c3d['clientSecret'];else{if(_0x5b685a[_0x1f3a43(0xdb)]){process['stdout']['write'](_0x5e16e2['nxCRs']);const _0x17aa54=await fetch(_0x5b685a['registration_endpoint'],{'method':'POST','headers':{'Content-Type':_0x5e16e2[_0x1f3a43(0x94)]},'body':JSON[_0x1f3a43(0x9e)]({'client_name':'Ranger\x20CLI','redirect_uris':['http://localhost:'+CALLBACK_PORT+_0x1f3a43(0x8a)],'grant_types':[_0x1f3a43(0x71),_0x5e16e2[_0x1f3a43(0xac)]],'response_types':[_0x5e16e2[_0x1f3a43(0x7a)]],'token_endpoint_auth_method':_0x1f3a43(0x91)})});if(!_0x17aa54['ok']){const _0x26c499=await _0x17aa54[_0x1f3a43(0x96)]();throw new Error('Client\x20registration\x20failed:\x20'+_0x26c499);}const _0x3e1b00=await _0x17aa54['json']();_0x231ee5=_0x3e1b00['client_id'],_0x1e6a24=_0x3e1b00[_0x1f3a43(0xa0)],await _0x5e16e2[_0x1f3a43(0x87)](saveCachedClient,_0x231ee5,_0x1e6a24),console['log'](_0x5e16e2['CNHqH']);}else throw new Error(_0x5e16e2['YlwWB']);}const _0x4cc579=_0x5e16e2['hjHYM'](randomBytes,0x20)[_0x1f3a43(0x9a)]('base64url'),_0x7a765b=createHash(_0x1f3a43(0xf0))['update'](_0x4cc579)['digest'](_0x5e16e2['DMakZ']),_0x1286bf=_0x5e16e2['hjHYM'](randomBytes,0x10)[_0x1f3a43(0x9a)](_0x1f3a43(0xb8)),_0x471ee0=new URL(_0x5b685a['authorization_endpoint']);_0x471ee0['searchParams'][_0x1f3a43(0xcc)](_0x5e16e2['wIWwU'],_0x5e16e2['xGPkd']),_0x471ee0[_0x1f3a43(0xaf)][_0x1f3a43(0xcc)]('client_id',_0x231ee5),_0x471ee0['searchParams']['set']('redirect_uri','http://localhost:'+CALLBACK_PORT+_0x1f3a43(0x8a)),_0x471ee0['searchParams'][_0x1f3a43(0xcc)]('code_challenge',_0x7a765b),_0x471ee0['searchParams']['set'](_0x5e16e2[_0x1f3a43(0x70)],_0x5e16e2['nAXIx']),_0x471ee0['searchParams'][_0x1f3a43(0xcc)](_0x1f3a43(0xbb),_0x1286bf);_0x20f192[_0x1f3a43(0x8d)]&&_0x471ee0['searchParams'][_0x1f3a43(0xcc)](_0x5e16e2[_0x1f3a43(0xdf)],_0x20f192['resource']);console['log']('\x0aOpening\x20browser\x20for\x20authentication...'),console[_0x1f3a43(0xe8)](_0x1f3a43(0xa2)+_0x471ee0[_0x1f3a43(0x9a)]()+'\x0a'),await openBrowser(_0x471ee0[_0x1f3a43(0x9a)]());const _0x5a3db2=await waitForCallback(_0x1286bf);process[_0x1f3a43(0xf4)]['write'](_0x5e16e2[_0x1f3a43(0xc4)]);const _0x2aac6e=new URLSearchParams({'grant_type':_0x5e16e2['wJVAY'],'code':_0x5a3db2,'redirect_uri':_0x1f3a43(0x86)+CALLBACK_PORT+'/callback','client_id':_0x231ee5,'code_verifier':_0x4cc579});_0x1e6a24&&_0x2aac6e['set'](_0x5e16e2['vQjoR'],_0x1e6a24);_0x20f192[_0x1f3a43(0x8d)]&&_0x2aac6e['set']('resource',_0x20f192['resource']);const _0x45ec28=await _0x5e16e2[_0x1f3a43(0x7f)](fetch,_0x5b685a[_0x1f3a43(0xa8)],{'method':_0x1f3a43(0xd5),'headers':{'Content-Type':_0x5e16e2['Gvxyv']},'body':_0x2aac6e});if(!_0x45ec28['ok']){const _0x4e85c9=await _0x45ec28[_0x1f3a43(0x96)]();throw new Error('Token\x20exchange\x20failed:\x20'+_0x4e85c9);}const _0x446a02=await _0x45ec28['json']();return console['log']('\x20done'),await _0x5e16e2[_0x1f3a43(0xe1)](saveCachedToken,_0x446a02[_0x1f3a43(0x7d)],_0x446a02['refresh_token'],_0x446a02['expires_in']),_0x446a02['access_token'];}async function callGetCliToken(_0x1ab83f,_0x4213d4){const _0x3ba3e4=_0x1c9213,_0x359221={'QpWSz':function(_0x48e915,_0x165fa2,_0x22ca8d){return _0x48e915(_0x165fa2,_0x22ca8d);},'skwgL':function(_0x3a9d29,_0xb6fdb1){return _0x3a9d29(_0xb6fdb1);},'zUnNk':_0x3ba3e4(0xea),'DNxSg':_0x3ba3e4(0xf3),'udyDR':_0x3ba3e4(0xab),'FCsMa':_0x3ba3e4(0xb4),'uCORV':_0x3ba3e4(0xd5),'GUuPA':_0x3ba3e4(0x74),'SWvAw':'notifications/initialized','eNuyb':_0x3ba3e4(0xd9),'RxHSe':_0x3ba3e4(0x82),'gesRp':function(_0x758203){return _0x758203();},'NPJMm':function(_0x137edc,_0x554633,_0x1e618e){return _0x137edc(_0x554633,_0x1e618e);},'aIvVB':function(_0x4875ea,_0x4da8fd,_0x1b9a2d,_0x452f72){return _0x4875ea(_0x4da8fd,_0x1b9a2d,_0x452f72);}},_0x42e9ee={'Content-Type':_0x3ba3e4(0xee),'Accept':_0x359221['zUnNk']};_0x4213d4&&(_0x42e9ee[_0x3ba3e4(0xb3)]=_0x3ba3e4(0x93)+_0x4213d4);const _0x5aa627=async _0x413abb=>{const _0x51cc36=_0x3ba3e4,_0x39ec4d=await _0x359221[_0x51cc36(0xef)](fetch,_0x1ab83f,{'method':'POST','headers':_0x42e9ee,'body':JSON['stringify'](_0x413abb)});if(!_0x39ec4d['ok']){const _0xfb842c=await _0x39ec4d['text']();throw new Error(_0x51cc36(0x6a)+_0x39ec4d[_0x51cc36(0xbc)]+':\x20'+_0xfb842c);}return _0x359221[_0x51cc36(0xca)](parseResponse,_0x39ec4d);};process['stdout']['write'](_0x359221[_0x3ba3e4(0x6f)]);const _0x2c9e86=await _0x359221['skwgL'](_0x5aa627,{'jsonrpc':_0x3ba3e4(0x74),'id':0x1,'method':_0x359221['udyDR'],'params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':'ranger-cli','version':_0x3ba3e4(0x7b)}}});if(_0x2c9e86[_0x3ba3e4(0xc8)])throw new Error('MCP\x20initialize\x20failed:\x20'+(_0x2c9e86[_0x3ba3e4(0xc8)]['message']??JSON['stringify'](_0x2c9e86['error'])));console[_0x3ba3e4(0xe8)](_0x359221[_0x3ba3e4(0xe2)]),await fetch(_0x1ab83f,{'method':_0x359221['uCORV'],'headers':_0x42e9ee,'body':JSON['stringify']({'jsonrpc':_0x359221['GUuPA'],'method':_0x359221[_0x3ba3e4(0xc7)]})})['then'](_0x16dc4b=>_0x16dc4b['text']()),process['stdout']['write'](_0x359221[_0x3ba3e4(0x83)]);const _0x12d1dd=await _0x5aa627({'jsonrpc':_0x359221['GUuPA'],'id':0x2,'method':_0x359221[_0x3ba3e4(0x9d)],'params':{'name':'get_cli_token','arguments':{}}});if(_0x12d1dd['error'])throw new Error(_0x3ba3e4(0xa6)+(_0x12d1dd['error'][_0x3ba3e4(0x75)]??JSON[_0x3ba3e4(0x9e)](_0x12d1dd[_0x3ba3e4(0xc8)])));console['log'](_0x359221['FCsMa']);const _0x3eb4d6=extractToken(_0x12d1dd['result']);if(!_0x3eb4d6){console['error'](_0x3ba3e4(0xe4)),console[_0x3ba3e4(0xc8)](JSON['stringify'](_0x12d1dd[_0x3ba3e4(0x95)],null,0x2));throw new Error('Could\x20not\x20extract\x20token\x20from\x20MCP\x20response');}const _0x5e7bc4=_0x359221['QpWSz'](join,_0x359221['gesRp'](homedir),'.ranger'),_0x41dfa3=join(_0x5e7bc4,'refresh.txt');await _0x359221['NPJMm'](mkdir,_0x5e7bc4,{'recursive':!![]}),await _0x359221[_0x3ba3e4(0x84)](writeFile,_0x41dfa3,_0x3eb4d6,{'mode':0x180}),await writeFile(join(_0x5e7bc4,'auth-origin.txt'),_0x1ab83f,{'mode':0x180}),console[_0x3ba3e4(0xe8)]('\x0aToken\x20written\x20to\x20'+_0x41dfa3),console['log'](_0x3ba3e4(0xbf));}async function fetchAuthServerMetadata(_0x216528){const _0xcfb901=_0x1c9213,_0x573b19=_0x216528+'/.well-known/oauth-authorization-server',_0x5025f2=await fetch(_0x573b19);if(!_0x5025f2['ok'])throw new Error('Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20'+_0x573b19+':\x20'+_0x5025f2['status']);return _0x5025f2[_0xcfb901(0xdc)]();}function waitForCallback(_0x3883eb){const _0x17b3c6=_0x1c9213,_0x1cf1e3={'YmRFi':_0x17b3c6(0xc8),'bWAof':'error_description','LbdbB':'text/html','vWIeB':function(_0x5e0999,_0x3d3872){return _0x5e0999!==_0x3d3872;},'mZJDl':_0x17b3c6(0x7c),'OPHAx':_0x17b3c6(0x6d),'peiGZ':function(_0x74960f,_0x290eee){return _0x74960f(_0x290eee);},'BJwNE':_0x17b3c6(0xcd)};return new Promise((_0x387a2f,_0x21340c)=>{const _0x494902=_0x17b3c6,_0x2a9d0d=setTimeout(()=>{const _0x31c6aa=_0xbb61;_0x1ee9b1['close'](),_0x21340c(new OAuthTimeoutError(_0x31c6aa(0xeb)));},0x1d4c0),_0x1ee9b1=_0x1cf1e3[_0x494902(0x8f)](createServer,(_0x52addc,_0x52bf82)=>{const _0x4a1461=_0x494902,_0x38dfce=new URL(_0x52addc[_0x4a1461(0xa7)]??'/',_0x4a1461(0x86)+CALLBACK_PORT);if(_0x38dfce['pathname']!=='/callback'){_0x52bf82['writeHead'](0x194),_0x52bf82[_0x4a1461(0xa4)](_0x4a1461(0xc5));return;}const _0x2bcf21=_0x38dfce[_0x4a1461(0xaf)]['get']('code'),_0x53a5a4=_0x38dfce['searchParams'][_0x4a1461(0xe0)](_0x4a1461(0xbb)),_0xa8c752=_0x38dfce['searchParams']['get'](_0x1cf1e3['YmRFi']);if(_0xa8c752){const _0x5df54b=_0x38dfce[_0x4a1461(0xaf)]['get'](_0x1cf1e3['bWAof'])??_0xa8c752;_0x52bf82[_0x4a1461(0xd2)](0xc8,{'Content-Type':_0x1cf1e3[_0x4a1461(0x66)]}),_0x52bf82[_0x4a1461(0xa4)]('<html><body><h2>Authentication\x20failed</h2><p>'+_0x5df54b+'</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>'),clearTimeout(_0x2a9d0d),_0x1ee9b1['close'](),_0x21340c(new Error(_0x4a1461(0xae)+_0x5df54b));return;}if(!_0x2bcf21||_0x1cf1e3['vWIeB'](_0x53a5a4,_0x3883eb)){_0x52bf82[_0x4a1461(0xd2)](0x190,{'Content-Type':_0x1cf1e3[_0x4a1461(0x66)]}),_0x52bf82[_0x4a1461(0xa4)](_0x1cf1e3['mZJDl']);return;}_0x52bf82['writeHead'](0xc8,{'Content-Type':_0x4a1461(0x65)}),_0x52bf82['end'](_0x1cf1e3['OPHAx']),clearTimeout(_0x2a9d0d),_0x1ee9b1['close'](),_0x387a2f(_0x2bcf21);});_0x1ee9b1['listen'](CALLBACK_PORT,_0x1cf1e3[_0x494902(0xed)]);});}async function openBrowser(_0x591b21){const _0x6c2145=_0x1c9213,_0x1f9cb1={'jRPCb':function(_0x3b24f6,_0xec87e2){return _0x3b24f6===_0xec87e2;},'WKoNC':_0x6c2145(0x97),'ECKlF':_0x6c2145(0xe7),'jFwhm':_0x6c2145(0xc0),'suATu':function(_0x339c3e,_0x21239b){return _0x339c3e(_0x21239b);}},{exec:_0x813bbb}=await import('child_process'),_0x2e3c5e=_0x1f9cb1[_0x6c2145(0x8e)](process[_0x6c2145(0x79)],_0x1f9cb1['WKoNC'])?_0x1f9cb1[_0x6c2145(0xd4)]:process['platform']==='win32'?_0x6c2145(0xb6):_0x1f9cb1['jFwhm'];_0x1f9cb1['suATu'](_0x813bbb,_0x2e3c5e+'\x20\x22'+_0x591b21+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x3122f=_0x1c9213,_0x4b6cfc={'qgxao':function(_0x13f751,_0x117c45){return _0x13f751!==_0x117c45;},'BUVgm':function(_0x304a42,_0x1047b2){return _0x304a42>_0x1047b2;}};try{const _0x19acc1=JSON[_0x3122f(0xda)](await readFile(TOKEN_CACHE_PATH,'utf-8'));if(_0x19acc1[_0x3122f(0x67)]&&_0x4b6cfc[_0x3122f(0x9b)](_0x19acc1['origin'],currentOrigin))return null;if(_0x19acc1[_0x3122f(0x7e)]&&_0x4b6cfc['BUVgm'](Date['now'](),_0x19acc1[_0x3122f(0x7e)]))return null;return _0x19acc1['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x215c1d,_0x242581,_0x3f0e05){const _0x32b82b=_0x1c9213,_0x569373={'WCaOZ':function(_0x56b362){return _0x56b362();},'UPPuP':function(_0x4979d2,_0x3101a9){return _0x4979d2+_0x3101a9;}},_0x2ae3db=await _0x569373['WCaOZ'](loadCachedData),_0x4b7a5c={..._0x2ae3db,'origin':currentOrigin,'accessToken':_0x215c1d,'refreshToken':_0x242581??_0x2ae3db?.[_0x32b82b(0x6e)],'expiresAt':_0x3f0e05?_0x569373[_0x32b82b(0x77)](Date['now'](),_0x3f0e05*0x3e8):undefined};await mkdir(join(homedir(),_0x32b82b(0x6b)),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x4b7a5c),{'mode':0x180});}async function loadCachedClient(){const _0x37dc80=_0x1c9213,_0x21b210={'OmJAP':function(_0x3730c8){return _0x3730c8();}},_0x1c9bcb=await _0x21b210['OmJAP'](loadCachedData);if(_0x1c9bcb?.['origin']&&_0x1c9bcb[_0x37dc80(0x67)]!==currentOrigin)return null;return _0x1c9bcb?.[_0x37dc80(0x69)]?{'clientId':_0x1c9bcb[_0x37dc80(0x69)],'clientSecret':_0x1c9bcb[_0x37dc80(0x98)]}:null;}async function clearCachedClient(){const _0x3413c5=_0x1c9213,_0x21a000=await loadCachedData();if(!_0x21a000)return;const {clientId:_0x4b744c,clientSecret:_0x2c3673,..._0x36db63}=_0x21a000;await writeFile(TOKEN_CACHE_PATH,JSON[_0x3413c5(0x9e)](_0x36db63),{'mode':0x180});}async function saveCachedClient(_0x3f2566,_0x33b16f){const _0x586d52=_0x1c9213,_0x37255b={'LvuBI':function(_0x3838bf){return _0x3838bf();},'uKzzV':function(_0x161108,_0x2ccf8e,_0x12f5a4){return _0x161108(_0x2ccf8e,_0x12f5a4);},'vfsjj':function(_0x131f55){return _0x131f55();}},_0x717506=await _0x37255b[_0x586d52(0xe9)](loadCachedData),_0x971103={..._0x717506,'origin':currentOrigin,'accessToken':_0x717506?.[_0x586d52(0x8c)]??'','clientId':_0x3f2566,'clientSecret':_0x33b16f};await mkdir(_0x37255b['uKzzV'](join,_0x37255b['vfsjj'](homedir),_0x586d52(0x6b)),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x586d52(0x9e)](_0x971103),{'mode':0x180});}function _0xbb61(_0x17a324,_0x5a7f89){_0x17a324=_0x17a324-0x65;const _0x4aecbb=_0x4aec();let _0xbb610a=_0x4aecbb[_0x17a324];return _0xbb610a;}function _0x4aec(){const _0x19107c=['http://localhost:','KUIgc','16DJLroa','utf-8','/callback','2818728eEmmcx','accessToken','resource','jRPCb','peiGZ','S256','none','string','Bearer\x20','miAJx','result','text','darwin','clientSecret','Exchanging\x20authorization\x20code...','toString','qgxao','1243ncTjaj','RxHSe','stringify','write','client_secret','Discovering\x20authorization\x20server...','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','auth-origin.txt','end','startsWith','get_cli_token\x20failed:\x20','url','token_endpoint','PJceA','xjWbg','initialize','UYcEs','application/x-www-form-urlencoded','OAuth\x20error:\x20','searchParams','isTTY','Registering\x20OAuth\x20client...','WZZSK','Authorization','\x20done','length','start','VrveD','hex','No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','OAuthTimeoutError','state','status','636465lNOWlN','IdUDm','Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a','xdg-open','text/event-stream','576XXMOpM','XBmGO','ZNdBf','Not\x20found','Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','SWvAw','error','token','skwgL','1229343oWmRKU','set','127.0.0.1','proxied','Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','needs-oauth','slice','writeHead','44130TGOHIB','ECKlF','POST','LMhaN','LivIW','NqZsg','Requesting\x20CLI\x20token...','parse','registration_endpoint','json','NwscY','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','vWvnO','get','uqdtD','FCsMa','includes','\x0aUnexpected\x20response\x20structure:','ruKKU','content-type','open','log','LvuBI','application/json,\x20text/event-stream','OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','replace','BJwNE','application/json','QpWSz','sha256','headers','authorization_servers','Initializing\x20MCP\x20session...','stdout','text/html','LbdbB','origin','trim','clientId','HTTP\x20','.ranger','qbxQj','<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','refreshToken','DNxSg','wqObm','authorization_code','5151972esFTOK','5962736BTEpeG','2.0','message','isError','UPPuP','kgmhA','platform','xGPkd','1.0.0','<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','access_token','expiresAt','pGsef','MCP\x20server\x20returned\x20HTTP\x20','data:','tools/call','eNuyb','aIvVB','84AbhySZ'];_0x4aec=function(){return _0x19107c;};return _0x4aec();}async function loadCachedData(){const _0xa9b96=_0x1c9213,_0x1fe818={'WZZSK':_0xa9b96(0x89)};try{return JSON['parse'](await readFile(TOKEN_CACHE_PATH,_0x1fe818[_0xa9b96(0xb2)]));}catch{return null;}}async function parseResponse(_0x2da509){const _0xaf5631=_0x1c9213,_0x2c207f={'fbaqT':_0xaf5631(0xe6),'VrveD':_0xaf5631(0x81)},_0xacdd33=_0x2da509[_0xaf5631(0xf1)]['get'](_0x2c207f['fbaqT'])??'';if(_0xacdd33[_0xaf5631(0xe3)](_0xaf5631(0xc1))){const _0x27fbb7=await _0x2da509[_0xaf5631(0x96)]();for(const _0x568218 of _0x27fbb7['split']('\x0a')){const _0x42713f=_0x568218[_0xaf5631(0x68)]();if(_0x42713f[_0xaf5631(0xa5)]('data:')){const _0x4683b1=_0x42713f[_0xaf5631(0xd1)](_0x2c207f[_0xaf5631(0xb7)][_0xaf5631(0xb5)])['trim']();if(!_0x4683b1)continue;try{const _0x566c2f=JSON['parse'](_0x4683b1);if(_0x566c2f['id']!==undefined||_0x566c2f['error'])return _0x566c2f;}catch{}}}throw new Error('No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream');}return _0x2da509['json']();}function extractToken(_0x529de4){const _0x50d942=_0x1c9213,_0x27675d={'jdhiN':function(_0x205ac6,_0x44ba6a){return _0x205ac6===_0x44ba6a;},'NqZsg':function(_0x4e839a,_0x380daf){return _0x4e839a===_0x380daf;},'Tukgt':_0x50d942(0x96),'qbxQj':_0x50d942(0x92)};if(!_0x529de4)return null;const _0x937c14=_0x529de4['structuredContent'];if(_0x937c14?.[_0x50d942(0xc9)]&&_0x27675d['jdhiN'](typeof _0x937c14[_0x50d942(0xc9)],'string'))return _0x937c14['token'];if(_0x529de4[_0x50d942(0x76)]){const _0x55fa04=_0x529de4['content'];throw new Error('Server\x20returned\x20error:\x20'+(_0x55fa04?.[0x0]?.[_0x50d942(0x96)]??'Unknown\x20error'));}const _0x1509db=_0x529de4['content'];if(_0x1509db)for(const _0x410fef of _0x1509db){if(_0x27675d['NqZsg'](_0x410fef['type'],_0x27675d['Tukgt'])&&_0x410fef['text']){try{const _0x59cc1a=JSON[_0x50d942(0xda)](_0x410fef[_0x50d942(0x96)]);if(_0x27675d[_0x50d942(0xd8)](typeof _0x59cc1a?.[_0x50d942(0xc9)],_0x27675d[_0x50d942(0x6c)]))return _0x59cc1a[_0x50d942(0xc9)];}catch{}const _0x2d9a82=_0x410fef[_0x50d942(0x96)]['match'](/(rngr_[A-Za-z0-9_-]+)/);if(_0x2d9a82)return _0x2d9a82[0x1];}}return null;}
@@ -1 +1 @@
1
- (function(_0x1cf727,_0x47f2d5){const _0x47e24f=_0x34fc,_0x47cad3=_0x1cf727();while(!![]){try{const _0x2ff20b=-parseInt(_0x47e24f(0xc5))/0x1+parseInt(_0x47e24f(0xbb))/0x2+-parseInt(_0x47e24f(0x98))/0x3+-parseInt(_0x47e24f(0xc0))/0x4*(-parseInt(_0x47e24f(0x8d))/0x5)+parseInt(_0x47e24f(0x9d))/0x6*(-parseInt(_0x47e24f(0xcc))/0x7)+-parseInt(_0x47e24f(0xa5))/0x8+parseInt(_0x47e24f(0xcd))/0x9;if(_0x2ff20b===_0x47f2d5)break;else _0x47cad3['push'](_0x47cad3['shift']());}catch(_0x342120){_0x47cad3['push'](_0x47cad3['shift']());}}}(_0x4db9,0x6c3bd));import{readFile,rm}from'fs/promises';import{existsSync}from'fs';import{join}from'path';import _0x255b4d from'inquirer';import{getEnvNames}from'./env.js';import{getEnvDir,loadSettings}from'./utils/settings.js';import{getRangerDir}from'./utils/rangerRoot.js';function _0x34fc(_0x6ea894,_0x4d6951){_0x6ea894=_0x6ea894-0x79;const _0x4db993=_0x4db9();let _0x34fc65=_0x4db993[_0x6ea894];return _0x34fc65;}import{ApiError,createCloudProfile,fetchAuthConfig,saveCloudProfileCredentials,uploadCloudProfileSession}from'./utils/cloudProfile.js';import{matchAuthEnvironment}from'./utils/matchAuthEnvironment.js';import{readProjectsConfig,setProfileOverride,writeProjectsConfig}from'./utils/projectsConfig.js';import{isPathGitTracked}from'./utils/gitTracked.js';function formatPlanLine(_0x272882){const _0x119356=_0x34fc;if(_0x272882[_0x119356(0xb6)]===_0x119356(0x9a))return'\x20\x20'+_0x272882[_0x119356(0xa3)]['padEnd'](0x1e)+_0x119356(0x9f)+_0x272882[_0x119356(0xa9)]+')';if(_0x272882['preserveBaseUrl']&&_0x272882['baseUrl'])return'\x20\x20'+_0x272882[_0x119356(0xa3)]['padEnd'](0x1e)+_0x119356(0x83)+_0x272882[_0x119356(0x84)]+_0x119356(0x7a)+_0x272882[_0x119356(0x7e)]+'\x20as\x20project\x20override)';if(_0x272882['baseUrl'])return'\x20\x20'+_0x272882[_0x119356(0xa3)][_0x119356(0xcb)](0x1e)+_0x119356(0x83)+_0x272882['envKey']+_0x119356(0xc9)+_0x272882[_0x119356(0x7e)]+')';return'\x20\x20'+_0x272882['profileName'][_0x119356(0xcb)](0x1e)+_0x119356(0x83)+_0x272882['envKey']+')';}function shouldWarnGitTrackedOnce(_0x5556f9){const _0x14b165=_0x34fc,_0xfe900c=readProjectsConfig(),_0x40e942=_0xfe900c['projects'][_0x5556f9]??={},_0x4b05e1=_0x40e942[_0x14b165(0xb9)]??={},_0x1cb55e=_0x4b05e1[_0x14b165(0x9b)],_0x14d75d=new Date(),_0x5d7371=_0x14d75d['toISOString']()[_0x14b165(0x91)](0x0,0xa);if(_0x1cb55e===_0x5d7371)return![];return _0x4b05e1['gitTrackedRanger']=_0x5d7371,writeProjectsConfig(_0xfe900c),!![];}export async function migrateProfile(_0x160685,_0x1b55d5){const _0x42b746=_0x34fc,_0x4b1f8d={'dcloS':function(_0x4481e6,_0x5a97af){return _0x4481e6===_0x5a97af;},'pyoiy':'No\x20cloud\x20profile\x20auth\x20config\x20found\x20for\x20this\x20org.\x20Migration\x20requires\x20at\x20least\x20one\x20configured\x20auth\x20environment.','YNYWt':function(_0x492d0e,_0x245ce8){return _0x492d0e(_0x245ce8);},'QESCZ':function(_0x26b884,_0x53cd59){return _0x26b884(_0x53cd59);},'JLlwE':'skip','VtfFs':_0x42b746(0xbe),'qwzgP':function(_0xb90923,_0x358342){return _0xb90923(_0x358342);},'gSvXW':_0x42b746(0x89),'vTEiL':function(_0x57e856,_0x396500,_0x4f9fd3){return _0x57e856(_0x396500,_0x4f9fd3);},'QKfrG':'baseUrl','isHfS':_0x42b746(0xc4),'aRvni':function(_0x33f3c6,_0x26cc2d){return _0x33f3c6&&_0x26cc2d;},'iaaRS':'confirm','fwZVP':'Aborted.','dgIXW':function(_0xc8bb73,_0x523a7b){return _0xc8bb73(_0x523a7b);},'ZwxuM':'4|1|3|2|0','KHksW':_0x42b746(0xb8),'iuFiK':function(_0x20aeb2,_0x3f8a58){return _0x20aeb2===_0x3f8a58;},'CzUDg':'name_conflict','ZJgLN':'utf-8','pUeqJ':function(_0x148973,_0x50ed5a,_0x4b7bbe,_0x5a0871,_0x12c97d){return _0x148973(_0x50ed5a,_0x4b7bbe,_0x5a0871,_0x12c97d);},'YsLRV':function(_0x55f910,_0x4eaf0c){return _0x55f910 instanceof _0x4eaf0c;},'aUbZh':function(_0x565ade,_0x5ba4a6){return _0x565ade(_0x5ba4a6);},'hJviC':function(_0x2ab436,_0x202b1e){return _0x2ab436 instanceof _0x202b1e;},'RkekT':function(_0x441b53,_0x3a0252){return _0x441b53(_0x3a0252);},'mkRAS':function(_0x15df4b,_0x382108){return _0x15df4b+_0x382108;}};if(!_0x160685['profileName']&&!_0x160685['all'])throw new Error('Provide\x20a\x20profile\x20name\x20or\x20--all.\x0a\x20\x20Example:\x20ranger\x20profile\x20migrate\x20--all\x20--dry-run');let _0x4dee4c;try{_0x4dee4c=await fetchAuthConfig();}catch(_0x5a379b){throw new Error('Could\x20not\x20fetch\x20auth\x20config\x20('+(_0x5a379b instanceof Error?_0x5a379b['message']:String(_0x5a379b))+').\x20Run:\x20ranger\x20setup');}if(!_0x4dee4c||!_0x4dee4c['environments']||_0x4b1f8d['dcloS'](Object['keys'](_0x4dee4c['environments'])[_0x42b746(0xaa)],0x0))throw new Error(_0x4b1f8d['pyoiy']);const _0x3dadd7=[];if(_0x160685['all']){const {envNames:_0x4b0b71,envTypes:_0x42c790}=await getEnvNames();for(const _0xc055b3 of _0x4b0b71){if(_0x42c790[_0xc055b3]==='ci')continue;_0x3dadd7['push'](_0xc055b3);}}else _0x160685['profileName']&&_0x3dadd7['push'](_0x160685['profileName']);if(_0x3dadd7['length']===0x0){console['log']('No\x20local\x20profiles\x20found\x20to\x20migrate.');return;}const _0x3ac51e=[];for(const _0x364e4a of _0x3dadd7){const _0x1b1163=_0x4b1f8d[_0x42b746(0xb5)](getEnvDir,_0x364e4a);if(!_0x4b1f8d['QESCZ'](existsSync,_0x1b1163)){_0x3ac51e['push']({'kind':_0x4b1f8d['JLlwE'],'profileName':_0x364e4a,'reason':_0x4b1f8d[_0x42b746(0x86)]});continue;}const _0x11b2cd=await _0x4b1f8d[_0x42b746(0x99)](loadSettings,_0x364e4a),_0x4470eb=_0x11b2cd[_0x42b746(0x7e)];if(!_0x4470eb){_0x3ac51e[_0x42b746(0xc3)]({'kind':_0x42b746(0x9a),'profileName':_0x364e4a,'reason':_0x4b1f8d[_0x42b746(0x82)]});continue;}const _0x7354fd=_0x4b1f8d[_0x42b746(0x85)](matchAuthEnvironment,_0x4470eb,_0x4dee4c);if(!_0x7354fd){_0x3ac51e[_0x42b746(0xc3)]({'kind':_0x4b1f8d['JLlwE'],'profileName':_0x364e4a,'reason':_0x42b746(0x79)});continue;}const _0x1d762d=_0x4dee4c[_0x42b746(0xb2)][_0x7354fd],_0x35ad25=_0x1d762d?.['domains']??[],_0x58a3a0=_0x35ad25[_0x42b746(0xca)](_0x1bb3c2=>{const _0x3d9ce1=_0x42b746;try{return new URL(_0x1bb3c2)['origin']===new URL(_0x4470eb)[_0x3d9ce1(0xba)];}catch{return![];}}),_0x596cf6={};for(const [_0x7b17fb,_0x30b85b]of Object[_0x42b746(0xaf)](_0x11b2cd)){if(_0x7b17fb===_0x4b1f8d['QKfrG'])continue;if(_0x30b85b===undefined)continue;_0x596cf6[_0x7b17fb]=_0x30b85b;}!_0x58a3a0&&(_0x596cf6['baseUrl']=_0x4470eb);const _0x336be5=join(_0x1b1163,_0x4b1f8d[_0x42b746(0xbf)]),_0x50d148=existsSync(_0x336be5);_0x3ac51e['push']({'kind':_0x42b746(0xa2),'profileName':_0x364e4a,'envKey':_0x7354fd,'baseUrl':_0x4470eb,'preserveBaseUrl':!_0x58a3a0,'settings':_0x596cf6,'authJsonPath':_0x50d148?_0x336be5:null});}console[_0x42b746(0x8f)](_0x42b746(0xb3));for(const _0x94721e of _0x3ac51e){console['log'](formatPlanLine(_0x94721e));}if(_0x160685[_0x42b746(0x96)]){console[_0x42b746(0x8f)]('Nothing\x20migrated.\x20Run\x20without\x20--dry-run\x20to\x20apply.');return;}const _0x5ad7c4=Boolean(process['stdin'][_0x42b746(0x92)]&&process[_0x42b746(0x7c)][_0x42b746(0x92)]),_0x458187=_0x3ac51e['some'](_0x3802ef=>_0x3802ef[_0x42b746(0xb6)]===_0x42b746(0xa2));if(_0x4b1f8d['aRvni'](_0x458187,_0x5ad7c4)&&!_0x160685[_0x42b746(0x94)]){const {proceed:_0x405935}=await _0x255b4d[_0x42b746(0xb7)]([{'type':_0x4b1f8d[_0x42b746(0x7b)],'name':'proceed','message':_0x42b746(0xab),'default':![]}]);if(!_0x405935){console[_0x42b746(0x8f)](_0x4b1f8d[_0x42b746(0xc2)]);return;}}const _0x2cc13a=getRangerDir();let _0x48c832=![];if(existsSync(_0x2cc13a))try{_0x48c832=await _0x4b1f8d['dgIXW'](isPathGitTracked,_0x2cc13a);}catch{_0x48c832=![];}if(_0x48c832&&_0x4b1f8d['QESCZ'](shouldWarnGitTrackedOnce,process[_0x42b746(0xc8)]())){const _0x5e220a=_0x4b1f8d[_0x42b746(0xc7)][_0x42b746(0x88)]('|');let _0x195a3b=0x0;while(!![]){switch(_0x5e220a[_0x195a3b++]){case'0':console[_0x42b746(0x8f)](_0x42b746(0xc1));continue;case'1':console[_0x42b746(0x8f)](_0x4b1f8d['KHksW']);continue;case'2':console['log'](_0x42b746(0x95));continue;case'3':console['log']('\x20\x20git\x20rm\x20-r\x20--cached\x20.ranger/');continue;case'4':console['log'](_0x42b746(0x90));continue;}break;}}let _0x593869=0x0,_0x47af63=0x0,_0x386fe3=0x0,_0x12cbf1=0x0;for(const _0x1614a8 of _0x3ac51e){if(_0x1614a8['kind']===_0x42b746(0x9a)){_0x12cbf1++,_0x1b55d5?.['trackPhaseEnd'](_0x42b746(0xbc),{'profileName':_0x1614a8['profileName'],'reason':_0x1614a8['reason']});continue;}_0x1b55d5?.['trackPhaseStart']('profile.migrate.started',{'profileName':_0x1614a8[_0x42b746(0xa3)],'envKey':_0x1614a8[_0x42b746(0x84)]});try{try{await createCloudProfile(_0x1614a8['profileName'],_0x1614a8[_0x42b746(0x84)],{'settings':_0x1614a8['settings']});}catch(_0x179d04){if(_0x179d04 instanceof ApiError&&_0x4b1f8d['iuFiK'](_0x179d04['status'],0x199)){console['log']('\x20\x20⚠\x20'+_0x1614a8[_0x42b746(0xa3)]+_0x42b746(0xd1)),_0x12cbf1++,_0x1b55d5?.[_0x42b746(0xb1)](_0x42b746(0xbc),{'profileName':_0x1614a8['profileName'],'reason':_0x4b1f8d[_0x42b746(0xbd)]});continue;}throw _0x179d04;}let _0x2ceeca=![],_0x346702=![];if(_0x1614a8['authJsonPath'])try{const _0x432f23=await readFile(_0x1614a8['authJsonPath'],_0x4b1f8d['ZJgLN']),_0x16cb22=JSON['parse'](_0x432f23);await _0x4b1f8d[_0x42b746(0x85)](uploadCloudProfileSession,_0x1614a8[_0x42b746(0xa3)],_0x16cb22),_0x2ceeca=!![];}catch(_0x46bd54){_0x346702=!![],console[_0x42b746(0x8f)]('\x20\x20⚠\x20'+_0x1614a8['profileName']+_0x42b746(0xa6)+(_0x46bd54 instanceof Error?_0x46bd54[_0x42b746(0x97)]:_0x4b1f8d['YNYWt'](String,_0x46bd54))+').\x20Cloud\x20profile\x20created;\x20local\x20auth.json\x20left\x20in\x20place.');}let _0x387165=![];if(_0x160685[_0x42b746(0x81)]){const _0x595e6d=process[_0x42b746(0xae)]['RANGER_TEST_USERNAME'],_0x34f1b0=process['env'][_0x42b746(0x9c)];if(_0x4b1f8d[_0x42b746(0xad)](_0x595e6d,_0x34f1b0))try{await saveCloudProfileCredentials(_0x1614a8[_0x42b746(0xa3)],_0x595e6d,_0x34f1b0),_0x387165=!![];}catch(_0x2b9b56){console['log']('\x20\x20⚠\x20'+_0x1614a8['profileName']+_0x42b746(0x8b)+(_0x2b9b56 instanceof Error?_0x2b9b56['message']:String(_0x2b9b56))+').');}else console[_0x42b746(0x8f)]('\x20\x20⚠\x20'+_0x1614a8[_0x42b746(0xa3)]+_0x42b746(0xac));}if(_0x1614a8['preserveBaseUrl']&&_0x1614a8['baseUrl'])try{_0x4b1f8d[_0x42b746(0x87)](setProfileOverride,process[_0x42b746(0xc8)](),_0x1614a8['profileName'],_0x42b746(0x7e),_0x1614a8[_0x42b746(0x7e)]);}catch(_0x5c5edc){console[_0x42b746(0x8f)]('\x20\x20⚠\x20'+_0x1614a8[_0x42b746(0xa3)]+_0x42b746(0xcf)+(_0x4b1f8d['YsLRV'](_0x5c5edc,Error)?_0x5c5edc[_0x42b746(0x97)]:_0x4b1f8d['YNYWt'](String,_0x5c5edc))+').');}const _0x3b46ad=_0x4b1f8d[_0x42b746(0x7d)](getEnvDir,_0x1614a8[_0x42b746(0xa3)]);if(!_0x346702&&_0x4b1f8d['aUbZh'](existsSync,_0x3b46ad))try{await rm(_0x3b46ad,{'recursive':!![],'force':!![]}),_0x47af63++;}catch(_0x25c8fc){console[_0x42b746(0x8f)]('\x20\x20⚠\x20'+_0x1614a8['profileName']+_0x42b746(0x8e)+_0x3b46ad+'\x20('+(_0x25c8fc instanceof Error?_0x25c8fc[_0x42b746(0x97)]:String(_0x25c8fc))+').');}_0x593869++,_0x1614a8[_0x42b746(0xce)]&&_0x1614a8['baseUrl']?console[_0x42b746(0x8f)]('\x20\x20✓\x20'+_0x1614a8['profileName']+'\x20migrated\x20to\x20cloud\x20(env:\x20'+_0x1614a8['envKey']+_0x42b746(0xa1)):console[_0x42b746(0x8f)](_0x42b746(0x7f)+_0x1614a8[_0x42b746(0xa3)]+_0x42b746(0x93)+_0x1614a8[_0x42b746(0x84)]+')'),_0x1b55d5?.['trackPhaseEnd']('profile.migrate.succeeded',{'profileName':_0x1614a8[_0x42b746(0xa3)],'envKey':_0x1614a8['envKey'],'wasGitTracked':_0x48c832,'hadSession':_0x2ceeca,'savedCreds':_0x387165});}catch(_0x18e07e){_0x386fe3++,console['log'](_0x42b746(0x8c)+_0x1614a8[_0x42b746(0xa3)]+'\x20failed:\x20'+(_0x4b1f8d[_0x42b746(0xc6)](_0x18e07e,Error)?_0x18e07e[_0x42b746(0x97)]:_0x4b1f8d[_0x42b746(0xa8)](String,_0x18e07e))),_0x1b55d5?.['trackPhaseEnd']('profile.migrate.failed',{'profileName':_0x1614a8['profileName'],'error':_0x4b1f8d['YsLRV'](_0x18e07e,Error)?_0x18e07e['message']:String(_0x18e07e)});}}const _0x1e43b9=[];if(_0x593869>0x0)_0x1e43b9['push'](_0x593869+_0x42b746(0xd0)+(_0x4b1f8d[_0x42b746(0x8a)](_0x593869,0x1)?'':'s')+_0x42b746(0xa4));if(_0x47af63>0x0)_0x1e43b9[_0x42b746(0xc3)](_0x42b746(0x9e)+_0x47af63+_0x42b746(0xa0)+(_0x4b1f8d['dcloS'](_0x47af63,0x1)?'y':'ies'));if(_0x12cbf1>0x0)_0x1e43b9[_0x42b746(0xc3)](_0x12cbf1+_0x42b746(0xb4));if(_0x386fe3>0x0)_0x1e43b9['push'](_0x386fe3+_0x42b746(0x80));if(_0x1e43b9['length']>0x0)console[_0x42b746(0x8f)](_0x4b1f8d[_0x42b746(0xb0)](_0x1e43b9[_0x42b746(0xa7)]('.\x20'),'.'));}function _0x4db9(){const _0x188075=['saveCreds','gSvXW','\x20→\x20cloud\x20(env:\x20','envKey','vTEiL','VtfFs','pUeqJ','split','no\x20baseUrl\x20in\x20settings.json','dcloS',':\x20failed\x20to\x20save\x20credentials\x20(','\x20\x20✗\x20','2249385kiQKEq',':\x20failed\x20to\x20delete\x20local\x20dir\x20','log','Warning:\x20.ranger/\x20is\x20tracked\x20in\x20this\x20git\x20repo.','slice','isTTY','\x20migrated\x20to\x20cloud\x20(env:\x20','yes','\x20\x20echo\x20\x27.ranger/\x27\x20>>\x20.gitignore','dryRun','message','13497RGWFzW','qwzgP','skip','gitTrackedRanger','RANGER_TEST_PASSWORD','30jKRXug','Deleted\x20','\x20→\x20skip\x20(','\x20local\x20director',',\x20baseUrl\x20override\x20→\x20projects.json)','migrate','profileName','\x20migrated','3476040siMhXg',':\x20session\x20upload\x20failed\x20(','join','RkekT','reason','length','Proceed?',':\x20--save-creds\x20requested,\x20but\x20RANGER_TEST_USERNAME/PASSWORD\x20not\x20set\x20in\x20env.','aRvni','env','entries','mkRAS','trackPhaseEnd','environments','Plan:','\x20skipped','YNYWt','kind','prompt','After\x20migration,\x20uncommit\x20it:','_warnings','origin','1379828KxzgZk','profile.migrate.skipped','CzUDg','local\x20profile\x20directory\x20not\x20found','isHfS','4PUUvXB','Continuing\x20with\x20migration...','fwZVP','push','auth.json','759170LTbICb','hJviC','ZwxuM','cwd',',\x20matches\x20','some','padEnd','779261VaNZgD','9524907zKECiN','preserveBaseUrl',':\x20failed\x20to\x20write\x20projects.json\x20override\x20(','\x20profile',':\x20cloud\x20profile\x20with\x20this\x20name\x20already\x20exists.\x20Skipping.','no\x20matching\x20auth\x20env',',\x20preserving\x20baseUrl\x20','iaaRS','stdout','dgIXW','baseUrl','\x20\x20✓\x20','\x20failed'];_0x4db9=function(){return _0x188075;};return _0x4db9();}
1
+ function _0x7cb8(){const _0x4b538d=[':\x20session\x20upload\x20failed\x20(','length','\x20failed:\x20','373136ZGCAcn','2428528BcpdXb','message','\x20\x20✓\x20','no\x20matching\x20auth\x20env','XywFZ','domains','preserveBaseUrl',',\x20baseUrl\x20override\x20→\x20projects.json)','log',':\x20cloud\x20profile\x20with\x20this\x20name\x20already\x20exists.\x20Skipping.','15kFeFwH','BckSv','environments','BZlay','dztjo','baseUrl','projects',':\x20failed\x20to\x20write\x20projects.json\x20override\x20(','\x20\x20⚠\x20','aNPrw','4632144OHAHJs','2fBRaPc','GrlDr','After\x20migration,\x20uncommit\x20it:','trackPhaseEnd',',\x20matches\x20','sqjKk','push','ksCDZ','183726ivKfRd','proceed','\x20\x20git\x20rm\x20-r\x20--cached\x20.ranger/','\x20migrated\x20to\x20cloud\x20(env:\x20','SKFCR','some','NOqkC','240pxUpeQ','lALIA','profileName','YeVAn','61384XKTaUH','Proceed?','Deleted\x20','slice','Yoisg','Plan:','\x20skipped','authJsonPath','584664CkXHeF','entries','3uLUpxg','jQyDN','\x20→\x20cloud\x20(env:\x20','isTTY','env','581RNHZmG','No\x20cloud\x20profile\x20auth\x20config\x20found\x20for\x20this\x20org.\x20Migration\x20requires\x20at\x20least\x20one\x20configured\x20auth\x20environment.','LNViU','skip','cCAQV','hfZYB','tEkoL','EAkaR','Aborted.','oKjZe','envKey',':\x20--save-creds\x20requested,\x20but\x20RANGER_TEST_USERNAME/PASSWORD\x20not\x20set\x20in\x20env.','UTixt',',\x20preserving\x20baseUrl\x20','join','\x20migrated','\x20→\x20skip\x20(','VsQSS','gitTrackedRanger','24362442kPJjPR','profile.migrate.skipped','confirm','\x20\x20✗\x20','12SrRoEE'];_0x7cb8=function(){return _0x4b538d;};return _0x7cb8();}(function(_0x5a82f9,_0x48a041){const _0x324874=_0x38ff,_0x1b2a87=_0x5a82f9();while(!![]){try{const _0x53b47d=-parseInt(_0x324874(0xfc))/0x1*(parseInt(_0x324874(0x139))/0x2)+-parseInt(_0x324874(0x119))/0x3*(parseInt(_0x324874(0x13a))/0x4)+-parseInt(_0x324874(0xf1))/0x5*(parseInt(_0x324874(0x117))/0x6)+-parseInt(_0x324874(0x11e))/0x7*(-parseInt(_0x324874(0x10f))/0x8)+-parseInt(_0x324874(0x104))/0x9*(parseInt(_0x324874(0x10b))/0xa)+-parseInt(_0x324874(0xfb))/0xb+parseInt(_0x324874(0x135))/0xc*(parseInt(_0x324874(0x131))/0xd);if(_0x53b47d===_0x48a041)break;else _0x1b2a87['push'](_0x1b2a87['shift']());}catch(_0xc776d8){_0x1b2a87['push'](_0x1b2a87['shift']());}}}(_0x7cb8,0x4fe55));import{readFile,rm}from'fs/promises';import{existsSync}from'fs';import{join}from'path';import _0x5ce11d from'inquirer';import{getEnvNames}from'./env.js';import{getEnvDir,loadSettings}from'./utils/settings.js';import{getRangerDir}from'./utils/rangerRoot.js';import{ApiError,createCloudProfile,fetchAuthConfig,saveCloudProfileCredentials,uploadCloudProfileSession}from'./utils/cloudProfile.js';function _0x38ff(_0x31d151,_0x4cfd2f){_0x31d151=_0x31d151-0xed;const _0x7cb8a0=_0x7cb8();let _0x38ff04=_0x7cb8a0[_0x31d151];return _0x38ff04;}import{matchAuthEnvironment}from'./utils/matchAuthEnvironment.js';import{readProjectsConfig,setProfileOverride,writeProjectsConfig}from'./utils/projectsConfig.js';import{isPathGitTracked}from'./utils/gitTracked.js';function formatPlanLine(_0x3d1ea1){const _0x3d2e20=_0x38ff,_0x3eee06={'SKFCR':function(_0x259a52,_0x1492c7){return _0x259a52===_0x1492c7;},'cCAQV':'skip'};if(_0x3eee06[_0x3d2e20(0x108)](_0x3d1ea1['kind'],_0x3eee06[_0x3d2e20(0x122)]))return'\x20\x20'+_0x3d1ea1[_0x3d2e20(0x10d)]['padEnd'](0x1e)+_0x3d2e20(0x12e)+_0x3d1ea1['reason']+')';if(_0x3d1ea1['preserveBaseUrl']&&_0x3d1ea1['baseUrl'])return'\x20\x20'+_0x3d1ea1[_0x3d2e20(0x10d)]['padEnd'](0x1e)+_0x3d2e20(0x11b)+_0x3d1ea1[_0x3d2e20(0x128)]+_0x3d2e20(0x12b)+_0x3d1ea1[_0x3d2e20(0xf6)]+'\x20as\x20project\x20override)';if(_0x3d1ea1[_0x3d2e20(0xf6)])return'\x20\x20'+_0x3d1ea1['profileName']['padEnd'](0x1e)+'\x20→\x20cloud\x20(env:\x20'+_0x3d1ea1['envKey']+_0x3d2e20(0x100)+_0x3d1ea1[_0x3d2e20(0xf6)]+')';return'\x20\x20'+_0x3d1ea1[_0x3d2e20(0x10d)]['padEnd'](0x1e)+'\x20→\x20cloud\x20(env:\x20'+_0x3d1ea1[_0x3d2e20(0x128)]+')';}function shouldWarnGitTrackedOnce(_0x3725be){const _0x2266d7=_0x38ff,_0x185217={'gEQTQ':function(_0x34a10d,_0x18c076){return _0x34a10d===_0x18c076;},'NOqkC':function(_0x5c72f5,_0x5d6db1){return _0x5c72f5(_0x5d6db1);}},_0x1d5d54=readProjectsConfig(),_0x40c782=_0x1d5d54[_0x2266d7(0xf7)][_0x3725be]??={},_0x45e55a=_0x40c782['_warnings']??={},_0xb915be=_0x45e55a[_0x2266d7(0x130)],_0x348b5c=new Date(),_0x33de72=_0x348b5c['toISOString']()[_0x2266d7(0x112)](0x0,0xa);if(_0x185217['gEQTQ'](_0xb915be,_0x33de72))return![];return _0x45e55a[_0x2266d7(0x130)]=_0x33de72,_0x185217[_0x2266d7(0x10a)](writeProjectsConfig,_0x1d5d54),!![];}export async function migrateProfile(_0x255429,_0x436e7e){const _0x471567=_0x38ff,_0x4faa54={'tEkoL':function(_0x31e5a2,_0x7e78c7){return _0x31e5a2===_0x7e78c7;},'BckSv':function(_0x30a99a){return _0x30a99a();},'GrlDr':function(_0x572680,_0x556fcd){return _0x572680(_0x556fcd);},'EAkaR':function(_0x49365a,_0x2ddf2b){return _0x49365a===_0x2ddf2b;},'axDII':function(_0x285127,_0x39e563){return _0x285127===_0x39e563;},'pJKrD':'No\x20local\x20profiles\x20found\x20to\x20migrate.','UTixt':_0x471567(0x121),'tPffI':'local\x20profile\x20directory\x20not\x20found','kIDve':'no\x20baseUrl\x20in\x20settings.json','XywFZ':function(_0x34c632,_0x2ce4ae,_0x60132d){return _0x34c632(_0x2ce4ae,_0x60132d);},'YeVAn':'baseUrl','sqjKk':'auth.json','VsQSS':_0x471567(0x114),'hfZYB':'Nothing\x20migrated.\x20Run\x20without\x20--dry-run\x20to\x20apply.','BZlay':function(_0x39d3c9,_0x59a358){return _0x39d3c9&&_0x59a358;},'PZNEE':_0x471567(0x133),'LNViU':_0x471567(0x105),'jbWON':function(_0x222ec5){return _0x222ec5();},'lALIA':function(_0x2c9c40,_0x4892f4){return _0x2c9c40(_0x4892f4);},'Yoisg':_0x471567(0xfe),'FgJWy':_0x471567(0x106),'jQyDN':'profile.migrate.started','eIIUu':function(_0x58c24a,_0x35a38e,_0x190ce4,_0x3b60b5){return _0x58c24a(_0x35a38e,_0x190ce4,_0x3b60b5);},'dztjo':function(_0x46afa2,_0x25b00a,_0xf04c74){return _0x46afa2(_0x25b00a,_0xf04c74);},'aNPrw':function(_0x115772,_0x28346d){return _0x115772 instanceof _0x28346d;},'oKjZe':function(_0x13e774,_0x2cffcf){return _0x13e774(_0x2cffcf);},'twRXF':function(_0x7a1b07,_0x7d468c){return _0x7a1b07&&_0x7d468c;},'ZIxOZ':function(_0x18f4be,_0x4634ae){return _0x18f4be instanceof _0x4634ae;},'ksCDZ':function(_0x304a4f,_0x44adf3){return _0x304a4f===_0x44adf3;},'mzBPW':'ies'};if(!_0x255429[_0x471567(0x10d)]&&!_0x255429['all'])throw new Error('Provide\x20a\x20profile\x20name\x20or\x20--all.\x0a\x20\x20Example:\x20ranger\x20profile\x20migrate\x20--all\x20--dry-run');let _0x25e67a;try{_0x25e67a=await _0x4faa54[_0x471567(0xf2)](fetchAuthConfig);}catch(_0x1c36f9){throw new Error('Could\x20not\x20fetch\x20auth\x20config\x20('+(_0x1c36f9 instanceof Error?_0x1c36f9[_0x471567(0x13b)]:_0x4faa54['GrlDr'](String,_0x1c36f9))+').\x20Run:\x20ranger\x20setup');}if(!_0x25e67a||!_0x25e67a['environments']||_0x4faa54[_0x471567(0x125)](Object['keys'](_0x25e67a[_0x471567(0xf3)])['length'],0x0))throw new Error(_0x471567(0x11f));const _0x54d2f7=[];if(_0x255429['all']){const {envNames:_0x193f57,envTypes:_0x25d274}=await _0x4faa54['BckSv'](getEnvNames);for(const _0x5b225d of _0x193f57){if(_0x4faa54['axDII'](_0x25d274[_0x5b225d],'ci'))continue;_0x54d2f7[_0x471567(0x102)](_0x5b225d);}}else _0x255429[_0x471567(0x10d)]&&_0x54d2f7[_0x471567(0x102)](_0x255429[_0x471567(0x10d)]);if(_0x54d2f7['length']===0x0){console['log'](_0x4faa54['pJKrD']);return;}const _0x23a616=[];for(const _0x42753c of _0x54d2f7){const _0x525844=_0x4faa54[_0x471567(0xfd)](getEnvDir,_0x42753c);if(!existsSync(_0x525844)){_0x23a616['push']({'kind':_0x4faa54[_0x471567(0x12a)],'profileName':_0x42753c,'reason':_0x4faa54['tPffI']});continue;}const _0x3ed130=await loadSettings(_0x42753c),_0x23c62f=_0x3ed130[_0x471567(0xf6)];if(!_0x23c62f){_0x23a616[_0x471567(0x102)]({'kind':_0x4faa54[_0x471567(0x12a)],'profileName':_0x42753c,'reason':_0x4faa54['kIDve']});continue;}const _0x28b80f=_0x4faa54[_0x471567(0x13e)](matchAuthEnvironment,_0x23c62f,_0x25e67a);if(!_0x28b80f){_0x23a616['push']({'kind':_0x4faa54['UTixt'],'profileName':_0x42753c,'reason':_0x471567(0x13d)});continue;}const _0x4feb9e=_0x25e67a[_0x471567(0xf3)][_0x28b80f],_0x4d26e0=_0x4feb9e?.[_0x471567(0x13f)]??[],_0x293fb1=_0x4d26e0[_0x471567(0x109)](_0xdf5030=>{const _0x4dc981=_0x471567;try{return _0x4faa54[_0x4dc981(0x124)](new URL(_0xdf5030)['origin'],new URL(_0x23c62f)['origin']);}catch{return![];}}),_0x215ced={};for(const [_0x22a86b,_0x2416ec]of Object[_0x471567(0x118)](_0x3ed130)){if(_0x22a86b===_0x4faa54[_0x471567(0x10e)])continue;if(_0x2416ec===undefined)continue;_0x215ced[_0x22a86b]=_0x2416ec;}!_0x293fb1&&(_0x215ced['baseUrl']=_0x23c62f);const _0x52f019=join(_0x525844,_0x4faa54[_0x471567(0x101)]),_0x565a66=existsSync(_0x52f019);_0x23a616[_0x471567(0x102)]({'kind':'migrate','profileName':_0x42753c,'envKey':_0x28b80f,'baseUrl':_0x23c62f,'preserveBaseUrl':!_0x293fb1,'settings':_0x215ced,'authJsonPath':_0x565a66?_0x52f019:null});}console[_0x471567(0xef)](_0x4faa54[_0x471567(0x12f)]);for(const _0x463b26 of _0x23a616){console[_0x471567(0xef)](formatPlanLine(_0x463b26));}if(_0x255429['dryRun']){console[_0x471567(0xef)](_0x4faa54[_0x471567(0x123)]);return;}const _0x4a7b64=_0x4faa54['GrlDr'](Boolean,process['stdin'][_0x471567(0x11c)]&&process['stdout'][_0x471567(0x11c)]),_0x6bc1fa=_0x23a616[_0x471567(0x109)](_0x278e02=>_0x278e02['kind']==='migrate');if(_0x4faa54[_0x471567(0xf4)](_0x6bc1fa,_0x4a7b64)&&!_0x255429['yes']){const {proceed:_0xe014ee}=await _0x5ce11d['prompt']([{'type':_0x4faa54['PZNEE'],'name':_0x4faa54[_0x471567(0x120)],'message':_0x471567(0x110),'default':![]}]);if(!_0xe014ee){console[_0x471567(0xef)](_0x471567(0x126));return;}}const _0x464baa=_0x4faa54['jbWON'](getRangerDir);let _0x7b90eb=![];if(existsSync(_0x464baa))try{_0x7b90eb=await _0x4faa54['GrlDr'](isPathGitTracked,_0x464baa);}catch{_0x7b90eb=![];}_0x7b90eb&&_0x4faa54[_0x471567(0x10c)](shouldWarnGitTrackedOnce,process['cwd']())&&(console['log']('Warning:\x20.ranger/\x20is\x20tracked\x20in\x20this\x20git\x20repo.'),console[_0x471567(0xef)](_0x4faa54[_0x471567(0x113)]),console['log'](_0x4faa54['FgJWy']),console['log']('\x20\x20echo\x20\x27.ranger/\x27\x20>>\x20.gitignore'),console['log']('Continuing\x20with\x20migration...'));let _0x589963=0x0,_0x5d08d2=0x0,_0x502b2d=0x0,_0x1015a8=0x0;for(const _0x234836 of _0x23a616){if(_0x234836['kind']==='skip'){_0x1015a8++,_0x436e7e?.[_0x471567(0xff)](_0x471567(0x132),{'profileName':_0x234836['profileName'],'reason':_0x234836['reason']});continue;}_0x436e7e?.['trackPhaseStart'](_0x4faa54[_0x471567(0x11a)],{'profileName':_0x234836['profileName'],'envKey':_0x234836['envKey']});try{try{await _0x4faa54['eIIUu'](createCloudProfile,_0x234836[_0x471567(0x10d)],_0x234836['envKey'],{'settings':_0x234836['settings']});}catch(_0x243606){if(_0x243606 instanceof ApiError&&_0x243606['status']===0x199){console[_0x471567(0xef)]('\x20\x20⚠\x20'+_0x234836[_0x471567(0x10d)]+_0x471567(0xf0)),_0x1015a8++,_0x436e7e?.['trackPhaseEnd']('profile.migrate.skipped',{'profileName':_0x234836[_0x471567(0x10d)],'reason':'name_conflict'});continue;}throw _0x243606;}let _0x1d2362=![],_0x31c2c6=![];if(_0x234836[_0x471567(0x116)])try{const _0x30dcd2=await _0x4faa54['XywFZ'](readFile,_0x234836['authJsonPath'],'utf-8'),_0x13ee0c=JSON['parse'](_0x30dcd2);await _0x4faa54[_0x471567(0xf5)](uploadCloudProfileSession,_0x234836['profileName'],_0x13ee0c),_0x1d2362=!![];}catch(_0x5b1f2a){_0x31c2c6=!![],console['log']('\x20\x20⚠\x20'+_0x234836[_0x471567(0x10d)]+_0x471567(0x136)+(_0x4faa54[_0x471567(0xfa)](_0x5b1f2a,Error)?_0x5b1f2a['message']:_0x4faa54[_0x471567(0x127)](String,_0x5b1f2a))+').\x20Cloud\x20profile\x20created;\x20local\x20auth.json\x20left\x20in\x20place.');}let _0x121271=![];if(_0x255429['saveCreds']){const _0x15b1bd=process['env']['RANGER_TEST_USERNAME'],_0x524df9=process[_0x471567(0x11d)]['RANGER_TEST_PASSWORD'];if(_0x4faa54['twRXF'](_0x15b1bd,_0x524df9))try{await saveCloudProfileCredentials(_0x234836[_0x471567(0x10d)],_0x15b1bd,_0x524df9),_0x121271=!![];}catch(_0x4a4181){console['log']('\x20\x20⚠\x20'+_0x234836[_0x471567(0x10d)]+':\x20failed\x20to\x20save\x20credentials\x20('+(_0x4faa54['ZIxOZ'](_0x4a4181,Error)?_0x4a4181[_0x471567(0x13b)]:_0x4faa54[_0x471567(0xfd)](String,_0x4a4181))+').');}else console['log'](_0x471567(0xf9)+_0x234836[_0x471567(0x10d)]+_0x471567(0x129));}if(_0x234836[_0x471567(0xed)]&&_0x234836[_0x471567(0xf6)])try{setProfileOverride(process['cwd'](),_0x234836[_0x471567(0x10d)],_0x4faa54['YeVAn'],_0x234836[_0x471567(0xf6)]);}catch(_0x3ac74b){console[_0x471567(0xef)]('\x20\x20⚠\x20'+_0x234836['profileName']+_0x471567(0xf8)+(_0x3ac74b instanceof Error?_0x3ac74b[_0x471567(0x13b)]:_0x4faa54['GrlDr'](String,_0x3ac74b))+').');}const _0x21c4a3=getEnvDir(_0x234836['profileName']);if(!_0x31c2c6&&existsSync(_0x21c4a3))try{await rm(_0x21c4a3,{'recursive':!![],'force':!![]}),_0x5d08d2++;}catch(_0x3ae029){console[_0x471567(0xef)](_0x471567(0xf9)+_0x234836['profileName']+':\x20failed\x20to\x20delete\x20local\x20dir\x20'+_0x21c4a3+'\x20('+(_0x3ae029 instanceof Error?_0x3ae029[_0x471567(0x13b)]:String(_0x3ae029))+').');}_0x589963++,_0x234836['preserveBaseUrl']&&_0x234836['baseUrl']?console[_0x471567(0xef)]('\x20\x20✓\x20'+_0x234836[_0x471567(0x10d)]+'\x20migrated\x20to\x20cloud\x20(env:\x20'+_0x234836['envKey']+_0x471567(0xee)):console['log'](_0x471567(0x13c)+_0x234836['profileName']+_0x471567(0x107)+_0x234836[_0x471567(0x128)]+')'),_0x436e7e?.[_0x471567(0xff)]('profile.migrate.succeeded',{'profileName':_0x234836['profileName'],'envKey':_0x234836['envKey'],'wasGitTracked':_0x7b90eb,'hadSession':_0x1d2362,'savedCreds':_0x121271});}catch(_0x3eb36c){_0x502b2d++,console['log'](_0x471567(0x134)+_0x234836[_0x471567(0x10d)]+_0x471567(0x138)+(_0x3eb36c instanceof Error?_0x3eb36c[_0x471567(0x13b)]:String(_0x3eb36c))),_0x436e7e?.[_0x471567(0xff)]('profile.migrate.failed',{'profileName':_0x234836['profileName'],'error':_0x4faa54['ZIxOZ'](_0x3eb36c,Error)?_0x3eb36c[_0x471567(0x13b)]:String(_0x3eb36c)});}}const _0x38565c=[];if(_0x589963>0x0)_0x38565c['push'](_0x589963+'\x20profile'+(_0x589963===0x1?'':'s')+_0x471567(0x12d));if(_0x5d08d2>0x0)_0x38565c['push'](_0x471567(0x111)+_0x5d08d2+'\x20local\x20director'+(_0x4faa54[_0x471567(0x103)](_0x5d08d2,0x1)?'y':_0x4faa54['mzBPW']));if(_0x1015a8>0x0)_0x38565c['push'](_0x1015a8+_0x471567(0x115));if(_0x502b2d>0x0)_0x38565c[_0x471567(0x102)](_0x502b2d+'\x20failed');if(_0x38565c[_0x471567(0x137)]>0x0)console['log'](_0x38565c[_0x471567(0x12c)]('.\x20')+'.');}
@@ -1 +1 @@
1
- (function(_0x38e1dc,_0x370ad1){const _0x14fc1b=_0x4799,_0x364f52=_0x38e1dc();while(!![]){try{const _0x471140=-parseInt(_0x14fc1b(0x102))/0x1*(parseInt(_0x14fc1b(0x117))/0x2)+-parseInt(_0x14fc1b(0x127))/0x3+parseInt(_0x14fc1b(0x10c))/0x4*(parseInt(_0x14fc1b(0x116))/0x5)+parseInt(_0x14fc1b(0xf9))/0x6*(parseInt(_0x14fc1b(0x129))/0x7)+parseInt(_0x14fc1b(0x125))/0x8*(parseInt(_0x14fc1b(0x124))/0x9)+-parseInt(_0x14fc1b(0x105))/0xa+parseInt(_0x14fc1b(0x11c))/0xb;if(_0x471140===_0x370ad1)break;else _0x364f52['push'](_0x364f52['shift']());}catch(_0x1eb268){_0x364f52['push'](_0x364f52['shift']());}}}(_0xdee5,0x2a32c));import{join}from'path';import{existsSync}from'fs';import _0x44676a from'inquirer';function _0xdee5(){const _0x5ce4ec=['\x0a📦\x20Claude\x20Code\x20Plugin\x0a','log','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','Where\x20should\x20the\x20plugin\x20be\x20installed?','8WNZQhj','lZUFj','✓\x20Marketplace\x20already\x20added','EwRcj','prompt','plugin','list','success','Would\x20you\x20like\x20to\x20install\x20skills?','ranger-testing/trailhead','419135ZYLHty','46LJQXTJ','PvElM','ranger@trailhead','error','pFAtA','5479551KVKJGR','wantsSkillup','user','lpxNV','UWgbj','✓\x20Ranger\x20skills\x20already\x20installed','trailhead','qdVKy','6471UxlnTw','1448rOHmrs','SKILL.md','966111OpyuAB','project','406hfdzrA','❌\x20Failed\x20to\x20install\x20plugin:','8574MKQRzI','hrcay','lZStZ','Project\x20(shared\x20with\x20team\x20via\x20git)','\x0aYou\x20can\x20install\x20manually\x20with:','⚠\x20Failed\x20to\x20enable\x20plugin:','tYAEI','--scope','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','6241tXmlwn','marketplace','DjIqG','2403920UcqSIY','User\x20(available\x20in\x20all\x20your\x20projects)','gDNDU'];_0xdee5=function(){return _0x5ce4ec;};return _0xdee5();}import{skillup}from'../skillup.js';function _0x4799(_0xda7739,_0x3c7912){_0xda7739=_0xda7739-0xf8;const _0xdee5cc=_0xdee5();let _0x4799ab=_0xdee5cc[_0xda7739];return _0x4799ab;}import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x231058){const _0x385ed7=_0x4799,_0x5d4230={'qdVKy':_0x385ed7(0x101),'DjIqG':function(_0x348a51,_0x2a0702){return _0x348a51(_0x2a0702);},'QKzyG':'.claude','LpSKM':_0x385ed7(0x128),'dXMnZ':'pluginScope','UWgbj':_0x385ed7(0x10b),'pFAtA':_0x385ed7(0x106),'tYAEI':'user','aaecd':function(_0x4847b8,_0xb442d5){return _0x4847b8(_0xb442d5);},'OIzrN':_0x385ed7(0x122),'CRVKC':_0x385ed7(0x10e),'lpxNV':'plugin','zElOK':function(_0x27346a,_0x5f20bf){return _0x27346a(_0x5f20bf);},'EwRcj':'ranger@trailhead','ZglkN':'--scope','ZoDvU':_0x385ed7(0xf8),'kzBOf':_0x385ed7(0xfd),'hrcay':'✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','EGzxG':'already\x20enabled'},_0x5befe4=await isPluginInstalled(_0x385ed7(0x119));if(_0x5befe4)return console['log'](_0x5d4230[_0x385ed7(0x123)]),![];const _0xf8075e=_0x5d4230[_0x385ed7(0x104)](existsSync,join(getProjectRoot(),_0x5d4230['QKzyG']));let _0x3a4d33;if(_0x231058)_0x3a4d33=_0x231058;else{if(_0xf8075e)_0x3a4d33=_0x5d4230['LpSKM'];else{console['log'](_0x385ed7(0x108));const _0x570289=await _0x44676a['prompt']([{'type':_0x385ed7(0x112),'name':_0x5d4230['dXMnZ'],'message':_0x5d4230[_0x385ed7(0x120)],'choices':[{'name':_0x5d4230[_0x385ed7(0x11b)],'value':_0x5d4230[_0x385ed7(0xff)]},{'name':_0x385ed7(0xfc),'value':_0x385ed7(0x128)}],'default':_0x5d4230[_0x385ed7(0xff)]}]);_0x3a4d33=_0x570289['pluginScope'];}}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x3a4d33+'\x20level)...\x0a');const _0x5b09da=await _0x5d4230['aaecd'](isMarketplaceAdded,_0x5d4230['OIzrN']);let _0x598b7a=_0x5b09da;if(_0x5b09da)console[_0x385ed7(0x109)](_0x5d4230['CRVKC']);else{const _0x495d7c=await runClaudeCommand([_0x5d4230[_0x385ed7(0x11f)],_0x385ed7(0x103),'add',_0x385ed7(0x115)]);!_0x495d7c['success']?(console[_0x385ed7(0x11a)]('❌\x20Failed\x20to\x20add\x20marketplace:',_0x495d7c['error']),console[_0x385ed7(0x109)](_0x385ed7(0xfd)),console[_0x385ed7(0x109)]('\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead'),console['log'](_0x385ed7(0x10a)+_0x3a4d33)):_0x598b7a=!![];}if(_0x598b7a){const _0x4f8231=await _0x5d4230['zElOK'](runClaudeCommand,[_0x385ed7(0x111),'install',_0x5d4230[_0x385ed7(0x10f)],_0x5d4230['ZglkN'],_0x3a4d33]);if(!_0x4f8231[_0x385ed7(0x113)])console[_0x385ed7(0x11a)](_0x5d4230['ZoDvU'],_0x4f8231[_0x385ed7(0x11a)]),console['log'](_0x5d4230['kzBOf']),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x3a4d33);else{console['log'](_0x5d4230[_0x385ed7(0xfa)]);const _0xd674c5=[_0x385ed7(0x111),'enable',_0x5d4230['EwRcj']];_0x3a4d33==='project'&&_0xd674c5['push'](_0x385ed7(0x100),_0x5d4230['LpSKM']);const _0x317e33=await runClaudeCommand(_0xd674c5,{'captureOutput':!![]}),_0x252a3e=_0x317e33['output']?.['includes'](_0x5d4230['EGzxG']);!_0x317e33[_0x385ed7(0x113)]&&!_0x252a3e?console[_0x385ed7(0x11a)](_0x385ed7(0xfe),_0x317e33[_0x385ed7(0x11a)]):console[_0x385ed7(0x109)]('✓\x20Claude\x20Code\x20plugin\x20enabled');}}return!![];}export async function ensureClaudeSkills(_0x4154c6){const _0x4afc9d=_0x4799,_0x582072={'OrqgZ':function(_0x123cb2,_0x54e629){return _0x123cb2(_0x54e629);},'kXGLd':function(_0x497358,_0x1b1990,_0x1ef767,_0x335381){return _0x497358(_0x1b1990,_0x1ef767,_0x335381);},'WLyED':_0x4afc9d(0x11e),'gDNDU':function(_0x4df400,_0x194fec){return _0x4df400(_0x194fec);},'lZUFj':_0x4afc9d(0x128),'PvElM':_0x4afc9d(0x121),'lZStZ':function(_0x503716,_0x1a065b){return _0x503716(_0x1a065b);},'MVcsH':_0x4afc9d(0x11d),'knhIL':function(_0x1a57c1,_0x1e8cff){return _0x1a57c1(_0x1e8cff);}},_0x16281b=_0x582072['OrqgZ'](existsSync,_0x582072['kXGLd'](join,getSkillsDir(_0x582072['WLyED']),'ranger',_0x4afc9d(0x126))),_0x5bad1a=_0x582072[_0x4afc9d(0x107)](existsSync,join(getSkillsDir(_0x582072[_0x4afc9d(0x10d)]),'ranger',_0x4afc9d(0x126)));if(_0x16281b||_0x5bad1a)return console['log'](_0x582072[_0x4afc9d(0x118)]),![];const _0x28f9e1=_0x582072['lZStZ'](existsSync,join(getProjectRoot(),'.claude'));let _0x4e73d1=!![];if(_0x4154c6)await _0x582072[_0x4afc9d(0xfb)](skillup,{'autoInstall':_0x4154c6,'suppressUsage':!![]});else{if(_0x28f9e1)await skillup({'autoInstall':_0x582072[_0x4afc9d(0x10d)],'suppressUsage':!![]});else{const _0x5f3612=await _0x44676a[_0x4afc9d(0x110)]([{'type':'confirm','name':_0x582072['MVcsH'],'message':_0x4afc9d(0x114),'default':!![]}]);_0x4e73d1=_0x5f3612['wantsSkillup'],_0x4e73d1&&await _0x582072['knhIL'](skillup,{'suppressUsage':!![]});}}return _0x4e73d1;}
1
+ (function(_0x39f8e0,_0x5ef4cb){const _0x4e472b=_0x1525,_0x30e79c=_0x39f8e0();while(!![]){try{const _0x120d09=-parseInt(_0x4e472b(0x17d))/0x1+-parseInt(_0x4e472b(0x165))/0x2*(parseInt(_0x4e472b(0x158))/0x3)+parseInt(_0x4e472b(0x17e))/0x4*(parseInt(_0x4e472b(0x159))/0x5)+parseInt(_0x4e472b(0x168))/0x6+-parseInt(_0x4e472b(0x185))/0x7+parseInt(_0x4e472b(0x15c))/0x8*(parseInt(_0x4e472b(0x164))/0x9)+-parseInt(_0x4e472b(0x178))/0xa*(parseInt(_0x4e472b(0x166))/0xb);if(_0x120d09===_0x5ef4cb)break;else _0x30e79c['push'](_0x30e79c['shift']());}catch(_0x28f1bf){_0x30e79c['push'](_0x30e79c['shift']());}}}(_0x43c2,0xe932f));function _0x1525(_0x56e72e,_0x5dd9b3){_0x56e72e=_0x56e72e-0x154;const _0x43c2bc=_0x43c2();let _0x15254e=_0x43c2bc[_0x56e72e];return _0x15254e;}import{join}from'path';import{existsSync}from'fs';import _0x3b1c2e from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x205440){const _0x17ca41=_0x1525,_0x25276d={'qxDwA':'ranger@trailhead','zoDpH':_0x17ca41(0x176),'GIJTA':function(_0x1e0563){return _0x1e0563();},'PBAiG':'.claude','qHslE':_0x17ca41(0x15f),'dauDU':'User\x20(available\x20in\x20all\x20your\x20projects)','TBCQd':'user','kMyHI':_0x17ca41(0x16e),'HWiFP':'add','oQAwL':_0x17ca41(0x177),'MbrEu':'\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','cPcUC':function(_0x91c4b9,_0xacbee5,_0x29a4fd){return _0x91c4b9(_0xacbee5,_0x29a4fd);},'RQZVv':'plugin','IFqau':_0x17ca41(0x180),'yKAzV':'\x0aYou\x20can\x20install\x20manually\x20with:','STMpP':function(_0x835347,_0x54be08){return _0x835347===_0x54be08;},'RUqfP':function(_0xfe6533,_0x1901ae,_0x4f7b8a){return _0xfe6533(_0x1901ae,_0x4f7b8a);},'bHuhz':function(_0x2b2471){return _0x2b2471();},'OETxL':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x5beb6f=await isPluginInstalled(_0x25276d['qxDwA']);if(_0x5beb6f)return console['log'](_0x25276d[_0x17ca41(0x169)]),![];const _0x208178=existsSync(join(_0x25276d['GIJTA'](getProjectRoot),_0x25276d['PBAiG']));let _0x3157be;if(_0x205440)_0x3157be=_0x205440;else{if(_0x208178)_0x3157be=_0x25276d['qHslE'];else{console[_0x17ca41(0x17c)](_0x17ca41(0x163));const _0x30d272=await _0x3b1c2e[_0x17ca41(0x182)]([{'type':'list','name':_0x17ca41(0x170),'message':_0x17ca41(0x183),'choices':[{'name':_0x25276d['dauDU'],'value':_0x25276d[_0x17ca41(0x171)]},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x25276d['qHslE']}],'default':_0x25276d[_0x17ca41(0x171)]}]);_0x3157be=_0x30d272['pluginScope'];}}console['log'](_0x17ca41(0x174)+_0x3157be+'\x20level)...\x0a');const _0x5f405e=await isMarketplaceAdded(_0x25276d['kMyHI']);let _0x6384d6=_0x5f405e;if(_0x5f405e)console[_0x17ca41(0x17c)]('✓\x20Marketplace\x20already\x20added');else{const _0xc4a6ae=await runClaudeCommand(['plugin','marketplace',_0x25276d[_0x17ca41(0x156)],'ranger-testing/trailhead']);!_0xc4a6ae[_0x17ca41(0x17b)]?(console[_0x17ca41(0x17a)](_0x25276d[_0x17ca41(0x16b)],_0xc4a6ae['error']),console['log'](_0x17ca41(0x15a)),console[_0x17ca41(0x17c)](_0x25276d['MbrEu']),console[_0x17ca41(0x17c)](_0x17ca41(0x172)+_0x3157be)):_0x6384d6=!![];}if(_0x6384d6){const _0x2410b7=await _0x25276d['cPcUC'](runClaudeCommand,[_0x25276d['RQZVv'],'install','ranger@trailhead',_0x17ca41(0x160),_0x3157be],{'cwd':_0x3157be==='project'?getProjectRoot():undefined});if(!_0x2410b7['success'])console['error'](_0x25276d[_0x17ca41(0x16a)],_0x2410b7[_0x17ca41(0x17a)]),console['log'](_0x25276d[_0x17ca41(0x15b)]),console[_0x17ca41(0x17c)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x3157be);else{console[_0x17ca41(0x17c)]('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x237f3f=[_0x25276d[_0x17ca41(0x161)],'enable',_0x25276d[_0x17ca41(0x179)]];_0x25276d[_0x17ca41(0x162)](_0x3157be,_0x25276d[_0x17ca41(0x186)])&&_0x237f3f[_0x17ca41(0x15d)]('--scope','project');const _0x43abc9=await _0x25276d[_0x17ca41(0x17f)](runClaudeCommand,_0x237f3f,{'captureOutput':!![],'cwd':_0x25276d[_0x17ca41(0x162)](_0x3157be,_0x25276d[_0x17ca41(0x186)])?_0x25276d[_0x17ca41(0x173)](getProjectRoot):undefined}),_0x441209=_0x43abc9[_0x17ca41(0x16f)]?.[_0x17ca41(0x175)](_0x17ca41(0x16c));!_0x43abc9['success']&&!_0x441209?console['error'](_0x17ca41(0x155),_0x43abc9['error']):console['log'](_0x25276d[_0x17ca41(0x16d)]);}}return!![];}function _0x43c2(){const _0x1a726b=['uEqCi','84261seNhbw','5thcpBs','\x0aYou\x20can\x20install\x20manually\x20with:','yKAzV','464riXkGL','push','user','project','--scope','RQZVv','STMpP','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','116775RgugeY','26KXWKkJ','1056HKzcCr','wantsSkillup','6100182zHWlkK','zoDpH','IFqau','oQAwL','already\x20enabled','OETxL','trailhead','output','pluginScope','TBCQd','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','bHuhz','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','includes','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','❌\x20Failed\x20to\x20add\x20marketplace:','71670PxxUMV','qxDwA','error','success','log','24001WYGpFX','4680108mXrUKL','RUqfP','❌\x20Failed\x20to\x20install\x20plugin:','iGijw','prompt','Where\x20should\x20the\x20plugin\x20be\x20installed?','VZBTI','6348489aVgnGY','qHslE','GIdHm','⚠\x20Failed\x20to\x20enable\x20plugin:','HWiFP'];_0x43c2=function(){return _0x1a726b;};return _0x43c2();}export async function ensureClaudeSkills(_0x3373d6){const _0x551500=_0x1525,_0x358d14={'VZBTI':function(_0x342795,_0x1312a5){return _0x342795(_0x1312a5);},'cLDJh':'ranger','GIdHm':'SKILL.md','uCOQH':function(_0x2df5c2,_0x56f305){return _0x2df5c2(_0x56f305);},'njjQC':function(_0xf41efe,_0x1d06fb){return _0xf41efe||_0x1d06fb;},'uSniS':'✓\x20Ranger\x20skills\x20already\x20installed','yWJyW':function(_0x533c21,_0x4794a5,_0x89ad1a){return _0x533c21(_0x4794a5,_0x89ad1a);},'suMUH':function(_0x538c7d,_0x24dcd6){return _0x538c7d(_0x24dcd6);},'uEqCi':'project','yGNJK':_0x551500(0x167),'iGijw':'Would\x20you\x20like\x20to\x20install\x20skills?'},_0x37f118=existsSync(join(_0x358d14[_0x551500(0x184)](getSkillsDir,_0x551500(0x15e)),_0x358d14['cLDJh'],_0x358d14[_0x551500(0x154)])),_0x5bcdb5=existsSync(join(_0x358d14['uCOQH'](getSkillsDir,_0x551500(0x15f)),'ranger','SKILL.md'));if(_0x358d14['njjQC'](_0x37f118,_0x5bcdb5))return console['log'](_0x358d14['uSniS']),![];const _0x15e077=existsSync(_0x358d14['yWJyW'](join,getProjectRoot(),'.claude'));let _0x381d05=!![];if(_0x3373d6)await _0x358d14[_0x551500(0x184)](skillup,{'autoInstall':_0x3373d6,'suppressUsage':!![]});else{if(_0x15e077)await _0x358d14['suMUH'](skillup,{'autoInstall':_0x358d14[_0x551500(0x157)],'suppressUsage':!![]});else{const _0xf099f7=await _0x3b1c2e['prompt']([{'type':'confirm','name':_0x358d14['yGNJK'],'message':_0x358d14[_0x551500(0x181)],'default':!![]}]);_0x381d05=_0xf099f7['wantsSkillup'],_0x381d05&&await skillup({'suppressUsage':!![]});}}return _0x381d05;}
@@ -1 +1 @@
1
- (function(_0x24099c,_0x1bda94){const _0x2cb044=_0x709a,_0x3bb8c3=_0x24099c();while(!![]){try{const _0x2f69dd=parseInt(_0x2cb044(0xbb))/0x1*(parseInt(_0x2cb044(0xa1))/0x2)+parseInt(_0x2cb044(0xbf))/0x3+parseInt(_0x2cb044(0xa8))/0x4*(parseInt(_0x2cb044(0xb5))/0x5)+-parseInt(_0x2cb044(0xba))/0x6*(-parseInt(_0x2cb044(0xb6))/0x7)+parseInt(_0x2cb044(0xaa))/0x8*(-parseInt(_0x2cb044(0xa9))/0x9)+-parseInt(_0x2cb044(0xa6))/0xa+parseInt(_0x2cb044(0xb3))/0xb;if(_0x2f69dd===_0x1bda94)break;else _0x3bb8c3['push'](_0x3bb8c3['shift']());}catch(_0x12d9a2){_0x3bb8c3['push'](_0x3bb8c3['shift']());}}}(_0x637d,0x2719f));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0xebaa65 from'inquirer';function _0x709a(_0x35c783,_0x10485d){_0x35c783=_0x35c783-0x9e;const _0x637d5d=_0x637d();let _0x709ace=_0x637d5d[_0x35c783];return _0x709ace;}import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x3124c8){const _0x11a13d=_0x709a,_0x4f0677={'GNJiF':function(_0x35193f,_0xf81b56,_0x4f063c){return _0x35193f(_0xf81b56,_0x4f063c);},'ngeAg':function(_0x5c181c,_0xbd7af4){return _0x5c181c(_0xbd7af4);},'MafZN':_0x11a13d(0xa4),'GfoCN':'pluginScope','EYHxI':'User\x20(available\x20in\x20all\x20your\x20projects)','NfbIi':_0x11a13d(0x9e),'BPHnS':_0x11a13d(0xb2),'fRzmo':function(_0x4282da,_0x29797d){return _0x4282da(_0x29797d);},'LXhqp':function(_0x4e8c33,_0x4ed72f){return _0x4e8c33(_0x4ed72f);},'KYufK':_0x11a13d(0xad),'TosAn':_0x11a13d(0xa3),'vongv':'✓\x20OpenCode\x20plugin\x20already\x20configured','bkFhS':function(_0x43934a,_0x5a0b2e,_0x2b4732){return _0x43934a(_0x5a0b2e,_0x2b4732);},'xjrjT':function(_0x461021,_0x568b95){return _0x461021(_0x568b95);},'mQGJh':function(_0x3ad22d,_0x324457,_0xa05d15){return _0x3ad22d(_0x324457,_0xa05d15);}},_0x593f22=existsSync(_0x4f0677['GNJiF'](join,_0x4f0677['ngeAg'](getOpencodeConfigDir,'project'),_0x4f0677['MafZN']));let _0x38559e;if(_0x3124c8)_0x38559e=_0x3124c8;else{if(_0x593f22)_0x38559e=_0x11a13d(0xb0);else{console[_0x11a13d(0xa5)](_0x11a13d(0xb9));const _0x185c72=await _0xebaa65['prompt']([{'type':_0x11a13d(0xb8),'name':_0x4f0677['GfoCN'],'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x4f0677['EYHxI'],'value':_0x11a13d(0xb2)},{'name':_0x4f0677['NfbIi'],'value':'project'}],'default':_0x4f0677['BPHnS']}]);_0x38559e=_0x185c72[_0x11a13d(0xbe)];}}const _0x25885b=_0x4f0677[_0x11a13d(0xb4)](join,_0x4f0677['fRzmo'](getOpencodeConfigDir,_0x38559e),'opencode.json'),_0x2104b7='@ranger-testing/opencode-plugin',_0x286ed9=_0x11a13d(0xa7);let _0x2fdae7={};if(_0x4f0677[_0x11a13d(0x9f)](existsSync,_0x25885b))try{const _0x5742f7=await readFile(_0x25885b,_0x4f0677['KYufK']);_0x2fdae7=JSON['parse'](_0x5742f7);}catch(_0x2b9b05){return console[_0x11a13d(0xac)](_0x11a13d(0xb7)),{'configured':![],'scope':_0x38559e,'error':_0x4f0677[_0x11a13d(0xab)],'details':_0x2b9b05};}const _0xd25f96=Array[_0x11a13d(0xa0)](_0x2fdae7[_0x11a13d(0xae)])?_0x2fdae7['plugin']:[];if(_0xd25f96['includes'](_0x2104b7))return console[_0x11a13d(0xa5)](_0x4f0677[_0x11a13d(0xb1)]),{'configured':![],'scope':_0x38559e};return _0x2fdae7[_0x11a13d(0xa2)]=_0x2fdae7['$schema']||_0x286ed9,_0x2fdae7['plugin']=[..._0xd25f96,_0x2104b7],await _0x4f0677[_0x11a13d(0xbd)](mkdir,_0x4f0677[_0x11a13d(0xaf)](getOpencodeConfigDir,_0x38559e),{'recursive':!![]}),await _0x4f0677['mQGJh'](writeFile,_0x25885b,JSON['stringify'](_0x2fdae7,null,0x2)+'\x0a'),console[_0x11a13d(0xa5)](_0x11a13d(0xbc)),{'configured':!![],'scope':_0x38559e};}function _0x637d(){const _0x4aca9a=['99uMDRXc','165784uSjeLc','TosAn','error','utf-8','plugin','xjrjT','project','vongv','user','500335fNcyFQ','GNJiF','10fzFcPj','21MdqBWM','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','list','\x0a📦\x20OpenCode\x20Plugin\x0a','455082oCqlaH','1NNjtzp','✓\x20OpenCode\x20plugin\x20configured','bkFhS','pluginScope','668280xjsTFY','Project\x20(shared\x20with\x20team\x20via\x20git)','LXhqp','isArray','257696PsgVhP','$schema','Failed\x20to\x20read\x20opencode.json','opencode.json','log','2522520rvreAH','https://opencode.ai/config.json','31460pIpVrS'];_0x637d=function(){return _0x4aca9a;};return _0x637d();}
1
+ (function(_0x20c779,_0x50cf56){const _0x4f6858=_0x4870,_0x3c794f=_0x20c779();while(!![]){try{const _0xb4603b=parseInt(_0x4f6858(0x1ff))/0x1+-parseInt(_0x4f6858(0x1f2))/0x2*(parseInt(_0x4f6858(0x207))/0x3)+parseInt(_0x4f6858(0x1ed))/0x4+parseInt(_0x4f6858(0x202))/0x5+-parseInt(_0x4f6858(0x1ef))/0x6+parseInt(_0x4f6858(0x203))/0x7+parseInt(_0x4f6858(0x1fa))/0x8;if(_0xb4603b===_0x50cf56)break;else _0x3c794f['push'](_0x3c794f['shift']());}catch(_0x1be4d0){_0x3c794f['push'](_0x3c794f['shift']());}}}(_0x304e,0x80891));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x3f24a5 from'inquirer';function _0x4870(_0x4086ff,_0x27b116){_0x4086ff=_0x4086ff-0x1ec;const _0x304e86=_0x304e();let _0x487002=_0x304e86[_0x4086ff];return _0x487002;}function _0x304e(){const _0x412fa5=['plugin','parse','error','5583032ENuKCZ','list','iJzdy','PapGy','utf-8','51614GIHAYR','Project\x20(shared\x20with\x20team\x20via\x20git)','Failed\x20to\x20read\x20opencode.json','2401875WsOXUp','4044537pvzyTK','project','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','pluginScope','3mqEaaQ','isArray','1301936EuxfRg','cvubE','4798614ZWAWTN','KqtnW','\x0a📦\x20OpenCode\x20Plugin\x0a','1613786hKCJnl','RXTMg','fCvPQ','https://opencode.ai/config.json','log'];_0x304e=function(){return _0x412fa5;};return _0x304e();}import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x5c77ab){const _0x53f84a=_0x4870,_0x1cf2bd={'RXTMg':function(_0x518513,_0x5ec461,_0x1667a1){return _0x518513(_0x5ec461,_0x1667a1);},'iJzdy':'project','cvubE':'opencode.json','KqtnW':'user','UbDys':_0x53f84a(0x200),'PapGy':function(_0x433d42,_0x1ccece){return _0x433d42(_0x1ccece);},'JYPFm':function(_0x5c026c,_0x1bee03){return _0x5c026c(_0x1bee03);},'eodGB':_0x53f84a(0x201),'gmErI':function(_0x3f3d80,_0x4a6244){return _0x3f3d80(_0x4a6244);},'fCvPQ':function(_0x453721,_0x3dd6b2){return _0x453721+_0x3dd6b2;}},_0x50c3d5=existsSync(_0x1cf2bd[_0x53f84a(0x1f3)](join,getOpencodeConfigDir(_0x1cf2bd[_0x53f84a(0x1fc)]),_0x1cf2bd[_0x53f84a(0x1ee)]));let _0x313f6c;if(_0x5c77ab)_0x313f6c=_0x5c77ab;else{if(_0x50c3d5)_0x313f6c='project';else{console[_0x53f84a(0x1f6)](_0x53f84a(0x1f1));const _0x6c386=await _0x3f24a5['prompt']([{'type':_0x53f84a(0x1fb),'name':_0x53f84a(0x206),'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':_0x1cf2bd[_0x53f84a(0x1f0)]},{'name':_0x1cf2bd['UbDys'],'value':_0x53f84a(0x204)}],'default':_0x1cf2bd['KqtnW']}]);_0x313f6c=_0x6c386[_0x53f84a(0x206)];}}const _0x15200b=_0x1cf2bd[_0x53f84a(0x1f3)](join,_0x1cf2bd[_0x53f84a(0x1fd)](getOpencodeConfigDir,_0x313f6c),_0x1cf2bd['cvubE']),_0x104b55='@ranger-testing/opencode-plugin',_0x5d2976=_0x53f84a(0x1f5);let _0x5cc05c={};if(_0x1cf2bd['JYPFm'](existsSync,_0x15200b))try{const _0x31d48c=await _0x1cf2bd['RXTMg'](readFile,_0x15200b,_0x53f84a(0x1fe));_0x5cc05c=JSON[_0x53f84a(0x1f8)](_0x31d48c);}catch(_0x3ac7f3){return console[_0x53f84a(0x1f9)](_0x53f84a(0x205)),{'configured':![],'scope':_0x313f6c,'error':_0x1cf2bd['eodGB'],'details':_0x3ac7f3};}const _0x2850fe=Array[_0x53f84a(0x1ec)](_0x5cc05c[_0x53f84a(0x1f7)])?_0x5cc05c[_0x53f84a(0x1f7)]:[];if(_0x2850fe['includes'](_0x104b55))return console[_0x53f84a(0x1f6)]('✓\x20OpenCode\x20plugin\x20already\x20configured'),{'configured':![],'scope':_0x313f6c};return _0x5cc05c['$schema']=_0x5cc05c['$schema']||_0x5d2976,_0x5cc05c[_0x53f84a(0x1f7)]=[..._0x2850fe,_0x104b55],await mkdir(_0x1cf2bd['gmErI'](getOpencodeConfigDir,_0x313f6c),{'recursive':!![]}),await _0x1cf2bd[_0x53f84a(0x1f3)](writeFile,_0x15200b,_0x1cf2bd[_0x53f84a(0x1f4)](JSON['stringify'](_0x5cc05c,null,0x2),'\x0a')),console['log']('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0x313f6c};}
@@ -1 +1 @@
1
- (function(_0x4f3930,_0x4cf2fc){const _0x2ac060=_0x2556,_0x318519=_0x4f3930();while(!![]){try{const _0xe87542=-parseInt(_0x2ac060(0x180))/0x1+-parseInt(_0x2ac060(0x171))/0x2*(-parseInt(_0x2ac060(0x170))/0x3)+-parseInt(_0x2ac060(0x17e))/0x4*(parseInt(_0x2ac060(0x176))/0x5)+-parseInt(_0x2ac060(0x16f))/0x6*(-parseInt(_0x2ac060(0x18b))/0x7)+-parseInt(_0x2ac060(0x16b))/0x8*(-parseInt(_0x2ac060(0x16e))/0x9)+-parseInt(_0x2ac060(0x197))/0xa+parseInt(_0x2ac060(0x177))/0xb*(parseInt(_0x2ac060(0x198))/0xc);if(_0xe87542===_0x4cf2fc)break;else _0x318519['push'](_0x318519['shift']());}catch(_0x4615fe){_0x318519['push'](_0x318519['shift']());}}}(_0x1a3f,0x53772));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';function _0x2556(_0x4130f9,_0x780fe5){_0x4130f9=_0x4130f9-0x169;const _0x1a3f3d=_0x1a3f();let _0x2556a3=_0x1a3f3d[_0x4130f9];return _0x2556a3;}import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x44f81f){const _0xff5623=_0x2556,_0x11de66={'UltrM':function(_0x986e21){return _0x986e21();},'haxBO':function(_0xa458fe,_0x33f40c,_0x454291){return _0xa458fe(_0x33f40c,_0x454291);},'WPhmS':function(_0x4aa0a6,_0x492ad2){return _0x4aa0a6(_0x492ad2);},'ydOZD':_0xff5623(0x186)},_0x2f6e3e=_0x11de66['UltrM'](getRangerDir),_0x3a62cc=join(_0x2f6e3e,'ci');if(_0x44f81f){const _0x486288=_0x11de66['haxBO'](join,_0x3a62cc,_0x44f81f);return{'name':_0x44f81f,'path':_0x486288};}if(!_0x11de66[_0xff5623(0x16a)](existsSync,_0x3a62cc))throw new Error(_0x11de66[_0xff5623(0x19e)]+_0xff5623(0x182));const _0x5875ed=await _0x11de66['haxBO'](readdir,_0x3a62cc,{'withFileTypes':!![]}),_0x5864d3=_0x5875ed[_0xff5623(0x18e)](_0x191091=>_0x191091['isDirectory']())['map'](_0x148cdd=>_0x148cdd[_0xff5623(0x194)]);if(_0x5864d3[_0xff5623(0x169)]===0x0)throw new Error('No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a'+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');if(_0x5864d3[_0xff5623(0x169)]===0x1){const _0x190e04=_0x5864d3[0x0];return console[_0xff5623(0x185)](_0xff5623(0x16c)+_0x190e04),{'name':_0x190e04,'path':join(_0x3a62cc,_0x190e04)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x5864d3[_0xff5623(0x17b)](',\x20')+'.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.');}async function installPluginNonInteractive(){const _0x5e9be3=_0x2556,_0x1ac4cb={'EyyCj':function(_0x3cc3f8,_0x235750){return _0x3cc3f8(_0x235750);},'SIfGP':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','bnAfl':'Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','rykMR':_0x5e9be3(0x16d),'fNRDH':'✓\x20Marketplace\x20already\x20added','hcUSA':function(_0x459d11,_0x58784c){return _0x459d11(_0x58784c);},'LRIdB':_0x5e9be3(0x183),'vlELF':'marketplace','oTEUS':'Failed\x20to\x20add\x20marketplace:','AhyWZ':'You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','EvMGp':'install','LBsqT':_0x5e9be3(0x19c),'BoNlr':'Failed\x20to\x20install\x20plugin:','DhfFp':'You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project'},_0x4e0775=await _0x1ac4cb[_0x5e9be3(0x17c)](isPluginInstalled,'ranger@trailhead');if(_0x4e0775)return console['log'](_0x1ac4cb[_0x5e9be3(0x184)]),![];console['log'](_0x1ac4cb['bnAfl']);const _0x213954=await isMarketplaceAdded(_0x1ac4cb[_0x5e9be3(0x195)]);let _0x1864d9=_0x213954;if(_0x213954)console['log'](_0x1ac4cb['fNRDH']);else{const _0x334696=await _0x1ac4cb[_0x5e9be3(0x181)](runClaudeCommand,[_0x1ac4cb['LRIdB'],_0x1ac4cb['vlELF'],_0x5e9be3(0x191),'ranger-testing/trailhead']);!_0x334696['success']?(console[_0x5e9be3(0x189)](_0x1ac4cb['oTEUS'],_0x334696[_0x5e9be3(0x189)]),console['log'](_0x1ac4cb['AhyWZ'])):_0x1864d9=!![];}if(_0x1864d9){const _0x4a650e=await runClaudeCommand(['plugin',_0x1ac4cb['EvMGp'],_0x1ac4cb['LBsqT'],'--scope',_0x5e9be3(0x19a)]);!_0x4a650e['success']?(console[_0x5e9be3(0x189)](_0x1ac4cb[_0x5e9be3(0x196)],_0x4a650e['error']),console['log'](_0x1ac4cb['DhfFp'])):console['log'](_0x5e9be3(0x175));}return!![];}function _0x1a3f(){const _0x1e203d=['gTcKO','profile','add','auth.json.enc','skipChromium','name','rykMR','BoNlr','4272570IystrA','492lxbBVb','bWfIu','project','sessions','ranger@trailhead','RgyOr','ydOZD','length','WPhmS','2445224vTnRqv','Auto-detected\x20CI\x20profile:\x20','trailhead','9wssMzC','1087278fLBqlP','3howOmr','777638BOdMHL','chromium','trackPhaseEnd','skills','✓\x20Claude\x20Code\x20plugin\x20installed','8885CgiOAq','27313qFxiCt','trackPhaseStart','fqIha','path','join','EyyCj','No\x20API\x20token\x20available\x20for\x20decryption','140tCKfPC','settings.json','146162NWPpGf','hcUSA','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','plugin','SIfGP','log','No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','✓\x20Active\x20profile:\x20','dir_setup','error','LPjXI','7rDJChg','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','QvuWY','filter'];_0x1a3f=function(){return _0x1e203d;};return _0x1a3f();}export async function setupCi(_0xf74878,_0x475293,_0x5910b9){const _0x5e8b08=_0x2556,_0x4948d0={'lGsQp':'\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','fqIha':'auth','LPjXI':function(_0x4b050f,_0xe10c1e){return _0x4b050f(_0xe10c1e);},'nmLkd':function(_0x46ac8f,_0x1ee16d,_0x3ca796){return _0x46ac8f(_0x1ee16d,_0x3ca796);},'gTcKO':function(_0x4f81aa,_0x40c4b2,_0x4222b9){return _0x4f81aa(_0x40c4b2,_0x4222b9);},'MrSmy':'profile_activate','uFvmS':function(_0xf62db5,_0xbb9fec,_0x4d740b){return _0xf62db5(_0xbb9fec,_0x4d740b);},'cPOHu':_0x5e8b08(0x17f),'bWfIu':'auth.json','RgyOr':_0x5e8b08(0x192),'QvuWY':function(_0x1e54ba,_0x54d591){return _0x1e54ba(_0x54d591);},'PsTBT':function(_0x4b33a4,_0x9329fa,_0x1026bb){return _0x4b33a4(_0x9329fa,_0x1026bb);},'zzSng':'✓\x20Auth\x20state\x20found','Ekjzk':_0x5e8b08(0x174),'Tuucc':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console[_0x5e8b08(0x185)](_0x4948d0['lGsQp']),_0x5910b9?.[_0x5e8b08(0x178)](_0x4948d0['fqIha']),await authenticate(_0xf74878),_0x5910b9?.['trackPhaseEnd'](_0x4948d0[_0x5e8b08(0x179)]),_0x5910b9?.['trackPhaseStart'](_0x5e8b08(0x188));const {path:_0x320da6,installed:_0x3f8e51}=await ensureRangerDir();await _0x4948d0[_0x5e8b08(0x18a)](writeRangerGitignore,_0x320da6);const _0x203257=_0x4948d0['nmLkd'](join,_0x320da6,_0x5e8b08(0x19b));!existsSync(_0x203257)&&await _0x4948d0[_0x5e8b08(0x18f)](mkdir,_0x203257,{'recursive':!![]});_0x5910b9?.['trackPhaseEnd']('dir_setup',{'installed':_0x3f8e51}),_0x5910b9?.['trackPhaseStart']('chromium');let _0x4f6e31=![];_0x475293?.[_0x5e8b08(0x193)]?console['log'](_0x5e8b08(0x18c)):_0x4f6e31=await ensureChromium();_0x5910b9?.[_0x5e8b08(0x173)](_0x5e8b08(0x172),{'installed':_0x4f6e31,'skipped':!!_0x475293?.['skipChromium']}),_0x5910b9?.['trackPhaseStart'](_0x4948d0['MrSmy']);const _0x56b9af=await _0x4948d0[_0x5e8b08(0x18a)](findCiProfile,_0x475293?.[_0x5e8b08(0x190)]);let _0x5734ef=![];_0x475293?.['baseUrl']&&(await _0x4948d0['uFvmS'](mkdir,_0x56b9af['path'],{'recursive':!![]}),await saveSettings(_0x56b9af[_0x5e8b08(0x194)],{'baseUrl':_0x475293['baseUrl'],'headless':!![]}),console['log']('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x475293['baseUrl']),_0x5734ef=!![]);const _0xa58306=join(_0x56b9af[_0x5e8b08(0x17a)],_0x4948d0['cPOHu']);if(!existsSync(_0xa58306)&&!_0x5734ef)throw new Error('CI\x20profile\x20\x22'+_0x56b9af[_0x5e8b08(0x194)]+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x2fd01f=join(_0x56b9af[_0x5e8b08(0x17a)],_0x4948d0[_0x5e8b08(0x199)]),_0x3a1195=join(_0x56b9af[_0x5e8b08(0x17a)],_0x4948d0[_0x5e8b08(0x19d)]),_0x5a13d6=_0x4948d0[_0x5e8b08(0x18a)](existsSync,_0x2fd01f),_0x2a5dd2=existsSync(_0x3a1195);if(_0x2a5dd2)try{const _0x4662d3=await getToken();if(!_0x4662d3)throw new Error(_0x5e8b08(0x17d));const _0x42271c=await _0x4948d0[_0x5e8b08(0x18d)](readFile,_0x3a1195);_0x4948d0['PsTBT'](decrypt,_0x42271c,_0x4662d3),console['log']('✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)');}catch(_0x1b187c){const _0x1c0f17=_0x1b187c instanceof Error?_0x1b187c['message']:String(_0x1b187c);throw new Error('Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22'+_0x56b9af['name']+'\x22:\x20'+_0x1c0f17);}else _0x5a13d6?console['log'](_0x4948d0['zzSng']):console['log']('\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)');await writeActiveProfileName(_0x56b9af[_0x5e8b08(0x194)]),console[_0x5e8b08(0x185)](_0x5e8b08(0x187)+_0x56b9af[_0x5e8b08(0x194)]),_0x5910b9?.['trackPhaseEnd']('profile_activate',{'profileName':_0x56b9af[_0x5e8b08(0x194)],'hasAuth':_0x5a13d6,'hasEncryptedAuth':_0x2a5dd2,'createdSettings':_0x5734ef}),_0x5910b9?.['trackPhaseStart'](_0x5e8b08(0x183));const _0x25be36=await installPluginNonInteractive();_0x5910b9?.['trackPhaseEnd']('plugin',{'installed':_0x25be36}),_0x5910b9?.['trackPhaseStart'](_0x5e8b08(0x174)),await _0x4948d0[_0x5e8b08(0x18a)](skillup,{'autoInstall':'project'}),_0x5910b9?.[_0x5e8b08(0x173)](_0x4948d0['Ekjzk']),console['log'](_0x4948d0['Tuucc']);}
1
+ (function(_0x1effe6,_0x4f8cc4){const _0x280a36=_0x16bc,_0x38c651=_0x1effe6();while(!![]){try{const _0x2667cb=parseInt(_0x280a36(0x8d))/0x1*(-parseInt(_0x280a36(0xa8))/0x2)+-parseInt(_0x280a36(0x79))/0x3+parseInt(_0x280a36(0x90))/0x4+parseInt(_0x280a36(0xab))/0x5+parseInt(_0x280a36(0x8b))/0x6+-parseInt(_0x280a36(0x75))/0x7+-parseInt(_0x280a36(0x71))/0x8*(-parseInt(_0x280a36(0x7d))/0x9);if(_0x2667cb===_0x4f8cc4)break;else _0x38c651['push'](_0x38c651['shift']());}catch(_0x989511){_0x38c651['push'](_0x38c651['shift']());}}}(_0x342d,0x28aa7));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';function _0x16bc(_0x5f4aa6,_0x3deeac){_0x5f4aa6=_0x5f4aa6-0x6b;const _0x342de9=_0x342d();let _0x16bc1b=_0x342de9[_0x5f4aa6];return _0x16bc1b;}import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';function _0x342d(){const _0x53c5ef=['LZdSP','243EpGAUA','ijNJx','--scope','807128fMvNRE','filter','\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a','UCSZu','auth.json','ThZRP','rLQtU','Zzpmx','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','profile','cFNoL','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','log','ranger@trailhead','✓\x20Claude\x20Code\x20plugin\x20installed','mZAoX','isDirectory','kxUAP','length','marketplace','CI\x20profile\x20\x22','aiuKR','Failed\x20to\x20install\x20plugin:','name','50tnnOCi','GEZuq','QUklO','1634565GmEZfG','AQJqL','MYejQ','skills','oElso','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','chromium','plugin','project','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','fBvXo','error','388376JEqyFl','\x22:\x20','dmblr','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','1134497QahnKJ','KeACK','dir_setup','aKajr','961512UeoFgj','success','Auto-detected\x20CI\x20profile:\x20','PbQIi','9lEyckD','auth','✓\x20Marketplace\x20already\x20added','trackPhaseEnd','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','OuNTC','trackPhaseStart','No\x20API\x20token\x20available\x20for\x20decryption','No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','Ytomk','message','lVAzx','ZuGMj','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','467850PuGLkG'];_0x342d=function(){return _0x53c5ef;};return _0x342d();}import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';import{getProjectRoot}from'./utils/claudeConfig.js';async function findCiProfile(_0x20f30a){const _0x14e90e=_0x16bc,_0xde3fbc={'cFNoL':function(_0x5973de){return _0x5973de();},'ZliJe':function(_0xcfd092,_0x46a896,_0x4ee8a3){return _0xcfd092(_0x46a896,_0x4ee8a3);},'LZdSP':function(_0x17f27c,_0x487f7d){return _0x17f27c(_0x487f7d);},'QUklO':_0x14e90e(0x85),'lHdFi':_0x14e90e(0x6e),'PbQIi':function(_0x40b025,_0x3dd1d7,_0x4214b7){return _0x40b025(_0x3dd1d7,_0x4214b7);},'ijNJx':function(_0x4aecb9,_0x26392f){return _0x4aecb9===_0x26392f;}},_0x3406c3=_0xde3fbc[_0x14e90e(0x9a)](getRangerDir),_0x493e6c=_0xde3fbc['ZliJe'](join,_0x3406c3,'ci');if(_0x20f30a){const _0x597ccc=join(_0x493e6c,_0x20f30a);return{'name':_0x20f30a,'path':_0x597ccc};}if(!_0xde3fbc[_0x14e90e(0x8c)](existsSync,_0x493e6c))throw new Error(_0xde3fbc[_0x14e90e(0xaa)]+_0xde3fbc['lHdFi']);const _0x23642d=await _0xde3fbc[_0x14e90e(0x7c)](readdir,_0x493e6c,{'withFileTypes':!![]}),_0xf0cf90=_0x23642d[_0x14e90e(0x91)](_0x3515b6=>_0x3515b6[_0x14e90e(0xa0)]())['map'](_0x238206=>_0x238206['name']);if(_0xde3fbc[_0x14e90e(0x8e)](_0xf0cf90['length'],0x0))throw new Error(_0x14e90e(0x81)+_0xde3fbc['lHdFi']);if(_0xf0cf90[_0x14e90e(0xa2)]===0x1){const _0x389f59=_0xf0cf90[0x0];return console[_0x14e90e(0x9c)](_0x14e90e(0x7b)+_0x389f59),{'name':_0x389f59,'path':join(_0x493e6c,_0x389f59)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0xf0cf90['join'](',\x20')+_0x14e90e(0x8a));}async function installPluginNonInteractive(){const _0xdf4b36=_0x16bc,_0x5b84e7={'MYejQ':function(_0x2d7507,_0x3a4e0e){return _0x2d7507(_0x3a4e0e);},'rLQtU':_0xdf4b36(0x9d),'mPxdd':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','fBvXo':_0xdf4b36(0xb0),'GEZuq':'trailhead','QwasI':'add','Zzpmx':'Failed\x20to\x20add\x20marketplace:','Nlbrx':_0xdf4b36(0x9b),'gmJpQ':function(_0x104bbf,_0x24a48f,_0x468645){return _0x104bbf(_0x24a48f,_0x468645);},'oElso':'plugin','nmNeL':_0xdf4b36(0x8f),'OuNTC':'project','ZZFon':function(_0x54b4a9){return _0x54b4a9();},'TUDmC':_0xdf4b36(0x9e)},_0x1b6b08=await _0x5b84e7['MYejQ'](isPluginInstalled,_0x5b84e7[_0xdf4b36(0x96)]);if(_0x1b6b08)return console['log'](_0x5b84e7['mPxdd']),![];console['log'](_0x5b84e7[_0xdf4b36(0x6f)]);const _0x3b724c=await isMarketplaceAdded(_0x5b84e7[_0xdf4b36(0xa9)]);let _0x5f95f6=_0x3b724c;if(_0x3b724c)console['log'](_0xdf4b36(0x7f));else{const _0x50938e=await _0x5b84e7[_0xdf4b36(0xad)](runClaudeCommand,[_0xdf4b36(0x6c),_0xdf4b36(0xa3),_0x5b84e7['QwasI'],'ranger-testing/trailhead']);!_0x50938e['success']?(console['error'](_0x5b84e7[_0xdf4b36(0x97)],_0x50938e['error']),console['log'](_0x5b84e7['Nlbrx'])):_0x5f95f6=!![];}if(_0x5f95f6){const _0x36157b=await _0x5b84e7['gmJpQ'](runClaudeCommand,[_0x5b84e7[_0xdf4b36(0xaf)],'install',_0x5b84e7[_0xdf4b36(0x96)],_0x5b84e7['nmNeL'],_0x5b84e7[_0xdf4b36(0x82)]],{'cwd':_0x5b84e7['ZZFon'](getProjectRoot)});!_0x36157b[_0xdf4b36(0x7a)]?(console[_0xdf4b36(0x70)](_0xdf4b36(0xa6),_0x36157b['error']),console['log']('You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project')):console['log'](_0x5b84e7['TUDmC']);}return!![];}export async function setupCi(_0x56b0ae,_0x5ee549,_0x3b21e2){const _0x5d6b2b=_0x16bc,_0x445ab0={'WBtrC':_0x5d6b2b(0x7e),'hrjnH':_0x5d6b2b(0x77),'KeACK':function(_0xe550db){return _0xe550db();},'UCSZu':'sessions','Ytomk':function(_0x4715a1,_0x2b2a1c){return _0x4715a1(_0x2b2a1c);},'AQJqL':function(_0x27c896,_0x593650,_0x347427){return _0x27c896(_0x593650,_0x347427);},'ThZRP':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','mZAoX':_0x5d6b2b(0x6b),'dmblr':function(_0x22a977,_0x27a640){return _0x22a977(_0x27a640);},'uWGin':'settings.json','CdFpl':_0x5d6b2b(0x94),'ZuGMj':'auth.json.enc','aiuKR':function(_0x51a49c,_0x34094d){return _0x51a49c(_0x34094d);},'kxUAP':_0x5d6b2b(0x84),'PGtrw':'\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','aKajr':_0x5d6b2b(0x6c),'lVAzx':_0x5d6b2b(0xae)};console['log']('\x0a🔧\x20Ranger\x20CI\x20Setup\x0a'),_0x3b21e2?.['trackPhaseStart'](_0x445ab0['WBtrC']),await authenticate(_0x56b0ae),_0x3b21e2?.[_0x5d6b2b(0x80)]('auth'),_0x3b21e2?.[_0x5d6b2b(0x83)](_0x445ab0['hrjnH']);const {path:_0x1fea0d,installed:_0x5add9a}=await _0x445ab0[_0x5d6b2b(0x76)](ensureRangerDir);await writeRangerGitignore(_0x1fea0d);const _0x12885f=join(_0x1fea0d,_0x445ab0[_0x5d6b2b(0x93)]);!_0x445ab0[_0x5d6b2b(0x86)](existsSync,_0x12885f)&&await _0x445ab0[_0x5d6b2b(0xac)](mkdir,_0x12885f,{'recursive':!![]});_0x3b21e2?.[_0x5d6b2b(0x80)](_0x445ab0['hrjnH'],{'installed':_0x5add9a}),_0x3b21e2?.[_0x5d6b2b(0x83)](_0x5d6b2b(0x6b));let _0x51cb47=![];_0x5ee549?.['skipChromium']?console['log'](_0x445ab0[_0x5d6b2b(0x95)]):_0x51cb47=await ensureChromium();_0x3b21e2?.[_0x5d6b2b(0x80)](_0x445ab0[_0x5d6b2b(0x9f)],{'installed':_0x51cb47,'skipped':!!_0x5ee549?.['skipChromium']}),_0x3b21e2?.['trackPhaseStart']('profile_activate');const _0x3a9a4b=await _0x445ab0[_0x5d6b2b(0x73)](findCiProfile,_0x5ee549?.[_0x5d6b2b(0x99)]);let _0x2ce20d=![];_0x5ee549?.['baseUrl']&&(await mkdir(_0x3a9a4b['path'],{'recursive':!![]}),await _0x445ab0['AQJqL'](saveSettings,_0x3a9a4b[_0x5d6b2b(0xa7)],{'baseUrl':_0x5ee549['baseUrl'],'headless':!![]}),console[_0x5d6b2b(0x9c)]('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x5ee549['baseUrl']),_0x2ce20d=!![]);const _0x59a334=join(_0x3a9a4b['path'],_0x445ab0['uWGin']);if(!existsSync(_0x59a334)&&!_0x2ce20d)throw new Error(_0x5d6b2b(0xa4)+_0x3a9a4b['name']+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x17d60a=join(_0x3a9a4b['path'],_0x445ab0['CdFpl']),_0x31a9e1=_0x445ab0['AQJqL'](join,_0x3a9a4b['path'],_0x445ab0[_0x5d6b2b(0x89)]),_0x37977d=existsSync(_0x17d60a),_0x561b72=_0x445ab0[_0x5d6b2b(0xa5)](existsSync,_0x31a9e1);if(_0x561b72)try{const _0x1af316=await getToken();if(!_0x1af316)throw new Error(_0x445ab0[_0x5d6b2b(0xa1)]);const _0x1796ff=await _0x445ab0[_0x5d6b2b(0xa5)](readFile,_0x31a9e1);decrypt(_0x1796ff,_0x1af316),console[_0x5d6b2b(0x9c)](_0x5d6b2b(0x74));}catch(_0x38c8af){const _0x19b316=_0x38c8af instanceof Error?_0x38c8af[_0x5d6b2b(0x87)]:String(_0x38c8af);throw new Error(_0x5d6b2b(0x98)+_0x3a9a4b['name']+_0x5d6b2b(0x72)+_0x19b316);}else _0x37977d?console['log']('✓\x20Auth\x20state\x20found'):console['log'](_0x445ab0['PGtrw']);await writeActiveProfileName(_0x3a9a4b[_0x5d6b2b(0xa7)]),console['log']('✓\x20Active\x20profile:\x20'+_0x3a9a4b[_0x5d6b2b(0xa7)]),_0x3b21e2?.['trackPhaseEnd']('profile_activate',{'profileName':_0x3a9a4b['name'],'hasAuth':_0x37977d,'hasEncryptedAuth':_0x561b72,'createdSettings':_0x2ce20d}),_0x3b21e2?.['trackPhaseStart'](_0x445ab0['aKajr']);const _0x5e5d80=await _0x445ab0['KeACK'](installPluginNonInteractive);_0x3b21e2?.['trackPhaseEnd'](_0x445ab0[_0x5d6b2b(0x78)],{'installed':_0x5e5d80}),_0x3b21e2?.['trackPhaseStart']('skills'),await skillup({'autoInstall':_0x5d6b2b(0x6d)}),_0x3b21e2?.['trackPhaseEnd'](_0x445ab0[_0x5d6b2b(0x88)]),console['log'](_0x5d6b2b(0x92));}
@@ -1 +1 @@
1
- (function(_0x3152ca,_0x272055){const _0x4d793b=_0x1bbd,_0x3b3321=_0x3152ca();while(!![]){try{const _0x594813=parseInt(_0x4d793b(0xf1))/0x1*(-parseInt(_0x4d793b(0xfb))/0x2)+-parseInt(_0x4d793b(0x10d))/0x3*(-parseInt(_0x4d793b(0x10c))/0x4)+-parseInt(_0x4d793b(0x10b))/0x5+-parseInt(_0x4d793b(0x113))/0x6+parseInt(_0x4d793b(0x10a))/0x7*(-parseInt(_0x4d793b(0x103))/0x8)+parseInt(_0x4d793b(0xf9))/0x9+-parseInt(_0x4d793b(0x10f))/0xa*(-parseInt(_0x4d793b(0xf5))/0xb);if(_0x594813===_0x272055)break;else _0x3b3321['push'](_0x3b3321['shift']());}catch(_0x4a66ad){_0x3b3321['push'](_0x3b3321['shift']());}}}(_0x22c5,0xf3328));import{basename}from'path';function _0x1bbd(_0x43e543,_0x43c676){_0x43e543=_0x43e543-0xf1;const _0x22c562=_0x22c5();let _0x1bbd6b=_0x22c562[_0x43e543];return _0x1bbd6b;}import _0x409abb 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 _0x22c5(){const _0xc92820=['248969QyKoxK','9652140RvLFRz','28828EgOTQW','381wzUrPr','opencode','30jRPvul','\x20--opencode','/skills/','project','3268254iOGTfu','SZJEm','autoInstall','ANQRl','3xHKBTz','prompt','UTXUM','hfaNc','13544784sVhZvZ','rhAUh','platform','NPyJb','10582299RYRhhL','To\x20use:','783810XyJNoP','\x20skill','isTTY','jyJST','iVHZW','ZAGCZ','installLevel','warn','256VdcPKr','CwlgK','✓\x20Found\x20API\x20token','/.opencode/skills/','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','log','VoaAv'];_0x22c5=function(){return _0xc92820;};return _0x22c5();}export async function skillup(_0x4b66a4={}){const _0x508ee6=_0x1bbd,_0x1c5610={'kwZrl':'\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','tAOfs':_0x508ee6(0x107),'mxneG':'To\x20get\x20started:','ZAGCZ':'\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','rhAUh':function(_0x529dea,_0x2d387b){return _0x529dea===_0x2d387b;},'iVHZW':_0x508ee6(0x110),'CwlgK':_0x508ee6(0x10e),'NPyJb':'user','hfaNc':function(_0xed1222){return _0xed1222();},'ivGQG':_0x508ee6(0x101),'WYiQG':'project','wtKlR':'\x0a📦\x20Installing\x20skills...\x0a','VoaAv':'ranger','jwCCJ':function(_0xac8379,_0x5056e2){return _0xac8379 instanceof _0x5056e2;},'ANQRl':'user-level','pnCjx':'project-level','SZJEm':function(_0x3cce2b,_0x35c86c){return _0x3cce2b>_0x35c86c;},'jyJST':'\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','UTXUM':'\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'};console['log'](_0x1c5610['kwZrl']);const _0x4ddc48=_0x4b66a4[_0x508ee6(0xf7)]??'claude',_0x442901=await getToken();if(!_0x442901){console['log'](_0x1c5610['tAOfs']),console[_0x508ee6(0x108)](_0x1c5610['mxneG']),console['log'](_0x1c5610[_0x508ee6(0x100)]),console[_0x508ee6(0x108)]('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x1c5610[_0x508ee6(0xf6)](_0x4ddc48,'opencode')?_0x1c5610[_0x508ee6(0xff)]:'')+'\x20<your-api-token>'),console['log']('\x20\x203.\x20Run:\x20ranger\x20skillup'+(_0x4ddc48===_0x1c5610[_0x508ee6(0x104)]?_0x508ee6(0x110):'')+'\x0a');return;}console[_0x508ee6(0x108)](_0x508ee6(0x105));const _0x48d253=getProjectRoot(),_0x19bd4d=basename(_0x48d253),_0x5a6904=_0x1c5610['rhAUh'](_0x4ddc48,_0x1c5610['CwlgK'])?getOpencodeConfigDir(_0x1c5610[_0x508ee6(0xf8)])+'/skills/':_0x1c5610[_0x508ee6(0xf4)](getClaudeConfigDir)+_0x508ee6(0x111),_0x5d7ea9=_0x4ddc48===_0x1c5610['CwlgK']?_0x48d253+_0x508ee6(0x106):_0x48d253+'/.claude/skills/',_0x5bf3ee=process['stdin'][_0x508ee6(0xfd)]&&process['stdout']['isTTY'];let _0x2d5e18;if(_0x4b66a4['autoInstall'])_0x2d5e18=_0x4b66a4[_0x508ee6(0x115)];else{if(_0x5bf3ee){const _0x4f8a3c=await _0x409abb[_0x508ee6(0xf2)]([{'type':'list','name':_0x1c5610['ivGQG'],'message':'Where\x20should\x20skills\x20be\x20installed?','choices':[{'name':'All\x20projects\x20('+_0x5a6904+')','value':_0x1c5610[_0x508ee6(0xf8)]},{'name':'This\x20project\x20only\x20('+_0x5d7ea9+')','value':_0x1c5610['WYiQG']}]}]);_0x2d5e18=_0x4f8a3c['installLevel'];}else _0x2d5e18=_0x508ee6(0x112),console['log']('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x5d7ea9+')');}let _0x3dbb63=0x0;const _0x58c15b=_0x1c5610[_0x508ee6(0xf4)](getCurrentVersion);console[_0x508ee6(0x108)](_0x1c5610['wtKlR']);try{const _0x1ffee6=await installSkill(_0x1c5610[_0x508ee6(0x109)],{'cliVersion':_0x58c15b,'level':_0x2d5e18,'platform':_0x4ddc48});_0x1ffee6&&_0x3dbb63++;}catch(_0x5c0da5){console[_0x508ee6(0x102)]('\x20\x20Failed\x20to\x20install\x20ranger\x20skill:',_0x1c5610['jwCCJ'](_0x5c0da5,Error)?_0x5c0da5['message']:_0x5c0da5);}if(_0x3dbb63>0x0){const _0x1a92f2=_0x2d5e18==='user'?_0x1c5610[_0x508ee6(0x116)]:_0x1c5610['pnCjx'];console[_0x508ee6(0x108)]('\x0a✅\x20Installed\x20'+_0x3dbb63+'\x20'+_0x1a92f2+_0x508ee6(0xfc)+(_0x1c5610[_0x508ee6(0x114)](_0x3dbb63,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x4b66a4['suppressUsage']&&(console['log'](_0x508ee6(0xfa)),_0x1c5610['rhAUh'](_0x4ddc48,_0x1c5610['CwlgK'])?console['log'](_0x1c5610[_0x508ee6(0xfe)]):console['log'](_0x1c5610[_0x508ee6(0xf3)]));}else console['log']('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}
1
+ (function(_0x151603,_0x1f6abc){const _0x461927=_0x5827,_0x180f8c=_0x151603();while(!![]){try{const _0x30a26b=-parseInt(_0x461927(0x1d2))/0x1+-parseInt(_0x461927(0x1b1))/0x2*(parseInt(_0x461927(0x1d3))/0x3)+-parseInt(_0x461927(0x1c7))/0x4*(-parseInt(_0x461927(0x1c6))/0x5)+parseInt(_0x461927(0x1a3))/0x6*(parseInt(_0x461927(0x1a1))/0x7)+-parseInt(_0x461927(0x1af))/0x8*(parseInt(_0x461927(0x1b9))/0x9)+-parseInt(_0x461927(0x1b5))/0xa+parseInt(_0x461927(0x1cd))/0xb*(parseInt(_0x461927(0x1b4))/0xc);if(_0x30a26b===_0x1f6abc)break;else _0x180f8c['push'](_0x180f8c['shift']());}catch(_0x1b5455){_0x180f8c['push'](_0x180f8c['shift']());}}}(_0x2124,0x9904f));import{basename}from'path';import _0x22af05 from'inquirer';function _0x5827(_0x19a94b,_0x1b167f){_0x19a94b=_0x19a94b-0x1a1;const _0x212480=_0x2124();let _0x582724=_0x212480[_0x19a94b];return _0x582724;}function _0x2124(){const _0x271d60=['❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','\x0a📦\x20Installing\x20skills...\x0a','installLevel','\x20\x203.\x20Run:\x20ranger\x20skillup','662660FPETYW','3LOTDyl','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','917WbWryl','Where\x20should\x20skills\x20be\x20installed?','23790rgDnwA','\x20successfully!\x0a','autoInstall','\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a','ranger','Zhjoj','eiBrr','xhpcw','\x20\x202.\x20Run:\x20ranger\x20setup','suppressUsage','log','/skills/','770104nnpoxD','sGRoQ','1239736mApaiq','✓\x20Found\x20API\x20token','project-level','12fWadBm','7944210wlCJoI','This\x20project\x20only\x20(','\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!','0|1|5|3|2|4','63CcmAgY','nTcCQ','\x20--opencode','rreKX','platform','message','To\x20use:','PWSqY','qEEDo','soExa','\x20<your-api-token>','cYjwx','All\x20projects\x20(','5nGNsWY','1382764ZUdvMV','hUrBv','isTTY','opencode','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','project','27636961BxPEqr'];_0x2124=function(){return _0x271d60;};return _0x2124();}import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x20e2a3={}){const _0x3d1365=_0x5827,_0x2a5d4d={'KbIkY':'\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','FNOOn':_0x3d1365(0x1b8),'CPXpO':'To\x20get\x20started:','soExa':function(_0x254bd0,_0x2ab42c){return _0x254bd0===_0x2ab42c;},'WIrGJ':function(_0x462965){return _0x462965();},'cYjwx':function(_0x1d9711,_0x3a771a){return _0x1d9711(_0x3a771a);},'nTcCQ':_0x3d1365(0x1ca),'Zhjoj':'user','eiBrr':'list','hUrBv':_0x3d1365(0x1d0),'dndzD':_0x3d1365(0x1a2),'sGRoQ':'project','fQUbg':function(_0x1a40f7,_0x4620d9,_0x5b5c74){return _0x1a40f7(_0x4620d9,_0x5b5c74);},'qlJtL':_0x3d1365(0x1a7),'qEEDo':function(_0x2ceb57,_0x1e4dab){return _0x2ceb57 instanceof _0x1e4dab;},'ooPaO':'user-level','PWSqY':function(_0x3716ae,_0x57faa9){return _0x3716ae>_0x57faa9;},'xhpcw':_0x3d1365(0x1bf),'rreKX':_0x3d1365(0x1a6)};console['log'](_0x2a5d4d['KbIkY']);const _0x4741f2=_0x20e2a3[_0x3d1365(0x1bd)]??'claude',_0x599488=await getToken();if(!_0x599488){const _0x4250a2=_0x2a5d4d['FNOOn']['split']('|');let _0x3fc6d4=0x0;while(!![]){switch(_0x4250a2[_0x3fc6d4++]){case'0':console[_0x3d1365(0x1ad)](_0x3d1365(0x1ce));continue;case'1':console[_0x3d1365(0x1ad)](_0x2a5d4d['CPXpO']);continue;case'2':console[_0x3d1365(0x1ad)](_0x3d1365(0x1d1)+(_0x4741f2==='opencode'?_0x3d1365(0x1bb):'')+'\x0a');continue;case'3':console['log'](_0x3d1365(0x1ab)+(_0x2a5d4d[_0x3d1365(0x1c2)](_0x4741f2,_0x3d1365(0x1ca))?_0x3d1365(0x1bb):'')+_0x3d1365(0x1c3));continue;case'4':return;case'5':console['log']('\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli');continue;}break;}}console['log'](_0x3d1365(0x1b2));const _0x1d0213=_0x2a5d4d['WIrGJ'](getProjectRoot),_0x413e7b=_0x2a5d4d[_0x3d1365(0x1c4)](basename,_0x1d0213),_0x517b5f=_0x4741f2===_0x2a5d4d[_0x3d1365(0x1ba)]?_0x2a5d4d[_0x3d1365(0x1c4)](getOpencodeConfigDir,_0x2a5d4d[_0x3d1365(0x1a8)])+_0x3d1365(0x1ae):getClaudeConfigDir()+_0x3d1365(0x1ae),_0x582aef=_0x2a5d4d['soExa'](_0x4741f2,_0x2a5d4d[_0x3d1365(0x1ba)])?_0x1d0213+'/.opencode/skills/':_0x1d0213+'/.claude/skills/',_0x58f5d0=process['stdin'][_0x3d1365(0x1c9)]&&process['stdout']['isTTY'];let _0x84b29a;if(_0x20e2a3[_0x3d1365(0x1a5)])_0x84b29a=_0x20e2a3[_0x3d1365(0x1a5)];else{if(_0x58f5d0){const _0x54d6a4=await _0x22af05['prompt']([{'type':_0x2a5d4d[_0x3d1365(0x1a9)],'name':_0x2a5d4d[_0x3d1365(0x1c8)],'message':_0x2a5d4d['dndzD'],'choices':[{'name':_0x3d1365(0x1c5)+_0x517b5f+')','value':_0x2a5d4d[_0x3d1365(0x1a8)]},{'name':_0x3d1365(0x1b6)+_0x582aef+')','value':_0x2a5d4d[_0x3d1365(0x1b0)]}]}]);_0x84b29a=_0x54d6a4['installLevel'];}else _0x84b29a=_0x3d1365(0x1cc),console['log'](_0x3d1365(0x1cb)+_0x582aef+')');}let _0x5afddf=0x0;const _0xa1bd44=getCurrentVersion();console[_0x3d1365(0x1ad)](_0x3d1365(0x1cf));try{const _0x1ef94d=await _0x2a5d4d['fQUbg'](installSkill,_0x2a5d4d['qlJtL'],{'cliVersion':_0xa1bd44,'level':_0x84b29a,'platform':_0x4741f2});_0x1ef94d&&_0x5afddf++;}catch(_0x1ac01b){console['warn'](_0x3d1365(0x1d4),_0x2a5d4d[_0x3d1365(0x1c1)](_0x1ac01b,Error)?_0x1ac01b[_0x3d1365(0x1be)]:_0x1ac01b);}if(_0x5afddf>0x0){const _0x2c5777=_0x84b29a===_0x2a5d4d[_0x3d1365(0x1a8)]?_0x2a5d4d['ooPaO']:_0x3d1365(0x1b3);console['log']('\x0a✅\x20Installed\x20'+_0x5afddf+'\x20'+_0x2c5777+'\x20skill'+(_0x2a5d4d[_0x3d1365(0x1c0)](_0x5afddf,0x1)?'s':'')+_0x3d1365(0x1a4)),!_0x20e2a3[_0x3d1365(0x1ac)]&&(console['log'](_0x2a5d4d[_0x3d1365(0x1aa)]),_0x4741f2==='opencode'?console['log']('\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.'):console['log'](_0x3d1365(0x1b7)));}else console[_0x3d1365(0x1ad)](_0x2a5d4d[_0x3d1365(0x1bc)]);}
@@ -1 +1 @@
1
- const _0x640448=_0x2773;(function(_0x4f4ee0,_0x324858){const _0x2aeb35=_0x2773,_0x1d08e4=_0x4f4ee0();while(!![]){try{const _0x14a066=parseInt(_0x2aeb35(0x17f))/0x1+-parseInt(_0x2aeb35(0x190))/0x2*(-parseInt(_0x2aeb35(0x162))/0x3)+-parseInt(_0x2aeb35(0x17c))/0x4+-parseInt(_0x2aeb35(0x19d))/0x5+-parseInt(_0x2aeb35(0x1aa))/0x6+parseInt(_0x2aeb35(0x181))/0x7+parseInt(_0x2aeb35(0x1b2))/0x8*(parseInt(_0x2aeb35(0x189))/0x9);if(_0x14a066===_0x324858)break;else _0x1d08e4['push'](_0x1d08e4['shift']());}catch(_0x3d0b52){_0x1d08e4['push'](_0x1d08e4['shift']());}}}(_0x21db,0x1c06c));import{mkdir,writeFile}from'fs/promises';function _0x2773(_0x395a92,_0x4c9459){_0x395a92=_0x395a92-0x14a;const _0x21db5b=_0x21db();let _0x2773c6=_0x21db5b[_0x395a92];return _0x2773c6;}import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x49e381 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';function _0x21db(){const _0x547098=['vbUyC','XfFYO','\x1b[0m','\x20(fallback\x20version)','XvShz','oASFQ','120CgPxmN','No\x20git\x20repository\x20found\x20for\x20--scope\x20project.\x20Re-run\x20without\x20`--scope\x20project`\x20to\x20install\x20at\x20user\x20scope.','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','message','✓\x20Created\x20','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','DPQUv','\x20and\x20prompt\x20the\x20coding','gHyRn','success','\x0aSkipping\x20profile\x20setup\x20(--skip-auth).\x20Run\x20`ranger\x20setup`\x20with\x20auth\x20to\x20add\x20a\x20profile\x20later.\x0a','allowInsecureLocalhost','✓\x20Exported\x20credentials\x20for\x20CI','auth','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','\x20\x20(or\x20use\x20','skipped','ranger','confirm','error','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','Authentication\x20failed:\x20','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','⚠\x20No\x20git\x20repository\x20found.\x20Re-run\x20with\x20`--scope\x20user`\x20to\x20store\x20the\x20profile\x20at\x20~/.ranger/.','resolve','qgNvg',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','\x20\x20npx\x20playwright@','close','chromium','platform','log','stdin','profile','84834ndDlxS','withDeps','.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.','koilT','coePI','/ranger:enable','QEjtB','GITHUB_ENV','DioGy','local','Ykpuc','ranger\x20profile\x20add','prompt','plugin','hlQya','skipChromium','1.58.2','url','organizationName','\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','DlKhs','scope','stdout','OkjSJ','playwright@','trackPhaseError','480324binNjY','trackPhaseEnd','qFPnJ','118897ypIAFq','executablePath','502299bkMhFA','\x1b[1m','skills','ready','Hjdfe','RANGER_TEST_USERNAME','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','DZrhO','81063gpwhkf','skipAuth','diaDD','trackPhaseStart','✓\x20Created\x20.ranger/.gitignore','.ranger/','user','14OtvETL','zbSME','.ranger','install','\x0a🚀\x20Ranger\x20Setup\x0a','LqTYB','Validating\x20API\x20token...','...','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','.gitignore','✓\x20Authenticated\x20to\x20','\x20for\x20explicit\x20profile\x20management).','You\x20can\x20install\x20it\x20manually\x20by\x20running:','364695mDXtzR','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','npx','git_check','PnXGy','FiScT','✓\x20Stored\x20credentials\x20locally','env','device_auth','win32','No\x20git\x20repository\x20found','\x0a⚠\x20Skipping\x20Chromium\x20installation.','nctOm','1295334sUnzUZ','force'];_0x21db=function(){return _0x547098;};return _0x21db();}import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerDir,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=_0x640448(0x172);const bold=_0x53dae0=>_0x640448(0x182)+_0x53dae0+_0x640448(0x1ae);export function getPlaywrightVersion(){const _0x46fd49=_0x640448;try{const _0x36089f=require[_0x46fd49(0x158)]('playwright/package.json'),_0x23df58=require(_0x36089f);return _0x23df58['version'];}catch{return null;}}export function installChromiumBinary(_0x2ed2e5,_0x18ecf3=![]){const _0x36a7ec=_0x640448,_0x1528f9={'UpVOx':function(_0xe38201,_0x314cf0){return _0xe38201(_0x314cf0);},'DEVog':_0x36a7ec(0x193),'tuADn':'ignore','Hjdfe':'inherit','ovWYW':_0x36a7ec(0x15c)};return new Promise((_0x117718,_0x5a452f)=>{const _0x15c92d=_0x36a7ec,_0x2cab9a={'DLgHK':function(_0x55f48e,_0x1a847d){return _0x1528f9['UpVOx'](_0x55f48e,_0x1a847d);}},_0xe24d40=[_0x15c92d(0x17a)+_0x2ed2e5,_0x1528f9['DEVog'],..._0x18ecf3?['--with-deps']:[],_0x15c92d(0x15d)],_0xd3aff8=spawn(_0x15c92d(0x19f),_0xe24d40,{'stdio':[_0x1528f9['tuADn'],_0x1528f9['Hjdfe'],_0x1528f9[_0x15c92d(0x185)]],'shell':process[_0x15c92d(0x15e)]===_0x15c92d(0x1a6)});_0xd3aff8['on'](_0x1528f9['ovWYW'],_0x5afa43=>{_0x5afa43===0x0?_0x117718():_0x2cab9a['DLgHK'](_0x5a452f,new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x5afa43));}),_0xd3aff8['on']('error',_0x3fea65=>{_0x5a452f(_0x3fea65);});});}export async function authenticate(_0x3c7525){const _0x3d60f4=_0x640448,_0x4c3fd7={'XfFYO':function(_0x5cce63){return _0x5cce63();},'qFPnJ':function(_0x31695c){return _0x31695c();},'PnXGy':function(_0x1650e1,_0x144eb6){return _0x1650e1 instanceof _0x144eb6;},'koilT':function(_0x40b6e4,_0x3a6ab7){return _0x40b6e4(_0x3a6ab7);},'XKUdT':_0x3d60f4(0x14c)};if(!_0x3c7525){const _0x112d61=await _0x4c3fd7[_0x3d60f4(0x1ad)](getToken);if(_0x112d61){const _0x5bcf92=await getCurrentUser(_0x112d61);if(_0x5bcf92[_0x3d60f4(0x1bb)])return console[_0x3d60f4(0x15f)]('✓\x20Already\x20authenticated\x20to\x20'+_0x5bcf92['user']['organizationName']),{'token':_0x112d61,'method':'existing_token'};}try{_0x3c7525=await _0x4c3fd7[_0x3d60f4(0x17e)](runDeviceAuthFlow);}catch(_0x176567){throw new Error(_0x3d60f4(0x155)+(_0x4c3fd7[_0x3d60f4(0x1a1)](_0x176567,Error)?_0x176567['message']:_0x176567));}const _0x5910df=await getCurrentUser(_0x3c7525);if(!_0x5910df[_0x3d60f4(0x1bb)])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x5910df[_0x3d60f4(0x153)]);return console[_0x3d60f4(0x15f)]('✓\x20Authenticated\x20to\x20'+_0x5910df['user'][_0x3d60f4(0x174)]),{'token':_0x3c7525,'method':_0x3d60f4(0x1a5)};}console[_0x3d60f4(0x15f)](_0x3d60f4(0x196));const _0x422c39=await getCurrentUser(_0x3c7525);if(!_0x422c39[_0x3d60f4(0x1bb)]){if(_0x422c39['status'])throw new Error(_0x3d60f4(0x155)+_0x422c39[_0x3d60f4(0x153)]+_0x3d60f4(0x187));else throw new Error(_0x3d60f4(0x198)+_0x422c39['error']+_0x3d60f4(0x164));}return console[_0x3d60f4(0x15f)](_0x3d60f4(0x19a)+_0x422c39['user'][_0x3d60f4(0x174)]),await _0x4c3fd7[_0x3d60f4(0x165)](storeToken,_0x3c7525),console['log'](process[_0x3d60f4(0x1a4)][_0x3d60f4(0x169)]?_0x4c3fd7['XKUdT']:_0x3d60f4(0x1a3)),{'token':_0x3c7525,'method':'provided_token'};}export async function ensureRangerDir(_0x29c8c1){const _0x4925e7=_0x640448,_0xbda11b={'WYwLf':function(_0x42df84,_0x5aa695){return _0x42df84===_0x5aa695;},'NSQWh':_0x4925e7(0x18e),'uUXwZ':_0x4925e7(0x18f),'tGyVZ':function(_0x38d654,_0x27e02b,_0x2df94b){return _0x38d654(_0x27e02b,_0x2df94b);}};let _0x44a53c;const _0x32e736=_0xbda11b['WYwLf'](_0x29c8c1,'user')?'~/.ranger/':_0xbda11b['NSQWh'];if(_0x29c8c1===_0xbda11b['uUXwZ'])_0x44a53c=getRangerHomeDir();else{const _0x10afa7=findGitRoot();_0x44a53c=_0x10afa7?_0xbda11b['tGyVZ'](join,_0x10afa7,_0x4925e7(0x192)):getRangerDir();}return!existsSync(_0x44a53c)?(await mkdir(_0x44a53c,{'recursive':!![]}),console['log'](_0x4925e7(0x1b6)+_0x32e736+'\x20directory'),{'path':_0x44a53c,'installed':!![]}):(console['log']('✓\x20'+_0x32e736+'\x20directory\x20already\x20exists'),{'path':_0x44a53c,'installed':![]});}export async function ensureChromium(_0x157e2e=![]){const _0x2a0efc=_0x640448,_0xc9a2b7={'xhSyJ':'✓\x20Playwright\x20Chromium\x20browser\x20found','gHyRn':function(_0x3cd4c6,_0x6d801a){return _0x3cd4c6??_0x6d801a;},'aSbzM':_0x2a0efc(0x1af),'McIxO':function(_0x1524ae,_0x146ee6,_0x51daeb){return _0x1524ae(_0x146ee6,_0x51daeb);}};let _0x489b02=![];try{const _0x5b7e26=chromium[_0x2a0efc(0x180)]();_0x489b02=existsSync(_0x5b7e26);}catch{_0x489b02=![];}if(_0x489b02)return console[_0x2a0efc(0x15f)](_0xc9a2b7['xhSyJ']),![];const _0x3f9f48=getPlaywrightVersion(),_0x525d16=_0xc9a2b7[_0x2a0efc(0x1ba)](_0x3f9f48,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x43e619=!_0x3f9f48,_0x47ef84=process[_0x2a0efc(0x160)]['isTTY']&&process[_0x2a0efc(0x178)]['isTTY'];let _0xd905e8=!![];if(_0x47ef84){const {install:_0x1783bb}=await _0x49e381[_0x2a0efc(0x16e)]([{'type':_0x2a0efc(0x152),'name':'install','message':_0x43e619?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x525d16+'\x20now?':'The\x20required\x20version\x20('+_0x525d16+_0x2a0efc(0x15a),'default':!![]}]);_0xd905e8=_0x1783bb;}else console[_0x2a0efc(0x15f)](_0x2a0efc(0x14e)+_0x525d16+(_0x43e619?_0xc9a2b7['aSbzM']:'')+_0x2a0efc(0x197));if(_0xd905e8){console['log']('\x0aInstalling\x20Chromium\x20browser...\x0a');try{await _0xc9a2b7['McIxO'](installChromiumBinary,_0x525d16,_0x157e2e),console['log']('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x41c6f1){console[_0x2a0efc(0x153)]('\x0a❌\x20Failed\x20to\x20install\x20Chromium:',_0x41c6f1 instanceof Error?_0x41c6f1[_0x2a0efc(0x1b5)]:_0x41c6f1),console[_0x2a0efc(0x15f)](_0x2a0efc(0x19c)),console['log']('\x20\x20npx\x20playwright@'+_0x525d16+'\x20install\x20chromium');}}else console[_0x2a0efc(0x15f)](_0x2a0efc(0x1a8)),console[_0x2a0efc(0x15f)](_0x2a0efc(0x1b7)),console['log'](_0x2a0efc(0x15b)+_0x525d16+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x3853e3){const _0x4af62c=_0x640448,_0x44236e={'QsVwL':function(_0xa704a5,_0x2d08e3,_0x525ca0){return _0xa704a5(_0x2d08e3,_0x525ca0);}},_0x59501c=_0x44236e['QsVwL'](join,_0x3853e3,_0x4af62c(0x199)),_0x2734e9=_0x4af62c(0x175);await writeFile(_0x59501c,_0x2734e9),console['log'](_0x4af62c(0x18d));}export async function ensureLocalEnv(_0x579600,_0x4163f2){const _0x14e5e1=_0x640448,_0x579e2d={'eyzBi':function(_0x356603){return _0x356603();},'qkmur':function(_0x5de62c,_0x367902){return _0x5de62c!==_0x367902;},'QEjtB':'user','XvShz':_0x14e5e1(0x157),'DioGy':function(_0x258576,_0x4ec3d5){return _0x258576===_0x4ec3d5;},'vbUyC':_0x14e5e1(0x16b),'oPnOj':'✓\x20Local\x20profile\x20already\x20exists'};if(!_0x579e2d['eyzBi'](findGitRoot)&&_0x579e2d['qkmur'](_0x579600?.['scope'],_0x579e2d[_0x14e5e1(0x168)]))return console[_0x14e5e1(0x15f)](_0x579e2d[_0x14e5e1(0x1b0)]),{'ready':![],'skipped':!![]};const _0x425c36=_0x579e2d[_0x14e5e1(0x16a)](_0x579600?.['scope'],_0x579e2d['QEjtB'])?getRangerHomeDir():undefined;if(findExistingEnv(_0x579e2d[_0x14e5e1(0x1ac)],{'locations':[_0x579e2d['vbUyC']],'rangerDir':_0x425c36}))return console[_0x14e5e1(0x15f)](_0x579e2d['oPnOj']),{'ready':!![],'skipped':![]};try{return await addEnv('local',{'url':_0x579600?.[_0x14e5e1(0x173)],'force':_0x579600?.[_0x14e5e1(0x1ab)],'allowInsecureLocalhost':_0x579600?.['allowInsecureLocalhost'],'scope':_0x579600?.[_0x14e5e1(0x177)]},_0x4163f2),{'ready':!![],'skipped':![]};}catch(_0x1035cd){return console[_0x14e5e1(0x153)]('\x0a❌\x20Profile\x20setup\x20failed:',_0x1035cd instanceof Error?_0x1035cd['message']:_0x1035cd),{'ready':![],'skipped':![]};}}export async function start(_0x49dca3,_0x139fb9,_0x326e56){const _0x17330e=_0x640448,_0x21353a={'LqTYB':'user','nctOm':function(_0x5f43af){return _0x5f43af();},'qgNvg':_0x17330e(0x1a0),'xKPRC':_0x17330e(0x1a7),'FiScT':_0x17330e(0x1b3),'OkjSJ':function(_0x4f7ebc,_0x39db17){return _0x4f7ebc(_0x39db17);},'DlKhs':'✓\x20Skipping\x20authentication\x20(--skip-auth)','coePI':_0x17330e(0x14d),'oASFQ':'chromium','hlQya':'\x0a✅\x20Ranger\x20setup\x20complete!\x0a','zsXTF':_0x17330e(0x16f),'Ykpuc':_0x17330e(0x183),'HnBUW':function(_0x350f75,_0x5a99ab,_0x4c0482){return _0x350f75(_0x5a99ab,_0x4c0482);},'mjgpk':_0x17330e(0x151),'TOMVt':function(_0x2007b9){return _0x2007b9();},'jzAHS':function(_0x3d1f97,_0x9ba2ed){return _0x3d1f97 instanceof _0x9ba2ed;},'DZrhO':function(_0x2f7ff6,_0x1d6ac9){return _0x2f7ff6(_0x1d6ac9);},'zbSME':_0x17330e(0x186),'DPQUv':_0x17330e(0x1b4),'hWThB':function(_0x4cf20d,_0x3dc3b6){return _0x4cf20d(_0x3dc3b6);},'OFNhj':_0x17330e(0x167),'diaDD':function(_0x1d856c,_0x566fd1){return _0x1d856c+_0x566fd1;}};console['log'](_0x17330e(0x194));const _0x1ba01d=process['stdin']['isTTY']&&process['stdout']['isTTY'];!_0x139fb9?.['scope']&&(_0x139fb9={..._0x139fb9,'scope':_0x21353a[_0x17330e(0x195)]});const _0xa462c4=_0x139fb9?.['scope']==='user';_0x326e56?.['trackPhaseStart']('git_check');if(!_0xa462c4&&!_0x21353a[_0x17330e(0x1a9)](findGitRoot)){await _0x326e56?.[_0x17330e(0x17b)](_0x21353a['qgNvg'],new Error(_0x21353a['xKPRC']));throw new Error(_0x21353a[_0x17330e(0x1a2)]);}_0x326e56?.[_0x17330e(0x17d)](_0x21353a[_0x17330e(0x159)]);const _0x580854=_0xa462c4?!_0x21353a['OkjSJ'](existsSync,getRangerHomeDir()):!_0x21353a[_0x17330e(0x179)](existsSync,_0x21353a['nctOm'](getRangerDir)),{path:_0x21ec29}=await ensureRangerDir(_0xa462c4?_0x21353a[_0x17330e(0x195)]:undefined);if(_0x139fb9?.['skipAuth'])console[_0x17330e(0x15f)](_0x21353a[_0x17330e(0x176)]),_0x326e56?.[_0x17330e(0x17d)](_0x21353a[_0x17330e(0x166)],{'isFirstRun':_0x580854,'method':_0x17330e(0x150)});else{_0x326e56?.[_0x17330e(0x18c)](_0x17330e(0x14d));const _0x459cd9=await authenticate(_0x49dca3);_0x326e56?.[_0x17330e(0x17d)]('auth',{'isFirstRun':_0x580854,'method':_0x459cd9['method']});}_0x326e56?.[_0x17330e(0x18c)](_0x21353a[_0x17330e(0x1b1)]);_0x139fb9?.[_0x17330e(0x171)]?console[_0x17330e(0x15f)]('✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)'):await _0x21353a[_0x17330e(0x179)](ensureChromium,_0x139fb9?.[_0x17330e(0x163)]);_0x326e56?.['trackPhaseEnd'](_0x21353a['oASFQ'],{'isFirstRun':_0x580854,'skipped':!!_0x139fb9?.[_0x17330e(0x171)]});!_0xa462c4&&await writeRangerGitignore(_0x21ec29);console[_0x17330e(0x15f)](_0x21353a[_0x17330e(0x170)]);const _0x4249b2=_0x139fb9?.['scope'],_0x18587b=_0x139fb9?.['opencode']??![];let _0x51cdba=null;_0x18587b?(_0x326e56?.['trackPhaseStart'](_0x21353a['zsXTF']),_0x51cdba=await ensureOpencodePluginConfig(_0x4249b2),_0x326e56?.[_0x17330e(0x17d)]('plugin',{'isFirstRun':_0x580854,'opencode':!![]})):(_0x326e56?.['trackPhaseStart'](_0x17330e(0x16f)),await ensureClaudePlugin(_0x4249b2),_0x326e56?.['trackPhaseEnd'](_0x17330e(0x16f),{'isFirstRun':_0x580854}));if(_0x18587b&&_0x51cdba){_0x326e56?.['trackPhaseStart'](_0x21353a['Ykpuc']);try{await _0x21353a['HnBUW'](installSkill,_0x21353a['mjgpk'],{'level':_0x51cdba[_0x17330e(0x177)],'cliVersion':_0x21353a['TOMVt'](getCurrentVersion),'platform':'opencode'}),_0x326e56?.[_0x17330e(0x17d)](_0x17330e(0x183),{'isFirstRun':_0x580854,'opencode':!![]});}catch(_0x45aac1){console['warn'](_0x17330e(0x156),_0x21353a['jzAHS'](_0x45aac1,Error)?_0x45aac1['message']:_0x45aac1),_0x326e56?.[_0x17330e(0x17d)](_0x17330e(0x183),{'isFirstRun':_0x580854,'opencode':!![],'failed':!![]});}}else _0x326e56?.[_0x17330e(0x18c)](_0x21353a['Ykpuc']),await ensureClaudeSkills(_0x4249b2),_0x326e56?.[_0x17330e(0x17d)](_0x21353a[_0x17330e(0x16c)],{'isFirstRun':_0x580854});if(_0x139fb9?.[_0x17330e(0x18a)])console[_0x17330e(0x15f)](_0x17330e(0x14a));else{if(_0x139fb9?.[_0x17330e(0x173)]){_0x326e56?.[_0x17330e(0x18c)](_0x17330e(0x161));const _0x543a2d=await ensureLocalEnv({'url':_0x139fb9[_0x17330e(0x173)],'force':_0x139fb9?.[_0x17330e(0x1ab)],'allowInsecureLocalhost':_0x139fb9?.[_0x17330e(0x14b)],'scope':_0x139fb9?.['scope']==='user'?_0x21353a['LqTYB']:undefined},_0x326e56);_0x326e56?.['trackPhaseEnd'](_0x17330e(0x161),{'isFirstRun':_0x580854,'profileReady':_0x543a2d[_0x17330e(0x184)],'userSkipped':_0x543a2d['skipped']});}else console[_0x17330e(0x15f)]('\x0aTo\x20verify\x20with\x20a\x20browser:\x20set\x20'+_0x21353a[_0x17330e(0x188)](bold,_0x21353a[_0x17330e(0x191)])+'\x20and\x20'+_0x21353a['OkjSJ'](bold,'RANGER_TEST_PASSWORD')),console[_0x17330e(0x15f)](_0x17330e(0x14f)+_0x21353a['OkjSJ'](bold,_0x17330e(0x16d))+_0x17330e(0x19b));}if(_0x18587b)console['log'](_0x21353a[_0x17330e(0x1b8)]),console[_0x17330e(0x15f)]('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console['log'](_0x17330e(0x154)),console[_0x17330e(0x15f)](_0x17330e(0x19e));else{const _0x5616ab=_0x21353a['hWThB'](bold,_0x21353a['OFNhj']);console['log'](_0x21353a[_0x17330e(0x18b)](_0x21353a['diaDD']('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0x5616ab+_0x17330e(0x1b9)+'\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'),'\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.'));}}
1
+ function _0x4e3f(){const _0x4ed56f=['\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','isTTY','\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','NHnKC','log','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','YsXpC','1.58.2','2148951McmXAi','Ecncy','QcBjb','rRQIT','\x0aTo\x20verify\x20with\x20a\x20browser,\x20set\x20','skipAuth','/ranger:enable','\x0a\x20\x20config\x20uses\x20username+password).\x20Orgs\x20on\x20SSO/SAML/OAuth','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','stdin','660078ROmlAf','opencode','VkIkm','✓\x20Authenticated\x20to\x20','Installation\x20failed\x20with\x20exit\x20code\x20','user','\x20install\x20chromium','env','225pHkcjw','install','and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','1337280wCydsn','\x20now?','194256OBhJiu','6756DYRHeG','platform','ZHFVK','rUlcT','stdout','trackPhaseStart','192092vVBLBf','status','noIYV','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','local','SEpzC','\x20when\x20the\x20org\x27s\x20login','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','✓\x20Local\x20profile\x20already\x20exists','RANGER_TEST_PASSWORD',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','63379rwYrlx','skills','WXOHu','lykJH','auth','eJhwN','message','device_auth','\x20and\x20prompt\x20the\x20coding','url','24IolsCF','trackPhaseEnd','RwQmC','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','zUbTU','NyeLt','YACxv','\x20for\x20explicit\x20profile\x20management).','skipChromium','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','method','Authentication\x20failed:\x20','provided_token','\x0a🚀\x20Ranger\x20Setup\x0a','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','✓\x20Exported\x20credentials\x20for\x20CI','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','organizationName','\x0a❌\x20Failed\x20to\x20install\x20Chromium:','.gitignore','playwright@','✓\x20Skipping\x20authentication\x20(--skip-auth)','ranger','kHHsH','xJsIM','\x0aInstalling\x20Chromium\x20browser...\x0a','success','DxUpz','mhiea','rnxSI','\x1b[1m','QbeZv','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','scope','skipped','plugin','RANGER_TEST_USERNAME','✓\x20Already\x20authenticated\x20to\x20','UEjXE','error','profile','EXHBQ','kkwAC','confirm','wgksS'];_0x4e3f=function(){return _0x4ed56f;};return _0x4e3f();}const _0x247e97=_0x5490;(function(_0x5df38c,_0x9d36cb){const _0x3c6269=_0x5490,_0x2d6157=_0x5df38c();while(!![]){try{const _0x4a6936=parseInt(_0x3c6269(0x14b))/0x1+parseInt(_0x3c6269(0x140))/0x2+parseInt(_0x3c6269(0x134))/0x3*(-parseInt(_0x3c6269(0x13a))/0x4)+parseInt(_0x3c6269(0x137))/0x5+-parseInt(_0x3c6269(0x139))/0x6+-parseInt(_0x3c6269(0x122))/0x7+parseInt(_0x3c6269(0x155))/0x8*(parseInt(_0x3c6269(0x12c))/0x9);if(_0x4a6936===_0x9d36cb)break;else _0x2d6157['push'](_0x2d6157['shift']());}catch(_0x309597){_0x2d6157['push'](_0x2d6157['shift']());}}}(_0x4e3f,0x2c27f));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x7f59bd from'inquirer';function _0x5490(_0x47dd6b,_0x2605a5){_0x47dd6b=_0x47dd6b-0x11f;const _0x4e3f3a=_0x4e3f();let _0x54907a=_0x4e3f3a[_0x47dd6b];return _0x54907a;}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=_0x247e97(0x121);const bold=_0x587ff9=>_0x247e97(0x173)+_0x587ff9+'\x1b[0m';export function getPlaywrightVersion(){const _0x3bac06=_0x247e97,_0x48e684={'ZHFVK':'playwright/package.json'};try{const _0x27b8ff=require['resolve'](_0x48e684[_0x3bac06(0x13c)]),_0xbfb1ce=require(_0x27b8ff);return _0xbfb1ce['version'];}catch{return null;}}export function installChromiumBinary(_0x499dbd,_0x352f42=![]){const _0x252102=_0x247e97,_0x408675={'ITNdJ':function(_0x55efcc,_0x32d384){return _0x55efcc===_0x32d384;},'HdXZZ':_0x252102(0x135),'gmOxn':'chromium','kHHsH':function(_0x290931,_0x186e91,_0x38d8fe,_0x1c1edd){return _0x290931(_0x186e91,_0x38d8fe,_0x1c1edd);},'ueVcz':'ignore','eJhwN':function(_0x4f8e30,_0xd7efcc){return _0x4f8e30===_0xd7efcc;},'PDgIy':'error'};return new Promise((_0x547abb,_0x425f94)=>{const _0x29c33c=_0x252102,_0x5549d8=[_0x29c33c(0x169)+_0x499dbd,_0x408675['HdXZZ'],..._0x352f42?['--with-deps']:[],_0x408675['gmOxn']],_0x3d9e66=_0x408675[_0x29c33c(0x16c)](spawn,'npx',_0x5549d8,{'stdio':[_0x408675['ueVcz'],'inherit','inherit'],'shell':_0x408675[_0x29c33c(0x150)](process[_0x29c33c(0x13b)],'win32')});_0x3d9e66['on']('close',_0x47f646=>{const _0x5acaed=_0x29c33c;_0x408675['ITNdJ'](_0x47f646,0x0)?_0x547abb():_0x425f94(new Error(_0x5acaed(0x130)+_0x47f646));}),_0x3d9e66['on'](_0x408675['PDgIy'],_0x154580=>{_0x425f94(_0x154580);});});}export async function authenticate(_0x2c6f25){const _0x34b0ab=_0x247e97,_0x458925={'VkIkm':function(_0x5e11b9,_0x19ef5e){return _0x5e11b9 instanceof _0x19ef5e;},'SeglX':'Validating\x20API\x20token...','wgksS':function(_0x482f9e,_0xd6bdeb){return _0x482f9e(_0xd6bdeb);},'NyeLt':_0x34b0ab(0x164),'rUlcT':_0x34b0ab(0x161)};if(!_0x2c6f25){const _0x51d72f=await getToken();if(_0x51d72f){const _0x236daa=await getCurrentUser(_0x51d72f);if(_0x236daa[_0x34b0ab(0x16f)])return console['log'](_0x34b0ab(0x17a)+_0x236daa[_0x34b0ab(0x131)][_0x34b0ab(0x166)]),{'token':_0x51d72f,'method':'existing_token'};}try{_0x2c6f25=await runDeviceAuthFlow();}catch(_0x31d9a5){throw new Error(_0x34b0ab(0x160)+(_0x458925[_0x34b0ab(0x12e)](_0x31d9a5,Error)?_0x31d9a5[_0x34b0ab(0x151)]:_0x31d9a5));}const _0x367c74=await getCurrentUser(_0x2c6f25);if(!_0x367c74['success'])throw new Error(_0x34b0ab(0x163)+_0x367c74[_0x34b0ab(0x17c)]);return console['log'](_0x34b0ab(0x12f)+_0x367c74[_0x34b0ab(0x131)][_0x34b0ab(0x166)]),{'token':_0x2c6f25,'method':_0x34b0ab(0x152)};}console['log'](_0x458925['SeglX']);const _0x362ab8=await _0x458925[_0x34b0ab(0x181)](getCurrentUser,_0x2c6f25);if(!_0x362ab8[_0x34b0ab(0x16f)]){if(_0x362ab8[_0x34b0ab(0x141)])throw new Error(_0x34b0ab(0x160)+_0x362ab8['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x362ab8['error']+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console['log'](_0x34b0ab(0x12f)+_0x362ab8['user']['organizationName']),await storeToken(_0x2c6f25),console[_0x34b0ab(0x186)](process[_0x34b0ab(0x133)]['GITHUB_ENV']?_0x458925[_0x34b0ab(0x15a)]:'✓\x20Stored\x20credentials\x20locally'),{'token':_0x2c6f25,'method':_0x458925[_0x34b0ab(0x13d)]};}export async function ensureRangerDir(_0x59114e){const _0x4c1ff4=_0x247e97,_0x1ffdd0={'MaakV':function(_0x1877d8,_0x17fe95){return _0x1877d8(_0x17fe95);},'XXDvQ':'✓\x20~/.ranger/\x20directory\x20already\x20exists'};void _0x59114e;const _0x1a31bb=getRangerHomeDir();return!_0x1ffdd0['MaakV'](existsSync,_0x1a31bb)?(await mkdir(_0x1a31bb,{'recursive':!![]}),console[_0x4c1ff4(0x186)]('✓\x20Created\x20~/.ranger/\x20directory'),{'path':_0x1a31bb,'installed':!![]}):(console[_0x4c1ff4(0x186)](_0x1ffdd0['XXDvQ']),{'path':_0x1a31bb,'installed':![]});}export async function ensureChromium(_0x4e0f87=![]){const _0x5c96b0=_0x247e97,_0x3053cb={'rRQIT':function(_0x2da40d,_0x574288){return _0x2da40d(_0x574288);},'lpIls':function(_0x34b914,_0x5ba43b){return _0x34b914??_0x5ba43b;},'sNUoS':_0x5c96b0(0x135),'zUbTU':_0x5c96b0(0x16e),'eiiNp':function(_0x4b77a5,_0x4871f,_0xf819ac){return _0x4b77a5(_0x4871f,_0xf819ac);},'SEpzC':'\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','DxUpz':_0x5c96b0(0x167),'Bzxlk':function(_0x125dee,_0x3a8ca8){return _0x125dee instanceof _0x3a8ca8;},'VCqlx':'You\x20can\x20install\x20it\x20manually\x20by\x20running:','QbeZv':'\x0a⚠\x20Skipping\x20Chromium\x20installation.'};let _0x491dfc=![];try{const _0xcbb870=chromium['executablePath']();_0x491dfc=_0x3053cb[_0x5c96b0(0x125)](existsSync,_0xcbb870);}catch{_0x491dfc=![];}if(_0x491dfc)return console['log']('✓\x20Playwright\x20Chromium\x20browser\x20found'),![];const _0x36640f=getPlaywrightVersion(),_0x52eee3=_0x3053cb['lpIls'](_0x36640f,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x1bb52f=!_0x36640f,_0xb56a24=process[_0x5c96b0(0x12b)][_0x5c96b0(0x183)]&&process[_0x5c96b0(0x13e)][_0x5c96b0(0x183)];let _0x2193e5=!![];if(_0xb56a24){const {install:_0x46d3b9}=await _0x7f59bd['prompt']([{'type':_0x5c96b0(0x180),'name':_0x3053cb['sNUoS'],'message':_0x1bb52f?_0x5c96b0(0x147)+_0x52eee3+_0x5c96b0(0x138):'The\x20required\x20version\x20('+_0x52eee3+_0x5c96b0(0x14a),'default':!![]}]);_0x2193e5=_0x46d3b9;}else console['log'](_0x5c96b0(0x143)+_0x52eee3+(_0x1bb52f?'\x20(fallback\x20version)':'')+'...');if(_0x2193e5){console['log'](_0x3053cb[_0x5c96b0(0x159)]);try{await _0x3053cb['eiiNp'](installChromiumBinary,_0x52eee3,_0x4e0f87),console[_0x5c96b0(0x186)](_0x3053cb[_0x5c96b0(0x145)]);}catch(_0x429929){console[_0x5c96b0(0x17c)](_0x3053cb[_0x5c96b0(0x170)],_0x3053cb['Bzxlk'](_0x429929,Error)?_0x429929[_0x5c96b0(0x151)]:_0x429929),console['log'](_0x3053cb['VCqlx']),console[_0x5c96b0(0x186)]('\x20\x20npx\x20playwright@'+_0x52eee3+_0x5c96b0(0x132));}}else console['log'](_0x3053cb[_0x5c96b0(0x174)]),console[_0x5c96b0(0x186)](_0x5c96b0(0x11f)),console[_0x5c96b0(0x186)]('\x20\x20npx\x20playwright@'+_0x52eee3+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x545e68){const _0x3e0235=_0x247e97,_0x11493d=join(_0x545e68,_0x3e0235(0x168)),_0x172fd2=_0x3e0235(0x184);await writeFile(_0x11493d,_0x172fd2),console[_0x3e0235(0x186)]('✓\x20Created\x20.ranger/.gitignore');}export async function ensureLocalEnv(_0x474afa,_0x3a8f28){const _0x3e6b8a=_0x247e97,_0x3a1775={'mJfku':_0x3e6b8a(0x131),'noIYV':'⚠\x20No\x20git\x20repository\x20found.\x20Re-run\x20with\x20`--scope\x20user`\x20to\x20store\x20the\x20profile\x20at\x20~/.ranger/.','xJsIM':function(_0x3b10af,_0x683bfb,_0x3f48f5){return _0x3b10af(_0x683bfb,_0x3f48f5);},'FEdpE':'local','EXHBQ':_0x3e6b8a(0x148),'wzfiD':function(_0x23ac1d,_0x57b13d,_0x9957c8,_0x5aa39b){return _0x23ac1d(_0x57b13d,_0x9957c8,_0x5aa39b);},'KVych':function(_0x3fffa6,_0x1d9d30){return _0x3fffa6 instanceof _0x1d9d30;}};if(!findGitRoot()&&_0x474afa?.['scope']!==_0x3a1775['mJfku'])return console[_0x3e6b8a(0x186)](_0x3a1775[_0x3e6b8a(0x142)]),{'ready':![],'skipped':!![]};const _0x2e1680=_0x474afa?.['scope']==='user'?getRangerHomeDir():undefined;if(_0x3a1775[_0x3e6b8a(0x16d)](findExistingEnv,_0x3e6b8a(0x144),{'locations':[_0x3a1775['FEdpE']],'rangerDir':_0x2e1680}))return console['log'](_0x3a1775[_0x3e6b8a(0x17e)]),{'ready':!![],'skipped':![]};try{return await _0x3a1775['wzfiD'](addEnv,'local',{'url':_0x474afa?.['url'],'force':_0x474afa?.['force'],'allowInsecureLocalhost':_0x474afa?.['allowInsecureLocalhost'],'scope':_0x474afa?.['scope']},_0x3a8f28),{'ready':!![],'skipped':![]};}catch(_0x1888e6){return console[_0x3e6b8a(0x17c)]('\x0a❌\x20Profile\x20setup\x20failed:',_0x3a1775['KVych'](_0x1888e6,Error)?_0x1888e6['message']:_0x1888e6),{'ready':![],'skipped':![]};}}export async function start(_0x1a24c8,_0x109d2f,_0x374f54){const _0x4bbfa2=_0x247e97,_0x19641f={'QigZa':_0x4bbfa2(0x131),'lykJH':function(_0x37d603,_0x4694f7){return _0x37d603(_0x4694f7);},'rnxSI':_0x4bbfa2(0x16a),'eAgxC':_0x4bbfa2(0x177),'tEpJp':_0x4bbfa2(0x14f),'RwQmC':'chromium','YACxv':function(_0x352809,_0x24fe6a){return _0x352809(_0x24fe6a);},'NHnKC':'plugin','mhiea':'\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','WXOHu':_0x4bbfa2(0x14c),'GCmNg':function(_0xcd4ff4,_0x47b99d,_0x898f3a){return _0xcd4ff4(_0x47b99d,_0x898f3a);},'QcBjb':'profile','APGmz':function(_0x5e2c82,_0x4eb5f6){return _0x5e2c82+_0x4eb5f6;},'kgpjS':function(_0x2f41aa,_0x65ffbc){return _0x2f41aa+_0x65ffbc;},'kkwAC':_0x4bbfa2(0x179),'mhXjd':function(_0x51f48a,_0x198974){return _0x51f48a(_0x198974);},'UEjXE':'ranger\x20profile\x20add','Ecncy':_0x4bbfa2(0x175),'YsXpC':'verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','JmiHa':function(_0x55e425,_0x1baef9){return _0x55e425+_0x1baef9;}};console['log'](_0x4bbfa2(0x162)),_0x109d2f={..._0x109d2f,'scope':_0x19641f['QigZa']};const _0xe57d26=!_0x19641f['lykJH'](existsSync,getRangerHomeDir());await ensureRangerDir(_0x4bbfa2(0x131));if(_0x109d2f?.['skipAuth'])console[_0x4bbfa2(0x186)](_0x19641f[_0x4bbfa2(0x172)]),_0x374f54?.['trackPhaseEnd']('auth',{'isFirstRun':_0xe57d26,'method':_0x19641f['eAgxC']});else{_0x374f54?.['trackPhaseStart'](_0x4bbfa2(0x14f));const _0x652f48=await authenticate(_0x1a24c8);_0x374f54?.[_0x4bbfa2(0x156)](_0x19641f['tEpJp'],{'isFirstRun':_0xe57d26,'method':_0x652f48[_0x4bbfa2(0x15f)]});}_0x374f54?.['trackPhaseStart'](_0x19641f['RwQmC']);_0x109d2f?.[_0x4bbfa2(0x15d)]?console['log'](_0x4bbfa2(0x158)):await ensureChromium(_0x109d2f?.['withDeps']);_0x374f54?.[_0x4bbfa2(0x156)](_0x19641f[_0x4bbfa2(0x157)],{'isFirstRun':_0xe57d26,'skipped':!!_0x109d2f?.[_0x4bbfa2(0x15d)]}),console['log'](_0x4bbfa2(0x15e));const _0x9bf6aa=_0x109d2f?.[_0x4bbfa2(0x176)],_0x507f5f=_0x109d2f?.[_0x4bbfa2(0x12d)]??![];let _0x31f562=null;_0x507f5f?(_0x374f54?.['trackPhaseStart'](_0x4bbfa2(0x178)),_0x31f562=await _0x19641f[_0x4bbfa2(0x15b)](ensureOpencodePluginConfig,_0x9bf6aa),_0x374f54?.['trackPhaseEnd']('plugin',{'isFirstRun':_0xe57d26,'opencode':!![]})):(_0x374f54?.[_0x4bbfa2(0x13f)](_0x19641f[_0x4bbfa2(0x185)]),await ensureClaudePlugin(_0x9bf6aa),_0x374f54?.[_0x4bbfa2(0x156)](_0x4bbfa2(0x178),{'isFirstRun':_0xe57d26}));if(_0x507f5f&&_0x31f562){_0x374f54?.['trackPhaseStart'](_0x4bbfa2(0x14c));try{await installSkill(_0x4bbfa2(0x16b),{'level':_0x31f562[_0x4bbfa2(0x176)],'cliVersion':getCurrentVersion(),'platform':'opencode'}),_0x374f54?.[_0x4bbfa2(0x156)](_0x4bbfa2(0x14c),{'isFirstRun':_0xe57d26,'opencode':!![]});}catch(_0x2dd33a){console['warn'](_0x19641f[_0x4bbfa2(0x171)],_0x2dd33a instanceof Error?_0x2dd33a[_0x4bbfa2(0x151)]:_0x2dd33a),_0x374f54?.[_0x4bbfa2(0x156)](_0x4bbfa2(0x14c),{'isFirstRun':_0xe57d26,'opencode':!![],'failed':!![]});}}else _0x374f54?.['trackPhaseStart'](_0x19641f[_0x4bbfa2(0x14d)]),await ensureClaudeSkills(_0x9bf6aa),_0x374f54?.[_0x4bbfa2(0x156)](_0x19641f[_0x4bbfa2(0x14d)],{'isFirstRun':_0xe57d26});if(_0x109d2f?.[_0x4bbfa2(0x127)])console[_0x4bbfa2(0x186)]('\x0aSkipping\x20profile\x20setup\x20(--skip-auth).\x20Run\x20`ranger\x20setup`\x20with\x20auth\x20to\x20add\x20a\x20profile\x20later.\x0a');else{if(_0x109d2f?.[_0x4bbfa2(0x154)]){_0x374f54?.[_0x4bbfa2(0x13f)](_0x4bbfa2(0x17d));const _0x664a81=await _0x19641f['GCmNg'](ensureLocalEnv,{'url':_0x109d2f[_0x4bbfa2(0x154)],'force':_0x109d2f?.['force'],'allowInsecureLocalhost':_0x109d2f?.['allowInsecureLocalhost'],'scope':'user'},_0x374f54);_0x374f54?.['trackPhaseEnd'](_0x19641f[_0x4bbfa2(0x124)],{'isFirstRun':_0xe57d26,'profileReady':_0x664a81['ready'],'userSkipped':_0x664a81[_0x4bbfa2(0x177)]});}else console['log'](_0x19641f['APGmz'](_0x19641f['kgpjS'](_0x4bbfa2(0x126)+_0x19641f[_0x4bbfa2(0x14e)](bold,_0x19641f[_0x4bbfa2(0x17f)])+'\x20'+('(and\x20'+_0x19641f['YACxv'](bold,_0x4bbfa2(0x149))+_0x4bbfa2(0x146))+_0x4bbfa2(0x129),'\x20may\x20need\x20a\x20one-time\x20headed\x20login\x20instead\x20—'),'\x0a\x20\x20your\x20org\x27s\x20auth\x20config\x20drives\x20which\x20flow\x20runs.')),console[_0x4bbfa2(0x186)]('\x20\x20(or\x20use\x20'+_0x19641f['mhXjd'](bold,_0x19641f[_0x4bbfa2(0x17b)])+_0x4bbfa2(0x15c));}if(_0x507f5f)console[_0x4bbfa2(0x186)](_0x19641f[_0x4bbfa2(0x123)]),console['log'](_0x4bbfa2(0x136)),console[_0x4bbfa2(0x186)](_0x4bbfa2(0x12a)),console[_0x4bbfa2(0x186)](_0x19641f[_0x4bbfa2(0x120)]);else{const _0x5bf96c=bold(_0x4bbfa2(0x128));console[_0x4bbfa2(0x186)](_0x19641f['JmiHa']('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0x5bf96c+_0x4bbfa2(0x153),_0x4bbfa2(0x165))+_0x4bbfa2(0x182)+'\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');}}