@ranger-testing/ranger-cli 2.4.2 → 2.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/build/cli.js +1 -1
  2. package/build/commands/addEnv.js +1 -1
  3. package/build/commands/authEncrypt.js +1 -1
  4. package/build/commands/clean.js +1 -1
  5. package/build/commands/config.js +1 -1
  6. package/build/commands/env.js +1 -1
  7. package/build/commands/feature.js +1 -1
  8. package/build/commands/hook.js +1 -1
  9. package/build/commands/hooks/autoPrompt.js +1 -1
  10. package/build/commands/hooks/disable.js +1 -1
  11. package/build/commands/hooks/enable.js +1 -1
  12. package/build/commands/hooks/exitPlanMode.js +1 -1
  13. package/build/commands/hooks/index.js +1 -1
  14. package/build/commands/hooks/output.js +1 -1
  15. package/build/commands/hooks/planReminder.js +1 -1
  16. package/build/commands/hooks/planStart.js +1 -1
  17. package/build/commands/hooks/postEdit.js +1 -1
  18. package/build/commands/hooks/preCompact.js +1 -1
  19. package/build/commands/hooks/sessionEnd.js +1 -1
  20. package/build/commands/hooks/sessionStart.js +1 -1
  21. package/build/commands/hooks/stopHook.js +1 -1
  22. package/build/commands/index.js +1 -1
  23. package/build/commands/login.js +1 -1
  24. package/build/commands/setup/claude.js +1 -1
  25. package/build/commands/setup/opencode.js +1 -1
  26. package/build/commands/setupCi.js +1 -1
  27. package/build/commands/skillup.js +1 -1
  28. package/build/commands/start.js +1 -1
  29. package/build/commands/status.js +1 -1
  30. package/build/commands/update.js +1 -1
  31. package/build/commands/updateEnv.js +1 -1
  32. package/build/commands/useEnv.js +1 -1
  33. package/build/commands/utils/activeProfile.js +1 -1
  34. package/build/commands/utils/agentEnv.js +1 -1
  35. package/build/commands/utils/browserSessionsApi.js +1 -1
  36. package/build/commands/utils/claudeConfig.js +1 -1
  37. package/build/commands/utils/claudePlugin.js +1 -1
  38. package/build/commands/utils/crypto.js +1 -1
  39. package/build/commands/utils/desirePathLog.js +1 -1
  40. package/build/commands/utils/deviceAuth.js +1 -1
  41. package/build/commands/utils/environment.js +1 -1
  42. package/build/commands/utils/featureApi.js +1 -1
  43. package/build/commands/utils/featureReportGenerator.js +1 -1
  44. package/build/commands/utils/fixWebmDuration.js +1 -1
  45. package/build/commands/utils/git.js +1 -1
  46. package/build/commands/utils/keychain.js +1 -1
  47. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  48. package/build/commands/utils/mcpImageBase64.js +1 -1
  49. package/build/commands/utils/model.js +1 -1
  50. package/build/commands/utils/opencodeConfig.js +1 -1
  51. package/build/commands/utils/playwrightCli.js +1 -1
  52. package/build/commands/utils/profileMessages.js +1 -1
  53. package/build/commands/utils/profileSetupBanner.js +1 -1
  54. package/build/commands/utils/rangerConfig.js +1 -1
  55. package/build/commands/utils/rangerRoot.js +1 -1
  56. package/build/commands/utils/reportGenerator.js +1 -1
  57. package/build/commands/utils/retry.js +1 -1
  58. package/build/commands/utils/sessionCache.js +1 -1
  59. package/build/commands/utils/settings.js +1 -1
  60. package/build/commands/utils/skillContent.js +1 -1
  61. package/build/commands/utils/skills.js +1 -1
  62. package/build/commands/utils/stitchWebmFiles.js +1 -1
  63. package/build/commands/utils/telemetry.js +1 -1
  64. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  65. package/build/commands/utils/userApi.js +1 -1
  66. package/build/commands/utils/version.js +1 -1
  67. package/build/commands/verifyFeature.js +1 -1
  68. package/build/commands/verifyFeatureCli.js +1 -1
  69. package/build/commands/verifyInBrowser.js +1 -1
  70. package/package.json +1 -1
@@ -1 +1 @@
1
- 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
+ (function(_0x2081bd,_0x131c5a){const _0x12b42f=_0x2967,_0x216b35=_0x2081bd();while(!![]){try{const _0x6b38d6=parseInt(_0x12b42f(0xc4))/0x1*(-parseInt(_0x12b42f(0xc7))/0x2)+parseInt(_0x12b42f(0xbd))/0x3*(parseInt(_0x12b42f(0xbc))/0x4)+parseInt(_0x12b42f(0xba))/0x5+parseInt(_0x12b42f(0xc5))/0x6+parseInt(_0x12b42f(0xbe))/0x7+parseInt(_0x12b42f(0xc3))/0x8+-parseInt(_0x12b42f(0xb5))/0x9;if(_0x6b38d6===_0x131c5a)break;else _0x216b35['push'](_0x216b35['shift']());}catch(_0x2105ae){_0x216b35['push'](_0x216b35['shift']());}}}(_0x1254,0x1c1ef));import{appendFile}from'fs/promises';function _0x1254(){const _0x2bd323=['1377691iAUbNK','rbOdA','HLQdL','\x20(Branch:\x20','zslio','307184qcIOkJ','8RgZTpn','456060jsvvwe','success','23804uXhFTv','2843586FQxrJY','session_id','KCOYl','master','env','151415VTTnKu','trgil','105628UMjDzy','21XYUHRp'];_0x1254=function(){return _0x2bd323;};return _0x1254();}function _0x2967(_0x3d8eea,_0xeac4f8){_0x3d8eea=_0x3d8eea-0xb5;const _0x125488=_0x1254();let _0x2967c3=_0x125488[_0x3d8eea];return _0x2967c3;}import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';const RANGER_AUTO_ENABLED_PROMPT='=================================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🚨\x20RANGER\x20IS\x20ACTIVE\x20🚨\x0a=================================================================\x0a\x0aThis\x20session\x20has\x20Ranger\x20ENABLED.\x20Before\x20doing\x20ANYTHING\x20else:\x0a\x0a1.\x20**READ\x20the\x20/ranger\x20skill\x20FIRST**\x20-\x20Run\x20the\x20skill\x20to\x20understand\x20the\x20required\x20workflow\x20for\x20UI\x20features\x0a\x0a2.\x20**Check\x20for\x20existing\x20feature\x20reviews**\x20-\x20Run\x20`ranger\x20list`\x20to\x20see\x20if\x20there\x27s\x20an\x20in-progress\x20feature\x20review\x20to\x20resume\x0a\x0a3.\x20**For\x20ANY\x20UI\x20work**:\x20You\x20MUST\x20either:\x0a\x20\x20\x20-\x20Resume\x20an\x20existing\x20feature\x20review:\x20`ranger\x20resume\x20<id>`\x0a\x20\x20\x20-\x20Create\x20a\x20new\x20feature\x20review:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario>\x22`\x0a\x0a4.\x20**If\x20resuming\x20a\x20feature\x20review\x20with\x20reviewer\x20comments**:\x20Run\x20`ranger\x20get-review`\x20to\x20see\x20what\x20reviewers\x20want\x20fixed\x20before\x20making\x20code\x20changes\x0a\x0a=================================================================';export async function sessionStart(_0x52c16b){const _0x1a2a29=_0x2967,_0x2b1b0b={'zslio':function(_0x482432,_0x4db565){return _0x482432||_0x4db565;},'PyLRJ':_0x1a2a29(0xb6),'trgil':function(_0x3aad7c,_0x5e3e4d,_0x5bab06){return _0x3aad7c(_0x5e3e4d,_0x5bab06);},'KaXik':function(_0x25eb50,_0x4d93a0){return _0x25eb50(_0x4d93a0);},'umGNI':function(_0x5e5fd5,_0x3f0769){return _0x5e5fd5(_0x3f0769);},'HLQdL':'hook:session-start','KCOYl':_0x1a2a29(0xc6),'DgVHz':function(_0xc97e4b,_0x58210e){return _0xc97e4b!==_0x58210e;},'ulBCh':'main','mcNNm':_0x1a2a29(0xb8),'mjwhy':'SessionStart','rbOdA':function(_0x98996b,_0x4a5ded){return _0x98996b+_0x4a5ded;}};let _0x115982=_0x2b1b0b[_0x1a2a29(0xc2)](_0x52c16b,''),_0x25167c;if(!_0x52c16b){let _0x145890='';for await(const _0x59fe95 of process['stdin']){_0x145890+=_0x59fe95;}try{const _0x556fdc=JSON['parse'](_0x145890);_0x115982=_0x556fdc[_0x2b1b0b['PyLRJ']]||'',_0x25167c=_0x556fdc['source'];}catch{}const _0x17f79d=process[_0x1a2a29(0xb9)]['CLAUDE_ENV_FILE'];if(_0x17f79d&&_0x115982)try{await _0x2b1b0b[_0x1a2a29(0xbb)](appendFile,_0x17f79d,'export\x20CLAUDE_SESSION_ID=\x22'+_0x115982+'\x22\x0a');}catch{}}if(_0x115982){_0x2b1b0b['KaXik'](shouldAutoEnableAfterClear,_0x25167c)&&autoEnableAfterClear(_0x115982);_0x2b1b0b['umGNI'](initBranchTracking,_0x115982);const _0x405837=isSessionEnabled(_0x115982);try{const _0x11653a=createTelemetryCollector(_0x2b1b0b[_0x1a2a29(0xc0)]);await _0x11653a['trackCommandStart']({'sessionId':_0x115982,'hooksEnabled':_0x405837}),await _0x11653a['trackCommandEnd'](_0x2b1b0b[_0x1a2a29(0xb7)]);}catch{}if(_0x405837){const _0x39fb32=getCurrentBranch(),_0x3adec3=_0x39fb32&&_0x2b1b0b['DgVHz'](_0x39fb32,_0x2b1b0b['ulBCh'])&&_0x2b1b0b['DgVHz'](_0x39fb32,_0x2b1b0b['mcNNm'])?_0x1a2a29(0xc1)+_0x39fb32+')':'',_0x56fc74={'hookSpecificOutput':{'hookEventName':_0x2b1b0b['mjwhy'],'additionalContext':_0x2b1b0b[_0x1a2a29(0xbf)](RANGER_AUTO_ENABLED_PROMPT,_0x3adec3)}};console['log'](JSON['stringify'](_0x56fc74));}}}
@@ -1 +1 @@
1
- (function(_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
+ (function(_0x1b60d6,_0x4bc758){const _0x5c2e3d=_0x29b4,_0x55def9=_0x1b60d6();while(!![]){try{const _0x37be2f=parseInt(_0x5c2e3d(0x120))/0x1+-parseInt(_0x5c2e3d(0x111))/0x2+-parseInt(_0x5c2e3d(0x110))/0x3*(parseInt(_0x5c2e3d(0x117))/0x4)+-parseInt(_0x5c2e3d(0x114))/0x5+-parseInt(_0x5c2e3d(0x119))/0x6+parseInt(_0x5c2e3d(0x121))/0x7*(parseInt(_0x5c2e3d(0x123))/0x8)+-parseInt(_0x5c2e3d(0x116))/0x9*(-parseInt(_0x5c2e3d(0x122))/0xa);if(_0x37be2f===_0x4bc758)break;else _0x55def9['push'](_0x55def9['shift']());}catch(_0x20eaac){_0x55def9['push'](_0x55def9['shift']());}}}(_0x23c5,0x4fbaa));import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x42a54b){const _0x3f86a1=_0x29b4,_0x25a830={'StAhj':function(_0x1d4b1d,_0xca9569){return _0x1d4b1d(_0xca9569);},'uTgbX':function(_0x387432,_0x41d1be,_0x5ce795,_0x1625d6){return _0x387432(_0x41d1be,_0x5ce795,_0x1625d6);},'AGjgb':function(_0x4604bc,_0x341246){return _0x4604bc&&_0x341246;},'zePRg':_0x3f86a1(0x113)},_0x237d11=await getEnabledHookContext(_0x42a54b),_0x5d4e4a=_0x237d11?.[_0x3f86a1(0x112)]??null;let _0x697bd0=!![];if(!_0x5d4e4a){await trackStop(_0x5d4e4a,![],_0x697bd0);return;}try{const _0x355612=_0x25a830[_0x3f86a1(0x115)](getSessionEntry,_0x5d4e4a);if(!_0x355612){await _0x25a830[_0x3f86a1(0x128)](trackStop,_0x5d4e4a,!![],_0x697bd0);return;}const _0x1e1c13=await getToken(),_0x31cc04='https://dashboard.ranger.net/features/'+_0x355612[_0x3f86a1(0x124)];let _0x3feb20=null,_0x266a8f=![],_0x379a46=![];if(_0x1e1c13)try{const _0xb956dc=await getFeature(_0x355612[_0x3f86a1(0x124)]);_0x3feb20=_0xb956dc[_0x3f86a1(0x11f)]??null;const _0x561cbb=_0xb956dc[_0x3f86a1(0x10d)][_0x3f86a1(0x10f)](_0x3bbdd0=>_0x3bbdd0[_0x3f86a1(0x112)]===_0x3feb20);_0x266a8f=_0x561cbb[_0x3f86a1(0x127)](_0x290231=>_0x290231['status']!==_0x3f86a1(0x125)&&_0x290231['status']!==_0x3f86a1(0x11e)&&_0x290231['status']!==_0x3f86a1(0x11b)&&_0x290231['status']!=='incomplete'),_0x379a46=_0x561cbb[_0x3f86a1(0x127)](_0x467bed=>_0x467bed['status']===_0x3f86a1(0x129));}catch{}if(_0x25a830[_0x3f86a1(0x126)](_0x1e1c13,_0x3feb20)&&_0x266a8f){if(!_0x379a46&&shouldShowStopReminder(_0x5d4e4a)){const _0x3805f1={'hookSpecificOutput':{'hookEventName':_0x25a830[_0x3f86a1(0x11c)],'additionalContext':'RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20'+_0x31cc04}};console[_0x3f86a1(0x10e)](JSON[_0x3f86a1(0x10c)](_0x3805f1));}}if(_0x1e1c13&&_0x3feb20&&!_0x266a8f)try{await concludeSession(_0x355612['featureId'],_0x3feb20);}catch{}await trackStop(_0x5d4e4a,!![],_0x697bd0);return;}catch{await trackStop(_0x5d4e4a,!![],_0x697bd0);return;}}function _0x23c5(){const _0x31016a=['verification_in_progress','stringify','checklistItems','log','filter','3MToPdY','1137506hCOXYE','sessionId','Stop','770980xpzXxq','StAhj','72027HqGmfr','353884SxMVRE','trackCommandEnd','2259888wOUToU','trackCommandStart','closed','zePRg','success','blocked','currentSessionId','556297khLPpL','63tFBLbV','600aPbtPv','425032ZddLYo','featureId','verified','AGjgb','some','uTgbX'];_0x23c5=function(){return _0x31016a;};return _0x23c5();}function _0x29b4(_0x446df6,_0x52f347){_0x446df6=_0x446df6-0x10c;const _0x23c5bd=_0x23c5();let _0x29b4b4=_0x23c5bd[_0x446df6];return _0x29b4b4;}async function trackStop(_0x50b18b,_0x55ad2a,_0x1f3985){const _0x489a5c=_0x29b4,_0x4a3f0d={'lXZOB':'hook:stop','iYKZW':_0x489a5c(0x11d)};try{const _0x18df3c=createTelemetryCollector(_0x4a3f0d['lXZOB']);await _0x18df3c[_0x489a5c(0x11a)]({'sessionId':_0x50b18b??undefined,'hooksEnabled':_0x55ad2a,'stopAllowed':_0x1f3985}),await _0x18df3c[_0x489a5c(0x118)](_0x4a3f0d['iYKZW']);}catch{}}
@@ -1 +1 @@
1
- (function(_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
+ (function(_0x103b3d,_0x5e6c88){var _0x21722e=_0x5ebc,_0x19c6ae=_0x103b3d();while(!![]){try{var _0x57875b=-parseInt(_0x21722e(0x95))/0x1*(parseInt(_0x21722e(0x9a))/0x2)+-parseInt(_0x21722e(0x9b))/0x3+parseInt(_0x21722e(0x98))/0x4*(parseInt(_0x21722e(0x94))/0x5)+-parseInt(_0x21722e(0x97))/0x6*(-parseInt(_0x21722e(0x9d))/0x7)+parseInt(_0x21722e(0x96))/0x8*(parseInt(_0x21722e(0x9c))/0x9)+-parseInt(_0x21722e(0x92))/0xa+-parseInt(_0x21722e(0x93))/0xb*(parseInt(_0x21722e(0x99))/0xc);if(_0x57875b===_0x5e6c88)break;else _0x19c6ae['push'](_0x19c6ae['shift']());}catch(_0x3b322a){_0x19c6ae['push'](_0x19c6ae['shift']());}}}(_0x4690,0xcfe0c));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';export{useEnv}from'./useEnv.js';function _0x5ebc(_0x21251b,_0x3faf2c){_0x21251b=_0x21251b-0x92;var _0x46900b=_0x4690();var _0x5ebc2f=_0x46900b[_0x21251b];return _0x5ebc2f;}function _0x4690(){var _0x39e8f9=['1132046jHyNGt','335340QhTfOT','9tibjJi','7BsIWdU','5028830XaYTbX','5716227VQfFKD','35PWXNud','1dVWIHN','5904368XgInYr','6990492qULPMv','370676OTyZGa','12LSMUzh'];_0x4690=function(){return _0x39e8f9;};return _0x4690();}export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
@@ -1 +1 @@
1
- function _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
+ function _0xc4ad(){const _0x94c862=['MkBcj','user','190THTUye','Login\x20failed:\x20','1943319kqTHqf','189291VqryEG','71522DHUFbu','76952BTyrpl','isTTY','\x0a✅\x20Logged\x20in\x20to\x20','587412FfUdOZ','6CWHEWF','message','stdin','718299vQNGhc','12rjaJPE','8hhpDhn','424495XGUlfl','stdout','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.'];_0xc4ad=function(){return _0x94c862;};return _0xc4ad();}(function(_0x34ab1e,_0xd30e92){const _0x87b6c8=_0x14b4,_0x2d227f=_0x34ab1e();while(!![]){try{const _0x271942=-parseInt(_0x87b6c8(0x87))/0x1+-parseInt(_0x87b6c8(0x8b))/0x2*(-parseInt(_0x87b6c8(0x85))/0x3)+parseInt(_0x87b6c8(0x8a))/0x4+parseInt(_0x87b6c8(0x91))/0x5*(-parseInt(_0x87b6c8(0x8f))/0x6)+parseInt(_0x87b6c8(0x84))/0x7+parseInt(_0x87b6c8(0x90))/0x8*(-parseInt(_0x87b6c8(0x8e))/0x9)+parseInt(_0x87b6c8(0x82))/0xa*(-parseInt(_0x87b6c8(0x86))/0xb);if(_0x271942===_0xd30e92)break;else _0x2d227f['push'](_0x2d227f['shift']());}catch(_0x493d5e){_0x2d227f['push'](_0x2d227f['shift']());}}}(_0xc4ad,0x27f4e));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x14b4(_0x54ff09,_0x1736a0){_0x54ff09=_0x54ff09-0x80;const _0xc4add4=_0xc4ad();let _0x14b4c4=_0xc4add4[_0x54ff09];return _0x14b4c4;}export async function login(){const _0x27a4e9=_0x14b4,_0x188436={'TQSmr':function(_0x291c0e){return _0x291c0e();},'MkBcj':function(_0xe54ec3,_0xa55236){return _0xe54ec3(_0xa55236);},'icZfw':function(_0x53a92c,_0x4a2b94){return _0x53a92c instanceof _0x4a2b94;}},_0xd1465f=process[_0x27a4e9(0x8d)][_0x27a4e9(0x88)]&&process[_0x27a4e9(0x92)][_0x27a4e9(0x88)];if(!_0xd1465f)throw new Error(_0x27a4e9(0x93));try{const _0x509660=await _0x188436['TQSmr'](runDeviceAuthFlow),_0x30eec1=await _0x188436[_0x27a4e9(0x80)](getCurrentUser,_0x509660);_0x30eec1['success']?console['log'](_0x27a4e9(0x89)+_0x30eec1[_0x27a4e9(0x81)]['organizationName']):console['log']('\x0a✅\x20API\x20key\x20stored\x20successfully');}catch(_0x26e276){throw new Error(_0x27a4e9(0x83)+(_0x188436['icZfw'](_0x26e276,Error)?_0x26e276[_0x27a4e9(0x8c)]:_0x26e276));}}
@@ -1 +1 @@
1
- (function(_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
+ (function(_0x113236,_0x180f7c){const _0x33dc7b=_0x3727,_0x52264d=_0x113236();while(!![]){try{const _0x2adbb6=-parseInt(_0x33dc7b(0x1ef))/0x1*(parseInt(_0x33dc7b(0x1dc))/0x2)+-parseInt(_0x33dc7b(0x1cd))/0x3+parseInt(_0x33dc7b(0x1dd))/0x4*(-parseInt(_0x33dc7b(0x1d6))/0x5)+parseInt(_0x33dc7b(0x1ea))/0x6+-parseInt(_0x33dc7b(0x1c7))/0x7+-parseInt(_0x33dc7b(0x1cb))/0x8*(parseInt(_0x33dc7b(0x1d8))/0x9)+parseInt(_0x33dc7b(0x1d3))/0xa;if(_0x2adbb6===_0x180f7c)break;else _0x52264d['push'](_0x52264d['shift']());}catch(_0x5508f3){_0x52264d['push'](_0x52264d['shift']());}}}(_0x2e00,0x810bd));import{join}from'path';import{existsSync}from'fs';import _0x4782a6 from'inquirer';function _0x3727(_0x1ca33a,_0x29dfbe){_0x1ca33a=_0x1ca33a-0x1c5;const _0x2e003f=_0x2e00();let _0x3727de=_0x2e003f[_0x1ca33a];return _0x3727de;}import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x2e00(){const _0x16f67d=['IPZkF','\x0aYou\x20can\x20install\x20manually\x20with:','wantsSkillup','log','ezFnO','2817804bLWTFy','project','PwTPW','user','rypjN','113623rQCOPf','⚠\x20Failed\x20to\x20enable\x20plugin:','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','plugin','push','6166482HEzPpZ','prompt','\x20level)...\x0a','❌\x20Failed\x20to\x20install\x20plugin:','56024kzZuig','ranger@trailhead','3021981NJdBDC','CpXUI','Hxbsa','MTdMj','already\x20enabled','Would\x20you\x20like\x20to\x20install\x20skills?','28374160QqpCSt','✓\x20Marketplace\x20already\x20added','YYkMM','2326595qPXTPI','FLBcV','108mQpzke','install','jNXgF','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','6EmJrXQ','4rUGHNo','.claude','output','ranger','--scope','Where\x20should\x20the\x20plugin\x20be\x20installed?','includes','error'];_0x2e00=function(){return _0x16f67d;};return _0x2e00();}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x4e5f94){const _0x4041c9=_0x3727,_0x5d1597={'ceYIm':function(_0x1d9909,_0x3f8eee){return _0x1d9909(_0x3f8eee);},'ABukV':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','FLBcV':function(_0x2dcf5c){return _0x2dcf5c();},'rypjN':'project','PwTPW':'pluginScope','QQXdW':_0x4041c9(0x1e2),'jNXgF':'User\x20(available\x20in\x20all\x20your\x20projects)','bPUgw':_0x4041c9(0x1d4),'YYkMM':function(_0x573372,_0x74ac74){return _0x573372(_0x74ac74);},'MTdMj':'marketplace','XKFRD':_0x4041c9(0x1db),'ezFnO':_0x4041c9(0x1d9),'HAIFZ':_0x4041c9(0x1ca),'CpXUI':function(_0x544231,_0x2e2c7e){return _0x544231===_0x2e2c7e;},'jFdQN':function(_0x419ac0,_0x5262d2,_0x25c757){return _0x419ac0(_0x5262d2,_0x25c757);}},_0x51304a=await _0x5d1597['ceYIm'](isPluginInstalled,'ranger@trailhead');if(_0x51304a)return console['log'](_0x5d1597['ABukV']),![];const _0x1d3154=_0x5d1597['ceYIm'](existsSync,join(_0x5d1597[_0x4041c9(0x1d7)](getProjectRoot),_0x4041c9(0x1de)));let _0x315a89;if(_0x4e5f94)_0x315a89=_0x4e5f94;else{if(_0x1d3154)_0x315a89=_0x5d1597[_0x4041c9(0x1ee)];else{console[_0x4041c9(0x1e8)]('\x0a📦\x20Claude\x20Code\x20Plugin\x0a');const _0x367b88=await _0x4782a6['prompt']([{'type':'list','name':_0x5d1597[_0x4041c9(0x1ec)],'message':_0x5d1597['QQXdW'],'choices':[{'name':_0x5d1597[_0x4041c9(0x1da)],'value':_0x4041c9(0x1ed)},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x4041c9(0x1eb)}],'default':_0x4041c9(0x1ed)}]);_0x315a89=_0x367b88['pluginScope'];}}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x315a89+_0x4041c9(0x1c9));const _0x1055d4=await isMarketplaceAdded('trailhead');let _0x54a8eb=_0x1055d4;if(_0x1055d4)console[_0x4041c9(0x1e8)](_0x5d1597['bPUgw']);else{const _0x5e2588=await _0x5d1597[_0x4041c9(0x1d5)](runClaudeCommand,[_0x4041c9(0x1c5),_0x5d1597[_0x4041c9(0x1d0)],'add','ranger-testing/trailhead']);!_0x5e2588['success']?(console['error']('❌\x20Failed\x20to\x20add\x20marketplace:',_0x5e2588['error']),console[_0x4041c9(0x1e8)](_0x4041c9(0x1e6)),console['log'](_0x5d1597['XKFRD']),console['log'](_0x4041c9(0x1f1)+_0x315a89)):_0x54a8eb=!![];}if(_0x54a8eb){const _0x3d1412=await runClaudeCommand([_0x4041c9(0x1c5),_0x5d1597[_0x4041c9(0x1e9)],_0x4041c9(0x1cc),_0x4041c9(0x1e1),_0x315a89]);if(!_0x3d1412['success'])console['error'](_0x5d1597['HAIFZ'],_0x3d1412[_0x4041c9(0x1e4)]),console['log']('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x4041c9(0x1e8)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x315a89);else{console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x40a261=[_0x4041c9(0x1c5),'enable','ranger@trailhead'];_0x5d1597[_0x4041c9(0x1ce)](_0x315a89,'project')&&_0x40a261[_0x4041c9(0x1c6)]('--scope',_0x5d1597['rypjN']);const _0x24e95e=await _0x5d1597['jFdQN'](runClaudeCommand,_0x40a261,{'captureOutput':!![]}),_0xa6bc17=_0x24e95e[_0x4041c9(0x1df)]?.[_0x4041c9(0x1e3)](_0x4041c9(0x1d1));!_0x24e95e['success']&&!_0xa6bc17?console['error'](_0x4041c9(0x1f0),_0x24e95e[_0x4041c9(0x1e4)]):console['log']('✓\x20Claude\x20Code\x20plugin\x20enabled');}}return!![];}export async function ensureClaudeSkills(_0x2b0ea8){const _0x508cba=_0x3727,_0x1392f9={'sgwAI':function(_0x3ece9c,_0x551eb8,_0x63bf8f,_0x133f44){return _0x3ece9c(_0x551eb8,_0x63bf8f,_0x133f44);},'joVBj':function(_0x5972c4,_0x1988a2){return _0x5972c4(_0x1988a2);},'Hxbsa':function(_0x1b6743,_0x233de8){return _0x1b6743(_0x233de8);},'IPZkF':'ranger','jtXUT':'SKILL.md','ipArJ':function(_0x1d8c26,_0x3f8b68){return _0x1d8c26||_0x3f8b68;},'PGnCu':function(_0x1fa6a5,_0x47b0a3,_0x41b158){return _0x1fa6a5(_0x47b0a3,_0x41b158);},'pFiJC':function(_0x1d234c){return _0x1d234c();},'FJVqW':_0x508cba(0x1de),'HVsjA':function(_0x442ff0,_0x228fec){return _0x442ff0(_0x228fec);},'ymLPv':'project','Thdts':function(_0x1c34e8,_0x573fef){return _0x1c34e8(_0x573fef);}},_0x3139fa=existsSync(_0x1392f9['sgwAI'](join,_0x1392f9['joVBj'](getSkillsDir,_0x508cba(0x1ed)),_0x508cba(0x1e0),'SKILL.md')),_0x5d5160=_0x1392f9[_0x508cba(0x1cf)](existsSync,join(getSkillsDir('project'),_0x1392f9[_0x508cba(0x1e5)],_0x1392f9['jtXUT']));if(_0x1392f9['ipArJ'](_0x3139fa,_0x5d5160))return console[_0x508cba(0x1e8)]('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0x1aa6ce=_0x1392f9['Hxbsa'](existsSync,_0x1392f9['PGnCu'](join,_0x1392f9['pFiJC'](getProjectRoot),_0x1392f9['FJVqW']));let _0x1324ec=!![];if(_0x2b0ea8)await skillup({'autoInstall':_0x2b0ea8,'suppressUsage':!![]});else{if(_0x1aa6ce)await _0x1392f9['HVsjA'](skillup,{'autoInstall':_0x1392f9['ymLPv'],'suppressUsage':!![]});else{const _0xe99842=await _0x4782a6[_0x508cba(0x1c8)]([{'type':'confirm','name':'wantsSkillup','message':_0x508cba(0x1d2),'default':!![]}]);_0x1324ec=_0xe99842[_0x508cba(0x1e7)],_0x1324ec&&await _0x1392f9['Thdts'](skillup,{'suppressUsage':!![]});}}return _0x1324ec;}
@@ -1 +1 @@
1
- (function(_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
+ (function(_0x44b1db,_0x28f7d8){const _0x370454=_0x5912,_0x5a05bc=_0x44b1db();while(!![]){try{const _0x5bf0a6=parseInt(_0x370454(0x1a5))/0x1+parseInt(_0x370454(0x1c0))/0x2*(parseInt(_0x370454(0x1b6))/0x3)+-parseInt(_0x370454(0x1a4))/0x4+-parseInt(_0x370454(0x1ab))/0x5+parseInt(_0x370454(0x1ac))/0x6+parseInt(_0x370454(0x1a9))/0x7*(parseInt(_0x370454(0x1a7))/0x8)+-parseInt(_0x370454(0x1b7))/0x9*(-parseInt(_0x370454(0x1b5))/0xa);if(_0x5bf0a6===_0x28f7d8)break;else _0x5a05bc['push'](_0x5a05bc['shift']());}catch(_0x490355){_0x5a05bc['push'](_0x5a05bc['shift']());}}}(_0x3c92,0xbb06b));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x192bc8 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x363267){const _0x30fce6=_0x5912,_0x158c49={'WwsAO':'project','rSBrR':'opencode.json','yxuPq':_0x30fce6(0x1ba),'eTMHm':_0x30fce6(0x1ae),'JRApp':_0x30fce6(0x1a8),'qGYHV':function(_0x3f24fc,_0x8c7874){return _0x3f24fc(_0x8c7874);},'TziCR':'https://opencode.ai/config.json','jFZOz':_0x30fce6(0x1c1),'JkKUA':'⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','vBhux':_0x30fce6(0x1b8),'sNplO':'✓\x20OpenCode\x20plugin\x20already\x20configured','LTzvN':function(_0xd01e9a,_0x33ad4c,_0x2221f2){return _0xd01e9a(_0x33ad4c,_0x2221f2);},'tuQxI':_0x30fce6(0x1af)},_0x4d020a=existsSync(join(getOpencodeConfigDir(_0x158c49[_0x30fce6(0x1a2)]),_0x158c49['rSBrR']));let _0x2bfe74;if(_0x363267)_0x2bfe74=_0x363267;else{if(_0x4d020a)_0x2bfe74=_0x158c49[_0x30fce6(0x1a2)];else{console['log']('\x0a📦\x20OpenCode\x20Plugin\x0a');const _0x195f66=await _0x192bc8[_0x30fce6(0x1b0)]([{'type':_0x158c49['yxuPq'],'name':_0x30fce6(0x1bb),'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x158c49['eTMHm'],'value':'user'},{'name':_0x158c49['JRApp'],'value':_0x158c49[_0x30fce6(0x1a2)]}],'default':_0x30fce6(0x1bd)}]);_0x2bfe74=_0x195f66['pluginScope'];}}const _0x4559f2=join(_0x158c49[_0x30fce6(0x1b2)](getOpencodeConfigDir,_0x2bfe74),_0x158c49[_0x30fce6(0x1b9)]),_0x59bcc5=_0x30fce6(0x1be),_0x1e7b62=_0x158c49[_0x30fce6(0x1a6)];let _0x330e7d={};if(existsSync(_0x4559f2))try{const _0x3e835a=await readFile(_0x4559f2,_0x158c49[_0x30fce6(0x1bf)]);_0x330e7d=JSON[_0x30fce6(0x1aa)](_0x3e835a);}catch(_0x27395d){return console['error'](_0x158c49['JkKUA']),{'configured':![],'scope':_0x2bfe74,'error':_0x158c49[_0x30fce6(0x1a3)],'details':_0x27395d};}const _0x12f9c7=Array['isArray'](_0x330e7d[_0x30fce6(0x1ad)])?_0x330e7d[_0x30fce6(0x1ad)]:[];if(_0x12f9c7[_0x30fce6(0x1b4)](_0x59bcc5))return console['log'](_0x158c49[_0x30fce6(0x1b3)]),{'configured':![],'scope':_0x2bfe74};return _0x330e7d['$schema']=_0x330e7d['$schema']||_0x1e7b62,_0x330e7d[_0x30fce6(0x1ad)]=[..._0x12f9c7,_0x59bcc5],await _0x158c49[_0x30fce6(0x1bc)](mkdir,_0x158c49[_0x30fce6(0x1b2)](getOpencodeConfigDir,_0x2bfe74),{'recursive':!![]}),await _0x158c49[_0x30fce6(0x1bc)](writeFile,_0x4559f2,JSON['stringify'](_0x330e7d,null,0x2)+'\x0a'),console[_0x30fce6(0x1b1)](_0x158c49['tuQxI']),{'configured':!![],'scope':_0x2bfe74};}function _0x5912(_0x68a87f,_0x672264){_0x68a87f=_0x68a87f-0x1a2;const _0x3c9290=_0x3c92();let _0x59129a=_0x3c9290[_0x68a87f];return _0x59129a;}function _0x3c92(){const _0xaab032=['520UtnlRO','8802HnemBZ','78966PNpGta','Failed\x20to\x20read\x20opencode.json','rSBrR','list','pluginScope','LTzvN','user','@ranger-testing/opencode-plugin','jFZOz','298kpdXbN','utf-8','WwsAO','vBhux','3353400riauVv','222497FlPLyq','TziCR','16BfpgYQ','Project\x20(shared\x20with\x20team\x20via\x20git)','4984105YPYiqT','parse','5501955BSXlGW','989154DmFtyU','plugin','User\x20(available\x20in\x20all\x20your\x20projects)','✓\x20OpenCode\x20plugin\x20configured','prompt','log','qGYHV','sNplO','includes'];_0x3c92=function(){return _0xaab032;};return _0x3c92();}
@@ -1 +1 @@
1
- (function(_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
+ (function(_0x3bf179,_0x3da3d8){const _0x51cbda=_0x5700,_0x291a0d=_0x3bf179();while(!![]){try{const _0x312227=-parseInt(_0x51cbda(0xff))/0x1*(-parseInt(_0x51cbda(0x114))/0x2)+parseInt(_0x51cbda(0xef))/0x3*(-parseInt(_0x51cbda(0xe9))/0x4)+parseInt(_0x51cbda(0x108))/0x5+-parseInt(_0x51cbda(0x100))/0x6*(-parseInt(_0x51cbda(0xe7))/0x7)+parseInt(_0x51cbda(0x115))/0x8*(-parseInt(_0x51cbda(0x10e))/0x9)+-parseInt(_0x51cbda(0xfb))/0xa+-parseInt(_0x51cbda(0xf0))/0xb;if(_0x312227===_0x3da3d8)break;else _0x291a0d['push'](_0x291a0d['shift']());}catch(_0x266424){_0x291a0d['push'](_0x291a0d['shift']());}}}(_0x1ac0,0xdec4e));function _0x5700(_0x3e96b4,_0x91e247){_0x3e96b4=_0x3e96b4-0xe4;const _0x1ac0bb=_0x1ac0();let _0x5700d9=_0x1ac0bb[_0x3e96b4];return _0x5700d9;}import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';function _0x1ac0(){const _0x31b2dd=['error','1177425xmDUlc','26111096YIXZyZ','trailhead','join','settings.json','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','SltYa','ycczJ','✓\x20Marketplace\x20already\x20added','MKvkE','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','success','4214110bcyqfy','WzJUb','mACHA','nQmTz','89yKhyvP','1937526FiiFIG','add','plugin','auth.json.enc','xNvMB','EdfNV','path','auth','8964125DZXCrR','dir_setup','bbBgJ','ZIKDD','chromium','JMXws','2343825geFOqr','pmWUw','sessions','baseUrl','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','name','33122tJSyyd','24YWWKmY','No\x20API\x20token\x20available\x20for\x20decryption','PynjR','skipChromium','uLaZs','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','eKoYq','\x22:\x20','JNTzc','bNDOy','length','skills','log','ranger@trailhead','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','trackPhaseStart','jSqCp','35CpCgyn','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','4zzfOjN','trackPhaseEnd','pPqwb','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','uwjMV'];_0x1ac0=function(){return _0x31b2dd;};return _0x1ac0();}async function findCiProfile(_0x2e500a){const _0x10579c=_0x5700,_0x2a7cd3={'PynjR':function(_0x215d4e,_0x5bd26d,_0x299c71){return _0x215d4e(_0x5bd26d,_0x299c71);},'bbBgJ':function(_0x40c856,_0x3c3075,_0xd764fb){return _0x40c856(_0x3c3075,_0xd764fb);},'uLaZs':function(_0xc195a7,_0x4c5421){return _0xc195a7+_0x4c5421;},'URmOj':_0x10579c(0x112),'HSHzu':function(_0x719a46,_0xa99e13){return _0x719a46===_0xa99e13;}},_0x3ae4f2=getRangerDir(),_0x311825=_0x2a7cd3[_0x10579c(0x117)](join,_0x3ae4f2,'ci');if(_0x2e500a){const _0x5c49dd=join(_0x311825,_0x2e500a);return{'name':_0x2e500a,'path':_0x5c49dd};}if(!existsSync(_0x311825))throw new Error('No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a'+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');const _0x2877e8=await _0x2a7cd3['bbBgJ'](readdir,_0x311825,{'withFileTypes':!![]}),_0xa6da14=_0x2877e8['filter'](_0x11d59a=>_0x11d59a['isDirectory']())['map'](_0x35371e=>_0x35371e[_0x10579c(0x113)]);if(_0xa6da14[_0x10579c(0x11f)]===0x0)throw new Error(_0x2a7cd3[_0x10579c(0x119)](_0x2a7cd3['URmOj'],_0x10579c(0xe8)));if(_0x2a7cd3['HSHzu'](_0xa6da14[_0x10579c(0x11f)],0x1)){const _0x54538b=_0xa6da14[0x0];return console[_0x10579c(0x121)]('Auto-detected\x20CI\x20profile:\x20'+_0x54538b),{'name':_0x54538b,'path':_0x2a7cd3[_0x10579c(0x10a)](join,_0x311825,_0x54538b)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0xa6da14[_0x10579c(0xf2)](',\x20')+'.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.');}async function installPluginNonInteractive(){const _0x407fe3=_0x5700,_0x10c209={'noICB':'Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','mACHA':function(_0x4ed9c4,_0x172da9){return _0x4ed9c4(_0x172da9);},'jSqCp':_0x407fe3(0xf7),'WzJUb':'plugin','EdfNV':'marketplace','MKvkE':'ranger-testing/trailhead','MRTRO':'Failed\x20to\x20add\x20marketplace:','iarsV':_0x407fe3(0xf4),'bNDOy':'--scope','rfbNX':'project'},_0x495806=await isPluginInstalled(_0x407fe3(0x122));if(_0x495806)return console['log'](_0x407fe3(0xec)),![];console['log'](_0x10c209['noICB']);const _0x11d983=await _0x10c209[_0x407fe3(0xfd)](isMarketplaceAdded,_0x407fe3(0xf1));let _0x2e632c=_0x11d983;if(_0x11d983)console['log'](_0x10c209[_0x407fe3(0xe6)]);else{const _0x6459d0=await _0x10c209['mACHA'](runClaudeCommand,[_0x10c209[_0x407fe3(0xfc)],_0x10c209[_0x407fe3(0x105)],_0x407fe3(0x101),_0x10c209[_0x407fe3(0xf8)]]);!_0x6459d0[_0x407fe3(0xfa)]?(console['error'](_0x10c209['MRTRO'],_0x6459d0[_0x407fe3(0xee)]),console['log'](_0x10c209['iarsV'])):_0x2e632c=!![];}if(_0x2e632c){const _0x15c41b=await runClaudeCommand([_0x407fe3(0x102),'install',_0x407fe3(0x122),_0x10c209[_0x407fe3(0x11e)],_0x10c209['rfbNX']]);!_0x15c41b[_0x407fe3(0xfa)]?(console['error']('Failed\x20to\x20install\x20plugin:',_0x15c41b['error']),console['log']('You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project')):console['log']('✓\x20Claude\x20Code\x20plugin\x20installed');}return!![];}export async function setupCi(_0x1d8e6a,_0x14ffab,_0x79e33f){const _0x3dd519=_0x5700,_0x4cbac6={'pPqwb':function(_0x404d62,_0x2c7f41){return _0x404d62(_0x2c7f41);},'JMXws':function(_0x3aa7fd){return _0x3aa7fd();},'BtmlH':_0x3dd519(0x110),'xNvMB':function(_0x100477,_0x19010e){return _0x100477(_0x19010e);},'JNTzc':'dir_setup','ycczJ':_0x3dd519(0x10c),'nQmTz':_0x3dd519(0xf9),'SltYa':function(_0xcbe456,_0x11dfef,_0x2281a6){return _0xcbe456(_0x11dfef,_0x2281a6);},'eKoYq':function(_0x28f4a5,_0x55de38,_0x405721){return _0x28f4a5(_0x55de38,_0x405721);},'hWYsK':'auth.json','DUsMd':_0x3dd519(0x103),'vwjzR':function(_0x1b10c4,_0x3c28f6){return _0x1b10c4(_0x3c28f6);},'GjRtK':function(_0x4346e0,_0xf76022){return _0x4346e0(_0xf76022);},'MUvGi':'✓\x20Auth\x20state\x20found','YsRxa':'\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','eIWnb':function(_0x4b0031,_0x1b34c9){return _0x4b0031(_0x1b34c9);},'pmWUw':'profile_activate','uwjMV':'plugin','ZIKDD':function(_0xd3984b){return _0xd3984b();},'qXSgz':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console['log']('\x0a🔧\x20Ranger\x20CI\x20Setup\x0a'),_0x79e33f?.[_0x3dd519(0xe5)](_0x3dd519(0x107)),await _0x4cbac6[_0x3dd519(0xeb)](authenticate,_0x1d8e6a),_0x79e33f?.['trackPhaseEnd']('auth'),_0x79e33f?.[_0x3dd519(0xe5)](_0x3dd519(0x109));const {path:_0x5ef076,installed:_0x12e0da}=await _0x4cbac6[_0x3dd519(0x10d)](ensureRangerDir);await writeRangerGitignore(_0x5ef076);const _0x577d6d=join(_0x5ef076,_0x4cbac6['BtmlH']);!_0x4cbac6[_0x3dd519(0x104)](existsSync,_0x577d6d)&&await mkdir(_0x577d6d,{'recursive':!![]});_0x79e33f?.['trackPhaseEnd'](_0x4cbac6[_0x3dd519(0x11d)],{'installed':_0x12e0da}),_0x79e33f?.['trackPhaseStart'](_0x4cbac6[_0x3dd519(0xf6)]);let _0x265cbe=![];_0x14ffab?.[_0x3dd519(0x118)]?console[_0x3dd519(0x121)](_0x4cbac6[_0x3dd519(0xfe)]):_0x265cbe=await ensureChromium();_0x79e33f?.['trackPhaseEnd']('chromium',{'installed':_0x265cbe,'skipped':!!_0x14ffab?.[_0x3dd519(0x118)]}),_0x79e33f?.['trackPhaseStart']('profile_activate');const _0x5bdb8c=await findCiProfile(_0x14ffab?.['profile']);let _0x390118=![];_0x14ffab?.['baseUrl']&&(await mkdir(_0x5bdb8c['path'],{'recursive':!![]}),await _0x4cbac6[_0x3dd519(0xf5)](saveSettings,_0x5bdb8c[_0x3dd519(0x113)],{'baseUrl':_0x14ffab[_0x3dd519(0x111)],'headless':!![]}),console[_0x3dd519(0x121)]('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x14ffab[_0x3dd519(0x111)]),_0x390118=!![]);const _0x4e1d32=_0x4cbac6['SltYa'](join,_0x5bdb8c[_0x3dd519(0x106)],_0x3dd519(0xf3));if(!_0x4cbac6[_0x3dd519(0xeb)](existsSync,_0x4e1d32)&&!_0x390118)throw new Error('CI\x20profile\x20\x22'+_0x5bdb8c['name']+_0x3dd519(0xe4));const _0x4be3d0=_0x4cbac6[_0x3dd519(0x11b)](join,_0x5bdb8c[_0x3dd519(0x106)],_0x4cbac6['hWYsK']),_0x291d2b=_0x4cbac6['eKoYq'](join,_0x5bdb8c[_0x3dd519(0x106)],_0x4cbac6['DUsMd']),_0x3f29ed=_0x4cbac6['vwjzR'](existsSync,_0x4be3d0),_0x2e0955=existsSync(_0x291d2b);if(_0x2e0955)try{const _0x91d42c=await getToken();if(!_0x91d42c)throw new Error(_0x3dd519(0x116));const _0xce084a=await _0x4cbac6['GjRtK'](readFile,_0x291d2b);decrypt(_0xce084a,_0x91d42c),console[_0x3dd519(0x121)]('✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)');}catch(_0x586fe5){const _0x322cf4=_0x586fe5 instanceof Error?_0x586fe5['message']:String(_0x586fe5);throw new Error(_0x3dd519(0x11a)+_0x5bdb8c[_0x3dd519(0x113)]+_0x3dd519(0x11c)+_0x322cf4);}else _0x3f29ed?console['log'](_0x4cbac6['MUvGi']):console['log'](_0x4cbac6['YsRxa']);await _0x4cbac6['eIWnb'](writeActiveProfileName,_0x5bdb8c['name']),console['log']('✓\x20Active\x20profile:\x20'+_0x5bdb8c[_0x3dd519(0x113)]),_0x79e33f?.[_0x3dd519(0xea)](_0x4cbac6[_0x3dd519(0x10f)],{'profileName':_0x5bdb8c['name'],'hasAuth':_0x3f29ed,'hasEncryptedAuth':_0x2e0955,'createdSettings':_0x390118}),_0x79e33f?.['trackPhaseStart'](_0x4cbac6[_0x3dd519(0xed)]);const _0x39801e=await _0x4cbac6[_0x3dd519(0x10b)](installPluginNonInteractive);_0x79e33f?.['trackPhaseEnd'](_0x3dd519(0x102),{'installed':_0x39801e}),_0x79e33f?.['trackPhaseStart'](_0x3dd519(0x120)),await skillup({'autoInstall':'project'}),_0x79e33f?.['trackPhaseEnd'](_0x3dd519(0x120)),console['log'](_0x4cbac6['qXSgz']);}
@@ -1 +1 @@
1
- (function(_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
+ (function(_0x1966d9,_0x3519b){const _0x1ed747=_0x71f3,_0x139cb9=_0x1966d9();while(!![]){try{const _0x601e9a=-parseInt(_0x1ed747(0xc0))/0x1+-parseInt(_0x1ed747(0xb5))/0x2*(parseInt(_0x1ed747(0x99))/0x3)+parseInt(_0x1ed747(0xc1))/0x4+-parseInt(_0x1ed747(0xb7))/0x5*(-parseInt(_0x1ed747(0x94))/0x6)+-parseInt(_0x1ed747(0xb1))/0x7*(-parseInt(_0x1ed747(0xa1))/0x8)+-parseInt(_0x1ed747(0xc2))/0x9+parseInt(_0x1ed747(0x9a))/0xa*(parseInt(_0x1ed747(0xb6))/0xb);if(_0x601e9a===_0x3519b)break;else _0x139cb9['push'](_0x139cb9['shift']());}catch(_0x659244){_0x139cb9['push'](_0x139cb9['shift']());}}}(_0x4e6e,0x6ce5b));import{basename}from'path';import _0x3429ed from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';function _0x4e6e(){const _0x54c9c6=['platform','\x20\x202.\x20Run:\x20ranger\x20setup','This\x20project\x20only\x20(','349221dnFAMb','2647008qYIGzm','4054005fjAyPI','KCNbx','wSkxF','log','✓\x20Found\x20API\x20token','pfNpO','55026cDRUbG','TEGOo','stdout','WlBUV','user','354cmvyoi','5830NbQilX','\x20skill','user-level','KpcLn','opencode','\x20<your-api-token>','isTTY','673784SIolrH','LhxFc','ObvcE','/.opencode/skills/','nUdoZ','/.claude/skills/','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','Where\x20should\x20skills\x20be\x20installed?','KuaCJ','To\x20get\x20started:','ranger','TAtaq','\x20\x203.\x20Run:\x20ranger\x20skillup','/skills/','uOoKu','To\x20use:','7TScbkC','project','autoInstall','kEqxw','11998uqsCAw','17248XfmJyI','160KOEeQZ','All\x20projects\x20(','stdin','suppressUsage','installLevel','JGEKT'];_0x4e6e=function(){return _0x54c9c6;};return _0x4e6e();}function _0x71f3(_0xa37d38,_0x2838b1){_0xa37d38=_0xa37d38-0x93;const _0x4e6ebb=_0x4e6e();let _0x71f3f2=_0x4e6ebb[_0xa37d38];return _0x71f3f2;}import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x36fdc4={}){const _0x3dc090=_0x71f3,_0x709c2={'PPsVD':'\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','VublW':'claude','MckWs':function(_0x43a9a5){return _0x43a9a5();},'WlBUV':_0x3dc090(0xaa),'Snixa':_0x3dc090(0xa7),'WBpbJ':function(_0x46aaea,_0x438e38){return _0x46aaea===_0x438e38;},'TAtaq':'\x20--opencode','TEGOo':function(_0x58878f){return _0x58878f();},'awnOv':function(_0x3dff65,_0x2d52aa){return _0x3dff65===_0x2d52aa;},'tkzAR':_0x3dc090(0x9e),'ofrMF':function(_0x1644e3,_0x39bc96){return _0x1644e3(_0x39bc96);},'PacuF':'user','KuaCJ':function(_0x50e7c1,_0x2ce159){return _0x50e7c1===_0x2ce159;},'pfNpO':'list','JGEKT':'installLevel','LhxFc':_0x3dc090(0xa8),'KpcLn':_0x3dc090(0xb2),'kYZuI':'\x0a📦\x20Installing\x20skills...\x0a','KCNbx':function(_0x3a6139,_0xc360e9,_0x3f7492){return _0x3a6139(_0xc360e9,_0x3f7492);},'uOoKu':_0x3dc090(0xab),'zBGso':function(_0x599856,_0x3f5cf5){return _0x599856 instanceof _0x3f5cf5;},'wSkxF':function(_0x43c5f2,_0x53d131){return _0x43c5f2>_0x53d131;},'sgJri':function(_0x153b69,_0x55f4b8){return _0x153b69===_0x55f4b8;},'kEqxw':_0x3dc090(0x9c),'WBbqc':function(_0x1a12db,_0x3e9a72){return _0x1a12db>_0x3e9a72;},'nUdoZ':'\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','ObvcE':'\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'};console['log'](_0x709c2['PPsVD']);const _0x2de668=_0x36fdc4[_0x3dc090(0xbd)]??_0x709c2['VublW'],_0x11e13d=await _0x709c2['MckWs'](getToken);if(!_0x11e13d){console[_0x3dc090(0xc5)]('❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a'),console['log'](_0x709c2[_0x3dc090(0x97)]),console[_0x3dc090(0xc5)](_0x709c2['Snixa']),console['log'](_0x3dc090(0xbe)+(_0x709c2['WBpbJ'](_0x2de668,'opencode')?_0x709c2[_0x3dc090(0xac)]:'')+_0x3dc090(0x9f)),console[_0x3dc090(0xc5)](_0x3dc090(0xad)+(_0x2de668===_0x3dc090(0x9e)?_0x709c2['TAtaq']:'')+'\x0a');return;}console[_0x3dc090(0xc5)](_0x3dc090(0xc6));const _0x17364f=_0x709c2[_0x3dc090(0x95)](getProjectRoot),_0xb657e8=basename(_0x17364f),_0x1e1c95=_0x709c2['awnOv'](_0x2de668,_0x709c2['tkzAR'])?_0x709c2['ofrMF'](getOpencodeConfigDir,_0x709c2['PacuF'])+_0x3dc090(0xae):getClaudeConfigDir()+_0x3dc090(0xae),_0x3497e0=_0x709c2[_0x3dc090(0xa9)](_0x2de668,_0x709c2['tkzAR'])?_0x17364f+_0x3dc090(0xa4):_0x17364f+_0x3dc090(0xa6),_0x35fe05=process[_0x3dc090(0xb9)]['isTTY']&&process[_0x3dc090(0x96)][_0x3dc090(0xa0)];let _0x164bc7;if(_0x36fdc4['autoInstall'])_0x164bc7=_0x36fdc4[_0x3dc090(0xb3)];else{if(_0x35fe05){const _0x4bf779=await _0x3429ed['prompt']([{'type':_0x709c2[_0x3dc090(0x93)],'name':_0x709c2[_0x3dc090(0xbc)],'message':_0x709c2[_0x3dc090(0xa2)],'choices':[{'name':_0x3dc090(0xb8)+_0x1e1c95+')','value':_0x3dc090(0x98)},{'name':_0x3dc090(0xbf)+_0x3497e0+')','value':_0x709c2[_0x3dc090(0x9d)]}]}]);_0x164bc7=_0x4bf779[_0x3dc090(0xbb)];}else _0x164bc7='project',console[_0x3dc090(0xc5)]('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x3497e0+')');}let _0x57ddce=0x0;const _0x17982a=_0x709c2[_0x3dc090(0x95)](getCurrentVersion);console[_0x3dc090(0xc5)](_0x709c2['kYZuI']);try{const _0x478a81=await _0x709c2[_0x3dc090(0xc3)](installSkill,_0x709c2[_0x3dc090(0xaf)],{'cliVersion':_0x17982a,'level':_0x164bc7,'platform':_0x2de668});_0x478a81&&_0x57ddce++;}catch(_0x4b5f51){console['warn']('\x20\x20Failed\x20to\x20install\x20ranger\x20skill:',_0x709c2['zBGso'](_0x4b5f51,Error)?_0x4b5f51['message']:_0x4b5f51);}if(_0x709c2[_0x3dc090(0xc4)](_0x57ddce,0x0)){const _0x2880ad=_0x709c2['sgJri'](_0x164bc7,_0x709c2['PacuF'])?_0x709c2[_0x3dc090(0xb4)]:'project-level';console[_0x3dc090(0xc5)]('\x0a✅\x20Installed\x20'+_0x57ddce+'\x20'+_0x2880ad+_0x3dc090(0x9b)+(_0x709c2['WBbqc'](_0x57ddce,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x36fdc4[_0x3dc090(0xba)]&&(console[_0x3dc090(0xc5)](_0x3dc090(0xb0)),_0x2de668==='opencode'?console[_0x3dc090(0xc5)](_0x709c2[_0x3dc090(0xa5)]):console[_0x3dc090(0xc5)](_0x709c2[_0x3dc090(0xa3)]));}else console['log']('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}
@@ -1 +1 @@
1
- const _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
+ const _0x44909b=_0x4cce;(function(_0xc27a34,_0x21fa4e){const _0xcb8e9f=_0x4cce,_0x36ea63=_0xc27a34();while(!![]){try{const _0x489b18=-parseInt(_0xcb8e9f(0x1c6))/0x1*(parseInt(_0xcb8e9f(0x1f5))/0x2)+parseInt(_0xcb8e9f(0x1ef))/0x3*(-parseInt(_0xcb8e9f(0x1ea))/0x4)+parseInt(_0xcb8e9f(0x1cc))/0x5+parseInt(_0xcb8e9f(0x1b1))/0x6*(parseInt(_0xcb8e9f(0x18a))/0x7)+parseInt(_0xcb8e9f(0x1bf))/0x8+parseInt(_0xcb8e9f(0x190))/0x9*(-parseInt(_0xcb8e9f(0x1db))/0xa)+parseInt(_0xcb8e9f(0x18b))/0xb;if(_0x489b18===_0x21fa4e)break;else _0x36ea63['push'](_0x36ea63['shift']());}catch(_0x805925){_0x36ea63['push'](_0x36ea63['shift']());}}}(_0x31c8,0x3de86));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x5f400d from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';function _0x4cce(_0x34df48,_0x1dde98){_0x34df48=_0x34df48-0x187;const _0x31c866=_0x31c8();let _0x4cce1b=_0x31c866[_0x34df48];return _0x4cce1b;}import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';function _0x31c8(){const _0xb464af=['\x0a❌\x20Failed\x20to\x20install\x20Chromium:','huzqu','rsLKv','hNhJV','force','74548rbHNYE','sftJH','auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to','✓\x20Local\x20profile\x20already\x20exists','stdin','isTTY','258665XhASmb','log','qUuqR','\x20\x20npx\x20playwright@',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','UmizG','close','✓\x20.ranger/\x20directory\x20already\x20exists','RkYiy','LSzXI','use\x20until\x20the\x20session\x20expires.\x0a','...','status','git_check','provided_token','940UIfTDA','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','GEcmQ','scope','\x0a❌\x20Profile\x20setup\x20failed:','user','\x1b[1m','env','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','trackPhaseEnd','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','ZHold','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','781988ABcAGR','to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','error','chromium','ranger\x20profile\x20add\x20local','6eejeCh','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','url','.gitignore','existing_token','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','2eaKgaB','jPAiV','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','platform','10164exJADT','10358073XrYrpc','cHyYz','message','\x20(fallback\x20version)','plugin','39051rrdSTh','organizationName','✓\x20Created\x20.ranger/\x20directory','zvRZb','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','FCXcM','MdXTS','\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a','skipped','eXyVN','bfjqy','BGSHY','jZNBq','\x1b[0m','\x0a⚠\x20Skipping\x20Chromium\x20installation.','ready','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','lLpUI','iQdUx','Ntwih','prompt','.ranger','Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','method','ZXRTD','local','VpbeY','success','jsCwm','skills','366tDPOKL','✓\x20Authenticated\x20to\x20','✓\x20Playwright\x20Chromium\x20browser\x20found','MTeBV','confirm','GWcfc','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','rXBBl','executablePath','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','trackPhaseStart','inherit','OVapL','opencode','360272bFuBKr','VhzdW'];_0x31c8=function(){return _0xb464af;};return _0x31c8();}const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2',bold=_0x47d6a2=>_0x44909b(0x1e2)+_0x47d6a2+_0x44909b(0x19f);function getPlaywrightVersion(){const _0x263342={'PeYKJ':'playwright/package.json','mIlQc':function(_0xdb3f6a,_0x1503ed){return _0xdb3f6a(_0x1503ed);}};try{const _0x476289=require['resolve'](_0x263342['PeYKJ']),_0x25b9f7=_0x263342['mIlQc'](require,_0x476289);return _0x25b9f7['version'];}catch{return null;}}function installChromiumBinary(_0x353d5d){const _0x829b9b=_0x44909b,_0x22b7f9={'zvRZb':function(_0xd9b539){return _0xd9b539();},'hiryE':function(_0x54d5ba,_0x58be49){return _0x54d5ba(_0x58be49);},'ooSiG':'install','fPRis':'npx','UmizG':_0x829b9b(0x1bc),'Ntwih':function(_0x3f91a4,_0x25088c){return _0x3f91a4===_0x25088c;},'UaWPk':_0x829b9b(0x1d2),'jLtuL':'error'};return new Promise((_0x1d0dba,_0x4407e3)=>{const _0x8f8819=_0x829b9b,_0x59f15a=['playwright@'+_0x353d5d,_0x22b7f9['ooSiG'],'chromium'],_0x4aa54f=spawn(_0x22b7f9['fPRis'],_0x59f15a,{'stdio':_0x22b7f9[_0x8f8819(0x1d1)],'shell':_0x22b7f9[_0x8f8819(0x1a5)](process[_0x8f8819(0x189)],'win32')});_0x4aa54f['on'](_0x22b7f9['UaWPk'],_0x119a7e=>{const _0x4dbe72=_0x8f8819;_0x119a7e===0x0?_0x22b7f9[_0x4dbe72(0x193)](_0x1d0dba):_0x4407e3(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x119a7e));}),_0x4aa54f['on'](_0x22b7f9['jLtuL'],_0x1766fa=>{_0x22b7f9['hiryE'](_0x4407e3,_0x1766fa);});});}export async function authenticate(_0x60587c){const _0x3f6317=_0x44909b,_0x2f4df3={'MTeBV':function(_0x24c56f){return _0x24c56f();},'VpbeY':function(_0x4be8d2,_0x558059){return _0x4be8d2(_0x558059);},'jsCwm':_0x3f6317(0x1f3),'lqdmG':'device_auth','xcsds':'✓\x20Exported\x20credentials\x20for\x20CI','XHsfx':'✓\x20Stored\x20credentials\x20locally','bfjqy':_0x3f6317(0x1da)};if(!_0x60587c){const _0x4ef91d=await _0x2f4df3[_0x3f6317(0x1b4)](getToken);if(_0x4ef91d){const _0x452661=await _0x2f4df3[_0x3f6317(0x1ad)](getCurrentUser,_0x4ef91d);if(_0x452661[_0x3f6317(0x1ae)])return console['log']('✓\x20Already\x20authenticated\x20to\x20'+_0x452661[_0x3f6317(0x1e1)]['organizationName']),{'token':_0x4ef91d,'method':_0x2f4df3[_0x3f6317(0x1af)]};}try{_0x60587c=await runDeviceAuthFlow();}catch(_0x3043bf){throw new Error('Authentication\x20failed:\x20'+(_0x3043bf instanceof Error?_0x3043bf['message']:_0x3043bf));}const _0xe7636c=await _0x2f4df3['VpbeY'](getCurrentUser,_0x60587c);if(!_0xe7636c['success'])throw new Error(_0x3f6317(0x195)+_0xe7636c[_0x3f6317(0x1ec)]);return console[_0x3f6317(0x1cd)](_0x3f6317(0x1b2)+_0xe7636c[_0x3f6317(0x1e1)]['organizationName']),{'token':_0x60587c,'method':_0x2f4df3['lqdmG']};}console[_0x3f6317(0x1cd)]('Validating\x20API\x20token...');const _0x3d213b=await getCurrentUser(_0x60587c);if(!_0x3d213b[_0x3f6317(0x1ae)]){if(_0x3d213b[_0x3f6317(0x1d8)])throw new Error('Authentication\x20failed:\x20'+_0x3d213b[_0x3f6317(0x1ec)]+_0x3f6317(0x196));else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x3d213b['error']+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x3f6317(0x1cd)]('✓\x20Authenticated\x20to\x20'+_0x3d213b[_0x3f6317(0x1e1)][_0x3f6317(0x191)]),await storeToken(_0x60587c),console[_0x3f6317(0x1cd)](process[_0x3f6317(0x1e3)]['GITHUB_ENV']?_0x2f4df3['xcsds']:_0x2f4df3['XHsfx']),{'token':_0x60587c,'method':_0x2f4df3[_0x3f6317(0x19c)]};}export async function ensureRangerDir(){const _0x1bb0a6=_0x44909b,_0x23a9fb={'eXyVN':function(_0x22348c){return _0x22348c();},'jZNBq':function(_0x4a3fd2,_0x556f2d,_0x2a12db){return _0x4a3fd2(_0x556f2d,_0x2a12db);},'sftJH':_0x1bb0a6(0x1a7),'FCXcM':_0x1bb0a6(0x192)},_0x91bb82=_0x23a9fb[_0x1bb0a6(0x19b)](findGitRoot),_0x89dbc6=_0x91bb82?_0x23a9fb['jZNBq'](join,_0x91bb82,_0x23a9fb[_0x1bb0a6(0x1c7)]):_0x23a9fb['eXyVN'](getRangerDir);return!existsSync(_0x89dbc6)?(await _0x23a9fb[_0x1bb0a6(0x19e)](mkdir,_0x89dbc6,{'recursive':!![]}),console['log'](_0x23a9fb[_0x1bb0a6(0x197)]),{'path':_0x89dbc6,'installed':!![]}):(console[_0x1bb0a6(0x1cd)](_0x1bb0a6(0x1d3)),{'path':_0x89dbc6,'installed':![]});}export async function ensureChromium(){const _0x5c10f6=_0x44909b,_0x4d21b7={'qUuqR':function(_0x5a9b0c,_0x1e9867){return _0x5a9b0c(_0x1e9867);},'lLpUI':function(_0x189f52){return _0x189f52();},'GWcfc':_0x5c10f6(0x1b5),'uWTOG':'install','BGSHY':_0x5c10f6(0x18e),'cHyYz':'\x0aInstalling\x20Chromium\x20browser...\x0a','hNhJV':_0x5c10f6(0x1c1)};let _0x337c38=![];try{const _0x389092=chromium[_0x5c10f6(0x1b9)]();_0x337c38=_0x4d21b7[_0x5c10f6(0x1ce)](existsSync,_0x389092);}catch{_0x337c38=![];}if(_0x337c38)return console[_0x5c10f6(0x1cd)](_0x5c10f6(0x1b3)),![];const _0x2036a1=_0x4d21b7[_0x5c10f6(0x1a3)](getPlaywrightVersion),_0x25e72c=_0x2036a1??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0x40db91=!_0x2036a1,_0x44acb6=process[_0x5c10f6(0x1ca)]['isTTY']&&process['stdout']['isTTY'];let _0x289390=!![];if(_0x44acb6){const {install:_0x62706d}=await _0x5f400d['prompt']([{'type':_0x4d21b7[_0x5c10f6(0x1b6)],'name':_0x4d21b7['uWTOG'],'message':_0x40db91?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x25e72c+'\x20now?':'The\x20required\x20version\x20('+_0x25e72c+_0x5c10f6(0x1d0),'default':!![]}]);_0x289390=_0x62706d;}else console[_0x5c10f6(0x1cd)](_0x5c10f6(0x1e4)+_0x25e72c+(_0x40db91?_0x4d21b7[_0x5c10f6(0x19d)]:'')+_0x5c10f6(0x1d7));if(_0x289390){console[_0x5c10f6(0x1cd)](_0x4d21b7[_0x5c10f6(0x18c)]);try{await installChromiumBinary(_0x25e72c),console[_0x5c10f6(0x1cd)](_0x5c10f6(0x1a2));}catch(_0x2b341e){console[_0x5c10f6(0x1ec)](_0x4d21b7[_0x5c10f6(0x1c4)],_0x2b341e instanceof Error?_0x2b341e[_0x5c10f6(0x18d)]:_0x2b341e),console[_0x5c10f6(0x1cd)]('You\x20can\x20install\x20it\x20manually\x20by\x20running:'),console['log'](_0x5c10f6(0x1cf)+_0x25e72c+'\x20install\x20chromium');}}else console['log'](_0x5c10f6(0x1a0)),console['log'](_0x5c10f6(0x1ba)),console['log'](_0x5c10f6(0x1cf)+_0x25e72c+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x3b0abc){const _0x598ef2=_0x44909b,_0x2b06ad={'vRLKi':'✓\x20Created\x20.ranger/.gitignore'},_0x2ad9bd=join(_0x3b0abc,_0x598ef2(0x1f2)),_0x534bae=_0x598ef2(0x199);await writeFile(_0x2ad9bd,_0x534bae),console['log'](_0x2b06ad['vRLKi']);}function printProfileSetupLaterInstructions(){const _0x26ef6c=_0x44909b,_0xa9627c={'deTey':'\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','mrVCx':function(_0x103f20,_0x496d42){return _0x103f20(_0x496d42);},'ptVQd':_0x26ef6c(0x1ee)};console[_0x26ef6c(0x1cd)](_0xa9627c['deTey']),console[_0x26ef6c(0x1cd)]('\x20\x20'+_0xa9627c['mrVCx'](bold,_0xa9627c['ptVQd'])),console['log'](_0x26ef6c(0x1f0));}async function ensureLocalEnv(_0x48416a,_0x4373ce){const _0xa2127d=_0x44909b,_0xb1cfb7={'yfRoW':_0xa2127d(0x1c9),'huzqu':_0xa2127d(0x1e9),'MdXTS':_0xa2127d(0x1c8),'VKbgE':'wantsProfile','AeykM':function(_0x546d70){return _0x546d70();},'QCPkU':function(_0x4fc3aa,_0x4e5b22){return _0x4fc3aa instanceof _0x4e5b22;},'yzplN':function(_0x4871b5){return _0x4871b5();}};if(!findGitRoot())return console['log']('⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.'),{'ready':![],'skipped':!![]};if(findExistingEnv(_0xa2127d(0x1ac),{'locations':[_0xa2127d(0x1ac)]}))return console[_0xa2127d(0x1cd)](_0xb1cfb7['yfRoW']),{'ready':!![],'skipped':![]};const _0x196c47=process['stdin'][_0xa2127d(0x1cb)]&&process['stdout'][_0xa2127d(0x1cb)];if(_0x196c47&&!_0x48416a?.['url']){console['log'](_0xb1cfb7[_0xa2127d(0x1c2)]),console[_0xa2127d(0x1cd)](_0xa2127d(0x1eb)),console[_0xa2127d(0x1cd)](_0xb1cfb7[_0xa2127d(0x198)]),console[_0xa2127d(0x1cd)](_0xa2127d(0x1d6)),console['log'](_0xa2127d(0x1dd));const {wantsProfile:_0x214bb8}=await _0x5f400d[_0xa2127d(0x1a6)]([{'type':'confirm','name':_0xb1cfb7['VKbgE'],'message':_0xa2127d(0x194),'default':!![]}]);if(!_0x214bb8)return _0xb1cfb7['AeykM'](printProfileSetupLaterInstructions),{'ready':![],'skipped':!![]};}try{return await addEnv(_0xa2127d(0x1ac),{'url':_0x48416a?.[_0xa2127d(0x1f1)],'force':_0x48416a?.[_0xa2127d(0x1c5)],'allowInsecureLocalhost':_0x48416a?.['allowInsecureLocalhost']},_0x4373ce),{'ready':!![],'skipped':![]};}catch(_0x58f1d4){return console['error'](_0xa2127d(0x1e0),_0xb1cfb7['QCPkU'](_0x58f1d4,Error)?_0x58f1d4[_0xa2127d(0x18d)]:_0x58f1d4),_0xb1cfb7['yzplN'](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}export async function start(_0x208d94,_0x34cd67,_0xfec1f4){const _0x44c745=_0x44909b,_0x228250={'RkYiy':_0x44c745(0x1e1),'vGAoG':function(_0x2bb866){return _0x2bb866();},'wxmnB':_0x44c745(0x1d9),'GEcmQ':'No\x20git\x20repository\x20found','spQor':'No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.','rXBBl':function(_0x23e571){return _0x23e571();},'pUthC':'auth','lzakK':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','lUovr':function(_0x430024){return _0x430024();},'mGWFd':_0x44c745(0x1a9),'QrfMa':function(_0x25c25c,_0x3f525f){return _0x25c25c(_0x3f525f);},'iQdUx':function(_0x2a50a8,_0x44e1f5){return _0x2a50a8&&_0x44e1f5;},'VhzdW':'skills','OVapL':function(_0x6a7612,_0x2b85ef,_0x58b193){return _0x6a7612(_0x2b85ef,_0x58b193);},'CdRqc':'ranger','ZHold':function(_0x23fd1c){return _0x23fd1c();},'jPAiV':'opencode','jQJJK':function(_0x5ed6df,_0x1a2b6e){return _0x5ed6df(_0x1a2b6e);},'ZXRTD':_0x44c745(0x1a8),'vsFtB':'profile','LSzXI':'\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','dmCPB':_0x44c745(0x1dc),'qiYhs':'/ranger:enable','rsLKv':function(_0x3c8aa0,_0x38b113){return _0x3c8aa0+_0x38b113;},'CBMZA':function(_0x4ba534,_0x1f0a90){return _0x4ba534+_0x1f0a90;}};console[_0x44c745(0x1cd)]('\x0a🚀\x20Ranger\x20Setup\x0a');const _0x277fb0=process[_0x44c745(0x1ca)]['isTTY']&&process['stdout'][_0x44c745(0x1cb)];!_0x277fb0&&!_0x34cd67?.['scope']&&(console[_0x44c745(0x1cd)](_0x44c745(0x1e5)),_0x34cd67={..._0x34cd67,'scope':_0x228250[_0x44c745(0x1d4)]});_0xfec1f4?.[_0x44c745(0x1bb)](_0x44c745(0x1d9));if(!_0x228250['vGAoG'](findGitRoot)){await _0xfec1f4?.['trackPhaseError'](_0x228250['wxmnB'],new Error(_0x228250[_0x44c745(0x1de)]));throw new Error(_0x228250['spQor']);}_0xfec1f4?.[_0x44c745(0x1e6)](_0x228250['wxmnB']);const _0x567cb7=!existsSync(_0x228250['vGAoG'](getRangerDir)),{path:_0x3f0d4d}=await _0x228250[_0x44c745(0x1b8)](ensureRangerDir);_0xfec1f4?.[_0x44c745(0x1bb)](_0x228250['pUthC']);const _0x303121=await authenticate(_0x208d94);_0xfec1f4?.[_0x44c745(0x1e6)](_0x228250['pUthC'],{'isFirstRun':_0x567cb7,'method':_0x303121[_0x44c745(0x1aa)]}),_0xfec1f4?.[_0x44c745(0x1bb)](_0x44c745(0x1ed));_0x34cd67?.['skipChromium']?console[_0x44c745(0x1cd)](_0x228250['lzakK']):await _0x228250['lUovr'](ensureChromium);_0xfec1f4?.[_0x44c745(0x1e6)](_0x44c745(0x1ed),{'isFirstRun':_0x567cb7,'skipped':!!_0x34cd67?.['skipChromium']}),await writeRangerGitignore(_0x3f0d4d),console[_0x44c745(0x1cd)](_0x228250['mGWFd']);const _0x430340=_0x34cd67?.[_0x44c745(0x1df)],_0x8f667f=_0x34cd67?.[_0x44c745(0x1be)]??![];let _0x6be037=null;_0x8f667f?(_0xfec1f4?.['trackPhaseStart']('plugin'),_0x6be037=await ensureOpencodePluginConfig(_0x430340),_0xfec1f4?.[_0x44c745(0x1e6)](_0x44c745(0x18f),{'isFirstRun':_0x567cb7,'opencode':!![]})):(_0xfec1f4?.[_0x44c745(0x1bb)]('plugin'),await _0x228250['QrfMa'](ensureClaudePlugin,_0x430340),_0xfec1f4?.['trackPhaseEnd'](_0x44c745(0x18f),{'isFirstRun':_0x567cb7}));if(_0x228250[_0x44c745(0x1a4)](_0x8f667f,_0x6be037)){_0xfec1f4?.[_0x44c745(0x1bb)](_0x228250['VhzdW']);try{await _0x228250[_0x44c745(0x1bd)](installSkill,_0x228250['CdRqc'],{'level':_0x6be037[_0x44c745(0x1df)],'cliVersion':_0x228250[_0x44c745(0x1e8)](getCurrentVersion),'platform':_0x228250[_0x44c745(0x187)]}),_0xfec1f4?.['trackPhaseEnd']('skills',{'isFirstRun':_0x567cb7,'opencode':!![]});}catch(_0xe4ab0d){console['warn'](_0x44c745(0x1f4),_0xe4ab0d instanceof Error?_0xe4ab0d[_0x44c745(0x18d)]:_0xe4ab0d),_0xfec1f4?.['trackPhaseEnd'](_0x228250['VhzdW'],{'isFirstRun':_0x567cb7,'opencode':!![],'failed':!![]});}}else _0xfec1f4?.['trackPhaseStart'](_0x228250[_0x44c745(0x1c0)]),await _0x228250['jQJJK'](ensureClaudeSkills,_0x430340),_0xfec1f4?.['trackPhaseEnd'](_0x44c745(0x1b0),{'isFirstRun':_0x567cb7});if(!_0x277fb0&&!_0x34cd67?.[_0x44c745(0x1f1)])console[_0x44c745(0x1cd)](_0x228250[_0x44c745(0x1ab)]),console['log']('\x20\x20'+_0x228250['QrfMa'](bold,'ranger\x20profile\x20add\x20local')+'\x0a');else{_0xfec1f4?.['trackPhaseStart'](_0x228250['vsFtB']);const _0x49c7ed=await ensureLocalEnv({'url':_0x34cd67?.[_0x44c745(0x1f1)],'force':_0x34cd67?.['force'],'allowInsecureLocalhost':_0x34cd67?.['allowInsecureLocalhost']},_0xfec1f4);_0xfec1f4?.['trackPhaseEnd']('profile',{'isFirstRun':_0x567cb7,'profileReady':_0x49c7ed[_0x44c745(0x1a1)],'userSkipped':_0x49c7ed[_0x44c745(0x19a)]}),_0x49c7ed[_0x44c745(0x1a1)]&&console[_0x44c745(0x1cd)](_0x44c745(0x1e7));}if(_0x8f667f)console[_0x44c745(0x1cd)](_0x228250[_0x44c745(0x1d5)]),console['log']('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console['log'](_0x228250['dmCPB']),console[_0x44c745(0x1cd)](_0x44c745(0x188));else{const _0x1d03f0=bold(_0x228250['qiYhs']);console['log'](_0x228250[_0x44c745(0x1c3)](_0x228250['CBMZA']('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0x1d03f0+'\x20and\x20prompt\x20the\x20coding'+'\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'),_0x44c745(0x1b7)));}}
@@ -1 +1 @@
1
- const _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)]('');}
1
+ const _0x10707d=_0x2bf8;(function(_0x3d3e30,_0x3306e6){const _0x19061e=_0x2bf8,_0x342b5a=_0x3d3e30();while(!![]){try{const _0x24603b=parseInt(_0x19061e(0xbf))/0x1*(parseInt(_0x19061e(0xe2))/0x2)+-parseInt(_0x19061e(0xf9))/0x3+-parseInt(_0x19061e(0xc4))/0x4*(-parseInt(_0x19061e(0x10a))/0x5)+parseInt(_0x19061e(0xda))/0x6*(-parseInt(_0x19061e(0xe6))/0x7)+-parseInt(_0x19061e(0xd3))/0x8*(parseInt(_0x19061e(0x11c))/0x9)+parseInt(_0x19061e(0xb7))/0xa+parseInt(_0x19061e(0xb5))/0xb*(parseInt(_0x19061e(0x10d))/0xc);if(_0x24603b===_0x3306e6)break;else _0x342b5a['push'](_0x342b5a['shift']());}catch(_0x4c6b31){_0x342b5a['push'](_0x342b5a['shift']());}}}(_0xa5c3,0x9baa4));function _0xa5c3(){const _0x115ad9=['configured','2183067pkoexD','path','vQzTQ','WSuWY','sZXsT','gQDgT','\x20plugin(s)\x20configured','isDirectory','name','user','not_installed','AwheF','ZvGcf','all','none','gmcKq','plaintext','5lEJDMr','VDjWP',':\x20configured','12XPzGcr','vqbfG','unknown','BUPRS','cmBsS','settings.json','disabled','pipe','join','(not\x20found)','scope','kSvmw','QeNRt','Root:\x20','API\x20URL:\x20','2439UfvIRX','some','qtvrm','opencode','error','7094604dKJYck','\x0a---\x20Skills\x20---','6208980hrkwsy','gSPvj','not_configured','\x1b[0m','filter','log','\x20\x20Run:\x20ranger\x20setup\x20[token]','length','1356EWCpQQ','enabled','success','isActive','Version:\x20','373852HDxgJG','LtxFX','version','includes','qCnKB','No\x20profiles\x20configured','\x20\x20Run:\x20ranger\x20setup\x20--opencode','Organization:\x20','sREvL','trim','auth.json.enc','HMNHE','\x1b[1m','\x20\x20\x20\x20Settings:\x20','XdmzY','3304mtzQCX','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','auth.json','WMwwI','uPLMW','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','42882iCHLTJ','hasPlaintextAuth','\x0a---\x20OpenCode\x20Plugin\x20---','displayName','TkWtj','UHNfQ','env','JqtrY','332mhRAMC','JriTy','stdout','\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','105KZEiYI','opencode-plugin','status','ranger@trailhead','SKILL.md','\x0a---\x20Claude\x20Code\x20Plugin\x20---','plugin','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','API\x20Token:\x20✗\x20Not\x20found','vaDLo','\x20\x20\x20\x20','hasEncryptedAuth','@ranger-testing/opencode-plugin','YGOaB','iYVCb','API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired','NNxcz','parse'];_0xa5c3=function(){return _0x115ad9;};return _0xa5c3();}import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';import{getCurrentVersion,getLatestVersion}from'./utils/version.js';import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';import{getRangerDir}from'./utils/rangerRoot.js';import{getEnvDir}from'./utils/settings.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';function _0x2bf8(_0x6a0ca3,_0x284814){_0x6a0ca3=_0x6a0ca3-0xb3;const _0xa5c38c=_0xa5c3();let _0x2bf86a=_0xa5c38c[_0x6a0ca3];return _0x2bf86a;}const bold=_0x2b2e75=>_0x10707d(0xd0)+_0x2b2e75+_0x10707d(0xba),link=(_0x50be34,_0x3f20dc)=>'\x1b]8;;file://'+_0x50be34+'\x07'+(_0x3f20dc||_0x50be34)+'\x1b]8;;\x07';async function getOpencodePluginStatus(){const _0x45ab29=_0x10707d,_0x4177b7={'OHaii':function(_0x51eb15,_0x2d4c9f){return _0x51eb15!==_0x2d4c9f;},'XdmzY':function(_0x2d38e0,_0x34ef4b){return _0x2d38e0(_0x34ef4b);},'MpBkd':_0x45ab29(0xf8),'kSvmw':_0x45ab29(0xb9),'TkWtj':function(_0x2ac1d3,_0x15e5e6,_0x5210e0,_0x2d5a0b){return _0x2ac1d3(_0x15e5e6,_0x5210e0,_0x2d5a0b);},'NNxcz':'ignore','AwheF':_0x45ab29(0x114),'rsWEz':'close'};return new Promise(_0x41d3b3=>{const _0x345686=_0x45ab29,_0x245550={'WelFX':function(_0x1c5d9f,_0x4fbbca){return _0x1c5d9f(_0x4fbbca);}},_0x883d51=_0x4177b7[_0x345686(0xde)](spawn,_0x345686(0xb3),['debug','config'],{'stdio':[_0x4177b7[_0x345686(0xf6)],_0x4177b7[_0x345686(0x104)],_0x4177b7[_0x345686(0x104)]]});let _0x3680e3='';_0x883d51[_0x345686(0xe4)]?.['on']('data',_0x47ffc5=>{_0x3680e3+=_0x47ffc5['toString']();}),_0x883d51['stderr']?.['on']('data',_0x455fe3=>{_0x3680e3+=_0x455fe3['toString']();}),_0x883d51['on'](_0x345686(0xb4),()=>{const _0x2c4cf3=_0x345686;_0x245550['WelFX'](_0x41d3b3,{'status':_0x2c4cf3(0x103)});}),_0x883d51['on'](_0x4177b7['rsWEz'],_0x400a51=>{const _0x40ac90=_0x345686,_0x584eb4={'wROPl':_0x40ac90(0xe7)};if(_0x4177b7['OHaii'](_0x400a51,0x0)){_0x4177b7['XdmzY'](_0x41d3b3,{'status':'not_installed'});return;}const _0x2fba4c=_0x3680e3[_0x40ac90(0xcd)]();let _0x1d7f42=null;if(_0x2fba4c)try{_0x1d7f42=JSON[_0x40ac90(0xf7)](_0x2fba4c);}catch{const _0x58219c=_0x2fba4c['match'](/\{[\s\S]*\}$/);if(_0x58219c)try{_0x1d7f42=JSON[_0x40ac90(0xf7)](_0x58219c[0x0]);}catch{_0x1d7f42=null;}}const _0x5404d0=Array['isArray'](_0x1d7f42?.[_0x40ac90(0xec)])?_0x1d7f42?.[_0x40ac90(0xec)]:[],_0x22c07b=_0x5404d0[_0x40ac90(0x11d)](_0x3cb81d=>{const _0x1da84f=_0x40ac90;if(typeof _0x3cb81d!=='string')return![];return _0x3cb81d['includes'](_0x1da84f(0xf2))||_0x3cb81d[_0x1da84f(0xc7)](_0x584eb4['wROPl']);});if(_0x22c07b){_0x4177b7[_0x40ac90(0xd2)](_0x41d3b3,{'status':_0x4177b7['MpBkd'],'details':_0x5404d0['length']>0x0?_0x5404d0[_0x40ac90(0xbe)]+_0x40ac90(0xff):undefined});return;}if(_0x5404d0['length']>0x0){_0x4177b7[_0x40ac90(0xd2)](_0x41d3b3,{'status':_0x4177b7[_0x40ac90(0x118)],'details':_0x5404d0['length']+'\x20plugin(s)\x20configured'});return;}_0x41d3b3({'status':_0x4177b7[_0x40ac90(0x118)]});});});}async function getSkillsFromDir(_0x452765,_0x4c0d42){const _0x3d5eaf=_0x10707d,_0x4cc39e={'JqtrY':function(_0x41c501,_0x9f550b){return _0x41c501(_0x9f550b);},'qCnKB':'utf-8'};if(!existsSync(_0x452765))return[];const _0x384137=[];try{const _0x23c455=await readdir(_0x452765,{'withFileTypes':!![]});for(const _0x1a3909 of _0x23c455){if(_0x1a3909[_0x3d5eaf(0x100)]()){const _0x396bb8=join(_0x452765,_0x1a3909['name'],_0x3d5eaf(0xea));if(_0x4cc39e[_0x3d5eaf(0xe1)](existsSync,_0x396bb8)){let _0x354e4a=_0x1a3909['name'];try{const _0x1ab138=await readFile(_0x396bb8,_0x4cc39e[_0x3d5eaf(0xc8)]),_0x858456=_0x1ab138['match'](/name:\s*(.+)/);_0x858456&&(_0x354e4a=_0x858456[0x1][_0x3d5eaf(0xcd)]());}catch{}_0x384137['push']({'name':_0x1a3909['name'],'displayName':_0x354e4a,'path':_0x396bb8,'level':_0x4c0d42});}}}}catch{return[];}return _0x384137;}async function getInstalledSkills(){const _0x189991=_0x10707d,_0x3758bc={'sREvL':function(_0xb1b784,_0x4168a8,_0x54f5bc){return _0xb1b784(_0x4168a8,_0x54f5bc);},'LtxFX':function(_0x6c4b9a){return _0x6c4b9a();},'VDjWP':'project','fIZoa':function(_0x4645cf,_0x1a2ad2,_0x24a081){return _0x4645cf(_0x1a2ad2,_0x24a081);},'UHNfQ':_0x189991(0x102)},[_0x52f67c,_0xdb8cf5]=await Promise[_0x189991(0x106)]([_0x3758bc[_0x189991(0xcc)](getSkillsFromDir,_0x3758bc[_0x189991(0xc5)](getProjectSkillsDir),_0x3758bc[_0x189991(0x10b)]),_0x3758bc['fIZoa'](getSkillsFromDir,getUserSkillsDir(),_0x3758bc[_0x189991(0xdf)])]);return{'project':_0x52f67c,'user':_0xdb8cf5};}async function getEnvironments(){const _0x2e4259=_0x10707d,_0x4ae3e9={'gmcKq':function(_0x3937eb,_0x21d3c){return _0x3937eb(_0x21d3c);},'ZpDbL':function(_0x791f0b,_0x200aa9,_0x2a439f){return _0x791f0b(_0x200aa9,_0x2a439f);},'HMNHE':function(_0x871c88){return _0x871c88();},'saxqI':function(_0xee6796){return _0xee6796();}},{envNames:_0x3a5bef,activeEnv:_0x2c5e05}=await _0x4ae3e9[_0x2e4259(0xcf)](getEnvNames),_0x52bc84=_0x4ae3e9['saxqI'](getRangerDir);if(!_0x4ae3e9[_0x2e4259(0x108)](existsSync,_0x52bc84))return{'envs':[],'activeEnv':null};const _0x2efb1b=_0x3a5bef['map'](_0x156322=>{const _0x128dcf=_0x2e4259,_0x7bd33e=_0x4ae3e9['gmcKq'](getEnvDir,_0x156322),_0x30f263=join(_0x7bd33e,_0x128dcf(0x112)),_0x35006d=join(_0x7bd33e,_0x128dcf(0xd6)),_0x2bca2d=_0x4ae3e9['ZpDbL'](join,_0x7bd33e,_0x128dcf(0xce));return{'name':_0x156322,'settingsPath':existsSync(_0x30f263)?_0x30f263:_0x128dcf(0x116),'hasPlaintextAuth':existsSync(_0x35006d),'hasEncryptedAuth':existsSync(_0x2bca2d),'isActive':_0x156322===_0x2c5e05};});return{'envs':_0x2efb1b,'activeEnv':_0x2c5e05};}export async function status(){const _0x50a482=_0x10707d,_0x265d98={'lBwFC':'\x0a📊\x20Ranger\x20Status\x0a','qtvrm':function(_0x58cdc2,_0x1a2486,_0x1a1950){return _0x58cdc2(_0x1a2486,_0x1a1950);},'vqbfG':function(_0x2d8a01,_0x522b87){return _0x2d8a01(_0x522b87);},'JriTy':function(_0x531586,_0x47a9f5){return _0x531586(_0x47a9f5);},'uPLMW':function(_0x3c24f2){return _0x3c24f2();},'cmBsS':function(_0x3addab,_0x5e5f3b){return _0x3addab(_0x5e5f3b);},'WSuWY':function(_0x3019d2,_0x133730){return _0x3019d2(_0x133730);},'WMwwI':function(_0x25c2eb,_0x1dbf1a){return _0x25c2eb===_0x1dbf1a;},'mZhzx':'not_configured','BUPRS':_0x50a482(0xca),'QeNRt':function(_0x4b9dd5,_0xeaae2a){return _0x4b9dd5(_0xeaae2a);},'EcDPI':_0x50a482(0x10f),'iYVCb':_0x50a482(0xc0),'KnXZH':'ranger@trailhead','vaDLo':'\x20\x20Not\x20installed','afSIR':_0x50a482(0xd4),'YGOaB':function(_0x2e9672,_0x214b14){return _0x2e9672>_0x214b14;},'gSPvj':'\x20\x20User-level:','ldASo':function(_0x18b07e,_0x34608b){return _0x18b07e===_0x34608b;},'vQzTQ':_0x50a482(0x109),'sZXsT':_0x50a482(0x107),'gQDgT':function(_0x42c68a,_0x3cc700){return _0x42c68a(_0x3cc700);},'laTLw':function(_0x15ab70,_0x519aee){return _0x15ab70!==_0x519aee;},'ZvGcf':function(_0xe43aea,_0x4b365e,_0x3a67af){return _0xe43aea(_0x4b365e,_0x3a67af);},'LsvoH':function(_0x27cc44,_0x3e31c3){return _0x27cc44(_0x3e31c3);}};console['log'](_0x265d98['lBwFC']);const _0x649062=process['cwd'](),_0x1a4e02=getRangerDir();if(!existsSync(_0x1a4e02)){console['log'](_0x50a482(0x11a)+_0x265d98[_0x50a482(0x11e)](link,_0x649062,bold(_0x265d98[_0x50a482(0x10e)](basename,_0x649062)))),console[_0x50a482(0xbc)](_0x50a482(0xd9)),console['log'](_0x50a482(0xd5));return;}console['log']('Root:\x20'+_0x265d98['qtvrm'](link,_0x649062,_0x265d98[_0x50a482(0xe3)](bold,basename(_0x649062))));const _0x4e158d=_0x265d98[_0x50a482(0xd8)](getCurrentVersion),_0x1fbc7f=getLatestVersion();if(_0x1fbc7f[_0x50a482(0xc6)]&&_0x1fbc7f[_0x50a482(0xc6)]!==_0x4e158d)console['log'](_0x50a482(0xc3)+_0x4e158d+'\x20(latest:\x20'+_0x1fbc7f[_0x50a482(0xc6)]+')'),console['log']('\x20\x20Run:\x20ranger\x20update');else _0x1fbc7f[_0x50a482(0xc6)]?console['log']('Version:\x20'+_0x4e158d+'\x20(up\x20to\x20date)'):console[_0x50a482(0xbc)]('Version:\x20'+_0x4e158d);const _0x5c2dae=await _0x265d98['uPLMW'](getToken);if(_0x5c2dae){const _0x5e16b1=await _0x265d98[_0x50a482(0x111)](getCurrentUser,_0x5c2dae);_0x5e16b1[_0x50a482(0xc1)]?console[_0x50a482(0xbc)](_0x50a482(0xcb)+_0x265d98['WSuWY'](bold,_0x5e16b1['user']['organizationName'])):(console[_0x50a482(0xbc)](_0x50a482(0xf5)),console[_0x50a482(0xbc)](_0x50a482(0xbd)));}else console['log'](_0x50a482(0xee)),console['log'](_0x50a482(0xbd));process[_0x50a482(0xe0)]['DEBUG']&&(console[_0x50a482(0xbc)]('API\x20Environment:\x20'+getCurrentEnvironment()),console['log'](_0x50a482(0x11b)+getApiBaseUrl()));console['log'](_0x50a482(0xdc));const _0x51f0b8=await _0x265d98[_0x50a482(0xd8)](getOpencodePluginStatus);if(_0x265d98['WMwwI'](_0x51f0b8[_0x50a482(0xe8)],'configured'))console[_0x50a482(0xbc)]('\x20\x20'+bold('@ranger-testing/opencode-plugin')+_0x50a482(0x10c)),_0x51f0b8['details']&&console['log']('\x20\x20'+_0x51f0b8['details']);else _0x265d98[_0x50a482(0xd7)](_0x51f0b8['status'],_0x265d98['mZhzx'])?(console['log']('\x20\x20Not\x20configured'),_0x51f0b8['details']&&console['log']('\x20\x20'+_0x51f0b8['details']),console['log'](_0x265d98[_0x50a482(0x110)])):console['log'](_0x50a482(0xe5));console['log'](_0x50a482(0xeb));const _0x23d30f=await _0x265d98[_0x50a482(0x119)](getPluginInfo,_0x50a482(0xe9));if(_0x23d30f){const _0x50a721=_0x23d30f[_0x50a482(0x117)]||_0x265d98['EcDPI'],_0x48564a=_0x23d30f['enabled']?_0x265d98[_0x50a482(0xf4)]:_0x50a482(0x113);console['log']('\x20\x20'+_0x265d98[_0x50a482(0xe3)](bold,_0x265d98['KnXZH'])+':\x20installed\x20('+_0x50a721+',\x20'+_0x48564a+')');}else console[_0x50a482(0xbc)](_0x265d98[_0x50a482(0xef)]),console['log'](_0x265d98['afSIR']);console[_0x50a482(0xbc)](_0x50a482(0xb6));const {project:_0x26ed0d,user:_0x52f2a8}=await getInstalledSkills(),_0x2499fa=_0x26ed0d['filter'](_0x1f642b=>RANGER_MANAGED_SKILLS['includes'](_0x1f642b[_0x50a482(0x101)])),_0xa942c5=_0x52f2a8[_0x50a482(0xbb)](_0x463629=>RANGER_MANAGED_SKILLS['includes'](_0x463629['name'])),_0x5f9199=_0x2499fa['length']+_0xa942c5['length'];if(_0x265d98['WMwwI'](_0x5f9199,0x0))console['log']('No\x20skills\x20installed'),console['log']('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x2499fa['length']>0x0){console[_0x50a482(0xbc)]('\x20\x20Project-level:');for(const _0x15c060 of _0x2499fa){console['log']('\x20\x20\x20\x20'+bold(_0x15c060['displayName'])+':\x20'+_0x265d98['qtvrm'](link,_0x15c060[_0x50a482(0xfa)],_0x265d98[_0x50a482(0xfc)](basename,_0x15c060['path'])));}}if(_0x265d98[_0x50a482(0xf3)](_0xa942c5[_0x50a482(0xbe)],0x0)){console[_0x50a482(0xbc)](_0x265d98[_0x50a482(0xb8)]);for(const _0x35e61b of _0xa942c5){console[_0x50a482(0xbc)](_0x50a482(0xf0)+_0x265d98['vqbfG'](bold,_0x35e61b[_0x50a482(0xdd)])+':\x20'+_0x265d98[_0x50a482(0x11e)](link,_0x35e61b[_0x50a482(0xfa)],_0x265d98[_0x50a482(0x10e)](basename,_0x35e61b['path'])));}}}console[_0x50a482(0xbc)]('\x0a---\x20Profiles\x20---');const {envs:_0xed8008,activeEnv:_0x581f48}=await _0x265d98['uPLMW'](getEnvironments);if(_0x265d98['ldASo'](_0xed8008['length'],0x0))console['log'](_0x50a482(0xc9)),console[_0x50a482(0xbc)](_0x50a482(0xed));else{for(const _0xeda8c2 of _0xed8008){const _0x1c5630=_0xeda8c2[_0x50a482(0xc2)]?'\x20(active)':'',_0x57e858=_0xeda8c2[_0x50a482(0xf1)]?'encrypted':_0xeda8c2[_0x50a482(0xdb)]?_0x265d98[_0x50a482(0xfb)]:_0x265d98[_0x50a482(0xfd)];console['log']('\x20\x20'+_0x265d98[_0x50a482(0xfe)](bold,_0xeda8c2['name'])+_0x1c5630),console['log']('\x20\x20\x20\x20Auth:\x20'+_0x57e858),_0x265d98['laTLw'](_0xeda8c2['settingsPath'],_0x50a482(0x116))&&console[_0x50a482(0xbc)](_0x50a482(0xd1)+_0x265d98[_0x50a482(0x105)](link,_0xeda8c2['settingsPath'],_0x265d98['LsvoH'](basename,_0xeda8c2['settingsPath'])));}!_0x581f48&&(console[_0x50a482(0xbc)]('\x0a\x20\x20No\x20active\x20profile\x20set'),console[_0x50a482(0xbc)]('\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20'+_0xed8008['map'](_0x1fee50=>_0x1fee50[_0x50a482(0x101)])[_0x50a482(0x115)](',\x20')+')'));}console['log']('');}