@ranger-testing/ranger-cli 2.5.1 → 2.5.2

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 (73) hide show
  1. package/build/cli.js +1 -1
  2. package/build/commands/addEnv.js +1 -1
  3. package/build/commands/authEncrypt.js +1 -1
  4. package/build/commands/clean.js +1 -1
  5. package/build/commands/config.js +1 -1
  6. package/build/commands/env.js +1 -1
  7. package/build/commands/feature.js +1 -1
  8. package/build/commands/hook.js +1 -1
  9. package/build/commands/hooks/autoPrompt.js +1 -1
  10. package/build/commands/hooks/disable.js +1 -1
  11. package/build/commands/hooks/enable.js +1 -1
  12. package/build/commands/hooks/exitPlanMode.js +1 -1
  13. package/build/commands/hooks/index.js +1 -1
  14. package/build/commands/hooks/output.js +1 -1
  15. package/build/commands/hooks/planReminder.js +1 -1
  16. package/build/commands/hooks/planStart.js +1 -1
  17. package/build/commands/hooks/postEdit.js +1 -1
  18. package/build/commands/hooks/preCompact.js +1 -1
  19. package/build/commands/hooks/sessionEnd.js +1 -1
  20. package/build/commands/hooks/sessionStart.js +1 -1
  21. package/build/commands/hooks/stopHook.js +1 -1
  22. package/build/commands/index.js +1 -1
  23. package/build/commands/login.js +1 -1
  24. package/build/commands/mcpBootstrap.js +1 -0
  25. package/build/commands/setup/claude.js +1 -1
  26. package/build/commands/setup/opencode.js +1 -1
  27. package/build/commands/setupCi.js +1 -1
  28. package/build/commands/skillup.js +1 -1
  29. package/build/commands/start.js +1 -1
  30. package/build/commands/status.js +1 -1
  31. package/build/commands/update.js +1 -1
  32. package/build/commands/updateEnv.js +1 -1
  33. package/build/commands/useEnv.js +1 -1
  34. package/build/commands/utils/activeProfile.js +1 -1
  35. package/build/commands/utils/agentEnv.js +1 -1
  36. package/build/commands/utils/browserSessionsApi.js +1 -1
  37. package/build/commands/utils/claudeConfig.js +1 -1
  38. package/build/commands/utils/claudeOverrideSettings.js +1 -1
  39. package/build/commands/utils/claudePlugin.js +1 -1
  40. package/build/commands/utils/crypto.js +1 -1
  41. package/build/commands/utils/desirePathLog.js +1 -1
  42. package/build/commands/utils/deviceAuth.js +1 -1
  43. package/build/commands/utils/environment.js +1 -1
  44. package/build/commands/utils/featureApi.js +1 -1
  45. package/build/commands/utils/fixWebmDuration.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/retry.js +1 -1
  57. package/build/commands/utils/sessionCache.js +1 -1
  58. package/build/commands/utils/settings.js +1 -1
  59. package/build/commands/utils/skillContent.js +1 -1
  60. package/build/commands/utils/skills.js +1 -1
  61. package/build/commands/utils/stitchWebmFiles.js +1 -1
  62. package/build/commands/utils/telemetry.js +1 -1
  63. package/build/commands/utils/tokenRefresh.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/package.json +1 -1
  70. package/build/commands/utils/featureReportGenerator.js +0 -1
  71. package/build/commands/utils/git.js +0 -1
  72. package/build/commands/utils/reportGenerator.js +0 -1
  73. package/build/commands/verifyInBrowser.js +0 -1
@@ -1 +1 @@
1
- function _0x3fb0(_0x4e6d29,_0x26a463){_0x4e6d29=_0x4e6d29-0xf5;const _0x3003a5=_0x3003();let _0x3fb06d=_0x3003a5[_0x4e6d29];return _0x3fb06d;}function _0x3003(){const _0x223409=['trackCommandStart','374082UgxATl','IFPkU','10100YyivLt','GxSVV','env','ohKmm','WgCDZ','hook:session-start','90lPApRP','SwCPd','1850ljherh','2777522cmdCPa','15GSSdQY','1135VdLfbL','trackCommandEnd','stdin','684WOQIHB','qSkNC','master','2039136HppZDN','success','6869912jivYLo','192hxvYKx','935343ITaUsQ'];_0x3003=function(){return _0x223409;};return _0x3003();}(function(_0x25c17e,_0x5d74e7){const _0x29c4d8=_0x3fb0,_0x59c02a=_0x25c17e();while(!![]){try{const _0x54c349=-parseInt(_0x29c4d8(0xf6))/0x1*(parseInt(_0x29c4d8(0x10c))/0x2)+parseInt(_0x29c4d8(0xf9))/0x3*(-parseInt(_0x29c4d8(0x104))/0x4)+parseInt(_0x29c4d8(0xf5))/0x5*(-parseInt(_0x29c4d8(0x102))/0x6)+-parseInt(_0x29c4d8(0xfe))/0x7+parseInt(_0x29c4d8(0xfc))/0x8+parseInt(_0x29c4d8(0x100))/0x9*(-parseInt(_0x29c4d8(0x10a))/0xa)+parseInt(_0x29c4d8(0x10d))/0xb*(parseInt(_0x29c4d8(0xff))/0xc);if(_0x54c349===_0x5d74e7)break;else _0x59c02a['push'](_0x59c02a['shift']());}catch(_0x1365e0){_0x59c02a['push'](_0x59c02a['shift']());}}}(_0x3003,0x8a12d));import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';import{getToken}from'../utils/keychain.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(_0x5191f7){const _0x5c5eb8=_0x3fb0,_0x12cbc4={'WgCDZ':function(_0x43eb16,_0x462596){return _0x43eb16&&_0x462596;},'GxSVV':function(_0x37aee8,_0x277346,_0x4a0e05){return _0x37aee8(_0x277346,_0x4a0e05);},'IFPkU':function(_0x553e42,_0x3722d2){return _0x553e42(_0x3722d2);},'ohKmm':function(_0x233feb,_0x1db390){return _0x233feb(_0x1db390);},'ASLrb':function(_0x13716f,_0x2d7358){return _0x13716f(_0x2d7358);},'SwCPd':_0x5c5eb8(0xfd),'qSkNC':function(_0x284638){return _0x284638();},'kyyEX':function(_0x50a068,_0xc9c361){return _0x50a068!==_0xc9c361;}};let _0x206849=_0x5191f7||'',_0x5be26c;if(!_0x5191f7){let _0x258f67='';for await(const _0x19f105 of process[_0x5c5eb8(0xf8)]){_0x258f67+=_0x19f105;}try{const _0x50c78e=JSON['parse'](_0x258f67);_0x206849=_0x50c78e['session_id']||'',_0x5be26c=_0x50c78e['source'];}catch{}const _0x10e312=process[_0x5c5eb8(0x106)]['CLAUDE_ENV_FILE'];if(_0x12cbc4[_0x5c5eb8(0x108)](_0x10e312,_0x206849))try{await _0x12cbc4[_0x5c5eb8(0x105)](appendFile,_0x10e312,'export\x20CLAUDE_SESSION_ID=\x22'+_0x206849+'\x22\x0a');}catch{}}try{await getToken();}catch{}if(_0x206849){shouldAutoEnableAfterClear(_0x5be26c)&&_0x12cbc4[_0x5c5eb8(0x103)](autoEnableAfterClear,_0x206849);_0x12cbc4['IFPkU'](initBranchTracking,_0x206849);const _0x144fbd=_0x12cbc4[_0x5c5eb8(0x107)](isSessionEnabled,_0x206849);try{const _0x57c4d9=_0x12cbc4['ASLrb'](createTelemetryCollector,_0x5c5eb8(0x109));await _0x57c4d9[_0x5c5eb8(0x101)]({'sessionId':_0x206849,'hooksEnabled':_0x144fbd}),await _0x57c4d9[_0x5c5eb8(0xf7)](_0x12cbc4[_0x5c5eb8(0x10b)]);}catch{}if(_0x144fbd){const _0x4006b3=_0x12cbc4[_0x5c5eb8(0xfa)](getCurrentBranch),_0x19c8ac=_0x4006b3&&_0x4006b3!=='main'&&_0x12cbc4['kyyEX'](_0x4006b3,_0x5c5eb8(0xfb))?'\x20(Branch:\x20'+_0x4006b3+')':'',_0x66e795={'hookSpecificOutput':{'hookEventName':'SessionStart','additionalContext':RANGER_AUTO_ENABLED_PROMPT+_0x19c8ac}};console['log'](JSON['stringify'](_0x66e795));}}}
1
+ const _0x33d342=_0x463b;function _0x463b(_0x2bdee5,_0x45bd21){_0x2bdee5=_0x2bdee5-0x1b8;const _0x54db2c=_0x54db();let _0x463bfa=_0x54db2c[_0x2bdee5];return _0x463bfa;}(function(_0x452a19,_0x7205b9){const _0x24d16f=_0x463b,_0x5b73c1=_0x452a19();while(!![]){try{const _0x597c72=parseInt(_0x24d16f(0x1ca))/0x1*(-parseInt(_0x24d16f(0x1c2))/0x2)+parseInt(_0x24d16f(0x1c7))/0x3*(-parseInt(_0x24d16f(0x1c1))/0x4)+-parseInt(_0x24d16f(0x1c8))/0x5+parseInt(_0x24d16f(0x1c4))/0x6+parseInt(_0x24d16f(0x1cc))/0x7+-parseInt(_0x24d16f(0x1cd))/0x8*(-parseInt(_0x24d16f(0x1bc))/0x9)+parseInt(_0x24d16f(0x1c5))/0xa;if(_0x597c72===_0x7205b9)break;else _0x5b73c1['push'](_0x5b73c1['shift']());}catch(_0x15ca4a){_0x5b73c1['push'](_0x5b73c1['shift']());}}}(_0x54db,0x19d45));function _0x54db(){const _0x3defa3=['2888990lUpzER','\x20(Branch:\x20','1497kpUuUl','896995IMjfPb','kahzF','1238Cfqlme','gLare','44310poPVcP','300368GcxlHX','trackCommandEnd','master','stringify','tPqtt','9tyUqRc','ZsytB','session_id','=================================================================\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=================================================================','parse','164qsntjc','254OzTUxl','choNI','780636QhJJAD'];_0x54db=function(){return _0x3defa3;};return _0x54db();}import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';import{getToken}from'../utils/keychain.js';const RANGER_AUTO_ENABLED_PROMPT=_0x33d342(0x1bf);export async function sessionStart(_0x2a171b){const _0x2763b9=_0x33d342,_0x1131d0={'kahzF':_0x2763b9(0x1be),'ZsytB':'source','choNI':function(_0x400d7f,_0x59fbdb,_0x298aa5){return _0x400d7f(_0x59fbdb,_0x298aa5);},'IIPKS':function(_0x46349c,_0x5d0c2c){return _0x46349c(_0x5d0c2c);},'FwCbr':'hook:session-start','TETbd':'success','tPqtt':function(_0x147d71,_0x47c67b){return _0x147d71!==_0x47c67b;},'ojFAj':_0x2763b9(0x1b9),'gLare':function(_0x49007e,_0x11bd94){return _0x49007e+_0x11bd94;}};let _0x1e7d3c=_0x2a171b||'',_0x11d64b;if(!_0x2a171b){let _0x54c018='';for await(const _0x4890f6 of process['stdin']){_0x54c018+=_0x4890f6;}try{const _0x29a676=JSON[_0x2763b9(0x1c0)](_0x54c018);_0x1e7d3c=_0x29a676[_0x1131d0[_0x2763b9(0x1c9)]]||'',_0x11d64b=_0x29a676[_0x1131d0[_0x2763b9(0x1bd)]];}catch{}const _0x2aa354=process['env']['CLAUDE_ENV_FILE'];if(_0x2aa354&&_0x1e7d3c)try{await _0x1131d0[_0x2763b9(0x1c3)](appendFile,_0x2aa354,'export\x20CLAUDE_SESSION_ID=\x22'+_0x1e7d3c+'\x22\x0a');}catch{}}try{await getToken();}catch{}if(_0x1e7d3c){shouldAutoEnableAfterClear(_0x11d64b)&&autoEnableAfterClear(_0x1e7d3c);_0x1131d0['IIPKS'](initBranchTracking,_0x1e7d3c);const _0x53f2d4=isSessionEnabled(_0x1e7d3c);try{const _0x445f24=createTelemetryCollector(_0x1131d0['FwCbr']);await _0x445f24['trackCommandStart']({'sessionId':_0x1e7d3c,'hooksEnabled':_0x53f2d4}),await _0x445f24[_0x2763b9(0x1b8)](_0x1131d0['TETbd']);}catch{}if(_0x53f2d4){const _0x276317=getCurrentBranch(),_0xbb031d=_0x276317&&_0x276317!=='main'&&_0x1131d0[_0x2763b9(0x1bb)](_0x276317,_0x1131d0['ojFAj'])?_0x2763b9(0x1c6)+_0x276317+')':'',_0x1fce67={'hookSpecificOutput':{'hookEventName':'SessionStart','additionalContext':_0x1131d0[_0x2763b9(0x1cb)](RANGER_AUTO_ENABLED_PROMPT,_0xbb031d)}};console['log'](JSON[_0x2763b9(0x1ba)](_0x1fce67));}}}
@@ -1 +1 @@
1
- (function(_0x10915a,_0x390d42){const _0x5da77a=_0x5c38,_0x7bca3a=_0x10915a();while(!![]){try{const _0x103fa9=-parseInt(_0x5da77a(0x7c))/0x1*(-parseInt(_0x5da77a(0x8d))/0x2)+-parseInt(_0x5da77a(0x7f))/0x3+-parseInt(_0x5da77a(0x7e))/0x4*(-parseInt(_0x5da77a(0x8b))/0x5)+-parseInt(_0x5da77a(0x93))/0x6*(parseInt(_0x5da77a(0x82))/0x7)+parseInt(_0x5da77a(0x84))/0x8*(-parseInt(_0x5da77a(0x86))/0x9)+parseInt(_0x5da77a(0x7d))/0xa+parseInt(_0x5da77a(0x87))/0xb;if(_0x103fa9===_0x390d42)break;else _0x7bca3a['push'](_0x7bca3a['shift']());}catch(_0x31e09c){_0x7bca3a['push'](_0x7bca3a['shift']());}}}(_0x3a89,0x5d8a9));import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';function _0x5c38(_0x2c8b55,_0x446c12){_0x2c8b55=_0x2c8b55-0x7c;const _0x3a8919=_0x3a89();let _0x5c38d2=_0x3a8919[_0x2c8b55];return _0x5c38d2;}function _0x3a89(){const _0x4c1040=['status','sessionId','205hDGOjp','DSIFX','5554knRVeu','featureId','WMZQE','some','Stop','QGPPp','6NdMKMZ','verification_in_progress','227OctejY','7230550LqykKS','30232WMZdUq','1704744IJqIqA','checklistItems','incomplete','3444742GqZCXQ','success','360536DOWDlz','verified','81ZINUid','2043690KbMlbu','https://dashboard.ranger.net/features/'];_0x3a89=function(){return _0x4c1040;};return _0x3a89();}import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x3060a0){const _0xaff675=_0x5c38,_0x4cf7c7={'QGPPp':_0xaff675(0x91),'WMZQE':function(_0x25fcc4,_0x46559c){return _0x25fcc4&&_0x46559c;},'GjiNQ':function(_0x34483f,_0x4a6251,_0x2cf924,_0x3ad596){return _0x34483f(_0x4a6251,_0x2cf924,_0x3ad596);}},_0x4d0a0d=await getEnabledHookContext(_0x3060a0),_0x1c4180=_0x4d0a0d?.[_0xaff675(0x8a)]??null;let _0x4af62f=!![];if(!_0x1c4180){await trackStop(_0x1c4180,![],_0x4af62f);return;}try{const _0x3822ae=getSessionEntry(_0x1c4180);if(!_0x3822ae){await trackStop(_0x1c4180,!![],_0x4af62f);return;}const _0x5664f8=await getToken(),_0x17b431=_0xaff675(0x88)+_0x3822ae['featureId'];let _0x5384ca=null,_0x2d975b=![],_0x543bed=![];if(_0x5664f8)try{const _0x42babf=await getFeature(_0x3822ae[_0xaff675(0x8e)]);_0x5384ca=_0x42babf['currentSessionId']??null;const _0x4f4292=_0x42babf[_0xaff675(0x80)]['filter'](_0x46327d=>_0x46327d[_0xaff675(0x8a)]===_0x5384ca);_0x2d975b=_0x4f4292[_0xaff675(0x90)](_0x355423=>_0x355423[_0xaff675(0x89)]!==_0xaff675(0x85)&&_0x355423['status']!=='blocked'&&_0x355423['status']!=='closed'&&_0x355423[_0xaff675(0x89)]!==_0xaff675(0x81)),_0x543bed=_0x4f4292[_0xaff675(0x90)](_0x15be58=>_0x15be58[_0xaff675(0x89)]===_0xaff675(0x94));}catch{}if(_0x5664f8&&_0x5384ca&&_0x2d975b){if(!_0x543bed&&shouldShowStopReminder(_0x1c4180)){const _0x51de63={'hookSpecificOutput':{'hookEventName':_0x4cf7c7[_0xaff675(0x92)],'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'+_0x17b431}};console['log'](JSON['stringify'](_0x51de63));}}if(_0x4cf7c7[_0xaff675(0x8f)](_0x5664f8,_0x5384ca)&&!_0x2d975b)try{await concludeSession(_0x3822ae['featureId'],_0x5384ca);}catch{}await trackStop(_0x1c4180,!![],_0x4af62f);return;}catch{await _0x4cf7c7['GjiNQ'](trackStop,_0x1c4180,!![],_0x4af62f);return;}}async function trackStop(_0x3237a4,_0x457b1e,_0x306cfa){const _0x200d8a=_0x5c38,_0xaf9d90={'DSIFX':'hook:stop','MTTKg':function(_0x5c4eaa,_0x1314d0){return _0x5c4eaa??_0x1314d0;}};try{const _0x39fbda=createTelemetryCollector(_0xaf9d90[_0x200d8a(0x8c)]);await _0x39fbda['trackCommandStart']({'sessionId':_0xaf9d90['MTTKg'](_0x3237a4,undefined),'hooksEnabled':_0x457b1e,'stopAllowed':_0x306cfa}),await _0x39fbda['trackCommandEnd'](_0x200d8a(0x83));}catch{}}
1
+ (function(_0x797ef6,_0x20c543){const _0x172264=_0x4d20,_0x4dc68f=_0x797ef6();while(!![]){try{const _0x35897e=-parseInt(_0x172264(0xd8))/0x1*(-parseInt(_0x172264(0xd5))/0x2)+-parseInt(_0x172264(0xdd))/0x3+-parseInt(_0x172264(0xc7))/0x4*(-parseInt(_0x172264(0xca))/0x5)+parseInt(_0x172264(0xcf))/0x6*(-parseInt(_0x172264(0xd2))/0x7)+-parseInt(_0x172264(0xcd))/0x8*(-parseInt(_0x172264(0xc9))/0x9)+parseInt(_0x172264(0xd1))/0xa+-parseInt(_0x172264(0xcb))/0xb;if(_0x35897e===_0x20c543)break;else _0x4dc68f['push'](_0x4dc68f['shift']());}catch(_0x233256){_0x4dc68f['push'](_0x4dc68f['shift']());}}}(_0x3c91,0x43881));import{getToken}from'../utils/keychain.js';function _0x4d20(_0x3883dc,_0x9a11f7){_0x3883dc=_0x3883dc-0xc5;const _0x3c911a=_0x3c91();let _0x4d2077=_0x3c911a[_0x3883dc];return _0x4d2077;}import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';function _0x3c91(){const _0xcc3dee=['FjzqF','1028nStwpT','dfjGJ','65862CZdlsl','2440OiWdoa','3771812oKXwgl','TnUBa','392OEpSoW','featureId','6gyEyBB','success','2580570lXFCXh','319109GlQGfS','closed','hook:stop','2gzmiMA','some','RACwJ','299311CeKjPn','stringify','status','tyiCA','OyFWR','1128834rVUgab','incomplete'];_0x3c91=function(){return _0xcc3dee;};return _0x3c91();}import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x646b7c){const _0x52aa83=_0x4d20,_0x1fe202={'RACwJ':function(_0x5d27d7,_0x7770ba,_0x1a11f4,_0x390a60){return _0x5d27d7(_0x7770ba,_0x1a11f4,_0x390a60);},'tyiCA':function(_0x18d034){return _0x18d034();},'TnUBa':function(_0x3cef41,_0x2cb7b5){return _0x3cef41(_0x2cb7b5);},'OyFWR':'Stop','FjzqF':function(_0x39ac09,_0x2e1e08){return _0x39ac09&&_0x2e1e08;},'EcjYY':function(_0x390f0b,_0x4e654d,_0x220e1e,_0x150f72){return _0x390f0b(_0x4e654d,_0x220e1e,_0x150f72);}},_0x178068=await getEnabledHookContext(_0x646b7c),_0x48c988=_0x178068?.['sessionId']??null;let _0x15e3ea=!![];if(!_0x48c988){await _0x1fe202[_0x52aa83(0xd7)](trackStop,_0x48c988,![],_0x15e3ea);return;}try{const _0x139743=getSessionEntry(_0x48c988);if(!_0x139743){await trackStop(_0x48c988,!![],_0x15e3ea);return;}const _0x2611bf=await _0x1fe202[_0x52aa83(0xdb)](getToken),_0xa8cabc='https://dashboard.ranger.net/features/'+_0x139743[_0x52aa83(0xce)];let _0x1f0cf0=null,_0x41b91a=![],_0x365a72=![];if(_0x2611bf)try{const _0x401dfd=await getFeature(_0x139743['featureId']);_0x1f0cf0=_0x401dfd['currentSessionId']??null;const _0x2e73fa=_0x401dfd['checklistItems']['filter'](_0x5ec4a7=>_0x5ec4a7['sessionId']===_0x1f0cf0);_0x41b91a=_0x2e73fa[_0x52aa83(0xd6)](_0x3ad7f0=>_0x3ad7f0[_0x52aa83(0xda)]!=='verified'&&_0x3ad7f0['status']!=='blocked'&&_0x3ad7f0['status']!==_0x52aa83(0xd3)&&_0x3ad7f0['status']!==_0x52aa83(0xc5)),_0x365a72=_0x2e73fa['some'](_0x12e1c2=>_0x12e1c2['status']==='verification_in_progress');}catch{}if(_0x2611bf&&_0x1f0cf0&&_0x41b91a){if(!_0x365a72&&_0x1fe202[_0x52aa83(0xcc)](shouldShowStopReminder,_0x48c988)){const _0x3b684d={'hookSpecificOutput':{'hookEventName':_0x1fe202[_0x52aa83(0xdc)],'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'+_0xa8cabc}};console['log'](JSON[_0x52aa83(0xd9)](_0x3b684d));}}if(_0x1fe202[_0x52aa83(0xc6)](_0x2611bf,_0x1f0cf0)&&!_0x41b91a)try{await concludeSession(_0x139743['featureId'],_0x1f0cf0);}catch{}await trackStop(_0x48c988,!![],_0x15e3ea);return;}catch{await _0x1fe202['EcjYY'](trackStop,_0x48c988,!![],_0x15e3ea);return;}}async function trackStop(_0x5e7af4,_0x3b3e8a,_0x31eaf7){const _0x591894=_0x4d20,_0x10c6f4={'dfjGJ':function(_0x3e90f7,_0x3e11c7){return _0x3e90f7??_0x3e11c7;},'JcqHN':_0x591894(0xd0)};try{const _0x2f3530=createTelemetryCollector(_0x591894(0xd4));await _0x2f3530['trackCommandStart']({'sessionId':_0x10c6f4[_0x591894(0xc8)](_0x5e7af4,undefined),'hooksEnabled':_0x3b3e8a,'stopAllowed':_0x31eaf7}),await _0x2f3530['trackCommandEnd'](_0x10c6f4['JcqHN']);}catch{}}
@@ -1 +1 @@
1
- function _0xe3ef(){var _0x23763b=['50LHQQbU','54725KhIhhP','9WBrjlK','84cqROwQ','15807qdEkTV','119XsoRsm','68022xLFDwk','2482104FBngNV','2066235RYbezx','69525TjhCZC','435424Ydojov'];_0xe3ef=function(){return _0x23763b;};return _0xe3ef();}(function(_0x4bd7e5,_0x4989ab){var _0x4d6e87=_0x390c,_0x3ee93e=_0x4bd7e5();while(!![]){try{var _0x571d8c=parseInt(_0x4d6e87(0xc3))/0x1+-parseInt(_0x4d6e87(0xc4))/0x2+-parseInt(_0x4d6e87(0xc9))/0x3*(-parseInt(_0x4d6e87(0xc8))/0x4)+parseInt(_0x4d6e87(0xc2))/0x5+parseInt(_0x4d6e87(0xc0))/0x6*(parseInt(_0x4d6e87(0xca))/0x7)+parseInt(_0x4d6e87(0xc1))/0x8*(-parseInt(_0x4d6e87(0xc7))/0x9)+parseInt(_0x4d6e87(0xc5))/0xa*(-parseInt(_0x4d6e87(0xc6))/0xb);if(_0x571d8c===_0x4989ab)break;else _0x3ee93e['push'](_0x3ee93e['shift']());}catch(_0x4e3d47){_0x3ee93e['push'](_0x3ee93e['shift']());}}}(_0xe3ef,0x38f54));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';function _0x390c(_0x2dfe4b,_0x2ba4ea){_0x2dfe4b=_0x2dfe4b-0xc0;var _0xe3ef5a=_0xe3ef();var _0x390cba=_0xe3ef5a[_0x2dfe4b];return _0x390cba;}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(_0x1f7073,_0x54c8bb){var _0x446ab9=_0x5581,_0x4a7320=_0x1f7073();while(!![]){try{var _0x5788fe=parseInt(_0x446ab9(0x162))/0x1+-parseInt(_0x446ab9(0x16b))/0x2*(-parseInt(_0x446ab9(0x169))/0x3)+-parseInt(_0x446ab9(0x166))/0x4*(parseInt(_0x446ab9(0x164))/0x5)+-parseInt(_0x446ab9(0x165))/0x6*(-parseInt(_0x446ab9(0x167))/0x7)+parseInt(_0x446ab9(0x163))/0x8*(parseInt(_0x446ab9(0x168))/0x9)+-parseInt(_0x446ab9(0x16c))/0xa*(-parseInt(_0x446ab9(0x16d))/0xb)+-parseInt(_0x446ab9(0x16a))/0xc;if(_0x5788fe===_0x54c8bb)break;else _0x4a7320['push'](_0x4a7320['shift']());}catch(_0x5038d0){_0x4a7320['push'](_0x4a7320['shift']());}}}(_0x2aca,0x1e43c));export{addEnv}from'./addEnv.js';function _0x5581(_0x13553f,_0xc1f9f6){_0x13553f=_0x13553f-0x162;var _0x2aca71=_0x2aca();var _0x5581b9=_0x2aca71[_0x13553f];return _0x5581b9;}export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';function _0x2aca(){var _0x1b1676=['300687YFYopg','4637760tImprI','2tPNTsU','863510HstXCG','11HJRDsP','155349TuPrvr','870488QiRalV','30DqaAWS','6MMRWIR','13520IyKnJj','559888QjGUDz','9gLBTCX'];_0x2aca=function(){return _0x1b1676;};return _0x2aca();}export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
@@ -1 +1 @@
1
- function _0xe23f(){const _0x88621f=['organizationName','user','18gPNxWP','message','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','63QCBVHG','4PvtzYm','200556VBXwxX','stdin','58400fwvldE','139044kEzDfm','ZYIol','536ovArwF','isTTY','313415vJIXBP','28125vggwIY','230dXfboo','719wxmNSe','stdout','11825gyjTBy','UCkkh'];_0xe23f=function(){return _0x88621f;};return _0xe23f();}(function(_0xd86bc5,_0x589f38){const _0x2a7338=_0x87a6,_0x11658d=_0xd86bc5();while(!![]){try{const _0x5bad36=-parseInt(_0x2a7338(0xd5))/0x1*(parseInt(_0x2a7338(0xd0))/0x2)+-parseInt(_0x2a7338(0xce))/0x3*(parseInt(_0x2a7338(0xdf))/0x4)+-parseInt(_0x2a7338(0xd2))/0x5*(-parseInt(_0x2a7338(0xdb))/0x6)+parseInt(_0x2a7338(0xde))/0x7*(parseInt(_0x2a7338(0xcd))/0x8)+-parseInt(_0x2a7338(0xd3))/0x9*(-parseInt(_0x2a7338(0xd4))/0xa)+-parseInt(_0x2a7338(0xd7))/0xb+parseInt(_0x2a7338(0xe0))/0xc;if(_0x5bad36===_0x589f38)break;else _0x11658d['push'](_0x11658d['shift']());}catch(_0x11585c){_0x11658d['push'](_0x11658d['shift']());}}}(_0xe23f,0x18f4e));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x87a6(_0x1af774,_0x2e87cc){_0x1af774=_0x1af774-0xcd;const _0xe23f8e=_0xe23f();let _0x87a682=_0xe23f8e[_0x1af774];return _0x87a682;}import{getCurrentUser}from'./utils/userApi.js';export async function login(){const _0x52a425=_0x87a6,_0x18d786={'KajsJ':function(_0x2eab27){return _0x2eab27();},'ZYIol':function(_0x25cb2e,_0x9343b8){return _0x25cb2e(_0x9343b8);},'UCkkh':function(_0x17af51,_0x53c369){return _0x17af51 instanceof _0x53c369;}},_0x5a8b18=process[_0x52a425(0xe1)][_0x52a425(0xd1)]&&process[_0x52a425(0xd6)][_0x52a425(0xd1)];if(!_0x5a8b18)throw new Error(_0x52a425(0xdd));try{const _0x2ebb34=await _0x18d786['KajsJ'](runDeviceAuthFlow),_0x16ae6d=await _0x18d786[_0x52a425(0xcf)](getCurrentUser,_0x2ebb34);_0x16ae6d['success']?console['log']('\x0a✅\x20Logged\x20in\x20to\x20'+_0x16ae6d[_0x52a425(0xda)][_0x52a425(0xd9)]):console['log']('\x0a✅\x20API\x20key\x20stored\x20successfully');}catch(_0x4c54f8){throw new Error('Login\x20failed:\x20'+(_0x18d786[_0x52a425(0xd8)](_0x4c54f8,Error)?_0x4c54f8[_0x52a425(0xdc)]:_0x4c54f8));}}
1
+ function _0x7293(_0x5c32d6,_0x4e30a0){_0x5c32d6=_0x5c32d6-0x1e9;const _0x560faa=_0x560f();let _0x7293e1=_0x560faa[_0x5c32d6];return _0x7293e1;}(function(_0x14b625,_0x2f59ad){const _0x586748=_0x7293,_0x42e330=_0x14b625();while(!![]){try{const _0x544354=parseInt(_0x586748(0x1f2))/0x1+parseInt(_0x586748(0x1f8))/0x2*(parseInt(_0x586748(0x1f7))/0x3)+-parseInt(_0x586748(0x1ef))/0x4*(-parseInt(_0x586748(0x1f3))/0x5)+parseInt(_0x586748(0x1e9))/0x6*(-parseInt(_0x586748(0x1f4))/0x7)+-parseInt(_0x586748(0x1eb))/0x8*(parseInt(_0x586748(0x1ea))/0x9)+-parseInt(_0x586748(0x1f6))/0xa*(-parseInt(_0x586748(0x1f5))/0xb)+parseInt(_0x586748(0x1fb))/0xc*(-parseInt(_0x586748(0x1f9))/0xd);if(_0x544354===_0x2f59ad)break;else _0x42e330['push'](_0x42e330['shift']());}catch(_0x2cdb61){_0x42e330['push'](_0x42e330['shift']());}}}(_0x560f,0xc8254));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';function _0x560f(){const _0x13de16=['246kZUklQ','72449acMFjH','\x0a✅\x20Logged\x20in\x20to\x20','5316bBbJJS','success','slvaG','170760oQboZk','99423siTrHC','128enwsfi','Login\x20failed:\x20','organizationName','user','1676xFyvAC','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','stdout','942190adEwQl','18795tOkKwN','399avzUyQ','11mvhAyu','15661010MHucVP','24495kUeeHA'];_0x560f=function(){return _0x13de16;};return _0x560f();}export async function login(){const _0x428840=_0x7293,_0x2f585a={'slvaG':function(_0x475cdd,_0x3b9f00){return _0x475cdd(_0x3b9f00);},'uFkiv':function(_0x154941,_0x58cfa5){return _0x154941 instanceof _0x58cfa5;}},_0x5ef55e=await getMcpAuthOrigin();if(_0x5ef55e){console['log']('Re-authenticating\x20via\x20MCP\x20bootstrap...'),await mcpBootstrap();return;}const _0x1faec5=process['stdin']['isTTY']&&process[_0x428840(0x1f1)]['isTTY'];if(!_0x1faec5)throw new Error(_0x428840(0x1f0));try{const _0x178db3=await runDeviceAuthFlow(),_0x2cb4cb=await _0x2f585a[_0x428840(0x1fd)](getCurrentUser,_0x178db3);_0x2cb4cb[_0x428840(0x1fc)]?console['log'](_0x428840(0x1fa)+_0x2cb4cb[_0x428840(0x1ee)][_0x428840(0x1ed)]):console['log']('\x0a✅\x20API\x20key\x20stored\x20successfully');}catch(_0x917ea7){throw new Error(_0x428840(0x1ec)+(_0x2f585a['uFkiv'](_0x917ea7,Error)?_0x917ea7['message']:_0x917ea7));}}
@@ -0,0 +1 @@
1
+ const _0x513afc=_0xb1e6;function _0xb1e6(_0x4fb583,_0x290aa8){_0x4fb583=_0x4fb583-0x107;const _0x230479=_0x2304();let _0xb1e615=_0x230479[_0x4fb583];return _0xb1e615;}(function(_0x7ed3d9,_0x51dace){const _0x5a2d73=_0xb1e6,_0x3c9018=_0x7ed3d9();while(!![]){try{const _0x1f6590=-parseInt(_0x5a2d73(0x164))/0x1+-parseInt(_0x5a2d73(0x198))/0x2*(-parseInt(_0x5a2d73(0x15a))/0x3)+-parseInt(_0x5a2d73(0x134))/0x4*(-parseInt(_0x5a2d73(0x165))/0x5)+parseInt(_0x5a2d73(0x182))/0x6+parseInt(_0x5a2d73(0x183))/0x7*(-parseInt(_0x5a2d73(0x195))/0x8)+parseInt(_0x5a2d73(0x115))/0x9*(-parseInt(_0x5a2d73(0x179))/0xa)+-parseInt(_0x5a2d73(0x14a))/0xb*(-parseInt(_0x5a2d73(0x12f))/0xc);if(_0x1f6590===_0x51dace)break;else _0x3c9018['push'](_0x3c9018['shift']());}catch(_0x268109){_0x3c9018['push'](_0x3c9018['shift']());}}}(_0x2304,0xd7a39));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),_0x513afc(0x10c),'mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),'.ranger','auth-origin.txt');export async function getMcpAuthOrigin(){const _0x397b60=_0x513afc;try{const _0x53ca08=(await readFile(AUTH_ORIGIN_PATH,'utf-8'))[_0x397b60(0x152)]();return _0x53ca08||null;}catch{return null;}}export async function mcpBootstrap(){const _0xd6e564=_0x513afc,_0x1d7392={'VCZBC':function(_0x55ded8){return _0x55ded8();},'wlhrV':function(_0x46b6c1,_0x38fb7e){return _0x46b6c1+_0x38fb7e;},'WvAji':function(_0x4beb15,_0x3be13d){return _0x4beb15(_0x3be13d);}},_0x14428d=getMcpAuthUrl();currentOrigin=_0x14428d;const _0xd11886=process['stdout'][_0xd6e564(0x127)]??![];console[_0xd6e564(0x17e)]('\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20'+_0x14428d+'\x0a');let _0x26f39f=await tryUnauthenticated(_0x14428d);!_0x26f39f&&(_0x26f39f=await _0x1d7392[_0xd6e564(0x14f)](loadCachedToken));if(!_0x26f39f){if(!_0xd11886)throw new Error(_0x1d7392[_0xd6e564(0x15e)](_0xd6e564(0x185),'Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.'));_0x26f39f=await _0x1d7392['WvAji'](oauthFlow,_0x14428d);}await callGetCliToken(_0x14428d,_0x26f39f);}async function tryUnauthenticated(_0x3861b9){const _0x5b156a=_0x513afc,_0x3847ba={'mvaoU':function(_0x56d3d9,_0x1f8902,_0x3a0a5c){return _0x56d3d9(_0x1f8902,_0x3a0a5c);},'OqhFt':'POST','qEStS':_0x5b156a(0x108),'iLaui':_0x5b156a(0x12a),'aagJM':_0x5b156a(0x11d),'GTCmD':function(_0x2d8331,_0x700a06){return _0x2d8331===_0x700a06;}},_0x565953=await _0x3847ba[_0x5b156a(0x169)](fetch,_0x3861b9,{'method':_0x3847ba['OqhFt'],'headers':{'Content-Type':_0x3847ba['qEStS'],'Accept':_0x5b156a(0x144)},'body':JSON['stringify']({'jsonrpc':_0x3847ba['iLaui'],'id':0x1,'method':_0x3847ba[_0x5b156a(0x16b)],'params':{'protocolVersion':_0x5b156a(0x193),'capabilities':{},'clientInfo':{'name':'ranger-cli','version':_0x5b156a(0x10a)}}})});if(_0x565953['ok'])return await _0x565953[_0x5b156a(0x16f)](),'';if(_0x3847ba[_0x5b156a(0x155)](_0x565953[_0x5b156a(0x174)],0x191))return await _0x565953['text'](),null;const _0x494a6e=await _0x565953['text']();throw new Error(_0x5b156a(0x128)+_0x565953['status']+':\x20'+_0x494a6e);}async function oauthFlow(_0x3aaedf){const _0x241da3=_0x513afc,_0x14ea63={'yCxqr':_0x241da3(0x18d),'vTecL':'No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','BffsQ':function(_0x134989,_0x583c6d){return _0x134989(_0x583c6d);},'SPsgw':'POST','JLFFB':'application/json','vMYEY':_0x241da3(0x175),'ZOQzW':_0x241da3(0x140),'SAvSf':_0x241da3(0x166),'jSxLK':_0x241da3(0x180),'CvFZV':_0x241da3(0x109),'pUvHs':_0x241da3(0x14b),'fNbVb':'authorization_code','DAHmy':'client_secret','AEonA':_0x241da3(0x119),'gyeYN':function(_0x48c85e,_0x4c9904,_0x2b195b){return _0x48c85e(_0x4c9904,_0x2b195b);},'LPXME':_0x241da3(0x122)},_0x50a383=_0x3aaedf[_0x241da3(0x12b)](/\/mcp$/,'');process['stdout']['write']('Discovering\x20authorization\x20server...');const _0x3aa1e=await fetch(_0x50a383+_0x241da3(0x187));if(!_0x3aa1e['ok'])throw new Error(_0x14ea63[_0x241da3(0x150)]);const _0x465728=await _0x3aa1e['json'](),_0x2861b4=_0x465728[_0x241da3(0x136)]?.[0x0];if(!_0x2861b4)throw new Error(_0x14ea63[_0x241da3(0x192)]);console['log']('\x20'+_0x2861b4);const _0x410eb6=await _0x14ea63[_0x241da3(0x177)](fetchAuthServerMetadata,_0x2861b4);let _0x230e48,_0x1c4ac3;const _0x17f434=await loadCachedClient();if(_0x17f434)_0x230e48=_0x17f434[_0x241da3(0x11a)],_0x1c4ac3=_0x17f434['clientSecret'];else{if(_0x410eb6['registration_endpoint']){process[_0x241da3(0x138)]['write']('Registering\x20OAuth\x20client...');const _0x439071=await fetch(_0x410eb6['registration_endpoint'],{'method':_0x14ea63[_0x241da3(0x10e)],'headers':{'Content-Type':_0x14ea63['JLFFB']},'body':JSON['stringify']({'client_name':'Ranger\x20CLI','redirect_uris':['http://localhost:'+CALLBACK_PORT+_0x241da3(0x14c)],'grant_types':['authorization_code',_0x14ea63[_0x241da3(0x11b)]],'response_types':[_0x14ea63[_0x241da3(0x118)]],'token_endpoint_auth_method':'none'})});if(!_0x439071['ok']){const _0x59cc9f=await _0x439071['text']();throw new Error('Client\x20registration\x20failed:\x20'+_0x59cc9f);}const _0x599953=await _0x439071['json']();_0x230e48=_0x599953[_0x241da3(0x188)],_0x1c4ac3=_0x599953[_0x241da3(0x14d)],await saveCachedClient(_0x230e48,_0x1c4ac3),console['log']('\x20done');}else throw new Error(_0x241da3(0x112));}const _0x2468b5=randomBytes(0x20)['toString']('base64url'),_0x4bbd69=createHash(_0x241da3(0x151))['update'](_0x2468b5)['digest'](_0x241da3(0x154)),_0x5bf51d=_0x14ea63['BffsQ'](randomBytes,0x10)[_0x241da3(0x167)]('hex'),_0x13fa86=new URL(_0x410eb6[_0x241da3(0x125)]);_0x13fa86['searchParams']['set'](_0x14ea63[_0x241da3(0x19f)],_0x14ea63['ZOQzW']),_0x13fa86[_0x241da3(0x145)][_0x241da3(0x13e)](_0x241da3(0x188),_0x230e48),_0x13fa86[_0x241da3(0x145)][_0x241da3(0x13e)](_0x14ea63['jSxLK'],'http://localhost:'+CALLBACK_PORT+_0x241da3(0x14c)),_0x13fa86[_0x241da3(0x145)]['set']('code_challenge',_0x4bbd69),_0x13fa86[_0x241da3(0x145)]['set']('code_challenge_method',_0x14ea63['CvFZV']),_0x13fa86[_0x241da3(0x145)][_0x241da3(0x13e)](_0x14ea63[_0x241da3(0x159)],_0x5bf51d);_0x465728['resource']&&_0x13fa86['searchParams'][_0x241da3(0x13e)]('resource',_0x465728[_0x241da3(0x119)]);console['log'](_0x241da3(0x149)),console['log'](_0x241da3(0x163)+_0x13fa86['toString']()+'\x0a'),await _0x14ea63['BffsQ'](openBrowser,_0x13fa86[_0x241da3(0x167)]());const _0x68f606=await waitForCallback(_0x5bf51d);process[_0x241da3(0x138)]['write'](_0x241da3(0x17d));const _0xbe90a=new URLSearchParams({'grant_type':_0x14ea63[_0x241da3(0x176)],'code':_0x68f606,'redirect_uri':_0x241da3(0x143)+CALLBACK_PORT+'/callback','client_id':_0x230e48,'code_verifier':_0x2468b5});_0x1c4ac3&&_0xbe90a['set'](_0x14ea63[_0x241da3(0x120)],_0x1c4ac3);_0x465728[_0x241da3(0x119)]&&_0xbe90a[_0x241da3(0x13e)](_0x14ea63[_0x241da3(0x16e)],_0x465728['resource']);const _0x5d00db=await _0x14ea63['gyeYN'](fetch,_0x410eb6['token_endpoint'],{'method':'POST','headers':{'Content-Type':'application/x-www-form-urlencoded'},'body':_0xbe90a});if(!_0x5d00db['ok']){const _0x262732=await _0x5d00db[_0x241da3(0x16f)]();throw new Error('Token\x20exchange\x20failed:\x20'+_0x262732);}const _0x35c810=await _0x5d00db[_0x241da3(0x114)]();return console['log'](_0x14ea63[_0x241da3(0x18b)]),await saveCachedToken(_0x35c810[_0x241da3(0x17c)],_0x35c810['refresh_token'],_0x35c810['expires_in']),_0x35c810[_0x241da3(0x17c)];}async function callGetCliToken(_0x480136,_0x144b9a){const _0x3c31ba=_0x513afc,_0x1cad41={'eAiGj':_0x3c31ba(0x173),'IkQcR':function(_0x2f70d3,_0x2f0be5){return _0x2f70d3(_0x2f0be5);},'fdJwA':_0x3c31ba(0x108),'HtTbJ':_0x3c31ba(0x144),'tqLtn':_0x3c31ba(0x12a),'jDGUa':_0x3c31ba(0x11d),'guBlF':_0x3c31ba(0x12d),'KXILE':'1.0.0','luzcm':'notifications/initialized','zAcfO':'Requesting\x20CLI\x20token...','XJmdW':_0x3c31ba(0x12c),'EoTKi':function(_0x243e38){return _0x243e38();},'TTOqa':_0x3c31ba(0x13f),'BBvYv':function(_0x4baaa6,_0x504e61,_0x186773){return _0x4baaa6(_0x504e61,_0x186773);}},_0x52f857={'Content-Type':_0x1cad41['fdJwA'],'Accept':_0x1cad41['HtTbJ']};_0x144b9a&&(_0x52f857['Authorization']='Bearer\x20'+_0x144b9a);const _0x27f0d5=async _0x4730d5=>{const _0x17933a=_0x3c31ba,_0x496446=await fetch(_0x480136,{'method':_0x1cad41['eAiGj'],'headers':_0x52f857,'body':JSON['stringify'](_0x4730d5)});if(!_0x496446['ok']){const _0x4bef92=await _0x496446[_0x17933a(0x16f)]();throw new Error(_0x17933a(0x147)+_0x496446[_0x17933a(0x174)]+':\x20'+_0x4bef92);}return _0x1cad41[_0x17933a(0x10f)](parseResponse,_0x496446);};process[_0x3c31ba(0x138)]['write']('Initializing\x20MCP\x20session...');const _0x50ba9b=await _0x27f0d5({'jsonrpc':_0x1cad41['tqLtn'],'id':0x1,'method':_0x1cad41[_0x3c31ba(0x124)],'params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':_0x1cad41['guBlF'],'version':_0x1cad41[_0x3c31ba(0x19e)]}}});if(_0x50ba9b[_0x3c31ba(0x133)])throw new Error(_0x3c31ba(0x16c)+(_0x50ba9b['error'][_0x3c31ba(0x156)]??JSON['stringify'](_0x50ba9b[_0x3c31ba(0x133)])));console[_0x3c31ba(0x17e)]('\x20done'),await fetch(_0x480136,{'method':'POST','headers':_0x52f857,'body':JSON['stringify']({'jsonrpc':_0x1cad41['tqLtn'],'method':_0x1cad41[_0x3c31ba(0x148)]})})['then'](_0x2bc9e4=>_0x2bc9e4['text']()),process['stdout']['write'](_0x1cad41['zAcfO']);const _0x21bcb7=await _0x27f0d5({'jsonrpc':_0x3c31ba(0x12a),'id':0x2,'method':_0x1cad41[_0x3c31ba(0x17f)],'params':{'name':_0x3c31ba(0x137),'arguments':{}}});if(_0x21bcb7[_0x3c31ba(0x133)])throw new Error('get_cli_token\x20failed:\x20'+(_0x21bcb7['error'][_0x3c31ba(0x156)]??JSON['stringify'](_0x21bcb7[_0x3c31ba(0x133)])));console['log']('\x20done');const _0x59b62d=extractToken(_0x21bcb7[_0x3c31ba(0x153)]);if(!_0x59b62d){console[_0x3c31ba(0x133)](_0x3c31ba(0x113)),console[_0x3c31ba(0x133)](JSON['stringify'](_0x21bcb7['result'],null,0x2));throw new Error('Could\x20not\x20extract\x20token\x20from\x20MCP\x20response');}const _0x3f098d=join(_0x1cad41['EoTKi'](homedir),_0x3c31ba(0x10c)),_0x882ba1=join(_0x3f098d,_0x1cad41['TTOqa']);await _0x1cad41[_0x3c31ba(0x11e)](mkdir,_0x3f098d,{'recursive':!![]}),await writeFile(_0x882ba1,_0x59b62d,{'mode':0x180}),await writeFile(_0x1cad41[_0x3c31ba(0x11e)](join,_0x3f098d,_0x3c31ba(0x171)),_0x480136,{'mode':0x180}),console[_0x3c31ba(0x17e)]('\x0aToken\x20written\x20to\x20'+_0x882ba1),console['log'](_0x3c31ba(0x130));}async function fetchAuthServerMetadata(_0x2f9bd4){const _0x2f4248=_0x513afc,_0x308bbd={'XaPnu':function(_0x1b06c6,_0xaa28ee){return _0x1b06c6(_0xaa28ee);}},_0x4f62ab=_0x2f9bd4+'/.well-known/oauth-authorization-server',_0x2d5a15=await _0x308bbd[_0x2f4248(0x13a)](fetch,_0x4f62ab);if(!_0x2d5a15['ok'])throw new Error(_0x2f4248(0x19a)+_0x4f62ab+':\x20'+_0x2d5a15['status']);return _0x2d5a15['json']();}function waitForCallback(_0x54c9d4){const _0x4a21c9=_0x513afc,_0x4efeba={'fwoof':'/callback','jmuuU':function(_0xdf9010,_0x4497ec){return _0xdf9010!==_0x4497ec;},'WkqJw':_0x4a21c9(0x161),'ClXmx':function(_0x401b95,_0x2e1f38){return _0x401b95(_0x2e1f38);}};return new Promise((_0x5e7af1,_0x183e0d)=>{const _0xe1fa88=_0x4a21c9,_0x88e552={'JGchr':_0x4efeba[_0xe1fa88(0x19d)],'OSfrv':_0xe1fa88(0x199),'mohYr':_0xe1fa88(0x140),'mtEcE':'error_description','mBmot':function(_0xe5f2d2,_0x23265b){return _0x4efeba['jmuuU'](_0xe5f2d2,_0x23265b);},'mRDOx':_0x4efeba['WkqJw'],'FcTga':_0xe1fa88(0x194),'qTztx':function(_0x232eef,_0x4b5b32){return _0x4efeba['ClXmx'](_0x232eef,_0x4b5b32);}},_0x27e81b=setTimeout(()=>{const _0x33d95c=_0xe1fa88;_0x37399d['close'](),_0x183e0d(new Error(_0x33d95c(0x186)));},0x1d4c0),_0x37399d=_0x4efeba[_0xe1fa88(0x15c)](createServer,(_0x2cc978,_0x2145b7)=>{const _0x50713f=_0xe1fa88,_0x1feed3=new URL(_0x2cc978[_0x50713f(0x126)]??'/','http://localhost:'+CALLBACK_PORT);if(_0x1feed3[_0x50713f(0x14e)]!==_0x88e552[_0x50713f(0x121)]){_0x2145b7['writeHead'](0x194),_0x2145b7['end'](_0x88e552[_0x50713f(0x107)]);return;}const _0x119b2a=_0x1feed3['searchParams']['get'](_0x88e552[_0x50713f(0x13b)]),_0x59f773=_0x1feed3[_0x50713f(0x145)][_0x50713f(0x131)](_0x50713f(0x14b)),_0xc72ecf=_0x1feed3[_0x50713f(0x145)][_0x50713f(0x131)](_0x50713f(0x133));if(_0xc72ecf){const _0x1dc40f=_0x1feed3['searchParams'][_0x50713f(0x131)](_0x88e552['mtEcE'])??_0xc72ecf;_0x2145b7['writeHead'](0xc8,{'Content-Type':'text/html'}),_0x2145b7[_0x50713f(0x170)](_0x50713f(0x16a)+_0x1dc40f+_0x50713f(0x181)),clearTimeout(_0x27e81b),_0x37399d['close'](),_0x183e0d(new Error(_0x50713f(0x18c)+_0x1dc40f));return;}if(!_0x119b2a||_0x88e552['mBmot'](_0x59f773,_0x54c9d4)){_0x2145b7[_0x50713f(0x19c)](0x190,{'Content-Type':'text/html'}),_0x2145b7['end'](_0x88e552['mRDOx']);return;}_0x2145b7[_0x50713f(0x19c)](0xc8,{'Content-Type':_0x50713f(0x110)}),_0x2145b7[_0x50713f(0x170)](_0x88e552[_0x50713f(0x129)]),_0x88e552['qTztx'](clearTimeout,_0x27e81b),_0x37399d[_0x50713f(0x139)](),_0x88e552[_0x50713f(0x135)](_0x5e7af1,_0x119b2a);});_0x37399d['listen'](CALLBACK_PORT,_0xe1fa88(0x15d));});}async function openBrowser(_0x2992f8){const _0x2419c3=_0x513afc,_0x1c26b5={'pgtvw':function(_0x1ce9ff,_0x12985a){return _0x1ce9ff===_0x12985a;},'YzbCB':_0x2419c3(0x17b),'mFbfL':function(_0x408e2b,_0x35176d){return _0x408e2b===_0x35176d;},'EQbXs':'win32','VbeIj':_0x2419c3(0x184),'tMsgH':function(_0x192637,_0x17a2ad){return _0x192637(_0x17a2ad);}},{exec:_0x3cf3d4}=await import(_0x2419c3(0x10b)),_0x59c463=_0x1c26b5['pgtvw'](process['platform'],'darwin')?_0x1c26b5['YzbCB']:_0x1c26b5[_0x2419c3(0x160)](process[_0x2419c3(0x123)],_0x1c26b5['EQbXs'])?_0x1c26b5['VbeIj']:'xdg-open';_0x1c26b5['tMsgH'](_0x3cf3d4,_0x59c463+'\x20\x22'+_0x2992f8+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0xfd50b1=_0x513afc,_0x132f4a={'dxmXj':_0xfd50b1(0x197),'kLpMT':function(_0x5229f0,_0x4918ad){return _0x5229f0!==_0x4918ad;}};try{const _0x4b08dc=JSON['parse'](await readFile(TOKEN_CACHE_PATH,_0x132f4a[_0xfd50b1(0x11f)]));if(_0x4b08dc['origin']&&_0x132f4a[_0xfd50b1(0x13c)](_0x4b08dc[_0xfd50b1(0x190)],currentOrigin))return null;if(_0x4b08dc['expiresAt']&&Date['now']()>_0x4b08dc[_0xfd50b1(0x111)])return null;return _0x4b08dc['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x273f67,_0x1c71f1,_0x4243a7){const _0x2edfa3=_0x513afc,_0x151fd8={'uYCyF':function(_0x545aeb,_0x53dbbf){return _0x545aeb+_0x53dbbf;},'JCEBz':function(_0x3f6673,_0x50ddb1,_0x18249f){return _0x3f6673(_0x50ddb1,_0x18249f);},'PYCfn':function(_0x48c5df){return _0x48c5df();},'ywsIU':function(_0xdb7e2f,_0x107a74,_0x45f3c2,_0x1ae824){return _0xdb7e2f(_0x107a74,_0x45f3c2,_0x1ae824);}},_0x44d261=await loadCachedData(),_0x26e676={..._0x44d261,'origin':currentOrigin,'accessToken':_0x273f67,'refreshToken':_0x1c71f1??_0x44d261?.['refreshToken'],'expiresAt':_0x4243a7?_0x151fd8['uYCyF'](Date[_0x2edfa3(0x12e)](),_0x4243a7*0x3e8):undefined};await _0x151fd8['JCEBz'](mkdir,join(_0x151fd8[_0x2edfa3(0x157)](homedir),'.ranger'),{'recursive':!![]}),await _0x151fd8[_0x2edfa3(0x11c)](writeFile,TOKEN_CACHE_PATH,JSON[_0x2edfa3(0x15f)](_0x26e676),{'mode':0x180});}function _0x2304(){const _0x560dcd=['/.well-known/oauth-protected-resource','client_id','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','parse','LPXME','OAuth\x20error:\x20','Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','accessToken','gKkPv','origin','isError','vTecL','2025-03-26','<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','814224YcMvcg','token','utf-8','106496bXPWSZ','Not\x20found','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','zMsOp','writeHead','fwoof','KXILE','SAvSf','xIaOB','OSfrv','application/json','S256','1.0.0','child_process','.ranger','clientSecret','SPsgw','IkQcR','text/html','expiresAt','Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','\x0aUnexpected\x20response\x20structure:','json','64431wwkqKI','giObS','split','ZOQzW','resource','clientId','vMYEY','ywsIU','initialize','BBvYv','dxmXj','DAHmy','JGchr','\x20done','platform','jDGUa','authorization_endpoint','url','isTTY','MCP\x20server\x20returned\x20HTTP\x20','FcTga','2.0','replace','tools/call','ranger-cli','now','1112604AsYosV','Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a','get','data:','error','156NaDypO','qTztx','authorization_servers','get_cli_token','stdout','close','XaPnu','mohYr','kLpMT','slice','set','refresh.txt','code','emfkq','QHZPR','http://localhost:','application/json,\x20text/event-stream','searchParams','content-type','HTTP\x20','luzcm','\x0aOpening\x20browser\x20for\x20authentication...','231hlvggJ','state','/callback','client_secret','pathname','VCZBC','yCxqr','sha256','trim','result','base64url','GTCmD','message','PYCfn','text/event-stream','pUvHs','18isNYBn','vJPHI','ClXmx','127.0.0.1','wlhrV','stringify','mFbfL','<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','JgztL','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','1754325dZvKhS','122895TictMX','response_type','toString','match','mvaoU','<html><body><h2>Authentication\x20failed</h2><p>','aagJM','MCP\x20initialize\x20failed:\x20','Unknown\x20error','AEonA','text','end','auth-origin.txt','includes','POST','status','refresh_token','fNbVb','BffsQ','string','970yJTiRO','structuredContent','open','access_token','Exchanging\x20authorization\x20code...','log','XJmdW','redirect_uri','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','2473278UNmxGh','21cyLYUz','start','MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes'];_0x2304=function(){return _0x560dcd;};return _0x2304();}async function loadCachedClient(){const _0x5ab60b=_0x513afc,_0x567f93={'giObS':function(_0x184cd3,_0x2b1a64){return _0x184cd3!==_0x2b1a64;}},_0x56cb76=await loadCachedData();if(_0x56cb76?.['origin']&&_0x567f93[_0x5ab60b(0x116)](_0x56cb76[_0x5ab60b(0x190)],currentOrigin))return null;return _0x56cb76?.['clientId']?{'clientId':_0x56cb76[_0x5ab60b(0x11a)],'clientSecret':_0x56cb76[_0x5ab60b(0x10d)]}:null;}async function saveCachedClient(_0x1074f4,_0x127b74){const _0x21413b=_0x513afc,_0x55e189={'gtWvH':function(_0x526296){return _0x526296();},'xIaOB':function(_0x5d826c,_0x55bb19,_0x5e0f81){return _0x5d826c(_0x55bb19,_0x5e0f81);},'QHZPR':function(_0x5392c0){return _0x5392c0();}},_0x18ee51=await _0x55e189['gtWvH'](loadCachedData),_0x452b83={..._0x18ee51,'origin':currentOrigin,'accessToken':_0x18ee51?.[_0x21413b(0x18e)]??'','clientId':_0x1074f4,'clientSecret':_0x127b74};await _0x55e189[_0x21413b(0x1a0)](mkdir,join(_0x55e189[_0x21413b(0x142)](homedir),_0x21413b(0x10c)),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x21413b(0x15f)](_0x452b83),{'mode':0x180});}async function loadCachedData(){const _0x1d4c84=_0x513afc,_0x1033c8={'gKkPv':function(_0x5a8bf1,_0x5a5057,_0x28c86d){return _0x5a8bf1(_0x5a5057,_0x28c86d);}};try{return JSON[_0x1d4c84(0x18a)](await _0x1033c8[_0x1d4c84(0x18f)](readFile,TOKEN_CACHE_PATH,_0x1d4c84(0x197)));}catch{return null;}}async function parseResponse(_0x170229){const _0x1c53cc=_0x513afc,_0x1ad6e1={'zMsOp':_0x1c53cc(0x158),'emfkq':_0x1c53cc(0x132),'fXSYB':_0x1c53cc(0x189)},_0x3b337f=_0x170229['headers'][_0x1c53cc(0x131)](_0x1c53cc(0x146))??'';if(_0x3b337f[_0x1c53cc(0x172)](_0x1ad6e1[_0x1c53cc(0x19b)])){const _0x3467f8=await _0x170229['text']();for(const _0xc0cd02 of _0x3467f8[_0x1c53cc(0x117)]('\x0a')){const _0x4e1347=_0xc0cd02['trim']();if(_0x4e1347['startsWith'](_0x1ad6e1[_0x1c53cc(0x141)])){const _0x1050f5=_0x4e1347[_0x1c53cc(0x13d)](_0x1c53cc(0x132)['length'])[_0x1c53cc(0x152)]();if(!_0x1050f5)continue;try{const _0x193641=JSON['parse'](_0x1050f5);if(_0x193641['id']!==undefined||_0x193641['error'])return _0x193641;}catch{}}}throw new Error(_0x1ad6e1['fXSYB']);}return _0x170229['json']();}function extractToken(_0x56010c){const _0x8798e0=_0x513afc,_0x3f4b63={'JgztL':function(_0x423ebb,_0x2d9985){return _0x423ebb===_0x2d9985;},'vJPHI':'text'};if(!_0x56010c)return null;const _0x53e2a2=_0x56010c[_0x8798e0(0x17a)];if(_0x53e2a2?.[_0x8798e0(0x196)]&&typeof _0x53e2a2[_0x8798e0(0x196)]==='string')return _0x53e2a2[_0x8798e0(0x196)];if(_0x56010c[_0x8798e0(0x191)]){const _0xc884f9=_0x56010c['content'];throw new Error('Server\x20returned\x20error:\x20'+(_0xc884f9?.[0x0]?.['text']??_0x8798e0(0x16d)));}const _0x40c67d=_0x56010c['content'];if(_0x40c67d)for(const _0x2077db of _0x40c67d){if(_0x3f4b63[_0x8798e0(0x162)](_0x2077db['type'],_0x3f4b63[_0x8798e0(0x15b)])&&_0x2077db[_0x8798e0(0x16f)]){try{const _0xc9f903=JSON[_0x8798e0(0x18a)](_0x2077db['text']);if(typeof _0xc9f903?.[_0x8798e0(0x196)]===_0x8798e0(0x178))return _0xc9f903['token'];}catch{}const _0xdbe108=_0x2077db[_0x8798e0(0x16f)][_0x8798e0(0x168)](/(rngr_[A-Za-z0-9_-]+)/);if(_0xdbe108)return _0xdbe108[0x1];}}return null;}
@@ -1 +1 @@
1
- (function(_0x1f2539,_0x576258){const _0x7a5be2=_0x3a3a,_0x41c4ac=_0x1f2539();while(!![]){try{const _0x1abcbb=-parseInt(_0x7a5be2(0x199))/0x1*(-parseInt(_0x7a5be2(0x16b))/0x2)+-parseInt(_0x7a5be2(0x18a))/0x3*(parseInt(_0x7a5be2(0x189))/0x4)+-parseInt(_0x7a5be2(0x186))/0x5*(-parseInt(_0x7a5be2(0x194))/0x6)+-parseInt(_0x7a5be2(0x19b))/0x7*(-parseInt(_0x7a5be2(0x191))/0x8)+-parseInt(_0x7a5be2(0x17f))/0x9*(-parseInt(_0x7a5be2(0x18f))/0xa)+parseInt(_0x7a5be2(0x18b))/0xb+parseInt(_0x7a5be2(0x187))/0xc*(-parseInt(_0x7a5be2(0x180))/0xd);if(_0x1abcbb===_0x576258)break;else _0x41c4ac['push'](_0x41c4ac['shift']());}catch(_0x3fbfbc){_0x41c4ac['push'](_0x41c4ac['shift']());}}}(_0x4968,0x53a21));function _0x3a3a(_0xa19923,_0xa36fb0){_0xa19923=_0xa19923-0x164;const _0x49686e=_0x4968();let _0x3a3a91=_0x49686e[_0xa19923];return _0x3a3a91;}import{join}from'path';import{existsSync}from'fs';import _0x561be8 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(_0x2d2d7a){const _0x48df8a=_0x3a3a,_0x231b61={'UBksf':function(_0x3d1fe0,_0x215813){return _0x3d1fe0(_0x215813);},'mNOju':function(_0x70877d,_0x241ead,_0x50ccea){return _0x70877d(_0x241ead,_0x50ccea);},'TaXNm':'project','UFaWv':'\x0a📦\x20Claude\x20Code\x20Plugin\x0a','igxPI':_0x48df8a(0x183),'TGWPN':'User\x20(available\x20in\x20all\x20your\x20projects)','uxHCP':'user','GUXpK':'✓\x20Marketplace\x20already\x20added','YBsmr':_0x48df8a(0x177),'GcyXS':'add','bjagm':_0x48df8a(0x16f),'zyYvb':_0x48df8a(0x17b),'yGGbP':'\x0aYou\x20can\x20install\x20manually\x20with:','qsLvU':_0x48df8a(0x179),'RNClQ':'install','xqzML':'ranger@trailhead','WqnZp':'❌\x20Failed\x20to\x20install\x20plugin:'},_0x15a3ef=await _0x231b61[_0x48df8a(0x174)](isPluginInstalled,_0x48df8a(0x172));if(_0x15a3ef)return console['log']('✓\x20Claude\x20Code\x20plugin\x20already\x20installed'),![];const _0x243da2=existsSync(_0x231b61['mNOju'](join,getProjectRoot(),'.claude'));let _0x524e46;if(_0x2d2d7a)_0x524e46=_0x2d2d7a;else{if(_0x243da2)_0x524e46=_0x231b61[_0x48df8a(0x16d)];else{console[_0x48df8a(0x173)](_0x231b61[_0x48df8a(0x19c)]);const _0x27beaa=await _0x561be8['prompt']([{'type':_0x48df8a(0x197),'name':_0x231b61[_0x48df8a(0x175)],'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x231b61[_0x48df8a(0x196)],'value':_0x231b61['uxHCP']},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x231b61['TaXNm']}],'default':_0x48df8a(0x16a)}]);_0x524e46=_0x27beaa['pluginScope'];}}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x524e46+_0x48df8a(0x18e));const _0x2be9dc=await isMarketplaceAdded('trailhead');let _0x3a4b96=_0x2be9dc;if(_0x2be9dc)console['log'](_0x231b61[_0x48df8a(0x190)]);else{const _0x5c99ba=await runClaudeCommand([_0x48df8a(0x176),_0x231b61[_0x48df8a(0x169)],_0x231b61['GcyXS'],_0x231b61[_0x48df8a(0x19d)]]);!_0x5c99ba[_0x48df8a(0x19e)]?(console[_0x48df8a(0x16e)](_0x231b61[_0x48df8a(0x171)],_0x5c99ba['error']),console[_0x48df8a(0x173)](_0x231b61[_0x48df8a(0x181)]),console[_0x48df8a(0x173)](_0x231b61[_0x48df8a(0x17d)]),console[_0x48df8a(0x173)](_0x48df8a(0x167)+_0x524e46)):_0x3a4b96=!![];}if(_0x3a4b96){const _0x2fca23=await runClaudeCommand(['plugin',_0x231b61['RNClQ'],_0x231b61[_0x48df8a(0x195)],_0x48df8a(0x170),_0x524e46]);if(!_0x2fca23[_0x48df8a(0x19e)])console['error'](_0x231b61['WqnZp'],_0x2fca23[_0x48df8a(0x16e)]),console['log'](_0x231b61['yGGbP']),console[_0x48df8a(0x173)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x524e46);else{console['log'](_0x48df8a(0x17a));const _0x5b61c6=[_0x48df8a(0x176),'enable',_0x231b61[_0x48df8a(0x195)]];_0x524e46===_0x48df8a(0x17c)&&_0x5b61c6[_0x48df8a(0x185)](_0x48df8a(0x170),_0x48df8a(0x17c));const _0x40932a=await runClaudeCommand(_0x5b61c6,{'captureOutput':!![]}),_0x33f9a5=_0x40932a[_0x48df8a(0x165)]?.[_0x48df8a(0x18c)](_0x48df8a(0x164));!_0x40932a['success']&&!_0x33f9a5?console['error'](_0x48df8a(0x19a),_0x40932a['error']):console[_0x48df8a(0x173)](_0x48df8a(0x166));}}return!![];}export async function ensureClaudeSkills(_0x446433){const _0xe5a3a8=_0x3a3a,_0x5e603e={'JauDJ':function(_0x406e30,_0x83c3a5){return _0x406e30(_0x83c3a5);},'NePrh':_0xe5a3a8(0x18d),'Lujhj':function(_0x488863,_0x5ed3ee){return _0x488863(_0x5ed3ee);},'JwmEX':function(_0x2f39e9,_0x41fe6c,_0x4c7b79,_0x4b1481){return _0x2f39e9(_0x41fe6c,_0x4c7b79,_0x4b1481);},'fMSEa':_0xe5a3a8(0x17c),'epCMy':function(_0x4a294a,_0x50f635){return _0x4a294a||_0x50f635;},'HjSsY':'.claude','zHwTf':function(_0x3fe729,_0x11315f){return _0x3fe729(_0x11315f);}},_0x3d2c83=_0x5e603e[_0xe5a3a8(0x198)](existsSync,join(_0x5e603e[_0xe5a3a8(0x198)](getSkillsDir,'user'),_0xe5a3a8(0x184),_0x5e603e['NePrh'])),_0x5eb9fb=_0x5e603e[_0xe5a3a8(0x192)](existsSync,_0x5e603e[_0xe5a3a8(0x168)](join,_0x5e603e['Lujhj'](getSkillsDir,_0x5e603e['fMSEa']),'ranger','SKILL.md'));if(_0x5e603e['epCMy'](_0x3d2c83,_0x5eb9fb))return console['log'](_0xe5a3a8(0x193)),![];const _0x224599=_0x5e603e[_0xe5a3a8(0x192)](existsSync,join(getProjectRoot(),_0x5e603e[_0xe5a3a8(0x16c)]));let _0x3ca160=!![];if(_0x446433)await skillup({'autoInstall':_0x446433,'suppressUsage':!![]});else{if(_0x224599)await _0x5e603e[_0xe5a3a8(0x178)](skillup,{'autoInstall':_0x5e603e[_0xe5a3a8(0x188)],'suppressUsage':!![]});else{const _0x29a650=await _0x561be8['prompt']([{'type':_0xe5a3a8(0x17e),'name':'wantsSkillup','message':_0xe5a3a8(0x182),'default':!![]}]);_0x3ca160=_0x29a650['wantsSkillup'],_0x3ca160&&await _0x5e603e[_0xe5a3a8(0x192)](skillup,{'suppressUsage':!![]});}}return _0x3ca160;}function _0x4968(){const _0xf4e5b4=['zHwTf','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','❌\x20Failed\x20to\x20add\x20marketplace:','project','qsLvU','confirm','9UZwISC','17933071qoeyfH','yGGbP','Would\x20you\x20like\x20to\x20install\x20skills?','pluginScope','ranger','push','5JgxgKb','12QCtvxt','fMSEa','208900QrABJi','3MaDUKC','4432934SVMhPM','includes','SKILL.md','\x20level)...\x0a','1989810YCEiIy','GUXpK','21656htdHGZ','Lujhj','✓\x20Ranger\x20skills\x20already\x20installed','2695374NfCQbp','xqzML','TGWPN','list','JauDJ','13555ZUvJTb','⚠\x20Failed\x20to\x20enable\x20plugin:','1379AqZBYq','UFaWv','bjagm','success','already\x20enabled','output','✓\x20Claude\x20Code\x20plugin\x20enabled','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','JwmEX','YBsmr','user','28hgzjGM','HjSsY','TaXNm','error','ranger-testing/trailhead','--scope','zyYvb','ranger@trailhead','log','UBksf','igxPI','plugin','marketplace'];_0x4968=function(){return _0xf4e5b4;};return _0x4968();}
1
+ (function(_0x1b025f,_0x1a4a29){const _0x802060=_0xa57b,_0x5b8718=_0x1b025f();while(!![]){try{const _0x2ea369=-parseInt(_0x802060(0x90))/0x1+parseInt(_0x802060(0x8c))/0x2+-parseInt(_0x802060(0x7b))/0x3*(-parseInt(_0x802060(0x7c))/0x4)+parseInt(_0x802060(0xa3))/0x5+parseInt(_0x802060(0x81))/0x6*(-parseInt(_0x802060(0x79))/0x7)+-parseInt(_0x802060(0x97))/0x8+parseInt(_0x802060(0x96))/0x9*(-parseInt(_0x802060(0x87))/0xa);if(_0x2ea369===_0x1a4a29)break;else _0x5b8718['push'](_0x5b8718['shift']());}catch(_0x3cd6ef){_0x5b8718['push'](_0x5b8718['shift']());}}}(_0x4ce9,0x3b70d));import{join}from'path';import{existsSync}from'fs';import _0x46e1c4 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';function _0x4ce9(){const _0x41c0c2=['190217NxfHVX','confirm','❌\x20Failed\x20to\x20install\x20plugin:','prompt','push','log','18pmImaf','3359456rmYrKb','uiQuQ','✓\x20Ranger\x20skills\x20already\x20installed','WZiei','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','✓\x20Marketplace\x20already\x20added','ranger-testing/trailhead','user','eECyq','✓\x20Claude\x20Code\x20plugin\x20enabled','already\x20enabled','wantsSkillup','1953365HgQHTD','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','pluginScope','User\x20(available\x20in\x20all\x20your\x20projects)','sMHvP','zcbUy','HqCxO','atujp','ranger','kqlGb','OrXjs','SKILL.md','ZzMvu','includes','457282kcsrzF','list','766911zhLtQP','4obzhMN','⚠\x20Failed\x20to\x20enable\x20plugin:','add','--scope','marketplace','18hmDeCX','error','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','WfBQp','\x20level)...\x0a','OuuWS','349870nQYhxK','Would\x20you\x20like\x20to\x20install\x20skills?','BlIKI','success','ranger@trailhead','946520ztYaqs','output','project','\x0aYou\x20can\x20install\x20manually\x20with:'];_0x4ce9=function(){return _0x41c0c2;};return _0x4ce9();}export async function ensureClaudePlugin(_0x59b842){const _0xdef918=_0xa57b,_0x427d78={'OuuWS':_0xdef918(0x83),'zcbUy':function(_0x1c337c){return _0x1c337c();},'zZKnM':'project','WZiei':'\x0a📦\x20Claude\x20Code\x20Plugin\x0a','HkPBZ':_0xdef918(0x7a),'GwPvQ':'Where\x20should\x20the\x20plugin\x20be\x20installed?','eVjYG':'trailhead','ZzMvu':'plugin','YVVbM':_0xdef918(0x80),'ALVmv':'❌\x20Failed\x20to\x20add\x20marketplace:','uiQuQ':_0xdef918(0x9b),'atujp':'ranger@trailhead','OrXjs':_0xdef918(0x7f),'GwVWx':_0xdef918(0x8f),'WbJNr':'enable','fNSma':function(_0x2b0b33,_0x1f736b){return _0x2b0b33===_0x1f736b;},'WfBQp':_0xdef918(0xa1)},_0x26f143=await isPluginInstalled(_0xdef918(0x8b));if(_0x26f143)return console[_0xdef918(0x95)](_0x427d78[_0xdef918(0x86)]),![];const _0x409aad=existsSync(join(_0x427d78[_0xdef918(0xa8)](getProjectRoot),'.claude'));let _0x4f1ce4;if(_0x59b842)_0x4f1ce4=_0x59b842;else{if(_0x409aad)_0x4f1ce4=_0x427d78['zZKnM'];else{console['log'](_0x427d78[_0xdef918(0x9a)]);const _0x1f28cd=await _0x46e1c4[_0xdef918(0x93)]([{'type':_0x427d78['HkPBZ'],'name':'pluginScope','message':_0x427d78['GwPvQ'],'choices':[{'name':_0xdef918(0xa6),'value':'user'},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x427d78['zZKnM']}],'default':'user'}]);_0x4f1ce4=_0x1f28cd[_0xdef918(0xa5)];}}console[_0xdef918(0x95)]('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x4f1ce4+_0xdef918(0x85));const _0x44140f=await isMarketplaceAdded(_0x427d78['eVjYG']);let _0x6a1b59=_0x44140f;if(_0x44140f)console['log'](_0xdef918(0x9c));else{const _0xd30c76=await runClaudeCommand([_0x427d78[_0xdef918(0x77)],_0x427d78['YVVbM'],_0xdef918(0x7e),_0xdef918(0x9d)]);!_0xd30c76[_0xdef918(0x8a)]?(console[_0xdef918(0x82)](_0x427d78['ALVmv'],_0xd30c76['error']),console['log'](_0xdef918(0x8f)),console[_0xdef918(0x95)](_0x427d78[_0xdef918(0x98)]),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x4f1ce4)):_0x6a1b59=!![];}if(_0x6a1b59){const _0x46e007=await runClaudeCommand([_0x427d78['ZzMvu'],'install',_0x427d78[_0xdef918(0xaa)],_0x427d78[_0xdef918(0x75)],_0x4f1ce4]);if(!_0x46e007[_0xdef918(0x8a)])console['error'](_0xdef918(0x92),_0x46e007['error']),console['log'](_0x427d78['GwVWx']),console['log'](_0xdef918(0xa4)+_0x4f1ce4);else{console[_0xdef918(0x95)]('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x1f7f4b=['plugin',_0x427d78['WbJNr'],_0x427d78[_0xdef918(0xaa)]];_0x427d78['fNSma'](_0x4f1ce4,'project')&&_0x1f7f4b[_0xdef918(0x94)](_0xdef918(0x7f),'project');const _0xaf3f76=await runClaudeCommand(_0x1f7f4b,{'captureOutput':!![]}),_0x1d5f98=_0xaf3f76[_0xdef918(0x8d)]?.[_0xdef918(0x78)](_0x427d78[_0xdef918(0x84)]);!_0xaf3f76[_0xdef918(0x8a)]&&!_0x1d5f98?console[_0xdef918(0x82)](_0xdef918(0x7d),_0xaf3f76['error']):console[_0xdef918(0x95)](_0xdef918(0xa0));}}return!![];}function _0xa57b(_0x7df520,_0x3771f9){_0x7df520=_0x7df520-0x74;const _0x4ce9f0=_0x4ce9();let _0xa57b9a=_0x4ce9f0[_0x7df520];return _0xa57b9a;}export async function ensureClaudeSkills(_0x253a1b){const _0x3b8a79=_0xa57b,_0x54e87e={'eECyq':_0x3b8a79(0x9e),'HqCxO':_0x3b8a79(0x76),'XIiIQ':function(_0x4b4830,_0x3d9197){return _0x4b4830(_0x3d9197);},'VQYuX':'project','rIYOU':_0x3b8a79(0xab),'LbKlc':function(_0x42a8d7,_0x192ea0){return _0x42a8d7||_0x192ea0;},'dqPhh':_0x3b8a79(0x99),'sMHvP':'.claude','kqlGb':_0x3b8a79(0x91),'BlIKI':function(_0xb9d386,_0x16b9d9){return _0xb9d386(_0x16b9d9);}},_0x5655ad=existsSync(join(getSkillsDir(_0x54e87e[_0x3b8a79(0x9f)]),'ranger',_0x54e87e[_0x3b8a79(0xa9)])),_0x917605=_0x54e87e['XIiIQ'](existsSync,join(getSkillsDir(_0x54e87e['VQYuX']),_0x54e87e['rIYOU'],'SKILL.md'));if(_0x54e87e['LbKlc'](_0x5655ad,_0x917605))return console['log'](_0x54e87e['dqPhh']),![];const _0x3855ca=existsSync(join(getProjectRoot(),_0x54e87e[_0x3b8a79(0xa7)]));let _0x40eb10=!![];if(_0x253a1b)await _0x54e87e['XIiIQ'](skillup,{'autoInstall':_0x253a1b,'suppressUsage':!![]});else{if(_0x3855ca)await skillup({'autoInstall':_0x3b8a79(0x8e),'suppressUsage':!![]});else{const _0x184cb2=await _0x46e1c4['prompt']([{'type':_0x54e87e[_0x3b8a79(0x74)],'name':_0x3b8a79(0xa2),'message':_0x3b8a79(0x88),'default':!![]}]);_0x40eb10=_0x184cb2[_0x3b8a79(0xa2)],_0x40eb10&&await _0x54e87e[_0x3b8a79(0x89)](skillup,{'suppressUsage':!![]});}}return _0x40eb10;}
@@ -1 +1 @@
1
- (function(_0x2ba355,_0x131420){const _0x118834=_0x6405,_0x1278ae=_0x2ba355();while(!![]){try{const _0x4e35b4=parseInt(_0x118834(0x162))/0x1*(-parseInt(_0x118834(0x155))/0x2)+-parseInt(_0x118834(0x156))/0x3*(parseInt(_0x118834(0x15e))/0x4)+-parseInt(_0x118834(0x161))/0x5+parseInt(_0x118834(0x14f))/0x6+parseInt(_0x118834(0x152))/0x7+-parseInt(_0x118834(0x14e))/0x8+parseInt(_0x118834(0x150))/0x9;if(_0x4e35b4===_0x131420)break;else _0x1278ae['push'](_0x1278ae['shift']());}catch(_0x4bd049){_0x1278ae['push'](_0x1278ae['shift']());}}}(_0x4228,0x6d0f8));import{join}from'path';function _0x6405(_0x144c30,_0x53cc3f){_0x144c30=_0x144c30-0x14d;const _0x422854=_0x4228();let _0x6405e7=_0x422854[_0x144c30];return _0x6405e7;}import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';function _0x4228(){const _0x18eacb=['opencode.json','GdNGu','error','Where\x20should\x20the\x20plugin\x20be\x20installed?','parse','6652eLCRDA','project','user','4247660xamejo','1MXkofU','isArray','2518264FLGDbB','889092FfjeTZ','12155454aDWIbq','log','3386733rZYyXG','$schema','pEsci','201022VTYfJh','489QKtcBh','plugin','lcwSR'];_0x4228=function(){return _0x18eacb;};return _0x4228();}import _0x1116b0 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x119a60){const _0x6462e7=_0x6405,_0x37a626={'lcwSR':function(_0x13d958,_0x1fa573,_0x3e37af){return _0x13d958(_0x1fa573,_0x3e37af);},'wFDJP':function(_0x19355d,_0x5bd9ef){return _0x19355d(_0x5bd9ef);},'gTLgw':'pluginScope','pEsci':'User\x20(available\x20in\x20all\x20your\x20projects)','oGGbZ':'Project\x20(shared\x20with\x20team\x20via\x20git)','tKNil':'project','vOnCy':'user','MJeXu':'@ranger-testing/opencode-plugin','hNiAp':'utf-8','GdNGu':function(_0xba1985,_0x404a6c){return _0xba1985(_0x404a6c);}},_0x17c88a=existsSync(_0x37a626[_0x6462e7(0x158)](join,_0x37a626['wFDJP'](getOpencodeConfigDir,_0x6462e7(0x15f)),_0x6462e7(0x159)));let _0x411173;if(_0x119a60)_0x411173=_0x119a60;else{if(_0x17c88a)_0x411173='project';else{console[_0x6462e7(0x151)]('\x0a📦\x20OpenCode\x20Plugin\x0a');const _0x1fe839=await _0x1116b0['prompt']([{'type':'list','name':_0x37a626['gTLgw'],'message':_0x6462e7(0x15c),'choices':[{'name':_0x37a626[_0x6462e7(0x154)],'value':_0x6462e7(0x160)},{'name':_0x37a626['oGGbZ'],'value':_0x37a626['tKNil']}],'default':_0x37a626['vOnCy']}]);_0x411173=_0x1fe839['pluginScope'];}}const _0x8799ea=_0x37a626[_0x6462e7(0x158)](join,getOpencodeConfigDir(_0x411173),_0x6462e7(0x159)),_0x45520e=_0x37a626['MJeXu'],_0x4e8e9e='https://opencode.ai/config.json';let _0x626c10={};if(existsSync(_0x8799ea))try{const _0x4d253d=await readFile(_0x8799ea,_0x37a626['hNiAp']);_0x626c10=JSON[_0x6462e7(0x15d)](_0x4d253d);}catch(_0x5d9d9f){return console[_0x6462e7(0x15b)]('⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.'),{'configured':![],'scope':_0x411173,'error':'Failed\x20to\x20read\x20opencode.json','details':_0x5d9d9f};}const _0x4c1999=Array[_0x6462e7(0x14d)](_0x626c10['plugin'])?_0x626c10['plugin']:[];if(_0x4c1999['includes'](_0x45520e))return console['log']('✓\x20OpenCode\x20plugin\x20already\x20configured'),{'configured':![],'scope':_0x411173};return _0x626c10[_0x6462e7(0x153)]=_0x626c10['$schema']||_0x4e8e9e,_0x626c10[_0x6462e7(0x157)]=[..._0x4c1999,_0x45520e],await _0x37a626['lcwSR'](mkdir,_0x37a626[_0x6462e7(0x15a)](getOpencodeConfigDir,_0x411173),{'recursive':!![]}),await writeFile(_0x8799ea,JSON['stringify'](_0x626c10,null,0x2)+'\x0a'),console[_0x6462e7(0x151)]('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0x411173};}
1
+ (function(_0x285896,_0x31102a){const _0x2039bc=_0x3052,_0x11b12e=_0x285896();while(!![]){try{const _0x563a87=parseInt(_0x2039bc(0x175))/0x1+-parseInt(_0x2039bc(0x176))/0x2+-parseInt(_0x2039bc(0x185))/0x3+-parseInt(_0x2039bc(0x171))/0x4*(parseInt(_0x2039bc(0x170))/0x5)+-parseInt(_0x2039bc(0x181))/0x6+parseInt(_0x2039bc(0x179))/0x7+-parseInt(_0x2039bc(0x17e))/0x8;if(_0x563a87===_0x31102a)break;else _0x11b12e['push'](_0x11b12e['shift']());}catch(_0x4d5eaa){_0x11b12e['push'](_0x11b12e['shift']());}}}(_0x1e13,0xe4090));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x4a82be from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';function _0x3052(_0x445785,_0x306237){_0x445785=_0x445785-0x16c;const _0x1e133f=_0x1e13();let _0x305263=_0x1e133f[_0x445785];return _0x305263;}export async function ensureOpencodePluginConfig(_0x11d501){const _0x86511f=_0x3052,_0x3ed3c7={'cvBkN':function(_0x3dc811,_0x8827c5){return _0x3dc811(_0x8827c5);},'aEulp':_0x86511f(0x17d),'eICkn':_0x86511f(0x17b),'cVaPk':_0x86511f(0x16e),'XXVCj':function(_0x69394c,_0x462940){return _0x69394c(_0x462940);},'NvpTf':'https://opencode.ai/config.json','gYwLZ':function(_0x3eed3a,_0xd503f1,_0x53772d){return _0x3eed3a(_0xd503f1,_0x53772d);},'eHobk':function(_0x4a6396,_0x4d9df5,_0x3f7f6c){return _0x4a6396(_0x4d9df5,_0x3f7f6c);}},_0x5a4626=_0x3ed3c7[_0x86511f(0x173)](existsSync,join(getOpencodeConfigDir(_0x3ed3c7[_0x86511f(0x172)]),'opencode.json'));let _0x3c220d;if(_0x11d501)_0x3c220d=_0x11d501;else{if(_0x5a4626)_0x3c220d=_0x3ed3c7[_0x86511f(0x172)];else{console[_0x86511f(0x17f)]('\x0a📦\x20OpenCode\x20Plugin\x0a');const _0x3b1505=await _0x4a82be[_0x86511f(0x177)]([{'type':'list','name':_0x86511f(0x182),'message':_0x86511f(0x16d),'choices':[{'name':_0x3ed3c7[_0x86511f(0x183)],'value':_0x3ed3c7['cVaPk']},{'name':_0x86511f(0x174),'value':_0x86511f(0x17d)}],'default':_0x86511f(0x16e)}]);_0x3c220d=_0x3b1505['pluginScope'];}}const _0x2f8b16=join(_0x3ed3c7['XXVCj'](getOpencodeConfigDir,_0x3c220d),'opencode.json'),_0x19e94a='@ranger-testing/opencode-plugin',_0x567d26=_0x3ed3c7[_0x86511f(0x16f)];let _0x5ec644={};if(existsSync(_0x2f8b16))try{const _0x3a65dd=await _0x3ed3c7[_0x86511f(0x184)](readFile,_0x2f8b16,_0x86511f(0x180));_0x5ec644=JSON['parse'](_0x3a65dd);}catch(_0x295df0){return console['error']('⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.'),{'configured':![],'scope':_0x3c220d,'error':'Failed\x20to\x20read\x20opencode.json','details':_0x295df0};}const _0x43589b=Array[_0x86511f(0x16c)](_0x5ec644[_0x86511f(0x178)])?_0x5ec644[_0x86511f(0x178)]:[];if(_0x43589b['includes'](_0x19e94a))return console[_0x86511f(0x17f)]('✓\x20OpenCode\x20plugin\x20already\x20configured'),{'configured':![],'scope':_0x3c220d};return _0x5ec644['$schema']=_0x5ec644['$schema']||_0x567d26,_0x5ec644['plugin']=[..._0x43589b,_0x19e94a],await _0x3ed3c7['gYwLZ'](mkdir,_0x3ed3c7['XXVCj'](getOpencodeConfigDir,_0x3c220d),{'recursive':!![]}),await _0x3ed3c7[_0x86511f(0x17a)](writeFile,_0x2f8b16,JSON[_0x86511f(0x17c)](_0x5ec644,null,0x2)+'\x0a'),console['log']('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0x3c220d};}function _0x1e13(){const _0x42568d=['1391538HREQxF','isArray','Where\x20should\x20the\x20plugin\x20be\x20installed?','user','NvpTf','195SFSsQl','3688gmmGdC','aEulp','cvBkN','Project\x20(shared\x20with\x20team\x20via\x20git)','1510707ljdFrj','1613660ukYDzG','prompt','plugin','8742041PXbtQb','eHobk','User\x20(available\x20in\x20all\x20your\x20projects)','stringify','project','715616JVhbeJ','log','utf-8','2576712vJZHPH','pluginScope','eICkn','gYwLZ'];_0x1e13=function(){return _0x42568d;};return _0x1e13();}
@@ -1 +1 @@
1
- (function(_0x2e2267,_0x5b5681){const _0x50f97c=_0x5e58,_0x49b6e1=_0x2e2267();while(!![]){try{const _0x42bf11=parseInt(_0x50f97c(0x8d))/0x1*(parseInt(_0x50f97c(0xa9))/0x2)+parseInt(_0x50f97c(0xb1))/0x3*(-parseInt(_0x50f97c(0x7f))/0x4)+parseInt(_0x50f97c(0xa0))/0x5+parseInt(_0x50f97c(0x7a))/0x6*(-parseInt(_0x50f97c(0x9e))/0x7)+parseInt(_0x50f97c(0xa2))/0x8+parseInt(_0x50f97c(0x96))/0x9*(parseInt(_0x50f97c(0x93))/0xa)+-parseInt(_0x50f97c(0x8c))/0xb;if(_0x42bf11===_0x5b5681)break;else _0x49b6e1['push'](_0x49b6e1['shift']());}catch(_0x444e4c){_0x49b6e1['push'](_0x49b6e1['shift']());}}}(_0x4ed6,0x3ab62));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';function _0x4ed6(){const _0x54e8bf=['success','trackPhaseEnd','2687663EXrqIh','21617GmlfJm','log','ZwnFN','vnpQc','dir_setup','\x22:\x20','130FsyVzl','KOLwt','filter','107703ktaRGn','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','add','No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','ranger-testing/trailhead','path','skills','hDGJn','126476PNttrT','auth.json.enc','257540oDVPLC','✓\x20Claude\x20Code\x20plugin\x20installed','1925288nKAgdD','skipChromium','✓\x20Active\x20profile:\x20','trackPhaseStart','QTcVN','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','Nqsln','22JXpAfO','message','RLIlI','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','oYnvZ','Failed\x20to\x20install\x20plugin:','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','name','225HtFSVX','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','isDirectory','BEkrk','ranger@trailhead','AnSIO','profile_activate','baseUrl','length','plugin','54vujayk','auth.json','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','CcAom','join','2032IXlSli','auth','FIIKx','bxESN','BxkDz','vRjYL','XEwnP','kjKES','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','install'];_0x4ed6=function(){return _0x54e8bf;};return _0x4ed6();}function _0x5e58(_0x1041d4,_0x595761){_0x1041d4=_0x1041d4-0x77;const _0x4ed61b=_0x4ed6();let _0x5e5861=_0x4ed61b[_0x1041d4];return _0x5e5861;}import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x1d503f){const _0xd5b240=_0x5e58,_0x5248e9={'oYnvZ':function(_0x28e1f5){return _0x28e1f5();},'hDGJn':function(_0x43ab79,_0x491c87,_0x7763ee){return _0x43ab79(_0x491c87,_0x7763ee);},'jhWDs':function(_0x3bbf6a,_0x76c3d7){return _0x3bbf6a+_0x76c3d7;},'bxESN':function(_0x19ef5e,_0x3ffe83){return _0x19ef5e===_0x3ffe83;},'ZwnFN':function(_0x324fa3,_0x47d93f){return _0x324fa3===_0x47d93f;}},_0x1693a9=_0x5248e9[_0xd5b240(0xad)](getRangerDir),_0x466070=join(_0x1693a9,'ci');if(_0x1d503f){const _0x728d54=_0x5248e9['hDGJn'](join,_0x466070,_0x1d503f);return{'name':_0x1d503f,'path':_0x728d54};}if(!existsSync(_0x466070))throw new Error(_0x5248e9['jhWDs'](_0xd5b240(0x99),'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.'));const _0x222554=await _0x5248e9[_0xd5b240(0x9d)](readdir,_0x466070,{'withFileTypes':!![]}),_0x525b5b=_0x222554[_0xd5b240(0x95)](_0x42ff93=>_0x42ff93[_0xd5b240(0xb3)]())['map'](_0x37d794=>_0x37d794['name']);if(_0x5248e9[_0xd5b240(0x82)](_0x525b5b[_0xd5b240(0x78)],0x0))throw new Error(_0xd5b240(0x87)+_0xd5b240(0x97));if(_0x5248e9[_0xd5b240(0x8f)](_0x525b5b['length'],0x1)){const _0x13d48c=_0x525b5b[0x0];return console['log']('Auto-detected\x20CI\x20profile:\x20'+_0x13d48c),{'name':_0x13d48c,'path':join(_0x466070,_0x13d48c)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x525b5b[_0xd5b240(0x7e)](',\x20')+_0xd5b240(0xac));}async function installPluginNonInteractive(){const _0x52df87=_0x5e58,_0x102930={'XEwnP':_0x52df87(0xb5),'CcAom':_0x52df87(0x88),'vnpQc':_0x52df87(0x79),'Aowdk':_0x52df87(0x98),'ixeMd':_0x52df87(0xb2),'WBYMQ':_0x52df87(0xaf),'UprcT':_0x52df87(0xa1)},_0xd2905e=await isPluginInstalled(_0x102930[_0x52df87(0x85)]);if(_0xd2905e)return console['log'](_0x102930[_0x52df87(0x7d)]),![];console[_0x52df87(0x8e)]('Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...');const _0x29b03a=await isMarketplaceAdded('trailhead');let _0x4a3977=_0x29b03a;if(_0x29b03a)console[_0x52df87(0x8e)]('✓\x20Marketplace\x20already\x20added');else{const _0x4f42ed=await runClaudeCommand([_0x102930[_0x52df87(0x90)],'marketplace',_0x102930['Aowdk'],_0x52df87(0x9a)]);!_0x4f42ed[_0x52df87(0x8a)]?(console['error']('Failed\x20to\x20add\x20marketplace:',_0x4f42ed['error']),console['log'](_0x102930['ixeMd'])):_0x4a3977=!![];}if(_0x4a3977){const _0x7cd700=await runClaudeCommand([_0x52df87(0x79),_0x52df87(0x89),_0x52df87(0xb5),'--scope','project']);!_0x7cd700[_0x52df87(0x8a)]?(console['error'](_0x52df87(0xae),_0x7cd700['error']),console['log'](_0x102930['WBYMQ'])):console['log'](_0x102930['UprcT']);}return!![];}export async function setupCi(_0x342b25,_0x45d370,_0x58b9cd){const _0x3b2ed1=_0x5e58,_0x3a3c63={'RLIlI':'\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','sQPAF':_0x3b2ed1(0x80),'OgYSA':_0x3b2ed1(0x91),'kjKES':function(_0x19aab6,_0x9e9c8e,_0x48b4da){return _0x19aab6(_0x9e9c8e,_0x48b4da);},'wlGTM':'sessions','BEkrk':function(_0x2b22cf,_0x491c0b){return _0x2b22cf(_0x491c0b);},'AnSIO':function(_0x11f8fe){return _0x11f8fe();},'vRjYL':function(_0x2c05bf,_0x5686ef){return _0x2c05bf(_0x5686ef);},'Nqsln':'settings.json','SuRXl':_0x3b2ed1(0x9f),'BxkDz':function(_0x35bc90,_0x4206e3){return _0x35bc90(_0x4206e3);},'QTcVN':'profile_activate','KOLwt':_0x3b2ed1(0x9c),'FIIKx':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console['log'](_0x3a3c63[_0x3b2ed1(0xab)]),_0x58b9cd?.[_0x3b2ed1(0xa5)](_0x3a3c63['sQPAF']),await authenticate(_0x342b25),_0x58b9cd?.['trackPhaseEnd'](_0x3b2ed1(0x80)),_0x58b9cd?.[_0x3b2ed1(0xa5)](_0x3a3c63['OgYSA']);const {path:_0x10991b,installed:_0x9db16e}=await ensureRangerDir();await writeRangerGitignore(_0x10991b);const _0xa3eccb=_0x3a3c63['kjKES'](join,_0x10991b,_0x3a3c63['wlGTM']);!_0x3a3c63[_0x3b2ed1(0xb4)](existsSync,_0xa3eccb)&&await mkdir(_0xa3eccb,{'recursive':!![]});_0x58b9cd?.[_0x3b2ed1(0x8b)]('dir_setup',{'installed':_0x9db16e}),_0x58b9cd?.[_0x3b2ed1(0xa5)]('chromium');let _0x448f48=![];_0x45d370?.[_0x3b2ed1(0xa3)]?console['log'](_0x3b2ed1(0xa7)):_0x448f48=await _0x3a3c63[_0x3b2ed1(0xb6)](ensureChromium);_0x58b9cd?.[_0x3b2ed1(0x8b)]('chromium',{'installed':_0x448f48,'skipped':!!_0x45d370?.['skipChromium']}),_0x58b9cd?.['trackPhaseStart'](_0x3b2ed1(0xb7));const _0x5c8304=await _0x3a3c63[_0x3b2ed1(0x84)](findCiProfile,_0x45d370?.['profile']);let _0x7c7f35=![];_0x45d370?.['baseUrl']&&(await _0x3a3c63['kjKES'](mkdir,_0x5c8304[_0x3b2ed1(0x9b)],{'recursive':!![]}),await saveSettings(_0x5c8304[_0x3b2ed1(0xb0)],{'baseUrl':_0x45d370[_0x3b2ed1(0x77)],'headless':!![]}),console[_0x3b2ed1(0x8e)]('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x45d370[_0x3b2ed1(0x77)]),_0x7c7f35=!![]);const _0x5b1beb=_0x3a3c63['kjKES'](join,_0x5c8304[_0x3b2ed1(0x9b)],_0x3a3c63[_0x3b2ed1(0xa8)]);if(!_0x3a3c63['BEkrk'](existsSync,_0x5b1beb)&&!_0x7c7f35)throw new Error('CI\x20profile\x20\x22'+_0x5c8304[_0x3b2ed1(0xb0)]+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x291b84=_0x3a3c63[_0x3b2ed1(0x86)](join,_0x5c8304[_0x3b2ed1(0x9b)],_0x3b2ed1(0x7b)),_0x210749=join(_0x5c8304['path'],_0x3a3c63['SuRXl']),_0x4bfb6d=_0x3a3c63['BEkrk'](existsSync,_0x291b84),_0x10d6d0=existsSync(_0x210749);if(_0x10d6d0)try{const _0x51c903=await getToken();if(!_0x51c903)throw new Error('No\x20API\x20token\x20available\x20for\x20decryption');const _0xbb6912=await _0x3a3c63[_0x3b2ed1(0x84)](readFile,_0x210749);decrypt(_0xbb6912,_0x51c903),console[_0x3b2ed1(0x8e)]('✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)');}catch(_0x1f936b){const _0x52f135=_0x1f936b instanceof Error?_0x1f936b[_0x3b2ed1(0xaa)]:_0x3a3c63[_0x3b2ed1(0x83)](String,_0x1f936b);throw new Error('Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22'+_0x5c8304[_0x3b2ed1(0xb0)]+_0x3b2ed1(0x92)+_0x52f135);}else _0x4bfb6d?console['log']('✓\x20Auth\x20state\x20found'):console['log'](_0x3b2ed1(0x7c));await _0x3a3c63['BxkDz'](writeActiveProfileName,_0x5c8304['name']),console[_0x3b2ed1(0x8e)](_0x3b2ed1(0xa4)+_0x5c8304['name']),_0x58b9cd?.[_0x3b2ed1(0x8b)](_0x3a3c63[_0x3b2ed1(0xa6)],{'profileName':_0x5c8304[_0x3b2ed1(0xb0)],'hasAuth':_0x4bfb6d,'hasEncryptedAuth':_0x10d6d0,'createdSettings':_0x7c7f35}),_0x58b9cd?.[_0x3b2ed1(0xa5)](_0x3b2ed1(0x79));const _0xcf7555=await _0x3a3c63[_0x3b2ed1(0xb6)](installPluginNonInteractive);_0x58b9cd?.['trackPhaseEnd'](_0x3b2ed1(0x79),{'installed':_0xcf7555}),_0x58b9cd?.['trackPhaseStart'](_0x3a3c63[_0x3b2ed1(0x94)]),await skillup({'autoInstall':'project'}),_0x58b9cd?.[_0x3b2ed1(0x8b)]('skills'),console[_0x3b2ed1(0x8e)](_0x3a3c63[_0x3b2ed1(0x81)]);}
1
+ (function(_0x2ffb8a,_0x563eeb){const _0x53f008=_0x58af,_0x5ae661=_0x2ffb8a();while(!![]){try{const _0x4bedd0=parseInt(_0x53f008(0x11a))/0x1+parseInt(_0x53f008(0x125))/0x2+parseInt(_0x53f008(0x13c))/0x3*(-parseInt(_0x53f008(0x135))/0x4)+parseInt(_0x53f008(0x124))/0x5*(-parseInt(_0x53f008(0x11d))/0x6)+-parseInt(_0x53f008(0x12a))/0x7+parseInt(_0x53f008(0x116))/0x8*(parseInt(_0x53f008(0x13e))/0x9)+-parseInt(_0x53f008(0x12d))/0xa*(-parseInt(_0x53f008(0x143))/0xb);if(_0x4bedd0===_0x563eeb)break;else _0x5ae661['push'](_0x5ae661['shift']());}catch(_0x45770b){_0x5ae661['push'](_0x5ae661['shift']());}}}(_0x5cee,0x55306));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';function _0x58af(_0x298357,_0x24ae3e){_0x298357=_0x298357-0x112;const _0x5cee6e=_0x5cee();let _0x58afbb=_0x5cee6e[_0x298357];return _0x58afbb;}import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x53e7eb){const _0x41d390=_0x58af,_0x12759e={'XOZUp':function(_0x241ece,_0x50bd86,_0x1a78cf){return _0x241ece(_0x50bd86,_0x1a78cf);},'AWKUp':function(_0x37608c,_0x29e48a){return _0x37608c===_0x29e48a;},'qctPd':_0x41d390(0x12b),'AkERP':'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','tvObO':function(_0x20d57d,_0x159f66){return _0x20d57d===_0x159f66;}},_0x529e84=getRangerDir(),_0x9a7154=_0x12759e['XOZUp'](join,_0x529e84,'ci');if(_0x53e7eb){const _0x73b09e=join(_0x9a7154,_0x53e7eb);return{'name':_0x53e7eb,'path':_0x73b09e};}if(!existsSync(_0x9a7154))throw new Error('No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a'+_0x41d390(0x112));const _0x3e09ce=await _0x12759e[_0x41d390(0x149)](readdir,_0x9a7154,{'withFileTypes':!![]}),_0x59da0c=_0x3e09ce['filter'](_0x4a31e4=>_0x4a31e4[_0x41d390(0x128)]())[_0x41d390(0x120)](_0x5bd98f=>_0x5bd98f['name']);if(_0x12759e['AWKUp'](_0x59da0c[_0x41d390(0x133)],0x0))throw new Error(_0x12759e[_0x41d390(0x11b)]+_0x12759e['AkERP']);if(_0x12759e[_0x41d390(0x126)](_0x59da0c[_0x41d390(0x133)],0x1)){const _0xc4987=_0x59da0c[0x0];return console['log'](_0x41d390(0x144)+_0xc4987),{'name':_0xc4987,'path':join(_0x9a7154,_0xc4987)};}throw new Error(_0x41d390(0x114)+_0x59da0c['join'](',\x20')+_0x41d390(0x136));}async function installPluginNonInteractive(){const _0x5c3a63=_0x58af,_0x916166={'AhjFB':'ranger@trailhead','wlfiu':function(_0x44b39a,_0x44cf18){return _0x44b39a(_0x44cf18);},'upYhg':_0x5c3a63(0x119),'uFUSC':'✓\x20Marketplace\x20already\x20added','tKYRd':_0x5c3a63(0x132),'Rsogg':'ranger-testing/trailhead','xLBxJ':'Failed\x20to\x20add\x20marketplace:','SmseG':_0x5c3a63(0x12f),'APjVQ':'install','HIuta':_0x5c3a63(0x13d),'WcyUf':_0x5c3a63(0x122),'LxJJj':'✓\x20Claude\x20Code\x20plugin\x20installed'},_0x242f13=await isPluginInstalled(_0x916166['AhjFB']);if(_0x242f13)return console[_0x5c3a63(0x123)]('✓\x20Claude\x20Code\x20plugin\x20already\x20installed'),![];console['log']('Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...');const _0x52525e=await _0x916166['wlfiu'](isMarketplaceAdded,_0x916166['upYhg']);let _0x23bab3=_0x52525e;if(_0x52525e)console['log'](_0x916166['uFUSC']);else{const _0x1289a9=await runClaudeCommand(['plugin','marketplace',_0x916166['tKYRd'],_0x916166[_0x5c3a63(0x12c)]]);!_0x1289a9['success']?(console[_0x5c3a63(0x12e)](_0x916166['xLBxJ'],_0x1289a9['error']),console[_0x5c3a63(0x123)]('You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead')):_0x23bab3=!![];}if(_0x23bab3){const _0xc22c3a=await runClaudeCommand([_0x916166['SmseG'],_0x916166['APjVQ'],_0x916166[_0x5c3a63(0x11c)],_0x916166['HIuta'],_0x916166['WcyUf']]);!_0xc22c3a[_0x5c3a63(0x11f)]?(console[_0x5c3a63(0x12e)]('Failed\x20to\x20install\x20plugin:',_0xc22c3a[_0x5c3a63(0x12e)]),console['log'](_0x5c3a63(0x117))):console['log'](_0x916166[_0x5c3a63(0x145)]);}return!![];}export async function setupCi(_0x557356,_0x2caad1,_0x1da3e2){const _0xbcbcd9=_0x58af,_0x405d0a={'buFqx':'auth','ecBRK':function(_0x14bcd1,_0xa70c7a){return _0x14bcd1(_0xa70c7a);},'PLLEo':function(_0x3a2d18,_0x18e4b7,_0x1fd106){return _0x3a2d18(_0x18e4b7,_0x1fd106);},'fJMhn':'chromium','ZsRyE':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','gqNIT':function(_0x228048){return _0x228048();},'ernmL':'profile_activate','tCiqq':'auth.json','qNvaK':'auth.json.enc','EoPfO':function(_0x803c3a,_0x38b546){return _0x803c3a(_0x38b546);},'LOeaa':'No\x20API\x20token\x20available\x20for\x20decryption','zOfSA':function(_0x287f98,_0x5e1742){return _0x287f98(_0x5e1742);},'tVlOk':function(_0xc6c255,_0x16b734){return _0xc6c255 instanceof _0x16b734;},'JxJvE':_0xbcbcd9(0x134),'UNBbT':'\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','nkfEG':'project','gCwRT':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console['log']('\x0a🔧\x20Ranger\x20CI\x20Setup\x0a'),_0x1da3e2?.[_0xbcbcd9(0x118)](_0x405d0a[_0xbcbcd9(0x148)]),await _0x405d0a['ecBRK'](authenticate,_0x557356),_0x1da3e2?.['trackPhaseEnd'](_0xbcbcd9(0x14a)),_0x1da3e2?.['trackPhaseStart']('dir_setup');const {path:_0x4e1bf7,installed:_0x536247}=await ensureRangerDir();await writeRangerGitignore(_0x4e1bf7);const _0x19e34f=_0x405d0a['PLLEo'](join,_0x4e1bf7,'sessions');!existsSync(_0x19e34f)&&await _0x405d0a[_0xbcbcd9(0x130)](mkdir,_0x19e34f,{'recursive':!![]});_0x1da3e2?.['trackPhaseEnd'](_0xbcbcd9(0x129),{'installed':_0x536247}),_0x1da3e2?.['trackPhaseStart'](_0x405d0a[_0xbcbcd9(0x14b)]);let _0x1d1e97=![];_0x2caad1?.[_0xbcbcd9(0x113)]?console[_0xbcbcd9(0x123)](_0x405d0a['ZsRyE']):_0x1d1e97=await _0x405d0a['gqNIT'](ensureChromium);_0x1da3e2?.[_0xbcbcd9(0x11e)](_0x405d0a[_0xbcbcd9(0x14b)],{'installed':_0x1d1e97,'skipped':!!_0x2caad1?.[_0xbcbcd9(0x113)]}),_0x1da3e2?.[_0xbcbcd9(0x118)](_0x405d0a['ernmL']);const _0x33739b=await _0x405d0a['ecBRK'](findCiProfile,_0x2caad1?.['profile']);let _0x2e6b0e=![];_0x2caad1?.[_0xbcbcd9(0x13b)]&&(await mkdir(_0x33739b['path'],{'recursive':!![]}),await saveSettings(_0x33739b[_0xbcbcd9(0x127)],{'baseUrl':_0x2caad1['baseUrl'],'headless':!![]}),console[_0xbcbcd9(0x123)](_0xbcbcd9(0x140)+_0x2caad1['baseUrl']),_0x2e6b0e=!![]);const _0x259059=_0x405d0a[_0xbcbcd9(0x130)](join,_0x33739b[_0xbcbcd9(0x137)],_0xbcbcd9(0x147));if(!_0x405d0a[_0xbcbcd9(0x146)](existsSync,_0x259059)&&!_0x2e6b0e)throw new Error(_0xbcbcd9(0x13a)+_0x33739b[_0xbcbcd9(0x127)]+_0xbcbcd9(0x138));const _0x1cba6f=join(_0x33739b['path'],_0x405d0a[_0xbcbcd9(0x13f)]),_0x30f72b=join(_0x33739b[_0xbcbcd9(0x137)],_0x405d0a[_0xbcbcd9(0x131)]),_0xc5155f=existsSync(_0x1cba6f),_0x4c5013=_0x405d0a['EoPfO'](existsSync,_0x30f72b);if(_0x4c5013)try{const _0xdf12b1=await getToken();if(!_0xdf12b1)throw new Error(_0x405d0a['LOeaa']);const _0x900157=await _0x405d0a['zOfSA'](readFile,_0x30f72b);_0x405d0a['PLLEo'](decrypt,_0x900157,_0xdf12b1),console[_0xbcbcd9(0x123)](_0xbcbcd9(0x139));}catch(_0x3406ef){const _0x1450c2=_0x405d0a[_0xbcbcd9(0x141)](_0x3406ef,Error)?_0x3406ef['message']:String(_0x3406ef);throw new Error(_0xbcbcd9(0x142)+_0x33739b['name']+'\x22:\x20'+_0x1450c2);}else _0xc5155f?console['log'](_0x405d0a['JxJvE']):console[_0xbcbcd9(0x123)](_0x405d0a['UNBbT']);await writeActiveProfileName(_0x33739b['name']),console['log'](_0xbcbcd9(0x121)+_0x33739b[_0xbcbcd9(0x127)]),_0x1da3e2?.[_0xbcbcd9(0x11e)]('profile_activate',{'profileName':_0x33739b[_0xbcbcd9(0x127)],'hasAuth':_0xc5155f,'hasEncryptedAuth':_0x4c5013,'createdSettings':_0x2e6b0e}),_0x1da3e2?.['trackPhaseStart'](_0xbcbcd9(0x12f));const _0x4b20e7=await installPluginNonInteractive();_0x1da3e2?.['trackPhaseEnd'](_0xbcbcd9(0x12f),{'installed':_0x4b20e7}),_0x1da3e2?.[_0xbcbcd9(0x118)](_0xbcbcd9(0x115)),await skillup({'autoInstall':_0x405d0a['nkfEG']}),_0x1da3e2?.['trackPhaseEnd']('skills'),console[_0xbcbcd9(0x123)](_0x405d0a['gCwRT']);}function _0x5cee(){const _0x592f8b=['107850jZMdfL','tvObO','name','isDirectory','dir_setup','168147cfKTzi','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','Rsogg','88010pPzBVC','error','plugin','PLLEo','qNvaK','add','length','✓\x20Auth\x20state\x20found','4qPktms','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','path','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','CI\x20profile\x20\x22','baseUrl','184533xrfzWK','--scope','2545407fNfcmv','tCiqq','✓\x20Created\x20profile\x20settings:\x20baseUrl=','tVlOk','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','55HEfNak','Auto-detected\x20CI\x20profile:\x20','LxJJj','ecBRK','settings.json','buFqx','XOZUp','auth','fJMhn','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','skipChromium','Multiple\x20CI\x20profiles\x20found:\x20','skills','16tYWexg','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','trackPhaseStart','trailhead','384346XtxbVk','qctPd','AhjFB','276ANthNB','trackPhaseEnd','success','map','✓\x20Active\x20profile:\x20','project','log','66680xREVTS'];_0x5cee=function(){return _0x592f8b;};return _0x5cee();}
@@ -1 +1 @@
1
- (function(_0xf218e8,_0x4905cf){const _0xbd23a3=_0x3a17,_0x42fe10=_0xf218e8();while(!![]){try{const _0x2a5661=-parseInt(_0xbd23a3(0xd9))/0x1+parseInt(_0xbd23a3(0xd5))/0x2+-parseInt(_0xbd23a3(0xda))/0x3*(-parseInt(_0xbd23a3(0xd4))/0x4)+parseInt(_0xbd23a3(0xd3))/0x5+-parseInt(_0xbd23a3(0xea))/0x6*(parseInt(_0xbd23a3(0xee))/0x7)+parseInt(_0xbd23a3(0xe9))/0x8*(parseInt(_0xbd23a3(0xef))/0x9)+parseInt(_0xbd23a3(0xe4))/0xa;if(_0x2a5661===_0x4905cf)break;else _0x42fe10['push'](_0x42fe10['shift']());}catch(_0x55bfeb){_0x42fe10['push'](_0x42fe10['shift']());}}}(_0x1098,0x5a621));import{basename}from'path';import _0x4fcc19 from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';function _0x3a17(_0x502f88,_0x3428d7){_0x502f88=_0x502f88-0xc5;const _0x10989f=_0x1098();let _0x3a1732=_0x10989f[_0x502f88];return _0x3a1732;}function _0x1098(){const _0x1e4c14=['Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','nMBcJ','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','\x20--opencode','gwbnO','717280OdIcXl','4CLywYD','1285276UuLkYT','All\x20projects\x20(','autoInstall','This\x20project\x20only\x20(','711513CYmRYf','1417179oqnUod','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','opencode','isTTY','\x0a✅\x20Installed\x20','Pnxjd','VeOfz','platform','/skills/','prompt','1569640bXTVHr','\x20<your-api-token>','tXAnE','\x20\x203.\x20Run:\x20ranger\x20skillup','\x20\x202.\x20Run:\x20ranger\x20setup','4856hRVZVE','12JQTOGW','user-level','stdin','/.opencode/skills/','1178674SNEXBg','45HymCrT','✓\x20Found\x20API\x20token','Where\x20should\x20skills\x20be\x20installed?','rdlip','\x0a📦\x20Installing\x20skills...\x0a','AEmGi','log','\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a','uYYfX','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','\x20skill','warn'];_0x1098=function(){return _0x1e4c14;};return _0x1098();}export async function skillup(_0xa8076c={}){const _0x4fd5d6=_0x3a17,_0x3d69cd={'pdpKh':'claude','rdlip':function(_0x3cb2ce){return _0x3cb2ce();},'lEitx':_0x4fd5d6(0xd0),'YNqTj':'To\x20get\x20started:','lnuhY':'\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','AEmGi':function(_0x3def4e,_0xf50fbf){return _0x3def4e===_0xf50fbf;},'sxhht':function(_0x431b77){return _0x431b77();},'Pnxjd':function(_0x571087,_0x22f8c3){return _0x571087(_0x22f8c3);},'gwbnO':'user','qVpvd':function(_0x36e52e){return _0x36e52e();},'tXAnE':function(_0x360210,_0x28a803){return _0x360210===_0x28a803;},'NWyhA':'list','VeOfz':'installLevel','dAhez':'project','wtVsq':_0x4fd5d6(0xc6),'uYYfX':_0x4fd5d6(0xdb),'nMBcJ':'project-level','LoAdh':function(_0x2c1334,_0x39d965){return _0x2c1334>_0x39d965;},'nFDDP':_0x4fd5d6(0xdc)};console['log'](_0x4fd5d6(0xcb));const _0x17d6a1=_0xa8076c[_0x4fd5d6(0xe1)]??_0x3d69cd['pdpKh'],_0x61c0d5=await _0x3d69cd[_0x4fd5d6(0xc5)](getToken);if(!_0x61c0d5){console['log'](_0x3d69cd['lEitx']),console['log'](_0x3d69cd['YNqTj']),console[_0x4fd5d6(0xc8)](_0x3d69cd['lnuhY']),console[_0x4fd5d6(0xc8)](_0x4fd5d6(0xe8)+(_0x3d69cd[_0x4fd5d6(0xc7)](_0x17d6a1,_0x4fd5d6(0xdc))?_0x4fd5d6(0xd1):'')+_0x4fd5d6(0xe5)),console['log'](_0x4fd5d6(0xe7)+(_0x3d69cd['AEmGi'](_0x17d6a1,_0x4fd5d6(0xdc))?'\x20--opencode':'')+'\x0a');return;}console['log'](_0x4fd5d6(0xf0));const _0x4796e9=_0x3d69cd['sxhht'](getProjectRoot),_0xb9f7fe=_0x3d69cd[_0x4fd5d6(0xdf)](basename,_0x4796e9),_0x16db8f=_0x3d69cd['AEmGi'](_0x17d6a1,'opencode')?_0x3d69cd['Pnxjd'](getOpencodeConfigDir,_0x3d69cd['gwbnO'])+_0x4fd5d6(0xe2):_0x3d69cd['qVpvd'](getClaudeConfigDir)+'/skills/',_0x1101f4=_0x3d69cd[_0x4fd5d6(0xe6)](_0x17d6a1,_0x4fd5d6(0xdc))?_0x4796e9+_0x4fd5d6(0xed):_0x4796e9+'/.claude/skills/',_0x2a4df5=process[_0x4fd5d6(0xec)][_0x4fd5d6(0xdd)]&&process['stdout']['isTTY'];let _0x2e89a4;if(_0xa8076c[_0x4fd5d6(0xd7)])_0x2e89a4=_0xa8076c['autoInstall'];else{if(_0x2a4df5){const _0x4a6f0a=await _0x4fcc19[_0x4fd5d6(0xe3)]([{'type':_0x3d69cd['NWyhA'],'name':_0x3d69cd[_0x4fd5d6(0xe0)],'message':_0x4fd5d6(0xf1),'choices':[{'name':_0x4fd5d6(0xd6)+_0x16db8f+')','value':'user'},{'name':_0x4fd5d6(0xd8)+_0x1101f4+')','value':'project'}]}]);_0x2e89a4=_0x4a6f0a['installLevel'];}else _0x2e89a4=_0x3d69cd['dAhez'],console['log'](_0x4fd5d6(0xce)+_0x1101f4+')');}let _0x132ef5=0x0;const _0x1ec77d=getCurrentVersion();console['log'](_0x3d69cd['wtVsq']);try{const _0x1c5e45=await installSkill('ranger',{'cliVersion':_0x1ec77d,'level':_0x2e89a4,'platform':_0x17d6a1});_0x1c5e45&&_0x132ef5++;}catch(_0x49a24d){console[_0x4fd5d6(0xcd)](_0x3d69cd[_0x4fd5d6(0xca)],_0x49a24d instanceof Error?_0x49a24d['message']:_0x49a24d);}if(_0x132ef5>0x0){const _0x1bdde8=_0x2e89a4===_0x3d69cd[_0x4fd5d6(0xd2)]?_0x4fd5d6(0xeb):_0x3d69cd[_0x4fd5d6(0xcf)];console[_0x4fd5d6(0xc8)](_0x4fd5d6(0xde)+_0x132ef5+'\x20'+_0x1bdde8+_0x4fd5d6(0xcc)+(_0x3d69cd['LoAdh'](_0x132ef5,0x1)?'s':'')+'\x20successfully!\x0a'),!_0xa8076c['suppressUsage']&&(console['log']('To\x20use:'),_0x17d6a1===_0x3d69cd['nFDDP']?console['log']('\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.'):console[_0x4fd5d6(0xc8)]('\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[_0x4fd5d6(0xc8)](_0x4fd5d6(0xc9));}
1
+ (function(_0x562bc6,_0x43bdc1){const _0x315ee8=_0x376f,_0x5da854=_0x562bc6();while(!![]){try{const _0x1791a0=-parseInt(_0x315ee8(0x8e))/0x1+-parseInt(_0x315ee8(0x94))/0x2+parseInt(_0x315ee8(0xb7))/0x3+-parseInt(_0x315ee8(0xad))/0x4*(-parseInt(_0x315ee8(0x9d))/0x5)+-parseInt(_0x315ee8(0x8d))/0x6+-parseInt(_0x315ee8(0xa7))/0x7*(parseInt(_0x315ee8(0xb0))/0x8)+parseInt(_0x315ee8(0xb9))/0x9;if(_0x1791a0===_0x43bdc1)break;else _0x5da854['push'](_0x5da854['shift']());}catch(_0x2346cd){_0x5da854['push'](_0x5da854['shift']());}}}(_0x37c2,0x7e82d));function _0x37c2(){const _0x525550=['bhzNH','\x20<your-api-token>','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','\x20--opencode','YANFW','claude','45235JMcbKb','xIjyW','warn','JBpYY','\x0a📦\x20Installing\x20skills...\x0a','MjEnI','user-level','LnoRZ','project-level','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','14xnoOZR','Where\x20should\x20skills\x20be\x20installed?','/.opencode/skills/','To\x20get\x20started:','All\x20projects\x20(','HHcME','28IodDQE','project','sfUCk','1243648IBPrrG','user','OCuRJ','FOKIc','\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!','To\x20use:','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','344958cmIQYo','\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a','26553015ZUNSoS','3131382LULSFw','863797QopVZq','log','nQcqd','platform','/skills/','\x20skill','1827710HJdtfx','\x20\x202.\x20Run:\x20ranger\x20setup'];_0x37c2=function(){return _0x525550;};return _0x37c2();}import{basename}from'path';import _0x232341 from'inquirer';import{getToken}from'./utils/keychain.js';function _0x376f(_0x2f0cf8,_0x446e57){_0x2f0cf8=_0x2f0cf8-0x8d;const _0x37c2b1=_0x37c2();let _0x376f39=_0x37c2b1[_0x2f0cf8];return _0x376f39;}import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0xcffd0a={}){const _0x515e16=_0x376f,_0x2bbdcd={'uomJd':_0x515e16(0xa6),'OCuRJ':function(_0x1811d6){return _0x1811d6();},'sfUCk':'5|4|3|1|0|2','YANFW':'opencode','HHcME':function(_0x78b824,_0x468f36){return _0x78b824===_0x468f36;},'LnoRZ':'\x20--opencode','xIjyW':_0x515e16(0x99),'nQcqd':_0x515e16(0x98),'FOKIc':'✓\x20Found\x20API\x20token','mvvlw':function(_0x292c09,_0x50e793){return _0x292c09===_0x50e793;},'bhzNH':function(_0x5f4050,_0x2e4db8){return _0x5f4050(_0x2e4db8);},'zcvDP':'user','MjEnI':function(_0x16a172){return _0x16a172();},'pIBHc':'installLevel','hQTJP':_0x515e16(0xa1),'JKzFl':function(_0x49a01d,_0x5d8d09,_0x3d054d){return _0x49a01d(_0x5d8d09,_0x3d054d);},'WSLWu':_0x515e16(0xa5),'JBpYY':function(_0x3fbce5,_0x124c9c){return _0x3fbce5>_0x124c9c;}};console[_0x515e16(0x8f)](_0x2bbdcd['uomJd']);const _0x125b32=_0xcffd0a[_0x515e16(0x91)]??_0x515e16(0x9c),_0x99095d=await _0x2bbdcd[_0x515e16(0xb2)](getToken);if(!_0x99095d){const _0x267555=_0x2bbdcd[_0x515e16(0xaf)]['split']('|');let _0x40089a=0x0;while(!![]){switch(_0x267555[_0x40089a++]){case'0':console['log']('\x20\x203.\x20Run:\x20ranger\x20skillup'+(_0x125b32===_0x2bbdcd[_0x515e16(0x9b)]?_0x515e16(0x9a):'')+'\x0a');continue;case'1':console['log'](_0x515e16(0x95)+(_0x2bbdcd[_0x515e16(0xac)](_0x125b32,_0x2bbdcd[_0x515e16(0x9b)])?_0x2bbdcd[_0x515e16(0xa4)]:'')+_0x515e16(0x97));continue;case'2':return;case'3':console[_0x515e16(0x8f)](_0x2bbdcd[_0x515e16(0x9e)]);continue;case'4':console['log'](_0x515e16(0xaa));continue;case'5':console['log'](_0x2bbdcd[_0x515e16(0x90)]);continue;}break;}}console['log'](_0x2bbdcd[_0x515e16(0xb3)]);const _0xd3dd36=getProjectRoot(),_0x2ef75c=basename(_0xd3dd36),_0x260a81=_0x2bbdcd['mvvlw'](_0x125b32,'opencode')?_0x2bbdcd[_0x515e16(0x96)](getOpencodeConfigDir,_0x2bbdcd['zcvDP'])+_0x515e16(0x92):_0x2bbdcd[_0x515e16(0xa2)](getClaudeConfigDir)+'/skills/',_0x5d5d14=_0x125b32===_0x2bbdcd[_0x515e16(0x9b)]?_0xd3dd36+_0x515e16(0xa9):_0xd3dd36+'/.claude/skills/',_0x24d8a0=process['stdin']['isTTY']&&process['stdout']['isTTY'];let _0x24e9b8;if(_0xcffd0a['autoInstall'])_0x24e9b8=_0xcffd0a['autoInstall'];else{if(_0x24d8a0){const _0x16b720=await _0x232341['prompt']([{'type':'list','name':_0x2bbdcd['pIBHc'],'message':_0x515e16(0xa8),'choices':[{'name':_0x515e16(0xab)+_0x260a81+')','value':_0x515e16(0xb1)},{'name':'This\x20project\x20only\x20('+_0x5d5d14+')','value':'project'}]}]);_0x24e9b8=_0x16b720['installLevel'];}else _0x24e9b8=_0x515e16(0xae),console[_0x515e16(0x8f)]('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x5d5d14+')');}let _0x2b7300=0x0;const _0x1a0aa4=getCurrentVersion();console['log'](_0x2bbdcd['hQTJP']);try{const _0x5794b3=await _0x2bbdcd['JKzFl'](installSkill,'ranger',{'cliVersion':_0x1a0aa4,'level':_0x24e9b8,'platform':_0x125b32});_0x5794b3&&_0x2b7300++;}catch(_0x37b48a){console[_0x515e16(0x9f)]('\x20\x20Failed\x20to\x20install\x20ranger\x20skill:',_0x37b48a instanceof Error?_0x37b48a['message']:_0x37b48a);}if(_0x2b7300>0x0){const _0x236a5c=_0x2bbdcd[_0x515e16(0xac)](_0x24e9b8,_0x2bbdcd['zcvDP'])?_0x515e16(0xa3):_0x2bbdcd['WSLWu'];console[_0x515e16(0x8f)]('\x0a✅\x20Installed\x20'+_0x2b7300+'\x20'+_0x236a5c+_0x515e16(0x93)+(_0x2bbdcd[_0x515e16(0xa0)](_0x2b7300,0x1)?'s':'')+'\x20successfully!\x0a'),!_0xcffd0a['suppressUsage']&&(console['log'](_0x515e16(0xb5)),_0x125b32===_0x2bbdcd[_0x515e16(0x9b)]?console[_0x515e16(0x8f)](_0x515e16(0xb6)):console[_0x515e16(0x8f)](_0x515e16(0xb4)));}else console['log'](_0x515e16(0xb8));}
@@ -1 +1 @@
1
- (function(_0x1be58,_0x4fcade){const _0x1a25df=_0x2f60,_0x3f4385=_0x1be58();while(!![]){try{const _0x58f144=parseInt(_0x1a25df(0xff))/0x1*(parseInt(_0x1a25df(0x10b))/0x2)+-parseInt(_0x1a25df(0xb9))/0x3+-parseInt(_0x1a25df(0x110))/0x4*(-parseInt(_0x1a25df(0xcd))/0x5)+parseInt(_0x1a25df(0xc2))/0x6+-parseInt(_0x1a25df(0xc9))/0x7+parseInt(_0x1a25df(0x113))/0x8+parseInt(_0x1a25df(0xaa))/0x9*(parseInt(_0x1a25df(0xd5))/0xa);if(_0x58f144===_0x4fcade)break;else _0x3f4385['push'](_0x3f4385['shift']());}catch(_0x1fe0b0){_0x3f4385['push'](_0x3f4385['shift']());}}}(_0x2c2a,0xaad17));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x3242a8 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerDir,getRangerHomeDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2',bold=_0x3b19dd=>'\x1b[1m'+_0x3b19dd+'\x1b[0m';function getPlaywrightVersion(){const _0x2d00dd=_0x2f60;try{const _0x579139=require[_0x2d00dd(0xf2)](_0x2d00dd(0xf8)),_0x5462f7=require(_0x579139);return _0x5462f7['version'];}catch{return null;}}function installChromiumBinary(_0x327cfe){const _0x5abe87=_0x2f60,_0x4b6e5c={'baKJv':function(_0x10a1e1,_0x14ac10){return _0x10a1e1===_0x14ac10;},'KEKZC':function(_0x455832,_0x569d08){return _0x455832(_0x569d08);},'rSctV':'install','awTUa':function(_0x822bc9,_0x4538a2,_0x2855df,_0x4c8402){return _0x822bc9(_0x4538a2,_0x2855df,_0x4c8402);},'sfOlg':'inherit','XZFMu':function(_0x2069ee,_0x22a768){return _0x2069ee===_0x22a768;},'cncza':_0x5abe87(0xac),'Arjjj':'close'};return new Promise((_0x53607f,_0x187369)=>{const _0x2fde84=_0x5abe87,_0x3f9ba8={'rhPxU':function(_0x5e31eb,_0x48022f){return _0x5e31eb(_0x48022f);}},_0x5ab2a7=[_0x2fde84(0xdf)+_0x327cfe,_0x4b6e5c['rSctV'],'chromium'],_0x560893=_0x4b6e5c[_0x2fde84(0x108)](spawn,_0x2fde84(0xae),_0x5ab2a7,{'stdio':[_0x2fde84(0x10a),'inherit',_0x4b6e5c['sfOlg']],'shell':_0x4b6e5c['XZFMu'](process[_0x2fde84(0xea)],_0x4b6e5c[_0x2fde84(0xcb)])});_0x560893['on'](_0x4b6e5c['Arjjj'],_0x1c052a=>{const _0x2d3316=_0x2fde84;_0x4b6e5c[_0x2d3316(0xd7)](_0x1c052a,0x0)?_0x53607f():_0x4b6e5c['KEKZC'](_0x187369,new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x1c052a));}),_0x560893['on']('error',_0x2f3866=>{const _0x49751d=_0x2fde84;_0x3f9ba8[_0x49751d(0xe9)](_0x187369,_0x2f3866);});});}export async function authenticate(_0x1753ff){const _0x5acd30=_0x2f60,_0x315e73={'CrPjH':function(_0x168f2f,_0x13e76c){return _0x168f2f instanceof _0x13e76c;},'GTyhk':function(_0x334c12,_0x1933e3){return _0x334c12(_0x1933e3);},'dqYgt':_0x5acd30(0xcf),'oFOYb':'Validating\x20API\x20token...','zsRbp':function(_0x495905,_0x4b69ae){return _0x495905(_0x4b69ae);},'ykGSK':_0x5acd30(0xee),'PNCOU':_0x5acd30(0x100),'EQtnv':_0x5acd30(0xd1)};if(!_0x1753ff){const _0x23882f=await getToken();if(_0x23882f){const _0x1f0336=await getCurrentUser(_0x23882f);if(_0x1f0336[_0x5acd30(0xe3)])return console[_0x5acd30(0xa6)]('✓\x20Already\x20authenticated\x20to\x20'+_0x1f0336['user']['organizationName']),{'token':_0x23882f,'method':_0x5acd30(0xca)};}try{_0x1753ff=await runDeviceAuthFlow();}catch(_0x29cb15){throw new Error(_0x5acd30(0x102)+(_0x315e73['CrPjH'](_0x29cb15,Error)?_0x29cb15['message']:_0x29cb15));}const _0x52099e=await _0x315e73['GTyhk'](getCurrentUser,_0x1753ff);if(!_0x52099e['success'])throw new Error(_0x5acd30(0xd8)+_0x52099e[_0x5acd30(0xb1)]);return console['log']('✓\x20Authenticated\x20to\x20'+_0x52099e[_0x5acd30(0xec)]['organizationName']),{'token':_0x1753ff,'method':_0x315e73['dqYgt']};}console['log'](_0x315e73['oFOYb']);const _0x1c1e77=await _0x315e73['zsRbp'](getCurrentUser,_0x1753ff);if(!_0x1c1e77[_0x5acd30(0xe3)]){if(_0x1c1e77[_0x5acd30(0xb3)])throw new Error('Authentication\x20failed:\x20'+_0x1c1e77['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x1c1e77[_0x5acd30(0xb1)]+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console['log'](_0x5acd30(0xb0)+_0x1c1e77[_0x5acd30(0xec)]['organizationName']),await _0x315e73[_0x5acd30(0xfd)](storeToken,_0x1753ff),console[_0x5acd30(0xa6)](process[_0x5acd30(0xc3)][_0x5acd30(0x105)]?_0x315e73[_0x5acd30(0xc7)]:_0x315e73['PNCOU']),{'token':_0x1753ff,'method':_0x315e73['EQtnv']};}function _0x2c2a(){const _0x28f56b=['GITHUB_ENV','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','knfIJ','awTUa','skipChromium','ignore','1004KoXlZs','pcEjj','tuXDg','method','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','8Sjljge','WnUbX','executablePath','893208ReyWAv','confirm','log','auth','.gitignore','\x20\x20npx\x20playwright@','9hvOPMb','git_check','win32','SiBtn','npx','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','✓\x20Authenticated\x20to\x20','error','allowInsecureLocalhost','status','\x20now?','fxwuO','enves','gfJAC','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','3667128zvJicK','skills','\x0a⚠\x20Skipping\x20Chromium\x20installation.','\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','url','local','/ranger:enable','isTTY','trackPhaseStart','1094892UgAEcT','env','vTtpH','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','scope','ykGSK','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','848015cXAJLV','existing_token','cncza','ehQoy','1732510ZMIlVq','jpAZM','device_auth','nDaHQ','provided_token','MdpKC','.ranger','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','8286490eTTrnj',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','baKJv','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','ranger\x20profile\x20add\x20local','Mntdm','use\x20until\x20the\x20session\x20expires.\x0a','WEsHm','ready','kztbH','playwright@','✓\x20Playwright\x20Chromium\x20browser\x20found','kafxT','UTNcJ','success','\x0aInstalling\x20Chromium\x20browser...\x0a','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','tUsKX','✓\x20Created\x20.ranger/.gitignore','UvTjV','rhPxU','platform','and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','user','✓\x20Local\x20profile\x20already\x20exists','✓\x20Exported\x20credentials\x20for\x20CI','\x20and\x20prompt\x20the\x20coding','prompt','message','resolve','force','uQCal','opencode','stdout','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','playwright/package.json','BCSSR','QPsSZ','ranger','skipped','zsRbp','sUOwW','453tUPcqZ','✓\x20Stored\x20credentials\x20locally','xvysY','Authentication\x20failed:\x20','trackPhaseError','trackPhaseEnd'];_0x2c2a=function(){return _0x28f56b;};return _0x2c2a();}export async function ensureRangerDir(_0x2c3bc0){const _0x22990e=_0x2f60,_0x51bbc3={'ESxJu':function(_0x3a872a,_0x4f2d03){return _0x3a872a===_0x4f2d03;},'YpWBW':_0x22990e(0xec),'AlwKu':function(_0xcb10fe){return _0xcb10fe();},'IFIqE':function(_0x1d7559,_0xccf112,_0xd3f07a){return _0x1d7559(_0xccf112,_0xd3f07a);},'OHrxM':'✓\x20Created\x20.ranger/\x20directory','oqtmp':'✓\x20.ranger/\x20directory\x20already\x20exists'};let _0x5503be;if(_0x51bbc3['ESxJu'](_0x2c3bc0,_0x51bbc3['YpWBW']))_0x5503be=getRangerHomeDir();else{const _0x15c907=_0x51bbc3['AlwKu'](findGitRoot);_0x5503be=_0x15c907?join(_0x15c907,_0x22990e(0xd3)):getRangerDir();}return!existsSync(_0x5503be)?(await _0x51bbc3['IFIqE'](mkdir,_0x5503be,{'recursive':!![]}),console['log'](_0x51bbc3['OHrxM']),{'path':_0x5503be,'installed':!![]}):(console[_0x22990e(0xa6)](_0x51bbc3['oqtmp']),{'path':_0x5503be,'installed':![]});}export async function ensureChromium(){const _0x1f3908=_0x2f60,_0x4cd4b2={'SQRba':function(_0x4d391f,_0x2a1945){return _0x4d391f(_0x2a1945);},'ehQoy':_0x1f3908(0xe0),'ZQMHu':'confirm','tUsKX':_0x1f3908(0xe4),'xvysY':_0x1f3908(0x10f),'vTtpH':function(_0x972e3f,_0x50492e){return _0x972e3f instanceof _0x50492e;},'IksDN':'You\x20can\x20install\x20it\x20manually\x20by\x20running:','pcEjj':_0x1f3908(0xbb),'UvTjV':'You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'};let _0x844a45=![];try{const _0x28f34a=chromium[_0x1f3908(0x112)]();_0x844a45=_0x4cd4b2['SQRba'](existsSync,_0x28f34a);}catch{_0x844a45=![];}if(_0x844a45)return console['log'](_0x4cd4b2[_0x1f3908(0xcc)]),![];const _0x41cc30=getPlaywrightVersion(),_0x2f8809=_0x41cc30??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0x5be7ed=!_0x41cc30,_0x5bf17e=process['stdin'][_0x1f3908(0xc0)]&&process[_0x1f3908(0xf6)]['isTTY'];let _0x267fac=!![];if(_0x5bf17e){const {install:_0x2da3a1}=await _0x3242a8[_0x1f3908(0xf0)]([{'type':_0x4cd4b2['ZQMHu'],'name':'install','message':_0x5be7ed?_0x1f3908(0xc5)+_0x2f8809+_0x1f3908(0xb4):'The\x20required\x20version\x20('+_0x2f8809+_0x1f3908(0xd6),'default':!![]}]);_0x267fac=_0x2da3a1;}else console['log']('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20'+_0x2f8809+(_0x5be7ed?'\x20(fallback\x20version)':'')+'...');if(_0x267fac){console['log'](_0x4cd4b2[_0x1f3908(0xe6)]);try{await installChromiumBinary(_0x2f8809),console[_0x1f3908(0xa6)](_0x4cd4b2[_0x1f3908(0x101)]);}catch(_0x2013af){console['error']('\x0a❌\x20Failed\x20to\x20install\x20Chromium:',_0x4cd4b2[_0x1f3908(0xc4)](_0x2013af,Error)?_0x2013af[_0x1f3908(0xf1)]:_0x2013af),console[_0x1f3908(0xa6)](_0x4cd4b2['IksDN']),console['log'](_0x1f3908(0xa9)+_0x2f8809+'\x20install\x20chromium');}}else console[_0x1f3908(0xa6)](_0x4cd4b2[_0x1f3908(0x10c)]),console['log'](_0x4cd4b2[_0x1f3908(0xe8)]),console['log'](_0x1f3908(0xa9)+_0x2f8809+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x13a5b9){const _0x110956=_0x2f60,_0x5c9d15={'sUOwW':_0x110956(0xa8),'ATldt':function(_0x42ba22,_0x1e35d4,_0x317a43){return _0x42ba22(_0x1e35d4,_0x317a43);}},_0x419d0b=join(_0x13a5b9,_0x5c9d15[_0x110956(0xfe)]),_0x16a407='\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 _0x5c9d15['ATldt'](writeFile,_0x419d0b,_0x16a407),console['log'](_0x110956(0xe7));}function printProfileSetupLaterInstructions(){const _0x2354a8=_0x2f60,_0x46239f={'KLbto':_0x2354a8(0xbc)};console['log'](_0x46239f['KLbto']),console['log']('\x20\x20'+bold('ranger\x20profile\x20add\x20local')),console['log']('Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a');}async function ensureLocalEnv(_0x58b63b,_0x47cf40){const _0x331c76=_0x2f60,_0x7f340c={'oMOLD':function(_0x311418){return _0x311418();},'wqtcZ':function(_0x31fffe,_0x2a95fb){return _0x31fffe===_0x2a95fb;},'HeSiM':function(_0x18efce){return _0x18efce();},'knfIJ':function(_0x517f16,_0x13cac3,_0x59eedf){return _0x517f16(_0x13cac3,_0x59eedf);},'OPQFa':_0x331c76(0xed),'vCuLM':'You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','uVXjB':'wantsProfile','ThJvK':'Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','Mntdm':function(_0x144710,_0x11af88,_0x16bb98,_0x941906){return _0x144710(_0x11af88,_0x16bb98,_0x941906);},'UTNcJ':'local','kafxT':'\x0a❌\x20Profile\x20setup\x20failed:','gfJAC':function(_0x5b984e,_0x436e75){return _0x5b984e instanceof _0x436e75;},'nDaHQ':function(_0x742f9c){return _0x742f9c();}};if(!_0x7f340c['oMOLD'](findGitRoot))return console['log']('⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.'),{'ready':![],'skipped':!![]};const _0x5929f7=_0x7f340c['wqtcZ'](_0x58b63b?.['scope'],'user')?_0x7f340c['HeSiM'](getRangerHomeDir):undefined;if(_0x7f340c[_0x331c76(0x107)](findExistingEnv,'local',{'locations':[_0x331c76(0xbe)],'rangerDir':_0x5929f7}))return console['log'](_0x7f340c['OPQFa']),{'ready':!![],'skipped':![]};const _0x3ef773=process['stdin'][_0x331c76(0xc0)]&&process['stdout']['isTTY'];if(_0x3ef773&&!_0x58b63b?.['url']){console['log'](_0x331c76(0x106)),console['log']('to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind'),console[_0x331c76(0xa6)]('auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'),console['log'](_0x331c76(0xdb)),console[_0x331c76(0xa6)](_0x7f340c['vCuLM']);const {wantsProfile:_0x535e59}=await _0x3242a8[_0x331c76(0xf0)]([{'type':_0x331c76(0xa5),'name':_0x7f340c['uVXjB'],'message':_0x7f340c['ThJvK'],'default':!![]}]);if(!_0x535e59)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await _0x7f340c[_0x331c76(0xda)](addEnv,_0x7f340c[_0x331c76(0xe2)],{'url':_0x58b63b?.['url'],'force':_0x58b63b?.[_0x331c76(0xf3)],'allowInsecureLocalhost':_0x58b63b?.['allowInsecureLocalhost'],'scope':_0x58b63b?.[_0x331c76(0xc6)]},_0x47cf40),{'ready':!![],'skipped':![]};}catch(_0x48da82){return console['error'](_0x7f340c[_0x331c76(0xe1)],_0x7f340c[_0x331c76(0xb7)](_0x48da82,Error)?_0x48da82[_0x331c76(0xf1)]:_0x48da82),_0x7f340c[_0x331c76(0xd0)](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}function _0x2f60(_0x532d68,_0x457ab8){_0x532d68=_0x532d68-0xa5;const _0x2c2a83=_0x2c2a();let _0x2f609b=_0x2c2a83[_0x532d68];return _0x2f609b;}export async function start(_0x17e317,_0x5b301d,_0x4281ac){const _0x29d20d=_0x2f60,_0x5b4771={'MWIJM':_0x29d20d(0xd4),'QPsSZ':function(_0x15d373){return _0x15d373();},'MdpKC':_0x29d20d(0xab),'tuXDg':'No\x20git\x20repository\x20found','BCSSR':_0x29d20d(0xec),'enves':'chromium','fxwuO':function(_0x3ef993,_0x5c186d){return _0x3ef993(_0x5c186d);},'kztbH':'plugin','KRGWQ':function(_0x5c21a6,_0x4f9ed7){return _0x5c21a6&&_0x4f9ed7;},'nQyrB':_0x29d20d(0xba),'fohku':'\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','XAFPx':function(_0x4baaa7,_0x5c18a6){return _0x4baaa7 instanceof _0x5c18a6;},'jpAZM':'Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','JyfHw':'profile','dDXSh':function(_0x269246,_0x4a07cf,_0x3ea05e){return _0x269246(_0x4a07cf,_0x3ea05e);},'WEsHm':_0x29d20d(0xeb),'SiBtn':'verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','uQCal':_0x29d20d(0xbf),'WnUbX':function(_0x310c23,_0x5d192a){return _0x310c23+_0x5d192a;},'AFROQ':function(_0x6d5937,_0x1aadd7){return _0x6d5937+_0x1aadd7;}};console[_0x29d20d(0xa6)]('\x0a🚀\x20Ranger\x20Setup\x0a');const _0x9f2a84=process['stdin'][_0x29d20d(0xc0)]&&process[_0x29d20d(0xf6)]['isTTY'];!_0x9f2a84&&!_0x5b301d?.['scope']&&(console[_0x29d20d(0xa6)](_0x5b4771['MWIJM']),_0x5b301d={..._0x5b301d,'scope':_0x29d20d(0xec)});_0x4281ac?.[_0x29d20d(0xc1)]('git_check');if(!_0x5b4771[_0x29d20d(0xfa)](findGitRoot)){await _0x4281ac?.[_0x29d20d(0x103)](_0x5b4771[_0x29d20d(0xd2)],new Error(_0x5b4771[_0x29d20d(0x10d)]));throw new Error('No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.');}_0x4281ac?.['trackPhaseEnd']('git_check');const _0x4e4bea=!existsSync(_0x5b4771[_0x29d20d(0xfa)](getRangerDir)),_0x169fd8=_0x5b301d?.['scope']===_0x5b4771[_0x29d20d(0xf9)],{path:_0x2ee81e}=await ensureRangerDir(_0x169fd8?_0x29d20d(0xec):undefined);_0x4281ac?.['trackPhaseStart'](_0x29d20d(0xa7));const _0x3661d8=await authenticate(_0x17e317);_0x4281ac?.['trackPhaseEnd']('auth',{'isFirstRun':_0x4e4bea,'method':_0x3661d8[_0x29d20d(0x10e)]}),_0x4281ac?.[_0x29d20d(0xc1)](_0x5b4771['enves']);_0x5b301d?.['skipChromium']?console[_0x29d20d(0xa6)](_0x29d20d(0xf7)):await _0x5b4771['QPsSZ'](ensureChromium);_0x4281ac?.['trackPhaseEnd'](_0x5b4771[_0x29d20d(0xb6)],{'isFirstRun':_0x4e4bea,'skipped':!!_0x5b301d?.[_0x29d20d(0x109)]});!_0x169fd8&&await _0x5b4771[_0x29d20d(0xb5)](writeRangerGitignore,_0x2ee81e);console['log'](_0x29d20d(0xb8));const _0x58b763=_0x5b301d?.[_0x29d20d(0xc6)],_0x16fc11=_0x5b301d?.[_0x29d20d(0xf5)]??![];let _0x4c9fa0=null;_0x16fc11?(_0x4281ac?.[_0x29d20d(0xc1)]('plugin'),_0x4c9fa0=await ensureOpencodePluginConfig(_0x58b763),_0x4281ac?.[_0x29d20d(0x104)](_0x5b4771[_0x29d20d(0xde)],{'isFirstRun':_0x4e4bea,'opencode':!![]})):(_0x4281ac?.[_0x29d20d(0xc1)]('plugin'),await _0x5b4771[_0x29d20d(0xb5)](ensureClaudePlugin,_0x58b763),_0x4281ac?.['trackPhaseEnd'](_0x5b4771['kztbH'],{'isFirstRun':_0x4e4bea}));if(_0x5b4771['KRGWQ'](_0x16fc11,_0x4c9fa0)){_0x4281ac?.[_0x29d20d(0xc1)]('skills');try{await installSkill(_0x29d20d(0xfb),{'level':_0x4c9fa0[_0x29d20d(0xc6)],'cliVersion':getCurrentVersion(),'platform':_0x29d20d(0xf5)}),_0x4281ac?.[_0x29d20d(0x104)](_0x5b4771['nQyrB'],{'isFirstRun':_0x4e4bea,'opencode':!![]});}catch(_0x4d0469){console['warn'](_0x5b4771['fohku'],_0x5b4771['XAFPx'](_0x4d0469,Error)?_0x4d0469['message']:_0x4d0469),_0x4281ac?.['trackPhaseEnd'](_0x29d20d(0xba),{'isFirstRun':_0x4e4bea,'opencode':!![],'failed':!![]});}}else _0x4281ac?.[_0x29d20d(0xc1)](_0x5b4771['nQyrB']),await ensureClaudeSkills(_0x58b763),_0x4281ac?.[_0x29d20d(0x104)](_0x29d20d(0xba),{'isFirstRun':_0x4e4bea});if(!_0x9f2a84&&!_0x5b301d?.[_0x29d20d(0xbd)])console['log'](_0x5b4771[_0x29d20d(0xce)]),console[_0x29d20d(0xa6)]('\x20\x20'+bold(_0x29d20d(0xd9))+'\x0a');else{_0x4281ac?.['trackPhaseStart'](_0x5b4771['JyfHw']);const _0x782adb=await _0x5b4771['dDXSh'](ensureLocalEnv,{'url':_0x5b301d?.[_0x29d20d(0xbd)],'force':_0x5b301d?.['force'],'allowInsecureLocalhost':_0x5b301d?.[_0x29d20d(0xb2)],'scope':_0x5b301d?.[_0x29d20d(0xc6)]==='user'?_0x29d20d(0xec):undefined},_0x4281ac);_0x4281ac?.[_0x29d20d(0x104)](_0x5b4771['JyfHw'],{'isFirstRun':_0x4e4bea,'profileReady':_0x782adb['ready'],'userSkipped':_0x782adb[_0x29d20d(0xfc)]}),_0x782adb[_0x29d20d(0xdd)]&&console['log']('\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.');}if(_0x16fc11)console[_0x29d20d(0xa6)](_0x29d20d(0xc8)),console['log'](_0x5b4771[_0x29d20d(0xdc)]),console[_0x29d20d(0xa6)](_0x29d20d(0xaf)),console[_0x29d20d(0xa6)](_0x5b4771[_0x29d20d(0xad)]);else{const _0x309822=bold(_0x5b4771[_0x29d20d(0xf4)]);console[_0x29d20d(0xa6)](_0x5b4771[_0x29d20d(0x111)](_0x5b4771['AFROQ']('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0x309822+_0x29d20d(0xef),_0x29d20d(0xe5))+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.'));}}
1
+ const _0x397cca=_0x49ab;(function(_0x258f0f,_0x1a76d2){const _0xe943e8=_0x49ab,_0x195dce=_0x258f0f();while(!![]){try{const _0x7d6cf4=-parseInt(_0xe943e8(0xcc))/0x1+-parseInt(_0xe943e8(0xad))/0x2+-parseInt(_0xe943e8(0xec))/0x3+-parseInt(_0xe943e8(0xf4))/0x4+parseInt(_0xe943e8(0xaa))/0x5+parseInt(_0xe943e8(0xc2))/0x6*(-parseInt(_0xe943e8(0xe3))/0x7)+-parseInt(_0xe943e8(0xb2))/0x8*(-parseInt(_0xe943e8(0x10c))/0x9);if(_0x7d6cf4===_0x1a76d2)break;else _0x195dce['push'](_0x195dce['shift']());}catch(_0x49f481){_0x195dce['push'](_0x195dce['shift']());}}}(_0x2202,0xeadf3));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x58e25c from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';function _0x49ab(_0x354148,_0x2dc0b1){_0x354148=_0x354148-0x9f;const _0x22029b=_0x2202();let _0x49ab73=_0x22029b[_0x354148];return _0x49ab73;}import{chromium}from'playwright';function _0x2202(){const _0x252847=['XDToG','version','4251228xupdHm','existing_token','isTTY','jdKdy','1.58.2','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','HVIWn','boOLA','2133896KCUGsh','wantsProfile','\x20now?','user','aLvHX','skills','chromium','\x1b[0m','\x0a❌\x20Failed\x20to\x20install\x20Chromium:','force','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','KQeBe','plugin','JtjAG','\x20and\x20prompt\x20the\x20coding','organizationName','platform','\x0a❌\x20Profile\x20setup\x20failed:','pURaL','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','log','NWwls','.ranger','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','171wnYVdl','✓\x20Already\x20authenticated\x20to\x20','HPKSE','sKQvS','MPsSu','opencode','and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','profile','\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','TETer','stdin','DuAQA','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','prompt','trackPhaseStart','GITHUB_ENV','QDEtA','mFmPS','2392040DdXsaH','Installation\x20failed\x20with\x20exit\x20code\x20','✓\x20Authenticated\x20to\x20','147216WCcYZF','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','\x20install\x20chromium','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','2035064GkaaQg','resolve','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','close','.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.','skipChromium','npx','local','.gitignore','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','bhKAP','install','miSDY','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','lKstp','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','17178YQERpo','IMEIn','ranger','hFqvP','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','XOQpS','message','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','warn','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','541843DlBCCX','\x0aIn\x20Claude\x20Code,\x20run\x20','allowInsecureLocalhost','\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a','ranger\x20profile\x20add\x20local','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','ARlHu','trackPhaseEnd','\x0a🚀\x20Ranger\x20Setup\x0a','auth','RFfQE','error',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','ready','/ranger:enable','KRWeX','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','scope','device_auth','UHphE','provided_token','status','✓\x20Playwright\x20Chromium\x20browser\x20found','4361IsfzWT','rEMtA','stdout','qgXaz','VXwtC','\x20\x20npx\x20playwright@','url'];_0x2202=function(){return _0x252847;};return _0x2202();}import{addEnv}from'./addEnv.js';import{getRangerDir,getRangerHomeDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION=_0x397cca(0xf0),bold=_0x551727=>'\x1b[1m'+_0x551727+_0x397cca(0xfb);function getPlaywrightVersion(){const _0x3b22fc=_0x397cca,_0x3a59ac={'HctDU':'playwright/package.json','fTreF':function(_0x1176e8,_0x4b58c8){return _0x1176e8(_0x4b58c8);}};try{const _0x178d3e=require[_0x3b22fc(0xb3)](_0x3a59ac['HctDU']),_0x3a90b4=_0x3a59ac['fTreF'](require,_0x178d3e);return _0x3a90b4[_0x3b22fc(0xeb)];}catch{return null;}}function installChromiumBinary(_0x5d98e7){const _0x317eb4=_0x397cca,_0x54e098={'lKstp':function(_0x414319,_0x5c079d){return _0x414319===_0x5c079d;},'Tsyou':function(_0x2cacbd,_0x176320){return _0x2cacbd(_0x176320);},'gGPOJ':function(_0x37e13e,_0x52aa77,_0x17d589,_0x904d32){return _0x37e13e(_0x52aa77,_0x17d589,_0x904d32);},'nEmKp':_0x317eb4(0xb8),'DuAQA':'inherit','hkwwj':'win32','HPKSE':_0x317eb4(0xb5),'rEMtA':'error'};return new Promise((_0x2fcd44,_0x5c8031)=>{const _0x1d5730=_0x317eb4,_0x4c66eb={'kRLWW':function(_0x2db309,_0x22c301){return _0x2db309(_0x22c301);}},_0x33be81=['playwright@'+_0x5d98e7,'install','chromium'],_0x230476=_0x54e098['gGPOJ'](spawn,_0x54e098['nEmKp'],_0x33be81,{'stdio':['ignore',_0x54e098[_0x1d5730(0xa3)],_0x54e098['DuAQA']],'shell':_0x54e098[_0x1d5730(0xc0)](process[_0x1d5730(0x104)],_0x54e098['hkwwj'])});_0x230476['on'](_0x54e098[_0x1d5730(0x10e)],_0x3d678a=>{const _0x328da6=_0x1d5730;_0x54e098['lKstp'](_0x3d678a,0x0)?_0x2fcd44():_0x54e098['Tsyou'](_0x5c8031,new Error(_0x328da6(0xab)+_0x3d678a));}),_0x230476['on'](_0x54e098[_0x1d5730(0xe4)],_0x243e7b=>{_0x4c66eb['kRLWW'](_0x5c8031,_0x243e7b);});});}export async function authenticate(_0x21faa1){const _0x26e090=_0x397cca,_0x4e5905={'Bvpfl':function(_0x1b7965,_0x9fef6d){return _0x1b7965(_0x9fef6d);},'iUjMJ':function(_0x408dae){return _0x408dae();},'mFmPS':function(_0xcb59a6,_0x77ee4f){return _0xcb59a6 instanceof _0x77ee4f;},'OeZEu':_0x26e090(0xde),'TETer':'✓\x20Stored\x20credentials\x20locally','VXwtC':_0x26e090(0xe0)};if(!_0x21faa1){const _0x24a71d=await getToken();if(_0x24a71d){const _0x5492b9=await _0x4e5905['Bvpfl'](getCurrentUser,_0x24a71d);if(_0x5492b9['success'])return console['log'](_0x26e090(0x10d)+_0x5492b9['user'][_0x26e090(0x103)]),{'token':_0x24a71d,'method':_0x26e090(0xed)};}try{_0x21faa1=await _0x4e5905['iUjMJ'](runDeviceAuthFlow);}catch(_0x3bc970){throw new Error('Authentication\x20failed:\x20'+(_0x4e5905[_0x26e090(0xa9)](_0x3bc970,Error)?_0x3bc970[_0x26e090(0xc8)]:_0x3bc970));}const _0x1a7502=await getCurrentUser(_0x21faa1);if(!_0x1a7502['success'])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x1a7502[_0x26e090(0xd7)]);return console['log']('✓\x20Authenticated\x20to\x20'+_0x1a7502['user'][_0x26e090(0x103)]),{'token':_0x21faa1,'method':_0x4e5905['OeZEu']};}console[_0x26e090(0x108)]('Validating\x20API\x20token...');const _0x2e01f3=await getCurrentUser(_0x21faa1);if(!_0x2e01f3['success']){if(_0x2e01f3[_0x26e090(0xe1)])throw new Error('Authentication\x20failed:\x20'+_0x2e01f3[_0x26e090(0xd7)]+_0x26e090(0xf1));else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x2e01f3[_0x26e090(0xd7)]+_0x26e090(0xb6));}return console[_0x26e090(0x108)](_0x26e090(0xac)+_0x2e01f3['user']['organizationName']),await storeToken(_0x21faa1),console['log'](process['env'][_0x26e090(0xa7)]?'✓\x20Exported\x20credentials\x20for\x20CI':_0x4e5905[_0x26e090(0xa1)]),{'token':_0x21faa1,'method':_0x4e5905[_0x26e090(0xe7)]};}export async function ensureRangerDir(_0x3573d8){const _0x31d7aa=_0x397cca,_0x3f766b={'zguxs':function(_0x34dc8b,_0x2806e8){return _0x34dc8b===_0x2806e8;},'MzneB':'user','RFfQE':function(_0x20ac60){return _0x20ac60();},'HVIWn':function(_0x121bc6){return _0x121bc6();},'gZGDZ':function(_0x1b0041,_0x718def,_0x6e96d){return _0x1b0041(_0x718def,_0x6e96d);},'HzCvj':'✓\x20Created\x20.ranger/\x20directory'};let _0x201687;if(_0x3f766b['zguxs'](_0x3573d8,_0x3f766b['MzneB']))_0x201687=_0x3f766b[_0x31d7aa(0xd6)](getRangerHomeDir);else{const _0x5ecff4=findGitRoot();_0x201687=_0x5ecff4?join(_0x5ecff4,_0x31d7aa(0x10a)):_0x3f766b[_0x31d7aa(0xf2)](getRangerDir);}return!existsSync(_0x201687)?(await _0x3f766b['gZGDZ'](mkdir,_0x201687,{'recursive':!![]}),console[_0x31d7aa(0x108)](_0x3f766b['HzCvj']),{'path':_0x201687,'installed':!![]}):(console['log']('✓\x20.ranger/\x20directory\x20already\x20exists'),{'path':_0x201687,'installed':![]});}export async function ensureChromium(){const _0x525a54=_0x397cca,_0x5e846c={'JtjAG':_0x525a54(0xe2),'zDuaE':function(_0x4ed5c0){return _0x4ed5c0();},'cClnZ':function(_0x5bee8a,_0x182c75){return _0x5bee8a??_0x182c75;},'PtPmm':'confirm','vDCSX':'\x20(fallback\x20version)','FULTe':function(_0x1b3779,_0x7c2f23){return _0x1b3779(_0x7c2f23);},'xGvZN':function(_0x40bbd0,_0x533fb4){return _0x40bbd0 instanceof _0x533fb4;},'IMEIn':'You\x20can\x20install\x20it\x20manually\x20by\x20running:'};let _0x4cefee=![];try{const _0x21f0f9=chromium['executablePath']();_0x4cefee=existsSync(_0x21f0f9);}catch{_0x4cefee=![];}if(_0x4cefee)return console['log'](_0x5e846c[_0x525a54(0x101)]),![];const _0x4f72ec=_0x5e846c['zDuaE'](getPlaywrightVersion),_0x3f99d4=_0x5e846c['cClnZ'](_0x4f72ec,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0xe56d80=!_0x4f72ec,_0x3bda13=process['stdin']['isTTY']&&process['stdout'][_0x525a54(0xee)];let _0x54bb4f=!![];if(_0x3bda13){const {install:_0x4e2d3a}=await _0x58e25c[_0x525a54(0xa5)]([{'type':_0x5e846c['PtPmm'],'name':_0x525a54(0xbd),'message':_0xe56d80?_0x525a54(0xcb)+_0x3f99d4+_0x525a54(0xf6):'The\x20required\x20version\x20('+_0x3f99d4+_0x525a54(0xd8),'default':!![]}]);_0x54bb4f=_0x4e2d3a;}else console[_0x525a54(0x108)](_0x525a54(0xbf)+_0x3f99d4+(_0xe56d80?_0x5e846c['vDCSX']:'')+'...');if(_0x54bb4f){console['log']('\x0aInstalling\x20Chromium\x20browser...\x0a');try{await _0x5e846c['FULTe'](installChromiumBinary,_0x3f99d4),console[_0x525a54(0x108)](_0x525a54(0xd1));}catch(_0x37e21e){console[_0x525a54(0xd7)](_0x525a54(0xfc),_0x5e846c['xGvZN'](_0x37e21e,Error)?_0x37e21e['message']:_0x37e21e),console['log'](_0x5e846c[_0x525a54(0xc3)]),console[_0x525a54(0x108)](_0x525a54(0xe8)+_0x3f99d4+_0x525a54(0xaf));}}else console['log']('\x0a⚠\x20Skipping\x20Chromium\x20installation.'),console[_0x525a54(0x108)](_0x525a54(0xfe)),console[_0x525a54(0x108)]('\x20\x20npx\x20playwright@'+_0x3f99d4+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x266745){const _0x5738f5=_0x397cca,_0x4cbadc={'aLvHX':function(_0x5cb6da,_0x4a16a2,_0x5473a3){return _0x5cb6da(_0x4a16a2,_0x5473a3);},'ysUxT':function(_0x8d9886,_0x3e532a,_0x9a082c){return _0x8d9886(_0x3e532a,_0x9a082c);},'cHZAs':'✓\x20Created\x20.ranger/.gitignore'},_0x418c16=_0x4cbadc[_0x5738f5(0xf8)](join,_0x266745,_0x5738f5(0xba)),_0x546b96=_0x5738f5(0xcf);await _0x4cbadc['ysUxT'](writeFile,_0x418c16,_0x546b96),console['log'](_0x4cbadc['cHZAs']);}function printProfileSetupLaterInstructions(){const _0x52625d=_0x397cca,_0x5b606e={'ProYk':function(_0x49fcd1,_0x2a27e4){return _0x49fcd1(_0x2a27e4);},'unWMe':_0x52625d(0xd0)};console['log'](_0x52625d(0xa0)),console[_0x52625d(0x108)]('\x20\x20'+_0x5b606e['ProYk'](bold,_0x5b606e['unWMe'])),console['log'](_0x52625d(0x107));}async function ensureLocalEnv(_0x2978c0,_0x43113a){const _0x5e5a22=_0x397cca,_0x188363={'hFqvP':function(_0x4ba6bb){return _0x4ba6bb();},'UHphE':_0x5e5a22(0xb1),'KQeBe':function(_0x37f362,_0x191abb){return _0x37f362===_0x191abb;},'uUGeq':_0x5e5a22(0xf7),'xSSHI':function(_0xbc3135){return _0xbc3135();},'OuPVC':function(_0x28ef89,_0x21256b,_0x19b179){return _0x28ef89(_0x21256b,_0x19b179);},'MPsSu':'to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','bhKAP':'confirm','sqIIU':'Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','miSDY':function(_0x594a16,_0x498804,_0x88130b,_0x18e909){return _0x594a16(_0x498804,_0x88130b,_0x18e909);},'XOQpS':'local','EbSIo':_0x5e5a22(0x105),'KRWeX':function(_0x553957,_0x3b6204){return _0x553957 instanceof _0x3b6204;},'ARlHu':function(_0x27c70b){return _0x27c70b();}};if(!_0x188363['hFqvP'](findGitRoot))return console[_0x5e5a22(0x108)](_0x188363[_0x5e5a22(0xdf)]),{'ready':![],'skipped':!![]};const _0x335e06=_0x188363[_0x5e5a22(0xff)](_0x2978c0?.['scope'],_0x188363['uUGeq'])?_0x188363['xSSHI'](getRangerHomeDir):undefined;if(_0x188363['OuPVC'](findExistingEnv,_0x5e5a22(0xb9),{'locations':[_0x5e5a22(0xb9)],'rangerDir':_0x335e06}))return console[_0x5e5a22(0x108)]('✓\x20Local\x20profile\x20already\x20exists'),{'ready':!![],'skipped':![]};const _0x20ce64=process['stdin']['isTTY']&&process[_0x5e5a22(0xe5)]['isTTY'];if(_0x20ce64&&!_0x2978c0?.['url']){console[_0x5e5a22(0x108)](_0x5e5a22(0xbb)),console['log'](_0x188363[_0x5e5a22(0x110)]),console['log']('auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'),console['log']('use\x20until\x20the\x20session\x20expires.\x0a'),console['log']('You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.');const {wantsProfile:_0xe41a4f}=await _0x58e25c['prompt']([{'type':_0x188363[_0x5e5a22(0xbc)],'name':_0x5e5a22(0xf5),'message':_0x188363['sqIIU'],'default':!![]}]);if(!_0xe41a4f)return _0x188363[_0x5e5a22(0xc5)](printProfileSetupLaterInstructions),{'ready':![],'skipped':!![]};}try{return await _0x188363[_0x5e5a22(0xbe)](addEnv,_0x188363[_0x5e5a22(0xc7)],{'url':_0x2978c0?.[_0x5e5a22(0xe9)],'force':_0x2978c0?.[_0x5e5a22(0xfd)],'allowInsecureLocalhost':_0x2978c0?.['allowInsecureLocalhost'],'scope':_0x2978c0?.['scope']},_0x43113a),{'ready':!![],'skipped':![]};}catch(_0x570a40){return console['error'](_0x188363['EbSIo'],_0x188363[_0x5e5a22(0xdb)](_0x570a40,Error)?_0x570a40['message']:_0x570a40),_0x188363[_0x5e5a22(0xd2)](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}export async function start(_0x5e3c51,_0x49f581,_0x62d21e){const _0x4885ff=_0x397cca,_0x3bcda3={'jdKdy':'git_check','boOLA':function(_0x49533a){return _0x49533a();},'aSJCs':'No\x20git\x20repository\x20found','oUMMI':'No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.','cpDPp':function(_0x152492,_0x1d9955){return _0x152492(_0x1d9955);},'HsrZA':'user','NWwls':_0x4885ff(0xd5),'QDEtA':'chromium','WlMcW':function(_0x4c0c25,_0x5cdaac){return _0x4c0c25(_0x5cdaac);},'sKQvS':_0x4885ff(0x100),'CLNyM':function(_0x8956fe,_0x27c878){return _0x8956fe(_0x27c878);},'Mpmrm':function(_0x43ed39,_0x34a772){return _0x43ed39&&_0x34a772;},'jpbGs':'skills','DRpIC':'Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','XDToG':_0x4885ff(0x9f),'pURaL':function(_0x1f3340,_0x3f28ec){return _0x1f3340===_0x3f28ec;},'qgXaz':_0x4885ff(0xda),'dWYXe':function(_0x46371d,_0x43ef9f){return _0x46371d+_0x43ef9f;}};console['log'](_0x4885ff(0xd4));const _0x1407bc=process[_0x4885ff(0xa2)][_0x4885ff(0xee)]&&process['stdout']['isTTY'];!_0x1407bc&&!_0x49f581?.[_0x4885ff(0xdd)]&&(console[_0x4885ff(0x108)](_0x4885ff(0xae)),_0x49f581={..._0x49f581,'scope':_0x4885ff(0xf7)});_0x62d21e?.['trackPhaseStart'](_0x3bcda3[_0x4885ff(0xef)]);if(!_0x3bcda3[_0x4885ff(0xf3)](findGitRoot)){await _0x62d21e?.['trackPhaseError'](_0x3bcda3['jdKdy'],new Error(_0x3bcda3['aSJCs']));throw new Error(_0x3bcda3['oUMMI']);}_0x62d21e?.['trackPhaseEnd']('git_check');const _0x43d4b7=!_0x3bcda3['cpDPp'](existsSync,_0x3bcda3[_0x4885ff(0xf3)](getRangerDir)),_0x343848=_0x49f581?.[_0x4885ff(0xdd)]===_0x4885ff(0xf7),{path:_0x4289ac}=await ensureRangerDir(_0x343848?_0x3bcda3['HsrZA']:undefined);_0x62d21e?.['trackPhaseStart']('auth');const _0x3db30b=await authenticate(_0x5e3c51);_0x62d21e?.[_0x4885ff(0xd3)](_0x3bcda3[_0x4885ff(0x109)],{'isFirstRun':_0x43d4b7,'method':_0x3db30b['method']}),_0x62d21e?.[_0x4885ff(0xa6)](_0x3bcda3[_0x4885ff(0xa8)]);_0x49f581?.[_0x4885ff(0xb7)]?console[_0x4885ff(0x108)](_0x4885ff(0xa4)):await _0x3bcda3[_0x4885ff(0xf3)](ensureChromium);_0x62d21e?.[_0x4885ff(0xd3)](_0x4885ff(0xfa),{'isFirstRun':_0x43d4b7,'skipped':!!_0x49f581?.[_0x4885ff(0xb7)]});!_0x343848&&await _0x3bcda3['WlMcW'](writeRangerGitignore,_0x4289ac);console[_0x4885ff(0x108)]('\x0a✅\x20Ranger\x20setup\x20complete!\x0a');const _0x594cfa=_0x49f581?.[_0x4885ff(0xdd)],_0x3c8855=_0x49f581?.[_0x4885ff(0x111)]??![];let _0x2b4b50=null;_0x3c8855?(_0x62d21e?.[_0x4885ff(0xa6)](_0x3bcda3['sKQvS']),_0x2b4b50=await _0x3bcda3['CLNyM'](ensureOpencodePluginConfig,_0x594cfa),_0x62d21e?.[_0x4885ff(0xd3)](_0x3bcda3[_0x4885ff(0x10f)],{'isFirstRun':_0x43d4b7,'opencode':!![]})):(_0x62d21e?.['trackPhaseStart'](_0x3bcda3['sKQvS']),await ensureClaudePlugin(_0x594cfa),_0x62d21e?.['trackPhaseEnd'](_0x3bcda3[_0x4885ff(0x10f)],{'isFirstRun':_0x43d4b7}));if(_0x3bcda3['Mpmrm'](_0x3c8855,_0x2b4b50)){_0x62d21e?.[_0x4885ff(0xa6)](_0x4885ff(0xf9));try{await installSkill(_0x4885ff(0xc4),{'level':_0x2b4b50[_0x4885ff(0xdd)],'cliVersion':getCurrentVersion(),'platform':_0x4885ff(0x111)}),_0x62d21e?.[_0x4885ff(0xd3)](_0x4885ff(0xf9),{'isFirstRun':_0x43d4b7,'opencode':!![]});}catch(_0x57dab8){console[_0x4885ff(0xca)](_0x4885ff(0xb0),_0x57dab8 instanceof Error?_0x57dab8[_0x4885ff(0xc8)]:_0x57dab8),_0x62d21e?.['trackPhaseEnd'](_0x3bcda3['jpbGs'],{'isFirstRun':_0x43d4b7,'opencode':!![],'failed':!![]});}}else _0x62d21e?.['trackPhaseStart'](_0x4885ff(0xf9)),await ensureClaudeSkills(_0x594cfa),_0x62d21e?.['trackPhaseEnd'](_0x3bcda3['jpbGs'],{'isFirstRun':_0x43d4b7});if(!_0x1407bc&&!_0x49f581?.[_0x4885ff(0xe9)])console['log'](_0x3bcda3['DRpIC']),console['log']('\x20\x20'+bold(_0x4885ff(0xd0))+'\x0a');else{_0x62d21e?.['trackPhaseStart'](_0x3bcda3[_0x4885ff(0xea)]);const _0x15288e=await ensureLocalEnv({'url':_0x49f581?.[_0x4885ff(0xe9)],'force':_0x49f581?.[_0x4885ff(0xfd)],'allowInsecureLocalhost':_0x49f581?.[_0x4885ff(0xce)],'scope':_0x3bcda3[_0x4885ff(0x106)](_0x49f581?.[_0x4885ff(0xdd)],_0x3bcda3['HsrZA'])?'user':undefined},_0x62d21e);_0x62d21e?.[_0x4885ff(0xd3)](_0x4885ff(0x9f),{'isFirstRun':_0x43d4b7,'profileReady':_0x15288e['ready'],'userSkipped':_0x15288e['skipped']}),_0x15288e[_0x4885ff(0xd9)]&&console[_0x4885ff(0x108)](_0x4885ff(0xc6));}if(_0x3c8855)console[_0x4885ff(0x108)](_0x4885ff(0x10b)),console[_0x4885ff(0x108)](_0x4885ff(0x112)),console['log']('with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'),console['log'](_0x4885ff(0xc9));else{const _0x39f6cb=bold(_0x3bcda3[_0x4885ff(0xe6)]);console['log'](_0x3bcda3['dWYXe'](_0x4885ff(0xcd)+_0x39f6cb+_0x4885ff(0x102)+_0x4885ff(0xdc),_0x4885ff(0xc1))+_0x4885ff(0xb4));}}