@ranger-testing/ranger-cli 2.5.4-alpha.bc88254-5 → 2.5.4-alpha.f4657dc-23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -14
- package/build/cli.js +1 -1
- package/build/commands/addEnv.js +1 -1
- package/build/commands/authEncrypt.js +1 -1
- package/build/commands/clean.js +1 -1
- package/build/commands/config.js +1 -1
- package/build/commands/deleteProfile.js +1 -0
- package/build/commands/env.js +1 -1
- package/build/commands/feature.js +1 -1
- package/build/commands/hook.js +1 -1
- package/build/commands/hooks/autoPrompt.js +1 -1
- package/build/commands/hooks/disable.js +1 -1
- package/build/commands/hooks/enable.js +1 -1
- package/build/commands/hooks/exitPlanMode.js +1 -1
- package/build/commands/hooks/index.js +1 -1
- package/build/commands/hooks/output.js +1 -1
- package/build/commands/hooks/planReminder.js +1 -1
- package/build/commands/hooks/planStart.js +1 -1
- package/build/commands/hooks/postEdit.js +1 -1
- package/build/commands/hooks/preCompact.js +1 -1
- package/build/commands/hooks/sessionEnd.js +1 -1
- package/build/commands/hooks/sessionStart.js +1 -1
- package/build/commands/hooks/stopHook.js +1 -1
- package/build/commands/index.js +1 -1
- package/build/commands/login.js +1 -1
- package/build/commands/mcpBootstrap.js +1 -1
- package/build/commands/migrateProfile.js +1 -1
- package/build/commands/setup/claude.js +1 -1
- package/build/commands/setup/opencode.js +1 -1
- package/build/commands/setupCi.js +1 -1
- package/build/commands/skillup.js +1 -1
- package/build/commands/start.js +1 -1
- package/build/commands/status.js +1 -1
- package/build/commands/update.js +1 -1
- package/build/commands/updateEnv.js +1 -1
- package/build/commands/useEnv.js +1 -1
- package/build/commands/utils/activeProfile.js +1 -1
- package/build/commands/utils/agentEnv.js +1 -1
- package/build/commands/utils/browserSessionsApi.js +1 -1
- package/build/commands/utils/claudeConfig.js +1 -1
- package/build/commands/utils/claudeOverrideSettings.js +1 -1
- package/build/commands/utils/claudePlugin.js +1 -1
- package/build/commands/utils/cloudProfile.js +1 -1
- package/build/commands/utils/cloudProfileSession.js +1 -1
- package/build/commands/utils/crypto.js +1 -1
- package/build/commands/utils/desirePathLog.js +1 -1
- package/build/commands/utils/deviceAuth.js +1 -1
- package/build/commands/utils/environment.js +1 -1
- package/build/commands/utils/featureApi.js +1 -1
- package/build/commands/utils/fixWebmDuration.js +1 -1
- package/build/commands/utils/gitTracked.js +1 -1
- package/build/commands/utils/keychain.js +1 -1
- package/build/commands/utils/legacyWarning.js +1 -0
- package/build/commands/utils/localAgentInstallationsApi.js +1 -1
- package/build/commands/utils/matchAuthEnvironment.js +1 -1
- package/build/commands/utils/mcpImageBase64.js +1 -1
- package/build/commands/utils/model.js +1 -1
- package/build/commands/utils/opencodeConfig.js +1 -1
- package/build/commands/utils/playwrightCli.js +1 -1
- package/build/commands/utils/profileMessages.js +1 -1
- package/build/commands/utils/profileSetupBanner.js +1 -1
- package/build/commands/utils/projectsConfig.js +1 -1
- package/build/commands/utils/rangerConfig.js +1 -1
- package/build/commands/utils/rangerRoot.js +1 -1
- package/build/commands/utils/resolveProfileContext.js +1 -1
- package/build/commands/utils/resolveProfileUrl.js +1 -1
- package/build/commands/utils/retry.js +1 -1
- package/build/commands/utils/sessionCache.js +1 -1
- package/build/commands/utils/settings.js +1 -1
- package/build/commands/utils/skillContent.js +1 -1
- package/build/commands/utils/skills.js +1 -1
- package/build/commands/utils/stitchWebmFiles.js +1 -1
- package/build/commands/utils/telemetry.js +1 -1
- package/build/commands/utils/tokenRefresh.js +1 -1
- package/build/commands/utils/traceSnapshotMapper.js +1 -1
- package/build/commands/utils/userApi.js +1 -1
- package/build/commands/utils/version.js +1 -1
- package/build/commands/verifyFeature.js +1 -1
- package/build/commands/verifyFeatureCli.js +1 -1
- package/build/skills/ranger/SKILL.md +35 -6
- package/build/skills/ranger/create.md +19 -0
- package/build/skills/ranger/verify.md +42 -15
- package/package.json +3 -2
package/build/commands/login.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2f40de,_0x51b9d2){const _0x195c25=_0x593c,_0x30e0ae=_0x2f40de();while(!![]){try{const _0x32336a=parseInt(_0x195c25(0xa4))/0x1+-parseInt(_0x195c25(0x9e))/0x2+parseInt(_0x195c25(0x9d))/0x3+-parseInt(_0x195c25(0x99))/0x4*(parseInt(_0x195c25(0xa5))/0x5)+parseInt(_0x195c25(0xa2))/0x6+-parseInt(_0x195c25(0xa3))/0x7*(-parseInt(_0x195c25(0xa0))/0x8)+-parseInt(_0x195c25(0x9f))/0x9*(parseInt(_0x195c25(0x9a))/0xa);if(_0x32336a===_0x51b9d2)break;else _0x30e0ae['push'](_0x30e0ae['shift']());}catch(_0x405ff9){_0x30e0ae['push'](_0x30e0ae['shift']());}}}(_0x57d1,0xab928));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x593c(_0x318827,_0x54820a){_0x318827=_0x318827-0x98;const _0x57d1c3=_0x57d1();let _0x593c47=_0x57d1c3[_0x318827];return _0x593c47;}import{getCurrentUser}from'./utils/userApi.js';import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';function _0x57d1(){const _0x2441f5=['5305758ezKmsS','161pfoLph','1089618XMuQZS','5GefPfA','Login\x20failed:\x20','Re-authenticating\x20via\x20MCP\x20bootstrap...','186628ibJGnk','25370kdMnpD','log','organizationName','1600389ltCARV','2510240DiXTdE','4509oIvdrs','267200ZhdHFt','isTTY'];_0x57d1=function(){return _0x2441f5;};return _0x57d1();}export async function login(){const _0xcc7053=_0x593c,_0x2067fa={'GGuDW':function(_0x51964f){return _0x51964f();},'FokIN':_0xcc7053(0x98),'iPoxs':'Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','BYtJf':function(_0x5755c9){return _0x5755c9();}},_0x343dff=await _0x2067fa['GGuDW'](getMcpAuthOrigin);if(_0x343dff){console['log'](_0x2067fa['FokIN']),await _0x2067fa['GGuDW'](mcpBootstrap);return;}const _0x4a0daf=process['stdin']['isTTY']&&process['stdout'][_0xcc7053(0xa1)];if(!_0x4a0daf)throw new Error(_0x2067fa['iPoxs']);try{const _0x3229cc=await _0x2067fa['BYtJf'](runDeviceAuthFlow),_0x1ca520=await getCurrentUser(_0x3229cc);_0x1ca520['success']?console[_0xcc7053(0x9b)]('\x0a✅\x20Logged\x20in\x20to\x20'+_0x1ca520['user'][_0xcc7053(0x9c)]):console['log']('\x0a✅\x20API\x20key\x20stored\x20successfully');}catch(_0x26c722){throw new Error(_0xcc7053(0xa6)+(_0x26c722 instanceof Error?_0x26c722['message']:_0x26c722));}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x3fb8af=_0x16b4;(function(_0x49ca05,_0x54e0b1){const _0x15aaa3=_0x16b4,_0x138190=_0x49ca05();while(!![]){try{const _0x8c3e8e=parseInt(_0x15aaa3(0x14e))/0x1*(parseInt(_0x15aaa3(0x1ac))/0x2)+parseInt(_0x15aaa3(0x177))/0x3+-parseInt(_0x15aaa3(0x1ab))/0x4*(-parseInt(_0x15aaa3(0x17c))/0x5)+-parseInt(_0x15aaa3(0x1be))/0x6+-parseInt(_0x15aaa3(0x16d))/0x7+parseInt(_0x15aaa3(0x1c9))/0x8*(-parseInt(_0x15aaa3(0x187))/0x9)+parseInt(_0x15aaa3(0x19d))/0xa*(parseInt(_0x15aaa3(0x13c))/0xb);if(_0x8c3e8e===_0x54e0b1)break;else _0x138190['push'](_0x138190['shift']());}catch(_0x5bb6ad){_0x138190['push'](_0x138190['shift']());}}}(_0x1a2c,0x35a56));import{mkdir,writeFile,readFile}from'fs/promises';function _0x16b4(_0x55e1f1,_0x85307d){_0x55e1f1=_0x55e1f1-0x139;const _0x1a2c0f=_0x1a2c();let _0x16b4a6=_0x1a2c0f[_0x55e1f1];return _0x16b4a6;}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',_0x3fb8af(0x1b6)),AUTH_ORIGIN_PATH=join(homedir(),'.ranger','auth-origin.txt');export async function getMcpAuthOrigin(){const _0x13f308=_0x3fb8af,_0x1db12e={'NonyT':_0x13f308(0x1b7)};try{const _0x4d9185=(await readFile(AUTH_ORIGIN_PATH,_0x1db12e['NonyT']))['trim']();return _0x4d9185||null;}catch{return null;}}export async function mcpBootstrap(){const _0x47d050=_0x3fb8af,_0x4f37b9={'OstgE':function(_0x4b9a39){return _0x4b9a39();},'GDBLw':function(_0x370748,_0xe04b6d){return _0x370748===_0xe04b6d;},'UqHyG':function(_0x1aa677){return _0x1aa677();},'gnqrS':_0x47d050(0x18b),'lorPJ':function(_0x585938,_0x194a65){return _0x585938(_0x194a65);}},_0x2f8313=_0x4f37b9[_0x47d050(0x1a2)](getMcpAuthUrl);currentOrigin=_0x2f8313;const _0x21cb60=process['stdout'][_0x47d050(0x141)]??![];console[_0x47d050(0x182)]('\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20'+_0x2f8313+'\x0a');const _0xd7a688=await tryUnauthenticated(_0x2f8313);let _0x3e6494=null;if(_0x4f37b9[_0x47d050(0x191)](_0xd7a688,_0x47d050(0x180)))_0x3e6494='';else{_0x3e6494=await _0x4f37b9['UqHyG'](loadCachedToken);if(!_0x3e6494){if(!_0x21cb60)throw new Error(_0x47d050(0x1a4)+_0x4f37b9['gnqrS']);_0x3e6494=await _0x4f37b9['lorPJ'](oauthFlow,_0x2f8313);}}await callGetCliToken(_0x2f8313,_0x3e6494);}async function tryUnauthenticated(_0x3e8dfd){const _0x366de3=_0x3fb8af,_0x211444={'auJgV':function(_0x3a305b,_0x2ec1a8,_0x45b099){return _0x3a305b(_0x2ec1a8,_0x45b099);},'PzJPK':'POST','gBGwk':_0x366de3(0x1b3),'gPrxz':_0x366de3(0x173),'IoLei':_0x366de3(0x172),'wkOfK':_0x366de3(0x1cd),'lrwoH':_0x366de3(0x14f),'qXaMX':function(_0x402afb,_0x17b8a6){return _0x402afb===_0x17b8a6;}},_0x21b931=await _0x211444[_0x366de3(0x19e)](fetch,_0x3e8dfd,{'method':_0x211444[_0x366de3(0x152)],'headers':{'Content-Type':_0x211444[_0x366de3(0x147)],'Accept':_0x211444['gPrxz']},'body':JSON[_0x366de3(0x144)]({'jsonrpc':'2.0','id':0x1,'method':_0x211444[_0x366de3(0x17d)],'params':{'protocolVersion':_0x211444['wkOfK'],'capabilities':{},'clientInfo':{'name':'ranger-cli','version':_0x211444[_0x366de3(0x14d)]}}})});if(_0x21b931['ok'])return await _0x21b931[_0x366de3(0x13d)](),_0x366de3(0x180);if(_0x211444['qXaMX'](_0x21b931[_0x366de3(0x192)],0x191))return await _0x21b931[_0x366de3(0x13d)](),'needs-oauth';const _0x573c51=await _0x21b931['text']();throw new Error('MCP\x20server\x20returned\x20HTTP\x20'+_0x21b931['status']+':\x20'+_0x573c51);}class OAuthTimeoutError extends Error{constructor(_0x2f2db8){const _0x32272b=_0x3fb8af;super(_0x2f2db8),this[_0x32272b(0x151)]='OAuthTimeoutError';}}async function oauthFlow(_0xd05e7c){const _0x28531d=_0x3fb8af,_0x286598={'xpAdO':function(_0x405931,_0x13f870){return _0x405931(_0x13f870);},'vJeux':function(_0x2c9ecd){return _0x2c9ecd();}};try{return await _0x286598['xpAdO'](oauthFlowAttempt,_0xd05e7c);}catch(_0x1b1673){if(_0x1b1673 instanceof OAuthTimeoutError&&await loadCachedClient())return console['log']('\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'),await _0x286598['vJeux'](clearCachedClient),await _0x286598[_0x28531d(0x163)](oauthFlowAttempt,_0xd05e7c);throw _0x1b1673;}}async function oauthFlowAttempt(_0x6c0836){const _0x3c652c=_0x3fb8af,_0x28e422={'idJUa':function(_0x53d7c9,_0xe94577){return _0x53d7c9(_0xe94577);},'SwrhL':function(_0x11c928,_0x38fdbe){return _0x11c928(_0x38fdbe);},'QEOqk':function(_0xa0d72f,_0x434e03,_0x39c453){return _0xa0d72f(_0x434e03,_0x39c453);},'CuXpU':_0x3c652c(0x1b3),'rPxHU':_0x3c652c(0x17b),'JWvcM':_0x3c652c(0x16e),'YpVTh':_0x3c652c(0x178),'ewviE':'Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','YLtZg':'base64url','LggMb':function(_0x4a1b80,_0x331e7a){return _0x4a1b80(_0x331e7a);},'WdYHg':'response_type','seLQl':_0x3c652c(0x155),'KCfZL':'code_challenge','PmNRw':'code_challenge_method','QrWxg':function(_0x4fcc30,_0x1c9a3c){return _0x4fcc30(_0x1c9a3c);},'Vssyw':_0x3c652c(0x167),'JXWTT':_0x3c652c(0x1b2),'UMDIf':_0x3c652c(0x18c),'xYJoA':function(_0x51b26b,_0xbdf8c0,_0x163265,_0x4b11d9){return _0x51b26b(_0xbdf8c0,_0x163265,_0x4b11d9);}},_0x30d24e=_0x6c0836['replace'](/\/mcp$/,'');process['stdout'][_0x3c652c(0x1bc)](_0x3c652c(0x154));const _0x4e8918=await _0x28e422[_0x3c652c(0x16c)](fetch,_0x30d24e+'/.well-known/oauth-protected-resource');if(!_0x4e8918['ok'])throw new Error('Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server');const _0x3d1e02=await _0x4e8918[_0x3c652c(0x1c8)](),_0x5e8e24=_0x3d1e02['authorization_servers']?.[0x0];if(!_0x5e8e24)throw new Error('No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata');console[_0x3c652c(0x182)]('\x20'+_0x5e8e24);const _0x322854=await _0x28e422['SwrhL'](fetchAuthServerMetadata,_0x5e8e24);let _0x25f2d5,_0x2831e6;const _0x249724=await loadCachedClient();if(_0x249724)_0x25f2d5=_0x249724[_0x3c652c(0x13a)],_0x2831e6=_0x249724[_0x3c652c(0x15f)];else{if(_0x322854['registration_endpoint']){process[_0x3c652c(0x195)][_0x3c652c(0x1bc)](_0x3c652c(0x1af));const _0x59600a=await _0x28e422['QEOqk'](fetch,_0x322854[_0x3c652c(0x1a8)],{'method':'POST','headers':{'Content-Type':_0x28e422['CuXpU']},'body':JSON['stringify']({'client_name':_0x28e422[_0x3c652c(0x15d)],'redirect_uris':[_0x3c652c(0x13e)+CALLBACK_PORT+'/callback'],'grant_types':[_0x28e422[_0x3c652c(0x1b1)],'refresh_token'],'response_types':[_0x28e422[_0x3c652c(0x15b)]],'token_endpoint_auth_method':'none'})});if(!_0x59600a['ok']){const _0x28163c=await _0x59600a[_0x3c652c(0x13d)]();throw new Error('Client\x20registration\x20failed:\x20'+_0x28163c);}const _0x374f8f=await _0x59600a['json']();_0x25f2d5=_0x374f8f['client_id'],_0x2831e6=_0x374f8f['client_secret'],await _0x28e422['QEOqk'](saveCachedClient,_0x25f2d5,_0x2831e6),console[_0x3c652c(0x182)](_0x3c652c(0x18c));}else throw new Error(_0x28e422['ewviE']);}const _0x12c998=randomBytes(0x20)[_0x3c652c(0x14a)](_0x28e422[_0x3c652c(0x197)]),_0x135728=_0x28e422['LggMb'](createHash,'sha256')['update'](_0x12c998)[_0x3c652c(0x171)](_0x3c652c(0x1b5)),_0x8328c2=randomBytes(0x10)['toString'](_0x3c652c(0x19f)),_0x598bd7=new URL(_0x322854['authorization_endpoint']);_0x598bd7[_0x3c652c(0x189)][_0x3c652c(0x13f)](_0x28e422[_0x3c652c(0x175)],'code'),_0x598bd7['searchParams'][_0x3c652c(0x13f)](_0x28e422['seLQl'],_0x25f2d5),_0x598bd7['searchParams']['set']('redirect_uri','http://localhost:'+CALLBACK_PORT+_0x3c652c(0x160)),_0x598bd7[_0x3c652c(0x189)]['set'](_0x28e422[_0x3c652c(0x1c7)],_0x135728),_0x598bd7[_0x3c652c(0x189)]['set'](_0x28e422['PmNRw'],_0x3c652c(0x159)),_0x598bd7[_0x3c652c(0x189)][_0x3c652c(0x13f)](_0x3c652c(0x15c),_0x8328c2);_0x3d1e02['resource']&&_0x598bd7[_0x3c652c(0x189)][_0x3c652c(0x13f)](_0x3c652c(0x1c4),_0x3d1e02['resource']);console['log'](_0x3c652c(0x164)),console['log'](_0x3c652c(0x149)+_0x598bd7[_0x3c652c(0x14a)]()+'\x0a'),await _0x28e422[_0x3c652c(0x168)](openBrowser,_0x598bd7['toString']());const _0x29bbaa=await waitForCallback(_0x8328c2);process[_0x3c652c(0x195)]['write'](_0x28e422[_0x3c652c(0x1a7)]);const _0x106fc2=new URLSearchParams({'grant_type':_0x28e422[_0x3c652c(0x1b1)],'code':_0x29bbaa,'redirect_uri':_0x3c652c(0x13e)+CALLBACK_PORT+'/callback','client_id':_0x25f2d5,'code_verifier':_0x12c998});_0x2831e6&&_0x106fc2['set']('client_secret',_0x2831e6);_0x3d1e02[_0x3c652c(0x1c4)]&&_0x106fc2['set']('resource',_0x3d1e02[_0x3c652c(0x1c4)]);const _0x8a648f=await _0x28e422['QEOqk'](fetch,_0x322854[_0x3c652c(0x148)],{'method':_0x28e422[_0x3c652c(0x1a5)],'headers':{'Content-Type':_0x3c652c(0x150)},'body':_0x106fc2});if(!_0x8a648f['ok']){const _0x229ca6=await _0x8a648f[_0x3c652c(0x13d)]();throw new Error(_0x3c652c(0x1c5)+_0x229ca6);}const _0x43123f=await _0x8a648f[_0x3c652c(0x1c8)]();return console[_0x3c652c(0x182)](_0x28e422[_0x3c652c(0x1c6)]),await _0x28e422[_0x3c652c(0x1ba)](saveCachedToken,_0x43123f[_0x3c652c(0x18f)],_0x43123f[_0x3c652c(0x181)],_0x43123f[_0x3c652c(0x143)]),_0x43123f[_0x3c652c(0x18f)];}async function callGetCliToken(_0x1dcbcc,_0x593703){const _0x18a1e7=_0x3fb8af,_0x286ba0={'bIrCq':function(_0x2bd54e,_0x49b5af,_0x41f5c2){return _0x2bd54e(_0x49b5af,_0x41f5c2);},'scNlD':function(_0x58b927,_0x4a0c33){return _0x58b927(_0x4a0c33);},'IEEwA':'application/json,\x20text/event-stream','XwVaR':'Authorization','EvfCp':'2.0','BJrtA':_0x18a1e7(0x1cd),'lszCH':'ranger-cli','ntWUk':'1.0.0','jgYDj':'\x20done','pIDgV':'notifications/initialized','VxPrH':function(_0x28f49f,_0x2afcdc){return _0x28f49f(_0x2afcdc);},'gtrnO':'tools/call','ZQRuG':_0x18a1e7(0x190),'rVLng':'\x0aUnexpected\x20response\x20structure:','qUUrF':_0x18a1e7(0x1aa),'WSmcC':function(_0x3ddc8b,_0x2cc7a6,_0x1a0dfb){return _0x3ddc8b(_0x2cc7a6,_0x1a0dfb);},'GgdWn':function(_0x5b126f,_0x11a8fd,_0x425e4d,_0x26ab98){return _0x5b126f(_0x11a8fd,_0x425e4d,_0x26ab98);},'ObTSD':function(_0x3d007e,_0x2fa89b,_0x3968a0,_0x3da6e1){return _0x3d007e(_0x2fa89b,_0x3968a0,_0x3da6e1);},'FuGsI':'auth-origin.txt'},_0x169f22={'Content-Type':'application/json','Accept':_0x286ba0['IEEwA']};_0x593703&&(_0x169f22[_0x286ba0[_0x18a1e7(0x1c2)]]=_0x18a1e7(0x193)+_0x593703);const _0x1350cd=async _0x4dc398=>{const _0x501d88=_0x18a1e7,_0x2083b8=await _0x286ba0[_0x501d88(0x1ae)](fetch,_0x1dcbcc,{'method':'POST','headers':_0x169f22,'body':JSON['stringify'](_0x4dc398)});if(!_0x2083b8['ok']){const _0x8cd3fb=await _0x2083b8[_0x501d88(0x13d)]();throw new Error('HTTP\x20'+_0x2083b8[_0x501d88(0x192)]+':\x20'+_0x8cd3fb);}return _0x286ba0[_0x501d88(0x1a6)](parseResponse,_0x2083b8);};process['stdout'][_0x18a1e7(0x1bc)](_0x18a1e7(0x166));const _0x4149e4=await _0x286ba0[_0x18a1e7(0x1a6)](_0x1350cd,{'jsonrpc':_0x286ba0['EvfCp'],'id':0x1,'method':_0x18a1e7(0x172),'params':{'protocolVersion':_0x286ba0[_0x18a1e7(0x156)],'capabilities':{},'clientInfo':{'name':_0x286ba0['lszCH'],'version':_0x286ba0['ntWUk']}}});if(_0x4149e4[_0x18a1e7(0x158)])throw new Error('MCP\x20initialize\x20failed:\x20'+(_0x4149e4[_0x18a1e7(0x158)][_0x18a1e7(0x174)]??JSON[_0x18a1e7(0x144)](_0x4149e4['error'])));console[_0x18a1e7(0x182)](_0x286ba0[_0x18a1e7(0x1c3)]),await fetch(_0x1dcbcc,{'method':'POST','headers':_0x169f22,'body':JSON['stringify']({'jsonrpc':'2.0','method':_0x286ba0['pIDgV']})})['then'](_0x283eb3=>_0x283eb3[_0x18a1e7(0x13d)]()),process['stdout'][_0x18a1e7(0x1bc)]('Requesting\x20CLI\x20token...');const _0x1fcf9d=await _0x286ba0['VxPrH'](_0x1350cd,{'jsonrpc':_0x18a1e7(0x142),'id':0x2,'method':_0x286ba0[_0x18a1e7(0x170)],'params':{'name':_0x286ba0[_0x18a1e7(0x188)],'arguments':{}}});if(_0x1fcf9d['error'])throw new Error(_0x18a1e7(0x1c1)+(_0x1fcf9d[_0x18a1e7(0x158)]['message']??JSON['stringify'](_0x1fcf9d['error'])));console[_0x18a1e7(0x182)](_0x286ba0[_0x18a1e7(0x1c3)]);const _0x476e73=extractToken(_0x1fcf9d[_0x18a1e7(0x184)]);if(!_0x476e73){console['error'](_0x286ba0['rVLng']),console[_0x18a1e7(0x158)](JSON[_0x18a1e7(0x144)](_0x1fcf9d[_0x18a1e7(0x184)],null,0x2));throw new Error(_0x286ba0['qUUrF']);}const _0x5b38f9=join(homedir(),_0x18a1e7(0x19a)),_0x17209d=join(_0x5b38f9,_0x18a1e7(0x1ad));await _0x286ba0['WSmcC'](mkdir,_0x5b38f9,{'recursive':!![]}),await _0x286ba0['GgdWn'](writeFile,_0x17209d,_0x476e73,{'mode':0x180}),await _0x286ba0[_0x18a1e7(0x165)](writeFile,join(_0x5b38f9,_0x286ba0['FuGsI']),_0x1dcbcc,{'mode':0x180}),console['log'](_0x18a1e7(0x17f)+_0x17209d),console['log']('Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a');}async function fetchAuthServerMetadata(_0x31fc29){const _0x2bfa65=_0x3fb8af,_0x4e9650=_0x31fc29+_0x2bfa65(0x162),_0x5d584c=await fetch(_0x4e9650);if(!_0x5d584c['ok'])throw new Error('Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20'+_0x4e9650+':\x20'+_0x5d584c[_0x2bfa65(0x192)]);return _0x5d584c[_0x2bfa65(0x1c8)]();}function waitForCallback(_0x1d5e37){const _0x3a6dfa=_0x3fb8af,_0x4ca173={'winvy':function(_0x2ee279,_0x56516a){return _0x2ee279!==_0x56516a;},'QsSps':'/callback','yxnBS':'error_description','hirHe':_0x3a6dfa(0x14b),'MjTCM':_0x3a6dfa(0x18a),'YkyiS':'<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','unBji':function(_0x5cb930,_0x532123){return _0x5cb930(_0x532123);},'hswTT':_0x3a6dfa(0x1cc),'nFsay':function(_0x3a1862,_0x114263){return _0x3a1862(_0x114263);},'oNXMc':_0x3a6dfa(0x18d)};return new Promise((_0x5563c0,_0x430bce)=>{const _0x67e107=_0x3a6dfa,_0x269459={'AXMUl':_0x4ca173[_0x67e107(0x157)]},_0x18eed9=setTimeout(()=>{const _0x536183=_0x67e107;_0x1a24e8[_0x536183(0x19b)](),_0x430bce(new OAuthTimeoutError(_0x269459['AXMUl']));},0x1d4c0),_0x1a24e8=_0x4ca173[_0x67e107(0x198)](createServer,(_0x2aad3b,_0x29f193)=>{const _0x5d4a13=_0x67e107,_0x43ecdd=new URL(_0x2aad3b['url']??'/','http://localhost:'+CALLBACK_PORT);if(_0x4ca173['winvy'](_0x43ecdd['pathname'],_0x4ca173[_0x5d4a13(0x1a0)])){_0x29f193[_0x5d4a13(0x1ce)](0x194),_0x29f193['end']('Not\x20found');return;}const _0x1bf99a=_0x43ecdd['searchParams'][_0x5d4a13(0x16b)](_0x5d4a13(0x178)),_0x2c64fd=_0x43ecdd['searchParams']['get'](_0x5d4a13(0x15c)),_0x559a9f=_0x43ecdd[_0x5d4a13(0x189)]['get']('error');if(_0x559a9f){const _0x192a06=_0x43ecdd[_0x5d4a13(0x189)][_0x5d4a13(0x16b)](_0x4ca173['yxnBS'])??_0x559a9f;_0x29f193[_0x5d4a13(0x1ce)](0xc8,{'Content-Type':_0x5d4a13(0x18a)}),_0x29f193['end'](_0x5d4a13(0x17e)+_0x192a06+_0x5d4a13(0x176)),clearTimeout(_0x18eed9),_0x1a24e8['close'](),_0x430bce(new Error(_0x5d4a13(0x13b)+_0x192a06));return;}if(!_0x1bf99a||_0x2c64fd!==_0x1d5e37){_0x29f193[_0x5d4a13(0x1ce)](0x190,{'Content-Type':'text/html'}),_0x29f193[_0x5d4a13(0x14c)](_0x4ca173['hirHe']);return;}_0x29f193[_0x5d4a13(0x1ce)](0xc8,{'Content-Type':_0x4ca173['MjTCM']}),_0x29f193[_0x5d4a13(0x14c)](_0x4ca173[_0x5d4a13(0x15e)]),_0x4ca173[_0x5d4a13(0x1b8)](clearTimeout,_0x18eed9),_0x1a24e8[_0x5d4a13(0x19b)](),_0x4ca173['unBji'](_0x5563c0,_0x1bf99a);});_0x1a24e8['listen'](CALLBACK_PORT,_0x4ca173['oNXMc']);});}function _0x1a2c(){const _0x1e2833=['utf-8','unBji','parse','xYJoA','Unknown\x20error','write','start','2054712igApCt','accessToken','now','get_cli_token\x20failed:\x20','XwVaR','jgYDj','resource','Token\x20exchange\x20failed:\x20','UMDIf','KCfZL','json','216AyBffq','startsWith','data:','OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','2025-03-26','writeHead','win32','fYgNU','content','clientId','OAuth\x20error:\x20','9933nFlVNM','text','http://localhost:','set','mnZsx','isTTY','2.0','expires_in','stringify','MmcEW','refreshToken','gBGwk','token_endpoint','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','toString','<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','end','lrwoH','6115hsvnJP','1.0.0','application/x-www-form-urlencoded','name','PzJPK','iFqPa','Discovering\x20authorization\x20server...','client_id','BJrtA','hswTT','error','S256','mRkGT','YpVTh','state','rPxHU','YkyiS','clientSecret','/callback','WqIxi','/.well-known/oauth-authorization-server','xpAdO','\x0aOpening\x20browser\x20for\x20authentication...','ObTSD','Initializing\x20MCP\x20session...','Exchanging\x20authorization\x20code...','QrWxg','OcyWH','token','get','idJUa','1145865psAlKR','authorization_code','slice','gtrnO','digest','initialize','application/json,\x20text/event-stream','message','WdYHg','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','257454DCuXOj','code','isError','trim','Ranger\x20CLI','15jrqupf','IoLei','<html><body><h2>Authentication\x20failed</h2><p>','\x0aToken\x20written\x20to\x20','proxied','refresh_token','log','zXZlS','result','open','Fwpey','61461FjaLja','ZQRuG','searchParams','text/html','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','\x20done','127.0.0.1','length','access_token','get_cli_token','GDBLw','status','Bearer\x20','content-type','stdout','OnOLj','YLtZg','nFsay','split','.ranger','close','origin','4860iUiNTx','auJgV','hex','QsSps','yIHke','OstgE','platform','MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','JXWTT','scNlD','Vssyw','registration_endpoint','uBhUa','Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','505964itYtmI','2irElfs','refresh.txt','bIrCq','Registering\x20OAuth\x20client...','Server\x20returned\x20error:\x20','JWvcM','POST','application/json','expiresAt','base64url','mcp-oauth-tokens.json'];_0x1a2c=function(){return _0x1e2833;};return _0x1a2c();}async function openBrowser(_0x538747){const _0x49510b=_0x3fb8af,_0x7660cf={'lUPyu':'child_process','Fwpey':'darwin','ritDw':function(_0x5beb2c,_0x2e125d){return _0x5beb2c===_0x2e125d;},'OejFP':'xdg-open'},{exec:_0x3bcf4e}=await import(_0x7660cf['lUPyu']),_0x235aec=process['platform']===_0x7660cf[_0x49510b(0x186)]?_0x49510b(0x185):_0x7660cf['ritDw'](process[_0x49510b(0x1a3)],_0x49510b(0x1cf))?_0x49510b(0x1bd):_0x7660cf['OejFP'];_0x3bcf4e(_0x235aec+'\x20\x22'+_0x538747+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x3962e0=_0x3fb8af,_0x1bb609={'RZQII':'utf-8','HjFRQ':function(_0x266ee3,_0x1c3d0c){return _0x266ee3!==_0x1c3d0c;}};try{const _0x349572=JSON['parse'](await readFile(TOKEN_CACHE_PATH,_0x1bb609['RZQII']));if(_0x349572['origin']&&_0x1bb609['HjFRQ'](_0x349572['origin'],currentOrigin))return null;if(_0x349572[_0x3962e0(0x1b4)]&&Date[_0x3962e0(0x1c0)]()>_0x349572[_0x3962e0(0x1b4)])return null;return _0x349572[_0x3962e0(0x1bf)]??null;}catch{return null;}}async function saveCachedToken(_0x210f60,_0x3db66e,_0x253809){const _0x5c6c37=_0x3fb8af,_0x4f621b={'WqIxi':function(_0x1ebb04){return _0x1ebb04();},'AahQB':function(_0x16d796,_0x4abdc2){return _0x16d796+_0x4abdc2;},'uBhUa':_0x5c6c37(0x19a)},_0x25258d=await _0x4f621b[_0x5c6c37(0x161)](loadCachedData),_0x7f6644={..._0x25258d,'origin':currentOrigin,'accessToken':_0x210f60,'refreshToken':_0x3db66e??_0x25258d?.[_0x5c6c37(0x146)],'expiresAt':_0x253809?_0x4f621b['AahQB'](Date['now'](),_0x253809*0x3e8):undefined};await mkdir(join(homedir(),_0x4f621b[_0x5c6c37(0x1a9)]),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x7f6644),{'mode':0x180});}async function loadCachedClient(){const _0x2dbc62=_0x3fb8af,_0x241670={'OipXz':function(_0x21bf36){return _0x21bf36();},'MmcEW':function(_0x199bb3,_0x54205d){return _0x199bb3!==_0x54205d;}},_0x3d1cbc=await _0x241670['OipXz'](loadCachedData);if(_0x3d1cbc?.['origin']&&_0x241670[_0x2dbc62(0x145)](_0x3d1cbc[_0x2dbc62(0x19c)],currentOrigin))return null;return _0x3d1cbc?.['clientId']?{'clientId':_0x3d1cbc['clientId'],'clientSecret':_0x3d1cbc['clientSecret']}:null;}async function clearCachedClient(){const _0x535cbf=_0x3fb8af,_0x211147={'iFqPa':function(_0x53846e){return _0x53846e();},'hhzdz':function(_0x4c1d33,_0x176fb7,_0x5ba9f5,_0x1bcc96){return _0x4c1d33(_0x176fb7,_0x5ba9f5,_0x1bcc96);}},_0x6ee6a6=await _0x211147[_0x535cbf(0x153)](loadCachedData);if(!_0x6ee6a6)return;const {clientId:_0x3a29de,clientSecret:_0x4f7327,..._0x20eca6}=_0x6ee6a6;await _0x211147['hhzdz'](writeFile,TOKEN_CACHE_PATH,JSON[_0x535cbf(0x144)](_0x20eca6),{'mode':0x180});}async function saveCachedClient(_0xa1037a,_0x53efcc){const _0x527c99=_0x3fb8af,_0x3cf75a={'rZIEL':function(_0x5cc1c2){return _0x5cc1c2();},'TWaeb':function(_0x48eb99,_0x296eb7,_0x4efd94){return _0x48eb99(_0x296eb7,_0x4efd94);},'fYgNU':_0x527c99(0x19a),'zXZlS':function(_0x298d6b,_0x193531,_0x306f1b,_0x5294fd){return _0x298d6b(_0x193531,_0x306f1b,_0x5294fd);}},_0x36dbf9=await _0x3cf75a['rZIEL'](loadCachedData),_0x2a7885={..._0x36dbf9,'origin':currentOrigin,'accessToken':_0x36dbf9?.[_0x527c99(0x1bf)]??'','clientId':_0xa1037a,'clientSecret':_0x53efcc};await mkdir(_0x3cf75a['TWaeb'](join,homedir(),_0x3cf75a[_0x527c99(0x1d0)]),{'recursive':!![]}),await _0x3cf75a[_0x527c99(0x183)](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x2a7885),{'mode':0x180});}async function loadCachedData(){const _0x333809=_0x3fb8af,_0x2c8270={'eTUbe':function(_0x4b83c0,_0x3d9912,_0xf5881c){return _0x4b83c0(_0x3d9912,_0xf5881c);},'mRkGT':'utf-8'};try{return JSON[_0x333809(0x1b9)](await _0x2c8270['eTUbe'](readFile,TOKEN_CACHE_PATH,_0x2c8270[_0x333809(0x15a)]));}catch{return null;}}async function parseResponse(_0x30daf7){const _0x4324bb=_0x3fb8af,_0x429e81={'yIHke':'data:','OnOLj':function(_0x5dff9e,_0x8fd7ce){return _0x5dff9e!==_0x8fd7ce;}},_0x4beceb=_0x30daf7['headers']['get'](_0x4324bb(0x194))??'';if(_0x4beceb['includes']('text/event-stream')){const _0x11d19c=await _0x30daf7['text']();for(const _0xe1e228 of _0x11d19c[_0x4324bb(0x199)]('\x0a')){const _0x3571eb=_0xe1e228[_0x4324bb(0x17a)]();if(_0x3571eb[_0x4324bb(0x1ca)](_0x429e81[_0x4324bb(0x1a1)])){const _0x18098e=_0x3571eb[_0x4324bb(0x16f)](_0x4324bb(0x1cb)[_0x4324bb(0x18e)])['trim']();if(!_0x18098e)continue;try{const _0x25ec90=JSON['parse'](_0x18098e);if(_0x429e81[_0x4324bb(0x196)](_0x25ec90['id'],undefined)||_0x25ec90[_0x4324bb(0x158)])return _0x25ec90;}catch{}}}throw new Error('No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream');}return _0x30daf7[_0x4324bb(0x1c8)]();}function extractToken(_0x5caa1c){const _0x4cb5f3=_0x3fb8af,_0x57c8ab={'wJLpP':_0x4cb5f3(0x1bb),'mnZsx':_0x4cb5f3(0x13d),'OcyWH':function(_0x3349cd,_0x4405fc){return _0x3349cd===_0x4405fc;}};if(!_0x5caa1c)return null;const _0xdaefb4=_0x5caa1c['structuredContent'];if(_0xdaefb4?.[_0x4cb5f3(0x16a)]&&typeof _0xdaefb4['token']==='string')return _0xdaefb4[_0x4cb5f3(0x16a)];if(_0x5caa1c[_0x4cb5f3(0x179)]){const _0x2b2671=_0x5caa1c[_0x4cb5f3(0x139)];throw new Error(_0x4cb5f3(0x1b0)+(_0x2b2671?.[0x0]?.[_0x4cb5f3(0x13d)]??_0x57c8ab['wJLpP']));}const _0x509829=_0x5caa1c['content'];if(_0x509829)for(const _0x272af9 of _0x509829){if(_0x272af9['type']===_0x57c8ab[_0x4cb5f3(0x140)]&&_0x272af9[_0x4cb5f3(0x13d)]){try{const _0x507bef=JSON['parse'](_0x272af9['text']);if(_0x57c8ab[_0x4cb5f3(0x169)](typeof _0x507bef?.[_0x4cb5f3(0x16a)],'string'))return _0x507bef[_0x4cb5f3(0x16a)];}catch{}const _0x5a7a18=_0x272af9['text']['match'](/(rngr_[A-Za-z0-9_-]+)/);if(_0x5a7a18)return _0x5a7a18[0x1];}}return null;}
|
|
1
|
+
const _0x5984b3=_0x326d;(function(_0x3b10d3,_0x40d59f){const _0x4f02ed=_0x326d,_0x435e59=_0x3b10d3();while(!![]){try{const _0x4b476e=parseInt(_0x4f02ed(0x179))/0x1*(-parseInt(_0x4f02ed(0x13f))/0x2)+-parseInt(_0x4f02ed(0x17e))/0x3*(parseInt(_0x4f02ed(0x135))/0x4)+parseInt(_0x4f02ed(0x15a))/0x5+parseInt(_0x4f02ed(0x158))/0x6*(parseInt(_0x4f02ed(0x195))/0x7)+parseInt(_0x4f02ed(0x155))/0x8+parseInt(_0x4f02ed(0x1cb))/0x9+-parseInt(_0x4f02ed(0x172))/0xa;if(_0x4b476e===_0x40d59f)break;else _0x435e59['push'](_0x435e59['shift']());}catch(_0x20f51c){_0x435e59['push'](_0x435e59['shift']());}}}(_0x237b,0x5b47f));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{exec}from'child_process';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),'.ranger','mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),_0x5984b3(0x1a1),'auth-origin.txt');export async function getMcpAuthOrigin(){const _0x1751a6=_0x5984b3,_0x2d33c2={'drAnr':function(_0x480c4a,_0x53ed47){return _0x480c4a||_0x53ed47;}};try{const _0xba4e79=(await readFile(AUTH_ORIGIN_PATH,_0x1751a6(0x181)))[_0x1751a6(0x14d)]();return _0x2d33c2[_0x1751a6(0x12e)](_0xba4e79,null);}catch{return null;}}function _0x326d(_0x534dcc,_0x19483c){_0x534dcc=_0x534dcc-0x12e;const _0x237bd8=_0x237b();let _0x326da5=_0x237bd8[_0x534dcc];return _0x326da5;}export async function mcpBootstrap(){const _0x1f53ce=_0x5984b3,_0x16dacf={'GxfJS':function(_0xdacf44,_0x4908e6){return _0xdacf44(_0x4908e6);},'VxydB':function(_0x41027f){return _0x41027f();},'MCVgk':_0x1f53ce(0x13d),'oqerW':'Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','FJhUb':function(_0xce2be8,_0x4c623e,_0x651f9a){return _0xce2be8(_0x4c623e,_0x651f9a);}},_0x4c2dbc=getMcpAuthUrl();currentOrigin=_0x4c2dbc;const _0x404720=process['stdout']['isTTY']??![];console['log'](_0x1f53ce(0x1b2)+_0x4c2dbc+'\x0a');const _0x5343c0=await _0x16dacf['GxfJS'](tryUnauthenticated,_0x4c2dbc);let _0x2bf710=null;if(_0x5343c0==='proxied')_0x2bf710='';else{_0x2bf710=await _0x16dacf[_0x1f53ce(0x1b7)](loadCachedToken);if(!_0x2bf710){if(!_0x404720)throw new Error(_0x16dacf[_0x1f53ce(0x132)]+_0x16dacf[_0x1f53ce(0x174)]);_0x2bf710=await oauthFlow(_0x4c2dbc);}}await _0x16dacf['FJhUb'](callGetCliToken,_0x4c2dbc,_0x2bf710);}async function tryUnauthenticated(_0x4a117a){const _0xa390d3=_0x5984b3,_0x571925={'eNNbA':function(_0x561cb7,_0x2377ab,_0x38e60c){return _0x561cb7(_0x2377ab,_0x38e60c);},'DJBrR':'application/json','bckFb':'initialize','ZvTrY':'1.0.0','xnnFP':_0xa390d3(0x187),'VXpLw':function(_0x39c3c1,_0x1796c9){return _0x39c3c1===_0x1796c9;}},_0x12eba9=await _0x571925[_0xa390d3(0x1ae)](fetch,_0x4a117a,{'method':'POST','headers':{'Content-Type':_0x571925['DJBrR'],'Accept':_0xa390d3(0x146)},'body':JSON['stringify']({'jsonrpc':_0xa390d3(0x185),'id':0x1,'method':_0x571925[_0xa390d3(0x167)],'params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':_0xa390d3(0x18e),'version':_0x571925[_0xa390d3(0x16c)]}}})});if(_0x12eba9['ok'])return await _0x12eba9['text'](),_0x571925['xnnFP'];if(_0x571925['VXpLw'](_0x12eba9[_0xa390d3(0x1be)],0x191))return await _0x12eba9['text'](),_0xa390d3(0x1c7);const _0x2e506a=await _0x12eba9[_0xa390d3(0x1ac)]();throw new Error(_0xa390d3(0x1c9)+_0x12eba9[_0xa390d3(0x1be)]+':\x20'+_0x2e506a);}class OAuthTimeoutError extends Error{constructor(_0xb62187){const _0x9d1436={'WqXRB':'OAuthTimeoutError'};super(_0xb62187),this['name']=_0x9d1436['WqXRB'];}}async function oauthFlow(_0x17b354){const _0x451f87=_0x5984b3,_0x3459d6={'fVxlU':function(_0x5237dd,_0x32d222){return _0x5237dd(_0x32d222);},'foTfX':function(_0x4cc8e9){return _0x4cc8e9();},'iudfu':'\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'};try{return await _0x3459d6[_0x451f87(0x173)](oauthFlowAttempt,_0x17b354);}catch(_0x42116f){if(_0x42116f instanceof OAuthTimeoutError&&await _0x3459d6['foTfX'](loadCachedClient))return console[_0x451f87(0x162)](_0x3459d6[_0x451f87(0x139)]),await clearCachedClient(),await oauthFlowAttempt(_0x17b354);throw _0x42116f;}}async function oauthFlowAttempt(_0x1efab4){const _0x19ec7a=_0x5984b3,_0x1e2b4a={'uedOP':function(_0x5b4e9f,_0x147ca3){return _0x5b4e9f(_0x147ca3);},'KEpvN':'No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','gmbvU':function(_0x199908,_0x55c2f5){return _0x199908(_0x55c2f5);},'RYpPa':_0x19ec7a(0x19a),'JbLiA':'application/json','bcHJA':'refresh_token','qWOTw':_0x19ec7a(0x170),'dIvTB':'Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','zbkrd':'base64url','FTYEg':_0x19ec7a(0x157),'TiKOC':_0x19ec7a(0x1b4),'kqLun':'client_id','cruax':'redirect_uri','rQtDK':_0x19ec7a(0x186),'NSwAV':'resource','yYaXN':function(_0x5111f0,_0x5b925c){return _0x5111f0(_0x5b925c);},'TNVJe':_0x19ec7a(0x1a5),'rHlhP':function(_0x1ee195,_0x1de09a,_0x176bf6){return _0x1ee195(_0x1de09a,_0x176bf6);},'SbGuY':_0x19ec7a(0x189),'yktcw':_0x19ec7a(0x168),'xjdGt':function(_0x56db47,_0x25de4e,_0x29479a,_0x1d8424){return _0x56db47(_0x25de4e,_0x29479a,_0x1d8424);}},_0x55596a=_0x1efab4[_0x19ec7a(0x143)](/\/mcp$/,'');process[_0x19ec7a(0x14c)]['write']('Discovering\x20authorization\x20server...');const _0xf0fe6f=await _0x1e2b4a['uedOP'](fetch,_0x55596a+'/.well-known/oauth-protected-resource');if(!_0xf0fe6f['ok'])throw new Error(_0x19ec7a(0x19b));const _0x46d47e=await _0xf0fe6f['json'](),_0x4a9d4d=_0x46d47e['authorization_servers']?.[0x0];if(!_0x4a9d4d)throw new Error(_0x1e2b4a[_0x19ec7a(0x152)]);console['log']('\x20'+_0x4a9d4d);const _0x27f1a=await _0x1e2b4a['gmbvU'](fetchAuthServerMetadata,_0x4a9d4d);let _0x2434a6,_0x54d35a;const _0x522450=await loadCachedClient();if(_0x522450)_0x2434a6=_0x522450[_0x19ec7a(0x136)],_0x54d35a=_0x522450[_0x19ec7a(0x16b)];else{if(_0x27f1a['registration_endpoint']){process['stdout']['write'](_0x1e2b4a['RYpPa']);const _0x761518=await fetch(_0x27f1a[_0x19ec7a(0x18b)],{'method':'POST','headers':{'Content-Type':_0x1e2b4a[_0x19ec7a(0x148)]},'body':JSON[_0x19ec7a(0x1c5)]({'client_name':_0x19ec7a(0x1aa),'redirect_uris':[_0x19ec7a(0x1a9)+CALLBACK_PORT+_0x19ec7a(0x1b0)],'grant_types':['authorization_code',_0x1e2b4a['bcHJA']],'response_types':[_0x1e2b4a[_0x19ec7a(0x15e)]],'token_endpoint_auth_method':_0x19ec7a(0x184)})});if(!_0x761518['ok']){const _0x3559a2=await _0x761518['text']();throw new Error(_0x19ec7a(0x15f)+_0x3559a2);}const _0x1cbc38=await _0x761518['json']();_0x2434a6=_0x1cbc38[_0x19ec7a(0x180)],_0x54d35a=_0x1cbc38['client_secret'],await saveCachedClient(_0x2434a6,_0x54d35a),console[_0x19ec7a(0x162)]('\x20done');}else throw new Error(_0x1e2b4a[_0x19ec7a(0x192)]);}const _0x1eff3f=randomBytes(0x20)['toString'](_0x1e2b4a[_0x19ec7a(0x145)]),_0x770070=createHash(_0x1e2b4a[_0x19ec7a(0x154)])[_0x19ec7a(0x1ca)](_0x1eff3f)['digest'](_0x1e2b4a[_0x19ec7a(0x145)]),_0x341db2=randomBytes(0x10)[_0x19ec7a(0x153)](_0x1e2b4a[_0x19ec7a(0x164)]),_0x5bbfe5=new URL(_0x27f1a['authorization_endpoint']);_0x5bbfe5['searchParams'][_0x19ec7a(0x1c6)](_0x19ec7a(0x16a),'code'),_0x5bbfe5['searchParams'][_0x19ec7a(0x1c6)](_0x1e2b4a[_0x19ec7a(0x149)],_0x2434a6),_0x5bbfe5['searchParams']['set'](_0x1e2b4a['cruax'],_0x19ec7a(0x1a9)+CALLBACK_PORT+_0x19ec7a(0x1b0)),_0x5bbfe5['searchParams'][_0x19ec7a(0x1c6)](_0x19ec7a(0x1c4),_0x770070),_0x5bbfe5['searchParams'][_0x19ec7a(0x1c6)](_0x19ec7a(0x1a2),_0x19ec7a(0x1a0)),_0x5bbfe5['searchParams']['set'](_0x1e2b4a[_0x19ec7a(0x1c3)],_0x341db2);_0x46d47e[_0x19ec7a(0x133)]&&_0x5bbfe5[_0x19ec7a(0x17d)]['set'](_0x1e2b4a[_0x19ec7a(0x1bc)],_0x46d47e[_0x19ec7a(0x133)]);console['log'](_0x19ec7a(0x18c)),console[_0x19ec7a(0x162)]('If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a'+_0x5bbfe5[_0x19ec7a(0x153)]()+'\x0a'),await _0x1e2b4a['uedOP'](openBrowser,_0x5bbfe5['toString']());const _0x530d2f=await _0x1e2b4a['yYaXN'](waitForCallback,_0x341db2);process['stdout'][_0x19ec7a(0x15c)]('Exchanging\x20authorization\x20code...');const _0x475bed=new URLSearchParams({'grant_type':'authorization_code','code':_0x530d2f,'redirect_uri':'http://localhost:'+CALLBACK_PORT+_0x19ec7a(0x1b0),'client_id':_0x2434a6,'code_verifier':_0x1eff3f});_0x54d35a&&_0x475bed['set'](_0x1e2b4a[_0x19ec7a(0x1a3)],_0x54d35a);_0x46d47e[_0x19ec7a(0x133)]&&_0x475bed['set'](_0x19ec7a(0x133),_0x46d47e[_0x19ec7a(0x133)]);const _0x5ca554=await _0x1e2b4a['rHlhP'](fetch,_0x27f1a['token_endpoint'],{'method':'POST','headers':{'Content-Type':_0x1e2b4a[_0x19ec7a(0x1ba)]},'body':_0x475bed});if(!_0x5ca554['ok']){const _0x25ea35=await _0x5ca554[_0x19ec7a(0x1ac)]();throw new Error(_0x19ec7a(0x18d)+_0x25ea35);}const _0x7932af=await _0x5ca554[_0x19ec7a(0x1b5)]();return console['log'](_0x1e2b4a['yktcw']),await _0x1e2b4a['xjdGt'](saveCachedToken,_0x7932af[_0x19ec7a(0x1b8)],_0x7932af['refresh_token'],_0x7932af['expires_in']),_0x7932af[_0x19ec7a(0x1b8)];}async function callGetCliToken(_0x1a36f3,_0x2fcdcb){const _0x3b6443=_0x5984b3,_0x6e1d52={'ecRqw':_0x3b6443(0x150),'tPPBK':'application/json,\x20text/event-stream','WSnAy':'Authorization','NFnag':function(_0x14aa9b,_0x8eaef0){return _0x14aa9b(_0x8eaef0);},'TZxIN':'ranger-cli','TbeYA':_0x3b6443(0x15b),'BrEsj':function(_0x4a5ce1,_0x129db9){return _0x4a5ce1(_0x129db9);},'PHRKk':_0x3b6443(0x185),'YyDwI':_0x3b6443(0x1b6),'QnaUM':_0x3b6443(0x142),'gXLSQ':_0x3b6443(0x1bf),'PQiLx':_0x3b6443(0x14a),'QpYoo':function(_0x2b4dcb,_0x4599ce,_0x487d08){return _0x2b4dcb(_0x4599ce,_0x487d08);},'UTLty':function(_0x3b9b7a,_0x57859c,_0x910cfb,_0x54bdef){return _0x3b9b7a(_0x57859c,_0x910cfb,_0x54bdef);},'qTjvN':function(_0x37782c,_0x3a9697,_0x18a400){return _0x37782c(_0x3a9697,_0x18a400);},'nEqwj':_0x3b6443(0x17a)},_0x1cb8d5={'Content-Type':_0x6e1d52['ecRqw'],'Accept':_0x6e1d52[_0x3b6443(0x131)]};_0x2fcdcb&&(_0x1cb8d5[_0x6e1d52[_0x3b6443(0x12f)]]=_0x3b6443(0x196)+_0x2fcdcb);const _0x1f5182=async _0x1c2f6f=>{const _0x4a3cc2=_0x3b6443,_0x4452f6=await fetch(_0x1a36f3,{'method':'POST','headers':_0x1cb8d5,'body':JSON['stringify'](_0x1c2f6f)});if(!_0x4452f6['ok']){const _0x4ea0d4=await _0x4452f6['text']();throw new Error(_0x4a3cc2(0x171)+_0x4452f6[_0x4a3cc2(0x1be)]+':\x20'+_0x4ea0d4);}return parseResponse(_0x4452f6);};process[_0x3b6443(0x14c)][_0x3b6443(0x15c)](_0x3b6443(0x17f));const _0x4144a9=await _0x6e1d52['NFnag'](_0x1f5182,{'jsonrpc':'2.0','id':0x1,'method':'initialize','params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':_0x6e1d52['TZxIN'],'version':_0x6e1d52[_0x3b6443(0x1a4)]}}});if(_0x4144a9['error'])throw new Error(_0x3b6443(0x160)+(_0x4144a9[_0x3b6443(0x165)][_0x3b6443(0x137)]??JSON['stringify'](_0x4144a9['error'])));console[_0x3b6443(0x162)](_0x3b6443(0x168)),await fetch(_0x1a36f3,{'method':'POST','headers':_0x1cb8d5,'body':JSON['stringify']({'jsonrpc':_0x3b6443(0x185),'method':'notifications/initialized'})})[_0x3b6443(0x178)](_0x1ac65d=>_0x1ac65d['text']()),process[_0x3b6443(0x14c)]['write'](_0x3b6443(0x166));const _0x31bb32=await _0x6e1d52[_0x3b6443(0x197)](_0x1f5182,{'jsonrpc':_0x6e1d52['PHRKk'],'id':0x2,'method':'tools/call','params':{'name':_0x6e1d52[_0x3b6443(0x19f)],'arguments':{}}});if(_0x31bb32['error'])throw new Error(_0x3b6443(0x176)+(_0x31bb32[_0x3b6443(0x165)][_0x3b6443(0x137)]??JSON[_0x3b6443(0x1c5)](_0x31bb32['error'])));console[_0x3b6443(0x162)]('\x20done');const _0x1acda4=extractToken(_0x31bb32['result']);if(!_0x1acda4){console[_0x3b6443(0x165)](_0x6e1d52['QnaUM']),console['error'](JSON['stringify'](_0x31bb32[_0x3b6443(0x13c)],null,0x2));throw new Error(_0x6e1d52[_0x3b6443(0x19c)]);}const _0x13c86c=join(homedir(),'.ranger'),_0x4a9d88=join(_0x13c86c,_0x6e1d52[_0x3b6443(0x175)]);await _0x6e1d52[_0x3b6443(0x16d)](mkdir,_0x13c86c,{'recursive':!![]}),await writeFile(_0x4a9d88,_0x1acda4,{'mode':0x180}),await _0x6e1d52[_0x3b6443(0x16f)](writeFile,_0x6e1d52['qTjvN'](join,_0x13c86c,_0x3b6443(0x13e)),_0x1a36f3,{'mode':0x180}),console[_0x3b6443(0x162)]('\x0aToken\x20written\x20to\x20'+_0x4a9d88),console[_0x3b6443(0x162)](_0x6e1d52['nEqwj']);}function _0x237b(){const _0x53861c=['iudfu','Unknown\x20error','AKfte','result','MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','auth-origin.txt','633044NttiPf','bfBaP','origin','\x0aUnexpected\x20response\x20structure:','replace','MmcVn','zbkrd','application/json,\x20text/event-stream','Not\x20found','JbLiA','kqLun','refresh.txt','XrzEi','stdout','trim','expiresAt','CUFLn','application/json','content','KEpvN','toString','FTYEg','1561192rdnQes','mMCJo','sha256','6zfMlwf','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','2569540DADotj','1.0.0','write','mChWC','qWOTw','Client\x20registration\x20failed:\x20','MCP\x20initialize\x20failed:\x20','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','log','MwyIy','TiKOC','error','Requesting\x20CLI\x20token...','bckFb','\x20done','error_description','response_type','clientSecret','ZvTrY','QpYoo','isError','UTLty','code','HTTP\x20','9538340kFLLem','fVxlU','oqerW','PQiLx','get_cli_token\x20failed:\x20','MLkYo','then','1qPUlHJ','Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a','riGIe','split','searchParams','142014llwIsD','Initializing\x20MCP\x20session...','client_id','utf-8','<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','refreshToken','none','2.0','state','proxied','accessToken','application/x-www-form-urlencoded','data:','registration_endpoint','\x0aOpening\x20browser\x20for\x20authentication...','Token\x20exchange\x20failed:\x20','ranger-cli','writeHead','now','token','dIvTB','MnEIf','kCHtt','2884742XppwtQ','Bearer\x20','BrEsj','<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','127.0.0.1','Registering\x20OAuth\x20client...','Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','gXLSQ','BpcBu','uOgft','YyDwI','S256','.ranger','code_challenge_method','TNVJe','TbeYA','client_secret','CCpqC','match','string','http://localhost:','Ranger\x20CLI','ZwosJ','text','slice','eNNbA','qHrCj','/callback','get','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','platform','hex','json','get_cli_token','VxydB','access_token','uXmOU','SbGuY','sGFyL','NSwAV','GMBac','status','Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','parse','OAuth\x20error:\x20','XWqFn','rQtDK','code_challenge','stringify','set','needs-oauth','open','MCP\x20server\x20returned\x20HTTP\x20','update','5559804iIwWal','headers','drAnr','WSnAy','xdg-open','tPPBK','MCVgk','resource','listen','8ICaarZ','clientId','message','end'];_0x237b=function(){return _0x53861c;};return _0x237b();}async function fetchAuthServerMetadata(_0x1fef70){const _0x3ce270=_0x5984b3,_0x40c088={'IOfkG':function(_0x299ec1,_0x2f99a4){return _0x299ec1(_0x2f99a4);}},_0x5a983e=_0x1fef70+'/.well-known/oauth-authorization-server',_0x3909d3=await _0x40c088['IOfkG'](fetch,_0x5a983e);if(!_0x3909d3['ok'])throw new Error(_0x3ce270(0x161)+_0x5a983e+':\x20'+_0x3909d3['status']);return _0x3909d3['json']();}function waitForCallback(_0x22c75c){const _0x23e8bf=_0x5984b3,_0x5e2a8b={'quxOU':function(_0x4c3522,_0x4a06b7){return _0x4c3522(_0x4a06b7);},'XrzEi':_0x23e8bf(0x1b0),'LtRoS':'error','qHrCj':_0x23e8bf(0x169),'Xscyz':'text/html','uXmOU':function(_0xff2baa){return _0xff2baa();},'XWqFn':function(_0x5283a7,_0x599f32,_0x1d3a72){return _0x5283a7(_0x599f32,_0x1d3a72);},'BpcBu':function(_0x52afb1,_0x49c558){return _0x52afb1(_0x49c558);}};return new Promise((_0x474aa1,_0x1941c0)=>{const _0x29916d=_0x23e8bf,_0x16b426={'MwyIy':function(_0x3b6ac3){return _0x3b6ac3();},'GMBac':function(_0xcbca10,_0x433abe){return _0x5e2a8b['quxOU'](_0xcbca10,_0x433abe);},'MLkYo':_0x5e2a8b[_0x29916d(0x14b)],'HxvVF':_0x29916d(0x147),'QYGxD':'code','kCHtt':_0x5e2a8b['LtRoS'],'mChWC':_0x5e2a8b[_0x29916d(0x1af)],'XRBxw':_0x5e2a8b['Xscyz'],'MmcVn':function(_0x39eb75){const _0x42aaaa=_0x29916d;return _0x5e2a8b[_0x42aaaa(0x1b9)](_0x39eb75);},'CLvTM':_0x29916d(0x198),'bfBaP':function(_0x14ead3,_0x1ab5f5){return _0x14ead3(_0x1ab5f5);}},_0x475be2=()=>{_0x47f143['closeAllConnections'](),_0x47f143['close']();},_0x3af518=_0x5e2a8b[_0x29916d(0x1c2)](setTimeout,()=>{const _0x49bda1=_0x29916d;_0x16b426[_0x49bda1(0x163)](_0x475be2),_0x16b426[_0x49bda1(0x1bd)](_0x1941c0,new OAuthTimeoutError('OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes'));},0x1d4c0),_0x47f143=_0x5e2a8b[_0x29916d(0x19d)](createServer,(_0x7b6179,_0x33b1b9)=>{const _0x83f491=_0x29916d,_0x464122=new URL(_0x7b6179['url']??'/',_0x83f491(0x1a9)+CALLBACK_PORT);if(_0x464122['pathname']!==_0x16b426[_0x83f491(0x177)]){_0x33b1b9[_0x83f491(0x18f)](0x194),_0x33b1b9['end'](_0x16b426['HxvVF']);return;}const _0x1a1f8a=_0x464122['searchParams'][_0x83f491(0x1b1)](_0x16b426['QYGxD']),_0x21663d=_0x464122[_0x83f491(0x17d)][_0x83f491(0x1b1)]('state'),_0x3d7c37=_0x464122['searchParams'][_0x83f491(0x1b1)](_0x16b426[_0x83f491(0x194)]);if(_0x3d7c37){const _0x421c97=_0x464122['searchParams']['get'](_0x16b426[_0x83f491(0x15d)])??_0x3d7c37;_0x33b1b9[_0x83f491(0x18f)](0xc8,{'Content-Type':_0x16b426['XRBxw']}),_0x33b1b9['end']('<html><body><h2>Authentication\x20failed</h2><p>'+_0x421c97+'</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>'),clearTimeout(_0x3af518),_0x16b426[_0x83f491(0x144)](_0x475be2),_0x1941c0(new Error(_0x83f491(0x1c1)+_0x421c97));return;}if(!_0x1a1f8a||_0x21663d!==_0x22c75c){_0x33b1b9['writeHead'](0x190,{'Content-Type':_0x16b426['XRBxw']}),_0x33b1b9[_0x83f491(0x138)](_0x83f491(0x182));return;}_0x33b1b9[_0x83f491(0x18f)](0xc8,{'Content-Type':_0x16b426['XRBxw']}),_0x33b1b9['end'](_0x16b426['CLvTM']),clearTimeout(_0x3af518),_0x475be2(),_0x16b426[_0x83f491(0x140)](_0x474aa1,_0x1a1f8a);});_0x47f143[_0x29916d(0x134)](CALLBACK_PORT,_0x29916d(0x199));});}async function openBrowser(_0x2d6d88){const _0x26bb86=_0x5984b3,_0x252ce0={'ZwosJ':function(_0x38b487,_0x14843f){return _0x38b487===_0x14843f;},'MnEIf':_0x26bb86(0x1c8),'CCpqC':function(_0x25ff37,_0x42af76){return _0x25ff37(_0x42af76);}},_0x51c28e=_0x252ce0[_0x26bb86(0x1ab)](process[_0x26bb86(0x1b3)],'darwin')?_0x252ce0[_0x26bb86(0x193)]:process['platform']==='win32'?'start':_0x26bb86(0x130);_0x252ce0[_0x26bb86(0x1a6)](exec,_0x51c28e+'\x20\x22'+_0x2d6d88+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x4b7afa=_0x5984b3,_0x59758e={'mMCJo':'utf-8','uOgft':function(_0x4cfd6f,_0x1bb7ec){return _0x4cfd6f>_0x1bb7ec;}};try{const _0x1c8e5c=JSON[_0x4b7afa(0x1c0)](await readFile(TOKEN_CACHE_PATH,_0x59758e[_0x4b7afa(0x156)]));if(_0x1c8e5c[_0x4b7afa(0x141)]&&_0x1c8e5c['origin']!==currentOrigin)return null;if(_0x1c8e5c[_0x4b7afa(0x14e)]&&_0x59758e[_0x4b7afa(0x19e)](Date[_0x4b7afa(0x190)](),_0x1c8e5c['expiresAt']))return null;return _0x1c8e5c['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x28c729,_0x54ef1b,_0x2e43e0){const _0x4adb89=_0x5984b3,_0x4b9727={'CUFLn':function(_0x1b3e99,_0xdbe43a){return _0x1b3e99*_0xdbe43a;}},_0x238046=await loadCachedData(),_0x4fddaf={..._0x238046,'origin':currentOrigin,'accessToken':_0x28c729,'refreshToken':_0x54ef1b??_0x238046?.[_0x4adb89(0x183)],'expiresAt':_0x2e43e0?Date[_0x4adb89(0x190)]()+_0x4b9727[_0x4adb89(0x14f)](_0x2e43e0,0x3e8):undefined};await mkdir(join(homedir(),_0x4adb89(0x1a1)),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x4adb89(0x1c5)](_0x4fddaf),{'mode':0x180});}async function loadCachedClient(){const _0x2c81ee=_0x5984b3,_0x1da163={'RhuiK':function(_0x4455a5,_0x52c28b){return _0x4455a5!==_0x52c28b;}},_0x5895a6=await loadCachedData();if(_0x5895a6?.[_0x2c81ee(0x141)]&&_0x1da163['RhuiK'](_0x5895a6[_0x2c81ee(0x141)],currentOrigin))return null;return _0x5895a6?.['clientId']?{'clientId':_0x5895a6['clientId'],'clientSecret':_0x5895a6[_0x2c81ee(0x16b)]}:null;}async function clearCachedClient(){const _0x5c0f2d=await loadCachedData();if(!_0x5c0f2d)return;const {clientId:_0x41f271,clientSecret:_0x91d8a8,..._0xae80ca}=_0x5c0f2d;await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0xae80ca),{'mode':0x180});}async function saveCachedClient(_0x2da042,_0x4e4ddc){const _0x31b45f=_0x5984b3,_0x3809f0={'HDpSp':function(_0x214989){return _0x214989();},'twasO':function(_0x445b33,_0x255239,_0x80984c){return _0x445b33(_0x255239,_0x80984c);},'sGFyL':function(_0x30afce,_0x1bbea8,_0x10461f){return _0x30afce(_0x1bbea8,_0x10461f);}},_0x2a5ab7=await _0x3809f0['HDpSp'](loadCachedData),_0x4183dd={..._0x2a5ab7,'origin':currentOrigin,'accessToken':_0x2a5ab7?.[_0x31b45f(0x188)]??'','clientId':_0x2da042,'clientSecret':_0x4e4ddc};await _0x3809f0['twasO'](mkdir,_0x3809f0[_0x31b45f(0x1bb)](join,homedir(),_0x31b45f(0x1a1)),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x31b45f(0x1c5)](_0x4183dd),{'mode':0x180});}async function loadCachedData(){const _0x32daa5=_0x5984b3,_0x39586a={'riGIe':function(_0x2e31f9,_0x57ac01,_0x144056){return _0x2e31f9(_0x57ac01,_0x144056);},'AKfte':'utf-8'};try{return JSON['parse'](await _0x39586a[_0x32daa5(0x17b)](readFile,TOKEN_CACHE_PATH,_0x39586a[_0x32daa5(0x13b)]));}catch{return null;}}async function parseResponse(_0x2d0c0a){const _0x417814=_0x5984b3,_0x391fa8={'CsRZJ':'content-type','UyArH':_0x417814(0x18a)},_0x565c48=_0x2d0c0a[_0x417814(0x1cc)][_0x417814(0x1b1)](_0x391fa8['CsRZJ'])??'';if(_0x565c48['includes']('text/event-stream')){const _0x37ad49=await _0x2d0c0a['text']();for(const _0x3544b7 of _0x37ad49[_0x417814(0x17c)]('\x0a')){const _0x342002=_0x3544b7['trim']();if(_0x342002['startsWith']('data:')){const _0x5c586c=_0x342002[_0x417814(0x1ad)](_0x391fa8['UyArH']['length'])[_0x417814(0x14d)]();if(!_0x5c586c)continue;try{const _0x195e15=JSON['parse'](_0x5c586c);if(_0x195e15['id']!==undefined||_0x195e15['error'])return _0x195e15;}catch{}}}throw new Error(_0x417814(0x159));}return _0x2d0c0a['json']();}function extractToken(_0xa97f9c){const _0x12eaa4=_0x5984b3,_0x9e6d72={'tTaoI':_0x12eaa4(0x1a8)};if(!_0xa97f9c)return null;const _0x514b39=_0xa97f9c['structuredContent'];if(_0x514b39?.[_0x12eaa4(0x191)]&&typeof _0x514b39['token']===_0x12eaa4(0x1a8))return _0x514b39[_0x12eaa4(0x191)];if(_0xa97f9c[_0x12eaa4(0x16e)]){const _0x18e9f9=_0xa97f9c[_0x12eaa4(0x151)];throw new Error('Server\x20returned\x20error:\x20'+(_0x18e9f9?.[0x0]?.['text']??_0x12eaa4(0x13a)));}const _0xa16a01=_0xa97f9c[_0x12eaa4(0x151)];if(_0xa16a01)for(const _0x12d991 of _0xa16a01){if(_0x12d991['type']===_0x12eaa4(0x1ac)&&_0x12d991[_0x12eaa4(0x1ac)]){try{const _0x26bb61=JSON[_0x12eaa4(0x1c0)](_0x12d991['text']);if(typeof _0x26bb61?.[_0x12eaa4(0x191)]===_0x9e6d72['tTaoI'])return _0x26bb61[_0x12eaa4(0x191)];}catch{}const _0x2d2303=_0x12d991['text'][_0x12eaa4(0x1a7)](/(rngr_[A-Za-z0-9_-]+)/);if(_0x2d2303)return _0x2d2303[0x1];}}return null;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(_0x2a8b41,_0x4b1ce2){const _0x3ef748=_0x349f,_0x5dd8c8=_0x2a8b41();while(!![]){try{const _0x56c228=-parseInt(_0x3ef748(0x17c))/0x1+-parseInt(_0x3ef748(0x143))/0x2*(-parseInt(_0x3ef748(0x156))/0x3)+-parseInt(_0x3ef748(0x157))/0x4*(-parseInt(_0x3ef748(0x176))/0x5)+parseInt(_0x3ef748(0x148))/0x6*(parseInt(_0x3ef748(0x127))/0x7)+-parseInt(_0x3ef748(0x15d))/0x8+parseInt(_0x3ef748(0x175))/0x9*(-parseInt(_0x3ef748(0x141))/0xa)+parseInt(_0x3ef748(0x16e))/0xb*(parseInt(_0x3ef748(0x171))/0xc);if(_0x56c228===_0x4b1ce2)break;else _0x5dd8c8['push'](_0x5dd8c8['shift']());}catch(_0x57fce8){_0x5dd8c8['push'](_0x5dd8c8['shift']());}}}(_0x25f7,0x19fd6));import{readFile,rm}from'fs/promises';function _0x25f7(){const _0x2e5d11=['\x20\x20⚠\x20','\x20\x20✗\x20','\x20\x20✓\x20',').\x20Cloud\x20profile\x20created;\x20local\x20auth.json\x20left\x20in\x20place.','SKhkg','1378960YXWmPg','utf-8','log','\x20→\x20cloud\x20(env:\x20','eKiJL','dryRun','baseUrl','\x20migrated','parse','\x20failed:\x20','hEHii','cwd','settings','Zvriw','projects','FONkG','XpfVu','220GmgQFA','kgdqT','\x20skipped','29100GpZNfD','Proceed?','profileName','authJsonPath','2259bxUyIl','5dulRFl','VOMsx','trackPhaseEnd','XOTmd','message','ktVkv','205482dQtVVL','some','no\x20baseUrl\x20in\x20settings.json','preserveBaseUrl',',\x20matches\x20','skip','yes','Could\x20not\x20fetch\x20auth\x20config\x20(','Enzbf','wnLIL','keys','894873iBYuRy','rBDXl','length','\x20\x20echo\x20\x27.ranger/\x27\x20>>\x20.gitignore','\x20local\x20director','oDQSK','environments','trackPhaseStart','gAMYi','stdin',':\x20failed\x20to\x20write\x20projects.json\x20override\x20(',',\x20baseUrl\x20override\x20→\x20projects.json)','Warning:\x20.ranger/\x20is\x20tracked\x20in\x20this\x20git\x20repo.','BVqwd','EawFk','origin','EZjuK','LTQUq','dsUpR','uTLof','eoVRX','Continuing\x20with\x20migration...','kind','Deleted\x20','env','JIZnl','870PWDvsA','stdout','3962GTAwlG','uJBgz','Plan:','\x20→\x20skip\x20(','WyAle','6MMTpqS','push',':\x20session\x20upload\x20failed\x20(','mDhhJ','gIlHi','gitTrackedRanger','EkqyS','migrate','profile.migrate.succeeded','YRzQN','Provide\x20a\x20profile\x20name\x20or\x20--all.\x0a\x20\x20Example:\x20ranger\x20profile\x20migrate\x20--all\x20--dry-run','envKey','Nothing\x20migrated.\x20Run\x20without\x20--dry-run\x20to\x20apply.','padEnd','201mcuPwv','788308eQerDi'];_0x25f7=function(){return _0x2e5d11;};return _0x25f7();}import{existsSync}from'fs';import{join}from'path';import _0x220dd6 from'inquirer';import{getEnvNames}from'./env.js';import{getEnvDir,loadSettings}from'./utils/settings.js';function _0x349f(_0xcf1138,_0x3f1733){_0xcf1138=_0xcf1138-0x124;const _0x25f719=_0x25f7();let _0x349fe1=_0x25f719[_0xcf1138];return _0x349fe1;}import{getRangerDir}from'./utils/rangerRoot.js';import{ApiError,createCloudProfile,fetchAuthConfig,saveCloudProfileCredentials,uploadCloudProfileSession}from'./utils/cloudProfile.js';import{matchAuthEnvironment}from'./utils/matchAuthEnvironment.js';import{readProjectsConfig,setProfileOverride,writeProjectsConfig}from'./utils/projectsConfig.js';import{isPathGitTracked}from'./utils/gitTracked.js';function formatPlanLine(_0x1d75f0){const _0x4574ca=_0x349f,_0x265744={'EZjuK':function(_0x7914c3,_0x1c8de6){return _0x7914c3===_0x1c8de6;},'WqfRp':_0x4574ca(0x181)};if(_0x265744[_0x4574ca(0x137)](_0x1d75f0['kind'],_0x265744['WqfRp']))return'\x20\x20'+_0x1d75f0['profileName'][_0x4574ca(0x155)](0x1e)+_0x4574ca(0x146)+_0x1d75f0['reason']+')';if(_0x1d75f0['preserveBaseUrl']&&_0x1d75f0[_0x4574ca(0x163)])return'\x20\x20'+_0x1d75f0['profileName'][_0x4574ca(0x155)](0x1e)+_0x4574ca(0x160)+_0x1d75f0[_0x4574ca(0x153)]+',\x20preserving\x20baseUrl\x20'+_0x1d75f0['baseUrl']+'\x20as\x20project\x20override)';if(_0x1d75f0['baseUrl'])return'\x20\x20'+_0x1d75f0[_0x4574ca(0x173)][_0x4574ca(0x155)](0x1e)+_0x4574ca(0x160)+_0x1d75f0['envKey']+_0x4574ca(0x180)+_0x1d75f0['baseUrl']+')';return'\x20\x20'+_0x1d75f0['profileName'][_0x4574ca(0x155)](0x1e)+'\x20→\x20cloud\x20(env:\x20'+_0x1d75f0['envKey']+')';}function shouldWarnGitTrackedOnce(_0x3f88ce){const _0x20474f=_0x349f,_0x1f5553=readProjectsConfig(),_0x59b470=_0x1f5553[_0x20474f(0x16b)][_0x3f88ce]??={},_0x1aed03=_0x59b470['_warnings']??={},_0x41ce57=_0x1aed03['gitTrackedRanger'],_0x85002d=new Date(),_0x1a7e44=_0x85002d['toISOString']()['slice'](0x0,0xa);if(_0x41ce57===_0x1a7e44)return![];return _0x1aed03[_0x20474f(0x14d)]=_0x1a7e44,writeProjectsConfig(_0x1f5553),!![];}export async function migrateProfile(_0xcb3938,_0x1fbc3e){const _0x2dfb70=_0x349f,_0x582e1c={'RXkhI':function(_0x505ee1){return _0x505ee1();},'SKhkg':function(_0x38cbaa,_0x1701d2){return _0x38cbaa instanceof _0x1701d2;},'XOTmd':function(_0x577721,_0x34160a){return _0x577721(_0x34160a);},'aVWWt':function(_0x12049f,_0x184a15){return _0x12049f===_0x184a15;},'BVqwd':'No\x20cloud\x20profile\x20auth\x20config\x20found\x20for\x20this\x20org.\x20Migration\x20requires\x20at\x20least\x20one\x20configured\x20auth\x20environment.','hdPCu':function(_0x4ba20a){return _0x4ba20a();},'Zvriw':function(_0x29a97e,_0x1ba124){return _0x29a97e===_0x1ba124;},'lmPVv':'No\x20local\x20profiles\x20found\x20to\x20migrate.','gAMYi':'local\x20profile\x20directory\x20not\x20found','WyAle':function(_0x278220,_0x9dddeb){return _0x278220(_0x9dddeb);},'hEHii':'skip','gIlHi':_0x2dfb70(0x17e),'MzWPB':function(_0x3a78cc,_0x332a6e,_0x15f610){return _0x3a78cc(_0x332a6e,_0x15f610);},'VOMsx':'no\x20matching\x20auth\x20env','zttGv':function(_0x753cbb,_0x3cf12c){return _0x753cbb===_0x3cf12c;},'kgdqT':'migrate','wnLIL':function(_0x38bec3,_0x36f683){return _0x38bec3(_0x36f683);},'EkqyS':_0x2dfb70(0x154),'uTLof':function(_0x22c5ea,_0x35ef18){return _0x22c5ea&&_0x35ef18;},'ktVkv':'confirm','XpfVu':function(_0x349c49){return _0x349c49();},'YRzQN':_0x2dfb70(0x133),'JIZnl':'\x20\x20git\x20rm\x20-r\x20--cached\x20.ranger/','LTQUq':_0x2dfb70(0x12a),'GHsmC':'profile.migrate.skipped','ylUrO':'profile.migrate.started','EawFk':function(_0x46024d,_0x25855a,_0x3430d1,_0x3183f7){return _0x46024d(_0x25855a,_0x3430d1,_0x3183f7);},'Enzbf':_0x2dfb70(0x15e),'uJBgz':function(_0x6de522,_0x63efd2){return _0x6de522&&_0x63efd2;},'eoVRX':_0x2dfb70(0x163),'oDQSK':function(_0xf6dbcf,_0x15d999){return _0xf6dbcf(_0x15d999);},'eKiJL':function(_0x594000,_0x521ae0){return _0x594000(_0x521ae0);},'bEbFR':function(_0x28e8d6,_0x559fee){return _0x28e8d6>_0x559fee;},'sBlfh':function(_0x2df934,_0x573994){return _0x2df934===_0x573994;},'mDhhJ':function(_0xc69a6d,_0x33e997){return _0xc69a6d===_0x33e997;},'dsUpR':'ies','FONkG':function(_0x4fddd1,_0x40b9db){return _0x4fddd1>_0x40b9db;},'rBDXl':function(_0x46b6cd,_0xac24b9){return _0x46b6cd+_0xac24b9;}};if(!_0xcb3938['profileName']&&!_0xcb3938['all'])throw new Error(_0x2dfb70(0x152));let _0x37dad2;try{_0x37dad2=await _0x582e1c['RXkhI'](fetchAuthConfig);}catch(_0x3c1419){throw new Error(_0x2dfb70(0x183)+(_0x582e1c['SKhkg'](_0x3c1419,Error)?_0x3c1419['message']:_0x582e1c[_0x2dfb70(0x179)](String,_0x3c1419))+').\x20Run:\x20ranger\x20setup');}if(!_0x37dad2||!_0x37dad2[_0x2dfb70(0x12d)]||_0x582e1c['aVWWt'](Object[_0x2dfb70(0x126)](_0x37dad2[_0x2dfb70(0x12d)])['length'],0x0))throw new Error(_0x582e1c[_0x2dfb70(0x134)]);const _0x36cf97=[];if(_0xcb3938['all']){const {envNames:_0x28879e,envTypes:_0xf0a0ef}=await _0x582e1c['hdPCu'](getEnvNames);for(const _0x158902 of _0x28879e){if(_0xf0a0ef[_0x158902]==='ci')continue;_0x36cf97[_0x2dfb70(0x149)](_0x158902);}}else _0xcb3938['profileName']&&_0x36cf97[_0x2dfb70(0x149)](_0xcb3938[_0x2dfb70(0x173)]);if(_0x582e1c[_0x2dfb70(0x16a)](_0x36cf97['length'],0x0)){console['log'](_0x582e1c['lmPVv']);return;}const _0x5bcbb2=[];for(const _0x6e3d31 of _0x36cf97){const _0x4e958f=getEnvDir(_0x6e3d31);if(!existsSync(_0x4e958f)){_0x5bcbb2['push']({'kind':'skip','profileName':_0x6e3d31,'reason':_0x582e1c[_0x2dfb70(0x12f)]});continue;}const _0x58da60=await _0x582e1c[_0x2dfb70(0x147)](loadSettings,_0x6e3d31),_0x3b6dda=_0x58da60[_0x2dfb70(0x163)];if(!_0x3b6dda){_0x5bcbb2['push']({'kind':_0x582e1c['hEHii'],'profileName':_0x6e3d31,'reason':_0x582e1c[_0x2dfb70(0x14c)]});continue;}const _0x302a1f=_0x582e1c['MzWPB'](matchAuthEnvironment,_0x3b6dda,_0x37dad2);if(!_0x302a1f){_0x5bcbb2[_0x2dfb70(0x149)]({'kind':_0x582e1c[_0x2dfb70(0x167)],'profileName':_0x6e3d31,'reason':_0x582e1c[_0x2dfb70(0x177)]});continue;}const _0x1778fe=_0x37dad2[_0x2dfb70(0x12d)][_0x302a1f],_0x329a08=_0x1778fe?.['domains']??[],_0x4d6b0e=_0x329a08[_0x2dfb70(0x17d)](_0x351af7=>{const _0x217084=_0x2dfb70;try{return new URL(_0x351af7)['origin']===new URL(_0x3b6dda)[_0x217084(0x136)];}catch{return![];}}),_0x2c08db={};for(const [_0x30af4f,_0x518060]of Object['entries'](_0x58da60)){if(_0x30af4f==='baseUrl')continue;if(_0x582e1c['zttGv'](_0x518060,undefined))continue;_0x2c08db[_0x30af4f]=_0x518060;}!_0x4d6b0e&&(_0x2c08db['baseUrl']=_0x3b6dda);const _0x2b28dd=join(_0x4e958f,'auth.json'),_0x16d794=existsSync(_0x2b28dd);_0x5bcbb2[_0x2dfb70(0x149)]({'kind':_0x582e1c[_0x2dfb70(0x16f)],'profileName':_0x6e3d31,'envKey':_0x302a1f,'baseUrl':_0x3b6dda,'preserveBaseUrl':!_0x4d6b0e,'settings':_0x2c08db,'authJsonPath':_0x16d794?_0x2b28dd:null});}console['log'](_0x2dfb70(0x145));for(const _0x13bebe of _0x5bcbb2){console['log'](_0x582e1c[_0x2dfb70(0x125)](formatPlanLine,_0x13bebe));}if(_0xcb3938[_0x2dfb70(0x162)]){console['log'](_0x582e1c[_0x2dfb70(0x14e)]);return;}const _0x10433d=_0x582e1c[_0x2dfb70(0x125)](Boolean,process[_0x2dfb70(0x130)]['isTTY']&&process[_0x2dfb70(0x142)]['isTTY']),_0x5ac4f5=_0x5bcbb2[_0x2dfb70(0x17d)](_0x29f5b8=>_0x29f5b8['kind']===_0x2dfb70(0x14f));if(_0x582e1c[_0x2dfb70(0x13a)](_0x5ac4f5,_0x10433d)&&!_0xcb3938[_0x2dfb70(0x182)]){const {proceed:_0x30687b}=await _0x220dd6['prompt']([{'type':_0x582e1c[_0x2dfb70(0x17b)],'name':'proceed','message':_0x2dfb70(0x172),'default':![]}]);if(!_0x30687b){console['log']('Aborted.');return;}}const _0x28f550=_0x582e1c[_0x2dfb70(0x16d)](getRangerDir);let _0x2f1660=![];if(existsSync(_0x28f550))try{_0x2f1660=await _0x582e1c[_0x2dfb70(0x125)](isPathGitTracked,_0x28f550);}catch{_0x2f1660=![];}_0x2f1660&&_0x582e1c['XOTmd'](shouldWarnGitTrackedOnce,process['cwd']())&&(console['log'](_0x582e1c[_0x2dfb70(0x151)]),console['log']('After\x20migration,\x20uncommit\x20it:'),console[_0x2dfb70(0x15f)](_0x582e1c[_0x2dfb70(0x140)]),console[_0x2dfb70(0x15f)](_0x582e1c[_0x2dfb70(0x138)]),console['log'](_0x2dfb70(0x13c)));let _0x4d02cc=0x0,_0x3415ae=0x0,_0x354588=0x0,_0x4823b3=0x0;for(const _0x17ced4 of _0x5bcbb2){if(_0x17ced4[_0x2dfb70(0x13d)]===_0x2dfb70(0x181)){_0x4823b3++,_0x1fbc3e?.[_0x2dfb70(0x178)](_0x582e1c['GHsmC'],{'profileName':_0x17ced4['profileName'],'reason':_0x17ced4['reason']});continue;}_0x1fbc3e?.[_0x2dfb70(0x12e)](_0x582e1c['ylUrO'],{'profileName':_0x17ced4['profileName'],'envKey':_0x17ced4['envKey']});try{try{await _0x582e1c[_0x2dfb70(0x135)](createCloudProfile,_0x17ced4['profileName'],_0x17ced4[_0x2dfb70(0x153)],{'settings':_0x17ced4[_0x2dfb70(0x169)]});}catch(_0x47ad6f){if(_0x582e1c['SKhkg'](_0x47ad6f,ApiError)&&_0x47ad6f['status']===0x199){console[_0x2dfb70(0x15f)]('\x20\x20⚠\x20'+_0x17ced4['profileName']+':\x20cloud\x20profile\x20with\x20this\x20name\x20already\x20exists.\x20Skipping.'),_0x4823b3++,_0x1fbc3e?.['trackPhaseEnd'](_0x582e1c['GHsmC'],{'profileName':_0x17ced4['profileName'],'reason':'name_conflict'});continue;}throw _0x47ad6f;}let _0xe5fc6a=![],_0x272e6c=![];if(_0x17ced4[_0x2dfb70(0x174)])try{const _0xbaacfd=await _0x582e1c['MzWPB'](readFile,_0x17ced4[_0x2dfb70(0x174)],_0x582e1c[_0x2dfb70(0x124)]),_0x4f4cba=JSON[_0x2dfb70(0x165)](_0xbaacfd);await uploadCloudProfileSession(_0x17ced4['profileName'],_0x4f4cba),_0xe5fc6a=!![];}catch(_0x41d8d8){_0x272e6c=!![],console[_0x2dfb70(0x15f)]('\x20\x20⚠\x20'+_0x17ced4['profileName']+_0x2dfb70(0x14a)+(_0x41d8d8 instanceof Error?_0x41d8d8[_0x2dfb70(0x17a)]:_0x582e1c['XOTmd'](String,_0x41d8d8))+_0x2dfb70(0x15b));}let _0x18243d=![];if(_0xcb3938['saveCreds']){const _0x539a3d=process[_0x2dfb70(0x13f)]['RANGER_TEST_USERNAME'],_0x49c7b6=process['env']['RANGER_TEST_PASSWORD'];if(_0x582e1c[_0x2dfb70(0x144)](_0x539a3d,_0x49c7b6))try{await saveCloudProfileCredentials(_0x17ced4['profileName'],_0x539a3d,_0x49c7b6),_0x18243d=!![];}catch(_0x2a6e3e){console['log']('\x20\x20⚠\x20'+_0x17ced4['profileName']+':\x20failed\x20to\x20save\x20credentials\x20('+(_0x2a6e3e instanceof Error?_0x2a6e3e['message']:String(_0x2a6e3e))+').');}else console['log'](_0x2dfb70(0x158)+_0x17ced4[_0x2dfb70(0x173)]+':\x20--save-creds\x20requested,\x20but\x20RANGER_TEST_USERNAME/PASSWORD\x20not\x20set\x20in\x20env.');}if(_0x17ced4[_0x2dfb70(0x17f)]&&_0x17ced4['baseUrl'])try{setProfileOverride(process[_0x2dfb70(0x168)](),_0x17ced4['profileName'],_0x582e1c[_0x2dfb70(0x13b)],_0x17ced4[_0x2dfb70(0x163)]);}catch(_0x13bd2c){console[_0x2dfb70(0x15f)](_0x2dfb70(0x158)+_0x17ced4['profileName']+_0x2dfb70(0x131)+(_0x13bd2c instanceof Error?_0x13bd2c['message']:String(_0x13bd2c))+').');}const _0x2ee722=getEnvDir(_0x17ced4[_0x2dfb70(0x173)]);if(!_0x272e6c&&existsSync(_0x2ee722))try{await rm(_0x2ee722,{'recursive':!![],'force':!![]}),_0x3415ae++;}catch(_0x76164e){console[_0x2dfb70(0x15f)]('\x20\x20⚠\x20'+_0x17ced4['profileName']+':\x20failed\x20to\x20delete\x20local\x20dir\x20'+_0x2ee722+'\x20('+(_0x76164e instanceof Error?_0x76164e['message']:String(_0x76164e))+').');}_0x4d02cc++,_0x17ced4[_0x2dfb70(0x17f)]&&_0x17ced4['baseUrl']?console['log']('\x20\x20✓\x20'+_0x17ced4['profileName']+'\x20migrated\x20to\x20cloud\x20(env:\x20'+_0x17ced4[_0x2dfb70(0x153)]+_0x2dfb70(0x132)):console[_0x2dfb70(0x15f)](_0x2dfb70(0x15a)+_0x17ced4['profileName']+'\x20migrated\x20to\x20cloud\x20(env:\x20'+_0x17ced4['envKey']+')'),_0x1fbc3e?.['trackPhaseEnd'](_0x2dfb70(0x150),{'profileName':_0x17ced4[_0x2dfb70(0x173)],'envKey':_0x17ced4[_0x2dfb70(0x153)],'wasGitTracked':_0x2f1660,'hadSession':_0xe5fc6a,'savedCreds':_0x18243d});}catch(_0x1dc2fa){_0x354588++,console[_0x2dfb70(0x15f)](_0x2dfb70(0x159)+_0x17ced4[_0x2dfb70(0x173)]+_0x2dfb70(0x166)+(_0x582e1c[_0x2dfb70(0x15c)](_0x1dc2fa,Error)?_0x1dc2fa['message']:_0x582e1c[_0x2dfb70(0x12c)](String,_0x1dc2fa))),_0x1fbc3e?.['trackPhaseEnd']('profile.migrate.failed',{'profileName':_0x17ced4['profileName'],'error':_0x1dc2fa instanceof Error?_0x1dc2fa[_0x2dfb70(0x17a)]:_0x582e1c[_0x2dfb70(0x161)](String,_0x1dc2fa)});}}const _0x485352=[];if(_0x582e1c['bEbFR'](_0x4d02cc,0x0))_0x485352[_0x2dfb70(0x149)](_0x4d02cc+'\x20profile'+(_0x582e1c['sBlfh'](_0x4d02cc,0x1)?'':'s')+_0x2dfb70(0x164));if(_0x3415ae>0x0)_0x485352[_0x2dfb70(0x149)](_0x2dfb70(0x13e)+_0x3415ae+_0x2dfb70(0x12b)+(_0x582e1c[_0x2dfb70(0x14b)](_0x3415ae,0x1)?'y':_0x582e1c[_0x2dfb70(0x139)]));if(_0x582e1c[_0x2dfb70(0x16c)](_0x4823b3,0x0))_0x485352['push'](_0x4823b3+_0x2dfb70(0x170));if(_0x582e1c[_0x2dfb70(0x16c)](_0x354588,0x0))_0x485352[_0x2dfb70(0x149)](_0x354588+'\x20failed');if(_0x485352[_0x2dfb70(0x129)]>0x0)console['log'](_0x582e1c[_0x2dfb70(0x128)](_0x485352['join']('.\x20'),'.'));}
|
|
1
|
+
function _0xe148(_0x45a852,_0x302725){_0x45a852=_0x45a852-0xf8;var _0xaa3968=_0xaa39();var _0xe148e5=_0xaa3968[_0x45a852];return _0xe148e5;}(function(_0xda3f77,_0x5c2e24){var _0x242074=_0xe148,_0x1e646f=_0xda3f77();while(!![]){try{var _0x1520f6=parseInt(_0x242074(0xfb))/0x1+parseInt(_0x242074(0xfd))/0x2+-parseInt(_0x242074(0x102))/0x3*(parseInt(_0x242074(0xf9))/0x4)+parseInt(_0x242074(0x105))/0x5+parseInt(_0x242074(0xf8))/0x6+-parseInt(_0x242074(0xfe))/0x7*(-parseInt(_0x242074(0x106))/0x8)+-parseInt(_0x242074(0x101))/0x9;if(_0x1520f6===_0x5c2e24)break;else _0x1e646f['push'](_0x1e646f['shift']());}catch(_0x4936dc){_0x1e646f['push'](_0x1e646f['shift']());}}}(_0xaa39,0x847a8));function _0xaa39(){var _0x5899f1=['35468BzrWzO','ranger\x20profile\x20migrate\x20is\x20no\x20longer\x20supported.\x0a','460238DDkcLs','fallback;\x20you\x20can\x20delete\x20them\x20once\x20you\x20have\x20re-auth-ed.','35896tIhFXY','35HJTvGJ','Existing\x20sessions\x20in\x20your\x20old\x20<project>/.ranger/\x20dirs\x20still\x20work\x20as\x20a\x0a','exit','13830318rjsOnJ','3NgLFzJ','nAYqi','NqKWp','1973515NupBEE','456392HlrThF','5580402FhdSoW'];_0xaa39=function(){return _0x5899f1;};return _0xaa39();}export async function migrateProfile(_0x1c3a62,_0x1807b5){var _0x2398b1=_0xe148,_0x4f2ffe={'NqKWp':function(_0x5881be,_0x2a456b){return _0x5881be+_0x2a456b;},'aYwVm':function(_0x496579,_0x4e8b84){return _0x496579+_0x4e8b84;},'edNsd':function(_0x4b314c,_0x2d178a){return _0x4b314c+_0x2d178a;},'nAYqi':'To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a','BHKaR':'\x20\x20ranger\x20profile\x20add\x20<name>\x0a','hRXVE':'For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a','DCtrP':_0x2398b1(0xfc)};console['error'](_0x4f2ffe[_0x2398b1(0x104)](_0x4f2ffe['aYwVm'](_0x4f2ffe['edNsd'](_0x4f2ffe[_0x2398b1(0x104)](_0x2398b1(0xfa),'\x0a')+_0x4f2ffe[_0x2398b1(0x103)]+_0x4f2ffe['BHKaR']+'\x0a',_0x4f2ffe['hRXVE']),'\x20\x20https://docs.ranger.net/main/concepts/profiles\x0a'),'\x0a')+_0x2398b1(0xff)+_0x4f2ffe['DCtrP']),process[_0x2398b1(0x100)](0x1);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x4ee9bb,_0x4ee433){const _0x8f6f80=_0x2222,_0x2877f9=_0x4ee9bb();while(!![]){try{const _0x3f8490=parseInt(_0x8f6f80(0xf5))/0x1+parseInt(_0x8f6f80(0x10e))/0x2+-parseInt(_0x8f6f80(0x109))/0x3+parseInt(_0x8f6f80(0x106))/0x4+-parseInt(_0x8f6f80(0x100))/0x5*(parseInt(_0x8f6f80(0x105))/0x6)+parseInt(_0x8f6f80(0x102))/0x7*(-parseInt(_0x8f6f80(0x11b))/0x8)+parseInt(_0x8f6f80(0xf0))/0x9*(parseInt(_0x8f6f80(0x117))/0xa);if(_0x3f8490===_0x4ee433)break;else _0x2877f9['push'](_0x2877f9['shift']());}catch(_0x48a25b){_0x2877f9['push'](_0x2877f9['shift']());}}}(_0x616e,0x4747a));import{join}from'path';import{existsSync}from'fs';import _0x2d1a57 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x616e(){const _0x46a554=['PUwNX','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','push','confirm','❌\x20Failed\x20to\x20add\x20marketplace:','439030RBuech','pluginScope','AQBZF','add','14504gEUDJN','project','HcPBt','Project\x20(shared\x20with\x20team\x20via\x20git)','kQDse','ranger@trailhead','install','already\x20enabled','JDQWp','success','AdlVm','trailhead','jlGve','NvooS','SKILL.md','198lOjdfE','\x20level)...\x0a','user','error','NYAKW','372714mdRPQJ','FOTzB','jNfeV','plugin','aEgHz','enable','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','marketplace','--scope','Where\x20should\x20the\x20plugin\x20be\x20installed?','pjtEu','2194985xkmUdN','QlPGE','2219QiovED','ViQOG','log','6wgjPDW','134652RZAJTX','QjeWb','\x0aYou\x20can\x20install\x20manually\x20with:','1179408hCWhVl','User\x20(available\x20in\x20all\x20your\x20projects)','zFDIp','bLOog','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','653146DSomzN','✓\x20Ranger\x20skills\x20already\x20installed','EhqYi','tfLtY'];_0x616e=function(){return _0x46a554;};return _0x616e();}function _0x2222(_0x411264,_0x2d0933){_0x411264=_0x411264-0xe8;const _0x616e52=_0x616e();let _0x2222b3=_0x616e52[_0x411264];return _0x2222b3;}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x3a4108){const _0x30c684=_0x2222,_0x4bbdb3={'aEgHz':_0x30c684(0x10d),'AQBZF':'project','ViQOG':'list','PUwNX':_0x30c684(0xfe),'jlGve':'user','DhCAI':_0x30c684(0xec),'FOTzB':function(_0x14f0f6,_0x360f58){return _0x14f0f6(_0x360f58);},'fVkko':_0x30c684(0xfc),'HMXcd':_0x30c684(0x116),'QjeWb':_0x30c684(0x108),'pjtEu':_0x30c684(0x113),'ZYmFc':_0x30c684(0xf8),'FhOzh':_0x30c684(0x121),'zFDIp':'--scope','iNVrq':function(_0x55eac3,_0x2ed721){return _0x55eac3===_0x2ed721;},'XkidQ':'❌\x20Failed\x20to\x20install\x20plugin:','JkrWs':'✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','kQDse':_0x30c684(0xfa),'IaMQE':'ranger@trailhead','jVbnI':function(_0x3ff9e0,_0x4a55e2,_0x1e561e){return _0x3ff9e0(_0x4a55e2,_0x1e561e);},'jNfeV':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x109f48=await isPluginInstalled(_0x30c684(0x120));if(_0x109f48)return console['log'](_0x4bbdb3[_0x30c684(0xf9)]),![];const _0x54324c=existsSync(join(getProjectRoot(),'.claude'));let _0x5bce53;if(_0x3a4108)_0x5bce53=_0x3a4108;else{if(_0x54324c)_0x5bce53=_0x4bbdb3[_0x30c684(0x119)];else{console[_0x30c684(0x104)]('\x0a📦\x20Claude\x20Code\x20Plugin\x0a');const _0x193ba3=await _0x2d1a57['prompt']([{'type':_0x4bbdb3[_0x30c684(0x103)],'name':'pluginScope','message':_0x4bbdb3[_0x30c684(0x112)],'choices':[{'name':_0x30c684(0x10a),'value':_0x4bbdb3[_0x30c684(0xed)]},{'name':_0x30c684(0x11e),'value':_0x4bbdb3['AQBZF']}],'default':_0x4bbdb3[_0x30c684(0xed)]}]);_0x5bce53=_0x193ba3[_0x30c684(0x118)];}}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x5bce53+_0x30c684(0xf1));const _0x25c3a0=await isMarketplaceAdded(_0x4bbdb3['DhCAI']);let _0x36c9b1=_0x25c3a0;if(_0x25c3a0)console['log']('✓\x20Marketplace\x20already\x20added');else{const _0x568d77=await _0x4bbdb3[_0x30c684(0xf6)](runClaudeCommand,[_0x30c684(0xf8),_0x4bbdb3['fVkko'],_0x30c684(0x11a),'ranger-testing/trailhead']);!_0x568d77['success']?(console[_0x30c684(0xf3)](_0x4bbdb3['HMXcd'],_0x568d77['error']),console[_0x30c684(0x104)](_0x4bbdb3[_0x30c684(0x107)]),console['log'](_0x4bbdb3[_0x30c684(0xff)]),console[_0x30c684(0x104)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x5bce53)):_0x36c9b1=!![];}if(_0x36c9b1){const _0xd92488=await runClaudeCommand([_0x4bbdb3['ZYmFc'],_0x4bbdb3['FhOzh'],'ranger@trailhead',_0x4bbdb3[_0x30c684(0x10b)],_0x5bce53],{'cwd':_0x4bbdb3['iNVrq'](_0x5bce53,_0x4bbdb3[_0x30c684(0x119)])?getProjectRoot():undefined});if(!_0xd92488['success'])console['error'](_0x4bbdb3['XkidQ'],_0xd92488['error']),console['log'](_0x4bbdb3['QjeWb']),console[_0x30c684(0x104)](_0x30c684(0xfb)+_0x5bce53);else{console[_0x30c684(0x104)](_0x4bbdb3['JkrWs']);const _0x2b8796=[_0x30c684(0xf8),_0x4bbdb3[_0x30c684(0x11f)],_0x4bbdb3['IaMQE']];_0x5bce53===_0x30c684(0x11c)&&_0x2b8796[_0x30c684(0x114)](_0x30c684(0xfd),_0x4bbdb3[_0x30c684(0x119)]);const _0x12c887=await _0x4bbdb3['jVbnI'](runClaudeCommand,_0x2b8796,{'captureOutput':!![],'cwd':_0x4bbdb3['iNVrq'](_0x5bce53,_0x4bbdb3['AQBZF'])?getProjectRoot():undefined}),_0x2670c6=_0x12c887['output']?.['includes'](_0x30c684(0xe8));!_0x12c887[_0x30c684(0xea)]&&!_0x2670c6?console['error']('⚠\x20Failed\x20to\x20enable\x20plugin:',_0x12c887[_0x30c684(0xf3)]):console[_0x30c684(0x104)](_0x4bbdb3[_0x30c684(0xf7)]);}}return!![];}export async function ensureClaudeSkills(_0x19c903){const _0x12b5de=_0x2222,_0x1e389c={'NvooS':function(_0x13c613,_0x3b9170,_0xea7b75,_0x37b148){return _0x13c613(_0x3b9170,_0xea7b75,_0x37b148);},'lidgf':_0x12b5de(0xf2),'EhqYi':'ranger','yvSBv':_0x12b5de(0xef),'JDQWp':function(_0x4e036a,_0x58bc89){return _0x4e036a(_0x58bc89);},'HcPBt':_0x12b5de(0x11c),'eOalQ':_0x12b5de(0x10f),'AdlVm':function(_0x33391e,_0x168ead,_0x25696e){return _0x33391e(_0x168ead,_0x25696e);},'QlPGE':function(_0x1f46fa){return _0x1f46fa();},'JEBAv':'.claude','cHHJC':function(_0xbb3ff4,_0x304c6d){return _0xbb3ff4(_0x304c6d);},'bLOog':'wantsSkillup','tfLtY':'Would\x20you\x20like\x20to\x20install\x20skills?','NYAKW':function(_0x3851e4,_0x10e842){return _0x3851e4(_0x10e842);}},_0x382a18=existsSync(_0x1e389c[_0x12b5de(0xee)](join,getSkillsDir(_0x1e389c['lidgf']),_0x1e389c[_0x12b5de(0x110)],_0x1e389c['yvSBv'])),_0x52d219=existsSync(join(_0x1e389c[_0x12b5de(0xe9)](getSkillsDir,_0x1e389c[_0x12b5de(0x11d)]),_0x1e389c['EhqYi'],_0x1e389c['yvSBv']));if(_0x382a18||_0x52d219)return console[_0x12b5de(0x104)](_0x1e389c['eOalQ']),![];const _0x10ff59=existsSync(_0x1e389c[_0x12b5de(0xeb)](join,_0x1e389c[_0x12b5de(0x101)](getProjectRoot),_0x1e389c['JEBAv']));let _0xb3beb6=!![];if(_0x19c903)await skillup({'autoInstall':_0x19c903,'suppressUsage':!![]});else{if(_0x10ff59)await _0x1e389c['cHHJC'](skillup,{'autoInstall':'project','suppressUsage':!![]});else{const _0x5da4b2=await _0x2d1a57['prompt']([{'type':_0x12b5de(0x115),'name':_0x1e389c[_0x12b5de(0x10c)],'message':_0x1e389c[_0x12b5de(0x111)],'default':!![]}]);_0xb3beb6=_0x5da4b2['wantsSkillup'],_0xb3beb6&&await _0x1e389c[_0x12b5de(0xf4)](skillup,{'suppressUsage':!![]});}}return _0xb3beb6;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
function _0x55b1(_0x356cd6,_0x3121c2){_0x356cd6=_0x356cd6-0xb2;const _0x4da781=_0x4da7();let _0x55b16c=_0x4da781[_0x356cd6];return _0x55b16c;}(function(_0x69475b,_0x22858){const _0x66c6d=_0x55b1,_0x577d13=_0x69475b();while(!![]){try{const _0x8e5077=parseInt(_0x66c6d(0xb7))/0x1+parseInt(_0x66c6d(0xd0))/0x2+parseInt(_0x66c6d(0xcf))/0x3+parseInt(_0x66c6d(0xcc))/0x4*(-parseInt(_0x66c6d(0xb5))/0x5)+parseInt(_0x66c6d(0xb2))/0x6*(-parseInt(_0x66c6d(0xca))/0x7)+parseInt(_0x66c6d(0xc7))/0x8+-parseInt(_0x66c6d(0xc2))/0x9;if(_0x8e5077===_0x22858)break;else _0x577d13['push'](_0x577d13['shift']());}catch(_0xb319d2){_0x577d13['push'](_0x577d13['shift']());}}}(_0x4da7,0xef231));import{join}from'path';import{existsSync}from'fs';function _0x4da7(){const _0x50bd88=['dPBti','227428mbuHiX','User\x20(available\x20in\x20all\x20your\x20projects)','Where\x20should\x20the\x20plugin\x20be\x20installed?','2502177mYWmQu','3519156ZBUeEH','6fIzGrL','LYldJ','parse','15fcPcVS','https://opencode.ai/config.json','850878fREyLr','user','@ranger-testing/opencode-plugin','project','KUsIn','Failed\x20to\x20read\x20opencode.json','gtIBb','pluginScope','includes','plugin','kiGij','33302835SHdONG','isArray','Project\x20(shared\x20with\x20team\x20via\x20git)','log','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','12852120MVevDf','JDkCn','\x0a📦\x20OpenCode\x20Plugin\x0a','1404473QQesiM'];_0x4da7=function(){return _0x50bd88;};return _0x4da7();}import{mkdir,readFile,writeFile}from'fs/promises';import _0xd38aee from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x4d9674){const _0x55d00b=_0x55b1,_0x4a7ca7={'FjnaR':function(_0x4ae508,_0x3d0619,_0xade9dd){return _0x4ae508(_0x3d0619,_0xade9dd);},'KUsIn':function(_0xd58d9b,_0x4b2302){return _0xd58d9b(_0x4b2302);},'gtIBb':_0x55d00b(0xba),'LYldJ':'opencode.json','qYobS':_0x55d00b(0xce),'kiGij':_0x55d00b(0xcd),'dPBti':_0x55d00b(0xb8),'JDkCn':_0x55d00b(0xc4),'kcPYD':'utf-8','egAyQ':'✓\x20OpenCode\x20plugin\x20already\x20configured','DGEqx':'✓\x20OpenCode\x20plugin\x20configured'},_0x1353ce=existsSync(_0x4a7ca7['FjnaR'](join,_0x4a7ca7[_0x55d00b(0xbb)](getOpencodeConfigDir,_0x4a7ca7[_0x55d00b(0xbd)]),_0x4a7ca7[_0x55d00b(0xb3)]));let _0x4510e9;if(_0x4d9674)_0x4510e9=_0x4d9674;else{if(_0x1353ce)_0x4510e9=_0x4a7ca7[_0x55d00b(0xbd)];else{console['log'](_0x55d00b(0xc9));const _0x1749ed=await _0xd38aee['prompt']([{'type':'list','name':_0x55d00b(0xbe),'message':_0x4a7ca7['qYobS'],'choices':[{'name':_0x4a7ca7[_0x55d00b(0xc1)],'value':_0x4a7ca7[_0x55d00b(0xcb)]},{'name':_0x4a7ca7[_0x55d00b(0xc8)],'value':_0x55d00b(0xba)}],'default':_0x55d00b(0xb8)}]);_0x4510e9=_0x1749ed[_0x55d00b(0xbe)];}}const _0x1c63fb=join(getOpencodeConfigDir(_0x4510e9),_0x4a7ca7[_0x55d00b(0xb3)]),_0x5467d9=_0x55d00b(0xb9),_0x24952b=_0x55d00b(0xb6);let _0x471577={};if(existsSync(_0x1c63fb))try{const _0x193eaa=await readFile(_0x1c63fb,_0x4a7ca7['kcPYD']);_0x471577=JSON[_0x55d00b(0xb4)](_0x193eaa);}catch(_0x16a941){return console['error'](_0x55d00b(0xc6)),{'configured':![],'scope':_0x4510e9,'error':_0x55d00b(0xbc),'details':_0x16a941};}const _0x34024a=Array[_0x55d00b(0xc3)](_0x471577[_0x55d00b(0xc0)])?_0x471577[_0x55d00b(0xc0)]:[];if(_0x34024a[_0x55d00b(0xbf)](_0x5467d9))return console[_0x55d00b(0xc5)](_0x4a7ca7['egAyQ']),{'configured':![],'scope':_0x4510e9};return _0x471577['$schema']=_0x471577['$schema']||_0x24952b,_0x471577['plugin']=[..._0x34024a,_0x5467d9],await mkdir(getOpencodeConfigDir(_0x4510e9),{'recursive':!![]}),await _0x4a7ca7['FjnaR'](writeFile,_0x1c63fb,JSON['stringify'](_0x471577,null,0x2)+'\x0a'),console[_0x55d00b(0xc5)](_0x4a7ca7['DGEqx']),{'configured':!![],'scope':_0x4510e9};}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
function _0x57e1(){const _0x56eaf9=['dgsHq','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','success','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','swBBO','✓\x20Marketplace\x20already\x20added','2pkmYAP','1170GIlCJe','\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','✓\x20Auth\x20state\x20found','XqiOs','1109010BkcEAV','marketplace','chromium','dYJNG','Multiple\x20CI\x20profiles\x20found:\x20','✓\x20Created\x20profile\x20settings:\x20baseUrl=','jqFxB','log','CaAwQ','UUegs','settings.json','skipChromium','baseUrl','246057ixeFPY','\x22:\x20','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','wZRKU','vpjqg','No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','RZOWn','6PfSpiQ','dir_setup','profile','KMkht','join','trackPhaseStart','Auto-detected\x20CI\x20profile:\x20','gmhvl','length','hYaoJ','20781HUjtnP','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','112532HdIgSE','Uwdiv','name','path','BqHBi','plugin','xGkfP','NQolB','QHeAW','PAHKi','trackPhaseEnd','ranger@trailhead','rewrt','2565234YLbAGG','project','cVphS','install','isDirectory','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','Failed\x20to\x20install\x20plugin:','auth.json.enc','profile_activate','1874745MorLgc','1323608MKIoXp','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22'];_0x57e1=function(){return _0x56eaf9;};return _0x57e1();}(function(_0x45492b,_0x45b22d){const _0x2e0c35=_0x2400,_0x5dba16=_0x45492b();while(!![]){try{const _0x185812=-parseInt(_0x2e0c35(0x1f8))/0x1*(-parseInt(_0x2e0c35(0x1e6))/0x2)+-parseInt(_0x2e0c35(0x1eb))/0x3+parseInt(_0x2e0c35(0x1c6))/0x4+parseInt(_0x2e0c35(0x1dc))/0x5+parseInt(_0x2e0c35(0x1ba))/0x6*(parseInt(_0x2e0c35(0x1d3))/0x7)+-parseInt(_0x2e0c35(0x1dd))/0x8+-parseInt(_0x2e0c35(0x1c4))/0x9*(parseInt(_0x2e0c35(0x1e7))/0xa);if(_0x185812===_0x45b22d)break;else _0x5dba16['push'](_0x5dba16['shift']());}catch(_0x3ad1d4){_0x5dba16['push'](_0x5dba16['shift']());}}}(_0x57e1,0x33597));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';function _0x2400(_0x33ffac,_0x11315b){_0x33ffac=_0x33ffac-0x1b6;const _0x57e17f=_0x57e1();let _0x240041=_0x57e17f[_0x33ffac];return _0x240041;}import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x3b25e8){const _0x129b05=_0x2400,_0x589f81={'dgsHq':function(_0x508c83,_0x160864,_0x561b30){return _0x508c83(_0x160864,_0x561b30);},'NQolB':function(_0x4f4d61,_0xdd217f){return _0x4f4d61+_0xdd217f;},'psLNk':_0x129b05(0x1b8),'rewrt':function(_0x38ce1a,_0x502466){return _0x38ce1a===_0x502466;}},_0xe0f4ef=getRangerDir(),_0x538259=_0x589f81[_0x129b05(0x1df)](join,_0xe0f4ef,'ci');if(_0x3b25e8){const _0x2774d0=join(_0x538259,_0x3b25e8);return{'name':_0x3b25e8,'path':_0x2774d0};}if(!existsSync(_0x538259))throw new Error(_0x589f81[_0x129b05(0x1cd)](_0x589f81['psLNk'],_0x129b05(0x1fa)));const _0x30177b=await readdir(_0x538259,{'withFileTypes':!![]}),_0x653b0f=_0x30177b['filter'](_0x10c5b5=>_0x10c5b5[_0x129b05(0x1d7)]())['map'](_0x3adefe=>_0x3adefe['name']);if(_0x589f81[_0x129b05(0x1d2)](_0x653b0f[_0x129b05(0x1c2)],0x0))throw new Error(_0x589f81[_0x129b05(0x1cd)](_0x129b05(0x1c5),'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.'));if(_0x653b0f['length']===0x1){const _0x28da3c=_0x653b0f[0x0];return console[_0x129b05(0x1f2)](_0x129b05(0x1c0)+_0x28da3c),{'name':_0x28da3c,'path':join(_0x538259,_0x28da3c)};}throw new Error(_0x129b05(0x1ef)+_0x653b0f[_0x129b05(0x1be)](',\x20')+_0x129b05(0x1e0));}async function installPluginNonInteractive(){const _0x501b59=_0x2400,_0xe59113={'MndbM':_0x501b59(0x1d1),'jqFxB':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','gmhvl':function(_0x22ef58,_0x144c25){return _0x22ef58(_0x144c25);},'fHrtR':'trailhead','BqHBi':_0x501b59(0x1e5),'XqiOs':_0x501b59(0x1ec),'UUegs':'add','UwIyS':'ranger-testing/trailhead','kKaxd':'Failed\x20to\x20add\x20marketplace:','cVphS':_0x501b59(0x1e3),'vpjqg':_0x501b59(0x1d6),'dYJNG':'--scope','CaAwQ':'project'},_0x383e9b=await isPluginInstalled(_0xe59113['MndbM']);if(_0x383e9b)return console[_0x501b59(0x1f2)](_0xe59113[_0x501b59(0x1f1)]),![];console[_0x501b59(0x1f2)](_0x501b59(0x1e1));const _0xa0689f=await _0xe59113[_0x501b59(0x1c1)](isMarketplaceAdded,_0xe59113['fHrtR']);let _0x1b8637=_0xa0689f;if(_0xa0689f)console[_0x501b59(0x1f2)](_0xe59113[_0x501b59(0x1ca)]);else{const _0x5a788e=await runClaudeCommand(['plugin',_0xe59113[_0x501b59(0x1ea)],_0xe59113[_0x501b59(0x1f4)],_0xe59113['UwIyS']]);!_0x5a788e['success']?(console['error'](_0xe59113['kKaxd'],_0x5a788e['error']),console[_0x501b59(0x1f2)](_0xe59113[_0x501b59(0x1d5)])):_0x1b8637=!![];}if(_0x1b8637){const _0x49a0c3=await runClaudeCommand([_0x501b59(0x1cb),_0xe59113[_0x501b59(0x1b7)],_0xe59113['MndbM'],_0xe59113[_0x501b59(0x1ee)],_0xe59113[_0x501b59(0x1f3)]]);!_0x49a0c3[_0x501b59(0x1e2)]?(console['error'](_0x501b59(0x1d9),_0x49a0c3['error']),console[_0x501b59(0x1f2)]('You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project')):console['log']('✓\x20Claude\x20Code\x20plugin\x20installed');}return!![];}export async function setupCi(_0x404568,_0x2eac80,_0x24818a){const _0x1d6135=_0x2400,_0x1c8d9a={'PAHKi':_0x1d6135(0x1e8),'Uwdiv':'auth','KMkht':function(_0x36983c){return _0x36983c();},'fnhhj':function(_0x136b98,_0x28eb03){return _0x136b98(_0x28eb03);},'khxME':function(_0x4b6640,_0xc802ff){return _0x4b6640(_0xc802ff);},'aRfHt':'dir_setup','UCsdi':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','wZRKU':_0x1d6135(0x1ed),'XUIVr':'profile_activate','QHeAW':function(_0x1b30e5,_0x449a35,_0x369424){return _0x1b30e5(_0x449a35,_0x369424);},'xGkfP':function(_0x5c7240,_0x1bfae4){return _0x5c7240(_0x1bfae4);},'ZxJbf':function(_0x1bd297,_0x2be2b9,_0xb43ee0){return _0x1bd297(_0x2be2b9,_0xb43ee0);},'PpPki':function(_0x674e18,_0x4a288e,_0xb9bfd3){return _0x674e18(_0x4a288e,_0xb9bfd3);},'lPkvS':_0x1d6135(0x1da),'QJcZa':function(_0x51c613,_0x4cbc21){return _0x51c613(_0x4cbc21);},'swBBO':function(_0x494eff){return _0x494eff();},'yjpex':'No\x20API\x20token\x20available\x20for\x20decryption','EMFDi':function(_0x503b84,_0x3d60fb){return _0x503b84 instanceof _0x3d60fb;},'FbRmk':function(_0x148d3f,_0x3021f9){return _0x148d3f(_0x3021f9);},'mnrES':'\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','RZOWn':'plugin','hYaoJ':function(_0x2120a1){return _0x2120a1();}};console['log'](_0x1c8d9a[_0x1d6135(0x1cf)]),_0x24818a?.[_0x1d6135(0x1bf)](_0x1c8d9a[_0x1d6135(0x1c7)]),await authenticate(_0x404568),_0x24818a?.['trackPhaseEnd'](_0x1c8d9a['Uwdiv']),_0x24818a?.[_0x1d6135(0x1bf)](_0x1d6135(0x1bb));const {path:_0x2e3dc2,installed:_0x3ff4c5}=await _0x1c8d9a['KMkht'](ensureRangerDir);await _0x1c8d9a['fnhhj'](writeRangerGitignore,_0x2e3dc2);const _0x5aaae6=join(_0x2e3dc2,'sessions');!_0x1c8d9a['khxME'](existsSync,_0x5aaae6)&&await mkdir(_0x5aaae6,{'recursive':!![]});_0x24818a?.['trackPhaseEnd'](_0x1c8d9a['aRfHt'],{'installed':_0x3ff4c5}),_0x24818a?.['trackPhaseStart']('chromium');let _0x3956c1=![];_0x2eac80?.[_0x1d6135(0x1f6)]?console[_0x1d6135(0x1f2)](_0x1c8d9a['UCsdi']):_0x3956c1=await _0x1c8d9a[_0x1d6135(0x1bd)](ensureChromium);_0x24818a?.[_0x1d6135(0x1d0)](_0x1c8d9a[_0x1d6135(0x1b6)],{'installed':_0x3956c1,'skipped':!!_0x2eac80?.[_0x1d6135(0x1f6)]}),_0x24818a?.['trackPhaseStart'](_0x1c8d9a['XUIVr']);const _0x29d565=await _0x1c8d9a['khxME'](findCiProfile,_0x2eac80?.[_0x1d6135(0x1bc)]);let _0x2238b6=![];_0x2eac80?.[_0x1d6135(0x1f7)]&&(await mkdir(_0x29d565['path'],{'recursive':!![]}),await saveSettings(_0x29d565[_0x1d6135(0x1c8)],{'baseUrl':_0x2eac80[_0x1d6135(0x1f7)],'headless':!![]}),console['log'](_0x1d6135(0x1f0)+_0x2eac80['baseUrl']),_0x2238b6=!![]);const _0x3c20d4=_0x1c8d9a[_0x1d6135(0x1ce)](join,_0x29d565['path'],_0x1d6135(0x1f5));if(!_0x1c8d9a[_0x1d6135(0x1cc)](existsSync,_0x3c20d4)&&!_0x2238b6)throw new Error('CI\x20profile\x20\x22'+_0x29d565['name']+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x4fa772=_0x1c8d9a['ZxJbf'](join,_0x29d565['path'],'auth.json'),_0x4174ad=_0x1c8d9a['PpPki'](join,_0x29d565[_0x1d6135(0x1c9)],_0x1c8d9a['lPkvS']),_0xd150fb=existsSync(_0x4fa772),_0x5b77f0=_0x1c8d9a['QJcZa'](existsSync,_0x4174ad);if(_0x5b77f0)try{const _0x4b881c=await _0x1c8d9a[_0x1d6135(0x1e4)](getToken);if(!_0x4b881c)throw new Error(_0x1c8d9a['yjpex']);const _0x500241=await readFile(_0x4174ad);decrypt(_0x500241,_0x4b881c),console[_0x1d6135(0x1f2)](_0x1d6135(0x1d8));}catch(_0x32e39b){const _0xd6fa8a=_0x1c8d9a['EMFDi'](_0x32e39b,Error)?_0x32e39b['message']:_0x1c8d9a['FbRmk'](String,_0x32e39b);throw new Error(_0x1d6135(0x1de)+_0x29d565['name']+_0x1d6135(0x1f9)+_0xd6fa8a);}else _0xd150fb?console[_0x1d6135(0x1f2)](_0x1d6135(0x1e9)):console[_0x1d6135(0x1f2)](_0x1c8d9a['mnrES']);await _0x1c8d9a['khxME'](writeActiveProfileName,_0x29d565[_0x1d6135(0x1c8)]),console['log']('✓\x20Active\x20profile:\x20'+_0x29d565[_0x1d6135(0x1c8)]),_0x24818a?.['trackPhaseEnd'](_0x1d6135(0x1db),{'profileName':_0x29d565[_0x1d6135(0x1c8)],'hasAuth':_0xd150fb,'hasEncryptedAuth':_0x5b77f0,'createdSettings':_0x2238b6}),_0x24818a?.[_0x1d6135(0x1bf)](_0x1c8d9a[_0x1d6135(0x1b9)]);const _0x379853=await _0x1c8d9a[_0x1d6135(0x1c3)](installPluginNonInteractive);_0x24818a?.['trackPhaseEnd'](_0x1d6135(0x1cb),{'installed':_0x379853}),_0x24818a?.['trackPhaseStart']('skills'),await skillup({'autoInstall':_0x1d6135(0x1d4)}),_0x24818a?.[_0x1d6135(0x1d0)]('skills'),console['log']('\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a');}
|
|
1
|
+
function _0x11dd(_0x5eae88,_0x19d8a7){_0x5eae88=_0x5eae88-0x16f;var _0x20e62c=_0x20e6();var _0x11dd3f=_0x20e62c[_0x5eae88];return _0x11dd3f;}function _0x20e6(){var _0x1b408e=['622050ZVGtQT','1452753DVheFR','AKkjt','10LbrqIv','4048734aeNzUB','9863IhneJE','6359517dtfPJW','2865405hNDPqA','3576bWYQrF','BAfbb','ranger\x20setup\x20--ci\x20writes\x20to\x20the\x20legacy\x20.ranger/ci/\x20tree\x20which\x20is\x20no\x20longer\x20supported.\x0a','4eWRgco','\x20\x20ranger\x20profile\x20add\x20<name>\x0a','error','exit','613058pQTpAg','\x20\x20https://docs.ranger.net/main/concepts/profiles'];_0x20e6=function(){return _0x1b408e;};return _0x20e6();}(function(_0x49484b,_0x642dc){var _0x30d36b=_0x11dd,_0x500de8=_0x49484b();while(!![]){try{var _0x56d1ce=parseInt(_0x30d36b(0x17c))/0x1+parseInt(_0x30d36b(0x17a))/0x2+parseInt(_0x30d36b(0x17d))/0x3*(-parseInt(_0x30d36b(0x176))/0x4)+parseInt(_0x30d36b(0x172))/0x5+parseInt(_0x30d36b(0x16f))/0x6+-parseInt(_0x30d36b(0x170))/0x7*(parseInt(_0x30d36b(0x173))/0x8)+parseInt(_0x30d36b(0x171))/0x9*(-parseInt(_0x30d36b(0x17f))/0xa);if(_0x56d1ce===_0x642dc)break;else _0x500de8['push'](_0x500de8['shift']());}catch(_0x5b4034){_0x500de8['push'](_0x500de8['shift']());}}}(_0x20e6,0x56db2));export async function setupCi(_0x59f868,_0x48d46d,_0x5c4701){var _0x44bb36=_0x11dd,_0x17678e={'AKkjt':function(_0x3934a8,_0x41b8f8){return _0x3934a8+_0x41b8f8;},'BAfbb':_0x44bb36(0x175),'DWSjZ':_0x44bb36(0x177),'xbuDm':'For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a'};console[_0x44bb36(0x178)](_0x17678e[_0x44bb36(0x17e)](_0x17678e[_0x44bb36(0x174)]+'\x0a'+'To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a'+_0x17678e['DWSjZ'],'\x0a')+_0x17678e['xbuDm']+_0x44bb36(0x17b)),process[_0x44bb36(0x179)](0x1);}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(_0x2ebadb,_0x177b35){const _0x5a7189=_0x4bca,_0x55684c=_0x2ebadb();while(!![]){try{const _0xbd4b97=parseInt(_0x5a7189(0xa8))/0x1*(-parseInt(_0x5a7189(0x85))/0x2)+parseInt(_0x5a7189(0x81))/0x3*(parseInt(_0x5a7189(0xa4))/0x4)+-parseInt(_0x5a7189(0xa1))/0x5+parseInt(_0x5a7189(0x8a))/0x6+parseInt(_0x5a7189(0x9e))/0x7*(-parseInt(_0x5a7189(0x93))/0x8)+parseInt(_0x5a7189(0x94))/0x9+parseInt(_0x5a7189(0x97))/0xa;if(_0xbd4b97===_0x177b35)break;else _0x55684c['push'](_0x55684c['shift']());}catch(_0x4d6fd9){_0x55684c['push'](_0x55684c['shift']());}}}(_0x49dd,0x1fdd7));function _0x49dd(){const _0x328e74=['autoInstall','GMYFz','\x0a📦\x20Installing\x20skills...\x0a','igGOm','list','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','949109RcmwHK','\x20--opencode','xhYEu','950330QWAPNM','plPzb','To\x20get\x20started:','896AMKmlw','installLevel','platform','plocr','2mWitnB','\x20\x203.\x20Run:\x20ranger\x20skillup','\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!','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','log','user','Where\x20should\x20skills\x20be\x20installed?','1461YcOiCU','suppressUsage','/skills/','grRpk','112564wUdqxA','project','isloL','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','opencode','1059360fCxFuO','yzBtb','vYafA','claude','\x20successfully!\x0a','\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','To\x20use:','isTTY','8NXMqOm','1506231gBSsls','pZfFr','\x0a✅\x20Installed\x20','1157290KfkIXt'];_0x49dd=function(){return _0x328e74;};return _0x49dd();}import{basename}from'path';import _0x53512b from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';function _0x4bca(_0x411a4d,_0x5780b8){_0x411a4d=_0x411a4d-0x7e;const _0x49dd90=_0x49dd();let _0x4bca36=_0x49dd90[_0x411a4d];return _0x4bca36;}import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x1d1c47={}){const _0x50c66a=_0x4bca,_0x326e6f={'lkBYZ':function(_0x55e19c){return _0x55e19c();},'yzBtb':_0x50c66a(0x9d),'vYafA':_0x50c66a(0x90),'ypAZV':function(_0x168ada,_0x52b14e){return _0x168ada===_0x52b14e;},'GMYFz':function(_0x22f8da,_0xca2336){return _0x22f8da===_0xca2336;},'DqVpr':'opencode','pZfFr':function(_0xe90b9){return _0xe90b9();},'xhYEu':_0x50c66a(0x7f),'YuxLy':'installLevel','Vrvov':_0x50c66a(0x80),'GTWTU':'project','NfAna':function(_0x48d11c){return _0x48d11c();},'zyXai':_0x50c66a(0x9a),'grRpk':'ranger','MylKN':'\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','igGOm':function(_0x3667b2,_0x1c749b){return _0x3667b2 instanceof _0x1c749b;},'plPzb':'user-level','sSgcn':'project-level','nepDM':function(_0x3363a0,_0x65b0d9){return _0x3363a0>_0x65b0d9;},'isloL':_0x50c66a(0x91),'tnRgD':'\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','plocr':_0x50c66a(0xaa)};console[_0x50c66a(0x7e)](_0x50c66a(0xab));const _0x3082c5=_0x1d1c47[_0x50c66a(0xa6)]??_0x50c66a(0x8d),_0x18608f=await _0x326e6f['lkBYZ'](getToken);if(!_0x18608f){console[_0x50c66a(0x7e)](_0x326e6f[_0x50c66a(0x8b)]),console[_0x50c66a(0x7e)](_0x50c66a(0xa3)),console['log'](_0x326e6f[_0x50c66a(0x8c)]),console[_0x50c66a(0x7e)]('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x326e6f['ypAZV'](_0x3082c5,'opencode')?_0x50c66a(0x9f):'')+'\x20<your-api-token>'),console[_0x50c66a(0x7e)](_0x50c66a(0xa9)+(_0x326e6f[_0x50c66a(0x99)](_0x3082c5,_0x326e6f['DqVpr'])?'\x20--opencode':'')+'\x0a');return;}console[_0x50c66a(0x7e)]('✓\x20Found\x20API\x20token');const _0x1abca0=_0x326e6f[_0x50c66a(0x95)](getProjectRoot),_0x1aa336=basename(_0x1abca0),_0x5d6db4=_0x3082c5===_0x326e6f['DqVpr']?getOpencodeConfigDir(_0x326e6f['xhYEu'])+_0x50c66a(0x83):getClaudeConfigDir()+'/skills/',_0x30a083=_0x3082c5===_0x50c66a(0x89)?_0x1abca0+'/.opencode/skills/':_0x1abca0+'/.claude/skills/',_0x4e4147=process['stdin']['isTTY']&&process['stdout'][_0x50c66a(0x92)];let _0x345cb6;if(_0x1d1c47['autoInstall'])_0x345cb6=_0x1d1c47[_0x50c66a(0x98)];else{if(_0x4e4147){const _0x24f2c1=await _0x53512b['prompt']([{'type':_0x50c66a(0x9c),'name':_0x326e6f['YuxLy'],'message':_0x326e6f['Vrvov'],'choices':[{'name':'All\x20projects\x20('+_0x5d6db4+')','value':_0x326e6f[_0x50c66a(0xa0)]},{'name':'This\x20project\x20only\x20('+_0x30a083+')','value':_0x326e6f['GTWTU']}]}]);_0x345cb6=_0x24f2c1[_0x50c66a(0xa5)];}else _0x345cb6=_0x50c66a(0x86),console[_0x50c66a(0x7e)](_0x50c66a(0x88)+_0x30a083+')');}let _0x6d3804=0x0;const _0x871cec=_0x326e6f['NfAna'](getCurrentVersion);console[_0x50c66a(0x7e)](_0x326e6f['zyXai']);try{const _0x50612c=await installSkill(_0x326e6f[_0x50c66a(0x84)],{'cliVersion':_0x871cec,'level':_0x345cb6,'platform':_0x3082c5});_0x50612c&&_0x6d3804++;}catch(_0x2160eb){console['warn'](_0x326e6f['MylKN'],_0x326e6f[_0x50c66a(0x9b)](_0x2160eb,Error)?_0x2160eb['message']:_0x2160eb);}if(_0x6d3804>0x0){const _0x588822=_0x345cb6===_0x326e6f['xhYEu']?_0x326e6f[_0x50c66a(0xa2)]:_0x326e6f['sSgcn'];console['log'](_0x50c66a(0x96)+_0x6d3804+'\x20'+_0x588822+'\x20skill'+(_0x326e6f['nepDM'](_0x6d3804,0x1)?'s':'')+_0x50c66a(0x8e)),!_0x1d1c47[_0x50c66a(0x82)]&&(console[_0x50c66a(0x7e)](_0x326e6f[_0x50c66a(0x87)]),_0x326e6f['ypAZV'](_0x3082c5,_0x50c66a(0x89))?console[_0x50c66a(0x7e)](_0x326e6f['tnRgD']):console['log'](_0x326e6f[_0x50c66a(0xa7)]));}else console[_0x50c66a(0x7e)](_0x50c66a(0x8f));}
|
package/build/commands/start.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x4c87d1=_0xc11a;(function(_0xc38d6,_0x53665b){const _0x34f9ca=_0xc11a,_0x3c6d58=_0xc38d6();while(!![]){try{const _0x4dc06a=-parseInt(_0x34f9ca(0x194))/0x1*(parseInt(_0x34f9ca(0x185))/0x2)+-parseInt(_0x34f9ca(0x1b6))/0x3+-parseInt(_0x34f9ca(0x1d0))/0x4*(parseInt(_0x34f9ca(0x1b7))/0x5)+-parseInt(_0x34f9ca(0x181))/0x6+parseInt(_0x34f9ca(0x19c))/0x7*(parseInt(_0x34f9ca(0x1ef))/0x8)+parseInt(_0x34f9ca(0x199))/0x9+parseInt(_0x34f9ca(0x1f0))/0xa;if(_0x4dc06a===_0x53665b)break;else _0x3c6d58['push'](_0x3c6d58['shift']());}catch(_0x42e7f4){_0x3c6d58['push'](_0x3c6d58['shift']());}}}(_0x226a,0x4de0a));import{mkdir,writeFile}from'fs/promises';import{join}from'path';function _0x226a(){const _0x5d14e1=['resolve','Validating\x20API\x20token...','force','\x0aInstalling\x20Chromium\x20browser...\x0a','pQOpw','\x1b[0m','scope','git_check','Authentication\x20failed:\x20','evHlP','You\x20can\x20install\x20it\x20manually\x20by\x20running:','dHoQl','KmObV','profile','KnclH','Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','1336hPVGTS','13081180NUlGkG','wspRe','warn','\x20now?','confirm','log','cRpVW','executablePath','dOpcP','stdout','tpSyU','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','trackPhaseEnd','stdin','✓\x20Local\x20profile\x20already\x20exists','KkxHe','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','message','3529380sdVrRU','IqBaR','chromium','platform','280HaHUxe','win32','AHBpe','scdMl','prompt','BGUSU','install','--with-deps','CrRto','EuQux','\x0a❌\x20Profile\x20setup\x20failed:','eNecy','YzyUA','tJMnf','llaRQ','2117QbBiGa','YSECI','gGlUq','...','XibKL','356778oCEQnQ','iYQTU','\x0aIn\x20Claude\x20Code,\x20run\x20','15211bqSVHd','The\x20required\x20version\x20(','OpkOy','skipAuth',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','withDeps','\x1b[1m','FYHBk','kWtfB','✓\x20Created\x20.ranger/\x20directory','WulAf','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','1.58.2','plugin','playwright@','nYDdH','skipChromium','zVQNE','skills','version','fiXBr','gHcAH','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','Nglbe','\x20and\x20prompt\x20the\x20coding','PAemA','721737SETEht','666190gtWotM','error','opencode','\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','SmGlu','shcsx','SRCfC','\x0a⚠\x20Skipping\x20Chromium\x20installation.','iQvdZ','ready','\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','ranger\x20profile\x20add\x20local','OpBZp','kzqQV','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','user','✓\x20Created\x20.ranger/.gitignore','kunpp','skipped','url','trackPhaseStart','⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','isTTY','fZDLx','allowInsecureLocalhost','8yMTJnL','env','organizationName','GNyGo','QcIbD','auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to','success','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','\x20install\x20chromium','local','wantsProfile','Installation\x20failed\x20with\x20exit\x20code\x20','\x0a🚀\x20Ranger\x20Setup\x0a','✓\x20Already\x20authenticated\x20to\x20','XKLST'];_0x226a=function(){return _0x5d14e1;};return _0x226a();}import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';function _0xc11a(_0x2bbc06,_0x13f10f){_0x2bbc06=_0x2bbc06-0x17b;const _0x226a99=_0x226a();let _0xc11a25=_0x226a99[_0x2bbc06];return _0xc11a25;}import _0xe70602 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{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=_0x4c87d1(0x1a8);const bold=_0x28bd97=>_0x4c87d1(0x1a2)+_0x28bd97+_0x4c87d1(0x1e4);export function getPlaywrightVersion(){const _0x528d50=_0x4c87d1,_0x11ba46={'GNyGo':'playwright/package.json'};try{const _0x2bd6d9=require[_0x528d50(0x1df)](_0x11ba46[_0x528d50(0x1d3)]),_0xefdb18=require(_0x2bd6d9);return _0xefdb18[_0x528d50(0x1af)];}catch{return null;}}export function installChromiumBinary(_0x147623,_0x1c341f=![]){const _0x5800ff=_0x4c87d1,_0x52a8a0={'dHoQl':'install','gyUaW':_0x5800ff(0x18c),'kzqQV':function(_0x1fdf7b,_0x4d08b5,_0x3ac242,_0x10a5e5){return _0x1fdf7b(_0x4d08b5,_0x3ac242,_0x10a5e5);},'tpSyU':'inherit','dOpcP':'close','gxIab':'error'};return new Promise((_0xac7fe3,_0x1c5ad3)=>{const _0x437f17=_0x5800ff,_0x1d953d=[_0x437f17(0x1aa)+_0x147623,_0x52a8a0[_0x437f17(0x1ea)],..._0x1c341f?[_0x52a8a0['gyUaW']]:[],'chromium'],_0x40686d=_0x52a8a0[_0x437f17(0x1c4)](spawn,'npx',_0x1d953d,{'stdio':['ignore',_0x52a8a0['tpSyU'],_0x52a8a0[_0x437f17(0x1fa)]],'shell':process[_0x437f17(0x184)]===_0x437f17(0x186)});_0x40686d['on'](_0x52a8a0[_0x437f17(0x1f8)],_0x164e54=>{const _0x210efa=_0x437f17;_0x164e54===0x0?_0xac7fe3():_0x1c5ad3(new Error(_0x210efa(0x1db)+_0x164e54));}),_0x40686d['on'](_0x52a8a0['gxIab'],_0x414f2a=>{_0x1c5ad3(_0x414f2a);});});}export async function authenticate(_0x250886){const _0x3d39ee=_0x4c87d1,_0x47ee64={'WKLuR':function(_0x1a9a7d,_0x3c146a){return _0x1a9a7d instanceof _0x3c146a;},'KnclH':'device_auth','tJMnf':_0x3d39ee(0x1e0),'fZDLx':'✓\x20Exported\x20credentials\x20for\x20CI','XibKL':'✓\x20Stored\x20credentials\x20locally','iQvdZ':'provided_token'};if(!_0x250886){const _0x3d13c2=await getToken();if(_0x3d13c2){const _0x2124b9=await getCurrentUser(_0x3d13c2);if(_0x2124b9['success'])return console[_0x3d39ee(0x1f5)](_0x3d39ee(0x1dd)+_0x2124b9[_0x3d39ee(0x1c6)]['organizationName']),{'token':_0x3d13c2,'method':'existing_token'};}try{_0x250886=await runDeviceAuthFlow();}catch(_0x465e9f){throw new Error('Authentication\x20failed:\x20'+(_0x47ee64['WKLuR'](_0x465e9f,Error)?_0x465e9f[_0x3d39ee(0x180)]:_0x465e9f));}const _0x39259b=await getCurrentUser(_0x250886);if(!_0x39259b['success'])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x39259b['error']);return console[_0x3d39ee(0x1f5)]('✓\x20Authenticated\x20to\x20'+_0x39259b['user'][_0x3d39ee(0x1d2)]),{'token':_0x250886,'method':_0x47ee64[_0x3d39ee(0x1ed)]};}console[_0x3d39ee(0x1f5)](_0x47ee64[_0x3d39ee(0x192)]);const _0x4fb80a=await getCurrentUser(_0x250886);if(!_0x4fb80a[_0x3d39ee(0x1d6)]){if(_0x4fb80a['status'])throw new Error(_0x3d39ee(0x1e7)+_0x4fb80a[_0x3d39ee(0x1b8)]+_0x3d39ee(0x1fb));else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x4fb80a[_0x3d39ee(0x1b8)]+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console['log']('✓\x20Authenticated\x20to\x20'+_0x4fb80a[_0x3d39ee(0x1c6)][_0x3d39ee(0x1d2)]),await storeToken(_0x250886),console['log'](process[_0x3d39ee(0x1d1)]['GITHUB_ENV']?_0x47ee64[_0x3d39ee(0x1ce)]:_0x47ee64[_0x3d39ee(0x198)]),{'token':_0x250886,'method':_0x47ee64[_0x3d39ee(0x1bf)]};}export async function ensureRangerDir(_0x4056ca){const _0x1381ea=_0x4c87d1,_0xf672a7={'BtgtA':'user','BGUSU':function(_0x5bc13d){return _0x5bc13d();},'evHlP':function(_0x3c3c0f){return _0x3c3c0f();},'KOdYY':'.ranger','YSECI':function(_0x2aaabd,_0xb42e05,_0x27288b){return _0x2aaabd(_0xb42e05,_0x27288b);},'wspRe':_0x1381ea(0x1a5),'gHcAH':'✓\x20.ranger/\x20directory\x20already\x20exists'};let _0x15f356;if(_0x4056ca===_0xf672a7['BtgtA'])_0x15f356=_0xf672a7[_0x1381ea(0x18a)](getRangerHomeDir);else{const _0x69b454=_0xf672a7[_0x1381ea(0x1e8)](findGitRoot);_0x15f356=_0x69b454?join(_0x69b454,_0xf672a7['KOdYY']):getRangerDir();}return!existsSync(_0x15f356)?(await _0xf672a7[_0x1381ea(0x195)](mkdir,_0x15f356,{'recursive':!![]}),console['log'](_0xf672a7[_0x1381ea(0x1f1)]),{'path':_0x15f356,'installed':!![]}):(console['log'](_0xf672a7[_0x1381ea(0x1b1)]),{'path':_0x15f356,'installed':![]});}export async function ensureChromium(_0x1de258=![]){const _0x1501b5=_0x4c87d1,_0xf3d612={'Nglbe':function(_0x5a16d2,_0x13630d){return _0x5a16d2(_0x13630d);},'nYDdH':function(_0x5e8045,_0xe7fdb6){return _0x5e8045??_0xe7fdb6;},'scdMl':'confirm','OpBZp':_0x1501b5(0x1e2),'XKLST':function(_0x3ac00c,_0x4b590c,_0x550c25){return _0x3ac00c(_0x4b590c,_0x550c25);},'SmGlu':'\x0a❌\x20Failed\x20to\x20install\x20Chromium:','uOmKR':function(_0x49ef27,_0x4d8fd5){return _0x49ef27 instanceof _0x4d8fd5;},'YzyUA':_0x1501b5(0x1e9),'yaIuP':_0x1501b5(0x1be),'WulAf':'You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'};let _0x594037=![];try{const _0x519282=chromium[_0x1501b5(0x1f7)]();_0x594037=_0xf3d612[_0x1501b5(0x1b3)](existsSync,_0x519282);}catch{_0x594037=![];}if(_0x594037)return console['log']('✓\x20Playwright\x20Chromium\x20browser\x20found'),![];const _0xacf7c1=getPlaywrightVersion(),_0x468ad8=_0xf3d612[_0x1501b5(0x1ab)](_0xacf7c1,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x719354=!_0xacf7c1,_0x304197=process[_0x1501b5(0x17c)]['isTTY']&&process[_0x1501b5(0x1f9)]['isTTY'];let _0xf127a4=!![];if(_0x304197){const {install:_0x3fc377}=await _0xe70602[_0x1501b5(0x189)]([{'type':_0xf3d612[_0x1501b5(0x188)],'name':_0x1501b5(0x18b),'message':_0x719354?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x468ad8+_0x1501b5(0x1f3):_0x1501b5(0x19d)+_0x468ad8+_0x1501b5(0x1a0),'default':!![]}]);_0xf127a4=_0x3fc377;}else console[_0x1501b5(0x1f5)]('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20'+_0x468ad8+(_0x719354?'\x20(fallback\x20version)':'')+_0x1501b5(0x197));if(_0xf127a4){console['log'](_0xf3d612[_0x1501b5(0x1c3)]);try{await _0xf3d612[_0x1501b5(0x1de)](installChromiumBinary,_0x468ad8,_0x1de258),console['log'](_0x1501b5(0x1c5));}catch(_0xefd230){console['error'](_0xf3d612[_0x1501b5(0x1bb)],_0xf3d612['uOmKR'](_0xefd230,Error)?_0xefd230[_0x1501b5(0x180)]:_0xefd230),console[_0x1501b5(0x1f5)](_0xf3d612[_0x1501b5(0x191)]),console['log']('\x20\x20npx\x20playwright@'+_0x468ad8+_0x1501b5(0x1d8));}}else console['log'](_0xf3d612['yaIuP']),console[_0x1501b5(0x1f5)](_0xf3d612[_0x1501b5(0x1a6)]),console[_0x1501b5(0x1f5)]('\x20\x20npx\x20playwright@'+_0x468ad8+_0x1501b5(0x1d8));return!![];}export async function writeRangerGitignore(_0x17f374){const _0x59f312=_0x4c87d1,_0x4e226a={'SRCfC':function(_0x1dc4fc,_0x36d5b6,_0x53d645){return _0x1dc4fc(_0x36d5b6,_0x53d645);}},_0x34dd46=_0x4e226a[_0x59f312(0x1bd)](join,_0x17f374,'.gitignore'),_0x438839=_0x59f312(0x1c1);await writeFile(_0x34dd46,_0x438839),console['log'](_0x59f312(0x1c7));}function printProfileSetupLaterInstructions(){const _0x22b5c4=_0x4c87d1,_0x547a98={'krMRm':_0x22b5c4(0x1ba),'bXQKo':'ranger\x20profile\x20add\x20local'};console['log'](_0x547a98['krMRm']),console[_0x22b5c4(0x1f5)]('\x20\x20'+bold(_0x547a98['bXQKo'])),console['log'](_0x22b5c4(0x1b2));}export async function ensureLocalEnv(_0x1bfdfb,_0x3faf70){const _0x21d0b=_0x4c87d1,_0x188d5e={'shcsx':function(_0x5b972a){return _0x5b972a();},'OpkOy':_0x21d0b(0x1cc),'ItPkb':function(_0x474a31,_0x3377f8){return _0x474a31===_0x3377f8;},'zcYNI':function(_0x4e3a12,_0x3a6b62,_0x437554){return _0x4e3a12(_0x3a6b62,_0x437554);},'CrRto':_0x21d0b(0x1d9),'hRaPD':'\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','QcRuR':'to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','eNecy':'use\x20until\x20the\x20session\x20expires.\x0a','zVQNE':'Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','pQOpw':_0x21d0b(0x18f)};if(!_0x188d5e[_0x21d0b(0x1bc)](findGitRoot))return console['log'](_0x188d5e[_0x21d0b(0x19e)]),{'ready':![],'skipped':!![]};const _0x2994f6=_0x188d5e['ItPkb'](_0x1bfdfb?.['scope'],_0x21d0b(0x1c6))?_0x188d5e[_0x21d0b(0x1bc)](getRangerHomeDir):undefined;if(_0x188d5e['zcYNI'](findExistingEnv,_0x21d0b(0x1d9),{'locations':[_0x188d5e[_0x21d0b(0x18d)]],'rangerDir':_0x2994f6}))return console['log'](_0x21d0b(0x17d)),{'ready':!![],'skipped':![]};const _0x956d79=process['stdin'][_0x21d0b(0x1cd)]&&process['stdout'][_0x21d0b(0x1cd)];if(_0x956d79&&!_0x1bfdfb?.['url']){console[_0x21d0b(0x1f5)](_0x188d5e['hRaPD']),console[_0x21d0b(0x1f5)](_0x188d5e['QcRuR']),console[_0x21d0b(0x1f5)](_0x21d0b(0x1d5)),console[_0x21d0b(0x1f5)](_0x188d5e[_0x21d0b(0x190)]),console[_0x21d0b(0x1f5)]('You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.');const {wantsProfile:_0x4c59aa}=await _0xe70602[_0x21d0b(0x189)]([{'type':_0x21d0b(0x1f4),'name':_0x21d0b(0x1da),'message':_0x188d5e[_0x21d0b(0x1ad)],'default':!![]}]);if(!_0x4c59aa)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await addEnv(_0x188d5e[_0x21d0b(0x18d)],{'url':_0x1bfdfb?.[_0x21d0b(0x1ca)],'force':_0x1bfdfb?.[_0x21d0b(0x1e1)],'allowInsecureLocalhost':_0x1bfdfb?.[_0x21d0b(0x1cf)],'scope':_0x1bfdfb?.[_0x21d0b(0x1e5)]},_0x3faf70),{'ready':!![],'skipped':![]};}catch(_0x21abdf){return console[_0x21d0b(0x1b8)](_0x188d5e[_0x21d0b(0x1e3)],_0x21abdf instanceof Error?_0x21abdf['message']:_0x21abdf),_0x188d5e[_0x21d0b(0x1bc)](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}export async function start(_0x41b724,_0x64b222,_0x2806b5){const _0x2b30f5=_0x4c87d1,_0x3cc94e={'gGlUq':function(_0x1ea920,_0x15e196){return _0x1ea920===_0x15e196;},'PAemA':'user','IqBaR':_0x2b30f5(0x1e6),'fiXBr':'No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory,\x0a','SKdVW':'or\x20use\x20--scope\x20user\x20to\x20install\x20at\x20the\x20user\x20level\x20without\x20a\x20project.','JQZPE':function(_0x3a9fca){return _0x3a9fca();},'KkxHe':'auth','llaRQ':function(_0x48038f,_0x45bf29){return _0x48038f(_0x45bf29);},'zHtjw':'\x0a✅\x20Ranger\x20setup\x20complete!\x0a','FYHBk':'plugin','EuQux':function(_0x43c193,_0x34b793){return _0x43c193(_0x34b793);},'QcIbD':function(_0x11d36b,_0x52fa57){return _0x11d36b&&_0x52fa57;},'cRpVW':'ranger','rysvD':'\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','XkDlb':'\x0aSkipping\x20profile\x20setup\x20(--skip-auth).\x20Run\x20`ranger\x20setup`\x20with\x20auth\x20to\x20add\x20a\x20profile\x20later.\x0a','kunpp':_0x2b30f5(0x1ec),'kWtfB':'with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','KmObV':'verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','AHBpe':function(_0xcbb3db,_0x2b2dc2){return _0xcbb3db(_0x2b2dc2);},'iYQTU':'/ranger:enable'};console['log'](_0x2b30f5(0x1dc));const _0x274282=process['stdin']['isTTY']&&process[_0x2b30f5(0x1f9)][_0x2b30f5(0x1cd)];!_0x274282&&!_0x64b222?.['scope']&&(console['log'](_0x2b30f5(0x1a7)),_0x64b222={..._0x64b222,'scope':'user'});const _0x53125f=_0x3cc94e[_0x2b30f5(0x196)](_0x64b222?.[_0x2b30f5(0x1e5)],_0x3cc94e[_0x2b30f5(0x1b5)]);_0x2806b5?.[_0x2b30f5(0x1cb)](_0x3cc94e[_0x2b30f5(0x182)]);const _0x30c6c8=findGitRoot();if(!_0x30c6c8&&!_0x53125f){await _0x2806b5?.['trackPhaseError']('git_check',new Error('No\x20git\x20repository\x20found'));throw new Error(_0x3cc94e[_0x2b30f5(0x1b0)]+_0x3cc94e['SKdVW']);}_0x2806b5?.['trackPhaseEnd'](_0x3cc94e['IqBaR']);const _0x5433a0=!existsSync(_0x3cc94e['JQZPE'](getRangerDir)),{path:_0x29f74b}=await ensureRangerDir(_0x53125f?_0x2b30f5(0x1c6):undefined);if(_0x64b222?.[_0x2b30f5(0x19f)])console[_0x2b30f5(0x1f5)]('✓\x20Skipping\x20authentication\x20(--skip-auth)'),_0x2806b5?.['trackPhaseEnd'](_0x3cc94e['KkxHe'],{'isFirstRun':_0x5433a0,'method':'skipped'});else{_0x2806b5?.['trackPhaseStart'](_0x3cc94e['KkxHe']);const _0x4941db=await _0x3cc94e[_0x2b30f5(0x193)](authenticate,_0x41b724);_0x2806b5?.[_0x2b30f5(0x17b)](_0x3cc94e[_0x2b30f5(0x17e)],{'isFirstRun':_0x5433a0,'method':_0x4941db['method']});}_0x2806b5?.['trackPhaseStart'](_0x2b30f5(0x183));_0x64b222?.['skipChromium']?console['log']('✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)'):await _0x3cc94e['llaRQ'](ensureChromium,_0x64b222?.[_0x2b30f5(0x1a1)]);_0x2806b5?.[_0x2b30f5(0x17b)](_0x2b30f5(0x183),{'isFirstRun':_0x5433a0,'skipped':!!_0x64b222?.[_0x2b30f5(0x1ac)]});!_0x53125f&&await writeRangerGitignore(_0x29f74b);console[_0x2b30f5(0x1f5)](_0x3cc94e['zHtjw']);const _0x2388ba=_0x64b222?.[_0x2b30f5(0x1e5)],_0x5e6109=_0x64b222?.[_0x2b30f5(0x1b9)]??![];let _0x7eccbb=null;_0x5e6109?(_0x2806b5?.['trackPhaseStart'](_0x3cc94e[_0x2b30f5(0x1a3)]),_0x7eccbb=await _0x3cc94e[_0x2b30f5(0x18e)](ensureOpencodePluginConfig,_0x2388ba),_0x2806b5?.[_0x2b30f5(0x17b)]('plugin',{'isFirstRun':_0x5433a0,'opencode':!![]})):(_0x2806b5?.['trackPhaseStart'](_0x3cc94e['FYHBk']),await ensureClaudePlugin(_0x2388ba),_0x2806b5?.[_0x2b30f5(0x17b)](_0x2b30f5(0x1a9),{'isFirstRun':_0x5433a0}));if(_0x3cc94e[_0x2b30f5(0x1d4)](_0x5e6109,_0x7eccbb)){_0x2806b5?.[_0x2b30f5(0x1cb)](_0x2b30f5(0x1ae));try{await installSkill(_0x3cc94e[_0x2b30f5(0x1f6)],{'level':_0x7eccbb['scope'],'cliVersion':_0x3cc94e['JQZPE'](getCurrentVersion),'platform':'opencode'}),_0x2806b5?.[_0x2b30f5(0x17b)]('skills',{'isFirstRun':_0x5433a0,'opencode':!![]});}catch(_0x52ba6c){console[_0x2b30f5(0x1f2)](_0x3cc94e['rysvD'],_0x52ba6c instanceof Error?_0x52ba6c['message']:_0x52ba6c),_0x2806b5?.['trackPhaseEnd']('skills',{'isFirstRun':_0x5433a0,'opencode':!![],'failed':!![]});}}else _0x2806b5?.['trackPhaseStart'](_0x2b30f5(0x1ae)),await ensureClaudeSkills(_0x2388ba),_0x2806b5?.['trackPhaseEnd']('skills',{'isFirstRun':_0x5433a0});if(_0x64b222?.['skipAuth'])console['log'](_0x3cc94e['XkDlb']);else{if(!_0x274282&&!_0x64b222?.['url'])console['log'](_0x2b30f5(0x1ee)),console['log']('\x20\x20'+bold(_0x2b30f5(0x1c2))+'\x0a');else{_0x2806b5?.['trackPhaseStart']('profile');const _0x429803=await ensureLocalEnv({'url':_0x64b222?.[_0x2b30f5(0x1ca)],'force':_0x64b222?.['force'],'allowInsecureLocalhost':_0x64b222?.[_0x2b30f5(0x1cf)],'scope':_0x3cc94e['gGlUq'](_0x64b222?.['scope'],_0x3cc94e[_0x2b30f5(0x1b5)])?'user':undefined},_0x2806b5);_0x2806b5?.[_0x2b30f5(0x17b)](_0x3cc94e[_0x2b30f5(0x1c8)],{'isFirstRun':_0x5433a0,'profileReady':_0x429803[_0x2b30f5(0x1c0)],'userSkipped':_0x429803[_0x2b30f5(0x1c9)]}),_0x429803['ready']&&console[_0x2b30f5(0x1f5)](_0x2b30f5(0x17f));}}if(_0x5e6109)console[_0x2b30f5(0x1f5)]('\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)'),console[_0x2b30f5(0x1f5)]('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console['log'](_0x3cc94e[_0x2b30f5(0x1a4)]),console[_0x2b30f5(0x1f5)](_0x3cc94e[_0x2b30f5(0x1eb)]);else{const _0x5a0e8c=_0x3cc94e[_0x2b30f5(0x187)](bold,_0x3cc94e[_0x2b30f5(0x19a)]);console['log'](_0x2b30f5(0x19b)+_0x5a0e8c+_0x2b30f5(0x1b4)+_0x2b30f5(0x1d7)+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'+'\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');}}
|
|
1
|
+
function _0x2a02(){const _0x67d8d0=['✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','stdout','MvFPP','jPbZv','exit','/ranger:enable','resolve','iAfaV','DOwOV','organizationName','TrriN','5UQlnfc','\x1b[0m','HiwEf','lBwQq','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','ranger\x20setup\x20--scope=','372911llSPid','\x20and\x20prompt\x20the\x20coding','✓\x20Authenticated\x20to\x20','\x20is\x20no\x20longer\x20supported.\x20','plugin','chromium','.gitignore','success','PQISB','QIqkS','\x20\x20npx\x20playwright@','url','status','✓\x20Already\x20authenticated\x20to\x20','\x0aIn\x20Claude\x20Code,\x20run\x20','auth','KzEik','ignore','cjPyo','6bwlrTx','OCkir','1827875mwxsJi','scope','✓\x20Exported\x20credentials\x20for\x20CI','gGCTu','env','profile','message','ZigSz','Skgby','allowInsecureLocalhost','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','566064zZHZVq','Setup\x20always\x20installs\x20at\x20user\x20scope\x20now\x20(cloud\x20profiles\x20make\x20','trackPhaseStart','kKaFU','\x0a\x20\x20https://docs.ranger.net/main/concepts/profiles','hmejB','platform','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','Authentication\x20failed:\x20','✓\x20Playwright\x20Chromium\x20browser\x20found','aRpWr','playwright@','1697840TwDlTE','confirm','fcCKq','dznHl','The\x20required\x20version\x20(','.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.','\x0a🚀\x20Ranger\x20Setup\x0a','⚠\x20No\x20git\x20repository\x20found.\x20Re-run\x20with\x20`--scope\x20user`\x20to\x20store\x20the\x20profile\x20at\x20~/.ranger/.','stdin','warn','skills','win32','Installation\x20failed\x20with\x20exit\x20code\x20','\x0a\x20\x20','199194zFMHAy','skipped','trackPhaseEnd','isTTY','npx','LicDi','WAuLl','error','\x1b[1m','local','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','1679436KPkASB','force','user','close','skipAuth','OZMsl','playwright/package.json','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','1692552bPSMHb','log','CCePW','LEwKB','thTkt','✓\x20Local\x20profile\x20already\x20exists','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','owout','inherit'];_0x2a02=function(){return _0x67d8d0;};return _0x2a02();}const _0x1e5c9d=_0x37ab;(function(_0x5e4edc,_0x1714c2){const _0x563a57=_0x37ab,_0x48d925=_0x5e4edc();while(!![]){try{const _0x1b785c=-parseInt(_0x563a57(0x92))/0x1+-parseInt(_0x563a57(0xcc))/0x2*(-parseInt(_0x563a57(0xa5))/0x3)+-parseInt(_0x563a57(0xbe))/0x4+-parseInt(_0x563a57(0x8b))/0x5*(-parseInt(_0x563a57(0xd7))/0x6)+parseInt(_0x563a57(0xa7))/0x7+parseInt(_0x563a57(0xdf))/0x8+parseInt(_0x563a57(0xb2))/0x9;if(_0x1b785c===_0x1714c2)break;else _0x48d925['push'](_0x48d925['shift']());}catch(_0x40552c){_0x48d925['push'](_0x48d925['shift']());}}}(_0x2a02,0x350e7));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x4caed9 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';function _0x37ab(_0x45bd4f,_0x30625e){_0x45bd4f=_0x45bd4f-0x7e;const _0x2a022b=_0x2a02();let _0x37ab77=_0x2a022b[_0x45bd4f];return _0x37ab77;}import{getRangerHomeDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url);export const PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2';const bold=_0x10df7d=>_0x1e5c9d(0xd4)+_0x10df7d+_0x1e5c9d(0x8c);export function getPlaywrightVersion(){const _0x4708d2=_0x1e5c9d,_0x14f425={'Wlshw':_0x4708d2(0xdd),'OZMsl':function(_0x5f11a8,_0x188078){return _0x5f11a8(_0x188078);}};try{const _0x4436f0=require[_0x4708d2(0x86)](_0x14f425['Wlshw']),_0x36d8ec=_0x14f425[_0x4708d2(0xdc)](require,_0x4436f0);return _0x36d8ec['version'];}catch{return null;}}export function installChromiumBinary(_0x4a5a25,_0xa2a60=![]){const _0x58584a=_0x1e5c9d,_0x3bcb8d={'QIpiB':function(_0x440d5f,_0x21a73d){return _0x440d5f===_0x21a73d;},'VwMGh':function(_0x14ab12,_0x3b7a27){return _0x14ab12(_0x3b7a27);},'hmejB':'install','huKuc':'--with-deps','owout':_0x58584a(0x97),'EvHvw':_0x58584a(0x7f),'MgjUI':_0x58584a(0xc9),'kKaFU':_0x58584a(0xda)};return new Promise((_0x45378a,_0x35c9de)=>{const _0x4432b7=_0x58584a,_0x3f3f6a=[_0x4432b7(0xbd)+_0x4a5a25,_0x3bcb8d[_0x4432b7(0xb7)],..._0xa2a60?[_0x3bcb8d['huKuc']]:[],_0x3bcb8d[_0x4432b7(0x7e)]],_0x189c1d=spawn(_0x4432b7(0xd0),_0x3f3f6a,{'stdio':[_0x4432b7(0xa3),_0x4432b7(0x7f),_0x3bcb8d['EvHvw']],'shell':process[_0x4432b7(0xb8)]===_0x3bcb8d['MgjUI']});_0x189c1d['on'](_0x3bcb8d[_0x4432b7(0xb5)],_0x58a2b4=>{const _0x2fac4f=_0x4432b7;_0x3bcb8d['QIpiB'](_0x58a2b4,0x0)?_0x45378a():_0x3bcb8d['VwMGh'](_0x35c9de,new Error(_0x2fac4f(0xca)+_0x58a2b4));}),_0x189c1d['on'](_0x4432b7(0xd3),_0x357c60=>{_0x35c9de(_0x357c60);});});}export async function authenticate(_0x1bab30){const _0x30a697=_0x1e5c9d,_0x12c7a7={'jPbZv':function(_0x33a8ec){return _0x33a8ec();},'GEMdL':function(_0x182620,_0x6673e0){return _0x182620 instanceof _0x6673e0;},'ZZkrL':function(_0x84aed3,_0x39521b){return _0x84aed3(_0x39521b);},'MvFPP':'device_auth','bTZHM':_0x30a697(0xa9),'cJqEJ':'provided_token'};if(!_0x1bab30){const _0x1644e5=await _0x12c7a7[_0x30a697(0x83)](getToken);if(_0x1644e5){const _0x5091f2=await getCurrentUser(_0x1644e5);if(_0x5091f2['success'])return console[_0x30a697(0xe0)](_0x30a697(0x9f)+_0x5091f2[_0x30a697(0xd9)][_0x30a697(0x89)]),{'token':_0x1644e5,'method':'existing_token'};}try{_0x1bab30=await runDeviceAuthFlow();}catch(_0x123504){throw new Error(_0x30a697(0xba)+(_0x12c7a7['GEMdL'](_0x123504,Error)?_0x123504[_0x30a697(0xad)]:_0x123504));}const _0x2fecfb=await _0x12c7a7['ZZkrL'](getCurrentUser,_0x1bab30);if(!_0x2fecfb['success'])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x2fecfb[_0x30a697(0xd3)]);return console['log'](_0x30a697(0x94)+_0x2fecfb[_0x30a697(0xd9)][_0x30a697(0x89)]),{'token':_0x1bab30,'method':_0x12c7a7[_0x30a697(0x82)]};}console[_0x30a697(0xe0)]('Validating\x20API\x20token...');const _0x24a2ab=await _0x12c7a7['ZZkrL'](getCurrentUser,_0x1bab30);if(!_0x24a2ab[_0x30a697(0x99)]){if(_0x24a2ab[_0x30a697(0x9e)])throw new Error('Authentication\x20failed:\x20'+_0x24a2ab[_0x30a697(0xd3)]+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x24a2ab['error']+_0x30a697(0xc3));}return console['log']('✓\x20Authenticated\x20to\x20'+_0x24a2ab[_0x30a697(0xd9)]['organizationName']),await storeToken(_0x1bab30),console['log'](process[_0x30a697(0xab)]['GITHUB_ENV']?_0x12c7a7['bTZHM']:'✓\x20Stored\x20credentials\x20locally'),{'token':_0x1bab30,'method':_0x12c7a7['cJqEJ']};}export async function ensureRangerDir(_0x4c4e1f){const _0x3afa66=_0x1e5c9d,_0x2f3c29={'tWyeF':function(_0x40c7bf){return _0x40c7bf();},'BQCqE':'✓\x20Created\x20~/.ranger/\x20directory','QIqkS':'✓\x20~/.ranger/\x20directory\x20already\x20exists'};void _0x4c4e1f;const _0x306986=_0x2f3c29['tWyeF'](getRangerHomeDir);return!existsSync(_0x306986)?(await mkdir(_0x306986,{'recursive':!![]}),console[_0x3afa66(0xe0)](_0x2f3c29['BQCqE']),{'path':_0x306986,'installed':!![]}):(console['log'](_0x2f3c29[_0x3afa66(0x9b)]),{'path':_0x306986,'installed':![]});}export async function ensureChromium(_0x4adcf7=![]){const _0x435b45=_0x1e5c9d,_0xa4cddf={'sGKGX':function(_0x11e4dd,_0x6dca26){return _0x11e4dd(_0x6dca26);},'BoeYo':function(_0x71697f){return _0x71697f();},'aRpWr':_0x435b45(0xbf),'bLBqR':'\x20(fallback\x20version)','ZigSz':'\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','TrriN':'\x0a❌\x20Failed\x20to\x20install\x20Chromium:','WbyVM':function(_0x5ba11e,_0x4aab72){return _0x5ba11e instanceof _0x4aab72;},'DOwOV':'You\x20can\x20install\x20it\x20manually\x20by\x20running:','vAgoR':'You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'};let _0x6262fb=![];try{const _0x5ac69d=chromium['executablePath']();_0x6262fb=_0xa4cddf['sGKGX'](existsSync,_0x5ac69d);}catch{_0x6262fb=![];}if(_0x6262fb)return console['log'](_0x435b45(0xbb)),![];const _0xc3420f=_0xa4cddf['BoeYo'](getPlaywrightVersion),_0x4185d8=_0xc3420f??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0x2f10b6=!_0xc3420f,_0x41f4fb=process[_0x435b45(0xc6)][_0x435b45(0xcf)]&&process[_0x435b45(0x81)]['isTTY'];let _0x191a57=!![];if(_0x41f4fb){const {install:_0x5931c6}=await _0x4caed9['prompt']([{'type':_0xa4cddf[_0x435b45(0xbc)],'name':'install','message':_0x2f10b6?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x4185d8+'\x20now?':_0x435b45(0xc2)+_0x4185d8+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x191a57=_0x5931c6;}else console[_0x435b45(0xe0)](_0x435b45(0xde)+_0x4185d8+(_0x2f10b6?_0xa4cddf['bLBqR']:'')+'...');if(_0x191a57){console['log']('\x0aInstalling\x20Chromium\x20browser...\x0a');try{await installChromiumBinary(_0x4185d8,_0x4adcf7),console[_0x435b45(0xe0)](_0xa4cddf[_0x435b45(0xae)]);}catch(_0x2daeb8){console['error'](_0xa4cddf[_0x435b45(0x8a)],_0xa4cddf['WbyVM'](_0x2daeb8,Error)?_0x2daeb8[_0x435b45(0xad)]:_0x2daeb8),console[_0x435b45(0xe0)](_0xa4cddf[_0x435b45(0x88)]),console['log'](_0x435b45(0x9c)+_0x4185d8+'\x20install\x20chromium');}}else console['log']('\x0a⚠\x20Skipping\x20Chromium\x20installation.'),console['log'](_0xa4cddf['vAgoR']),console[_0x435b45(0xe0)]('\x20\x20npx\x20playwright@'+_0x4185d8+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0xb536c){const _0x45dc72=_0x1e5c9d,_0x16d6f5={'OCkir':_0x45dc72(0x98),'CCePW':'✓\x20Created\x20.ranger/.gitignore'},_0x13e0d8=join(_0xb536c,_0x16d6f5[_0x45dc72(0xa6)]),_0x4f8967='\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a';await writeFile(_0x13e0d8,_0x4f8967),console[_0x45dc72(0xe0)](_0x16d6f5[_0x45dc72(0xe1)]);}export async function ensureLocalEnv(_0x3b2f3e,_0x27222a){const _0x31e465=_0x1e5c9d,_0xab6795={'cjPyo':function(_0x1bf95d){return _0x1bf95d();},'EbtEo':function(_0x206e4b,_0x536f2a){return _0x206e4b===_0x536f2a;},'KzEik':function(_0x43cc57){return _0x43cc57();},'LEwKB':function(_0x100829,_0x27a67c,_0x3b7b05,_0x3c0539){return _0x100829(_0x27a67c,_0x3b7b05,_0x3c0539);},'RLHrj':'\x0a❌\x20Profile\x20setup\x20failed:','iAfaV':function(_0x4d7e1f,_0x1ef0e0){return _0x4d7e1f instanceof _0x1ef0e0;}};if(!_0xab6795[_0x31e465(0xa4)](findGitRoot)&&_0x3b2f3e?.[_0x31e465(0xa8)]!=='user')return console[_0x31e465(0xe0)](_0x31e465(0xc5)),{'ready':![],'skipped':!![]};const _0x4de64b=_0xab6795['EbtEo'](_0x3b2f3e?.['scope'],_0x31e465(0xd9))?_0xab6795[_0x31e465(0xa2)](getRangerHomeDir):undefined;if(findExistingEnv(_0x31e465(0xd5),{'locations':[_0x31e465(0xd5)],'rangerDir':_0x4de64b}))return console['log'](_0x31e465(0xe4)),{'ready':!![],'skipped':![]};try{return await _0xab6795[_0x31e465(0xe2)](addEnv,_0x31e465(0xd5),{'url':_0x3b2f3e?.['url'],'force':_0x3b2f3e?.['force'],'allowInsecureLocalhost':_0x3b2f3e?.[_0x31e465(0xb0)],'scope':_0x3b2f3e?.[_0x31e465(0xa8)]},_0x27222a),{'ready':!![],'skipped':![]};}catch(_0x202398){return console[_0x31e465(0xd3)](_0xab6795['RLHrj'],_0xab6795[_0x31e465(0x87)](_0x202398,Error)?_0x202398[_0x31e465(0xad)]:_0x202398),{'ready':![],'skipped':![]};}}export async function start(_0x407e54,_0x427c93,_0xb02234){const _0x42fd3e=_0x1e5c9d,_0x1eaa25={'PiuYd':function(_0x24c051,_0x341b63){return _0x24c051!==_0x341b63;},'oKUWf':function(_0x365480,_0xcfa6e1){return _0x365480(_0xcfa6e1);},'Qkdez':'user','LicDi':'✓\x20Skipping\x20authentication\x20(--skip-auth)','fcCKq':'auth','dznHl':_0x42fd3e(0xcd),'zpMOA':_0x42fd3e(0x97),'lBwQq':_0x42fd3e(0xd6),'HiwEf':_0x42fd3e(0x96),'oOZbD':function(_0x2b06c7,_0x2a4de7){return _0x2b06c7(_0x2a4de7);},'thTkt':_0x42fd3e(0xc8),'VcMAq':function(_0x3ea984){return _0x3ea984();},'iEFiJ':'opencode','ceGMo':_0x42fd3e(0xb9),'gGCTu':function(_0x1a943a,_0x222ec6){return _0x1a943a(_0x222ec6);},'WAuLl':'\x0aSkipping\x20profile\x20setup\x20(--skip-auth).\x20Run\x20`ranger\x20setup`\x20with\x20auth\x20to\x20add\x20a\x20profile\x20later.\x0a','DtTpd':function(_0x44dda5,_0x179962,_0xcfcd6){return _0x44dda5(_0x179962,_0xcfcd6);},'PQISB':function(_0x27542a,_0xab161){return _0x27542a+_0xab161;},'izaAK':_0x42fd3e(0xb1),'zKWjm':_0x42fd3e(0xe5),'cAASd':_0x42fd3e(0xe6),'Skgby':_0x42fd3e(0x85)};console['log'](_0x42fd3e(0xc4));_0x1eaa25['PiuYd'](_0x427c93?.['scope'],undefined)&&_0x1eaa25['PiuYd'](_0x427c93['scope'],'user')&&(console[_0x42fd3e(0xd3)](_0x42fd3e(0x91)+_0x1eaa25['oKUWf'](String,_0x427c93['scope'])+_0x42fd3e(0x95)+_0x42fd3e(0xb3)+'project-scope\x20setup\x20obsolete).\x20Drop\x20the\x20--scope\x20flag\x20or\x20pass\x20--scope=user.'),process[_0x42fd3e(0x84)](0x1));_0x427c93={..._0x427c93,'scope':_0x1eaa25['Qkdez']};const _0x5856c7=!existsSync(getRangerHomeDir());await ensureRangerDir('user');if(_0x427c93?.[_0x42fd3e(0xdb)])console[_0x42fd3e(0xe0)](_0x1eaa25[_0x42fd3e(0xd1)]),_0xb02234?.[_0x42fd3e(0xce)](_0x1eaa25[_0x42fd3e(0xc0)],{'isFirstRun':_0x5856c7,'method':_0x1eaa25[_0x42fd3e(0xc1)]});else{_0xb02234?.[_0x42fd3e(0xb4)](_0x42fd3e(0xa1));const _0x2962a7=await authenticate(_0x407e54);_0xb02234?.[_0x42fd3e(0xce)](_0x1eaa25[_0x42fd3e(0xc0)],{'isFirstRun':_0x5856c7,'method':_0x2962a7['method']});}_0xb02234?.['trackPhaseStart']('chromium');_0x427c93?.['skipChromium']?console[_0x42fd3e(0xe0)](_0x42fd3e(0x80)):await ensureChromium(_0x427c93?.['withDeps']);_0xb02234?.[_0x42fd3e(0xce)](_0x1eaa25['zpMOA'],{'isFirstRun':_0x5856c7,'skipped':!!_0x427c93?.['skipChromium']}),console['log'](_0x1eaa25[_0x42fd3e(0x8e)]);const _0x2e8f8f=_0x427c93?.[_0x42fd3e(0xa8)],_0x22d119=_0x427c93?.['opencode']??![];let _0x1f09e9=null;_0x22d119?(_0xb02234?.[_0x42fd3e(0xb4)](_0x1eaa25['HiwEf']),_0x1f09e9=await _0x1eaa25['oOZbD'](ensureOpencodePluginConfig,_0x2e8f8f),_0xb02234?.['trackPhaseEnd'](_0x1eaa25['HiwEf'],{'isFirstRun':_0x5856c7,'opencode':!![]})):(_0xb02234?.['trackPhaseStart']('plugin'),await ensureClaudePlugin(_0x2e8f8f),_0xb02234?.['trackPhaseEnd'](_0x1eaa25[_0x42fd3e(0x8d)],{'isFirstRun':_0x5856c7}));if(_0x22d119&&_0x1f09e9){_0xb02234?.[_0x42fd3e(0xb4)](_0x1eaa25[_0x42fd3e(0xe3)]);try{await installSkill('ranger',{'level':_0x1f09e9['scope'],'cliVersion':_0x1eaa25['VcMAq'](getCurrentVersion),'platform':_0x1eaa25['iEFiJ']}),_0xb02234?.[_0x42fd3e(0xce)](_0x42fd3e(0xc8),{'isFirstRun':_0x5856c7,'opencode':!![]});}catch(_0x223eac){console[_0x42fd3e(0xc7)](_0x1eaa25['ceGMo'],_0x223eac instanceof Error?_0x223eac['message']:_0x223eac),_0xb02234?.[_0x42fd3e(0xce)]('skills',{'isFirstRun':_0x5856c7,'opencode':!![],'failed':!![]});}}else _0xb02234?.['trackPhaseStart'](_0x42fd3e(0xc8)),await _0x1eaa25[_0x42fd3e(0xaa)](ensureClaudeSkills,_0x2e8f8f),_0xb02234?.['trackPhaseEnd'](_0x1eaa25['thTkt'],{'isFirstRun':_0x5856c7});if(_0x427c93?.['skipAuth'])console['log'](_0x1eaa25[_0x42fd3e(0xd2)]);else{if(_0x427c93?.['url']){_0xb02234?.[_0x42fd3e(0xb4)]('profile');const _0xdc51e9=await _0x1eaa25['DtTpd'](ensureLocalEnv,{'url':_0x427c93[_0x42fd3e(0x9d)],'force':_0x427c93?.[_0x42fd3e(0xd8)],'allowInsecureLocalhost':_0x427c93?.['allowInsecureLocalhost'],'scope':'user'},_0xb02234);_0xb02234?.[_0x42fd3e(0xce)](_0x42fd3e(0xac),{'isFirstRun':_0x5856c7,'profileReady':_0xdc51e9['ready'],'userSkipped':_0xdc51e9[_0x42fd3e(0xcd)]});}else console['log'](_0x1eaa25[_0x42fd3e(0x9a)](_0x1eaa25['PQISB']('\x0aTo\x20set\x20up\x20a\x20profile\x20for\x20your\x20app,\x20run:'+(_0x42fd3e(0xcb)+bold('ranger\x20profile\x20add\x20<name>'))+'\x0a\x20\x20(opens\x20a\x20browser\x20so\x20you\x20can\x20log\x20in\x20once)','\x0a\x0aFor\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:'),_0x42fd3e(0xb6)));}if(_0x22d119)console['log'](_0x1eaa25['izaAK']),console['log']('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console[_0x42fd3e(0xe0)](_0x1eaa25['zKWjm']),console['log'](_0x1eaa25['cAASd']);else{const _0x5aa0ce=bold(_0x1eaa25[_0x42fd3e(0xaf)]);console[_0x42fd3e(0xe0)](_0x1eaa25['PQISB'](_0x42fd3e(0xa0)+_0x5aa0ce+_0x42fd3e(0x93)+_0x42fd3e(0x90),'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser')+_0x42fd3e(0x8f));}}
|