@ranger-testing/ranger-cli 2.4.1 → 2.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/build/cli.js +1 -1
  2. package/build/commands/addEnv.js +1 -1
  3. package/build/commands/authEncrypt.js +1 -1
  4. package/build/commands/clean.js +1 -1
  5. package/build/commands/config.js +1 -1
  6. package/build/commands/env.js +1 -1
  7. package/build/commands/feature.js +1 -1
  8. package/build/commands/hook.js +1 -1
  9. package/build/commands/hooks/autoPrompt.js +1 -1
  10. package/build/commands/hooks/disable.js +1 -1
  11. package/build/commands/hooks/enable.js +1 -1
  12. package/build/commands/hooks/exitPlanMode.js +1 -1
  13. package/build/commands/hooks/index.js +1 -1
  14. package/build/commands/hooks/output.js +1 -1
  15. package/build/commands/hooks/planReminder.js +1 -1
  16. package/build/commands/hooks/planStart.js +1 -1
  17. package/build/commands/hooks/postEdit.js +1 -1
  18. package/build/commands/hooks/preCompact.js +1 -1
  19. package/build/commands/hooks/sessionEnd.js +1 -1
  20. package/build/commands/hooks/sessionStart.js +1 -1
  21. package/build/commands/hooks/stopHook.js +1 -1
  22. package/build/commands/index.js +1 -1
  23. package/build/commands/login.js +1 -1
  24. package/build/commands/setup/claude.js +1 -1
  25. package/build/commands/setup/opencode.js +1 -1
  26. package/build/commands/setupCi.js +1 -1
  27. package/build/commands/skillup.js +1 -1
  28. package/build/commands/start.js +1 -1
  29. package/build/commands/status.js +1 -1
  30. package/build/commands/update.js +1 -1
  31. package/build/commands/updateEnv.js +1 -1
  32. package/build/commands/useEnv.js +1 -1
  33. package/build/commands/utils/activeProfile.js +1 -1
  34. package/build/commands/utils/agentEnv.js +1 -1
  35. package/build/commands/utils/browserSessionsApi.js +1 -1
  36. package/build/commands/utils/claudeConfig.js +1 -1
  37. package/build/commands/utils/claudePlugin.js +1 -1
  38. package/build/commands/utils/crypto.js +1 -1
  39. package/build/commands/utils/desirePathLog.js +1 -1
  40. package/build/commands/utils/deviceAuth.js +1 -1
  41. package/build/commands/utils/environment.js +1 -1
  42. package/build/commands/utils/featureApi.js +1 -1
  43. package/build/commands/utils/featureReportGenerator.js +1 -1
  44. package/build/commands/utils/fixWebmDuration.js +1 -1
  45. package/build/commands/utils/git.js +1 -1
  46. package/build/commands/utils/keychain.js +1 -1
  47. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  48. package/build/commands/utils/mcpImageBase64.js +1 -1
  49. package/build/commands/utils/model.js +1 -1
  50. package/build/commands/utils/opencodeConfig.js +1 -1
  51. package/build/commands/utils/playwrightCli.js +1 -1
  52. package/build/commands/utils/profileMessages.js +1 -1
  53. package/build/commands/utils/profileSetupBanner.js +1 -1
  54. package/build/commands/utils/rangerConfig.js +1 -1
  55. package/build/commands/utils/rangerRoot.js +1 -1
  56. package/build/commands/utils/reportGenerator.js +1 -1
  57. package/build/commands/utils/retry.js +1 -1
  58. package/build/commands/utils/sessionCache.js +1 -1
  59. package/build/commands/utils/settings.js +1 -1
  60. package/build/commands/utils/skillContent.js +1 -1
  61. package/build/commands/utils/skills.js +1 -1
  62. package/build/commands/utils/stitchWebmFiles.js +1 -1
  63. package/build/commands/utils/telemetry.js +1 -1
  64. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  65. package/build/commands/utils/userApi.js +1 -1
  66. package/build/commands/utils/version.js +1 -1
  67. package/build/commands/verifyFeature.js +1 -1
  68. package/build/commands/verifyFeatureCli.js +1 -1
  69. package/build/commands/verifyInBrowser.js +1 -1
  70. package/package.json +1 -1
@@ -1 +1 @@
1
- (function(_0x1c29df,_0x235345){const _0xd775a7=_0x5009,_0x13b8c1=_0x1c29df();while(!![]){try{const _0x119494=-parseInt(_0xd775a7(0xa5))/0x1*(parseInt(_0xd775a7(0xa3))/0x2)+parseInt(_0xd775a7(0xab))/0x3*(parseInt(_0xd775a7(0x9a))/0x4)+parseInt(_0xd775a7(0xa6))/0x5+parseInt(_0xd775a7(0xac))/0x6+parseInt(_0xd775a7(0xa2))/0x7+parseInt(_0xd775a7(0xa7))/0x8+-parseInt(_0xd775a7(0x99))/0x9;if(_0x119494===_0x235345)break;else _0x13b8c1['push'](_0x13b8c1['shift']());}catch(_0x3313da){_0x13b8c1['push'](_0x13b8c1['shift']());}}}(_0xb3f2,0x910d5));function _0x5009(_0x591a8f,_0x55f538){_0x591a8f=_0x591a8f-0x99;const _0xb3f2b8=_0xb3f2();let _0x500973=_0xb3f2b8[_0x591a8f];return _0x500973;}import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';function _0xb3f2(){const _0x3974a9=['xGGMy','663153NwPOjY','5880594nCZawk','export\x20CLAUDE_SESSION_ID=\x22','17281620OxiGkW','4lAeMDM','DvQSD','log','CLAUDE_ENV_FILE','master','LUdqL','rxale','parse','6080585AyuxQm','10JExPlM','stringify','29762SoMVoP','2754290DyKkPM','339680fzRSdS','session_id','trackCommandEnd'];_0xb3f2=function(){return _0x3974a9;};return _0xb3f2();}const RANGER_AUTO_ENABLED_PROMPT='=================================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🚨\x20RANGER\x20IS\x20ACTIVE\x20🚨\x0a=================================================================\x0a\x0aThis\x20session\x20has\x20Ranger\x20ENABLED.\x20Before\x20doing\x20ANYTHING\x20else:\x0a\x0a1.\x20**READ\x20the\x20/ranger\x20skill\x20FIRST**\x20-\x20Run\x20the\x20skill\x20to\x20understand\x20the\x20required\x20workflow\x20for\x20UI\x20features\x0a\x0a2.\x20**Check\x20for\x20existing\x20feature\x20reviews**\x20-\x20Run\x20`ranger\x20list`\x20to\x20see\x20if\x20there\x27s\x20an\x20in-progress\x20feature\x20review\x20to\x20resume\x0a\x0a3.\x20**For\x20ANY\x20UI\x20work**:\x20You\x20MUST\x20either:\x0a\x20\x20\x20-\x20Resume\x20an\x20existing\x20feature\x20review:\x20`ranger\x20resume\x20<id>`\x0a\x20\x20\x20-\x20Create\x20a\x20new\x20feature\x20review:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario>\x22`\x0a\x0a4.\x20**If\x20resuming\x20a\x20feature\x20review\x20with\x20reviewer\x20comments**:\x20Run\x20`ranger\x20get-review`\x20to\x20see\x20what\x20reviewers\x20want\x20fixed\x20before\x20making\x20code\x20changes\x0a\x0a=================================================================';export async function sessionStart(_0x2cdda6){const _0x4d9104=_0x5009,_0x1e207d={'rxale':function(_0x2768a0,_0x91c118){return _0x2768a0||_0x91c118;},'xGGMy':function(_0x4d0046,_0x4e5082){return _0x4d0046(_0x4e5082);},'mpGSj':function(_0x171560,_0x3aeab2){return _0x171560(_0x3aeab2);},'KwNez':'hook:session-start','GBdjr':'success','DvQSD':function(_0x2d28a9,_0x4af8f9){return _0x2d28a9!==_0x4af8f9;},'LUdqL':_0x4d9104(0x9e),'ejOkl':function(_0x33a3d4,_0x260b79){return _0x33a3d4+_0x260b79;}};let _0x45caf6=_0x1e207d[_0x4d9104(0xa0)](_0x2cdda6,''),_0x1af103;if(!_0x2cdda6){let _0x51449e='';for await(const _0x5bd04a of process['stdin']){_0x51449e+=_0x5bd04a;}try{const _0x3adf4e=JSON[_0x4d9104(0xa1)](_0x51449e);_0x45caf6=_0x3adf4e[_0x4d9104(0xa8)]||'',_0x1af103=_0x3adf4e['source'];}catch{}const _0x23ba64=process['env'][_0x4d9104(0x9d)];if(_0x23ba64&&_0x45caf6)try{await appendFile(_0x23ba64,_0x4d9104(0xad)+_0x45caf6+'\x22\x0a');}catch{}}if(_0x45caf6){_0x1e207d['xGGMy'](shouldAutoEnableAfterClear,_0x1af103)&&_0x1e207d[_0x4d9104(0xaa)](autoEnableAfterClear,_0x45caf6);initBranchTracking(_0x45caf6);const _0x134658=_0x1e207d['mpGSj'](isSessionEnabled,_0x45caf6);try{const _0x4ef27f=_0x1e207d[_0x4d9104(0xaa)](createTelemetryCollector,_0x1e207d['KwNez']);await _0x4ef27f['trackCommandStart']({'sessionId':_0x45caf6,'hooksEnabled':_0x134658}),await _0x4ef27f[_0x4d9104(0xa9)](_0x1e207d['GBdjr']);}catch{}if(_0x134658){const _0x21dde5=getCurrentBranch(),_0x4dbbab=_0x21dde5&&_0x21dde5!=='main'&&_0x1e207d[_0x4d9104(0x9b)](_0x21dde5,_0x1e207d[_0x4d9104(0x9f)])?'\x20(Branch:\x20'+_0x21dde5+')':'',_0x57976a={'hookSpecificOutput':{'hookEventName':'SessionStart','additionalContext':_0x1e207d['ejOkl'](RANGER_AUTO_ENABLED_PROMPT,_0x4dbbab)}};console[_0x4d9104(0x9c)](JSON[_0x4d9104(0xa4)](_0x57976a));}}}
1
+ const _0x181ed0=_0x53e2;function _0x53e2(_0x3c34d9,_0x101419){_0x3c34d9=_0x3c34d9-0x107;const _0x595789=_0x5957();let _0x53e267=_0x595789[_0x3c34d9];return _0x53e267;}(function(_0x23bba4,_0xdda322){const _0x522683=_0x53e2,_0x5f359a=_0x23bba4();while(!![]){try{const _0x2747bc=-parseInt(_0x522683(0x10c))/0x1*(parseInt(_0x522683(0x120))/0x2)+parseInt(_0x522683(0x11f))/0x3*(-parseInt(_0x522683(0x110))/0x4)+parseInt(_0x522683(0x115))/0x5*(parseInt(_0x522683(0x11b))/0x6)+parseInt(_0x522683(0x114))/0x7+-parseInt(_0x522683(0x107))/0x8*(parseInt(_0x522683(0x11e))/0x9)+-parseInt(_0x522683(0x125))/0xa+parseInt(_0x522683(0x10d))/0xb*(parseInt(_0x522683(0x109))/0xc);if(_0x2747bc===_0xdda322)break;else _0x5f359a['push'](_0x5f359a['shift']());}catch(_0xabd5b5){_0x5f359a['push'](_0x5f359a['shift']());}}}(_0x5957,0xbc0e5));import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';function _0x5957(){const _0x300b4e=['4413volgYq','11LBFrrv','MbFkc','=================================================================\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=================================================================','1933616QMoRPa','jGPRC','CLAUDE_ENV_FILE','env','7179319CZkAIb','35LdeVGz','log','WjCPv','\x20(Branch:\x20','session_id','SessionStart','973374YFbbaq','master','stdin','9CVpdBr','3riHSuK','238ZASccG','vxkyC','hook:session-start','source','oexer','13709370qiphOO','eYSDI','11637008jQxGok','export\x20CLAUDE_SESSION_ID=\x22','29318052TQVIhP','success','stringify'];_0x5957=function(){return _0x300b4e;};return _0x5957();}import{createTelemetryCollector}from'../utils/telemetry.js';const RANGER_AUTO_ENABLED_PROMPT=_0x181ed0(0x10f);export async function sessionStart(_0x1bfada){const _0x4c3eab=_0x181ed0,_0x406bfc={'ofBny':function(_0xde992,_0xe6a95d){return _0xde992||_0xe6a95d;},'hvRpl':_0x4c3eab(0x123),'oexer':function(_0x5ad302,_0x547137){return _0x5ad302&&_0x547137;},'WjCPv':function(_0x2e8066,_0xf577e1,_0x4cb4f8){return _0x2e8066(_0xf577e1,_0x4cb4f8);},'eYSDI':function(_0x45341b,_0x23c3de){return _0x45341b(_0x23c3de);},'PAykt':function(_0x327444,_0x16ccaf){return _0x327444(_0x16ccaf);},'MbFkc':_0x4c3eab(0x122),'jGPRC':function(_0x117c82,_0x72f9be){return _0x117c82!==_0x72f9be;},'vxkyC':_0x4c3eab(0x11c),'tWiUy':_0x4c3eab(0x11a),'UuedV':function(_0x5d0868,_0x3f8307){return _0x5d0868+_0x3f8307;}};let _0x2cbf70=_0x406bfc['ofBny'](_0x1bfada,''),_0x5a2db0;if(!_0x1bfada){let _0x352f53='';for await(const _0x43b0de of process[_0x4c3eab(0x11d)]){_0x352f53+=_0x43b0de;}try{const _0x393919=JSON['parse'](_0x352f53);_0x2cbf70=_0x393919[_0x4c3eab(0x119)]||'',_0x5a2db0=_0x393919[_0x406bfc['hvRpl']];}catch{}const _0xcf17ec=process[_0x4c3eab(0x113)][_0x4c3eab(0x112)];if(_0x406bfc[_0x4c3eab(0x124)](_0xcf17ec,_0x2cbf70))try{await _0x406bfc[_0x4c3eab(0x117)](appendFile,_0xcf17ec,_0x4c3eab(0x108)+_0x2cbf70+'\x22\x0a');}catch{}}if(_0x2cbf70){_0x406bfc[_0x4c3eab(0x126)](shouldAutoEnableAfterClear,_0x5a2db0)&&autoEnableAfterClear(_0x2cbf70);_0x406bfc['PAykt'](initBranchTracking,_0x2cbf70);const _0x309dc4=isSessionEnabled(_0x2cbf70);try{const _0x31667b=createTelemetryCollector(_0x406bfc[_0x4c3eab(0x10e)]);await _0x31667b['trackCommandStart']({'sessionId':_0x2cbf70,'hooksEnabled':_0x309dc4}),await _0x31667b['trackCommandEnd'](_0x4c3eab(0x10a));}catch{}if(_0x309dc4){const _0x129db3=getCurrentBranch(),_0x5d96d9=_0x129db3&&_0x406bfc[_0x4c3eab(0x111)](_0x129db3,'main')&&_0x406bfc[_0x4c3eab(0x111)](_0x129db3,_0x406bfc[_0x4c3eab(0x121)])?_0x4c3eab(0x118)+_0x129db3+')':'',_0x3ef90a={'hookSpecificOutput':{'hookEventName':_0x406bfc['tWiUy'],'additionalContext':_0x406bfc['UuedV'](RANGER_AUTO_ENABLED_PROMPT,_0x5d96d9)}};console[_0x4c3eab(0x116)](JSON[_0x4c3eab(0x10b)](_0x3ef90a));}}}
@@ -1 +1 @@
1
- (function(_0x383564,_0x36fe81){const _0x3f6de4=_0x9af1,_0x22a766=_0x383564();while(!![]){try{const _0xf1b38b=-parseInt(_0x3f6de4(0x1f5))/0x1*(-parseInt(_0x3f6de4(0x1f6))/0x2)+-parseInt(_0x3f6de4(0x1f0))/0x3+-parseInt(_0x3f6de4(0x204))/0x4+-parseInt(_0x3f6de4(0x201))/0x5*(-parseInt(_0x3f6de4(0x1fe))/0x6)+parseInt(_0x3f6de4(0x1f1))/0x7+parseInt(_0x3f6de4(0x200))/0x8*(parseInt(_0x3f6de4(0x1ff))/0x9)+parseInt(_0x3f6de4(0x1f2))/0xa*(-parseInt(_0x3f6de4(0x1f3))/0xb);if(_0xf1b38b===_0x36fe81)break;else _0x22a766['push'](_0x22a766['shift']());}catch(_0x1a8b3d){_0x22a766['push'](_0x22a766['shift']());}}}(_0x5e27,0x97ec3));function _0x9af1(_0x3f5682,_0x5191cc){_0x3f5682=_0x3f5682-0x1ed;const _0x5e27bb=_0x5e27();let _0x9af114=_0x5e27bb[_0x3f5682];return _0x9af114;}import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';function _0x5e27(){const _0x224378=['stringify','731784qsVhhN','TDFKK','status','blocked','Stop','3536427cXqnjH','943054xebqmu','120LqxeIB','215105yftaOA','checklistItems','31526KuXWIA','68jDWMyi','qUlyb','success','some','sessionId','featureId','CJeWQ','https://dashboard.ranger.net/features/','3977070WGgLjj','5013aAbBRb','5016UUjndw','5SzOMSJ','cgpCH'];_0x5e27=function(){return _0x224378;};return _0x5e27();}import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x72d33b){const _0x49f659=_0x9af1,_0xe3259a={'cgpCH':function(_0x30d1a6,_0x572afe){return _0x30d1a6(_0x572afe);},'CJeWQ':function(_0x2b9de5,_0x16377c){return _0x2b9de5(_0x16377c);},'zpTDt':function(_0x3cfc0b){return _0x3cfc0b();},'qUlyb':function(_0x3aff86,_0x1c7571){return _0x3aff86&&_0x1c7571;},'KgbyK':_0x49f659(0x1ef),'TDFKK':function(_0x2a428a,_0x4940e0,_0x358f03,_0x31e847){return _0x2a428a(_0x4940e0,_0x358f03,_0x31e847);}},_0x2fd110=await _0xe3259a[_0x49f659(0x202)](getEnabledHookContext,_0x72d33b),_0x2b873=_0x2fd110?.['sessionId']??null;let _0x24730a=!![];if(!_0x2b873){await trackStop(_0x2b873,![],_0x24730a);return;}try{const _0x1e9109=_0xe3259a[_0x49f659(0x1fc)](getSessionEntry,_0x2b873);if(!_0x1e9109){await trackStop(_0x2b873,!![],_0x24730a);return;}const _0x117e77=await _0xe3259a['zpTDt'](getToken),_0x5e8631=_0x49f659(0x1fd)+_0x1e9109['featureId'];let _0x527382=null,_0x3e283c=![],_0x525f4a=![];if(_0x117e77)try{const _0x424d2f=await getFeature(_0x1e9109['featureId']);_0x527382=_0x424d2f['currentSessionId']??null;const _0x5a796e=_0x424d2f[_0x49f659(0x1f4)]['filter'](_0xd4c060=>_0xd4c060[_0x49f659(0x1fa)]===_0x527382);_0x3e283c=_0x5a796e['some'](_0x4da2ae=>_0x4da2ae['status']!=='verified'&&_0x4da2ae[_0x49f659(0x1ed)]!==_0x49f659(0x1ee)&&_0x4da2ae['status']!=='closed'&&_0x4da2ae['status']!=='incomplete'),_0x525f4a=_0x5a796e[_0x49f659(0x1f9)](_0x2c044f=>_0x2c044f['status']==='verification_in_progress');}catch{}if(_0xe3259a['qUlyb'](_0x117e77,_0x527382)&&_0x3e283c){if(!_0x525f4a&&shouldShowStopReminder(_0x2b873)){const _0x5adc67={'hookSpecificOutput':{'hookEventName':_0xe3259a['KgbyK'],'additionalContext':'RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20'+_0x5e8631}};console['log'](JSON[_0x49f659(0x203)](_0x5adc67));}}if(_0xe3259a[_0x49f659(0x1f7)](_0x117e77,_0x527382)&&!_0x3e283c)try{await concludeSession(_0x1e9109[_0x49f659(0x1fb)],_0x527382);}catch{}await trackStop(_0x2b873,!![],_0x24730a);return;}catch{await _0xe3259a[_0x49f659(0x205)](trackStop,_0x2b873,!![],_0x24730a);return;}}async function trackStop(_0x2ec11f,_0x2c039d,_0x1fa626){const _0xe5c260=_0x9af1,_0x4376f9={'dvKTs':_0xe5c260(0x1f8)};try{const _0x18a002=createTelemetryCollector('hook:stop');await _0x18a002['trackCommandStart']({'sessionId':_0x2ec11f??undefined,'hooksEnabled':_0x2c039d,'stopAllowed':_0x1fa626}),await _0x18a002['trackCommandEnd'](_0x4376f9['dvKTs']);}catch{}}
1
+ (function(_0x1b3109,_0x501210){const _0x2fcb14=_0x1994,_0x4b820b=_0x1b3109();while(!![]){try{const _0x235edf=-parseInt(_0x2fcb14(0x167))/0x1+parseInt(_0x2fcb14(0x16f))/0x2+parseInt(_0x2fcb14(0x16b))/0x3+parseInt(_0x2fcb14(0x171))/0x4+parseInt(_0x2fcb14(0x160))/0x5*(-parseInt(_0x2fcb14(0x16d))/0x6)+-parseInt(_0x2fcb14(0x173))/0x7*(parseInt(_0x2fcb14(0x164))/0x8)+parseInt(_0x2fcb14(0x161))/0x9;if(_0x235edf===_0x501210)break;else _0x4b820b['push'](_0x4b820b['shift']());}catch(_0x14bb7f){_0x4b820b['push'](_0x4b820b['shift']());}}}(_0x1f91,0x67ab6));function _0x1994(_0x953ceb,_0x25a84c){_0x953ceb=_0x953ceb-0x160;const _0x1f91da=_0x1f91();let _0x1994d5=_0x1f91da[_0x953ceb];return _0x1994d5;}import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';function _0x1f91(){const _0x1a0437=['130805iAjyAU','9419616eYryRy','bYWEq','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','410944AAiyBN','stringify','currentSessionId','184898ORqihw','pxMsC','Yvlxm','verification_in_progress','190305oDQiDd','vzumR','174gcLAxS','trackCommandEnd','680336mBwNSs','featureId','699240tcCySx','status','35LOpTHL','KSAts','some','nSvbn'];_0x1f91=function(){return _0x1a0437;};return _0x1f91();}import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x45016f){const _0x33f93b=_0x1994,_0x5e54a3={'nSvbn':function(_0x325775,_0x4ba0f6){return _0x325775(_0x4ba0f6);},'Yvlxm':function(_0x52ee17,_0x156a53,_0x59003e,_0x33b109){return _0x52ee17(_0x156a53,_0x59003e,_0x33b109);},'vzumR':function(_0x2c8b66){return _0x2c8b66();},'KSAts':function(_0x2c480c,_0x10a0a3){return _0x2c480c&&_0x10a0a3;},'pxMsC':function(_0x1adc32,_0x2a42e9,_0x13dd5b,_0x309cf2){return _0x1adc32(_0x2a42e9,_0x13dd5b,_0x309cf2);}},_0x5cd137=await _0x5e54a3['nSvbn'](getEnabledHookContext,_0x45016f),_0x52ac15=_0x5cd137?.['sessionId']??null;let _0x1140b8=!![];if(!_0x52ac15){await _0x5e54a3[_0x33f93b(0x169)](trackStop,_0x52ac15,![],_0x1140b8);return;}try{const _0xdfb258=getSessionEntry(_0x52ac15);if(!_0xdfb258){await _0x5e54a3[_0x33f93b(0x169)](trackStop,_0x52ac15,!![],_0x1140b8);return;}const _0x37bf7a=await _0x5e54a3[_0x33f93b(0x16c)](getToken),_0x55a4ea='https://dashboard.ranger.net/features/'+_0xdfb258['featureId'];let _0x3f5c7b=null,_0x3a472c=![],_0x1a19ee=![];if(_0x37bf7a)try{const _0xc6421e=await _0x5e54a3[_0x33f93b(0x176)](getFeature,_0xdfb258[_0x33f93b(0x170)]);_0x3f5c7b=_0xc6421e[_0x33f93b(0x166)]??null;const _0x3ef0bb=_0xc6421e['checklistItems']['filter'](_0x1fe8f1=>_0x1fe8f1['sessionId']===_0x3f5c7b);_0x3a472c=_0x3ef0bb['some'](_0x20b75f=>_0x20b75f['status']!=='verified'&&_0x20b75f[_0x33f93b(0x172)]!=='blocked'&&_0x20b75f['status']!=='closed'&&_0x20b75f['status']!=='incomplete'),_0x1a19ee=_0x3ef0bb[_0x33f93b(0x175)](_0x392a15=>_0x392a15['status']===_0x33f93b(0x16a));}catch{}if(_0x37bf7a&&_0x3f5c7b&&_0x3a472c){if(!_0x1a19ee&&shouldShowStopReminder(_0x52ac15)){const _0x1a81b1={'hookSpecificOutput':{'hookEventName':'Stop','additionalContext':_0x33f93b(0x163)+_0x55a4ea}};console['log'](JSON[_0x33f93b(0x165)](_0x1a81b1));}}if(_0x5e54a3[_0x33f93b(0x174)](_0x37bf7a,_0x3f5c7b)&&!_0x3a472c)try{await concludeSession(_0xdfb258[_0x33f93b(0x170)],_0x3f5c7b);}catch{}await _0x5e54a3[_0x33f93b(0x168)](trackStop,_0x52ac15,!![],_0x1140b8);return;}catch{await trackStop(_0x52ac15,!![],_0x1140b8);return;}}async function trackStop(_0x19fadb,_0x20a4c1,_0x2062a5){const _0x4d9151=_0x1994,_0x199a18={'LSZaX':function(_0x258776,_0x2b033f){return _0x258776(_0x2b033f);},'bYWEq':'hook:stop'};try{const _0x482b2b=_0x199a18['LSZaX'](createTelemetryCollector,_0x199a18[_0x4d9151(0x162)]);await _0x482b2b['trackCommandStart']({'sessionId':_0x19fadb??undefined,'hooksEnabled':_0x20a4c1,'stopAllowed':_0x2062a5}),await _0x482b2b[_0x4d9151(0x16e)]('success');}catch{}}
@@ -1 +1 @@
1
- function _0x55f9(_0x4f69aa,_0x52a3ac){_0x4f69aa=_0x4f69aa-0x1ad;var _0x12e9ab=_0x12e9();var _0x55f95c=_0x12e9ab[_0x4f69aa];return _0x55f95c;}(function(_0x3f5178,_0xabcf59){var _0x2ec79f=_0x55f9,_0x416c47=_0x3f5178();while(!![]){try{var _0x588a5f=parseInt(_0x2ec79f(0x1b3))/0x1*(-parseInt(_0x2ec79f(0x1ad))/0x2)+-parseInt(_0x2ec79f(0x1b1))/0x3*(parseInt(_0x2ec79f(0x1b5))/0x4)+-parseInt(_0x2ec79f(0x1b2))/0x5*(-parseInt(_0x2ec79f(0x1ae))/0x6)+parseInt(_0x2ec79f(0x1b7))/0x7+parseInt(_0x2ec79f(0x1b4))/0x8+-parseInt(_0x2ec79f(0x1b6))/0x9*(-parseInt(_0x2ec79f(0x1b8))/0xa)+parseInt(_0x2ec79f(0x1b0))/0xb*(parseInt(_0x2ec79f(0x1af))/0xc);if(_0x588a5f===_0xabcf59)break;else _0x416c47['push'](_0x416c47['shift']());}catch(_0x525f65){_0x416c47['push'](_0x416c47['shift']());}}}(_0x12e9,0x7d50e));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';export{useEnv}from'./useEnv.js';function _0x12e9(){var _0x1281f4=['1468555syJyja','27MzMcRT','2084495uSajLZ','3222SZVqxu','786216lTVSNw','378888GvzaKj','3127914MQDLGT','67823VhRUaj','20WbiZmU','334VcaJPR','12JfubHl','24jRHyTO'];_0x12e9=function(){return _0x1281f4;};return _0x12e9();}export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
1
+ (function(_0x1549eb,_0x5a6edd){var _0x7f2358=_0x4a44,_0x1b73e2=_0x1549eb();while(!![]){try{var _0x452677=-parseInt(_0x7f2358(0xbb))/0x1+parseInt(_0x7f2358(0xb9))/0x2+-parseInt(_0x7f2358(0xb8))/0x3+parseInt(_0x7f2358(0xbf))/0x4+-parseInt(_0x7f2358(0xba))/0x5+parseInt(_0x7f2358(0xbe))/0x6+-parseInt(_0x7f2358(0xbc))/0x7*(-parseInt(_0x7f2358(0xbd))/0x8);if(_0x452677===_0x5a6edd)break;else _0x1b73e2['push'](_0x1b73e2['shift']());}catch(_0x17f605){_0x1b73e2['push'](_0x1b73e2['shift']());}}}(_0x1b58,0x50026));export{addEnv}from'./addEnv.js';function _0x1b58(){var _0x2a3567=['1661001ZMqtMm','1101422eslZcq','1870050RFKAXG','534088WtRpdq','2786RJZSYH','14552ZXAtOy','2039790aFjNTt','699380siYAid'];_0x1b58=function(){return _0x2a3567;};return _0x1b58();}export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';function _0x4a44(_0x23f748,_0x1d4eac){_0x23f748=_0x23f748-0xb8;var _0x1b58d7=_0x1b58();var _0x4a44a0=_0x1b58d7[_0x23f748];return _0x4a44a0;}export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
@@ -1 +1 @@
1
- (function(_0x4dca48,_0xacad5e){const _0x4c8138=_0x6180,_0xade248=_0x4dca48();while(!![]){try{const _0x38e375=parseInt(_0x4c8138(0x7b))/0x1*(-parseInt(_0x4c8138(0x74))/0x2)+parseInt(_0x4c8138(0x72))/0x3*(-parseInt(_0x4c8138(0x77))/0x4)+-parseInt(_0x4c8138(0x79))/0x5*(parseInt(_0x4c8138(0x73))/0x6)+parseInt(_0x4c8138(0x6c))/0x7*(-parseInt(_0x4c8138(0x6e))/0x8)+-parseInt(_0x4c8138(0x76))/0x9*(parseInt(_0x4c8138(0x70))/0xa)+-parseInt(_0x4c8138(0x78))/0xb+parseInt(_0x4c8138(0x6b))/0xc;if(_0x38e375===_0xacad5e)break;else _0xade248['push'](_0xade248['shift']());}catch(_0x264cd9){_0xade248['push'](_0xade248['shift']());}}}(_0x5a41,0xaa1c1));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x5a41(){const _0xebfbdb=['stdin','19uRHfFh','\x0a✅\x20Logged\x20in\x20to\x20','isTTY','55381848YEihOL','518vYbwlI','log','58592ydrERi','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','610sIsLaf','Login\x20failed:\x20','9Klcbkq','1512gnElEW','78262dslTAT','message','89433YPYETX','875884qnHIRK','5690674XCJUZc','16915wqrIvq'];_0x5a41=function(){return _0xebfbdb;};return _0x5a41();}function _0x6180(_0x1b8cdc,_0x4aa92d){_0x1b8cdc=_0x1b8cdc-0x69;const _0x5a4184=_0x5a41();let _0x61809f=_0x5a4184[_0x1b8cdc];return _0x61809f;}import{getCurrentUser}from'./utils/userApi.js';export async function login(){const _0x42b9dc=_0x6180,_0x2ba933={'hOvXU':function(_0x102192,_0x13bc60){return _0x102192(_0x13bc60);},'uSqnZ':'\x0a✅\x20API\x20key\x20stored\x20successfully'},_0x7d38e7=process[_0x42b9dc(0x7a)][_0x42b9dc(0x6a)]&&process['stdout']['isTTY'];if(!_0x7d38e7)throw new Error(_0x42b9dc(0x6f));try{const _0x349eea=await runDeviceAuthFlow(),_0x3c9f22=await _0x2ba933['hOvXU'](getCurrentUser,_0x349eea);_0x3c9f22['success']?console['log'](_0x42b9dc(0x69)+_0x3c9f22['user']['organizationName']):console[_0x42b9dc(0x6d)](_0x2ba933['uSqnZ']);}catch(_0x5c0468){throw new Error(_0x42b9dc(0x71)+(_0x5c0468 instanceof Error?_0x5c0468[_0x42b9dc(0x75)]:_0x5c0468));}}
1
+ function _0x42a1(_0x3a8256,_0x1fb763){_0x3a8256=_0x3a8256-0x14b;const _0x5eed53=_0x5eed();let _0x42a17e=_0x5eed53[_0x3a8256];return _0x42a17e;}(function(_0x45d49f,_0x1ce61a){const _0x53056b=_0x42a1,_0x4f4b7d=_0x45d49f();while(!![]){try{const _0x1f35ae=-parseInt(_0x53056b(0x14b))/0x1*(-parseInt(_0x53056b(0x14c))/0x2)+-parseInt(_0x53056b(0x153))/0x3+parseInt(_0x53056b(0x151))/0x4*(parseInt(_0x53056b(0x152))/0x5)+-parseInt(_0x53056b(0x158))/0x6+parseInt(_0x53056b(0x155))/0x7+-parseInt(_0x53056b(0x156))/0x8*(parseInt(_0x53056b(0x157))/0x9)+parseInt(_0x53056b(0x150))/0xa*(-parseInt(_0x53056b(0x14f))/0xb);if(_0x1f35ae===_0x1ce61a)break;else _0x4f4b7d['push'](_0x4f4b7d['shift']());}catch(_0x5d2f6a){_0x4f4b7d['push'](_0x4f4b7d['shift']());}}}(_0x5eed,0xe1874));function _0x5eed(){const _0x204b7b=['NGVfQ','log','success','organizationName','586wlLJAZ','5062xcxylI','\x0a✅\x20API\x20key\x20stored\x20successfully','user','7579oKwQWd','14410HLvdCV','16SIMyDG','805965dFlmRM','1142457MbqFnH','stdin','2047689CpGbvW','373112KStviL','9jMwrzB','458364bejMRo'];_0x5eed=function(){return _0x204b7b;};return _0x5eed();}import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';export async function login(){const _0x324866=_0x42a1,_0x3caf12={'jLHUi':function(_0x42f79c){return _0x42f79c();},'NGVfQ':function(_0x110c03,_0x3cae41){return _0x110c03(_0x3cae41);}},_0x529068=process[_0x324866(0x154)]['isTTY']&&process['stdout']['isTTY'];if(!_0x529068)throw new Error('Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.');try{const _0x416393=await _0x3caf12['jLHUi'](runDeviceAuthFlow),_0x5614e5=await _0x3caf12[_0x324866(0x159)](getCurrentUser,_0x416393);_0x5614e5[_0x324866(0x15b)]?console[_0x324866(0x15a)]('\x0a✅\x20Logged\x20in\x20to\x20'+_0x5614e5[_0x324866(0x14e)][_0x324866(0x15c)]):console['log'](_0x324866(0x14d));}catch(_0x3e6a18){throw new Error('Login\x20failed:\x20'+(_0x3e6a18 instanceof Error?_0x3e6a18['message']:_0x3e6a18));}}
@@ -1 +1 @@
1
- (function(_0x5898d6,_0x21022c){const _0x4e1e33=_0x923c,_0x5792f8=_0x5898d6();while(!![]){try{const _0x594507=parseInt(_0x4e1e33(0x1f9))/0x1*(-parseInt(_0x4e1e33(0x1fb))/0x2)+-parseInt(_0x4e1e33(0x1f3))/0x3*(parseInt(_0x4e1e33(0x1f1))/0x4)+-parseInt(_0x4e1e33(0x1dd))/0x5*(-parseInt(_0x4e1e33(0x1cf))/0x6)+parseInt(_0x4e1e33(0x1de))/0x7*(-parseInt(_0x4e1e33(0x1f6))/0x8)+-parseInt(_0x4e1e33(0x1c6))/0x9+-parseInt(_0x4e1e33(0x1ea))/0xa*(parseInt(_0x4e1e33(0x1d5))/0xb)+parseInt(_0x4e1e33(0x1ec))/0xc;if(_0x594507===_0x21022c)break;else _0x5792f8['push'](_0x5792f8['shift']());}catch(_0x560845){_0x5792f8['push'](_0x5792f8['shift']());}}}(_0x11fb,0x9bcff));function _0x11fb(){const _0x1ea117=['✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','cHJUh','ranger','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','1840665rWnsjf','2302433jlGfUW','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','Fqicr','ukhwX','fAsib','.claude','\x20level)...\x0a','sRtWx','Project\x20(shared\x20with\x20team\x20via\x20git)','yfrJv','IFqBC','Where\x20should\x20the\x20plugin\x20be\x20installed?','648190jXGIFL','BbtRu','36702372cWLezP','RazXy','success','already\x20enabled','list','1463816darOpf','SKILL.md','3OoGZpR','prompt','AuJGI','8MMhdnJ','pluginScope','install','24SETRyN','includes','94618gJnCzq','11353338AxejIU','AEFaj','trailhead','error','log','--scope','output','plugin','project','12stDOXd','enable','\x0aYou\x20can\x20install\x20manually\x20with:','zDziJ','ranger@trailhead','tQCeP','11YPAcJK','qSYzl','rGucr'];_0x11fb=function(){return _0x1ea117;};return _0x11fb();}import{join}from'path';import{existsSync}from'fs';function _0x923c(_0x2c9331,_0x12db51){_0x2c9331=_0x2c9331-0x1c6;const _0x11fb40=_0x11fb();let _0x923cdc=_0x11fb40[_0x2c9331];return _0x923cdc;}import _0x7de497 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x533e7b){const _0x4bc55d=_0x923c,_0x26a8fd={'gZcDx':_0x4bc55d(0x1d3),'UHVWw':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','RazXy':function(_0x4d2aaa,_0x4481e0){return _0x4d2aaa(_0x4481e0);},'elJEl':function(_0x380e32,_0x48d9ad,_0x23b875){return _0x380e32(_0x48d9ad,_0x23b875);},'yoINA':'.claude','IFqBC':_0x4bc55d(0x1ce),'rGucr':_0x4bc55d(0x1dc),'Fqicr':'user','tQCeP':_0x4bc55d(0x1e6),'sRtWx':'plugin','qSYzl':'marketplace','MKCNs':function(_0x5c57ea,_0x112259){return _0x5c57ea(_0x112259);},'cHJUh':_0x4bc55d(0x1cb),'lsrpa':'❌\x20Failed\x20to\x20install\x20plugin:','jgPFB':'\x0aYou\x20can\x20install\x20manually\x20with:','ukhwX':function(_0x37a521,_0xa2ac7f,_0x2a8590){return _0x37a521(_0xa2ac7f,_0x2a8590);},'XuJSB':_0x4bc55d(0x1ef),'fAsib':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x38db1b=await isPluginInstalled(_0x26a8fd['gZcDx']);if(_0x38db1b)return console[_0x4bc55d(0x1ca)](_0x26a8fd['UHVWw']),![];const _0x7ba3cb=_0x26a8fd[_0x4bc55d(0x1ed)](existsSync,_0x26a8fd['elJEl'](join,getProjectRoot(),_0x26a8fd['yoINA']));let _0x29e10f;if(_0x533e7b)_0x29e10f=_0x533e7b;else{if(_0x7ba3cb)_0x29e10f=_0x26a8fd[_0x4bc55d(0x1e8)];else{console['log'](_0x26a8fd[_0x4bc55d(0x1d7)]);const _0x2f7f00=await _0x7de497['prompt']([{'type':_0x4bc55d(0x1f0),'name':'pluginScope','message':_0x4bc55d(0x1e9),'choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':_0x26a8fd[_0x4bc55d(0x1e0)]},{'name':_0x26a8fd[_0x4bc55d(0x1d4)],'value':_0x26a8fd['IFqBC']}],'default':_0x26a8fd[_0x4bc55d(0x1e0)]}]);_0x29e10f=_0x2f7f00[_0x4bc55d(0x1f7)];}}console['log'](_0x4bc55d(0x1d9)+_0x29e10f+_0x4bc55d(0x1e4));const _0x107856=await _0x26a8fd[_0x4bc55d(0x1ed)](isMarketplaceAdded,_0x4bc55d(0x1c8));let _0x113db5=_0x107856;if(_0x107856)console['log']('✓\x20Marketplace\x20already\x20added');else{const _0x54fde6=await runClaudeCommand([_0x26a8fd[_0x4bc55d(0x1e5)],_0x26a8fd[_0x4bc55d(0x1d6)],'add','ranger-testing/trailhead']);!_0x54fde6['success']?(console['error']('❌\x20Failed\x20to\x20add\x20marketplace:',_0x54fde6[_0x4bc55d(0x1c9)]),console['log'](_0x4bc55d(0x1d1)),console['log'](_0x4bc55d(0x1df)),console[_0x4bc55d(0x1ca)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x29e10f)):_0x113db5=!![];}if(_0x113db5){const _0x532c75=await _0x26a8fd['MKCNs'](runClaudeCommand,[_0x4bc55d(0x1cd),_0x4bc55d(0x1f8),_0x26a8fd['gZcDx'],_0x26a8fd['cHJUh'],_0x29e10f]);if(!_0x532c75[_0x4bc55d(0x1ee)])console[_0x4bc55d(0x1c9)](_0x26a8fd['lsrpa'],_0x532c75[_0x4bc55d(0x1c9)]),console[_0x4bc55d(0x1ca)](_0x26a8fd['jgPFB']),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x29e10f);else{console['log'](_0x4bc55d(0x1d8));const _0x557edf=[_0x4bc55d(0x1cd),_0x4bc55d(0x1d0),'ranger@trailhead'];_0x29e10f===_0x26a8fd[_0x4bc55d(0x1e8)]&&_0x557edf['push'](_0x26a8fd[_0x4bc55d(0x1da)],_0x4bc55d(0x1ce));const _0x47a2f4=await _0x26a8fd[_0x4bc55d(0x1e1)](runClaudeCommand,_0x557edf,{'captureOutput':!![]}),_0x4ce526=_0x47a2f4[_0x4bc55d(0x1cc)]?.[_0x4bc55d(0x1fa)](_0x26a8fd['XuJSB']);!_0x47a2f4['success']&&!_0x4ce526?console['error']('⚠\x20Failed\x20to\x20enable\x20plugin:',_0x47a2f4['error']):console[_0x4bc55d(0x1ca)](_0x26a8fd[_0x4bc55d(0x1e2)]);}}return!![];}export async function ensureClaudeSkills(_0x34047a){const _0x391560=_0x923c,_0x43c176={'ZaLOa':'user','AEFaj':_0x391560(0x1f2),'XJrot':function(_0x4a0a91,_0x5a0c9b){return _0x4a0a91(_0x5a0c9b);},'NwjJx':function(_0x57d18e,_0x32c32d,_0x92ffd7,_0x5e821d){return _0x57d18e(_0x32c32d,_0x92ffd7,_0x5e821d);},'AuJGI':'project','CUEMx':_0x391560(0x1db),'JurVx':function(_0x20be46,_0x496c97){return _0x20be46||_0x496c97;},'BbtRu':function(_0x51cceb,_0x567905){return _0x51cceb(_0x567905);},'hPYyk':function(_0x16bc56,_0x54c30f,_0x1d62a9){return _0x16bc56(_0x54c30f,_0x1d62a9);},'LIcJS':_0x391560(0x1e3),'zDziJ':function(_0x5f36c7,_0x4bf771){return _0x5f36c7(_0x4bf771);},'yfrJv':'confirm'},_0x14efb4=existsSync(join(getSkillsDir(_0x43c176['ZaLOa']),'ranger',_0x43c176[_0x391560(0x1c7)])),_0x4d12ca=_0x43c176['XJrot'](existsSync,_0x43c176['NwjJx'](join,getSkillsDir(_0x43c176[_0x391560(0x1f5)]),_0x43c176['CUEMx'],_0x43c176[_0x391560(0x1c7)]));if(_0x43c176['JurVx'](_0x14efb4,_0x4d12ca))return console[_0x391560(0x1ca)]('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0x3d7f95=_0x43c176[_0x391560(0x1eb)](existsSync,_0x43c176['hPYyk'](join,getProjectRoot(),_0x43c176['LIcJS']));let _0x3645a1=!![];if(_0x34047a)await _0x43c176[_0x391560(0x1d2)](skillup,{'autoInstall':_0x34047a,'suppressUsage':!![]});else{if(_0x3d7f95)await skillup({'autoInstall':_0x43c176['AuJGI'],'suppressUsage':!![]});else{const _0x53f46a=await _0x7de497[_0x391560(0x1f4)]([{'type':_0x43c176[_0x391560(0x1e7)],'name':'wantsSkillup','message':'Would\x20you\x20like\x20to\x20install\x20skills?','default':!![]}]);_0x3645a1=_0x53f46a['wantsSkillup'],_0x3645a1&&await skillup({'suppressUsage':!![]});}}return _0x3645a1;}
1
+ (function(_0x2f1e26,_0x44ec09){const _0x5b8268=_0x452c,_0x54bf33=_0x2f1e26();while(!![]){try{const _0x2e5a39=-parseInt(_0x5b8268(0x122))/0x1*(-parseInt(_0x5b8268(0x112))/0x2)+-parseInt(_0x5b8268(0x10d))/0x3+parseInt(_0x5b8268(0x13c))/0x4*(parseInt(_0x5b8268(0x135))/0x5)+parseInt(_0x5b8268(0x12e))/0x6+parseInt(_0x5b8268(0x127))/0x7*(parseInt(_0x5b8268(0x136))/0x8)+-parseInt(_0x5b8268(0x11d))/0x9+parseInt(_0x5b8268(0x131))/0xa*(parseInt(_0x5b8268(0x116))/0xb);if(_0x2e5a39===_0x44ec09)break;else _0x54bf33['push'](_0x54bf33['shift']());}catch(_0x2a8ef4){_0x54bf33['push'](_0x54bf33['shift']());}}}(_0x138e,0xd228a));import{join}from'path';import{existsSync}from'fs';import _0x20a374 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x452c(_0x32dcb1,_0x2673c5){_0x32dcb1=_0x32dcb1-0x10b;const _0x138e02=_0x138e();let _0x452c00=_0x138e02[_0x32dcb1];return _0x452c00;}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x22d552){const _0x22ebe9=_0x452c,_0x52c8ac={'rZLvx':'ranger@trailhead','Poscu':_0x22ebe9(0x11f),'LjnOL':function(_0x53cf9e){return _0x53cf9e();},'xiZtR':'\x0a📦\x20Claude\x20Code\x20Plugin\x0a','XSZNC':'user','biZOt':_0x22ebe9(0x123),'FVHKA':_0x22ebe9(0x119),'MLiAx':_0x22ebe9(0x11c),'KEIFl':function(_0x121115,_0x2f03a3){return _0x121115(_0x2f03a3);},'QfvCF':_0x22ebe9(0x129),'tkgAD':_0x22ebe9(0x10b),'lLHxv':'install','ToHxJ':'--scope','sBXKa':_0x22ebe9(0x140),'qLlqK':function(_0x6f90be,_0x34f48e){return _0x6f90be===_0x34f48e;},'kEgfH':function(_0x673676,_0x4388ef,_0x15c426){return _0x673676(_0x4388ef,_0x15c426);},'gioya':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x5c2854=await isPluginInstalled(_0x52c8ac['rZLvx']);if(_0x5c2854)return console['log'](_0x52c8ac[_0x22ebe9(0x11a)]),![];const _0x3bb591=existsSync(join(_0x52c8ac[_0x22ebe9(0x12f)](getProjectRoot),'.claude'));let _0x242a1a;if(_0x22d552)_0x242a1a=_0x22d552;else{if(_0x3bb591)_0x242a1a='project';else{console['log'](_0x52c8ac['xiZtR']);const _0x153031=await _0x20a374[_0x22ebe9(0x118)]([{'type':'list','name':_0x22ebe9(0x134),'message':_0x22ebe9(0x139),'choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':_0x52c8ac['XSZNC']},{'name':_0x52c8ac['biZOt'],'value':_0x52c8ac[_0x22ebe9(0x10c)]}],'default':_0x22ebe9(0x10f)}]);_0x242a1a=_0x153031[_0x22ebe9(0x134)];}}console['log'](_0x22ebe9(0x133)+_0x242a1a+_0x22ebe9(0x120));const _0x3a68a1=await isMarketplaceAdded(_0x22ebe9(0x13d));let _0x229046=_0x3a68a1;if(_0x3a68a1)console['log'](_0x52c8ac[_0x22ebe9(0x125)]);else{const _0x539c2a=await _0x52c8ac['KEIFl'](runClaudeCommand,[_0x22ebe9(0x10b),_0x52c8ac[_0x22ebe9(0x138)],'add','ranger-testing/trailhead']);!_0x539c2a['success']?(console['error']('❌\x20Failed\x20to\x20add\x20marketplace:',_0x539c2a[_0x22ebe9(0x13a)]),console[_0x22ebe9(0x111)](_0x22ebe9(0x113)),console['log'](_0x22ebe9(0x11b)),console[_0x22ebe9(0x111)](_0x22ebe9(0x13b)+_0x242a1a)):_0x229046=!![];}if(_0x229046){const _0x1e1ea3=await runClaudeCommand([_0x52c8ac['tkgAD'],_0x52c8ac[_0x22ebe9(0x12b)],_0x52c8ac[_0x22ebe9(0x114)],_0x52c8ac[_0x22ebe9(0x12d)],_0x242a1a]);if(!_0x1e1ea3[_0x22ebe9(0x110)])console['error'](_0x52c8ac['sBXKa'],_0x1e1ea3['error']),console[_0x22ebe9(0x111)]('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x22ebe9(0x111)](_0x22ebe9(0x13b)+_0x242a1a);else{console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x3fdf94=['plugin',_0x22ebe9(0x130),'ranger@trailhead'];_0x52c8ac['qLlqK'](_0x242a1a,_0x22ebe9(0x119))&&_0x3fdf94['push'](_0x52c8ac[_0x22ebe9(0x12d)],'project');const _0x4d991f=await _0x52c8ac[_0x22ebe9(0x11e)](runClaudeCommand,_0x3fdf94,{'captureOutput':!![]}),_0x257622=_0x4d991f['output']?.[_0x22ebe9(0x141)](_0x22ebe9(0x126));!_0x4d991f[_0x22ebe9(0x110)]&&!_0x257622?console[_0x22ebe9(0x13a)]('⚠\x20Failed\x20to\x20enable\x20plugin:',_0x4d991f['error']):console['log'](_0x52c8ac[_0x22ebe9(0x142)]);}}return!![];}export async function ensureClaudeSkills(_0x5e3d43){const _0x17a314=_0x452c,_0x33b372={'xvaVB':function(_0x2d9cd5,_0x50cbd9){return _0x2d9cd5(_0x50cbd9);},'HGhFU':function(_0x452170,_0x244dfa,_0x229002,_0x353f6c){return _0x452170(_0x244dfa,_0x229002,_0x353f6c);},'nhTPd':'user','PdfXH':_0x17a314(0x12c),'LewRS':_0x17a314(0x119),'pVWSL':function(_0x23cafd,_0x426a9e){return _0x23cafd||_0x426a9e;},'yOXKd':function(_0x2bab3c){return _0x2bab3c();},'lvEVg':function(_0x208f5f,_0x104088){return _0x208f5f(_0x104088);},'PXqqr':function(_0x4b11e1,_0x1422e4){return _0x4b11e1(_0x1422e4);},'rKfrU':_0x17a314(0x121)},_0x474eed=_0x33b372[_0x17a314(0x117)](existsSync,_0x33b372['HGhFU'](join,_0x33b372[_0x17a314(0x117)](getSkillsDir,_0x33b372[_0x17a314(0x128)]),'ranger',_0x33b372[_0x17a314(0x137)])),_0x47d3d2=existsSync(join(getSkillsDir(_0x33b372[_0x17a314(0x13e)]),_0x17a314(0x13f),_0x17a314(0x12c)));if(_0x33b372['pVWSL'](_0x474eed,_0x47d3d2))return console[_0x17a314(0x111)](_0x17a314(0x124)),![];const _0x2501d4=existsSync(join(_0x33b372[_0x17a314(0x10e)](getProjectRoot),'.claude'));let _0x274608=!![];if(_0x5e3d43)await _0x33b372[_0x17a314(0x12a)](skillup,{'autoInstall':_0x5e3d43,'suppressUsage':!![]});else{if(_0x2501d4)await _0x33b372['PXqqr'](skillup,{'autoInstall':_0x17a314(0x119),'suppressUsage':!![]});else{const _0x34725e=await _0x20a374['prompt']([{'type':_0x33b372[_0x17a314(0x132)],'name':_0x17a314(0x115),'message':'Would\x20you\x20like\x20to\x20install\x20skills?','default':!![]}]);_0x274608=_0x34725e[_0x17a314(0x115)],_0x274608&&await skillup({'suppressUsage':!![]});}}return _0x274608;}function _0x138e(){const _0xa2af47=['1005IJbyLI','23928xxQJRL','PdfXH','QfvCF','Where\x20should\x20the\x20plugin\x20be\x20installed?','error','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','1884FgizeB','trailhead','LewRS','ranger','❌\x20Failed\x20to\x20install\x20plugin:','includes','gioya','plugin','FVHKA','3902490wNMgoB','yOXKd','user','success','log','6eclQEQ','\x0aYou\x20can\x20install\x20manually\x20with:','rZLvx','wantsSkillup','37048WcnJrb','xvaVB','prompt','project','Poscu','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','✓\x20Marketplace\x20already\x20added','2899134yrNJPB','kEgfH','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','\x20level)...\x0a','confirm','18498uUverY','Project\x20(shared\x20with\x20team\x20via\x20git)','✓\x20Ranger\x20skills\x20already\x20installed','MLiAx','already\x20enabled','1162uSRjak','nhTPd','marketplace','lvEVg','lLHxv','SKILL.md','ToHxJ','170874tTJygA','LjnOL','enable','5370McVvff','rKfrU','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','pluginScope'];_0x138e=function(){return _0xa2af47;};return _0x138e();}
@@ -1 +1 @@
1
- (function(_0x1620ba,_0x549326){const _0x3a8ec9=_0x2c5b,_0x583ba7=_0x1620ba();while(!![]){try{const _0x800965=-parseInt(_0x3a8ec9(0xf0))/0x1*(-parseInt(_0x3a8ec9(0x104))/0x2)+parseInt(_0x3a8ec9(0xff))/0x3*(parseInt(_0x3a8ec9(0xf7))/0x4)+-parseInt(_0x3a8ec9(0xef))/0x5+parseInt(_0x3a8ec9(0x107))/0x6*(-parseInt(_0x3a8ec9(0x109))/0x7)+-parseInt(_0x3a8ec9(0xf4))/0x8*(-parseInt(_0x3a8ec9(0xfc))/0x9)+parseInt(_0x3a8ec9(0x108))/0xa*(parseInt(_0x3a8ec9(0x105))/0xb)+parseInt(_0x3a8ec9(0x103))/0xc*(parseInt(_0x3a8ec9(0xe9))/0xd);if(_0x800965===_0x549326)break;else _0x583ba7['push'](_0x583ba7['shift']());}catch(_0x4ad9a2){_0x583ba7['push'](_0x583ba7['shift']());}}}(_0x5d30,0xf1ff9));function _0x5d30(){const _0x130d71=['9190742QwFdaa','prompt','399198uOeZpm','10JGSnhR','203ZOFggO','error','CptFY','User\x20(available\x20in\x20all\x20your\x20projects)','228644Bcqdsd','isArray','project','plugin','https://opencode.ai/config.json','Pydqd','6957235jVkfzG','5803URBYmv','keQuA','opencode.json','Failed\x20to\x20read\x20opencode.json','32IxqJoC','log','\x0a📦\x20OpenCode\x20Plugin\x0a','899848YUsQir','DNmPU','pluginScope','stringify','$schema','1618443VhTKYb','✓\x20OpenCode\x20plugin\x20already\x20configured','GOMNp','12mAgzAE','jAqXK','kcqAb','@ranger-testing/opencode-plugin','1200HoLFbk','34hYCjkL'];_0x5d30=function(){return _0x130d71;};return _0x5d30();}import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x320fbd from'inquirer';function _0x2c5b(_0x265bc4,_0x242488){_0x265bc4=_0x265bc4-0xe7;const _0x5d3088=_0x5d30();let _0x2c5b94=_0x5d3088[_0x265bc4];return _0x2c5b94;}import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x6da74a){const _0x1e86fd=_0x2c5b,_0x265292={'keQuA':function(_0xa4c79a,_0xb64b33){return _0xa4c79a(_0xb64b33);},'CptFY':_0x1e86fd(0xeb),'GOMNp':_0x1e86fd(0xf2),'kcqAb':_0x1e86fd(0xf6),'lQMVK':_0x1e86fd(0xe8),'tOBkt':'user','jAqXK':'Project\x20(shared\x20with\x20team\x20via\x20git)','Pydqd':'utf-8','xCjfm':'⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','HumpD':_0x1e86fd(0xfd),'DNmPU':function(_0x38afe3,_0x42e741){return _0x38afe3+_0x42e741;}},_0xfccff3=existsSync(join(_0x265292[_0x1e86fd(0xf1)](getOpencodeConfigDir,_0x265292[_0x1e86fd(0xe7)]),_0x265292[_0x1e86fd(0xfe)]));let _0x557031;if(_0x6da74a)_0x557031=_0x6da74a;else{if(_0xfccff3)_0x557031='project';else{console[_0x1e86fd(0xf5)](_0x265292[_0x1e86fd(0x101)]);const _0x553901=await _0x320fbd[_0x1e86fd(0x106)]([{'type':'list','name':_0x1e86fd(0xf9),'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x265292['lQMVK'],'value':_0x265292['tOBkt']},{'name':_0x265292[_0x1e86fd(0x100)],'value':_0x265292['CptFY']}],'default':'user'}]);_0x557031=_0x553901['pluginScope'];}}const _0x18d89b=join(getOpencodeConfigDir(_0x557031),_0x265292[_0x1e86fd(0xfe)]),_0x469606=_0x1e86fd(0x102),_0x5928f8=_0x1e86fd(0xed);let _0x2f2787={};if(existsSync(_0x18d89b))try{const _0x3b1d55=await readFile(_0x18d89b,_0x265292[_0x1e86fd(0xee)]);_0x2f2787=JSON['parse'](_0x3b1d55);}catch(_0x5bc779){return console[_0x1e86fd(0x10a)](_0x265292['xCjfm']),{'configured':![],'scope':_0x557031,'error':_0x1e86fd(0xf3),'details':_0x5bc779};}const _0x5ed474=Array[_0x1e86fd(0xea)](_0x2f2787[_0x1e86fd(0xec)])?_0x2f2787[_0x1e86fd(0xec)]:[];if(_0x5ed474['includes'](_0x469606))return console['log'](_0x265292['HumpD']),{'configured':![],'scope':_0x557031};return _0x2f2787['$schema']=_0x2f2787[_0x1e86fd(0xfb)]||_0x5928f8,_0x2f2787['plugin']=[..._0x5ed474,_0x469606],await mkdir(_0x265292['keQuA'](getOpencodeConfigDir,_0x557031),{'recursive':!![]}),await writeFile(_0x18d89b,_0x265292[_0x1e86fd(0xf8)](JSON[_0x1e86fd(0xfa)](_0x2f2787,null,0x2),'\x0a')),console[_0x1e86fd(0xf5)]('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0x557031};}
1
+ (function(_0x96e577,_0x5899d7){const _0x460408=_0x232c,_0x126584=_0x96e577();while(!![]){try{const _0x27dbc0=-parseInt(_0x460408(0x85))/0x1*(parseInt(_0x460408(0x70))/0x2)+-parseInt(_0x460408(0x82))/0x3*(parseInt(_0x460408(0x6b))/0x4)+parseInt(_0x460408(0x76))/0x5+-parseInt(_0x460408(0x71))/0x6+parseInt(_0x460408(0x86))/0x7*(parseInt(_0x460408(0x6a))/0x8)+parseInt(_0x460408(0x75))/0x9+-parseInt(_0x460408(0x87))/0xa*(-parseInt(_0x460408(0x6d))/0xb);if(_0x27dbc0===_0x5899d7)break;else _0x126584['push'](_0x126584['shift']());}catch(_0x1ae069){_0x126584['push'](_0x126584['shift']());}}}(_0x7199,0x6c84a));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';function _0x7199(){const _0x4f8df4=['14202221MGqfYJ','log','user','468332ewAKsy','2935350yHmaUW','$schema','cnZKQ','prompt','2448891GXvmpt','1304330wENxwq','\x0a📦\x20OpenCode\x20Plugin\x0a','CUhos','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','odCqE','list','✓\x20OpenCode\x20plugin\x20already\x20configured','project','https://opencode.ai/config.json','MEfYr','pluginScope','opencode.json','2391IUlqjp','stringify','@ranger-testing/opencode-plugin','1jadazy','252fVbMUt','10gOvmuw','plugin','User\x20(available\x20in\x20all\x20your\x20projects)','42448KZDWoc','4252VaxjyE','Project\x20(shared\x20with\x20team\x20via\x20git)'];_0x7199=function(){return _0x4f8df4;};return _0x7199();}import _0x53ca31 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';function _0x232c(_0x5bf7bd,_0x1571a5){_0x5bf7bd=_0x5bf7bd-0x68;const _0x719963=_0x7199();let _0x232ceb=_0x719963[_0x5bf7bd];return _0x232ceb;}export async function ensureOpencodePluginConfig(_0x30ce6d){const _0x21b39b=_0x232c,_0x2e4883={'cnZKQ':function(_0x2c7832,_0x278193){return _0x2c7832(_0x278193);},'CUhos':function(_0x3a58e7,_0x2bcaf4){return _0x3a58e7(_0x2bcaf4);},'UkeSn':'project','YGpZO':_0x21b39b(0x77),'wLSLn':_0x21b39b(0x7b),'odCqE':'Where\x20should\x20the\x20plugin\x20be\x20installed?','RCVHA':_0x21b39b(0x6f),'sYzli':_0x21b39b(0x84),'MEfYr':function(_0x513918,_0x2a73d1,_0x6283bd){return _0x513918(_0x2a73d1,_0x6283bd);},'cQbZj':'utf-8','keuXO':_0x21b39b(0x79)},_0x12cdeb=_0x2e4883[_0x21b39b(0x73)](existsSync,join(_0x2e4883[_0x21b39b(0x78)](getOpencodeConfigDir,_0x2e4883['UkeSn']),_0x21b39b(0x81)));let _0x4bc3ec;if(_0x30ce6d)_0x4bc3ec=_0x30ce6d;else{if(_0x12cdeb)_0x4bc3ec=_0x21b39b(0x7d);else{console[_0x21b39b(0x6e)](_0x2e4883['YGpZO']);const _0x2b5e75=await _0x53ca31[_0x21b39b(0x74)]([{'type':_0x2e4883['wLSLn'],'name':_0x21b39b(0x80),'message':_0x2e4883[_0x21b39b(0x7a)],'choices':[{'name':_0x21b39b(0x69),'value':'user'},{'name':_0x21b39b(0x6c),'value':_0x2e4883['UkeSn']}],'default':_0x2e4883['RCVHA']}]);_0x4bc3ec=_0x2b5e75['pluginScope'];}}const _0x4dd7bc=join(_0x2e4883['CUhos'](getOpencodeConfigDir,_0x4bc3ec),_0x21b39b(0x81)),_0x3ca800=_0x2e4883['sYzli'],_0x238c83=_0x21b39b(0x7e);let _0x380b2e={};if(existsSync(_0x4dd7bc))try{const _0x3a0a06=await _0x2e4883[_0x21b39b(0x7f)](readFile,_0x4dd7bc,_0x2e4883['cQbZj']);_0x380b2e=JSON['parse'](_0x3a0a06);}catch(_0x41d26f){return console['error'](_0x2e4883['keuXO']),{'configured':![],'scope':_0x4bc3ec,'error':'Failed\x20to\x20read\x20opencode.json','details':_0x41d26f};}const _0x26d458=Array['isArray'](_0x380b2e['plugin'])?_0x380b2e['plugin']:[];if(_0x26d458['includes'](_0x3ca800))return console[_0x21b39b(0x6e)](_0x21b39b(0x7c)),{'configured':![],'scope':_0x4bc3ec};return _0x380b2e[_0x21b39b(0x72)]=_0x380b2e[_0x21b39b(0x72)]||_0x238c83,_0x380b2e[_0x21b39b(0x68)]=[..._0x26d458,_0x3ca800],await mkdir(getOpencodeConfigDir(_0x4bc3ec),{'recursive':!![]}),await _0x2e4883[_0x21b39b(0x7f)](writeFile,_0x4dd7bc,JSON[_0x21b39b(0x83)](_0x380b2e,null,0x2)+'\x0a'),console['log']('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0x4bc3ec};}
@@ -1 +1 @@
1
- function _0x3c23(){const _0x51b16c=['tnxlU','trackPhaseStart','settings.json','16KcsfXv','project','bKOdS','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','jQuUB','6838700luPRrO','--scope','dir_setup','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','Auto-detected\x20CI\x20profile:\x20','skipChromium','trackPhaseEnd','toNac','message','✓\x20Claude\x20Code\x20plugin\x20installed','16YPzYpy','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','✓\x20Created\x20profile\x20settings:\x20baseUrl=','1587432QanbXj','auth','mxsiX','sXbaS','FoJIv','success','OQHft','length','Failed\x20to\x20install\x20plugin:','baseUrl','\x22:\x20','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','auth.json.enc','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','UNTXo','444436GyWiUl','install','add','plugin','6Tofele','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','qCHCH','sessions','error','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','NIEOp','279330VNGgRF','yNphD','2446440HSVfQl','83178YzrMAL','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','ZvARQ','ranger@trailhead','eNpaA','name','600955aTmWqb','marketplace','jRIjD','hlRdW','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','skills','log'];_0x3c23=function(){return _0x51b16c;};return _0x3c23();}(function(_0x52b68f,_0x112b72){const _0x319ac1=_0x512c,_0x374c24=_0x52b68f();while(!![]){try{const _0x2cf3a2=parseInt(_0x319ac1(0x149))/0x1+parseInt(_0x319ac1(0x13e))/0x2*(-parseInt(_0x319ac1(0x142))/0x3)+-parseInt(_0x319ac1(0x16b))/0x4*(-parseInt(_0x319ac1(0x152))/0x5)+parseInt(_0x319ac1(0x14b))/0x6+parseInt(_0x319ac1(0x16e))/0x7+-parseInt(_0x319ac1(0x15c))/0x8*(-parseInt(_0x319ac1(0x14c))/0x9)+-parseInt(_0x319ac1(0x161))/0xa;if(_0x2cf3a2===_0x112b72)break;else _0x374c24['push'](_0x374c24['shift']());}catch(_0x3fd640){_0x374c24['push'](_0x374c24['shift']());}}}(_0x3c23,0x45874));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';function _0x512c(_0x16e99e,_0xb67c7a){_0x16e99e=_0x16e99e-0x13a;const _0x3c23e5=_0x3c23();let _0x512c2d=_0x3c23e5[_0x16e99e];return _0x512c2d;}import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x3f2ff3){const _0x37a42a=_0x512c,_0x273db7={'OQHft':function(_0x579b73){return _0x579b73();},'NIEOp':'No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','yNphD':'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','jRIjD':function(_0x4a322d,_0x22df1a,_0x35e2b9){return _0x4a322d(_0x22df1a,_0x35e2b9);},'MwEwj':function(_0x2dae56,_0x3ac4dd){return _0x2dae56===_0x3ac4dd;},'qCHCH':function(_0xc61b6a,_0x1102bf){return _0xc61b6a+_0x1102bf;}},_0x55f4eb=_0x273db7[_0x37a42a(0x174)](getRangerDir),_0x2eee1d=join(_0x55f4eb,'ci');if(_0x3f2ff3){const _0x164d54=join(_0x2eee1d,_0x3f2ff3);return{'name':_0x3f2ff3,'path':_0x164d54};}if(!existsSync(_0x2eee1d))throw new Error(_0x273db7[_0x37a42a(0x148)]+_0x273db7[_0x37a42a(0x14a)]);const _0x4f7248=await _0x273db7[_0x37a42a(0x154)](readdir,_0x2eee1d,{'withFileTypes':!![]}),_0x273822=_0x4f7248['filter'](_0x4b7c33=>_0x4b7c33['isDirectory']())['map'](_0x5b7ed3=>_0x5b7ed3[_0x37a42a(0x151)]);if(_0x273db7['MwEwj'](_0x273822['length'],0x0))throw new Error(_0x273db7[_0x37a42a(0x144)](_0x37a42a(0x13a),_0x273db7['yNphD']));if(_0x273822[_0x37a42a(0x175)]===0x1){const _0x3f9d0d=_0x273822[0x0];return console['log'](_0x37a42a(0x165)+_0x3f9d0d),{'name':_0x3f9d0d,'path':join(_0x2eee1d,_0x3f9d0d)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x273822['join'](',\x20')+_0x37a42a(0x16c));}async function installPluginNonInteractive(){const _0x1d4620=_0x512c,_0x4bef1f={'qrsQc':'✓\x20Marketplace\x20already\x20added','sXbaS':function(_0x3e055f,_0x120d14){return _0x3e055f(_0x120d14);},'toNac':_0x1d4620(0x153),'FoJIv':'ranger-testing/trailhead','jQuUB':'Failed\x20to\x20add\x20marketplace:','UNTXo':_0x1d4620(0x164),'rjUzE':function(_0x4c03d9,_0x2887bf){return _0x4c03d9(_0x2887bf);},'MArcG':_0x1d4620(0x162),'tnxlU':_0x1d4620(0x15d),'cdRSs':_0x1d4620(0x16a)},_0x4f50e5=await isPluginInstalled(_0x1d4620(0x14f));if(_0x4f50e5)return console['log']('✓\x20Claude\x20Code\x20plugin\x20already\x20installed'),![];console[_0x1d4620(0x158)]('Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...');const _0x54a793=await isMarketplaceAdded('trailhead');let _0x1ed6a5=_0x54a793;if(_0x54a793)console[_0x1d4620(0x158)](_0x4bef1f['qrsQc']);else{const _0x37d8ff=await _0x4bef1f[_0x1d4620(0x171)](runClaudeCommand,['plugin',_0x4bef1f[_0x1d4620(0x168)],_0x1d4620(0x140),_0x4bef1f[_0x1d4620(0x172)]]);!_0x37d8ff[_0x1d4620(0x173)]?(console[_0x1d4620(0x146)](_0x4bef1f[_0x1d4620(0x160)],_0x37d8ff['error']),console['log'](_0x4bef1f[_0x1d4620(0x13d)])):_0x1ed6a5=!![];}if(_0x1ed6a5){const _0x175ea5=await _0x4bef1f['rjUzE'](runClaudeCommand,['plugin',_0x1d4620(0x13f),_0x1d4620(0x14f),_0x4bef1f['MArcG'],_0x4bef1f[_0x1d4620(0x159)]]);!_0x175ea5['success']?(console['error'](_0x1d4620(0x176),_0x175ea5['error']),console['log'](_0x1d4620(0x147))):console[_0x1d4620(0x158)](_0x4bef1f['cdRSs']);}return!![];}export async function setupCi(_0x4375ad,_0x2bc89f,_0x122a43){const _0x1d8b62=_0x512c,_0x24ffe8={'IMySj':'\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','ssQoe':_0x1d8b62(0x16f),'bKOdS':function(_0x397af4,_0x16cadf){return _0x397af4(_0x16cadf);},'ZPQMl':_0x1d8b62(0x163),'OOAsm':_0x1d8b62(0x145),'PMTDo':function(_0x3c7d0b,_0x52bbb5){return _0x3c7d0b(_0x52bbb5);},'MfPVG':'chromium','rclNg':function(_0x59f7e1){return _0x59f7e1();},'mxsiX':'profile_activate','ZvARQ':function(_0x585a48,_0x551fe8,_0x26851c){return _0x585a48(_0x551fe8,_0x26851c);},'NCfSP':function(_0x4be512,_0x1a3d28,_0x24e280){return _0x4be512(_0x1a3d28,_0x24e280);},'aKBXw':_0x1d8b62(0x15b),'SfkyE':function(_0x2f4ab1,_0x704fb8,_0x44aff1){return _0x2f4ab1(_0x704fb8,_0x44aff1);},'hlRdW':function(_0x13542f,_0x492312){return _0x13542f(_0x492312);},'EcrRf':_0x1d8b62(0x15f),'mtMMy':function(_0x5576fc,_0x1cfb5f){return _0x5576fc instanceof _0x1cfb5f;},'uAgCS':'✓\x20Auth\x20state\x20found','PKHIB':_0x1d8b62(0x143),'EBSSV':function(_0x4752db,_0x23affe){return _0x4752db(_0x23affe);},'bZMuN':_0x1d8b62(0x141),'eNpaA':'skills','OXuVu':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console['log'](_0x24ffe8['IMySj']),_0x122a43?.['trackPhaseStart'](_0x24ffe8['ssQoe']),await _0x24ffe8[_0x1d8b62(0x15e)](authenticate,_0x4375ad),_0x122a43?.[_0x1d8b62(0x167)]('auth'),_0x122a43?.['trackPhaseStart'](_0x24ffe8['ZPQMl']);const {path:_0xc18f86,installed:_0x27c727}=await ensureRangerDir();await writeRangerGitignore(_0xc18f86);const _0x8f1fd4=join(_0xc18f86,_0x24ffe8['OOAsm']);!_0x24ffe8['PMTDo'](existsSync,_0x8f1fd4)&&await mkdir(_0x8f1fd4,{'recursive':!![]});_0x122a43?.['trackPhaseEnd']('dir_setup',{'installed':_0x27c727}),_0x122a43?.['trackPhaseStart'](_0x24ffe8['MfPVG']);let _0x1751a1=![];_0x2bc89f?.[_0x1d8b62(0x166)]?console[_0x1d8b62(0x158)](_0x1d8b62(0x14d)):_0x1751a1=await _0x24ffe8['rclNg'](ensureChromium);_0x122a43?.['trackPhaseEnd']('chromium',{'installed':_0x1751a1,'skipped':!!_0x2bc89f?.['skipChromium']}),_0x122a43?.[_0x1d8b62(0x15a)](_0x24ffe8[_0x1d8b62(0x170)]);const _0x41b233=await findCiProfile(_0x2bc89f?.['profile']);let _0x213efd=![];_0x2bc89f?.[_0x1d8b62(0x177)]&&(await _0x24ffe8[_0x1d8b62(0x14e)](mkdir,_0x41b233['path'],{'recursive':!![]}),await saveSettings(_0x41b233[_0x1d8b62(0x151)],{'baseUrl':_0x2bc89f[_0x1d8b62(0x177)],'headless':!![]}),console[_0x1d8b62(0x158)](_0x1d8b62(0x16d)+_0x2bc89f['baseUrl']),_0x213efd=!![]);const _0x4ec8ac=_0x24ffe8['NCfSP'](join,_0x41b233['path'],_0x24ffe8['aKBXw']);if(!existsSync(_0x4ec8ac)&&!_0x213efd)throw new Error('CI\x20profile\x20\x22'+_0x41b233[_0x1d8b62(0x151)]+_0x1d8b62(0x13c));const _0x467c06=join(_0x41b233['path'],'auth.json'),_0x273a00=_0x24ffe8['SfkyE'](join,_0x41b233['path'],_0x1d8b62(0x13b)),_0x2b207a=existsSync(_0x467c06),_0x285c4e=_0x24ffe8[_0x1d8b62(0x155)](existsSync,_0x273a00);if(_0x285c4e)try{const _0x487122=await _0x24ffe8['rclNg'](getToken);if(!_0x487122)throw new Error('No\x20API\x20token\x20available\x20for\x20decryption');const _0x46e40f=await readFile(_0x273a00);decrypt(_0x46e40f,_0x487122),console['log'](_0x24ffe8['EcrRf']);}catch(_0x33c09c){const _0x578912=_0x24ffe8['mtMMy'](_0x33c09c,Error)?_0x33c09c[_0x1d8b62(0x169)]:String(_0x33c09c);throw new Error(_0x1d8b62(0x156)+_0x41b233[_0x1d8b62(0x151)]+_0x1d8b62(0x178)+_0x578912);}else _0x2b207a?console[_0x1d8b62(0x158)](_0x24ffe8['uAgCS']):console[_0x1d8b62(0x158)](_0x24ffe8['PKHIB']);await _0x24ffe8['EBSSV'](writeActiveProfileName,_0x41b233[_0x1d8b62(0x151)]),console[_0x1d8b62(0x158)]('✓\x20Active\x20profile:\x20'+_0x41b233[_0x1d8b62(0x151)]),_0x122a43?.['trackPhaseEnd']('profile_activate',{'profileName':_0x41b233['name'],'hasAuth':_0x2b207a,'hasEncryptedAuth':_0x285c4e,'createdSettings':_0x213efd}),_0x122a43?.['trackPhaseStart'](_0x24ffe8['bZMuN']);const _0x47f565=await installPluginNonInteractive();_0x122a43?.['trackPhaseEnd'](_0x24ffe8['bZMuN'],{'installed':_0x47f565}),_0x122a43?.['trackPhaseStart'](_0x24ffe8[_0x1d8b62(0x150)]),await _0x24ffe8['PMTDo'](skillup,{'autoInstall':'project'}),_0x122a43?.[_0x1d8b62(0x167)](_0x1d8b62(0x157)),console[_0x1d8b62(0x158)](_0x24ffe8['OXuVu']);}
1
+ (function(_0x4569f6,_0x296eb6){const _0x3ad01d=_0x42c5,_0x32561b=_0x4569f6();while(!![]){try{const _0x3a157a=-parseInt(_0x3ad01d(0x191))/0x1+parseInt(_0x3ad01d(0x176))/0x2+-parseInt(_0x3ad01d(0x16c))/0x3*(parseInt(_0x3ad01d(0x199))/0x4)+parseInt(_0x3ad01d(0x18e))/0x5+parseInt(_0x3ad01d(0x169))/0x6*(parseInt(_0x3ad01d(0x16b))/0x7)+-parseInt(_0x3ad01d(0x195))/0x8*(-parseInt(_0x3ad01d(0x197))/0x9)+parseInt(_0x3ad01d(0x196))/0xa*(-parseInt(_0x3ad01d(0x198))/0xb);if(_0x3a157a===_0x296eb6)break;else _0x32561b['push'](_0x32561b['shift']());}catch(_0x3a5a3a){_0x32561b['push'](_0x32561b['shift']());}}}(_0x25b2,0x5f2df));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';function _0x25b2(){const _0x225d53=['45GMLhBV','64295ejmTUh','28nyiDJL','\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','path','MeyGi','tnqgX','isDirectory','baseUrl','trackPhaseEnd','profile','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','project','AfsgQ','MpqSr','174JgCyKo','fEdGj','123746lXOkoZ','260757MihyCC','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','trackPhaseStart','qFEPJ','filter','KCOuN','plugin','error','oLrYl','ZMNcU','420430WZukHA','Multiple\x20CI\x20profiles\x20found:\x20','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','✓\x20Claude\x20Code\x20plugin\x20installed','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','Zpzty','auth.json.enc','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','log','wKkCP','lrzgd','OEhTu','tnWmq','dir_setup','wJQFv','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','length','name','chromium','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','skills','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','Failed\x20to\x20add\x20marketplace:','oycsM','3535050NOAaFY','ranger@trailhead','VMHjq','288319AzROCP','profile_activate','✓\x20Marketplace\x20already\x20added','HVBmD','154184dZfmIa','410xILHeu'];_0x25b2=function(){return _0x225d53;};return _0x25b2();}import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x139eea){const _0x383042=_0x42c5,_0x364fc0={'AfsgQ':function(_0x3fab50,_0xa97a40,_0x1602c4){return _0x3fab50(_0xa97a40,_0x1602c4);},'Zpzty':function(_0x1c61a0,_0x3e700d,_0x5f4fa4){return _0x1c61a0(_0x3e700d,_0x5f4fa4);},'MeyGi':function(_0x144a4a,_0x30d451){return _0x144a4a(_0x30d451);},'tnWmq':'No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','bckgu':function(_0x27f329,_0xcf3426){return _0x27f329+_0xcf3426;},'HVBmD':function(_0x159a6a,_0x15a36b){return _0x159a6a===_0x15a36b;},'buycT':function(_0xfb52f4,_0x690f2,_0x301e24){return _0xfb52f4(_0x690f2,_0x301e24);}},_0x5903a0=getRangerDir(),_0x17ad5c=_0x364fc0[_0x383042(0x1a4)](join,_0x5903a0,'ci');if(_0x139eea){const _0x573655=_0x364fc0[_0x383042(0x17b)](join,_0x17ad5c,_0x139eea);return{'name':_0x139eea,'path':_0x573655};}if(!_0x364fc0[_0x383042(0x19c)](existsSync,_0x17ad5c))throw new Error(_0x364fc0[_0x383042(0x182)]+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');const _0x1a0c31=await readdir(_0x17ad5c,{'withFileTypes':!![]}),_0x449e3c=_0x1a0c31[_0x383042(0x170)](_0x4d2e01=>_0x4d2e01[_0x383042(0x19e)]())['map'](_0xd02684=>_0xd02684['name']);if(_0x449e3c[_0x383042(0x186)]===0x0)throw new Error(_0x364fc0['bckgu'](_0x383042(0x17a),'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.'));if(_0x364fc0[_0x383042(0x194)](_0x449e3c[_0x383042(0x186)],0x1)){const _0x12d0ea=_0x449e3c[0x0];return console['log']('Auto-detected\x20CI\x20profile:\x20'+_0x12d0ea),{'name':_0x12d0ea,'path':_0x364fc0['buycT'](join,_0x17ad5c,_0x12d0ea)};}throw new Error(_0x383042(0x177)+_0x449e3c['join'](',\x20')+_0x383042(0x18b));}function _0x42c5(_0x30f5fc,_0x2dd80d){_0x30f5fc=_0x30f5fc-0x168;const _0x25b23f=_0x25b2();let _0x42c57a=_0x25b23f[_0x30f5fc];return _0x42c57a;}async function installPluginNonInteractive(){const _0x1a575f=_0x42c5,_0x48e5d8={'xWtuC':function(_0x10ad00,_0x43c566){return _0x10ad00(_0x43c566);},'OIMlQ':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','ISLjD':_0x1a575f(0x193),'WuHBK':_0x1a575f(0x172),'RUBnC':'add','lJOkE':'ranger-testing/trailhead','RJuad':_0x1a575f(0x189),'KCOuN':'install','EEGsm':'ranger@trailhead','lrzgd':'--scope','wJQFv':_0x1a575f(0x179)},_0x55f80d=await _0x48e5d8['xWtuC'](isPluginInstalled,_0x1a575f(0x18f));if(_0x55f80d)return console[_0x1a575f(0x17e)](_0x48e5d8['OIMlQ']),![];console[_0x1a575f(0x17e)](_0x1a575f(0x17d));const _0x1cdf55=await isMarketplaceAdded('trailhead');let _0x5eee1c=_0x1cdf55;if(_0x1cdf55)console[_0x1a575f(0x17e)](_0x48e5d8['ISLjD']);else{const _0x17689e=await runClaudeCommand([_0x48e5d8['WuHBK'],'marketplace',_0x48e5d8['RUBnC'],_0x48e5d8['lJOkE']]);!_0x17689e['success']?(console[_0x1a575f(0x173)](_0x1a575f(0x18c),_0x17689e['error']),console[_0x1a575f(0x17e)](_0x48e5d8['RJuad'])):_0x5eee1c=!![];}if(_0x5eee1c){const _0x413bc2=await runClaudeCommand(['plugin',_0x48e5d8[_0x1a575f(0x171)],_0x48e5d8['EEGsm'],_0x48e5d8[_0x1a575f(0x180)],'project']);!_0x413bc2['success']?(console[_0x1a575f(0x173)]('Failed\x20to\x20install\x20plugin:',_0x413bc2['error']),console[_0x1a575f(0x17e)](_0x1a575f(0x16d))):console[_0x1a575f(0x17e)](_0x48e5d8[_0x1a575f(0x184)]);}return!![];}export async function setupCi(_0x2f8bc4,_0x48c0cd,_0x39c5e6){const _0x473f3a=_0x42c5,_0x4a994c={'oLrYl':'auth','fEdGj':function(_0x902262,_0xa48dbd){return _0x902262(_0xa48dbd);},'tnqgX':_0x473f3a(0x183),'VMHjq':function(_0xede7a2,_0x176a99,_0x3411b9){return _0xede7a2(_0x176a99,_0x3411b9);},'Aomaa':function(_0x32e98a){return _0x32e98a();},'wUdjN':'chromium','ZMNcU':function(_0x36cdad,_0x3dd7c1,_0x2ec68a){return _0x36cdad(_0x3dd7c1,_0x2ec68a);},'OEhTu':'settings.json','gseCw':'auth.json','oycsM':function(_0x2d4407,_0x348dc8,_0x137acc){return _0x2d4407(_0x348dc8,_0x137acc);},'qFEPJ':_0x473f3a(0x17c),'iouqs':function(_0x75b9ea){return _0x75b9ea();},'MpqSr':'No\x20API\x20token\x20available\x20for\x20decryption','PvDcg':'✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','kgiqP':_0x473f3a(0x1a2),'wKkCP':_0x473f3a(0x192),'FuAiE':_0x473f3a(0x172)};console[_0x473f3a(0x17e)](_0x473f3a(0x19a)),_0x39c5e6?.['trackPhaseStart'](_0x4a994c[_0x473f3a(0x174)]),await _0x4a994c[_0x473f3a(0x16a)](authenticate,_0x2f8bc4),_0x39c5e6?.[_0x473f3a(0x1a0)](_0x4a994c['oLrYl']),_0x39c5e6?.[_0x473f3a(0x16e)](_0x4a994c[_0x473f3a(0x19d)]);const {path:_0x3541a,installed:_0x21b3b9}=await ensureRangerDir();await _0x4a994c[_0x473f3a(0x16a)](writeRangerGitignore,_0x3541a);const _0x3b5e29=_0x4a994c[_0x473f3a(0x190)](join,_0x3541a,'sessions');!existsSync(_0x3b5e29)&&await mkdir(_0x3b5e29,{'recursive':!![]});_0x39c5e6?.[_0x473f3a(0x1a0)]('dir_setup',{'installed':_0x21b3b9}),_0x39c5e6?.['trackPhaseStart'](_0x473f3a(0x188));let _0x15b94d=![];_0x48c0cd?.['skipChromium']?console['log'](_0x473f3a(0x178)):_0x15b94d=await _0x4a994c['Aomaa'](ensureChromium);_0x39c5e6?.['trackPhaseEnd'](_0x4a994c['wUdjN'],{'installed':_0x15b94d,'skipped':!!_0x48c0cd?.['skipChromium']}),_0x39c5e6?.[_0x473f3a(0x16e)](_0x473f3a(0x192));const _0x4a4e76=await findCiProfile(_0x48c0cd?.[_0x473f3a(0x1a1)]);let _0x469ab1=![];_0x48c0cd?.[_0x473f3a(0x19f)]&&(await _0x4a994c[_0x473f3a(0x175)](mkdir,_0x4a4e76[_0x473f3a(0x19b)],{'recursive':!![]}),await saveSettings(_0x4a4e76['name'],{'baseUrl':_0x48c0cd['baseUrl'],'headless':!![]}),console[_0x473f3a(0x17e)]('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x48c0cd['baseUrl']),_0x469ab1=!![]);const _0x361d07=_0x4a994c['VMHjq'](join,_0x4a4e76['path'],_0x4a994c[_0x473f3a(0x181)]);if(!_0x4a994c['fEdGj'](existsSync,_0x361d07)&&!_0x469ab1)throw new Error('CI\x20profile\x20\x22'+_0x4a4e76['name']+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x3b70bb=_0x4a994c['ZMNcU'](join,_0x4a4e76['path'],_0x4a994c['gseCw']),_0x517975=_0x4a994c['oycsM'](join,_0x4a4e76['path'],_0x4a994c[_0x473f3a(0x16f)]),_0x4a8c23=existsSync(_0x3b70bb),_0x12b2ce=existsSync(_0x517975);if(_0x12b2ce)try{const _0x575cb9=await _0x4a994c['iouqs'](getToken);if(!_0x575cb9)throw new Error(_0x4a994c[_0x473f3a(0x168)]);const _0x1aa5b0=await readFile(_0x517975);_0x4a994c[_0x473f3a(0x18d)](decrypt,_0x1aa5b0,_0x575cb9),console[_0x473f3a(0x17e)](_0x4a994c['PvDcg']);}catch(_0x49d8d3){const _0x5e1286=_0x49d8d3 instanceof Error?_0x49d8d3['message']:String(_0x49d8d3);throw new Error(_0x473f3a(0x185)+_0x4a4e76[_0x473f3a(0x187)]+'\x22:\x20'+_0x5e1286);}else _0x4a8c23?console['log']('✓\x20Auth\x20state\x20found'):console[_0x473f3a(0x17e)](_0x4a994c['kgiqP']);await _0x4a994c['fEdGj'](writeActiveProfileName,_0x4a4e76['name']),console['log']('✓\x20Active\x20profile:\x20'+_0x4a4e76['name']),_0x39c5e6?.['trackPhaseEnd'](_0x4a994c[_0x473f3a(0x17f)],{'profileName':_0x4a4e76['name'],'hasAuth':_0x4a8c23,'hasEncryptedAuth':_0x12b2ce,'createdSettings':_0x469ab1}),_0x39c5e6?.['trackPhaseStart'](_0x473f3a(0x172));const _0x185dcb=await installPluginNonInteractive();_0x39c5e6?.['trackPhaseEnd'](_0x4a994c['FuAiE'],{'installed':_0x185dcb}),_0x39c5e6?.[_0x473f3a(0x16e)](_0x473f3a(0x18a)),await skillup({'autoInstall':_0x473f3a(0x1a3)}),_0x39c5e6?.['trackPhaseEnd'](_0x473f3a(0x18a)),console['log']('\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a');}
@@ -1 +1 @@
1
- (function(_0x19d7fa,_0x3b4a98){const _0x4af02e=_0x24cd,_0x26126e=_0x19d7fa();while(!![]){try{const _0x269c07=-parseInt(_0x4af02e(0xa7))/0x1*(-parseInt(_0x4af02e(0xba))/0x2)+-parseInt(_0x4af02e(0xae))/0x3+-parseInt(_0x4af02e(0xbc))/0x4+-parseInt(_0x4af02e(0xbb))/0x5+-parseInt(_0x4af02e(0xcd))/0x6+-parseInt(_0x4af02e(0xbd))/0x7+-parseInt(_0x4af02e(0xb0))/0x8*(-parseInt(_0x4af02e(0xd3))/0x9);if(_0x269c07===_0x3b4a98)break;else _0x26126e['push'](_0x26126e['shift']());}catch(_0x57703d){_0x26126e['push'](_0x26126e['shift']());}}}(_0x5791,0x8f1dc));import{basename}from'path';import _0x3f0f8c from'inquirer';import{getToken}from'./utils/keychain.js';function _0x24cd(_0x196261,_0x4ea95a){_0x196261=_0x196261-0xa7;const _0x579146=_0x5791();let _0x24cd95=_0x579146[_0x196261];return _0x24cd95;}import{installSkill}from'./utils/skills.js';function _0x5791(){const _0x5c798a=['warn','RedIg','5399358YSCWfR','CaTDZ','/skills/','suppressUsage','stdin','xrHvK','14557041cHStWV','All\x20projects\x20(','931417iIpAwS','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','xuvsT','\x0a✅\x20Installed\x20','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','\x20skill','138852tuQnox','message','8ZORSwR','EPIcV','isTTY','VPLNd','project','user-level','EGYZi','KbMOo','/.claude/skills/','user','2whxdLF','3572020LsDEbM','447068NlABKz','1332198BHblNm','claude','To\x20use:','log','\x20\x203.\x20Run:\x20ranger\x20skillup','FAiCt','platform','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','autoInstall','stdout','\x20--opencode','opencode','WLCHA','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli'];_0x5791=function(){return _0x5c798a;};return _0x5791();}import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x25416b={}){const _0x425100=_0x24cd,_0x510d76={'RedIg':_0x425100(0xbe),'FAiCt':function(_0x3c7146){return _0x3c7146();},'WPNSc':'To\x20get\x20started:','naHJF':function(_0x302fc5,_0x293c11){return _0x302fc5===_0x293c11;},'WLCHA':_0x425100(0xc8),'VPLNd':_0x425100(0xc7),'EPIcV':function(_0x177837,_0x4567b8){return _0x177837===_0x4567b8;},'GArwH':function(_0x2cda12,_0x32cc83){return _0x2cda12===_0x32cc83;},'KbMOo':'list','xrHvK':'Where\x20should\x20skills\x20be\x20installed?','zyNFK':function(_0x365b3b){return _0x365b3b();},'EGYZi':'\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','ORhUQ':function(_0x58c5ce,_0x1de5d2){return _0x58c5ce instanceof _0x1de5d2;},'RWNpM':'user','xuvsT':'project-level','GTsFT':function(_0x5114ae,_0x155015){return _0x5114ae>_0x155015;},'PnkHd':_0x425100(0xbf),'CaTDZ':_0x425100(0xab),'aFTZy':'\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a'};console['log'](_0x425100(0xa8));const _0x27588d=_0x25416b[_0x425100(0xc3)]??_0x510d76[_0x425100(0xcc)],_0x30a5a4=await _0x510d76[_0x425100(0xc2)](getToken);if(!_0x30a5a4){console[_0x425100(0xc0)](_0x425100(0xac)),console['log'](_0x510d76['WPNSc']),console['log'](_0x425100(0xca)),console['log']('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x510d76['naHJF'](_0x27588d,_0x510d76[_0x425100(0xc9)])?_0x510d76[_0x425100(0xb3)]:'')+'\x20<your-api-token>'),console['log'](_0x425100(0xc1)+(_0x510d76[_0x425100(0xb1)](_0x27588d,'opencode')?_0x510d76[_0x425100(0xb3)]:'')+'\x0a');return;}console['log']('✓\x20Found\x20API\x20token');const _0x1c3d16=getProjectRoot(),_0x2ebabe=basename(_0x1c3d16),_0x10fa42=_0x510d76[_0x425100(0xb1)](_0x27588d,_0x425100(0xc8))?getOpencodeConfigDir(_0x425100(0xb9))+_0x425100(0xcf):_0x510d76['FAiCt'](getClaudeConfigDir)+'/skills/',_0x3d0f4d=_0x510d76['GArwH'](_0x27588d,_0x425100(0xc8))?_0x1c3d16+'/.opencode/skills/':_0x1c3d16+_0x425100(0xb8),_0x20c11f=process[_0x425100(0xd1)]['isTTY']&&process[_0x425100(0xc6)][_0x425100(0xb2)];let _0xa5f791;if(_0x25416b[_0x425100(0xc5)])_0xa5f791=_0x25416b[_0x425100(0xc5)];else{if(_0x20c11f){const _0x43614c=await _0x3f0f8c['prompt']([{'type':_0x510d76[_0x425100(0xb7)],'name':'installLevel','message':_0x510d76[_0x425100(0xd2)],'choices':[{'name':_0x425100(0xd4)+_0x10fa42+')','value':'user'},{'name':'This\x20project\x20only\x20('+_0x3d0f4d+')','value':_0x425100(0xb4)}]}]);_0xa5f791=_0x43614c['installLevel'];}else _0xa5f791=_0x425100(0xb4),console['log'](_0x425100(0xc4)+_0x3d0f4d+')');}let _0x1dc1de=0x0;const _0x81a172=_0x510d76['zyNFK'](getCurrentVersion);console[_0x425100(0xc0)]('\x0a📦\x20Installing\x20skills...\x0a');try{const _0x4ea4de=await installSkill('ranger',{'cliVersion':_0x81a172,'level':_0xa5f791,'platform':_0x27588d});_0x4ea4de&&_0x1dc1de++;}catch(_0x70bacb){console[_0x425100(0xcb)](_0x510d76[_0x425100(0xb6)],_0x510d76['ORhUQ'](_0x70bacb,Error)?_0x70bacb[_0x425100(0xaf)]:_0x70bacb);}if(_0x1dc1de>0x0){const _0x22feed=_0xa5f791===_0x510d76['RWNpM']?_0x425100(0xb5):_0x510d76[_0x425100(0xa9)];console['log'](_0x425100(0xaa)+_0x1dc1de+'\x20'+_0x22feed+_0x425100(0xad)+(_0x510d76['GTsFT'](_0x1dc1de,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x25416b[_0x425100(0xd0)]&&(console['log'](_0x510d76['PnkHd']),_0x27588d===_0x510d76['WLCHA']?console['log'](_0x510d76[_0x425100(0xce)]):console[_0x425100(0xc0)]('\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'));}else console['log'](_0x510d76['aFTZy']);}
1
+ (function(_0x555760,_0xae5af4){const _0x55b20b=_0x3646,_0x29df01=_0x555760();while(!![]){try{const _0x41d4d1=parseInt(_0x55b20b(0x18a))/0x1+parseInt(_0x55b20b(0x1b0))/0x2+-parseInt(_0x55b20b(0x192))/0x3*(parseInt(_0x55b20b(0x195))/0x4)+-parseInt(_0x55b20b(0x1a9))/0x5*(parseInt(_0x55b20b(0x1a4))/0x6)+-parseInt(_0x55b20b(0x19a))/0x7+-parseInt(_0x55b20b(0x1aa))/0x8*(-parseInt(_0x55b20b(0x196))/0x9)+parseInt(_0x55b20b(0x1a0))/0xa;if(_0x41d4d1===_0xae5af4)break;else _0x29df01['push'](_0x29df01['shift']());}catch(_0x4bc337){_0x29df01['push'](_0x29df01['shift']());}}}(_0x11e1,0x27906));function _0x3646(_0x43d3f9,_0x480a73){_0x43d3f9=_0x43d3f9-0x185;const _0x11e18e=_0x11e1();let _0x36467f=_0x11e18e[_0x43d3f9];return _0x36467f;}import{basename}from'path';import _0x62e0c3 from'inquirer';import{getToken}from'./utils/keychain.js';function _0x11e1(){const _0x416c80=['844wRjMSR','236538gIoePe','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','2|5|1|0|3|4','ranger','1500226rXpDta','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','installLevel','isTTY','To\x20use:','/.claude/skills/','4718200zOrsft','opencode','\x20\x203.\x20Run:\x20ranger\x20skillup','fTkUe','2184tbqUBx','\x20--opencode','\x0a📦\x20Installing\x20skills...\x0a','lxPCT','GBkNB','3200VmMELo','16ALjKmy','autoInstall','JOfqB','kiLSx','stdin','log','151004ZrWRzU','platform','\x0a✅\x20Installed\x20','\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a','warn','OJPOY','All\x20projects\x20(','\x20skill','266233wAjtRx','\x20\x202.\x20Run:\x20ranger\x20setup','zggOg','claude','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','suppressUsage','prompt','dcjOU','3651yRLTjp','uaFWh','/skills/'];_0x11e1=function(){return _0x416c80;};return _0x11e1();}import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x1aa5ed={}){const _0x42c92d=_0x3646,_0x1482b4={'OJPOY':function(_0x377483){return _0x377483();},'pRuZE':function(_0x1770ae,_0x40d056){return _0x1770ae===_0x40d056;},'zggOg':'opencode','MBExm':'\x20--opencode','oviMG':'To\x20get\x20started:','uaFWh':'user','dcjOU':'installLevel','JOfqB':'project','kiLSx':function(_0x8e18e7,_0x48e095,_0x333b12){return _0x8e18e7(_0x48e095,_0x333b12);},'GBkNB':_0x42c92d(0x199),'neJKY':function(_0x67358e,_0x78c327){return _0x67358e instanceof _0x78c327;},'lxPCT':function(_0x4892df,_0x4a7171){return _0x4892df>_0x4a7171;},'fdWEs':function(_0xe2d2bb,_0x35382c){return _0xe2d2bb>_0x35382c;},'goAfb':_0x42c92d(0x19e),'fTkUe':_0x42c92d(0x197),'CkBFB':'\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!','Myydc':_0x42c92d(0x185)};console[_0x42c92d(0x1af)](_0x42c92d(0x19b));const _0x13996a=_0x1aa5ed[_0x42c92d(0x1b1)]??_0x42c92d(0x18d),_0x200c89=await _0x1482b4[_0x42c92d(0x187)](getToken);if(!_0x200c89){const _0x143a01=_0x42c92d(0x198)['split']('|');let _0x19cc72=0x0;while(!![]){switch(_0x143a01[_0x19cc72++]){case'0':console[_0x42c92d(0x1af)](_0x42c92d(0x18b)+(_0x1482b4['pRuZE'](_0x13996a,_0x1482b4[_0x42c92d(0x18c)])?_0x1482b4['MBExm']:'')+'\x20<your-api-token>');continue;case'1':console[_0x42c92d(0x1af)]('\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli');continue;case'2':console['log']('❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a');continue;case'3':console['log'](_0x42c92d(0x1a2)+(_0x13996a===_0x1482b4['zggOg']?_0x42c92d(0x1a5):'')+'\x0a');continue;case'4':return;case'5':console['log'](_0x1482b4['oviMG']);continue;}break;}}console[_0x42c92d(0x1af)]('✓\x20Found\x20API\x20token');const _0x434c22=_0x1482b4[_0x42c92d(0x187)](getProjectRoot),_0x27b670=basename(_0x434c22),_0x5dcc1a=_0x13996a===_0x1482b4['zggOg']?getOpencodeConfigDir(_0x1482b4[_0x42c92d(0x193)])+'/skills/':getClaudeConfigDir()+_0x42c92d(0x194),_0x567fd4=_0x13996a==='opencode'?_0x434c22+'/.opencode/skills/':_0x434c22+_0x42c92d(0x19f),_0x59d744=process[_0x42c92d(0x1ae)][_0x42c92d(0x19d)]&&process['stdout'][_0x42c92d(0x19d)];let _0x516b72;if(_0x1aa5ed['autoInstall'])_0x516b72=_0x1aa5ed[_0x42c92d(0x1ab)];else{if(_0x59d744){const _0x58a6ab=await _0x62e0c3[_0x42c92d(0x190)]([{'type':'list','name':_0x1482b4[_0x42c92d(0x191)],'message':'Where\x20should\x20skills\x20be\x20installed?','choices':[{'name':_0x42c92d(0x188)+_0x5dcc1a+')','value':_0x1482b4[_0x42c92d(0x193)]},{'name':'This\x20project\x20only\x20('+_0x567fd4+')','value':_0x1482b4[_0x42c92d(0x1ac)]}]}]);_0x516b72=_0x58a6ab[_0x42c92d(0x19c)];}else _0x516b72=_0x1482b4['JOfqB'],console[_0x42c92d(0x1af)]('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x567fd4+')');}let _0xed6581=0x0;const _0x43d91=getCurrentVersion();console[_0x42c92d(0x1af)](_0x42c92d(0x1a6));try{const _0x299620=await _0x1482b4[_0x42c92d(0x1ad)](installSkill,_0x1482b4[_0x42c92d(0x1a8)],{'cliVersion':_0x43d91,'level':_0x516b72,'platform':_0x13996a});_0x299620&&_0xed6581++;}catch(_0x1cc86a){console[_0x42c92d(0x186)](_0x42c92d(0x18e),_0x1482b4['neJKY'](_0x1cc86a,Error)?_0x1cc86a['message']:_0x1cc86a);}if(_0x1482b4[_0x42c92d(0x1a7)](_0xed6581,0x0)){const _0x3dc573=_0x516b72==='user'?'user-level':'project-level';console['log'](_0x42c92d(0x1b2)+_0xed6581+'\x20'+_0x3dc573+_0x42c92d(0x189)+(_0x1482b4['fdWEs'](_0xed6581,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x1aa5ed[_0x42c92d(0x18f)]&&(console['log'](_0x1482b4['goAfb']),_0x13996a===_0x42c92d(0x1a1)?console[_0x42c92d(0x1af)](_0x1482b4[_0x42c92d(0x1a3)]):console[_0x42c92d(0x1af)](_0x1482b4['CkBFB']));}else console[_0x42c92d(0x1af)](_0x1482b4['Myydc']);}
@@ -1 +1 @@
1
- const _0x43e1a5=_0x3bb9;(function(_0x571637,_0x41c3a3){const _0x17a405=_0x3bb9,_0x576f71=_0x571637();while(!![]){try{const _0x4868a3=-parseInt(_0x17a405(0x112))/0x1*(-parseInt(_0x17a405(0xbe))/0x2)+-parseInt(_0x17a405(0xcf))/0x3+parseInt(_0x17a405(0xe7))/0x4+parseInt(_0x17a405(0xd0))/0x5+-parseInt(_0x17a405(0xf4))/0x6+-parseInt(_0x17a405(0x116))/0x7+parseInt(_0x17a405(0xd7))/0x8*(-parseInt(_0x17a405(0x12c))/0x9);if(_0x4868a3===_0x41c3a3)break;else _0x576f71['push'](_0x576f71['shift']());}catch(_0x3467c4){_0x576f71['push'](_0x576f71['shift']());}}}(_0x4623,0xc04ae));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x43b0b3 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2',bold=_0x1b7cc9=>_0x43e1a5(0xb9)+_0x1b7cc9+'\x1b[0m';function getPlaywrightVersion(){const _0x53522e=_0x43e1a5,_0x3c0ca3={'RUWsq':_0x53522e(0xe0)};try{const _0x2dba21=require[_0x53522e(0x11b)](_0x3c0ca3[_0x53522e(0xee)]),_0x4133c2=require(_0x2dba21);return _0x4133c2[_0x53522e(0xd8)];}catch{return null;}}function installChromiumBinary(_0x1e2729){const _0x188b7b=_0x43e1a5,_0xc64c63={'Fyljq':function(_0x80616e,_0x1dd577){return _0x80616e===_0x1dd577;},'dRFqE':function(_0x5aabf0,_0x14ff29){return _0x5aabf0(_0x14ff29);},'czfxd':'install','qMrxX':function(_0x566763,_0x231bbb,_0x2241d4,_0x500513){return _0x566763(_0x231bbb,_0x2241d4,_0x500513);},'soaVN':'inherit','BmElR':_0x188b7b(0x103),'rZVWE':_0x188b7b(0x131),'nAHwC':'error'};return new Promise((_0x2f6cd4,_0x4a6abc)=>{const _0x3ed48b=_0x188b7b,_0x4287db=['playwright@'+_0x1e2729,_0xc64c63['czfxd'],_0x3ed48b(0x118)],_0x15e7d0=_0xc64c63[_0x3ed48b(0x12f)](spawn,_0x3ed48b(0x120),_0x4287db,{'stdio':_0xc64c63['soaVN'],'shell':process['platform']===_0xc64c63[_0x3ed48b(0xfb)]});_0x15e7d0['on'](_0xc64c63['rZVWE'],_0x4dd8e6=>{const _0x44e5e4=_0x3ed48b;_0xc64c63[_0x44e5e4(0xff)](_0x4dd8e6,0x0)?_0x2f6cd4():_0x4a6abc(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x4dd8e6));}),_0x15e7d0['on'](_0xc64c63['nAHwC'],_0x22a8c8=>{_0xc64c63['dRFqE'](_0x4a6abc,_0x22a8c8);});});}export async function authenticate(_0x1cfabf){const _0x487118=_0x43e1a5,_0x863534={'xWXLi':function(_0x72b6e){return _0x72b6e();},'NTjhP':function(_0x3743d6,_0x5f50ea){return _0x3743d6(_0x5f50ea);},'HaZOb':_0x487118(0xfd),'eHugv':function(_0x45cacf,_0xb6f438){return _0x45cacf instanceof _0xb6f438;},'fMewH':_0x487118(0x123),'jwoBv':_0x487118(0xbb)};if(!_0x1cfabf){const _0x530a3f=await _0x863534[_0x487118(0xd5)](getToken);if(_0x530a3f){const _0x389f11=await _0x863534[_0x487118(0xf2)](getCurrentUser,_0x530a3f);if(_0x389f11['success'])return console[_0x487118(0xd9)](_0x487118(0xea)+_0x389f11[_0x487118(0xf8)][_0x487118(0x114)]),{'token':_0x530a3f,'method':_0x863534['HaZOb']};}try{_0x1cfabf=await _0x863534[_0x487118(0xd5)](runDeviceAuthFlow);}catch(_0x1296f2){throw new Error(_0x487118(0x11a)+(_0x863534[_0x487118(0xf6)](_0x1296f2,Error)?_0x1296f2[_0x487118(0xfc)]:_0x1296f2));}const _0x50e4f2=await getCurrentUser(_0x1cfabf);if(!_0x50e4f2['success'])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x50e4f2['error']);return console[_0x487118(0xd9)]('✓\x20Authenticated\x20to\x20'+_0x50e4f2[_0x487118(0xf8)]['organizationName']),{'token':_0x1cfabf,'method':_0x863534['fMewH']};}console[_0x487118(0xd9)](_0x863534['jwoBv']);const _0x13d6af=await getCurrentUser(_0x1cfabf);if(!_0x13d6af[_0x487118(0x111)]){if(_0x13d6af[_0x487118(0x100)])throw new Error('Authentication\x20failed:\x20'+_0x13d6af['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error(_0x487118(0x110)+_0x13d6af[_0x487118(0x121)]+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x487118(0xd9)]('✓\x20Authenticated\x20to\x20'+_0x13d6af[_0x487118(0xf8)][_0x487118(0x114)]),await storeToken(_0x1cfabf),console['log'](process['env'][_0x487118(0xda)]?_0x487118(0xd1):'✓\x20Stored\x20credentials\x20locally'),{'token':_0x1cfabf,'method':'provided_token'};}export async function ensureRangerDir(){const _0x120789=_0x43e1a5,_0xa4e9a7={'nJmYu':'.ranger','JMgXo':function(_0x28fee3){return _0x28fee3();},'mwiOd':function(_0x549782,_0x53df5f){return _0x549782(_0x53df5f);},'IjsHE':function(_0x32c1fb,_0x406fbb,_0x4c1826){return _0x32c1fb(_0x406fbb,_0x4c1826);},'anyrB':'✓\x20Created\x20.ranger/\x20directory'},_0x35c24f=findGitRoot(),_0x234c8d=_0x35c24f?join(_0x35c24f,_0xa4e9a7[_0x120789(0xb6)]):_0xa4e9a7[_0x120789(0x10f)](getRangerDir);return!_0xa4e9a7['mwiOd'](existsSync,_0x234c8d)?(await _0xa4e9a7['IjsHE'](mkdir,_0x234c8d,{'recursive':!![]}),console['log'](_0xa4e9a7[_0x120789(0xe4)]),{'path':_0x234c8d,'installed':!![]}):(console['log']('✓\x20.ranger/\x20directory\x20already\x20exists'),{'path':_0x234c8d,'installed':![]});}export async function ensureChromium(){const _0x515731=_0x43e1a5,_0x413c41={'EYZTa':function(_0x4b1ccd,_0x47e8b9){return _0x4b1ccd(_0x47e8b9);},'uBOoP':function(_0x239888){return _0x239888();},'mjKAB':function(_0xdb3b6,_0x15c7f3){return _0xdb3b6??_0x15c7f3;},'pUQZU':'confirm','EJnfT':'\x20(fallback\x20version)','UjeLL':_0x515731(0xeb),'DZBok':_0x515731(0x125),'bPExU':'\x0a❌\x20Failed\x20to\x20install\x20Chromium:','ITlhq':_0x515731(0xed)};let _0x5d73b5=![];try{const _0x3dfedc=chromium['executablePath']();_0x5d73b5=_0x413c41['EYZTa'](existsSync,_0x3dfedc);}catch{_0x5d73b5=![];}if(_0x5d73b5)return console[_0x515731(0xd9)](_0x515731(0x119)),![];const _0x4aa909=_0x413c41[_0x515731(0xe5)](getPlaywrightVersion),_0x44431f=_0x413c41['mjKAB'](_0x4aa909,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x473e4d=!_0x4aa909,_0x539b7b=process[_0x515731(0xc1)][_0x515731(0x104)]&&process[_0x515731(0xd4)]['isTTY'];let _0x5c7d02=!![];if(_0x539b7b){const {install:_0xc14d4b}=await _0x43b0b3['prompt']([{'type':_0x413c41['pUQZU'],'name':_0x515731(0xc2),'message':_0x473e4d?_0x515731(0xe9)+_0x44431f+_0x515731(0xf7):_0x515731(0xdb)+_0x44431f+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x5c7d02=_0xc14d4b;}else console['log']('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20'+_0x44431f+(_0x473e4d?_0x413c41[_0x515731(0x11c)]:'')+'...');if(_0x5c7d02){console['log'](_0x413c41['UjeLL']);try{await _0x413c41['EYZTa'](installChromiumBinary,_0x44431f),console[_0x515731(0xd9)](_0x413c41['DZBok']);}catch(_0x2851b0){console['error'](_0x413c41[_0x515731(0xf3)],_0x2851b0 instanceof Error?_0x2851b0[_0x515731(0xfc)]:_0x2851b0),console[_0x515731(0xd9)]('You\x20can\x20install\x20it\x20manually\x20by\x20running:'),console[_0x515731(0xd9)](_0x515731(0xe2)+_0x44431f+_0x515731(0xbc));}}else console[_0x515731(0xd9)](_0x413c41[_0x515731(0xc9)]),console['log']('You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'),console['log'](_0x515731(0xe2)+_0x44431f+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x44feaa){const _0xcc6f3d=_0x43e1a5,_0x14d995={'HgByK':function(_0x9de644,_0x571eaf,_0xa1396){return _0x9de644(_0x571eaf,_0xa1396);},'tqHcN':'✓\x20Created\x20.ranger/.gitignore'},_0xf90088=_0x14d995[_0xcc6f3d(0x12b)](join,_0x44feaa,_0xcc6f3d(0xc8)),_0x31b531='\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a';await writeFile(_0xf90088,_0x31b531),console[_0xcc6f3d(0xd9)](_0x14d995['tqHcN']);}function _0x4623(){const _0x542372=['allowInsecureLocalhost','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','playwright/package.json','VLEjd','\x20\x20npx\x20playwright@','scope','anyrB','uBOoP','znWnc','3478536ssKNAp','KXMsh','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','✓\x20Already\x20authenticated\x20to\x20','\x0aInstalling\x20Chromium\x20browser...\x0a','mrDDZ','\x0a⚠\x20Skipping\x20Chromium\x20installation.','RUWsq','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','plugin','ZbyiI','NTjhP','bPExU','2115396btrTcv','RFjON','eHugv','\x20now?','user','DZmLG','nYGXH','BmElR','message','existing_token','skills','Fyljq','status','skipChromium','confirm','win32','isTTY','\x0a🚀\x20Ranger\x20Setup\x0a','git_check','PJOUO','trackPhaseEnd','rsVuC','auth','CXmNZ','use\x20until\x20the\x20session\x20expires.\x0a','/ranger:enable','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','JMgXo','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','success','353yOjTAw','ready','organizationName','KsvOd','9215535LkuzPj','FkIEA','chromium','✓\x20Playwright\x20Chromium\x20browser\x20found','Authentication\x20failed:\x20','resolve','EJnfT','ranger','and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','local','npx','error','kMzYc','device_auth','WlHuY','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','nAEoZ','skipped','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','ASaEC','VNNWT','HgByK','27tcycTj','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','url','qMrxX','pPQOu','close','nJmYu','force','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','\x1b[1m','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','Validating\x20API\x20token...','\x20install\x20chromium','SQvSI','8266KzhNxt','ranger\x20profile\x20add\x20local','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','stdin','install','trackPhaseError','OYsEu','MxDzl','No\x20git\x20repository\x20found','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','.gitignore','ITlhq','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','dlpQv','opencode','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','vhznV','2132718KCJgVm','5026225cYvcCT','✓\x20Exported\x20credentials\x20for\x20CI','\x20and\x20prompt\x20the\x20coding','\x0aIn\x20Claude\x20Code,\x20run\x20','stdout','xWXLi','trackPhaseStart','443256MtREUg','version','log','GITHUB_ENV','The\x20required\x20version\x20(','OoHLj'];_0x4623=function(){return _0x542372;};return _0x4623();}function printProfileSetupLaterInstructions(){const _0x19195e=_0x43e1a5,_0x36d6a2={'MxDzl':function(_0x1f8088,_0x1205c2){return _0x1f8088(_0x1205c2);},'WlHuY':_0x19195e(0xc0)};console['log']('\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:'),console[_0x19195e(0xd9)]('\x20\x20'+_0x36d6a2[_0x19195e(0xc5)](bold,_0x19195e(0xbf))),console[_0x19195e(0xd9)](_0x36d6a2[_0x19195e(0x124)]);}function _0x3bb9(_0x2f5d9d,_0x4148f7){_0x2f5d9d=_0x2f5d9d-0xb6;const _0x4623de=_0x4623();let _0x3bb9ef=_0x4623de[_0x2f5d9d];return _0x3bb9ef;}async function ensureLocalEnv(_0x39e1bd,_0x2d5bee){const _0x1f1555=_0x43e1a5,_0x268e27={'VLEjd':function(_0x2b9e98){return _0x2b9e98();},'wPLTw':'⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','lRGGE':'local','mrDDZ':'to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','TASqF':_0x1f1555(0x10c),'IQcaQ':_0x1f1555(0x128),'ZbyiI':_0x1f1555(0x102),'nYGXH':_0x1f1555(0xcd),'MOizg':function(_0x3fb17e,_0x1fdd6d,_0x1002d7,_0x5737e2){return _0x3fb17e(_0x1fdd6d,_0x1002d7,_0x5737e2);},'zSBky':'\x0a❌\x20Profile\x20setup\x20failed:','pPQOu':function(_0x281cd6,_0x11b99f){return _0x281cd6 instanceof _0x11b99f;}};if(!_0x268e27[_0x1f1555(0xe1)](findGitRoot))return console['log'](_0x268e27['wPLTw']),{'ready':![],'skipped':!![]};if(findExistingEnv(_0x268e27['lRGGE'],{'locations':[_0x1f1555(0x11f)]}))return console['log']('✓\x20Local\x20profile\x20already\x20exists'),{'ready':!![],'skipped':![]};const _0x654a1b=process[_0x1f1555(0xc1)]['isTTY']&&process[_0x1f1555(0xd4)][_0x1f1555(0x104)];if(_0x654a1b&&!_0x39e1bd?.['url']){console['log'](_0x1f1555(0x12d)),console['log'](_0x268e27[_0x1f1555(0xec)]),console[_0x1f1555(0xd9)]('auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'),console['log'](_0x268e27['TASqF']),console['log'](_0x268e27['IQcaQ']);const {wantsProfile:_0xd5fed9}=await _0x43b0b3['prompt']([{'type':_0x268e27[_0x1f1555(0xf1)],'name':'wantsProfile','message':_0x268e27[_0x1f1555(0xfa)],'default':!![]}]);if(!_0xd5fed9)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await _0x268e27['MOizg'](addEnv,_0x268e27['lRGGE'],{'url':_0x39e1bd?.['url'],'force':_0x39e1bd?.[_0x1f1555(0xb7)],'allowInsecureLocalhost':_0x39e1bd?.[_0x1f1555(0xdd)]},_0x2d5bee),{'ready':!![],'skipped':![]};}catch(_0x2f40b8){return console['error'](_0x268e27['zSBky'],_0x268e27[_0x1f1555(0x130)](_0x2f40b8,Error)?_0x2f40b8['message']:_0x2f40b8),printProfileSetupLaterInstructions(),{'ready':![],'skipped':![]};}}export async function start(_0x396405,_0x5ca3f2,_0x33dee2){const _0xdfd664=_0x43e1a5,_0x18c922={'znWnc':_0xdfd664(0xc7),'LxYwF':_0xdfd664(0xf8),'fLdwv':'git_check','KXMsh':function(_0x10f066){return _0x10f066();},'nAEoZ':_0xdfd664(0xc6),'tpzmM':_0xdfd664(0x10a),'XupYy':function(_0x2ff9ee,_0x315cd7){return _0x2ff9ee(_0x315cd7);},'OoHLj':_0xdfd664(0x118),'dlpQv':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','KsvOd':_0xdfd664(0xde),'VNNWT':_0xdfd664(0xf0),'RFjON':function(_0x5c62d1,_0x19c542){return _0x5c62d1(_0x19c542);},'kMzYc':function(_0x13528a,_0x3ef3d8){return _0x13528a&&_0x3ef3d8;},'SQvSI':_0xdfd664(0xfe),'FkIEA':function(_0x281b11){return _0x281b11();},'OYsEu':'opencode','vBHLr':_0xdfd664(0xef),'xUqpD':function(_0x30c00b,_0x4e3442){return _0x30c00b instanceof _0x4e3442;},'KnYTY':_0xdfd664(0xdf),'vhznV':_0xdfd664(0xbf),'ASaEC':'profile','DZmLG':function(_0xc8f6c7,_0x4c0dcd,_0x31d8f9){return _0xc8f6c7(_0x4c0dcd,_0x31d8f9);},'CXmNZ':_0xdfd664(0xca),'rsVuC':'verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','qCqNp':function(_0x1c07bf,_0x2bdc5b){return _0x1c07bf(_0x2bdc5b);},'PJOUO':_0xdfd664(0x10d),'JhnAP':function(_0x3b56f4,_0x2b6151){return _0x3b56f4+_0x2b6151;}};console[_0xdfd664(0xd9)](_0xdfd664(0x105));const _0x591b42=process['stdin'][_0xdfd664(0x104)]&&process[_0xdfd664(0xd4)]['isTTY'];!_0x591b42&&!_0x5ca3f2?.[_0xdfd664(0xe3)]&&(console['log'](_0x18c922[_0xdfd664(0xe6)]),_0x5ca3f2={..._0x5ca3f2,'scope':_0x18c922['LxYwF']});_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922['fLdwv']);if(!_0x18c922[_0xdfd664(0xe8)](findGitRoot)){await _0x33dee2?.[_0xdfd664(0xc3)](_0xdfd664(0x106),new Error(_0x18c922[_0xdfd664(0x126)]));throw new Error('No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.');}_0x33dee2?.[_0xdfd664(0x108)](_0x18c922['fLdwv']);const _0x28dade=!existsSync(getRangerDir()),{path:_0x36970}=await ensureRangerDir();_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922['tpzmM']);const _0x2a85a0=await _0x18c922['XupYy'](authenticate,_0x396405);_0x33dee2?.[_0xdfd664(0x108)]('auth',{'isFirstRun':_0x28dade,'method':_0x2a85a0['method']}),_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922[_0xdfd664(0xdc)]);_0x5ca3f2?.['skipChromium']?console[_0xdfd664(0xd9)](_0x18c922[_0xdfd664(0xcb)]):await ensureChromium();_0x33dee2?.['trackPhaseEnd'](_0x18c922[_0xdfd664(0xdc)],{'isFirstRun':_0x28dade,'skipped':!!_0x5ca3f2?.[_0xdfd664(0x101)]}),await writeRangerGitignore(_0x36970),console[_0xdfd664(0xd9)](_0x18c922[_0xdfd664(0x115)]);const _0x5cb3a8=_0x5ca3f2?.[_0xdfd664(0xe3)],_0x2bdd36=_0x5ca3f2?.[_0xdfd664(0xcc)]??![];let _0x57cddc=null;_0x2bdd36?(_0x33dee2?.[_0xdfd664(0xd6)]('plugin'),_0x57cddc=await _0x18c922['XupYy'](ensureOpencodePluginConfig,_0x5cb3a8),_0x33dee2?.[_0xdfd664(0x108)](_0x18c922[_0xdfd664(0x12a)],{'isFirstRun':_0x28dade,'opencode':!![]})):(_0x33dee2?.['trackPhaseStart'](_0xdfd664(0xf0)),await _0x18c922['RFjON'](ensureClaudePlugin,_0x5cb3a8),_0x33dee2?.['trackPhaseEnd']('plugin',{'isFirstRun':_0x28dade}));if(_0x18c922[_0xdfd664(0x122)](_0x2bdd36,_0x57cddc)){_0x33dee2?.['trackPhaseStart'](_0x18c922[_0xdfd664(0xbd)]);try{await installSkill(_0xdfd664(0x11d),{'level':_0x57cddc['scope'],'cliVersion':_0x18c922[_0xdfd664(0x117)](getCurrentVersion),'platform':_0x18c922[_0xdfd664(0xc4)]}),_0x33dee2?.['trackPhaseEnd'](_0xdfd664(0xfe),{'isFirstRun':_0x28dade,'opencode':!![]});}catch(_0x25fb06){console['warn'](_0x18c922['vBHLr'],_0x18c922['xUqpD'](_0x25fb06,Error)?_0x25fb06[_0xdfd664(0xfc)]:_0x25fb06),_0x33dee2?.['trackPhaseEnd']('skills',{'isFirstRun':_0x28dade,'opencode':!![],'failed':!![]});}}else _0x33dee2?.['trackPhaseStart']('skills'),await ensureClaudeSkills(_0x5cb3a8),_0x33dee2?.[_0xdfd664(0x108)](_0x18c922[_0xdfd664(0xbd)],{'isFirstRun':_0x28dade});if(!_0x591b42&&!_0x5ca3f2?.[_0xdfd664(0x12e)])console['log'](_0x18c922['KnYTY']),console['log']('\x20\x20'+_0x18c922[_0xdfd664(0xf5)](bold,_0x18c922[_0xdfd664(0xce)])+'\x0a');else{_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922[_0xdfd664(0x129)]);const _0x496ab5=await _0x18c922[_0xdfd664(0xf9)](ensureLocalEnv,{'url':_0x5ca3f2?.['url'],'force':_0x5ca3f2?.[_0xdfd664(0xb7)],'allowInsecureLocalhost':_0x5ca3f2?.[_0xdfd664(0xdd)]},_0x33dee2);_0x33dee2?.['trackPhaseEnd'](_0x18c922['ASaEC'],{'isFirstRun':_0x28dade,'profileReady':_0x496ab5[_0xdfd664(0x113)],'userSkipped':_0x496ab5[_0xdfd664(0x127)]}),_0x496ab5[_0xdfd664(0x113)]&&console['log']('\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.');}if(_0x2bdd36)console['log'](_0x18c922[_0xdfd664(0x10b)]),console['log'](_0xdfd664(0x11e)),console['log'](_0xdfd664(0xba)),console['log'](_0x18c922[_0xdfd664(0x109)]);else{const _0x381514=_0x18c922['qCqNp'](bold,_0x18c922[_0xdfd664(0x107)]);console['log'](_0x18c922['JhnAP'](_0xdfd664(0xd3)+_0x381514+_0xdfd664(0xd2)+'\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with',_0xdfd664(0x10e))+_0xdfd664(0xb8));}}
1
+ const _0x5cec03=_0x17d0;(function(_0x1e416a,_0x25b5f6){const _0x3fc3ee=_0x17d0,_0x52fd1d=_0x1e416a();while(!![]){try{const _0x28ab11=-parseInt(_0x3fc3ee(0x1c9))/0x1*(-parseInt(_0x3fc3ee(0x1ac))/0x2)+-parseInt(_0x3fc3ee(0x205))/0x3*(parseInt(_0x3fc3ee(0x1ee))/0x4)+parseInt(_0x3fc3ee(0x1de))/0x5*(-parseInt(_0x3fc3ee(0x217))/0x6)+-parseInt(_0x3fc3ee(0x1ef))/0x7*(-parseInt(_0x3fc3ee(0x1ae))/0x8)+-parseInt(_0x3fc3ee(0x207))/0x9*(-parseInt(_0x3fc3ee(0x1d2))/0xa)+-parseInt(_0x3fc3ee(0x1e0))/0xb+parseInt(_0x3fc3ee(0x1ce))/0xc;if(_0x28ab11===_0x25b5f6)break;else _0x52fd1d['push'](_0x52fd1d['shift']());}catch(_0x3033bb){_0x52fd1d['push'](_0x52fd1d['shift']());}}}(_0x14a2,0x37350));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x2cfe02 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 _0x14a2(){const _0x488365=['error','zOxsX','scope','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','VXGrv','uqRel','log','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','156HfVYek','skipped','232137NyBnGu','\x1b[1m','✓\x20Playwright\x20Chromium\x20browser\x20found','AuVMJ','✓\x20.ranger/\x20directory\x20already\x20exists','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','✓\x20Already\x20authenticated\x20to\x20','method','HIWgU','ranger\x20profile\x20add\x20local','Authentication\x20failed:\x20','✓\x20Stored\x20credentials\x20locally','sUHGk','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','skipChromium','stdin','33990kWVJvz','vmuMH','trackPhaseEnd','zMKgj','plugin','opencode','✓\x20Authenticated\x20to\x20','GITHUB_ENV','XuNxr','MoDCZ','\x0aIn\x20Claude\x20Code,\x20run\x20','VuucO','install','DFOgk','bIzkP','99934fOZEvB','resolve','1354168uKOSae','organizationName','to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','warn','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','mwoCZ','url','playwright@','success','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','EDRQG','Vgddx','oNZtc','GoFsN','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','user','QnZag','ready','close','\x0a❌\x20Failed\x20to\x20install\x20Chromium:','\x0a🚀\x20Ranger\x20Setup\x0a','\x1b[0m','trackPhaseError','existing_token','You\x20can\x20install\x20it\x20manually\x20by\x20running:','/ranger:enable','4sxzvlV','1.58.2','git_check','\x20install\x20chromium','local','3519684ZqURbo','stdout','sQUdz','XupoP','30xoThRm','allowInsecureLocalhost','\x20and\x20prompt\x20the\x20coding','QaPZD','message','ONdWC','ranger','.ranger','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','bJrYy','Installation\x20failed\x20with\x20exit\x20code\x20','HGPqZ','40fdtqhV',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','193479kpMBep','✓\x20Local\x20profile\x20already\x20exists','npx','mlqpV','mOxmW','iYsrZ','prompt','Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','xPTOC','The\x20required\x20version\x20(','chromium','isTTY','FzlnA','\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','34676IpGcES','7vPwUtd','use\x20until\x20the\x20session\x20expires.\x0a','ZDdVC','\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','No\x20git\x20repository\x20found','confirm','Ozale','trackPhaseStart','skills','tJYZy','eWSFq','status','wantsProfile','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'];_0x14a2=function(){return _0x488365;};return _0x14a2();}import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';function _0x17d0(_0x5c6a62,_0x2d7abf){_0x5c6a62=_0x5c6a62-0x1a2;const _0x14a2e9=_0x14a2();let _0x17d0fe=_0x14a2e9[_0x5c6a62];return _0x17d0fe;}const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION=_0x5cec03(0x1ca),bold=_0x5d6828=>_0x5cec03(0x208)+_0x5d6828+_0x5cec03(0x1c4);function getPlaywrightVersion(){const _0x3f20ab=_0x5cec03,_0x304da1={'Ozale':'playwright/package.json'};try{const _0x15aa9d=require[_0x3f20ab(0x1ad)](_0x304da1[_0x3f20ab(0x1f5)]),_0x20ec9f=require(_0x15aa9d);return _0x20ec9f['version'];}catch{return null;}}function installChromiumBinary(_0x1db977){const _0xdb4aa2=_0x5cec03,_0x41e54b={'qVmUg':function(_0x3636ad){return _0x3636ad();},'BPxup':function(_0xa18e16,_0x1a40b8){return _0xa18e16(_0x1a40b8);},'JXXaa':_0xdb4aa2(0x1ea),'nSOTZ':function(_0x654a49,_0x516fc3){return _0x654a49===_0x516fc3;},'ZDdVC':_0xdb4aa2(0x1c1),'AuVMJ':'error'};return new Promise((_0x428e02,_0x282be6)=>{const _0x4a3149=_0xdb4aa2,_0x17b47f=[_0x4a3149(0x1b5)+_0x1db977,_0x4a3149(0x1a9),_0x41e54b['JXXaa']],_0x15ba15=spawn(_0x4a3149(0x1e2),_0x17b47f,{'stdio':'inherit','shell':_0x41e54b['nSOTZ'](process['platform'],'win32')});_0x15ba15['on'](_0x41e54b[_0x4a3149(0x1f1)],_0x17b4c6=>{const _0x522e0a=_0x4a3149;_0x17b4c6===0x0?_0x41e54b['qVmUg'](_0x428e02):_0x41e54b['BPxup'](_0x282be6,new Error(_0x522e0a(0x1dc)+_0x17b4c6));}),_0x15ba15['on'](_0x41e54b[_0x4a3149(0x20a)],_0x48e543=>{_0x282be6(_0x48e543);});});}export async function authenticate(_0x9875c4){const _0x2372c2=_0x5cec03,_0x564cea={'bJrYy':function(_0x513e06,_0x6ee777){return _0x513e06(_0x6ee777);},'CRiMy':_0x2372c2(0x1c6),'vmuMH':function(_0x5b350b,_0x14f0f7){return _0x5b350b instanceof _0x14f0f7;},'zgRYB':function(_0x17a49a,_0x3dbea1){return _0x17a49a(_0x3dbea1);},'ZLTua':'Validating\x20API\x20token...','QaPZD':'provided_token'};if(!_0x9875c4){const _0x80792c=await getToken();if(_0x80792c){const _0x32552f=await _0x564cea[_0x2372c2(0x1db)](getCurrentUser,_0x80792c);if(_0x32552f[_0x2372c2(0x1b6)])return console[_0x2372c2(0x203)](_0x2372c2(0x20d)+_0x32552f['user']['organizationName']),{'token':_0x80792c,'method':_0x564cea['CRiMy']};}try{_0x9875c4=await runDeviceAuthFlow();}catch(_0x220ec7){throw new Error('Authentication\x20failed:\x20'+(_0x564cea[_0x2372c2(0x218)](_0x220ec7,Error)?_0x220ec7[_0x2372c2(0x1d6)]:_0x220ec7));}const _0x2b2ef4=await _0x564cea['zgRYB'](getCurrentUser,_0x9875c4);if(!_0x2b2ef4[_0x2372c2(0x1b6)])throw new Error(_0x2372c2(0x1fc)+_0x2b2ef4['error']);return console['log']('✓\x20Authenticated\x20to\x20'+_0x2b2ef4['user']['organizationName']),{'token':_0x9875c4,'method':'device_auth'};}console['log'](_0x564cea['ZLTua']);const _0x31ea82=await getCurrentUser(_0x9875c4);if(!_0x31ea82[_0x2372c2(0x1b6)]){if(_0x31ea82[_0x2372c2(0x1fa)])throw new Error(_0x2372c2(0x211)+_0x31ea82[_0x2372c2(0x1fd)]+_0x2372c2(0x1b2));else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x31ea82['error']+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console['log'](_0x2372c2(0x1a3)+_0x31ea82[_0x2372c2(0x1be)][_0x2372c2(0x1af)]),await storeToken(_0x9875c4),console['log'](process['env'][_0x2372c2(0x1a4)]?'✓\x20Exported\x20credentials\x20for\x20CI':_0x2372c2(0x212)),{'token':_0x9875c4,'method':_0x564cea[_0x2372c2(0x1d5)]};}export async function ensureRangerDir(){const _0x118209=_0x5cec03,_0x52bdfd={'VKoyt':function(_0x9daed8){return _0x9daed8();},'iYsrZ':function(_0x3707dc,_0x74dffa,_0x12afe2){return _0x3707dc(_0x74dffa,_0x12afe2);},'mgugM':_0x118209(0x1d9),'gPLRa':function(_0x32fd13,_0x152ee3){return _0x32fd13(_0x152ee3);},'mlqpV':_0x118209(0x20b)},_0xf4279c=_0x52bdfd['VKoyt'](findGitRoot),_0x110da6=_0xf4279c?_0x52bdfd[_0x118209(0x1e5)](join,_0xf4279c,_0x52bdfd['mgugM']):getRangerDir();return!_0x52bdfd['gPLRa'](existsSync,_0x110da6)?(await mkdir(_0x110da6,{'recursive':!![]}),console[_0x118209(0x203)]('✓\x20Created\x20.ranger/\x20directory'),{'path':_0x110da6,'installed':!![]}):(console['log'](_0x52bdfd[_0x118209(0x1e3)]),{'path':_0x110da6,'installed':![]});}export async function ensureChromium(){const _0x2d8541=_0x5cec03,_0x260152={'zMKgj':_0x2d8541(0x209),'UEWgq':function(_0x457a1e,_0x304de1){return _0x457a1e??_0x304de1;},'Vgddx':_0x2d8541(0x1f4),'ONdWC':'install','dJYTC':'\x20(fallback\x20version)','HGPqZ':_0x2d8541(0x1c2),'mwoCZ':function(_0x1a9976,_0x59edf7){return _0x1a9976 instanceof _0x59edf7;},'NVywV':'\x0a⚠\x20Skipping\x20Chromium\x20installation.','eWSFq':_0x2d8541(0x1b8)};let _0x2c5e0d=![];try{const _0x1562b5=chromium['executablePath']();_0x2c5e0d=existsSync(_0x1562b5);}catch{_0x2c5e0d=![];}if(_0x2c5e0d)return console['log'](_0x260152[_0x2d8541(0x21a)]),![];const _0x4f4775=getPlaywrightVersion(),_0x5ef401=_0x260152['UEWgq'](_0x4f4775,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x1fcda4=!_0x4f4775,_0x9ae5b=process['stdin'][_0x2d8541(0x1eb)]&&process['stdout'][_0x2d8541(0x1eb)];let _0x4f3cd9=!![];if(_0x9ae5b){const {install:_0x5efa16}=await _0x2cfe02[_0x2d8541(0x1e6)]([{'type':_0x260152[_0x2d8541(0x1ba)],'name':_0x260152[_0x2d8541(0x1d7)],'message':_0x1fcda4?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x5ef401+'\x20now?':_0x2d8541(0x1e9)+_0x5ef401+_0x2d8541(0x1df),'default':!![]}]);_0x4f3cd9=_0x5efa16;}else console[_0x2d8541(0x203)](_0x2d8541(0x1bd)+_0x5ef401+(_0x1fcda4?_0x260152['dJYTC']:'')+'...');if(_0x4f3cd9){console['log']('\x0aInstalling\x20Chromium\x20browser...\x0a');try{await installChromiumBinary(_0x5ef401),console[_0x2d8541(0x203)]('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x46d151){console['error'](_0x260152[_0x2d8541(0x1dd)],_0x260152[_0x2d8541(0x1b3)](_0x46d151,Error)?_0x46d151['message']:_0x46d151),console['log'](_0x2d8541(0x1c7)),console[_0x2d8541(0x203)]('\x20\x20npx\x20playwright@'+_0x5ef401+_0x2d8541(0x1cc));}}else console['log'](_0x260152['NVywV']),console[_0x2d8541(0x203)](_0x260152[_0x2d8541(0x1f9)]),console['log']('\x20\x20npx\x20playwright@'+_0x5ef401+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x462032){const _0x13ef4d=_0x5cec03,_0x3d8b63={'EAEzJ':function(_0x46879a,_0x5f46eb,_0x51d085){return _0x46879a(_0x5f46eb,_0x51d085);},'GoFsN':'✓\x20Created\x20.ranger/.gitignore'},_0x3a9ab6=join(_0x462032,'.gitignore'),_0x2d3a85=_0x13ef4d(0x1f2);await _0x3d8b63['EAEzJ'](writeFile,_0x3a9ab6,_0x2d3a85),console['log'](_0x3d8b63[_0x13ef4d(0x1bc)]);}function printProfileSetupLaterInstructions(){const _0x1ad03e=_0x5cec03,_0x48eacf={'ndlOx':_0x1ad03e(0x1ed),'XuNxr':function(_0x374867,_0x4ff6f2){return _0x374867(_0x4ff6f2);},'FzlnA':_0x1ad03e(0x210),'sQUdz':'Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a'};console[_0x1ad03e(0x203)](_0x48eacf['ndlOx']),console['log']('\x20\x20'+_0x48eacf[_0x1ad03e(0x1a5)](bold,_0x48eacf[_0x1ad03e(0x1ec)])),console[_0x1ad03e(0x203)](_0x48eacf[_0x1ad03e(0x1d0)]);}async function ensureLocalEnv(_0x1f2868,_0x2b1b6f){const _0x2920f1=_0x5cec03,_0x392688={'fgLTx':'⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','EDRQG':function(_0x1fcd98,_0x4ca09d,_0x8f2b3b){return _0x1fcd98(_0x4ca09d,_0x8f2b3b);},'oNZtc':_0x2920f1(0x1cd),'VXGrv':_0x2920f1(0x1e1),'rNaXL':_0x2920f1(0x20c),'zOxsX':_0x2920f1(0x1f0),'MoDCZ':_0x2920f1(0x1f4),'XupoP':'Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','uqRel':function(_0x29d568,_0xee83aa,_0x11238a,_0x4b5d79){return _0x29d568(_0xee83aa,_0x11238a,_0x4b5d79);},'CaLDY':'\x0a❌\x20Profile\x20setup\x20failed:','LaPTN':function(_0x1a9794,_0xad460d){return _0x1a9794 instanceof _0xad460d;},'qAGUU':function(_0x1188b6){return _0x1188b6();}};if(!findGitRoot())return console[_0x2920f1(0x203)](_0x392688['fgLTx']),{'ready':![],'skipped':!![]};if(_0x392688[_0x2920f1(0x1b9)](findExistingEnv,_0x392688[_0x2920f1(0x1bb)],{'locations':[_0x2920f1(0x1cd)]}))return console['log'](_0x392688[_0x2920f1(0x201)]),{'ready':!![],'skipped':![]};const _0x488c2f=process['stdin'][_0x2920f1(0x1eb)]&&process['stdout']['isTTY'];if(_0x488c2f&&!_0x1f2868?.[_0x2920f1(0x1b4)]){console['log'](_0x392688['rNaXL']),console['log'](_0x2920f1(0x1b0)),console[_0x2920f1(0x203)]('auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'),console['log'](_0x392688[_0x2920f1(0x1fe)]),console['log'](_0x2920f1(0x200));const {wantsProfile:_0x240b1e}=await _0x2cfe02['prompt']([{'type':_0x392688[_0x2920f1(0x1a6)],'name':_0x2920f1(0x1fb),'message':_0x392688[_0x2920f1(0x1d1)],'default':!![]}]);if(!_0x240b1e)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await _0x392688[_0x2920f1(0x202)](addEnv,_0x392688[_0x2920f1(0x1bb)],{'url':_0x1f2868?.[_0x2920f1(0x1b4)],'force':_0x1f2868?.['force'],'allowInsecureLocalhost':_0x1f2868?.['allowInsecureLocalhost']},_0x2b1b6f),{'ready':!![],'skipped':![]};}catch(_0x23852b){return console['error'](_0x392688['CaLDY'],_0x392688['LaPTN'](_0x23852b,Error)?_0x23852b['message']:_0x23852b),_0x392688['qAGUU'](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}export async function start(_0x39fa3c,_0x44c9d3,_0xae14ed){const _0x2e8538=_0x5cec03,_0x4d099={'HIWgU':_0x2e8538(0x1c3),'Rkqub':function(_0x2a28b4){return _0x2a28b4();},'cgGVk':_0x2e8538(0x1f3),'IZWXt':_0x2e8538(0x1cb),'mOxmW':'auth','xPTOC':_0x2e8538(0x1ea),'ekQHu':_0x2e8538(0x1b7),'bIzkP':function(_0x38e48d,_0x1a92c2){return _0x38e48d(_0x1a92c2);},'ZNiiz':'\x0a✅\x20Ranger\x20setup\x20complete!\x0a','sUHGk':'plugin','NrMEo':function(_0x426eed,_0x5182df){return _0x426eed&&_0x5182df;},'DFOgk':function(_0xa2e494,_0x28210f,_0x28c86e){return _0xa2e494(_0x28210f,_0x28c86e);},'VuucO':_0x2e8538(0x1d8),'jzqki':_0x2e8538(0x1f7),'Ytsyx':_0x2e8538(0x1da),'NMYWG':function(_0x572983,_0x18883c){return _0x572983 instanceof _0x18883c;},'QnZag':'profile','tJYZy':_0x2e8538(0x204),'sWWls':'and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','vIbbp':_0x2e8538(0x1c8),'FRzyb':function(_0x22d1e7,_0xe7b748){return _0x22d1e7+_0xe7b748;}};console[_0x2e8538(0x203)](_0x4d099[_0x2e8538(0x20f)]);const _0x2dca94=process[_0x2e8538(0x216)]['isTTY']&&process[_0x2e8538(0x1cf)][_0x2e8538(0x1eb)];!_0x2dca94&&!_0x44c9d3?.['scope']&&(console[_0x2e8538(0x203)]('Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.'),_0x44c9d3={..._0x44c9d3,'scope':'user'});_0xae14ed?.[_0x2e8538(0x1f6)](_0x2e8538(0x1cb));if(!_0x4d099['Rkqub'](findGitRoot)){await _0xae14ed?.[_0x2e8538(0x1c5)](_0x2e8538(0x1cb),new Error(_0x4d099['cgGVk']));throw new Error('No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.');}_0xae14ed?.[_0x2e8538(0x219)](_0x4d099['IZWXt']);const _0x3ad717=!existsSync(getRangerDir()),{path:_0x15377b}=await ensureRangerDir();_0xae14ed?.['trackPhaseStart'](_0x4d099[_0x2e8538(0x1e4)]);const _0x354e87=await authenticate(_0x39fa3c);_0xae14ed?.[_0x2e8538(0x219)]('auth',{'isFirstRun':_0x3ad717,'method':_0x354e87[_0x2e8538(0x20e)]}),_0xae14ed?.[_0x2e8538(0x1f6)](_0x4d099['xPTOC']);_0x44c9d3?.[_0x2e8538(0x215)]?console['log'](_0x4d099['ekQHu']):await ensureChromium();_0xae14ed?.['trackPhaseEnd'](_0x4d099[_0x2e8538(0x1e8)],{'isFirstRun':_0x3ad717,'skipped':!!_0x44c9d3?.[_0x2e8538(0x215)]}),await _0x4d099[_0x2e8538(0x1ab)](writeRangerGitignore,_0x15377b),console[_0x2e8538(0x203)](_0x4d099['ZNiiz']);const _0xd8ad52=_0x44c9d3?.[_0x2e8538(0x1ff)],_0x500efc=_0x44c9d3?.[_0x2e8538(0x1a2)]??![];let _0x4abde7=null;_0x500efc?(_0xae14ed?.['trackPhaseStart'](_0x4d099[_0x2e8538(0x213)]),_0x4abde7=await ensureOpencodePluginConfig(_0xd8ad52),_0xae14ed?.['trackPhaseEnd'](_0x2e8538(0x21b),{'isFirstRun':_0x3ad717,'opencode':!![]})):(_0xae14ed?.[_0x2e8538(0x1f6)](_0x2e8538(0x21b)),await ensureClaudePlugin(_0xd8ad52),_0xae14ed?.[_0x2e8538(0x219)](_0x4d099['sUHGk'],{'isFirstRun':_0x3ad717}));if(_0x4d099['NrMEo'](_0x500efc,_0x4abde7)){_0xae14ed?.['trackPhaseStart']('skills');try{await _0x4d099['DFOgk'](installSkill,_0x4d099[_0x2e8538(0x1a8)],{'level':_0x4abde7[_0x2e8538(0x1ff)],'cliVersion':getCurrentVersion(),'platform':'opencode'}),_0xae14ed?.['trackPhaseEnd'](_0x4d099['jzqki'],{'isFirstRun':_0x3ad717,'opencode':!![]});}catch(_0x3bb93a){console[_0x2e8538(0x1b1)](_0x4d099['Ytsyx'],_0x4d099['NMYWG'](_0x3bb93a,Error)?_0x3bb93a['message']:_0x3bb93a),_0xae14ed?.['trackPhaseEnd'](_0x2e8538(0x1f7),{'isFirstRun':_0x3ad717,'opencode':!![],'failed':!![]});}}else _0xae14ed?.[_0x2e8538(0x1f6)](_0x4d099['jzqki']),await ensureClaudeSkills(_0xd8ad52),_0xae14ed?.['trackPhaseEnd'](_0x2e8538(0x1f7),{'isFirstRun':_0x3ad717});if(!_0x2dca94&&!_0x44c9d3?.[_0x2e8538(0x1b4)])console['log'](_0x2e8538(0x1e7)),console[_0x2e8538(0x203)]('\x20\x20'+bold('ranger\x20profile\x20add\x20local')+'\x0a');else{_0xae14ed?.[_0x2e8538(0x1f6)](_0x4d099['QnZag']);const _0x36f79a=await _0x4d099[_0x2e8538(0x1aa)](ensureLocalEnv,{'url':_0x44c9d3?.['url'],'force':_0x44c9d3?.['force'],'allowInsecureLocalhost':_0x44c9d3?.[_0x2e8538(0x1d3)]},_0xae14ed);_0xae14ed?.['trackPhaseEnd'](_0x4d099[_0x2e8538(0x1bf)],{'isFirstRun':_0x3ad717,'profileReady':_0x36f79a[_0x2e8538(0x1c0)],'userSkipped':_0x36f79a[_0x2e8538(0x206)]}),_0x36f79a[_0x2e8538(0x1c0)]&&console[_0x2e8538(0x203)](_0x2e8538(0x214));}if(_0x500efc)console[_0x2e8538(0x203)](_0x4d099[_0x2e8538(0x1f8)]),console['log'](_0x4d099['sWWls']),console['log']('with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'),console['log']('verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');else{const _0x54ded0=_0x4d099[_0x2e8538(0x1ab)](bold,_0x4d099['vIbbp']);console[_0x2e8538(0x203)](_0x4d099['FRzyb'](_0x4d099['FRzyb'](_0x2e8538(0x1a7)+_0x54ded0+_0x2e8538(0x1d4),'\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with')+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.'));}}
@@ -1 +1 @@
1
- const _0x3800ce=_0x1f23;(function(_0xba0034,_0x529a51){const _0x46c3c5=_0x1f23,_0x5c0103=_0xba0034();while(!![]){try{const _0x12a1d4=-parseInt(_0x46c3c5(0x171))/0x1+parseInt(_0x46c3c5(0x197))/0x2+-parseInt(_0x46c3c5(0x185))/0x3+parseInt(_0x46c3c5(0x1b3))/0x4+parseInt(_0x46c3c5(0x162))/0x5+parseInt(_0x46c3c5(0x1c3))/0x6*(-parseInt(_0x46c3c5(0x178))/0x7)+-parseInt(_0x46c3c5(0x1bb))/0x8;if(_0x12a1d4===_0x529a51)break;else _0x5c0103['push'](_0x5c0103['shift']());}catch(_0x214cd7){_0x5c0103['push'](_0x5c0103['shift']());}}}(_0xbd02,0x936cf));import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';import{getCurrentVersion,getLatestVersion}from'./utils/version.js';import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';function _0x1f23(_0x1ec306,_0x299f12){_0x1ec306=_0x1ec306-0x15c;const _0xbd021c=_0xbd02();let _0x1f2394=_0xbd021c[_0x1ec306];return _0x1f2394;}import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';import{getRangerDir}from'./utils/rangerRoot.js';import{getEnvDir}from'./utils/settings.js';function _0xbd02(){const _0x3be619=['API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired','debug','SATln','4096568xMqGUy','EBbuW','sKSkV','configured','map','@ranger-testing/opencode-plugin','hasPlaintextAuth','log','1263654QJyAiY','not_configured','settingsPath','some','oajog','PhcSp','ignore','4971170sSvxde','\x1b[0m','length','UPDGs','QLRiC','path','auth.json','user','kqZof','No\x20profiles\x20configured','\x20\x20\x20\x20','\x20\x20Project-level:','\x20(active)','MnJpq','API\x20URL:\x20','259905TsTbQj','trim','\x0a---\x20Claude\x20Code\x20Plugin\x20---','details','auth.json.enc','jkjqe','bbKJI','21AmqIrW','sIaYS','data','opencode-plugin','kDfUb','DfyhJ','OEEuF','includes','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','vprvO','displayName','yfVFA','close','305991MRxDhR','TbhdY','pipe','version','\x0a---\x20Profiles\x20---',':\x20installed\x20(','tWXYl','fTFzW','not_installed','Version:\x20','wNgka','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','LlrKQ','\x1b]8;;file://','isDirectory','LlqvO','none','fDbMQ','1580660XGlcGL','JejBZ','error','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','encrypted','Root:\x20','\x20(latest:\x20','enabled','\x0a\x20\x20No\x20active\x20profile\x20set','\x0a---\x20Skills\x20---','unknown','name','parse','eKhEc','qYUzg','disabled','phvlw','ranger@trailhead','wGrtY','match','jCjUO','\x20(up\x20to\x20date)','KApUf','toString','aBhRG','apEOf','isArray','\x1b[1m','1300364ZxjoAv',':\x20configured','\x20\x20Run:\x20ranger\x20setup\x20[token]','filter','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20'];_0xbd02=function(){return _0x3be619;};return _0xbd02();}import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x3aca31=>_0x3800ce(0x1b2)+_0x3aca31+_0x3800ce(0x163),link=(_0x3ca274,_0x5b479c)=>_0x3800ce(0x192)+_0x3ca274+'\x07'+(_0x5b479c||_0x3ca274)+'\x1b]8;;\x07';async function getOpencodePluginStatus(){const _0x19e26b=_0x3800ce,_0x55caac={'DfyhJ':'@ranger-testing/opencode-plugin','ySmRh':function(_0x43ddad,_0xad4298){return _0x43ddad!==_0xad4298;},'fDbMQ':function(_0x358e93,_0x100297){return _0x358e93(_0x100297);},'MnJpq':_0x19e26b(0x18d),'OjlaF':_0x19e26b(0x1be),'CpIwd':function(_0x2f0262,_0x1faede){return _0x2f0262>_0x1faede;},'OEEuF':function(_0x51afdb,_0xac0338){return _0x51afdb>_0xac0338;},'kDfUb':_0x19e26b(0x15c),'ILYwA':function(_0x3d0414,_0x53d67f,_0x12b720,_0x2a093d){return _0x3d0414(_0x53d67f,_0x12b720,_0x2a093d);},'LQJfI':_0x19e26b(0x187),'kqZof':_0x19e26b(0x17a),'BNMsB':_0x19e26b(0x199)};return new Promise(_0x4ace8c=>{const _0x2a827e=_0x19e26b,_0x1ac869=_0x55caac['ILYwA'](spawn,'opencode',[_0x2a827e(0x1b9),'config'],{'stdio':[_0x2a827e(0x161),'pipe',_0x55caac['LQJfI']]});let _0x22ba0d='';_0x1ac869['stdout']?.['on'](_0x55caac[_0x2a827e(0x16a)],_0x248ac9=>{const _0x16b3d1=_0x2a827e;_0x22ba0d+=_0x248ac9[_0x16b3d1(0x1ae)]();}),_0x1ac869['stderr']?.['on'](_0x55caac[_0x2a827e(0x16a)],_0x2b8fc1=>{const _0x480ed5=_0x2a827e;_0x22ba0d+=_0x2b8fc1[_0x480ed5(0x1ae)]();}),_0x1ac869['on'](_0x55caac['BNMsB'],()=>{const _0x38b832=_0x2a827e;_0x4ace8c({'status':_0x38b832(0x18d)});}),_0x1ac869['on'](_0x2a827e(0x184),_0x4d26d5=>{const _0x2a822e=_0x2a827e,_0x158470={'qYUzg':'string','ltQMV':_0x55caac[_0x2a822e(0x17d)]};if(_0x55caac['ySmRh'](_0x4d26d5,0x0)){_0x55caac['fDbMQ'](_0x4ace8c,{'status':_0x55caac[_0x2a822e(0x16f)]});return;}const _0x2dc0c2=_0x22ba0d[_0x2a822e(0x172)]();let _0x47de0a=null;if(_0x2dc0c2)try{_0x47de0a=JSON[_0x2a822e(0x1a3)](_0x2dc0c2);}catch{const _0x6bd870=_0x2dc0c2[_0x2a822e(0x1aa)](/\{[\s\S]*\}$/);if(_0x6bd870)try{_0x47de0a=JSON[_0x2a822e(0x1a3)](_0x6bd870[0x0]);}catch{_0x47de0a=null;}}const _0x224d59=Array[_0x2a822e(0x1b1)](_0x47de0a?.['plugin'])?_0x47de0a?.['plugin']:[],_0x268e85=_0x224d59[_0x2a822e(0x15e)](_0x30f4d6=>{const _0x3e2281=_0x2a822e;if(typeof _0x30f4d6!==_0x158470[_0x3e2281(0x1a5)])return![];return _0x30f4d6[_0x3e2281(0x17f)](_0x158470['ltQMV'])||_0x30f4d6['includes'](_0x3e2281(0x17b));});if(_0x268e85){_0x4ace8c({'status':_0x55caac['OjlaF'],'details':_0x55caac['CpIwd'](_0x224d59['length'],0x0)?_0x224d59['length']+'\x20plugin(s)\x20configured':undefined});return;}if(_0x55caac[_0x2a822e(0x17e)](_0x224d59[_0x2a822e(0x164)],0x0)){_0x4ace8c({'status':_0x55caac[_0x2a822e(0x17c)],'details':_0x224d59[_0x2a822e(0x164)]+'\x20plugin(s)\x20configured'});return;}_0x55caac[_0x2a822e(0x196)](_0x4ace8c,{'status':_0x55caac[_0x2a822e(0x17c)]});});});}async function getSkillsFromDir(_0x54b17c,_0x488f20){const _0x64e198=_0x3800ce,_0x1a9563={'apEOf':function(_0x2f68e0,_0x4a5140,_0x278ecf){return _0x2f68e0(_0x4a5140,_0x278ecf);},'cAmDk':'SKILL.md'};if(!existsSync(_0x54b17c))return[];const _0x11e111=[];try{const _0x29ddf2=await _0x1a9563[_0x64e198(0x1b0)](readdir,_0x54b17c,{'withFileTypes':!![]});for(const _0x8810fc of _0x29ddf2){if(_0x8810fc[_0x64e198(0x193)]()){const _0x136bc3=join(_0x54b17c,_0x8810fc['name'],_0x1a9563['cAmDk']);if(existsSync(_0x136bc3)){let _0x481fb1=_0x8810fc[_0x64e198(0x1a2)];try{const _0x1f0569=await _0x1a9563['apEOf'](readFile,_0x136bc3,'utf-8'),_0x37ec46=_0x1f0569['match'](/name:\s*(.+)/);_0x37ec46&&(_0x481fb1=_0x37ec46[0x1]['trim']());}catch{}_0x11e111['push']({'name':_0x8810fc[_0x64e198(0x1a2)],'displayName':_0x481fb1,'path':_0x136bc3,'level':_0x488f20});}}}}catch{return[];}return _0x11e111;}async function getInstalledSkills(){const _0x361eeb=_0x3800ce,_0x2b1620={'vprvO':function(_0x3ed072,_0xaa4b25,_0x5ec5a4){return _0x3ed072(_0xaa4b25,_0x5ec5a4);},'sIaYS':function(_0x37a2ab){return _0x37a2ab();},'EBbuW':'project','erBco':function(_0x3d4d69,_0x17f031,_0x187c08){return _0x3d4d69(_0x17f031,_0x187c08);},'wNgka':function(_0xb58300){return _0xb58300();}},[_0x2ad639,_0x23ae3c]=await Promise['all']([_0x2b1620[_0x361eeb(0x181)](getSkillsFromDir,_0x2b1620[_0x361eeb(0x179)](getProjectSkillsDir),_0x2b1620[_0x361eeb(0x1bc)]),_0x2b1620['erBco'](getSkillsFromDir,_0x2b1620[_0x361eeb(0x18f)](getUserSkillsDir),'user')]);return{'project':_0x2ad639,'user':_0x23ae3c};}async function getEnvironments(){const _0xa56a79=_0x3800ce,_0x207403={'jCjUO':function(_0x222582,_0x4ee810){return _0x222582(_0x4ee810);},'fTFzW':_0xa56a79(0x168),'sKSkV':function(_0x1bdfb3,_0x1ec339){return _0x1bdfb3(_0x1ec339);},'yfVFA':function(_0xdb7642){return _0xdb7642();}},{envNames:_0x87d00a,activeEnv:_0x5189a6}=await getEnvNames(),_0x1437b0=_0x207403[_0xa56a79(0x183)](getRangerDir);if(!_0x207403[_0xa56a79(0x1ab)](existsSync,_0x1437b0))return{'envs':[],'activeEnv':null};const _0x84b70a=_0x87d00a[_0xa56a79(0x1bf)](_0x3a3534=>{const _0x22f5b7=_0xa56a79,_0x31fb2d=_0x207403[_0x22f5b7(0x1ab)](getEnvDir,_0x3a3534),_0xeaa902=join(_0x31fb2d,'settings.json'),_0x4f3f1c=join(_0x31fb2d,_0x207403[_0x22f5b7(0x18c)]),_0x2c6d14=join(_0x31fb2d,_0x22f5b7(0x175));return{'name':_0x3a3534,'settingsPath':_0x207403[_0x22f5b7(0x1bd)](existsSync,_0xeaa902)?_0xeaa902:'(not\x20found)','hasPlaintextAuth':existsSync(_0x4f3f1c),'hasEncryptedAuth':existsSync(_0x2c6d14),'isActive':_0x3a3534===_0x5189a6};});return{'envs':_0x84b70a,'activeEnv':_0x5189a6};}export async function status(){const _0x36de70=_0x3800ce,_0x18e77d={'UPDGs':function(_0x10b6af,_0x3760a5){return _0x10b6af(_0x3760a5);},'QLRiC':function(_0x471f0a,_0x46fb84,_0x506b56){return _0x471f0a(_0x46fb84,_0x506b56);},'aBhRG':function(_0x31c1a8,_0x38a1e6){return _0x31c1a8(_0x38a1e6);},'LlrKQ':function(_0x45244a){return _0x45244a();},'JejBZ':'\x0a---\x20OpenCode\x20Plugin\x20---','RHwNq':function(_0x79341){return _0x79341();},'ZjKzO':_0x36de70(0x1be),'QztTQ':_0x36de70(0x1c0),'NSuUF':function(_0x8cae63,_0x33c26e){return _0x8cae63===_0x33c26e;},'fDeBA':'not_configured','LlqvO':'\x20\x20Run:\x20ranger\x20setup\x20--opencode','TbhdY':'\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','eKhEc':_0x36de70(0x173),'bbKJI':_0x36de70(0x1a8),'SATln':_0x36de70(0x1a1),'oajog':_0x36de70(0x19e),'KApUf':'\x20\x20Not\x20installed','wYoHE':_0x36de70(0x19a),'tWXYl':_0x36de70(0x1a0),'wGrtY':function(_0x27cedf,_0x4934f2){return _0x27cedf>_0x4934f2;},'phvlw':function(_0x37af99,_0x60a78b){return _0x37af99(_0x60a78b);},'STLuo':_0x36de70(0x189),'jkjqe':_0x36de70(0x16e),'PhcSp':_0x36de70(0x195),'VDSim':function(_0x318f99,_0x2f998e){return _0x318f99(_0x2f998e);}};console[_0x36de70(0x1c2)]('\x0a📊\x20Ranger\x20Status\x0a');const _0x173a07=process['cwd'](),_0x584aaf=getRangerDir();if(!_0x18e77d[_0x36de70(0x165)](existsSync,_0x584aaf)){console['log'](_0x36de70(0x19c)+_0x18e77d[_0x36de70(0x166)](link,_0x173a07,_0x18e77d['aBhRG'](bold,_0x18e77d[_0x36de70(0x1af)](basename,_0x173a07)))),console['log'](_0x36de70(0x190)),console[_0x36de70(0x1c2)](_0x36de70(0x180));return;}console[_0x36de70(0x1c2)](_0x36de70(0x19c)+_0x18e77d[_0x36de70(0x166)](link,_0x173a07,_0x18e77d[_0x36de70(0x1af)](bold,_0x18e77d[_0x36de70(0x165)](basename,_0x173a07))));const _0xd10140=getCurrentVersion(),_0x44e2cd=getLatestVersion();if(_0x44e2cd['version']&&_0x44e2cd[_0x36de70(0x188)]!==_0xd10140)console['log']('Version:\x20'+_0xd10140+_0x36de70(0x19d)+_0x44e2cd[_0x36de70(0x188)]+')'),console['log']('\x20\x20Run:\x20ranger\x20update');else _0x44e2cd[_0x36de70(0x188)]?console['log'](_0x36de70(0x18e)+_0xd10140+_0x36de70(0x1ac)):console[_0x36de70(0x1c2)]('Version:\x20'+_0xd10140);const _0x4d7b28=await getToken();if(_0x4d7b28){const _0x9b283c=await getCurrentUser(_0x4d7b28);_0x9b283c['success']?console['log']('Organization:\x20'+bold(_0x9b283c[_0x36de70(0x169)]['organizationName'])):(console[_0x36de70(0x1c2)](_0x36de70(0x1b8)),console[_0x36de70(0x1c2)](_0x36de70(0x1b5)));}else console[_0x36de70(0x1c2)]('API\x20Token:\x20✗\x20Not\x20found'),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]');process['env']['DEBUG']&&(console[_0x36de70(0x1c2)]('API\x20Environment:\x20'+_0x18e77d['LlrKQ'](getCurrentEnvironment)),console[_0x36de70(0x1c2)](_0x36de70(0x170)+_0x18e77d[_0x36de70(0x191)](getApiBaseUrl)));console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x198)]);const _0x2bf058=await _0x18e77d['RHwNq'](getOpencodePluginStatus);if(_0x2bf058['status']===_0x18e77d['ZjKzO'])console[_0x36de70(0x1c2)]('\x20\x20'+bold(_0x18e77d['QztTQ'])+_0x36de70(0x1b4)),_0x2bf058[_0x36de70(0x174)]&&console[_0x36de70(0x1c2)]('\x20\x20'+_0x2bf058['details']);else _0x18e77d['NSuUF'](_0x2bf058['status'],_0x18e77d['fDeBA'])?(console['log']('\x20\x20Not\x20configured'),_0x2bf058['details']&&console['log']('\x20\x20'+_0x2bf058[_0x36de70(0x174)]),console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x194)])):console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x186)]);console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x1a4)]);const _0x23278c=await getPluginInfo(_0x18e77d[_0x36de70(0x177)]);if(_0x23278c){const _0x35451b=_0x23278c['scope']||_0x18e77d[_0x36de70(0x1ba)],_0x8c2c5b=_0x23278c[_0x36de70(0x19e)]?_0x18e77d[_0x36de70(0x15f)]:_0x36de70(0x1a6);console['log']('\x20\x20'+bold('ranger@trailhead')+_0x36de70(0x18a)+_0x35451b+',\x20'+_0x8c2c5b+')');}else console['log'](_0x18e77d[_0x36de70(0x1ad)]),console['log'](_0x18e77d['wYoHE']);console['log'](_0x18e77d[_0x36de70(0x18b)]);const {project:_0x3235b8,user:_0x4d2d2f}=await getInstalledSkills(),_0x2fa67c=_0x3235b8[_0x36de70(0x1b6)](_0x5d2088=>RANGER_MANAGED_SKILLS['includes'](_0x5d2088['name'])),_0xdcfc4e=_0x4d2d2f[_0x36de70(0x1b6)](_0xeaed1d=>RANGER_MANAGED_SKILLS[_0x36de70(0x17f)](_0xeaed1d['name'])),_0xa3c472=_0x2fa67c['length']+_0xdcfc4e[_0x36de70(0x164)];if(_0xa3c472===0x0)console['log']('No\x20skills\x20installed'),console[_0x36de70(0x1c2)]('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x18e77d[_0x36de70(0x1a9)](_0x2fa67c[_0x36de70(0x164)],0x0)){console['log'](_0x36de70(0x16d));for(const _0x6c038e of _0x2fa67c){console[_0x36de70(0x1c2)]('\x20\x20\x20\x20'+_0x18e77d[_0x36de70(0x1a7)](bold,_0x6c038e[_0x36de70(0x182)])+':\x20'+link(_0x6c038e[_0x36de70(0x167)],basename(_0x6c038e['path'])));}}if(_0xdcfc4e[_0x36de70(0x164)]>0x0){console[_0x36de70(0x1c2)]('\x20\x20User-level:');for(const _0x42ece3 of _0xdcfc4e){console[_0x36de70(0x1c2)](_0x36de70(0x16c)+bold(_0x42ece3[_0x36de70(0x182)])+':\x20'+link(_0x42ece3['path'],_0x18e77d[_0x36de70(0x1af)](basename,_0x42ece3[_0x36de70(0x167)])));}}}console['log'](_0x18e77d['STLuo']);const {envs:_0x4fab6e,activeEnv:_0x3b5024}=await getEnvironments();if(_0x4fab6e['length']===0x0)console['log'](_0x36de70(0x16b)),console['log']('\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>');else{for(const _0x37d9cb of _0x4fab6e){const _0x2a4554=_0x37d9cb['isActive']?_0x18e77d[_0x36de70(0x176)]:'',_0x357d56=_0x37d9cb['hasEncryptedAuth']?_0x36de70(0x19b):_0x37d9cb[_0x36de70(0x1c1)]?'plaintext':_0x18e77d[_0x36de70(0x160)];console['log']('\x20\x20'+_0x18e77d['VDSim'](bold,_0x37d9cb[_0x36de70(0x1a2)])+_0x2a4554),console['log']('\x20\x20\x20\x20Auth:\x20'+_0x357d56),_0x37d9cb[_0x36de70(0x15d)]!=='(not\x20found)'&&console['log']('\x20\x20\x20\x20Settings:\x20'+link(_0x37d9cb['settingsPath'],basename(_0x37d9cb[_0x36de70(0x15d)])));}!_0x3b5024&&(console['log'](_0x36de70(0x19f)),console['log'](_0x36de70(0x1b7)+_0x4fab6e[_0x36de70(0x1bf)](_0x91d84f=>_0x91d84f[_0x36de70(0x1a2)])['join'](',\x20')+')'));}console['log']('');}
1
+ const _0x495b31=_0x4d7d;(function(_0x4d0833,_0x19de57){const _0x16402c=_0x4d7d,_0x214b86=_0x4d0833();while(!![]){try{const _0x4d9fb2=parseInt(_0x16402c(0xd4))/0x1*(parseInt(_0x16402c(0xe8))/0x2)+-parseInt(_0x16402c(0xab))/0x3*(-parseInt(_0x16402c(0xf5))/0x4)+parseInt(_0x16402c(0xbc))/0x5*(-parseInt(_0x16402c(0xcb))/0x6)+-parseInt(_0x16402c(0x9a))/0x7+-parseInt(_0x16402c(0xdf))/0x8+-parseInt(_0x16402c(0xe3))/0x9+parseInt(_0x16402c(0xcd))/0xa;if(_0x4d9fb2===_0x19de57)break;else _0x214b86['push'](_0x214b86['shift']());}catch(_0x3e6efa){_0x214b86['push'](_0x214b86['shift']());}}}(_0x3c73,0x1f2a9));function _0x3c73(){const _0x350c9c=['API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired','auth.json','data','\x20\x20Run:\x20ranger\x20setup\x20[token]','piRRb','project','disabled',':\x20configured','\x20plugin(s)\x20configured','pipe','KctFD','15666fzMaSR','\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','1591200lKByRN','utf-8','tPUEh','ranger@trailhead','plaintext','map','push','2CTtcMx','Version:\x20','wxrpw','not_installed','dCTvJ','woHBb','isDirectory','auth.json.enc','cTnCX','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20','No\x20skills\x20installed','546880JoNgCU','displayName','env','trim','1410831MRVZqN','\x0a---\x20OpenCode\x20Plugin\x20---','SlCog','\x1b[1m','No\x20profiles\x20configured','190574JDlcYV','\x20(active)','isArray','details','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','settings.json','length','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','includes','Root:\x20','configured','FqjoL','string','32716UcJHCp','API\x20Environment:\x20','\x20\x20Not\x20installed','enabled','Organization:\x20','opencode-plugin','YuodG','\x20\x20\x20\x20Auth:\x20','bVkfA','UjHjt','GXlNS','\x20\x20Run:\x20ranger\x20skillup','all','cxlIZ','ejJKp','YvTjK','927283QZOFzI','DLemq','log','NyPnk','\x0a---\x20Claude\x20Code\x20Plugin\x20---','status','kaDpy','hasEncryptedAuth','\x20\x20Run:\x20ranger\x20setup\x20--opencode','OCLfq','user','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','\x20\x20\x20\x20','DEBUG','JgKMx','@ranger-testing/opencode-plugin','match','66lFqbTu','ApTda','debug','filter','cNWgv','version',':\x20installed\x20(','eViBe','\x0a---\x20Skills\x20---','API\x20URL:\x20','config','GCpPL','ZcQfs','\x20\x20Run:\x20ranger\x20update','settingsPath','jriAU','name','85BPvvJn','success','\x1b]8;;\x07','(not\x20found)'];_0x3c73=function(){return _0x350c9c;};return _0x3c73();}import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';import{getCurrentVersion,getLatestVersion}from'./utils/version.js';import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';import{getRangerDir}from'./utils/rangerRoot.js';import{getEnvDir}from'./utils/settings.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x1a9b3c=>_0x495b31(0xe6)+_0x1a9b3c+'\x1b[0m',link=(_0x531778,_0x31846d)=>'\x1b]8;;file://'+_0x531778+'\x07'+(_0x31846d||_0x531778)+_0x495b31(0xbe);function _0x4d7d(_0x4b3e0a,_0x54d003){_0x4b3e0a=_0x4b3e0a-0x8c;const _0x3c7324=_0x3c73();let _0x4d7d03=_0x3c7324[_0x4b3e0a];return _0x4d7d03;}async function getOpencodePluginStatus(){const _0x3870d8=_0x495b31,_0x511bf7={'eViBe':_0x3870d8(0xd7),'cTnCX':function(_0x3c6b83,_0x334b70){return _0x3c6b83!==_0x334b70;},'ejJKp':_0x3870d8(0xa9),'Ymhhr':_0x3870d8(0x8f),'kaDpy':function(_0x315cfd,_0x1a10e6){return _0x315cfd(_0x1a10e6);},'kWNwa':'not_configured','cCJuO':_0x3870d8(0xad),'woHBb':_0x3870d8(0xb5),'wxrpw':'pipe','NyPnk':'data','tPUEh':'close'};return new Promise(_0x2c05a4=>{const _0x5063a4=_0x3870d8,_0x38ff00=spawn('opencode',[_0x511bf7['cCJuO'],_0x511bf7[_0x5063a4(0xd9)]],{'stdio':['ignore',_0x5063a4(0xc9),_0x511bf7[_0x5063a4(0xd6)]]});let _0x544142='';_0x38ff00['stdout']?.['on'](_0x511bf7[_0x5063a4(0x9d)],_0x48812f=>{_0x544142+=_0x48812f['toString']();}),_0x38ff00['stderr']?.['on'](_0x5063a4(0xc2),_0x5d553b=>{_0x544142+=_0x5d553b['toString']();}),_0x38ff00['on']('error',()=>{const _0x4cb15f=_0x5063a4;_0x2c05a4({'status':_0x511bf7[_0x4cb15f(0xb2)]});}),_0x38ff00['on'](_0x511bf7[_0x5063a4(0xcf)],_0x149337=>{const _0x6d77a8=_0x5063a4,_0x4fa3e8={'kDOWP':function(_0x530272,_0x332209){return _0x511bf7['cTnCX'](_0x530272,_0x332209);},'ZgEJr':_0x511bf7[_0x6d77a8(0x98)],'YuodG':_0x511bf7['Ymhhr']};if(_0x511bf7[_0x6d77a8(0xdc)](_0x149337,0x0)){_0x2c05a4({'status':_0x511bf7[_0x6d77a8(0xb2)]});return;}const _0x463013=_0x544142[_0x6d77a8(0xe2)]();let _0x5106a3=null;if(_0x463013)try{_0x5106a3=JSON['parse'](_0x463013);}catch{const _0x528e9a=_0x463013[_0x6d77a8(0xaa)](/\{[\s\S]*\}$/);if(_0x528e9a)try{_0x5106a3=JSON['parse'](_0x528e9a[0x0]);}catch{_0x5106a3=null;}}const _0x401162=Array[_0x6d77a8(0xea)](_0x5106a3?.['plugin'])?_0x5106a3?.['plugin']:[],_0x306979=_0x401162['some'](_0x3d2b3f=>{const _0x2dd623=_0x6d77a8;if(_0x4fa3e8['kDOWP'](typeof _0x3d2b3f,_0x2dd623(0xf4)))return![];return _0x3d2b3f['includes'](_0x4fa3e8['ZgEJr'])||_0x3d2b3f[_0x2dd623(0xf0)](_0x4fa3e8[_0x2dd623(0x90)]);});if(_0x306979){_0x2c05a4({'status':_0x6d77a8(0xf2),'details':_0x401162['length']>0x0?_0x401162[_0x6d77a8(0xee)]+_0x6d77a8(0xc8):undefined});return;}if(_0x401162[_0x6d77a8(0xee)]>0x0){_0x511bf7[_0x6d77a8(0xa0)](_0x2c05a4,{'status':_0x511bf7['kWNwa'],'details':_0x401162[_0x6d77a8(0xee)]+_0x6d77a8(0xc8)});return;}_0x2c05a4({'status':_0x511bf7['kWNwa']});});});}async function getSkillsFromDir(_0x1fcef5,_0x52727e){const _0x168864=_0x495b31,_0x1dcddd={'LurZK':function(_0x50282a,_0x356b20){return _0x50282a(_0x356b20);},'OCLfq':'SKILL.md'};if(!_0x1dcddd['LurZK'](existsSync,_0x1fcef5))return[];const _0x26a0c3=[];try{const _0x5d6eca=await readdir(_0x1fcef5,{'withFileTypes':!![]});for(const _0x830f71 of _0x5d6eca){if(_0x830f71[_0x168864(0xda)]()){const _0x15fc84=join(_0x1fcef5,_0x830f71['name'],_0x1dcddd[_0x168864(0xa3)]);if(existsSync(_0x15fc84)){let _0x17ecda=_0x830f71[_0x168864(0xbb)];try{const _0x16e996=await readFile(_0x15fc84,_0x168864(0xce)),_0x2a519f=_0x16e996['match'](/name:\s*(.+)/);_0x2a519f&&(_0x17ecda=_0x2a519f[0x1]['trim']());}catch{}_0x26a0c3[_0x168864(0xd3)]({'name':_0x830f71['name'],'displayName':_0x17ecda,'path':_0x15fc84,'level':_0x52727e});}}}}catch{return[];}return _0x26a0c3;}async function getInstalledSkills(){const _0x5b51cc=_0x495b31,_0x2cc3da={'HJScz':function(_0x3eacf7){return _0x3eacf7();}},[_0x474a11,_0x4d972a]=await Promise[_0x5b51cc(0x96)]([getSkillsFromDir(_0x2cc3da['HJScz'](getProjectSkillsDir),_0x5b51cc(0xc5)),getSkillsFromDir(getUserSkillsDir(),_0x5b51cc(0xa4))]);return{'project':_0x474a11,'user':_0x4d972a};}async function getEnvironments(){const _0x4ce223=_0x495b31,_0x3ffd1c={'ZcQfs':function(_0x205538,_0x235487,_0x4ff01c){return _0x205538(_0x235487,_0x4ff01c);},'yJQkV':_0x4ce223(0xed),'Nrsgq':_0x4ce223(0xc1),'DLemq':function(_0x562a08,_0x3af6f9,_0x2fd749){return _0x562a08(_0x3af6f9,_0x2fd749);},'piRRb':function(_0x32445a,_0xd7406c){return _0x32445a(_0xd7406c);},'UjHjt':_0x4ce223(0xbf),'FqjoL':function(_0x3a8bfc,_0x25730e){return _0x3a8bfc===_0x25730e;},'KctFD':function(_0xdc4a9b){return _0xdc4a9b();}},{envNames:_0x4e9e50,activeEnv:_0x16b2ef}=await getEnvNames(),_0x48a4ea=_0x3ffd1c[_0x4ce223(0xca)](getRangerDir);if(!_0x3ffd1c[_0x4ce223(0xc4)](existsSync,_0x48a4ea))return{'envs':[],'activeEnv':null};const _0x5be0e1=_0x4e9e50[_0x4ce223(0xd2)](_0x515db2=>{const _0x5d5bc1=_0x4ce223,_0x4f10e3=getEnvDir(_0x515db2),_0x8e7fb0=_0x3ffd1c[_0x5d5bc1(0xb7)](join,_0x4f10e3,_0x3ffd1c['yJQkV']),_0xb194db=_0x3ffd1c[_0x5d5bc1(0xb7)](join,_0x4f10e3,_0x3ffd1c['Nrsgq']),_0xc749ab=_0x3ffd1c[_0x5d5bc1(0x9b)](join,_0x4f10e3,_0x5d5bc1(0xdb));return{'name':_0x515db2,'settingsPath':_0x3ffd1c['piRRb'](existsSync,_0x8e7fb0)?_0x8e7fb0:_0x3ffd1c[_0x5d5bc1(0x93)],'hasPlaintextAuth':existsSync(_0xb194db),'hasEncryptedAuth':_0x3ffd1c[_0x5d5bc1(0xc4)](existsSync,_0xc749ab),'isActive':_0x3ffd1c[_0x5d5bc1(0xf3)](_0x515db2,_0x16b2ef)};});return{'envs':_0x5be0e1,'activeEnv':_0x16b2ef};}export async function status(){const _0x2443df=_0x495b31,_0x226098={'ApTda':'\x0a📊\x20Ranger\x20Status\x0a','SlCog':function(_0x2d314e){return _0x2d314e();},'dCTvJ':function(_0x161ffe,_0x581107,_0x512628){return _0x161ffe(_0x581107,_0x512628);},'YvTjK':function(_0x14fdf4,_0x42a44c){return _0x14fdf4(_0x42a44c);},'jriAU':function(_0x14dd37,_0x359a81,_0x4abb0e){return _0x14dd37(_0x359a81,_0x4abb0e);},'ZZASA':function(_0x4f0dc3,_0x4b0cf7){return _0x4f0dc3(_0x4b0cf7);},'GCpPL':function(_0x148f97,_0x14e27e){return _0x148f97(_0x14e27e);},'bVkfA':_0x2443df(0xf2),'jIIQH':function(_0x3daee1,_0x539785){return _0x3daee1===_0x539785;},'kpELu':'ranger@trailhead','gEwop':'unknown','amzgn':_0x2443df(0x8d),'GXlNS':function(_0x5024ff,_0x4ea536){return _0x5024ff===_0x4ea536;},'cNWgv':_0x2443df(0xde),'JgKMx':'\x0a---\x20Profiles\x20---','GpzzN':function(_0x3840b9){return _0x3840b9();},'CmEpN':_0x2443df(0xe9),'cxlIZ':function(_0x253e1c,_0x53f3b8,_0x4af312){return _0x253e1c(_0x53f3b8,_0x4af312);}};console['log'](_0x226098[_0x2443df(0xac)]);const _0x16f187=process['cwd'](),_0x5d2a9a=_0x226098[_0x2443df(0xe5)](getRangerDir);if(!existsSync(_0x5d2a9a)){console[_0x2443df(0x9c)](_0x2443df(0xf1)+_0x226098[_0x2443df(0xd8)](link,_0x16f187,_0x226098['YvTjK'](bold,basename(_0x16f187)))),console[_0x2443df(0x9c)]('\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.'),console['log'](_0x2443df(0xef));return;}console[_0x2443df(0x9c)](_0x2443df(0xf1)+_0x226098['jriAU'](link,_0x16f187,_0x226098['ZZASA'](bold,_0x226098[_0x2443df(0xb6)](basename,_0x16f187))));const _0x1a1f6e=_0x226098['SlCog'](getCurrentVersion),_0x11ea32=getLatestVersion();if(_0x11ea32[_0x2443df(0xb0)]&&_0x11ea32['version']!==_0x1a1f6e)console[_0x2443df(0x9c)](_0x2443df(0xd5)+_0x1a1f6e+'\x20(latest:\x20'+_0x11ea32[_0x2443df(0xb0)]+')'),console[_0x2443df(0x9c)](_0x2443df(0xb8));else _0x11ea32['version']?console[_0x2443df(0x9c)](_0x2443df(0xd5)+_0x1a1f6e+'\x20(up\x20to\x20date)'):console[_0x2443df(0x9c)]('Version:\x20'+_0x1a1f6e);const _0x4c860c=await getToken();if(_0x4c860c){const _0x57926b=await getCurrentUser(_0x4c860c);_0x57926b[_0x2443df(0xbd)]?console['log'](_0x2443df(0x8e)+_0x226098[_0x2443df(0x99)](bold,_0x57926b['user']['organizationName'])):(console[_0x2443df(0x9c)](_0x2443df(0xc0)),console['log'](_0x2443df(0xc3)));}else console['log']('API\x20Token:\x20✗\x20Not\x20found'),console[_0x2443df(0x9c)]('\x20\x20Run:\x20ranger\x20setup\x20[token]');process[_0x2443df(0xe1)][_0x2443df(0xa7)]&&(console['log'](_0x2443df(0xf6)+getCurrentEnvironment()),console['log'](_0x2443df(0xb4)+_0x226098[_0x2443df(0xe5)](getApiBaseUrl)));console[_0x2443df(0x9c)](_0x2443df(0xe4));const _0x19a918=await _0x226098[_0x2443df(0xe5)](getOpencodePluginStatus);if(_0x19a918['status']===_0x226098[_0x2443df(0x92)])console[_0x2443df(0x9c)]('\x20\x20'+bold(_0x2443df(0xa9))+_0x2443df(0xc7)),_0x19a918['details']&&console[_0x2443df(0x9c)]('\x20\x20'+_0x19a918['details']);else _0x226098['jIIQH'](_0x19a918[_0x2443df(0x9f)],'not_configured')?(console['log']('\x20\x20Not\x20configured'),_0x19a918[_0x2443df(0xeb)]&&console['log']('\x20\x20'+_0x19a918[_0x2443df(0xeb)]),console['log'](_0x2443df(0xa2))):console[_0x2443df(0x9c)](_0x2443df(0xcc));console['log'](_0x2443df(0x9e));const _0x261169=await getPluginInfo(_0x226098['kpELu']);if(_0x261169){const _0x44844c=_0x261169['scope']||_0x226098['gEwop'],_0x25ed6d=_0x261169[_0x2443df(0x8d)]?_0x226098['amzgn']:_0x2443df(0xc6);console[_0x2443df(0x9c)]('\x20\x20'+bold(_0x2443df(0xd0))+_0x2443df(0xb1)+_0x44844c+',\x20'+_0x25ed6d+')');}else console['log'](_0x2443df(0x8c)),console[_0x2443df(0x9c)](_0x2443df(0xa5));console[_0x2443df(0x9c)](_0x2443df(0xb3));const {project:_0x176a6e,user:_0x38addb}=await _0x226098['SlCog'](getInstalledSkills),_0x1a3a4a=_0x176a6e['filter'](_0x13a289=>RANGER_MANAGED_SKILLS['includes'](_0x13a289['name'])),_0x400724=_0x38addb[_0x2443df(0xae)](_0x567646=>RANGER_MANAGED_SKILLS['includes'](_0x567646['name'])),_0x199cfc=_0x1a3a4a[_0x2443df(0xee)]+_0x400724[_0x2443df(0xee)];if(_0x226098[_0x2443df(0x94)](_0x199cfc,0x0))console['log'](_0x226098[_0x2443df(0xaf)]),console['log'](_0x2443df(0x95));else{if(_0x1a3a4a[_0x2443df(0xee)]>0x0){console['log']('\x20\x20Project-level:');for(const _0x22b080 of _0x1a3a4a){console['log'](_0x2443df(0xa6)+bold(_0x22b080['displayName'])+':\x20'+_0x226098[_0x2443df(0xba)](link,_0x22b080['path'],_0x226098[_0x2443df(0xb6)](basename,_0x22b080['path'])));}}if(_0x400724[_0x2443df(0xee)]>0x0){console['log']('\x20\x20User-level:');for(const _0x156d60 of _0x400724){console[_0x2443df(0x9c)]('\x20\x20\x20\x20'+_0x226098['ZZASA'](bold,_0x156d60[_0x2443df(0xe0)])+':\x20'+_0x226098['dCTvJ'](link,_0x156d60['path'],basename(_0x156d60['path'])));}}}console[_0x2443df(0x9c)](_0x226098[_0x2443df(0xa8)]);const {envs:_0x307674,activeEnv:_0x1a917e}=await _0x226098['GpzzN'](getEnvironments);if(_0x307674['length']===0x0)console[_0x2443df(0x9c)](_0x2443df(0xe7)),console['log'](_0x2443df(0xec));else{for(const _0x3214ee of _0x307674){const _0x4f8fe0=_0x3214ee['isActive']?_0x226098['CmEpN']:'',_0x1aa1ee=_0x3214ee[_0x2443df(0xa1)]?'encrypted':_0x3214ee['hasPlaintextAuth']?_0x2443df(0xd1):'none';console[_0x2443df(0x9c)]('\x20\x20'+_0x226098['ZZASA'](bold,_0x3214ee[_0x2443df(0xbb)])+_0x4f8fe0),console['log'](_0x2443df(0x91)+_0x1aa1ee),_0x3214ee[_0x2443df(0xb9)]!=='(not\x20found)'&&console['log']('\x20\x20\x20\x20Settings:\x20'+_0x226098[_0x2443df(0x97)](link,_0x3214ee['settingsPath'],basename(_0x3214ee[_0x2443df(0xb9)])));}!_0x1a917e&&(console['log']('\x0a\x20\x20No\x20active\x20profile\x20set'),console['log'](_0x2443df(0xdd)+_0x307674[_0x2443df(0xd2)](_0x42010d=>_0x42010d['name'])['join'](',\x20')+')'));}console[_0x2443df(0x9c)]('');}