@ranger-testing/ranger-cli 2.2.5 → 2.3.1

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(_0x179e8e,_0x1032e9){const _0x422563=_0x4107,_0x2c2a00=_0x179e8e();while(!![]){try{const _0x1e7bec=parseInt(_0x422563(0x1bd))/0x1+parseInt(_0x422563(0x1d4))/0x2+parseInt(_0x422563(0x1d3))/0x3*(-parseInt(_0x422563(0x1cc))/0x4)+parseInt(_0x422563(0x1c0))/0x5+parseInt(_0x422563(0x1c8))/0x6*(-parseInt(_0x422563(0x1c2))/0x7)+-parseInt(_0x422563(0x1d0))/0x8*(-parseInt(_0x422563(0x1ba))/0x9)+parseInt(_0x422563(0x1b7))/0xa*(-parseInt(_0x422563(0x1d6))/0xb);if(_0x1e7bec===_0x1032e9)break;else _0x2c2a00['push'](_0x2c2a00['shift']());}catch(_0x4ba95a){_0x2c2a00['push'](_0x2c2a00['shift']());}}}(_0x1b6c,0x2a716));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';import{createTelemetryCollector}from'../utils/telemetry.js';function _0x1b6c(){const _0x112907=['block','3xMjYQd','454862HJkYRb','includes','1184700TBfjat','size','40CUmddf','usqxa','IJkGg','27XnxWtS','alloc','sessionId','337858pnZqHe','read','utf8','999500XrzRFH','name','21uBEfXQ','\x20for\x20\x22','message','stop_hook_active','currentSessionId','yZtTe','677706FFkldT','`,\x20then\x20run\x20/exit\x20again.','featureId','zTUNN','490732ErptKO','success','uaoqD','YdLbF','802648HZNLRd','KTBVO'];_0x1b6c=function(){return _0x112907;};return _0x1b6c();}export async function stopHook(_0x324076){const _0x12137c=_0x4107,_0x2d719c={'yZtTe':function(_0x3b6e67,_0x94fb1d){return _0x3b6e67(_0x94fb1d);},'usqxa':function(_0x15823b,_0x6fec5d){return _0x15823b(_0x6fec5d);},'fwzww':function(_0x22d65a,_0x533a95,_0x198e9d,_0x486894){return _0x22d65a(_0x533a95,_0x198e9d,_0x486894);},'zTUNN':'RANGER_SKIP_VERIFICATION','IJkGg':function(_0x454d36,_0x5dcf60,_0x1e4bb2){return _0x454d36(_0x5dcf60,_0x1e4bb2);},'wpmUH':function(_0x9d6ef4,_0x19f2bb,_0x3d70d1){return _0x9d6ef4(_0x19f2bb,_0x3d70d1);},'QBOmx':function(_0x3b3b86,_0x4c5f90){return _0x3b3b86&&_0x4c5f90;},'qVVYu':function(_0x1206e9,_0x57ac4f,_0x39b6e0,_0x335e7c){return _0x1206e9(_0x57ac4f,_0x39b6e0,_0x335e7c);},'YdLbF':function(_0x250b70,_0x3d9dfb,_0x424eea,_0x33960e){return _0x250b70(_0x3d9dfb,_0x424eea,_0x33960e);}},_0x27bbd5=await _0x2d719c[_0x12137c(0x1c7)](getEnabledHookContext,_0x324076),_0x3aecb2=_0x27bbd5?.[_0x12137c(0x1bc)]??null,_0x7fa8a7=_0x2d719c[_0x12137c(0x1b8)](Boolean,_0x27bbd5?.['input']?.[_0x12137c(0x1c5)]),_0x14c831=typeof _0x27bbd5?.['input']?.['transcript_path']==='string'?_0x27bbd5['input']['transcript_path']:null;let _0x21698e=!![];if(!_0x3aecb2){await trackStop(_0x3aecb2,![],_0x21698e);return;}try{const _0xdc0ad5=getSessionEntry(_0x3aecb2);if(!_0xdc0ad5){await _0x2d719c['fwzww'](trackStop,_0x3aecb2,!![],_0x21698e);return;}const _0x5810f4='https://dashboard.ranger.net/features/'+_0xdc0ad5['featureId'],_0x44d78b=_0x2d719c[_0x12137c(0x1cb)],_0x55c0bd=await getToken(),_0x29e318=!_0x7fa8a7;let _0x35e43f=null,_0x467ce0=null;const _0x5a8223=_0x7fa8a7&&await _0x2d719c[_0x12137c(0x1b9)](transcriptHasToken,_0x14c831,_0x44d78b),_0x343ea7=await _0x2d719c['wpmUH'](transcriptHasToken,_0x14c831,_0x5810f4);if(_0x55c0bd)try{const _0x3974ef=await _0x2d719c['yZtTe'](getFeature,_0xdc0ad5[_0x12137c(0x1ca)]);_0x35e43f=_0x3974ef[_0x12137c(0x1c1)]??null,_0x467ce0=_0x3974ef[_0x12137c(0x1c6)]??null;}catch{}if(_0x2d719c['QBOmx'](_0x55c0bd,_0x467ce0))try{await _0x2d719c[_0x12137c(0x1b9)](concludeSession,_0xdc0ad5['featureId'],_0x467ce0);}catch(_0x4b8d8f){if(_0x5a8223){await _0x2d719c['qVVYu'](trackStop,_0x3aecb2,!![],_0x21698e);return;}_0x21698e=![];const _0x597f96=_0x4b8d8f instanceof Error?_0x4b8d8f[_0x12137c(0x1c4)]:String(_0x4b8d8f),_0x494b98={'decision':_0x12137c(0x1d2),'reason':'Failed\x20to\x20conclude\x20Ranger\x20feature\x20review\x20session'+(_0x35e43f?_0x12137c(0x1c3)+_0x35e43f+'\x22':'')+':\x0a\x0a'+_0x597f96+'\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('+_0x5810f4+')\x20and\x20the\x20token\x20`'+_0x44d78b+_0x12137c(0x1c9)};console['log'](JSON['stringify'](_0x494b98)),await _0x2d719c[_0x12137c(0x1cf)](trackStop,_0x3aecb2,!![],_0x21698e);return;}await trackStop(_0x3aecb2,!![],_0x21698e);return;}catch{await trackStop(_0x3aecb2,!![],_0x21698e);return;}}function _0x4107(_0x5ae01e,_0x5a8b2c){_0x5ae01e=_0x5ae01e-0x1b7;const _0x1b6c50=_0x1b6c();let _0x41074f=_0x1b6c50[_0x5ae01e];return _0x41074f;}async function trackStop(_0x389c34,_0x21ed56,_0x39338a){const _0x12f8ff=_0x4107,_0x26ccdb={'jdazY':_0x12f8ff(0x1cd)};try{const _0x48a580=createTelemetryCollector('hook:stop');await _0x48a580['trackCommandStart']({'sessionId':_0x389c34??undefined,'hooksEnabled':_0x21ed56,'stopAllowed':_0x39338a}),await _0x48a580['trackCommandEnd'](_0x26ccdb['jdazY']);}catch{}}async function transcriptHasToken(_0x45ce0f,_0x1ddfaf){const _0x16c759=_0x4107,_0x3fac08={'KTBVO':function(_0x4513,_0x20bb74,_0x2a1f3e){return _0x4513(_0x20bb74,_0x2a1f3e);}};if(!_0x45ce0f)return![];const _0x2c844f=await _0x3fac08[_0x16c759(0x1d1)](readTranscriptTail,_0x45ce0f,0x30d40);return _0x2c844f?_0x2c844f[_0x16c759(0x1d5)](_0x1ddfaf):![];}async function readTranscriptTail(_0x12842b,_0x1c95a0){const _0x181ea1=_0x4107,_0xdc309b={'uaoqD':_0x181ea1(0x1bf)};let _0x1f7a17=null;try{_0x1f7a17=await open(_0x12842b,'r');const _0x3a26ff=await _0x1f7a17['stat'](),_0x5df550=Math['min'](_0x3a26ff[_0x181ea1(0x1d7)],_0x1c95a0);if(_0x5df550<=0x0)return'';const _0x5130e7=Buffer[_0x181ea1(0x1bb)](_0x5df550);return await _0x1f7a17[_0x181ea1(0x1be)](_0x5130e7,0x0,_0x5df550,_0x3a26ff['size']-_0x5df550),_0x5130e7['toString'](_0xdc309b[_0x181ea1(0x1ce)]);}catch{return null;}finally{try{await _0x1f7a17?.['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(_0x5b53b8,_0x5c3e87){var _0x413aa5=_0x1021,_0x4b48f9=_0x5b53b8();while(!![]){try{var _0x1598ca=-parseInt(_0x413aa5(0x16b))/0x1*(-parseInt(_0x413aa5(0x16f))/0x2)+-parseInt(_0x413aa5(0x16d))/0x3+-parseInt(_0x413aa5(0x172))/0x4*(parseInt(_0x413aa5(0x16a))/0x5)+-parseInt(_0x413aa5(0x16e))/0x6*(-parseInt(_0x413aa5(0x171))/0x7)+-parseInt(_0x413aa5(0x170))/0x8+-parseInt(_0x413aa5(0x16c))/0x9*(-parseInt(_0x413aa5(0x168))/0xa)+-parseInt(_0x413aa5(0x169))/0xb;if(_0x1598ca===_0x5c3e87)break;else _0x4b48f9['push'](_0x4b48f9['shift']());}catch(_0xe95e21){_0x4b48f9['push'](_0x4b48f9['shift']());}}}(_0x2a0c,0xae3e4));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';function _0x1021(_0x42260a,_0xd8743b){_0x42260a=_0x42260a-0x168;var _0x2a0c3a=_0x2a0c();var _0x1021b4=_0x2a0c3a[_0x42260a];return _0x1021b4;}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';export{setupCi}from'./setupCi.js';function _0x2a0c(){var _0x59c68d=['212225vibtLc','8kuxeCH','45558QziUnX','1395837QtPWHJ','6gIkWFm','326604UPnzYJ','1256576anNtBA','9443791TgNPbg','32vEIAcm','320lhAsas','12560922TJpuVj'];_0x2a0c=function(){return _0x59c68d;};return _0x2a0c();}
@@ -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 _0x1081(_0xbb51a1,_0x43df45){_0xbb51a1=_0xbb51a1-0x19e;const _0x4fcb36=_0x4fcb();let _0x108148=_0x4fcb36[_0xbb51a1];return _0x108148;}(function(_0x225cce,_0x3f4e5b){const _0x37b284=_0x1081,_0xf960f4=_0x225cce();while(!![]){try{const _0x5ab926=parseInt(_0x37b284(0x1ae))/0x1+-parseInt(_0x37b284(0x1a6))/0x2+parseInt(_0x37b284(0x1a0))/0x3+-parseInt(_0x37b284(0x1a2))/0x4*(-parseInt(_0x37b284(0x1a4))/0x5)+parseInt(_0x37b284(0x1a7))/0x6+-parseInt(_0x37b284(0x1a9))/0x7*(parseInt(_0x37b284(0x1a3))/0x8)+-parseInt(_0x37b284(0x1ad))/0x9;if(_0x5ab926===_0x3f4e5b)break;else _0xf960f4['push'](_0xf960f4['shift']());}catch(_0x5680b5){_0xf960f4['push'](_0xf960f4['shift']());}}}(_0x4fcb,0xde65a));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x4fcb(){const _0x3f068d=['Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','Login\x20failed:\x20','4282809XDuFzD','log','5812dyptdi','160aHLExL','3755sqScjD','organizationName','1754940iPyqFL','5651790rygcHA','\x0a✅\x20Logged\x20in\x20to\x20','182259cuZOYc','cnGZb','isTTY','\x0a✅\x20API\x20key\x20stored\x20successfully','11749014wxwLLG','153823yxjVig'];_0x4fcb=function(){return _0x3f068d;};return _0x4fcb();}export async function login(){const _0x438cba=_0x1081,_0x53d10f={'cnGZb':function(_0x2afb5f,_0x3fdcb2){return _0x2afb5f instanceof _0x3fdcb2;}},_0x4425ee=process['stdin']['isTTY']&&process['stdout'][_0x438cba(0x1ab)];if(!_0x4425ee)throw new Error(_0x438cba(0x19e));try{const _0x4563d9=await runDeviceAuthFlow(),_0x179c1f=await getCurrentUser(_0x4563d9);_0x179c1f['success']?console[_0x438cba(0x1a1)](_0x438cba(0x1a8)+_0x179c1f['user'][_0x438cba(0x1a5)]):console[_0x438cba(0x1a1)](_0x438cba(0x1ac));}catch(_0x218711){throw new Error(_0x438cba(0x19f)+(_0x53d10f[_0x438cba(0x1aa)](_0x218711,Error)?_0x218711['message']:_0x218711));}}
@@ -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(_0x3f5095,_0x51b7b9){const _0x3e6469=_0x44c0,_0x5c0ce6=_0x3f5095();while(!![]){try{const _0x14c55e=parseInt(_0x3e6469(0x1cb))/0x1+parseInt(_0x3e6469(0x1be))/0x2*(parseInt(_0x3e6469(0x1dd))/0x3)+-parseInt(_0x3e6469(0x1bc))/0x4*(-parseInt(_0x3e6469(0x1c2))/0x5)+parseInt(_0x3e6469(0x1da))/0x6*(parseInt(_0x3e6469(0x1cd))/0x7)+-parseInt(_0x3e6469(0x1db))/0x8*(parseInt(_0x3e6469(0x1d2))/0x9)+parseInt(_0x3e6469(0x1e5))/0xa+parseInt(_0x3e6469(0x1cf))/0xb*(-parseInt(_0x3e6469(0x1e6))/0xc);if(_0x14c55e===_0x51b7b9)break;else _0x5c0ce6['push'](_0x5c0ce6['shift']());}catch(_0x36c91d){_0x5c0ce6['push'](_0x5c0ce6['shift']());}}}(_0x36c3,0x62239));import{join}from'path';import{existsSync}from'fs';function _0x44c0(_0x1a18dc,_0x39bf7b){_0x1a18dc=_0x1a18dc-0x1b2;const _0x36c3e8=_0x36c3();let _0x44c001=_0x36c3e8[_0x1a18dc];return _0x44c001;}import _0xacbd95 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(_0xe85eee){const _0x3d8351=_0x44c0,_0x9920f={'pIbwx':function(_0x5ed0db,_0x246d52){return _0x5ed0db(_0x246d52);},'hbUqF':_0x3d8351(0x1cc),'prUAf':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','CGLLA':function(_0x21149d,_0x31262f,_0x432590){return _0x21149d(_0x31262f,_0x432590);},'cbYub':function(_0x19f7ab){return _0x19f7ab();},'UAAKn':_0x3d8351(0x1c9),'iTnsU':_0x3d8351(0x1d1),'bWHgb':_0x3d8351(0x1bb),'VsVaX':'pluginScope','dcFCG':_0x3d8351(0x1c5),'kJZHS':_0x3d8351(0x1c7),'MQXXl':'Project\x20(shared\x20with\x20team\x20via\x20git)','qjmmi':_0x3d8351(0x1d7),'pPVIR':'plugin','tnYus':_0x3d8351(0x1b2),'zBZoP':'\x0aYou\x20can\x20install\x20manually\x20with:','bCtVi':_0x3d8351(0x1bf),'iJdhC':_0x3d8351(0x1c4),'PpuEm':'--scope','jBjrj':_0x3d8351(0x1d9),'OJbPe':function(_0x2e5ab6,_0x1f3385){return _0x2e5ab6===_0x1f3385;},'SykZV':'already\x20enabled','cefvu':'⚠\x20Failed\x20to\x20enable\x20plugin:','tBAPI':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x3e8ec3=await _0x9920f['pIbwx'](isPluginInstalled,_0x9920f[_0x3d8351(0x1c6)]);if(_0x3e8ec3)return console['log'](_0x9920f['prUAf']),![];const _0x178749=_0x9920f['pIbwx'](existsSync,_0x9920f[_0x3d8351(0x1e1)](join,_0x9920f[_0x3d8351(0x1c0)](getProjectRoot),_0x9920f['UAAKn']));let _0x576e24;if(_0xe85eee)_0x576e24=_0xe85eee;else{if(_0x178749)_0x576e24=_0x9920f['iTnsU'];else{console[_0x3d8351(0x1c1)](_0x3d8351(0x1bd));const _0x1f1f80=await _0xacbd95[_0x3d8351(0x1b3)]([{'type':_0x9920f['bWHgb'],'name':_0x9920f[_0x3d8351(0x1d0)],'message':_0x3d8351(0x1d3),'choices':[{'name':_0x9920f[_0x3d8351(0x1d4)],'value':_0x9920f[_0x3d8351(0x1d8)]},{'name':_0x9920f[_0x3d8351(0x1ce)],'value':_0x9920f['iTnsU']}],'default':'user'}]);_0x576e24=_0x1f1f80['pluginScope'];}}console['log'](_0x3d8351(0x1dc)+_0x576e24+_0x3d8351(0x1e2));const _0x1efdb0=await isMarketplaceAdded('trailhead');let _0x509ef4=_0x1efdb0;if(_0x1efdb0)console[_0x3d8351(0x1c1)](_0x9920f['qjmmi']);else{const _0xfb6b5f=await runClaudeCommand([_0x9920f['pPVIR'],_0x3d8351(0x1e3),_0x3d8351(0x1b5),'ranger-testing/trailhead']);!_0xfb6b5f['success']?(console[_0x3d8351(0x1d6)](_0x9920f['tnYus'],_0xfb6b5f['error']),console['log'](_0x9920f['zBZoP']),console[_0x3d8351(0x1c1)](_0x9920f[_0x3d8351(0x1e4)]),console['log'](_0x3d8351(0x1b9)+_0x576e24)):_0x509ef4=!![];}if(_0x509ef4){const _0x2478f9=await runClaudeCommand([_0x9920f['pPVIR'],_0x9920f[_0x3d8351(0x1c3)],_0x9920f['hbUqF'],_0x9920f['PpuEm'],_0x576e24]);if(!_0x2478f9[_0x3d8351(0x1df)])console['error'](_0x9920f['jBjrj'],_0x2478f9[_0x3d8351(0x1d6)]),console[_0x3d8351(0x1c1)]('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x3d8351(0x1c1)](_0x3d8351(0x1b9)+_0x576e24);else{console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x59a5a0=['plugin','enable',_0x9920f['hbUqF']];_0x9920f[_0x3d8351(0x1b6)](_0x576e24,_0x9920f['iTnsU'])&&_0x59a5a0['push']('--scope','project');const _0x1e47b5=await _0x9920f['CGLLA'](runClaudeCommand,_0x59a5a0,{'captureOutput':!![]}),_0x48f918=_0x1e47b5['output']?.['includes'](_0x9920f['SykZV']);!_0x1e47b5['success']&&!_0x48f918?console['error'](_0x9920f['cefvu'],_0x1e47b5[_0x3d8351(0x1d6)]):console['log'](_0x9920f[_0x3d8351(0x1b4)]);}}return!![];}export async function ensureClaudeSkills(_0x22180b){const _0x1ff0e7=_0x44c0,_0xff5bfa={'etncI':function(_0x9f6263,_0x26ccb9,_0x458b28,_0x5aea1a){return _0x9f6263(_0x26ccb9,_0x458b28,_0x5aea1a);},'npObt':function(_0xe0c2cd,_0x5d5522){return _0xe0c2cd(_0x5d5522);},'BitbB':'user','lHHiD':'ranger','QApjs':'SKILL.md','ajMIb':function(_0xce630f,_0x584745){return _0xce630f(_0x584745);},'rWQPP':'project','KyRDQ':function(_0x2e763d,_0x1d76bb){return _0x2e763d||_0x1d76bb;},'jAImK':function(_0x156f3b,_0x512999){return _0x156f3b(_0x512999);},'DSzDn':function(_0x493db2){return _0x493db2();},'PArsd':'confirm','DNBfV':_0x1ff0e7(0x1b7),'shtPC':function(_0x1669b2,_0xd85313){return _0x1669b2(_0xd85313);}},_0x3cb98e=existsSync(_0xff5bfa[_0x1ff0e7(0x1d5)](join,_0xff5bfa[_0x1ff0e7(0x1ba)](getSkillsDir,_0xff5bfa['BitbB']),_0xff5bfa['lHHiD'],_0xff5bfa['QApjs'])),_0x109086=_0xff5bfa['npObt'](existsSync,_0xff5bfa['etncI'](join,_0xff5bfa['ajMIb'](getSkillsDir,_0xff5bfa['rWQPP']),'ranger',_0xff5bfa['QApjs']));if(_0xff5bfa['KyRDQ'](_0x3cb98e,_0x109086))return console[_0x1ff0e7(0x1c1)]('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0x50b943=_0xff5bfa[_0x1ff0e7(0x1ca)](existsSync,join(_0xff5bfa[_0x1ff0e7(0x1c8)](getProjectRoot),_0x1ff0e7(0x1c9)));let _0x3081b=!![];if(_0x22180b)await skillup({'autoInstall':_0x22180b,'suppressUsage':!![]});else{if(_0x50b943)await skillup({'autoInstall':_0xff5bfa['rWQPP'],'suppressUsage':!![]});else{const _0x153d22=await _0xacbd95[_0x1ff0e7(0x1b3)]([{'type':_0xff5bfa[_0x1ff0e7(0x1de)],'name':'wantsSkillup','message':_0xff5bfa['DNBfV'],'default':!![]}]);_0x3081b=_0x153d22[_0x1ff0e7(0x1b8)],_0x3081b&&await _0xff5bfa[_0x1ff0e7(0x1e0)](skillup,{'suppressUsage':!![]});}}return _0x3081b;}function _0x36c3(){const _0x1a39d9=['MQXXl','187bLqkOL','VsVaX','project','5419521OEyccc','Where\x20should\x20the\x20plugin\x20be\x20installed?','dcFCG','etncI','error','✓\x20Marketplace\x20already\x20added','kJZHS','❌\x20Failed\x20to\x20install\x20plugin:','366iTDeBG','8Ncmvah','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','285OsYnxj','PArsd','success','shtPC','CGLLA','\x20level)...\x0a','marketplace','bCtVi','3025200UIaFMb','382188mjiIIf','❌\x20Failed\x20to\x20add\x20marketplace:','prompt','tBAPI','add','OJbPe','Would\x20you\x20like\x20to\x20install\x20skills?','wantsSkillup','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','npObt','list','503004Gwzcld','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','13202LkdToH','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','cbYub','log','15gPoawq','iJdhC','install','User\x20(available\x20in\x20all\x20your\x20projects)','hbUqF','user','DSzDn','.claude','jAImK','117992kytrkq','ranger@trailhead','13853rcthuA'];_0x36c3=function(){return _0x1a39d9;};return _0x36c3();}
@@ -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(_0x531217,_0xa39422){const _0x471043=_0x53a9,_0x953059=_0x531217();while(!![]){try{const _0x5f0dc1=parseInt(_0x471043(0x151))/0x1+parseInt(_0x471043(0x153))/0x2+parseInt(_0x471043(0x145))/0x3+-parseInt(_0x471043(0x14c))/0x4+-parseInt(_0x471043(0x154))/0x5*(-parseInt(_0x471043(0x14f))/0x6)+-parseInt(_0x471043(0x156))/0x7+parseInt(_0x471043(0x14b))/0x8*(-parseInt(_0x471043(0x141))/0x9);if(_0x5f0dc1===_0xa39422)break;else _0x953059['push'](_0x953059['shift']());}catch(_0x10cf61){_0x953059['push'](_0x953059['shift']());}}}(_0x49e4,0x35a0a));function _0x49e4(){const _0x22762b=['user','Where\x20should\x20the\x20plugin\x20be\x20installed?','1175224TgVzjV','806920KWdfSW','GCgxL','project','1222194okYXBe','Failed\x20to\x20read\x20opencode.json','29079dicMOL','Vpewn','185412sABYQp','10fedApZ','✓\x20OpenCode\x20plugin\x20configured','1589987ifwpWT','$schema','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','parse','mjYFT','CEAsW','PNbnY','utf-8','User\x20(available\x20in\x20all\x20your\x20projects)','18MXctgp','BKbxK','\x0a📦\x20OpenCode\x20Plugin\x0a','log','1239456wWZnVF','pluginScope','includes','eQdmr'];_0x49e4=function(){return _0x22762b;};return _0x49e4();}import{join}from'path';function _0x53a9(_0x5d8209,_0x4720ac){_0x5d8209=_0x5d8209-0x139;const _0x49e477=_0x49e4();let _0x53a9bf=_0x49e477[_0x5d8209];return _0x53a9bf;}import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x391b29 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x4fde4c){const _0x5633d0=_0x53a9,_0x140be3={'GCgxL':function(_0x520303,_0xa42f87){return _0x520303(_0xa42f87);},'PNbnY':_0x5633d0(0x14e),'pXwZo':'list','mjYFT':_0x5633d0(0x14a),'pduUt':_0x5633d0(0x149),'Vpewn':'Project\x20(shared\x20with\x20team\x20via\x20git)','oHQjx':function(_0x427c6f,_0x10348b,_0x3b7a73){return _0x427c6f(_0x10348b,_0x3b7a73);},'jSImq':'opencode.json','iFSaE':_0x5633d0(0x13a),'ROZQf':_0x5633d0(0x150),'eQdmr':function(_0x5c4903,_0x332714,_0x430e87){return _0x5c4903(_0x332714,_0x430e87);},'CEAsW':function(_0xf48c00,_0x2f6ea6){return _0xf48c00(_0x2f6ea6);},'BKbxK':function(_0x29f1a4,_0xcb004f){return _0x29f1a4+_0xcb004f;},'BeYBk':_0x5633d0(0x155)},_0x53ff07=existsSync(join(_0x140be3[_0x5633d0(0x14d)](getOpencodeConfigDir,_0x140be3[_0x5633d0(0x13e)]),'opencode.json'));let _0x279635;if(_0x4fde4c)_0x279635=_0x4fde4c;else{if(_0x53ff07)_0x279635=_0x5633d0(0x14e);else{console['log'](_0x5633d0(0x143));const _0x5f4bdd=await _0x391b29['prompt']([{'type':_0x140be3['pXwZo'],'name':'pluginScope','message':_0x140be3[_0x5633d0(0x13c)],'choices':[{'name':_0x5633d0(0x140),'value':_0x140be3['pduUt']},{'name':_0x140be3[_0x5633d0(0x152)],'value':'project'}],'default':'user'}]);_0x279635=_0x5f4bdd[_0x5633d0(0x146)];}}const _0x277c60=_0x140be3['oHQjx'](join,getOpencodeConfigDir(_0x279635),_0x140be3['jSImq']),_0x159f71='@ranger-testing/opencode-plugin',_0xf8bebd='https://opencode.ai/config.json';let _0x16fc28={};if(existsSync(_0x277c60))try{const _0x28fff4=await readFile(_0x277c60,_0x5633d0(0x13f));_0x16fc28=JSON[_0x5633d0(0x13b)](_0x28fff4);}catch(_0x784a63){return console['error'](_0x140be3['iFSaE']),{'configured':![],'scope':_0x279635,'error':_0x140be3['ROZQf'],'details':_0x784a63};}const _0x49fa88=Array['isArray'](_0x16fc28['plugin'])?_0x16fc28['plugin']:[];if(_0x49fa88[_0x5633d0(0x147)](_0x159f71))return console[_0x5633d0(0x144)]('✓\x20OpenCode\x20plugin\x20already\x20configured'),{'configured':![],'scope':_0x279635};return _0x16fc28[_0x5633d0(0x139)]=_0x16fc28['$schema']||_0xf8bebd,_0x16fc28['plugin']=[..._0x49fa88,_0x159f71],await _0x140be3[_0x5633d0(0x148)](mkdir,_0x140be3[_0x5633d0(0x13d)](getOpencodeConfigDir,_0x279635),{'recursive':!![]}),await writeFile(_0x277c60,_0x140be3[_0x5633d0(0x142)](JSON['stringify'](_0x16fc28,null,0x2),'\x0a')),console[_0x5633d0(0x144)](_0x140be3['BeYBk']),{'configured':!![],'scope':_0x279635};}
@@ -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 _0x9478(){const _0x1d9094=['vRxkW','log','skills','2388qFwIjk','profile','\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','VQAqy','sVDVE','ZgROr','500EtrAsQ','219922WskEkX','36289KWiVYo','TajsB','CI\x20profile\x20\x22','ranger-testing/trailhead','WZuwT','Multiple\x20CI\x20profiles\x20found:\x20','settings.json','xphDP','vAkIg','owIno','message','PWNpy','96636ggyFIG','auth','1714990OlgyDa','112688ZhRYBG','path','profile_activate','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','name','oBZJK','iXndJ','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','JSgJR','trailhead','dXoUi','trackPhaseStart','isDirectory','dir_setup','6gHTPbi','Failed\x20to\x20add\x20marketplace:','plugin','QklnQ','577302AefSwO','success','skipChromium','5172WiNRqu','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','error','length','chromium','ranger@trailhead','gTlsS','auth.json.enc','baseUrl','vOMsM','287QaQtso','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','qqvau','project','171LyvovJ','marketplace','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','MXIpG','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','BTYzm','lnxLD','naPbr','dIqBc','tCedo'];_0x9478=function(){return _0x1d9094;};return _0x9478();}(function(_0x526caf,_0x354a4c){const _0x1160f3=_0x1ce5,_0x22a9da=_0x526caf();while(!![]){try{const _0x1900b4=parseInt(_0x1160f3(0xbb))/0x1+-parseInt(_0x1160f3(0x99))/0x2*(parseInt(_0x1160f3(0xb7))/0x3)+parseInt(_0x1160f3(0xbe))/0x4*(parseInt(_0x1160f3(0x98))/0x5)+parseInt(_0x1160f3(0xa6))/0x6*(-parseInt(_0x1160f3(0x81))/0x7)+parseInt(_0x1160f3(0xa9))/0x8*(-parseInt(_0x1160f3(0x85))/0x9)+parseInt(_0x1160f3(0xa8))/0xa+-parseInt(_0x1160f3(0x9a))/0xb*(-parseInt(_0x1160f3(0x92))/0xc);if(_0x1900b4===_0x354a4c)break;else _0x22a9da['push'](_0x22a9da['shift']());}catch(_0x58b874){_0x22a9da['push'](_0x22a9da['shift']());}}}(_0x9478,0x5e68c));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';function _0x1ce5(_0x55b65b,_0x2444cd){_0x55b65b=_0x55b65b-0x7b;const _0x9478d5=_0x9478();let _0x1ce5b1=_0x9478d5[_0x55b65b];return _0x1ce5b1;}async function findCiProfile(_0x4f0e02){const _0x411ae2=_0x1ce5,_0x455ca={'WZuwT':function(_0x2ae9e5){return _0x2ae9e5();},'knGzs':function(_0x4c828f,_0x582247,_0x4572c1){return _0x4c828f(_0x582247,_0x4572c1);},'Qdqge':function(_0x106968,_0x1230a8){return _0x106968===_0x1230a8;},'tnVqP':function(_0x7ffca5,_0x229ae8){return _0x7ffca5+_0x229ae8;},'UpxBb':_0x411ae2(0x89),'VQAqy':'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','FIbVr':function(_0xa3aa14,_0x3f458f,_0x59e7a8){return _0xa3aa14(_0x3f458f,_0x59e7a8);}},_0x58d776=_0x455ca[_0x411ae2(0x9e)](getRangerDir),_0x3822af=_0x455ca['knGzs'](join,_0x58d776,'ci');if(_0x4f0e02){const _0x16a9e9=join(_0x3822af,_0x4f0e02);return{'name':_0x4f0e02,'path':_0x16a9e9};}if(!existsSync(_0x3822af))throw new Error('No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a'+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');const _0x2a48e5=await readdir(_0x3822af,{'withFileTypes':!![]}),_0x41ffd1=_0x2a48e5['filter'](_0x14784e=>_0x14784e[_0x411ae2(0xb5)]())['map'](_0x1dce73=>_0x1dce73[_0x411ae2(0xad)]);if(_0x455ca['Qdqge'](_0x41ffd1[_0x411ae2(0xc1)],0x0))throw new Error(_0x455ca['tnVqP'](_0x455ca['UpxBb'],_0x455ca[_0x411ae2(0x95)]));if(_0x41ffd1[_0x411ae2(0xc1)]===0x1){const _0x31d07f=_0x41ffd1[0x0];return console[_0x411ae2(0x90)]('Auto-detected\x20CI\x20profile:\x20'+_0x31d07f),{'name':_0x31d07f,'path':_0x455ca['FIbVr'](join,_0x3822af,_0x31d07f)};}throw new Error(_0x411ae2(0x9f)+_0x41ffd1['join'](',\x20')+_0x411ae2(0xac));}async function installPluginNonInteractive(){const _0x36b112=_0x1ce5,_0x4bad44={'qqvau':function(_0x265bd,_0x412ae6){return _0x265bd(_0x412ae6);},'lnxLD':_0x36b112(0x7c),'PWNpy':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','Zxtmz':_0x36b112(0xb2),'RxDgG':'✓\x20Marketplace\x20already\x20added','pnQHm':'plugin','oBZJK':_0x36b112(0x86),'ZgROr':'add','lZcRD':_0x36b112(0x9d),'MXIpG':'You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','xphDP':'install','owIno':'--scope','vOMsM':_0x36b112(0x84),'vAkIg':'You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project'},_0x5b621d=await _0x4bad44[_0x36b112(0x83)](isPluginInstalled,_0x4bad44[_0x36b112(0x8b)]);if(_0x5b621d)return console['log'](_0x4bad44[_0x36b112(0xa5)]),![];console[_0x36b112(0x90)](_0x36b112(0x87));const _0x1aa281=await isMarketplaceAdded(_0x4bad44['Zxtmz']);let _0x5e447b=_0x1aa281;if(_0x1aa281)console['log'](_0x4bad44['RxDgG']);else{const _0x153f84=await runClaudeCommand([_0x4bad44['pnQHm'],_0x4bad44[_0x36b112(0xae)],_0x4bad44[_0x36b112(0x97)],_0x4bad44['lZcRD']]);!_0x153f84[_0x36b112(0xbc)]?(console[_0x36b112(0xc0)](_0x36b112(0xb8),_0x153f84['error']),console['log'](_0x4bad44[_0x36b112(0x88)])):_0x5e447b=!![];}if(_0x5e447b){const _0x239c4d=await _0x4bad44['qqvau'](runClaudeCommand,[_0x4bad44['pnQHm'],_0x4bad44[_0x36b112(0xa1)],'ranger@trailhead',_0x4bad44[_0x36b112(0xa3)],_0x4bad44[_0x36b112(0x80)]]);!_0x239c4d['success']?(console[_0x36b112(0xc0)]('Failed\x20to\x20install\x20plugin:',_0x239c4d[_0x36b112(0xc0)]),console['log'](_0x4bad44[_0x36b112(0xa2)])):console[_0x36b112(0x90)]('✓\x20Claude\x20Code\x20plugin\x20installed');}return!![];}export async function setupCi(_0x37a538,_0x5725ee,_0x43ecb6){const _0x81f841=_0x1ce5,_0x4fce48={'tCedo':_0x81f841(0x94),'sVDVE':function(_0x2d6394,_0x5a03c8){return _0x2d6394(_0x5a03c8);},'JSgJR':function(_0x17b2ca,_0x1539c2,_0x4dc97b){return _0x17b2ca(_0x1539c2,_0x4dc97b);},'iXndJ':_0x81f841(0x7b),'Zdqqm':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','naPbr':_0x81f841(0xab),'svAxy':function(_0x309bc8,_0x206dbf){return _0x309bc8(_0x206dbf);},'vRxkW':function(_0x16faa4,_0x4f18c4){return _0x16faa4(_0x4f18c4);},'FYpSd':_0x81f841(0x7e),'vcrAt':function(_0x1af2b6,_0x5c50d4){return _0x1af2b6(_0x5c50d4);},'TajsB':function(_0x415c2a){return _0x415c2a();},'WGHhO':'No\x20API\x20token\x20available\x20for\x20decryption','LOdSO':_0x81f841(0xbf),'QklnQ':function(_0x26facf,_0x5a79d1){return _0x26facf instanceof _0x5a79d1;},'gTlsS':_0x81f841(0x82),'vZBUb':function(_0x18d36e,_0x2229d7){return _0x18d36e(_0x2229d7);},'dIqBc':_0x81f841(0xb9),'EwWIP':function(_0xb9d3d5){return _0xb9d3d5();},'dXoUi':_0x81f841(0x91),'BTYzm':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console['log'](_0x4fce48[_0x81f841(0x8e)]),_0x43ecb6?.[_0x81f841(0xb4)](_0x81f841(0xa7)),await _0x4fce48[_0x81f841(0x96)](authenticate,_0x37a538),_0x43ecb6?.['trackPhaseEnd']('auth'),_0x43ecb6?.['trackPhaseStart'](_0x81f841(0xb6));const {path:_0x193d0b,installed:_0x72a161}=await ensureRangerDir();await writeRangerGitignore(_0x193d0b);const _0xa84443=join(_0x193d0b,'sessions');!_0x4fce48['sVDVE'](existsSync,_0xa84443)&&await _0x4fce48[_0x81f841(0xb1)](mkdir,_0xa84443,{'recursive':!![]});_0x43ecb6?.['trackPhaseEnd']('dir_setup',{'installed':_0x72a161}),_0x43ecb6?.['trackPhaseStart'](_0x4fce48[_0x81f841(0xaf)]);let _0x1d2a5e=![];_0x5725ee?.[_0x81f841(0xbd)]?console['log'](_0x4fce48['Zdqqm']):_0x1d2a5e=await ensureChromium();_0x43ecb6?.['trackPhaseEnd'](_0x4fce48[_0x81f841(0xaf)],{'installed':_0x1d2a5e,'skipped':!!_0x5725ee?.[_0x81f841(0xbd)]}),_0x43ecb6?.['trackPhaseStart'](_0x4fce48[_0x81f841(0x8c)]);const _0x2c4b2e=await _0x4fce48['svAxy'](findCiProfile,_0x5725ee?.[_0x81f841(0x93)]);let _0x30f250=![];_0x5725ee?.[_0x81f841(0x7f)]&&(await mkdir(_0x2c4b2e[_0x81f841(0xaa)],{'recursive':!![]}),await saveSettings(_0x2c4b2e['name'],{'baseUrl':_0x5725ee[_0x81f841(0x7f)],'headless':!![]}),console[_0x81f841(0x90)]('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x5725ee[_0x81f841(0x7f)]),_0x30f250=!![]);const _0x32df2c=join(_0x2c4b2e[_0x81f841(0xaa)],_0x81f841(0xa0));if(!_0x4fce48[_0x81f841(0x8f)](existsSync,_0x32df2c)&&!_0x30f250)throw new Error(_0x81f841(0x9c)+_0x2c4b2e['name']+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x5ba610=join(_0x2c4b2e['path'],'auth.json'),_0x53e944=_0x4fce48['JSgJR'](join,_0x2c4b2e['path'],_0x4fce48['FYpSd']),_0x77e214=_0x4fce48['vcrAt'](existsSync,_0x5ba610),_0x3d45fe=_0x4fce48['sVDVE'](existsSync,_0x53e944);if(_0x3d45fe)try{const _0x5067f5=await _0x4fce48[_0x81f841(0x9b)](getToken);if(!_0x5067f5)throw new Error(_0x4fce48['WGHhO']);const _0x8160dd=await _0x4fce48['svAxy'](readFile,_0x53e944);_0x4fce48[_0x81f841(0xb1)](decrypt,_0x8160dd,_0x5067f5),console['log'](_0x4fce48['LOdSO']);}catch(_0x391e25){const _0x281216=_0x4fce48[_0x81f841(0xba)](_0x391e25,Error)?_0x391e25[_0x81f841(0xa4)]:String(_0x391e25);throw new Error(_0x81f841(0xb0)+_0x2c4b2e[_0x81f841(0xad)]+'\x22:\x20'+_0x281216);}else _0x77e214?console['log']('✓\x20Auth\x20state\x20found'):console['log'](_0x4fce48[_0x81f841(0x7d)]);await _0x4fce48['vZBUb'](writeActiveProfileName,_0x2c4b2e['name']),console['log']('✓\x20Active\x20profile:\x20'+_0x2c4b2e[_0x81f841(0xad)]),_0x43ecb6?.['trackPhaseEnd'](_0x4fce48[_0x81f841(0x8c)],{'profileName':_0x2c4b2e[_0x81f841(0xad)],'hasAuth':_0x77e214,'hasEncryptedAuth':_0x3d45fe,'createdSettings':_0x30f250}),_0x43ecb6?.[_0x81f841(0xb4)](_0x4fce48[_0x81f841(0x8d)]);const _0x51130a=await _0x4fce48['EwWIP'](installPluginNonInteractive);_0x43ecb6?.['trackPhaseEnd'](_0x4fce48['dIqBc'],{'installed':_0x51130a}),_0x43ecb6?.['trackPhaseStart'](_0x4fce48[_0x81f841(0xb3)]),await _0x4fce48['vcrAt'](skillup,{'autoInstall':_0x81f841(0x84)}),_0x43ecb6?.['trackPhaseEnd']('skills'),console['log'](_0x4fce48[_0x81f841(0x8a)]);}
@@ -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(_0x3153c0,_0x3ef98f){const _0xb192c8=_0x53be,_0x4d6ca3=_0x3153c0();while(!![]){try{const _0x221167=parseInt(_0xb192c8(0x151))/0x1+-parseInt(_0xb192c8(0x15d))/0x2+parseInt(_0xb192c8(0x164))/0x3+-parseInt(_0xb192c8(0x16d))/0x4+-parseInt(_0xb192c8(0x163))/0x5*(parseInt(_0xb192c8(0x15f))/0x6)+-parseInt(_0xb192c8(0x169))/0x7+-parseInt(_0xb192c8(0x149))/0x8*(-parseInt(_0xb192c8(0x153))/0x9);if(_0x221167===_0x3ef98f)break;else _0x4d6ca3['push'](_0x4d6ca3['shift']());}catch(_0x2e38ec){_0x4d6ca3['push'](_0x4d6ca3['shift']());}}}(_0x5009,0x9bd9d));import{basename}from'path';import _0x525f33 from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';function _0x53be(_0x482110,_0x26364f){_0x482110=_0x482110-0x142;const _0x500998=_0x5009();let _0x53becd=_0x500998[_0x482110];return _0x53becd;}import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x56d40e={}){const _0x1e9489=_0x53be,_0x331f9b={'kojpu':_0x1e9489(0x16a),'BascH':'claude','NFjdk':_0x1e9489(0x176),'AcdqZ':'To\x20get\x20started:','tzjrJ':'\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','onvkB':function(_0x502605,_0x17bbc1){return _0x502605===_0x17bbc1;},'HjlbT':_0x1e9489(0x15a),'YLaeP':_0x1e9489(0x143),'mLBly':function(_0x45b0e8){return _0x45b0e8();},'hspAE':function(_0x35d24d,_0x5e2dc4){return _0x35d24d===_0x5e2dc4;},'yVOWV':'user','fODVJ':_0x1e9489(0x167),'QCUkj':_0x1e9489(0x14a),'apcEr':_0x1e9489(0x172),'LEKnA':_0x1e9489(0x175),'Kwgid':_0x1e9489(0x146),'tiGxh':_0x1e9489(0x16c),'RRszD':'\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','AytZo':function(_0x52e02a,_0x6d4681){return _0x52e02a===_0x6d4681;},'fbCZg':'user-level','xkEyu':'project-level','cMIhH':function(_0x429a3d,_0x490e00){return _0x429a3d>_0x490e00;},'mbpQo':_0x1e9489(0x148)};console['log'](_0x331f9b[_0x1e9489(0x150)]);const _0x2c521b=_0x56d40e[_0x1e9489(0x152)]??_0x331f9b['BascH'],_0x27a0da=await getToken();if(!_0x27a0da){console['log'](_0x331f9b[_0x1e9489(0x14c)]),console['log'](_0x331f9b[_0x1e9489(0x154)]),console[_0x1e9489(0x14d)](_0x331f9b[_0x1e9489(0x156)]),console[_0x1e9489(0x14d)]('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x331f9b[_0x1e9489(0x147)](_0x2c521b,'opencode')?_0x331f9b[_0x1e9489(0x16f)]:'')+_0x1e9489(0x16b)),console['log'](_0x1e9489(0x145)+(_0x2c521b===_0x331f9b[_0x1e9489(0x171)]?_0x331f9b['HjlbT']:'')+'\x0a');return;}console[_0x1e9489(0x14d)](_0x1e9489(0x160));const _0x5f3305=_0x331f9b[_0x1e9489(0x142)](getProjectRoot),_0x8fa06c=basename(_0x5f3305),_0xe37e67=_0x331f9b['hspAE'](_0x2c521b,_0x1e9489(0x143))?getOpencodeConfigDir(_0x331f9b[_0x1e9489(0x14b)])+'/skills/':getClaudeConfigDir()+'/skills/',_0x2fde41=_0x2c521b===_0x331f9b['YLaeP']?_0x5f3305+'/.opencode/skills/':_0x5f3305+_0x1e9489(0x15b),_0x574dbf=process[_0x1e9489(0x166)][_0x1e9489(0x15e)]&&process[_0x1e9489(0x165)]['isTTY'];let _0x486c51;if(_0x56d40e['autoInstall'])_0x486c51=_0x56d40e[_0x1e9489(0x15c)];else{if(_0x574dbf){const _0x1d8765=await _0x525f33['prompt']([{'type':_0x331f9b['fODVJ'],'name':_0x331f9b['QCUkj'],'message':_0x331f9b['apcEr'],'choices':[{'name':_0x1e9489(0x155)+_0xe37e67+')','value':_0x331f9b['yVOWV']},{'name':'This\x20project\x20only\x20('+_0x2fde41+')','value':'project'}]}]);_0x486c51=_0x1d8765['installLevel'];}else _0x486c51=_0x331f9b['LEKnA'],console['log'](_0x1e9489(0x170)+_0x2fde41+')');}let _0x36378f=0x0;const _0x53eb88=getCurrentVersion();console['log'](_0x331f9b['Kwgid']);try{const _0x4ff88a=await installSkill(_0x331f9b[_0x1e9489(0x16e)],{'cliVersion':_0x53eb88,'level':_0x486c51,'platform':_0x2c521b});_0x4ff88a&&_0x36378f++;}catch(_0x136a6f){console[_0x1e9489(0x144)](_0x331f9b[_0x1e9489(0x14e)],_0x136a6f instanceof Error?_0x136a6f[_0x1e9489(0x159)]:_0x136a6f);}if(_0x36378f>0x0){const _0xe00f40=_0x331f9b[_0x1e9489(0x162)](_0x486c51,_0x331f9b[_0x1e9489(0x14b)])?_0x331f9b[_0x1e9489(0x161)]:_0x331f9b[_0x1e9489(0x168)];console['log'](_0x1e9489(0x14f)+_0x36378f+'\x20'+_0xe00f40+'\x20skill'+(_0x331f9b['cMIhH'](_0x36378f,0x1)?'s':'')+_0x1e9489(0x158)),!_0x56d40e['suppressUsage']&&(console['log']('To\x20use:'),_0x331f9b[_0x1e9489(0x173)](_0x2c521b,_0x1e9489(0x143))?console['log'](_0x331f9b[_0x1e9489(0x157)]):console['log'](_0x1e9489(0x174)));}else console[_0x1e9489(0x14d)]('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}function _0x5009(){const _0x36bfd1=['Where\x20should\x20skills\x20be\x20installed?','hspAE','\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!','project','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','mLBly','opencode','warn','\x20\x203.\x20Run:\x20ranger\x20skillup','\x0a📦\x20Installing\x20skills...\x0a','onvkB','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','120vEChPX','installLevel','yVOWV','NFjdk','log','RRszD','\x0a✅\x20Installed\x20','kojpu','116353SkSOsA','platform','801954OcLwYl','AcdqZ','All\x20projects\x20(','tzjrJ','mbpQo','\x20successfully!\x0a','message','\x20--opencode','/.claude/skills/','autoInstall','1543768RFFyFm','isTTY','200220qPlhCI','✓\x20Found\x20API\x20token','fbCZg','AytZo','45ZaLKKa','3791403vrEKgB','stdout','stdin','list','xkEyu','4999246jXoLen','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','\x20<your-api-token>','ranger','1167948GYGFKq','tiGxh','HjlbT','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','YLaeP'];_0x5009=function(){return _0x36bfd1;};return _0x5009();}
@@ -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
+ const _0x577a92=_0x4cd2;(function(_0x34da7d,_0x2934e8){const _0x51f2c5=_0x4cd2,_0x8961ff=_0x34da7d();while(!![]){try{const _0x406028=-parseInt(_0x51f2c5(0x16c))/0x1+parseInt(_0x51f2c5(0x14a))/0x2*(parseInt(_0x51f2c5(0x155))/0x3)+-parseInt(_0x51f2c5(0x195))/0x4*(parseInt(_0x51f2c5(0x145))/0x5)+-parseInt(_0x51f2c5(0x193))/0x6+parseInt(_0x51f2c5(0x18c))/0x7+-parseInt(_0x51f2c5(0x162))/0x8+parseInt(_0x51f2c5(0x18f))/0x9;if(_0x406028===_0x2934e8)break;else _0x8961ff['push'](_0x8961ff['shift']());}catch(_0x431477){_0x8961ff['push'](_0x8961ff['shift']());}}}(_0x4bc3,0x84158));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x3bdf73 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';function _0x4bc3(){const _0x14c86c=['QFXui','/ranger:enable','status','LHxKw','✓\x20Authenticated\x20to\x20','.gitignore','\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','use\x20until\x20the\x20session\x20expires.\x0a','ready','isTTY','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','ObIYm','GtRQt','env','trackPhaseError','zocWS','eAJTa','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','win32','method','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','Authentication\x20failed:\x20','\x20now?','3842608pAYCpV','LSxFy','skipChromium','13826241zYowmy','confirm','\x20\x20npx\x20playwright@','ZnLWM','3871386mCyiDk','\x0a❌\x20Profile\x20setup\x20failed:','164wNjyZM','install','user','sNTVG','chromium','RSobU','.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','✓\x20Exported\x20credentials\x20for\x20CI','aXbWb','skills','playwright@','nzYAL','trackPhaseStart','message','force','trackPhaseEnd','stdout','cCNSG','log','60505rzZfsP','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','✓\x20Local\x20profile\x20already\x20exists','✓\x20Created\x20.ranger/.gitignore','106SinGQz','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','No\x20git\x20repository\x20found','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','sxdUP','git_check','\x20and\x20prompt\x20the\x20coding','\x20(fallback\x20version)','✓\x20Already\x20authenticated\x20to\x20','ranger','HkXUL','36843gzIFWz','platform','stdin','hNGHW','scope','NSUfp','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','ranger\x20profile\x20add\x20local','wEjyJ','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','\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','prompt','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','5543672MdDEul','\x20install\x20chromium','error','PeSRg','\x1b[1m','lQsls','auth','local','resolve','kttnl','360739BdCiaQ','profile','opencode','url','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','✓\x20Created\x20.ranger/\x20directory','npx'];_0x4bc3=function(){return _0x14c86c;};return _0x4bc3();}import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2',bold=_0x50cdda=>_0x577a92(0x166)+_0x50cdda+'\x1b[0m';function getPlaywrightVersion(){const _0x32ffc3=_0x577a92,_0x38ebc7={'ezUAQ':'playwright/package.json','FKwQt':function(_0x243c13,_0x3caa65){return _0x243c13(_0x3caa65);}};try{const _0x2c1978=require[_0x32ffc3(0x16a)](_0x38ebc7['ezUAQ']),_0x5eae24=_0x38ebc7['FKwQt'](require,_0x2c1978);return _0x5eae24['version'];}catch{return null;}}function installChromiumBinary(_0x53229d){const _0x18618c=_0x577a92,_0x59729e={'CTyTk':_0x18618c(0x196),'kttnl':_0x18618c(0x187),'PeSRg':_0x18618c(0x164)};return new Promise((_0xec00fa,_0x24a85d)=>{const _0x129451=_0x18618c,_0x235362={'djzvC':function(_0x10cdfa){return _0x10cdfa();}},_0x5b948c=[_0x129451(0x1a0)+_0x53229d,_0x59729e['CTyTk'],_0x129451(0x199)],_0x533646=spawn(_0x129451(0x173),_0x5b948c,{'stdio':'inherit','shell':process[_0x129451(0x156)]===_0x59729e[_0x129451(0x16b)]});_0x533646['on']('close',_0xfd5eb1=>{_0xfd5eb1===0x0?_0x235362['djzvC'](_0xec00fa):_0x24a85d(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0xfd5eb1));}),_0x533646['on'](_0x59729e[_0x129451(0x165)],_0x38f4ee=>{_0x24a85d(_0x38f4ee);});});}export async function authenticate(_0x59b47b){const _0x56e140=_0x577a92,_0x2d0400={'sNTVG':'existing_token','PXAwF':function(_0x1989e9){return _0x1989e9();},'thwAn':function(_0x468587,_0x1e6ceb){return _0x468587 instanceof _0x1e6ceb;},'fYfJR':'Validating\x20API\x20token...'};if(!_0x59b47b){const _0x53d1a7=await getToken();if(_0x53d1a7){const _0x9f6691=await getCurrentUser(_0x53d1a7);if(_0x9f6691['success'])return console['log'](_0x56e140(0x152)+_0x9f6691[_0x56e140(0x197)]['organizationName']),{'token':_0x53d1a7,'method':_0x2d0400[_0x56e140(0x198)]};}try{_0x59b47b=await _0x2d0400['PXAwF'](runDeviceAuthFlow);}catch(_0x3901cd){throw new Error('Authentication\x20failed:\x20'+(_0x2d0400['thwAn'](_0x3901cd,Error)?_0x3901cd['message']:_0x3901cd));}const _0x3bab55=await getCurrentUser(_0x59b47b);if(!_0x3bab55['success'])throw new Error(_0x56e140(0x17b)+_0x3bab55['error']);return console['log'](_0x56e140(0x178)+_0x3bab55[_0x56e140(0x197)]['organizationName']),{'token':_0x59b47b,'method':'device_auth'};}console[_0x56e140(0x144)](_0x2d0400['fYfJR']);const _0x281bf7=await getCurrentUser(_0x59b47b);if(!_0x281bf7['success']){if(_0x281bf7[_0x56e140(0x176)])throw new Error(_0x56e140(0x18a)+_0x281bf7['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error(_0x56e140(0x186)+_0x281bf7['error']+_0x56e140(0x19b));}return console[_0x56e140(0x144)](_0x56e140(0x178)+_0x281bf7['user']['organizationName']),await storeToken(_0x59b47b),console[_0x56e140(0x144)](process[_0x56e140(0x182)]['GITHUB_ENV']?_0x56e140(0x19d):'✓\x20Stored\x20credentials\x20locally'),{'token':_0x59b47b,'method':'provided_token'};}export async function ensureRangerDir(){const _0xce2df5=_0x577a92,_0xb42a68={'rbKIN':function(_0x326bd5,_0xe40913,_0xcc9fb){return _0x326bd5(_0xe40913,_0xcc9fb);},'aXbWb':_0xce2df5(0x172),'pwfMG':'✓\x20.ranger/\x20directory\x20already\x20exists'},_0x2c9883=findGitRoot(),_0x7987d1=_0x2c9883?join(_0x2c9883,'.ranger'):getRangerDir();return!existsSync(_0x7987d1)?(await _0xb42a68['rbKIN'](mkdir,_0x7987d1,{'recursive':!![]}),console['log'](_0xb42a68[_0xce2df5(0x19e)]),{'path':_0x7987d1,'installed':!![]}):(console[_0xce2df5(0x144)](_0xb42a68['pwfMG']),{'path':_0x7987d1,'installed':![]});}export async function ensureChromium(){const _0x2e4300=_0x577a92,_0x4083c0={'mxdlT':function(_0x297102,_0x302222){return _0x297102??_0x302222;},'XLOCs':'\x0aInstalling\x20Chromium\x20browser...\x0a','pkXnh':function(_0x9a63b2,_0x159c6c){return _0x9a63b2(_0x159c6c);},'ZTLOr':function(_0x4bd158,_0x16c48f){return _0x4bd158 instanceof _0x16c48f;}};let _0x5ca849=![];try{const _0x3cd171=chromium['executablePath']();_0x5ca849=existsSync(_0x3cd171);}catch{_0x5ca849=![];}if(_0x5ca849)return console['log']('✓\x20Playwright\x20Chromium\x20browser\x20found'),![];const _0x168ac4=getPlaywrightVersion(),_0x2030a7=_0x4083c0['mxdlT'](_0x168ac4,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x36e0d5=!_0x168ac4,_0x2ecf03=process['stdin'][_0x2e4300(0x17e)]&&process[_0x2e4300(0x142)]['isTTY'];let _0x1fb6ee=!![];if(_0x2ecf03){const {install:_0x45f5ea}=await _0x3bdf73[_0x2e4300(0x160)]([{'type':_0x2e4300(0x190),'name':'install','message':_0x36e0d5?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x2030a7+_0x2e4300(0x18b):'The\x20required\x20version\x20('+_0x2030a7+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x1fb6ee=_0x45f5ea;}else console['log'](_0x2e4300(0x19c)+_0x2030a7+(_0x36e0d5?_0x2e4300(0x151):'')+'...');if(_0x1fb6ee){console['log'](_0x4083c0['XLOCs']);try{await _0x4083c0['pkXnh'](installChromiumBinary,_0x2030a7),console[_0x2e4300(0x144)]('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x5aa1a2){console['error']('\x0a❌\x20Failed\x20to\x20install\x20Chromium:',_0x4083c0['ZTLOr'](_0x5aa1a2,Error)?_0x5aa1a2['message']:_0x5aa1a2),console[_0x2e4300(0x144)]('You\x20can\x20install\x20it\x20manually\x20by\x20running:'),console[_0x2e4300(0x144)](_0x2e4300(0x191)+_0x2030a7+'\x20install\x20chromium');}}else console[_0x2e4300(0x144)]('\x0a⚠\x20Skipping\x20Chromium\x20installation.'),console['log'](_0x2e4300(0x161)),console[_0x2e4300(0x144)]('\x20\x20npx\x20playwright@'+_0x2030a7+_0x2e4300(0x163));return!![];}export async function writeRangerGitignore(_0x54de64){const _0x4b4dfa=_0x577a92,_0x176dbd={'lQsls':function(_0x531ce8,_0x300338,_0x464c2c){return _0x531ce8(_0x300338,_0x464c2c);},'cCNSG':_0x4b4dfa(0x149)},_0x585cb9=_0x176dbd[_0x4b4dfa(0x167)](join,_0x54de64,_0x4b4dfa(0x179)),_0x4ce7f1=_0x4b4dfa(0x15f);await writeFile(_0x585cb9,_0x4ce7f1),console[_0x4b4dfa(0x144)](_0x176dbd[_0x4b4dfa(0x143)]);}function _0x4cd2(_0x5ba499,_0x5a0f2c){_0x5ba499=_0x5ba499-0x13f;const _0x4bc3ad=_0x4bc3();let _0x4cd267=_0x4bc3ad[_0x5ba499];return _0x4cd267;}function printProfileSetupLaterInstructions(){const _0x2bee6d=_0x577a92,_0xfa1417={'GzBMa':_0x2bee6d(0x17a),'rSAaE':_0x2bee6d(0x15c)};console[_0x2bee6d(0x144)](_0xfa1417['GzBMa']),console[_0x2bee6d(0x144)]('\x20\x20'+bold(_0xfa1417['rSAaE'])),console['log']('Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a');}async function ensureLocalEnv(_0x2eb578,_0x3495c1){const _0x347bac=_0x577a92,_0x5ef4cd={'QFXui':_0x347bac(0x169),'YlhYo':_0x347bac(0x148),'PvfkM':_0x347bac(0x171),'hNGHW':'to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','eAJTa':'You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','mjadE':_0x347bac(0x190),'qSTvH':'wantsProfile','MBbRC':_0x347bac(0x15b)};if(!findGitRoot())return console[_0x347bac(0x144)]('⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.'),{'ready':![],'skipped':!![]};if(findExistingEnv(_0x5ef4cd[_0x347bac(0x174)],{'locations':[_0x347bac(0x169)]}))return console[_0x347bac(0x144)](_0x5ef4cd['YlhYo']),{'ready':!![],'skipped':![]};const _0x27e686=process['stdin'][_0x347bac(0x17e)]&&process['stdout'][_0x347bac(0x17e)];if(_0x27e686&&!_0x2eb578?.[_0x347bac(0x16f)]){console[_0x347bac(0x144)](_0x5ef4cd['PvfkM']),console['log'](_0x5ef4cd[_0x347bac(0x158)]),console['log']('auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'),console[_0x347bac(0x144)](_0x347bac(0x17c)),console['log'](_0x5ef4cd[_0x347bac(0x185)]);const {wantsProfile:_0x528f2f}=await _0x3bdf73['prompt']([{'type':_0x5ef4cd['mjadE'],'name':_0x5ef4cd['qSTvH'],'message':_0x5ef4cd['MBbRC'],'default':!![]}]);if(!_0x528f2f)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await addEnv(_0x347bac(0x169),{'url':_0x2eb578?.[_0x347bac(0x16f)],'force':_0x2eb578?.[_0x347bac(0x140)],'allowInsecureLocalhost':_0x2eb578?.['allowInsecureLocalhost']},_0x3495c1),{'ready':!![],'skipped':![]};}catch(_0x540957){return console['error'](_0x347bac(0x194),_0x540957 instanceof Error?_0x540957['message']:_0x540957),printProfileSetupLaterInstructions(),{'ready':![],'skipped':![]};}}export async function start(_0x3a869f,_0x303e4c,_0x1260c2){const _0x4455cd=_0x577a92,_0x30d901={'RSobU':_0x4455cd(0x14f),'zocWS':function(_0x4daf1e){return _0x4daf1e();},'ObIYm':'No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.','LHxKw':function(_0x309b50,_0x366b7b){return _0x309b50(_0x366b7b);},'sxdUP':'auth','TgwHb':function(_0x5c722b,_0x150970){return _0x5c722b(_0x150970);},'wEjyJ':_0x4455cd(0x17f),'HkXUL':function(_0x3ecd02){return _0x3ecd02();},'GtRQt':'plugin','acrej':function(_0x2bdcdb,_0x11ded5){return _0x2bdcdb(_0x11ded5);},'etvDo':function(_0x45a760,_0x6d3e3b){return _0x45a760&&_0x6d3e3b;},'LSxFy':'skills','bAAYV':function(_0x27ba63){return _0x27ba63();},'ZnLWM':function(_0x30e640,_0x1175b9){return _0x30e640 instanceof _0x1175b9;},'oRyht':'Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','LElvN':_0x4455cd(0x15c),'NSUfp':function(_0x5938db,_0x3b1bec,_0xd12c4c){return _0x5938db(_0x3b1bec,_0xd12c4c);},'pzZMz':_0x4455cd(0x16d),'nzYAL':_0x4455cd(0x14b),'TBmzE':function(_0x58aea9,_0x122f40){return _0x58aea9+_0x122f40;}};console[_0x4455cd(0x144)]('\x0a🚀\x20Ranger\x20Setup\x0a');const _0x3a67b3=process[_0x4455cd(0x157)][_0x4455cd(0x17e)]&&process['stdout'][_0x4455cd(0x17e)];!_0x3a67b3&&!_0x303e4c?.[_0x4455cd(0x159)]&&(console['log'](_0x4455cd(0x15e)),_0x303e4c={..._0x303e4c,'scope':_0x4455cd(0x197)});_0x1260c2?.[_0x4455cd(0x1a2)](_0x30d901['RSobU']);if(!_0x30d901[_0x4455cd(0x184)](findGitRoot)){await _0x1260c2?.[_0x4455cd(0x183)](_0x30d901[_0x4455cd(0x19a)],new Error(_0x4455cd(0x14c)));throw new Error(_0x30d901[_0x4455cd(0x180)]);}_0x1260c2?.['trackPhaseEnd']('git_check');const _0x332ef1=!_0x30d901[_0x4455cd(0x177)](existsSync,_0x30d901['zocWS'](getRangerDir)),{path:_0x4f852c}=await ensureRangerDir();_0x1260c2?.['trackPhaseStart'](_0x30d901[_0x4455cd(0x14e)]);const _0x17eda7=await _0x30d901['TgwHb'](authenticate,_0x3a869f);_0x1260c2?.['trackPhaseEnd'](_0x4455cd(0x168),{'isFirstRun':_0x332ef1,'method':_0x17eda7[_0x4455cd(0x188)]}),_0x1260c2?.['trackPhaseStart']('chromium');_0x303e4c?.[_0x4455cd(0x18e)]?console['log'](_0x30d901[_0x4455cd(0x15d)]):await _0x30d901[_0x4455cd(0x154)](ensureChromium);_0x1260c2?.['trackPhaseEnd'](_0x4455cd(0x199),{'isFirstRun':_0x332ef1,'skipped':!!_0x303e4c?.[_0x4455cd(0x18e)]}),await _0x30d901['TgwHb'](writeRangerGitignore,_0x4f852c),console['log'](_0x4455cd(0x147));const _0x4107a7=_0x303e4c?.[_0x4455cd(0x159)],_0x1a4572=_0x303e4c?.[_0x4455cd(0x16e)]??![];let _0x40f160=null;_0x1a4572?(_0x1260c2?.[_0x4455cd(0x1a2)](_0x30d901[_0x4455cd(0x181)]),_0x40f160=await ensureOpencodePluginConfig(_0x4107a7),_0x1260c2?.['trackPhaseEnd']('plugin',{'isFirstRun':_0x332ef1,'opencode':!![]})):(_0x1260c2?.[_0x4455cd(0x1a2)]('plugin'),await _0x30d901['acrej'](ensureClaudePlugin,_0x4107a7),_0x1260c2?.['trackPhaseEnd'](_0x30d901['GtRQt'],{'isFirstRun':_0x332ef1}));if(_0x30d901['etvDo'](_0x1a4572,_0x40f160)){_0x1260c2?.['trackPhaseStart'](_0x30d901[_0x4455cd(0x18d)]);try{await installSkill(_0x4455cd(0x153),{'level':_0x40f160[_0x4455cd(0x159)],'cliVersion':_0x30d901['bAAYV'](getCurrentVersion),'platform':'opencode'}),_0x1260c2?.['trackPhaseEnd']('skills',{'isFirstRun':_0x332ef1,'opencode':!![]});}catch(_0x2c03a0){console['warn']('\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:',_0x30d901[_0x4455cd(0x192)](_0x2c03a0,Error)?_0x2c03a0[_0x4455cd(0x13f)]:_0x2c03a0),_0x1260c2?.['trackPhaseEnd'](_0x4455cd(0x19f),{'isFirstRun':_0x332ef1,'opencode':!![],'failed':!![]});}}else _0x1260c2?.[_0x4455cd(0x1a2)](_0x30d901[_0x4455cd(0x18d)]),await _0x30d901['acrej'](ensureClaudeSkills,_0x4107a7),_0x1260c2?.['trackPhaseEnd']('skills',{'isFirstRun':_0x332ef1});if(!_0x3a67b3&&!_0x303e4c?.['url'])console['log'](_0x30d901['oRyht']),console['log']('\x20\x20'+bold(_0x30d901['LElvN'])+'\x0a');else{_0x1260c2?.[_0x4455cd(0x1a2)](_0x4455cd(0x16d));const _0x5d5b68=await _0x30d901[_0x4455cd(0x15a)](ensureLocalEnv,{'url':_0x303e4c?.[_0x4455cd(0x16f)],'force':_0x303e4c?.['force'],'allowInsecureLocalhost':_0x303e4c?.['allowInsecureLocalhost']},_0x1260c2);_0x1260c2?.[_0x4455cd(0x141)](_0x30d901['pzZMz'],{'isFirstRun':_0x332ef1,'profileReady':_0x5d5b68['ready'],'userSkipped':_0x5d5b68['skipped']}),_0x5d5b68[_0x4455cd(0x17d)]&&console[_0x4455cd(0x144)](_0x4455cd(0x146));}if(_0x1a4572)console['log'](_0x4455cd(0x14d)),console[_0x4455cd(0x144)]('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console[_0x4455cd(0x144)](_0x30d901[_0x4455cd(0x1a1)]),console[_0x4455cd(0x144)](_0x4455cd(0x189));else{const _0x4b712a=bold(_0x4455cd(0x175));console['log'](_0x30d901['TBmzE'](_0x30d901['TBmzE']('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0x4b712a+_0x4455cd(0x150),_0x4455cd(0x170))+'\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 _0x457348=_0xc410;(function(_0x1d4ca5,_0x4429fb){const _0x47ccbb=_0xc410,_0x4de5df=_0x1d4ca5();while(!![]){try{const _0x4ff74c=-parseInt(_0x47ccbb(0xa2))/0x1+parseInt(_0x47ccbb(0xd4))/0x2*(-parseInt(_0x47ccbb(0x101))/0x3)+-parseInt(_0x47ccbb(0xdc))/0x4+parseInt(_0x47ccbb(0xb5))/0x5+parseInt(_0x47ccbb(0xa3))/0x6*(parseInt(_0x47ccbb(0xd3))/0x7)+-parseInt(_0x47ccbb(0xe4))/0x8+parseInt(_0x47ccbb(0xb2))/0x9;if(_0x4ff74c===_0x4429fb)break;else _0x4de5df['push'](_0x4de5df['shift']());}catch(_0x10b33e){_0x4de5df['push'](_0x4de5df['shift']());}}}(_0xc190,0xc7850));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';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=_0x2381f8=>_0x457348(0xf0)+_0x2381f8+'\x1b[0m',link=(_0x16db8e,_0x243898)=>_0x457348(0xcd)+_0x16db8e+'\x07'+(_0x243898||_0x16db8e)+_0x457348(0xf2);async function getOpencodePluginStatus(){const _0x42a3e8=_0x457348,_0x5b9971={'lJGkw':function(_0x3db55b,_0x1eface){return _0x3db55b(_0x1eface);},'czKHe':'not_installed','ODyVS':_0x42a3e8(0xb7),'qbhnh':_0x42a3e8(0x9b),'hWkHz':_0x42a3e8(0xe5),'QSNAD':_0x42a3e8(0xbb),'RHGIE':function(_0x579930,_0x2fe9f9){return _0x579930>_0x2fe9f9;},'zICle':'not_configured','fwBZt':_0x42a3e8(0xc0),'XdMOm':'debug','PMqYT':'ignore','RnzRE':'data'};return new Promise(_0x5eace3=>{const _0x520a6c=_0x42a3e8,_0x185101=spawn(_0x5b9971['fwBZt'],[_0x5b9971['XdMOm'],_0x520a6c(0xca)],{'stdio':[_0x5b9971[_0x520a6c(0xcb)],'pipe','pipe']});let _0x189581='';_0x185101['stdout']?.['on']('data',_0x1b8084=>{const _0x48890c=_0x520a6c;_0x189581+=_0x1b8084[_0x48890c(0xbe)]();}),_0x185101[_0x520a6c(0xe7)]?.['on'](_0x5b9971[_0x520a6c(0xec)],_0x5948de=>{const _0x33284a=_0x520a6c;_0x189581+=_0x5948de[_0x33284a(0xbe)]();}),_0x185101['on'](_0x520a6c(0xad),()=>{const _0x5c220d=_0x520a6c;_0x5b9971['lJGkw'](_0x5eace3,{'status':_0x5b9971[_0x5c220d(0xa1)]});}),_0x185101['on']('close',_0x1c58ec=>{const _0x2b36e1=_0x520a6c,_0x586d7d={'nrVWE':function(_0x26b338,_0x2e16d4){return _0x26b338!==_0x2e16d4;},'RCHTk':_0x5b9971[_0x2b36e1(0xed)],'SSvPP':_0x5b9971[_0x2b36e1(0xa7)],'PbSzd':_0x5b9971[_0x2b36e1(0xee)]};if(_0x1c58ec!==0x0){_0x5b9971['lJGkw'](_0x5eace3,{'status':_0x5b9971[_0x2b36e1(0xa1)]});return;}const _0x517368=_0x189581[_0x2b36e1(0x100)]();let _0x4e2b33=null;if(_0x517368)try{_0x4e2b33=JSON['parse'](_0x517368);}catch{const _0x2c1987=_0x517368['match'](/\{[\s\S]*\}$/);if(_0x2c1987)try{_0x4e2b33=JSON[_0x2b36e1(0x9d)](_0x2c1987[0x0]);}catch{_0x4e2b33=null;}}const _0x422da7=Array[_0x2b36e1(0xda)](_0x4e2b33?.['plugin'])?_0x4e2b33?.[_0x2b36e1(0xbf)]:[],_0x458ccb=_0x422da7[_0x2b36e1(0xf8)](_0xdd6e48=>{const _0x4b1d1e=_0x2b36e1;if(_0x586d7d[_0x4b1d1e(0xfa)](typeof _0xdd6e48,_0x586d7d['RCHTk']))return![];return _0xdd6e48[_0x4b1d1e(0xf3)](_0x586d7d['SSvPP'])||_0xdd6e48[_0x4b1d1e(0xf3)](_0x586d7d['PbSzd']);});if(_0x458ccb){_0x5b9971['lJGkw'](_0x5eace3,{'status':_0x5b9971[_0x2b36e1(0xa5)],'details':_0x5b9971[_0x2b36e1(0xbc)](_0x422da7['length'],0x0)?_0x422da7['length']+_0x2b36e1(0xe3):undefined});return;}if(_0x422da7[_0x2b36e1(0xb1)]>0x0){_0x5eace3({'status':_0x5b9971['zICle'],'details':_0x422da7[_0x2b36e1(0xb1)]+_0x2b36e1(0xe3)});return;}_0x5b9971['lJGkw'](_0x5eace3,{'status':_0x5b9971[_0x2b36e1(0xcc)]});});});}async function getSkillsFromDir(_0x4caf40,_0x29b4da){const _0xaf2454=_0x457348,_0x36c812={'aMJzo':_0xaf2454(0xe0),'ZVsGn':function(_0x59ae78,_0x3d9b1c){return _0x59ae78(_0x3d9b1c);},'jtIuN':'utf-8'};if(!existsSync(_0x4caf40))return[];const _0x4f69df=[];try{const _0x3b6a5a=await readdir(_0x4caf40,{'withFileTypes':!![]});for(const _0x24f765 of _0x3b6a5a){if(_0x24f765[_0xaf2454(0xef)]()){const _0x465115=join(_0x4caf40,_0x24f765['name'],_0x36c812['aMJzo']);if(_0x36c812['ZVsGn'](existsSync,_0x465115)){let _0x5dc77c=_0x24f765[_0xaf2454(0xcf)];try{const _0xafd3f3=await readFile(_0x465115,_0x36c812['jtIuN']),_0x43f885=_0xafd3f3['match'](/name:\s*(.+)/);_0x43f885&&(_0x5dc77c=_0x43f885[0x1]['trim']());}catch{}_0x4f69df[_0xaf2454(0xd5)]({'name':_0x24f765['name'],'displayName':_0x5dc77c,'path':_0x465115,'level':_0x29b4da});}}}}catch{return[];}return _0x4f69df;}async function getInstalledSkills(){const _0x46ac68=_0x457348,_0x5713b3={'OTOEQ':function(_0x13b5ce,_0x2efbc9,_0x5ca8d9){return _0x13b5ce(_0x2efbc9,_0x5ca8d9);},'rtWgF':function(_0x356d02){return _0x356d02();},'GVOHo':_0x46ac68(0xa4),'ehKGj':function(_0x53a1fc,_0x538d2,_0x4e93e5){return _0x53a1fc(_0x538d2,_0x4e93e5);},'ZohnB':'user'},[_0x236cc8,_0x3b29f2]=await Promise[_0x46ac68(0xa9)]([_0x5713b3['OTOEQ'](getSkillsFromDir,_0x5713b3[_0x46ac68(0xb0)](getProjectSkillsDir),_0x5713b3[_0x46ac68(0xc4)]),_0x5713b3[_0x46ac68(0xeb)](getSkillsFromDir,_0x5713b3['rtWgF'](getUserSkillsDir),_0x5713b3['ZohnB'])]);return{'project':_0x236cc8,'user':_0x3b29f2};}function _0xc410(_0x3bdd3e,_0x3f91e1){_0x3bdd3e=_0x3bdd3e-0x99;const _0xc1909d=_0xc190();let _0xc4100b=_0xc1909d[_0x3bdd3e];return _0xc4100b;}function _0xc190(){const _0x5382a7=['toString','plugin','opencode','\x20\x20User-level:','Organization:\x20','KIVoZ','GVOHo','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','encrypted','enabled','map','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','config','PMqYT','zICle','\x1b]8;;file://','AcSbS','name','scope',':\x20configured','plaintext','350vFmmHX','28452iSOLnk','push','SeQkG','\x0a📊\x20Ranger\x20Status\x0a','SXtXq','pHKRl','isArray','soUab','6254040exwhov','LGDzD','UYyVj','log','SKILL.md','filter','xcIcD','\x20plugin(s)\x20configured','6875184GFJYDz','opencode-plugin','disabled','stderr','ranger@trailhead','displayName','No\x20profiles\x20configured','ehKGj','RnzRE','ODyVS','hWkHz','isDirectory','\x1b[1m','\x20\x20\x20\x20','\x1b]8;;\x07','includes','join','PRhiR','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','details','some','version','nrVWE','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20','\x0a---\x20Profiles\x20---','path','settings.json','cwd','trim','75qpzUDp','PLAsH','dfVmS','\x20\x20\x20\x20Settings:\x20','\x20\x20Run:\x20ranger\x20setup\x20--opencode','DEBUG','API\x20URL:\x20','@ranger-testing/opencode-plugin','(not\x20found)','parse','vFeEJ','kolWE','Root:\x20','czKHe','773735eNTdka','116262tXtBYl','project','QSNAD','status','qbhnh','brbek','all','\x0a---\x20Skills\x20---','API\x20Environment:\x20','unknown','error','hasEncryptedAuth','gYnwE','rtWgF','length','18274554zmzxoc','KArea','none','6850845LIksrt','\x20\x20Not\x20configured','string','Version:\x20','YKvjs','auth.json.enc','configured','RHGIE','\x0a\x20\x20No\x20active\x20profile\x20set'];_0xc190=function(){return _0x5382a7;};return _0xc190();}async function getEnvironments(){const _0x468fa1=_0x457348,_0x46bf5c={'ukZge':function(_0x44ab50,_0x15eb84,_0x98715b){return _0x44ab50(_0x15eb84,_0x98715b);},'soUab':_0x468fa1(0x9c),'SXtXq':function(_0x5694a5,_0x22505d){return _0x5694a5(_0x22505d);},'StqBT':function(_0x4b3f1a,_0x471f90){return _0x4b3f1a===_0x471f90;},'CEjfd':function(_0x5dd109){return _0x5dd109();}},{envNames:_0x5cbaa9,activeEnv:_0x4aee70}=await _0x46bf5c['CEjfd'](getEnvNames),_0x4ff768=getRangerDir();if(!existsSync(_0x4ff768))return{'envs':[],'activeEnv':null};const _0x3cb82d=_0x5cbaa9[_0x468fa1(0xc8)](_0x3d2de2=>{const _0x14141d=_0x468fa1,_0x48784f=getEnvDir(_0x3d2de2),_0x3ff155=join(_0x48784f,_0x14141d(0xfe)),_0x44b3a7=_0x46bf5c['ukZge'](join,_0x48784f,'auth.json'),_0xec6569=join(_0x48784f,_0x14141d(0xba));return{'name':_0x3d2de2,'settingsPath':existsSync(_0x3ff155)?_0x3ff155:_0x46bf5c[_0x14141d(0xdb)],'hasPlaintextAuth':_0x46bf5c[_0x14141d(0xd8)](existsSync,_0x44b3a7),'hasEncryptedAuth':existsSync(_0xec6569),'isActive':_0x46bf5c['StqBT'](_0x3d2de2,_0x4aee70)};});return{'envs':_0x3cb82d,'activeEnv':_0x4aee70};}export async function status(){const _0x2be3f8=_0x457348,_0x31a792={'PLAsH':_0x2be3f8(0xd7),'kolWE':function(_0x2fc5bd){return _0x2fc5bd();},'YKvjs':function(_0xe6ebec,_0x1b0bbe){return _0xe6ebec(_0x1b0bbe);},'pHKRl':function(_0x178bf5,_0x199dc1,_0x34a4ac){return _0x178bf5(_0x199dc1,_0x34a4ac);},'PRhiR':function(_0x52c064,_0x24ee1f){return _0x52c064(_0x24ee1f);},'VLjXr':function(_0x17c763,_0x10f157,_0x1c6891){return _0x17c763(_0x10f157,_0x1c6891);},'brbek':function(_0x4f70ea){return _0x4f70ea();},'gYnwE':function(_0x1e48a5,_0x264fdc){return _0x1e48a5!==_0x264fdc;},'QBpeg':function(_0x2584bb){return _0x2584bb();},'QobLO':function(_0x4fa612,_0x34933d){return _0x4fa612===_0x34933d;},'UYyVj':'configured','KArea':_0x2be3f8(0xb6),'LwMvq':'\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','KIVoZ':_0x2be3f8(0xac),'cKkoj':'\x20\x20Not\x20installed','Smnbe':'\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','qFNui':function(_0x53ff67){return _0x53ff67();},'SeQkG':function(_0x5e1b8f,_0x12d430){return _0x5e1b8f===_0x12d430;},'yalfZ':'\x20\x20Project-level:','dfVmS':function(_0x157b93,_0x460d32){return _0x157b93(_0x460d32);},'xcIcD':function(_0x189bc0,_0x4b7eb3){return _0x189bc0>_0x4b7eb3;},'LGDzD':_0x2be3f8(0xc1),'wXwqY':function(_0x4ecee5,_0x3afe09){return _0x4ecee5(_0x3afe09);},'vFeEJ':function(_0x3799b5){return _0x3799b5();},'ZRJYB':function(_0x5e34da,_0x105ac4){return _0x5e34da===_0x105ac4;},'bhxtp':_0x2be3f8(0xea),'skZMX':'\x20(active)','AcSbS':_0x2be3f8(0xd2)};console[_0x2be3f8(0xdf)](_0x31a792[_0x2be3f8(0x102)]);const _0x8d0853=process[_0x2be3f8(0xff)](),_0x1ceb43=_0x31a792[_0x2be3f8(0x9f)](getRangerDir);if(!_0x31a792[_0x2be3f8(0xb9)](existsSync,_0x1ceb43)){console[_0x2be3f8(0xdf)](_0x2be3f8(0xa0)+_0x31a792[_0x2be3f8(0xd9)](link,_0x8d0853,bold(_0x31a792[_0x2be3f8(0xf5)](basename,_0x8d0853)))),console[_0x2be3f8(0xdf)](_0x2be3f8(0xf6)),console['log'](_0x2be3f8(0xc5));return;}console['log']('Root:\x20'+_0x31a792['VLjXr'](link,_0x8d0853,bold(basename(_0x8d0853))));const _0x4dab0f=_0x31a792[_0x2be3f8(0xa8)](getCurrentVersion),_0x2ac532=getLatestVersion();if(_0x2ac532[_0x2be3f8(0xf9)]&&_0x31a792[_0x2be3f8(0xaf)](_0x2ac532['version'],_0x4dab0f))console[_0x2be3f8(0xdf)](_0x2be3f8(0xb8)+_0x4dab0f+'\x20(latest:\x20'+_0x2ac532['version']+')'),console['log']('\x20\x20Run:\x20ranger\x20update');else _0x2ac532['version']?console['log'](_0x2be3f8(0xb8)+_0x4dab0f+'\x20(up\x20to\x20date)'):console[_0x2be3f8(0xdf)]('Version:\x20'+_0x4dab0f);const _0x41cb90=await _0x31a792['kolWE'](getToken);if(_0x41cb90){const _0x45485b=await _0x31a792['YKvjs'](getCurrentUser,_0x41cb90);_0x45485b['success']?console['log'](_0x2be3f8(0xc2)+bold(_0x45485b['user']['organizationName'])):(console[_0x2be3f8(0xdf)]('API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired'),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]'));}else console['log']('API\x20Token:\x20✗\x20Not\x20found'),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]');process['env'][_0x2be3f8(0x99)]&&(console['log'](_0x2be3f8(0xab)+getCurrentEnvironment()),console['log'](_0x2be3f8(0x9a)+_0x31a792['QBpeg'](getApiBaseUrl)));console['log']('\x0a---\x20OpenCode\x20Plugin\x20---');const _0x8e0ed6=await getOpencodePluginStatus();if(_0x31a792['QobLO'](_0x8e0ed6[_0x2be3f8(0xa6)],_0x31a792[_0x2be3f8(0xde)]))console[_0x2be3f8(0xdf)]('\x20\x20'+bold('@ranger-testing/opencode-plugin')+_0x2be3f8(0xd1)),_0x8e0ed6[_0x2be3f8(0xf7)]&&console['log']('\x20\x20'+_0x8e0ed6[_0x2be3f8(0xf7)]);else _0x8e0ed6['status']==='not_configured'?(console['log'](_0x31a792[_0x2be3f8(0xb3)]),_0x8e0ed6[_0x2be3f8(0xf7)]&&console[_0x2be3f8(0xdf)]('\x20\x20'+_0x8e0ed6['details']),console['log'](_0x2be3f8(0x105))):console[_0x2be3f8(0xdf)](_0x31a792['LwMvq']);console['log']('\x0a---\x20Claude\x20Code\x20Plugin\x20---');const _0x537f11=await getPluginInfo(_0x2be3f8(0xe8));if(_0x537f11){const _0x416ac2=_0x537f11[_0x2be3f8(0xd0)]||_0x31a792[_0x2be3f8(0xc3)],_0xf87f5e=_0x537f11[_0x2be3f8(0xc7)]?_0x2be3f8(0xc7):_0x2be3f8(0xe6);console[_0x2be3f8(0xdf)]('\x20\x20'+_0x31a792['YKvjs'](bold,_0x2be3f8(0xe8))+':\x20installed\x20('+_0x416ac2+',\x20'+_0xf87f5e+')');}else console['log'](_0x31a792['cKkoj']),console[_0x2be3f8(0xdf)](_0x31a792['Smnbe']);console['log'](_0x2be3f8(0xaa));const {project:_0x38bef0,user:_0x1bb20d}=await _0x31a792['qFNui'](getInstalledSkills),_0x17cf4e=_0x38bef0[_0x2be3f8(0xe1)](_0x2b7d43=>RANGER_MANAGED_SKILLS[_0x2be3f8(0xf3)](_0x2b7d43['name'])),_0x461ec3=_0x1bb20d[_0x2be3f8(0xe1)](_0x153000=>RANGER_MANAGED_SKILLS[_0x2be3f8(0xf3)](_0x153000[_0x2be3f8(0xcf)])),_0x16853d=_0x17cf4e['length']+_0x461ec3[_0x2be3f8(0xb1)];if(_0x31a792[_0x2be3f8(0xd6)](_0x16853d,0x0))console[_0x2be3f8(0xdf)]('No\x20skills\x20installed'),console[_0x2be3f8(0xdf)]('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x17cf4e['length']>0x0){console['log'](_0x31a792['yalfZ']);for(const _0x252f8b of _0x17cf4e){console[_0x2be3f8(0xdf)]('\x20\x20\x20\x20'+bold(_0x252f8b['displayName'])+':\x20'+_0x31a792['VLjXr'](link,_0x252f8b['path'],_0x31a792[_0x2be3f8(0x103)](basename,_0x252f8b[_0x2be3f8(0xfd)])));}}if(_0x31a792[_0x2be3f8(0xe2)](_0x461ec3['length'],0x0)){console['log'](_0x31a792[_0x2be3f8(0xdd)]);for(const _0x2fe667 of _0x461ec3){console['log'](_0x2be3f8(0xf1)+_0x31a792['PRhiR'](bold,_0x2fe667[_0x2be3f8(0xe9)])+':\x20'+link(_0x2fe667['path'],_0x31a792['wXwqY'](basename,_0x2fe667['path'])));}}}console['log'](_0x2be3f8(0xfc));const {envs:_0x356984,activeEnv:_0x1e771f}=await _0x31a792[_0x2be3f8(0x9e)](getEnvironments);if(_0x31a792['ZRJYB'](_0x356984[_0x2be3f8(0xb1)],0x0))console['log'](_0x31a792['bhxtp']),console['log'](_0x2be3f8(0xc9));else{for(const _0x57b41c of _0x356984){const _0x4104a8=_0x57b41c['isActive']?_0x31a792['skZMX']:'',_0x50cb5a=_0x57b41c[_0x2be3f8(0xae)]?_0x2be3f8(0xc6):_0x57b41c['hasPlaintextAuth']?_0x31a792[_0x2be3f8(0xce)]:_0x2be3f8(0xb4);console['log']('\x20\x20'+_0x31a792['PRhiR'](bold,_0x57b41c[_0x2be3f8(0xcf)])+_0x4104a8),console['log']('\x20\x20\x20\x20Auth:\x20'+_0x50cb5a),_0x31a792['gYnwE'](_0x57b41c['settingsPath'],_0x2be3f8(0x9c))&&console[_0x2be3f8(0xdf)](_0x2be3f8(0x104)+link(_0x57b41c['settingsPath'],basename(_0x57b41c['settingsPath'])));}!_0x1e771f&&(console['log'](_0x2be3f8(0xbd)),console['log'](_0x2be3f8(0xfb)+_0x356984[_0x2be3f8(0xc8)](_0x42db2b=>_0x42db2b[_0x2be3f8(0xcf)])[_0x2be3f8(0xf4)](',\x20')+')'));}console[_0x2be3f8(0xdf)]('');}
@@ -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(_0xd11039,_0x528b2b){const _0x28f625=_0x4f72,_0x4cea79=_0xd11039();while(!![]){try{const _0x5f3f3f=parseInt(_0x28f625(0x1bc))/0x1*(-parseInt(_0x28f625(0x1c2))/0x2)+parseInt(_0x28f625(0x1a0))/0x3*(parseInt(_0x28f625(0x193))/0x4)+-parseInt(_0x28f625(0x1cb))/0x5*(-parseInt(_0x28f625(0x1c6))/0x6)+parseInt(_0x28f625(0x1bd))/0x7+-parseInt(_0x28f625(0x1b9))/0x8*(parseInt(_0x28f625(0x1bf))/0x9)+parseInt(_0x28f625(0x194))/0xa+-parseInt(_0x28f625(0x1a9))/0xb*(-parseInt(_0x28f625(0x1cc))/0xc);if(_0x5f3f3f===_0x528b2b)break;else _0x4cea79['push'](_0x4cea79['shift']());}catch(_0x522c7a){_0x4cea79['push'](_0x4cea79['shift']());}}}(_0xe9bc,0xdb151));import{spawn}from'child_process';import{existsSync}from'fs';import{readFile,writeFile}from'fs/promises';function _0x4f72(_0x103175,_0xc9111f){_0x103175=_0x103175-0x18d;const _0xe9bc7a=_0xe9bc();let _0x4f728c=_0xe9bc7a[_0x103175];return _0x4f728c;}import{installSkill,removeSkill,RANGER_MANAGED_SKILLS,DEPRECATED_SKILLS}from'./utils/skills.js';import{PACKAGE_NAME,getCurrentVersion,getLatestVersion,compareVersions}from'./utils/version.js';function _0xe9bc(){const _0x2626d1=['WOFzi','warn','Update\x20failed:\x20','Oipbz','claude','pTXPg','73275whRKFk','xBxYC','error','\x0aYour\x20version\x20(','@latest...\x0a','LxPcN','endsWith','findIndex','uMtoh','303655fpCoEJ','\x20skill\x20','ranger@trailhead','.gitignore','KYAMG','close','\x0aCould\x20not\x20check\x20latest\x20version:\x20','active-profile.txt','install','TdRbB','TvhKz','inherit','weluV','krMUA','length','user','122456kcIagg','opencode','EWUZX','1321577fCFslx','1467543ueBJrD','some','549rutKjp','\x0aClaude\x20plugin\x20updated\x20(user\x20scope).','active-feature.txt','2dQkLoY','\x0a✅\x20Update\x20complete!','WMsyg','\x0aClaude\x20marketplace\x20updated\x20(trailhead).','463764GycDJh','mdSNa','trailhead','push','win32','20BKXmCK','72doJxUe','eXaTE','Attempting\x20install\x20anyway...','log','mOmUw','✓\x20Migrated\x20active\x20profile\x20file','platform','\x0aReinstalling\x20','252YhIobP','9294350aqKGoc','version','AUGVU','npm','\x0aNo\x20ranger-managed\x20skills\x20found\x20to\x20reinstall.','WEtHM'];_0xe9bc=function(){return _0x2626d1;};return _0xe9bc();}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 _0x38792a=_0x4f72,_0x467e86={'mOmUw':function(_0x55627,_0x2694ef){return _0x55627(_0x2694ef);},'cCrwY':function(_0x2e25d6,_0x3d6c9b){return _0x2e25d6===_0x3d6c9b;},'Wcguw':function(_0x5d79d1,_0x5234b0,_0x602036,_0x553dbc){return _0x5d79d1(_0x5234b0,_0x602036,_0x553dbc);},'OwmtO':_0x38792a(0x197),'AUGVU':_0x38792a(0x1ca),'KYAMG':'close','gDVxj':'error'};return new Promise(_0xa0476b=>{const _0x501d42=_0x38792a;console[_0x501d42(0x18e)]('\x0aInstalling\x20'+PACKAGE_NAME+_0x501d42(0x1a4));const _0x4ebeb3=_0x467e86['Wcguw'](spawn,_0x467e86['OwmtO'],[_0x501d42(0x1b1),'-g',PACKAGE_NAME+'@latest'],{'stdio':_0x501d42(0x1b4),'shell':_0x467e86['cCrwY'](process['platform'],_0x467e86[_0x501d42(0x196)])});_0x4ebeb3['on'](_0x467e86[_0x501d42(0x1ad)],_0x3a6673=>{const _0x48b763=_0x501d42;_0x467e86[_0x48b763(0x18f)](_0xa0476b,_0x467e86['cCrwY'](_0x3a6673,0x0));}),_0x4ebeb3['on'](_0x467e86['gDVxj'],()=>{_0xa0476b(![]);});});}async function updateClaudeMarketplace(){const _0x5c765f={'IoMui':function(_0x3277cb,_0x86e631){return _0x3277cb===_0x86e631;},'cdZMw':function(_0x45f9c5,_0x1e76a9){return _0x45f9c5(_0x1e76a9);},'TvhKz':function(_0xf29c82,_0x4e00dd,_0x4c8b76,_0x39d1d3){return _0xf29c82(_0x4e00dd,_0x4c8b76,_0x39d1d3);},'gFPna':'plugin','mdSNa':'marketplace','HSDwr':'update','Agppf':'trailhead','CWdBS':function(_0x5d7efc,_0x4eb436){return _0x5d7efc===_0x4eb436;},'KCyUS':'win32'};return new Promise(_0x1bd6d9=>{const _0x438271=_0x4f72,_0x8721cd=_0x5c765f[_0x438271(0x1b3)](spawn,_0x438271(0x19e),[_0x5c765f['gFPna'],_0x5c765f[_0x438271(0x1c7)],_0x5c765f['HSDwr'],_0x5c765f['Agppf']],{'stdio':'pipe','shell':_0x5c765f['CWdBS'](process['platform'],_0x5c765f['KCyUS'])});_0x8721cd['on']('close',_0x2efc4c=>{_0x1bd6d9(_0x5c765f['IoMui'](_0x2efc4c,0x0));}),_0x8721cd['on'](_0x438271(0x1a2),()=>{_0x5c765f['cdZMw'](_0x1bd6d9,![]);});});}async function updateClaudePlugin(_0x7be2d6){const _0x40d8f0={'krMUA':'plugin','TdRbB':'update','WOFzi':'--scope','eXaTE':function(_0x3ce562,_0x382e37,_0x52733e,_0x3ad1f0){return _0x3ce562(_0x382e37,_0x52733e,_0x3ad1f0);},'EWUZX':function(_0x5f408e,_0x454173){return _0x5f408e===_0x454173;}};return new Promise(_0x3ec76f=>{const _0x455f6e=_0x4f72,_0x5a39aa=[_0x40d8f0[_0x455f6e(0x1b6)],_0x40d8f0[_0x455f6e(0x1b2)],_0x455f6e(0x1ab)];_0x7be2d6&&_0x5a39aa[_0x455f6e(0x1c9)](_0x40d8f0[_0x455f6e(0x19a)],_0x7be2d6);const _0x2608ed=_0x40d8f0[_0x455f6e(0x1cd)](spawn,'claude',_0x5a39aa,{'stdio':'pipe','shell':_0x40d8f0[_0x455f6e(0x1bb)](process[_0x455f6e(0x191)],'win32')});_0x2608ed['on'](_0x455f6e(0x1ae),_0x8fd46c=>{_0x3ec76f(_0x8fd46c===0x0);}),_0x2608ed['on']('error',()=>{_0x3ec76f(![]);});});}function isSkillInstalled(_0x5c83d9,_0x45f94c,_0x3b75a6){const _0x4e54f2=_0x4f72,_0x386510={'rHgjf':function(_0x12b116,_0xeed0b9){return _0x12b116===_0xeed0b9;},'KDcja':function(_0x39ef89,_0x548e63,_0x2f3c0e){return _0x39ef89(_0x548e63,_0x2f3c0e);}},_0x86c404=_0x386510['rHgjf'](_0x3b75a6,_0x4e54f2(0x1ba))?getOpencodeSkillsDir(_0x45f94c):getSkillsDir(_0x45f94c),_0x4a5f90=_0x386510['KDcja'](join,_0x86c404,_0x5c83d9);return existsSync(_0x4a5f90);}async function reinstallSkills(_0x49f4f1){const _0x156012=_0x4f72,_0x50e26f={'WEtHM':'project','BrsVT':_0x156012(0x1b8),'uMtoh':function(_0x4a8013,_0x11a4d1,_0x33c20c){return _0x4a8013(_0x11a4d1,_0x33c20c);},'mHyLj':_0x156012(0x198),'cxLkL':function(_0x291876,_0x29064b,_0x27a3d0){return _0x291876(_0x29064b,_0x27a3d0);}},_0xf877ab=[_0x50e26f[_0x156012(0x199)],_0x50e26f['BrsVT']],_0x432854=[];for(const _0x2305a7 of _0xf877ab){for(const _0x34b5ed of RANGER_MANAGED_SKILLS){isSkillInstalled(_0x34b5ed,_0x2305a7,'claude')&&_0x432854[_0x156012(0x1c9)]({'skillName':_0x34b5ed,'level':_0x2305a7,'platform':_0x156012(0x19e)}),isSkillInstalled(_0x34b5ed,_0x2305a7,'opencode')&&_0x432854[_0x156012(0x1c9)]({'skillName':_0x34b5ed,'level':_0x2305a7,'platform':'opencode'});}}for(const _0x39df5f of _0xf877ab){for(const _0x3ebc30 of DEPRECATED_SKILLS){await _0x50e26f[_0x156012(0x1a8)](removeSkill,_0x3ebc30,_0x39df5f);}}if(_0x432854[_0x156012(0x1b7)]===0x0){console[_0x156012(0x18e)](_0x50e26f['mHyLj']);return;}console[_0x156012(0x18e)](_0x156012(0x192)+_0x432854[_0x156012(0x1b7)]+'\x20ranger-managed\x20skill(s)...');for(const {skillName:_0x3387da,level:_0x45e69d,platform:_0x51c0bf}of _0x432854){try{await _0x50e26f['cxLkL'](installSkill,_0x3387da,{'level':_0x45e69d,'cliVersion':_0x49f4f1,'platform':_0x51c0bf});}catch(_0x1d1c71){console[_0x156012(0x19b)]('\x20\x20Failed\x20to\x20reinstall\x20'+_0x51c0bf+'\x20'+_0x45e69d+_0x156012(0x1aa)+_0x3387da+':',_0x1d1c71);}}}async function ensureActiveProfileGitignored(){const _0x58ac6d=_0x4f72,_0x30b3b3={'pTXPg':function(_0x103f14,_0x37d37c,_0x476149){return _0x103f14(_0x37d37c,_0x476149);},'KXoUC':function(_0x39582e){return _0x39582e();},'LxPcN':'utf-8','xBxYC':function(_0x4342f2,_0x47e7ba){return _0x4342f2===_0x47e7ba;},'sDWrd':'active-profile.txt'},_0x54a217=_0x30b3b3[_0x58ac6d(0x19f)](join,_0x30b3b3['KXoUC'](getRangerDir),_0x58ac6d(0x1ac));if(!existsSync(_0x54a217))return![];let _0x1ed8c1='';try{_0x1ed8c1=await _0x30b3b3['pTXPg'](readFile,_0x54a217,_0x30b3b3[_0x58ac6d(0x1a5)]);}catch{return![];}const _0x1e26c0=_0x1ed8c1['split'](/\r?\n/);if(_0x1e26c0[_0x58ac6d(0x1be)](_0x1cd6b9=>_0x1cd6b9['trim']()===_0x58ac6d(0x1b0)))return![];let _0x529484=_0x1e26c0[_0x58ac6d(0x1a7)](_0x477e20=>_0x477e20['trim']()===_0x58ac6d(0x1c1));_0x30b3b3[_0x58ac6d(0x1a1)](_0x529484,-0x1)&&(_0x529484=_0x1e26c0['length']);_0x1e26c0['splice'](_0x529484,0x0,_0x30b3b3['sDWrd']);let _0x426802=_0x1e26c0['join']('\x0a');!_0x426802[_0x58ac6d(0x1a6)]('\x0a')&&(_0x426802+='\x0a');try{await writeFile(_0x54a217,_0x426802,_0x30b3b3['LxPcN']);}catch{return![];}return!![];}export async function update(){const _0x3696fa=_0x4f72,_0xe8978c={'ZYsNx':function(_0x24a267){return _0x24a267();},'Oipbz':function(_0x30c863){return _0x30c863();},'ypIuc':function(_0x34307a,_0x23f31d,_0x2bf994){return _0x34307a(_0x23f31d,_0x2bf994);},'obYJc':function(_0x3b97c8,_0x120d0c){return _0x3b97c8===_0x120d0c;},'zbjZY':'Update\x20failed.','PAVsV':function(_0x1a6e60,_0x4ffa12){return _0x1a6e60(_0x4ffa12);},'weluV':_0x3696fa(0x1c8),'WMsyg':function(_0x45a262,_0x424bfb){return _0x45a262(_0x424bfb);},'MhPxY':_0x3696fa(0x1ab),'LTKhj':_0x3696fa(0x1c5),'FIPZN':function(_0x29c6b7){return _0x29c6b7();},'udOLq':'project'},_0x5e237d=_0xe8978c['ZYsNx'](getCurrentVersion);console[_0x3696fa(0x18e)]('\x0aCurrent\x20version:\x20'+_0x5e237d),console[_0x3696fa(0x18e)]('Checking\x20for\x20updates...');const _0x428e3c=getLatestVersion();let _0x49d6fe=_0x5e237d;if(!_0x428e3c['version']){console['warn'](_0x3696fa(0x1af)+_0x428e3c[_0x3696fa(0x1a2)]),console['log'](_0x3696fa(0x18d));const _0x2bd618=await runInstall();if(_0x2bd618)console[_0x3696fa(0x18e)]('\x0aSuccessfully\x20installed\x20latest\x20version.'),_0x49d6fe=_0xe8978c[_0x3696fa(0x19d)](getCurrentVersion);else throw new Error(_0x3696fa(0x19c)+_0x428e3c[_0x3696fa(0x1a2)]);}else{const _0x593349=_0x428e3c[_0x3696fa(0x195)];console['log']('Latest\x20version:\x20\x20'+_0x593349);const _0x13059c=_0xe8978c['ypIuc'](compareVersions,_0x5e237d,_0x593349);if(_0xe8978c['obYJc'](_0x13059c,0x0))console['log']('\x0aYou\x20are\x20already\x20on\x20the\x20latest\x20version.');else{if(_0x13059c<0x0)console[_0x3696fa(0x18e)](_0x3696fa(0x1a3)+_0x5e237d+')\x20is\x20newer\x20than\x20the\x20published\x20version\x20('+_0x593349+').');else{const _0xd1f3b4=await runInstall();if(_0xd1f3b4)console[_0x3696fa(0x18e)]('\x0aSuccessfully\x20updated\x20to\x20version\x20'+_0x593349),_0x49d6fe=_0x593349;else throw new Error(_0xe8978c['zbjZY']);}}}await _0xe8978c['PAVsV'](reinstallSkills,_0x49d6fe);const _0x30bf15=await isMarketplaceAdded(_0xe8978c[_0x3696fa(0x1b5)]),_0x5e9225=await _0xe8978c[_0x3696fa(0x1c4)](isPluginInstalled,_0xe8978c['MhPxY']);if(_0x30bf15){const _0x56f958=await _0xe8978c['ZYsNx'](updateClaudeMarketplace);_0x56f958&&console[_0x3696fa(0x18e)](_0xe8978c['LTKhj']);}if(_0x5e9225){const _0x1b06fc=await _0xe8978c['FIPZN'](updateClaudePlugin);_0x1b06fc&&console['log'](_0x3696fa(0x1c0));const _0x43ac75=await updateClaudePlugin(_0xe8978c['udOLq']);_0x43ac75&&console['log']((_0x1b06fc?'':'\x0a')+'Claude\x20plugin\x20updated\x20(project\x20scope).');}const _0x86468a=await _0xe8978c['ZYsNx'](migrateActiveProfileFile);_0x86468a&&console['log'](_0x3696fa(0x190));const _0x5af6f9=await ensureActiveProfileGitignored();console[_0x3696fa(0x18e)](_0x3696fa(0x1c3));}