@ranger-testing/ranger-cli 2.2.5 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/build/cli.js +1 -1
  2. package/build/commands/addEnv.js +1 -1
  3. package/build/commands/authEncrypt.js +1 -1
  4. package/build/commands/clean.js +1 -1
  5. package/build/commands/config.js +1 -1
  6. package/build/commands/env.js +1 -1
  7. package/build/commands/feature.js +1 -1
  8. package/build/commands/hook.js +1 -1
  9. package/build/commands/hooks/autoPrompt.js +1 -1
  10. package/build/commands/hooks/disable.js +1 -1
  11. package/build/commands/hooks/enable.js +1 -1
  12. package/build/commands/hooks/exitPlanMode.js +1 -1
  13. package/build/commands/hooks/index.js +1 -1
  14. package/build/commands/hooks/output.js +1 -1
  15. package/build/commands/hooks/planReminder.js +1 -1
  16. package/build/commands/hooks/planStart.js +1 -1
  17. package/build/commands/hooks/postEdit.js +1 -1
  18. package/build/commands/hooks/preCompact.js +1 -1
  19. package/build/commands/hooks/sessionEnd.js +1 -1
  20. package/build/commands/hooks/sessionStart.js +1 -1
  21. package/build/commands/hooks/stopHook.js +1 -1
  22. package/build/commands/index.js +1 -1
  23. package/build/commands/login.js +1 -1
  24. package/build/commands/setup/claude.js +1 -1
  25. package/build/commands/setup/opencode.js +1 -1
  26. package/build/commands/setupCi.js +1 -1
  27. package/build/commands/skillup.js +1 -1
  28. package/build/commands/start.js +1 -1
  29. package/build/commands/status.js +1 -1
  30. package/build/commands/update.js +1 -1
  31. package/build/commands/updateEnv.js +1 -1
  32. package/build/commands/useEnv.js +1 -1
  33. package/build/commands/utils/activeProfile.js +1 -1
  34. package/build/commands/utils/browserSessionsApi.js +1 -1
  35. package/build/commands/utils/claudeConfig.js +1 -1
  36. package/build/commands/utils/claudePlugin.js +1 -1
  37. package/build/commands/utils/crypto.js +1 -1
  38. package/build/commands/utils/desirePathLog.js +1 -1
  39. package/build/commands/utils/deviceAuth.js +1 -1
  40. package/build/commands/utils/environment.js +1 -1
  41. package/build/commands/utils/featureApi.js +1 -1
  42. package/build/commands/utils/featureReportGenerator.js +1 -1
  43. package/build/commands/utils/fixWebmDuration.js +1 -1
  44. package/build/commands/utils/git.js +1 -1
  45. package/build/commands/utils/keychain.js +1 -1
  46. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  47. package/build/commands/utils/mcpImageBase64.js +1 -1
  48. package/build/commands/utils/model.js +1 -1
  49. package/build/commands/utils/opencodeConfig.js +1 -1
  50. package/build/commands/utils/playwrightCli.js +1 -0
  51. package/build/commands/utils/profileMessages.js +1 -1
  52. package/build/commands/utils/profileSetupBanner.js +1 -1
  53. package/build/commands/utils/rangerConfig.js +1 -1
  54. package/build/commands/utils/rangerRoot.js +1 -1
  55. package/build/commands/utils/reportGenerator.js +1 -1
  56. package/build/commands/utils/retry.js +1 -1
  57. package/build/commands/utils/sessionCache.js +1 -1
  58. package/build/commands/utils/settings.js +1 -1
  59. package/build/commands/utils/skillContent.js +1 -1
  60. package/build/commands/utils/skills.js +1 -1
  61. package/build/commands/utils/stitchWebmFiles.js +1 -1
  62. package/build/commands/utils/telemetry.js +1 -1
  63. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  64. package/build/commands/utils/userApi.js +1 -1
  65. package/build/commands/utils/version.js +1 -1
  66. package/build/commands/verifyFeature.js +1 -1
  67. package/build/commands/verifyFeatureCli.js +1 -0
  68. package/build/commands/verifyInBrowser.js +1 -1
  69. package/package.json +3 -1
@@ -1 +1 @@
1
- (function(_0xeb539e,_0xd5a2ae){const _0x35f79a=_0x3259,_0x3d4d49=_0xeb539e();while(!![]){try{const _0x5b84e1=-parseInt(_0x35f79a(0x1f7))/0x1*(parseInt(_0x35f79a(0x1eb))/0x2)+parseInt(_0x35f79a(0x205))/0x3*(parseInt(_0x35f79a(0x1f2))/0x4)+-parseInt(_0x35f79a(0x1ed))/0x5*(parseInt(_0x35f79a(0x1f3))/0x6)+-parseInt(_0x35f79a(0x209))/0x7+-parseInt(_0x35f79a(0x1f9))/0x8*(-parseInt(_0x35f79a(0x1f8))/0x9)+parseInt(_0x35f79a(0x1fe))/0xa*(parseInt(_0x35f79a(0x1e9))/0xb)+parseInt(_0x35f79a(0x1ea))/0xc;if(_0x5b84e1===_0xd5a2ae)break;else _0x3d4d49['push'](_0x3d4d49['shift']());}catch(_0x279c2f){_0x3d4d49['push'](_0x3d4d49['shift']());}}}(_0x3db9,0x7f764));function _0x3db9(){const _0x5906e1=['close','4238829renWXv','iqLNh','includes','DSjql','`,\x20then\x20run\x20/exit\x20again.','WMUTy','104368OwcIIn','4676688HmLggd','2iBvfRs','success','5TvGucC','DQKKM','KzNZc','name','bdFMF','8hLOUlp','3054678rBlDPp','read',':\x0a\x0a','stop_hook_active','207619KJIvij','99RonqMC','294456SKzhby','transcript_path','featureId','input','stringify','300xKqeAu','BiAEL','message','hook:stop','\x20for\x20\x22','ViUqt','toString','1147683MivzpZ','vfPYh','trackCommandStart'];_0x3db9=function(){return _0x5906e1;};return _0x3db9();}import{open}from'fs/promises';import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';function _0x3259(_0x31f975,_0x583ba8){_0x31f975=_0x31f975-0x1e7;const _0x3db956=_0x3db9();let _0x325975=_0x3db956[_0x31f975];return _0x325975;}import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x37d2ad){const _0x3ac3fe=_0x3259,_0x40dd6a={'BiAEL':function(_0x5ebeb3,_0x2aa9a2){return _0x5ebeb3(_0x2aa9a2);},'GeshI':function(_0x445ecc,_0x4e54cd){return _0x445ecc===_0x4e54cd;},'cDyUz':'string','vfPYh':function(_0x5c0098,_0x15ea94,_0x19d65c,_0x188b49){return _0x5c0098(_0x15ea94,_0x19d65c,_0x188b49);},'djmdh':function(_0x293f86,_0x108614,_0x50c3d3,_0x3237ff){return _0x293f86(_0x108614,_0x50c3d3,_0x3237ff);},'KzNZc':'RANGER_SKIP_VERIFICATION','WMUTy':function(_0x27eece,_0x17fd88,_0x3762e1){return _0x27eece(_0x17fd88,_0x3762e1);},'iqLNh':function(_0x22439d,_0x5e17d2){return _0x22439d&&_0x5e17d2;},'nwGOP':function(_0x354095,_0x2fbd8a){return _0x354095 instanceof _0x2fbd8a;}},_0x494a6e=await getEnabledHookContext(_0x37d2ad),_0x425b8d=_0x494a6e?.['sessionId']??null,_0x1d8a77=_0x40dd6a[_0x3ac3fe(0x1ff)](Boolean,_0x494a6e?.['input']?.[_0x3ac3fe(0x1f6)]),_0x2bbe0c=_0x40dd6a['GeshI'](typeof _0x494a6e?.[_0x3ac3fe(0x1fc)]?.[_0x3ac3fe(0x1fa)],_0x40dd6a['cDyUz'])?_0x494a6e['input']['transcript_path']:null;let _0x5c799a=!![];if(!_0x425b8d){await _0x40dd6a['vfPYh'](trackStop,_0x425b8d,![],_0x5c799a);return;}try{const _0x39b115=_0x40dd6a[_0x3ac3fe(0x1ff)](getSessionEntry,_0x425b8d);if(!_0x39b115){await _0x40dd6a['djmdh'](trackStop,_0x425b8d,!![],_0x5c799a);return;}const _0x18f6f1='https://dashboard.ranger.net/features/'+_0x39b115[_0x3ac3fe(0x1fb)],_0x2b038f=_0x40dd6a[_0x3ac3fe(0x1ef)],_0x3b6cb5=await getToken(),_0x32cc68=!_0x1d8a77;let _0x37f497=null,_0x29b4ac=null;const _0xcb11eb=_0x1d8a77&&await _0x40dd6a[_0x3ac3fe(0x1e8)](transcriptHasToken,_0x2bbe0c,_0x2b038f),_0x43b49e=await transcriptHasToken(_0x2bbe0c,_0x18f6f1);if(_0x3b6cb5)try{const _0x5b8580=await _0x40dd6a[_0x3ac3fe(0x1ff)](getFeature,_0x39b115['featureId']);_0x37f497=_0x5b8580[_0x3ac3fe(0x1f0)]??null,_0x29b4ac=_0x5b8580['currentSessionId']??null;}catch{}if(_0x40dd6a[_0x3ac3fe(0x20a)](_0x3b6cb5,_0x29b4ac))try{await concludeSession(_0x39b115[_0x3ac3fe(0x1fb)],_0x29b4ac);}catch(_0x23052b){if(_0xcb11eb){await _0x40dd6a[_0x3ac3fe(0x206)](trackStop,_0x425b8d,!![],_0x5c799a);return;}_0x5c799a=![];const _0xea39c4=_0x40dd6a['nwGOP'](_0x23052b,Error)?_0x23052b[_0x3ac3fe(0x200)]:String(_0x23052b),_0x535fd8={'decision':'block','reason':'Failed\x20to\x20conclude\x20Ranger\x20feature\x20review\x20session'+(_0x37f497?_0x3ac3fe(0x202)+_0x37f497+'\x22':'')+_0x3ac3fe(0x1f5)+_0xea39c4+'\x0a\x0aThis\x20is\x20most\x20likely\x20due\x20to\x20pending\x20scenarios\x20that\x20need\x20to\x20be\x20verified.\x20Please\x20resolve\x20the\x20issue\x20or\x20resume\x20later\x20with:\x0a\x20\x20ranger\x20resume\x0a\x0aIf\x20you\x20are\x20extremely\x20sure\x20this\x20is\x20the\x20user\x27s\x20requirement\x20and\x20want\x20to\x20skip\x20verification\x20for\x20now,\x20send\x20a\x20final\x20message\x20that\x20includes\x20the\x20feature\x20review\x20link\x20('+_0x18f6f1+')\x20and\x20the\x20token\x20`'+_0x2b038f+_0x3ac3fe(0x1e7)};console['log'](JSON[_0x3ac3fe(0x1fd)](_0x535fd8)),await trackStop(_0x425b8d,!![],_0x5c799a);return;}await trackStop(_0x425b8d,!![],_0x5c799a);return;}catch{await trackStop(_0x425b8d,!![],_0x5c799a);return;}}async function trackStop(_0x39b328,_0xbbe1b7,_0xf3c338){const _0x351fbd=_0x3259,_0x435a49={'ViUqt':function(_0x166dbe,_0x355df3){return _0x166dbe(_0x355df3);},'DSjql':_0x351fbd(0x201),'DQKKM':function(_0x2d608a,_0x21dfcf){return _0x2d608a??_0x21dfcf;}};try{const _0x3f0828=_0x435a49[_0x351fbd(0x203)](createTelemetryCollector,_0x435a49[_0x351fbd(0x20c)]);await _0x3f0828[_0x351fbd(0x207)]({'sessionId':_0x435a49[_0x351fbd(0x1ee)](_0x39b328,undefined),'hooksEnabled':_0xbbe1b7,'stopAllowed':_0xf3c338}),await _0x3f0828['trackCommandEnd'](_0x351fbd(0x1ec));}catch{}}async function transcriptHasToken(_0x1b6ced,_0x4f790e){const _0x337392=_0x3259;if(!_0x1b6ced)return![];const _0x32d5d9=await readTranscriptTail(_0x1b6ced,0x30d40);return _0x32d5d9?_0x32d5d9[_0x337392(0x20b)](_0x4f790e):![];}async function readTranscriptTail(_0x379e86,_0x1bcec7){const _0x41f37d=_0x3259,_0x345a39={'bdFMF':function(_0x4dc711,_0x17bd3e){return _0x4dc711<=_0x17bd3e;}};let _0x47b10e=null;try{_0x47b10e=await open(_0x379e86,'r');const _0x2473d3=await _0x47b10e['stat'](),_0xe0754f=Math['min'](_0x2473d3['size'],_0x1bcec7);if(_0x345a39[_0x41f37d(0x1f1)](_0xe0754f,0x0))return'';const _0x2ee9bd=Buffer['alloc'](_0xe0754f);return await _0x47b10e[_0x41f37d(0x1f4)](_0x2ee9bd,0x0,_0xe0754f,_0x2473d3['size']-_0xe0754f),_0x2ee9bd[_0x41f37d(0x204)]('utf8');}catch{return null;}finally{try{await _0x47b10e?.[_0x41f37d(0x208)]();}catch{}}}
1
+ (function(_0x252e75,_0x364b48){const _0x47202f=_0x3ee6,_0x2bb11c=_0x252e75();while(!![]){try{const _0x27cc3f=-parseInt(_0x47202f(0x11b))/0x1*(-parseInt(_0x47202f(0x10d))/0x2)+parseInt(_0x47202f(0x125))/0x3+parseInt(_0x47202f(0x11c))/0x4*(-parseInt(_0x47202f(0x122))/0x5)+-parseInt(_0x47202f(0x114))/0x6*(-parseInt(_0x47202f(0x10c))/0x7)+parseInt(_0x47202f(0x10b))/0x8+-parseInt(_0x47202f(0x10f))/0x9*(parseInt(_0x47202f(0x115))/0xa)+parseInt(_0x47202f(0x10a))/0xb*(-parseInt(_0x47202f(0x11d))/0xc);if(_0x27cc3f===_0x364b48)break;else _0x2bb11c['push'](_0x2bb11c['shift']());}catch(_0x351eec){_0x2bb11c['push'](_0x2bb11c['shift']());}}}(_0x1831,0x70b73));import{open}from'fs/promises';import{getToken}from'../utils/keychain.js';function _0x1831(){const _0x1eb04a=['featureId','sessionId','vjyZp','1211617IvpCWC','1057200nWLEZV','3332749JNRwfd','4nhkWRB','currentSessionId','50994JUbDEJ','stat','https://dashboard.ranger.net/features/','cyqvL','size','6NcWUTO','530yTRhyC','DkseO','alloc',':\x0a\x0a','gvoqv','sYbmo','170894CfoeYf','6996qXBTaC','24AKHUaS','jxVJy','name','transcript_path','string','1080afovtk','ITERX','XSZUK','1230042HCrudN'];_0x1831=function(){return _0x1eb04a;};return _0x1831();}import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x81094c){const _0x19d859=_0x3ee6,_0x2c566b={'cyqvL':function(_0x134be4,_0x24fb4b){return _0x134be4(_0x24fb4b);},'XSZUK':function(_0x2285f8,_0x569c9a){return _0x2285f8(_0x569c9a);},'gvoqv':function(_0x3551e3,_0x58393f){return _0x3551e3&&_0x58393f;},'vjyZp':function(_0x15c557,_0x197ad1,_0x5dbd42){return _0x15c557(_0x197ad1,_0x5dbd42);},'ITERX':function(_0x39e036,_0x24504a,_0x2a6ca0,_0x2cc795){return _0x39e036(_0x24504a,_0x2a6ca0,_0x2cc795);},'jxVJy':function(_0x4b53c9,_0x5eb67b){return _0x4b53c9 instanceof _0x5eb67b;},'DkseO':function(_0x29726c,_0x181e59){return _0x29726c(_0x181e59);}},_0x2e504c=await _0x2c566b[_0x19d859(0x112)](getEnabledHookContext,_0x81094c),_0x11e13=_0x2e504c?.[_0x19d859(0x108)]??null,_0x4f69d3=_0x2c566b[_0x19d859(0x124)](Boolean,_0x2e504c?.['input']?.['stop_hook_active']),_0x71b723=typeof _0x2e504c?.['input']?.['transcript_path']===_0x19d859(0x121)?_0x2e504c['input'][_0x19d859(0x120)]:null;let _0x49ad7d=!![];if(!_0x11e13){await trackStop(_0x11e13,![],_0x49ad7d);return;}try{const _0x1d514b=getSessionEntry(_0x11e13);if(!_0x1d514b){await trackStop(_0x11e13,!![],_0x49ad7d);return;}const _0x350b59=_0x19d859(0x111)+_0x1d514b['featureId'],_0x25d70f='RANGER_SKIP_VERIFICATION',_0xf69d05=await getToken(),_0x19ddad=!_0x4f69d3;let _0x22ed70=null,_0x34ed83=null;const _0x2afc74=_0x4f69d3&&await transcriptHasToken(_0x71b723,_0x25d70f),_0xa12935=await transcriptHasToken(_0x71b723,_0x350b59);if(_0xf69d05)try{const _0x12f460=await _0x2c566b[_0x19d859(0x112)](getFeature,_0x1d514b[_0x19d859(0x126)]);_0x22ed70=_0x12f460[_0x19d859(0x11f)]??null,_0x34ed83=_0x12f460[_0x19d859(0x10e)]??null;}catch{}if(_0x2c566b[_0x19d859(0x119)](_0xf69d05,_0x34ed83))try{await _0x2c566b[_0x19d859(0x109)](concludeSession,_0x1d514b[_0x19d859(0x126)],_0x34ed83);}catch(_0x582ed4){if(_0x2afc74){await _0x2c566b[_0x19d859(0x123)](trackStop,_0x11e13,!![],_0x49ad7d);return;}_0x49ad7d=![];const _0x1cc09a=_0x2c566b[_0x19d859(0x11e)](_0x582ed4,Error)?_0x582ed4['message']:_0x2c566b[_0x19d859(0x116)](String,_0x582ed4),_0x162d31={'decision':'block','reason':'Failed\x20to\x20conclude\x20Ranger\x20feature\x20review\x20session'+(_0x22ed70?'\x20for\x20\x22'+_0x22ed70+'\x22':'')+_0x19d859(0x118)+_0x1cc09a+'\x0a\x0aThis\x20is\x20most\x20likely\x20due\x20to\x20pending\x20scenarios\x20that\x20need\x20to\x20be\x20verified.\x20Please\x20resolve\x20the\x20issue\x20or\x20resume\x20later\x20with:\x0a\x20\x20ranger\x20resume\x0a\x0aIf\x20you\x20are\x20extremely\x20sure\x20this\x20is\x20the\x20user\x27s\x20requirement\x20and\x20want\x20to\x20skip\x20verification\x20for\x20now,\x20send\x20a\x20final\x20message\x20that\x20includes\x20the\x20feature\x20review\x20link\x20('+_0x350b59+')\x20and\x20the\x20token\x20`'+_0x25d70f+'`,\x20then\x20run\x20/exit\x20again.'};console['log'](JSON['stringify'](_0x162d31)),await trackStop(_0x11e13,!![],_0x49ad7d);return;}await trackStop(_0x11e13,!![],_0x49ad7d);return;}catch{await _0x2c566b[_0x19d859(0x123)](trackStop,_0x11e13,!![],_0x49ad7d);return;}}async function trackStop(_0x4972f6,_0x5f09f7,_0x27e425){const _0x26609e={'IMkpI':function(_0x5b99ce,_0x40bd71){return _0x5b99ce(_0x40bd71);}};try{const _0x3447c5=_0x26609e['IMkpI'](createTelemetryCollector,'hook:stop');await _0x3447c5['trackCommandStart']({'sessionId':_0x4972f6??undefined,'hooksEnabled':_0x5f09f7,'stopAllowed':_0x27e425}),await _0x3447c5['trackCommandEnd']('success');}catch{}}function _0x3ee6(_0x36cfaa,_0x237d4f){_0x36cfaa=_0x36cfaa-0x108;const _0x1831d5=_0x1831();let _0x3ee6cb=_0x1831d5[_0x36cfaa];return _0x3ee6cb;}async function transcriptHasToken(_0x576e30,_0x54aaca){if(!_0x576e30)return![];const _0x5f779f=await readTranscriptTail(_0x576e30,0x30d40);return _0x5f779f?_0x5f779f['includes'](_0x54aaca):![];}async function readTranscriptTail(_0x4a914f,_0x28f5df){const _0x2c001f=_0x3ee6,_0x54dfb0={'miNFT':function(_0x3c543f,_0x163a59){return _0x3c543f<=_0x163a59;},'sYbmo':function(_0x431a3e,_0xd50338){return _0x431a3e-_0xd50338;}};let _0x3a5ec9=null;try{_0x3a5ec9=await open(_0x4a914f,'r');const _0x5c9b81=await _0x3a5ec9[_0x2c001f(0x110)](),_0x412712=Math['min'](_0x5c9b81[_0x2c001f(0x113)],_0x28f5df);if(_0x54dfb0['miNFT'](_0x412712,0x0))return'';const _0x1fd62c=Buffer[_0x2c001f(0x117)](_0x412712);return await _0x3a5ec9['read'](_0x1fd62c,0x0,_0x412712,_0x54dfb0[_0x2c001f(0x11a)](_0x5c9b81['size'],_0x412712)),_0x1fd62c['toString']('utf8');}catch{return null;}finally{try{await _0x3a5ec9?.['close']();}catch{}}}
@@ -1 +1 @@
1
- (function(_0x2d7847,_0x1c1da3){var _0x391e55=_0x57fc,_0x3bdc70=_0x2d7847();while(!![]){try{var _0x1a7ab0=parseInt(_0x391e55(0xdb))/0x1*(-parseInt(_0x391e55(0xdf))/0x2)+-parseInt(_0x391e55(0xe0))/0x3+-parseInt(_0x391e55(0xe2))/0x4*(parseInt(_0x391e55(0xdc))/0x5)+parseInt(_0x391e55(0xe1))/0x6*(-parseInt(_0x391e55(0xde))/0x7)+parseInt(_0x391e55(0xd7))/0x8+parseInt(_0x391e55(0xd9))/0x9*(-parseInt(_0x391e55(0xd8))/0xa)+-parseInt(_0x391e55(0xda))/0xb*(-parseInt(_0x391e55(0xdd))/0xc);if(_0x1a7ab0===_0x1c1da3)break;else _0x3bdc70['push'](_0x3bdc70['shift']());}catch(_0x1696e0){_0x3bdc70['push'](_0x3bdc70['shift']());}}}(_0x500f,0x69d74));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';function _0x57fc(_0x413ac8,_0x1d800d){_0x413ac8=_0x413ac8-0xd7;var _0x500f62=_0x500f();var _0x57fc6a=_0x500f62[_0x413ac8];return _0x57fc6a;}function _0x500f(){var _0xa2e023=['10KmtCdK','2012778AzwpUk','28584105dJjkPV','53902LHmanG','431605ynZuCW','12irjUJf','2219ySdZUJ','14FtEBfl','1252593BLXqkK','13866mWZTOf','36UhfApH','2903456moiBKF'];_0x500f=function(){return _0xa2e023;};return _0x500f();}export{setupCi}from'./setupCi.js';
1
+ function _0x5744(_0x12fb68,_0x4ac97a){_0x12fb68=_0x12fb68-0x126;var _0x68c6e5=_0x68c6();var _0x57444e=_0x68c6e5[_0x12fb68];return _0x57444e;}(function(_0x471eaa,_0x5f03c7){var _0x23a813=_0x5744,_0x22efef=_0x471eaa();while(!![]){try{var _0x3f9ab4=parseInt(_0x23a813(0x12d))/0x1+parseInt(_0x23a813(0x12c))/0x2*(parseInt(_0x23a813(0x12b))/0x3)+-parseInt(_0x23a813(0x128))/0x4*(parseInt(_0x23a813(0x12e))/0x5)+parseInt(_0x23a813(0x127))/0x6+parseInt(_0x23a813(0x12f))/0x7+parseInt(_0x23a813(0x12a))/0x8+-parseInt(_0x23a813(0x129))/0x9*(parseInt(_0x23a813(0x126))/0xa);if(_0x3f9ab4===_0x5f03c7)break;else _0x22efef['push'](_0x22efef['shift']());}catch(_0x82a329){_0x22efef['push'](_0x22efef['shift']());}}}(_0x68c6,0xda59f));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';function _0x68c6(){var _0xf17e42=['2637dyUSbM','1746CyDmJK','1309949WGakqN','65kiaQpb','5880168anuBmM','24467210nSicyk','3915414hJzHkW','504044kgmiKx','9CQREmw','11274576INgxdf'];_0x68c6=function(){return _0xf17e42;};return _0x68c6();}export{start}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
@@ -1 +1 @@
1
- (function(_0x138d20,_0x93e35f){const _0x4537c0=_0x1137,_0x48c055=_0x138d20();while(!![]){try{const _0x5e12af=parseInt(_0x4537c0(0x75))/0x1+-parseInt(_0x4537c0(0x78))/0x2+-parseInt(_0x4537c0(0x79))/0x3+-parseInt(_0x4537c0(0x7d))/0x4*(parseInt(_0x4537c0(0x76))/0x5)+parseInt(_0x4537c0(0x77))/0x6+-parseInt(_0x4537c0(0x7a))/0x7*(parseInt(_0x4537c0(0x7c))/0x8)+-parseInt(_0x4537c0(0x74))/0x9*(-parseInt(_0x4537c0(0x70))/0xa);if(_0x5e12af===_0x93e35f)break;else _0x48c055['push'](_0x48c055['shift']());}catch(_0x2eafbf){_0x48c055['push'](_0x48c055['shift']());}}}(_0x4a7e,0x230e4));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x1137(_0x21868a,_0x22549){_0x21868a=_0x21868a-0x6f;const _0x4a7e00=_0x4a7e();let _0x113716=_0x4a7e00[_0x21868a];return _0x113716;}function _0x4a7e(){const _0x5b8103=['Login\x20failed:\x20','25370lMKCIU','isTTY','stdin','log','1692Mkgckb','166564SsiTDl','5tnCiRI','239754uLBaJh','527390sWTlcB','260862dAtAIj','63QsuzrI','message','58984oAqbWj','491540oGsVZF','\x0a✅\x20Logged\x20in\x20to\x20'];_0x4a7e=function(){return _0x5b8103;};return _0x4a7e();}import{getCurrentUser}from'./utils/userApi.js';export async function login(){const _0x54209d=_0x1137,_0x1cdc8c={'KbVPb':function(_0x902558){return _0x902558();},'OqHGb':'\x0a✅\x20API\x20key\x20stored\x20successfully'},_0x205f05=process[_0x54209d(0x72)][_0x54209d(0x71)]&&process['stdout']['isTTY'];if(!_0x205f05)throw new Error('Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.');try{const _0x2a76ec=await _0x1cdc8c['KbVPb'](runDeviceAuthFlow),_0x3d0f9c=await getCurrentUser(_0x2a76ec);_0x3d0f9c['success']?console['log'](_0x54209d(0x7e)+_0x3d0f9c['user']['organizationName']):console[_0x54209d(0x73)](_0x1cdc8c['OqHGb']);}catch(_0x1de36f){throw new Error(_0x54209d(0x6f)+(_0x1de36f instanceof Error?_0x1de36f[_0x54209d(0x7b)]:_0x1de36f));}}
1
+ (function(_0x482d46,_0x4ced17){const _0x45907d=_0x2726,_0x597796=_0x482d46();while(!![]){try{const _0x210ede=parseInt(_0x45907d(0x14b))/0x1+parseInt(_0x45907d(0x144))/0x2*(parseInt(_0x45907d(0x147))/0x3)+-parseInt(_0x45907d(0x14e))/0x4+-parseInt(_0x45907d(0x14f))/0x5+parseInt(_0x45907d(0x146))/0x6*(-parseInt(_0x45907d(0x153))/0x7)+-parseInt(_0x45907d(0x148))/0x8+parseInt(_0x45907d(0x152))/0x9;if(_0x210ede===_0x4ced17)break;else _0x597796['push'](_0x597796['shift']());}catch(_0x5d2622){_0x597796['push'](_0x597796['shift']());}}}(_0x53a8,0x4dcd2));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x2726(_0x43ac3e,_0x760290){_0x43ac3e=_0x43ac3e-0x143;const _0x53a86e=_0x53a8();let _0x272626=_0x53a86e[_0x43ac3e];return _0x272626;}export async function login(){const _0x523b35=_0x2726,_0x16c1a2={'rgFQU':'Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','JkceX':function(_0x36fa30){return _0x36fa30();},'MNckz':function(_0x2a8fcb,_0x134be3){return _0x2a8fcb(_0x134be3);},'HciWi':'\x0a✅\x20API\x20key\x20stored\x20successfully'},_0x5e7406=process['stdin'][_0x523b35(0x149)]&&process[_0x523b35(0x14d)][_0x523b35(0x149)];if(!_0x5e7406)throw new Error(_0x16c1a2[_0x523b35(0x14a)]);try{const _0x5713f8=await _0x16c1a2[_0x523b35(0x151)](runDeviceAuthFlow),_0x5c4f7c=await _0x16c1a2[_0x523b35(0x150)](getCurrentUser,_0x5713f8);_0x5c4f7c['success']?console[_0x523b35(0x14c)](_0x523b35(0x145)+_0x5c4f7c['user']['organizationName']):console['log'](_0x16c1a2['HciWi']);}catch(_0x336d10){throw new Error(_0x523b35(0x143)+(_0x336d10 instanceof Error?_0x336d10[_0x523b35(0x154)]:_0x336d10));}}function _0x53a8(){const _0x35c103=['\x0a✅\x20Logged\x20in\x20to\x20','30QUDqhR','3mAivVL','869976zMkvCS','isTTY','rgFQU','66838LjGTbR','log','stdout','2003568iGNAja','2743665jKpTEr','MNckz','JkceX','9505548vljnrn','165361RIzMEl','message','Login\x20failed:\x20','944302RtAziM'];_0x53a8=function(){return _0x35c103;};return _0x53a8();}
@@ -1 +1 @@
1
- (function(_0x45851d,_0x30a6e1){const _0x58dfdb=_0x1964,_0x58365e=_0x45851d();while(!![]){try{const _0x367f00=parseInt(_0x58dfdb(0x209))/0x1+parseInt(_0x58dfdb(0x1f7))/0x2+parseInt(_0x58dfdb(0x1e8))/0x3*(-parseInt(_0x58dfdb(0x1f0))/0x4)+-parseInt(_0x58dfdb(0x216))/0x5+-parseInt(_0x58dfdb(0x218))/0x6+parseInt(_0x58dfdb(0x207))/0x7+-parseInt(_0x58dfdb(0x1fe))/0x8*(-parseInt(_0x58dfdb(0x1f3))/0x9);if(_0x367f00===_0x30a6e1)break;else _0x58365e['push'](_0x58365e['shift']());}catch(_0x35a537){_0x58365e['push'](_0x58365e['shift']());}}}(_0x4d77,0x8d2be));function _0x4d77(){const _0x7e80d0=['NJNrf','3272334jUnHIL','wHCva','marketplace','ranger@trailhead','project','jyODZ','success','mFMgx','user','NxacX','prompt','627qmccSg','bhpIQ','⚠\x20Failed\x20to\x20enable\x20plugin:','JhCUc','ofDXt','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','pwhZA','qtEFy','20596DqIYWf','install','LqyBj','18dfzfzF','yYaSq','push','✓\x20Marketplace\x20already\x20added','1446340QkQnXj','CwmbD','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','bhMDk','jJtjr','error','Where\x20should\x20the\x20plugin\x20be\x20installed?','5371352XfnhRU','Knmai','SGRaQ','dAQRG','pluginScope','DGnxB','TPSMf','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','XxKXX','4482275slePej','add','600982RZCPsv','❌\x20Failed\x20to\x20add\x20marketplace:','✓\x20Ranger\x20skills\x20already\x20installed','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','rfVAB','log','qZnry','ANSuk','PcbrT','SKILL.md','\x0aYou\x20can\x20install\x20manually\x20with:','--scope','enable','5537735ztxuZQ'];_0x4d77=function(){return _0x7e80d0;};return _0x4d77();}function _0x1964(_0x5ea2ac,_0x292488){_0x5ea2ac=_0x5ea2ac-0x1e1;const _0x4d7765=_0x4d77();let _0x196490=_0x4d7765[_0x5ea2ac];return _0x196490;}import{join}from'path';import{existsSync}from'fs';import _0x17840c from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x2cedc9){const _0x3a9392=_0x1964,_0x4cd3b8={'NxacX':function(_0x18eb5d,_0x5db0fc){return _0x18eb5d(_0x5db0fc);},'dAQRG':_0x3a9392(0x21b),'jgMFp':function(_0x184ea1){return _0x184ea1();},'TPSMf':'.claude','jyODZ':_0x3a9392(0x1ed),'bhpIQ':_0x3a9392(0x1fd),'ITbWI':'User\x20(available\x20in\x20all\x20your\x20projects)','mFMgx':_0x3a9392(0x1e5),'pwhZA':'Project\x20(shared\x20with\x20team\x20via\x20git)','qtEFy':function(_0x3a4e82,_0x47d947){return _0x3a4e82(_0x47d947);},'VoKXw':'trailhead','dajra':_0x3a9392(0x1f6),'dkNIa':'plugin','cmtYC':_0x3a9392(0x21a),'tzyGz':_0x3a9392(0x208),'ANSuk':_0x3a9392(0x20a),'wHCva':_0x3a9392(0x213),'Knmai':'\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','XxKXX':_0x3a9392(0x1f1),'NJNrf':_0x3a9392(0x214),'AxCQB':'❌\x20Failed\x20to\x20install\x20plugin:','yYaSq':_0x3a9392(0x215),'rfVAB':_0x3a9392(0x1ea),'jJtjr':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x59f242=await _0x4cd3b8[_0x3a9392(0x1e6)](isPluginInstalled,_0x4cd3b8['dAQRG']);if(_0x59f242)return console[_0x3a9392(0x20e)](_0x3a9392(0x1f9)),![];const _0x2ee8d4=existsSync(join(_0x4cd3b8['jgMFp'](getProjectRoot),_0x4cd3b8[_0x3a9392(0x204)]));let _0x34d111;if(_0x2cedc9)_0x34d111=_0x2cedc9;else{if(_0x2ee8d4)_0x34d111=_0x3a9392(0x1e1);else{console[_0x3a9392(0x20e)](_0x4cd3b8[_0x3a9392(0x1e2)]);const _0x2bc83f=await _0x17840c[_0x3a9392(0x1e7)]([{'type':'list','name':_0x3a9392(0x202),'message':_0x4cd3b8[_0x3a9392(0x1e9)],'choices':[{'name':_0x4cd3b8['ITbWI'],'value':_0x4cd3b8[_0x3a9392(0x1e4)]},{'name':_0x4cd3b8[_0x3a9392(0x1ee)],'value':_0x3a9392(0x1e1)}],'default':_0x4cd3b8['mFMgx']}]);_0x34d111=_0x2bc83f[_0x3a9392(0x202)];}}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x34d111+'\x20level)...\x0a');const _0x3d67e5=await _0x4cd3b8[_0x3a9392(0x1ef)](isMarketplaceAdded,_0x4cd3b8['VoKXw']);let _0x247b14=_0x3d67e5;if(_0x3d67e5)console[_0x3a9392(0x20e)](_0x4cd3b8['dajra']);else{const _0x82740=await runClaudeCommand([_0x4cd3b8['dkNIa'],_0x4cd3b8['cmtYC'],_0x4cd3b8['tzyGz'],'ranger-testing/trailhead']);!_0x82740[_0x3a9392(0x1e3)]?(console[_0x3a9392(0x1fc)](_0x4cd3b8[_0x3a9392(0x210)],_0x82740[_0x3a9392(0x1fc)]),console['log'](_0x4cd3b8[_0x3a9392(0x219)]),console['log'](_0x4cd3b8[_0x3a9392(0x1ff)]),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x34d111)):_0x247b14=!![];}if(_0x247b14){const _0x1343dd=await _0x4cd3b8['qtEFy'](runClaudeCommand,[_0x4cd3b8['dkNIa'],_0x4cd3b8[_0x3a9392(0x206)],_0x3a9392(0x21b),_0x4cd3b8[_0x3a9392(0x217)],_0x34d111]);if(!_0x1343dd[_0x3a9392(0x1e3)])console['error'](_0x4cd3b8['AxCQB'],_0x1343dd['error']),console['log'](_0x4cd3b8['wHCva']),console['log'](_0x3a9392(0x20c)+_0x34d111);else{console['log'](_0x3a9392(0x205));const _0x1de7f5=[_0x4cd3b8['dkNIa'],_0x4cd3b8[_0x3a9392(0x1f4)],_0x4cd3b8[_0x3a9392(0x201)]];_0x34d111===_0x3a9392(0x1e1)&&_0x1de7f5[_0x3a9392(0x1f5)](_0x4cd3b8[_0x3a9392(0x217)],'project');const _0xa1744=await runClaudeCommand(_0x1de7f5,{'captureOutput':!![]}),_0x1513d2=_0xa1744['output']?.['includes']('already\x20enabled');!_0xa1744[_0x3a9392(0x1e3)]&&!_0x1513d2?console[_0x3a9392(0x1fc)](_0x4cd3b8[_0x3a9392(0x20d)],_0xa1744[_0x3a9392(0x1fc)]):console[_0x3a9392(0x20e)](_0x4cd3b8[_0x3a9392(0x1fb)]);}}return!![];}export async function ensureClaudeSkills(_0x2784d1){const _0x11eab9=_0x1964,_0x1a02c2={'bhMDk':function(_0x4fecc9,_0x37df19,_0x11c2a1,_0x1059c1){return _0x4fecc9(_0x37df19,_0x11c2a1,_0x1059c1);},'XNXjE':_0x11eab9(0x1e5),'PcbrT':_0x11eab9(0x212),'CwmbD':'ranger','LqyBj':_0x11eab9(0x20b),'DGnxB':'.claude','qZnry':function(_0x21ce8a,_0x546390){return _0x21ce8a(_0x546390);},'ofDXt':'confirm','JhCUc':'wantsSkillup','SGRaQ':function(_0x4079f9,_0x2d2aac){return _0x4079f9(_0x2d2aac);}},_0x54e3c7=existsSync(_0x1a02c2[_0x11eab9(0x1fa)](join,getSkillsDir(_0x1a02c2['XNXjE']),'ranger',_0x1a02c2[_0x11eab9(0x211)])),_0x26388b=existsSync(join(getSkillsDir(_0x11eab9(0x1e1)),_0x1a02c2[_0x11eab9(0x1f8)],'SKILL.md'));if(_0x54e3c7||_0x26388b)return console['log'](_0x1a02c2[_0x11eab9(0x1f2)]),![];const _0x459650=existsSync(join(getProjectRoot(),_0x1a02c2[_0x11eab9(0x203)]));let _0x591ef6=!![];if(_0x2784d1)await skillup({'autoInstall':_0x2784d1,'suppressUsage':!![]});else{if(_0x459650)await _0x1a02c2[_0x11eab9(0x20f)](skillup,{'autoInstall':_0x11eab9(0x1e1),'suppressUsage':!![]});else{const _0x3d0f0a=await _0x17840c[_0x11eab9(0x1e7)]([{'type':_0x1a02c2[_0x11eab9(0x1ec)],'name':_0x1a02c2[_0x11eab9(0x1eb)],'message':'Would\x20you\x20like\x20to\x20install\x20skills?','default':!![]}]);_0x591ef6=_0x3d0f0a['wantsSkillup'],_0x591ef6&&await _0x1a02c2[_0x11eab9(0x200)](skillup,{'suppressUsage':!![]});}}return _0x591ef6;}
1
+ (function(_0x2cc9c0,_0x4374b9){const _0x1c9d95=_0x1012,_0x5d2542=_0x2cc9c0();while(!![]){try{const _0x35128e=-parseInt(_0x1c9d95(0x16e))/0x1+parseInt(_0x1c9d95(0x163))/0x2*(-parseInt(_0x1c9d95(0x162))/0x3)+-parseInt(_0x1c9d95(0x17f))/0x4+-parseInt(_0x1c9d95(0x166))/0x5+-parseInt(_0x1c9d95(0x176))/0x6*(parseInt(_0x1c9d95(0x178))/0x7)+parseInt(_0x1c9d95(0x150))/0x8+parseInt(_0x1c9d95(0x175))/0x9;if(_0x35128e===_0x4374b9)break;else _0x5d2542['push'](_0x5d2542['shift']());}catch(_0xfcd934){_0x5d2542['push'](_0x5d2542['shift']());}}}(_0x48e7,0x8327a));import{join}from'path';import{existsSync}from'fs';import _0x297e2c from'inquirer';import{skillup}from'../skillup.js';function _0x48e7(){const _0x1e7228=['gQMDS','error','success','list','--scope','✓\x20Marketplace\x20already\x20added','project','❌\x20Failed\x20to\x20add\x20marketplace:','wantsSkillup','DdUJq','enable','output','jTXBW','515046saqNRu','8yhwLvU','ucLdn','marketplace','2541420DmBykw','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','plugin','\x0aYou\x20can\x20install\x20manually\x20with:','UisQA','uZgZZ','RBmjD','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','229378teclHX','LGsRi','\x20level)...\x0a','YaIhK','log','BHINN','SKILL.md','18923058RIKbcf','1356yRdWSS','User\x20(available\x20in\x20all\x20your\x20projects)','2534ehjsZp','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','Project\x20(shared\x20with\x20team\x20via\x20git)','pluginScope','prompt','✓\x20Ranger\x20skills\x20already\x20installed','ranger@trailhead','567548KnMwUt','sWlBc','661896kZbpfB','ranger-testing/trailhead','user','JEWMq','add'];_0x48e7=function(){return _0x1e7228;};return _0x48e7();}import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x1012(_0x21ab13,_0x24b0f6){_0x21ab13=_0x21ab13-0x14f;const _0x48e717=_0x48e7();let _0x101282=_0x48e717[_0x21ab13];return _0x101282;}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x441d72){const _0x31ece4=_0x1012,_0x2b2eab={'LvecI':function(_0x224735,_0x4d95ef){return _0x224735(_0x4d95ef);},'sWlBc':'ranger@trailhead','BcytQ':_0x31ece4(0x16d),'DKpQl':function(_0x32367d,_0x4d21a3){return _0x32367d(_0x4d21a3);},'FjZXw':_0x31ece4(0x158),'xOMbC':'Where\x20should\x20the\x20plugin\x20be\x20installed?','VoGDo':_0x31ece4(0x154),'lAGTY':_0x31ece4(0x151),'GwgYD':_0x31ece4(0x15c),'QREPx':_0x31ece4(0x179),'uZgZZ':_0x31ece4(0x168),'LGsRi':'❌\x20Failed\x20to\x20install\x20plugin:','QYlNi':'✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','gQMDS':_0x31ece4(0x15b),'DdUJq':_0x31ece4(0x159),'FSUTX':function(_0x96bc55,_0xfc35bc,_0x4e0c0f){return _0x96bc55(_0xfc35bc,_0x4e0c0f);}},_0x3ef6ee=await _0x2b2eab['LvecI'](isPluginInstalled,_0x2b2eab[_0x31ece4(0x14f)]);if(_0x3ef6ee)return console[_0x31ece4(0x172)](_0x2b2eab['BcytQ']),![];const _0x54e65e=_0x2b2eab['DKpQl'](existsSync,join(getProjectRoot(),'.claude'));let _0x507106;if(_0x441d72)_0x507106=_0x441d72;else{if(_0x54e65e)_0x507106='project';else{console[_0x31ece4(0x172)]('\x0a📦\x20Claude\x20Code\x20Plugin\x0a');const _0x54e16e=await _0x297e2c[_0x31ece4(0x17c)]([{'type':_0x2b2eab['FjZXw'],'name':_0x31ece4(0x17b),'message':_0x2b2eab['xOMbC'],'choices':[{'name':_0x31ece4(0x177),'value':_0x31ece4(0x152)},{'name':_0x31ece4(0x17a),'value':'project'}],'default':_0x31ece4(0x152)}]);_0x507106=_0x54e16e['pluginScope'];}}console[_0x31ece4(0x172)]('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x507106+_0x31ece4(0x170));const _0x13ac11=await _0x2b2eab['LvecI'](isMarketplaceAdded,'trailhead');let _0x26d748=_0x13ac11;if(_0x13ac11)console['log'](_0x31ece4(0x15a));else{const _0x40e110=await runClaudeCommand(['plugin',_0x31ece4(0x165),_0x2b2eab['VoGDo'],_0x2b2eab['lAGTY']]);!_0x40e110['success']?(console[_0x31ece4(0x156)](_0x2b2eab['GwgYD'],_0x40e110[_0x31ece4(0x156)]),console['log'](_0x31ece4(0x169)),console['log'](_0x2b2eab['QREPx']),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x507106)):_0x26d748=!![];}if(_0x26d748){const _0x164158=await _0x2b2eab['LvecI'](runClaudeCommand,[_0x2b2eab[_0x31ece4(0x16b)],'install',_0x2b2eab[_0x31ece4(0x14f)],_0x31ece4(0x159),_0x507106]);if(!_0x164158['success'])console['error'](_0x2b2eab[_0x31ece4(0x16f)],_0x164158[_0x31ece4(0x156)]),console['log'](_0x31ece4(0x169)),console[_0x31ece4(0x172)](_0x31ece4(0x167)+_0x507106);else{console[_0x31ece4(0x172)](_0x2b2eab['QYlNi']);const _0x503967=[_0x2b2eab[_0x31ece4(0x16b)],_0x31ece4(0x15f),_0x31ece4(0x17e)];_0x507106===_0x2b2eab[_0x31ece4(0x155)]&&_0x503967['push'](_0x2b2eab[_0x31ece4(0x15e)],_0x2b2eab[_0x31ece4(0x155)]);const _0x37035d=await _0x2b2eab['FSUTX'](runClaudeCommand,_0x503967,{'captureOutput':!![]}),_0x1af0d4=_0x37035d[_0x31ece4(0x160)]?.['includes']('already\x20enabled');!_0x37035d[_0x31ece4(0x157)]&&!_0x1af0d4?console['error']('⚠\x20Failed\x20to\x20enable\x20plugin:',_0x37035d['error']):console['log']('✓\x20Claude\x20Code\x20plugin\x20enabled');}}return!![];}export async function ensureClaudeSkills(_0xa87158){const _0x1f1a9a=_0x1012,_0x1de50f={'RBmjD':function(_0x305e2d,_0x4cb3e5,_0x54dd69,_0x35d2e6){return _0x305e2d(_0x4cb3e5,_0x54dd69,_0x35d2e6);},'ucLdn':function(_0x4844e0,_0x1d6070){return _0x4844e0(_0x1d6070);},'BHINN':_0x1f1a9a(0x152),'ObooE':function(_0x7e24e9,_0x1cb5e6,_0x5ebd0c,_0xeaea8d){return _0x7e24e9(_0x1cb5e6,_0x5ebd0c,_0xeaea8d);},'jTXBW':'project','UisQA':'ranger','Xfxrz':_0x1f1a9a(0x174),'JEWMq':function(_0x3e4ebb){return _0x3e4ebb();},'bKYJE':'.claude','YaIhK':function(_0x27e20f,_0x10c67){return _0x27e20f(_0x10c67);},'XiISG':'Would\x20you\x20like\x20to\x20install\x20skills?','peiHQ':function(_0x2c7515,_0x1aa42e){return _0x2c7515(_0x1aa42e);}},_0x4c6770=existsSync(_0x1de50f[_0x1f1a9a(0x16c)](join,_0x1de50f['ucLdn'](getSkillsDir,_0x1de50f[_0x1f1a9a(0x173)]),'ranger',_0x1f1a9a(0x174))),_0x29f6d3=_0x1de50f[_0x1f1a9a(0x164)](existsSync,_0x1de50f['ObooE'](join,_0x1de50f['ucLdn'](getSkillsDir,_0x1de50f[_0x1f1a9a(0x161)]),_0x1de50f[_0x1f1a9a(0x16a)],_0x1de50f['Xfxrz']));if(_0x4c6770||_0x29f6d3)return console[_0x1f1a9a(0x172)](_0x1f1a9a(0x17d)),![];const _0x4c5c20=_0x1de50f[_0x1f1a9a(0x164)](existsSync,join(_0x1de50f[_0x1f1a9a(0x153)](getProjectRoot),_0x1de50f['bKYJE']));let _0x517231=!![];if(_0xa87158)await skillup({'autoInstall':_0xa87158,'suppressUsage':!![]});else{if(_0x4c5c20)await _0x1de50f[_0x1f1a9a(0x171)](skillup,{'autoInstall':_0x1f1a9a(0x15b),'suppressUsage':!![]});else{const _0x40e1a7=await _0x297e2c[_0x1f1a9a(0x17c)]([{'type':'confirm','name':_0x1f1a9a(0x15d),'message':_0x1de50f['XiISG'],'default':!![]}]);_0x517231=_0x40e1a7[_0x1f1a9a(0x15d)],_0x517231&&await _0x1de50f['peiHQ'](skillup,{'suppressUsage':!![]});}}return _0x517231;}
@@ -1 +1 @@
1
- function _0x17d6(){const _0x44d54d=['user','$schema','project','25990JvVCuZ','1274000WiWwAV','tqrKW','gPznm','lBzPJ','opencode.json','1639162DacEZC','isArray','ZUDFD','5xFYQnk','6620750FDgzPB','✓\x20OpenCode\x20plugin\x20already\x20configured','error','Failed\x20to\x20read\x20opencode.json','plugin','@ranger-testing/opencode-plugin','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','72MEjscE','28bHYfmk','log','1884870OiCGJZ','9528yCXdgh','list','1114326bQaEAQ'];_0x17d6=function(){return _0x44d54d;};return _0x17d6();}(function(_0x82f3ed,_0x19a5ec){const _0x483f9c=_0x3baf,_0x529100=_0x82f3ed();while(!![]){try{const _0x510cf3=parseInt(_0x483f9c(0x17d))/0x1*(-parseInt(_0x483f9c(0x174))/0x2)+-parseInt(_0x483f9c(0x173))/0x3*(parseInt(_0x483f9c(0x177))/0x4)+parseInt(_0x483f9c(0x16b))/0x5*(-parseInt(_0x483f9c(0x179))/0x6)+-parseInt(_0x483f9c(0x168))/0x7+parseInt(_0x483f9c(0x17e))/0x8+parseInt(_0x483f9c(0x176))/0x9+parseInt(_0x483f9c(0x16c))/0xa;if(_0x510cf3===_0x19a5ec)break;else _0x529100['push'](_0x529100['shift']());}catch(_0x1d8ecc){_0x529100['push'](_0x529100['shift']());}}}(_0x17d6,0x2e590));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';function _0x3baf(_0x12b68b,_0xa6615b){_0x12b68b=_0x12b68b-0x166;const _0x17d6ea=_0x17d6();let _0x3baf60=_0x17d6ea[_0x12b68b];return _0x3baf60;}import _0x1501c9 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x5064e4){const _0x147d91=_0x3baf,_0x5a39cc={'tqrKW':function(_0x358770,_0xeb679b,_0x20bf38){return _0x358770(_0xeb679b,_0x20bf38);},'lBzPJ':function(_0x8f3ec0,_0x5431be){return _0x8f3ec0(_0x5431be);},'gPznm':'project','ojrVH':_0x147d91(0x167),'ZUDFD':'\x0a📦\x20OpenCode\x20Plugin\x0a','mhYBj':_0x147d91(0x16f),'IPTOM':function(_0x24f81c,_0x375b8c,_0x2ce078){return _0x24f81c(_0x375b8c,_0x2ce078);},'IQUDP':function(_0x2e65a9,_0x3fac5c,_0x511c5b){return _0x2e65a9(_0x3fac5c,_0x511c5b);}},_0x3097ee=existsSync(_0x5a39cc[_0x147d91(0x17f)](join,_0x5a39cc[_0x147d91(0x166)](getOpencodeConfigDir,_0x5a39cc[_0x147d91(0x180)]),_0x5a39cc['ojrVH']));let _0xb0d40b;if(_0x5064e4)_0xb0d40b=_0x5064e4;else{if(_0x3097ee)_0xb0d40b=_0x147d91(0x17c);else{console[_0x147d91(0x175)](_0x5a39cc[_0x147d91(0x16a)]);const _0x3ceff5=await _0x1501c9['prompt']([{'type':_0x147d91(0x178),'name':'pluginScope','message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':_0x147d91(0x17a)},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x5a39cc['gPznm']}],'default':_0x147d91(0x17a)}]);_0xb0d40b=_0x3ceff5['pluginScope'];}}const _0x2b194f=_0x5a39cc[_0x147d91(0x17f)](join,_0x5a39cc[_0x147d91(0x166)](getOpencodeConfigDir,_0xb0d40b),'opencode.json'),_0xb3fddf=_0x147d91(0x171),_0x2a7537='https://opencode.ai/config.json';let _0x3bc3fa={};if(_0x5a39cc[_0x147d91(0x166)](existsSync,_0x2b194f))try{const _0x2bae30=await readFile(_0x2b194f,'utf-8');_0x3bc3fa=JSON['parse'](_0x2bae30);}catch(_0x550bb5){return console[_0x147d91(0x16e)](_0x147d91(0x172)),{'configured':![],'scope':_0xb0d40b,'error':_0x5a39cc['mhYBj'],'details':_0x550bb5};}const _0x2fdd28=Array[_0x147d91(0x169)](_0x3bc3fa[_0x147d91(0x170)])?_0x3bc3fa[_0x147d91(0x170)]:[];if(_0x2fdd28['includes'](_0xb3fddf))return console[_0x147d91(0x175)](_0x147d91(0x16d)),{'configured':![],'scope':_0xb0d40b};return _0x3bc3fa[_0x147d91(0x17b)]=_0x3bc3fa[_0x147d91(0x17b)]||_0x2a7537,_0x3bc3fa['plugin']=[..._0x2fdd28,_0xb3fddf],await _0x5a39cc['IPTOM'](mkdir,_0x5a39cc[_0x147d91(0x166)](getOpencodeConfigDir,_0xb0d40b),{'recursive':!![]}),await _0x5a39cc['IQUDP'](writeFile,_0x2b194f,JSON['stringify'](_0x3bc3fa,null,0x2)+'\x0a'),console['log']('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0xb0d40b};}
1
+ (function(_0x48dc3e,_0x23ebb2){const _0x57e330=_0x43b6,_0x4fc979=_0x48dc3e();while(!![]){try{const _0x39c379=-parseInt(_0x57e330(0x1ed))/0x1+-parseInt(_0x57e330(0x200))/0x2+-parseInt(_0x57e330(0x1fa))/0x3+parseInt(_0x57e330(0x1f2))/0x4+-parseInt(_0x57e330(0x1e7))/0x5*(parseInt(_0x57e330(0x1e6))/0x6)+-parseInt(_0x57e330(0x1fc))/0x7+-parseInt(_0x57e330(0x1f3))/0x8*(-parseInt(_0x57e330(0x1e5))/0x9);if(_0x39c379===_0x23ebb2)break;else _0x4fc979['push'](_0x4fc979['shift']());}catch(_0x5b0ebe){_0x4fc979['push'](_0x4fc979['shift']());}}}(_0x4c67,0x63e32));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x40745f from'inquirer';function _0x4c67(){const _0x5cfdd0=['OOmSK','stringify','utf-8','pluginScope','160962rmpCaC','User\x20(available\x20in\x20all\x20your\x20projects)','qsldv','plugin','parse','395404QfjxRe','8lyRhgm','project','fniOJ','kzukI','opencode.json','$schema','gPDPp','1258548zbkHSk','Failed\x20to\x20read\x20opencode.json','214270fKGzpv','DLGPW','log','prompt','1530828qLUAdd','user','20861325TRkgzG','5808IoRQLJ','3260sSioAU','XSIQI'];_0x4c67=function(){return _0x5cfdd0;};return _0x4c67();}import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';function _0x43b6(_0x34f7a9,_0x4bbdc9){_0x34f7a9=_0x34f7a9-0x1e4;const _0x4c6753=_0x4c67();let _0x43b655=_0x4c6753[_0x34f7a9];return _0x43b655;}export async function ensureOpencodePluginConfig(_0x339bf7){const _0x3e5295=_0x43b6,_0x52950f={'ccxFp':function(_0x3d5c51,_0x36fa37){return _0x3d5c51(_0x36fa37);},'vAklD':'project','OOmSK':_0x3e5295(0x1f7),'FziTE':'list','UphBj':'Where\x20should\x20the\x20plugin\x20be\x20installed?','beaEV':_0x3e5295(0x1ee),'DLGPW':'Project\x20(shared\x20with\x20team\x20via\x20git)','XSIQI':'user','fniOJ':function(_0x528059,_0x3bd74c,_0x16ad18){return _0x528059(_0x3bd74c,_0x16ad18);},'gPDPp':'@ranger-testing/opencode-plugin','qsldv':'https://opencode.ai/config.json','gkoHz':function(_0x1ba0f5,_0x2862e7){return _0x1ba0f5(_0x2862e7);},'ICELS':function(_0x50dac6,_0x2423d7,_0x4c1630){return _0x50dac6(_0x2423d7,_0x4c1630);},'kzukI':_0x3e5295(0x1eb),'EzIpx':'⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','mkcEE':'✓\x20OpenCode\x20plugin\x20configured'},_0x4724b5=_0x52950f['ccxFp'](existsSync,join(getOpencodeConfigDir(_0x52950f['vAklD']),_0x52950f[_0x3e5295(0x1e9)]));let _0x151e2a;if(_0x339bf7)_0x151e2a=_0x339bf7;else{if(_0x4724b5)_0x151e2a='project';else{console[_0x3e5295(0x1fe)]('\x0a📦\x20OpenCode\x20Plugin\x0a');const _0x2d755c=await _0x40745f[_0x3e5295(0x1ff)]([{'type':_0x52950f['FziTE'],'name':'pluginScope','message':_0x52950f['UphBj'],'choices':[{'name':_0x52950f['beaEV'],'value':_0x3e5295(0x1e4)},{'name':_0x52950f[_0x3e5295(0x1fd)],'value':_0x3e5295(0x1f4)}],'default':_0x52950f[_0x3e5295(0x1e8)]}]);_0x151e2a=_0x2d755c[_0x3e5295(0x1ec)];}}const _0x2f5e07=_0x52950f['fniOJ'](join,getOpencodeConfigDir(_0x151e2a),_0x3e5295(0x1f7)),_0x532c0e=_0x52950f[_0x3e5295(0x1f9)],_0x243187=_0x52950f[_0x3e5295(0x1ef)];let _0x1006c8={};if(_0x52950f['gkoHz'](existsSync,_0x2f5e07))try{const _0x4f150b=await _0x52950f['ICELS'](readFile,_0x2f5e07,_0x52950f[_0x3e5295(0x1f6)]);_0x1006c8=JSON[_0x3e5295(0x1f1)](_0x4f150b);}catch(_0x29bdfb){return console['error'](_0x52950f['EzIpx']),{'configured':![],'scope':_0x151e2a,'error':_0x3e5295(0x1fb),'details':_0x29bdfb};}const _0x8a838e=Array['isArray'](_0x1006c8[_0x3e5295(0x1f0)])?_0x1006c8[_0x3e5295(0x1f0)]:[];if(_0x8a838e['includes'](_0x532c0e))return console['log']('✓\x20OpenCode\x20plugin\x20already\x20configured'),{'configured':![],'scope':_0x151e2a};return _0x1006c8[_0x3e5295(0x1f8)]=_0x1006c8[_0x3e5295(0x1f8)]||_0x243187,_0x1006c8[_0x3e5295(0x1f0)]=[..._0x8a838e,_0x532c0e],await _0x52950f[_0x3e5295(0x1f5)](mkdir,_0x52950f['gkoHz'](getOpencodeConfigDir,_0x151e2a),{'recursive':!![]}),await writeFile(_0x2f5e07,JSON[_0x3e5295(0x1ea)](_0x1006c8,null,0x2)+'\x0a'),console['log'](_0x52950f['mkcEE']),{'configured':!![],'scope':_0x151e2a};}
@@ -1 +1 @@
1
- (function(_0xe5d66d,_0x1838f1){const _0x121cac=_0x4834,_0x7f65c3=_0xe5d66d();while(!![]){try{const _0x44a41e=parseInt(_0x121cac(0x106))/0x1*(-parseInt(_0x121cac(0x12b))/0x2)+-parseInt(_0x121cac(0xed))/0x3*(parseInt(_0x121cac(0x10c))/0x4)+parseInt(_0x121cac(0x119))/0x5*(parseInt(_0x121cac(0x126))/0x6)+-parseInt(_0x121cac(0x10f))/0x7*(-parseInt(_0x121cac(0x124))/0x8)+parseInt(_0x121cac(0x109))/0x9+-parseInt(_0x121cac(0xff))/0xa*(parseInt(_0x121cac(0xf6))/0xb)+parseInt(_0x121cac(0x111))/0xc*(parseInt(_0x121cac(0x10b))/0xd);if(_0x44a41e===_0x1838f1)break;else _0x7f65c3['push'](_0x7f65c3['shift']());}catch(_0x45f05a){_0x7f65c3['push'](_0x7f65c3['shift']());}}}(_0x2a09,0xc3eae));function _0x2a09(){const _0x2473ed=['join','success','chromium','36856IjGRIo','name','2219028OFjQdH','byXSk','BuQTG','auth.json','trackPhaseStart','2mCXVdA','iJjMj','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','3gmopIS','project','wKKDi','oJYjw','auth','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','log','sessions','add','12050984wltqlK','baseUrl','WKIJb','Multiple\x20CI\x20profiles\x20found:\x20','\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a','trailhead','settings.json','message','Auto-detected\x20CI\x20profile:\x20','10tVOOgU','IRotv','plugin','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','profile_activate','Grwml','89402ZEEGKt','skills','dir_setup','10402767PCsAWE','OKwSv','22416446TLQvlR','6174584bVMJMC','HZFUd','trackPhaseEnd','427lDNGJC','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','12rvQrML','cOSDm','PGqHE','skipChromium','✓\x20Active\x20profile:\x20','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','✓\x20Marketplace\x20already\x20added','isDirectory','5GtXkdl','length','path','TQQvm','error','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','YMUhQ','uwirc'];_0x2a09=function(){return _0x2473ed;};return _0x2a09();}import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x4fe280){const _0x219613=_0x4834,_0x3b539f={'rdqou':function(_0x41e7b9){return _0x41e7b9();},'uwirc':function(_0x3cedd4,_0x1181ca,_0x5b1cd0){return _0x3cedd4(_0x1181ca,_0x5b1cd0);},'iJjMj':function(_0x9d4b3d,_0x12f5d9){return _0x9d4b3d(_0x12f5d9);},'sUuea':_0x219613(0x116),'TozBt':function(_0x1cb543,_0x2eb37e){return _0x1cb543+_0x2eb37e;},'JwOrI':_0x219613(0xf2)},_0x441ddb=_0x3b539f['rdqou'](getRangerDir),_0x2807ef=join(_0x441ddb,'ci');if(_0x4fe280){const _0x121516=_0x3b539f[_0x219613(0x120)](join,_0x2807ef,_0x4fe280);return{'name':_0x4fe280,'path':_0x121516};}if(!_0x3b539f[_0x219613(0xeb)](existsSync,_0x2807ef))throw new Error('No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a'+_0x3b539f['sUuea']);const _0x3118a2=await readdir(_0x2807ef,{'withFileTypes':!![]}),_0x1c73a0=_0x3118a2['filter'](_0x1edecc=>_0x1edecc[_0x219613(0x118)]())['map'](_0x11a535=>_0x11a535[_0x219613(0x125)]);if(_0x1c73a0[_0x219613(0x11a)]===0x0)throw new Error(_0x3b539f['TozBt'](_0x3b539f['JwOrI'],'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.'));if(_0x1c73a0['length']===0x1){const _0x4947d9=_0x1c73a0[0x0];return console[_0x219613(0xf3)](_0x219613(0xfe)+_0x4947d9),{'name':_0x4947d9,'path':join(_0x2807ef,_0x4947d9)};}throw new Error(_0x219613(0xf9)+_0x1c73a0[_0x219613(0x121)](',\x20')+_0x219613(0x103));}async function installPluginNonInteractive(){const _0x228e94=_0x4834,_0x29a2c8={'oRYjf':function(_0x8e2da2,_0x29daec){return _0x8e2da2(_0x29daec);},'YVbfq':'ranger@trailhead','BuQTG':function(_0x4feb70,_0x330b60){return _0x4feb70(_0x330b60);},'gFFrB':'marketplace','WKIJb':_0x228e94(0xf5),'cOSDm':'Failed\x20to\x20add\x20marketplace:','byXSk':_0x228e94(0x11e),'wKKDi':_0x228e94(0x101)},_0x585bfd=await _0x29a2c8['oRYjf'](isPluginInstalled,_0x29a2c8['YVbfq']);if(_0x585bfd)return console[_0x228e94(0xf3)](_0x228e94(0x102)),![];console['log'](_0x228e94(0x110));const _0x19f5f6=await _0x29a2c8[_0x228e94(0x128)](isMarketplaceAdded,_0x228e94(0xfb));let _0x49e5e9=_0x19f5f6;if(_0x19f5f6)console[_0x228e94(0xf3)](_0x228e94(0x117));else{const _0x64208d=await runClaudeCommand([_0x228e94(0x101),_0x29a2c8['gFFrB'],_0x29a2c8[_0x228e94(0xf8)],'ranger-testing/trailhead']);!_0x64208d[_0x228e94(0x122)]?(console['error'](_0x29a2c8[_0x228e94(0x112)],_0x64208d['error']),console[_0x228e94(0xf3)](_0x29a2c8[_0x228e94(0x127)])):_0x49e5e9=!![];}if(_0x49e5e9){const _0x3ac7fc=await _0x29a2c8['BuQTG'](runClaudeCommand,[_0x29a2c8[_0x228e94(0xef)],'install',_0x29a2c8['YVbfq'],'--scope',_0x228e94(0xee)]);!_0x3ac7fc['success']?(console[_0x228e94(0x11d)]('Failed\x20to\x20install\x20plugin:',_0x3ac7fc['error']),console['log']('You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project')):console['log']('✓\x20Claude\x20Code\x20plugin\x20installed');}return!![];}function _0x4834(_0x3499d9,_0x13d30d){_0x3499d9=_0x3499d9-0xeb;const _0x2a0902=_0x2a09();let _0x4834c9=_0x2a0902[_0x3499d9];return _0x4834c9;}export async function setupCi(_0x4345bc,_0x26dbc2,_0x570bf4){const _0x406c91=_0x4834,_0x20deea={'HZFUd':_0x406c91(0xf1),'eJJDC':function(_0x7a6a6d){return _0x7a6a6d();},'oJYjw':function(_0x1c5058,_0x2e5486,_0x4c304c){return _0x1c5058(_0x2e5486,_0x4c304c);},'Grwml':_0x406c91(0xf4),'lDsAl':_0x406c91(0x108),'OKwSv':_0x406c91(0x104),'cqhRE':function(_0x192414,_0x393923){return _0x192414(_0x393923);},'TQQvm':function(_0x175579,_0x59d2d5,_0x17d08e){return _0x175579(_0x59d2d5,_0x17d08e);},'YMUhQ':function(_0x57c3ad,_0x39b292,_0x45dcea){return _0x57c3ad(_0x39b292,_0x45dcea);},'UNGAQ':_0x406c91(0xfc),'PGqHE':function(_0x479546,_0x45f2ad){return _0x479546(_0x45f2ad);},'HLVXL':_0x406c91(0xec),'IRotv':'\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','kfesn':'skills'};console['log']('\x0a🔧\x20Ranger\x20CI\x20Setup\x0a'),_0x570bf4?.['trackPhaseStart']('auth'),await authenticate(_0x4345bc),_0x570bf4?.['trackPhaseEnd'](_0x20deea[_0x406c91(0x10d)]),_0x570bf4?.['trackPhaseStart']('dir_setup');const {path:_0x55e4f3,installed:_0x28496d}=await _0x20deea['eJJDC'](ensureRangerDir);await writeRangerGitignore(_0x55e4f3);const _0x1cf640=_0x20deea[_0x406c91(0xf0)](join,_0x55e4f3,_0x20deea[_0x406c91(0x105)]);!existsSync(_0x1cf640)&&await mkdir(_0x1cf640,{'recursive':!![]});_0x570bf4?.['trackPhaseEnd'](_0x20deea['lDsAl'],{'installed':_0x28496d}),_0x570bf4?.['trackPhaseStart'](_0x406c91(0x123));let _0x5064be=![];_0x26dbc2?.[_0x406c91(0x114)]?console[_0x406c91(0xf3)]('✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)'):_0x5064be=await ensureChromium();_0x570bf4?.['trackPhaseEnd']('chromium',{'installed':_0x5064be,'skipped':!!_0x26dbc2?.[_0x406c91(0x114)]}),_0x570bf4?.[_0x406c91(0x12a)](_0x20deea['OKwSv']);const _0x58bcc3=await _0x20deea['cqhRE'](findCiProfile,_0x26dbc2?.['profile']);let _0x1a6dfd=![];_0x26dbc2?.[_0x406c91(0xf7)]&&(await _0x20deea[_0x406c91(0x11c)](mkdir,_0x58bcc3['path'],{'recursive':!![]}),await _0x20deea[_0x406c91(0x11f)](saveSettings,_0x58bcc3['name'],{'baseUrl':_0x26dbc2[_0x406c91(0xf7)],'headless':!![]}),console['log']('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x26dbc2['baseUrl']),_0x1a6dfd=!![]);const _0x557ae8=join(_0x58bcc3[_0x406c91(0x11b)],_0x20deea['UNGAQ']);if(!existsSync(_0x557ae8)&&!_0x1a6dfd)throw new Error('CI\x20profile\x20\x22'+_0x58bcc3[_0x406c91(0x125)]+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x6440cb=_0x20deea['TQQvm'](join,_0x58bcc3['path'],_0x406c91(0x129)),_0x19d469=_0x20deea[_0x406c91(0x11f)](join,_0x58bcc3['path'],'auth.json.enc'),_0x189214=existsSync(_0x6440cb),_0x4d957f=_0x20deea[_0x406c91(0x113)](existsSync,_0x19d469);if(_0x4d957f)try{const _0x3ec87e=await getToken();if(!_0x3ec87e)throw new Error('No\x20API\x20token\x20available\x20for\x20decryption');const _0x411c7a=await readFile(_0x19d469);decrypt(_0x411c7a,_0x3ec87e),console['log'](_0x20deea['HLVXL']);}catch(_0x17e107){const _0x4de6f1=_0x17e107 instanceof Error?_0x17e107[_0x406c91(0xfd)]:String(_0x17e107);throw new Error('Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22'+_0x58bcc3[_0x406c91(0x125)]+'\x22:\x20'+_0x4de6f1);}else _0x189214?console['log']('✓\x20Auth\x20state\x20found'):console[_0x406c91(0xf3)](_0x20deea[_0x406c91(0x100)]);await writeActiveProfileName(_0x58bcc3['name']),console['log'](_0x406c91(0x115)+_0x58bcc3[_0x406c91(0x125)]),_0x570bf4?.['trackPhaseEnd'](_0x20deea[_0x406c91(0x10a)],{'profileName':_0x58bcc3['name'],'hasAuth':_0x189214,'hasEncryptedAuth':_0x4d957f,'createdSettings':_0x1a6dfd}),_0x570bf4?.['trackPhaseStart'](_0x406c91(0x101));const _0x2ccbfc=await installPluginNonInteractive();_0x570bf4?.[_0x406c91(0x10e)](_0x406c91(0x101),{'installed':_0x2ccbfc}),_0x570bf4?.['trackPhaseStart'](_0x20deea['kfesn']),await skillup({'autoInstall':'project'}),_0x570bf4?.[_0x406c91(0x10e)](_0x406c91(0x107)),console[_0x406c91(0xf3)](_0x406c91(0xfa));}
1
+ (function(_0x264c3a,_0x4af580){const _0x417f87=_0x511b,_0x12b7a9=_0x264c3a();while(!![]){try{const _0x4df15c=parseInt(_0x417f87(0xcb))/0x1*(parseInt(_0x417f87(0xc6))/0x2)+parseInt(_0x417f87(0x9a))/0x3*(-parseInt(_0x417f87(0xd0))/0x4)+parseInt(_0x417f87(0xcc))/0x5+parseInt(_0x417f87(0xca))/0x6+-parseInt(_0x417f87(0x8e))/0x7+-parseInt(_0x417f87(0xae))/0x8+parseInt(_0x417f87(0xc1))/0x9;if(_0x4df15c===_0x4af580)break;else _0x12b7a9['push'](_0x12b7a9['shift']());}catch(_0x4f56f8){_0x12b7a9['push'](_0x12b7a9['shift']());}}}(_0x2297,0x9cc8d));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';function _0x511b(_0x3b5013,_0x581091){_0x3b5013=_0x3b5013-0x89;const _0x229778=_0x2297();let _0x511bc9=_0x229778[_0x3b5013];return _0x511bc9;}import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';function _0x2297(){const _0x5f30f0=['--scope','profile_activate','auth.json','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','zbnRp','Auto-detected\x20CI\x20profile:\x20','14825484FYAcDa','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','skipChromium','log','ranger-testing/trailhead','82022AHgpIu','skills','JjlZW','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','6360420jOFEIh','5vwOQPN','4556905SAsrWr','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','success','rvLIV','12BaBhkw','name','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','DwvAS','hdSmb','add','6387661xnwSat','qlDBT','vexZU','mojPV','gAXkZ','dir_setup','\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a','✓\x20Marketplace\x20already\x20added','ranger@trailhead','Kxtmx','auth.json.enc','ullmL','1160787xZidoG','isDirectory','sessions','RdbkU','chromium','error','✓\x20Claude\x20Code\x20plugin\x20installed','knrzJ','MiFjm','baseUrl','trackPhaseStart','vLlSy','message','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','install','✓\x20Created\x20profile\x20settings:\x20baseUrl=','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','trackPhaseEnd','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','8866264CWEMwA','GHuKp','kxmwk','jJoLX','project','length','QOLqo','plugin','yqpuv','fsuiY','path','\x22:\x20','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.'];_0x2297=function(){return _0x5f30f0;};return _0x2297();}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(_0x8640af){const _0x3db194=_0x511b,_0x5f1260={'knrzJ':function(_0x229f24){return _0x229f24();},'vLlSy':function(_0x31d415,_0x46d1d6,_0x3effab){return _0x31d415(_0x46d1d6,_0x3effab);},'MiFjm':function(_0x4dc95f,_0x2c4731){return _0x4dc95f(_0x2c4731);},'mojPV':function(_0xa154d,_0x2dc5ab){return _0xa154d+_0x2dc5ab;},'UGHVl':'No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','ullmL':'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','gAXkZ':function(_0x286d5f,_0x38fe10){return _0x286d5f===_0x38fe10;},'kxmwk':_0x3db194(0xa7)},_0x5532f9=_0x5f1260[_0x3db194(0xa1)](getRangerDir),_0x4a20c4=_0x5f1260[_0x3db194(0xa5)](join,_0x5532f9,'ci');if(_0x8640af){const _0x297563=_0x5f1260['vLlSy'](join,_0x4a20c4,_0x8640af);return{'name':_0x8640af,'path':_0x297563};}if(!_0x5f1260[_0x3db194(0xa2)](existsSync,_0x4a20c4))throw new Error(_0x5f1260[_0x3db194(0x91)](_0x5f1260['UGHVl'],_0x5f1260[_0x3db194(0x99)]));const _0x35cee2=await readdir(_0x4a20c4,{'withFileTypes':!![]}),_0x1b055c=_0x35cee2['filter'](_0x84f6c6=>_0x84f6c6[_0x3db194(0x9b)]())['map'](_0x3c7167=>_0x3c7167[_0x3db194(0x89)]);if(_0x5f1260[_0x3db194(0x92)](_0x1b055c['length'],0x0))throw new Error(_0x5f1260[_0x3db194(0x91)](_0x5f1260[_0x3db194(0xb0)],_0x3db194(0xba)));if(_0x1b055c[_0x3db194(0xb3)]===0x1){const _0x4797be=_0x1b055c[0x0];return console[_0x3db194(0xc4)](_0x3db194(0xc0)+_0x4797be),{'name':_0x4797be,'path':join(_0x4a20c4,_0x4797be)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x1b055c['join'](',\x20')+_0x3db194(0xad));}async function installPluginNonInteractive(){const _0x43df49=_0x511b,_0x5aa390={'DwvAS':_0x43df49(0x96),'ZPjXD':function(_0x3aa518,_0x182753){return _0x3aa518(_0x182753);},'Uyhwt':'trailhead','qlDBT':'plugin','GkWST':'marketplace','QJWxz':_0x43df49(0x8d),'urRSE':_0x43df49(0xac),'Kxtmx':_0x43df49(0xbb),'nggzI':'project','jJoLX':'Failed\x20to\x20install\x20plugin:','pmQPD':_0x43df49(0xc9),'fsuiY':_0x43df49(0xa0)},_0x41ad0e=await isPluginInstalled(_0x5aa390[_0x43df49(0x8b)]);if(_0x41ad0e)return console[_0x43df49(0xc4)](_0x43df49(0xaa)),![];console[_0x43df49(0xc4)]('Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...');const _0x26a53f=await _0x5aa390['ZPjXD'](isMarketplaceAdded,_0x5aa390['Uyhwt']);let _0x4ec0cd=_0x26a53f;if(_0x26a53f)console[_0x43df49(0xc4)](_0x43df49(0x95));else{const _0x43969f=await _0x5aa390['ZPjXD'](runClaudeCommand,[_0x5aa390[_0x43df49(0x8f)],_0x5aa390['GkWST'],_0x5aa390['QJWxz'],_0x43df49(0xc5)]);!_0x43969f[_0x43df49(0xce)]?(console[_0x43df49(0x9f)]('Failed\x20to\x20add\x20marketplace:',_0x43969f[_0x43df49(0x9f)]),console['log'](_0x5aa390['urRSE'])):_0x4ec0cd=!![];}if(_0x4ec0cd){const _0x45b980=await runClaudeCommand([_0x5aa390[_0x43df49(0x8f)],_0x43df49(0xa8),_0x43df49(0x96),_0x5aa390[_0x43df49(0x97)],_0x5aa390['nggzI']]);!_0x45b980[_0x43df49(0xce)]?(console[_0x43df49(0x9f)](_0x5aa390[_0x43df49(0xb1)],_0x45b980['error']),console[_0x43df49(0xc4)](_0x5aa390['pmQPD'])):console['log'](_0x5aa390[_0x43df49(0xb7)]);}return!![];}export async function setupCi(_0x59fea4,_0x4c8c84,_0x14b74a){const _0x22215b=_0x511b,_0x438a7c={'RdbkU':'auth','yqpuv':_0x22215b(0x93),'hdSmb':function(_0x1cc999,_0x466899){return _0x1cc999(_0x466899);},'qkfDz':function(_0x3abf54,_0x45016a,_0x11ff74){return _0x3abf54(_0x45016a,_0x11ff74);},'mYVIY':_0x22215b(0x9c),'rvLIV':_0x22215b(0x9e),'wQWGZ':_0x22215b(0x8a),'GHuKp':function(_0x46e215,_0x143e4c,_0x401db6){return _0x46e215(_0x143e4c,_0x401db6);},'nAXwL':_0x22215b(0x98),'QOLqo':function(_0x14cb18,_0x300e16){return _0x14cb18(_0x300e16);},'JjlZW':'✓\x20Auth\x20state\x20found','zbnRp':function(_0x251a23,_0xf8acdc){return _0x251a23(_0xf8acdc);},'vexZU':_0x22215b(0xb5),'QfLaL':function(_0x54f19d){return _0x54f19d();}};console['log']('\x0a🔧\x20Ranger\x20CI\x20Setup\x0a'),_0x14b74a?.[_0x22215b(0xa4)](_0x438a7c['RdbkU']),await authenticate(_0x59fea4),_0x14b74a?.[_0x22215b(0xab)](_0x438a7c[_0x22215b(0x9d)]),_0x14b74a?.[_0x22215b(0xa4)](_0x438a7c[_0x22215b(0xb6)]);const {path:_0x38eea5,installed:_0x3f1e86}=await ensureRangerDir();await _0x438a7c['hdSmb'](writeRangerGitignore,_0x38eea5);const _0xa368d4=_0x438a7c['qkfDz'](join,_0x38eea5,_0x438a7c['mYVIY']);!_0x438a7c[_0x22215b(0x8c)](existsSync,_0xa368d4)&&await _0x438a7c['qkfDz'](mkdir,_0xa368d4,{'recursive':!![]});_0x14b74a?.['trackPhaseEnd'](_0x438a7c[_0x22215b(0xb6)],{'installed':_0x3f1e86}),_0x14b74a?.['trackPhaseStart'](_0x438a7c[_0x22215b(0xcf)]);let _0x88ab59=![];_0x4c8c84?.['skipChromium']?console[_0x22215b(0xc4)](_0x438a7c['wQWGZ']):_0x88ab59=await ensureChromium();_0x14b74a?.['trackPhaseEnd']('chromium',{'installed':_0x88ab59,'skipped':!!_0x4c8c84?.[_0x22215b(0xc3)]}),_0x14b74a?.['trackPhaseStart'](_0x22215b(0xbc));const _0x125cf5=await findCiProfile(_0x4c8c84?.['profile']);let _0x5e85f0=![];_0x4c8c84?.['baseUrl']&&(await mkdir(_0x125cf5['path'],{'recursive':!![]}),await saveSettings(_0x125cf5['name'],{'baseUrl':_0x4c8c84['baseUrl'],'headless':!![]}),console[_0x22215b(0xc4)](_0x22215b(0xa9)+_0x4c8c84[_0x22215b(0xa3)]),_0x5e85f0=!![]);const _0x94c631=_0x438a7c[_0x22215b(0xaf)](join,_0x125cf5[_0x22215b(0xb8)],'settings.json');if(!existsSync(_0x94c631)&&!_0x5e85f0)throw new Error('CI\x20profile\x20\x22'+_0x125cf5[_0x22215b(0x89)]+_0x22215b(0xcd));const _0x5d0527=join(_0x125cf5['path'],_0x22215b(0xbd)),_0x1362d9=join(_0x125cf5['path'],_0x438a7c['nAXwL']),_0x34ac21=_0x438a7c[_0x22215b(0xb4)](existsSync,_0x5d0527),_0x441d84=existsSync(_0x1362d9);if(_0x441d84)try{const _0xcc20ea=await getToken();if(!_0xcc20ea)throw new Error('No\x20API\x20token\x20available\x20for\x20decryption');const _0x459be0=await readFile(_0x1362d9);decrypt(_0x459be0,_0xcc20ea),console['log'](_0x22215b(0xbe));}catch(_0x3ca709){const _0x3ff335=_0x3ca709 instanceof Error?_0x3ca709[_0x22215b(0xa6)]:String(_0x3ca709);throw new Error(_0x22215b(0xc2)+_0x125cf5['name']+_0x22215b(0xb9)+_0x3ff335);}else _0x34ac21?console['log'](_0x438a7c[_0x22215b(0xc8)]):console[_0x22215b(0xc4)]('\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)');await _0x438a7c[_0x22215b(0xbf)](writeActiveProfileName,_0x125cf5[_0x22215b(0x89)]),console[_0x22215b(0xc4)]('✓\x20Active\x20profile:\x20'+_0x125cf5['name']),_0x14b74a?.['trackPhaseEnd'](_0x22215b(0xbc),{'profileName':_0x125cf5[_0x22215b(0x89)],'hasAuth':_0x34ac21,'hasEncryptedAuth':_0x441d84,'createdSettings':_0x5e85f0}),_0x14b74a?.['trackPhaseStart'](_0x438a7c['vexZU']);const _0x288417=await _0x438a7c['QfLaL'](installPluginNonInteractive);_0x14b74a?.[_0x22215b(0xab)](_0x438a7c[_0x22215b(0x90)],{'installed':_0x288417}),_0x14b74a?.['trackPhaseStart'](_0x22215b(0xc7)),await skillup({'autoInstall':_0x22215b(0xb2)}),_0x14b74a?.['trackPhaseEnd'](_0x22215b(0xc7)),console[_0x22215b(0xc4)](_0x22215b(0x94));}
@@ -1 +1 @@
1
- (function(_0x13039d,_0x41ca16){const _0x31102e=_0x22dd,_0x31ce93=_0x13039d();while(!![]){try{const _0x3a07ab=parseInt(_0x31102e(0x98))/0x1*(-parseInt(_0x31102e(0xaf))/0x2)+-parseInt(_0x31102e(0xba))/0x3*(parseInt(_0x31102e(0x96))/0x4)+-parseInt(_0x31102e(0xa2))/0x5+-parseInt(_0x31102e(0x9e))/0x6+-parseInt(_0x31102e(0xa4))/0x7*(parseInt(_0x31102e(0x90))/0x8)+-parseInt(_0x31102e(0xb2))/0x9*(-parseInt(_0x31102e(0x99))/0xa)+parseInt(_0x31102e(0x9d))/0xb;if(_0x3a07ab===_0x41ca16)break;else _0x31ce93['push'](_0x31ce93['shift']());}catch(_0x42e93e){_0x31ce93['push'](_0x31ce93['shift']());}}}(_0x435b,0x2fd70));import{basename}from'path';import _0x298ec3 from'inquirer';function _0x22dd(_0x59b6f4,_0x3ffd59){_0x59b6f4=_0x59b6f4-0x8f;const _0x435bcf=_0x435b();let _0x22dd89=_0x435bcf[_0x59b6f4];return _0x22dd89;}import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';function _0x435b(){const _0xfca628=['/skills/','30HKBRRE','To\x20get\x20started:','ranger','\x0a📦\x20Installing\x20skills...\x0a','YUiWw','15448GZBcsR','autoInstall','user','message','log','prompt','64228mMecEA','atfTz','11655hkWoHI','1565110zgLSXL','\x20successfully!\x0a','FHMuy','/.claude/skills/','6199908pSPJAo','310398PszpDy','This\x20project\x20only\x20(','\x20--opencode','nbTAm','67185yuDlPU','RPwCO','931sIQiBe','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','list','\x0a✅\x20Installed\x20','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','isTTY','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','opencode','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!','stdout','34uwWNhN','vlITa','suppressUsage','18NQvNCU','fJqDS','AGpgu','uGpWt','\x20\x203.\x20Run:\x20ranger\x20skillup','installLevel','XSCfF'];_0x435b=function(){return _0xfca628;};return _0x435b();}export async function skillup(_0x2b5ce6={}){const _0x434504=_0x22dd,_0x331216={'FHMuy':_0x434504(0xaa),'nbTAm':'claude','YUiWw':function(_0x432598){return _0x432598();},'thkaI':'❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','RUzCF':_0x434504(0xbb),'fJqDS':function(_0x45913a,_0x207ef4){return _0x45913a===_0x207ef4;},'uGpWt':_0x434504(0xab),'qEzbK':_0x434504(0xa0),'vlITa':function(_0x4a82b3,_0x488fb3){return _0x4a82b3(_0x488fb3);},'XSCfF':function(_0x13d0d2,_0x2a0523){return _0x13d0d2===_0x2a0523;},'RjyXr':_0x434504(0xa6),'uWTpW':'Where\x20should\x20skills\x20be\x20installed?','RPwCO':'project','FifFF':function(_0x577853,_0x5f4f09,_0x140d92){return _0x577853(_0x5f4f09,_0x140d92);},'svsAK':_0x434504(0xbc),'arTsG':_0x434504(0xa5),'mARVH':function(_0xdfb4b1,_0x2296e9){return _0xdfb4b1>_0x2296e9;},'ooUKz':'project-level','AGpgu':function(_0x38efb8,_0x390fbf){return _0x38efb8>_0x390fbf;},'oQTcy':'To\x20use:','tidir':_0x434504(0xa8),'itchb':_0x434504(0xad),'atfTz':'\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a'};console[_0x434504(0x94)](_0x331216[_0x434504(0x9b)]);const _0x30ea44=_0x2b5ce6['platform']??_0x331216[_0x434504(0xa1)],_0x5557b1=await _0x331216[_0x434504(0x8f)](getToken);if(!_0x5557b1){console['log'](_0x331216['thkaI']),console[_0x434504(0x94)](_0x331216['RUzCF']),console['log'](_0x434504(0xac)),console[_0x434504(0x94)]('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x331216[_0x434504(0xb3)](_0x30ea44,_0x331216['uGpWt'])?_0x331216['qEzbK']:'')+'\x20<your-api-token>'),console[_0x434504(0x94)](_0x434504(0xb6)+(_0x30ea44==='opencode'?'\x20--opencode':'')+'\x0a');return;}console[_0x434504(0x94)]('✓\x20Found\x20API\x20token');const _0x3e3132=getProjectRoot(),_0x212774=_0x331216[_0x434504(0xb0)](basename,_0x3e3132),_0x2a69e8=_0x30ea44===_0x331216[_0x434504(0xb5)]?getOpencodeConfigDir('user')+_0x434504(0xb9):getClaudeConfigDir()+_0x434504(0xb9),_0xda07e4=_0x331216[_0x434504(0xb8)](_0x30ea44,'opencode')?_0x3e3132+'/.opencode/skills/':_0x3e3132+_0x434504(0x9c),_0x1eb9f4=process['stdin']['isTTY']&&process[_0x434504(0xae)][_0x434504(0xa9)];let _0x19e349;if(_0x2b5ce6[_0x434504(0x91)])_0x19e349=_0x2b5ce6['autoInstall'];else{if(_0x1eb9f4){const _0x5c39e1=await _0x298ec3[_0x434504(0x95)]([{'type':_0x331216['RjyXr'],'name':'installLevel','message':_0x331216['uWTpW'],'choices':[{'name':'All\x20projects\x20('+_0x2a69e8+')','value':_0x434504(0x92)},{'name':_0x434504(0x9f)+_0xda07e4+')','value':_0x331216['RPwCO']}]}]);_0x19e349=_0x5c39e1[_0x434504(0xb7)];}else _0x19e349=_0x331216[_0x434504(0xa3)],console['log']('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0xda07e4+')');}let _0x22908a=0x0;const _0x561d06=_0x331216['YUiWw'](getCurrentVersion);console['log'](_0x434504(0xbd));try{const _0x46a74b=await _0x331216['FifFF'](installSkill,_0x331216['svsAK'],{'cliVersion':_0x561d06,'level':_0x19e349,'platform':_0x30ea44});_0x46a74b&&_0x22908a++;}catch(_0xcf4b0b){console['warn'](_0x331216['arTsG'],_0xcf4b0b instanceof Error?_0xcf4b0b[_0x434504(0x93)]:_0xcf4b0b);}if(_0x331216['mARVH'](_0x22908a,0x0)){const _0x48fcf5=_0x19e349==='user'?'user-level':_0x331216['ooUKz'];console[_0x434504(0x94)](_0x434504(0xa7)+_0x22908a+'\x20'+_0x48fcf5+'\x20skill'+(_0x331216[_0x434504(0xb4)](_0x22908a,0x1)?'s':'')+_0x434504(0x9a)),!_0x2b5ce6[_0x434504(0xb1)]&&(console['log'](_0x331216['oQTcy']),_0x30ea44==='opencode'?console[_0x434504(0x94)](_0x331216['tidir']):console['log'](_0x331216['itchb']));}else console['log'](_0x331216[_0x434504(0x97)]);}
1
+ (function(_0x49bc51,_0x516715){const _0x6a7e55=_0x3487,_0x3c8eac=_0x49bc51();while(!![]){try{const _0x977329=-parseInt(_0x6a7e55(0x131))/0x1+parseInt(_0x6a7e55(0x143))/0x2+parseInt(_0x6a7e55(0x13d))/0x3+parseInt(_0x6a7e55(0x119))/0x4*(-parseInt(_0x6a7e55(0x117))/0x5)+parseInt(_0x6a7e55(0x120))/0x6*(-parseInt(_0x6a7e55(0x11e))/0x7)+-parseInt(_0x6a7e55(0x128))/0x8*(-parseInt(_0x6a7e55(0x12b))/0x9)+parseInt(_0x6a7e55(0x127))/0xa;if(_0x977329===_0x516715)break;else _0x3c8eac['push'](_0x3c8eac['shift']());}catch(_0x4fb627){_0x3c8eac['push'](_0x3c8eac['shift']());}}}(_0x465a,0x3199e));import{basename}from'path';import _0x40b0f1 from'inquirer';function _0x465a(){const _0x50ae69=['BHEYI','warn','524835izOHMZ','autoInstall','8rMscRL','QTvFf','ranger','\x0a📦\x20Installing\x20skills...\x0a','This\x20project\x20only\x20(','1535597Plydwy','xhelp','6uYjnIc','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','/skills/','hLDkC','\x0a✅\x20Installed\x20','QHLdj','3032860PVGuAS','6552YeUDTD','\x20\x202.\x20Run:\x20ranger\x20setup','QtqVW','3321tEhjvx','isTTY','opencode','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','message','345395KbTQXZ','installLevel','pQKyB','project','\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⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a','suppressUsage','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','3|1|5|4|0|2','user-level','log','stdin','369768AVmMNC','sGXGp','platform','tzxIr','\x20successfully!\x0a','xoNhd','498226uqdDDX','user','\x20--opencode','yfVyy','\x20\x203.\x20Run:\x20ranger\x20skillup','aveBK','pUKxX'];_0x465a=function(){return _0x50ae69;};return _0x465a();}import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';function _0x3487(_0x1036f8,_0x5bfd66){_0x1036f8=_0x1036f8-0x112;const _0x465ae2=_0x465a();let _0x3487b4=_0x465ae2[_0x1036f8];return _0x3487b4;}import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x2f1ce0={}){const _0x1cf2f1=_0x3487,_0x2726ed={'QtqVW':_0x1cf2f1(0x139),'BHEYI':_0x1cf2f1(0x12d),'pUKxX':_0x1cf2f1(0x145),'xhelp':'To\x20get\x20started:','sGXGp':_0x1cf2f1(0x138),'QHLdj':function(_0x1c4603,_0x47e26b){return _0x1c4603===_0x47e26b;},'PpLWA':function(_0x59dbc9){return _0x59dbc9();},'qgOpQ':'Where\x20should\x20skills\x20be\x20installed?','hLDkC':_0x1cf2f1(0x144),'xoNhd':_0x1cf2f1(0x134),'pQKyB':_0x1cf2f1(0x11c),'QTvFf':_0x1cf2f1(0x11b),'NkMwn':function(_0x1c7512,_0x41fb02){return _0x1c7512 instanceof _0x41fb02;},'yfVyy':function(_0x299157,_0x2b3d44){return _0x299157===_0x2b3d44;},'tzxIr':'project-level','lliwf':function(_0x4797fd,_0x175c7a){return _0x4797fd>_0x175c7a;},'aveBK':_0x1cf2f1(0x121),'dwlXm':_0x1cf2f1(0x135)};console['log'](_0x1cf2f1(0x12e));const _0x2db63d=_0x2f1ce0[_0x1cf2f1(0x13f)]??'claude',_0x2c794d=await getToken();if(!_0x2c794d){const _0x5e24ab=_0x2726ed[_0x1cf2f1(0x12a)]['split']('|');let _0x21569b=0x0;while(!![]){switch(_0x5e24ab[_0x21569b++]){case'0':console['log'](_0x1cf2f1(0x112)+(_0x2db63d===_0x2726ed[_0x1cf2f1(0x115)]?_0x2726ed['pUKxX']:'')+'\x0a');continue;case'1':console['log'](_0x2726ed[_0x1cf2f1(0x11f)]);continue;case'2':return;case'3':console['log'](_0x2726ed[_0x1cf2f1(0x13e)]);continue;case'4':console[_0x1cf2f1(0x13b)](_0x1cf2f1(0x129)+(_0x2db63d==='opencode'?_0x2726ed[_0x1cf2f1(0x114)]:'')+'\x20<your-api-token>');continue;case'5':console[_0x1cf2f1(0x13b)](_0x1cf2f1(0x12f));continue;}break;}}console['log']('✓\x20Found\x20API\x20token');const _0x5ec400=getProjectRoot(),_0x12bedc=basename(_0x5ec400),_0x169113=_0x2726ed['QHLdj'](_0x2db63d,'opencode')?getOpencodeConfigDir('user')+_0x1cf2f1(0x123):_0x2726ed['PpLWA'](getClaudeConfigDir)+_0x1cf2f1(0x123),_0x303327=_0x2db63d===_0x2726ed['BHEYI']?_0x5ec400+'/.opencode/skills/':_0x5ec400+'/.claude/skills/',_0x2500bb=process[_0x1cf2f1(0x13c)][_0x1cf2f1(0x12c)]&&process['stdout']['isTTY'];let _0x3b8a83;if(_0x2f1ce0[_0x1cf2f1(0x118)])_0x3b8a83=_0x2f1ce0[_0x1cf2f1(0x118)];else{if(_0x2500bb){const _0x1074e1=await _0x40b0f1['prompt']([{'type':'list','name':'installLevel','message':_0x2726ed['qgOpQ'],'choices':[{'name':'All\x20projects\x20('+_0x169113+')','value':_0x2726ed[_0x1cf2f1(0x124)]},{'name':_0x1cf2f1(0x11d)+_0x303327+')','value':_0x1cf2f1(0x134)}]}]);_0x3b8a83=_0x1074e1[_0x1cf2f1(0x132)];}else _0x3b8a83=_0x2726ed[_0x1cf2f1(0x142)],console['log']('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x303327+')');}let _0xd53004=0x0;const _0x4d8294=_0x2726ed['PpLWA'](getCurrentVersion);console[_0x1cf2f1(0x13b)](_0x2726ed[_0x1cf2f1(0x133)]);try{const _0x19245a=await installSkill(_0x2726ed[_0x1cf2f1(0x11a)],{'cliVersion':_0x4d8294,'level':_0x3b8a83,'platform':_0x2db63d});_0x19245a&&_0xd53004++;}catch(_0x56b5de){console[_0x1cf2f1(0x116)](_0x1cf2f1(0x122),_0x2726ed['NkMwn'](_0x56b5de,Error)?_0x56b5de[_0x1cf2f1(0x130)]:_0x56b5de);}if(_0xd53004>0x0){const _0x28d4d9=_0x2726ed[_0x1cf2f1(0x146)](_0x3b8a83,'user')?_0x1cf2f1(0x13a):_0x2726ed[_0x1cf2f1(0x140)];console[_0x1cf2f1(0x13b)](_0x1cf2f1(0x125)+_0xd53004+'\x20'+_0x28d4d9+'\x20skill'+(_0x2726ed['lliwf'](_0xd53004,0x1)?'s':'')+_0x1cf2f1(0x141)),!_0x2f1ce0[_0x1cf2f1(0x137)]&&(console[_0x1cf2f1(0x13b)]('To\x20use:'),_0x2726ed[_0x1cf2f1(0x126)](_0x2db63d,'opencode')?console[_0x1cf2f1(0x13b)](_0x2726ed[_0x1cf2f1(0x113)]):console['log'](_0x2726ed['dwlXm']));}else console[_0x1cf2f1(0x13b)](_0x1cf2f1(0x136));}
@@ -1 +1 @@
1
- (function(_0x46a26f,_0xa22e1){const _0x3d42b6=_0x4d63,_0x165284=_0x46a26f();while(!![]){try{const _0x16f69b=-parseInt(_0x3d42b6(0x16c))/0x1+parseInt(_0x3d42b6(0x189))/0x2+parseInt(_0x3d42b6(0x15f))/0x3*(parseInt(_0x3d42b6(0x162))/0x4)+-parseInt(_0x3d42b6(0x179))/0x5+-parseInt(_0x3d42b6(0x1a6))/0x6*(-parseInt(_0x3d42b6(0x170))/0x7)+-parseInt(_0x3d42b6(0x166))/0x8*(-parseInt(_0x3d42b6(0x1a5))/0x9)+parseInt(_0x3d42b6(0x150))/0xa;if(_0x16f69b===_0xa22e1)break;else _0x165284['push'](_0x165284['shift']());}catch(_0x3539e9){_0x165284['push'](_0x165284['shift']());}}}(_0x34cf,0x8bdb8));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x2ff730 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,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';function _0x4d63(_0x3b2c23,_0x255782){_0x3b2c23=_0x3b2c23-0x13d;const _0x34cf12=_0x34cf();let _0x4d6304=_0x34cf12[_0x3b2c23];return _0x4d6304;}import{installSkill}from'./utils/skills.js';function _0x34cf(){const _0x2bf8b5=['nMyQk','env','trackPhaseStart','✓\x20.ranger/\x20directory\x20already\x20exists','ranger\x20profile\x20add\x20local','skills','You\x20can\x20install\x20it\x20manually\x20by\x20running:','1600110RPRArj','10884mivHWm','\x0a⚠\x20Skipping\x20Chromium\x20installation.','MJcyg','ranger','npx','LcLLl','papcv','method','allowInsecureLocalhost','skipped','Umkio','\x0a❌\x20Failed\x20to\x20install\x20Chromium:','ZuXhV','and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','opencode','skipChromium','\x20install\x20chromium','scope','success','AWxZL','url','622180BZYSsS','git_check','ready','prompt','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','zQhtP','✓\x20Playwright\x20Chromium\x20browser\x20found','nJbLk','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','PPfKx','laLcY','install','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','hWFmE','organizationName','645618xVqAuO','uuLTn','⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','8xdGIkW','inherit','YaiWF','kpMcy','16FEXmgW','\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','uHhLi','yNdto','JiJWa','23277hBaHYA','Authentication\x20failed:\x20','\x20now?','confirm','812rmFsmg','kSMxD','stdout','ZWoEH','yVBGg','close','Cccvw','WMEhz','aAVDl','3651180umULEE','yOtII','✓\x20Exported\x20credentials\x20for\x20CI','Installation\x20failed\x20with\x20exit\x20code\x20','log','ImhHm','win32','epEBF','vCVTl','local','trackPhaseEnd','isTTY','chromium','error','erBax','version','535470nNqOlL','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','Ziksu','hJrRS','ipPzm','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','Mtugv','/ranger:enable','\x20(fallback\x20version)','FqTwr','plugin','DCdVo','The\x20required\x20version\x20(','VhSnA','profile','stdin','device_auth','auth','message','ZrhGx','✓\x20Local\x20profile\x20already\x20exists'];_0x34cf=function(){return _0x2bf8b5;};return _0x34cf();}const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2',bold=_0x6db77=>'\x1b[1m'+_0x6db77+'\x1b[0m';function getPlaywrightVersion(){const _0x3e4e0a=_0x4d63,_0x3df0eb={'Ziksu':function(_0x5b0bd2,_0x5471f6){return _0x5b0bd2(_0x5471f6);}};try{const _0x84a50=require['resolve']('playwright/package.json'),_0x1988c2=_0x3df0eb[_0x3e4e0a(0x18b)](require,_0x84a50);return _0x1988c2[_0x3e4e0a(0x188)];}catch{return null;}}function installChromiumBinary(_0x2196e2){const _0x4d0f56=_0x4d63,_0x5793dc={'VhSnA':function(_0x56ef55,_0x6e3ea7){return _0x56ef55===_0x6e3ea7;},'kpMcy':function(_0x59aff1){return _0x59aff1();},'MIoDM':_0x4d0f56(0x15b),'WjZvs':_0x4d0f56(0x163),'uHhLi':_0x4d0f56(0x17f)};return new Promise((_0x1e3e23,_0x2eaf9b)=>{const _0x300896=_0x4d0f56,_0x3483c5=['playwright@'+_0x2196e2,_0x5793dc['MIoDM'],_0x300896(0x185)],_0x159f70=spawn(_0x300896(0x13f),_0x3483c5,{'stdio':_0x5793dc['WjZvs'],'shell':process['platform']===_0x5793dc[_0x300896(0x169)]});_0x159f70['on'](_0x300896(0x175),_0x294d36=>{const _0x107eaa=_0x300896;_0x5793dc[_0x107eaa(0x196)](_0x294d36,0x0)?_0x5793dc[_0x107eaa(0x165)](_0x1e3e23):_0x2eaf9b(new Error(_0x107eaa(0x17c)+_0x294d36));}),_0x159f70['on']('error',_0x3602cf=>{_0x2eaf9b(_0x3602cf);});});}export async function authenticate(_0x3a45b3){const _0x691194=_0x4d63,_0x38b1bd={'MJcyg':function(_0x3ff457){return _0x3ff457();},'CnaJi':function(_0x5b240e,_0x412aa9){return _0x5b240e(_0x412aa9);},'FOWFN':function(_0x4797b8,_0x3a0a20){return _0x4797b8 instanceof _0x3a0a20;},'vCVTl':function(_0x470ea7,_0x452bf4){return _0x470ea7(_0x452bf4);},'uuLTn':'Validating\x20API\x20token...','HgiEG':function(_0x10f9e4,_0x3f6432){return _0x10f9e4(_0x3f6432);},'yOtII':function(_0x157c77,_0x171eca){return _0x157c77(_0x171eca);},'yVBGg':'✓\x20Stored\x20credentials\x20locally','DCdVo':'provided_token'};if(!_0x3a45b3){const _0x3016df=await _0x38b1bd['MJcyg'](getToken);if(_0x3016df){const _0x197693=await _0x38b1bd['CnaJi'](getCurrentUser,_0x3016df);if(_0x197693[_0x691194(0x14d)])return console[_0x691194(0x17d)]('✓\x20Already\x20authenticated\x20to\x20'+_0x197693['user'][_0x691194(0x15e)]),{'token':_0x3016df,'method':'existing_token'};}try{_0x3a45b3=await _0x38b1bd[_0x691194(0x13d)](runDeviceAuthFlow);}catch(_0x5d513b){throw new Error(_0x691194(0x16d)+(_0x38b1bd['FOWFN'](_0x5d513b,Error)?_0x5d513b[_0x691194(0x19b)]:_0x5d513b));}const _0x317314=await _0x38b1bd[_0x691194(0x181)](getCurrentUser,_0x3a45b3);if(!_0x317314[_0x691194(0x14d)])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x317314['error']);return console['log']('✓\x20Authenticated\x20to\x20'+_0x317314['user'][_0x691194(0x15e)]),{'token':_0x3a45b3,'method':_0x691194(0x199)};}console[_0x691194(0x17d)](_0x38b1bd[_0x691194(0x160)]);const _0x3f6655=await _0x38b1bd['HgiEG'](getCurrentUser,_0x3a45b3);if(!_0x3f6655['success']){if(_0x3f6655['status'])throw new Error(_0x691194(0x16d)+_0x3f6655[_0x691194(0x186)]+_0x691194(0x168));else throw new Error(_0x691194(0x15c)+_0x3f6655['error']+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console['log']('✓\x20Authenticated\x20to\x20'+_0x3f6655['user']['organizationName']),await _0x38b1bd[_0x691194(0x17a)](storeToken,_0x3a45b3),console['log'](process[_0x691194(0x19f)]['GITHUB_ENV']?_0x691194(0x17b):_0x38b1bd[_0x691194(0x174)]),{'token':_0x3a45b3,'method':_0x38b1bd[_0x691194(0x194)]};}export async function ensureRangerDir(){const _0x155cbd=_0x4d63,_0x8bcbd8={'MIlhP':function(_0xbe8c61){return _0xbe8c61();},'ZWoEH':function(_0x53a07d,_0x5957f3,_0x5c7a2d){return _0x53a07d(_0x5957f3,_0x5c7a2d);},'JiJWa':_0x155cbd(0x1a1)},_0x28df1b=_0x8bcbd8['MIlhP'](findGitRoot),_0x3729d9=_0x28df1b?_0x8bcbd8[_0x155cbd(0x173)](join,_0x28df1b,'.ranger'):_0x8bcbd8['MIlhP'](getRangerDir);return!existsSync(_0x3729d9)?(await mkdir(_0x3729d9,{'recursive':!![]}),console[_0x155cbd(0x17d)]('✓\x20Created\x20.ranger/\x20directory'),{'path':_0x3729d9,'installed':!![]}):(console['log'](_0x8bcbd8[_0x155cbd(0x16b)]),{'path':_0x3729d9,'installed':![]});}export async function ensureChromium(){const _0x15a589=_0x4d63,_0x10322b={'huNpH':_0x15a589(0x156),'erBax':_0x15a589(0x15b),'nqNXN':_0x15a589(0x191),'LcLLl':'\x0aInstalling\x20Chromium\x20browser...\x0a','NzCPM':'\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','laLcY':_0x15a589(0x146),'EfWgw':_0x15a589(0x1a7),'LRxiB':'You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'};let _0xc0f17c=![];try{const _0x2fcfc=chromium['executablePath']();_0xc0f17c=existsSync(_0x2fcfc);}catch{_0xc0f17c=![];}if(_0xc0f17c)return console[_0x15a589(0x17d)](_0x10322b['huNpH']),![];const _0x4d397e=getPlaywrightVersion(),_0x30b71c=_0x4d397e??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0xecbdd8=!_0x4d397e,_0x268661=process['stdin'][_0x15a589(0x184)]&&process['stdout']['isTTY'];let _0x103e20=!![];if(_0x268661){const {install:_0x53b230}=await _0x2ff730['prompt']([{'type':_0x15a589(0x16f),'name':_0x10322b[_0x15a589(0x187)],'message':_0xecbdd8?_0x15a589(0x154)+_0x30b71c+_0x15a589(0x16e):_0x15a589(0x195)+_0x30b71c+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x103e20=_0x53b230;}else console['log']('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20'+_0x30b71c+(_0xecbdd8?_0x10322b['nqNXN']:'')+'...');if(_0x103e20){console['log'](_0x10322b[_0x15a589(0x140)]);try{await installChromiumBinary(_0x30b71c),console[_0x15a589(0x17d)](_0x10322b['NzCPM']);}catch(_0x3fe2d6){console['error'](_0x10322b[_0x15a589(0x15a)],_0x3fe2d6 instanceof Error?_0x3fe2d6[_0x15a589(0x19b)]:_0x3fe2d6),console['log'](_0x15a589(0x1a4)),console['log']('\x20\x20npx\x20playwright@'+_0x30b71c+'\x20install\x20chromium');}}else console[_0x15a589(0x17d)](_0x10322b['EfWgw']),console['log'](_0x10322b['LRxiB']),console[_0x15a589(0x17d)]('\x20\x20npx\x20playwright@'+_0x30b71c+_0x15a589(0x14b));return!![];}export async function writeRangerGitignore(_0x5143fa){const _0x33837a={'fMYRY':function(_0x1b4605,_0x25ebf2,_0x34d2ca){return _0x1b4605(_0x25ebf2,_0x34d2ca);}},_0x5346f9=_0x33837a['fMYRY'](join,_0x5143fa,'.gitignore'),_0x42ab7f='\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(_0x5346f9,_0x42ab7f),console['log']('✓\x20Created\x20.ranger/.gitignore');}function printProfileSetupLaterInstructions(){const _0x570606=_0x4d63,_0xb5a0d4={'haoMX':_0x570606(0x167),'Umkio':_0x570606(0x1a2),'AWxZL':'Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a'};console['log'](_0xb5a0d4['haoMX']),console['log']('\x20\x20'+bold(_0xb5a0d4[_0x570606(0x145)])),console['log'](_0xb5a0d4[_0x570606(0x14e)]);}async function ensureLocalEnv(_0x4b763f,_0xabe2c8){const _0xc42cc4=_0x4d63,_0x5a0656={'papcv':function(_0x382327){return _0x382327();},'YaiWF':_0xc42cc4(0x182),'ATYGz':_0xc42cc4(0x19d),'esGRv':'to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','ipPzm':'auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to','FqTwr':'use\x20until\x20the\x20session\x20expires.\x0a','yNdto':'confirm','WMEhz':function(_0x137693,_0xd10930){return _0x137693 instanceof _0xd10930;}};if(!_0x5a0656[_0xc42cc4(0x141)](findGitRoot))return console[_0xc42cc4(0x17d)](_0xc42cc4(0x161)),{'ready':![],'skipped':!![]};if(findExistingEnv(_0x5a0656[_0xc42cc4(0x164)],{'locations':[_0xc42cc4(0x182)]}))return console['log'](_0x5a0656['ATYGz']),{'ready':!![],'skipped':![]};const _0x2acb69=process['stdin']['isTTY']&&process['stdout'][_0xc42cc4(0x184)];if(_0x2acb69&&!_0x4b763f?.['url']){console[_0xc42cc4(0x17d)]('\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how'),console[_0xc42cc4(0x17d)](_0x5a0656['esGRv']),console[_0xc42cc4(0x17d)](_0x5a0656[_0xc42cc4(0x18d)]),console['log'](_0x5a0656[_0xc42cc4(0x192)]),console[_0xc42cc4(0x17d)]('You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.');const {wantsProfile:_0x3f36da}=await _0x2ff730[_0xc42cc4(0x153)]([{'type':_0x5a0656[_0xc42cc4(0x16a)],'name':'wantsProfile','message':_0xc42cc4(0x18a),'default':!![]}]);if(!_0x3f36da)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await addEnv(_0x5a0656['YaiWF'],{'url':_0x4b763f?.[_0xc42cc4(0x14f)],'force':_0x4b763f?.['force'],'allowInsecureLocalhost':_0x4b763f?.['allowInsecureLocalhost']},_0xabe2c8),{'ready':!![],'skipped':![]};}catch(_0x3d377b){return console[_0xc42cc4(0x186)]('\x0a❌\x20Profile\x20setup\x20failed:',_0x5a0656[_0xc42cc4(0x177)](_0x3d377b,Error)?_0x3d377b['message']:_0x3d377b),_0x5a0656[_0xc42cc4(0x141)](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}export async function start(_0x301f05,_0x4a4371,_0xa1e9e8){const _0x995a3e=_0x4d63,_0xfa67a9={'kitJo':'\x0a🚀\x20Ranger\x20Setup\x0a','rgHRr':'Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','nMyQk':'user','hWFmE':_0x995a3e(0x151),'mmPjk':function(_0x22adbb){return _0x22adbb();},'Cccvw':_0x995a3e(0x19a),'ZrhGx':function(_0x48376b,_0x2e2b9c){return _0x48376b(_0x2e2b9c);},'wvsgO':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','ZuXhV':function(_0x3e3768){return _0x3e3768();},'SmPpP':'chromium','epEBF':_0x995a3e(0x193),'hJrRS':function(_0x448ff9,_0x1c4516){return _0x448ff9(_0x1c4516);},'kSMxD':function(_0x99b90d,_0x40fa85,_0x256008){return _0x99b90d(_0x40fa85,_0x256008);},'nJbLk':_0x995a3e(0x13e),'zQhtP':'\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','ImhHm':'skills','Mtugv':'Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','aAVDl':'profile','HDpdg':'with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','PPfKx':function(_0x28e462,_0x51c1e8){return _0x28e462+_0x51c1e8;}};console['log'](_0xfa67a9['kitJo']);const _0x4895c1=process[_0x995a3e(0x198)]['isTTY']&&process[_0x995a3e(0x172)][_0x995a3e(0x184)];!_0x4895c1&&!_0x4a4371?.['scope']&&(console['log'](_0xfa67a9['rgHRr']),_0x4a4371={..._0x4a4371,'scope':_0xfa67a9[_0x995a3e(0x19e)]});_0xa1e9e8?.['trackPhaseStart'](_0x995a3e(0x151));if(!findGitRoot()){await _0xa1e9e8?.['trackPhaseError'](_0xfa67a9[_0x995a3e(0x15d)],new Error('No\x20git\x20repository\x20found'));throw new Error('No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.');}_0xa1e9e8?.['trackPhaseEnd']('git_check');const _0x317287=!existsSync(getRangerDir()),{path:_0x21a931}=await _0xfa67a9['mmPjk'](ensureRangerDir);_0xa1e9e8?.[_0x995a3e(0x1a0)](_0xfa67a9[_0x995a3e(0x176)]);const _0x2486a3=await _0xfa67a9[_0x995a3e(0x19c)](authenticate,_0x301f05);_0xa1e9e8?.['trackPhaseEnd']('auth',{'isFirstRun':_0x317287,'method':_0x2486a3[_0x995a3e(0x142)]}),_0xa1e9e8?.['trackPhaseStart']('chromium');_0x4a4371?.['skipChromium']?console[_0x995a3e(0x17d)](_0xfa67a9['wvsgO']):await _0xfa67a9[_0x995a3e(0x147)](ensureChromium);_0xa1e9e8?.[_0x995a3e(0x183)](_0xfa67a9['SmPpP'],{'isFirstRun':_0x317287,'skipped':!!_0x4a4371?.[_0x995a3e(0x14a)]}),await writeRangerGitignore(_0x21a931),console['log'](_0x995a3e(0x18e));const _0x57fb0e=_0x4a4371?.[_0x995a3e(0x14c)],_0x38202b=_0x4a4371?.[_0x995a3e(0x149)]??![];let _0x59bdbb=null;_0x38202b?(_0xa1e9e8?.['trackPhaseStart'](_0xfa67a9[_0x995a3e(0x180)]),_0x59bdbb=await _0xfa67a9['ZrhGx'](ensureOpencodePluginConfig,_0x57fb0e),_0xa1e9e8?.[_0x995a3e(0x183)](_0x995a3e(0x193),{'isFirstRun':_0x317287,'opencode':!![]})):(_0xa1e9e8?.[_0x995a3e(0x1a0)]('plugin'),await _0xfa67a9[_0x995a3e(0x18c)](ensureClaudePlugin,_0x57fb0e),_0xa1e9e8?.[_0x995a3e(0x183)]('plugin',{'isFirstRun':_0x317287}));if(_0x38202b&&_0x59bdbb){_0xa1e9e8?.[_0x995a3e(0x1a0)]('skills');try{await _0xfa67a9[_0x995a3e(0x171)](installSkill,_0xfa67a9[_0x995a3e(0x157)],{'level':_0x59bdbb[_0x995a3e(0x14c)],'cliVersion':getCurrentVersion(),'platform':_0x995a3e(0x149)}),_0xa1e9e8?.[_0x995a3e(0x183)](_0x995a3e(0x1a3),{'isFirstRun':_0x317287,'opencode':!![]});}catch(_0x4761f6){console['warn'](_0xfa67a9[_0x995a3e(0x155)],_0x4761f6 instanceof Error?_0x4761f6[_0x995a3e(0x19b)]:_0x4761f6),_0xa1e9e8?.[_0x995a3e(0x183)](_0x995a3e(0x1a3),{'isFirstRun':_0x317287,'opencode':!![],'failed':!![]});}}else _0xa1e9e8?.[_0x995a3e(0x1a0)]('skills'),await ensureClaudeSkills(_0x57fb0e),_0xa1e9e8?.['trackPhaseEnd'](_0xfa67a9[_0x995a3e(0x17e)],{'isFirstRun':_0x317287});if(!_0x4895c1&&!_0x4a4371?.[_0x995a3e(0x14f)])console[_0x995a3e(0x17d)](_0xfa67a9[_0x995a3e(0x18f)]),console['log']('\x20\x20'+bold(_0x995a3e(0x1a2))+'\x0a');else{_0xa1e9e8?.['trackPhaseStart'](_0xfa67a9[_0x995a3e(0x178)]);const _0xf42662=await _0xfa67a9['kSMxD'](ensureLocalEnv,{'url':_0x4a4371?.['url'],'force':_0x4a4371?.['force'],'allowInsecureLocalhost':_0x4a4371?.[_0x995a3e(0x143)]},_0xa1e9e8);_0xa1e9e8?.['trackPhaseEnd'](_0x995a3e(0x197),{'isFirstRun':_0x317287,'profileReady':_0xf42662[_0x995a3e(0x152)],'userSkipped':_0xf42662[_0x995a3e(0x144)]}),_0xf42662[_0x995a3e(0x152)]&&console['log']('\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.');}if(_0x38202b)console[_0x995a3e(0x17d)]('\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)'),console[_0x995a3e(0x17d)](_0x995a3e(0x148)),console['log'](_0xfa67a9['HDpdg']),console[_0x995a3e(0x17d)]('verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');else{const _0x4c9b00=bold(_0x995a3e(0x190));console['log'](_0xfa67a9[_0x995a3e(0x159)]('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0x4c9b00+'\x20and\x20prompt\x20the\x20coding',_0x995a3e(0x158))+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'+'\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');}}
1
+ (function(_0x649b85,_0x2ebf2f){const _0x330303=_0x2238,_0x51e67e=_0x649b85();while(!![]){try{const _0x5bc452=parseInt(_0x330303(0xc4))/0x1*(-parseInt(_0x330303(0xec))/0x2)+parseInt(_0x330303(0xa6))/0x3*(-parseInt(_0x330303(0xa1))/0x4)+-parseInt(_0x330303(0xba))/0x5*(parseInt(_0x330303(0xc1))/0x6)+-parseInt(_0x330303(0x98))/0x7*(-parseInt(_0x330303(0xe3))/0x8)+parseInt(_0x330303(0xe2))/0x9*(-parseInt(_0x330303(0xd1))/0xa)+parseInt(_0x330303(0xe7))/0xb+parseInt(_0x330303(0xde))/0xc;if(_0x5bc452===_0x2ebf2f)break;else _0x51e67e['push'](_0x51e67e['shift']());}catch(_0xac109d){_0x51e67e['push'](_0x51e67e['shift']());}}}(_0xae3f,0x3c36f));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x50fc14 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,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';function _0x2238(_0x3c305e,_0x136bd4){_0x3c305e=_0x3c305e-0x94;const _0xae3f00=_0xae3f();let _0x2238d3=_0xae3f00[_0x3c305e];return _0x2238d3;}import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2',bold=_0x40a9aa=>'\x1b[1m'+_0x40a9aa+'\x1b[0m';function getPlaywrightVersion(){const _0x4c5cb9=_0x2238;try{const _0x472bc9=require['resolve']('playwright/package.json'),_0x35a0d8=require(_0x472bc9);return _0x35a0d8[_0x4c5cb9(0xfd)];}catch{return null;}}function installChromiumBinary(_0x25fb82){const _0x3be0d4={'haVlS':function(_0x1ab42d,_0x1ceea1,_0x1826f1,_0x3188d1){return _0x1ab42d(_0x1ceea1,_0x1826f1,_0x3188d1);},'abTpf':'win32','lVcQx':'error'};return new Promise((_0x50d87b,_0x3cb9c2)=>{const _0xf27aa6=_0x2238,_0x46e238={'Qerfw':function(_0x5cf10e,_0x3fef6d){return _0x5cf10e===_0x3fef6d;},'LFUrg':function(_0x4d4477){return _0x4d4477();},'jAWtX':function(_0x5327f4,_0x4c9f48){return _0x5327f4(_0x4c9f48);}},_0x931223=[_0xf27aa6(0xf4)+_0x25fb82,'install','chromium'],_0x1f774e=_0x3be0d4[_0xf27aa6(0xa3)](spawn,_0xf27aa6(0xce),_0x931223,{'stdio':'inherit','shell':process['platform']===_0x3be0d4[_0xf27aa6(0xc0)]});_0x1f774e['on'](_0xf27aa6(0xdc),_0x5b38b7=>{const _0x3de676=_0xf27aa6;_0x46e238['Qerfw'](_0x5b38b7,0x0)?_0x46e238['LFUrg'](_0x50d87b):_0x46e238['jAWtX'](_0x3cb9c2,new Error(_0x3de676(0xe5)+_0x5b38b7));}),_0x1f774e['on'](_0x3be0d4[_0xf27aa6(0xd5)],_0x330f50=>{_0x3cb9c2(_0x330f50);});});}export async function authenticate(_0x32110d){const _0x44c946=_0x2238,_0x1a457b={'NwMZX':function(_0x324192){return _0x324192();},'JdecD':function(_0x3efc2b,_0x40cbb8){return _0x3efc2b(_0x40cbb8);},'SjXWy':function(_0x19f5b9,_0x4738f5){return _0x19f5b9 instanceof _0x4738f5;},'AYHHM':_0x44c946(0xff),'tnSjv':function(_0x117e6,_0x2fa7bf){return _0x117e6(_0x2fa7bf);},'rbXkc':_0x44c946(0xd0)};if(!_0x32110d){const _0x3c7087=await _0x1a457b['NwMZX'](getToken);if(_0x3c7087){const _0x372486=await _0x1a457b[_0x44c946(0xf3)](getCurrentUser,_0x3c7087);if(_0x372486[_0x44c946(0x96)])return console['log'](_0x44c946(0xdf)+_0x372486['user'][_0x44c946(0x99)]),{'token':_0x3c7087,'method':_0x44c946(0x97)};}try{_0x32110d=await runDeviceAuthFlow();}catch(_0xf88b73){throw new Error(_0x44c946(0xf1)+(_0x1a457b['SjXWy'](_0xf88b73,Error)?_0xf88b73['message']:_0xf88b73));}const _0x408afc=await getCurrentUser(_0x32110d);if(!_0x408afc['success'])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x408afc['error']);return console['log']('✓\x20Authenticated\x20to\x20'+_0x408afc['user']['organizationName']),{'token':_0x32110d,'method':_0x1a457b[_0x44c946(0xbc)]};}console['log']('Validating\x20API\x20token...');const _0x5ca6d3=await _0x1a457b[_0x44c946(0xf2)](getCurrentUser,_0x32110d);if(!_0x5ca6d3['success']){if(_0x5ca6d3[_0x44c946(0xb1)])throw new Error('Authentication\x20failed:\x20'+_0x5ca6d3[_0x44c946(0xd8)]+_0x44c946(0xcf));else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x5ca6d3[_0x44c946(0xd8)]+_0x44c946(0xd6));}return console['log'](_0x44c946(0xe4)+_0x5ca6d3['user']['organizationName']),await storeToken(_0x32110d),console[_0x44c946(0xea)](process[_0x44c946(0xef)]['GITHUB_ENV']?_0x44c946(0xf0):_0x1a457b[_0x44c946(0xdb)]),{'token':_0x32110d,'method':'provided_token'};}export async function ensureRangerDir(){const _0x20effe=_0x2238,_0x5e6e23={'zfYwh':function(_0x8ab1bf){return _0x8ab1bf();},'nznWN':function(_0x1b9c53,_0x1cf96d,_0xd9fbe9){return _0x1b9c53(_0x1cf96d,_0xd9fbe9);},'VpVDh':_0x20effe(0xe1)},_0xfb08=_0x5e6e23['zfYwh'](findGitRoot),_0x229f1c=_0xfb08?_0x5e6e23[_0x20effe(0xf8)](join,_0xfb08,'.ranger'):_0x5e6e23['zfYwh'](getRangerDir);return!existsSync(_0x229f1c)?(await mkdir(_0x229f1c,{'recursive':!![]}),console['log'](_0x5e6e23['VpVDh']),{'path':_0x229f1c,'installed':!![]}):(console[_0x20effe(0xea)]('✓\x20.ranger/\x20directory\x20already\x20exists'),{'path':_0x229f1c,'installed':![]});}export async function ensureChromium(){const _0x3798e4=_0x2238,_0x3f7a7e={'owLcX':'install','bGmYw':'\x0aInstalling\x20Chromium\x20browser...\x0a','OEyWh':_0x3798e4(0xe9)};let _0x2476fc=![];try{const _0x105dfd=chromium[_0x3798e4(0x9b)]();_0x2476fc=existsSync(_0x105dfd);}catch{_0x2476fc=![];}if(_0x2476fc)return console['log']('✓\x20Playwright\x20Chromium\x20browser\x20found'),![];const _0x25397a=getPlaywrightVersion(),_0x70fff6=_0x25397a??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0x4e759f=!_0x25397a,_0x44fcda=process['stdin'][_0x3798e4(0xd2)]&&process['stdout']['isTTY'];let _0x2b0be4=!![];if(_0x44fcda){const {install:_0x2b6bdb}=await _0x50fc14[_0x3798e4(0xa5)]([{'type':_0x3798e4(0xf6),'name':_0x3f7a7e[_0x3798e4(0xd7)],'message':_0x4e759f?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x70fff6+_0x3798e4(0xb6):_0x3798e4(0xcc)+_0x70fff6+_0x3798e4(0xad),'default':!![]}]);_0x2b0be4=_0x2b6bdb;}else console[_0x3798e4(0xea)](_0x3798e4(0xb8)+_0x70fff6+(_0x4e759f?'\x20(fallback\x20version)':'')+_0x3798e4(0xbb));if(_0x2b0be4){console['log'](_0x3f7a7e['bGmYw']);try{await installChromiumBinary(_0x70fff6),console['log'](_0x3798e4(0xa0));}catch(_0x381f7d){console[_0x3798e4(0xd8)](_0x3f7a7e[_0x3798e4(0xc9)],_0x381f7d instanceof Error?_0x381f7d['message']:_0x381f7d),console['log'](_0x3798e4(0xe8)),console[_0x3798e4(0xea)]('\x20\x20npx\x20playwright@'+_0x70fff6+_0x3798e4(0xd4));}}else console['log'](_0x3798e4(0xb7)),console[_0x3798e4(0xea)](_0x3798e4(0xda)),console['log']('\x20\x20npx\x20playwright@'+_0x70fff6+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x8a4d9){const _0x677e86=_0x2238,_0x35397f={'vDROT':_0x677e86(0xa9),'cSTGp':function(_0x5bd4a5,_0x4b1f29,_0x1e229d){return _0x5bd4a5(_0x4b1f29,_0x1e229d);},'RyqFE':_0x677e86(0x9e)},_0x5473b0=join(_0x8a4d9,_0x35397f[_0x677e86(0xf5)]),_0x116e47='\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 _0x35397f[_0x677e86(0xfe)](writeFile,_0x5473b0,_0x116e47),console['log'](_0x35397f[_0x677e86(0xaa)]);}function _0xae3f(){const _0x3ac2bd=['\x0a🚀\x20Ranger\x20Setup\x0a','abTpf','1098WpVUoq','TGwnw','chromium','286184TtnBku','ldVjf','plugin','KLQdv','auth','OEyWh','opencode','\x0a❌\x20Profile\x20setup\x20failed:','The\x20required\x20version\x20(','trackPhaseEnd','npx','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','✓\x20Stored\x20credentials\x20locally','7850vprpQo','isTTY','kuwlx','\x20install\x20chromium','lVcQx','.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.','owLcX','error','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','rbXkc','close','gLWCx','7626888ZUmgVd','✓\x20Already\x20authenticated\x20to\x20','\x0aIn\x20Claude\x20Code,\x20run\x20','✓\x20Created\x20.ranger/\x20directory','9IAZTMg','118760CmRzqZ','✓\x20Authenticated\x20to\x20','Installation\x20failed\x20with\x20exit\x20code\x20','piIcF','781143MaUZNZ','You\x20can\x20install\x20it\x20manually\x20by\x20running:','\x0a❌\x20Failed\x20to\x20install\x20Chromium:','log','ready','2QleXmF','FIoxw','skills','env','✓\x20Exported\x20credentials\x20for\x20CI','Authentication\x20failed:\x20','tnSjv','JdecD','playwright@','vDROT','confirm','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','nznWN','LOsfu','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','RlHAF','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','version','cSTGp','device_auth','niJlS','and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','success','existing_token','14eYXMXN','organizationName','GqpQG','executablePath','IWsmE','ranger\x20profile\x20add\x20local','✓\x20Created\x20.ranger/.gitignore','stdin','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','296636JgfufE','ODUrk','haVlS','allowInsecureLocalhost','prompt','6LsVwmv','skipChromium','WkExj','.gitignore','RyqFE','sdJNb','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','trackPhaseStart','profile','scope','status','auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','EjWUN','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','\x20now?','\x0a⚠\x20Skipping\x20Chromium\x20installation.','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','rdvbz','1485DEtIGp','...','AYHHM','message','method'];_0xae3f=function(){return _0x3ac2bd;};return _0xae3f();}function printProfileSetupLaterInstructions(){const _0x2dbe37=_0x2238,_0x4787f8={'MAAhc':'\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','MGDSL':function(_0x2976be,_0x363e4c){return _0x2976be(_0x363e4c);},'rdvbz':_0x2dbe37(0x9d)};console[_0x2dbe37(0xea)](_0x4787f8['MAAhc']),console['log']('\x20\x20'+_0x4787f8['MGDSL'](bold,_0x4787f8[_0x2dbe37(0xb9)])),console[_0x2dbe37(0xea)]('Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a');}async function ensureLocalEnv(_0x1ad92f,_0x1d7e0f){const _0x290116=_0x2238,_0x2d79b6={'piIcF':'⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','ESvLi':'local','dpxlV':'✓\x20Local\x20profile\x20already\x20exists','TGwnw':_0x290116(0xd9),'niJlS':'use\x20until\x20the\x20session\x20expires.\x0a','ARZWX':_0x290116(0xf6),'sdJNb':'Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','ITbdp':_0x290116(0xcb),'EjWUN':function(_0x36eec0,_0x21bd98){return _0x36eec0 instanceof _0x21bd98;}};if(!findGitRoot())return console['log'](_0x2d79b6[_0x290116(0xe6)]),{'ready':![],'skipped':!![]};if(findExistingEnv('local',{'locations':[_0x2d79b6['ESvLi']]}))return console[_0x290116(0xea)](_0x2d79b6['dpxlV']),{'ready':!![],'skipped':![]};const _0x382c93=process[_0x290116(0x9f)]['isTTY']&&process['stdout']['isTTY'];if(_0x382c93&&!_0x1ad92f?.['url']){console[_0x290116(0xea)](_0x2d79b6[_0x290116(0xc2)]),console[_0x290116(0xea)]('to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind'),console[_0x290116(0xea)](_0x290116(0xb2)),console['log'](_0x2d79b6[_0x290116(0x94)]),console['log'](_0x290116(0xfc));const {wantsProfile:_0x17d94d}=await _0x50fc14[_0x290116(0xa5)]([{'type':_0x2d79b6['ARZWX'],'name':'wantsProfile','message':_0x2d79b6[_0x290116(0xab)],'default':!![]}]);if(!_0x17d94d)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await addEnv(_0x2d79b6['ESvLi'],{'url':_0x1ad92f?.['url'],'force':_0x1ad92f?.['force'],'allowInsecureLocalhost':_0x1ad92f?.[_0x290116(0xa4)]},_0x1d7e0f),{'ready':!![],'skipped':![]};}catch(_0x35d70c){return console['error'](_0x2d79b6['ITbdp'],_0x2d79b6[_0x290116(0xb4)](_0x35d70c,Error)?_0x35d70c[_0x290116(0xbd)]:_0x35d70c),printProfileSetupLaterInstructions(),{'ready':![],'skipped':![]};}}export async function start(_0x114ad1,_0x1a7975,_0x19968d){const _0x1f7209=_0x2238,_0x427936={'ePLsM':_0x1f7209(0xbf),'vkAXS':_0x1f7209(0xac),'IWsmE':'git_check','ODUrk':function(_0x55c6d4,_0x1b37c3){return _0x55c6d4(_0x1b37c3);},'wvRCi':function(_0x195e62){return _0x195e62();},'gLWCx':_0x1f7209(0xc8),'GqpQG':_0x1f7209(0xc3),'LOsfu':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','kuwlx':_0x1f7209(0xc6),'LDNOH':function(_0x29fc54,_0x406794){return _0x29fc54&&_0x406794;},'KLQdv':_0x1f7209(0xee),'FIoxw':'ranger','RlHAF':_0x1f7209(0xca),'ldVjf':function(_0x43d966,_0xb5c5dd){return _0x43d966(_0xb5c5dd);},'qYGZI':'ranger\x20profile\x20add\x20local','kSGhh':function(_0x1ab4a5,_0x2b7b6e,_0x3bda04){return _0x1ab4a5(_0x2b7b6e,_0x3bda04);},'sPHwc':_0x1f7209(0xf7),'BUXQs':_0x1f7209(0xb5),'WkExj':function(_0x14c9ea,_0x2cb387){return _0x14c9ea(_0x2cb387);},'HllJy':function(_0x58ca9f,_0x5a71cf){return _0x58ca9f+_0x5a71cf;}};console['log'](_0x427936['ePLsM']);const _0x22174f=process['stdin']['isTTY']&&process['stdout']['isTTY'];!_0x22174f&&!_0x1a7975?.['scope']&&(console['log'](_0x427936['vkAXS']),_0x1a7975={..._0x1a7975,'scope':'user'});_0x19968d?.[_0x1f7209(0xae)]('git_check');if(!findGitRoot()){await _0x19968d?.['trackPhaseError'](_0x427936[_0x1f7209(0x9c)],new Error('No\x20git\x20repository\x20found'));throw new Error('No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.');}_0x19968d?.[_0x1f7209(0xcd)](_0x427936[_0x1f7209(0x9c)]);const _0x4b9fcb=!_0x427936[_0x1f7209(0xa2)](existsSync,getRangerDir()),{path:_0x231169}=await _0x427936['wvRCi'](ensureRangerDir);_0x19968d?.[_0x1f7209(0xae)](_0x427936['gLWCx']);const _0x3f1056=await _0x427936['ODUrk'](authenticate,_0x114ad1);_0x19968d?.['trackPhaseEnd'](_0x427936[_0x1f7209(0xdd)],{'isFirstRun':_0x4b9fcb,'method':_0x3f1056[_0x1f7209(0xbe)]}),_0x19968d?.['trackPhaseStart'](_0x427936['GqpQG']);_0x1a7975?.[_0x1f7209(0xa7)]?console[_0x1f7209(0xea)](_0x427936[_0x1f7209(0xf9)]):await _0x427936['wvRCi'](ensureChromium);_0x19968d?.['trackPhaseEnd'](_0x427936[_0x1f7209(0x9a)],{'isFirstRun':_0x4b9fcb,'skipped':!!_0x1a7975?.[_0x1f7209(0xa7)]}),await writeRangerGitignore(_0x231169),console[_0x1f7209(0xea)](_0x1f7209(0xfa));const _0x158d1b=_0x1a7975?.['scope'],_0x77c625=_0x1a7975?.[_0x1f7209(0xca)]??![];let _0x25190d=null;_0x77c625?(_0x19968d?.[_0x1f7209(0xae)](_0x427936[_0x1f7209(0xd3)]),_0x25190d=await ensureOpencodePluginConfig(_0x158d1b),_0x19968d?.[_0x1f7209(0xcd)]('plugin',{'isFirstRun':_0x4b9fcb,'opencode':!![]})):(_0x19968d?.[_0x1f7209(0xae)](_0x427936['kuwlx']),await _0x427936['ODUrk'](ensureClaudePlugin,_0x158d1b),_0x19968d?.[_0x1f7209(0xcd)](_0x427936[_0x1f7209(0xd3)],{'isFirstRun':_0x4b9fcb}));if(_0x427936['LDNOH'](_0x77c625,_0x25190d)){_0x19968d?.['trackPhaseStart'](_0x427936[_0x1f7209(0xc7)]);try{await installSkill(_0x427936[_0x1f7209(0xed)],{'level':_0x25190d[_0x1f7209(0xb0)],'cliVersion':getCurrentVersion(),'platform':_0x427936[_0x1f7209(0xfb)]}),_0x19968d?.['trackPhaseEnd'](_0x1f7209(0xee),{'isFirstRun':_0x4b9fcb,'opencode':!![]});}catch(_0x3fc752){console['warn'](_0x1f7209(0xb3),_0x3fc752 instanceof Error?_0x3fc752['message']:_0x3fc752),_0x19968d?.['trackPhaseEnd'](_0x1f7209(0xee),{'isFirstRun':_0x4b9fcb,'opencode':!![],'failed':!![]});}}else _0x19968d?.['trackPhaseStart'](_0x427936[_0x1f7209(0xc7)]),await ensureClaudeSkills(_0x158d1b),_0x19968d?.[_0x1f7209(0xcd)](_0x427936[_0x1f7209(0xc7)],{'isFirstRun':_0x4b9fcb});if(!_0x22174f&&!_0x1a7975?.['url'])console['log']('Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:'),console[_0x1f7209(0xea)]('\x20\x20'+_0x427936[_0x1f7209(0xc5)](bold,_0x427936['qYGZI'])+'\x0a');else{_0x19968d?.[_0x1f7209(0xae)](_0x1f7209(0xaf));const _0x54ea10=await _0x427936['kSGhh'](ensureLocalEnv,{'url':_0x1a7975?.['url'],'force':_0x1a7975?.['force'],'allowInsecureLocalhost':_0x1a7975?.[_0x1f7209(0xa4)]},_0x19968d);_0x19968d?.[_0x1f7209(0xcd)](_0x1f7209(0xaf),{'isFirstRun':_0x4b9fcb,'profileReady':_0x54ea10[_0x1f7209(0xeb)],'userSkipped':_0x54ea10['skipped']}),_0x54ea10[_0x1f7209(0xeb)]&&console[_0x1f7209(0xea)]('\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.');}if(_0x77c625)console[_0x1f7209(0xea)](_0x427936['sPHwc']),console['log'](_0x1f7209(0x95)),console[_0x1f7209(0xea)](_0x427936['BUXQs']),console[_0x1f7209(0xea)]('verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');else{const _0x2b567c=_0x427936[_0x1f7209(0xa8)](bold,'/ranger:enable');console[_0x1f7209(0xea)](_0x427936['HllJy'](_0x1f7209(0xe0)+_0x2b567c+'\x20and\x20prompt\x20the\x20coding','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with')+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'+'\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');}}
@@ -1 +1 @@
1
- const _0x4ca45e=_0x5b70;(function(_0x4d909b,_0xa51330){const _0x36aaea=_0x5b70,_0x491b4e=_0x4d909b();while(!![]){try{const _0x480f4f=parseInt(_0x36aaea(0x168))/0x1*(-parseInt(_0x36aaea(0x113))/0x2)+parseInt(_0x36aaea(0x11f))/0x3*(parseInt(_0x36aaea(0x140))/0x4)+parseInt(_0x36aaea(0x15e))/0x5+parseInt(_0x36aaea(0x137))/0x6+-parseInt(_0x36aaea(0x117))/0x7+parseInt(_0x36aaea(0x12a))/0x8*(parseInt(_0x36aaea(0x122))/0x9)+-parseInt(_0x36aaea(0x156))/0xa*(-parseInt(_0x36aaea(0x11e))/0xb);if(_0x480f4f===_0xa51330)break;else _0x491b4e['push'](_0x491b4e['shift']());}catch(_0x4424c4){_0x491b4e['push'](_0x491b4e['shift']());}}}(_0x9a0c,0x22549));import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';import{getCurrentVersion,getLatestVersion}from'./utils/version.js';function _0x9a0c(){const _0x247004=['gHIab','\x0a---\x20Profiles\x20---','SKILL.md','opencode','tiryr','not_installed','toString','settings.json','11291VWbhur','TPFZI','\x1b[1m','version','DEBUG','disabled','6hNMueR','\x20\x20Run:\x20ranger\x20skillup','encrypted','HSQpi','1684732MiDkOX','includes','QNygx','ignore','Root:\x20','ZlkEP','gExcf','649GRMxwz','51TYFNBQ','SMTgN','trim','9fyqorD','path','pzeDV','Version:\x20','log','(not\x20found)','mlQZU','env','840272BoySvt','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','No\x20skills\x20installed','utf-8','\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','status','settingsPath','API\x20Environment:\x20','mJaxD','success','none','ggzZK','SjRtc','568614zVXhAP','close','join','\x0a---\x20Skills\x20---','parse','UwyQh','all','No\x20profiles\x20configured','project','25184Lonkwq','unknown','\x20(active)','details','plugin','\x20(latest:\x20','data','TRbEz','length','ranger@trailhead','map','scope','EFcCS','enabled','API\x20URL:\x20','Zmrxr','push','name','not_configured','\x20\x20Run:\x20ranger\x20setup\x20--opencode','tnUTx','configured','17330wDFJir','\x20\x20Project-level:','ARYji','\x0a📊\x20Ranger\x20Status\x0a','bIEhW','\x20plugin(s)\x20configured','debug','nPCKZ','30420zAMuYe','\x20\x20Run:\x20ranger\x20setup\x20[token]'];_0x9a0c=function(){return _0x247004;};return _0x9a0c();}import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';function _0x5b70(_0x2b537c,_0xec76fa){_0x2b537c=_0x2b537c-0x113;const _0x9a0c5=_0x9a0c();let _0x5b7048=_0x9a0c5[_0x2b537c];return _0x5b7048;}import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';import{getRangerDir}from'./utils/rangerRoot.js';import{getEnvDir}from'./utils/settings.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x3459b1=>_0x4ca45e(0x16a)+_0x3459b1+'\x1b[0m',link=(_0x4590cc,_0x5670f3)=>'\x1b]8;;file://'+_0x4590cc+'\x07'+(_0x5670f3||_0x4590cc)+'\x1b]8;;\x07';async function getOpencodePluginStatus(){const _0xc2d051=_0x4ca45e,_0x131949={'mJaxD':_0xc2d051(0x165),'nPCKZ':function(_0x2c0f26,_0x2f807a){return _0x2c0f26!==_0x2f807a;},'IxHqq':function(_0x3df372,_0x243d1f){return _0x3df372(_0x243d1f);},'vRnRw':_0xc2d051(0x152),'oUPTK':function(_0x4c63b0,_0x157047,_0x45ccd2,_0x27c825){return _0x4c63b0(_0x157047,_0x45ccd2,_0x27c825);},'ggzZK':_0xc2d051(0x163),'Zmrxr':'pipe','mlQZU':_0xc2d051(0x146)};return new Promise(_0x2b7d4e=>{const _0x56e4f0=_0xc2d051,_0x143def={'TPFZI':function(_0x55011f,_0x4087c2){const _0x48a198=_0x5b70;return _0x131949[_0x48a198(0x15d)](_0x55011f,_0x4087c2);},'npMzZ':function(_0x54a834,_0x3dddff){return _0x131949['IxHqq'](_0x54a834,_0x3dddff);},'uAXDJ':_0x131949['vRnRw']},_0x59d2eb=_0x131949['oUPTK'](spawn,_0x131949[_0x56e4f0(0x135)],[_0x56e4f0(0x15c),'config'],{'stdio':[_0x56e4f0(0x11a),_0x131949[_0x56e4f0(0x14f)],_0x131949['Zmrxr']]});let _0x3733f8='';_0x59d2eb['stdout']?.['on']('data',_0x4ecb0e=>{_0x3733f8+=_0x4ecb0e['toString']();}),_0x59d2eb['stderr']?.['on'](_0x131949[_0x56e4f0(0x128)],_0x37f9a2=>{const _0x5af0f7=_0x56e4f0;_0x3733f8+=_0x37f9a2[_0x5af0f7(0x166)]();}),_0x59d2eb['on']('error',()=>{const _0x432d17=_0x56e4f0;_0x2b7d4e({'status':_0x131949[_0x432d17(0x132)]});}),_0x59d2eb['on'](_0x56e4f0(0x138),_0x3789eb=>{const _0x490ec0=_0x56e4f0,_0x47d6ea={'yHrYf':function(_0x4485c3,_0x16b2b4){const _0x5e74c1=_0x5b70;return _0x143def[_0x5e74c1(0x169)](_0x4485c3,_0x16b2b4);}};if(_0x3789eb!==0x0){_0x143def['npMzZ'](_0x2b7d4e,{'status':_0x490ec0(0x165)});return;}const _0xaef88c=_0x3733f8[_0x490ec0(0x121)]();let _0x4d2efd=null;if(_0xaef88c)try{_0x4d2efd=JSON[_0x490ec0(0x13b)](_0xaef88c);}catch{const _0x45d71e=_0xaef88c['match'](/\{[\s\S]*\}$/);if(_0x45d71e)try{_0x4d2efd=JSON[_0x490ec0(0x13b)](_0x45d71e[0x0]);}catch{_0x4d2efd=null;}}const _0x50c4d8=Array['isArray'](_0x4d2efd?.[_0x490ec0(0x144)])?_0x4d2efd?.['plugin']:[],_0x4814ee=_0x50c4d8['some'](_0xb36894=>{const _0x29ab61=_0x490ec0;if(_0x47d6ea['yHrYf'](typeof _0xb36894,'string'))return![];return _0xb36894['includes']('@ranger-testing/opencode-plugin')||_0xb36894[_0x29ab61(0x118)]('opencode-plugin');});if(_0x4814ee){_0x2b7d4e({'status':'configured','details':_0x50c4d8[_0x490ec0(0x148)]>0x0?_0x50c4d8['length']+_0x490ec0(0x15b):undefined});return;}if(_0x50c4d8[_0x490ec0(0x148)]>0x0){_0x2b7d4e({'status':_0x143def['uAXDJ'],'details':_0x50c4d8[_0x490ec0(0x148)]+_0x490ec0(0x15b)});return;}_0x2b7d4e({'status':_0x490ec0(0x152)});});});}async function getSkillsFromDir(_0x48dd1a,_0x2e0cf4){const _0x51a7c0=_0x4ca45e,_0x15bc2a={'ARYji':function(_0x3f3c32,_0x449342){return _0x3f3c32(_0x449342);},'SjRtc':function(_0x69cbad,_0x31da50){return _0x69cbad(_0x31da50);}};if(!_0x15bc2a[_0x51a7c0(0x158)](existsSync,_0x48dd1a))return[];const _0x9b5d20=[];try{const _0x2e736f=await readdir(_0x48dd1a,{'withFileTypes':!![]});for(const _0x345aa1 of _0x2e736f){if(_0x345aa1['isDirectory']()){const _0x2f6ca5=join(_0x48dd1a,_0x345aa1[_0x51a7c0(0x151)],_0x51a7c0(0x162));if(_0x15bc2a[_0x51a7c0(0x136)](existsSync,_0x2f6ca5)){let _0x482bf5=_0x345aa1[_0x51a7c0(0x151)];try{const _0x181e54=await readFile(_0x2f6ca5,_0x51a7c0(0x12d)),_0x3de0d5=_0x181e54['match'](/name:\s*(.+)/);_0x3de0d5&&(_0x482bf5=_0x3de0d5[0x1]['trim']());}catch{}_0x9b5d20[_0x51a7c0(0x150)]({'name':_0x345aa1[_0x51a7c0(0x151)],'displayName':_0x482bf5,'path':_0x2f6ca5,'level':_0x2e0cf4});}}}}catch{return[];}return _0x9b5d20;}async function getInstalledSkills(){const _0x3e3466=_0x4ca45e,_0x585e2c={'azQDD':function(_0x32d9ba,_0x2488ca,_0x3d6b14){return _0x32d9ba(_0x2488ca,_0x3d6b14);},'dIEwe':function(_0x109252,_0x6efcff,_0xae89ac){return _0x109252(_0x6efcff,_0xae89ac);},'LJolc':function(_0x26a1b3){return _0x26a1b3();},'UwyQh':'user'},[_0xb6dcb0,_0x1fe3d7]=await Promise[_0x3e3466(0x13d)]([_0x585e2c['azQDD'](getSkillsFromDir,getProjectSkillsDir(),_0x3e3466(0x13f)),_0x585e2c['dIEwe'](getSkillsFromDir,_0x585e2c['LJolc'](getUserSkillsDir),_0x585e2c[_0x3e3466(0x13c)])]);return{'project':_0xb6dcb0,'user':_0x1fe3d7};}async function getEnvironments(){const _0x18a162=_0x4ca45e,_0x32e509={'tnUTx':function(_0xd53502,_0x5d4e0d){return _0xd53502(_0x5d4e0d);},'EqdRT':'auth.json','nBZql':function(_0x3ea29f){return _0x3ea29f();}},{envNames:_0x1bfb9b,activeEnv:_0x3d8dd5}=await _0x32e509['nBZql'](getEnvNames),_0x292ee7=_0x32e509['nBZql'](getRangerDir);if(!existsSync(_0x292ee7))return{'envs':[],'activeEnv':null};const _0x1cbc43=_0x1bfb9b[_0x18a162(0x14a)](_0x52333f=>{const _0x3b77b2=_0x18a162,_0x3cbab4=_0x32e509[_0x3b77b2(0x154)](getEnvDir,_0x52333f),_0x5cfd7f=join(_0x3cbab4,_0x3b77b2(0x167)),_0x11e1e2=join(_0x3cbab4,_0x32e509['EqdRT']),_0x5f094c=join(_0x3cbab4,'auth.json.enc');return{'name':_0x52333f,'settingsPath':_0x32e509['tnUTx'](existsSync,_0x5cfd7f)?_0x5cfd7f:_0x3b77b2(0x127),'hasPlaintextAuth':existsSync(_0x11e1e2),'hasEncryptedAuth':existsSync(_0x5f094c),'isActive':_0x52333f===_0x3d8dd5};});return{'envs':_0x1cbc43,'activeEnv':_0x3d8dd5};}export async function status(){const _0x4c553d=_0x4ca45e,_0x499277={'ZYzWc':_0x4c553d(0x159),'HSQpi':function(_0x317fe7,_0x14634f){return _0x317fe7(_0x14634f);},'SMTgN':function(_0x1cf2b7,_0x3e2b3d,_0x6b9532){return _0x1cf2b7(_0x3e2b3d,_0x6b9532);},'ZlkEP':function(_0x3314d4,_0xcd97b6){return _0x3314d4(_0xcd97b6);},'Eevuy':function(_0x1801e2){return _0x1801e2();},'QNygx':function(_0xb2d64e,_0x3ff7d1){return _0xb2d64e!==_0x3ff7d1;},'WALCf':_0x4c553d(0x155),'gExcf':function(_0x2e82b4,_0x14813f){return _0x2e82b4(_0x14813f);},'ATnvq':'@ranger-testing/opencode-plugin','WtDee':function(_0x3f2671,_0xabf560){return _0x3f2671===_0xabf560;},'aKyam':'\x20\x20Not\x20configured','tiryr':_0x4c553d(0x153),'QSDZF':_0x4c553d(0x12e),'EFcCS':function(_0x11db0f,_0x22ea11){return _0x11db0f(_0x22ea11);},'GEila':_0x4c553d(0x141),'TRbEz':_0x4c553d(0x14d),'gHIab':'\x20\x20Not\x20installed','pzeDV':function(_0x3f1dce,_0x3b7e3b){return _0x3f1dce===_0x3b7e3b;},'rLHQJ':function(_0x43039e,_0x555377,_0x1d6624){return _0x43039e(_0x555377,_0x1d6624);},'ySJEl':function(_0x268163,_0x634b91){return _0x268163>_0x634b91;},'wgAaj':function(_0xe7da00,_0x64401a){return _0xe7da00(_0x64401a);},'amfyK':_0x4c553d(0x142),'zrLBv':_0x4c553d(0x115),'bIEhW':_0x4c553d(0x134),'EyrWG':'(not\x20found)'};console[_0x4c553d(0x126)](_0x499277['ZYzWc']);const _0x3a6aff=process['cwd'](),_0x53c942=getRangerDir();if(!_0x499277[_0x4c553d(0x116)](existsSync,_0x53c942)){console['log']('Root:\x20'+_0x499277['SMTgN'](link,_0x3a6aff,bold(_0x499277['HSQpi'](basename,_0x3a6aff)))),console['log'](_0x4c553d(0x12b)),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a');return;}console[_0x4c553d(0x126)](_0x4c553d(0x11b)+_0x499277[_0x4c553d(0x120)](link,_0x3a6aff,_0x499277[_0x4c553d(0x11c)](bold,basename(_0x3a6aff))));const _0x465ba6=getCurrentVersion(),_0x43edf4=_0x499277['Eevuy'](getLatestVersion);if(_0x43edf4['version']&&_0x499277[_0x4c553d(0x119)](_0x43edf4[_0x4c553d(0x16b)],_0x465ba6))console[_0x4c553d(0x126)](_0x4c553d(0x125)+_0x465ba6+_0x4c553d(0x145)+_0x43edf4['version']+')'),console[_0x4c553d(0x126)]('\x20\x20Run:\x20ranger\x20update');else _0x43edf4['version']?console[_0x4c553d(0x126)](_0x4c553d(0x125)+_0x465ba6+'\x20(up\x20to\x20date)'):console['log']('Version:\x20'+_0x465ba6);const _0x57ec12=await getToken();if(_0x57ec12){const _0x2823a0=await getCurrentUser(_0x57ec12);_0x2823a0[_0x4c553d(0x133)]?console[_0x4c553d(0x126)]('Organization:\x20'+_0x499277[_0x4c553d(0x116)](bold,_0x2823a0['user']['organizationName'])):(console['log']('API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired'),console[_0x4c553d(0x126)](_0x4c553d(0x15f)));}else console['log']('API\x20Token:\x20✗\x20Not\x20found'),console['log'](_0x4c553d(0x15f));process[_0x4c553d(0x129)][_0x4c553d(0x16c)]&&(console['log'](_0x4c553d(0x131)+getCurrentEnvironment()),console[_0x4c553d(0x126)](_0x4c553d(0x14e)+_0x499277['Eevuy'](getApiBaseUrl)));console[_0x4c553d(0x126)]('\x0a---\x20OpenCode\x20Plugin\x20---');const _0x181274=await getOpencodePluginStatus();if(_0x181274[_0x4c553d(0x12f)]===_0x499277['WALCf'])console['log']('\x20\x20'+_0x499277[_0x4c553d(0x11d)](bold,_0x499277['ATnvq'])+':\x20configured'),_0x181274[_0x4c553d(0x143)]&&console[_0x4c553d(0x126)]('\x20\x20'+_0x181274[_0x4c553d(0x143)]);else _0x499277['WtDee'](_0x181274[_0x4c553d(0x12f)],'not_configured')?(console['log'](_0x499277['aKyam']),_0x181274['details']&&console['log']('\x20\x20'+_0x181274['details']),console[_0x4c553d(0x126)](_0x499277[_0x4c553d(0x164)])):console['log'](_0x499277['QSDZF']);console[_0x4c553d(0x126)]('\x0a---\x20Claude\x20Code\x20Plugin\x20---');const _0x5a75fa=await _0x499277[_0x4c553d(0x14c)](getPluginInfo,_0x4c553d(0x149));if(_0x5a75fa){const _0x3300ff=_0x5a75fa[_0x4c553d(0x14b)]||_0x499277['GEila'],_0x2594c5=_0x5a75fa['enabled']?_0x499277[_0x4c553d(0x147)]:_0x4c553d(0x16d);console[_0x4c553d(0x126)]('\x20\x20'+bold(_0x4c553d(0x149))+':\x20installed\x20('+_0x3300ff+',\x20'+_0x2594c5+')');}else console[_0x4c553d(0x126)](_0x499277[_0x4c553d(0x160)]),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)');console['log'](_0x4c553d(0x13a));const {project:_0x200d2b,user:_0x235683}=await getInstalledSkills(),_0x463c05=_0x200d2b['filter'](_0x31ace3=>RANGER_MANAGED_SKILLS[_0x4c553d(0x118)](_0x31ace3['name'])),_0x4fda73=_0x235683['filter'](_0x3275f8=>RANGER_MANAGED_SKILLS['includes'](_0x3275f8[_0x4c553d(0x151)])),_0x36e887=_0x463c05['length']+_0x4fda73['length'];if(_0x499277[_0x4c553d(0x124)](_0x36e887,0x0))console[_0x4c553d(0x126)](_0x4c553d(0x12c)),console['log'](_0x4c553d(0x114));else{if(_0x463c05['length']>0x0){console['log'](_0x4c553d(0x157));for(const _0x3ee970 of _0x463c05){console[_0x4c553d(0x126)]('\x20\x20\x20\x20'+bold(_0x3ee970['displayName'])+':\x20'+_0x499277['rLHQJ'](link,_0x3ee970['path'],basename(_0x3ee970[_0x4c553d(0x123)])));}}if(_0x499277['ySJEl'](_0x4fda73['length'],0x0)){console['log']('\x20\x20User-level:');for(const _0x1295be of _0x4fda73){console[_0x4c553d(0x126)]('\x20\x20\x20\x20'+_0x499277['wgAaj'](bold,_0x1295be['displayName'])+':\x20'+_0x499277['SMTgN'](link,_0x1295be['path'],basename(_0x1295be['path'])));}}}console[_0x4c553d(0x126)](_0x4c553d(0x161));const {envs:_0xdb9fd1,activeEnv:_0x38ff0f}=await getEnvironments();if(_0xdb9fd1[_0x4c553d(0x148)]===0x0)console['log'](_0x4c553d(0x13e)),console[_0x4c553d(0x126)]('\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>');else{for(const _0x382e66 of _0xdb9fd1){const _0x2cf14f=_0x382e66['isActive']?_0x499277['amfyK']:'',_0x9972b3=_0x382e66['hasEncryptedAuth']?_0x499277['zrLBv']:_0x382e66['hasPlaintextAuth']?'plaintext':_0x499277[_0x4c553d(0x15a)];console[_0x4c553d(0x126)]('\x20\x20'+bold(_0x382e66['name'])+_0x2cf14f),console[_0x4c553d(0x126)]('\x20\x20\x20\x20Auth:\x20'+_0x9972b3),_0x382e66['settingsPath']!==_0x499277['EyrWG']&&console['log']('\x20\x20\x20\x20Settings:\x20'+link(_0x382e66[_0x4c553d(0x130)],basename(_0x382e66['settingsPath'])));}!_0x38ff0f&&(console['log']('\x0a\x20\x20No\x20active\x20profile\x20set'),console['log']('\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20'+_0xdb9fd1[_0x4c553d(0x14a)](_0x1d169c=>_0x1d169c[_0x4c553d(0x151)])[_0x4c553d(0x139)](',\x20')+')'));}console[_0x4c553d(0x126)]('');}
1
+ const _0x599a81=_0x5e56;function _0x1907(){const _0x478eab=['trim','XZpGw','\x20\x20Run:\x20ranger\x20update','ignore','sDcet','26138gXnyRA','DEBUG','\x0a---\x20Skills\x20---','not_configured','Root:\x20','API\x20Environment:\x20','\x20\x20\x20\x20Settings:\x20','\x1b]8;;file://','join','plwQW','@ranger-testing/opencode-plugin','No\x20profiles\x20configured','name','isArray','stderr','jHodp','mOWCH','not_installed','details','xnZzP','plaintext','vivaL','parse','data','auth.json.enc','965286grOUKT','user','GwMfK','\x20\x20Run:\x20ranger\x20setup\x20[token]','552Oesjkz','hfYWc','unknown','NgOVH','success','dsOUb','close','671442ePipHl','\x1b[1m','\x0a\x20\x20No\x20active\x20profile\x20set','log','\x20(latest:\x20','isActive','271557czhYvM','ANvzN','error','REWrA','plugin','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','CsfZa','arymP','higAL','1264326HDIuLi','\x20\x20Run:\x20ranger\x20setup\x20--opencode','kFwIH','Organization:\x20','debug','path','\x20\x20Project-level:','\x20\x20\x20\x20','864OfrgkV','ibAAj','HtdQm','none','version','push','settingsPath','\x20\x20Not\x20installed','encrypted','\x20\x20Not\x20configured','displayName','10715JfHQTm','20ANzLxM','match','scope','hasPlaintextAuth','length','\x0a---\x20OpenCode\x20Plugin\x20---','includes','map','gSZGe','enabled','env','KahrM','RTzui','cwd','Version:\x20','Qusde','pipe','yaTti','No\x20skills\x20installed','4765050NDEXkt','LoEcN','filter','eYFTJ','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','API\x20URL:\x20','\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available'];_0x1907=function(){return _0x478eab;};return _0x1907();}(function(_0x4d9dd2,_0x4c8b7b){const _0x44fdfc=_0x5e56,_0x648cee=_0x4d9dd2();while(!![]){try{const _0x4032b1=-parseInt(_0x44fdfc(0xe6))/0x1+-parseInt(_0x44fdfc(0xef))/0x2+parseInt(_0x44fdfc(0xe0))/0x3+-parseInt(_0x44fdfc(0xd9))/0x4*(parseInt(_0x44fdfc(0x102))/0x5)+-parseInt(_0x44fdfc(0xd5))/0x6+-parseInt(_0x44fdfc(0xbc))/0x7*(-parseInt(_0x44fdfc(0xf7))/0x8)+parseInt(_0x44fdfc(0xb0))/0x9*(parseInt(_0x44fdfc(0x103))/0xa);if(_0x4032b1===_0x4c8b7b)break;else _0x648cee['push'](_0x648cee['shift']());}catch(_0x1b93f1){_0x648cee['push'](_0x648cee['shift']());}}}(_0x1907,0x4f813));import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';import{getCurrentVersion,getLatestVersion}from'./utils/version.js';import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';function _0x5e56(_0x241dab,_0x5727b7){_0x241dab=_0x241dab-0xa4;const _0x1907f0=_0x1907();let _0x5e56ac=_0x1907f0[_0x241dab];return _0x5e56ac;}import{getRangerDir}from'./utils/rangerRoot.js';import{getEnvDir}from'./utils/settings.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x52e395=>_0x599a81(0xe1)+_0x52e395+'\x1b[0m',link=(_0x8df8d8,_0x34bf7f)=>_0x599a81(0xc3)+_0x8df8d8+'\x07'+(_0x34bf7f||_0x8df8d8)+'\x1b]8;;\x07';async function getOpencodePluginStatus(){const _0x4976bd=_0x599a81,_0x5b113c={'higAL':_0x4976bd(0xcd),'ouAwV':'not_configured','qhjwl':_0x4976bd(0xf3),'qyrEw':'config','arymP':_0x4976bd(0xba),'ANvzN':'pipe','KahrM':_0x4976bd(0xe8),'yaTti':_0x4976bd(0xdf)};return new Promise(_0x378003=>{const _0x47dded=_0x4976bd,_0x2cb498={'YJxac':_0x5b113c[_0x47dded(0xee)],'plwQW':'configured','eYFTJ':function(_0x4961d1,_0x21ab9c){return _0x4961d1(_0x21ab9c);},'MLztZ':_0x5b113c['ouAwV']},_0x149b85=spawn('opencode',[_0x5b113c['qhjwl'],_0x5b113c['qyrEw']],{'stdio':[_0x5b113c[_0x47dded(0xed)],_0x47dded(0xad),_0x5b113c[_0x47dded(0xe7)]]});let _0x52c8b2='';_0x149b85['stdout']?.['on']('data',_0x4ac0d6=>{_0x52c8b2+=_0x4ac0d6['toString']();}),_0x149b85[_0x47dded(0xca)]?.['on'](_0x47dded(0xd3),_0x3a568e=>{_0x52c8b2+=_0x3a568e['toString']();}),_0x149b85['on'](_0x5b113c[_0x47dded(0xa8)],()=>{_0x378003({'status':'not_installed'});}),_0x149b85['on'](_0x5b113c[_0x47dded(0xae)],_0x3ab211=>{const _0x489a36=_0x47dded,_0x3e0287={'DViVb':function(_0x521d2e,_0x2454b8){return _0x521d2e!==_0x2454b8;},'zpwKl':_0x489a36(0xc6),'MSwGI':'opencode-plugin'};if(_0x3ab211!==0x0){_0x378003({'status':_0x2cb498['YJxac']});return;}const _0x2c10bc=_0x52c8b2['trim']();let _0x2c8b60=null;if(_0x2c10bc)try{_0x2c8b60=JSON[_0x489a36(0xd2)](_0x2c10bc);}catch{const _0x32f8b4=_0x2c10bc[_0x489a36(0x104)](/\{[\s\S]*\}$/);if(_0x32f8b4)try{_0x2c8b60=JSON[_0x489a36(0xd2)](_0x32f8b4[0x0]);}catch{_0x2c8b60=null;}}const _0x4741b3=Array[_0x489a36(0xc9)](_0x2c8b60?.[_0x489a36(0xea)])?_0x2c8b60?.[_0x489a36(0xea)]:[],_0x34b996=_0x4741b3['some'](_0x372085=>{const _0x12a87c=_0x489a36;if(_0x3e0287['DViVb'](typeof _0x372085,'string'))return![];return _0x372085[_0x12a87c(0x109)](_0x3e0287['zpwKl'])||_0x372085[_0x12a87c(0x109)](_0x3e0287['MSwGI']);});if(_0x34b996){_0x378003({'status':_0x2cb498[_0x489a36(0xc5)],'details':_0x4741b3['length']>0x0?_0x4741b3['length']+'\x20plugin(s)\x20configured':undefined});return;}if(_0x4741b3['length']>0x0){_0x2cb498[_0x489a36(0xb3)](_0x378003,{'status':_0x489a36(0xbf),'details':_0x4741b3['length']+'\x20plugin(s)\x20configured'});return;}_0x378003({'status':_0x2cb498['MLztZ']});});});}async function getSkillsFromDir(_0x324f79,_0x2ff991){const _0x45b872=_0x599a81,_0x3dd1e8={'hfYWc':function(_0x3a1d6b,_0x437c72){return _0x3a1d6b(_0x437c72);},'bjzcI':function(_0x365ffd,_0x53290b){return _0x365ffd(_0x53290b);},'FTtXP':function(_0x20f2ad,_0x16114d,_0x4df440){return _0x20f2ad(_0x16114d,_0x4df440);}};if(!_0x3dd1e8[_0x45b872(0xda)](existsSync,_0x324f79))return[];const _0x3d77db=[];try{const _0x35db9d=await readdir(_0x324f79,{'withFileTypes':!![]});for(const _0x45ed68 of _0x35db9d){if(_0x45ed68['isDirectory']()){const _0x4462bd=join(_0x324f79,_0x45ed68['name'],'SKILL.md');if(_0x3dd1e8['bjzcI'](existsSync,_0x4462bd)){let _0xd60b9e=_0x45ed68['name'];try{const _0x1f8857=await _0x3dd1e8['FTtXP'](readFile,_0x4462bd,'utf-8'),_0x3a09d9=_0x1f8857['match'](/name:\s*(.+)/);_0x3a09d9&&(_0xd60b9e=_0x3a09d9[0x1][_0x45b872(0xb7)]());}catch{}_0x3d77db[_0x45b872(0xfc)]({'name':_0x45ed68['name'],'displayName':_0xd60b9e,'path':_0x4462bd,'level':_0x2ff991});}}}}catch{return[];}return _0x3d77db;}async function getInstalledSkills(){const _0x5aef51=_0x599a81,_0x2ccd89={'Qusde':function(_0x45d0da){return _0x45d0da();},'tHwzQ':'user'},[_0xec7349,_0x1f5edf]=await Promise['all']([getSkillsFromDir(_0x2ccd89[_0x5aef51(0xac)](getProjectSkillsDir),'project'),getSkillsFromDir(_0x2ccd89['Qusde'](getUserSkillsDir),_0x2ccd89['tHwzQ'])]);return{'project':_0xec7349,'user':_0x1f5edf};}async function getEnvironments(){const _0x40bf20=_0x599a81,_0xa0cc38={'GwMfK':'settings.json','loRBU':function(_0x386237,_0x3557eb,_0x151610){return _0x386237(_0x3557eb,_0x151610);},'PGMrk':'auth.json','pOdNL':function(_0x17dfb3,_0x5bc11f,_0x560d23){return _0x17dfb3(_0x5bc11f,_0x560d23);},'CsfZa':function(_0x42fd6c,_0x4769e3){return _0x42fd6c(_0x4769e3);},'XZpGw':'(not\x20found)','tuvyt':function(_0x14abba,_0x372efd){return _0x14abba===_0x372efd;},'mOWCH':function(_0x5d516b){return _0x5d516b();},'NgOVH':function(_0x4182a0,_0x339d57){return _0x4182a0(_0x339d57);}},{envNames:_0x4ef7f4,activeEnv:_0x5cac8d}=await getEnvNames(),_0x507764=_0xa0cc38[_0x40bf20(0xcc)](getRangerDir);if(!_0xa0cc38[_0x40bf20(0xdc)](existsSync,_0x507764))return{'envs':[],'activeEnv':null};const _0x2b128c=_0x4ef7f4[_0x40bf20(0xa4)](_0x4e76b5=>{const _0x29e59a=_0x40bf20,_0x5ec262=getEnvDir(_0x4e76b5),_0xd4a9a=join(_0x5ec262,_0xa0cc38[_0x29e59a(0xd7)]),_0x6604d4=_0xa0cc38['loRBU'](join,_0x5ec262,_0xa0cc38['PGMrk']),_0xdb8c19=_0xa0cc38['pOdNL'](join,_0x5ec262,_0x29e59a(0xd4));return{'name':_0x4e76b5,'settingsPath':_0xa0cc38['CsfZa'](existsSync,_0xd4a9a)?_0xd4a9a:_0xa0cc38[_0x29e59a(0xb8)],'hasPlaintextAuth':existsSync(_0x6604d4),'hasEncryptedAuth':_0xa0cc38[_0x29e59a(0xec)](existsSync,_0xdb8c19),'isActive':_0xa0cc38['tuvyt'](_0x4e76b5,_0x5cac8d)};});return{'envs':_0x2b128c,'activeEnv':_0x5cac8d};}export async function status(){const _0x48001e=_0x599a81,_0x3772d2={'emXGh':'\x0a📊\x20Ranger\x20Status\x0a','dsOUb':function(_0x12c6cd){return _0x12c6cd();},'REWrA':function(_0x238d90,_0x4433c6){return _0x238d90(_0x4433c6);},'kFwIH':'configured','FwRLz':'@ranger-testing/opencode-plugin','PkNDn':function(_0x4b0c26,_0x18a506){return _0x4b0c26===_0x18a506;},'oESZT':_0x48001e(0x100),'DheKY':_0x48001e(0xf0),'vivaL':'ranger@trailhead','xnZzP':'enabled','HtdQm':'disabled','Fmmbk':_0x48001e(0xfe),'zVRkM':'\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','RTzui':_0x48001e(0xf5),'nCwey':function(_0x8de489,_0x284ef1){return _0x8de489(_0x284ef1);},'jHodp':function(_0x3a26c7,_0x47fbac,_0x4d3796){return _0x3a26c7(_0x47fbac,_0x4d3796);},'sDcet':function(_0x47aa74,_0x588962){return _0x47aa74(_0x588962);},'ibAAj':function(_0x220a3f,_0x4373f2){return _0x220a3f(_0x4373f2);},'QuHHj':function(_0x472299,_0x71e780){return _0x472299(_0x71e780);},'LoEcN':function(_0x49a9a8,_0x47d12d){return _0x49a9a8===_0x47d12d;},'CzzdO':_0x48001e(0xff),'gSZGe':'(not\x20found)','zULSi':function(_0x52891c,_0x2d5d1c){return _0x52891c(_0x2d5d1c);}};console[_0x48001e(0xe3)](_0x3772d2['emXGh']);const _0x19946b=process[_0x48001e(0xaa)](),_0x67b28b=_0x3772d2[_0x48001e(0xde)](getRangerDir);if(!_0x3772d2[_0x48001e(0xe9)](existsSync,_0x67b28b)){console[_0x48001e(0xe3)](_0x48001e(0xc0)+link(_0x19946b,_0x3772d2[_0x48001e(0xe9)](bold,basename(_0x19946b)))),console['log']('\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.'),console['log'](_0x48001e(0xb4));return;}console['log'](_0x48001e(0xc0)+link(_0x19946b,bold(basename(_0x19946b))));const _0x3eda20=getCurrentVersion(),_0x237efa=_0x3772d2['dsOUb'](getLatestVersion);if(_0x237efa['version']&&_0x237efa['version']!==_0x3eda20)console['log']('Version:\x20'+_0x3eda20+_0x48001e(0xe4)+_0x237efa['version']+')'),console['log'](_0x48001e(0xb9));else _0x237efa[_0x48001e(0xfb)]?console['log'](_0x48001e(0xab)+_0x3eda20+'\x20(up\x20to\x20date)'):console['log']('Version:\x20'+_0x3eda20);const _0x283001=await _0x3772d2['dsOUb'](getToken);if(_0x283001){const _0x3334ff=await _0x3772d2[_0x48001e(0xe9)](getCurrentUser,_0x283001);_0x3334ff[_0x48001e(0xdd)]?console[_0x48001e(0xe3)](_0x48001e(0xf2)+_0x3772d2[_0x48001e(0xe9)](bold,_0x3334ff[_0x48001e(0xd6)]['organizationName'])):(console['log']('API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired'),console[_0x48001e(0xe3)](_0x48001e(0xd8)));}else console[_0x48001e(0xe3)]('API\x20Token:\x20✗\x20Not\x20found'),console['log'](_0x48001e(0xd8));process[_0x48001e(0xa7)][_0x48001e(0xbd)]&&(console['log'](_0x48001e(0xc1)+_0x3772d2[_0x48001e(0xde)](getCurrentEnvironment)),console[_0x48001e(0xe3)](_0x48001e(0xb5)+getApiBaseUrl()));console[_0x48001e(0xe3)](_0x48001e(0x108));const _0xfe6add=await getOpencodePluginStatus();if(_0xfe6add['status']===_0x3772d2[_0x48001e(0xf1)])console['log']('\x20\x20'+bold(_0x3772d2['FwRLz'])+':\x20configured'),_0xfe6add[_0x48001e(0xce)]&&console['log']('\x20\x20'+_0xfe6add['details']);else _0x3772d2['PkNDn'](_0xfe6add['status'],'not_configured')?(console[_0x48001e(0xe3)](_0x3772d2['oESZT']),_0xfe6add['details']&&console['log']('\x20\x20'+_0xfe6add['details']),console['log'](_0x3772d2['DheKY'])):console['log'](_0x48001e(0xb6));console['log']('\x0a---\x20Claude\x20Code\x20Plugin\x20---');const _0xa37a2c=await getPluginInfo(_0x3772d2['vivaL']);if(_0xa37a2c){const _0x2f59b2=_0xa37a2c[_0x48001e(0x105)]||_0x48001e(0xdb),_0x466507=_0xa37a2c[_0x48001e(0xa6)]?_0x3772d2[_0x48001e(0xcf)]:_0x3772d2[_0x48001e(0xf9)];console['log']('\x20\x20'+bold(_0x3772d2[_0x48001e(0xd1)])+':\x20installed\x20('+_0x2f59b2+',\x20'+_0x466507+')');}else console['log'](_0x3772d2['Fmmbk']),console['log'](_0x3772d2['zVRkM']);console[_0x48001e(0xe3)](_0x48001e(0xbe));const {project:_0x2dfe4b,user:_0xc5baaf}=await getInstalledSkills(),_0x228ada=_0x2dfe4b['filter'](_0x35570b=>RANGER_MANAGED_SKILLS['includes'](_0x35570b[_0x48001e(0xc8)])),_0x37b674=_0xc5baaf[_0x48001e(0xb2)](_0xabd53f=>RANGER_MANAGED_SKILLS['includes'](_0xabd53f['name'])),_0x47c8de=_0x228ada[_0x48001e(0x107)]+_0x37b674[_0x48001e(0x107)];if(_0x47c8de===0x0)console[_0x48001e(0xe3)](_0x48001e(0xaf)),console[_0x48001e(0xe3)]('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x228ada['length']>0x0){console[_0x48001e(0xe3)](_0x3772d2[_0x48001e(0xa9)]);for(const _0x40f306 of _0x228ada){console[_0x48001e(0xe3)]('\x20\x20\x20\x20'+_0x3772d2['nCwey'](bold,_0x40f306['displayName'])+':\x20'+_0x3772d2[_0x48001e(0xcb)](link,_0x40f306['path'],_0x3772d2[_0x48001e(0xbb)](basename,_0x40f306['path'])));}}if(_0x37b674['length']>0x0){console[_0x48001e(0xe3)]('\x20\x20User-level:');for(const _0xb1dff6 of _0x37b674){console['log'](_0x48001e(0xf6)+_0x3772d2[_0x48001e(0xf8)](bold,_0xb1dff6[_0x48001e(0x101)])+':\x20'+_0x3772d2['jHodp'](link,_0xb1dff6[_0x48001e(0xf4)],_0x3772d2['QuHHj'](basename,_0xb1dff6[_0x48001e(0xf4)])));}}}console[_0x48001e(0xe3)]('\x0a---\x20Profiles\x20---');const {envs:_0x4df39b,activeEnv:_0x36e610}=await getEnvironments();if(_0x3772d2[_0x48001e(0xb1)](_0x4df39b['length'],0x0))console['log'](_0x48001e(0xc7)),console[_0x48001e(0xe3)](_0x48001e(0xeb));else{for(const _0x5ace7f of _0x4df39b){const _0x52db02=_0x5ace7f[_0x48001e(0xe5)]?'\x20(active)':'',_0x3aae45=_0x5ace7f['hasEncryptedAuth']?_0x3772d2['CzzdO']:_0x5ace7f[_0x48001e(0x106)]?_0x48001e(0xd0):_0x48001e(0xfa);console['log']('\x20\x20'+bold(_0x5ace7f['name'])+_0x52db02),console['log']('\x20\x20\x20\x20Auth:\x20'+_0x3aae45),_0x5ace7f['settingsPath']!==_0x3772d2[_0x48001e(0xa5)]&&console[_0x48001e(0xe3)](_0x48001e(0xc2)+link(_0x5ace7f[_0x48001e(0xfd)],_0x3772d2['zULSi'](basename,_0x5ace7f[_0x48001e(0xfd)])));}!_0x36e610&&(console['log'](_0x48001e(0xe2)),console[_0x48001e(0xe3)]('\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20'+_0x4df39b['map'](_0x5057ff=>_0x5057ff[_0x48001e(0xc8)])[_0x48001e(0xc4)](',\x20')+')'));}console[_0x48001e(0xe3)]('');}
@@ -1 +1 @@
1
- function _0x8a5e(_0x5aa3f9,_0x2e7c9b){_0x5aa3f9=_0x5aa3f9-0x1b5;const _0x3a7696=_0x3a76();let _0x8a5e6a=_0x3a7696[_0x5aa3f9];return _0x8a5e6a;}(function(_0x5a28f5,_0x5ba861){const _0x493866=_0x8a5e,_0x38208c=_0x5a28f5();while(!![]){try{const _0x266042=-parseInt(_0x493866(0x1ed))/0x1*(-parseInt(_0x493866(0x1d6))/0x2)+-parseInt(_0x493866(0x1ec))/0x3+parseInt(_0x493866(0x1d5))/0x4+parseInt(_0x493866(0x1d0))/0x5*(-parseInt(_0x493866(0x1e4))/0x6)+parseInt(_0x493866(0x1b5))/0x7*(parseInt(_0x493866(0x1dc))/0x8)+-parseInt(_0x493866(0x1bc))/0x9*(-parseInt(_0x493866(0x1f2))/0xa)+-parseInt(_0x493866(0x1c5))/0xb;if(_0x266042===_0x5ba861)break;else _0x38208c['push'](_0x38208c['shift']());}catch(_0x2c379d){_0x38208c['push'](_0x38208c['shift']());}}}(_0x3a76,0x50df2));import{spawn}from'child_process';import{existsSync}from'fs';import{readFile,writeFile}from'fs/promises';import{installSkill,removeSkill,RANGER_MANAGED_SKILLS,DEPRECATED_SKILLS}from'./utils/skills.js';import{PACKAGE_NAME,getCurrentVersion,getLatestVersion,compareVersions}from'./utils/version.js';import{getSkillsDir}from'./utils/claudeConfig.js';import{getOpencodeSkillsDir}from'./utils/opencodeConfig.js';import{join}from'path';import{migrateActiveProfileFile}from'./utils/activeProfile.js';import{getRangerDir}from'./utils/rangerRoot.js';import{isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function runInstall(){const _0x3bff26=_0x8a5e,_0x1da36d={'SAwtU':_0x3bff26(0x1c9),'nEkMR':function(_0x513937,_0x11c776){return _0x513937===_0x11c776;}};return new Promise(_0x5ccf1a=>{const _0x46b7b9=_0x3bff26;console['log']('\x0aInstalling\x20'+PACKAGE_NAME+_0x46b7b9(0x1f4));const _0xffd174=spawn(_0x1da36d['SAwtU'],[_0x46b7b9(0x1ba),'-g',PACKAGE_NAME+'@latest'],{'stdio':_0x46b7b9(0x1cf),'shell':_0x1da36d[_0x46b7b9(0x1c3)](process['platform'],'win32')});_0xffd174['on'](_0x46b7b9(0x1e1),_0x4778b4=>{_0x5ccf1a(_0x4778b4===0x0);}),_0xffd174['on'](_0x46b7b9(0x1d2),()=>{_0x5ccf1a(![]);});});}async function updateClaudeMarketplace(){const _0x10168d=_0x8a5e,_0x368de6={'TbcIo':function(_0x4d1e54,_0x468b7b){return _0x4d1e54===_0x468b7b;},'IdIUE':function(_0x38834e,_0x2b4b77){return _0x38834e(_0x2b4b77);},'gMknx':function(_0x4dbeb1,_0x57adef,_0x43dd26,_0x874d99){return _0x4dbeb1(_0x57adef,_0x43dd26,_0x874d99);},'mAraD':_0x10168d(0x1ca),'YoBlO':_0x10168d(0x1e3),'wkbbv':_0x10168d(0x1de),'lbUVV':'update','FBjpM':'pipe','whLod':_0x10168d(0x1e1),'GOfPc':'error'};return new Promise(_0x25e373=>{const _0x3312a3=_0x10168d,_0x1cf38a=_0x368de6['gMknx'](spawn,_0x368de6['mAraD'],[_0x368de6['YoBlO'],_0x368de6['wkbbv'],_0x368de6['lbUVV'],'trailhead'],{'stdio':_0x368de6[_0x3312a3(0x1e8)],'shell':process[_0x3312a3(0x1f1)]===_0x3312a3(0x1c2)});_0x1cf38a['on'](_0x368de6['whLod'],_0x95d886=>{_0x25e373(_0x368de6['TbcIo'](_0x95d886,0x0));}),_0x1cf38a['on'](_0x368de6[_0x3312a3(0x1d3)],()=>{_0x368de6['IdIUE'](_0x25e373,![]);});});}async function updateClaudePlugin(_0x20bedc){const _0x2d2ff5=_0x8a5e,_0x4e9da3={'WHDbC':function(_0x5885ec,_0x5d68bf,_0xbbcd83,_0xadf613){return _0x5885ec(_0x5d68bf,_0xbbcd83,_0xadf613);},'hWrhG':_0x2d2ff5(0x1ca),'KnoVw':'pipe','kvubV':function(_0x290285,_0x4eaeca){return _0x290285===_0x4eaeca;},'dsbXI':'win32','BiZLv':_0x2d2ff5(0x1d2)};return new Promise(_0x5e9a11=>{const _0x31c5f0=_0x2d2ff5,_0x5f309f={'UhMNZ':function(_0x17cbb2,_0x57fc50){return _0x17cbb2(_0x57fc50);}},_0xce2d9d=[_0x31c5f0(0x1e3),'update',_0x31c5f0(0x1bb)];_0x20bedc&&_0xce2d9d[_0x31c5f0(0x1c1)](_0x31c5f0(0x1d7),_0x20bedc);const _0x2e8ee6=_0x4e9da3[_0x31c5f0(0x1df)](spawn,_0x4e9da3[_0x31c5f0(0x1ea)],_0xce2d9d,{'stdio':_0x4e9da3[_0x31c5f0(0x1bd)],'shell':_0x4e9da3['kvubV'](process['platform'],_0x4e9da3['dsbXI'])});_0x2e8ee6['on']('close',_0x33b4bb=>{_0x5e9a11(_0x33b4bb===0x0);}),_0x2e8ee6['on'](_0x4e9da3[_0x31c5f0(0x1b6)],()=>{_0x5f309f['UhMNZ'](_0x5e9a11,![]);});});}function isSkillInstalled(_0x3c8d91,_0x40f97b,_0x427fd3){const _0x3d7e25=_0x8a5e,_0x355cff={'GGUqc':_0x3d7e25(0x1e2),'PsBIC':function(_0xad25d6,_0x46cb86){return _0xad25d6(_0x46cb86);}},_0x40286d=_0x427fd3===_0x355cff[_0x3d7e25(0x1d8)]?_0x355cff[_0x3d7e25(0x1c7)](getOpencodeSkillsDir,_0x40f97b):getSkillsDir(_0x40f97b),_0x12be95=join(_0x40286d,_0x3c8d91);return existsSync(_0x12be95);}async function reinstallSkills(_0x19a916){const _0x4b5140=_0x8a5e,_0xb6d2f7={'ZzJWh':'user','XPSlS':function(_0x2af4f4,_0x39c45b,_0x10acfb,_0x49a66c){return _0x2af4f4(_0x39c45b,_0x10acfb,_0x49a66c);},'fWprP':'claude','xCclr':function(_0x342ce6,_0x582299,_0x262b89,_0x1cbe9d){return _0x342ce6(_0x582299,_0x262b89,_0x1cbe9d);},'Zxxzt':function(_0x1ffae8,_0x25bb69){return _0x1ffae8===_0x25bb69;},'LeDWC':_0x4b5140(0x1c4)},_0x345fbe=[_0x4b5140(0x1e9),_0xb6d2f7[_0x4b5140(0x1f0)]],_0x36957f=[];for(const _0x5e67d3 of _0x345fbe){for(const _0x1d53a8 of RANGER_MANAGED_SKILLS){_0xb6d2f7[_0x4b5140(0x1c8)](isSkillInstalled,_0x1d53a8,_0x5e67d3,_0x4b5140(0x1ca))&&_0x36957f['push']({'skillName':_0x1d53a8,'level':_0x5e67d3,'platform':_0xb6d2f7['fWprP']}),_0xb6d2f7['xCclr'](isSkillInstalled,_0x1d53a8,_0x5e67d3,'opencode')&&_0x36957f[_0x4b5140(0x1c1)]({'skillName':_0x1d53a8,'level':_0x5e67d3,'platform':'opencode'});}}for(const _0x51d3c9 of _0x345fbe){for(const _0x2db516 of DEPRECATED_SKILLS){await removeSkill(_0x2db516,_0x51d3c9);}}if(_0xb6d2f7['Zxxzt'](_0x36957f[_0x4b5140(0x1db)],0x0)){console['log'](_0xb6d2f7[_0x4b5140(0x1f7)]);return;}console[_0x4b5140(0x1d9)](_0x4b5140(0x1e7)+_0x36957f[_0x4b5140(0x1db)]+_0x4b5140(0x1cc));for(const {skillName:_0x30970c,level:_0x34af10,platform:_0x51d2f3}of _0x36957f){try{await installSkill(_0x30970c,{'level':_0x34af10,'cliVersion':_0x19a916,'platform':_0x51d2f3});}catch(_0x38eb44){console[_0x4b5140(0x1b8)]('\x20\x20Failed\x20to\x20reinstall\x20'+_0x51d2f3+'\x20'+_0x34af10+'\x20skill\x20'+_0x30970c+':',_0x38eb44);}}}async function ensureActiveProfileGitignored(){const _0x205ff7=_0x8a5e,_0x3048fb={'VSikw':function(_0x2fc766){return _0x2fc766();},'rJxYy':function(_0x1037f8,_0x10a813){return _0x1037f8(_0x10a813);},'USUeM':'active-profile.txt','njxoq':function(_0x3c51e1,_0xb3ffb5,_0x3bfa3f,_0x357b52){return _0x3c51e1(_0xb3ffb5,_0x3bfa3f,_0x357b52);},'WdOSd':'utf-8'},_0x50deb2=join(_0x3048fb[_0x205ff7(0x1d1)](getRangerDir),_0x205ff7(0x1eb));if(!_0x3048fb['rJxYy'](existsSync,_0x50deb2))return![];let _0x56e293='';try{_0x56e293=await readFile(_0x50deb2,_0x205ff7(0x1ce));}catch{return![];}const _0x267aa1=_0x56e293['split'](/\r?\n/);if(_0x267aa1['some'](_0x3ccf96=>_0x3ccf96[_0x205ff7(0x1e6)]()===_0x205ff7(0x1e5)))return![];let _0x2a60ec=_0x267aa1[_0x205ff7(0x1d4)](_0x50947b=>_0x50947b[_0x205ff7(0x1e6)]()===_0x205ff7(0x1dd));_0x2a60ec===-0x1&&(_0x2a60ec=_0x267aa1['length']);_0x267aa1['splice'](_0x2a60ec,0x0,_0x3048fb[_0x205ff7(0x1be)]);let _0x139c9b=_0x267aa1['join']('\x0a');!_0x139c9b['endsWith']('\x0a')&&(_0x139c9b+='\x0a');try{await _0x3048fb['njxoq'](writeFile,_0x50deb2,_0x139c9b,_0x3048fb['WdOSd']);}catch{return![];}return!![];}function _0x3a76(){const _0x325cea=['KnoVw','USUeM','cRZZo','Update\x20failed.','push','win32','nEkMR','\x0aNo\x20ranger-managed\x20skills\x20found\x20to\x20reinstall.','882739NiOGQy','KfFoY','PsBIC','XPSlS','npm','claude','\x0aCould\x20not\x20check\x20latest\x20version:\x20','\x20ranger-managed\x20skill(s)...','LHNnw','utf-8','inherit','15USpoFC','VSikw','error','GOfPc','findIndex','334996kMSYZm','9228vbRSSS','--scope','GGUqc','log','\x0aClaude\x20plugin\x20updated\x20(user\x20scope).','length','16OEaIri','active-feature.txt','marketplace','WHDbC','fGyrZ','close','opencode','plugin','266232xoZzLT','active-profile.txt','trim','\x0aReinstalling\x20','FBjpM','project','hWrhG','.gitignore','483609VcGBuY','96aqtTKN','\x0aYour\x20version\x20(','version','ZzJWh','platform','110mgqpPw','Attempting\x20install\x20anyway...','@latest...\x0a','\x0aClaude\x20marketplace\x20updated\x20(trailhead).','qXXZB','LeDWC','Checking\x20for\x20updates...','167748qOomla','BiZLv','Ghnbc','warn','\x0aSuccessfully\x20updated\x20to\x20version\x20','install','ranger@trailhead','107343XMAJgb'];_0x3a76=function(){return _0x325cea;};return _0x3a76();}export async function update(){const _0x173903=_0x8a5e,_0x30ce67={'oLnzY':_0x173903(0x1f8),'Ghnbc':function(_0xdee661){return _0xdee661();},'cRZZo':_0x173903(0x1f3),'LHNnw':'\x0aSuccessfully\x20installed\x20latest\x20version.','fGyrZ':'\x0aYou\x20are\x20already\x20on\x20the\x20latest\x20version.','KfFoY':function(_0x162b15,_0x1647f7){return _0x162b15(_0x1647f7);},'qXXZB':'ranger@trailhead'},_0x2b45fd=getCurrentVersion();console[_0x173903(0x1d9)]('\x0aCurrent\x20version:\x20'+_0x2b45fd),console[_0x173903(0x1d9)](_0x30ce67['oLnzY']);const _0x7cafca=_0x30ce67[_0x173903(0x1b7)](getLatestVersion);let _0x5ed8b9=_0x2b45fd;if(!_0x7cafca[_0x173903(0x1ef)]){console['warn'](_0x173903(0x1cb)+_0x7cafca[_0x173903(0x1d2)]),console[_0x173903(0x1d9)](_0x30ce67[_0x173903(0x1bf)]);const _0x56df00=await runInstall();if(_0x56df00)console[_0x173903(0x1d9)](_0x30ce67[_0x173903(0x1cd)]),_0x5ed8b9=getCurrentVersion();else throw new Error('Update\x20failed:\x20'+_0x7cafca['error']);}else{const _0x5018a5=_0x7cafca['version'];console[_0x173903(0x1d9)]('Latest\x20version:\x20\x20'+_0x5018a5);const _0x3f5ce3=compareVersions(_0x2b45fd,_0x5018a5);if(_0x3f5ce3===0x0)console[_0x173903(0x1d9)](_0x30ce67[_0x173903(0x1e0)]);else{if(_0x3f5ce3<0x0)console[_0x173903(0x1d9)](_0x173903(0x1ee)+_0x2b45fd+')\x20is\x20newer\x20than\x20the\x20published\x20version\x20('+_0x5018a5+').');else{const _0x5314df=await runInstall();if(_0x5314df)console['log'](_0x173903(0x1b9)+_0x5018a5),_0x5ed8b9=_0x5018a5;else throw new Error(_0x173903(0x1c0));}}}await reinstallSkills(_0x5ed8b9);const _0x35c73b=await _0x30ce67['KfFoY'](isMarketplaceAdded,'trailhead'),_0x5b599d=await isPluginInstalled(_0x30ce67[_0x173903(0x1f6)]);if(_0x35c73b){const _0x5b177f=await _0x30ce67['Ghnbc'](updateClaudeMarketplace);_0x5b177f&&console[_0x173903(0x1d9)](_0x173903(0x1f5));}if(_0x5b599d){const _0x3fbc03=await updateClaudePlugin();_0x3fbc03&&console['log'](_0x173903(0x1da));const _0x1406e1=await _0x30ce67[_0x173903(0x1c6)](updateClaudePlugin,'project');_0x1406e1&&console['log']((_0x3fbc03?'':'\x0a')+'Claude\x20plugin\x20updated\x20(project\x20scope).');}const _0xabe333=await migrateActiveProfileFile();_0xabe333&&console['log']('✓\x20Migrated\x20active\x20profile\x20file');const _0x35c1de=await _0x30ce67[_0x173903(0x1b7)](ensureActiveProfileGitignored);console[_0x173903(0x1d9)]('\x0a✅\x20Update\x20complete!');}
1
+ (function(_0x4e9d51,_0x663f6d){const _0x1b2de7=_0x5f5c,_0x3bf0de=_0x4e9d51();while(!![]){try{const _0x559a99=parseInt(_0x1b2de7(0xbd))/0x1+-parseInt(_0x1b2de7(0xe1))/0x2*(-parseInt(_0x1b2de7(0xec))/0x3)+-parseInt(_0x1b2de7(0xcb))/0x4+parseInt(_0x1b2de7(0xc9))/0x5+parseInt(_0x1b2de7(0xd4))/0x6*(-parseInt(_0x1b2de7(0xf3))/0x7)+parseInt(_0x1b2de7(0xb7))/0x8*(-parseInt(_0x1b2de7(0xe6))/0x9)+parseInt(_0x1b2de7(0xdc))/0xa;if(_0x559a99===_0x663f6d)break;else _0x3bf0de['push'](_0x3bf0de['shift']());}catch(_0x1d44cc){_0x3bf0de['push'](_0x3bf0de['shift']());}}}(_0x4b40,0x86d77));import{spawn}from'child_process';import{existsSync}from'fs';function _0x5f5c(_0x40c30e,_0x222c68){_0x40c30e=_0x40c30e-0xb3;const _0x4b40f9=_0x4b40();let _0x5f5c73=_0x4b40f9[_0x40c30e];return _0x5f5c73;}import{readFile,writeFile}from'fs/promises';import{installSkill,removeSkill,RANGER_MANAGED_SKILLS,DEPRECATED_SKILLS}from'./utils/skills.js';import{PACKAGE_NAME,getCurrentVersion,getLatestVersion,compareVersions}from'./utils/version.js';import{getSkillsDir}from'./utils/claudeConfig.js';function _0x4b40(){const _0x3f7bb0=['jmHMC','56ztAAmm','\x0aYou\x20are\x20already\x20on\x20the\x20latest\x20version.','UqybH','EYtWj','FfWjR','\x0a✅\x20Update\x20complete!','595167HLPXXO','NnslC','join','TFxMC','geCJM','✓\x20Migrated\x20active\x20profile\x20file','@latest','CjZCL','.gitignore','log','iTfKb','QgjDN','3848680PmNYAf','FoLVj','3054284HVCPgR','error','@latest...\x0a','\x0aClaude\x20plugin\x20updated\x20(user\x20scope).','update','seiaJ','GfWMX','marketplace','install','24AENZCb','YuJxr','claude','push','\x0aInstalling\x20','qoyTV','project','\x20skill\x20','2736400qVIfjb','WceMW','zQFNv','\x0aYour\x20version\x20(','DCdCc','4Gmjzse','iLLdf','\x0aSuccessfully\x20updated\x20to\x20version\x20','bsWmf','plugin','1270989nAbxqk','cohNP','platform','opencode','\x0aSuccessfully\x20installed\x20latest\x20version.','\x0aReinstalling\x20','1584273SboBUO','HvFgL','qeeTw','ranger@trailhead','trim','LgOTf','SxsUR','683018nzZxab','close','iGWYm','length','--scope','SrnaN','pipe'];_0x4b40=function(){return _0x3f7bb0;};return _0x4b40();}import{getOpencodeSkillsDir}from'./utils/opencodeConfig.js';import{join}from'path';import{migrateActiveProfileFile}from'./utils/activeProfile.js';import{getRangerDir}from'./utils/rangerRoot.js';import{isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function runInstall(){const _0x354567=_0x5f5c,_0x377499={'clRcR':function(_0xefdab8,_0x106772,_0x3d317e,_0x547bad){return _0xefdab8(_0x106772,_0x3d317e,_0x547bad);},'XOLsN':'npm','SxsUR':_0x354567(0xd3),'FfWjR':'inherit','YuJxr':'win32'};return new Promise(_0x1f45eb=>{const _0x3e08e3=_0x354567;console[_0x3e08e3(0xc6)](_0x3e08e3(0xd8)+PACKAGE_NAME+_0x3e08e3(0xcd));const _0x5aa4c5=_0x377499['clRcR'](spawn,_0x377499['XOLsN'],[_0x377499[_0x3e08e3(0xf2)],'-g',PACKAGE_NAME+_0x3e08e3(0xc3)],{'stdio':_0x377499[_0x3e08e3(0xbb)],'shell':process[_0x3e08e3(0xe8)]===_0x377499[_0x3e08e3(0xd5)]});_0x5aa4c5['on'](_0x3e08e3(0xf4),_0x2ccf39=>{_0x1f45eb(_0x2ccf39===0x0);}),_0x5aa4c5['on']('error',()=>{_0x1f45eb(![]);});});}async function updateClaudeMarketplace(){const _0x1769be=_0x5f5c,_0x3a6a35={'UqybH':_0x1769be(0xd6),'FoLVj':'update','LgOTf':'trailhead','seiaJ':'win32','zQFNv':_0x1769be(0xf4),'uButG':_0x1769be(0xcc)};return new Promise(_0x2b8ac9=>{const _0x252d3e=_0x1769be,_0x37ca95=spawn(_0x3a6a35[_0x252d3e(0xb9)],['plugin',_0x252d3e(0xd2),_0x3a6a35[_0x252d3e(0xca)],_0x3a6a35[_0x252d3e(0xf1)]],{'stdio':'pipe','shell':process['platform']===_0x3a6a35[_0x252d3e(0xd0)]});_0x37ca95['on'](_0x3a6a35[_0x252d3e(0xde)],_0xdf900b=>{_0x2b8ac9(_0xdf900b===0x0);}),_0x37ca95['on'](_0x3a6a35['uButG'],()=>{_0x2b8ac9(![]);});});}async function updateClaudePlugin(_0xf47cff){const _0x40f6a2=_0x5f5c,_0x1f7ba9={'geCJM':function(_0x2ed037,_0xd5ce7a){return _0x2ed037(_0xd5ce7a);},'bvqHg':_0x40f6a2(0xe5),'HvFgL':_0x40f6a2(0xef),'ygNPH':_0x40f6a2(0xb3),'WceMW':_0x40f6a2(0xf4)};return new Promise(_0x4af6a1=>{const _0x52e472=_0x40f6a2,_0x59b4df={'mEXoG':function(_0x4b262e,_0x52c425){return _0x4b262e===_0x52c425;},'iGWYm':function(_0x19eeb7,_0x324d6e){const _0x1fa7d4=_0x5f5c;return _0x1f7ba9[_0x1fa7d4(0xc1)](_0x19eeb7,_0x324d6e);}},_0x1a38c7=[_0x1f7ba9['bvqHg'],_0x52e472(0xcf),_0x1f7ba9[_0x52e472(0xed)]];_0xf47cff&&_0x1a38c7['push'](_0x1f7ba9['ygNPH'],_0xf47cff);const _0xa302cc=spawn('claude',_0x1a38c7,{'stdio':_0x52e472(0xb5),'shell':process[_0x52e472(0xe8)]==='win32'});_0xa302cc['on'](_0x1f7ba9[_0x52e472(0xdd)],_0x5e615a=>{_0x4af6a1(_0x59b4df['mEXoG'](_0x5e615a,0x0));}),_0xa302cc['on'](_0x52e472(0xcc),()=>{const _0x43f2c3=_0x52e472;_0x59b4df[_0x43f2c3(0xf5)](_0x4af6a1,![]);});});}function isSkillInstalled(_0x50b612,_0x5ce078,_0x30d1d8){const _0x25e59c={'JBwld':function(_0x4fd065,_0x76ac37){return _0x4fd065(_0x76ac37);}},_0x4b1e90=_0x30d1d8==='opencode'?getOpencodeSkillsDir(_0x5ce078):getSkillsDir(_0x5ce078),_0x28e87d=join(_0x4b1e90,_0x50b612);return _0x25e59c['JBwld'](existsSync,_0x28e87d);}async function reinstallSkills(_0x554cd2){const _0x311762=_0x5f5c,_0x7a8cc0={'dTwBM':function(_0x5d4304,_0x257391,_0x5babca,_0x284322){return _0x5d4304(_0x257391,_0x5babca,_0x284322);},'bsWmf':_0x311762(0xd6),'iTfKb':function(_0x509b9b,_0x100d35,_0x2e0cc6,_0x3aa527){return _0x509b9b(_0x100d35,_0x2e0cc6,_0x3aa527);},'qeeTw':_0x311762(0xe9)},_0xc9fb10=[_0x311762(0xda),'user'],_0x170389=[];for(const _0x725cdb of _0xc9fb10){for(const _0x5906d0 of RANGER_MANAGED_SKILLS){_0x7a8cc0['dTwBM'](isSkillInstalled,_0x5906d0,_0x725cdb,'claude')&&_0x170389[_0x311762(0xd7)]({'skillName':_0x5906d0,'level':_0x725cdb,'platform':_0x7a8cc0[_0x311762(0xe4)]}),_0x7a8cc0[_0x311762(0xc7)](isSkillInstalled,_0x5906d0,_0x725cdb,'opencode')&&_0x170389[_0x311762(0xd7)]({'skillName':_0x5906d0,'level':_0x725cdb,'platform':_0x7a8cc0[_0x311762(0xee)]});}}for(const _0xef3406 of _0xc9fb10){for(const _0x1815d5 of DEPRECATED_SKILLS){await removeSkill(_0x1815d5,_0xef3406);}}if(_0x170389[_0x311762(0xf6)]===0x0){console[_0x311762(0xc6)]('\x0aNo\x20ranger-managed\x20skills\x20found\x20to\x20reinstall.');return;}console['log'](_0x311762(0xeb)+_0x170389[_0x311762(0xf6)]+'\x20ranger-managed\x20skill(s)...');for(const {skillName:_0x412711,level:_0x2ee8d6,platform:_0xbb9208}of _0x170389){try{await installSkill(_0x412711,{'level':_0x2ee8d6,'cliVersion':_0x554cd2,'platform':_0xbb9208});}catch(_0x80ea9){console['warn']('\x20\x20Failed\x20to\x20reinstall\x20'+_0xbb9208+'\x20'+_0x2ee8d6+_0x311762(0xdb)+_0x412711+':',_0x80ea9);}}}async function ensureActiveProfileGitignored(){const _0x18db2e=_0x5f5c,_0x1a2ed7={'cohNP':function(_0xeed7d2,_0x3e0d45,_0x57b1e1){return _0xeed7d2(_0x3e0d45,_0x57b1e1);},'QgjDN':function(_0x11fade){return _0x11fade();},'CjZCL':function(_0x3b85e6,_0x2201e5){return _0x3b85e6(_0x2201e5);},'jmHMC':'utf-8','ZYkaB':function(_0x2b8bce,_0x396c2d){return _0x2b8bce===_0x396c2d;}},_0x281348=_0x1a2ed7['cohNP'](join,_0x1a2ed7[_0x18db2e(0xc8)](getRangerDir),_0x18db2e(0xc5));if(!_0x1a2ed7[_0x18db2e(0xc4)](existsSync,_0x281348))return![];let _0xadd64='';try{_0xadd64=await _0x1a2ed7[_0x18db2e(0xe7)](readFile,_0x281348,_0x1a2ed7[_0x18db2e(0xb6)]);}catch{return![];}const _0x5efd43=_0xadd64['split'](/\r?\n/);if(_0x5efd43['some'](_0x52c63a=>_0x52c63a[_0x18db2e(0xf0)]()==='active-profile.txt'))return![];let _0x232662=_0x5efd43['findIndex'](_0x1cf6e2=>_0x1cf6e2['trim']()==='active-feature.txt');_0x1a2ed7['ZYkaB'](_0x232662,-0x1)&&(_0x232662=_0x5efd43[_0x18db2e(0xf6)]);_0x5efd43['splice'](_0x232662,0x0,'active-profile.txt');let _0x4cb970=_0x5efd43[_0x18db2e(0xbf)]('\x0a');!_0x4cb970['endsWith']('\x0a')&&(_0x4cb970+='\x0a');try{await writeFile(_0x281348,_0x4cb970,_0x1a2ed7[_0x18db2e(0xb6)]);}catch{return![];}return!![];}export async function update(){const _0x5ea871=_0x5f5c,_0x508f64={'YxPZW':'Checking\x20for\x20updates...','IPMIN':'Attempting\x20install\x20anyway...','DCdCc':function(_0x4ccfec,_0x3e9866,_0x25ef36){return _0x4ccfec(_0x3e9866,_0x25ef36);},'NnslC':function(_0x5bcef7,_0x2aceb5){return _0x5bcef7===_0x2aceb5;},'TFxMC':_0x5ea871(0xb8),'peSep':function(_0xcc16d3,_0x5252d8){return _0xcc16d3<_0x5252d8;},'SrnaN':function(_0x332a95){return _0x332a95();},'iLLdf':'Update\x20failed.','qoyTV':function(_0x101673,_0x4c9a0e){return _0x101673(_0x4c9a0e);},'EYtWj':_0x5ea871(0xef),'iqBDa':'\x0aClaude\x20marketplace\x20updated\x20(trailhead).','PEFjt':_0x5ea871(0xce),'GfWMX':function(_0x1b8f04,_0x5b0849){return _0x1b8f04(_0x5b0849);},'USNha':_0x5ea871(0xc2),'wofsi':function(_0x5439a3){return _0x5439a3();}},_0x4dbdfe=getCurrentVersion();console['log']('\x0aCurrent\x20version:\x20'+_0x4dbdfe),console['log'](_0x508f64['YxPZW']);const _0x718ee8=getLatestVersion();let _0x59c1ca=_0x4dbdfe;if(!_0x718ee8['version']){console['warn']('\x0aCould\x20not\x20check\x20latest\x20version:\x20'+_0x718ee8[_0x5ea871(0xcc)]),console['log'](_0x508f64['IPMIN']);const _0x261263=await runInstall();if(_0x261263)console[_0x5ea871(0xc6)](_0x5ea871(0xea)),_0x59c1ca=getCurrentVersion();else throw new Error('Update\x20failed:\x20'+_0x718ee8['error']);}else{const _0x3a4053=_0x718ee8['version'];console[_0x5ea871(0xc6)]('Latest\x20version:\x20\x20'+_0x3a4053);const _0x1599f3=_0x508f64[_0x5ea871(0xe0)](compareVersions,_0x4dbdfe,_0x3a4053);if(_0x508f64[_0x5ea871(0xbe)](_0x1599f3,0x0))console[_0x5ea871(0xc6)](_0x508f64[_0x5ea871(0xc0)]);else{if(_0x508f64['peSep'](_0x1599f3,0x0))console['log'](_0x5ea871(0xdf)+_0x4dbdfe+')\x20is\x20newer\x20than\x20the\x20published\x20version\x20('+_0x3a4053+').');else{const _0x2673b3=await _0x508f64[_0x5ea871(0xb4)](runInstall);if(_0x2673b3)console['log'](_0x5ea871(0xe3)+_0x3a4053),_0x59c1ca=_0x3a4053;else throw new Error(_0x508f64[_0x5ea871(0xe2)]);}}}await _0x508f64[_0x5ea871(0xd9)](reinstallSkills,_0x59c1ca);const _0x398f90=await isMarketplaceAdded('trailhead'),_0x17ae8d=await isPluginInstalled(_0x508f64[_0x5ea871(0xba)]);if(_0x398f90){const _0x4152cc=await updateClaudeMarketplace();_0x4152cc&&console[_0x5ea871(0xc6)](_0x508f64['iqBDa']);}if(_0x17ae8d){const _0x1800d9=await updateClaudePlugin();_0x1800d9&&console['log'](_0x508f64['PEFjt']);const _0x494492=await _0x508f64[_0x5ea871(0xd1)](updateClaudePlugin,'project');_0x494492&&console['log']((_0x1800d9?'':'\x0a')+'Claude\x20plugin\x20updated\x20(project\x20scope).');}const _0x4398f3=await _0x508f64['SrnaN'](migrateActiveProfileFile);_0x4398f3&&console['log'](_0x508f64['USNha']);const _0x2aea7d=await _0x508f64['wofsi'](ensureActiveProfileGitignored);console[_0x5ea871(0xc6)](_0x5ea871(0xbc));}