@ranger-testing/ranger-cli 2.4.1 → 2.4.3

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 (70) 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/agentEnv.js +1 -1
  35. package/build/commands/utils/browserSessionsApi.js +1 -1
  36. package/build/commands/utils/claudeConfig.js +1 -1
  37. package/build/commands/utils/claudePlugin.js +1 -1
  38. package/build/commands/utils/crypto.js +1 -1
  39. package/build/commands/utils/desirePathLog.js +1 -1
  40. package/build/commands/utils/deviceAuth.js +1 -1
  41. package/build/commands/utils/environment.js +1 -1
  42. package/build/commands/utils/featureApi.js +1 -1
  43. package/build/commands/utils/featureReportGenerator.js +1 -1
  44. package/build/commands/utils/fixWebmDuration.js +1 -1
  45. package/build/commands/utils/git.js +1 -1
  46. package/build/commands/utils/keychain.js +1 -1
  47. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  48. package/build/commands/utils/mcpImageBase64.js +1 -1
  49. package/build/commands/utils/model.js +1 -1
  50. package/build/commands/utils/opencodeConfig.js +1 -1
  51. package/build/commands/utils/playwrightCli.js +1 -1
  52. package/build/commands/utils/profileMessages.js +1 -1
  53. package/build/commands/utils/profileSetupBanner.js +1 -1
  54. package/build/commands/utils/rangerConfig.js +1 -1
  55. package/build/commands/utils/rangerRoot.js +1 -1
  56. package/build/commands/utils/reportGenerator.js +1 -1
  57. package/build/commands/utils/retry.js +1 -1
  58. package/build/commands/utils/sessionCache.js +1 -1
  59. package/build/commands/utils/settings.js +1 -1
  60. package/build/commands/utils/skillContent.js +1 -1
  61. package/build/commands/utils/skills.js +1 -1
  62. package/build/commands/utils/stitchWebmFiles.js +1 -1
  63. package/build/commands/utils/telemetry.js +1 -1
  64. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  65. package/build/commands/utils/userApi.js +1 -1
  66. package/build/commands/utils/version.js +1 -1
  67. package/build/commands/verifyFeature.js +1 -1
  68. package/build/commands/verifyFeatureCli.js +1 -1
  69. package/build/commands/verifyInBrowser.js +1 -1
  70. package/package.json +1 -1
@@ -1 +1 @@
1
- (function(_0x1c29df,_0x235345){const _0xd775a7=_0x5009,_0x13b8c1=_0x1c29df();while(!![]){try{const _0x119494=-parseInt(_0xd775a7(0xa5))/0x1*(parseInt(_0xd775a7(0xa3))/0x2)+parseInt(_0xd775a7(0xab))/0x3*(parseInt(_0xd775a7(0x9a))/0x4)+parseInt(_0xd775a7(0xa6))/0x5+parseInt(_0xd775a7(0xac))/0x6+parseInt(_0xd775a7(0xa2))/0x7+parseInt(_0xd775a7(0xa7))/0x8+-parseInt(_0xd775a7(0x99))/0x9;if(_0x119494===_0x235345)break;else _0x13b8c1['push'](_0x13b8c1['shift']());}catch(_0x3313da){_0x13b8c1['push'](_0x13b8c1['shift']());}}}(_0xb3f2,0x910d5));function _0x5009(_0x591a8f,_0x55f538){_0x591a8f=_0x591a8f-0x99;const _0xb3f2b8=_0xb3f2();let _0x500973=_0xb3f2b8[_0x591a8f];return _0x500973;}import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';function _0xb3f2(){const _0x3974a9=['xGGMy','663153NwPOjY','5880594nCZawk','export\x20CLAUDE_SESSION_ID=\x22','17281620OxiGkW','4lAeMDM','DvQSD','log','CLAUDE_ENV_FILE','master','LUdqL','rxale','parse','6080585AyuxQm','10JExPlM','stringify','29762SoMVoP','2754290DyKkPM','339680fzRSdS','session_id','trackCommandEnd'];_0xb3f2=function(){return _0x3974a9;};return _0xb3f2();}const RANGER_AUTO_ENABLED_PROMPT='=================================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🚨\x20RANGER\x20IS\x20ACTIVE\x20🚨\x0a=================================================================\x0a\x0aThis\x20session\x20has\x20Ranger\x20ENABLED.\x20Before\x20doing\x20ANYTHING\x20else:\x0a\x0a1.\x20**READ\x20the\x20/ranger\x20skill\x20FIRST**\x20-\x20Run\x20the\x20skill\x20to\x20understand\x20the\x20required\x20workflow\x20for\x20UI\x20features\x0a\x0a2.\x20**Check\x20for\x20existing\x20feature\x20reviews**\x20-\x20Run\x20`ranger\x20list`\x20to\x20see\x20if\x20there\x27s\x20an\x20in-progress\x20feature\x20review\x20to\x20resume\x0a\x0a3.\x20**For\x20ANY\x20UI\x20work**:\x20You\x20MUST\x20either:\x0a\x20\x20\x20-\x20Resume\x20an\x20existing\x20feature\x20review:\x20`ranger\x20resume\x20<id>`\x0a\x20\x20\x20-\x20Create\x20a\x20new\x20feature\x20review:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario>\x22`\x0a\x0a4.\x20**If\x20resuming\x20a\x20feature\x20review\x20with\x20reviewer\x20comments**:\x20Run\x20`ranger\x20get-review`\x20to\x20see\x20what\x20reviewers\x20want\x20fixed\x20before\x20making\x20code\x20changes\x0a\x0a=================================================================';export async function sessionStart(_0x2cdda6){const _0x4d9104=_0x5009,_0x1e207d={'rxale':function(_0x2768a0,_0x91c118){return _0x2768a0||_0x91c118;},'xGGMy':function(_0x4d0046,_0x4e5082){return _0x4d0046(_0x4e5082);},'mpGSj':function(_0x171560,_0x3aeab2){return _0x171560(_0x3aeab2);},'KwNez':'hook:session-start','GBdjr':'success','DvQSD':function(_0x2d28a9,_0x4af8f9){return _0x2d28a9!==_0x4af8f9;},'LUdqL':_0x4d9104(0x9e),'ejOkl':function(_0x33a3d4,_0x260b79){return _0x33a3d4+_0x260b79;}};let _0x45caf6=_0x1e207d[_0x4d9104(0xa0)](_0x2cdda6,''),_0x1af103;if(!_0x2cdda6){let _0x51449e='';for await(const _0x5bd04a of process['stdin']){_0x51449e+=_0x5bd04a;}try{const _0x3adf4e=JSON[_0x4d9104(0xa1)](_0x51449e);_0x45caf6=_0x3adf4e[_0x4d9104(0xa8)]||'',_0x1af103=_0x3adf4e['source'];}catch{}const _0x23ba64=process['env'][_0x4d9104(0x9d)];if(_0x23ba64&&_0x45caf6)try{await appendFile(_0x23ba64,_0x4d9104(0xad)+_0x45caf6+'\x22\x0a');}catch{}}if(_0x45caf6){_0x1e207d['xGGMy'](shouldAutoEnableAfterClear,_0x1af103)&&_0x1e207d[_0x4d9104(0xaa)](autoEnableAfterClear,_0x45caf6);initBranchTracking(_0x45caf6);const _0x134658=_0x1e207d['mpGSj'](isSessionEnabled,_0x45caf6);try{const _0x4ef27f=_0x1e207d[_0x4d9104(0xaa)](createTelemetryCollector,_0x1e207d['KwNez']);await _0x4ef27f['trackCommandStart']({'sessionId':_0x45caf6,'hooksEnabled':_0x134658}),await _0x4ef27f[_0x4d9104(0xa9)](_0x1e207d['GBdjr']);}catch{}if(_0x134658){const _0x21dde5=getCurrentBranch(),_0x4dbbab=_0x21dde5&&_0x21dde5!=='main'&&_0x1e207d[_0x4d9104(0x9b)](_0x21dde5,_0x1e207d[_0x4d9104(0x9f)])?'\x20(Branch:\x20'+_0x21dde5+')':'',_0x57976a={'hookSpecificOutput':{'hookEventName':'SessionStart','additionalContext':_0x1e207d['ejOkl'](RANGER_AUTO_ENABLED_PROMPT,_0x4dbbab)}};console[_0x4d9104(0x9c)](JSON[_0x4d9104(0xa4)](_0x57976a));}}}
1
+ (function(_0x2081bd,_0x131c5a){const _0x12b42f=_0x2967,_0x216b35=_0x2081bd();while(!![]){try{const _0x6b38d6=parseInt(_0x12b42f(0xc4))/0x1*(-parseInt(_0x12b42f(0xc7))/0x2)+parseInt(_0x12b42f(0xbd))/0x3*(parseInt(_0x12b42f(0xbc))/0x4)+parseInt(_0x12b42f(0xba))/0x5+parseInt(_0x12b42f(0xc5))/0x6+parseInt(_0x12b42f(0xbe))/0x7+parseInt(_0x12b42f(0xc3))/0x8+-parseInt(_0x12b42f(0xb5))/0x9;if(_0x6b38d6===_0x131c5a)break;else _0x216b35['push'](_0x216b35['shift']());}catch(_0x2105ae){_0x216b35['push'](_0x216b35['shift']());}}}(_0x1254,0x1c1ef));import{appendFile}from'fs/promises';function _0x1254(){const _0x2bd323=['1377691iAUbNK','rbOdA','HLQdL','\x20(Branch:\x20','zslio','307184qcIOkJ','8RgZTpn','456060jsvvwe','success','23804uXhFTv','2843586FQxrJY','session_id','KCOYl','master','env','151415VTTnKu','trgil','105628UMjDzy','21XYUHRp'];_0x1254=function(){return _0x2bd323;};return _0x1254();}function _0x2967(_0x3d8eea,_0xeac4f8){_0x3d8eea=_0x3d8eea-0xb5;const _0x125488=_0x1254();let _0x2967c3=_0x125488[_0x3d8eea];return _0x2967c3;}import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';const RANGER_AUTO_ENABLED_PROMPT='=================================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🚨\x20RANGER\x20IS\x20ACTIVE\x20🚨\x0a=================================================================\x0a\x0aThis\x20session\x20has\x20Ranger\x20ENABLED.\x20Before\x20doing\x20ANYTHING\x20else:\x0a\x0a1.\x20**READ\x20the\x20/ranger\x20skill\x20FIRST**\x20-\x20Run\x20the\x20skill\x20to\x20understand\x20the\x20required\x20workflow\x20for\x20UI\x20features\x0a\x0a2.\x20**Check\x20for\x20existing\x20feature\x20reviews**\x20-\x20Run\x20`ranger\x20list`\x20to\x20see\x20if\x20there\x27s\x20an\x20in-progress\x20feature\x20review\x20to\x20resume\x0a\x0a3.\x20**For\x20ANY\x20UI\x20work**:\x20You\x20MUST\x20either:\x0a\x20\x20\x20-\x20Resume\x20an\x20existing\x20feature\x20review:\x20`ranger\x20resume\x20<id>`\x0a\x20\x20\x20-\x20Create\x20a\x20new\x20feature\x20review:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario>\x22`\x0a\x0a4.\x20**If\x20resuming\x20a\x20feature\x20review\x20with\x20reviewer\x20comments**:\x20Run\x20`ranger\x20get-review`\x20to\x20see\x20what\x20reviewers\x20want\x20fixed\x20before\x20making\x20code\x20changes\x0a\x0a=================================================================';export async function sessionStart(_0x52c16b){const _0x1a2a29=_0x2967,_0x2b1b0b={'zslio':function(_0x482432,_0x4db565){return _0x482432||_0x4db565;},'PyLRJ':_0x1a2a29(0xb6),'trgil':function(_0x3aad7c,_0x5e3e4d,_0x5bab06){return _0x3aad7c(_0x5e3e4d,_0x5bab06);},'KaXik':function(_0x25eb50,_0x4d93a0){return _0x25eb50(_0x4d93a0);},'umGNI':function(_0x5e5fd5,_0x3f0769){return _0x5e5fd5(_0x3f0769);},'HLQdL':'hook:session-start','KCOYl':_0x1a2a29(0xc6),'DgVHz':function(_0xc97e4b,_0x58210e){return _0xc97e4b!==_0x58210e;},'ulBCh':'main','mcNNm':_0x1a2a29(0xb8),'mjwhy':'SessionStart','rbOdA':function(_0x98996b,_0x4a5ded){return _0x98996b+_0x4a5ded;}};let _0x115982=_0x2b1b0b[_0x1a2a29(0xc2)](_0x52c16b,''),_0x25167c;if(!_0x52c16b){let _0x145890='';for await(const _0x59fe95 of process['stdin']){_0x145890+=_0x59fe95;}try{const _0x556fdc=JSON['parse'](_0x145890);_0x115982=_0x556fdc[_0x2b1b0b['PyLRJ']]||'',_0x25167c=_0x556fdc['source'];}catch{}const _0x17f79d=process[_0x1a2a29(0xb9)]['CLAUDE_ENV_FILE'];if(_0x17f79d&&_0x115982)try{await _0x2b1b0b[_0x1a2a29(0xbb)](appendFile,_0x17f79d,'export\x20CLAUDE_SESSION_ID=\x22'+_0x115982+'\x22\x0a');}catch{}}if(_0x115982){_0x2b1b0b['KaXik'](shouldAutoEnableAfterClear,_0x25167c)&&autoEnableAfterClear(_0x115982);_0x2b1b0b['umGNI'](initBranchTracking,_0x115982);const _0x405837=isSessionEnabled(_0x115982);try{const _0x11653a=createTelemetryCollector(_0x2b1b0b[_0x1a2a29(0xc0)]);await _0x11653a['trackCommandStart']({'sessionId':_0x115982,'hooksEnabled':_0x405837}),await _0x11653a['trackCommandEnd'](_0x2b1b0b[_0x1a2a29(0xb7)]);}catch{}if(_0x405837){const _0x39fb32=getCurrentBranch(),_0x3adec3=_0x39fb32&&_0x2b1b0b['DgVHz'](_0x39fb32,_0x2b1b0b['ulBCh'])&&_0x2b1b0b['DgVHz'](_0x39fb32,_0x2b1b0b['mcNNm'])?_0x1a2a29(0xc1)+_0x39fb32+')':'',_0x56fc74={'hookSpecificOutput':{'hookEventName':_0x2b1b0b['mjwhy'],'additionalContext':_0x2b1b0b[_0x1a2a29(0xbf)](RANGER_AUTO_ENABLED_PROMPT,_0x3adec3)}};console['log'](JSON['stringify'](_0x56fc74));}}}
@@ -1 +1 @@
1
- (function(_0x383564,_0x36fe81){const _0x3f6de4=_0x9af1,_0x22a766=_0x383564();while(!![]){try{const _0xf1b38b=-parseInt(_0x3f6de4(0x1f5))/0x1*(-parseInt(_0x3f6de4(0x1f6))/0x2)+-parseInt(_0x3f6de4(0x1f0))/0x3+-parseInt(_0x3f6de4(0x204))/0x4+-parseInt(_0x3f6de4(0x201))/0x5*(-parseInt(_0x3f6de4(0x1fe))/0x6)+parseInt(_0x3f6de4(0x1f1))/0x7+parseInt(_0x3f6de4(0x200))/0x8*(parseInt(_0x3f6de4(0x1ff))/0x9)+parseInt(_0x3f6de4(0x1f2))/0xa*(-parseInt(_0x3f6de4(0x1f3))/0xb);if(_0xf1b38b===_0x36fe81)break;else _0x22a766['push'](_0x22a766['shift']());}catch(_0x1a8b3d){_0x22a766['push'](_0x22a766['shift']());}}}(_0x5e27,0x97ec3));function _0x9af1(_0x3f5682,_0x5191cc){_0x3f5682=_0x3f5682-0x1ed;const _0x5e27bb=_0x5e27();let _0x9af114=_0x5e27bb[_0x3f5682];return _0x9af114;}import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';function _0x5e27(){const _0x224378=['stringify','731784qsVhhN','TDFKK','status','blocked','Stop','3536427cXqnjH','943054xebqmu','120LqxeIB','215105yftaOA','checklistItems','31526KuXWIA','68jDWMyi','qUlyb','success','some','sessionId','featureId','CJeWQ','https://dashboard.ranger.net/features/','3977070WGgLjj','5013aAbBRb','5016UUjndw','5SzOMSJ','cgpCH'];_0x5e27=function(){return _0x224378;};return _0x5e27();}import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x72d33b){const _0x49f659=_0x9af1,_0xe3259a={'cgpCH':function(_0x30d1a6,_0x572afe){return _0x30d1a6(_0x572afe);},'CJeWQ':function(_0x2b9de5,_0x16377c){return _0x2b9de5(_0x16377c);},'zpTDt':function(_0x3cfc0b){return _0x3cfc0b();},'qUlyb':function(_0x3aff86,_0x1c7571){return _0x3aff86&&_0x1c7571;},'KgbyK':_0x49f659(0x1ef),'TDFKK':function(_0x2a428a,_0x4940e0,_0x358f03,_0x31e847){return _0x2a428a(_0x4940e0,_0x358f03,_0x31e847);}},_0x2fd110=await _0xe3259a[_0x49f659(0x202)](getEnabledHookContext,_0x72d33b),_0x2b873=_0x2fd110?.['sessionId']??null;let _0x24730a=!![];if(!_0x2b873){await trackStop(_0x2b873,![],_0x24730a);return;}try{const _0x1e9109=_0xe3259a[_0x49f659(0x1fc)](getSessionEntry,_0x2b873);if(!_0x1e9109){await trackStop(_0x2b873,!![],_0x24730a);return;}const _0x117e77=await _0xe3259a['zpTDt'](getToken),_0x5e8631=_0x49f659(0x1fd)+_0x1e9109['featureId'];let _0x527382=null,_0x3e283c=![],_0x525f4a=![];if(_0x117e77)try{const _0x424d2f=await getFeature(_0x1e9109['featureId']);_0x527382=_0x424d2f['currentSessionId']??null;const _0x5a796e=_0x424d2f[_0x49f659(0x1f4)]['filter'](_0xd4c060=>_0xd4c060[_0x49f659(0x1fa)]===_0x527382);_0x3e283c=_0x5a796e['some'](_0x4da2ae=>_0x4da2ae['status']!=='verified'&&_0x4da2ae[_0x49f659(0x1ed)]!==_0x49f659(0x1ee)&&_0x4da2ae['status']!=='closed'&&_0x4da2ae['status']!=='incomplete'),_0x525f4a=_0x5a796e[_0x49f659(0x1f9)](_0x2c044f=>_0x2c044f['status']==='verification_in_progress');}catch{}if(_0xe3259a['qUlyb'](_0x117e77,_0x527382)&&_0x3e283c){if(!_0x525f4a&&shouldShowStopReminder(_0x2b873)){const _0x5adc67={'hookSpecificOutput':{'hookEventName':_0xe3259a['KgbyK'],'additionalContext':'RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20'+_0x5e8631}};console['log'](JSON[_0x49f659(0x203)](_0x5adc67));}}if(_0xe3259a[_0x49f659(0x1f7)](_0x117e77,_0x527382)&&!_0x3e283c)try{await concludeSession(_0x1e9109[_0x49f659(0x1fb)],_0x527382);}catch{}await trackStop(_0x2b873,!![],_0x24730a);return;}catch{await _0xe3259a[_0x49f659(0x205)](trackStop,_0x2b873,!![],_0x24730a);return;}}async function trackStop(_0x2ec11f,_0x2c039d,_0x1fa626){const _0xe5c260=_0x9af1,_0x4376f9={'dvKTs':_0xe5c260(0x1f8)};try{const _0x18a002=createTelemetryCollector('hook:stop');await _0x18a002['trackCommandStart']({'sessionId':_0x2ec11f??undefined,'hooksEnabled':_0x2c039d,'stopAllowed':_0x1fa626}),await _0x18a002['trackCommandEnd'](_0x4376f9['dvKTs']);}catch{}}
1
+ (function(_0x1b60d6,_0x4bc758){const _0x5c2e3d=_0x29b4,_0x55def9=_0x1b60d6();while(!![]){try{const _0x37be2f=parseInt(_0x5c2e3d(0x120))/0x1+-parseInt(_0x5c2e3d(0x111))/0x2+-parseInt(_0x5c2e3d(0x110))/0x3*(parseInt(_0x5c2e3d(0x117))/0x4)+-parseInt(_0x5c2e3d(0x114))/0x5+-parseInt(_0x5c2e3d(0x119))/0x6+parseInt(_0x5c2e3d(0x121))/0x7*(parseInt(_0x5c2e3d(0x123))/0x8)+-parseInt(_0x5c2e3d(0x116))/0x9*(-parseInt(_0x5c2e3d(0x122))/0xa);if(_0x37be2f===_0x4bc758)break;else _0x55def9['push'](_0x55def9['shift']());}catch(_0x20eaac){_0x55def9['push'](_0x55def9['shift']());}}}(_0x23c5,0x4fbaa));import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x42a54b){const _0x3f86a1=_0x29b4,_0x25a830={'StAhj':function(_0x1d4b1d,_0xca9569){return _0x1d4b1d(_0xca9569);},'uTgbX':function(_0x387432,_0x41d1be,_0x5ce795,_0x1625d6){return _0x387432(_0x41d1be,_0x5ce795,_0x1625d6);},'AGjgb':function(_0x4604bc,_0x341246){return _0x4604bc&&_0x341246;},'zePRg':_0x3f86a1(0x113)},_0x237d11=await getEnabledHookContext(_0x42a54b),_0x5d4e4a=_0x237d11?.[_0x3f86a1(0x112)]??null;let _0x697bd0=!![];if(!_0x5d4e4a){await trackStop(_0x5d4e4a,![],_0x697bd0);return;}try{const _0x355612=_0x25a830[_0x3f86a1(0x115)](getSessionEntry,_0x5d4e4a);if(!_0x355612){await _0x25a830[_0x3f86a1(0x128)](trackStop,_0x5d4e4a,!![],_0x697bd0);return;}const _0x1e1c13=await getToken(),_0x31cc04='https://dashboard.ranger.net/features/'+_0x355612[_0x3f86a1(0x124)];let _0x3feb20=null,_0x266a8f=![],_0x379a46=![];if(_0x1e1c13)try{const _0xb956dc=await getFeature(_0x355612[_0x3f86a1(0x124)]);_0x3feb20=_0xb956dc[_0x3f86a1(0x11f)]??null;const _0x561cbb=_0xb956dc[_0x3f86a1(0x10d)][_0x3f86a1(0x10f)](_0x3bbdd0=>_0x3bbdd0[_0x3f86a1(0x112)]===_0x3feb20);_0x266a8f=_0x561cbb[_0x3f86a1(0x127)](_0x290231=>_0x290231['status']!==_0x3f86a1(0x125)&&_0x290231['status']!==_0x3f86a1(0x11e)&&_0x290231['status']!==_0x3f86a1(0x11b)&&_0x290231['status']!=='incomplete'),_0x379a46=_0x561cbb[_0x3f86a1(0x127)](_0x467bed=>_0x467bed['status']===_0x3f86a1(0x129));}catch{}if(_0x25a830[_0x3f86a1(0x126)](_0x1e1c13,_0x3feb20)&&_0x266a8f){if(!_0x379a46&&shouldShowStopReminder(_0x5d4e4a)){const _0x3805f1={'hookSpecificOutput':{'hookEventName':_0x25a830[_0x3f86a1(0x11c)],'additionalContext':'RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20'+_0x31cc04}};console[_0x3f86a1(0x10e)](JSON[_0x3f86a1(0x10c)](_0x3805f1));}}if(_0x1e1c13&&_0x3feb20&&!_0x266a8f)try{await concludeSession(_0x355612['featureId'],_0x3feb20);}catch{}await trackStop(_0x5d4e4a,!![],_0x697bd0);return;}catch{await trackStop(_0x5d4e4a,!![],_0x697bd0);return;}}function _0x23c5(){const _0x31016a=['verification_in_progress','stringify','checklistItems','log','filter','3MToPdY','1137506hCOXYE','sessionId','Stop','770980xpzXxq','StAhj','72027HqGmfr','353884SxMVRE','trackCommandEnd','2259888wOUToU','trackCommandStart','closed','zePRg','success','blocked','currentSessionId','556297khLPpL','63tFBLbV','600aPbtPv','425032ZddLYo','featureId','verified','AGjgb','some','uTgbX'];_0x23c5=function(){return _0x31016a;};return _0x23c5();}function _0x29b4(_0x446df6,_0x52f347){_0x446df6=_0x446df6-0x10c;const _0x23c5bd=_0x23c5();let _0x29b4b4=_0x23c5bd[_0x446df6];return _0x29b4b4;}async function trackStop(_0x50b18b,_0x55ad2a,_0x1f3985){const _0x489a5c=_0x29b4,_0x4a3f0d={'lXZOB':'hook:stop','iYKZW':_0x489a5c(0x11d)};try{const _0x18df3c=createTelemetryCollector(_0x4a3f0d['lXZOB']);await _0x18df3c[_0x489a5c(0x11a)]({'sessionId':_0x50b18b??undefined,'hooksEnabled':_0x55ad2a,'stopAllowed':_0x1f3985}),await _0x18df3c[_0x489a5c(0x118)](_0x4a3f0d['iYKZW']);}catch{}}
@@ -1 +1 @@
1
- function _0x55f9(_0x4f69aa,_0x52a3ac){_0x4f69aa=_0x4f69aa-0x1ad;var _0x12e9ab=_0x12e9();var _0x55f95c=_0x12e9ab[_0x4f69aa];return _0x55f95c;}(function(_0x3f5178,_0xabcf59){var _0x2ec79f=_0x55f9,_0x416c47=_0x3f5178();while(!![]){try{var _0x588a5f=parseInt(_0x2ec79f(0x1b3))/0x1*(-parseInt(_0x2ec79f(0x1ad))/0x2)+-parseInt(_0x2ec79f(0x1b1))/0x3*(parseInt(_0x2ec79f(0x1b5))/0x4)+-parseInt(_0x2ec79f(0x1b2))/0x5*(-parseInt(_0x2ec79f(0x1ae))/0x6)+parseInt(_0x2ec79f(0x1b7))/0x7+parseInt(_0x2ec79f(0x1b4))/0x8+-parseInt(_0x2ec79f(0x1b6))/0x9*(-parseInt(_0x2ec79f(0x1b8))/0xa)+parseInt(_0x2ec79f(0x1b0))/0xb*(parseInt(_0x2ec79f(0x1af))/0xc);if(_0x588a5f===_0xabcf59)break;else _0x416c47['push'](_0x416c47['shift']());}catch(_0x525f65){_0x416c47['push'](_0x416c47['shift']());}}}(_0x12e9,0x7d50e));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';function _0x12e9(){var _0x1281f4=['1468555syJyja','27MzMcRT','2084495uSajLZ','3222SZVqxu','786216lTVSNw','378888GvzaKj','3127914MQDLGT','67823VhRUaj','20WbiZmU','334VcaJPR','12JfubHl','24jRHyTO'];_0x12e9=function(){return _0x1281f4;};return _0x12e9();}export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
1
+ (function(_0x103b3d,_0x5e6c88){var _0x21722e=_0x5ebc,_0x19c6ae=_0x103b3d();while(!![]){try{var _0x57875b=-parseInt(_0x21722e(0x95))/0x1*(parseInt(_0x21722e(0x9a))/0x2)+-parseInt(_0x21722e(0x9b))/0x3+parseInt(_0x21722e(0x98))/0x4*(parseInt(_0x21722e(0x94))/0x5)+-parseInt(_0x21722e(0x97))/0x6*(-parseInt(_0x21722e(0x9d))/0x7)+parseInt(_0x21722e(0x96))/0x8*(parseInt(_0x21722e(0x9c))/0x9)+-parseInt(_0x21722e(0x92))/0xa+-parseInt(_0x21722e(0x93))/0xb*(parseInt(_0x21722e(0x99))/0xc);if(_0x57875b===_0x5e6c88)break;else _0x19c6ae['push'](_0x19c6ae['shift']());}catch(_0x3b322a){_0x19c6ae['push'](_0x19c6ae['shift']());}}}(_0x4690,0xcfe0c));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';function _0x5ebc(_0x21251b,_0x3faf2c){_0x21251b=_0x21251b-0x92;var _0x46900b=_0x4690();var _0x5ebc2f=_0x46900b[_0x21251b];return _0x5ebc2f;}function _0x4690(){var _0x39e8f9=['1132046jHyNGt','335340QhTfOT','9tibjJi','7BsIWdU','5028830XaYTbX','5716227VQfFKD','35PWXNud','1dVWIHN','5904368XgInYr','6990492qULPMv','370676OTyZGa','12LSMUzh'];_0x4690=function(){return _0x39e8f9;};return _0x4690();}export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
@@ -1 +1 @@
1
- (function(_0x4dca48,_0xacad5e){const _0x4c8138=_0x6180,_0xade248=_0x4dca48();while(!![]){try{const _0x38e375=parseInt(_0x4c8138(0x7b))/0x1*(-parseInt(_0x4c8138(0x74))/0x2)+parseInt(_0x4c8138(0x72))/0x3*(-parseInt(_0x4c8138(0x77))/0x4)+-parseInt(_0x4c8138(0x79))/0x5*(parseInt(_0x4c8138(0x73))/0x6)+parseInt(_0x4c8138(0x6c))/0x7*(-parseInt(_0x4c8138(0x6e))/0x8)+-parseInt(_0x4c8138(0x76))/0x9*(parseInt(_0x4c8138(0x70))/0xa)+-parseInt(_0x4c8138(0x78))/0xb+parseInt(_0x4c8138(0x6b))/0xc;if(_0x38e375===_0xacad5e)break;else _0xade248['push'](_0xade248['shift']());}catch(_0x264cd9){_0xade248['push'](_0xade248['shift']());}}}(_0x5a41,0xaa1c1));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x5a41(){const _0xebfbdb=['stdin','19uRHfFh','\x0a✅\x20Logged\x20in\x20to\x20','isTTY','55381848YEihOL','518vYbwlI','log','58592ydrERi','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','610sIsLaf','Login\x20failed:\x20','9Klcbkq','1512gnElEW','78262dslTAT','message','89433YPYETX','875884qnHIRK','5690674XCJUZc','16915wqrIvq'];_0x5a41=function(){return _0xebfbdb;};return _0x5a41();}function _0x6180(_0x1b8cdc,_0x4aa92d){_0x1b8cdc=_0x1b8cdc-0x69;const _0x5a4184=_0x5a41();let _0x61809f=_0x5a4184[_0x1b8cdc];return _0x61809f;}import{getCurrentUser}from'./utils/userApi.js';export async function login(){const _0x42b9dc=_0x6180,_0x2ba933={'hOvXU':function(_0x102192,_0x13bc60){return _0x102192(_0x13bc60);},'uSqnZ':'\x0a✅\x20API\x20key\x20stored\x20successfully'},_0x7d38e7=process[_0x42b9dc(0x7a)][_0x42b9dc(0x6a)]&&process['stdout']['isTTY'];if(!_0x7d38e7)throw new Error(_0x42b9dc(0x6f));try{const _0x349eea=await runDeviceAuthFlow(),_0x3c9f22=await _0x2ba933['hOvXU'](getCurrentUser,_0x349eea);_0x3c9f22['success']?console['log'](_0x42b9dc(0x69)+_0x3c9f22['user']['organizationName']):console[_0x42b9dc(0x6d)](_0x2ba933['uSqnZ']);}catch(_0x5c0468){throw new Error(_0x42b9dc(0x71)+(_0x5c0468 instanceof Error?_0x5c0468[_0x42b9dc(0x75)]:_0x5c0468));}}
1
+ function _0xc4ad(){const _0x94c862=['MkBcj','user','190THTUye','Login\x20failed:\x20','1943319kqTHqf','189291VqryEG','71522DHUFbu','76952BTyrpl','isTTY','\x0a✅\x20Logged\x20in\x20to\x20','587412FfUdOZ','6CWHEWF','message','stdin','718299vQNGhc','12rjaJPE','8hhpDhn','424495XGUlfl','stdout','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.'];_0xc4ad=function(){return _0x94c862;};return _0xc4ad();}(function(_0x34ab1e,_0xd30e92){const _0x87b6c8=_0x14b4,_0x2d227f=_0x34ab1e();while(!![]){try{const _0x271942=-parseInt(_0x87b6c8(0x87))/0x1+-parseInt(_0x87b6c8(0x8b))/0x2*(-parseInt(_0x87b6c8(0x85))/0x3)+parseInt(_0x87b6c8(0x8a))/0x4+parseInt(_0x87b6c8(0x91))/0x5*(-parseInt(_0x87b6c8(0x8f))/0x6)+parseInt(_0x87b6c8(0x84))/0x7+parseInt(_0x87b6c8(0x90))/0x8*(-parseInt(_0x87b6c8(0x8e))/0x9)+parseInt(_0x87b6c8(0x82))/0xa*(-parseInt(_0x87b6c8(0x86))/0xb);if(_0x271942===_0xd30e92)break;else _0x2d227f['push'](_0x2d227f['shift']());}catch(_0x493d5e){_0x2d227f['push'](_0x2d227f['shift']());}}}(_0xc4ad,0x27f4e));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x14b4(_0x54ff09,_0x1736a0){_0x54ff09=_0x54ff09-0x80;const _0xc4add4=_0xc4ad();let _0x14b4c4=_0xc4add4[_0x54ff09];return _0x14b4c4;}export async function login(){const _0x27a4e9=_0x14b4,_0x188436={'TQSmr':function(_0x291c0e){return _0x291c0e();},'MkBcj':function(_0xe54ec3,_0xa55236){return _0xe54ec3(_0xa55236);},'icZfw':function(_0x53a92c,_0x4a2b94){return _0x53a92c instanceof _0x4a2b94;}},_0xd1465f=process[_0x27a4e9(0x8d)][_0x27a4e9(0x88)]&&process[_0x27a4e9(0x92)][_0x27a4e9(0x88)];if(!_0xd1465f)throw new Error(_0x27a4e9(0x93));try{const _0x509660=await _0x188436['TQSmr'](runDeviceAuthFlow),_0x30eec1=await _0x188436[_0x27a4e9(0x80)](getCurrentUser,_0x509660);_0x30eec1['success']?console['log'](_0x27a4e9(0x89)+_0x30eec1[_0x27a4e9(0x81)]['organizationName']):console['log']('\x0a✅\x20API\x20key\x20stored\x20successfully');}catch(_0x26e276){throw new Error(_0x27a4e9(0x83)+(_0x188436['icZfw'](_0x26e276,Error)?_0x26e276[_0x27a4e9(0x8c)]:_0x26e276));}}
@@ -1 +1 @@
1
- (function(_0x5898d6,_0x21022c){const _0x4e1e33=_0x923c,_0x5792f8=_0x5898d6();while(!![]){try{const _0x594507=parseInt(_0x4e1e33(0x1f9))/0x1*(-parseInt(_0x4e1e33(0x1fb))/0x2)+-parseInt(_0x4e1e33(0x1f3))/0x3*(parseInt(_0x4e1e33(0x1f1))/0x4)+-parseInt(_0x4e1e33(0x1dd))/0x5*(-parseInt(_0x4e1e33(0x1cf))/0x6)+parseInt(_0x4e1e33(0x1de))/0x7*(-parseInt(_0x4e1e33(0x1f6))/0x8)+-parseInt(_0x4e1e33(0x1c6))/0x9+-parseInt(_0x4e1e33(0x1ea))/0xa*(parseInt(_0x4e1e33(0x1d5))/0xb)+parseInt(_0x4e1e33(0x1ec))/0xc;if(_0x594507===_0x21022c)break;else _0x5792f8['push'](_0x5792f8['shift']());}catch(_0x560845){_0x5792f8['push'](_0x5792f8['shift']());}}}(_0x11fb,0x9bcff));function _0x11fb(){const _0x1ea117=['✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','cHJUh','ranger','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','1840665rWnsjf','2302433jlGfUW','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','Fqicr','ukhwX','fAsib','.claude','\x20level)...\x0a','sRtWx','Project\x20(shared\x20with\x20team\x20via\x20git)','yfrJv','IFqBC','Where\x20should\x20the\x20plugin\x20be\x20installed?','648190jXGIFL','BbtRu','36702372cWLezP','RazXy','success','already\x20enabled','list','1463816darOpf','SKILL.md','3OoGZpR','prompt','AuJGI','8MMhdnJ','pluginScope','install','24SETRyN','includes','94618gJnCzq','11353338AxejIU','AEFaj','trailhead','error','log','--scope','output','plugin','project','12stDOXd','enable','\x0aYou\x20can\x20install\x20manually\x20with:','zDziJ','ranger@trailhead','tQCeP','11YPAcJK','qSYzl','rGucr'];_0x11fb=function(){return _0x1ea117;};return _0x11fb();}import{join}from'path';import{existsSync}from'fs';function _0x923c(_0x2c9331,_0x12db51){_0x2c9331=_0x2c9331-0x1c6;const _0x11fb40=_0x11fb();let _0x923cdc=_0x11fb40[_0x2c9331];return _0x923cdc;}import _0x7de497 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(_0x533e7b){const _0x4bc55d=_0x923c,_0x26a8fd={'gZcDx':_0x4bc55d(0x1d3),'UHVWw':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','RazXy':function(_0x4d2aaa,_0x4481e0){return _0x4d2aaa(_0x4481e0);},'elJEl':function(_0x380e32,_0x48d9ad,_0x23b875){return _0x380e32(_0x48d9ad,_0x23b875);},'yoINA':'.claude','IFqBC':_0x4bc55d(0x1ce),'rGucr':_0x4bc55d(0x1dc),'Fqicr':'user','tQCeP':_0x4bc55d(0x1e6),'sRtWx':'plugin','qSYzl':'marketplace','MKCNs':function(_0x5c57ea,_0x112259){return _0x5c57ea(_0x112259);},'cHJUh':_0x4bc55d(0x1cb),'lsrpa':'❌\x20Failed\x20to\x20install\x20plugin:','jgPFB':'\x0aYou\x20can\x20install\x20manually\x20with:','ukhwX':function(_0x37a521,_0xa2ac7f,_0x2a8590){return _0x37a521(_0xa2ac7f,_0x2a8590);},'XuJSB':_0x4bc55d(0x1ef),'fAsib':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x38db1b=await isPluginInstalled(_0x26a8fd['gZcDx']);if(_0x38db1b)return console[_0x4bc55d(0x1ca)](_0x26a8fd['UHVWw']),![];const _0x7ba3cb=_0x26a8fd[_0x4bc55d(0x1ed)](existsSync,_0x26a8fd['elJEl'](join,getProjectRoot(),_0x26a8fd['yoINA']));let _0x29e10f;if(_0x533e7b)_0x29e10f=_0x533e7b;else{if(_0x7ba3cb)_0x29e10f=_0x26a8fd[_0x4bc55d(0x1e8)];else{console['log'](_0x26a8fd[_0x4bc55d(0x1d7)]);const _0x2f7f00=await _0x7de497['prompt']([{'type':_0x4bc55d(0x1f0),'name':'pluginScope','message':_0x4bc55d(0x1e9),'choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':_0x26a8fd[_0x4bc55d(0x1e0)]},{'name':_0x26a8fd[_0x4bc55d(0x1d4)],'value':_0x26a8fd['IFqBC']}],'default':_0x26a8fd[_0x4bc55d(0x1e0)]}]);_0x29e10f=_0x2f7f00[_0x4bc55d(0x1f7)];}}console['log'](_0x4bc55d(0x1d9)+_0x29e10f+_0x4bc55d(0x1e4));const _0x107856=await _0x26a8fd[_0x4bc55d(0x1ed)](isMarketplaceAdded,_0x4bc55d(0x1c8));let _0x113db5=_0x107856;if(_0x107856)console['log']('✓\x20Marketplace\x20already\x20added');else{const _0x54fde6=await runClaudeCommand([_0x26a8fd[_0x4bc55d(0x1e5)],_0x26a8fd[_0x4bc55d(0x1d6)],'add','ranger-testing/trailhead']);!_0x54fde6['success']?(console['error']('❌\x20Failed\x20to\x20add\x20marketplace:',_0x54fde6[_0x4bc55d(0x1c9)]),console['log'](_0x4bc55d(0x1d1)),console['log'](_0x4bc55d(0x1df)),console[_0x4bc55d(0x1ca)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x29e10f)):_0x113db5=!![];}if(_0x113db5){const _0x532c75=await _0x26a8fd['MKCNs'](runClaudeCommand,[_0x4bc55d(0x1cd),_0x4bc55d(0x1f8),_0x26a8fd['gZcDx'],_0x26a8fd['cHJUh'],_0x29e10f]);if(!_0x532c75[_0x4bc55d(0x1ee)])console[_0x4bc55d(0x1c9)](_0x26a8fd['lsrpa'],_0x532c75[_0x4bc55d(0x1c9)]),console[_0x4bc55d(0x1ca)](_0x26a8fd['jgPFB']),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x29e10f);else{console['log'](_0x4bc55d(0x1d8));const _0x557edf=[_0x4bc55d(0x1cd),_0x4bc55d(0x1d0),'ranger@trailhead'];_0x29e10f===_0x26a8fd[_0x4bc55d(0x1e8)]&&_0x557edf['push'](_0x26a8fd[_0x4bc55d(0x1da)],_0x4bc55d(0x1ce));const _0x47a2f4=await _0x26a8fd[_0x4bc55d(0x1e1)](runClaudeCommand,_0x557edf,{'captureOutput':!![]}),_0x4ce526=_0x47a2f4[_0x4bc55d(0x1cc)]?.[_0x4bc55d(0x1fa)](_0x26a8fd['XuJSB']);!_0x47a2f4['success']&&!_0x4ce526?console['error']('⚠\x20Failed\x20to\x20enable\x20plugin:',_0x47a2f4['error']):console[_0x4bc55d(0x1ca)](_0x26a8fd[_0x4bc55d(0x1e2)]);}}return!![];}export async function ensureClaudeSkills(_0x34047a){const _0x391560=_0x923c,_0x43c176={'ZaLOa':'user','AEFaj':_0x391560(0x1f2),'XJrot':function(_0x4a0a91,_0x5a0c9b){return _0x4a0a91(_0x5a0c9b);},'NwjJx':function(_0x57d18e,_0x32c32d,_0x92ffd7,_0x5e821d){return _0x57d18e(_0x32c32d,_0x92ffd7,_0x5e821d);},'AuJGI':'project','CUEMx':_0x391560(0x1db),'JurVx':function(_0x20be46,_0x496c97){return _0x20be46||_0x496c97;},'BbtRu':function(_0x51cceb,_0x567905){return _0x51cceb(_0x567905);},'hPYyk':function(_0x16bc56,_0x54c30f,_0x1d62a9){return _0x16bc56(_0x54c30f,_0x1d62a9);},'LIcJS':_0x391560(0x1e3),'zDziJ':function(_0x5f36c7,_0x4bf771){return _0x5f36c7(_0x4bf771);},'yfrJv':'confirm'},_0x14efb4=existsSync(join(getSkillsDir(_0x43c176['ZaLOa']),'ranger',_0x43c176[_0x391560(0x1c7)])),_0x4d12ca=_0x43c176['XJrot'](existsSync,_0x43c176['NwjJx'](join,getSkillsDir(_0x43c176[_0x391560(0x1f5)]),_0x43c176['CUEMx'],_0x43c176[_0x391560(0x1c7)]));if(_0x43c176['JurVx'](_0x14efb4,_0x4d12ca))return console[_0x391560(0x1ca)]('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0x3d7f95=_0x43c176[_0x391560(0x1eb)](existsSync,_0x43c176['hPYyk'](join,getProjectRoot(),_0x43c176['LIcJS']));let _0x3645a1=!![];if(_0x34047a)await _0x43c176[_0x391560(0x1d2)](skillup,{'autoInstall':_0x34047a,'suppressUsage':!![]});else{if(_0x3d7f95)await skillup({'autoInstall':_0x43c176['AuJGI'],'suppressUsage':!![]});else{const _0x53f46a=await _0x7de497[_0x391560(0x1f4)]([{'type':_0x43c176[_0x391560(0x1e7)],'name':'wantsSkillup','message':'Would\x20you\x20like\x20to\x20install\x20skills?','default':!![]}]);_0x3645a1=_0x53f46a['wantsSkillup'],_0x3645a1&&await skillup({'suppressUsage':!![]});}}return _0x3645a1;}
1
+ (function(_0x113236,_0x180f7c){const _0x33dc7b=_0x3727,_0x52264d=_0x113236();while(!![]){try{const _0x2adbb6=-parseInt(_0x33dc7b(0x1ef))/0x1*(parseInt(_0x33dc7b(0x1dc))/0x2)+-parseInt(_0x33dc7b(0x1cd))/0x3+parseInt(_0x33dc7b(0x1dd))/0x4*(-parseInt(_0x33dc7b(0x1d6))/0x5)+parseInt(_0x33dc7b(0x1ea))/0x6+-parseInt(_0x33dc7b(0x1c7))/0x7+-parseInt(_0x33dc7b(0x1cb))/0x8*(parseInt(_0x33dc7b(0x1d8))/0x9)+parseInt(_0x33dc7b(0x1d3))/0xa;if(_0x2adbb6===_0x180f7c)break;else _0x52264d['push'](_0x52264d['shift']());}catch(_0x5508f3){_0x52264d['push'](_0x52264d['shift']());}}}(_0x2e00,0x810bd));import{join}from'path';import{existsSync}from'fs';import _0x4782a6 from'inquirer';function _0x3727(_0x1ca33a,_0x29dfbe){_0x1ca33a=_0x1ca33a-0x1c5;const _0x2e003f=_0x2e00();let _0x3727de=_0x2e003f[_0x1ca33a];return _0x3727de;}import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x2e00(){const _0x16f67d=['IPZkF','\x0aYou\x20can\x20install\x20manually\x20with:','wantsSkillup','log','ezFnO','2817804bLWTFy','project','PwTPW','user','rypjN','113623rQCOPf','⚠\x20Failed\x20to\x20enable\x20plugin:','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','plugin','push','6166482HEzPpZ','prompt','\x20level)...\x0a','❌\x20Failed\x20to\x20install\x20plugin:','56024kzZuig','ranger@trailhead','3021981NJdBDC','CpXUI','Hxbsa','MTdMj','already\x20enabled','Would\x20you\x20like\x20to\x20install\x20skills?','28374160QqpCSt','✓\x20Marketplace\x20already\x20added','YYkMM','2326595qPXTPI','FLBcV','108mQpzke','install','jNXgF','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','6EmJrXQ','4rUGHNo','.claude','output','ranger','--scope','Where\x20should\x20the\x20plugin\x20be\x20installed?','includes','error'];_0x2e00=function(){return _0x16f67d;};return _0x2e00();}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x4e5f94){const _0x4041c9=_0x3727,_0x5d1597={'ceYIm':function(_0x1d9909,_0x3f8eee){return _0x1d9909(_0x3f8eee);},'ABukV':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','FLBcV':function(_0x2dcf5c){return _0x2dcf5c();},'rypjN':'project','PwTPW':'pluginScope','QQXdW':_0x4041c9(0x1e2),'jNXgF':'User\x20(available\x20in\x20all\x20your\x20projects)','bPUgw':_0x4041c9(0x1d4),'YYkMM':function(_0x573372,_0x74ac74){return _0x573372(_0x74ac74);},'MTdMj':'marketplace','XKFRD':_0x4041c9(0x1db),'ezFnO':_0x4041c9(0x1d9),'HAIFZ':_0x4041c9(0x1ca),'CpXUI':function(_0x544231,_0x2e2c7e){return _0x544231===_0x2e2c7e;},'jFdQN':function(_0x419ac0,_0x5262d2,_0x25c757){return _0x419ac0(_0x5262d2,_0x25c757);}},_0x51304a=await _0x5d1597['ceYIm'](isPluginInstalled,'ranger@trailhead');if(_0x51304a)return console['log'](_0x5d1597['ABukV']),![];const _0x1d3154=_0x5d1597['ceYIm'](existsSync,join(_0x5d1597[_0x4041c9(0x1d7)](getProjectRoot),_0x4041c9(0x1de)));let _0x315a89;if(_0x4e5f94)_0x315a89=_0x4e5f94;else{if(_0x1d3154)_0x315a89=_0x5d1597[_0x4041c9(0x1ee)];else{console[_0x4041c9(0x1e8)]('\x0a📦\x20Claude\x20Code\x20Plugin\x0a');const _0x367b88=await _0x4782a6['prompt']([{'type':'list','name':_0x5d1597[_0x4041c9(0x1ec)],'message':_0x5d1597['QQXdW'],'choices':[{'name':_0x5d1597[_0x4041c9(0x1da)],'value':_0x4041c9(0x1ed)},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x4041c9(0x1eb)}],'default':_0x4041c9(0x1ed)}]);_0x315a89=_0x367b88['pluginScope'];}}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x315a89+_0x4041c9(0x1c9));const _0x1055d4=await isMarketplaceAdded('trailhead');let _0x54a8eb=_0x1055d4;if(_0x1055d4)console[_0x4041c9(0x1e8)](_0x5d1597['bPUgw']);else{const _0x5e2588=await _0x5d1597[_0x4041c9(0x1d5)](runClaudeCommand,[_0x4041c9(0x1c5),_0x5d1597[_0x4041c9(0x1d0)],'add','ranger-testing/trailhead']);!_0x5e2588['success']?(console['error']('❌\x20Failed\x20to\x20add\x20marketplace:',_0x5e2588['error']),console[_0x4041c9(0x1e8)](_0x4041c9(0x1e6)),console['log'](_0x5d1597['XKFRD']),console['log'](_0x4041c9(0x1f1)+_0x315a89)):_0x54a8eb=!![];}if(_0x54a8eb){const _0x3d1412=await runClaudeCommand([_0x4041c9(0x1c5),_0x5d1597[_0x4041c9(0x1e9)],_0x4041c9(0x1cc),_0x4041c9(0x1e1),_0x315a89]);if(!_0x3d1412['success'])console['error'](_0x5d1597['HAIFZ'],_0x3d1412[_0x4041c9(0x1e4)]),console['log']('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x4041c9(0x1e8)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x315a89);else{console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x40a261=[_0x4041c9(0x1c5),'enable','ranger@trailhead'];_0x5d1597[_0x4041c9(0x1ce)](_0x315a89,'project')&&_0x40a261[_0x4041c9(0x1c6)]('--scope',_0x5d1597['rypjN']);const _0x24e95e=await _0x5d1597['jFdQN'](runClaudeCommand,_0x40a261,{'captureOutput':!![]}),_0xa6bc17=_0x24e95e[_0x4041c9(0x1df)]?.[_0x4041c9(0x1e3)](_0x4041c9(0x1d1));!_0x24e95e['success']&&!_0xa6bc17?console['error'](_0x4041c9(0x1f0),_0x24e95e[_0x4041c9(0x1e4)]):console['log']('✓\x20Claude\x20Code\x20plugin\x20enabled');}}return!![];}export async function ensureClaudeSkills(_0x2b0ea8){const _0x508cba=_0x3727,_0x1392f9={'sgwAI':function(_0x3ece9c,_0x551eb8,_0x63bf8f,_0x133f44){return _0x3ece9c(_0x551eb8,_0x63bf8f,_0x133f44);},'joVBj':function(_0x5972c4,_0x1988a2){return _0x5972c4(_0x1988a2);},'Hxbsa':function(_0x1b6743,_0x233de8){return _0x1b6743(_0x233de8);},'IPZkF':'ranger','jtXUT':'SKILL.md','ipArJ':function(_0x1d8c26,_0x3f8b68){return _0x1d8c26||_0x3f8b68;},'PGnCu':function(_0x1fa6a5,_0x47b0a3,_0x41b158){return _0x1fa6a5(_0x47b0a3,_0x41b158);},'pFiJC':function(_0x1d234c){return _0x1d234c();},'FJVqW':_0x508cba(0x1de),'HVsjA':function(_0x442ff0,_0x228fec){return _0x442ff0(_0x228fec);},'ymLPv':'project','Thdts':function(_0x1c34e8,_0x573fef){return _0x1c34e8(_0x573fef);}},_0x3139fa=existsSync(_0x1392f9['sgwAI'](join,_0x1392f9['joVBj'](getSkillsDir,_0x508cba(0x1ed)),_0x508cba(0x1e0),'SKILL.md')),_0x5d5160=_0x1392f9[_0x508cba(0x1cf)](existsSync,join(getSkillsDir('project'),_0x1392f9[_0x508cba(0x1e5)],_0x1392f9['jtXUT']));if(_0x1392f9['ipArJ'](_0x3139fa,_0x5d5160))return console[_0x508cba(0x1e8)]('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0x1aa6ce=_0x1392f9['Hxbsa'](existsSync,_0x1392f9['PGnCu'](join,_0x1392f9['pFiJC'](getProjectRoot),_0x1392f9['FJVqW']));let _0x1324ec=!![];if(_0x2b0ea8)await skillup({'autoInstall':_0x2b0ea8,'suppressUsage':!![]});else{if(_0x1aa6ce)await _0x1392f9['HVsjA'](skillup,{'autoInstall':_0x1392f9['ymLPv'],'suppressUsage':!![]});else{const _0xe99842=await _0x4782a6[_0x508cba(0x1c8)]([{'type':'confirm','name':'wantsSkillup','message':_0x508cba(0x1d2),'default':!![]}]);_0x1324ec=_0xe99842[_0x508cba(0x1e7)],_0x1324ec&&await _0x1392f9['Thdts'](skillup,{'suppressUsage':!![]});}}return _0x1324ec;}
@@ -1 +1 @@
1
- (function(_0x1620ba,_0x549326){const _0x3a8ec9=_0x2c5b,_0x583ba7=_0x1620ba();while(!![]){try{const _0x800965=-parseInt(_0x3a8ec9(0xf0))/0x1*(-parseInt(_0x3a8ec9(0x104))/0x2)+parseInt(_0x3a8ec9(0xff))/0x3*(parseInt(_0x3a8ec9(0xf7))/0x4)+-parseInt(_0x3a8ec9(0xef))/0x5+parseInt(_0x3a8ec9(0x107))/0x6*(-parseInt(_0x3a8ec9(0x109))/0x7)+-parseInt(_0x3a8ec9(0xf4))/0x8*(-parseInt(_0x3a8ec9(0xfc))/0x9)+parseInt(_0x3a8ec9(0x108))/0xa*(parseInt(_0x3a8ec9(0x105))/0xb)+parseInt(_0x3a8ec9(0x103))/0xc*(parseInt(_0x3a8ec9(0xe9))/0xd);if(_0x800965===_0x549326)break;else _0x583ba7['push'](_0x583ba7['shift']());}catch(_0x4ad9a2){_0x583ba7['push'](_0x583ba7['shift']());}}}(_0x5d30,0xf1ff9));function _0x5d30(){const _0x130d71=['9190742QwFdaa','prompt','399198uOeZpm','10JGSnhR','203ZOFggO','error','CptFY','User\x20(available\x20in\x20all\x20your\x20projects)','228644Bcqdsd','isArray','project','plugin','https://opencode.ai/config.json','Pydqd','6957235jVkfzG','5803URBYmv','keQuA','opencode.json','Failed\x20to\x20read\x20opencode.json','32IxqJoC','log','\x0a📦\x20OpenCode\x20Plugin\x0a','899848YUsQir','DNmPU','pluginScope','stringify','$schema','1618443VhTKYb','✓\x20OpenCode\x20plugin\x20already\x20configured','GOMNp','12mAgzAE','jAqXK','kcqAb','@ranger-testing/opencode-plugin','1200HoLFbk','34hYCjkL'];_0x5d30=function(){return _0x130d71;};return _0x5d30();}import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x320fbd from'inquirer';function _0x2c5b(_0x265bc4,_0x242488){_0x265bc4=_0x265bc4-0xe7;const _0x5d3088=_0x5d30();let _0x2c5b94=_0x5d3088[_0x265bc4];return _0x2c5b94;}import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x6da74a){const _0x1e86fd=_0x2c5b,_0x265292={'keQuA':function(_0xa4c79a,_0xb64b33){return _0xa4c79a(_0xb64b33);},'CptFY':_0x1e86fd(0xeb),'GOMNp':_0x1e86fd(0xf2),'kcqAb':_0x1e86fd(0xf6),'lQMVK':_0x1e86fd(0xe8),'tOBkt':'user','jAqXK':'Project\x20(shared\x20with\x20team\x20via\x20git)','Pydqd':'utf-8','xCjfm':'⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','HumpD':_0x1e86fd(0xfd),'DNmPU':function(_0x38afe3,_0x42e741){return _0x38afe3+_0x42e741;}},_0xfccff3=existsSync(join(_0x265292[_0x1e86fd(0xf1)](getOpencodeConfigDir,_0x265292[_0x1e86fd(0xe7)]),_0x265292[_0x1e86fd(0xfe)]));let _0x557031;if(_0x6da74a)_0x557031=_0x6da74a;else{if(_0xfccff3)_0x557031='project';else{console[_0x1e86fd(0xf5)](_0x265292[_0x1e86fd(0x101)]);const _0x553901=await _0x320fbd[_0x1e86fd(0x106)]([{'type':'list','name':_0x1e86fd(0xf9),'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x265292['lQMVK'],'value':_0x265292['tOBkt']},{'name':_0x265292[_0x1e86fd(0x100)],'value':_0x265292['CptFY']}],'default':'user'}]);_0x557031=_0x553901['pluginScope'];}}const _0x18d89b=join(getOpencodeConfigDir(_0x557031),_0x265292[_0x1e86fd(0xfe)]),_0x469606=_0x1e86fd(0x102),_0x5928f8=_0x1e86fd(0xed);let _0x2f2787={};if(existsSync(_0x18d89b))try{const _0x3b1d55=await readFile(_0x18d89b,_0x265292[_0x1e86fd(0xee)]);_0x2f2787=JSON['parse'](_0x3b1d55);}catch(_0x5bc779){return console[_0x1e86fd(0x10a)](_0x265292['xCjfm']),{'configured':![],'scope':_0x557031,'error':_0x1e86fd(0xf3),'details':_0x5bc779};}const _0x5ed474=Array[_0x1e86fd(0xea)](_0x2f2787[_0x1e86fd(0xec)])?_0x2f2787[_0x1e86fd(0xec)]:[];if(_0x5ed474['includes'](_0x469606))return console['log'](_0x265292['HumpD']),{'configured':![],'scope':_0x557031};return _0x2f2787['$schema']=_0x2f2787[_0x1e86fd(0xfb)]||_0x5928f8,_0x2f2787['plugin']=[..._0x5ed474,_0x469606],await mkdir(_0x265292['keQuA'](getOpencodeConfigDir,_0x557031),{'recursive':!![]}),await writeFile(_0x18d89b,_0x265292[_0x1e86fd(0xf8)](JSON[_0x1e86fd(0xfa)](_0x2f2787,null,0x2),'\x0a')),console[_0x1e86fd(0xf5)]('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0x557031};}
1
+ (function(_0x44b1db,_0x28f7d8){const _0x370454=_0x5912,_0x5a05bc=_0x44b1db();while(!![]){try{const _0x5bf0a6=parseInt(_0x370454(0x1a5))/0x1+parseInt(_0x370454(0x1c0))/0x2*(parseInt(_0x370454(0x1b6))/0x3)+-parseInt(_0x370454(0x1a4))/0x4+-parseInt(_0x370454(0x1ab))/0x5+parseInt(_0x370454(0x1ac))/0x6+parseInt(_0x370454(0x1a9))/0x7*(parseInt(_0x370454(0x1a7))/0x8)+-parseInt(_0x370454(0x1b7))/0x9*(-parseInt(_0x370454(0x1b5))/0xa);if(_0x5bf0a6===_0x28f7d8)break;else _0x5a05bc['push'](_0x5a05bc['shift']());}catch(_0x490355){_0x5a05bc['push'](_0x5a05bc['shift']());}}}(_0x3c92,0xbb06b));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x192bc8 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x363267){const _0x30fce6=_0x5912,_0x158c49={'WwsAO':'project','rSBrR':'opencode.json','yxuPq':_0x30fce6(0x1ba),'eTMHm':_0x30fce6(0x1ae),'JRApp':_0x30fce6(0x1a8),'qGYHV':function(_0x3f24fc,_0x8c7874){return _0x3f24fc(_0x8c7874);},'TziCR':'https://opencode.ai/config.json','jFZOz':_0x30fce6(0x1c1),'JkKUA':'⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','vBhux':_0x30fce6(0x1b8),'sNplO':'✓\x20OpenCode\x20plugin\x20already\x20configured','LTzvN':function(_0xd01e9a,_0x33ad4c,_0x2221f2){return _0xd01e9a(_0x33ad4c,_0x2221f2);},'tuQxI':_0x30fce6(0x1af)},_0x4d020a=existsSync(join(getOpencodeConfigDir(_0x158c49[_0x30fce6(0x1a2)]),_0x158c49['rSBrR']));let _0x2bfe74;if(_0x363267)_0x2bfe74=_0x363267;else{if(_0x4d020a)_0x2bfe74=_0x158c49[_0x30fce6(0x1a2)];else{console['log']('\x0a📦\x20OpenCode\x20Plugin\x0a');const _0x195f66=await _0x192bc8[_0x30fce6(0x1b0)]([{'type':_0x158c49['yxuPq'],'name':_0x30fce6(0x1bb),'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x158c49['eTMHm'],'value':'user'},{'name':_0x158c49['JRApp'],'value':_0x158c49[_0x30fce6(0x1a2)]}],'default':_0x30fce6(0x1bd)}]);_0x2bfe74=_0x195f66['pluginScope'];}}const _0x4559f2=join(_0x158c49[_0x30fce6(0x1b2)](getOpencodeConfigDir,_0x2bfe74),_0x158c49[_0x30fce6(0x1b9)]),_0x59bcc5=_0x30fce6(0x1be),_0x1e7b62=_0x158c49[_0x30fce6(0x1a6)];let _0x330e7d={};if(existsSync(_0x4559f2))try{const _0x3e835a=await readFile(_0x4559f2,_0x158c49[_0x30fce6(0x1bf)]);_0x330e7d=JSON[_0x30fce6(0x1aa)](_0x3e835a);}catch(_0x27395d){return console['error'](_0x158c49['JkKUA']),{'configured':![],'scope':_0x2bfe74,'error':_0x158c49[_0x30fce6(0x1a3)],'details':_0x27395d};}const _0x12f9c7=Array['isArray'](_0x330e7d[_0x30fce6(0x1ad)])?_0x330e7d[_0x30fce6(0x1ad)]:[];if(_0x12f9c7[_0x30fce6(0x1b4)](_0x59bcc5))return console['log'](_0x158c49[_0x30fce6(0x1b3)]),{'configured':![],'scope':_0x2bfe74};return _0x330e7d['$schema']=_0x330e7d['$schema']||_0x1e7b62,_0x330e7d[_0x30fce6(0x1ad)]=[..._0x12f9c7,_0x59bcc5],await _0x158c49[_0x30fce6(0x1bc)](mkdir,_0x158c49[_0x30fce6(0x1b2)](getOpencodeConfigDir,_0x2bfe74),{'recursive':!![]}),await _0x158c49[_0x30fce6(0x1bc)](writeFile,_0x4559f2,JSON['stringify'](_0x330e7d,null,0x2)+'\x0a'),console[_0x30fce6(0x1b1)](_0x158c49['tuQxI']),{'configured':!![],'scope':_0x2bfe74};}function _0x5912(_0x68a87f,_0x672264){_0x68a87f=_0x68a87f-0x1a2;const _0x3c9290=_0x3c92();let _0x59129a=_0x3c9290[_0x68a87f];return _0x59129a;}function _0x3c92(){const _0xaab032=['520UtnlRO','8802HnemBZ','78966PNpGta','Failed\x20to\x20read\x20opencode.json','rSBrR','list','pluginScope','LTzvN','user','@ranger-testing/opencode-plugin','jFZOz','298kpdXbN','utf-8','WwsAO','vBhux','3353400riauVv','222497FlPLyq','TziCR','16BfpgYQ','Project\x20(shared\x20with\x20team\x20via\x20git)','4984105YPYiqT','parse','5501955BSXlGW','989154DmFtyU','plugin','User\x20(available\x20in\x20all\x20your\x20projects)','✓\x20OpenCode\x20plugin\x20configured','prompt','log','qGYHV','sNplO','includes'];_0x3c92=function(){return _0xaab032;};return _0x3c92();}
@@ -1 +1 @@
1
- function _0x3c23(){const _0x51b16c=['tnxlU','trackPhaseStart','settings.json','16KcsfXv','project','bKOdS','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','jQuUB','6838700luPRrO','--scope','dir_setup','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','Auto-detected\x20CI\x20profile:\x20','skipChromium','trackPhaseEnd','toNac','message','✓\x20Claude\x20Code\x20plugin\x20installed','16YPzYpy','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','✓\x20Created\x20profile\x20settings:\x20baseUrl=','1587432QanbXj','auth','mxsiX','sXbaS','FoJIv','success','OQHft','length','Failed\x20to\x20install\x20plugin:','baseUrl','\x22:\x20','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','auth.json.enc','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','UNTXo','444436GyWiUl','install','add','plugin','6Tofele','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','qCHCH','sessions','error','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','NIEOp','279330VNGgRF','yNphD','2446440HSVfQl','83178YzrMAL','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','ZvARQ','ranger@trailhead','eNpaA','name','600955aTmWqb','marketplace','jRIjD','hlRdW','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','skills','log'];_0x3c23=function(){return _0x51b16c;};return _0x3c23();}(function(_0x52b68f,_0x112b72){const _0x319ac1=_0x512c,_0x374c24=_0x52b68f();while(!![]){try{const _0x2cf3a2=parseInt(_0x319ac1(0x149))/0x1+parseInt(_0x319ac1(0x13e))/0x2*(-parseInt(_0x319ac1(0x142))/0x3)+-parseInt(_0x319ac1(0x16b))/0x4*(-parseInt(_0x319ac1(0x152))/0x5)+parseInt(_0x319ac1(0x14b))/0x6+parseInt(_0x319ac1(0x16e))/0x7+-parseInt(_0x319ac1(0x15c))/0x8*(-parseInt(_0x319ac1(0x14c))/0x9)+-parseInt(_0x319ac1(0x161))/0xa;if(_0x2cf3a2===_0x112b72)break;else _0x374c24['push'](_0x374c24['shift']());}catch(_0x3fd640){_0x374c24['push'](_0x374c24['shift']());}}}(_0x3c23,0x45874));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';function _0x512c(_0x16e99e,_0xb67c7a){_0x16e99e=_0x16e99e-0x13a;const _0x3c23e5=_0x3c23();let _0x512c2d=_0x3c23e5[_0x16e99e];return _0x512c2d;}import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x3f2ff3){const _0x37a42a=_0x512c,_0x273db7={'OQHft':function(_0x579b73){return _0x579b73();},'NIEOp':'No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','yNphD':'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','jRIjD':function(_0x4a322d,_0x22df1a,_0x35e2b9){return _0x4a322d(_0x22df1a,_0x35e2b9);},'MwEwj':function(_0x2dae56,_0x3ac4dd){return _0x2dae56===_0x3ac4dd;},'qCHCH':function(_0xc61b6a,_0x1102bf){return _0xc61b6a+_0x1102bf;}},_0x55f4eb=_0x273db7[_0x37a42a(0x174)](getRangerDir),_0x2eee1d=join(_0x55f4eb,'ci');if(_0x3f2ff3){const _0x164d54=join(_0x2eee1d,_0x3f2ff3);return{'name':_0x3f2ff3,'path':_0x164d54};}if(!existsSync(_0x2eee1d))throw new Error(_0x273db7[_0x37a42a(0x148)]+_0x273db7[_0x37a42a(0x14a)]);const _0x4f7248=await _0x273db7[_0x37a42a(0x154)](readdir,_0x2eee1d,{'withFileTypes':!![]}),_0x273822=_0x4f7248['filter'](_0x4b7c33=>_0x4b7c33['isDirectory']())['map'](_0x5b7ed3=>_0x5b7ed3[_0x37a42a(0x151)]);if(_0x273db7['MwEwj'](_0x273822['length'],0x0))throw new Error(_0x273db7[_0x37a42a(0x144)](_0x37a42a(0x13a),_0x273db7['yNphD']));if(_0x273822[_0x37a42a(0x175)]===0x1){const _0x3f9d0d=_0x273822[0x0];return console['log'](_0x37a42a(0x165)+_0x3f9d0d),{'name':_0x3f9d0d,'path':join(_0x2eee1d,_0x3f9d0d)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x273822['join'](',\x20')+_0x37a42a(0x16c));}async function installPluginNonInteractive(){const _0x1d4620=_0x512c,_0x4bef1f={'qrsQc':'✓\x20Marketplace\x20already\x20added','sXbaS':function(_0x3e055f,_0x120d14){return _0x3e055f(_0x120d14);},'toNac':_0x1d4620(0x153),'FoJIv':'ranger-testing/trailhead','jQuUB':'Failed\x20to\x20add\x20marketplace:','UNTXo':_0x1d4620(0x164),'rjUzE':function(_0x4c03d9,_0x2887bf){return _0x4c03d9(_0x2887bf);},'MArcG':_0x1d4620(0x162),'tnxlU':_0x1d4620(0x15d),'cdRSs':_0x1d4620(0x16a)},_0x4f50e5=await isPluginInstalled(_0x1d4620(0x14f));if(_0x4f50e5)return console['log']('✓\x20Claude\x20Code\x20plugin\x20already\x20installed'),![];console[_0x1d4620(0x158)]('Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...');const _0x54a793=await isMarketplaceAdded('trailhead');let _0x1ed6a5=_0x54a793;if(_0x54a793)console[_0x1d4620(0x158)](_0x4bef1f['qrsQc']);else{const _0x37d8ff=await _0x4bef1f[_0x1d4620(0x171)](runClaudeCommand,['plugin',_0x4bef1f[_0x1d4620(0x168)],_0x1d4620(0x140),_0x4bef1f[_0x1d4620(0x172)]]);!_0x37d8ff[_0x1d4620(0x173)]?(console[_0x1d4620(0x146)](_0x4bef1f[_0x1d4620(0x160)],_0x37d8ff['error']),console['log'](_0x4bef1f[_0x1d4620(0x13d)])):_0x1ed6a5=!![];}if(_0x1ed6a5){const _0x175ea5=await _0x4bef1f['rjUzE'](runClaudeCommand,['plugin',_0x1d4620(0x13f),_0x1d4620(0x14f),_0x4bef1f['MArcG'],_0x4bef1f[_0x1d4620(0x159)]]);!_0x175ea5['success']?(console['error'](_0x1d4620(0x176),_0x175ea5['error']),console['log'](_0x1d4620(0x147))):console[_0x1d4620(0x158)](_0x4bef1f['cdRSs']);}return!![];}export async function setupCi(_0x4375ad,_0x2bc89f,_0x122a43){const _0x1d8b62=_0x512c,_0x24ffe8={'IMySj':'\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','ssQoe':_0x1d8b62(0x16f),'bKOdS':function(_0x397af4,_0x16cadf){return _0x397af4(_0x16cadf);},'ZPQMl':_0x1d8b62(0x163),'OOAsm':_0x1d8b62(0x145),'PMTDo':function(_0x3c7d0b,_0x52bbb5){return _0x3c7d0b(_0x52bbb5);},'MfPVG':'chromium','rclNg':function(_0x59f7e1){return _0x59f7e1();},'mxsiX':'profile_activate','ZvARQ':function(_0x585a48,_0x551fe8,_0x26851c){return _0x585a48(_0x551fe8,_0x26851c);},'NCfSP':function(_0x4be512,_0x1a3d28,_0x24e280){return _0x4be512(_0x1a3d28,_0x24e280);},'aKBXw':_0x1d8b62(0x15b),'SfkyE':function(_0x2f4ab1,_0x704fb8,_0x44aff1){return _0x2f4ab1(_0x704fb8,_0x44aff1);},'hlRdW':function(_0x13542f,_0x492312){return _0x13542f(_0x492312);},'EcrRf':_0x1d8b62(0x15f),'mtMMy':function(_0x5576fc,_0x1cfb5f){return _0x5576fc instanceof _0x1cfb5f;},'uAgCS':'✓\x20Auth\x20state\x20found','PKHIB':_0x1d8b62(0x143),'EBSSV':function(_0x4752db,_0x23affe){return _0x4752db(_0x23affe);},'bZMuN':_0x1d8b62(0x141),'eNpaA':'skills','OXuVu':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console['log'](_0x24ffe8['IMySj']),_0x122a43?.['trackPhaseStart'](_0x24ffe8['ssQoe']),await _0x24ffe8[_0x1d8b62(0x15e)](authenticate,_0x4375ad),_0x122a43?.[_0x1d8b62(0x167)]('auth'),_0x122a43?.['trackPhaseStart'](_0x24ffe8['ZPQMl']);const {path:_0xc18f86,installed:_0x27c727}=await ensureRangerDir();await writeRangerGitignore(_0xc18f86);const _0x8f1fd4=join(_0xc18f86,_0x24ffe8['OOAsm']);!_0x24ffe8['PMTDo'](existsSync,_0x8f1fd4)&&await mkdir(_0x8f1fd4,{'recursive':!![]});_0x122a43?.['trackPhaseEnd']('dir_setup',{'installed':_0x27c727}),_0x122a43?.['trackPhaseStart'](_0x24ffe8['MfPVG']);let _0x1751a1=![];_0x2bc89f?.[_0x1d8b62(0x166)]?console[_0x1d8b62(0x158)](_0x1d8b62(0x14d)):_0x1751a1=await _0x24ffe8['rclNg'](ensureChromium);_0x122a43?.['trackPhaseEnd']('chromium',{'installed':_0x1751a1,'skipped':!!_0x2bc89f?.['skipChromium']}),_0x122a43?.[_0x1d8b62(0x15a)](_0x24ffe8[_0x1d8b62(0x170)]);const _0x41b233=await findCiProfile(_0x2bc89f?.['profile']);let _0x213efd=![];_0x2bc89f?.[_0x1d8b62(0x177)]&&(await _0x24ffe8[_0x1d8b62(0x14e)](mkdir,_0x41b233['path'],{'recursive':!![]}),await saveSettings(_0x41b233[_0x1d8b62(0x151)],{'baseUrl':_0x2bc89f[_0x1d8b62(0x177)],'headless':!![]}),console[_0x1d8b62(0x158)](_0x1d8b62(0x16d)+_0x2bc89f['baseUrl']),_0x213efd=!![]);const _0x4ec8ac=_0x24ffe8['NCfSP'](join,_0x41b233['path'],_0x24ffe8['aKBXw']);if(!existsSync(_0x4ec8ac)&&!_0x213efd)throw new Error('CI\x20profile\x20\x22'+_0x41b233[_0x1d8b62(0x151)]+_0x1d8b62(0x13c));const _0x467c06=join(_0x41b233['path'],'auth.json'),_0x273a00=_0x24ffe8['SfkyE'](join,_0x41b233['path'],_0x1d8b62(0x13b)),_0x2b207a=existsSync(_0x467c06),_0x285c4e=_0x24ffe8[_0x1d8b62(0x155)](existsSync,_0x273a00);if(_0x285c4e)try{const _0x487122=await _0x24ffe8['rclNg'](getToken);if(!_0x487122)throw new Error('No\x20API\x20token\x20available\x20for\x20decryption');const _0x46e40f=await readFile(_0x273a00);decrypt(_0x46e40f,_0x487122),console['log'](_0x24ffe8['EcrRf']);}catch(_0x33c09c){const _0x578912=_0x24ffe8['mtMMy'](_0x33c09c,Error)?_0x33c09c[_0x1d8b62(0x169)]:String(_0x33c09c);throw new Error(_0x1d8b62(0x156)+_0x41b233[_0x1d8b62(0x151)]+_0x1d8b62(0x178)+_0x578912);}else _0x2b207a?console[_0x1d8b62(0x158)](_0x24ffe8['uAgCS']):console[_0x1d8b62(0x158)](_0x24ffe8['PKHIB']);await _0x24ffe8['EBSSV'](writeActiveProfileName,_0x41b233[_0x1d8b62(0x151)]),console[_0x1d8b62(0x158)]('✓\x20Active\x20profile:\x20'+_0x41b233[_0x1d8b62(0x151)]),_0x122a43?.['trackPhaseEnd']('profile_activate',{'profileName':_0x41b233['name'],'hasAuth':_0x2b207a,'hasEncryptedAuth':_0x285c4e,'createdSettings':_0x213efd}),_0x122a43?.['trackPhaseStart'](_0x24ffe8['bZMuN']);const _0x47f565=await installPluginNonInteractive();_0x122a43?.['trackPhaseEnd'](_0x24ffe8['bZMuN'],{'installed':_0x47f565}),_0x122a43?.['trackPhaseStart'](_0x24ffe8[_0x1d8b62(0x150)]),await _0x24ffe8['PMTDo'](skillup,{'autoInstall':'project'}),_0x122a43?.[_0x1d8b62(0x167)](_0x1d8b62(0x157)),console[_0x1d8b62(0x158)](_0x24ffe8['OXuVu']);}
1
+ (function(_0x3bf179,_0x3da3d8){const _0x51cbda=_0x5700,_0x291a0d=_0x3bf179();while(!![]){try{const _0x312227=-parseInt(_0x51cbda(0xff))/0x1*(-parseInt(_0x51cbda(0x114))/0x2)+parseInt(_0x51cbda(0xef))/0x3*(-parseInt(_0x51cbda(0xe9))/0x4)+parseInt(_0x51cbda(0x108))/0x5+-parseInt(_0x51cbda(0x100))/0x6*(-parseInt(_0x51cbda(0xe7))/0x7)+parseInt(_0x51cbda(0x115))/0x8*(-parseInt(_0x51cbda(0x10e))/0x9)+-parseInt(_0x51cbda(0xfb))/0xa+-parseInt(_0x51cbda(0xf0))/0xb;if(_0x312227===_0x3da3d8)break;else _0x291a0d['push'](_0x291a0d['shift']());}catch(_0x266424){_0x291a0d['push'](_0x291a0d['shift']());}}}(_0x1ac0,0xdec4e));function _0x5700(_0x3e96b4,_0x91e247){_0x3e96b4=_0x3e96b4-0xe4;const _0x1ac0bb=_0x1ac0();let _0x5700d9=_0x1ac0bb[_0x3e96b4];return _0x5700d9;}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 _0x1ac0(){const _0x31b2dd=['error','1177425xmDUlc','26111096YIXZyZ','trailhead','join','settings.json','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','SltYa','ycczJ','✓\x20Marketplace\x20already\x20added','MKvkE','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','success','4214110bcyqfy','WzJUb','mACHA','nQmTz','89yKhyvP','1937526FiiFIG','add','plugin','auth.json.enc','xNvMB','EdfNV','path','auth','8964125DZXCrR','dir_setup','bbBgJ','ZIKDD','chromium','JMXws','2343825geFOqr','pmWUw','sessions','baseUrl','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','name','33122tJSyyd','24YWWKmY','No\x20API\x20token\x20available\x20for\x20decryption','PynjR','skipChromium','uLaZs','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','eKoYq','\x22:\x20','JNTzc','bNDOy','length','skills','log','ranger@trailhead','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','trackPhaseStart','jSqCp','35CpCgyn','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','4zzfOjN','trackPhaseEnd','pPqwb','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','uwjMV'];_0x1ac0=function(){return _0x31b2dd;};return _0x1ac0();}async function findCiProfile(_0x2e500a){const _0x10579c=_0x5700,_0x2a7cd3={'PynjR':function(_0x215d4e,_0x5bd26d,_0x299c71){return _0x215d4e(_0x5bd26d,_0x299c71);},'bbBgJ':function(_0x40c856,_0x3c3075,_0xd764fb){return _0x40c856(_0x3c3075,_0xd764fb);},'uLaZs':function(_0xc195a7,_0x4c5421){return _0xc195a7+_0x4c5421;},'URmOj':_0x10579c(0x112),'HSHzu':function(_0x719a46,_0xa99e13){return _0x719a46===_0xa99e13;}},_0x3ae4f2=getRangerDir(),_0x311825=_0x2a7cd3[_0x10579c(0x117)](join,_0x3ae4f2,'ci');if(_0x2e500a){const _0x5c49dd=join(_0x311825,_0x2e500a);return{'name':_0x2e500a,'path':_0x5c49dd};}if(!existsSync(_0x311825))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 _0x2877e8=await _0x2a7cd3['bbBgJ'](readdir,_0x311825,{'withFileTypes':!![]}),_0xa6da14=_0x2877e8['filter'](_0x11d59a=>_0x11d59a['isDirectory']())['map'](_0x35371e=>_0x35371e[_0x10579c(0x113)]);if(_0xa6da14[_0x10579c(0x11f)]===0x0)throw new Error(_0x2a7cd3[_0x10579c(0x119)](_0x2a7cd3['URmOj'],_0x10579c(0xe8)));if(_0x2a7cd3['HSHzu'](_0xa6da14[_0x10579c(0x11f)],0x1)){const _0x54538b=_0xa6da14[0x0];return console[_0x10579c(0x121)]('Auto-detected\x20CI\x20profile:\x20'+_0x54538b),{'name':_0x54538b,'path':_0x2a7cd3[_0x10579c(0x10a)](join,_0x311825,_0x54538b)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0xa6da14[_0x10579c(0xf2)](',\x20')+'.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.');}async function installPluginNonInteractive(){const _0x407fe3=_0x5700,_0x10c209={'noICB':'Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','mACHA':function(_0x4ed9c4,_0x172da9){return _0x4ed9c4(_0x172da9);},'jSqCp':_0x407fe3(0xf7),'WzJUb':'plugin','EdfNV':'marketplace','MKvkE':'ranger-testing/trailhead','MRTRO':'Failed\x20to\x20add\x20marketplace:','iarsV':_0x407fe3(0xf4),'bNDOy':'--scope','rfbNX':'project'},_0x495806=await isPluginInstalled(_0x407fe3(0x122));if(_0x495806)return console['log'](_0x407fe3(0xec)),![];console['log'](_0x10c209['noICB']);const _0x11d983=await _0x10c209[_0x407fe3(0xfd)](isMarketplaceAdded,_0x407fe3(0xf1));let _0x2e632c=_0x11d983;if(_0x11d983)console['log'](_0x10c209[_0x407fe3(0xe6)]);else{const _0x6459d0=await _0x10c209['mACHA'](runClaudeCommand,[_0x10c209[_0x407fe3(0xfc)],_0x10c209[_0x407fe3(0x105)],_0x407fe3(0x101),_0x10c209[_0x407fe3(0xf8)]]);!_0x6459d0[_0x407fe3(0xfa)]?(console['error'](_0x10c209['MRTRO'],_0x6459d0[_0x407fe3(0xee)]),console['log'](_0x10c209['iarsV'])):_0x2e632c=!![];}if(_0x2e632c){const _0x15c41b=await runClaudeCommand([_0x407fe3(0x102),'install',_0x407fe3(0x122),_0x10c209[_0x407fe3(0x11e)],_0x10c209['rfbNX']]);!_0x15c41b[_0x407fe3(0xfa)]?(console['error']('Failed\x20to\x20install\x20plugin:',_0x15c41b['error']),console['log']('You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project')):console['log']('✓\x20Claude\x20Code\x20plugin\x20installed');}return!![];}export async function setupCi(_0x1d8e6a,_0x14ffab,_0x79e33f){const _0x3dd519=_0x5700,_0x4cbac6={'pPqwb':function(_0x404d62,_0x2c7f41){return _0x404d62(_0x2c7f41);},'JMXws':function(_0x3aa7fd){return _0x3aa7fd();},'BtmlH':_0x3dd519(0x110),'xNvMB':function(_0x100477,_0x19010e){return _0x100477(_0x19010e);},'JNTzc':'dir_setup','ycczJ':_0x3dd519(0x10c),'nQmTz':_0x3dd519(0xf9),'SltYa':function(_0xcbe456,_0x11dfef,_0x2281a6){return _0xcbe456(_0x11dfef,_0x2281a6);},'eKoYq':function(_0x28f4a5,_0x55de38,_0x405721){return _0x28f4a5(_0x55de38,_0x405721);},'hWYsK':'auth.json','DUsMd':_0x3dd519(0x103),'vwjzR':function(_0x1b10c4,_0x3c28f6){return _0x1b10c4(_0x3c28f6);},'GjRtK':function(_0x4346e0,_0xf76022){return _0x4346e0(_0xf76022);},'MUvGi':'✓\x20Auth\x20state\x20found','YsRxa':'\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','eIWnb':function(_0x4b0031,_0x1b34c9){return _0x4b0031(_0x1b34c9);},'pmWUw':'profile_activate','uwjMV':'plugin','ZIKDD':function(_0xd3984b){return _0xd3984b();},'qXSgz':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console['log']('\x0a🔧\x20Ranger\x20CI\x20Setup\x0a'),_0x79e33f?.[_0x3dd519(0xe5)](_0x3dd519(0x107)),await _0x4cbac6[_0x3dd519(0xeb)](authenticate,_0x1d8e6a),_0x79e33f?.['trackPhaseEnd']('auth'),_0x79e33f?.[_0x3dd519(0xe5)](_0x3dd519(0x109));const {path:_0x5ef076,installed:_0x12e0da}=await _0x4cbac6[_0x3dd519(0x10d)](ensureRangerDir);await writeRangerGitignore(_0x5ef076);const _0x577d6d=join(_0x5ef076,_0x4cbac6['BtmlH']);!_0x4cbac6[_0x3dd519(0x104)](existsSync,_0x577d6d)&&await mkdir(_0x577d6d,{'recursive':!![]});_0x79e33f?.['trackPhaseEnd'](_0x4cbac6[_0x3dd519(0x11d)],{'installed':_0x12e0da}),_0x79e33f?.['trackPhaseStart'](_0x4cbac6[_0x3dd519(0xf6)]);let _0x265cbe=![];_0x14ffab?.[_0x3dd519(0x118)]?console[_0x3dd519(0x121)](_0x4cbac6[_0x3dd519(0xfe)]):_0x265cbe=await ensureChromium();_0x79e33f?.['trackPhaseEnd']('chromium',{'installed':_0x265cbe,'skipped':!!_0x14ffab?.[_0x3dd519(0x118)]}),_0x79e33f?.['trackPhaseStart']('profile_activate');const _0x5bdb8c=await findCiProfile(_0x14ffab?.['profile']);let _0x390118=![];_0x14ffab?.['baseUrl']&&(await mkdir(_0x5bdb8c['path'],{'recursive':!![]}),await _0x4cbac6[_0x3dd519(0xf5)](saveSettings,_0x5bdb8c[_0x3dd519(0x113)],{'baseUrl':_0x14ffab[_0x3dd519(0x111)],'headless':!![]}),console[_0x3dd519(0x121)]('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x14ffab[_0x3dd519(0x111)]),_0x390118=!![]);const _0x4e1d32=_0x4cbac6['SltYa'](join,_0x5bdb8c[_0x3dd519(0x106)],_0x3dd519(0xf3));if(!_0x4cbac6[_0x3dd519(0xeb)](existsSync,_0x4e1d32)&&!_0x390118)throw new Error('CI\x20profile\x20\x22'+_0x5bdb8c['name']+_0x3dd519(0xe4));const _0x4be3d0=_0x4cbac6[_0x3dd519(0x11b)](join,_0x5bdb8c[_0x3dd519(0x106)],_0x4cbac6['hWYsK']),_0x291d2b=_0x4cbac6['eKoYq'](join,_0x5bdb8c[_0x3dd519(0x106)],_0x4cbac6['DUsMd']),_0x3f29ed=_0x4cbac6['vwjzR'](existsSync,_0x4be3d0),_0x2e0955=existsSync(_0x291d2b);if(_0x2e0955)try{const _0x91d42c=await getToken();if(!_0x91d42c)throw new Error(_0x3dd519(0x116));const _0xce084a=await _0x4cbac6['GjRtK'](readFile,_0x291d2b);decrypt(_0xce084a,_0x91d42c),console[_0x3dd519(0x121)]('✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)');}catch(_0x586fe5){const _0x322cf4=_0x586fe5 instanceof Error?_0x586fe5['message']:String(_0x586fe5);throw new Error(_0x3dd519(0x11a)+_0x5bdb8c[_0x3dd519(0x113)]+_0x3dd519(0x11c)+_0x322cf4);}else _0x3f29ed?console['log'](_0x4cbac6['MUvGi']):console['log'](_0x4cbac6['YsRxa']);await _0x4cbac6['eIWnb'](writeActiveProfileName,_0x5bdb8c['name']),console['log']('✓\x20Active\x20profile:\x20'+_0x5bdb8c[_0x3dd519(0x113)]),_0x79e33f?.[_0x3dd519(0xea)](_0x4cbac6[_0x3dd519(0x10f)],{'profileName':_0x5bdb8c['name'],'hasAuth':_0x3f29ed,'hasEncryptedAuth':_0x2e0955,'createdSettings':_0x390118}),_0x79e33f?.['trackPhaseStart'](_0x4cbac6[_0x3dd519(0xed)]);const _0x39801e=await _0x4cbac6[_0x3dd519(0x10b)](installPluginNonInteractive);_0x79e33f?.['trackPhaseEnd'](_0x3dd519(0x102),{'installed':_0x39801e}),_0x79e33f?.['trackPhaseStart'](_0x3dd519(0x120)),await skillup({'autoInstall':'project'}),_0x79e33f?.['trackPhaseEnd'](_0x3dd519(0x120)),console['log'](_0x4cbac6['qXSgz']);}
@@ -1 +1 @@
1
- (function(_0x19d7fa,_0x3b4a98){const _0x4af02e=_0x24cd,_0x26126e=_0x19d7fa();while(!![]){try{const _0x269c07=-parseInt(_0x4af02e(0xa7))/0x1*(-parseInt(_0x4af02e(0xba))/0x2)+-parseInt(_0x4af02e(0xae))/0x3+-parseInt(_0x4af02e(0xbc))/0x4+-parseInt(_0x4af02e(0xbb))/0x5+-parseInt(_0x4af02e(0xcd))/0x6+-parseInt(_0x4af02e(0xbd))/0x7+-parseInt(_0x4af02e(0xb0))/0x8*(-parseInt(_0x4af02e(0xd3))/0x9);if(_0x269c07===_0x3b4a98)break;else _0x26126e['push'](_0x26126e['shift']());}catch(_0x57703d){_0x26126e['push'](_0x26126e['shift']());}}}(_0x5791,0x8f1dc));import{basename}from'path';import _0x3f0f8c from'inquirer';import{getToken}from'./utils/keychain.js';function _0x24cd(_0x196261,_0x4ea95a){_0x196261=_0x196261-0xa7;const _0x579146=_0x5791();let _0x24cd95=_0x579146[_0x196261];return _0x24cd95;}import{installSkill}from'./utils/skills.js';function _0x5791(){const _0x5c798a=['warn','RedIg','5399358YSCWfR','CaTDZ','/skills/','suppressUsage','stdin','xrHvK','14557041cHStWV','All\x20projects\x20(','931417iIpAwS','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','xuvsT','\x0a✅\x20Installed\x20','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','\x20skill','138852tuQnox','message','8ZORSwR','EPIcV','isTTY','VPLNd','project','user-level','EGYZi','KbMOo','/.claude/skills/','user','2whxdLF','3572020LsDEbM','447068NlABKz','1332198BHblNm','claude','To\x20use:','log','\x20\x203.\x20Run:\x20ranger\x20skillup','FAiCt','platform','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','autoInstall','stdout','\x20--opencode','opencode','WLCHA','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli'];_0x5791=function(){return _0x5c798a;};return _0x5791();}import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x25416b={}){const _0x425100=_0x24cd,_0x510d76={'RedIg':_0x425100(0xbe),'FAiCt':function(_0x3c7146){return _0x3c7146();},'WPNSc':'To\x20get\x20started:','naHJF':function(_0x302fc5,_0x293c11){return _0x302fc5===_0x293c11;},'WLCHA':_0x425100(0xc8),'VPLNd':_0x425100(0xc7),'EPIcV':function(_0x177837,_0x4567b8){return _0x177837===_0x4567b8;},'GArwH':function(_0x2cda12,_0x32cc83){return _0x2cda12===_0x32cc83;},'KbMOo':'list','xrHvK':'Where\x20should\x20skills\x20be\x20installed?','zyNFK':function(_0x365b3b){return _0x365b3b();},'EGYZi':'\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','ORhUQ':function(_0x58c5ce,_0x1de5d2){return _0x58c5ce instanceof _0x1de5d2;},'RWNpM':'user','xuvsT':'project-level','GTsFT':function(_0x5114ae,_0x155015){return _0x5114ae>_0x155015;},'PnkHd':_0x425100(0xbf),'CaTDZ':_0x425100(0xab),'aFTZy':'\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a'};console['log'](_0x425100(0xa8));const _0x27588d=_0x25416b[_0x425100(0xc3)]??_0x510d76[_0x425100(0xcc)],_0x30a5a4=await _0x510d76[_0x425100(0xc2)](getToken);if(!_0x30a5a4){console[_0x425100(0xc0)](_0x425100(0xac)),console['log'](_0x510d76['WPNSc']),console['log'](_0x425100(0xca)),console['log']('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x510d76['naHJF'](_0x27588d,_0x510d76[_0x425100(0xc9)])?_0x510d76[_0x425100(0xb3)]:'')+'\x20<your-api-token>'),console['log'](_0x425100(0xc1)+(_0x510d76[_0x425100(0xb1)](_0x27588d,'opencode')?_0x510d76[_0x425100(0xb3)]:'')+'\x0a');return;}console['log']('✓\x20Found\x20API\x20token');const _0x1c3d16=getProjectRoot(),_0x2ebabe=basename(_0x1c3d16),_0x10fa42=_0x510d76[_0x425100(0xb1)](_0x27588d,_0x425100(0xc8))?getOpencodeConfigDir(_0x425100(0xb9))+_0x425100(0xcf):_0x510d76['FAiCt'](getClaudeConfigDir)+'/skills/',_0x3d0f4d=_0x510d76['GArwH'](_0x27588d,_0x425100(0xc8))?_0x1c3d16+'/.opencode/skills/':_0x1c3d16+_0x425100(0xb8),_0x20c11f=process[_0x425100(0xd1)]['isTTY']&&process[_0x425100(0xc6)][_0x425100(0xb2)];let _0xa5f791;if(_0x25416b[_0x425100(0xc5)])_0xa5f791=_0x25416b[_0x425100(0xc5)];else{if(_0x20c11f){const _0x43614c=await _0x3f0f8c['prompt']([{'type':_0x510d76[_0x425100(0xb7)],'name':'installLevel','message':_0x510d76[_0x425100(0xd2)],'choices':[{'name':_0x425100(0xd4)+_0x10fa42+')','value':'user'},{'name':'This\x20project\x20only\x20('+_0x3d0f4d+')','value':_0x425100(0xb4)}]}]);_0xa5f791=_0x43614c['installLevel'];}else _0xa5f791=_0x425100(0xb4),console['log'](_0x425100(0xc4)+_0x3d0f4d+')');}let _0x1dc1de=0x0;const _0x81a172=_0x510d76['zyNFK'](getCurrentVersion);console[_0x425100(0xc0)]('\x0a📦\x20Installing\x20skills...\x0a');try{const _0x4ea4de=await installSkill('ranger',{'cliVersion':_0x81a172,'level':_0xa5f791,'platform':_0x27588d});_0x4ea4de&&_0x1dc1de++;}catch(_0x70bacb){console[_0x425100(0xcb)](_0x510d76[_0x425100(0xb6)],_0x510d76['ORhUQ'](_0x70bacb,Error)?_0x70bacb[_0x425100(0xaf)]:_0x70bacb);}if(_0x1dc1de>0x0){const _0x22feed=_0xa5f791===_0x510d76['RWNpM']?_0x425100(0xb5):_0x510d76[_0x425100(0xa9)];console['log'](_0x425100(0xaa)+_0x1dc1de+'\x20'+_0x22feed+_0x425100(0xad)+(_0x510d76['GTsFT'](_0x1dc1de,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x25416b[_0x425100(0xd0)]&&(console['log'](_0x510d76['PnkHd']),_0x27588d===_0x510d76['WLCHA']?console['log'](_0x510d76[_0x425100(0xce)]):console[_0x425100(0xc0)]('\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'));}else console['log'](_0x510d76['aFTZy']);}
1
+ (function(_0x1966d9,_0x3519b){const _0x1ed747=_0x71f3,_0x139cb9=_0x1966d9();while(!![]){try{const _0x601e9a=-parseInt(_0x1ed747(0xc0))/0x1+-parseInt(_0x1ed747(0xb5))/0x2*(parseInt(_0x1ed747(0x99))/0x3)+parseInt(_0x1ed747(0xc1))/0x4+-parseInt(_0x1ed747(0xb7))/0x5*(-parseInt(_0x1ed747(0x94))/0x6)+-parseInt(_0x1ed747(0xb1))/0x7*(-parseInt(_0x1ed747(0xa1))/0x8)+-parseInt(_0x1ed747(0xc2))/0x9+parseInt(_0x1ed747(0x9a))/0xa*(parseInt(_0x1ed747(0xb6))/0xb);if(_0x601e9a===_0x3519b)break;else _0x139cb9['push'](_0x139cb9['shift']());}catch(_0x659244){_0x139cb9['push'](_0x139cb9['shift']());}}}(_0x4e6e,0x6ce5b));import{basename}from'path';import _0x3429ed from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';function _0x4e6e(){const _0x54c9c6=['platform','\x20\x202.\x20Run:\x20ranger\x20setup','This\x20project\x20only\x20(','349221dnFAMb','2647008qYIGzm','4054005fjAyPI','KCNbx','wSkxF','log','✓\x20Found\x20API\x20token','pfNpO','55026cDRUbG','TEGOo','stdout','WlBUV','user','354cmvyoi','5830NbQilX','\x20skill','user-level','KpcLn','opencode','\x20<your-api-token>','isTTY','673784SIolrH','LhxFc','ObvcE','/.opencode/skills/','nUdoZ','/.claude/skills/','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','Where\x20should\x20skills\x20be\x20installed?','KuaCJ','To\x20get\x20started:','ranger','TAtaq','\x20\x203.\x20Run:\x20ranger\x20skillup','/skills/','uOoKu','To\x20use:','7TScbkC','project','autoInstall','kEqxw','11998uqsCAw','17248XfmJyI','160KOEeQZ','All\x20projects\x20(','stdin','suppressUsage','installLevel','JGEKT'];_0x4e6e=function(){return _0x54c9c6;};return _0x4e6e();}function _0x71f3(_0xa37d38,_0x2838b1){_0xa37d38=_0xa37d38-0x93;const _0x4e6ebb=_0x4e6e();let _0x71f3f2=_0x4e6ebb[_0xa37d38];return _0x71f3f2;}import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x36fdc4={}){const _0x3dc090=_0x71f3,_0x709c2={'PPsVD':'\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','VublW':'claude','MckWs':function(_0x43a9a5){return _0x43a9a5();},'WlBUV':_0x3dc090(0xaa),'Snixa':_0x3dc090(0xa7),'WBpbJ':function(_0x46aaea,_0x438e38){return _0x46aaea===_0x438e38;},'TAtaq':'\x20--opencode','TEGOo':function(_0x58878f){return _0x58878f();},'awnOv':function(_0x3dff65,_0x2d52aa){return _0x3dff65===_0x2d52aa;},'tkzAR':_0x3dc090(0x9e),'ofrMF':function(_0x1644e3,_0x39bc96){return _0x1644e3(_0x39bc96);},'PacuF':'user','KuaCJ':function(_0x50e7c1,_0x2ce159){return _0x50e7c1===_0x2ce159;},'pfNpO':'list','JGEKT':'installLevel','LhxFc':_0x3dc090(0xa8),'KpcLn':_0x3dc090(0xb2),'kYZuI':'\x0a📦\x20Installing\x20skills...\x0a','KCNbx':function(_0x3a6139,_0xc360e9,_0x3f7492){return _0x3a6139(_0xc360e9,_0x3f7492);},'uOoKu':_0x3dc090(0xab),'zBGso':function(_0x599856,_0x3f5cf5){return _0x599856 instanceof _0x3f5cf5;},'wSkxF':function(_0x43c5f2,_0x53d131){return _0x43c5f2>_0x53d131;},'sgJri':function(_0x153b69,_0x55f4b8){return _0x153b69===_0x55f4b8;},'kEqxw':_0x3dc090(0x9c),'WBbqc':function(_0x1a12db,_0x3e9a72){return _0x1a12db>_0x3e9a72;},'nUdoZ':'\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','ObvcE':'\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'};console['log'](_0x709c2['PPsVD']);const _0x2de668=_0x36fdc4[_0x3dc090(0xbd)]??_0x709c2['VublW'],_0x11e13d=await _0x709c2['MckWs'](getToken);if(!_0x11e13d){console[_0x3dc090(0xc5)]('❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a'),console['log'](_0x709c2[_0x3dc090(0x97)]),console[_0x3dc090(0xc5)](_0x709c2['Snixa']),console['log'](_0x3dc090(0xbe)+(_0x709c2['WBpbJ'](_0x2de668,'opencode')?_0x709c2[_0x3dc090(0xac)]:'')+_0x3dc090(0x9f)),console[_0x3dc090(0xc5)](_0x3dc090(0xad)+(_0x2de668===_0x3dc090(0x9e)?_0x709c2['TAtaq']:'')+'\x0a');return;}console[_0x3dc090(0xc5)](_0x3dc090(0xc6));const _0x17364f=_0x709c2[_0x3dc090(0x95)](getProjectRoot),_0xb657e8=basename(_0x17364f),_0x1e1c95=_0x709c2['awnOv'](_0x2de668,_0x709c2['tkzAR'])?_0x709c2['ofrMF'](getOpencodeConfigDir,_0x709c2['PacuF'])+_0x3dc090(0xae):getClaudeConfigDir()+_0x3dc090(0xae),_0x3497e0=_0x709c2[_0x3dc090(0xa9)](_0x2de668,_0x709c2['tkzAR'])?_0x17364f+_0x3dc090(0xa4):_0x17364f+_0x3dc090(0xa6),_0x35fe05=process[_0x3dc090(0xb9)]['isTTY']&&process[_0x3dc090(0x96)][_0x3dc090(0xa0)];let _0x164bc7;if(_0x36fdc4['autoInstall'])_0x164bc7=_0x36fdc4[_0x3dc090(0xb3)];else{if(_0x35fe05){const _0x4bf779=await _0x3429ed['prompt']([{'type':_0x709c2[_0x3dc090(0x93)],'name':_0x709c2[_0x3dc090(0xbc)],'message':_0x709c2[_0x3dc090(0xa2)],'choices':[{'name':_0x3dc090(0xb8)+_0x1e1c95+')','value':_0x3dc090(0x98)},{'name':_0x3dc090(0xbf)+_0x3497e0+')','value':_0x709c2[_0x3dc090(0x9d)]}]}]);_0x164bc7=_0x4bf779[_0x3dc090(0xbb)];}else _0x164bc7='project',console[_0x3dc090(0xc5)]('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x3497e0+')');}let _0x57ddce=0x0;const _0x17982a=_0x709c2[_0x3dc090(0x95)](getCurrentVersion);console[_0x3dc090(0xc5)](_0x709c2['kYZuI']);try{const _0x478a81=await _0x709c2[_0x3dc090(0xc3)](installSkill,_0x709c2[_0x3dc090(0xaf)],{'cliVersion':_0x17982a,'level':_0x164bc7,'platform':_0x2de668});_0x478a81&&_0x57ddce++;}catch(_0x4b5f51){console['warn']('\x20\x20Failed\x20to\x20install\x20ranger\x20skill:',_0x709c2['zBGso'](_0x4b5f51,Error)?_0x4b5f51['message']:_0x4b5f51);}if(_0x709c2[_0x3dc090(0xc4)](_0x57ddce,0x0)){const _0x2880ad=_0x709c2['sgJri'](_0x164bc7,_0x709c2['PacuF'])?_0x709c2[_0x3dc090(0xb4)]:'project-level';console[_0x3dc090(0xc5)]('\x0a✅\x20Installed\x20'+_0x57ddce+'\x20'+_0x2880ad+_0x3dc090(0x9b)+(_0x709c2['WBbqc'](_0x57ddce,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x36fdc4[_0x3dc090(0xba)]&&(console[_0x3dc090(0xc5)](_0x3dc090(0xb0)),_0x2de668==='opencode'?console[_0x3dc090(0xc5)](_0x709c2[_0x3dc090(0xa5)]):console[_0x3dc090(0xc5)](_0x709c2[_0x3dc090(0xa3)]));}else console['log']('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}
@@ -1 +1 @@
1
- const _0x43e1a5=_0x3bb9;(function(_0x571637,_0x41c3a3){const _0x17a405=_0x3bb9,_0x576f71=_0x571637();while(!![]){try{const _0x4868a3=-parseInt(_0x17a405(0x112))/0x1*(-parseInt(_0x17a405(0xbe))/0x2)+-parseInt(_0x17a405(0xcf))/0x3+parseInt(_0x17a405(0xe7))/0x4+parseInt(_0x17a405(0xd0))/0x5+-parseInt(_0x17a405(0xf4))/0x6+-parseInt(_0x17a405(0x116))/0x7+parseInt(_0x17a405(0xd7))/0x8*(-parseInt(_0x17a405(0x12c))/0x9);if(_0x4868a3===_0x41c3a3)break;else _0x576f71['push'](_0x576f71['shift']());}catch(_0x3467c4){_0x576f71['push'](_0x576f71['shift']());}}}(_0x4623,0xc04ae));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x43b0b3 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';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2',bold=_0x1b7cc9=>_0x43e1a5(0xb9)+_0x1b7cc9+'\x1b[0m';function getPlaywrightVersion(){const _0x53522e=_0x43e1a5,_0x3c0ca3={'RUWsq':_0x53522e(0xe0)};try{const _0x2dba21=require[_0x53522e(0x11b)](_0x3c0ca3[_0x53522e(0xee)]),_0x4133c2=require(_0x2dba21);return _0x4133c2[_0x53522e(0xd8)];}catch{return null;}}function installChromiumBinary(_0x1e2729){const _0x188b7b=_0x43e1a5,_0xc64c63={'Fyljq':function(_0x80616e,_0x1dd577){return _0x80616e===_0x1dd577;},'dRFqE':function(_0x5aabf0,_0x14ff29){return _0x5aabf0(_0x14ff29);},'czfxd':'install','qMrxX':function(_0x566763,_0x231bbb,_0x2241d4,_0x500513){return _0x566763(_0x231bbb,_0x2241d4,_0x500513);},'soaVN':'inherit','BmElR':_0x188b7b(0x103),'rZVWE':_0x188b7b(0x131),'nAHwC':'error'};return new Promise((_0x2f6cd4,_0x4a6abc)=>{const _0x3ed48b=_0x188b7b,_0x4287db=['playwright@'+_0x1e2729,_0xc64c63['czfxd'],_0x3ed48b(0x118)],_0x15e7d0=_0xc64c63[_0x3ed48b(0x12f)](spawn,_0x3ed48b(0x120),_0x4287db,{'stdio':_0xc64c63['soaVN'],'shell':process['platform']===_0xc64c63[_0x3ed48b(0xfb)]});_0x15e7d0['on'](_0xc64c63['rZVWE'],_0x4dd8e6=>{const _0x44e5e4=_0x3ed48b;_0xc64c63[_0x44e5e4(0xff)](_0x4dd8e6,0x0)?_0x2f6cd4():_0x4a6abc(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x4dd8e6));}),_0x15e7d0['on'](_0xc64c63['nAHwC'],_0x22a8c8=>{_0xc64c63['dRFqE'](_0x4a6abc,_0x22a8c8);});});}export async function authenticate(_0x1cfabf){const _0x487118=_0x43e1a5,_0x863534={'xWXLi':function(_0x72b6e){return _0x72b6e();},'NTjhP':function(_0x3743d6,_0x5f50ea){return _0x3743d6(_0x5f50ea);},'HaZOb':_0x487118(0xfd),'eHugv':function(_0x45cacf,_0xb6f438){return _0x45cacf instanceof _0xb6f438;},'fMewH':_0x487118(0x123),'jwoBv':_0x487118(0xbb)};if(!_0x1cfabf){const _0x530a3f=await _0x863534[_0x487118(0xd5)](getToken);if(_0x530a3f){const _0x389f11=await _0x863534[_0x487118(0xf2)](getCurrentUser,_0x530a3f);if(_0x389f11['success'])return console[_0x487118(0xd9)](_0x487118(0xea)+_0x389f11[_0x487118(0xf8)][_0x487118(0x114)]),{'token':_0x530a3f,'method':_0x863534['HaZOb']};}try{_0x1cfabf=await _0x863534[_0x487118(0xd5)](runDeviceAuthFlow);}catch(_0x1296f2){throw new Error(_0x487118(0x11a)+(_0x863534[_0x487118(0xf6)](_0x1296f2,Error)?_0x1296f2[_0x487118(0xfc)]:_0x1296f2));}const _0x50e4f2=await getCurrentUser(_0x1cfabf);if(!_0x50e4f2['success'])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x50e4f2['error']);return console[_0x487118(0xd9)]('✓\x20Authenticated\x20to\x20'+_0x50e4f2[_0x487118(0xf8)]['organizationName']),{'token':_0x1cfabf,'method':_0x863534['fMewH']};}console[_0x487118(0xd9)](_0x863534['jwoBv']);const _0x13d6af=await getCurrentUser(_0x1cfabf);if(!_0x13d6af[_0x487118(0x111)]){if(_0x13d6af[_0x487118(0x100)])throw new Error('Authentication\x20failed:\x20'+_0x13d6af['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error(_0x487118(0x110)+_0x13d6af[_0x487118(0x121)]+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x487118(0xd9)]('✓\x20Authenticated\x20to\x20'+_0x13d6af[_0x487118(0xf8)][_0x487118(0x114)]),await storeToken(_0x1cfabf),console['log'](process['env'][_0x487118(0xda)]?_0x487118(0xd1):'✓\x20Stored\x20credentials\x20locally'),{'token':_0x1cfabf,'method':'provided_token'};}export async function ensureRangerDir(){const _0x120789=_0x43e1a5,_0xa4e9a7={'nJmYu':'.ranger','JMgXo':function(_0x28fee3){return _0x28fee3();},'mwiOd':function(_0x549782,_0x53df5f){return _0x549782(_0x53df5f);},'IjsHE':function(_0x32c1fb,_0x406fbb,_0x4c1826){return _0x32c1fb(_0x406fbb,_0x4c1826);},'anyrB':'✓\x20Created\x20.ranger/\x20directory'},_0x35c24f=findGitRoot(),_0x234c8d=_0x35c24f?join(_0x35c24f,_0xa4e9a7[_0x120789(0xb6)]):_0xa4e9a7[_0x120789(0x10f)](getRangerDir);return!_0xa4e9a7['mwiOd'](existsSync,_0x234c8d)?(await _0xa4e9a7['IjsHE'](mkdir,_0x234c8d,{'recursive':!![]}),console['log'](_0xa4e9a7[_0x120789(0xe4)]),{'path':_0x234c8d,'installed':!![]}):(console['log']('✓\x20.ranger/\x20directory\x20already\x20exists'),{'path':_0x234c8d,'installed':![]});}export async function ensureChromium(){const _0x515731=_0x43e1a5,_0x413c41={'EYZTa':function(_0x4b1ccd,_0x47e8b9){return _0x4b1ccd(_0x47e8b9);},'uBOoP':function(_0x239888){return _0x239888();},'mjKAB':function(_0xdb3b6,_0x15c7f3){return _0xdb3b6??_0x15c7f3;},'pUQZU':'confirm','EJnfT':'\x20(fallback\x20version)','UjeLL':_0x515731(0xeb),'DZBok':_0x515731(0x125),'bPExU':'\x0a❌\x20Failed\x20to\x20install\x20Chromium:','ITlhq':_0x515731(0xed)};let _0x5d73b5=![];try{const _0x3dfedc=chromium['executablePath']();_0x5d73b5=_0x413c41['EYZTa'](existsSync,_0x3dfedc);}catch{_0x5d73b5=![];}if(_0x5d73b5)return console[_0x515731(0xd9)](_0x515731(0x119)),![];const _0x4aa909=_0x413c41[_0x515731(0xe5)](getPlaywrightVersion),_0x44431f=_0x413c41['mjKAB'](_0x4aa909,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x473e4d=!_0x4aa909,_0x539b7b=process[_0x515731(0xc1)][_0x515731(0x104)]&&process[_0x515731(0xd4)]['isTTY'];let _0x5c7d02=!![];if(_0x539b7b){const {install:_0xc14d4b}=await _0x43b0b3['prompt']([{'type':_0x413c41['pUQZU'],'name':_0x515731(0xc2),'message':_0x473e4d?_0x515731(0xe9)+_0x44431f+_0x515731(0xf7):_0x515731(0xdb)+_0x44431f+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x5c7d02=_0xc14d4b;}else console['log']('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20'+_0x44431f+(_0x473e4d?_0x413c41[_0x515731(0x11c)]:'')+'...');if(_0x5c7d02){console['log'](_0x413c41['UjeLL']);try{await _0x413c41['EYZTa'](installChromiumBinary,_0x44431f),console[_0x515731(0xd9)](_0x413c41['DZBok']);}catch(_0x2851b0){console['error'](_0x413c41[_0x515731(0xf3)],_0x2851b0 instanceof Error?_0x2851b0[_0x515731(0xfc)]:_0x2851b0),console[_0x515731(0xd9)]('You\x20can\x20install\x20it\x20manually\x20by\x20running:'),console[_0x515731(0xd9)](_0x515731(0xe2)+_0x44431f+_0x515731(0xbc));}}else console[_0x515731(0xd9)](_0x413c41[_0x515731(0xc9)]),console['log']('You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'),console['log'](_0x515731(0xe2)+_0x44431f+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x44feaa){const _0xcc6f3d=_0x43e1a5,_0x14d995={'HgByK':function(_0x9de644,_0x571eaf,_0xa1396){return _0x9de644(_0x571eaf,_0xa1396);},'tqHcN':'✓\x20Created\x20.ranger/.gitignore'},_0xf90088=_0x14d995[_0xcc6f3d(0x12b)](join,_0x44feaa,_0xcc6f3d(0xc8)),_0x31b531='\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(_0xf90088,_0x31b531),console[_0xcc6f3d(0xd9)](_0x14d995['tqHcN']);}function _0x4623(){const _0x542372=['allowInsecureLocalhost','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','playwright/package.json','VLEjd','\x20\x20npx\x20playwright@','scope','anyrB','uBOoP','znWnc','3478536ssKNAp','KXMsh','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','✓\x20Already\x20authenticated\x20to\x20','\x0aInstalling\x20Chromium\x20browser...\x0a','mrDDZ','\x0a⚠\x20Skipping\x20Chromium\x20installation.','RUWsq','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','plugin','ZbyiI','NTjhP','bPExU','2115396btrTcv','RFjON','eHugv','\x20now?','user','DZmLG','nYGXH','BmElR','message','existing_token','skills','Fyljq','status','skipChromium','confirm','win32','isTTY','\x0a🚀\x20Ranger\x20Setup\x0a','git_check','PJOUO','trackPhaseEnd','rsVuC','auth','CXmNZ','use\x20until\x20the\x20session\x20expires.\x0a','/ranger:enable','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','JMgXo','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','success','353yOjTAw','ready','organizationName','KsvOd','9215535LkuzPj','FkIEA','chromium','✓\x20Playwright\x20Chromium\x20browser\x20found','Authentication\x20failed:\x20','resolve','EJnfT','ranger','and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','local','npx','error','kMzYc','device_auth','WlHuY','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','nAEoZ','skipped','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','ASaEC','VNNWT','HgByK','27tcycTj','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','url','qMrxX','pPQOu','close','nJmYu','force','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','\x1b[1m','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','Validating\x20API\x20token...','\x20install\x20chromium','SQvSI','8266KzhNxt','ranger\x20profile\x20add\x20local','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','stdin','install','trackPhaseError','OYsEu','MxDzl','No\x20git\x20repository\x20found','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','.gitignore','ITlhq','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','dlpQv','opencode','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','vhznV','2132718KCJgVm','5026225cYvcCT','✓\x20Exported\x20credentials\x20for\x20CI','\x20and\x20prompt\x20the\x20coding','\x0aIn\x20Claude\x20Code,\x20run\x20','stdout','xWXLi','trackPhaseStart','443256MtREUg','version','log','GITHUB_ENV','The\x20required\x20version\x20(','OoHLj'];_0x4623=function(){return _0x542372;};return _0x4623();}function printProfileSetupLaterInstructions(){const _0x19195e=_0x43e1a5,_0x36d6a2={'MxDzl':function(_0x1f8088,_0x1205c2){return _0x1f8088(_0x1205c2);},'WlHuY':_0x19195e(0xc0)};console['log']('\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:'),console[_0x19195e(0xd9)]('\x20\x20'+_0x36d6a2[_0x19195e(0xc5)](bold,_0x19195e(0xbf))),console[_0x19195e(0xd9)](_0x36d6a2[_0x19195e(0x124)]);}function _0x3bb9(_0x2f5d9d,_0x4148f7){_0x2f5d9d=_0x2f5d9d-0xb6;const _0x4623de=_0x4623();let _0x3bb9ef=_0x4623de[_0x2f5d9d];return _0x3bb9ef;}async function ensureLocalEnv(_0x39e1bd,_0x2d5bee){const _0x1f1555=_0x43e1a5,_0x268e27={'VLEjd':function(_0x2b9e98){return _0x2b9e98();},'wPLTw':'⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','lRGGE':'local','mrDDZ':'to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','TASqF':_0x1f1555(0x10c),'IQcaQ':_0x1f1555(0x128),'ZbyiI':_0x1f1555(0x102),'nYGXH':_0x1f1555(0xcd),'MOizg':function(_0x3fb17e,_0x1fdd6d,_0x1002d7,_0x5737e2){return _0x3fb17e(_0x1fdd6d,_0x1002d7,_0x5737e2);},'zSBky':'\x0a❌\x20Profile\x20setup\x20failed:','pPQOu':function(_0x281cd6,_0x11b99f){return _0x281cd6 instanceof _0x11b99f;}};if(!_0x268e27[_0x1f1555(0xe1)](findGitRoot))return console['log'](_0x268e27['wPLTw']),{'ready':![],'skipped':!![]};if(findExistingEnv(_0x268e27['lRGGE'],{'locations':[_0x1f1555(0x11f)]}))return console['log']('✓\x20Local\x20profile\x20already\x20exists'),{'ready':!![],'skipped':![]};const _0x654a1b=process[_0x1f1555(0xc1)]['isTTY']&&process[_0x1f1555(0xd4)][_0x1f1555(0x104)];if(_0x654a1b&&!_0x39e1bd?.['url']){console['log'](_0x1f1555(0x12d)),console['log'](_0x268e27[_0x1f1555(0xec)]),console[_0x1f1555(0xd9)]('auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'),console['log'](_0x268e27['TASqF']),console['log'](_0x268e27['IQcaQ']);const {wantsProfile:_0xd5fed9}=await _0x43b0b3['prompt']([{'type':_0x268e27[_0x1f1555(0xf1)],'name':'wantsProfile','message':_0x268e27[_0x1f1555(0xfa)],'default':!![]}]);if(!_0xd5fed9)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await _0x268e27['MOizg'](addEnv,_0x268e27['lRGGE'],{'url':_0x39e1bd?.['url'],'force':_0x39e1bd?.[_0x1f1555(0xb7)],'allowInsecureLocalhost':_0x39e1bd?.[_0x1f1555(0xdd)]},_0x2d5bee),{'ready':!![],'skipped':![]};}catch(_0x2f40b8){return console['error'](_0x268e27['zSBky'],_0x268e27[_0x1f1555(0x130)](_0x2f40b8,Error)?_0x2f40b8['message']:_0x2f40b8),printProfileSetupLaterInstructions(),{'ready':![],'skipped':![]};}}export async function start(_0x396405,_0x5ca3f2,_0x33dee2){const _0xdfd664=_0x43e1a5,_0x18c922={'znWnc':_0xdfd664(0xc7),'LxYwF':_0xdfd664(0xf8),'fLdwv':'git_check','KXMsh':function(_0x10f066){return _0x10f066();},'nAEoZ':_0xdfd664(0xc6),'tpzmM':_0xdfd664(0x10a),'XupYy':function(_0x2ff9ee,_0x315cd7){return _0x2ff9ee(_0x315cd7);},'OoHLj':_0xdfd664(0x118),'dlpQv':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','KsvOd':_0xdfd664(0xde),'VNNWT':_0xdfd664(0xf0),'RFjON':function(_0x5c62d1,_0x19c542){return _0x5c62d1(_0x19c542);},'kMzYc':function(_0x13528a,_0x3ef3d8){return _0x13528a&&_0x3ef3d8;},'SQvSI':_0xdfd664(0xfe),'FkIEA':function(_0x281b11){return _0x281b11();},'OYsEu':'opencode','vBHLr':_0xdfd664(0xef),'xUqpD':function(_0x30c00b,_0x4e3442){return _0x30c00b instanceof _0x4e3442;},'KnYTY':_0xdfd664(0xdf),'vhznV':_0xdfd664(0xbf),'ASaEC':'profile','DZmLG':function(_0xc8f6c7,_0x4c0dcd,_0x31d8f9){return _0xc8f6c7(_0x4c0dcd,_0x31d8f9);},'CXmNZ':_0xdfd664(0xca),'rsVuC':'verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','qCqNp':function(_0x1c07bf,_0x2bdc5b){return _0x1c07bf(_0x2bdc5b);},'PJOUO':_0xdfd664(0x10d),'JhnAP':function(_0x3b56f4,_0x2b6151){return _0x3b56f4+_0x2b6151;}};console[_0xdfd664(0xd9)](_0xdfd664(0x105));const _0x591b42=process['stdin'][_0xdfd664(0x104)]&&process[_0xdfd664(0xd4)]['isTTY'];!_0x591b42&&!_0x5ca3f2?.[_0xdfd664(0xe3)]&&(console['log'](_0x18c922[_0xdfd664(0xe6)]),_0x5ca3f2={..._0x5ca3f2,'scope':_0x18c922['LxYwF']});_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922['fLdwv']);if(!_0x18c922[_0xdfd664(0xe8)](findGitRoot)){await _0x33dee2?.[_0xdfd664(0xc3)](_0xdfd664(0x106),new Error(_0x18c922[_0xdfd664(0x126)]));throw new Error('No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.');}_0x33dee2?.[_0xdfd664(0x108)](_0x18c922['fLdwv']);const _0x28dade=!existsSync(getRangerDir()),{path:_0x36970}=await ensureRangerDir();_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922['tpzmM']);const _0x2a85a0=await _0x18c922['XupYy'](authenticate,_0x396405);_0x33dee2?.[_0xdfd664(0x108)]('auth',{'isFirstRun':_0x28dade,'method':_0x2a85a0['method']}),_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922[_0xdfd664(0xdc)]);_0x5ca3f2?.['skipChromium']?console[_0xdfd664(0xd9)](_0x18c922[_0xdfd664(0xcb)]):await ensureChromium();_0x33dee2?.['trackPhaseEnd'](_0x18c922[_0xdfd664(0xdc)],{'isFirstRun':_0x28dade,'skipped':!!_0x5ca3f2?.[_0xdfd664(0x101)]}),await writeRangerGitignore(_0x36970),console[_0xdfd664(0xd9)](_0x18c922[_0xdfd664(0x115)]);const _0x5cb3a8=_0x5ca3f2?.[_0xdfd664(0xe3)],_0x2bdd36=_0x5ca3f2?.[_0xdfd664(0xcc)]??![];let _0x57cddc=null;_0x2bdd36?(_0x33dee2?.[_0xdfd664(0xd6)]('plugin'),_0x57cddc=await _0x18c922['XupYy'](ensureOpencodePluginConfig,_0x5cb3a8),_0x33dee2?.[_0xdfd664(0x108)](_0x18c922[_0xdfd664(0x12a)],{'isFirstRun':_0x28dade,'opencode':!![]})):(_0x33dee2?.['trackPhaseStart'](_0xdfd664(0xf0)),await _0x18c922['RFjON'](ensureClaudePlugin,_0x5cb3a8),_0x33dee2?.['trackPhaseEnd']('plugin',{'isFirstRun':_0x28dade}));if(_0x18c922[_0xdfd664(0x122)](_0x2bdd36,_0x57cddc)){_0x33dee2?.['trackPhaseStart'](_0x18c922[_0xdfd664(0xbd)]);try{await installSkill(_0xdfd664(0x11d),{'level':_0x57cddc['scope'],'cliVersion':_0x18c922[_0xdfd664(0x117)](getCurrentVersion),'platform':_0x18c922[_0xdfd664(0xc4)]}),_0x33dee2?.['trackPhaseEnd'](_0xdfd664(0xfe),{'isFirstRun':_0x28dade,'opencode':!![]});}catch(_0x25fb06){console['warn'](_0x18c922['vBHLr'],_0x18c922['xUqpD'](_0x25fb06,Error)?_0x25fb06[_0xdfd664(0xfc)]:_0x25fb06),_0x33dee2?.['trackPhaseEnd']('skills',{'isFirstRun':_0x28dade,'opencode':!![],'failed':!![]});}}else _0x33dee2?.['trackPhaseStart']('skills'),await ensureClaudeSkills(_0x5cb3a8),_0x33dee2?.[_0xdfd664(0x108)](_0x18c922[_0xdfd664(0xbd)],{'isFirstRun':_0x28dade});if(!_0x591b42&&!_0x5ca3f2?.[_0xdfd664(0x12e)])console['log'](_0x18c922['KnYTY']),console['log']('\x20\x20'+_0x18c922[_0xdfd664(0xf5)](bold,_0x18c922[_0xdfd664(0xce)])+'\x0a');else{_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922[_0xdfd664(0x129)]);const _0x496ab5=await _0x18c922[_0xdfd664(0xf9)](ensureLocalEnv,{'url':_0x5ca3f2?.['url'],'force':_0x5ca3f2?.[_0xdfd664(0xb7)],'allowInsecureLocalhost':_0x5ca3f2?.[_0xdfd664(0xdd)]},_0x33dee2);_0x33dee2?.['trackPhaseEnd'](_0x18c922['ASaEC'],{'isFirstRun':_0x28dade,'profileReady':_0x496ab5[_0xdfd664(0x113)],'userSkipped':_0x496ab5[_0xdfd664(0x127)]}),_0x496ab5[_0xdfd664(0x113)]&&console['log']('\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.');}if(_0x2bdd36)console['log'](_0x18c922[_0xdfd664(0x10b)]),console['log'](_0xdfd664(0x11e)),console['log'](_0xdfd664(0xba)),console['log'](_0x18c922[_0xdfd664(0x109)]);else{const _0x381514=_0x18c922['qCqNp'](bold,_0x18c922[_0xdfd664(0x107)]);console['log'](_0x18c922['JhnAP'](_0xdfd664(0xd3)+_0x381514+_0xdfd664(0xd2)+'\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with',_0xdfd664(0x10e))+_0xdfd664(0xb8));}}
1
+ const _0x44909b=_0x4cce;(function(_0xc27a34,_0x21fa4e){const _0xcb8e9f=_0x4cce,_0x36ea63=_0xc27a34();while(!![]){try{const _0x489b18=-parseInt(_0xcb8e9f(0x1c6))/0x1*(parseInt(_0xcb8e9f(0x1f5))/0x2)+parseInt(_0xcb8e9f(0x1ef))/0x3*(-parseInt(_0xcb8e9f(0x1ea))/0x4)+parseInt(_0xcb8e9f(0x1cc))/0x5+parseInt(_0xcb8e9f(0x1b1))/0x6*(parseInt(_0xcb8e9f(0x18a))/0x7)+parseInt(_0xcb8e9f(0x1bf))/0x8+parseInt(_0xcb8e9f(0x190))/0x9*(-parseInt(_0xcb8e9f(0x1db))/0xa)+parseInt(_0xcb8e9f(0x18b))/0xb;if(_0x489b18===_0x21fa4e)break;else _0x36ea63['push'](_0x36ea63['shift']());}catch(_0x805925){_0x36ea63['push'](_0x36ea63['shift']());}}}(_0x31c8,0x3de86));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x5f400d from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';function _0x4cce(_0x34df48,_0x1dde98){_0x34df48=_0x34df48-0x187;const _0x31c866=_0x31c8();let _0x4cce1b=_0x31c866[_0x34df48];return _0x4cce1b;}import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';function _0x31c8(){const _0xb464af=['\x0a❌\x20Failed\x20to\x20install\x20Chromium:','huzqu','rsLKv','hNhJV','force','74548rbHNYE','sftJH','auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to','✓\x20Local\x20profile\x20already\x20exists','stdin','isTTY','258665XhASmb','log','qUuqR','\x20\x20npx\x20playwright@',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','UmizG','close','✓\x20.ranger/\x20directory\x20already\x20exists','RkYiy','LSzXI','use\x20until\x20the\x20session\x20expires.\x0a','...','status','git_check','provided_token','940UIfTDA','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','GEcmQ','scope','\x0a❌\x20Profile\x20setup\x20failed:','user','\x1b[1m','env','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','trackPhaseEnd','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','ZHold','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','781988ABcAGR','to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','error','chromium','ranger\x20profile\x20add\x20local','6eejeCh','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','url','.gitignore','existing_token','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','2eaKgaB','jPAiV','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','platform','10164exJADT','10358073XrYrpc','cHyYz','message','\x20(fallback\x20version)','plugin','39051rrdSTh','organizationName','✓\x20Created\x20.ranger/\x20directory','zvRZb','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','FCXcM','MdXTS','\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','skipped','eXyVN','bfjqy','BGSHY','jZNBq','\x1b[0m','\x0a⚠\x20Skipping\x20Chromium\x20installation.','ready','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','lLpUI','iQdUx','Ntwih','prompt','.ranger','Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','method','ZXRTD','local','VpbeY','success','jsCwm','skills','366tDPOKL','✓\x20Authenticated\x20to\x20','✓\x20Playwright\x20Chromium\x20browser\x20found','MTeBV','confirm','GWcfc','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','rXBBl','executablePath','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','trackPhaseStart','inherit','OVapL','opencode','360272bFuBKr','VhzdW'];_0x31c8=function(){return _0xb464af;};return _0x31c8();}const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2',bold=_0x47d6a2=>_0x44909b(0x1e2)+_0x47d6a2+_0x44909b(0x19f);function getPlaywrightVersion(){const _0x263342={'PeYKJ':'playwright/package.json','mIlQc':function(_0xdb3f6a,_0x1503ed){return _0xdb3f6a(_0x1503ed);}};try{const _0x476289=require['resolve'](_0x263342['PeYKJ']),_0x25b9f7=_0x263342['mIlQc'](require,_0x476289);return _0x25b9f7['version'];}catch{return null;}}function installChromiumBinary(_0x353d5d){const _0x829b9b=_0x44909b,_0x22b7f9={'zvRZb':function(_0xd9b539){return _0xd9b539();},'hiryE':function(_0x54d5ba,_0x58be49){return _0x54d5ba(_0x58be49);},'ooSiG':'install','fPRis':'npx','UmizG':_0x829b9b(0x1bc),'Ntwih':function(_0x3f91a4,_0x25088c){return _0x3f91a4===_0x25088c;},'UaWPk':_0x829b9b(0x1d2),'jLtuL':'error'};return new Promise((_0x1d0dba,_0x4407e3)=>{const _0x8f8819=_0x829b9b,_0x59f15a=['playwright@'+_0x353d5d,_0x22b7f9['ooSiG'],'chromium'],_0x4aa54f=spawn(_0x22b7f9['fPRis'],_0x59f15a,{'stdio':_0x22b7f9[_0x8f8819(0x1d1)],'shell':_0x22b7f9[_0x8f8819(0x1a5)](process[_0x8f8819(0x189)],'win32')});_0x4aa54f['on'](_0x22b7f9['UaWPk'],_0x119a7e=>{const _0x4dbe72=_0x8f8819;_0x119a7e===0x0?_0x22b7f9[_0x4dbe72(0x193)](_0x1d0dba):_0x4407e3(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x119a7e));}),_0x4aa54f['on'](_0x22b7f9['jLtuL'],_0x1766fa=>{_0x22b7f9['hiryE'](_0x4407e3,_0x1766fa);});});}export async function authenticate(_0x60587c){const _0x3f6317=_0x44909b,_0x2f4df3={'MTeBV':function(_0x24c56f){return _0x24c56f();},'VpbeY':function(_0x4be8d2,_0x558059){return _0x4be8d2(_0x558059);},'jsCwm':_0x3f6317(0x1f3),'lqdmG':'device_auth','xcsds':'✓\x20Exported\x20credentials\x20for\x20CI','XHsfx':'✓\x20Stored\x20credentials\x20locally','bfjqy':_0x3f6317(0x1da)};if(!_0x60587c){const _0x4ef91d=await _0x2f4df3[_0x3f6317(0x1b4)](getToken);if(_0x4ef91d){const _0x452661=await _0x2f4df3[_0x3f6317(0x1ad)](getCurrentUser,_0x4ef91d);if(_0x452661[_0x3f6317(0x1ae)])return console['log']('✓\x20Already\x20authenticated\x20to\x20'+_0x452661[_0x3f6317(0x1e1)]['organizationName']),{'token':_0x4ef91d,'method':_0x2f4df3[_0x3f6317(0x1af)]};}try{_0x60587c=await runDeviceAuthFlow();}catch(_0x3043bf){throw new Error('Authentication\x20failed:\x20'+(_0x3043bf instanceof Error?_0x3043bf['message']:_0x3043bf));}const _0xe7636c=await _0x2f4df3['VpbeY'](getCurrentUser,_0x60587c);if(!_0xe7636c['success'])throw new Error(_0x3f6317(0x195)+_0xe7636c[_0x3f6317(0x1ec)]);return console[_0x3f6317(0x1cd)](_0x3f6317(0x1b2)+_0xe7636c[_0x3f6317(0x1e1)]['organizationName']),{'token':_0x60587c,'method':_0x2f4df3['lqdmG']};}console[_0x3f6317(0x1cd)]('Validating\x20API\x20token...');const _0x3d213b=await getCurrentUser(_0x60587c);if(!_0x3d213b[_0x3f6317(0x1ae)]){if(_0x3d213b[_0x3f6317(0x1d8)])throw new Error('Authentication\x20failed:\x20'+_0x3d213b[_0x3f6317(0x1ec)]+_0x3f6317(0x196));else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x3d213b['error']+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x3f6317(0x1cd)]('✓\x20Authenticated\x20to\x20'+_0x3d213b[_0x3f6317(0x1e1)][_0x3f6317(0x191)]),await storeToken(_0x60587c),console[_0x3f6317(0x1cd)](process[_0x3f6317(0x1e3)]['GITHUB_ENV']?_0x2f4df3['xcsds']:_0x2f4df3['XHsfx']),{'token':_0x60587c,'method':_0x2f4df3[_0x3f6317(0x19c)]};}export async function ensureRangerDir(){const _0x1bb0a6=_0x44909b,_0x23a9fb={'eXyVN':function(_0x22348c){return _0x22348c();},'jZNBq':function(_0x4a3fd2,_0x556f2d,_0x2a12db){return _0x4a3fd2(_0x556f2d,_0x2a12db);},'sftJH':_0x1bb0a6(0x1a7),'FCXcM':_0x1bb0a6(0x192)},_0x91bb82=_0x23a9fb[_0x1bb0a6(0x19b)](findGitRoot),_0x89dbc6=_0x91bb82?_0x23a9fb['jZNBq'](join,_0x91bb82,_0x23a9fb[_0x1bb0a6(0x1c7)]):_0x23a9fb['eXyVN'](getRangerDir);return!existsSync(_0x89dbc6)?(await _0x23a9fb[_0x1bb0a6(0x19e)](mkdir,_0x89dbc6,{'recursive':!![]}),console['log'](_0x23a9fb[_0x1bb0a6(0x197)]),{'path':_0x89dbc6,'installed':!![]}):(console[_0x1bb0a6(0x1cd)](_0x1bb0a6(0x1d3)),{'path':_0x89dbc6,'installed':![]});}export async function ensureChromium(){const _0x5c10f6=_0x44909b,_0x4d21b7={'qUuqR':function(_0x5a9b0c,_0x1e9867){return _0x5a9b0c(_0x1e9867);},'lLpUI':function(_0x189f52){return _0x189f52();},'GWcfc':_0x5c10f6(0x1b5),'uWTOG':'install','BGSHY':_0x5c10f6(0x18e),'cHyYz':'\x0aInstalling\x20Chromium\x20browser...\x0a','hNhJV':_0x5c10f6(0x1c1)};let _0x337c38=![];try{const _0x389092=chromium[_0x5c10f6(0x1b9)]();_0x337c38=_0x4d21b7[_0x5c10f6(0x1ce)](existsSync,_0x389092);}catch{_0x337c38=![];}if(_0x337c38)return console[_0x5c10f6(0x1cd)](_0x5c10f6(0x1b3)),![];const _0x2036a1=_0x4d21b7[_0x5c10f6(0x1a3)](getPlaywrightVersion),_0x25e72c=_0x2036a1??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0x40db91=!_0x2036a1,_0x44acb6=process[_0x5c10f6(0x1ca)]['isTTY']&&process['stdout']['isTTY'];let _0x289390=!![];if(_0x44acb6){const {install:_0x62706d}=await _0x5f400d['prompt']([{'type':_0x4d21b7[_0x5c10f6(0x1b6)],'name':_0x4d21b7['uWTOG'],'message':_0x40db91?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x25e72c+'\x20now?':'The\x20required\x20version\x20('+_0x25e72c+_0x5c10f6(0x1d0),'default':!![]}]);_0x289390=_0x62706d;}else console[_0x5c10f6(0x1cd)](_0x5c10f6(0x1e4)+_0x25e72c+(_0x40db91?_0x4d21b7[_0x5c10f6(0x19d)]:'')+_0x5c10f6(0x1d7));if(_0x289390){console[_0x5c10f6(0x1cd)](_0x4d21b7[_0x5c10f6(0x18c)]);try{await installChromiumBinary(_0x25e72c),console[_0x5c10f6(0x1cd)](_0x5c10f6(0x1a2));}catch(_0x2b341e){console[_0x5c10f6(0x1ec)](_0x4d21b7[_0x5c10f6(0x1c4)],_0x2b341e instanceof Error?_0x2b341e[_0x5c10f6(0x18d)]:_0x2b341e),console[_0x5c10f6(0x1cd)]('You\x20can\x20install\x20it\x20manually\x20by\x20running:'),console['log'](_0x5c10f6(0x1cf)+_0x25e72c+'\x20install\x20chromium');}}else console['log'](_0x5c10f6(0x1a0)),console['log'](_0x5c10f6(0x1ba)),console['log'](_0x5c10f6(0x1cf)+_0x25e72c+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x3b0abc){const _0x598ef2=_0x44909b,_0x2b06ad={'vRLKi':'✓\x20Created\x20.ranger/.gitignore'},_0x2ad9bd=join(_0x3b0abc,_0x598ef2(0x1f2)),_0x534bae=_0x598ef2(0x199);await writeFile(_0x2ad9bd,_0x534bae),console['log'](_0x2b06ad['vRLKi']);}function printProfileSetupLaterInstructions(){const _0x26ef6c=_0x44909b,_0xa9627c={'deTey':'\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','mrVCx':function(_0x103f20,_0x496d42){return _0x103f20(_0x496d42);},'ptVQd':_0x26ef6c(0x1ee)};console[_0x26ef6c(0x1cd)](_0xa9627c['deTey']),console[_0x26ef6c(0x1cd)]('\x20\x20'+_0xa9627c['mrVCx'](bold,_0xa9627c['ptVQd'])),console['log'](_0x26ef6c(0x1f0));}async function ensureLocalEnv(_0x48416a,_0x4373ce){const _0xa2127d=_0x44909b,_0xb1cfb7={'yfRoW':_0xa2127d(0x1c9),'huzqu':_0xa2127d(0x1e9),'MdXTS':_0xa2127d(0x1c8),'VKbgE':'wantsProfile','AeykM':function(_0x546d70){return _0x546d70();},'QCPkU':function(_0x4fc3aa,_0x4e5b22){return _0x4fc3aa instanceof _0x4e5b22;},'yzplN':function(_0x4871b5){return _0x4871b5();}};if(!findGitRoot())return console['log']('⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.'),{'ready':![],'skipped':!![]};if(findExistingEnv(_0xa2127d(0x1ac),{'locations':[_0xa2127d(0x1ac)]}))return console[_0xa2127d(0x1cd)](_0xb1cfb7['yfRoW']),{'ready':!![],'skipped':![]};const _0x196c47=process['stdin'][_0xa2127d(0x1cb)]&&process['stdout'][_0xa2127d(0x1cb)];if(_0x196c47&&!_0x48416a?.['url']){console['log'](_0xb1cfb7[_0xa2127d(0x1c2)]),console[_0xa2127d(0x1cd)](_0xa2127d(0x1eb)),console[_0xa2127d(0x1cd)](_0xb1cfb7[_0xa2127d(0x198)]),console[_0xa2127d(0x1cd)](_0xa2127d(0x1d6)),console['log'](_0xa2127d(0x1dd));const {wantsProfile:_0x214bb8}=await _0x5f400d[_0xa2127d(0x1a6)]([{'type':'confirm','name':_0xb1cfb7['VKbgE'],'message':_0xa2127d(0x194),'default':!![]}]);if(!_0x214bb8)return _0xb1cfb7['AeykM'](printProfileSetupLaterInstructions),{'ready':![],'skipped':!![]};}try{return await addEnv(_0xa2127d(0x1ac),{'url':_0x48416a?.[_0xa2127d(0x1f1)],'force':_0x48416a?.[_0xa2127d(0x1c5)],'allowInsecureLocalhost':_0x48416a?.['allowInsecureLocalhost']},_0x4373ce),{'ready':!![],'skipped':![]};}catch(_0x58f1d4){return console['error'](_0xa2127d(0x1e0),_0xb1cfb7['QCPkU'](_0x58f1d4,Error)?_0x58f1d4[_0xa2127d(0x18d)]:_0x58f1d4),_0xb1cfb7['yzplN'](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}export async function start(_0x208d94,_0x34cd67,_0xfec1f4){const _0x44c745=_0x44909b,_0x228250={'RkYiy':_0x44c745(0x1e1),'vGAoG':function(_0x2bb866){return _0x2bb866();},'wxmnB':_0x44c745(0x1d9),'GEcmQ':'No\x20git\x20repository\x20found','spQor':'No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.','rXBBl':function(_0x23e571){return _0x23e571();},'pUthC':'auth','lzakK':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','lUovr':function(_0x430024){return _0x430024();},'mGWFd':_0x44c745(0x1a9),'QrfMa':function(_0x25c25c,_0x3f525f){return _0x25c25c(_0x3f525f);},'iQdUx':function(_0x2a50a8,_0x44e1f5){return _0x2a50a8&&_0x44e1f5;},'VhzdW':'skills','OVapL':function(_0x6a7612,_0x2b85ef,_0x58b193){return _0x6a7612(_0x2b85ef,_0x58b193);},'CdRqc':'ranger','ZHold':function(_0x23fd1c){return _0x23fd1c();},'jPAiV':'opencode','jQJJK':function(_0x5ed6df,_0x1a2b6e){return _0x5ed6df(_0x1a2b6e);},'ZXRTD':_0x44c745(0x1a8),'vsFtB':'profile','LSzXI':'\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','dmCPB':_0x44c745(0x1dc),'qiYhs':'/ranger:enable','rsLKv':function(_0x3c8aa0,_0x38b113){return _0x3c8aa0+_0x38b113;},'CBMZA':function(_0x4ba534,_0x1f0a90){return _0x4ba534+_0x1f0a90;}};console[_0x44c745(0x1cd)]('\x0a🚀\x20Ranger\x20Setup\x0a');const _0x277fb0=process[_0x44c745(0x1ca)]['isTTY']&&process['stdout'][_0x44c745(0x1cb)];!_0x277fb0&&!_0x34cd67?.['scope']&&(console[_0x44c745(0x1cd)](_0x44c745(0x1e5)),_0x34cd67={..._0x34cd67,'scope':_0x228250[_0x44c745(0x1d4)]});_0xfec1f4?.[_0x44c745(0x1bb)](_0x44c745(0x1d9));if(!_0x228250['vGAoG'](findGitRoot)){await _0xfec1f4?.['trackPhaseError'](_0x228250['wxmnB'],new Error(_0x228250[_0x44c745(0x1de)]));throw new Error(_0x228250['spQor']);}_0xfec1f4?.[_0x44c745(0x1e6)](_0x228250['wxmnB']);const _0x567cb7=!existsSync(_0x228250['vGAoG'](getRangerDir)),{path:_0x3f0d4d}=await _0x228250[_0x44c745(0x1b8)](ensureRangerDir);_0xfec1f4?.[_0x44c745(0x1bb)](_0x228250['pUthC']);const _0x303121=await authenticate(_0x208d94);_0xfec1f4?.[_0x44c745(0x1e6)](_0x228250['pUthC'],{'isFirstRun':_0x567cb7,'method':_0x303121[_0x44c745(0x1aa)]}),_0xfec1f4?.[_0x44c745(0x1bb)](_0x44c745(0x1ed));_0x34cd67?.['skipChromium']?console[_0x44c745(0x1cd)](_0x228250['lzakK']):await _0x228250['lUovr'](ensureChromium);_0xfec1f4?.[_0x44c745(0x1e6)](_0x44c745(0x1ed),{'isFirstRun':_0x567cb7,'skipped':!!_0x34cd67?.['skipChromium']}),await writeRangerGitignore(_0x3f0d4d),console[_0x44c745(0x1cd)](_0x228250['mGWFd']);const _0x430340=_0x34cd67?.[_0x44c745(0x1df)],_0x8f667f=_0x34cd67?.[_0x44c745(0x1be)]??![];let _0x6be037=null;_0x8f667f?(_0xfec1f4?.['trackPhaseStart']('plugin'),_0x6be037=await ensureOpencodePluginConfig(_0x430340),_0xfec1f4?.[_0x44c745(0x1e6)](_0x44c745(0x18f),{'isFirstRun':_0x567cb7,'opencode':!![]})):(_0xfec1f4?.[_0x44c745(0x1bb)]('plugin'),await _0x228250['QrfMa'](ensureClaudePlugin,_0x430340),_0xfec1f4?.['trackPhaseEnd'](_0x44c745(0x18f),{'isFirstRun':_0x567cb7}));if(_0x228250[_0x44c745(0x1a4)](_0x8f667f,_0x6be037)){_0xfec1f4?.[_0x44c745(0x1bb)](_0x228250['VhzdW']);try{await _0x228250[_0x44c745(0x1bd)](installSkill,_0x228250['CdRqc'],{'level':_0x6be037[_0x44c745(0x1df)],'cliVersion':_0x228250[_0x44c745(0x1e8)](getCurrentVersion),'platform':_0x228250[_0x44c745(0x187)]}),_0xfec1f4?.['trackPhaseEnd']('skills',{'isFirstRun':_0x567cb7,'opencode':!![]});}catch(_0xe4ab0d){console['warn'](_0x44c745(0x1f4),_0xe4ab0d instanceof Error?_0xe4ab0d[_0x44c745(0x18d)]:_0xe4ab0d),_0xfec1f4?.['trackPhaseEnd'](_0x228250['VhzdW'],{'isFirstRun':_0x567cb7,'opencode':!![],'failed':!![]});}}else _0xfec1f4?.['trackPhaseStart'](_0x228250[_0x44c745(0x1c0)]),await _0x228250['jQJJK'](ensureClaudeSkills,_0x430340),_0xfec1f4?.['trackPhaseEnd'](_0x44c745(0x1b0),{'isFirstRun':_0x567cb7});if(!_0x277fb0&&!_0x34cd67?.[_0x44c745(0x1f1)])console[_0x44c745(0x1cd)](_0x228250[_0x44c745(0x1ab)]),console['log']('\x20\x20'+_0x228250['QrfMa'](bold,'ranger\x20profile\x20add\x20local')+'\x0a');else{_0xfec1f4?.['trackPhaseStart'](_0x228250['vsFtB']);const _0x49c7ed=await ensureLocalEnv({'url':_0x34cd67?.[_0x44c745(0x1f1)],'force':_0x34cd67?.['force'],'allowInsecureLocalhost':_0x34cd67?.['allowInsecureLocalhost']},_0xfec1f4);_0xfec1f4?.['trackPhaseEnd']('profile',{'isFirstRun':_0x567cb7,'profileReady':_0x49c7ed[_0x44c745(0x1a1)],'userSkipped':_0x49c7ed[_0x44c745(0x19a)]}),_0x49c7ed[_0x44c745(0x1a1)]&&console[_0x44c745(0x1cd)](_0x44c745(0x1e7));}if(_0x8f667f)console[_0x44c745(0x1cd)](_0x228250[_0x44c745(0x1d5)]),console['log']('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console['log'](_0x228250['dmCPB']),console[_0x44c745(0x1cd)](_0x44c745(0x188));else{const _0x1d03f0=bold(_0x228250['qiYhs']);console['log'](_0x228250[_0x44c745(0x1c3)](_0x228250['CBMZA']('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0x1d03f0+'\x20and\x20prompt\x20the\x20coding'+'\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'),_0x44c745(0x1b7)));}}
@@ -1 +1 @@
1
- const _0x3800ce=_0x1f23;(function(_0xba0034,_0x529a51){const _0x46c3c5=_0x1f23,_0x5c0103=_0xba0034();while(!![]){try{const _0x12a1d4=-parseInt(_0x46c3c5(0x171))/0x1+parseInt(_0x46c3c5(0x197))/0x2+-parseInt(_0x46c3c5(0x185))/0x3+parseInt(_0x46c3c5(0x1b3))/0x4+parseInt(_0x46c3c5(0x162))/0x5+parseInt(_0x46c3c5(0x1c3))/0x6*(-parseInt(_0x46c3c5(0x178))/0x7)+-parseInt(_0x46c3c5(0x1bb))/0x8;if(_0x12a1d4===_0x529a51)break;else _0x5c0103['push'](_0x5c0103['shift']());}catch(_0x214cd7){_0x5c0103['push'](_0x5c0103['shift']());}}}(_0xbd02,0x936cf));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';function _0x1f23(_0x1ec306,_0x299f12){_0x1ec306=_0x1ec306-0x15c;const _0xbd021c=_0xbd02();let _0x1f2394=_0xbd021c[_0x1ec306];return _0x1f2394;}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';function _0xbd02(){const _0x3be619=['API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired','debug','SATln','4096568xMqGUy','EBbuW','sKSkV','configured','map','@ranger-testing/opencode-plugin','hasPlaintextAuth','log','1263654QJyAiY','not_configured','settingsPath','some','oajog','PhcSp','ignore','4971170sSvxde','\x1b[0m','length','UPDGs','QLRiC','path','auth.json','user','kqZof','No\x20profiles\x20configured','\x20\x20\x20\x20','\x20\x20Project-level:','\x20(active)','MnJpq','API\x20URL:\x20','259905TsTbQj','trim','\x0a---\x20Claude\x20Code\x20Plugin\x20---','details','auth.json.enc','jkjqe','bbKJI','21AmqIrW','sIaYS','data','opencode-plugin','kDfUb','DfyhJ','OEEuF','includes','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','vprvO','displayName','yfVFA','close','305991MRxDhR','TbhdY','pipe','version','\x0a---\x20Profiles\x20---',':\x20installed\x20(','tWXYl','fTFzW','not_installed','Version:\x20','wNgka','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','LlrKQ','\x1b]8;;file://','isDirectory','LlqvO','none','fDbMQ','1580660XGlcGL','JejBZ','error','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','encrypted','Root:\x20','\x20(latest:\x20','enabled','\x0a\x20\x20No\x20active\x20profile\x20set','\x0a---\x20Skills\x20---','unknown','name','parse','eKhEc','qYUzg','disabled','phvlw','ranger@trailhead','wGrtY','match','jCjUO','\x20(up\x20to\x20date)','KApUf','toString','aBhRG','apEOf','isArray','\x1b[1m','1300364ZxjoAv',':\x20configured','\x20\x20Run:\x20ranger\x20setup\x20[token]','filter','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20'];_0xbd02=function(){return _0x3be619;};return _0xbd02();}import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x3aca31=>_0x3800ce(0x1b2)+_0x3aca31+_0x3800ce(0x163),link=(_0x3ca274,_0x5b479c)=>_0x3800ce(0x192)+_0x3ca274+'\x07'+(_0x5b479c||_0x3ca274)+'\x1b]8;;\x07';async function getOpencodePluginStatus(){const _0x19e26b=_0x3800ce,_0x55caac={'DfyhJ':'@ranger-testing/opencode-plugin','ySmRh':function(_0x43ddad,_0xad4298){return _0x43ddad!==_0xad4298;},'fDbMQ':function(_0x358e93,_0x100297){return _0x358e93(_0x100297);},'MnJpq':_0x19e26b(0x18d),'OjlaF':_0x19e26b(0x1be),'CpIwd':function(_0x2f0262,_0x1faede){return _0x2f0262>_0x1faede;},'OEEuF':function(_0x51afdb,_0xac0338){return _0x51afdb>_0xac0338;},'kDfUb':_0x19e26b(0x15c),'ILYwA':function(_0x3d0414,_0x53d67f,_0x12b720,_0x2a093d){return _0x3d0414(_0x53d67f,_0x12b720,_0x2a093d);},'LQJfI':_0x19e26b(0x187),'kqZof':_0x19e26b(0x17a),'BNMsB':_0x19e26b(0x199)};return new Promise(_0x4ace8c=>{const _0x2a827e=_0x19e26b,_0x1ac869=_0x55caac['ILYwA'](spawn,'opencode',[_0x2a827e(0x1b9),'config'],{'stdio':[_0x2a827e(0x161),'pipe',_0x55caac['LQJfI']]});let _0x22ba0d='';_0x1ac869['stdout']?.['on'](_0x55caac[_0x2a827e(0x16a)],_0x248ac9=>{const _0x16b3d1=_0x2a827e;_0x22ba0d+=_0x248ac9[_0x16b3d1(0x1ae)]();}),_0x1ac869['stderr']?.['on'](_0x55caac[_0x2a827e(0x16a)],_0x2b8fc1=>{const _0x480ed5=_0x2a827e;_0x22ba0d+=_0x2b8fc1[_0x480ed5(0x1ae)]();}),_0x1ac869['on'](_0x55caac['BNMsB'],()=>{const _0x38b832=_0x2a827e;_0x4ace8c({'status':_0x38b832(0x18d)});}),_0x1ac869['on'](_0x2a827e(0x184),_0x4d26d5=>{const _0x2a822e=_0x2a827e,_0x158470={'qYUzg':'string','ltQMV':_0x55caac[_0x2a822e(0x17d)]};if(_0x55caac['ySmRh'](_0x4d26d5,0x0)){_0x55caac['fDbMQ'](_0x4ace8c,{'status':_0x55caac[_0x2a822e(0x16f)]});return;}const _0x2dc0c2=_0x22ba0d[_0x2a822e(0x172)]();let _0x47de0a=null;if(_0x2dc0c2)try{_0x47de0a=JSON[_0x2a822e(0x1a3)](_0x2dc0c2);}catch{const _0x6bd870=_0x2dc0c2[_0x2a822e(0x1aa)](/\{[\s\S]*\}$/);if(_0x6bd870)try{_0x47de0a=JSON[_0x2a822e(0x1a3)](_0x6bd870[0x0]);}catch{_0x47de0a=null;}}const _0x224d59=Array[_0x2a822e(0x1b1)](_0x47de0a?.['plugin'])?_0x47de0a?.['plugin']:[],_0x268e85=_0x224d59[_0x2a822e(0x15e)](_0x30f4d6=>{const _0x3e2281=_0x2a822e;if(typeof _0x30f4d6!==_0x158470[_0x3e2281(0x1a5)])return![];return _0x30f4d6[_0x3e2281(0x17f)](_0x158470['ltQMV'])||_0x30f4d6['includes'](_0x3e2281(0x17b));});if(_0x268e85){_0x4ace8c({'status':_0x55caac['OjlaF'],'details':_0x55caac['CpIwd'](_0x224d59['length'],0x0)?_0x224d59['length']+'\x20plugin(s)\x20configured':undefined});return;}if(_0x55caac[_0x2a822e(0x17e)](_0x224d59[_0x2a822e(0x164)],0x0)){_0x4ace8c({'status':_0x55caac[_0x2a822e(0x17c)],'details':_0x224d59[_0x2a822e(0x164)]+'\x20plugin(s)\x20configured'});return;}_0x55caac[_0x2a822e(0x196)](_0x4ace8c,{'status':_0x55caac[_0x2a822e(0x17c)]});});});}async function getSkillsFromDir(_0x54b17c,_0x488f20){const _0x64e198=_0x3800ce,_0x1a9563={'apEOf':function(_0x2f68e0,_0x4a5140,_0x278ecf){return _0x2f68e0(_0x4a5140,_0x278ecf);},'cAmDk':'SKILL.md'};if(!existsSync(_0x54b17c))return[];const _0x11e111=[];try{const _0x29ddf2=await _0x1a9563[_0x64e198(0x1b0)](readdir,_0x54b17c,{'withFileTypes':!![]});for(const _0x8810fc of _0x29ddf2){if(_0x8810fc[_0x64e198(0x193)]()){const _0x136bc3=join(_0x54b17c,_0x8810fc['name'],_0x1a9563['cAmDk']);if(existsSync(_0x136bc3)){let _0x481fb1=_0x8810fc[_0x64e198(0x1a2)];try{const _0x1f0569=await _0x1a9563['apEOf'](readFile,_0x136bc3,'utf-8'),_0x37ec46=_0x1f0569['match'](/name:\s*(.+)/);_0x37ec46&&(_0x481fb1=_0x37ec46[0x1]['trim']());}catch{}_0x11e111['push']({'name':_0x8810fc[_0x64e198(0x1a2)],'displayName':_0x481fb1,'path':_0x136bc3,'level':_0x488f20});}}}}catch{return[];}return _0x11e111;}async function getInstalledSkills(){const _0x361eeb=_0x3800ce,_0x2b1620={'vprvO':function(_0x3ed072,_0xaa4b25,_0x5ec5a4){return _0x3ed072(_0xaa4b25,_0x5ec5a4);},'sIaYS':function(_0x37a2ab){return _0x37a2ab();},'EBbuW':'project','erBco':function(_0x3d4d69,_0x17f031,_0x187c08){return _0x3d4d69(_0x17f031,_0x187c08);},'wNgka':function(_0xb58300){return _0xb58300();}},[_0x2ad639,_0x23ae3c]=await Promise['all']([_0x2b1620[_0x361eeb(0x181)](getSkillsFromDir,_0x2b1620[_0x361eeb(0x179)](getProjectSkillsDir),_0x2b1620[_0x361eeb(0x1bc)]),_0x2b1620['erBco'](getSkillsFromDir,_0x2b1620[_0x361eeb(0x18f)](getUserSkillsDir),'user')]);return{'project':_0x2ad639,'user':_0x23ae3c};}async function getEnvironments(){const _0xa56a79=_0x3800ce,_0x207403={'jCjUO':function(_0x222582,_0x4ee810){return _0x222582(_0x4ee810);},'fTFzW':_0xa56a79(0x168),'sKSkV':function(_0x1bdfb3,_0x1ec339){return _0x1bdfb3(_0x1ec339);},'yfVFA':function(_0xdb7642){return _0xdb7642();}},{envNames:_0x87d00a,activeEnv:_0x5189a6}=await getEnvNames(),_0x1437b0=_0x207403[_0xa56a79(0x183)](getRangerDir);if(!_0x207403[_0xa56a79(0x1ab)](existsSync,_0x1437b0))return{'envs':[],'activeEnv':null};const _0x84b70a=_0x87d00a[_0xa56a79(0x1bf)](_0x3a3534=>{const _0x22f5b7=_0xa56a79,_0x31fb2d=_0x207403[_0x22f5b7(0x1ab)](getEnvDir,_0x3a3534),_0xeaa902=join(_0x31fb2d,'settings.json'),_0x4f3f1c=join(_0x31fb2d,_0x207403[_0x22f5b7(0x18c)]),_0x2c6d14=join(_0x31fb2d,_0x22f5b7(0x175));return{'name':_0x3a3534,'settingsPath':_0x207403[_0x22f5b7(0x1bd)](existsSync,_0xeaa902)?_0xeaa902:'(not\x20found)','hasPlaintextAuth':existsSync(_0x4f3f1c),'hasEncryptedAuth':existsSync(_0x2c6d14),'isActive':_0x3a3534===_0x5189a6};});return{'envs':_0x84b70a,'activeEnv':_0x5189a6};}export async function status(){const _0x36de70=_0x3800ce,_0x18e77d={'UPDGs':function(_0x10b6af,_0x3760a5){return _0x10b6af(_0x3760a5);},'QLRiC':function(_0x471f0a,_0x46fb84,_0x506b56){return _0x471f0a(_0x46fb84,_0x506b56);},'aBhRG':function(_0x31c1a8,_0x38a1e6){return _0x31c1a8(_0x38a1e6);},'LlrKQ':function(_0x45244a){return _0x45244a();},'JejBZ':'\x0a---\x20OpenCode\x20Plugin\x20---','RHwNq':function(_0x79341){return _0x79341();},'ZjKzO':_0x36de70(0x1be),'QztTQ':_0x36de70(0x1c0),'NSuUF':function(_0x8cae63,_0x33c26e){return _0x8cae63===_0x33c26e;},'fDeBA':'not_configured','LlqvO':'\x20\x20Run:\x20ranger\x20setup\x20--opencode','TbhdY':'\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','eKhEc':_0x36de70(0x173),'bbKJI':_0x36de70(0x1a8),'SATln':_0x36de70(0x1a1),'oajog':_0x36de70(0x19e),'KApUf':'\x20\x20Not\x20installed','wYoHE':_0x36de70(0x19a),'tWXYl':_0x36de70(0x1a0),'wGrtY':function(_0x27cedf,_0x4934f2){return _0x27cedf>_0x4934f2;},'phvlw':function(_0x37af99,_0x60a78b){return _0x37af99(_0x60a78b);},'STLuo':_0x36de70(0x189),'jkjqe':_0x36de70(0x16e),'PhcSp':_0x36de70(0x195),'VDSim':function(_0x318f99,_0x2f998e){return _0x318f99(_0x2f998e);}};console[_0x36de70(0x1c2)]('\x0a📊\x20Ranger\x20Status\x0a');const _0x173a07=process['cwd'](),_0x584aaf=getRangerDir();if(!_0x18e77d[_0x36de70(0x165)](existsSync,_0x584aaf)){console['log'](_0x36de70(0x19c)+_0x18e77d[_0x36de70(0x166)](link,_0x173a07,_0x18e77d['aBhRG'](bold,_0x18e77d[_0x36de70(0x1af)](basename,_0x173a07)))),console['log'](_0x36de70(0x190)),console[_0x36de70(0x1c2)](_0x36de70(0x180));return;}console[_0x36de70(0x1c2)](_0x36de70(0x19c)+_0x18e77d[_0x36de70(0x166)](link,_0x173a07,_0x18e77d[_0x36de70(0x1af)](bold,_0x18e77d[_0x36de70(0x165)](basename,_0x173a07))));const _0xd10140=getCurrentVersion(),_0x44e2cd=getLatestVersion();if(_0x44e2cd['version']&&_0x44e2cd[_0x36de70(0x188)]!==_0xd10140)console['log']('Version:\x20'+_0xd10140+_0x36de70(0x19d)+_0x44e2cd[_0x36de70(0x188)]+')'),console['log']('\x20\x20Run:\x20ranger\x20update');else _0x44e2cd[_0x36de70(0x188)]?console['log'](_0x36de70(0x18e)+_0xd10140+_0x36de70(0x1ac)):console[_0x36de70(0x1c2)]('Version:\x20'+_0xd10140);const _0x4d7b28=await getToken();if(_0x4d7b28){const _0x9b283c=await getCurrentUser(_0x4d7b28);_0x9b283c['success']?console['log']('Organization:\x20'+bold(_0x9b283c[_0x36de70(0x169)]['organizationName'])):(console[_0x36de70(0x1c2)](_0x36de70(0x1b8)),console[_0x36de70(0x1c2)](_0x36de70(0x1b5)));}else console[_0x36de70(0x1c2)]('API\x20Token:\x20✗\x20Not\x20found'),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]');process['env']['DEBUG']&&(console[_0x36de70(0x1c2)]('API\x20Environment:\x20'+_0x18e77d['LlrKQ'](getCurrentEnvironment)),console[_0x36de70(0x1c2)](_0x36de70(0x170)+_0x18e77d[_0x36de70(0x191)](getApiBaseUrl)));console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x198)]);const _0x2bf058=await _0x18e77d['RHwNq'](getOpencodePluginStatus);if(_0x2bf058['status']===_0x18e77d['ZjKzO'])console[_0x36de70(0x1c2)]('\x20\x20'+bold(_0x18e77d['QztTQ'])+_0x36de70(0x1b4)),_0x2bf058[_0x36de70(0x174)]&&console[_0x36de70(0x1c2)]('\x20\x20'+_0x2bf058['details']);else _0x18e77d['NSuUF'](_0x2bf058['status'],_0x18e77d['fDeBA'])?(console['log']('\x20\x20Not\x20configured'),_0x2bf058['details']&&console['log']('\x20\x20'+_0x2bf058[_0x36de70(0x174)]),console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x194)])):console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x186)]);console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x1a4)]);const _0x23278c=await getPluginInfo(_0x18e77d[_0x36de70(0x177)]);if(_0x23278c){const _0x35451b=_0x23278c['scope']||_0x18e77d[_0x36de70(0x1ba)],_0x8c2c5b=_0x23278c[_0x36de70(0x19e)]?_0x18e77d[_0x36de70(0x15f)]:_0x36de70(0x1a6);console['log']('\x20\x20'+bold('ranger@trailhead')+_0x36de70(0x18a)+_0x35451b+',\x20'+_0x8c2c5b+')');}else console['log'](_0x18e77d[_0x36de70(0x1ad)]),console['log'](_0x18e77d['wYoHE']);console['log'](_0x18e77d[_0x36de70(0x18b)]);const {project:_0x3235b8,user:_0x4d2d2f}=await getInstalledSkills(),_0x2fa67c=_0x3235b8[_0x36de70(0x1b6)](_0x5d2088=>RANGER_MANAGED_SKILLS['includes'](_0x5d2088['name'])),_0xdcfc4e=_0x4d2d2f[_0x36de70(0x1b6)](_0xeaed1d=>RANGER_MANAGED_SKILLS[_0x36de70(0x17f)](_0xeaed1d['name'])),_0xa3c472=_0x2fa67c['length']+_0xdcfc4e[_0x36de70(0x164)];if(_0xa3c472===0x0)console['log']('No\x20skills\x20installed'),console[_0x36de70(0x1c2)]('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x18e77d[_0x36de70(0x1a9)](_0x2fa67c[_0x36de70(0x164)],0x0)){console['log'](_0x36de70(0x16d));for(const _0x6c038e of _0x2fa67c){console[_0x36de70(0x1c2)]('\x20\x20\x20\x20'+_0x18e77d[_0x36de70(0x1a7)](bold,_0x6c038e[_0x36de70(0x182)])+':\x20'+link(_0x6c038e[_0x36de70(0x167)],basename(_0x6c038e['path'])));}}if(_0xdcfc4e[_0x36de70(0x164)]>0x0){console[_0x36de70(0x1c2)]('\x20\x20User-level:');for(const _0x42ece3 of _0xdcfc4e){console[_0x36de70(0x1c2)](_0x36de70(0x16c)+bold(_0x42ece3[_0x36de70(0x182)])+':\x20'+link(_0x42ece3['path'],_0x18e77d[_0x36de70(0x1af)](basename,_0x42ece3[_0x36de70(0x167)])));}}}console['log'](_0x18e77d['STLuo']);const {envs:_0x4fab6e,activeEnv:_0x3b5024}=await getEnvironments();if(_0x4fab6e['length']===0x0)console['log'](_0x36de70(0x16b)),console['log']('\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>');else{for(const _0x37d9cb of _0x4fab6e){const _0x2a4554=_0x37d9cb['isActive']?_0x18e77d[_0x36de70(0x176)]:'',_0x357d56=_0x37d9cb['hasEncryptedAuth']?_0x36de70(0x19b):_0x37d9cb[_0x36de70(0x1c1)]?'plaintext':_0x18e77d[_0x36de70(0x160)];console['log']('\x20\x20'+_0x18e77d['VDSim'](bold,_0x37d9cb[_0x36de70(0x1a2)])+_0x2a4554),console['log']('\x20\x20\x20\x20Auth:\x20'+_0x357d56),_0x37d9cb[_0x36de70(0x15d)]!=='(not\x20found)'&&console['log']('\x20\x20\x20\x20Settings:\x20'+link(_0x37d9cb['settingsPath'],basename(_0x37d9cb[_0x36de70(0x15d)])));}!_0x3b5024&&(console['log'](_0x36de70(0x19f)),console['log'](_0x36de70(0x1b7)+_0x4fab6e[_0x36de70(0x1bf)](_0x91d84f=>_0x91d84f[_0x36de70(0x1a2)])['join'](',\x20')+')'));}console['log']('');}
1
+ const _0x10707d=_0x2bf8;(function(_0x3d3e30,_0x3306e6){const _0x19061e=_0x2bf8,_0x342b5a=_0x3d3e30();while(!![]){try{const _0x24603b=parseInt(_0x19061e(0xbf))/0x1*(parseInt(_0x19061e(0xe2))/0x2)+-parseInt(_0x19061e(0xf9))/0x3+-parseInt(_0x19061e(0xc4))/0x4*(-parseInt(_0x19061e(0x10a))/0x5)+parseInt(_0x19061e(0xda))/0x6*(-parseInt(_0x19061e(0xe6))/0x7)+-parseInt(_0x19061e(0xd3))/0x8*(parseInt(_0x19061e(0x11c))/0x9)+parseInt(_0x19061e(0xb7))/0xa+parseInt(_0x19061e(0xb5))/0xb*(parseInt(_0x19061e(0x10d))/0xc);if(_0x24603b===_0x3306e6)break;else _0x342b5a['push'](_0x342b5a['shift']());}catch(_0x4c6b31){_0x342b5a['push'](_0x342b5a['shift']());}}}(_0xa5c3,0x9baa4));function _0xa5c3(){const _0x115ad9=['configured','2183067pkoexD','path','vQzTQ','WSuWY','sZXsT','gQDgT','\x20plugin(s)\x20configured','isDirectory','name','user','not_installed','AwheF','ZvGcf','all','none','gmcKq','plaintext','5lEJDMr','VDjWP',':\x20configured','12XPzGcr','vqbfG','unknown','BUPRS','cmBsS','settings.json','disabled','pipe','join','(not\x20found)','scope','kSvmw','QeNRt','Root:\x20','API\x20URL:\x20','2439UfvIRX','some','qtvrm','opencode','error','7094604dKJYck','\x0a---\x20Skills\x20---','6208980hrkwsy','gSPvj','not_configured','\x1b[0m','filter','log','\x20\x20Run:\x20ranger\x20setup\x20[token]','length','1356EWCpQQ','enabled','success','isActive','Version:\x20','373852HDxgJG','LtxFX','version','includes','qCnKB','No\x20profiles\x20configured','\x20\x20Run:\x20ranger\x20setup\x20--opencode','Organization:\x20','sREvL','trim','auth.json.enc','HMNHE','\x1b[1m','\x20\x20\x20\x20Settings:\x20','XdmzY','3304mtzQCX','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','auth.json','WMwwI','uPLMW','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','42882iCHLTJ','hasPlaintextAuth','\x0a---\x20OpenCode\x20Plugin\x20---','displayName','TkWtj','UHNfQ','env','JqtrY','332mhRAMC','JriTy','stdout','\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','105KZEiYI','opencode-plugin','status','ranger@trailhead','SKILL.md','\x0a---\x20Claude\x20Code\x20Plugin\x20---','plugin','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','API\x20Token:\x20✗\x20Not\x20found','vaDLo','\x20\x20\x20\x20','hasEncryptedAuth','@ranger-testing/opencode-plugin','YGOaB','iYVCb','API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired','NNxcz','parse'];_0xa5c3=function(){return _0x115ad9;};return _0xa5c3();}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';function _0x2bf8(_0x6a0ca3,_0x284814){_0x6a0ca3=_0x6a0ca3-0xb3;const _0xa5c38c=_0xa5c3();let _0x2bf86a=_0xa5c38c[_0x6a0ca3];return _0x2bf86a;}const bold=_0x2b2e75=>_0x10707d(0xd0)+_0x2b2e75+_0x10707d(0xba),link=(_0x50be34,_0x3f20dc)=>'\x1b]8;;file://'+_0x50be34+'\x07'+(_0x3f20dc||_0x50be34)+'\x1b]8;;\x07';async function getOpencodePluginStatus(){const _0x45ab29=_0x10707d,_0x4177b7={'OHaii':function(_0x51eb15,_0x2d4c9f){return _0x51eb15!==_0x2d4c9f;},'XdmzY':function(_0x2d38e0,_0x34ef4b){return _0x2d38e0(_0x34ef4b);},'MpBkd':_0x45ab29(0xf8),'kSvmw':_0x45ab29(0xb9),'TkWtj':function(_0x2ac1d3,_0x15e5e6,_0x5210e0,_0x2d5a0b){return _0x2ac1d3(_0x15e5e6,_0x5210e0,_0x2d5a0b);},'NNxcz':'ignore','AwheF':_0x45ab29(0x114),'rsWEz':'close'};return new Promise(_0x41d3b3=>{const _0x345686=_0x45ab29,_0x245550={'WelFX':function(_0x1c5d9f,_0x4fbbca){return _0x1c5d9f(_0x4fbbca);}},_0x883d51=_0x4177b7[_0x345686(0xde)](spawn,_0x345686(0xb3),['debug','config'],{'stdio':[_0x4177b7[_0x345686(0xf6)],_0x4177b7[_0x345686(0x104)],_0x4177b7[_0x345686(0x104)]]});let _0x3680e3='';_0x883d51[_0x345686(0xe4)]?.['on']('data',_0x47ffc5=>{_0x3680e3+=_0x47ffc5['toString']();}),_0x883d51['stderr']?.['on']('data',_0x455fe3=>{_0x3680e3+=_0x455fe3['toString']();}),_0x883d51['on'](_0x345686(0xb4),()=>{const _0x2c4cf3=_0x345686;_0x245550['WelFX'](_0x41d3b3,{'status':_0x2c4cf3(0x103)});}),_0x883d51['on'](_0x4177b7['rsWEz'],_0x400a51=>{const _0x40ac90=_0x345686,_0x584eb4={'wROPl':_0x40ac90(0xe7)};if(_0x4177b7['OHaii'](_0x400a51,0x0)){_0x4177b7['XdmzY'](_0x41d3b3,{'status':'not_installed'});return;}const _0x2fba4c=_0x3680e3[_0x40ac90(0xcd)]();let _0x1d7f42=null;if(_0x2fba4c)try{_0x1d7f42=JSON[_0x40ac90(0xf7)](_0x2fba4c);}catch{const _0x58219c=_0x2fba4c['match'](/\{[\s\S]*\}$/);if(_0x58219c)try{_0x1d7f42=JSON[_0x40ac90(0xf7)](_0x58219c[0x0]);}catch{_0x1d7f42=null;}}const _0x5404d0=Array['isArray'](_0x1d7f42?.[_0x40ac90(0xec)])?_0x1d7f42?.[_0x40ac90(0xec)]:[],_0x22c07b=_0x5404d0[_0x40ac90(0x11d)](_0x3cb81d=>{const _0x1da84f=_0x40ac90;if(typeof _0x3cb81d!=='string')return![];return _0x3cb81d['includes'](_0x1da84f(0xf2))||_0x3cb81d[_0x1da84f(0xc7)](_0x584eb4['wROPl']);});if(_0x22c07b){_0x4177b7[_0x40ac90(0xd2)](_0x41d3b3,{'status':_0x4177b7['MpBkd'],'details':_0x5404d0['length']>0x0?_0x5404d0[_0x40ac90(0xbe)]+_0x40ac90(0xff):undefined});return;}if(_0x5404d0['length']>0x0){_0x4177b7[_0x40ac90(0xd2)](_0x41d3b3,{'status':_0x4177b7[_0x40ac90(0x118)],'details':_0x5404d0['length']+'\x20plugin(s)\x20configured'});return;}_0x41d3b3({'status':_0x4177b7[_0x40ac90(0x118)]});});});}async function getSkillsFromDir(_0x452765,_0x4c0d42){const _0x3d5eaf=_0x10707d,_0x4cc39e={'JqtrY':function(_0x41c501,_0x9f550b){return _0x41c501(_0x9f550b);},'qCnKB':'utf-8'};if(!existsSync(_0x452765))return[];const _0x384137=[];try{const _0x23c455=await readdir(_0x452765,{'withFileTypes':!![]});for(const _0x1a3909 of _0x23c455){if(_0x1a3909[_0x3d5eaf(0x100)]()){const _0x396bb8=join(_0x452765,_0x1a3909['name'],_0x3d5eaf(0xea));if(_0x4cc39e[_0x3d5eaf(0xe1)](existsSync,_0x396bb8)){let _0x354e4a=_0x1a3909['name'];try{const _0x1ab138=await readFile(_0x396bb8,_0x4cc39e[_0x3d5eaf(0xc8)]),_0x858456=_0x1ab138['match'](/name:\s*(.+)/);_0x858456&&(_0x354e4a=_0x858456[0x1][_0x3d5eaf(0xcd)]());}catch{}_0x384137['push']({'name':_0x1a3909['name'],'displayName':_0x354e4a,'path':_0x396bb8,'level':_0x4c0d42});}}}}catch{return[];}return _0x384137;}async function getInstalledSkills(){const _0x189991=_0x10707d,_0x3758bc={'sREvL':function(_0xb1b784,_0x4168a8,_0x54f5bc){return _0xb1b784(_0x4168a8,_0x54f5bc);},'LtxFX':function(_0x6c4b9a){return _0x6c4b9a();},'VDjWP':'project','fIZoa':function(_0x4645cf,_0x1a2ad2,_0x24a081){return _0x4645cf(_0x1a2ad2,_0x24a081);},'UHNfQ':_0x189991(0x102)},[_0x52f67c,_0xdb8cf5]=await Promise[_0x189991(0x106)]([_0x3758bc[_0x189991(0xcc)](getSkillsFromDir,_0x3758bc[_0x189991(0xc5)](getProjectSkillsDir),_0x3758bc[_0x189991(0x10b)]),_0x3758bc['fIZoa'](getSkillsFromDir,getUserSkillsDir(),_0x3758bc[_0x189991(0xdf)])]);return{'project':_0x52f67c,'user':_0xdb8cf5};}async function getEnvironments(){const _0x2e4259=_0x10707d,_0x4ae3e9={'gmcKq':function(_0x3937eb,_0x21d3c){return _0x3937eb(_0x21d3c);},'ZpDbL':function(_0x791f0b,_0x200aa9,_0x2a439f){return _0x791f0b(_0x200aa9,_0x2a439f);},'HMNHE':function(_0x871c88){return _0x871c88();},'saxqI':function(_0xee6796){return _0xee6796();}},{envNames:_0x3a5bef,activeEnv:_0x2c5e05}=await _0x4ae3e9[_0x2e4259(0xcf)](getEnvNames),_0x52bc84=_0x4ae3e9['saxqI'](getRangerDir);if(!_0x4ae3e9[_0x2e4259(0x108)](existsSync,_0x52bc84))return{'envs':[],'activeEnv':null};const _0x2efb1b=_0x3a5bef['map'](_0x156322=>{const _0x128dcf=_0x2e4259,_0x7bd33e=_0x4ae3e9['gmcKq'](getEnvDir,_0x156322),_0x30f263=join(_0x7bd33e,_0x128dcf(0x112)),_0x35006d=join(_0x7bd33e,_0x128dcf(0xd6)),_0x2bca2d=_0x4ae3e9['ZpDbL'](join,_0x7bd33e,_0x128dcf(0xce));return{'name':_0x156322,'settingsPath':existsSync(_0x30f263)?_0x30f263:_0x128dcf(0x116),'hasPlaintextAuth':existsSync(_0x35006d),'hasEncryptedAuth':existsSync(_0x2bca2d),'isActive':_0x156322===_0x2c5e05};});return{'envs':_0x2efb1b,'activeEnv':_0x2c5e05};}export async function status(){const _0x50a482=_0x10707d,_0x265d98={'lBwFC':'\x0a📊\x20Ranger\x20Status\x0a','qtvrm':function(_0x58cdc2,_0x1a2486,_0x1a1950){return _0x58cdc2(_0x1a2486,_0x1a1950);},'vqbfG':function(_0x2d8a01,_0x522b87){return _0x2d8a01(_0x522b87);},'JriTy':function(_0x531586,_0x47a9f5){return _0x531586(_0x47a9f5);},'uPLMW':function(_0x3c24f2){return _0x3c24f2();},'cmBsS':function(_0x3addab,_0x5e5f3b){return _0x3addab(_0x5e5f3b);},'WSuWY':function(_0x3019d2,_0x133730){return _0x3019d2(_0x133730);},'WMwwI':function(_0x25c2eb,_0x1dbf1a){return _0x25c2eb===_0x1dbf1a;},'mZhzx':'not_configured','BUPRS':_0x50a482(0xca),'QeNRt':function(_0x4b9dd5,_0xeaae2a){return _0x4b9dd5(_0xeaae2a);},'EcDPI':_0x50a482(0x10f),'iYVCb':_0x50a482(0xc0),'KnXZH':'ranger@trailhead','vaDLo':'\x20\x20Not\x20installed','afSIR':_0x50a482(0xd4),'YGOaB':function(_0x2e9672,_0x214b14){return _0x2e9672>_0x214b14;},'gSPvj':'\x20\x20User-level:','ldASo':function(_0x18b07e,_0x34608b){return _0x18b07e===_0x34608b;},'vQzTQ':_0x50a482(0x109),'sZXsT':_0x50a482(0x107),'gQDgT':function(_0x42c68a,_0x3cc700){return _0x42c68a(_0x3cc700);},'laTLw':function(_0x15ab70,_0x519aee){return _0x15ab70!==_0x519aee;},'ZvGcf':function(_0xe43aea,_0x4b365e,_0x3a67af){return _0xe43aea(_0x4b365e,_0x3a67af);},'LsvoH':function(_0x27cc44,_0x3e31c3){return _0x27cc44(_0x3e31c3);}};console['log'](_0x265d98['lBwFC']);const _0x649062=process['cwd'](),_0x1a4e02=getRangerDir();if(!existsSync(_0x1a4e02)){console['log'](_0x50a482(0x11a)+_0x265d98[_0x50a482(0x11e)](link,_0x649062,bold(_0x265d98[_0x50a482(0x10e)](basename,_0x649062)))),console[_0x50a482(0xbc)](_0x50a482(0xd9)),console['log'](_0x50a482(0xd5));return;}console['log']('Root:\x20'+_0x265d98['qtvrm'](link,_0x649062,_0x265d98[_0x50a482(0xe3)](bold,basename(_0x649062))));const _0x4e158d=_0x265d98[_0x50a482(0xd8)](getCurrentVersion),_0x1fbc7f=getLatestVersion();if(_0x1fbc7f[_0x50a482(0xc6)]&&_0x1fbc7f[_0x50a482(0xc6)]!==_0x4e158d)console['log'](_0x50a482(0xc3)+_0x4e158d+'\x20(latest:\x20'+_0x1fbc7f[_0x50a482(0xc6)]+')'),console['log']('\x20\x20Run:\x20ranger\x20update');else _0x1fbc7f[_0x50a482(0xc6)]?console['log']('Version:\x20'+_0x4e158d+'\x20(up\x20to\x20date)'):console[_0x50a482(0xbc)]('Version:\x20'+_0x4e158d);const _0x5c2dae=await _0x265d98['uPLMW'](getToken);if(_0x5c2dae){const _0x5e16b1=await _0x265d98[_0x50a482(0x111)](getCurrentUser,_0x5c2dae);_0x5e16b1[_0x50a482(0xc1)]?console[_0x50a482(0xbc)](_0x50a482(0xcb)+_0x265d98['WSuWY'](bold,_0x5e16b1['user']['organizationName'])):(console[_0x50a482(0xbc)](_0x50a482(0xf5)),console[_0x50a482(0xbc)](_0x50a482(0xbd)));}else console['log'](_0x50a482(0xee)),console['log'](_0x50a482(0xbd));process[_0x50a482(0xe0)]['DEBUG']&&(console[_0x50a482(0xbc)]('API\x20Environment:\x20'+getCurrentEnvironment()),console['log'](_0x50a482(0x11b)+getApiBaseUrl()));console['log'](_0x50a482(0xdc));const _0x51f0b8=await _0x265d98[_0x50a482(0xd8)](getOpencodePluginStatus);if(_0x265d98['WMwwI'](_0x51f0b8[_0x50a482(0xe8)],'configured'))console[_0x50a482(0xbc)]('\x20\x20'+bold('@ranger-testing/opencode-plugin')+_0x50a482(0x10c)),_0x51f0b8['details']&&console['log']('\x20\x20'+_0x51f0b8['details']);else _0x265d98[_0x50a482(0xd7)](_0x51f0b8['status'],_0x265d98['mZhzx'])?(console['log']('\x20\x20Not\x20configured'),_0x51f0b8['details']&&console['log']('\x20\x20'+_0x51f0b8['details']),console['log'](_0x265d98[_0x50a482(0x110)])):console['log'](_0x50a482(0xe5));console['log'](_0x50a482(0xeb));const _0x23d30f=await _0x265d98[_0x50a482(0x119)](getPluginInfo,_0x50a482(0xe9));if(_0x23d30f){const _0x50a721=_0x23d30f[_0x50a482(0x117)]||_0x265d98['EcDPI'],_0x48564a=_0x23d30f['enabled']?_0x265d98[_0x50a482(0xf4)]:_0x50a482(0x113);console['log']('\x20\x20'+_0x265d98[_0x50a482(0xe3)](bold,_0x265d98['KnXZH'])+':\x20installed\x20('+_0x50a721+',\x20'+_0x48564a+')');}else console[_0x50a482(0xbc)](_0x265d98[_0x50a482(0xef)]),console['log'](_0x265d98['afSIR']);console[_0x50a482(0xbc)](_0x50a482(0xb6));const {project:_0x26ed0d,user:_0x52f2a8}=await getInstalledSkills(),_0x2499fa=_0x26ed0d['filter'](_0x1f642b=>RANGER_MANAGED_SKILLS['includes'](_0x1f642b[_0x50a482(0x101)])),_0xa942c5=_0x52f2a8[_0x50a482(0xbb)](_0x463629=>RANGER_MANAGED_SKILLS['includes'](_0x463629['name'])),_0x5f9199=_0x2499fa['length']+_0xa942c5['length'];if(_0x265d98['WMwwI'](_0x5f9199,0x0))console['log']('No\x20skills\x20installed'),console['log']('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x2499fa['length']>0x0){console[_0x50a482(0xbc)]('\x20\x20Project-level:');for(const _0x15c060 of _0x2499fa){console['log']('\x20\x20\x20\x20'+bold(_0x15c060['displayName'])+':\x20'+_0x265d98['qtvrm'](link,_0x15c060[_0x50a482(0xfa)],_0x265d98[_0x50a482(0xfc)](basename,_0x15c060['path'])));}}if(_0x265d98[_0x50a482(0xf3)](_0xa942c5[_0x50a482(0xbe)],0x0)){console[_0x50a482(0xbc)](_0x265d98[_0x50a482(0xb8)]);for(const _0x35e61b of _0xa942c5){console[_0x50a482(0xbc)](_0x50a482(0xf0)+_0x265d98['vqbfG'](bold,_0x35e61b[_0x50a482(0xdd)])+':\x20'+_0x265d98[_0x50a482(0x11e)](link,_0x35e61b[_0x50a482(0xfa)],_0x265d98[_0x50a482(0x10e)](basename,_0x35e61b['path'])));}}}console[_0x50a482(0xbc)]('\x0a---\x20Profiles\x20---');const {envs:_0xed8008,activeEnv:_0x581f48}=await _0x265d98['uPLMW'](getEnvironments);if(_0x265d98['ldASo'](_0xed8008['length'],0x0))console['log'](_0x50a482(0xc9)),console[_0x50a482(0xbc)](_0x50a482(0xed));else{for(const _0xeda8c2 of _0xed8008){const _0x1c5630=_0xeda8c2[_0x50a482(0xc2)]?'\x20(active)':'',_0x57e858=_0xeda8c2[_0x50a482(0xf1)]?'encrypted':_0xeda8c2[_0x50a482(0xdb)]?_0x265d98[_0x50a482(0xfb)]:_0x265d98[_0x50a482(0xfd)];console['log']('\x20\x20'+_0x265d98[_0x50a482(0xfe)](bold,_0xeda8c2['name'])+_0x1c5630),console['log']('\x20\x20\x20\x20Auth:\x20'+_0x57e858),_0x265d98['laTLw'](_0xeda8c2['settingsPath'],_0x50a482(0x116))&&console[_0x50a482(0xbc)](_0x50a482(0xd1)+_0x265d98[_0x50a482(0x105)](link,_0xeda8c2['settingsPath'],_0x265d98['LsvoH'](basename,_0xeda8c2['settingsPath'])));}!_0x581f48&&(console[_0x50a482(0xbc)]('\x0a\x20\x20No\x20active\x20profile\x20set'),console[_0x50a482(0xbc)]('\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20'+_0xed8008['map'](_0x1fee50=>_0x1fee50[_0x50a482(0x101)])[_0x50a482(0x115)](',\x20')+')'));}console['log']('');}