@ranger-testing/ranger-cli 2.4.3 → 2.4.4

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 (71) hide show
  1. package/build/cli.js +1 -1
  2. package/build/commands/addEnv.js +1 -1
  3. package/build/commands/authEncrypt.js +1 -1
  4. package/build/commands/clean.js +1 -1
  5. package/build/commands/config.js +1 -1
  6. package/build/commands/env.js +1 -1
  7. package/build/commands/feature.js +1 -1
  8. package/build/commands/hook.js +1 -1
  9. package/build/commands/hooks/autoPrompt.js +1 -1
  10. package/build/commands/hooks/disable.js +1 -1
  11. package/build/commands/hooks/enable.js +1 -1
  12. package/build/commands/hooks/exitPlanMode.js +1 -1
  13. package/build/commands/hooks/index.js +1 -1
  14. package/build/commands/hooks/output.js +1 -1
  15. package/build/commands/hooks/planReminder.js +1 -1
  16. package/build/commands/hooks/planStart.js +1 -1
  17. package/build/commands/hooks/postEdit.js +1 -1
  18. package/build/commands/hooks/preCompact.js +1 -1
  19. package/build/commands/hooks/sessionEnd.js +1 -1
  20. package/build/commands/hooks/sessionStart.js +1 -1
  21. package/build/commands/hooks/stopHook.js +1 -1
  22. package/build/commands/index.js +1 -1
  23. package/build/commands/login.js +1 -1
  24. package/build/commands/setup/claude.js +1 -1
  25. package/build/commands/setup/opencode.js +1 -1
  26. package/build/commands/setupCi.js +1 -1
  27. package/build/commands/skillup.js +1 -1
  28. package/build/commands/start.js +1 -1
  29. package/build/commands/status.js +1 -1
  30. package/build/commands/update.js +1 -1
  31. package/build/commands/updateEnv.js +1 -1
  32. package/build/commands/useEnv.js +1 -1
  33. package/build/commands/utils/activeProfile.js +1 -1
  34. package/build/commands/utils/agentEnv.js +1 -1
  35. package/build/commands/utils/browserSessionsApi.js +1 -1
  36. package/build/commands/utils/claudeConfig.js +1 -1
  37. package/build/commands/utils/claudeOverrideSettings.js +1 -0
  38. package/build/commands/utils/claudePlugin.js +1 -1
  39. package/build/commands/utils/crypto.js +1 -1
  40. package/build/commands/utils/desirePathLog.js +1 -1
  41. package/build/commands/utils/deviceAuth.js +1 -1
  42. package/build/commands/utils/environment.js +1 -1
  43. package/build/commands/utils/featureApi.js +1 -1
  44. package/build/commands/utils/featureReportGenerator.js +1 -1
  45. package/build/commands/utils/fixWebmDuration.js +1 -1
  46. package/build/commands/utils/git.js +1 -1
  47. package/build/commands/utils/keychain.js +1 -1
  48. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  49. package/build/commands/utils/mcpImageBase64.js +1 -1
  50. package/build/commands/utils/model.js +1 -1
  51. package/build/commands/utils/opencodeConfig.js +1 -1
  52. package/build/commands/utils/playwrightCli.js +1 -1
  53. package/build/commands/utils/profileMessages.js +1 -1
  54. package/build/commands/utils/profileSetupBanner.js +1 -1
  55. package/build/commands/utils/rangerConfig.js +1 -1
  56. package/build/commands/utils/rangerRoot.js +1 -1
  57. package/build/commands/utils/reportGenerator.js +1 -1
  58. package/build/commands/utils/retry.js +1 -1
  59. package/build/commands/utils/sessionCache.js +1 -1
  60. package/build/commands/utils/settings.js +1 -1
  61. package/build/commands/utils/skillContent.js +1 -1
  62. package/build/commands/utils/skills.js +1 -1
  63. package/build/commands/utils/stitchWebmFiles.js +1 -1
  64. package/build/commands/utils/telemetry.js +1 -1
  65. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  66. package/build/commands/utils/userApi.js +1 -1
  67. package/build/commands/utils/version.js +1 -1
  68. package/build/commands/verifyFeature.js +1 -1
  69. package/build/commands/verifyFeatureCli.js +1 -1
  70. package/build/commands/verifyInBrowser.js +1 -1
  71. package/package.json +1 -1
@@ -1 +1 @@
1
- (function(_0x2081bd,_0x131c5a){const _0x12b42f=_0x2967,_0x216b35=_0x2081bd();while(!![]){try{const _0x6b38d6=parseInt(_0x12b42f(0xc4))/0x1*(-parseInt(_0x12b42f(0xc7))/0x2)+parseInt(_0x12b42f(0xbd))/0x3*(parseInt(_0x12b42f(0xbc))/0x4)+parseInt(_0x12b42f(0xba))/0x5+parseInt(_0x12b42f(0xc5))/0x6+parseInt(_0x12b42f(0xbe))/0x7+parseInt(_0x12b42f(0xc3))/0x8+-parseInt(_0x12b42f(0xb5))/0x9;if(_0x6b38d6===_0x131c5a)break;else _0x216b35['push'](_0x216b35['shift']());}catch(_0x2105ae){_0x216b35['push'](_0x216b35['shift']());}}}(_0x1254,0x1c1ef));import{appendFile}from'fs/promises';function _0x1254(){const _0x2bd323=['1377691iAUbNK','rbOdA','HLQdL','\x20(Branch:\x20','zslio','307184qcIOkJ','8RgZTpn','456060jsvvwe','success','23804uXhFTv','2843586FQxrJY','session_id','KCOYl','master','env','151415VTTnKu','trgil','105628UMjDzy','21XYUHRp'];_0x1254=function(){return _0x2bd323;};return _0x1254();}function _0x2967(_0x3d8eea,_0xeac4f8){_0x3d8eea=_0x3d8eea-0xb5;const _0x125488=_0x1254();let _0x2967c3=_0x125488[_0x3d8eea];return _0x2967c3;}import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';const RANGER_AUTO_ENABLED_PROMPT='=================================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🚨\x20RANGER\x20IS\x20ACTIVE\x20🚨\x0a=================================================================\x0a\x0aThis\x20session\x20has\x20Ranger\x20ENABLED.\x20Before\x20doing\x20ANYTHING\x20else:\x0a\x0a1.\x20**READ\x20the\x20/ranger\x20skill\x20FIRST**\x20-\x20Run\x20the\x20skill\x20to\x20understand\x20the\x20required\x20workflow\x20for\x20UI\x20features\x0a\x0a2.\x20**Check\x20for\x20existing\x20feature\x20reviews**\x20-\x20Run\x20`ranger\x20list`\x20to\x20see\x20if\x20there\x27s\x20an\x20in-progress\x20feature\x20review\x20to\x20resume\x0a\x0a3.\x20**For\x20ANY\x20UI\x20work**:\x20You\x20MUST\x20either:\x0a\x20\x20\x20-\x20Resume\x20an\x20existing\x20feature\x20review:\x20`ranger\x20resume\x20<id>`\x0a\x20\x20\x20-\x20Create\x20a\x20new\x20feature\x20review:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario>\x22`\x0a\x0a4.\x20**If\x20resuming\x20a\x20feature\x20review\x20with\x20reviewer\x20comments**:\x20Run\x20`ranger\x20get-review`\x20to\x20see\x20what\x20reviewers\x20want\x20fixed\x20before\x20making\x20code\x20changes\x0a\x0a=================================================================';export async function sessionStart(_0x52c16b){const _0x1a2a29=_0x2967,_0x2b1b0b={'zslio':function(_0x482432,_0x4db565){return _0x482432||_0x4db565;},'PyLRJ':_0x1a2a29(0xb6),'trgil':function(_0x3aad7c,_0x5e3e4d,_0x5bab06){return _0x3aad7c(_0x5e3e4d,_0x5bab06);},'KaXik':function(_0x25eb50,_0x4d93a0){return _0x25eb50(_0x4d93a0);},'umGNI':function(_0x5e5fd5,_0x3f0769){return _0x5e5fd5(_0x3f0769);},'HLQdL':'hook:session-start','KCOYl':_0x1a2a29(0xc6),'DgVHz':function(_0xc97e4b,_0x58210e){return _0xc97e4b!==_0x58210e;},'ulBCh':'main','mcNNm':_0x1a2a29(0xb8),'mjwhy':'SessionStart','rbOdA':function(_0x98996b,_0x4a5ded){return _0x98996b+_0x4a5ded;}};let _0x115982=_0x2b1b0b[_0x1a2a29(0xc2)](_0x52c16b,''),_0x25167c;if(!_0x52c16b){let _0x145890='';for await(const _0x59fe95 of process['stdin']){_0x145890+=_0x59fe95;}try{const _0x556fdc=JSON['parse'](_0x145890);_0x115982=_0x556fdc[_0x2b1b0b['PyLRJ']]||'',_0x25167c=_0x556fdc['source'];}catch{}const _0x17f79d=process[_0x1a2a29(0xb9)]['CLAUDE_ENV_FILE'];if(_0x17f79d&&_0x115982)try{await _0x2b1b0b[_0x1a2a29(0xbb)](appendFile,_0x17f79d,'export\x20CLAUDE_SESSION_ID=\x22'+_0x115982+'\x22\x0a');}catch{}}if(_0x115982){_0x2b1b0b['KaXik'](shouldAutoEnableAfterClear,_0x25167c)&&autoEnableAfterClear(_0x115982);_0x2b1b0b['umGNI'](initBranchTracking,_0x115982);const _0x405837=isSessionEnabled(_0x115982);try{const _0x11653a=createTelemetryCollector(_0x2b1b0b[_0x1a2a29(0xc0)]);await _0x11653a['trackCommandStart']({'sessionId':_0x115982,'hooksEnabled':_0x405837}),await _0x11653a['trackCommandEnd'](_0x2b1b0b[_0x1a2a29(0xb7)]);}catch{}if(_0x405837){const _0x39fb32=getCurrentBranch(),_0x3adec3=_0x39fb32&&_0x2b1b0b['DgVHz'](_0x39fb32,_0x2b1b0b['ulBCh'])&&_0x2b1b0b['DgVHz'](_0x39fb32,_0x2b1b0b['mcNNm'])?_0x1a2a29(0xc1)+_0x39fb32+')':'',_0x56fc74={'hookSpecificOutput':{'hookEventName':_0x2b1b0b['mjwhy'],'additionalContext':_0x2b1b0b[_0x1a2a29(0xbf)](RANGER_AUTO_ENABLED_PROMPT,_0x3adec3)}};console['log'](JSON['stringify'](_0x56fc74));}}}
1
+ (function(_0x984948,_0x1f87e6){const _0x12be4c=_0x505e,_0x30f53e=_0x984948();while(!![]){try{const _0x3de81b=-parseInt(_0x12be4c(0x15c))/0x1+-parseInt(_0x12be4c(0x14f))/0x2+parseInt(_0x12be4c(0x158))/0x3*(parseInt(_0x12be4c(0x14e))/0x4)+-parseInt(_0x12be4c(0x15b))/0x5*(parseInt(_0x12be4c(0x151))/0x6)+parseInt(_0x12be4c(0x154))/0x7*(parseInt(_0x12be4c(0x157))/0x8)+-parseInt(_0x12be4c(0x162))/0x9+-parseInt(_0x12be4c(0x160))/0xa*(-parseInt(_0x12be4c(0x14c))/0xb);if(_0x3de81b===_0x1f87e6)break;else _0x30f53e['push'](_0x30f53e['shift']());}catch(_0x2ac03b){_0x30f53e['push'](_0x30f53e['shift']());}}}(_0x5ded,0x3cfe9));import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';function _0x5ded(){const _0x4d6aa3=['GynJw','CdgOk','KKmRU','22231vdWJWd','parse','77368YVhxFI','208070nRVwcl','YrPIW','2038134ySPuBq','stringify','session_id','7819GMhsWZ','export\x20CLAUDE_SESSION_ID=\x22','env','928MUXSlO','48tHloQr','\x20(Branch:\x20','success','5rCtzwU','135042YFCKLe','master','trackCommandEnd','yIQJU','3830hmXZaw','MfbTY','3460392CtnblF'];_0x5ded=function(){return _0x4d6aa3;};return _0x5ded();}import{createTelemetryCollector}from'../utils/telemetry.js';function _0x505e(_0x1759c6,_0x199893){_0x1759c6=_0x1759c6-0x14a;const _0x5ded2e=_0x5ded();let _0x505ec0=_0x5ded2e[_0x1759c6];return _0x505ec0;}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(_0xe916df){const _0x1bcda5=_0x505e,_0x5e7db7={'YrPIW':function(_0xfca0d0,_0x1755c8){return _0xfca0d0||_0x1755c8;},'GynJw':function(_0x33e7af,_0xab814){return _0x33e7af(_0xab814);},'KKmRU':function(_0x31f5e0,_0x9a20b4){return _0x31f5e0(_0x9a20b4);},'MfbTY':function(_0x4a1aa9,_0x28ec0a){return _0x4a1aa9!==_0x28ec0a;},'yIQJU':'main','CdgOk':function(_0x66619,_0x42f318){return _0x66619+_0x42f318;}};let _0x228a16=_0x5e7db7[_0x1bcda5(0x150)](_0xe916df,''),_0xf44a9d;if(!_0xe916df){let _0x46dcab='';for await(const _0x3a5c29 of process['stdin']){_0x46dcab+=_0x3a5c29;}try{const _0x4461d2=JSON[_0x1bcda5(0x14d)](_0x46dcab);_0x228a16=_0x4461d2[_0x1bcda5(0x153)]||'',_0xf44a9d=_0x4461d2['source'];}catch{}const _0x11d290=process[_0x1bcda5(0x156)]['CLAUDE_ENV_FILE'];if(_0x11d290&&_0x228a16)try{await appendFile(_0x11d290,_0x1bcda5(0x155)+_0x228a16+'\x22\x0a');}catch{}}if(_0x228a16){shouldAutoEnableAfterClear(_0xf44a9d)&&autoEnableAfterClear(_0x228a16);_0x5e7db7['GynJw'](initBranchTracking,_0x228a16);const _0x223ed9=_0x5e7db7[_0x1bcda5(0x163)](isSessionEnabled,_0x228a16);try{const _0x3fe2d2=_0x5e7db7[_0x1bcda5(0x14b)](createTelemetryCollector,'hook:session-start');await _0x3fe2d2['trackCommandStart']({'sessionId':_0x228a16,'hooksEnabled':_0x223ed9}),await _0x3fe2d2[_0x1bcda5(0x15e)](_0x1bcda5(0x15a));}catch{}if(_0x223ed9){const _0x434bee=getCurrentBranch(),_0x3e59f8=_0x434bee&&_0x5e7db7[_0x1bcda5(0x161)](_0x434bee,_0x5e7db7[_0x1bcda5(0x15f)])&&_0x5e7db7[_0x1bcda5(0x161)](_0x434bee,_0x1bcda5(0x15d))?_0x1bcda5(0x159)+_0x434bee+')':'',_0x102ad0={'hookSpecificOutput':{'hookEventName':'SessionStart','additionalContext':_0x5e7db7[_0x1bcda5(0x14a)](RANGER_AUTO_ENABLED_PROMPT,_0x3e59f8)}};console['log'](JSON[_0x1bcda5(0x152)](_0x102ad0));}}}
@@ -1 +1 @@
1
- (function(_0x1b60d6,_0x4bc758){const _0x5c2e3d=_0x29b4,_0x55def9=_0x1b60d6();while(!![]){try{const _0x37be2f=parseInt(_0x5c2e3d(0x120))/0x1+-parseInt(_0x5c2e3d(0x111))/0x2+-parseInt(_0x5c2e3d(0x110))/0x3*(parseInt(_0x5c2e3d(0x117))/0x4)+-parseInt(_0x5c2e3d(0x114))/0x5+-parseInt(_0x5c2e3d(0x119))/0x6+parseInt(_0x5c2e3d(0x121))/0x7*(parseInt(_0x5c2e3d(0x123))/0x8)+-parseInt(_0x5c2e3d(0x116))/0x9*(-parseInt(_0x5c2e3d(0x122))/0xa);if(_0x37be2f===_0x4bc758)break;else _0x55def9['push'](_0x55def9['shift']());}catch(_0x20eaac){_0x55def9['push'](_0x55def9['shift']());}}}(_0x23c5,0x4fbaa));import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x42a54b){const _0x3f86a1=_0x29b4,_0x25a830={'StAhj':function(_0x1d4b1d,_0xca9569){return _0x1d4b1d(_0xca9569);},'uTgbX':function(_0x387432,_0x41d1be,_0x5ce795,_0x1625d6){return _0x387432(_0x41d1be,_0x5ce795,_0x1625d6);},'AGjgb':function(_0x4604bc,_0x341246){return _0x4604bc&&_0x341246;},'zePRg':_0x3f86a1(0x113)},_0x237d11=await getEnabledHookContext(_0x42a54b),_0x5d4e4a=_0x237d11?.[_0x3f86a1(0x112)]??null;let _0x697bd0=!![];if(!_0x5d4e4a){await trackStop(_0x5d4e4a,![],_0x697bd0);return;}try{const _0x355612=_0x25a830[_0x3f86a1(0x115)](getSessionEntry,_0x5d4e4a);if(!_0x355612){await _0x25a830[_0x3f86a1(0x128)](trackStop,_0x5d4e4a,!![],_0x697bd0);return;}const _0x1e1c13=await getToken(),_0x31cc04='https://dashboard.ranger.net/features/'+_0x355612[_0x3f86a1(0x124)];let _0x3feb20=null,_0x266a8f=![],_0x379a46=![];if(_0x1e1c13)try{const _0xb956dc=await getFeature(_0x355612[_0x3f86a1(0x124)]);_0x3feb20=_0xb956dc[_0x3f86a1(0x11f)]??null;const _0x561cbb=_0xb956dc[_0x3f86a1(0x10d)][_0x3f86a1(0x10f)](_0x3bbdd0=>_0x3bbdd0[_0x3f86a1(0x112)]===_0x3feb20);_0x266a8f=_0x561cbb[_0x3f86a1(0x127)](_0x290231=>_0x290231['status']!==_0x3f86a1(0x125)&&_0x290231['status']!==_0x3f86a1(0x11e)&&_0x290231['status']!==_0x3f86a1(0x11b)&&_0x290231['status']!=='incomplete'),_0x379a46=_0x561cbb[_0x3f86a1(0x127)](_0x467bed=>_0x467bed['status']===_0x3f86a1(0x129));}catch{}if(_0x25a830[_0x3f86a1(0x126)](_0x1e1c13,_0x3feb20)&&_0x266a8f){if(!_0x379a46&&shouldShowStopReminder(_0x5d4e4a)){const _0x3805f1={'hookSpecificOutput':{'hookEventName':_0x25a830[_0x3f86a1(0x11c)],'additionalContext':'RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20'+_0x31cc04}};console[_0x3f86a1(0x10e)](JSON[_0x3f86a1(0x10c)](_0x3805f1));}}if(_0x1e1c13&&_0x3feb20&&!_0x266a8f)try{await concludeSession(_0x355612['featureId'],_0x3feb20);}catch{}await trackStop(_0x5d4e4a,!![],_0x697bd0);return;}catch{await trackStop(_0x5d4e4a,!![],_0x697bd0);return;}}function _0x23c5(){const _0x31016a=['verification_in_progress','stringify','checklistItems','log','filter','3MToPdY','1137506hCOXYE','sessionId','Stop','770980xpzXxq','StAhj','72027HqGmfr','353884SxMVRE','trackCommandEnd','2259888wOUToU','trackCommandStart','closed','zePRg','success','blocked','currentSessionId','556297khLPpL','63tFBLbV','600aPbtPv','425032ZddLYo','featureId','verified','AGjgb','some','uTgbX'];_0x23c5=function(){return _0x31016a;};return _0x23c5();}function _0x29b4(_0x446df6,_0x52f347){_0x446df6=_0x446df6-0x10c;const _0x23c5bd=_0x23c5();let _0x29b4b4=_0x23c5bd[_0x446df6];return _0x29b4b4;}async function trackStop(_0x50b18b,_0x55ad2a,_0x1f3985){const _0x489a5c=_0x29b4,_0x4a3f0d={'lXZOB':'hook:stop','iYKZW':_0x489a5c(0x11d)};try{const _0x18df3c=createTelemetryCollector(_0x4a3f0d['lXZOB']);await _0x18df3c[_0x489a5c(0x11a)]({'sessionId':_0x50b18b??undefined,'hooksEnabled':_0x55ad2a,'stopAllowed':_0x1f3985}),await _0x18df3c[_0x489a5c(0x118)](_0x4a3f0d['iYKZW']);}catch{}}
1
+ (function(_0x3c8c46,_0x54d97b){const _0x1f8394=_0x4c9b,_0x49a688=_0x3c8c46();while(!![]){try{const _0x1539af=parseInt(_0x1f8394(0xa8))/0x1+-parseInt(_0x1f8394(0xad))/0x2+-parseInt(_0x1f8394(0xa9))/0x3*(parseInt(_0x1f8394(0xbe))/0x4)+parseInt(_0x1f8394(0xb3))/0x5+-parseInt(_0x1f8394(0xaa))/0x6*(parseInt(_0x1f8394(0xbd))/0x7)+-parseInt(_0x1f8394(0xb7))/0x8+parseInt(_0x1f8394(0xbb))/0x9;if(_0x1539af===_0x54d97b)break;else _0x49a688['push'](_0x49a688['shift']());}catch(_0xd2fe86){_0x49a688['push'](_0x49a688['shift']());}}}(_0x2f57,0x38596));import{getToken}from'../utils/keychain.js';function _0x4c9b(_0x1665f5,_0x3e07df){_0x1665f5=_0x1665f5-0xa6;const _0x2f570f=_0x2f57();let _0x4c9b1a=_0x2f570f[_0x1665f5];return _0x4c9b1a;}import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x4c58e9){const _0x38c23d=_0x4c9b,_0x560fc0={'yGNnN':function(_0x21b84a,_0x34276c,_0x4c94fd,_0x4af7b8){return _0x21b84a(_0x34276c,_0x4c94fd,_0x4af7b8);},'AWMJD':function(_0x4fefcd,_0x19ecd3){return _0x4fefcd(_0x19ecd3);},'UYOHw':function(_0x25d4b4){return _0x25d4b4();},'pnXRQ':function(_0x57aa73,_0x552e9c){return _0x57aa73(_0x552e9c);},'ZCsxR':function(_0x1fbef2,_0x4304e6){return _0x1fbef2(_0x4304e6);},'zUmGs':function(_0x4621f3,_0xff1aae,_0x4d258f,_0x47eba9){return _0x4621f3(_0xff1aae,_0x4d258f,_0x47eba9);}},_0x54d30d=await getEnabledHookContext(_0x4c58e9),_0x1ff70e=_0x54d30d?.['sessionId']??null;let _0x15dc66=!![];if(!_0x1ff70e){await _0x560fc0['yGNnN'](trackStop,_0x1ff70e,![],_0x15dc66);return;}try{const _0x8c8ffe=_0x560fc0[_0x38c23d(0xae)](getSessionEntry,_0x1ff70e);if(!_0x8c8ffe){await _0x560fc0['yGNnN'](trackStop,_0x1ff70e,!![],_0x15dc66);return;}const _0x1c3d46=await _0x560fc0['UYOHw'](getToken),_0x3ee298=_0x38c23d(0xb8)+_0x8c8ffe[_0x38c23d(0xb5)];let _0x16c224=null,_0x1492de=![],_0x101841=![];if(_0x1c3d46)try{const _0x56b8d0=await _0x560fc0[_0x38c23d(0xbc)](getFeature,_0x8c8ffe['featureId']);_0x16c224=_0x56b8d0[_0x38c23d(0xb1)]??null;const _0x104303=_0x56b8d0['checklistItems'][_0x38c23d(0xb4)](_0x15952d=>_0x15952d['sessionId']===_0x16c224);_0x1492de=_0x104303['some'](_0x34c6d2=>_0x34c6d2['status']!==_0x38c23d(0xaf)&&_0x34c6d2[_0x38c23d(0xab)]!=='blocked'&&_0x34c6d2['status']!==_0x38c23d(0xb0)&&_0x34c6d2[_0x38c23d(0xab)]!=='incomplete'),_0x101841=_0x104303['some'](_0x17e5c4=>_0x17e5c4[_0x38c23d(0xab)]==='verification_in_progress');}catch{}if(_0x1c3d46&&_0x16c224&&_0x1492de){if(!_0x101841&&_0x560fc0['ZCsxR'](shouldShowStopReminder,_0x1ff70e)){const _0x1ee1bb={'hookSpecificOutput':{'hookEventName':_0x38c23d(0xb9),'additionalContext':_0x38c23d(0xa7)+_0x3ee298}};console['log'](JSON['stringify'](_0x1ee1bb));}}if(_0x1c3d46&&_0x16c224&&!_0x1492de)try{await concludeSession(_0x8c8ffe[_0x38c23d(0xb5)],_0x16c224);}catch{}await trackStop(_0x1ff70e,!![],_0x15dc66);return;}catch{await _0x560fc0[_0x38c23d(0xb2)](trackStop,_0x1ff70e,!![],_0x15dc66);return;}}function _0x2f57(){const _0x421629=['currentSessionId','zUmGs','1848965dRTEuo','filter','featureId','HOujI','1071056PDVolf','https://dashboard.ranger.net/features/','Stop','trackCommandEnd','7299675wuxWjz','pnXRQ','1736YaiLvs','4AsxKiW','success','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','287486bvHsvJ','1318287mjOQUf','8484LMoPsP','status','hpBiB','627130ktBgal','AWMJD','verified','closed'];_0x2f57=function(){return _0x421629;};return _0x2f57();}async function trackStop(_0x24e384,_0x2f1f40,_0x544fe2){const _0x5a9be4=_0x4c9b,_0x51a75f={'HOujI':'hook:stop','hpBiB':_0x5a9be4(0xa6)};try{const _0x22bedd=createTelemetryCollector(_0x51a75f[_0x5a9be4(0xb6)]);await _0x22bedd['trackCommandStart']({'sessionId':_0x24e384??undefined,'hooksEnabled':_0x2f1f40,'stopAllowed':_0x544fe2}),await _0x22bedd[_0x5a9be4(0xba)](_0x51a75f[_0x5a9be4(0xac)]);}catch{}}
@@ -1 +1 @@
1
- (function(_0x103b3d,_0x5e6c88){var _0x21722e=_0x5ebc,_0x19c6ae=_0x103b3d();while(!![]){try{var _0x57875b=-parseInt(_0x21722e(0x95))/0x1*(parseInt(_0x21722e(0x9a))/0x2)+-parseInt(_0x21722e(0x9b))/0x3+parseInt(_0x21722e(0x98))/0x4*(parseInt(_0x21722e(0x94))/0x5)+-parseInt(_0x21722e(0x97))/0x6*(-parseInt(_0x21722e(0x9d))/0x7)+parseInt(_0x21722e(0x96))/0x8*(parseInt(_0x21722e(0x9c))/0x9)+-parseInt(_0x21722e(0x92))/0xa+-parseInt(_0x21722e(0x93))/0xb*(parseInt(_0x21722e(0x99))/0xc);if(_0x57875b===_0x5e6c88)break;else _0x19c6ae['push'](_0x19c6ae['shift']());}catch(_0x3b322a){_0x19c6ae['push'](_0x19c6ae['shift']());}}}(_0x4690,0xcfe0c));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';export{useEnv}from'./useEnv.js';function _0x5ebc(_0x21251b,_0x3faf2c){_0x21251b=_0x21251b-0x92;var _0x46900b=_0x4690();var _0x5ebc2f=_0x46900b[_0x21251b];return _0x5ebc2f;}function _0x4690(){var _0x39e8f9=['1132046jHyNGt','335340QhTfOT','9tibjJi','7BsIWdU','5028830XaYTbX','5716227VQfFKD','35PWXNud','1dVWIHN','5904368XgInYr','6990492qULPMv','370676OTyZGa','12LSMUzh'];_0x4690=function(){return _0x39e8f9;};return _0x4690();}export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
1
+ (function(_0x4195ae,_0x94d294){var _0x1f0f92=_0x585a,_0x2cbabc=_0x4195ae();while(!![]){try{var _0x4a8936=-parseInt(_0x1f0f92(0x163))/0x1*(parseInt(_0x1f0f92(0x168))/0x2)+parseInt(_0x1f0f92(0x15d))/0x3*(-parseInt(_0x1f0f92(0x167))/0x4)+parseInt(_0x1f0f92(0x15c))/0x5*(-parseInt(_0x1f0f92(0x164))/0x6)+parseInt(_0x1f0f92(0x160))/0x7*(-parseInt(_0x1f0f92(0x165))/0x8)+parseInt(_0x1f0f92(0x161))/0x9+parseInt(_0x1f0f92(0x162))/0xa*(parseInt(_0x1f0f92(0x15e))/0xb)+parseInt(_0x1f0f92(0x15f))/0xc*(parseInt(_0x1f0f92(0x166))/0xd);if(_0x4a8936===_0x94d294)break;else _0x2cbabc['push'](_0x2cbabc['shift']());}catch(_0x4a9d4b){_0x2cbabc['push'](_0x2cbabc['shift']());}}}(_0x231e,0x8a4c6));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';function _0x585a(_0x46dfbf,_0x28b82d){_0x46dfbf=_0x46dfbf-0x15c;var _0x231e35=_0x231e();var _0x585a46=_0x231e35[_0x46dfbf];return _0x585a46;}export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';function _0x231e(){var _0x567a57=['693OIcMDj','39143208otdiPh','269129IssWGr','1914012GEWEgK','1420VdMwFo','3YbUEId','34608hTFNNy','200HNrFAA','13VmGwnl','1150280ZAfQDc','298118mbfeMo','560qZDjXC','9wYavcK'];_0x231e=function(){return _0x567a57;};return _0x231e();}export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
@@ -1 +1 @@
1
- function _0xc4ad(){const _0x94c862=['MkBcj','user','190THTUye','Login\x20failed:\x20','1943319kqTHqf','189291VqryEG','71522DHUFbu','76952BTyrpl','isTTY','\x0a✅\x20Logged\x20in\x20to\x20','587412FfUdOZ','6CWHEWF','message','stdin','718299vQNGhc','12rjaJPE','8hhpDhn','424495XGUlfl','stdout','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.'];_0xc4ad=function(){return _0x94c862;};return _0xc4ad();}(function(_0x34ab1e,_0xd30e92){const _0x87b6c8=_0x14b4,_0x2d227f=_0x34ab1e();while(!![]){try{const _0x271942=-parseInt(_0x87b6c8(0x87))/0x1+-parseInt(_0x87b6c8(0x8b))/0x2*(-parseInt(_0x87b6c8(0x85))/0x3)+parseInt(_0x87b6c8(0x8a))/0x4+parseInt(_0x87b6c8(0x91))/0x5*(-parseInt(_0x87b6c8(0x8f))/0x6)+parseInt(_0x87b6c8(0x84))/0x7+parseInt(_0x87b6c8(0x90))/0x8*(-parseInt(_0x87b6c8(0x8e))/0x9)+parseInt(_0x87b6c8(0x82))/0xa*(-parseInt(_0x87b6c8(0x86))/0xb);if(_0x271942===_0xd30e92)break;else _0x2d227f['push'](_0x2d227f['shift']());}catch(_0x493d5e){_0x2d227f['push'](_0x2d227f['shift']());}}}(_0xc4ad,0x27f4e));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x14b4(_0x54ff09,_0x1736a0){_0x54ff09=_0x54ff09-0x80;const _0xc4add4=_0xc4ad();let _0x14b4c4=_0xc4add4[_0x54ff09];return _0x14b4c4;}export async function login(){const _0x27a4e9=_0x14b4,_0x188436={'TQSmr':function(_0x291c0e){return _0x291c0e();},'MkBcj':function(_0xe54ec3,_0xa55236){return _0xe54ec3(_0xa55236);},'icZfw':function(_0x53a92c,_0x4a2b94){return _0x53a92c instanceof _0x4a2b94;}},_0xd1465f=process[_0x27a4e9(0x8d)][_0x27a4e9(0x88)]&&process[_0x27a4e9(0x92)][_0x27a4e9(0x88)];if(!_0xd1465f)throw new Error(_0x27a4e9(0x93));try{const _0x509660=await _0x188436['TQSmr'](runDeviceAuthFlow),_0x30eec1=await _0x188436[_0x27a4e9(0x80)](getCurrentUser,_0x509660);_0x30eec1['success']?console['log'](_0x27a4e9(0x89)+_0x30eec1[_0x27a4e9(0x81)]['organizationName']):console['log']('\x0a✅\x20API\x20key\x20stored\x20successfully');}catch(_0x26e276){throw new Error(_0x27a4e9(0x83)+(_0x188436['icZfw'](_0x26e276,Error)?_0x26e276[_0x27a4e9(0x8c)]:_0x26e276));}}
1
+ (function(_0x38bd85,_0xca000){const _0xea5b=_0x5d63,_0xfb2705=_0x38bd85();while(!![]){try{const _0x5e8e24=-parseInt(_0xea5b(0x107))/0x1+parseInt(_0xea5b(0x108))/0x2*(parseInt(_0xea5b(0x100))/0x3)+-parseInt(_0xea5b(0xf9))/0x4+parseInt(_0xea5b(0xf8))/0x5*(-parseInt(_0xea5b(0x101))/0x6)+-parseInt(_0xea5b(0x103))/0x7*(-parseInt(_0xea5b(0xf5))/0x8)+parseInt(_0xea5b(0xff))/0x9*(parseInt(_0xea5b(0x102))/0xa)+parseInt(_0xea5b(0xfd))/0xb*(-parseInt(_0xea5b(0xfc))/0xc);if(_0x5e8e24===_0xca000)break;else _0xfb2705['push'](_0xfb2705['shift']());}catch(_0x29ce1b){_0xfb2705['push'](_0xfb2705['shift']());}}}(_0x18d8,0x3fe70));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x5d63(_0xd0618b,_0x23651e){_0xd0618b=_0xd0618b-0xf5;const _0x18d859=_0x18d8();let _0x5d6323=_0x18d859[_0xd0618b];return _0x5d6323;}function _0x18d8(){const _0x59be9f=['22DkNCqM','isTTY','99jsznaj','381fAVnrm','486IPDYbV','338440QYBlDw','256613abwNPW','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','user','Login\x20failed:\x20','46199DdwKXI','6844CcaqTT','organizationName','104fignRe','success','log','22045ZrsooJ','2022028FZLOgj','stdout','stdin','677196xwoRau'];_0x18d8=function(){return _0x59be9f;};return _0x18d8();}import{getCurrentUser}from'./utils/userApi.js';export async function login(){const _0x102d77=_0x5d63,_0x28daef={'jwKIk':_0x102d77(0x104)},_0x3c4c4b=process[_0x102d77(0xfb)][_0x102d77(0xfe)]&&process[_0x102d77(0xfa)][_0x102d77(0xfe)];if(!_0x3c4c4b)throw new Error(_0x28daef['jwKIk']);try{const _0x4e37e7=await runDeviceAuthFlow(),_0x4c2220=await getCurrentUser(_0x4e37e7);_0x4c2220[_0x102d77(0xf6)]?console['log']('\x0a✅\x20Logged\x20in\x20to\x20'+_0x4c2220[_0x102d77(0x105)][_0x102d77(0x109)]):console[_0x102d77(0xf7)]('\x0a✅\x20API\x20key\x20stored\x20successfully');}catch(_0x4b95b3){throw new Error(_0x102d77(0x106)+(_0x4b95b3 instanceof Error?_0x4b95b3['message']:_0x4b95b3));}}
@@ -1 +1 @@
1
- (function(_0x113236,_0x180f7c){const _0x33dc7b=_0x3727,_0x52264d=_0x113236();while(!![]){try{const _0x2adbb6=-parseInt(_0x33dc7b(0x1ef))/0x1*(parseInt(_0x33dc7b(0x1dc))/0x2)+-parseInt(_0x33dc7b(0x1cd))/0x3+parseInt(_0x33dc7b(0x1dd))/0x4*(-parseInt(_0x33dc7b(0x1d6))/0x5)+parseInt(_0x33dc7b(0x1ea))/0x6+-parseInt(_0x33dc7b(0x1c7))/0x7+-parseInt(_0x33dc7b(0x1cb))/0x8*(parseInt(_0x33dc7b(0x1d8))/0x9)+parseInt(_0x33dc7b(0x1d3))/0xa;if(_0x2adbb6===_0x180f7c)break;else _0x52264d['push'](_0x52264d['shift']());}catch(_0x5508f3){_0x52264d['push'](_0x52264d['shift']());}}}(_0x2e00,0x810bd));import{join}from'path';import{existsSync}from'fs';import _0x4782a6 from'inquirer';function _0x3727(_0x1ca33a,_0x29dfbe){_0x1ca33a=_0x1ca33a-0x1c5;const _0x2e003f=_0x2e00();let _0x3727de=_0x2e003f[_0x1ca33a];return _0x3727de;}import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x2e00(){const _0x16f67d=['IPZkF','\x0aYou\x20can\x20install\x20manually\x20with:','wantsSkillup','log','ezFnO','2817804bLWTFy','project','PwTPW','user','rypjN','113623rQCOPf','⚠\x20Failed\x20to\x20enable\x20plugin:','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','plugin','push','6166482HEzPpZ','prompt','\x20level)...\x0a','❌\x20Failed\x20to\x20install\x20plugin:','56024kzZuig','ranger@trailhead','3021981NJdBDC','CpXUI','Hxbsa','MTdMj','already\x20enabled','Would\x20you\x20like\x20to\x20install\x20skills?','28374160QqpCSt','✓\x20Marketplace\x20already\x20added','YYkMM','2326595qPXTPI','FLBcV','108mQpzke','install','jNXgF','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','6EmJrXQ','4rUGHNo','.claude','output','ranger','--scope','Where\x20should\x20the\x20plugin\x20be\x20installed?','includes','error'];_0x2e00=function(){return _0x16f67d;};return _0x2e00();}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x4e5f94){const _0x4041c9=_0x3727,_0x5d1597={'ceYIm':function(_0x1d9909,_0x3f8eee){return _0x1d9909(_0x3f8eee);},'ABukV':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','FLBcV':function(_0x2dcf5c){return _0x2dcf5c();},'rypjN':'project','PwTPW':'pluginScope','QQXdW':_0x4041c9(0x1e2),'jNXgF':'User\x20(available\x20in\x20all\x20your\x20projects)','bPUgw':_0x4041c9(0x1d4),'YYkMM':function(_0x573372,_0x74ac74){return _0x573372(_0x74ac74);},'MTdMj':'marketplace','XKFRD':_0x4041c9(0x1db),'ezFnO':_0x4041c9(0x1d9),'HAIFZ':_0x4041c9(0x1ca),'CpXUI':function(_0x544231,_0x2e2c7e){return _0x544231===_0x2e2c7e;},'jFdQN':function(_0x419ac0,_0x5262d2,_0x25c757){return _0x419ac0(_0x5262d2,_0x25c757);}},_0x51304a=await _0x5d1597['ceYIm'](isPluginInstalled,'ranger@trailhead');if(_0x51304a)return console['log'](_0x5d1597['ABukV']),![];const _0x1d3154=_0x5d1597['ceYIm'](existsSync,join(_0x5d1597[_0x4041c9(0x1d7)](getProjectRoot),_0x4041c9(0x1de)));let _0x315a89;if(_0x4e5f94)_0x315a89=_0x4e5f94;else{if(_0x1d3154)_0x315a89=_0x5d1597[_0x4041c9(0x1ee)];else{console[_0x4041c9(0x1e8)]('\x0a📦\x20Claude\x20Code\x20Plugin\x0a');const _0x367b88=await _0x4782a6['prompt']([{'type':'list','name':_0x5d1597[_0x4041c9(0x1ec)],'message':_0x5d1597['QQXdW'],'choices':[{'name':_0x5d1597[_0x4041c9(0x1da)],'value':_0x4041c9(0x1ed)},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x4041c9(0x1eb)}],'default':_0x4041c9(0x1ed)}]);_0x315a89=_0x367b88['pluginScope'];}}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x315a89+_0x4041c9(0x1c9));const _0x1055d4=await isMarketplaceAdded('trailhead');let _0x54a8eb=_0x1055d4;if(_0x1055d4)console[_0x4041c9(0x1e8)](_0x5d1597['bPUgw']);else{const _0x5e2588=await _0x5d1597[_0x4041c9(0x1d5)](runClaudeCommand,[_0x4041c9(0x1c5),_0x5d1597[_0x4041c9(0x1d0)],'add','ranger-testing/trailhead']);!_0x5e2588['success']?(console['error']('❌\x20Failed\x20to\x20add\x20marketplace:',_0x5e2588['error']),console[_0x4041c9(0x1e8)](_0x4041c9(0x1e6)),console['log'](_0x5d1597['XKFRD']),console['log'](_0x4041c9(0x1f1)+_0x315a89)):_0x54a8eb=!![];}if(_0x54a8eb){const _0x3d1412=await runClaudeCommand([_0x4041c9(0x1c5),_0x5d1597[_0x4041c9(0x1e9)],_0x4041c9(0x1cc),_0x4041c9(0x1e1),_0x315a89]);if(!_0x3d1412['success'])console['error'](_0x5d1597['HAIFZ'],_0x3d1412[_0x4041c9(0x1e4)]),console['log']('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x4041c9(0x1e8)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x315a89);else{console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x40a261=[_0x4041c9(0x1c5),'enable','ranger@trailhead'];_0x5d1597[_0x4041c9(0x1ce)](_0x315a89,'project')&&_0x40a261[_0x4041c9(0x1c6)]('--scope',_0x5d1597['rypjN']);const _0x24e95e=await _0x5d1597['jFdQN'](runClaudeCommand,_0x40a261,{'captureOutput':!![]}),_0xa6bc17=_0x24e95e[_0x4041c9(0x1df)]?.[_0x4041c9(0x1e3)](_0x4041c9(0x1d1));!_0x24e95e['success']&&!_0xa6bc17?console['error'](_0x4041c9(0x1f0),_0x24e95e[_0x4041c9(0x1e4)]):console['log']('✓\x20Claude\x20Code\x20plugin\x20enabled');}}return!![];}export async function ensureClaudeSkills(_0x2b0ea8){const _0x508cba=_0x3727,_0x1392f9={'sgwAI':function(_0x3ece9c,_0x551eb8,_0x63bf8f,_0x133f44){return _0x3ece9c(_0x551eb8,_0x63bf8f,_0x133f44);},'joVBj':function(_0x5972c4,_0x1988a2){return _0x5972c4(_0x1988a2);},'Hxbsa':function(_0x1b6743,_0x233de8){return _0x1b6743(_0x233de8);},'IPZkF':'ranger','jtXUT':'SKILL.md','ipArJ':function(_0x1d8c26,_0x3f8b68){return _0x1d8c26||_0x3f8b68;},'PGnCu':function(_0x1fa6a5,_0x47b0a3,_0x41b158){return _0x1fa6a5(_0x47b0a3,_0x41b158);},'pFiJC':function(_0x1d234c){return _0x1d234c();},'FJVqW':_0x508cba(0x1de),'HVsjA':function(_0x442ff0,_0x228fec){return _0x442ff0(_0x228fec);},'ymLPv':'project','Thdts':function(_0x1c34e8,_0x573fef){return _0x1c34e8(_0x573fef);}},_0x3139fa=existsSync(_0x1392f9['sgwAI'](join,_0x1392f9['joVBj'](getSkillsDir,_0x508cba(0x1ed)),_0x508cba(0x1e0),'SKILL.md')),_0x5d5160=_0x1392f9[_0x508cba(0x1cf)](existsSync,join(getSkillsDir('project'),_0x1392f9[_0x508cba(0x1e5)],_0x1392f9['jtXUT']));if(_0x1392f9['ipArJ'](_0x3139fa,_0x5d5160))return console[_0x508cba(0x1e8)]('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0x1aa6ce=_0x1392f9['Hxbsa'](existsSync,_0x1392f9['PGnCu'](join,_0x1392f9['pFiJC'](getProjectRoot),_0x1392f9['FJVqW']));let _0x1324ec=!![];if(_0x2b0ea8)await skillup({'autoInstall':_0x2b0ea8,'suppressUsage':!![]});else{if(_0x1aa6ce)await _0x1392f9['HVsjA'](skillup,{'autoInstall':_0x1392f9['ymLPv'],'suppressUsage':!![]});else{const _0xe99842=await _0x4782a6[_0x508cba(0x1c8)]([{'type':'confirm','name':'wantsSkillup','message':_0x508cba(0x1d2),'default':!![]}]);_0x1324ec=_0xe99842[_0x508cba(0x1e7)],_0x1324ec&&await _0x1392f9['Thdts'](skillup,{'suppressUsage':!![]});}}return _0x1324ec;}
1
+ (function(_0x525029,_0x31bade){const _0x705dc3=_0x21c4,_0x34cfc1=_0x525029();while(!![]){try{const _0x33dc7b=-parseInt(_0x705dc3(0x191))/0x1*(parseInt(_0x705dc3(0x1a4))/0x2)+-parseInt(_0x705dc3(0x1ab))/0x3*(parseInt(_0x705dc3(0x19a))/0x4)+-parseInt(_0x705dc3(0x19e))/0x5*(-parseInt(_0x705dc3(0x19b))/0x6)+-parseInt(_0x705dc3(0x1a6))/0x7*(-parseInt(_0x705dc3(0x1a8))/0x8)+-parseInt(_0x705dc3(0x192))/0x9+-parseInt(_0x705dc3(0x187))/0xa+-parseInt(_0x705dc3(0x1a5))/0xb*(-parseInt(_0x705dc3(0x18e))/0xc);if(_0x33dc7b===_0x31bade)break;else _0x34cfc1['push'](_0x34cfc1['shift']());}catch(_0x43e156){_0x34cfc1['push'](_0x34cfc1['shift']());}}}(_0x4827,0x9f1ab));import{join}from'path';import{existsSync}from'fs';import _0x4bbf62 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(_0x3b151d){const _0x231852=_0x21c4,_0x49f882={'nomZS':function(_0x371e68,_0x21dea3){return _0x371e68(_0x21dea3);},'OmNmm':'.claude','pyNjE':'\x0a📦\x20Claude\x20Code\x20Plugin\x0a','jskCQ':'pluginScope','zNTMw':'user','naLuG':'project','UiDGJ':'plugin','XxWCl':_0x231852(0x1a0),'xQdGJ':_0x231852(0x199),'bDeIF':_0x231852(0x18a),'ANzvN':function(_0x2b7e15,_0x3895a4){return _0x2b7e15(_0x3895a4);},'eTWhC':_0x231852(0x183),'nwMZG':'enable','UvKah':function(_0x2ce0e3,_0x1036ac,_0x403677){return _0x2ce0e3(_0x1036ac,_0x403677);},'fgbkY':'⚠\x20Failed\x20to\x20enable\x20plugin:'},_0x5523fb=await isPluginInstalled(_0x231852(0x1b0));if(_0x5523fb)return console['log'](_0x231852(0x186)),![];const _0xedc347=_0x49f882['nomZS'](existsSync,join(getProjectRoot(),_0x49f882[_0x231852(0x1b2)]));let _0x2817c9;if(_0x3b151d)_0x2817c9=_0x3b151d;else{if(_0xedc347)_0x2817c9=_0x231852(0x18d);else{console[_0x231852(0x189)](_0x49f882['pyNjE']);const _0x38e36d=await _0x4bbf62[_0x231852(0x19d)]([{'type':_0x231852(0x19f),'name':_0x49f882['jskCQ'],'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x231852(0x194),'value':_0x49f882['zNTMw']},{'name':_0x231852(0x1ae),'value':_0x49f882['naLuG']}],'default':_0x49f882['zNTMw']}]);_0x2817c9=_0x38e36d['pluginScope'];}}console[_0x231852(0x189)](_0x231852(0x1a3)+_0x2817c9+_0x231852(0x1af));const _0x28ea81=await isMarketplaceAdded('trailhead');let _0x15c091=_0x28ea81;if(_0x28ea81)console['log'](_0x231852(0x17e));else{const _0x41b6d9=await runClaudeCommand([_0x49f882['UiDGJ'],'marketplace','add',_0x49f882['XxWCl']]);!_0x41b6d9[_0x231852(0x18c)]?(console['error'](_0x49f882['xQdGJ'],_0x41b6d9[_0x231852(0x1b3)]),console[_0x231852(0x189)](_0x49f882[_0x231852(0x1b1)]),console[_0x231852(0x189)]('\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead'),console[_0x231852(0x189)](_0x231852(0x1a7)+_0x2817c9)):_0x15c091=!![];}if(_0x15c091){const _0x259743=await _0x49f882[_0x231852(0x1a2)](runClaudeCommand,[_0x49f882[_0x231852(0x1a1)],'install',_0x231852(0x1b0),_0x49f882['eTWhC'],_0x2817c9]);if(!_0x259743[_0x231852(0x18c)])console['error']('❌\x20Failed\x20to\x20install\x20plugin:',_0x259743[_0x231852(0x1b3)]),console['log'](_0x49f882[_0x231852(0x1b1)]),console['log'](_0x231852(0x1a7)+_0x2817c9);else{console[_0x231852(0x189)]('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x50eb49=[_0x49f882['UiDGJ'],_0x49f882[_0x231852(0x182)],'ranger@trailhead'];_0x2817c9===_0x49f882[_0x231852(0x196)]&&_0x50eb49['push'](_0x49f882['eTWhC'],'project');const _0x1ccc62=await _0x49f882[_0x231852(0x184)](runClaudeCommand,_0x50eb49,{'captureOutput':!![]}),_0xd26bee=_0x1ccc62[_0x231852(0x195)]?.['includes'](_0x231852(0x188));!_0x1ccc62[_0x231852(0x18c)]&&!_0xd26bee?console[_0x231852(0x1b3)](_0x49f882[_0x231852(0x180)],_0x1ccc62['error']):console['log']('✓\x20Claude\x20Code\x20plugin\x20enabled');}}return!![];}function _0x21c4(_0x30ab97,_0x1a7192){_0x30ab97=_0x30ab97-0x17e;const _0x482750=_0x4827();let _0x21c427=_0x482750[_0x30ab97];return _0x21c427;}export async function ensureClaudeSkills(_0x4df561){const _0x439995=_0x21c4,_0x534e66={'CuvGv':function(_0x172338,_0x2a07f2){return _0x172338(_0x2a07f2);},'rcrxh':function(_0x5640b4,_0x5420a4,_0x3d44a9,_0x4ee54f){return _0x5640b4(_0x5420a4,_0x3d44a9,_0x4ee54f);},'GNEDO':_0x439995(0x17f),'uHNuH':function(_0x404768,_0x18cd76){return _0x404768(_0x18cd76);},'Ymvqj':function(_0x443d16,_0x3914be){return _0x443d16||_0x3914be;},'jQRHn':_0x439995(0x190),'BIREG':function(_0x484b84,_0x5ad599,_0x22a38b){return _0x484b84(_0x5ad599,_0x22a38b);},'mMjOo':'.claude','PzHiG':'wantsSkillup','CYjwM':_0x439995(0x1aa)},_0x44b0bf=_0x534e66['CuvGv'](existsSync,_0x534e66[_0x439995(0x193)](join,_0x534e66[_0x439995(0x181)](getSkillsDir,_0x439995(0x185)),_0x534e66['GNEDO'],_0x439995(0x197))),_0x7514aa=_0x534e66['uHNuH'](existsSync,_0x534e66[_0x439995(0x193)](join,getSkillsDir('project'),_0x534e66['GNEDO'],'SKILL.md'));if(_0x534e66[_0x439995(0x1ad)](_0x44b0bf,_0x7514aa))return console[_0x439995(0x189)](_0x534e66[_0x439995(0x1a9)]),![];const _0x373dd4=existsSync(_0x534e66[_0x439995(0x19c)](join,getProjectRoot(),_0x534e66[_0x439995(0x198)]));let _0x4848fe=!![];if(_0x4df561)await _0x534e66[_0x439995(0x181)](skillup,{'autoInstall':_0x4df561,'suppressUsage':!![]});else{if(_0x373dd4)await _0x534e66[_0x439995(0x1ac)](skillup,{'autoInstall':_0x439995(0x18d),'suppressUsage':!![]});else{const _0x433e96=await _0x4bbf62[_0x439995(0x19d)]([{'type':'confirm','name':_0x534e66['PzHiG'],'message':_0x534e66[_0x439995(0x18f)],'default':!![]}]);_0x4848fe=_0x433e96[_0x439995(0x18b)],_0x4848fe&&await _0x534e66['uHNuH'](skillup,{'suppressUsage':!![]});}}return _0x4848fe;}function _0x4827(){const _0x214d01=['✓\x20Marketplace\x20already\x20added','ranger','fgbkY','CuvGv','nwMZG','--scope','UvKah','user','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','8091720dKlGFC','already\x20enabled','log','\x0aYou\x20can\x20install\x20manually\x20with:','wantsSkillup','success','project','36Wzthbz','CYjwM','✓\x20Ranger\x20skills\x20already\x20installed','329201WRnCYW','244206dBfydj','rcrxh','User\x20(available\x20in\x20all\x20your\x20projects)','output','naLuG','SKILL.md','mMjOo','❌\x20Failed\x20to\x20add\x20marketplace:','696452kmECDS','792lJHvfU','BIREG','prompt','17445IwTJoa','list','ranger-testing/trailhead','UiDGJ','ANzvN','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','2ReEoej','4674505fFQORe','895643RoPjKf','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','16OuaKNC','jQRHn','Would\x20you\x20like\x20to\x20install\x20skills?','3EPMIcg','uHNuH','Ymvqj','Project\x20(shared\x20with\x20team\x20via\x20git)','\x20level)...\x0a','ranger@trailhead','bDeIF','OmNmm','error'];_0x4827=function(){return _0x214d01;};return _0x4827();}
@@ -1 +1 @@
1
- (function(_0x44b1db,_0x28f7d8){const _0x370454=_0x5912,_0x5a05bc=_0x44b1db();while(!![]){try{const _0x5bf0a6=parseInt(_0x370454(0x1a5))/0x1+parseInt(_0x370454(0x1c0))/0x2*(parseInt(_0x370454(0x1b6))/0x3)+-parseInt(_0x370454(0x1a4))/0x4+-parseInt(_0x370454(0x1ab))/0x5+parseInt(_0x370454(0x1ac))/0x6+parseInt(_0x370454(0x1a9))/0x7*(parseInt(_0x370454(0x1a7))/0x8)+-parseInt(_0x370454(0x1b7))/0x9*(-parseInt(_0x370454(0x1b5))/0xa);if(_0x5bf0a6===_0x28f7d8)break;else _0x5a05bc['push'](_0x5a05bc['shift']());}catch(_0x490355){_0x5a05bc['push'](_0x5a05bc['shift']());}}}(_0x3c92,0xbb06b));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x192bc8 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x363267){const _0x30fce6=_0x5912,_0x158c49={'WwsAO':'project','rSBrR':'opencode.json','yxuPq':_0x30fce6(0x1ba),'eTMHm':_0x30fce6(0x1ae),'JRApp':_0x30fce6(0x1a8),'qGYHV':function(_0x3f24fc,_0x8c7874){return _0x3f24fc(_0x8c7874);},'TziCR':'https://opencode.ai/config.json','jFZOz':_0x30fce6(0x1c1),'JkKUA':'⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','vBhux':_0x30fce6(0x1b8),'sNplO':'✓\x20OpenCode\x20plugin\x20already\x20configured','LTzvN':function(_0xd01e9a,_0x33ad4c,_0x2221f2){return _0xd01e9a(_0x33ad4c,_0x2221f2);},'tuQxI':_0x30fce6(0x1af)},_0x4d020a=existsSync(join(getOpencodeConfigDir(_0x158c49[_0x30fce6(0x1a2)]),_0x158c49['rSBrR']));let _0x2bfe74;if(_0x363267)_0x2bfe74=_0x363267;else{if(_0x4d020a)_0x2bfe74=_0x158c49[_0x30fce6(0x1a2)];else{console['log']('\x0a📦\x20OpenCode\x20Plugin\x0a');const _0x195f66=await _0x192bc8[_0x30fce6(0x1b0)]([{'type':_0x158c49['yxuPq'],'name':_0x30fce6(0x1bb),'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x158c49['eTMHm'],'value':'user'},{'name':_0x158c49['JRApp'],'value':_0x158c49[_0x30fce6(0x1a2)]}],'default':_0x30fce6(0x1bd)}]);_0x2bfe74=_0x195f66['pluginScope'];}}const _0x4559f2=join(_0x158c49[_0x30fce6(0x1b2)](getOpencodeConfigDir,_0x2bfe74),_0x158c49[_0x30fce6(0x1b9)]),_0x59bcc5=_0x30fce6(0x1be),_0x1e7b62=_0x158c49[_0x30fce6(0x1a6)];let _0x330e7d={};if(existsSync(_0x4559f2))try{const _0x3e835a=await readFile(_0x4559f2,_0x158c49[_0x30fce6(0x1bf)]);_0x330e7d=JSON[_0x30fce6(0x1aa)](_0x3e835a);}catch(_0x27395d){return console['error'](_0x158c49['JkKUA']),{'configured':![],'scope':_0x2bfe74,'error':_0x158c49[_0x30fce6(0x1a3)],'details':_0x27395d};}const _0x12f9c7=Array['isArray'](_0x330e7d[_0x30fce6(0x1ad)])?_0x330e7d[_0x30fce6(0x1ad)]:[];if(_0x12f9c7[_0x30fce6(0x1b4)](_0x59bcc5))return console['log'](_0x158c49[_0x30fce6(0x1b3)]),{'configured':![],'scope':_0x2bfe74};return _0x330e7d['$schema']=_0x330e7d['$schema']||_0x1e7b62,_0x330e7d[_0x30fce6(0x1ad)]=[..._0x12f9c7,_0x59bcc5],await _0x158c49[_0x30fce6(0x1bc)](mkdir,_0x158c49[_0x30fce6(0x1b2)](getOpencodeConfigDir,_0x2bfe74),{'recursive':!![]}),await _0x158c49[_0x30fce6(0x1bc)](writeFile,_0x4559f2,JSON['stringify'](_0x330e7d,null,0x2)+'\x0a'),console[_0x30fce6(0x1b1)](_0x158c49['tuQxI']),{'configured':!![],'scope':_0x2bfe74};}function _0x5912(_0x68a87f,_0x672264){_0x68a87f=_0x68a87f-0x1a2;const _0x3c9290=_0x3c92();let _0x59129a=_0x3c9290[_0x68a87f];return _0x59129a;}function _0x3c92(){const _0xaab032=['520UtnlRO','8802HnemBZ','78966PNpGta','Failed\x20to\x20read\x20opencode.json','rSBrR','list','pluginScope','LTzvN','user','@ranger-testing/opencode-plugin','jFZOz','298kpdXbN','utf-8','WwsAO','vBhux','3353400riauVv','222497FlPLyq','TziCR','16BfpgYQ','Project\x20(shared\x20with\x20team\x20via\x20git)','4984105YPYiqT','parse','5501955BSXlGW','989154DmFtyU','plugin','User\x20(available\x20in\x20all\x20your\x20projects)','✓\x20OpenCode\x20plugin\x20configured','prompt','log','qGYHV','sNplO','includes'];_0x3c92=function(){return _0xaab032;};return _0x3c92();}
1
+ function _0x59d0(){const _0x2addfd=['user','lVlxn','$schema','Where\x20should\x20the\x20plugin\x20be\x20installed?','23575830ANJHSG','User\x20(available\x20in\x20all\x20your\x20projects)','11904416hzPlAx','UtwPS','error','isArray','11RVWxib','ZFMjt','parse','pluginScope','list','48002GzDdkw','UARzO','ocxez','9XnIJMy','15668XucKmO','✓\x20OpenCode\x20plugin\x20already\x20configured','1945botddF','SpAdZ','\x0a📦\x20OpenCode\x20Plugin\x0a','5148834TgRZwx','5247025VVvoOB','https://opencode.ai/config.json','opencode.json','prompt','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','4bKLBXZ','3270066cWfVVc','@ranger-testing/opencode-plugin'];_0x59d0=function(){return _0x2addfd;};return _0x59d0();}function _0x1869(_0x20c71a,_0x3e9a20){_0x20c71a=_0x20c71a-0x155;const _0x59d03b=_0x59d0();let _0x1869d4=_0x59d03b[_0x20c71a];return _0x1869d4;}(function(_0x338b81,_0x3e1998){const _0x4f5363=_0x1869,_0x412adf=_0x338b81();while(!![]){try{const _0x2d1713=parseInt(_0x4f5363(0x175))/0x1*(-parseInt(_0x4f5363(0x166))/0x2)+parseInt(_0x4f5363(0x16f))/0x3+parseInt(_0x4f5363(0x16a))/0x4*(parseInt(_0x4f5363(0x16c))/0x5)+-parseInt(_0x4f5363(0x155))/0x6+-parseInt(_0x4f5363(0x170))/0x7+parseInt(_0x4f5363(0x15d))/0x8*(parseInt(_0x4f5363(0x169))/0x9)+parseInt(_0x4f5363(0x15b))/0xa*(-parseInt(_0x4f5363(0x161))/0xb);if(_0x2d1713===_0x3e1998)break;else _0x412adf['push'](_0x412adf['shift']());}catch(_0x3b2ecb){_0x412adf['push'](_0x412adf['shift']());}}}(_0x59d0,0xef39e));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x101ee2 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x3270bf){const _0x2ec15c=_0x1869,_0x56256d={'UARzO':function(_0x78ac97,_0x3090f0){return _0x78ac97(_0x3090f0);},'ZFMjt':function(_0x383fd2,_0x4e0343,_0x408fdf){return _0x383fd2(_0x4e0343,_0x408fdf);},'SpAdZ':'project','ocxez':_0x2ec15c(0x164),'UtwPS':_0x2ec15c(0x15a),'ouvFd':'Project\x20(shared\x20with\x20team\x20via\x20git)','OvGJt':'user','pclTX':_0x2ec15c(0x156),'bNLNU':_0x2ec15c(0x174),'lVlxn':'Failed\x20to\x20read\x20opencode.json','EzyfF':'✓\x20OpenCode\x20plugin\x20configured'},_0x25147d=_0x56256d[_0x2ec15c(0x167)](existsSync,_0x56256d['ZFMjt'](join,getOpencodeConfigDir(_0x56256d[_0x2ec15c(0x16d)]),_0x2ec15c(0x172)));let _0x33ff23;if(_0x3270bf)_0x33ff23=_0x3270bf;else{if(_0x25147d)_0x33ff23=_0x56256d['SpAdZ'];else{console['log'](_0x2ec15c(0x16e));const _0x2847e0=await _0x101ee2[_0x2ec15c(0x173)]([{'type':_0x2ec15c(0x165),'name':_0x56256d[_0x2ec15c(0x168)],'message':_0x56256d[_0x2ec15c(0x15e)],'choices':[{'name':_0x2ec15c(0x15c),'value':_0x2ec15c(0x157)},{'name':_0x56256d['ouvFd'],'value':_0x56256d[_0x2ec15c(0x16d)]}],'default':_0x56256d['OvGJt']}]);_0x33ff23=_0x2847e0[_0x2ec15c(0x164)];}}const _0x3fc817=join(getOpencodeConfigDir(_0x33ff23),_0x2ec15c(0x172)),_0x155904=_0x56256d['pclTX'],_0x2f5bde=_0x2ec15c(0x171);let _0x2be546={};if(existsSync(_0x3fc817))try{const _0x1fdce8=await _0x56256d['ZFMjt'](readFile,_0x3fc817,'utf-8');_0x2be546=JSON[_0x2ec15c(0x163)](_0x1fdce8);}catch(_0x17abc6){return console[_0x2ec15c(0x15f)](_0x56256d['bNLNU']),{'configured':![],'scope':_0x33ff23,'error':_0x56256d[_0x2ec15c(0x158)],'details':_0x17abc6};}const _0x23aa42=Array[_0x2ec15c(0x160)](_0x2be546['plugin'])?_0x2be546['plugin']:[];if(_0x23aa42['includes'](_0x155904))return console['log'](_0x2ec15c(0x16b)),{'configured':![],'scope':_0x33ff23};return _0x2be546[_0x2ec15c(0x159)]=_0x2be546['$schema']||_0x2f5bde,_0x2be546['plugin']=[..._0x23aa42,_0x155904],await mkdir(_0x56256d[_0x2ec15c(0x167)](getOpencodeConfigDir,_0x33ff23),{'recursive':!![]}),await _0x56256d[_0x2ec15c(0x162)](writeFile,_0x3fc817,JSON['stringify'](_0x2be546,null,0x2)+'\x0a'),console['log'](_0x56256d['EzyfF']),{'configured':!![],'scope':_0x33ff23};}
@@ -1 +1 @@
1
- (function(_0x3bf179,_0x3da3d8){const _0x51cbda=_0x5700,_0x291a0d=_0x3bf179();while(!![]){try{const _0x312227=-parseInt(_0x51cbda(0xff))/0x1*(-parseInt(_0x51cbda(0x114))/0x2)+parseInt(_0x51cbda(0xef))/0x3*(-parseInt(_0x51cbda(0xe9))/0x4)+parseInt(_0x51cbda(0x108))/0x5+-parseInt(_0x51cbda(0x100))/0x6*(-parseInt(_0x51cbda(0xe7))/0x7)+parseInt(_0x51cbda(0x115))/0x8*(-parseInt(_0x51cbda(0x10e))/0x9)+-parseInt(_0x51cbda(0xfb))/0xa+-parseInt(_0x51cbda(0xf0))/0xb;if(_0x312227===_0x3da3d8)break;else _0x291a0d['push'](_0x291a0d['shift']());}catch(_0x266424){_0x291a0d['push'](_0x291a0d['shift']());}}}(_0x1ac0,0xdec4e));function _0x5700(_0x3e96b4,_0x91e247){_0x3e96b4=_0x3e96b4-0xe4;const _0x1ac0bb=_0x1ac0();let _0x5700d9=_0x1ac0bb[_0x3e96b4];return _0x5700d9;}import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';function _0x1ac0(){const _0x31b2dd=['error','1177425xmDUlc','26111096YIXZyZ','trailhead','join','settings.json','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','SltYa','ycczJ','✓\x20Marketplace\x20already\x20added','MKvkE','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','success','4214110bcyqfy','WzJUb','mACHA','nQmTz','89yKhyvP','1937526FiiFIG','add','plugin','auth.json.enc','xNvMB','EdfNV','path','auth','8964125DZXCrR','dir_setup','bbBgJ','ZIKDD','chromium','JMXws','2343825geFOqr','pmWUw','sessions','baseUrl','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','name','33122tJSyyd','24YWWKmY','No\x20API\x20token\x20available\x20for\x20decryption','PynjR','skipChromium','uLaZs','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','eKoYq','\x22:\x20','JNTzc','bNDOy','length','skills','log','ranger@trailhead','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','trackPhaseStart','jSqCp','35CpCgyn','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','4zzfOjN','trackPhaseEnd','pPqwb','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','uwjMV'];_0x1ac0=function(){return _0x31b2dd;};return _0x1ac0();}async function findCiProfile(_0x2e500a){const _0x10579c=_0x5700,_0x2a7cd3={'PynjR':function(_0x215d4e,_0x5bd26d,_0x299c71){return _0x215d4e(_0x5bd26d,_0x299c71);},'bbBgJ':function(_0x40c856,_0x3c3075,_0xd764fb){return _0x40c856(_0x3c3075,_0xd764fb);},'uLaZs':function(_0xc195a7,_0x4c5421){return _0xc195a7+_0x4c5421;},'URmOj':_0x10579c(0x112),'HSHzu':function(_0x719a46,_0xa99e13){return _0x719a46===_0xa99e13;}},_0x3ae4f2=getRangerDir(),_0x311825=_0x2a7cd3[_0x10579c(0x117)](join,_0x3ae4f2,'ci');if(_0x2e500a){const _0x5c49dd=join(_0x311825,_0x2e500a);return{'name':_0x2e500a,'path':_0x5c49dd};}if(!existsSync(_0x311825))throw new Error('No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a'+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');const _0x2877e8=await _0x2a7cd3['bbBgJ'](readdir,_0x311825,{'withFileTypes':!![]}),_0xa6da14=_0x2877e8['filter'](_0x11d59a=>_0x11d59a['isDirectory']())['map'](_0x35371e=>_0x35371e[_0x10579c(0x113)]);if(_0xa6da14[_0x10579c(0x11f)]===0x0)throw new Error(_0x2a7cd3[_0x10579c(0x119)](_0x2a7cd3['URmOj'],_0x10579c(0xe8)));if(_0x2a7cd3['HSHzu'](_0xa6da14[_0x10579c(0x11f)],0x1)){const _0x54538b=_0xa6da14[0x0];return console[_0x10579c(0x121)]('Auto-detected\x20CI\x20profile:\x20'+_0x54538b),{'name':_0x54538b,'path':_0x2a7cd3[_0x10579c(0x10a)](join,_0x311825,_0x54538b)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0xa6da14[_0x10579c(0xf2)](',\x20')+'.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.');}async function installPluginNonInteractive(){const _0x407fe3=_0x5700,_0x10c209={'noICB':'Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','mACHA':function(_0x4ed9c4,_0x172da9){return _0x4ed9c4(_0x172da9);},'jSqCp':_0x407fe3(0xf7),'WzJUb':'plugin','EdfNV':'marketplace','MKvkE':'ranger-testing/trailhead','MRTRO':'Failed\x20to\x20add\x20marketplace:','iarsV':_0x407fe3(0xf4),'bNDOy':'--scope','rfbNX':'project'},_0x495806=await isPluginInstalled(_0x407fe3(0x122));if(_0x495806)return console['log'](_0x407fe3(0xec)),![];console['log'](_0x10c209['noICB']);const _0x11d983=await _0x10c209[_0x407fe3(0xfd)](isMarketplaceAdded,_0x407fe3(0xf1));let _0x2e632c=_0x11d983;if(_0x11d983)console['log'](_0x10c209[_0x407fe3(0xe6)]);else{const _0x6459d0=await _0x10c209['mACHA'](runClaudeCommand,[_0x10c209[_0x407fe3(0xfc)],_0x10c209[_0x407fe3(0x105)],_0x407fe3(0x101),_0x10c209[_0x407fe3(0xf8)]]);!_0x6459d0[_0x407fe3(0xfa)]?(console['error'](_0x10c209['MRTRO'],_0x6459d0[_0x407fe3(0xee)]),console['log'](_0x10c209['iarsV'])):_0x2e632c=!![];}if(_0x2e632c){const _0x15c41b=await runClaudeCommand([_0x407fe3(0x102),'install',_0x407fe3(0x122),_0x10c209[_0x407fe3(0x11e)],_0x10c209['rfbNX']]);!_0x15c41b[_0x407fe3(0xfa)]?(console['error']('Failed\x20to\x20install\x20plugin:',_0x15c41b['error']),console['log']('You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project')):console['log']('✓\x20Claude\x20Code\x20plugin\x20installed');}return!![];}export async function setupCi(_0x1d8e6a,_0x14ffab,_0x79e33f){const _0x3dd519=_0x5700,_0x4cbac6={'pPqwb':function(_0x404d62,_0x2c7f41){return _0x404d62(_0x2c7f41);},'JMXws':function(_0x3aa7fd){return _0x3aa7fd();},'BtmlH':_0x3dd519(0x110),'xNvMB':function(_0x100477,_0x19010e){return _0x100477(_0x19010e);},'JNTzc':'dir_setup','ycczJ':_0x3dd519(0x10c),'nQmTz':_0x3dd519(0xf9),'SltYa':function(_0xcbe456,_0x11dfef,_0x2281a6){return _0xcbe456(_0x11dfef,_0x2281a6);},'eKoYq':function(_0x28f4a5,_0x55de38,_0x405721){return _0x28f4a5(_0x55de38,_0x405721);},'hWYsK':'auth.json','DUsMd':_0x3dd519(0x103),'vwjzR':function(_0x1b10c4,_0x3c28f6){return _0x1b10c4(_0x3c28f6);},'GjRtK':function(_0x4346e0,_0xf76022){return _0x4346e0(_0xf76022);},'MUvGi':'✓\x20Auth\x20state\x20found','YsRxa':'\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','eIWnb':function(_0x4b0031,_0x1b34c9){return _0x4b0031(_0x1b34c9);},'pmWUw':'profile_activate','uwjMV':'plugin','ZIKDD':function(_0xd3984b){return _0xd3984b();},'qXSgz':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console['log']('\x0a🔧\x20Ranger\x20CI\x20Setup\x0a'),_0x79e33f?.[_0x3dd519(0xe5)](_0x3dd519(0x107)),await _0x4cbac6[_0x3dd519(0xeb)](authenticate,_0x1d8e6a),_0x79e33f?.['trackPhaseEnd']('auth'),_0x79e33f?.[_0x3dd519(0xe5)](_0x3dd519(0x109));const {path:_0x5ef076,installed:_0x12e0da}=await _0x4cbac6[_0x3dd519(0x10d)](ensureRangerDir);await writeRangerGitignore(_0x5ef076);const _0x577d6d=join(_0x5ef076,_0x4cbac6['BtmlH']);!_0x4cbac6[_0x3dd519(0x104)](existsSync,_0x577d6d)&&await mkdir(_0x577d6d,{'recursive':!![]});_0x79e33f?.['trackPhaseEnd'](_0x4cbac6[_0x3dd519(0x11d)],{'installed':_0x12e0da}),_0x79e33f?.['trackPhaseStart'](_0x4cbac6[_0x3dd519(0xf6)]);let _0x265cbe=![];_0x14ffab?.[_0x3dd519(0x118)]?console[_0x3dd519(0x121)](_0x4cbac6[_0x3dd519(0xfe)]):_0x265cbe=await ensureChromium();_0x79e33f?.['trackPhaseEnd']('chromium',{'installed':_0x265cbe,'skipped':!!_0x14ffab?.[_0x3dd519(0x118)]}),_0x79e33f?.['trackPhaseStart']('profile_activate');const _0x5bdb8c=await findCiProfile(_0x14ffab?.['profile']);let _0x390118=![];_0x14ffab?.['baseUrl']&&(await mkdir(_0x5bdb8c['path'],{'recursive':!![]}),await _0x4cbac6[_0x3dd519(0xf5)](saveSettings,_0x5bdb8c[_0x3dd519(0x113)],{'baseUrl':_0x14ffab[_0x3dd519(0x111)],'headless':!![]}),console[_0x3dd519(0x121)]('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x14ffab[_0x3dd519(0x111)]),_0x390118=!![]);const _0x4e1d32=_0x4cbac6['SltYa'](join,_0x5bdb8c[_0x3dd519(0x106)],_0x3dd519(0xf3));if(!_0x4cbac6[_0x3dd519(0xeb)](existsSync,_0x4e1d32)&&!_0x390118)throw new Error('CI\x20profile\x20\x22'+_0x5bdb8c['name']+_0x3dd519(0xe4));const _0x4be3d0=_0x4cbac6[_0x3dd519(0x11b)](join,_0x5bdb8c[_0x3dd519(0x106)],_0x4cbac6['hWYsK']),_0x291d2b=_0x4cbac6['eKoYq'](join,_0x5bdb8c[_0x3dd519(0x106)],_0x4cbac6['DUsMd']),_0x3f29ed=_0x4cbac6['vwjzR'](existsSync,_0x4be3d0),_0x2e0955=existsSync(_0x291d2b);if(_0x2e0955)try{const _0x91d42c=await getToken();if(!_0x91d42c)throw new Error(_0x3dd519(0x116));const _0xce084a=await _0x4cbac6['GjRtK'](readFile,_0x291d2b);decrypt(_0xce084a,_0x91d42c),console[_0x3dd519(0x121)]('✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)');}catch(_0x586fe5){const _0x322cf4=_0x586fe5 instanceof Error?_0x586fe5['message']:String(_0x586fe5);throw new Error(_0x3dd519(0x11a)+_0x5bdb8c[_0x3dd519(0x113)]+_0x3dd519(0x11c)+_0x322cf4);}else _0x3f29ed?console['log'](_0x4cbac6['MUvGi']):console['log'](_0x4cbac6['YsRxa']);await _0x4cbac6['eIWnb'](writeActiveProfileName,_0x5bdb8c['name']),console['log']('✓\x20Active\x20profile:\x20'+_0x5bdb8c[_0x3dd519(0x113)]),_0x79e33f?.[_0x3dd519(0xea)](_0x4cbac6[_0x3dd519(0x10f)],{'profileName':_0x5bdb8c['name'],'hasAuth':_0x3f29ed,'hasEncryptedAuth':_0x2e0955,'createdSettings':_0x390118}),_0x79e33f?.['trackPhaseStart'](_0x4cbac6[_0x3dd519(0xed)]);const _0x39801e=await _0x4cbac6[_0x3dd519(0x10b)](installPluginNonInteractive);_0x79e33f?.['trackPhaseEnd'](_0x3dd519(0x102),{'installed':_0x39801e}),_0x79e33f?.['trackPhaseStart'](_0x3dd519(0x120)),await skillup({'autoInstall':'project'}),_0x79e33f?.['trackPhaseEnd'](_0x3dd519(0x120)),console['log'](_0x4cbac6['qXSgz']);}
1
+ (function(_0x42f804,_0x44e081){const _0xa03729=_0xb503,_0x5a02e0=_0x42f804();while(!![]){try{const _0x579880=-parseInt(_0xa03729(0x208))/0x1+parseInt(_0xa03729(0x20d))/0x2*(parseInt(_0xa03729(0x1d7))/0x3)+-parseInt(_0xa03729(0x1e1))/0x4*(-parseInt(_0xa03729(0x1e3))/0x5)+parseInt(_0xa03729(0x1f0))/0x6*(parseInt(_0xa03729(0x1ed))/0x7)+parseInt(_0xa03729(0x1e5))/0x8*(-parseInt(_0xa03729(0x1df))/0x9)+-parseInt(_0xa03729(0x205))/0xa*(parseInt(_0xa03729(0x1f8))/0xb)+parseInt(_0xa03729(0x1d4))/0xc*(parseInt(_0xa03729(0x1fa))/0xd);if(_0x579880===_0x44e081)break;else _0x5a02e0['push'](_0x5a02e0['shift']());}catch(_0x37c03a){_0x5a02e0['push'](_0x5a02e0['shift']());}}}(_0x4385,0xf1c28));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';function _0x4385(){const _0x40a17d=['RSWUN','skipChromium','66xLhmRb','SRQdA','\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a','VUTfW','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','profile','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','VFFVr','11CqdQUK','mwNls','78SSakgf','ASMOR','Failed\x20to\x20add\x20marketplace:','egYwi','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','plugin','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','Voypv','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','add','15360070Xckwbw','CtGQa','✓\x20Marketplace\x20already\x20added','1536319CwUNXV','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','veKwG','success','551310VEencY','VNuTB','name','message','tBUVQ','trackPhaseStart','yoHTW','\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','sessions','auth','chromium','ksDrw','yhmJN','path','log','2971884PlAvNR','✓\x20Claude\x20Code\x20plugin\x20installed','Failed\x20to\x20install\x20plugin:','15jmuejt','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','project','vkkLV','trackPhaseEnd','KOJiz','ssEKw','profile_activate','387ytrwmT','kVAyX','5399636dKwfZB','VmZUR','5Difvvx','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','187048sHXpmE','dir_setup','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','ranger@trailhead','auth.json.enc','error','marketplace','baseUrl','543347cAWDYt'];_0x4385=function(){return _0x40a17d;};return _0x4385();}async function findCiProfile(_0x4e95de){const _0x269c91=_0xb503,_0x4a254b={'VmZUR':function(_0x105740){return _0x105740();},'KOJiz':function(_0x531462,_0x29f123,_0x1c55a4){return _0x531462(_0x29f123,_0x1c55a4);},'yhmJN':function(_0x592e56,_0x3c0e87){return _0x592e56(_0x3c0e87);},'VNuTB':function(_0x8b35c3,_0x3c5937){return _0x8b35c3+_0x3c5937;},'VFFVr':function(_0x2a1113,_0x555c78){return _0x2a1113===_0x555c78;},'yoHTW':function(_0x279bb4,_0xeea335){return _0x279bb4===_0xeea335;},'RSWUN':function(_0x2d562e,_0x4fb849,_0x209674){return _0x2d562e(_0x4fb849,_0x209674);}},_0x5c2fb3=_0x4a254b[_0x269c91(0x1e2)](getRangerDir),_0xa2b096=_0x4a254b[_0x269c91(0x1dc)](join,_0x5c2fb3,'ci');if(_0x4e95de){const _0x357cc5=join(_0xa2b096,_0x4e95de);return{'name':_0x4e95de,'path':_0x357cc5};}if(!_0x4a254b[_0x269c91(0x1d1)](existsSync,_0xa2b096))throw new Error(_0x4a254b[_0x269c91(0x20e)](_0x269c91(0x201),'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.'));const _0x34a975=await _0x4a254b[_0x269c91(0x1dc)](readdir,_0xa2b096,{'withFileTypes':!![]}),_0x5ef345=_0x34a975['filter'](_0x2ecef9=>_0x2ecef9['isDirectory']())['map'](_0x4735b3=>_0x4735b3[_0x269c91(0x20f)]);if(_0x4a254b[_0x269c91(0x1f7)](_0x5ef345['length'],0x0))throw new Error(_0x269c91(0x1f6)+_0x269c91(0x1f4));if(_0x4a254b[_0x269c91(0x213)](_0x5ef345['length'],0x1)){const _0x128046=_0x5ef345[0x0];return console['log']('Auto-detected\x20CI\x20profile:\x20'+_0x128046),{'name':_0x128046,'path':_0x4a254b[_0x269c91(0x1ee)](join,_0xa2b096,_0x128046)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x5ef345['join'](',\x20')+_0x269c91(0x200));}async function installPluginNonInteractive(){const _0xbd791=_0xb503,_0x5d37a1={'ekyTU':function(_0x440181,_0x1f6736){return _0x440181(_0x1f6736);},'frRgp':_0xbd791(0x1e7),'ssEKw':_0xbd791(0x207),'veKwG':'plugin','qwSWV':_0xbd791(0x203),'vkkLV':'--scope','YFNWa':'project','kVAyX':_0xbd791(0x1d6)},_0x5c49b7=await _0x5d37a1['ekyTU'](isPluginInstalled,_0xbd791(0x1e8));if(_0x5c49b7)return console[_0xbd791(0x1d3)](_0x5d37a1['frRgp']),![];console[_0xbd791(0x1d3)](_0xbd791(0x209));const _0x54e88d=await _0x5d37a1['ekyTU'](isMarketplaceAdded,'trailhead');let _0xf75427=_0x54e88d;if(_0x54e88d)console['log'](_0x5d37a1[_0xbd791(0x1dd)]);else{const _0x459f32=await runClaudeCommand([_0x5d37a1[_0xbd791(0x20b)],_0xbd791(0x1eb),_0xbd791(0x204),'ranger-testing/trailhead']);!_0x459f32['success']?(console['error'](_0xbd791(0x1fc),_0x459f32[_0xbd791(0x1ea)]),console['log'](_0x5d37a1['qwSWV'])):_0xf75427=!![];}if(_0xf75427){const _0x10941c=await runClaudeCommand([_0xbd791(0x1ff),'install','ranger@trailhead',_0x5d37a1[_0xbd791(0x1da)],_0x5d37a1['YFNWa']]);!_0x10941c[_0xbd791(0x20c)]?(console['error'](_0x5d37a1[_0xbd791(0x1e0)],_0x10941c['error']),console[_0xbd791(0x1d3)](_0xbd791(0x1e4))):console[_0xbd791(0x1d3)](_0xbd791(0x1d5));}return!![];}function _0xb503(_0xf6a6ff,_0x2ee8a8){_0xf6a6ff=_0xf6a6ff-0x1ce;const _0x438546=_0x4385();let _0xb50313=_0x438546[_0xf6a6ff];return _0xb50313;}export async function setupCi(_0x29186a,_0x355743,_0x3d6bae){const _0x282e83=_0xb503,_0x599a22={'WLRrf':_0x282e83(0x214),'NYBpO':_0x282e83(0x1ce),'Voypv':function(_0x1d448b){return _0x1d448b();},'SKKJS':function(_0x368345,_0x172ff6,_0x2e6186){return _0x368345(_0x172ff6,_0x2e6186);},'CtGQa':_0x282e83(0x215),'DBybm':function(_0x4a7f76,_0x1dda51){return _0x4a7f76(_0x1dda51);},'YdDgM':_0x282e83(0x1e6),'ASMOR':_0x282e83(0x1cf),'SRQdA':function(_0x4311ab){return _0x4311ab();},'mwNls':'auth.json','LnXuK':'No\x20API\x20token\x20available\x20for\x20decryption','mcTRQ':'✓\x20Auth\x20state\x20found','ksDrw':'plugin','egYwi':'skills','tBUVQ':function(_0x3b4c96,_0x7e263b){return _0x3b4c96(_0x7e263b);},'VUTfW':_0x282e83(0x1f2)};console['log'](_0x599a22['WLRrf']),_0x3d6bae?.[_0x282e83(0x212)](_0x282e83(0x1ce)),await authenticate(_0x29186a),_0x3d6bae?.['trackPhaseEnd'](_0x599a22['NYBpO']),_0x3d6bae?.[_0x282e83(0x212)](_0x282e83(0x1e6));const {path:_0x344606,installed:_0x5ca53f}=await _0x599a22[_0x282e83(0x202)](ensureRangerDir);await writeRangerGitignore(_0x344606);const _0x5a5a6f=_0x599a22['SKKJS'](join,_0x344606,_0x599a22[_0x282e83(0x206)]);!_0x599a22['DBybm'](existsSync,_0x5a5a6f)&&await mkdir(_0x5a5a6f,{'recursive':!![]});_0x3d6bae?.[_0x282e83(0x1db)](_0x599a22['YdDgM'],{'installed':_0x5ca53f}),_0x3d6bae?.['trackPhaseStart'](_0x599a22['ASMOR']);let _0x3604b0=![];_0x355743?.[_0x282e83(0x1ef)]?console['log'](_0x282e83(0x20a)):_0x3604b0=await _0x599a22[_0x282e83(0x1f1)](ensureChromium);_0x3d6bae?.[_0x282e83(0x1db)](_0x599a22[_0x282e83(0x1fb)],{'installed':_0x3604b0,'skipped':!!_0x355743?.[_0x282e83(0x1ef)]}),_0x3d6bae?.[_0x282e83(0x212)](_0x282e83(0x1de));const _0x4dc6c0=await _0x599a22['DBybm'](findCiProfile,_0x355743?.[_0x282e83(0x1f5)]);let _0x3b1de4=![];_0x355743?.[_0x282e83(0x1ec)]&&(await mkdir(_0x4dc6c0['path'],{'recursive':!![]}),await saveSettings(_0x4dc6c0['name'],{'baseUrl':_0x355743['baseUrl'],'headless':!![]}),console['log']('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x355743['baseUrl']),_0x3b1de4=!![]);const _0x1d9419=join(_0x4dc6c0['path'],'settings.json');if(!existsSync(_0x1d9419)&&!_0x3b1de4)throw new Error('CI\x20profile\x20\x22'+_0x4dc6c0['name']+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x200396=_0x599a22['SKKJS'](join,_0x4dc6c0[_0x282e83(0x1d2)],_0x599a22[_0x282e83(0x1f9)]),_0x44bf1a=join(_0x4dc6c0[_0x282e83(0x1d2)],_0x282e83(0x1e9)),_0x5d8b96=existsSync(_0x200396),_0x301957=existsSync(_0x44bf1a);if(_0x301957)try{const _0x2cda64=await getToken();if(!_0x2cda64)throw new Error(_0x599a22['LnXuK']);const _0x15b490=await readFile(_0x44bf1a);_0x599a22['SKKJS'](decrypt,_0x15b490,_0x2cda64),console[_0x282e83(0x1d3)](_0x282e83(0x1fe));}catch(_0x1fba59){const _0x5c35c0=_0x1fba59 instanceof Error?_0x1fba59[_0x282e83(0x210)]:String(_0x1fba59);throw new Error('Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22'+_0x4dc6c0['name']+'\x22:\x20'+_0x5c35c0);}else _0x5d8b96?console['log'](_0x599a22['mcTRQ']):console['log'](_0x282e83(0x1d8));await writeActiveProfileName(_0x4dc6c0[_0x282e83(0x20f)]),console['log']('✓\x20Active\x20profile:\x20'+_0x4dc6c0[_0x282e83(0x20f)]),_0x3d6bae?.['trackPhaseEnd'](_0x282e83(0x1de),{'profileName':_0x4dc6c0[_0x282e83(0x20f)],'hasAuth':_0x5d8b96,'hasEncryptedAuth':_0x301957,'createdSettings':_0x3b1de4}),_0x3d6bae?.['trackPhaseStart'](_0x599a22[_0x282e83(0x1d0)]);const _0x547d5b=await _0x599a22['Voypv'](installPluginNonInteractive);_0x3d6bae?.[_0x282e83(0x1db)](_0x282e83(0x1ff),{'installed':_0x547d5b}),_0x3d6bae?.[_0x282e83(0x212)](_0x599a22[_0x282e83(0x1fd)]),await _0x599a22[_0x282e83(0x211)](skillup,{'autoInstall':_0x282e83(0x1d9)}),_0x3d6bae?.['trackPhaseEnd'](_0x599a22['egYwi']),console['log'](_0x599a22[_0x282e83(0x1f3)]);}
@@ -1 +1 @@
1
- (function(_0x1966d9,_0x3519b){const _0x1ed747=_0x71f3,_0x139cb9=_0x1966d9();while(!![]){try{const _0x601e9a=-parseInt(_0x1ed747(0xc0))/0x1+-parseInt(_0x1ed747(0xb5))/0x2*(parseInt(_0x1ed747(0x99))/0x3)+parseInt(_0x1ed747(0xc1))/0x4+-parseInt(_0x1ed747(0xb7))/0x5*(-parseInt(_0x1ed747(0x94))/0x6)+-parseInt(_0x1ed747(0xb1))/0x7*(-parseInt(_0x1ed747(0xa1))/0x8)+-parseInt(_0x1ed747(0xc2))/0x9+parseInt(_0x1ed747(0x9a))/0xa*(parseInt(_0x1ed747(0xb6))/0xb);if(_0x601e9a===_0x3519b)break;else _0x139cb9['push'](_0x139cb9['shift']());}catch(_0x659244){_0x139cb9['push'](_0x139cb9['shift']());}}}(_0x4e6e,0x6ce5b));import{basename}from'path';import _0x3429ed from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';function _0x4e6e(){const _0x54c9c6=['platform','\x20\x202.\x20Run:\x20ranger\x20setup','This\x20project\x20only\x20(','349221dnFAMb','2647008qYIGzm','4054005fjAyPI','KCNbx','wSkxF','log','✓\x20Found\x20API\x20token','pfNpO','55026cDRUbG','TEGOo','stdout','WlBUV','user','354cmvyoi','5830NbQilX','\x20skill','user-level','KpcLn','opencode','\x20<your-api-token>','isTTY','673784SIolrH','LhxFc','ObvcE','/.opencode/skills/','nUdoZ','/.claude/skills/','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','Where\x20should\x20skills\x20be\x20installed?','KuaCJ','To\x20get\x20started:','ranger','TAtaq','\x20\x203.\x20Run:\x20ranger\x20skillup','/skills/','uOoKu','To\x20use:','7TScbkC','project','autoInstall','kEqxw','11998uqsCAw','17248XfmJyI','160KOEeQZ','All\x20projects\x20(','stdin','suppressUsage','installLevel','JGEKT'];_0x4e6e=function(){return _0x54c9c6;};return _0x4e6e();}function _0x71f3(_0xa37d38,_0x2838b1){_0xa37d38=_0xa37d38-0x93;const _0x4e6ebb=_0x4e6e();let _0x71f3f2=_0x4e6ebb[_0xa37d38];return _0x71f3f2;}import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x36fdc4={}){const _0x3dc090=_0x71f3,_0x709c2={'PPsVD':'\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','VublW':'claude','MckWs':function(_0x43a9a5){return _0x43a9a5();},'WlBUV':_0x3dc090(0xaa),'Snixa':_0x3dc090(0xa7),'WBpbJ':function(_0x46aaea,_0x438e38){return _0x46aaea===_0x438e38;},'TAtaq':'\x20--opencode','TEGOo':function(_0x58878f){return _0x58878f();},'awnOv':function(_0x3dff65,_0x2d52aa){return _0x3dff65===_0x2d52aa;},'tkzAR':_0x3dc090(0x9e),'ofrMF':function(_0x1644e3,_0x39bc96){return _0x1644e3(_0x39bc96);},'PacuF':'user','KuaCJ':function(_0x50e7c1,_0x2ce159){return _0x50e7c1===_0x2ce159;},'pfNpO':'list','JGEKT':'installLevel','LhxFc':_0x3dc090(0xa8),'KpcLn':_0x3dc090(0xb2),'kYZuI':'\x0a📦\x20Installing\x20skills...\x0a','KCNbx':function(_0x3a6139,_0xc360e9,_0x3f7492){return _0x3a6139(_0xc360e9,_0x3f7492);},'uOoKu':_0x3dc090(0xab),'zBGso':function(_0x599856,_0x3f5cf5){return _0x599856 instanceof _0x3f5cf5;},'wSkxF':function(_0x43c5f2,_0x53d131){return _0x43c5f2>_0x53d131;},'sgJri':function(_0x153b69,_0x55f4b8){return _0x153b69===_0x55f4b8;},'kEqxw':_0x3dc090(0x9c),'WBbqc':function(_0x1a12db,_0x3e9a72){return _0x1a12db>_0x3e9a72;},'nUdoZ':'\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','ObvcE':'\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'};console['log'](_0x709c2['PPsVD']);const _0x2de668=_0x36fdc4[_0x3dc090(0xbd)]??_0x709c2['VublW'],_0x11e13d=await _0x709c2['MckWs'](getToken);if(!_0x11e13d){console[_0x3dc090(0xc5)]('❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a'),console['log'](_0x709c2[_0x3dc090(0x97)]),console[_0x3dc090(0xc5)](_0x709c2['Snixa']),console['log'](_0x3dc090(0xbe)+(_0x709c2['WBpbJ'](_0x2de668,'opencode')?_0x709c2[_0x3dc090(0xac)]:'')+_0x3dc090(0x9f)),console[_0x3dc090(0xc5)](_0x3dc090(0xad)+(_0x2de668===_0x3dc090(0x9e)?_0x709c2['TAtaq']:'')+'\x0a');return;}console[_0x3dc090(0xc5)](_0x3dc090(0xc6));const _0x17364f=_0x709c2[_0x3dc090(0x95)](getProjectRoot),_0xb657e8=basename(_0x17364f),_0x1e1c95=_0x709c2['awnOv'](_0x2de668,_0x709c2['tkzAR'])?_0x709c2['ofrMF'](getOpencodeConfigDir,_0x709c2['PacuF'])+_0x3dc090(0xae):getClaudeConfigDir()+_0x3dc090(0xae),_0x3497e0=_0x709c2[_0x3dc090(0xa9)](_0x2de668,_0x709c2['tkzAR'])?_0x17364f+_0x3dc090(0xa4):_0x17364f+_0x3dc090(0xa6),_0x35fe05=process[_0x3dc090(0xb9)]['isTTY']&&process[_0x3dc090(0x96)][_0x3dc090(0xa0)];let _0x164bc7;if(_0x36fdc4['autoInstall'])_0x164bc7=_0x36fdc4[_0x3dc090(0xb3)];else{if(_0x35fe05){const _0x4bf779=await _0x3429ed['prompt']([{'type':_0x709c2[_0x3dc090(0x93)],'name':_0x709c2[_0x3dc090(0xbc)],'message':_0x709c2[_0x3dc090(0xa2)],'choices':[{'name':_0x3dc090(0xb8)+_0x1e1c95+')','value':_0x3dc090(0x98)},{'name':_0x3dc090(0xbf)+_0x3497e0+')','value':_0x709c2[_0x3dc090(0x9d)]}]}]);_0x164bc7=_0x4bf779[_0x3dc090(0xbb)];}else _0x164bc7='project',console[_0x3dc090(0xc5)]('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x3497e0+')');}let _0x57ddce=0x0;const _0x17982a=_0x709c2[_0x3dc090(0x95)](getCurrentVersion);console[_0x3dc090(0xc5)](_0x709c2['kYZuI']);try{const _0x478a81=await _0x709c2[_0x3dc090(0xc3)](installSkill,_0x709c2[_0x3dc090(0xaf)],{'cliVersion':_0x17982a,'level':_0x164bc7,'platform':_0x2de668});_0x478a81&&_0x57ddce++;}catch(_0x4b5f51){console['warn']('\x20\x20Failed\x20to\x20install\x20ranger\x20skill:',_0x709c2['zBGso'](_0x4b5f51,Error)?_0x4b5f51['message']:_0x4b5f51);}if(_0x709c2[_0x3dc090(0xc4)](_0x57ddce,0x0)){const _0x2880ad=_0x709c2['sgJri'](_0x164bc7,_0x709c2['PacuF'])?_0x709c2[_0x3dc090(0xb4)]:'project-level';console[_0x3dc090(0xc5)]('\x0a✅\x20Installed\x20'+_0x57ddce+'\x20'+_0x2880ad+_0x3dc090(0x9b)+(_0x709c2['WBbqc'](_0x57ddce,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x36fdc4[_0x3dc090(0xba)]&&(console[_0x3dc090(0xc5)](_0x3dc090(0xb0)),_0x2de668==='opencode'?console[_0x3dc090(0xc5)](_0x709c2[_0x3dc090(0xa5)]):console[_0x3dc090(0xc5)](_0x709c2[_0x3dc090(0xa3)]));}else console['log']('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}
1
+ (function(_0x144b62,_0x608001){const _0x10561f=_0x4595,_0x56de60=_0x144b62();while(!![]){try{const _0x2cb10d=parseInt(_0x10561f(0x120))/0x1+-parseInt(_0x10561f(0x133))/0x2*(parseInt(_0x10561f(0x12d))/0x3)+parseInt(_0x10561f(0x124))/0x4*(-parseInt(_0x10561f(0x12e))/0x5)+parseInt(_0x10561f(0x134))/0x6+-parseInt(_0x10561f(0x12b))/0x7*(-parseInt(_0x10561f(0x117))/0x8)+-parseInt(_0x10561f(0x123))/0x9+parseInt(_0x10561f(0x116))/0xa;if(_0x2cb10d===_0x608001)break;else _0x56de60['push'](_0x56de60['shift']());}catch(_0x275cf4){_0x56de60['push'](_0x56de60['shift']());}}}(_0x5b0a,0xe261b));import{basename}from'path';import _0x2ea8c8 from'inquirer';import{getToken}from'./utils/keychain.js';function _0x4595(_0x1de89,_0x4b595b){_0x1de89=_0x1de89-0x10e;const _0x5b0aa5=_0x5b0a();let _0x459584=_0x5b0aa5[_0x1de89];return _0x459584;}import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';function _0x5b0a(){const _0x42ac1f=['cqwaM','jHxBo','kudIi','message','isTTY','dktHx','installLevel','DawiT','328039FSHMpE','ZAOxD','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','12441816YTJuTd','58532tzepdE','/skills/','\x20\x202.\x20Run:\x20ranger\x20setup','LmoNy','RMpYV','stdin','This\x20project\x20only\x20(','6241347TTLeRR','/.claude/skills/','161034xYTQJM','455eSWJWM','wlzbS','rUHQc','warn','\x0a✅\x20Installed\x20','38yUfFiQ','6970200CEafsW','list','Where\x20should\x20skills\x20be\x20installed?','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','\x20\x203.\x20Run:\x20ranger\x20skillup','claude','elFwr','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','autoInstall','To\x20use:','opencode','prompt','\x20--opencode','log','YnVCW','13881870DrLCMN','16IBraFr'];_0x5b0a=function(){return _0x42ac1f;};return _0x5b0a();}import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x47db57={}){const _0x2707b8=_0x4595,_0x1fcb1={'jHxBo':_0x2707b8(0x139),'wlzbS':function(_0x2730a3){return _0x2730a3();},'dktHx':'❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','KDoUD':_0x2707b8(0x113),'cqwaM':'✓\x20Found\x20API\x20token','ucUce':function(_0x2e3556){return _0x2e3556();},'kYEwj':function(_0x42e7b3,_0x65dfee){return _0x42e7b3(_0x65dfee);},'YnVCW':'user','ZAOxD':function(_0xc7f064,_0xaefd8){return _0xc7f064===_0xaefd8;},'rUHQc':'opencode','LmoNy':_0x2707b8(0x135),'qcaHz':_0x2707b8(0x136),'uMkzn':'project','RMpYV':'\x0a📦\x20Installing\x20skills...\x0a','elFwr':function(_0x143582,_0x42bc2c,_0x13ab37){return _0x143582(_0x42bc2c,_0x13ab37);},'xwhSS':'ranger','DawiT':'\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','kudIi':function(_0x5cefc2,_0x37c1f5){return _0x5cefc2 instanceof _0x37c1f5;},'tnNMl':_0x2707b8(0x122)};console[_0x2707b8(0x114)]('\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a');const _0x32b407=_0x47db57['platform']??_0x1fcb1[_0x2707b8(0x119)],_0x201283=await _0x1fcb1[_0x2707b8(0x12f)](getToken);if(!_0x201283){console['log'](_0x1fcb1[_0x2707b8(0x11d)]),console[_0x2707b8(0x114)]('To\x20get\x20started:'),console['log'](_0x2707b8(0x137)),console[_0x2707b8(0x114)](_0x2707b8(0x126)+(_0x32b407===_0x2707b8(0x111)?_0x1fcb1['KDoUD']:'')+'\x20<your-api-token>'),console['log'](_0x2707b8(0x138)+(_0x32b407===_0x2707b8(0x111)?'\x20--opencode':'')+'\x0a');return;}console[_0x2707b8(0x114)](_0x1fcb1[_0x2707b8(0x118)]);const _0x4057f2=_0x1fcb1['ucUce'](getProjectRoot),_0x51fbbd=basename(_0x4057f2),_0x5c6b53=_0x32b407===_0x2707b8(0x111)?_0x1fcb1['kYEwj'](getOpencodeConfigDir,_0x1fcb1[_0x2707b8(0x115)])+_0x2707b8(0x125):getClaudeConfigDir()+'/skills/',_0x249463=_0x1fcb1[_0x2707b8(0x121)](_0x32b407,_0x1fcb1['rUHQc'])?_0x4057f2+'/.opencode/skills/':_0x4057f2+_0x2707b8(0x12c),_0x37a674=process[_0x2707b8(0x129)][_0x2707b8(0x11c)]&&process['stdout'][_0x2707b8(0x11c)];let _0x4a7d23;if(_0x47db57[_0x2707b8(0x10f)])_0x4a7d23=_0x47db57['autoInstall'];else{if(_0x37a674){const _0x2d6235=await _0x2ea8c8[_0x2707b8(0x112)]([{'type':_0x1fcb1[_0x2707b8(0x127)],'name':'installLevel','message':_0x1fcb1['qcaHz'],'choices':[{'name':'All\x20projects\x20('+_0x5c6b53+')','value':'user'},{'name':_0x2707b8(0x12a)+_0x249463+')','value':'project'}]}]);_0x4a7d23=_0x2d6235[_0x2707b8(0x11e)];}else _0x4a7d23=_0x1fcb1['uMkzn'],console['log'](_0x2707b8(0x10e)+_0x249463+')');}let _0x344bb4=0x0;const _0x50cbd4=_0x1fcb1['ucUce'](getCurrentVersion);console[_0x2707b8(0x114)](_0x1fcb1[_0x2707b8(0x128)]);try{const _0x58e5c9=await _0x1fcb1[_0x2707b8(0x13a)](installSkill,_0x1fcb1['xwhSS'],{'cliVersion':_0x50cbd4,'level':_0x4a7d23,'platform':_0x32b407});_0x58e5c9&&_0x344bb4++;}catch(_0x528c34){console[_0x2707b8(0x131)](_0x1fcb1[_0x2707b8(0x11f)],_0x1fcb1[_0x2707b8(0x11a)](_0x528c34,Error)?_0x528c34[_0x2707b8(0x11b)]:_0x528c34);}if(_0x344bb4>0x0){const _0x2fa62a=_0x4a7d23==='user'?'user-level':'project-level';console[_0x2707b8(0x114)](_0x2707b8(0x132)+_0x344bb4+'\x20'+_0x2fa62a+'\x20skill'+(_0x344bb4>0x1?'s':'')+'\x20successfully!\x0a'),!_0x47db57['suppressUsage']&&(console['log'](_0x2707b8(0x110)),_0x1fcb1[_0x2707b8(0x121)](_0x32b407,_0x1fcb1[_0x2707b8(0x130)])?console[_0x2707b8(0x114)](_0x1fcb1['tnNMl']):console[_0x2707b8(0x114)]('\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'));}else console['log']('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}
@@ -1 +1 @@
1
- const _0x44909b=_0x4cce;(function(_0xc27a34,_0x21fa4e){const _0xcb8e9f=_0x4cce,_0x36ea63=_0xc27a34();while(!![]){try{const _0x489b18=-parseInt(_0xcb8e9f(0x1c6))/0x1*(parseInt(_0xcb8e9f(0x1f5))/0x2)+parseInt(_0xcb8e9f(0x1ef))/0x3*(-parseInt(_0xcb8e9f(0x1ea))/0x4)+parseInt(_0xcb8e9f(0x1cc))/0x5+parseInt(_0xcb8e9f(0x1b1))/0x6*(parseInt(_0xcb8e9f(0x18a))/0x7)+parseInt(_0xcb8e9f(0x1bf))/0x8+parseInt(_0xcb8e9f(0x190))/0x9*(-parseInt(_0xcb8e9f(0x1db))/0xa)+parseInt(_0xcb8e9f(0x18b))/0xb;if(_0x489b18===_0x21fa4e)break;else _0x36ea63['push'](_0x36ea63['shift']());}catch(_0x805925){_0x36ea63['push'](_0x36ea63['shift']());}}}(_0x31c8,0x3de86));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x5f400d from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';function _0x4cce(_0x34df48,_0x1dde98){_0x34df48=_0x34df48-0x187;const _0x31c866=_0x31c8();let _0x4cce1b=_0x31c866[_0x34df48];return _0x4cce1b;}import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';function _0x31c8(){const _0xb464af=['\x0a❌\x20Failed\x20to\x20install\x20Chromium:','huzqu','rsLKv','hNhJV','force','74548rbHNYE','sftJH','auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to','✓\x20Local\x20profile\x20already\x20exists','stdin','isTTY','258665XhASmb','log','qUuqR','\x20\x20npx\x20playwright@',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','UmizG','close','✓\x20.ranger/\x20directory\x20already\x20exists','RkYiy','LSzXI','use\x20until\x20the\x20session\x20expires.\x0a','...','status','git_check','provided_token','940UIfTDA','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','GEcmQ','scope','\x0a❌\x20Profile\x20setup\x20failed:','user','\x1b[1m','env','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','trackPhaseEnd','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','ZHold','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','781988ABcAGR','to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','error','chromium','ranger\x20profile\x20add\x20local','6eejeCh','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','url','.gitignore','existing_token','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','2eaKgaB','jPAiV','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','platform','10164exJADT','10358073XrYrpc','cHyYz','message','\x20(fallback\x20version)','plugin','39051rrdSTh','organizationName','✓\x20Created\x20.ranger/\x20directory','zvRZb','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','FCXcM','MdXTS','\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a','skipped','eXyVN','bfjqy','BGSHY','jZNBq','\x1b[0m','\x0a⚠\x20Skipping\x20Chromium\x20installation.','ready','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','lLpUI','iQdUx','Ntwih','prompt','.ranger','Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','method','ZXRTD','local','VpbeY','success','jsCwm','skills','366tDPOKL','✓\x20Authenticated\x20to\x20','✓\x20Playwright\x20Chromium\x20browser\x20found','MTeBV','confirm','GWcfc','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','rXBBl','executablePath','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','trackPhaseStart','inherit','OVapL','opencode','360272bFuBKr','VhzdW'];_0x31c8=function(){return _0xb464af;};return _0x31c8();}const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2',bold=_0x47d6a2=>_0x44909b(0x1e2)+_0x47d6a2+_0x44909b(0x19f);function getPlaywrightVersion(){const _0x263342={'PeYKJ':'playwright/package.json','mIlQc':function(_0xdb3f6a,_0x1503ed){return _0xdb3f6a(_0x1503ed);}};try{const _0x476289=require['resolve'](_0x263342['PeYKJ']),_0x25b9f7=_0x263342['mIlQc'](require,_0x476289);return _0x25b9f7['version'];}catch{return null;}}function installChromiumBinary(_0x353d5d){const _0x829b9b=_0x44909b,_0x22b7f9={'zvRZb':function(_0xd9b539){return _0xd9b539();},'hiryE':function(_0x54d5ba,_0x58be49){return _0x54d5ba(_0x58be49);},'ooSiG':'install','fPRis':'npx','UmizG':_0x829b9b(0x1bc),'Ntwih':function(_0x3f91a4,_0x25088c){return _0x3f91a4===_0x25088c;},'UaWPk':_0x829b9b(0x1d2),'jLtuL':'error'};return new Promise((_0x1d0dba,_0x4407e3)=>{const _0x8f8819=_0x829b9b,_0x59f15a=['playwright@'+_0x353d5d,_0x22b7f9['ooSiG'],'chromium'],_0x4aa54f=spawn(_0x22b7f9['fPRis'],_0x59f15a,{'stdio':_0x22b7f9[_0x8f8819(0x1d1)],'shell':_0x22b7f9[_0x8f8819(0x1a5)](process[_0x8f8819(0x189)],'win32')});_0x4aa54f['on'](_0x22b7f9['UaWPk'],_0x119a7e=>{const _0x4dbe72=_0x8f8819;_0x119a7e===0x0?_0x22b7f9[_0x4dbe72(0x193)](_0x1d0dba):_0x4407e3(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x119a7e));}),_0x4aa54f['on'](_0x22b7f9['jLtuL'],_0x1766fa=>{_0x22b7f9['hiryE'](_0x4407e3,_0x1766fa);});});}export async function authenticate(_0x60587c){const _0x3f6317=_0x44909b,_0x2f4df3={'MTeBV':function(_0x24c56f){return _0x24c56f();},'VpbeY':function(_0x4be8d2,_0x558059){return _0x4be8d2(_0x558059);},'jsCwm':_0x3f6317(0x1f3),'lqdmG':'device_auth','xcsds':'✓\x20Exported\x20credentials\x20for\x20CI','XHsfx':'✓\x20Stored\x20credentials\x20locally','bfjqy':_0x3f6317(0x1da)};if(!_0x60587c){const _0x4ef91d=await _0x2f4df3[_0x3f6317(0x1b4)](getToken);if(_0x4ef91d){const _0x452661=await _0x2f4df3[_0x3f6317(0x1ad)](getCurrentUser,_0x4ef91d);if(_0x452661[_0x3f6317(0x1ae)])return console['log']('✓\x20Already\x20authenticated\x20to\x20'+_0x452661[_0x3f6317(0x1e1)]['organizationName']),{'token':_0x4ef91d,'method':_0x2f4df3[_0x3f6317(0x1af)]};}try{_0x60587c=await runDeviceAuthFlow();}catch(_0x3043bf){throw new Error('Authentication\x20failed:\x20'+(_0x3043bf instanceof Error?_0x3043bf['message']:_0x3043bf));}const _0xe7636c=await _0x2f4df3['VpbeY'](getCurrentUser,_0x60587c);if(!_0xe7636c['success'])throw new Error(_0x3f6317(0x195)+_0xe7636c[_0x3f6317(0x1ec)]);return console[_0x3f6317(0x1cd)](_0x3f6317(0x1b2)+_0xe7636c[_0x3f6317(0x1e1)]['organizationName']),{'token':_0x60587c,'method':_0x2f4df3['lqdmG']};}console[_0x3f6317(0x1cd)]('Validating\x20API\x20token...');const _0x3d213b=await getCurrentUser(_0x60587c);if(!_0x3d213b[_0x3f6317(0x1ae)]){if(_0x3d213b[_0x3f6317(0x1d8)])throw new Error('Authentication\x20failed:\x20'+_0x3d213b[_0x3f6317(0x1ec)]+_0x3f6317(0x196));else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x3d213b['error']+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x3f6317(0x1cd)]('✓\x20Authenticated\x20to\x20'+_0x3d213b[_0x3f6317(0x1e1)][_0x3f6317(0x191)]),await storeToken(_0x60587c),console[_0x3f6317(0x1cd)](process[_0x3f6317(0x1e3)]['GITHUB_ENV']?_0x2f4df3['xcsds']:_0x2f4df3['XHsfx']),{'token':_0x60587c,'method':_0x2f4df3[_0x3f6317(0x19c)]};}export async function ensureRangerDir(){const _0x1bb0a6=_0x44909b,_0x23a9fb={'eXyVN':function(_0x22348c){return _0x22348c();},'jZNBq':function(_0x4a3fd2,_0x556f2d,_0x2a12db){return _0x4a3fd2(_0x556f2d,_0x2a12db);},'sftJH':_0x1bb0a6(0x1a7),'FCXcM':_0x1bb0a6(0x192)},_0x91bb82=_0x23a9fb[_0x1bb0a6(0x19b)](findGitRoot),_0x89dbc6=_0x91bb82?_0x23a9fb['jZNBq'](join,_0x91bb82,_0x23a9fb[_0x1bb0a6(0x1c7)]):_0x23a9fb['eXyVN'](getRangerDir);return!existsSync(_0x89dbc6)?(await _0x23a9fb[_0x1bb0a6(0x19e)](mkdir,_0x89dbc6,{'recursive':!![]}),console['log'](_0x23a9fb[_0x1bb0a6(0x197)]),{'path':_0x89dbc6,'installed':!![]}):(console[_0x1bb0a6(0x1cd)](_0x1bb0a6(0x1d3)),{'path':_0x89dbc6,'installed':![]});}export async function ensureChromium(){const _0x5c10f6=_0x44909b,_0x4d21b7={'qUuqR':function(_0x5a9b0c,_0x1e9867){return _0x5a9b0c(_0x1e9867);},'lLpUI':function(_0x189f52){return _0x189f52();},'GWcfc':_0x5c10f6(0x1b5),'uWTOG':'install','BGSHY':_0x5c10f6(0x18e),'cHyYz':'\x0aInstalling\x20Chromium\x20browser...\x0a','hNhJV':_0x5c10f6(0x1c1)};let _0x337c38=![];try{const _0x389092=chromium[_0x5c10f6(0x1b9)]();_0x337c38=_0x4d21b7[_0x5c10f6(0x1ce)](existsSync,_0x389092);}catch{_0x337c38=![];}if(_0x337c38)return console[_0x5c10f6(0x1cd)](_0x5c10f6(0x1b3)),![];const _0x2036a1=_0x4d21b7[_0x5c10f6(0x1a3)](getPlaywrightVersion),_0x25e72c=_0x2036a1??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0x40db91=!_0x2036a1,_0x44acb6=process[_0x5c10f6(0x1ca)]['isTTY']&&process['stdout']['isTTY'];let _0x289390=!![];if(_0x44acb6){const {install:_0x62706d}=await _0x5f400d['prompt']([{'type':_0x4d21b7[_0x5c10f6(0x1b6)],'name':_0x4d21b7['uWTOG'],'message':_0x40db91?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x25e72c+'\x20now?':'The\x20required\x20version\x20('+_0x25e72c+_0x5c10f6(0x1d0),'default':!![]}]);_0x289390=_0x62706d;}else console[_0x5c10f6(0x1cd)](_0x5c10f6(0x1e4)+_0x25e72c+(_0x40db91?_0x4d21b7[_0x5c10f6(0x19d)]:'')+_0x5c10f6(0x1d7));if(_0x289390){console[_0x5c10f6(0x1cd)](_0x4d21b7[_0x5c10f6(0x18c)]);try{await installChromiumBinary(_0x25e72c),console[_0x5c10f6(0x1cd)](_0x5c10f6(0x1a2));}catch(_0x2b341e){console[_0x5c10f6(0x1ec)](_0x4d21b7[_0x5c10f6(0x1c4)],_0x2b341e instanceof Error?_0x2b341e[_0x5c10f6(0x18d)]:_0x2b341e),console[_0x5c10f6(0x1cd)]('You\x20can\x20install\x20it\x20manually\x20by\x20running:'),console['log'](_0x5c10f6(0x1cf)+_0x25e72c+'\x20install\x20chromium');}}else console['log'](_0x5c10f6(0x1a0)),console['log'](_0x5c10f6(0x1ba)),console['log'](_0x5c10f6(0x1cf)+_0x25e72c+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x3b0abc){const _0x598ef2=_0x44909b,_0x2b06ad={'vRLKi':'✓\x20Created\x20.ranger/.gitignore'},_0x2ad9bd=join(_0x3b0abc,_0x598ef2(0x1f2)),_0x534bae=_0x598ef2(0x199);await writeFile(_0x2ad9bd,_0x534bae),console['log'](_0x2b06ad['vRLKi']);}function printProfileSetupLaterInstructions(){const _0x26ef6c=_0x44909b,_0xa9627c={'deTey':'\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','mrVCx':function(_0x103f20,_0x496d42){return _0x103f20(_0x496d42);},'ptVQd':_0x26ef6c(0x1ee)};console[_0x26ef6c(0x1cd)](_0xa9627c['deTey']),console[_0x26ef6c(0x1cd)]('\x20\x20'+_0xa9627c['mrVCx'](bold,_0xa9627c['ptVQd'])),console['log'](_0x26ef6c(0x1f0));}async function ensureLocalEnv(_0x48416a,_0x4373ce){const _0xa2127d=_0x44909b,_0xb1cfb7={'yfRoW':_0xa2127d(0x1c9),'huzqu':_0xa2127d(0x1e9),'MdXTS':_0xa2127d(0x1c8),'VKbgE':'wantsProfile','AeykM':function(_0x546d70){return _0x546d70();},'QCPkU':function(_0x4fc3aa,_0x4e5b22){return _0x4fc3aa instanceof _0x4e5b22;},'yzplN':function(_0x4871b5){return _0x4871b5();}};if(!findGitRoot())return console['log']('⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.'),{'ready':![],'skipped':!![]};if(findExistingEnv(_0xa2127d(0x1ac),{'locations':[_0xa2127d(0x1ac)]}))return console[_0xa2127d(0x1cd)](_0xb1cfb7['yfRoW']),{'ready':!![],'skipped':![]};const _0x196c47=process['stdin'][_0xa2127d(0x1cb)]&&process['stdout'][_0xa2127d(0x1cb)];if(_0x196c47&&!_0x48416a?.['url']){console['log'](_0xb1cfb7[_0xa2127d(0x1c2)]),console[_0xa2127d(0x1cd)](_0xa2127d(0x1eb)),console[_0xa2127d(0x1cd)](_0xb1cfb7[_0xa2127d(0x198)]),console[_0xa2127d(0x1cd)](_0xa2127d(0x1d6)),console['log'](_0xa2127d(0x1dd));const {wantsProfile:_0x214bb8}=await _0x5f400d[_0xa2127d(0x1a6)]([{'type':'confirm','name':_0xb1cfb7['VKbgE'],'message':_0xa2127d(0x194),'default':!![]}]);if(!_0x214bb8)return _0xb1cfb7['AeykM'](printProfileSetupLaterInstructions),{'ready':![],'skipped':!![]};}try{return await addEnv(_0xa2127d(0x1ac),{'url':_0x48416a?.[_0xa2127d(0x1f1)],'force':_0x48416a?.[_0xa2127d(0x1c5)],'allowInsecureLocalhost':_0x48416a?.['allowInsecureLocalhost']},_0x4373ce),{'ready':!![],'skipped':![]};}catch(_0x58f1d4){return console['error'](_0xa2127d(0x1e0),_0xb1cfb7['QCPkU'](_0x58f1d4,Error)?_0x58f1d4[_0xa2127d(0x18d)]:_0x58f1d4),_0xb1cfb7['yzplN'](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}export async function start(_0x208d94,_0x34cd67,_0xfec1f4){const _0x44c745=_0x44909b,_0x228250={'RkYiy':_0x44c745(0x1e1),'vGAoG':function(_0x2bb866){return _0x2bb866();},'wxmnB':_0x44c745(0x1d9),'GEcmQ':'No\x20git\x20repository\x20found','spQor':'No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.','rXBBl':function(_0x23e571){return _0x23e571();},'pUthC':'auth','lzakK':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','lUovr':function(_0x430024){return _0x430024();},'mGWFd':_0x44c745(0x1a9),'QrfMa':function(_0x25c25c,_0x3f525f){return _0x25c25c(_0x3f525f);},'iQdUx':function(_0x2a50a8,_0x44e1f5){return _0x2a50a8&&_0x44e1f5;},'VhzdW':'skills','OVapL':function(_0x6a7612,_0x2b85ef,_0x58b193){return _0x6a7612(_0x2b85ef,_0x58b193);},'CdRqc':'ranger','ZHold':function(_0x23fd1c){return _0x23fd1c();},'jPAiV':'opencode','jQJJK':function(_0x5ed6df,_0x1a2b6e){return _0x5ed6df(_0x1a2b6e);},'ZXRTD':_0x44c745(0x1a8),'vsFtB':'profile','LSzXI':'\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','dmCPB':_0x44c745(0x1dc),'qiYhs':'/ranger:enable','rsLKv':function(_0x3c8aa0,_0x38b113){return _0x3c8aa0+_0x38b113;},'CBMZA':function(_0x4ba534,_0x1f0a90){return _0x4ba534+_0x1f0a90;}};console[_0x44c745(0x1cd)]('\x0a🚀\x20Ranger\x20Setup\x0a');const _0x277fb0=process[_0x44c745(0x1ca)]['isTTY']&&process['stdout'][_0x44c745(0x1cb)];!_0x277fb0&&!_0x34cd67?.['scope']&&(console[_0x44c745(0x1cd)](_0x44c745(0x1e5)),_0x34cd67={..._0x34cd67,'scope':_0x228250[_0x44c745(0x1d4)]});_0xfec1f4?.[_0x44c745(0x1bb)](_0x44c745(0x1d9));if(!_0x228250['vGAoG'](findGitRoot)){await _0xfec1f4?.['trackPhaseError'](_0x228250['wxmnB'],new Error(_0x228250[_0x44c745(0x1de)]));throw new Error(_0x228250['spQor']);}_0xfec1f4?.[_0x44c745(0x1e6)](_0x228250['wxmnB']);const _0x567cb7=!existsSync(_0x228250['vGAoG'](getRangerDir)),{path:_0x3f0d4d}=await _0x228250[_0x44c745(0x1b8)](ensureRangerDir);_0xfec1f4?.[_0x44c745(0x1bb)](_0x228250['pUthC']);const _0x303121=await authenticate(_0x208d94);_0xfec1f4?.[_0x44c745(0x1e6)](_0x228250['pUthC'],{'isFirstRun':_0x567cb7,'method':_0x303121[_0x44c745(0x1aa)]}),_0xfec1f4?.[_0x44c745(0x1bb)](_0x44c745(0x1ed));_0x34cd67?.['skipChromium']?console[_0x44c745(0x1cd)](_0x228250['lzakK']):await _0x228250['lUovr'](ensureChromium);_0xfec1f4?.[_0x44c745(0x1e6)](_0x44c745(0x1ed),{'isFirstRun':_0x567cb7,'skipped':!!_0x34cd67?.['skipChromium']}),await writeRangerGitignore(_0x3f0d4d),console[_0x44c745(0x1cd)](_0x228250['mGWFd']);const _0x430340=_0x34cd67?.[_0x44c745(0x1df)],_0x8f667f=_0x34cd67?.[_0x44c745(0x1be)]??![];let _0x6be037=null;_0x8f667f?(_0xfec1f4?.['trackPhaseStart']('plugin'),_0x6be037=await ensureOpencodePluginConfig(_0x430340),_0xfec1f4?.[_0x44c745(0x1e6)](_0x44c745(0x18f),{'isFirstRun':_0x567cb7,'opencode':!![]})):(_0xfec1f4?.[_0x44c745(0x1bb)]('plugin'),await _0x228250['QrfMa'](ensureClaudePlugin,_0x430340),_0xfec1f4?.['trackPhaseEnd'](_0x44c745(0x18f),{'isFirstRun':_0x567cb7}));if(_0x228250[_0x44c745(0x1a4)](_0x8f667f,_0x6be037)){_0xfec1f4?.[_0x44c745(0x1bb)](_0x228250['VhzdW']);try{await _0x228250[_0x44c745(0x1bd)](installSkill,_0x228250['CdRqc'],{'level':_0x6be037[_0x44c745(0x1df)],'cliVersion':_0x228250[_0x44c745(0x1e8)](getCurrentVersion),'platform':_0x228250[_0x44c745(0x187)]}),_0xfec1f4?.['trackPhaseEnd']('skills',{'isFirstRun':_0x567cb7,'opencode':!![]});}catch(_0xe4ab0d){console['warn'](_0x44c745(0x1f4),_0xe4ab0d instanceof Error?_0xe4ab0d[_0x44c745(0x18d)]:_0xe4ab0d),_0xfec1f4?.['trackPhaseEnd'](_0x228250['VhzdW'],{'isFirstRun':_0x567cb7,'opencode':!![],'failed':!![]});}}else _0xfec1f4?.['trackPhaseStart'](_0x228250[_0x44c745(0x1c0)]),await _0x228250['jQJJK'](ensureClaudeSkills,_0x430340),_0xfec1f4?.['trackPhaseEnd'](_0x44c745(0x1b0),{'isFirstRun':_0x567cb7});if(!_0x277fb0&&!_0x34cd67?.[_0x44c745(0x1f1)])console[_0x44c745(0x1cd)](_0x228250[_0x44c745(0x1ab)]),console['log']('\x20\x20'+_0x228250['QrfMa'](bold,'ranger\x20profile\x20add\x20local')+'\x0a');else{_0xfec1f4?.['trackPhaseStart'](_0x228250['vsFtB']);const _0x49c7ed=await ensureLocalEnv({'url':_0x34cd67?.[_0x44c745(0x1f1)],'force':_0x34cd67?.['force'],'allowInsecureLocalhost':_0x34cd67?.['allowInsecureLocalhost']},_0xfec1f4);_0xfec1f4?.['trackPhaseEnd']('profile',{'isFirstRun':_0x567cb7,'profileReady':_0x49c7ed[_0x44c745(0x1a1)],'userSkipped':_0x49c7ed[_0x44c745(0x19a)]}),_0x49c7ed[_0x44c745(0x1a1)]&&console[_0x44c745(0x1cd)](_0x44c745(0x1e7));}if(_0x8f667f)console[_0x44c745(0x1cd)](_0x228250[_0x44c745(0x1d5)]),console['log']('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console['log'](_0x228250['dmCPB']),console[_0x44c745(0x1cd)](_0x44c745(0x188));else{const _0x1d03f0=bold(_0x228250['qiYhs']);console['log'](_0x228250[_0x44c745(0x1c3)](_0x228250['CBMZA']('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0x1d03f0+'\x20and\x20prompt\x20the\x20coding'+'\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'),_0x44c745(0x1b7)));}}
1
+ const _0x32c762=_0x56c5;(function(_0x4c8f7b,_0x48e99d){const _0x316272=_0x56c5,_0x32d86a=_0x4c8f7b();while(!![]){try{const _0x1708d0=parseInt(_0x316272(0x197))/0x1+parseInt(_0x316272(0x16f))/0x2*(parseInt(_0x316272(0x178))/0x3)+parseInt(_0x316272(0x183))/0x4*(-parseInt(_0x316272(0x168))/0x5)+-parseInt(_0x316272(0x160))/0x6*(parseInt(_0x316272(0x1a4))/0x7)+parseInt(_0x316272(0x182))/0x8+parseInt(_0x316272(0x19c))/0x9+parseInt(_0x316272(0x18e))/0xa*(parseInt(_0x316272(0x199))/0xb);if(_0x1708d0===_0x48e99d)break;else _0x32d86a['push'](_0x32d86a['shift']());}catch(_0x5b15a8){_0x32d86a['push'](_0x32d86a['shift']());}}}(_0x1de3,0x6414c));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x5c082e from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';function _0x1de3(){const _0x22b55e=['6FCJihk','You\x20can\x20install\x20it\x20manually\x20by\x20running:','Installation\x20failed\x20with\x20exit\x20code\x20','trackPhaseError','✓\x20Authenticated\x20to\x20','RUXge','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','status','115TgNeid','\x0a❌\x20Profile\x20setup\x20failed:','schmg','scope','DaJCM','✓\x20Playwright\x20Chromium\x20browser\x20found','ready','575740zsjNNA','\x0aIn\x20Claude\x20Code,\x20run\x20','The\x20required\x20version\x20(','CjOnP','GAWTK','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','kvYdx','\x20and\x20prompt\x20the\x20coding','kSGlS','6nufZuk','trackPhaseEnd','unVhO','isTTY','EvhCa','skipped','aIObU','success','version','WOcTg','3837992fTiMWc','100952exDBsX','sPEqS','No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.','✓\x20Created\x20.ranger/.gitignore','\x0a⚠\x20Skipping\x20Chromium\x20installation.','jnbxs','executablePath','No\x20git\x20repository\x20found','✓\x20.ranger/\x20directory\x20already\x20exists','user','PogfR','1479980wWfxQT','trackPhaseStart','\x20install\x20chromium','provided_token','url','git_check','eiQXI','1.58.2','\x20now?','65226mLpbrj','.ranger','22EgpAwD','Validating\x20API\x20token...','UQKdl','714528sHvebg','hiato','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','YTcLW','skipChromium','use\x20until\x20the\x20session\x20expires.\x0a','stdout','Xridm','3539879SIfPqp','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','ZJaEN','method','error','CGTSh','waHDs','rZeAe','✓\x20Already\x20authenticated\x20to\x20','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','ONJkW','skills','plugin','cfvek','CbdOP','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','mIDnB','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','ranger\x20profile\x20add\x20local','env','aYQSs','\x1b[0m','warn','mOnta','NRdgm','local','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','cFBxD','Authentication\x20failed:\x20','ranger','force','vNlXe','opencode','XMDYK','profile','kUvna','log','npx','confirm','message','organizationName','nqgLA','install'];_0x1de3=function(){return _0x22b55e;};return _0x1de3();}import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION=_0x32c762(0x195),bold=_0x3c8ee5=>'\x1b[1m'+_0x3c8ee5+_0x32c762(0x1b9);function _0x56c5(_0x79e9dd,_0x57ef73){_0x79e9dd=_0x79e9dd-0x158;const _0x1de360=_0x1de3();let _0x56c529=_0x1de360[_0x79e9dd];return _0x56c529;}function getPlaywrightVersion(){const _0x5d1875=_0x32c762,_0xab131f={'mIDnB':'playwright/package.json'};try{const _0x20aa00=require['resolve'](_0xab131f[_0x5d1875(0x1b4)]),_0x640abc=require(_0x20aa00);return _0x640abc[_0x5d1875(0x180)];}catch{return null;}}function installChromiumBinary(_0x20ec4f){const _0xbdcaef=_0x32c762,_0x421d4d={'ONJkW':_0xbdcaef(0x15f),'PogfR':'chromium','GBovo':_0xbdcaef(0x15a),'ngaFO':function(_0x3cf8d0,_0x11a430){return _0x3cf8d0===_0x11a430;},'nqgLA':'win32'};return new Promise((_0x264259,_0x378598)=>{const _0x4d8e75=_0xbdcaef,_0xd590b3={'CbdOP':function(_0x5896a,_0x4122c2){return _0x5896a(_0x4122c2);}},_0x2e7ddc=['playwright@'+_0x20ec4f,_0x421d4d[_0x4d8e75(0x1ae)],_0x421d4d[_0x4d8e75(0x18d)]],_0x15bd60=spawn(_0x421d4d['GBovo'],_0x2e7ddc,{'stdio':'inherit','shell':_0x421d4d['ngaFO'](process['platform'],_0x421d4d[_0x4d8e75(0x15e)])});_0x15bd60['on']('close',_0x5d027b=>{const _0x494a14=_0x4d8e75;_0x5d027b===0x0?_0x264259():_0xd590b3[_0x494a14(0x1b2)](_0x378598,new Error(_0x494a14(0x162)+_0x5d027b));}),_0x15bd60['on']('error',_0x5b61f9=>{_0x378598(_0x5b61f9);});});}export async function authenticate(_0x52c6e9){const _0x5c935f=_0x32c762,_0x5e3c10={'pcxPZ':function(_0x3075ea){return _0x3075ea();},'RUXge':function(_0x14b82d,_0x1d44ee){return _0x14b82d(_0x1d44ee);},'EvhCa':'existing_token','JKwJh':function(_0x44618b){return _0x44618b();},'vNlXe':function(_0x2778ae,_0x1e5837){return _0x2778ae(_0x1e5837);},'rrSIw':'✓\x20Exported\x20credentials\x20for\x20CI','waHDs':'✓\x20Stored\x20credentials\x20locally'};if(!_0x52c6e9){const _0x50587c=await _0x5e3c10['pcxPZ'](getToken);if(_0x50587c){const _0x426755=await _0x5e3c10[_0x5c935f(0x165)](getCurrentUser,_0x50587c);if(_0x426755['success'])return console['log'](_0x5c935f(0x1ac)+_0x426755['user']['organizationName']),{'token':_0x50587c,'method':_0x5e3c10[_0x5c935f(0x17c)]};}try{_0x52c6e9=await _0x5e3c10['JKwJh'](runDeviceAuthFlow);}catch(_0x4f67c3){throw new Error('Authentication\x20failed:\x20'+(_0x4f67c3 instanceof Error?_0x4f67c3[_0x5c935f(0x15c)]:_0x4f67c3));}const _0x3580d2=await getCurrentUser(_0x52c6e9);if(!_0x3580d2[_0x5c935f(0x17f)])throw new Error(_0x5c935f(0x1b5)+_0x3580d2[_0x5c935f(0x1a8)]);return console['log'](_0x5c935f(0x164)+_0x3580d2[_0x5c935f(0x18c)][_0x5c935f(0x15d)]),{'token':_0x52c6e9,'method':'device_auth'};}console[_0x5c935f(0x159)](_0x5c935f(0x19a));const _0x51bd90=await _0x5e3c10[_0x5c935f(0x165)](getCurrentUser,_0x52c6e9);if(!_0x51bd90['success']){if(_0x51bd90[_0x5c935f(0x167)])throw new Error(_0x5c935f(0x1c1)+_0x51bd90['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x51bd90[_0x5c935f(0x1a8)]+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x5c935f(0x159)]('✓\x20Authenticated\x20to\x20'+_0x51bd90[_0x5c935f(0x18c)]['organizationName']),await _0x5e3c10[_0x5c935f(0x1c4)](storeToken,_0x52c6e9),console[_0x5c935f(0x159)](process[_0x5c935f(0x1b7)]['GITHUB_ENV']?_0x5e3c10['rrSIw']:_0x5e3c10[_0x5c935f(0x1aa)]),{'token':_0x52c6e9,'method':_0x5c935f(0x191)};}export async function ensureRangerDir(){const _0x2b331b=_0x32c762,_0x3f2290={'mOnta':function(_0x68aae6){return _0x68aae6();},'schmg':_0x2b331b(0x198),'GAWTK':function(_0x1b74c2,_0x168745,_0x5a6932){return _0x1b74c2(_0x168745,_0x5a6932);}},_0x1fb9b0=_0x3f2290[_0x2b331b(0x1bb)](findGitRoot),_0x1e53f2=_0x1fb9b0?join(_0x1fb9b0,_0x3f2290[_0x2b331b(0x16a)]):_0x3f2290['mOnta'](getRangerDir);return!existsSync(_0x1e53f2)?(await _0x3f2290[_0x2b331b(0x173)](mkdir,_0x1e53f2,{'recursive':!![]}),console['log']('✓\x20Created\x20.ranger/\x20directory'),{'path':_0x1e53f2,'installed':!![]}):(console['log'](_0x2b331b(0x18b)),{'path':_0x1e53f2,'installed':![]});}export async function ensureChromium(){const _0x4033ad=_0x32c762,_0x539fcc={'rZeAe':function(_0x7775e4,_0x4aa9d5){return _0x7775e4(_0x4aa9d5);},'oKoHz':function(_0x2f64d7){return _0x2f64d7();},'qhkeC':'\x0aInstalling\x20Chromium\x20browser...\x0a','WOcTg':'\x0a❌\x20Failed\x20to\x20install\x20Chromium:','YTcLW':function(_0x23a1e1,_0x4a65c5){return _0x23a1e1 instanceof _0x4a65c5;},'uAfnh':_0x4033ad(0x161),'jnbxs':'You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'};let _0x1065ca=![];try{const _0x57f457=chromium[_0x4033ad(0x189)]();_0x1065ca=_0x539fcc[_0x4033ad(0x1ab)](existsSync,_0x57f457);}catch{_0x1065ca=![];}if(_0x1065ca)return console[_0x4033ad(0x159)](_0x4033ad(0x16d)),![];const _0x294340=_0x539fcc['oKoHz'](getPlaywrightVersion),_0x159a05=_0x294340??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0x4e937a=!_0x294340,_0x48876d=process['stdin'][_0x4033ad(0x17b)]&&process['stdout']['isTTY'];let _0x4fd716=!![];if(_0x48876d){const {install:_0x3d76ab}=await _0x5c082e['prompt']([{'type':_0x4033ad(0x15b),'name':_0x4033ad(0x15f),'message':_0x4e937a?_0x4033ad(0x1b3)+_0x159a05+_0x4033ad(0x196):_0x4033ad(0x171)+_0x159a05+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x4fd716=_0x3d76ab;}else console[_0x4033ad(0x159)](_0x4033ad(0x1a5)+_0x159a05+(_0x4e937a?'\x20(fallback\x20version)':'')+'...');if(_0x4fd716){console[_0x4033ad(0x159)](_0x539fcc['qhkeC']);try{await _0x539fcc[_0x4033ad(0x1ab)](installChromiumBinary,_0x159a05),console[_0x4033ad(0x159)]('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x13564a){console['error'](_0x539fcc[_0x4033ad(0x181)],_0x539fcc[_0x4033ad(0x19f)](_0x13564a,Error)?_0x13564a[_0x4033ad(0x15c)]:_0x13564a),console[_0x4033ad(0x159)](_0x539fcc['uAfnh']),console['log']('\x20\x20npx\x20playwright@'+_0x159a05+_0x4033ad(0x190));}}else console[_0x4033ad(0x159)](_0x4033ad(0x187)),console['log'](_0x539fcc[_0x4033ad(0x188)]),console[_0x4033ad(0x159)]('\x20\x20npx\x20playwright@'+_0x159a05+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x3d0c10){const _0x7b366e=_0x32c762,_0x163382={'FvGGR':function(_0x3d2f4b,_0x349af9,_0x5656b3){return _0x3d2f4b(_0x349af9,_0x5656b3);}},_0x22a5ff=_0x163382['FvGGR'](join,_0x3d0c10,'.gitignore'),_0x22ff8a='\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a';await writeFile(_0x22a5ff,_0x22ff8a),console[_0x7b366e(0x159)](_0x7b366e(0x186));}function printProfileSetupLaterInstructions(){const _0x34317b=_0x32c762,_0x3eb2b4={'aYQSs':'\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','cfvek':function(_0x4e398d,_0x5e1fb5){return _0x4e398d(_0x5e1fb5);},'MYFHW':_0x34317b(0x1b6),'ivWGD':_0x34317b(0x174)};console['log'](_0x3eb2b4[_0x34317b(0x1b8)]),console[_0x34317b(0x159)]('\x20\x20'+_0x3eb2b4[_0x34317b(0x1b1)](bold,_0x3eb2b4['MYFHW'])),console['log'](_0x3eb2b4['ivWGD']);}async function ensureLocalEnv(_0x7ab1d9,_0x5a07cc){const _0x6eebdf=_0x32c762,_0x2937a5={'Tzwfx':function(_0x1eddd3,_0x4a3f25,_0xd5de7d){return _0x1eddd3(_0x4a3f25,_0xd5de7d);},'ZQaHw':_0x6eebdf(0x1bd),'sPEqS':_0x6eebdf(0x1ad),'eiQXI':'to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','kUvna':'auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to','yJQID':_0x6eebdf(0x166),'cjyPu':function(_0x5e05fe,_0x20fbd7,_0x24adb5,_0x5703cb){return _0x5e05fe(_0x20fbd7,_0x24adb5,_0x5703cb);}};if(!findGitRoot())return console[_0x6eebdf(0x159)]('⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.'),{'ready':![],'skipped':!![]};if(_0x2937a5['Tzwfx'](findExistingEnv,'local',{'locations':[_0x2937a5['ZQaHw']]}))return console['log']('✓\x20Local\x20profile\x20already\x20exists'),{'ready':!![],'skipped':![]};const _0x5496f0=process['stdin'][_0x6eebdf(0x17b)]&&process[_0x6eebdf(0x1a2)][_0x6eebdf(0x17b)];if(_0x5496f0&&!_0x7ab1d9?.[_0x6eebdf(0x192)]){console['log'](_0x2937a5[_0x6eebdf(0x184)]),console[_0x6eebdf(0x159)](_0x2937a5[_0x6eebdf(0x194)]),console[_0x6eebdf(0x159)](_0x2937a5[_0x6eebdf(0x158)]),console['log'](_0x6eebdf(0x1a1)),console[_0x6eebdf(0x159)](_0x6eebdf(0x1bf));const {wantsProfile:_0x5753e6}=await _0x5c082e['prompt']([{'type':_0x6eebdf(0x15b),'name':'wantsProfile','message':_0x2937a5['yJQID'],'default':!![]}]);if(!_0x5753e6)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await _0x2937a5['cjyPu'](addEnv,_0x6eebdf(0x1bd),{'url':_0x7ab1d9?.['url'],'force':_0x7ab1d9?.['force'],'allowInsecureLocalhost':_0x7ab1d9?.['allowInsecureLocalhost']},_0x5a07cc),{'ready':!![],'skipped':![]};}catch(_0x3e0844){return console['error'](_0x6eebdf(0x169),_0x3e0844 instanceof Error?_0x3e0844[_0x6eebdf(0x15c)]:_0x3e0844),printProfileSetupLaterInstructions(),{'ready':![],'skipped':![]};}}export async function start(_0x1b58ca,_0x490809,_0xb7c512){const _0x39eee9=_0x32c762,_0x4f460a={'CuKkf':'git_check','cVbJp':_0x39eee9(0x18a),'iexQd':_0x39eee9(0x185),'cFBxD':function(_0x5a6d8b,_0x12acd9){return _0x5a6d8b(_0x12acd9);},'ZJaEN':'auth','BosCt':function(_0x151bb8,_0x218ce4){return _0x151bb8(_0x218ce4);},'CGTSh':'chromium','hwKiH':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','NRdgm':'plugin','DaJCM':function(_0x3cc07e,_0x2e1819){return _0x3cc07e&&_0x2e1819;},'mKojz':_0x39eee9(0x1af),'aIObU':_0x39eee9(0x1c2),'CjOnP':function(_0x2012dc){return _0x2012dc();},'UQKdl':'opencode','XMDYK':function(_0x1788e1,_0x4a3436){return _0x1788e1 instanceof _0x4a3436;},'kvYdx':function(_0x3b5647,_0x35655c){return _0x3b5647(_0x35655c);},'wVYji':'Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','unVhO':_0x39eee9(0x1b6),'nabeK':function(_0x54cbf4,_0x1cbb52,_0x99ba18){return _0x54cbf4(_0x1cbb52,_0x99ba18);},'FIRtt':_0x39eee9(0x1c7),'kSGlS':'and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','hiato':_0x39eee9(0x19e),'Xridm':function(_0xe01644,_0x177ef){return _0xe01644+_0x177ef;}};console[_0x39eee9(0x159)]('\x0a🚀\x20Ranger\x20Setup\x0a');const _0x32fda9=process['stdin'][_0x39eee9(0x17b)]&&process[_0x39eee9(0x1a2)][_0x39eee9(0x17b)];!_0x32fda9&&!_0x490809?.[_0x39eee9(0x16b)]&&(console[_0x39eee9(0x159)]('Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.'),_0x490809={..._0x490809,'scope':'user'});_0xb7c512?.['trackPhaseStart'](_0x4f460a['CuKkf']);if(!findGitRoot()){await _0xb7c512?.[_0x39eee9(0x163)]('git_check',new Error(_0x4f460a['cVbJp']));throw new Error(_0x4f460a['iexQd']);}_0xb7c512?.['trackPhaseEnd'](_0x39eee9(0x193));const _0xd33075=!_0x4f460a[_0x39eee9(0x1c0)](existsSync,getRangerDir()),{path:_0x530597}=await ensureRangerDir();_0xb7c512?.[_0x39eee9(0x18f)](_0x4f460a['ZJaEN']);const _0x54e61b=await _0x4f460a['BosCt'](authenticate,_0x1b58ca);_0xb7c512?.['trackPhaseEnd'](_0x4f460a[_0x39eee9(0x1a6)],{'isFirstRun':_0xd33075,'method':_0x54e61b[_0x39eee9(0x1a7)]}),_0xb7c512?.[_0x39eee9(0x18f)](_0x4f460a['CGTSh']);_0x490809?.[_0x39eee9(0x1a0)]?console[_0x39eee9(0x159)](_0x4f460a['hwKiH']):await ensureChromium();_0xb7c512?.['trackPhaseEnd'](_0x4f460a[_0x39eee9(0x1a9)],{'isFirstRun':_0xd33075,'skipped':!!_0x490809?.['skipChromium']}),await writeRangerGitignore(_0x530597),console['log']('\x0a✅\x20Ranger\x20setup\x20complete!\x0a');const _0x386b13=_0x490809?.['scope'],_0x42ad09=_0x490809?.[_0x39eee9(0x1c5)]??![];let _0x3d9af5=null;_0x42ad09?(_0xb7c512?.[_0x39eee9(0x18f)](_0x4f460a[_0x39eee9(0x1bc)]),_0x3d9af5=await ensureOpencodePluginConfig(_0x386b13),_0xb7c512?.[_0x39eee9(0x179)](_0x4f460a[_0x39eee9(0x1bc)],{'isFirstRun':_0xd33075,'opencode':!![]})):(_0xb7c512?.['trackPhaseStart'](_0x39eee9(0x1b0)),await ensureClaudePlugin(_0x386b13),_0xb7c512?.[_0x39eee9(0x179)](_0x39eee9(0x1b0),{'isFirstRun':_0xd33075}));if(_0x4f460a[_0x39eee9(0x16c)](_0x42ad09,_0x3d9af5)){_0xb7c512?.['trackPhaseStart'](_0x4f460a['mKojz']);try{await installSkill(_0x4f460a[_0x39eee9(0x17e)],{'level':_0x3d9af5[_0x39eee9(0x16b)],'cliVersion':_0x4f460a[_0x39eee9(0x172)](getCurrentVersion),'platform':_0x4f460a[_0x39eee9(0x19b)]}),_0xb7c512?.[_0x39eee9(0x179)](_0x39eee9(0x1af),{'isFirstRun':_0xd33075,'opencode':!![]});}catch(_0x4b771e){console[_0x39eee9(0x1ba)]('\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:',_0x4f460a[_0x39eee9(0x1c6)](_0x4b771e,Error)?_0x4b771e['message']:_0x4b771e),_0xb7c512?.['trackPhaseEnd'](_0x39eee9(0x1af),{'isFirstRun':_0xd33075,'opencode':!![],'failed':!![]});}}else _0xb7c512?.['trackPhaseStart']('skills'),await _0x4f460a[_0x39eee9(0x175)](ensureClaudeSkills,_0x386b13),_0xb7c512?.[_0x39eee9(0x179)](_0x4f460a['mKojz'],{'isFirstRun':_0xd33075});if(!_0x32fda9&&!_0x490809?.['url'])console[_0x39eee9(0x159)](_0x4f460a['wVYji']),console[_0x39eee9(0x159)]('\x20\x20'+_0x4f460a['BosCt'](bold,_0x4f460a[_0x39eee9(0x17a)])+'\x0a');else{_0xb7c512?.[_0x39eee9(0x18f)]('profile');const _0x54c9ff=await _0x4f460a['nabeK'](ensureLocalEnv,{'url':_0x490809?.['url'],'force':_0x490809?.[_0x39eee9(0x1c3)],'allowInsecureLocalhost':_0x490809?.['allowInsecureLocalhost']},_0xb7c512);_0xb7c512?.[_0x39eee9(0x179)](_0x4f460a['FIRtt'],{'isFirstRun':_0xd33075,'profileReady':_0x54c9ff['ready'],'userSkipped':_0x54c9ff[_0x39eee9(0x17d)]}),_0x54c9ff[_0x39eee9(0x16e)]&&console[_0x39eee9(0x159)]('\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.');}if(_0x42ad09)console['log']('\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)'),console['log'](_0x4f460a[_0x39eee9(0x177)]),console['log'](_0x4f460a[_0x39eee9(0x19d)]),console['log']('verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');else{const _0x31f44b=_0x4f460a[_0x39eee9(0x175)](bold,'/ranger:enable');console[_0x39eee9(0x159)](_0x4f460a[_0x39eee9(0x1a3)](_0x4f460a['Xridm'](_0x39eee9(0x170)+_0x31f44b+_0x39eee9(0x176),'\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with')+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser',_0x39eee9(0x1be)));}}
@@ -1 +1 @@
1
- const _0x10707d=_0x2bf8;(function(_0x3d3e30,_0x3306e6){const _0x19061e=_0x2bf8,_0x342b5a=_0x3d3e30();while(!![]){try{const _0x24603b=parseInt(_0x19061e(0xbf))/0x1*(parseInt(_0x19061e(0xe2))/0x2)+-parseInt(_0x19061e(0xf9))/0x3+-parseInt(_0x19061e(0xc4))/0x4*(-parseInt(_0x19061e(0x10a))/0x5)+parseInt(_0x19061e(0xda))/0x6*(-parseInt(_0x19061e(0xe6))/0x7)+-parseInt(_0x19061e(0xd3))/0x8*(parseInt(_0x19061e(0x11c))/0x9)+parseInt(_0x19061e(0xb7))/0xa+parseInt(_0x19061e(0xb5))/0xb*(parseInt(_0x19061e(0x10d))/0xc);if(_0x24603b===_0x3306e6)break;else _0x342b5a['push'](_0x342b5a['shift']());}catch(_0x4c6b31){_0x342b5a['push'](_0x342b5a['shift']());}}}(_0xa5c3,0x9baa4));function _0xa5c3(){const _0x115ad9=['configured','2183067pkoexD','path','vQzTQ','WSuWY','sZXsT','gQDgT','\x20plugin(s)\x20configured','isDirectory','name','user','not_installed','AwheF','ZvGcf','all','none','gmcKq','plaintext','5lEJDMr','VDjWP',':\x20configured','12XPzGcr','vqbfG','unknown','BUPRS','cmBsS','settings.json','disabled','pipe','join','(not\x20found)','scope','kSvmw','QeNRt','Root:\x20','API\x20URL:\x20','2439UfvIRX','some','qtvrm','opencode','error','7094604dKJYck','\x0a---\x20Skills\x20---','6208980hrkwsy','gSPvj','not_configured','\x1b[0m','filter','log','\x20\x20Run:\x20ranger\x20setup\x20[token]','length','1356EWCpQQ','enabled','success','isActive','Version:\x20','373852HDxgJG','LtxFX','version','includes','qCnKB','No\x20profiles\x20configured','\x20\x20Run:\x20ranger\x20setup\x20--opencode','Organization:\x20','sREvL','trim','auth.json.enc','HMNHE','\x1b[1m','\x20\x20\x20\x20Settings:\x20','XdmzY','3304mtzQCX','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','auth.json','WMwwI','uPLMW','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','42882iCHLTJ','hasPlaintextAuth','\x0a---\x20OpenCode\x20Plugin\x20---','displayName','TkWtj','UHNfQ','env','JqtrY','332mhRAMC','JriTy','stdout','\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','105KZEiYI','opencode-plugin','status','ranger@trailhead','SKILL.md','\x0a---\x20Claude\x20Code\x20Plugin\x20---','plugin','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','API\x20Token:\x20✗\x20Not\x20found','vaDLo','\x20\x20\x20\x20','hasEncryptedAuth','@ranger-testing/opencode-plugin','YGOaB','iYVCb','API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired','NNxcz','parse'];_0xa5c3=function(){return _0x115ad9;};return _0xa5c3();}import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';import{getCurrentVersion,getLatestVersion}from'./utils/version.js';import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';import{getRangerDir}from'./utils/rangerRoot.js';import{getEnvDir}from'./utils/settings.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';function _0x2bf8(_0x6a0ca3,_0x284814){_0x6a0ca3=_0x6a0ca3-0xb3;const _0xa5c38c=_0xa5c3();let _0x2bf86a=_0xa5c38c[_0x6a0ca3];return _0x2bf86a;}const bold=_0x2b2e75=>_0x10707d(0xd0)+_0x2b2e75+_0x10707d(0xba),link=(_0x50be34,_0x3f20dc)=>'\x1b]8;;file://'+_0x50be34+'\x07'+(_0x3f20dc||_0x50be34)+'\x1b]8;;\x07';async function getOpencodePluginStatus(){const _0x45ab29=_0x10707d,_0x4177b7={'OHaii':function(_0x51eb15,_0x2d4c9f){return _0x51eb15!==_0x2d4c9f;},'XdmzY':function(_0x2d38e0,_0x34ef4b){return _0x2d38e0(_0x34ef4b);},'MpBkd':_0x45ab29(0xf8),'kSvmw':_0x45ab29(0xb9),'TkWtj':function(_0x2ac1d3,_0x15e5e6,_0x5210e0,_0x2d5a0b){return _0x2ac1d3(_0x15e5e6,_0x5210e0,_0x2d5a0b);},'NNxcz':'ignore','AwheF':_0x45ab29(0x114),'rsWEz':'close'};return new Promise(_0x41d3b3=>{const _0x345686=_0x45ab29,_0x245550={'WelFX':function(_0x1c5d9f,_0x4fbbca){return _0x1c5d9f(_0x4fbbca);}},_0x883d51=_0x4177b7[_0x345686(0xde)](spawn,_0x345686(0xb3),['debug','config'],{'stdio':[_0x4177b7[_0x345686(0xf6)],_0x4177b7[_0x345686(0x104)],_0x4177b7[_0x345686(0x104)]]});let _0x3680e3='';_0x883d51[_0x345686(0xe4)]?.['on']('data',_0x47ffc5=>{_0x3680e3+=_0x47ffc5['toString']();}),_0x883d51['stderr']?.['on']('data',_0x455fe3=>{_0x3680e3+=_0x455fe3['toString']();}),_0x883d51['on'](_0x345686(0xb4),()=>{const _0x2c4cf3=_0x345686;_0x245550['WelFX'](_0x41d3b3,{'status':_0x2c4cf3(0x103)});}),_0x883d51['on'](_0x4177b7['rsWEz'],_0x400a51=>{const _0x40ac90=_0x345686,_0x584eb4={'wROPl':_0x40ac90(0xe7)};if(_0x4177b7['OHaii'](_0x400a51,0x0)){_0x4177b7['XdmzY'](_0x41d3b3,{'status':'not_installed'});return;}const _0x2fba4c=_0x3680e3[_0x40ac90(0xcd)]();let _0x1d7f42=null;if(_0x2fba4c)try{_0x1d7f42=JSON[_0x40ac90(0xf7)](_0x2fba4c);}catch{const _0x58219c=_0x2fba4c['match'](/\{[\s\S]*\}$/);if(_0x58219c)try{_0x1d7f42=JSON[_0x40ac90(0xf7)](_0x58219c[0x0]);}catch{_0x1d7f42=null;}}const _0x5404d0=Array['isArray'](_0x1d7f42?.[_0x40ac90(0xec)])?_0x1d7f42?.[_0x40ac90(0xec)]:[],_0x22c07b=_0x5404d0[_0x40ac90(0x11d)](_0x3cb81d=>{const _0x1da84f=_0x40ac90;if(typeof _0x3cb81d!=='string')return![];return _0x3cb81d['includes'](_0x1da84f(0xf2))||_0x3cb81d[_0x1da84f(0xc7)](_0x584eb4['wROPl']);});if(_0x22c07b){_0x4177b7[_0x40ac90(0xd2)](_0x41d3b3,{'status':_0x4177b7['MpBkd'],'details':_0x5404d0['length']>0x0?_0x5404d0[_0x40ac90(0xbe)]+_0x40ac90(0xff):undefined});return;}if(_0x5404d0['length']>0x0){_0x4177b7[_0x40ac90(0xd2)](_0x41d3b3,{'status':_0x4177b7[_0x40ac90(0x118)],'details':_0x5404d0['length']+'\x20plugin(s)\x20configured'});return;}_0x41d3b3({'status':_0x4177b7[_0x40ac90(0x118)]});});});}async function getSkillsFromDir(_0x452765,_0x4c0d42){const _0x3d5eaf=_0x10707d,_0x4cc39e={'JqtrY':function(_0x41c501,_0x9f550b){return _0x41c501(_0x9f550b);},'qCnKB':'utf-8'};if(!existsSync(_0x452765))return[];const _0x384137=[];try{const _0x23c455=await readdir(_0x452765,{'withFileTypes':!![]});for(const _0x1a3909 of _0x23c455){if(_0x1a3909[_0x3d5eaf(0x100)]()){const _0x396bb8=join(_0x452765,_0x1a3909['name'],_0x3d5eaf(0xea));if(_0x4cc39e[_0x3d5eaf(0xe1)](existsSync,_0x396bb8)){let _0x354e4a=_0x1a3909['name'];try{const _0x1ab138=await readFile(_0x396bb8,_0x4cc39e[_0x3d5eaf(0xc8)]),_0x858456=_0x1ab138['match'](/name:\s*(.+)/);_0x858456&&(_0x354e4a=_0x858456[0x1][_0x3d5eaf(0xcd)]());}catch{}_0x384137['push']({'name':_0x1a3909['name'],'displayName':_0x354e4a,'path':_0x396bb8,'level':_0x4c0d42});}}}}catch{return[];}return _0x384137;}async function getInstalledSkills(){const _0x189991=_0x10707d,_0x3758bc={'sREvL':function(_0xb1b784,_0x4168a8,_0x54f5bc){return _0xb1b784(_0x4168a8,_0x54f5bc);},'LtxFX':function(_0x6c4b9a){return _0x6c4b9a();},'VDjWP':'project','fIZoa':function(_0x4645cf,_0x1a2ad2,_0x24a081){return _0x4645cf(_0x1a2ad2,_0x24a081);},'UHNfQ':_0x189991(0x102)},[_0x52f67c,_0xdb8cf5]=await Promise[_0x189991(0x106)]([_0x3758bc[_0x189991(0xcc)](getSkillsFromDir,_0x3758bc[_0x189991(0xc5)](getProjectSkillsDir),_0x3758bc[_0x189991(0x10b)]),_0x3758bc['fIZoa'](getSkillsFromDir,getUserSkillsDir(),_0x3758bc[_0x189991(0xdf)])]);return{'project':_0x52f67c,'user':_0xdb8cf5};}async function getEnvironments(){const _0x2e4259=_0x10707d,_0x4ae3e9={'gmcKq':function(_0x3937eb,_0x21d3c){return _0x3937eb(_0x21d3c);},'ZpDbL':function(_0x791f0b,_0x200aa9,_0x2a439f){return _0x791f0b(_0x200aa9,_0x2a439f);},'HMNHE':function(_0x871c88){return _0x871c88();},'saxqI':function(_0xee6796){return _0xee6796();}},{envNames:_0x3a5bef,activeEnv:_0x2c5e05}=await _0x4ae3e9[_0x2e4259(0xcf)](getEnvNames),_0x52bc84=_0x4ae3e9['saxqI'](getRangerDir);if(!_0x4ae3e9[_0x2e4259(0x108)](existsSync,_0x52bc84))return{'envs':[],'activeEnv':null};const _0x2efb1b=_0x3a5bef['map'](_0x156322=>{const _0x128dcf=_0x2e4259,_0x7bd33e=_0x4ae3e9['gmcKq'](getEnvDir,_0x156322),_0x30f263=join(_0x7bd33e,_0x128dcf(0x112)),_0x35006d=join(_0x7bd33e,_0x128dcf(0xd6)),_0x2bca2d=_0x4ae3e9['ZpDbL'](join,_0x7bd33e,_0x128dcf(0xce));return{'name':_0x156322,'settingsPath':existsSync(_0x30f263)?_0x30f263:_0x128dcf(0x116),'hasPlaintextAuth':existsSync(_0x35006d),'hasEncryptedAuth':existsSync(_0x2bca2d),'isActive':_0x156322===_0x2c5e05};});return{'envs':_0x2efb1b,'activeEnv':_0x2c5e05};}export async function status(){const _0x50a482=_0x10707d,_0x265d98={'lBwFC':'\x0a📊\x20Ranger\x20Status\x0a','qtvrm':function(_0x58cdc2,_0x1a2486,_0x1a1950){return _0x58cdc2(_0x1a2486,_0x1a1950);},'vqbfG':function(_0x2d8a01,_0x522b87){return _0x2d8a01(_0x522b87);},'JriTy':function(_0x531586,_0x47a9f5){return _0x531586(_0x47a9f5);},'uPLMW':function(_0x3c24f2){return _0x3c24f2();},'cmBsS':function(_0x3addab,_0x5e5f3b){return _0x3addab(_0x5e5f3b);},'WSuWY':function(_0x3019d2,_0x133730){return _0x3019d2(_0x133730);},'WMwwI':function(_0x25c2eb,_0x1dbf1a){return _0x25c2eb===_0x1dbf1a;},'mZhzx':'not_configured','BUPRS':_0x50a482(0xca),'QeNRt':function(_0x4b9dd5,_0xeaae2a){return _0x4b9dd5(_0xeaae2a);},'EcDPI':_0x50a482(0x10f),'iYVCb':_0x50a482(0xc0),'KnXZH':'ranger@trailhead','vaDLo':'\x20\x20Not\x20installed','afSIR':_0x50a482(0xd4),'YGOaB':function(_0x2e9672,_0x214b14){return _0x2e9672>_0x214b14;},'gSPvj':'\x20\x20User-level:','ldASo':function(_0x18b07e,_0x34608b){return _0x18b07e===_0x34608b;},'vQzTQ':_0x50a482(0x109),'sZXsT':_0x50a482(0x107),'gQDgT':function(_0x42c68a,_0x3cc700){return _0x42c68a(_0x3cc700);},'laTLw':function(_0x15ab70,_0x519aee){return _0x15ab70!==_0x519aee;},'ZvGcf':function(_0xe43aea,_0x4b365e,_0x3a67af){return _0xe43aea(_0x4b365e,_0x3a67af);},'LsvoH':function(_0x27cc44,_0x3e31c3){return _0x27cc44(_0x3e31c3);}};console['log'](_0x265d98['lBwFC']);const _0x649062=process['cwd'](),_0x1a4e02=getRangerDir();if(!existsSync(_0x1a4e02)){console['log'](_0x50a482(0x11a)+_0x265d98[_0x50a482(0x11e)](link,_0x649062,bold(_0x265d98[_0x50a482(0x10e)](basename,_0x649062)))),console[_0x50a482(0xbc)](_0x50a482(0xd9)),console['log'](_0x50a482(0xd5));return;}console['log']('Root:\x20'+_0x265d98['qtvrm'](link,_0x649062,_0x265d98[_0x50a482(0xe3)](bold,basename(_0x649062))));const _0x4e158d=_0x265d98[_0x50a482(0xd8)](getCurrentVersion),_0x1fbc7f=getLatestVersion();if(_0x1fbc7f[_0x50a482(0xc6)]&&_0x1fbc7f[_0x50a482(0xc6)]!==_0x4e158d)console['log'](_0x50a482(0xc3)+_0x4e158d+'\x20(latest:\x20'+_0x1fbc7f[_0x50a482(0xc6)]+')'),console['log']('\x20\x20Run:\x20ranger\x20update');else _0x1fbc7f[_0x50a482(0xc6)]?console['log']('Version:\x20'+_0x4e158d+'\x20(up\x20to\x20date)'):console[_0x50a482(0xbc)]('Version:\x20'+_0x4e158d);const _0x5c2dae=await _0x265d98['uPLMW'](getToken);if(_0x5c2dae){const _0x5e16b1=await _0x265d98[_0x50a482(0x111)](getCurrentUser,_0x5c2dae);_0x5e16b1[_0x50a482(0xc1)]?console[_0x50a482(0xbc)](_0x50a482(0xcb)+_0x265d98['WSuWY'](bold,_0x5e16b1['user']['organizationName'])):(console[_0x50a482(0xbc)](_0x50a482(0xf5)),console[_0x50a482(0xbc)](_0x50a482(0xbd)));}else console['log'](_0x50a482(0xee)),console['log'](_0x50a482(0xbd));process[_0x50a482(0xe0)]['DEBUG']&&(console[_0x50a482(0xbc)]('API\x20Environment:\x20'+getCurrentEnvironment()),console['log'](_0x50a482(0x11b)+getApiBaseUrl()));console['log'](_0x50a482(0xdc));const _0x51f0b8=await _0x265d98[_0x50a482(0xd8)](getOpencodePluginStatus);if(_0x265d98['WMwwI'](_0x51f0b8[_0x50a482(0xe8)],'configured'))console[_0x50a482(0xbc)]('\x20\x20'+bold('@ranger-testing/opencode-plugin')+_0x50a482(0x10c)),_0x51f0b8['details']&&console['log']('\x20\x20'+_0x51f0b8['details']);else _0x265d98[_0x50a482(0xd7)](_0x51f0b8['status'],_0x265d98['mZhzx'])?(console['log']('\x20\x20Not\x20configured'),_0x51f0b8['details']&&console['log']('\x20\x20'+_0x51f0b8['details']),console['log'](_0x265d98[_0x50a482(0x110)])):console['log'](_0x50a482(0xe5));console['log'](_0x50a482(0xeb));const _0x23d30f=await _0x265d98[_0x50a482(0x119)](getPluginInfo,_0x50a482(0xe9));if(_0x23d30f){const _0x50a721=_0x23d30f[_0x50a482(0x117)]||_0x265d98['EcDPI'],_0x48564a=_0x23d30f['enabled']?_0x265d98[_0x50a482(0xf4)]:_0x50a482(0x113);console['log']('\x20\x20'+_0x265d98[_0x50a482(0xe3)](bold,_0x265d98['KnXZH'])+':\x20installed\x20('+_0x50a721+',\x20'+_0x48564a+')');}else console[_0x50a482(0xbc)](_0x265d98[_0x50a482(0xef)]),console['log'](_0x265d98['afSIR']);console[_0x50a482(0xbc)](_0x50a482(0xb6));const {project:_0x26ed0d,user:_0x52f2a8}=await getInstalledSkills(),_0x2499fa=_0x26ed0d['filter'](_0x1f642b=>RANGER_MANAGED_SKILLS['includes'](_0x1f642b[_0x50a482(0x101)])),_0xa942c5=_0x52f2a8[_0x50a482(0xbb)](_0x463629=>RANGER_MANAGED_SKILLS['includes'](_0x463629['name'])),_0x5f9199=_0x2499fa['length']+_0xa942c5['length'];if(_0x265d98['WMwwI'](_0x5f9199,0x0))console['log']('No\x20skills\x20installed'),console['log']('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x2499fa['length']>0x0){console[_0x50a482(0xbc)]('\x20\x20Project-level:');for(const _0x15c060 of _0x2499fa){console['log']('\x20\x20\x20\x20'+bold(_0x15c060['displayName'])+':\x20'+_0x265d98['qtvrm'](link,_0x15c060[_0x50a482(0xfa)],_0x265d98[_0x50a482(0xfc)](basename,_0x15c060['path'])));}}if(_0x265d98[_0x50a482(0xf3)](_0xa942c5[_0x50a482(0xbe)],0x0)){console[_0x50a482(0xbc)](_0x265d98[_0x50a482(0xb8)]);for(const _0x35e61b of _0xa942c5){console[_0x50a482(0xbc)](_0x50a482(0xf0)+_0x265d98['vqbfG'](bold,_0x35e61b[_0x50a482(0xdd)])+':\x20'+_0x265d98[_0x50a482(0x11e)](link,_0x35e61b[_0x50a482(0xfa)],_0x265d98[_0x50a482(0x10e)](basename,_0x35e61b['path'])));}}}console[_0x50a482(0xbc)]('\x0a---\x20Profiles\x20---');const {envs:_0xed8008,activeEnv:_0x581f48}=await _0x265d98['uPLMW'](getEnvironments);if(_0x265d98['ldASo'](_0xed8008['length'],0x0))console['log'](_0x50a482(0xc9)),console[_0x50a482(0xbc)](_0x50a482(0xed));else{for(const _0xeda8c2 of _0xed8008){const _0x1c5630=_0xeda8c2[_0x50a482(0xc2)]?'\x20(active)':'',_0x57e858=_0xeda8c2[_0x50a482(0xf1)]?'encrypted':_0xeda8c2[_0x50a482(0xdb)]?_0x265d98[_0x50a482(0xfb)]:_0x265d98[_0x50a482(0xfd)];console['log']('\x20\x20'+_0x265d98[_0x50a482(0xfe)](bold,_0xeda8c2['name'])+_0x1c5630),console['log']('\x20\x20\x20\x20Auth:\x20'+_0x57e858),_0x265d98['laTLw'](_0xeda8c2['settingsPath'],_0x50a482(0x116))&&console[_0x50a482(0xbc)](_0x50a482(0xd1)+_0x265d98[_0x50a482(0x105)](link,_0xeda8c2['settingsPath'],_0x265d98['LsvoH'](basename,_0xeda8c2['settingsPath'])));}!_0x581f48&&(console[_0x50a482(0xbc)]('\x0a\x20\x20No\x20active\x20profile\x20set'),console[_0x50a482(0xbc)]('\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20'+_0xed8008['map'](_0x1fee50=>_0x1fee50[_0x50a482(0x101)])[_0x50a482(0x115)](',\x20')+')'));}console['log']('');}
1
+ const _0x198f8c=_0x27eb;(function(_0x4f25aa,_0x202f8d){const _0x3eb397=_0x27eb,_0xe5bac7=_0x4f25aa();while(!![]){try{const _0x5f0550=-parseInt(_0x3eb397(0x1df))/0x1*(-parseInt(_0x3eb397(0x1b3))/0x2)+-parseInt(_0x3eb397(0x1b4))/0x3*(-parseInt(_0x3eb397(0x1ae))/0x4)+parseInt(_0x3eb397(0x1e1))/0x5+parseInt(_0x3eb397(0x1e9))/0x6+parseInt(_0x3eb397(0x20b))/0x7+-parseInt(_0x3eb397(0x1ee))/0x8*(parseInt(_0x3eb397(0x1c9))/0x9)+-parseInt(_0x3eb397(0x1fc))/0xa;if(_0x5f0550===_0x202f8d)break;else _0xe5bac7['push'](_0xe5bac7['shift']());}catch(_0x1b0857){_0xe5bac7['push'](_0xe5bac7['shift']());}}}(_0x5771,0x5229a));function _0x5771(){const _0x48d478=['ignore','ipfmG','faxsd','success','JIARY','parse','grRsr','not_installed','(not\x20found)','DtPZH','18waXvjP','eomYB','\x20\x20\x20\x20Auth:\x20','Version:\x20','@ranger-testing/opencode-plugin','uvYyb','LwTDu','\x20plugin(s)\x20configured','fmzmt','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','Root:\x20','\x0a📊\x20Ranger\x20Status\x0a','organizationName','\x1b[1m','displayName','name','ElUfc','configured','match','details','tatvh','stdout','285385rUWMiS','bmgIp','1285065weqsNv','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','plaintext','ptdNW','\x1b]8;;\x07','vrBdB','debug','hnPtk','1082520fXQbmO','isArray','nammQ','gkFrS','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','1709032UwkGtQ','log','\x20\x20Not\x20installed','wmuTO','No\x20skills\x20installed','nSdrf','close','qUILt','Ruhki','ranger@trailhead','\x20(latest:\x20','pPlDX','duDNU','NskpG','6590800NQxGQE','aSHlJ','wNpCT','wgOwL','\x0a\x20\x20No\x20active\x20profile\x20set','No\x20profiles\x20configured',':\x20configured','iDdqj','config','string','data','iIsjy','wDreH','not_configured','API\x20Token:\x20✗\x20Not\x20found','2074716NyjiBs','elSfI','path','\x20\x20User-level:','pipe','\x0a---\x20Profiles\x20---','\x20\x20\x20\x20','ylJsV','enabled','\x1b[0m','filter','version','plugin','hasPlaintextAuth','OEGnz','GBfwh','kFgCP','161468iNRNkr','length','settings.json','opencode-plugin','settingsPath','2zTErMy','30pwXejS','sLVTj','isActive','jroNs','includes','status','jXVuH','opencode','auth.json','iZyWe','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20'];_0x5771=function(){return _0x48d478;};return _0x5771();}import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';import{getCurrentVersion,getLatestVersion}from'./utils/version.js';import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';import{getRangerDir}from'./utils/rangerRoot.js';import{getEnvDir}from'./utils/settings.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';function _0x27eb(_0x5f3449,_0x351ee6){_0x5f3449=_0x5f3449-0x1a5;const _0x577111=_0x5771();let _0x27eb39=_0x577111[_0x5f3449];return _0x27eb39;}const bold=_0x551deb=>_0x198f8c(0x1d6)+_0x551deb+_0x198f8c(0x1a6),link=(_0x3f4a77,_0x5842ec)=>'\x1b]8;;file://'+_0x3f4a77+'\x07'+(_0x5842ec||_0x3f4a77)+_0x198f8c(0x1e5);async function getOpencodePluginStatus(){const _0x4f5834=_0x198f8c,_0x5a58de={'RECHK':_0x4f5834(0x1c6),'GBfwh':function(_0xee877b,_0x3d5c9c){return _0xee877b(_0x3d5c9c);},'wmuTO':'not_configured','HYAZr':_0x4f5834(0x205),'jroNs':_0x4f5834(0x1b1),'elSfI':_0x4f5834(0x1bb),'ozulb':_0x4f5834(0x1e7),'SkxRG':_0x4f5834(0x1bf),'wNpCT':_0x4f5834(0x20f)};return new Promise(_0x85ee39=>{const _0x1a71f1=_0x4f5834,_0x175645={'FTrqv':_0x5a58de['HYAZr'],'iDdqj':_0x5a58de[_0x1a71f1(0x1b7)]},_0x232152=spawn(_0x5a58de[_0x1a71f1(0x20c)],[_0x5a58de['ozulb'],_0x1a71f1(0x204)],{'stdio':[_0x5a58de['SkxRG'],_0x5a58de[_0x1a71f1(0x1fe)],_0x1a71f1(0x20f)]});let _0x114fd9='';_0x232152[_0x1a71f1(0x1de)]?.['on'](_0x1a71f1(0x206),_0x19430c=>{_0x114fd9+=_0x19430c['toString']();}),_0x232152['stderr']?.['on'](_0x1a71f1(0x206),_0x226be7=>{_0x114fd9+=_0x226be7['toString']();}),_0x232152['on']('error',()=>{_0x85ee39({'status':'not_installed'});}),_0x232152['on'](_0x1a71f1(0x1f4),_0x4acb5d=>{const _0x4915ab=_0x1a71f1;if(_0x4acb5d!==0x0){_0x85ee39({'status':_0x5a58de['RECHK']});return;}const _0x9b10a2=_0x114fd9['trim']();let _0x337018=null;if(_0x9b10a2)try{_0x337018=JSON['parse'](_0x9b10a2);}catch{const _0x16353f=_0x9b10a2[_0x4915ab(0x1db)](/\{[\s\S]*\}$/);if(_0x16353f)try{_0x337018=JSON[_0x4915ab(0x1c4)](_0x16353f[0x0]);}catch{_0x337018=null;}}const _0x210dfb=Array[_0x4915ab(0x1ea)](_0x337018?.[_0x4915ab(0x1a9)])?_0x337018?.['plugin']:[],_0x1f7315=_0x210dfb['some'](_0x2177b7=>{const _0x51eeb8=_0x4915ab;if(typeof _0x2177b7!==_0x175645['FTrqv'])return![];return _0x2177b7[_0x51eeb8(0x1b8)]('@ranger-testing/opencode-plugin')||_0x2177b7['includes'](_0x175645[_0x51eeb8(0x203)]);});if(_0x1f7315){_0x85ee39({'status':_0x4915ab(0x1da),'details':_0x210dfb['length']>0x0?_0x210dfb['length']+_0x4915ab(0x1d0):undefined});return;}if(_0x210dfb['length']>0x0){_0x5a58de['GBfwh'](_0x85ee39,{'status':_0x5a58de[_0x4915ab(0x1f1)],'details':_0x210dfb[_0x4915ab(0x1af)]+_0x4915ab(0x1d0)});return;}_0x5a58de[_0x4915ab(0x1ac)](_0x85ee39,{'status':_0x4915ab(0x209)});});});}async function getSkillsFromDir(_0x14e0cc,_0x537817){const _0x4893dc=_0x198f8c,_0x435897={'gkFrS':function(_0x56069b,_0x19f758,_0x1100b3){return _0x56069b(_0x19f758,_0x1100b3);},'MjNEj':function(_0x42dbd0,_0x34af4c,_0x43ef51,_0x3b76ab){return _0x42dbd0(_0x34af4c,_0x43ef51,_0x3b76ab);},'NskpG':'SKILL.md','Rqfuq':function(_0x520a4a,_0x5c32d7){return _0x520a4a(_0x5c32d7);},'eomYB':'utf-8'};if(!existsSync(_0x14e0cc))return[];const _0x491009=[];try{const _0x442eb7=await _0x435897[_0x4893dc(0x1ec)](readdir,_0x14e0cc,{'withFileTypes':!![]});for(const _0x456e6d of _0x442eb7){if(_0x456e6d['isDirectory']()){const _0x3dec3d=_0x435897['MjNEj'](join,_0x14e0cc,_0x456e6d[_0x4893dc(0x1d8)],_0x435897[_0x4893dc(0x1fb)]);if(_0x435897['Rqfuq'](existsSync,_0x3dec3d)){let _0x38dc6a=_0x456e6d[_0x4893dc(0x1d8)];try{const _0x4f0ed0=await _0x435897['gkFrS'](readFile,_0x3dec3d,_0x435897[_0x4893dc(0x1ca)]),_0x55614f=_0x4f0ed0['match'](/name:\s*(.+)/);_0x55614f&&(_0x38dc6a=_0x55614f[0x1]['trim']());}catch{}_0x491009['push']({'name':_0x456e6d['name'],'displayName':_0x38dc6a,'path':_0x3dec3d,'level':_0x537817});}}}}catch{return[];}return _0x491009;}async function getInstalledSkills(){const _0x5f058b=_0x198f8c,_0x17a956={'hnPtk':'project','nammQ':function(_0x3f1e43,_0x4c0eb0,_0x325547){return _0x3f1e43(_0x4c0eb0,_0x325547);}},[_0x3e0df9,_0x3f5134]=await Promise['all']([getSkillsFromDir(getProjectSkillsDir(),_0x17a956[_0x5f058b(0x1e8)]),_0x17a956[_0x5f058b(0x1eb)](getSkillsFromDir,getUserSkillsDir(),'user')]);return{'project':_0x3e0df9,'user':_0x3f5134};}async function getEnvironments(){const _0xca0415=_0x198f8c,_0x53bbc7={'uvYyb':function(_0x3b55fe,_0x341932){return _0x3b55fe(_0x341932);},'KMmlU':function(_0x1f7469,_0x449e88,_0x3be6cc){return _0x1f7469(_0x449e88,_0x3be6cc);},'Ruhki':_0xca0415(0x1bc),'OEGnz':'auth.json.enc','tatvh':_0xca0415(0x1c7),'iZyWe':function(_0xaf63a8,_0x36130c){return _0xaf63a8(_0x36130c);},'SxsoW':function(_0x1b1660,_0x5376d9){return _0x1b1660(_0x5376d9);},'aSHlJ':function(_0x893b15,_0x17a0b2){return _0x893b15===_0x17a0b2;},'vrBdB':function(_0x42e3f6){return _0x42e3f6();}},{envNames:_0xc09d65,activeEnv:_0x29c312}=await getEnvNames(),_0x49aead=_0x53bbc7[_0xca0415(0x1e6)](getRangerDir);if(!existsSync(_0x49aead))return{'envs':[],'activeEnv':null};const _0x515888=_0xc09d65['map'](_0x4e3647=>{const _0x356791=_0xca0415,_0x2a4814=_0x53bbc7[_0x356791(0x1ce)](getEnvDir,_0x4e3647),_0x469ab1=join(_0x2a4814,_0x356791(0x1b0)),_0x4492e0=_0x53bbc7['KMmlU'](join,_0x2a4814,_0x53bbc7[_0x356791(0x1f6)]),_0x41549d=_0x53bbc7['KMmlU'](join,_0x2a4814,_0x53bbc7[_0x356791(0x1ab)]);return{'name':_0x4e3647,'settingsPath':existsSync(_0x469ab1)?_0x469ab1:_0x53bbc7[_0x356791(0x1dd)],'hasPlaintextAuth':_0x53bbc7[_0x356791(0x1bd)](existsSync,_0x4492e0),'hasEncryptedAuth':_0x53bbc7['SxsoW'](existsSync,_0x41549d),'isActive':_0x53bbc7[_0x356791(0x1fd)](_0x4e3647,_0x29c312)};});return{'envs':_0x515888,'activeEnv':_0x29c312};}export async function status(){const _0x11a4ee=_0x198f8c,_0x47cba5={'duDNU':_0x11a4ee(0x1d4),'yKmCO':function(_0x121c26){return _0x121c26();},'sLVTj':function(_0x110e0c,_0xbf644a,_0x43db97){return _0x110e0c(_0xbf644a,_0x43db97);},'jXVuH':function(_0x3c5016,_0x1aeb82){return _0x3c5016(_0x1aeb82);},'kFgCP':function(_0x4c9e1b,_0x5241a3){return _0x4c9e1b(_0x5241a3);},'faxsd':function(_0x4b08de){return _0x4b08de();},'ZhQUc':function(_0xd0db4,_0x2bcd4c){return _0xd0db4(_0x2bcd4c);},'POhDS':'\x0a---\x20OpenCode\x20Plugin\x20---','ElUfc':'configured','sbcZJ':_0x11a4ee(0x1cd),'wDreH':function(_0x2cd178,_0x26fa97){return _0x2cd178===_0x26fa97;},'grRsr':'not_configured','bqAwX':'\x20\x20Not\x20configured','fiHBw':'\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','LwTDu':'disabled','fmzmt':_0x11a4ee(0x1f7),'ipfmG':_0x11a4ee(0x1e2),'wgOwL':'\x0a---\x20Skills\x20---','JIARY':function(_0x4d1df3){return _0x4d1df3();},'pPlDX':function(_0x4ea9d8,_0x555d93){return _0x4ea9d8+_0x555d93;},'ptdNW':function(_0x1dc08a,_0x13a142){return _0x1dc08a===_0x13a142;},'iIsjy':'\x20\x20Project-level:','nSdrf':_0x11a4ee(0x20e),'ygCyb':function(_0x3f008f,_0x17eed5){return _0x3f008f(_0x17eed5);},'bmgIp':_0x11a4ee(0x210),'jEdIc':function(_0x57451c,_0x687692){return _0x57451c===_0x687692;},'ylJsV':'\x20(active)','qUILt':'encrypted','DtPZH':'(not\x20found)','NLGhS':function(_0x5e2072,_0x30d574){return _0x5e2072(_0x30d574);}};console['log'](_0x47cba5[_0x11a4ee(0x1fa)]);const _0x2fdfb2=process['cwd'](),_0x1d25a3=_0x47cba5['yKmCO'](getRangerDir);if(!existsSync(_0x1d25a3)){console['log']('Root:\x20'+_0x47cba5[_0x11a4ee(0x1b5)](link,_0x2fdfb2,_0x47cba5['jXVuH'](bold,basename(_0x2fdfb2)))),console[_0x11a4ee(0x1ef)]('\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.'),console['log'](_0x11a4ee(0x1d2));return;}console[_0x11a4ee(0x1ef)](_0x11a4ee(0x1d3)+_0x47cba5['sLVTj'](link,_0x2fdfb2,_0x47cba5['kFgCP'](bold,_0x47cba5[_0x11a4ee(0x1ad)](basename,_0x2fdfb2))));const _0x24aa75=getCurrentVersion(),_0x2aa840=getLatestVersion();if(_0x2aa840['version']&&_0x2aa840[_0x11a4ee(0x1a8)]!==_0x24aa75)console[_0x11a4ee(0x1ef)](_0x11a4ee(0x1cc)+_0x24aa75+_0x11a4ee(0x1f8)+_0x2aa840['version']+')'),console[_0x11a4ee(0x1ef)]('\x20\x20Run:\x20ranger\x20update');else _0x2aa840['version']?console[_0x11a4ee(0x1ef)]('Version:\x20'+_0x24aa75+'\x20(up\x20to\x20date)'):console[_0x11a4ee(0x1ef)]('Version:\x20'+_0x24aa75);const _0x131036=await _0x47cba5[_0x11a4ee(0x1c1)](getToken);if(_0x131036){const _0x57e393=await _0x47cba5['ZhQUc'](getCurrentUser,_0x131036);_0x57e393[_0x11a4ee(0x1c2)]?console[_0x11a4ee(0x1ef)]('Organization:\x20'+bold(_0x57e393['user'][_0x11a4ee(0x1d5)])):(console['log']('API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired'),console[_0x11a4ee(0x1ef)]('\x20\x20Run:\x20ranger\x20setup\x20[token]'));}else console[_0x11a4ee(0x1ef)](_0x11a4ee(0x20a)),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]');process['env']['DEBUG']&&(console[_0x11a4ee(0x1ef)]('API\x20Environment:\x20'+getCurrentEnvironment()),console[_0x11a4ee(0x1ef)]('API\x20URL:\x20'+getApiBaseUrl()));console['log'](_0x47cba5['POhDS']);const _0x2d08f3=await getOpencodePluginStatus();if(_0x2d08f3['status']===_0x47cba5[_0x11a4ee(0x1d9)])console['log']('\x20\x20'+bold(_0x47cba5['sbcZJ'])+_0x11a4ee(0x202)),_0x2d08f3['details']&&console['log']('\x20\x20'+_0x2d08f3[_0x11a4ee(0x1dc)]);else _0x47cba5[_0x11a4ee(0x208)](_0x2d08f3[_0x11a4ee(0x1b9)],_0x47cba5[_0x11a4ee(0x1c5)])?(console['log'](_0x47cba5['bqAwX']),_0x2d08f3[_0x11a4ee(0x1dc)]&&console[_0x11a4ee(0x1ef)]('\x20\x20'+_0x2d08f3['details']),console[_0x11a4ee(0x1ef)]('\x20\x20Run:\x20ranger\x20setup\x20--opencode')):console['log'](_0x47cba5['fiHBw']);console[_0x11a4ee(0x1ef)]('\x0a---\x20Claude\x20Code\x20Plugin\x20---');const _0x4abd8d=await getPluginInfo('ranger@trailhead');if(_0x4abd8d){const _0x46693d=_0x4abd8d['scope']||'unknown',_0x43d6d0=_0x4abd8d[_0x11a4ee(0x1a5)]?_0x11a4ee(0x1a5):_0x47cba5[_0x11a4ee(0x1cf)];console[_0x11a4ee(0x1ef)]('\x20\x20'+bold(_0x47cba5[_0x11a4ee(0x1d1)])+':\x20installed\x20('+_0x46693d+',\x20'+_0x43d6d0+')');}else console[_0x11a4ee(0x1ef)](_0x11a4ee(0x1f0)),console[_0x11a4ee(0x1ef)](_0x47cba5[_0x11a4ee(0x1c0)]);console['log'](_0x47cba5[_0x11a4ee(0x1ff)]);const {project:_0x2487e2,user:_0x3fa8b8}=await _0x47cba5[_0x11a4ee(0x1c3)](getInstalledSkills),_0x51f342=_0x2487e2[_0x11a4ee(0x1a7)](_0x43ee77=>RANGER_MANAGED_SKILLS['includes'](_0x43ee77['name'])),_0x4e3271=_0x3fa8b8[_0x11a4ee(0x1a7)](_0xe36342=>RANGER_MANAGED_SKILLS['includes'](_0xe36342['name'])),_0x1c54d1=_0x47cba5[_0x11a4ee(0x1f9)](_0x51f342['length'],_0x4e3271[_0x11a4ee(0x1af)]);if(_0x47cba5[_0x11a4ee(0x1e4)](_0x1c54d1,0x0))console[_0x11a4ee(0x1ef)](_0x11a4ee(0x1f2)),console[_0x11a4ee(0x1ef)]('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x51f342['length']>0x0){console[_0x11a4ee(0x1ef)](_0x47cba5[_0x11a4ee(0x207)]);for(const _0x426e59 of _0x51f342){console[_0x11a4ee(0x1ef)](_0x11a4ee(0x211)+bold(_0x426e59['displayName'])+':\x20'+_0x47cba5['sLVTj'](link,_0x426e59['path'],_0x47cba5[_0x11a4ee(0x1ba)](basename,_0x426e59[_0x11a4ee(0x20d)])));}}if(_0x4e3271[_0x11a4ee(0x1af)]>0x0){console[_0x11a4ee(0x1ef)](_0x47cba5[_0x11a4ee(0x1f3)]);for(const _0x20a9b3 of _0x4e3271){console['log']('\x20\x20\x20\x20'+_0x47cba5['ygCyb'](bold,_0x20a9b3[_0x11a4ee(0x1d7)])+':\x20'+link(_0x20a9b3[_0x11a4ee(0x20d)],_0x47cba5['ygCyb'](basename,_0x20a9b3['path'])));}}}console[_0x11a4ee(0x1ef)](_0x47cba5[_0x11a4ee(0x1e0)]);const {envs:_0x34b60f,activeEnv:_0x4c0cef}=await getEnvironments();if(_0x47cba5['jEdIc'](_0x34b60f[_0x11a4ee(0x1af)],0x0))console[_0x11a4ee(0x1ef)](_0x11a4ee(0x201)),console[_0x11a4ee(0x1ef)](_0x11a4ee(0x1ed));else{for(const _0x7659ae of _0x34b60f){const _0x3f2616=_0x7659ae[_0x11a4ee(0x1b6)]?_0x47cba5[_0x11a4ee(0x212)]:'',_0x47f62c=_0x7659ae['hasEncryptedAuth']?_0x47cba5[_0x11a4ee(0x1f5)]:_0x7659ae[_0x11a4ee(0x1aa)]?_0x11a4ee(0x1e3):'none';console['log']('\x20\x20'+_0x47cba5[_0x11a4ee(0x1ba)](bold,_0x7659ae[_0x11a4ee(0x1d8)])+_0x3f2616),console['log'](_0x11a4ee(0x1cb)+_0x47f62c),_0x7659ae[_0x11a4ee(0x1b2)]!==_0x47cba5[_0x11a4ee(0x1c8)]&&console[_0x11a4ee(0x1ef)]('\x20\x20\x20\x20Settings:\x20'+link(_0x7659ae[_0x11a4ee(0x1b2)],_0x47cba5['NLGhS'](basename,_0x7659ae['settingsPath'])));}!_0x4c0cef&&(console['log'](_0x11a4ee(0x200)),console['log'](_0x11a4ee(0x1be)+_0x34b60f['map'](_0x505cec=>_0x505cec[_0x11a4ee(0x1d8)])['join'](',\x20')+')'));}console[_0x11a4ee(0x1ef)]('');}