@ranger-testing/ranger-cli 2.2.2 → 2.2.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 (68) hide show
  1. package/README.md +3 -1
  2. package/build/cli.js +1 -1
  3. package/build/commands/addEnv.js +1 -1
  4. package/build/commands/authEncrypt.js +1 -1
  5. package/build/commands/clean.js +1 -1
  6. package/build/commands/config.js +1 -1
  7. package/build/commands/env.js +1 -1
  8. package/build/commands/feature.js +1 -1
  9. package/build/commands/hook.js +1 -1
  10. package/build/commands/hooks/autoPrompt.js +1 -1
  11. package/build/commands/hooks/disable.js +1 -1
  12. package/build/commands/hooks/enable.js +1 -1
  13. package/build/commands/hooks/exitPlanMode.js +1 -1
  14. package/build/commands/hooks/index.js +1 -1
  15. package/build/commands/hooks/output.js +1 -1
  16. package/build/commands/hooks/planReminder.js +1 -1
  17. package/build/commands/hooks/planStart.js +1 -1
  18. package/build/commands/hooks/postEdit.js +1 -1
  19. package/build/commands/hooks/preCompact.js +1 -1
  20. package/build/commands/hooks/sessionEnd.js +1 -1
  21. package/build/commands/hooks/sessionStart.js +1 -1
  22. package/build/commands/hooks/stopHook.js +1 -1
  23. package/build/commands/index.js +1 -1
  24. package/build/commands/login.js +1 -1
  25. package/build/commands/setup/claude.js +1 -1
  26. package/build/commands/setup/opencode.js +1 -1
  27. package/build/commands/setupCi.js +1 -1
  28. package/build/commands/skillup.js +1 -1
  29. package/build/commands/start.js +1 -1
  30. package/build/commands/status.js +1 -1
  31. package/build/commands/update.js +1 -1
  32. package/build/commands/updateEnv.js +1 -1
  33. package/build/commands/useEnv.js +1 -1
  34. package/build/commands/utils/activeProfile.js +1 -1
  35. package/build/commands/utils/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/profileMessages.js +1 -1
  52. package/build/commands/utils/profileSetupBanner.js +1 -1
  53. package/build/commands/utils/rangerConfig.js +1 -1
  54. package/build/commands/utils/rangerRoot.js +1 -1
  55. package/build/commands/utils/reportGenerator.js +1 -1
  56. package/build/commands/utils/retry.js +1 -1
  57. package/build/commands/utils/sessionCache.js +1 -1
  58. package/build/commands/utils/settings.js +1 -1
  59. package/build/commands/utils/skillContent.js +1 -1
  60. package/build/commands/utils/skills.js +1 -1
  61. package/build/commands/utils/stitchWebmFiles.js +1 -1
  62. package/build/commands/utils/telemetry.js +1 -1
  63. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  64. package/build/commands/utils/userApi.js +1 -1
  65. package/build/commands/utils/version.js +1 -1
  66. package/build/commands/verifyFeature.js +1 -1
  67. package/build/commands/verifyInBrowser.js +1 -1
  68. package/package.json +1 -1
@@ -1 +1 @@
1
- const _0x5e27e5=_0x1e41;(function(_0x28a09a,_0x22e662){const _0x17d40b=_0x1e41,_0x5f15f2=_0x28a09a();while(!![]){try{const _0x309e61=parseInt(_0x17d40b(0x17b))/0x1+-parseInt(_0x17d40b(0x17d))/0x2+parseInt(_0x17d40b(0x174))/0x3+-parseInt(_0x17d40b(0x182))/0x4*(-parseInt(_0x17d40b(0x178))/0x5)+parseInt(_0x17d40b(0x188))/0x6*(parseInt(_0x17d40b(0x177))/0x7)+-parseInt(_0x17d40b(0x187))/0x8+-parseInt(_0x17d40b(0x176))/0x9*(parseInt(_0x17d40b(0x185))/0xa);if(_0x309e61===_0x22e662)break;else _0x5f15f2['push'](_0x5f15f2['shift']());}catch(_0x263a28){_0x5f15f2['push'](_0x5f15f2['shift']());}}}(_0x4bd6,0xe9caf));function _0x1e41(_0x2ff981,_0x24bc28){_0x2ff981=_0x2ff981-0x174;const _0x4bd6b4=_0x4bd6();let _0x1e41f4=_0x4bd6b4[_0x2ff981];return _0x1e41f4;}import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';function _0x4bd6(){const _0x1e772b=['hook:session-start','session_id','472EAigcO','=================================================================\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=================================================================','OySWy','882110zFgpuf','log','11695920YeJxvD','26130evheBn','CLAUDE_ENV_FILE','trackCommandStart','5632194DnCJKV','YcKIE','252oaNUpz','2506MOxXdi','80235stnQRu','AkNRe','hfkAi','596690xfTpWl','master','2074422dYoqEP','QQhDN','stdin'];_0x4bd6=function(){return _0x1e772b;};return _0x4bd6();}const RANGER_AUTO_ENABLED_PROMPT=_0x5e27e5(0x183);export async function sessionStart(_0x1defc3){const _0x3902bb=_0x5e27e5,_0x32fbb4={'AkNRe':'source','OySWy':function(_0x309f07,_0x6a05b0){return _0x309f07&&_0x6a05b0;},'BfvAo':function(_0x4870fa,_0x36f348,_0x307210){return _0x4870fa(_0x36f348,_0x307210);},'QQhDN':function(_0x3d1e85,_0x1d4228){return _0x3d1e85(_0x1d4228);},'hfkAi':function(_0x25be0b,_0x52a0ab){return _0x25be0b(_0x52a0ab);},'LhqHT':function(_0x2d25bc,_0x40e050){return _0x2d25bc(_0x40e050);},'hTaHh':function(_0xc57bb4,_0x4df574){return _0xc57bb4!==_0x4df574;},'YcKIE':function(_0x296480,_0x4eacab){return _0x296480!==_0x4eacab;}};let _0x51f7f7=_0x1defc3||'',_0x2f7874;if(!_0x1defc3){let _0x20acb6='';for await(const _0x4944e9 of process[_0x3902bb(0x17f)]){_0x20acb6+=_0x4944e9;}try{const _0xe70dc0=JSON['parse'](_0x20acb6);_0x51f7f7=_0xe70dc0[_0x3902bb(0x181)]||'',_0x2f7874=_0xe70dc0[_0x32fbb4[_0x3902bb(0x179)]];}catch{}const _0x4c004f=process['env'][_0x3902bb(0x189)];if(_0x32fbb4[_0x3902bb(0x184)](_0x4c004f,_0x51f7f7))try{await _0x32fbb4['BfvAo'](appendFile,_0x4c004f,'export\x20CLAUDE_SESSION_ID=\x22'+_0x51f7f7+'\x22\x0a');}catch{}}if(_0x51f7f7){shouldAutoEnableAfterClear(_0x2f7874)&&_0x32fbb4[_0x3902bb(0x17e)](autoEnableAfterClear,_0x51f7f7);_0x32fbb4[_0x3902bb(0x17e)](initBranchTracking,_0x51f7f7);const _0x34d508=_0x32fbb4[_0x3902bb(0x17a)](isSessionEnabled,_0x51f7f7);try{const _0x21ddf1=_0x32fbb4['LhqHT'](createTelemetryCollector,_0x3902bb(0x180));await _0x21ddf1[_0x3902bb(0x18a)]({'sessionId':_0x51f7f7,'hooksEnabled':_0x34d508}),await _0x21ddf1['trackCommandEnd']('success');}catch{}if(_0x34d508){const _0x19b7d5=getCurrentBranch(),_0x1518ee=_0x19b7d5&&_0x32fbb4['hTaHh'](_0x19b7d5,'main')&&_0x32fbb4[_0x3902bb(0x175)](_0x19b7d5,_0x3902bb(0x17c))?'\x20(Branch:\x20'+_0x19b7d5+')':'',_0x30be4e={'hookSpecificOutput':{'hookEventName':'SessionStart','additionalContext':RANGER_AUTO_ENABLED_PROMPT+_0x1518ee}};console[_0x3902bb(0x186)](JSON['stringify'](_0x30be4e));}}}
1
+ const _0x989d74=_0x2c87;function _0x3293(){const _0xd50f2a=['source','2978956acmKew','\x20(Branch:\x20','KIDaP','=================================================================\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=================================================================','357933vRGbKs','16fqSBbN','CLAUDE_ENV_FILE','export\x20CLAUDE_SESSION_ID=\x22','trackCommandEnd','3366748GWcQRE','628765iJyrFm','JLruD','14049497oAKkMC','PAQsH','stringify','8907561HJCSiu','session_id','186849YBTioa','78qTcyAC','fUWQG','stdin','xLIae','log','SessionStart','trackCommandStart','10yQHKLn','parse','44zhwOCz'];_0x3293=function(){return _0xd50f2a;};return _0x3293();}function _0x2c87(_0x44d1ad,_0x1305a8){_0x44d1ad=_0x44d1ad-0x14f;const _0x329313=_0x3293();let _0x2c8714=_0x329313[_0x44d1ad];return _0x2c8714;}(function(_0x208080,_0x23ea8b){const _0x4e364c=_0x2c87,_0x5fa0aa=_0x208080();while(!![]){try{const _0x51a8dd=-parseInt(_0x4e364c(0x152))/0x1+parseInt(_0x4e364c(0x15e))/0x2+parseInt(_0x4e364c(0x162))/0x3*(-parseInt(_0x4e364c(0x15c))/0x4)+-parseInt(_0x4e364c(0x168))/0x5*(-parseInt(_0x4e364c(0x153))/0x6)+parseInt(_0x4e364c(0x167))/0x7*(-parseInt(_0x4e364c(0x163))/0x8)+-parseInt(_0x4e364c(0x150))/0x9+parseInt(_0x4e364c(0x15a))/0xa*(parseInt(_0x4e364c(0x16a))/0xb);if(_0x51a8dd===_0x23ea8b)break;else _0x5fa0aa['push'](_0x5fa0aa['shift']());}catch(_0x1210bf){_0x5fa0aa['push'](_0x5fa0aa['shift']());}}}(_0x3293,0xe8127));import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';const RANGER_AUTO_ENABLED_PROMPT=_0x989d74(0x161);export async function sessionStart(_0x42ab16){const _0x5bedf6=_0x989d74,_0x1dd07c={'gUHUU':_0x5bedf6(0x15d),'JLruD':function(_0x3de4a5,_0xc8c37d){return _0x3de4a5(_0xc8c37d);},'fUWQG':function(_0x48aaf4,_0x5daa30){return _0x48aaf4!==_0x5daa30;},'PAQsH':'main','CZsTz':'master','xLIae':_0x5bedf6(0x158),'KIDaP':function(_0x5f38c4,_0x46dbe0){return _0x5f38c4+_0x46dbe0;}};let _0x4f2537=_0x42ab16||'',_0x1d190d;if(!_0x42ab16){let _0x3e61cc='';for await(const _0x937c74 of process[_0x5bedf6(0x155)]){_0x3e61cc+=_0x937c74;}try{const _0x3465a3=JSON[_0x5bedf6(0x15b)](_0x3e61cc);_0x4f2537=_0x3465a3[_0x5bedf6(0x151)]||'',_0x1d190d=_0x3465a3[_0x1dd07c['gUHUU']];}catch{}const _0x218a80=process['env'][_0x5bedf6(0x164)];if(_0x218a80&&_0x4f2537)try{await appendFile(_0x218a80,_0x5bedf6(0x165)+_0x4f2537+'\x22\x0a');}catch{}}if(_0x4f2537){shouldAutoEnableAfterClear(_0x1d190d)&&_0x1dd07c[_0x5bedf6(0x169)](autoEnableAfterClear,_0x4f2537);_0x1dd07c['JLruD'](initBranchTracking,_0x4f2537);const _0x5166d3=isSessionEnabled(_0x4f2537);try{const _0x48d1b6=createTelemetryCollector('hook:session-start');await _0x48d1b6[_0x5bedf6(0x159)]({'sessionId':_0x4f2537,'hooksEnabled':_0x5166d3}),await _0x48d1b6[_0x5bedf6(0x166)]('success');}catch{}if(_0x5166d3){const _0x24e73f=getCurrentBranch(),_0x348104=_0x24e73f&&_0x1dd07c[_0x5bedf6(0x154)](_0x24e73f,_0x1dd07c[_0x5bedf6(0x16b)])&&_0x24e73f!==_0x1dd07c['CZsTz']?_0x5bedf6(0x15f)+_0x24e73f+')':'',_0x318a0d={'hookSpecificOutput':{'hookEventName':_0x1dd07c[_0x5bedf6(0x156)],'additionalContext':_0x1dd07c[_0x5bedf6(0x160)](RANGER_AUTO_ENABLED_PROMPT,_0x348104)}};console[_0x5bedf6(0x157)](JSON[_0x5bedf6(0x14f)](_0x318a0d));}}}
@@ -1 +1 @@
1
- (function(_0x3d5add,_0x3662bf){const _0x242216=_0x5125,_0x44fcb0=_0x3d5add();while(!![]){try{const _0x5abaf7=-parseInt(_0x242216(0x16c))/0x1+-parseInt(_0x242216(0x159))/0x2+parseInt(_0x242216(0x171))/0x3+parseInt(_0x242216(0x174))/0x4+parseInt(_0x242216(0x160))/0x5*(-parseInt(_0x242216(0x16d))/0x6)+parseInt(_0x242216(0x15e))/0x7+parseInt(_0x242216(0x168))/0x8*(parseInt(_0x242216(0x157))/0x9);if(_0x5abaf7===_0x3662bf)break;else _0x44fcb0['push'](_0x44fcb0['shift']());}catch(_0x4e3bc0){_0x44fcb0['push'](_0x44fcb0['shift']());}}}(_0x289d,0x61697));function _0x5125(_0x4b72e8,_0x5c3352){_0x4b72e8=_0x4b72e8-0x153;const _0x289d87=_0x289d();let _0x51258d=_0x289d87[_0x4b72e8];return _0x51258d;}import{open}from'fs/promises';import{getToken}from'../utils/keychain.js';function _0x289d(){const _0x304a7e=['transcript_path','1112792AYdKXn','yoMvE','min','https://dashboard.ranger.net/features/','\x0a\x0aThis\x20is\x20most\x20likely\x20due\x20to\x20pending\x20scenarios\x20that\x20need\x20to\x20be\x20verified.\x20Please\x20resolve\x20the\x20issue\x20or\x20resume\x20later\x20with:\x0a\x20\x20ranger\x20resume\x0a\x0aIf\x20you\x20are\x20extremely\x20sure\x20this\x20is\x20the\x20user\x27s\x20requirement\x20and\x20want\x20to\x20skip\x20verification\x20for\x20now,\x20send\x20a\x20final\x20message\x20that\x20includes\x20the\x20feature\x20review\x20link\x20(','3417176szfeKV','avVkS','1315bCyazn','message',')\x20and\x20the\x20token\x20`','tlKqc','tlBOH','hook:stop','log','sessionId','188304NcrOrQ','featureId','XRQdF','Failed\x20to\x20conclude\x20Ranger\x20feature\x20review\x20session','643665kkKrQT','4128TQdsSv','stop_hook_active','read','size','2002941FXbaIf','XHAZP','`,\x20then\x20run\x20/exit\x20again.','1461084XWqJVH','close','input','stringify','string','\x20for\x20\x22','ioDoi','includes','zMYzN','block','99slMntv'];_0x289d=function(){return _0x304a7e;};return _0x289d();}import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x23b71a){const _0x4a461c=_0x5125,_0x469dc6={'ioDoi':function(_0x4aa611,_0x23b6a5){return _0x4aa611(_0x23b6a5);},'bAcBR':_0x4a461c(0x178),'VjUfl':function(_0x31df93,_0x31b624,_0x3f4f1d){return _0x31df93(_0x31b624,_0x3f4f1d);},'lUOEW':function(_0x4fd1f9,_0x44a1b1){return _0x4fd1f9&&_0x44a1b1;},'FYZvN':function(_0x14e86b,_0x1e8d33,_0x201d72){return _0x14e86b(_0x1e8d33,_0x201d72);},'yoMvE':function(_0x316bde,_0x3286cb){return _0x316bde instanceof _0x3286cb;},'XHAZP':_0x4a461c(0x156),'BXLNo':function(_0x11d4c9,_0xd63d2a,_0x479d72,_0x40f773){return _0x11d4c9(_0xd63d2a,_0x479d72,_0x40f773);},'tlKqc':function(_0xe92232,_0x1cd0e4,_0x27eef4,_0xf5a6c7){return _0xe92232(_0x1cd0e4,_0x27eef4,_0xf5a6c7);}},_0x5cb253=await _0x469dc6[_0x4a461c(0x153)](getEnabledHookContext,_0x23b71a),_0x5aee8b=_0x5cb253?.[_0x4a461c(0x167)]??null,_0x1fe1c3=Boolean(_0x5cb253?.[_0x4a461c(0x176)]?.[_0x4a461c(0x16e)]),_0x1f9022=typeof _0x5cb253?.['input']?.[_0x4a461c(0x158)]===_0x469dc6['bAcBR']?_0x5cb253['input']['transcript_path']:null;let _0x374666=!![];if(!_0x5aee8b){await trackStop(_0x5aee8b,![],_0x374666);return;}try{const _0x156a43=_0x469dc6[_0x4a461c(0x153)](getSessionEntry,_0x5aee8b);if(!_0x156a43){await trackStop(_0x5aee8b,!![],_0x374666);return;}const _0x217f8b=_0x4a461c(0x15c)+_0x156a43[_0x4a461c(0x169)],_0x413dbf='RANGER_SKIP_VERIFICATION',_0x45d7b7=await getToken(),_0x35d964=!_0x1fe1c3;let _0x524055=null,_0x11eddd=null;const _0x2d71d4=_0x1fe1c3&&await _0x469dc6['VjUfl'](transcriptHasToken,_0x1f9022,_0x413dbf),_0x117e9c=await _0x469dc6['VjUfl'](transcriptHasToken,_0x1f9022,_0x217f8b);if(_0x45d7b7)try{const _0x24f74c=await getFeature(_0x156a43['featureId']);_0x524055=_0x24f74c['name']??null,_0x11eddd=_0x24f74c['currentSessionId']??null;}catch{}if(_0x469dc6['lUOEW'](_0x45d7b7,_0x11eddd))try{await _0x469dc6['FYZvN'](concludeSession,_0x156a43[_0x4a461c(0x169)],_0x11eddd);}catch(_0x93121f){if(_0x2d71d4){await trackStop(_0x5aee8b,!![],_0x374666);return;}_0x374666=![];const _0x66ae12=_0x469dc6[_0x4a461c(0x15a)](_0x93121f,Error)?_0x93121f[_0x4a461c(0x161)]:String(_0x93121f),_0x11c4f6={'decision':_0x469dc6[_0x4a461c(0x172)],'reason':_0x4a461c(0x16b)+(_0x524055?_0x4a461c(0x179)+_0x524055+'\x22':'')+':\x0a\x0a'+_0x66ae12+_0x4a461c(0x15d)+_0x217f8b+_0x4a461c(0x162)+_0x413dbf+_0x4a461c(0x173)};console[_0x4a461c(0x166)](JSON[_0x4a461c(0x177)](_0x11c4f6)),await _0x469dc6['BXLNo'](trackStop,_0x5aee8b,!![],_0x374666);return;}await _0x469dc6[_0x4a461c(0x163)](trackStop,_0x5aee8b,!![],_0x374666);return;}catch{await trackStop(_0x5aee8b,!![],_0x374666);return;}}async function trackStop(_0x742069,_0x24723f,_0x45aeb3){const _0xa687b1=_0x5125,_0x407ebb={'XRQdF':function(_0x155536,_0x32d911){return _0x155536(_0x32d911);},'avVkS':function(_0x5508c4,_0x5a66d6){return _0x5508c4??_0x5a66d6;},'fbOAl':'success'};try{const _0x57fed3=_0x407ebb[_0xa687b1(0x16a)](createTelemetryCollector,_0xa687b1(0x165));await _0x57fed3['trackCommandStart']({'sessionId':_0x407ebb[_0xa687b1(0x15f)](_0x742069,undefined),'hooksEnabled':_0x24723f,'stopAllowed':_0x45aeb3}),await _0x57fed3['trackCommandEnd'](_0x407ebb['fbOAl']);}catch{}}async function transcriptHasToken(_0x5b39a6,_0x53f0a1){const _0x49e436=_0x5125,_0x299224={'zMYzN':function(_0x15b43e,_0x1ef3cd,_0x8cbdd2){return _0x15b43e(_0x1ef3cd,_0x8cbdd2);}};if(!_0x5b39a6)return![];const _0x6c6966=await _0x299224[_0x49e436(0x155)](readTranscriptTail,_0x5b39a6,0x30d40);return _0x6c6966?_0x6c6966[_0x49e436(0x154)](_0x53f0a1):![];}async function readTranscriptTail(_0x4eabdf,_0x216a50){const _0x43a516=_0x5125,_0x5f3269={'hHZjQ':function(_0x442eb2,_0x3692e9,_0x143be8){return _0x442eb2(_0x3692e9,_0x143be8);},'tlBOH':function(_0x4864df,_0x186a43){return _0x4864df<=_0x186a43;}};let _0x290159=null;try{_0x290159=await _0x5f3269['hHZjQ'](open,_0x4eabdf,'r');const _0x1df119=await _0x290159['stat'](),_0x1d2a08=Math[_0x43a516(0x15b)](_0x1df119[_0x43a516(0x170)],_0x216a50);if(_0x5f3269[_0x43a516(0x164)](_0x1d2a08,0x0))return'';const _0x28319e=Buffer['alloc'](_0x1d2a08);return await _0x290159[_0x43a516(0x16f)](_0x28319e,0x0,_0x1d2a08,_0x1df119['size']-_0x1d2a08),_0x28319e['toString']('utf8');}catch{return null;}finally{try{await _0x290159?.[_0x43a516(0x175)]();}catch{}}}
1
+ (function(_0x5bb07c,_0x32595f){const _0x3fb6ee=_0x4f6d,_0xede8dc=_0x5bb07c();while(!![]){try{const _0x475544=parseInt(_0x3fb6ee(0xab))/0x1+-parseInt(_0x3fb6ee(0xaf))/0x2*(parseInt(_0x3fb6ee(0xbe))/0x3)+parseInt(_0x3fb6ee(0xb5))/0x4+-parseInt(_0x3fb6ee(0xc3))/0x5*(parseInt(_0x3fb6ee(0xb0))/0x6)+-parseInt(_0x3fb6ee(0xba))/0x7+parseInt(_0x3fb6ee(0xb9))/0x8*(parseInt(_0x3fb6ee(0xb6))/0x9)+parseInt(_0x3fb6ee(0xb8))/0xa;if(_0x475544===_0x32595f)break;else _0xede8dc['push'](_0xede8dc['shift']());}catch(_0x373ff7){_0xede8dc['push'](_0xede8dc['shift']());}}}(_0x3bcc,0x437d9));import{open}from'fs/promises';import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';function _0x3bcc(){const _0x18bcba=['3004624rEUSTr',')\x20and\x20the\x20token\x20`','\x0a\x0aThis\x20is\x20most\x20likely\x20due\x20to\x20pending\x20scenarios\x20that\x20need\x20to\x20be\x20verified.\x20Please\x20resolve\x20the\x20issue\x20or\x20resume\x20later\x20with:\x0a\x20\x20ranger\x20resume\x0a\x0aIf\x20you\x20are\x20extremely\x20sure\x20this\x20is\x20the\x20user\x27s\x20requirement\x20and\x20want\x20to\x20skip\x20verification\x20for\x20now,\x20send\x20a\x20final\x20message\x20that\x20includes\x20the\x20feature\x20review\x20link\x20(','success','15QZCvha','eXYki','dbOLH',':\x0a\x0a','alloc','475tHmDiV','currentSessionId','size','ktDXF','input','utf8','featureId','read','XVZPd','274533YDFZxc','vPHqz','FGfLx','string','15454kppgon','28146eCJjQK','sessionId','XvXeA','toString','trackCommandStart','311060iRapBL','18DnTjBq','ZqffS','5144730qxWUSM','1292728nNbHXp'];_0x3bcc=function(){return _0x18bcba;};return _0x3bcc();}import{createTelemetryCollector}from'../utils/telemetry.js';function _0x4f6d(_0x43cfe8,_0x3a85be){_0x43cfe8=_0x43cfe8-0xa3;const _0x3bcc7a=_0x3bcc();let _0x4f6d44=_0x3bcc7a[_0x43cfe8];return _0x4f6d44;}export async function stopHook(_0x318bd7){const _0x18585a=_0x4f6d,_0x1ed945={'ktDXF':function(_0x4454a8,_0x49f9cd){return _0x4454a8===_0x49f9cd;},'dbOLH':_0x18585a(0xae),'vPHqz':function(_0x24f912,_0x6ea750,_0x4cae6f,_0x5b1342){return _0x24f912(_0x6ea750,_0x4cae6f,_0x5b1342);},'ERvHg':function(_0x5caf13,_0x51d840,_0x28282f,_0x2539a6){return _0x5caf13(_0x51d840,_0x28282f,_0x2539a6);},'VOkBN':function(_0x45f1fa){return _0x45f1fa();},'ZqffS':function(_0x2e822f,_0x3591d4,_0x26877c){return _0x2e822f(_0x3591d4,_0x26877c);},'IAmOB':function(_0x593b64,_0xdcdb82){return _0x593b64(_0xdcdb82);},'jKuUJ':function(_0x18a42d,_0x3f29fe){return _0x18a42d instanceof _0x3f29fe;},'XmXxV':'block','UtVKA':function(_0x2d1dd5,_0x2d7c2b,_0x4ee945,_0x51cd94){return _0x2d1dd5(_0x2d7c2b,_0x4ee945,_0x51cd94);},'XvXeA':function(_0x187f21,_0x4934e0,_0x273259,_0x18a140){return _0x187f21(_0x4934e0,_0x273259,_0x18a140);}},_0x264b59=await getEnabledHookContext(_0x318bd7),_0x212c84=_0x264b59?.[_0x18585a(0xb1)]??null,_0x122ff5=Boolean(_0x264b59?.['input']?.['stop_hook_active']),_0x128d44=_0x1ed945[_0x18585a(0xa5)](typeof _0x264b59?.[_0x18585a(0xa6)]?.['transcript_path'],_0x1ed945[_0x18585a(0xc0)])?_0x264b59[_0x18585a(0xa6)]['transcript_path']:null;let _0x3151da=!![];if(!_0x212c84){await _0x1ed945[_0x18585a(0xac)](trackStop,_0x212c84,![],_0x3151da);return;}try{const _0x4f0cc2=getSessionEntry(_0x212c84);if(!_0x4f0cc2){await _0x1ed945['ERvHg'](trackStop,_0x212c84,!![],_0x3151da);return;}const _0x36327b='https://dashboard.ranger.net/features/'+_0x4f0cc2['featureId'],_0x13c03a='RANGER_SKIP_VERIFICATION',_0x47f4ef=await _0x1ed945['VOkBN'](getToken),_0x4ed149=!_0x122ff5;let _0x38d794=null,_0x4fc878=null;const _0x595ab7=_0x122ff5&&await _0x1ed945[_0x18585a(0xb7)](transcriptHasToken,_0x128d44,_0x13c03a),_0x1d3b16=await transcriptHasToken(_0x128d44,_0x36327b);if(_0x47f4ef)try{const _0x5185cf=await _0x1ed945['IAmOB'](getFeature,_0x4f0cc2[_0x18585a(0xa8)]);_0x38d794=_0x5185cf['name']??null,_0x4fc878=_0x5185cf[_0x18585a(0xa3)]??null;}catch{}if(_0x47f4ef&&_0x4fc878)try{await _0x1ed945[_0x18585a(0xb7)](concludeSession,_0x4f0cc2['featureId'],_0x4fc878);}catch(_0x5c6eb2){if(_0x595ab7){await _0x1ed945['vPHqz'](trackStop,_0x212c84,!![],_0x3151da);return;}_0x3151da=![];const _0x3721d9=_0x1ed945['jKuUJ'](_0x5c6eb2,Error)?_0x5c6eb2['message']:String(_0x5c6eb2),_0x2ed3c5={'decision':_0x1ed945['XmXxV'],'reason':'Failed\x20to\x20conclude\x20Ranger\x20feature\x20review\x20session'+(_0x38d794?'\x20for\x20\x22'+_0x38d794+'\x22':'')+_0x18585a(0xc1)+_0x3721d9+_0x18585a(0xbc)+_0x36327b+_0x18585a(0xbb)+_0x13c03a+'`,\x20then\x20run\x20/exit\x20again.'};console['log'](JSON['stringify'](_0x2ed3c5)),await trackStop(_0x212c84,!![],_0x3151da);return;}await _0x1ed945['UtVKA'](trackStop,_0x212c84,!![],_0x3151da);return;}catch{await _0x1ed945[_0x18585a(0xb2)](trackStop,_0x212c84,!![],_0x3151da);return;}}async function trackStop(_0xc40277,_0x48792b,_0x563b16){const _0x4b407e=_0x4f6d,_0x55e6b2={'eXYki':_0x4b407e(0xbd)};try{const _0x527a55=createTelemetryCollector('hook:stop');await _0x527a55[_0x4b407e(0xb4)]({'sessionId':_0xc40277??undefined,'hooksEnabled':_0x48792b,'stopAllowed':_0x563b16}),await _0x527a55['trackCommandEnd'](_0x55e6b2[_0x4b407e(0xbf)]);}catch{}}async function transcriptHasToken(_0x5203ea,_0x2212b1){const _0x260023={'ntGzt':function(_0x15a437,_0x11f731,_0x4bdd0e){return _0x15a437(_0x11f731,_0x4bdd0e);}};if(!_0x5203ea)return![];const _0x83aca4=await _0x260023['ntGzt'](readTranscriptTail,_0x5203ea,0x30d40);return _0x83aca4?_0x83aca4['includes'](_0x2212b1):![];}async function readTranscriptTail(_0x51182d,_0x61e88a){const _0x2f416c=_0x4f6d,_0xecacb2={'FGfLx':function(_0x390347,_0x5943fa){return _0x390347-_0x5943fa;},'XVZPd':_0x2f416c(0xa7)};let _0x5d15a2=null;try{_0x5d15a2=await open(_0x51182d,'r');const _0x3e6559=await _0x5d15a2['stat'](),_0x3afdec=Math['min'](_0x3e6559['size'],_0x61e88a);if(_0x3afdec<=0x0)return'';const _0x23d415=Buffer[_0x2f416c(0xc2)](_0x3afdec);return await _0x5d15a2[_0x2f416c(0xa9)](_0x23d415,0x0,_0x3afdec,_0xecacb2[_0x2f416c(0xad)](_0x3e6559[_0x2f416c(0xa4)],_0x3afdec)),_0x23d415[_0x2f416c(0xb3)](_0xecacb2[_0x2f416c(0xaa)]);}catch{return null;}finally{try{await _0x5d15a2?.['close']();}catch{}}}
@@ -1 +1 @@
1
- (function(_0x200ba1,_0x348180){var _0x2e0482=_0x37fe,_0x563683=_0x200ba1();while(!![]){try{var _0x4657be=-parseInt(_0x2e0482(0x1b7))/0x1*(-parseInt(_0x2e0482(0x1b6))/0x2)+parseInt(_0x2e0482(0x1b9))/0x3*(-parseInt(_0x2e0482(0x1bf))/0x4)+parseInt(_0x2e0482(0x1b5))/0x5+-parseInt(_0x2e0482(0x1bc))/0x6*(parseInt(_0x2e0482(0x1be))/0x7)+parseInt(_0x2e0482(0x1bb))/0x8*(-parseInt(_0x2e0482(0x1b8))/0x9)+-parseInt(_0x2e0482(0x1ba))/0xa+parseInt(_0x2e0482(0x1bd))/0xb;if(_0x4657be===_0x348180)break;else _0x563683['push'](_0x563683['shift']());}catch(_0x2213cd){_0x563683['push'](_0x563683['shift']());}}}(_0x31b6,0x94dcc));function _0x37fe(_0x52b2c0,_0x2cf9d1){_0x52b2c0=_0x52b2c0-0x1b5;var _0x31b6fc=_0x31b6();var _0x37feaf=_0x31b6fc[_0x52b2c0];return _0x37feaf;}export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';function _0x31b6(){var _0xba47b0=['639MgQRcX','219TqrKCr','1601270qplsue','60040lnOEbQ','36VeLaJt','16523353koVqMC','24276OstzVW','52780QDrmcH','2296425Iewzwd','2918HfHAdf','223lCXEfd'];_0x31b6=function(){return _0xba47b0;};return _0x31b6();}export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
1
+ (function(_0x85b475,_0x7bb1e){var _0x18b465=_0x5932,_0x56ff9b=_0x85b475();while(!![]){try{var _0x14572d=parseInt(_0x18b465(0xad))/0x1+-parseInt(_0x18b465(0xb2))/0x2+-parseInt(_0x18b465(0xae))/0x3+parseInt(_0x18b465(0xaf))/0x4+-parseInt(_0x18b465(0xab))/0x5*(-parseInt(_0x18b465(0xac))/0x6)+-parseInt(_0x18b465(0xb0))/0x7+parseInt(_0x18b465(0xb1))/0x8;if(_0x14572d===_0x7bb1e)break;else _0x56ff9b['push'](_0x56ff9b['shift']());}catch(_0x1bed90){_0x56ff9b['push'](_0x56ff9b['shift']());}}}(_0x4000,0x1f092));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';function _0x4000(){var _0x3f7285=['161702tTSBVz','412390dLvoIe','6LthnFO','133397bjeode','292851zLkSuA','973332lgqGdN','1246014inuTTx','195072qFpMKZ'];_0x4000=function(){return _0x3f7285;};return _0x4000();}export{start}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';function _0x5932(_0x17c7c8,_0x1e56de){_0x17c7c8=_0x17c7c8-0xab;var _0x4000c2=_0x4000();var _0x5932bc=_0x4000c2[_0x17c7c8];return _0x5932bc;}export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
@@ -1 +1 @@
1
- (function(_0x2c4bbb,_0x425eb9){const _0x42b109=_0x37c6,_0x121bb9=_0x2c4bbb();while(!![]){try{const _0x50a1a2=parseInt(_0x42b109(0x16a))/0x1+-parseInt(_0x42b109(0x16b))/0x2+parseInt(_0x42b109(0x169))/0x3*(parseInt(_0x42b109(0x172))/0x4)+-parseInt(_0x42b109(0x16f))/0x5+-parseInt(_0x42b109(0x170))/0x6+parseInt(_0x42b109(0x16d))/0x7*(-parseInt(_0x42b109(0x166))/0x8)+parseInt(_0x42b109(0x174))/0x9;if(_0x50a1a2===_0x425eb9)break;else _0x121bb9['push'](_0x121bb9['shift']());}catch(_0x656bbb){_0x121bb9['push'](_0x121bb9['shift']());}}}(_0x1bd5,0xc72d5));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x1bd5(){const _0x546514=['6255372cUinwD','isTTY','3088rBSyYv','roMTe','26780598CyIbUn','user','9584XgcReQ','stdout','\x0a✅\x20API\x20key\x20stored\x20successfully','3435Rrqvew','1068045wLMwtk','1485130dNFLLc','log','4102gwdtyB','jXdNS','8123115hKoEZZ'];_0x1bd5=function(){return _0x546514;};return _0x1bd5();}import{getCurrentUser}from'./utils/userApi.js';function _0x37c6(_0x4f216e,_0x1bc573){_0x4f216e=_0x4f216e-0x166;const _0x1bd545=_0x1bd5();let _0x37c6e7=_0x1bd545[_0x4f216e];return _0x37c6e7;}export async function login(){const _0x1d8871=_0x37c6,_0x2bc99d={'yUfAA':'Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','jXdNS':function(_0x17b978){return _0x17b978();},'YQeLZ':function(_0x453a9f,_0x4355dc){return _0x453a9f(_0x4355dc);},'roMTe':_0x1d8871(0x168),'Ikyyi':function(_0x59b5de,_0x2449d6){return _0x59b5de instanceof _0x2449d6;}},_0x3475f1=process['stdin'][_0x1d8871(0x171)]&&process[_0x1d8871(0x167)]['isTTY'];if(!_0x3475f1)throw new Error(_0x2bc99d['yUfAA']);try{const _0x2fbe13=await _0x2bc99d[_0x1d8871(0x16e)](runDeviceAuthFlow),_0x25f17d=await _0x2bc99d['YQeLZ'](getCurrentUser,_0x2fbe13);_0x25f17d['success']?console[_0x1d8871(0x16c)]('\x0a✅\x20Logged\x20in\x20to\x20'+_0x25f17d[_0x1d8871(0x175)]['organizationName']):console['log'](_0x2bc99d[_0x1d8871(0x173)]);}catch(_0x5d2eb4){throw new Error('Login\x20failed:\x20'+(_0x2bc99d['Ikyyi'](_0x5d2eb4,Error)?_0x5d2eb4['message']:_0x5d2eb4));}}
1
+ (function(_0x48d47c,_0x1f48dc){const _0x64ea44=_0x1b24,_0x517cb7=_0x48d47c();while(!![]){try{const _0x7a0584=-parseInt(_0x64ea44(0xbd))/0x1*(-parseInt(_0x64ea44(0xb4))/0x2)+-parseInt(_0x64ea44(0xc4))/0x3*(-parseInt(_0x64ea44(0xb3))/0x4)+parseInt(_0x64ea44(0xbf))/0x5*(parseInt(_0x64ea44(0xc3))/0x6)+-parseInt(_0x64ea44(0xc1))/0x7+-parseInt(_0x64ea44(0xc0))/0x8*(parseInt(_0x64ea44(0xbc))/0x9)+parseInt(_0x64ea44(0xbb))/0xa*(-parseInt(_0x64ea44(0xbe))/0xb)+parseInt(_0x64ea44(0xb2))/0xc;if(_0x7a0584===_0x1f48dc)break;else _0x517cb7['push'](_0x517cb7['shift']());}catch(_0x4b66ed){_0x517cb7['push'](_0x517cb7['shift']());}}}(_0x13c3,0xa8bb5));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x1b24(_0xb1cdf5,_0x3d6d82){_0xb1cdf5=_0xb1cdf5-0xb1;const _0x13c31f=_0x13c3();let _0x1b245e=_0x13c31f[_0xb1cdf5];return _0x1b245e;}import{getCurrentUser}from'./utils/userApi.js';export async function login(){const _0x513041=_0x1b24,_0x4befc6={'toreG':_0x513041(0xb9),'PYvhS':_0x513041(0xb7),'Kapws':function(_0x206389,_0x51cc8d){return _0x206389 instanceof _0x51cc8d;}},_0x56b2e5=process['stdin']['isTTY']&&process[_0x513041(0xb6)][_0x513041(0xc2)];if(!_0x56b2e5)throw new Error(_0x4befc6['toreG']);try{const _0x2e5c0c=await runDeviceAuthFlow(),_0x39907e=await getCurrentUser(_0x2e5c0c);_0x39907e[_0x513041(0xb8)]?console['log'](_0x513041(0xb1)+_0x39907e[_0x513041(0xba)]['organizationName']):console['log'](_0x4befc6[_0x513041(0xc5)]);}catch(_0xf76744){throw new Error('Login\x20failed:\x20'+(_0x4befc6[_0x513041(0xb5)](_0xf76744,Error)?_0xf76744['message']:_0xf76744));}}function _0x13c3(){const _0x3d9864=['82531FMMsVO','22Qsrhko','25hSfxfI','140824JIzMOZ','2839361JJmrMp','isTTY','39210zMRiTP','39KpnvRp','PYvhS','\x0a✅\x20Logged\x20in\x20to\x20','13147248kqyeHO','27224thVrBn','24ONiwSQ','Kapws','stdout','\x0a✅\x20API\x20key\x20stored\x20successfully','success','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','user','5287860rsjtdl','27EQUAkp'];_0x13c3=function(){return _0x3d9864;};return _0x13c3();}
@@ -1 +1 @@
1
- (function(_0x32f975,_0x48db20){const _0x32f18c=_0x33d9,_0x80c4dc=_0x32f975();while(!![]){try{const _0x3dbdfd=-parseInt(_0x32f18c(0x1e1))/0x1*(parseInt(_0x32f18c(0x1d4))/0x2)+-parseInt(_0x32f18c(0x1df))/0x3+parseInt(_0x32f18c(0x1c0))/0x4+parseInt(_0x32f18c(0x1dd))/0x5*(-parseInt(_0x32f18c(0x1c9))/0x6)+-parseInt(_0x32f18c(0x1c6))/0x7+-parseInt(_0x32f18c(0x1d8))/0x8*(parseInt(_0x32f18c(0x1e0))/0x9)+parseInt(_0x32f18c(0x1b3))/0xa;if(_0x3dbdfd===_0x48db20)break;else _0x80c4dc['push'](_0x80c4dc['shift']());}catch(_0x232184){_0x80c4dc['push'](_0x80c4dc['shift']());}}}(_0x5d5e,0xe05c2));import{join}from'path';import{existsSync}from'fs';function _0x33d9(_0x168d9a,_0x11800a){_0x168d9a=_0x168d9a-0x1b3;const _0x5d5e79=_0x5d5e();let _0x33d9d1=_0x5d5e79[_0x168d9a];return _0x33d9d1;}import _0x5f18e4 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';function _0x5d5e(){const _0x328679=['Project\x20(shared\x20with\x20team\x20via\x20git)','⚠\x20Failed\x20to\x20enable\x20plugin:','sqNmb','user','error','wantsSkillup','15110rZjwlv','✓\x20Ranger\x20skills\x20already\x20installed','isOBX','.claude','21536PFApru','ZkHjw','Tlwpf','❌\x20Failed\x20to\x20add\x20marketplace:','--scope','4610VaGksi','prompt','556818TQfLvf','5598PFTbhP','101jeoHZO','output','ZCtTI','52350000gFwWhk','success','list','WdtQc','log','SKILL.md','idHAX','project','confirm','BXnds','PTmJl','ranger','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','3497136ZSEczK','VwSIa','\x20level)...\x0a','xJmok','ranger@trailhead','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','6050009qnkBUo','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','NGXvU','11082cnjGfb','plugin','qZhsL','enable','pluginScope'];_0x5d5e=function(){return _0x328679;};return _0x5d5e();}export async function ensureClaudePlugin(_0x4588d9){const _0x112e9b=_0x33d9,_0x4875cc={'kOnnL':function(_0x1a6f09,_0xd53e79,_0x51debc){return _0x1a6f09(_0xd53e79,_0x51debc);},'xJmok':function(_0x4636f1){return _0x4636f1();},'AuqFX':_0x112e9b(0x1d7),'QybRj':'Where\x20should\x20the\x20plugin\x20be\x20installed?','ouSOc':'User\x20(available\x20in\x20all\x20your\x20projects)','idHAX':function(_0x39905c,_0x5fb35){return _0x39905c(_0x5fb35);},'VwSIa':'✓\x20Marketplace\x20already\x20added','ZCtTI':_0x112e9b(0x1ca),'xBNKj':'add','BULHu':'ranger-testing/trailhead','NGXvU':_0x112e9b(0x1db),'Omeaj':_0x112e9b(0x1c7),'sqNmb':_0x112e9b(0x1dc),'ZkHjw':_0x112e9b(0x1c4),'lxcAy':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x27d4dd=await isPluginInstalled(_0x112e9b(0x1c4));if(_0x27d4dd)return console['log']('✓\x20Claude\x20Code\x20plugin\x20already\x20installed'),![];const _0x170439=existsSync(_0x4875cc['kOnnL'](join,_0x4875cc[_0x112e9b(0x1c3)](getProjectRoot),_0x4875cc['AuqFX']));let _0x3ea25f;if(_0x4588d9)_0x3ea25f=_0x4588d9;else{if(_0x170439)_0x3ea25f=_0x112e9b(0x1ba);else{console['log']('\x0a📦\x20Claude\x20Code\x20Plugin\x0a');const _0x26d8a2=await _0x5f18e4['prompt']([{'type':_0x112e9b(0x1b5),'name':_0x112e9b(0x1cd),'message':_0x4875cc['QybRj'],'choices':[{'name':_0x4875cc['ouSOc'],'value':'user'},{'name':_0x112e9b(0x1ce),'value':'project'}],'default':_0x112e9b(0x1d1)}]);_0x3ea25f=_0x26d8a2['pluginScope'];}}console[_0x112e9b(0x1b7)]('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x3ea25f+_0x112e9b(0x1c2));const _0x2bab2b=await _0x4875cc['idHAX'](isMarketplaceAdded,'trailhead');let _0x246a94=_0x2bab2b;if(_0x2bab2b)console[_0x112e9b(0x1b7)](_0x4875cc[_0x112e9b(0x1c1)]);else{const _0x1d15d7=await runClaudeCommand([_0x4875cc[_0x112e9b(0x1e3)],'marketplace',_0x4875cc['xBNKj'],_0x4875cc['BULHu']]);!_0x1d15d7[_0x112e9b(0x1b4)]?(console['error'](_0x4875cc[_0x112e9b(0x1c8)],_0x1d15d7['error']),console[_0x112e9b(0x1b7)]('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x112e9b(0x1b7)](_0x4875cc['Omeaj']),console[_0x112e9b(0x1b7)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x3ea25f)):_0x246a94=!![];}if(_0x246a94){const _0x229a91=await _0x4875cc[_0x112e9b(0x1b9)](runClaudeCommand,['plugin','install','ranger@trailhead',_0x4875cc['sqNmb'],_0x3ea25f]);if(!_0x229a91['success'])console['error']('❌\x20Failed\x20to\x20install\x20plugin:',_0x229a91[_0x112e9b(0x1d2)]),console[_0x112e9b(0x1b7)]('\x0aYou\x20can\x20install\x20manually\x20with:'),console['log'](_0x112e9b(0x1bf)+_0x3ea25f);else{console['log'](_0x112e9b(0x1c5));const _0x49609e=[_0x4875cc[_0x112e9b(0x1e3)],_0x112e9b(0x1cc),_0x4875cc[_0x112e9b(0x1d9)]];_0x3ea25f==='project'&&_0x49609e['push'](_0x4875cc[_0x112e9b(0x1d0)],'project');const _0x57e5d4=await runClaudeCommand(_0x49609e,{'captureOutput':!![]}),_0x5c96d7=_0x57e5d4[_0x112e9b(0x1e2)]?.['includes']('already\x20enabled');!_0x57e5d4[_0x112e9b(0x1b4)]&&!_0x5c96d7?console[_0x112e9b(0x1d2)](_0x112e9b(0x1cf),_0x57e5d4['error']):console[_0x112e9b(0x1b7)](_0x4875cc['lxcAy']);}}return!![];}export async function ensureClaudeSkills(_0x1c32ca){const _0x3b6d59=_0x33d9,_0x36c58e={'WdtQc':function(_0x2e9f06,_0x1e9bce){return _0x2e9f06(_0x1e9bce);},'MuhZX':_0x3b6d59(0x1b8),'enXwM':function(_0x16c2c8,_0x158e95,_0xa26633,_0x1235d0){return _0x16c2c8(_0x158e95,_0xa26633,_0x1235d0);},'BXnds':function(_0x2df015,_0x2c6abb){return _0x2df015||_0x2c6abb;},'PTmJl':function(_0x2d958c,_0x328cfe){return _0x2d958c(_0x328cfe);},'Tlwpf':_0x3b6d59(0x1bb),'qZhsL':_0x3b6d59(0x1d3),'isOBX':'Would\x20you\x20like\x20to\x20install\x20skills?'},_0xd1027b=existsSync(join(_0x36c58e[_0x3b6d59(0x1b6)](getSkillsDir,'user'),'ranger',_0x36c58e['MuhZX'])),_0x34bc31=existsSync(_0x36c58e['enXwM'](join,_0x36c58e['WdtQc'](getSkillsDir,_0x3b6d59(0x1ba)),_0x3b6d59(0x1be),'SKILL.md'));if(_0x36c58e[_0x3b6d59(0x1bc)](_0xd1027b,_0x34bc31))return console[_0x3b6d59(0x1b7)](_0x3b6d59(0x1d5)),![];const _0x2e7630=existsSync(join(getProjectRoot(),'.claude'));let _0x3f440b=!![];if(_0x1c32ca)await _0x36c58e[_0x3b6d59(0x1bd)](skillup,{'autoInstall':_0x1c32ca,'suppressUsage':!![]});else{if(_0x2e7630)await _0x36c58e[_0x3b6d59(0x1b6)](skillup,{'autoInstall':_0x3b6d59(0x1ba),'suppressUsage':!![]});else{const _0x5d84fb=await _0x5f18e4[_0x3b6d59(0x1de)]([{'type':_0x36c58e[_0x3b6d59(0x1da)],'name':_0x36c58e[_0x3b6d59(0x1cb)],'message':_0x36c58e[_0x3b6d59(0x1d6)],'default':!![]}]);_0x3f440b=_0x5d84fb[_0x3b6d59(0x1d3)],_0x3f440b&&await _0x36c58e[_0x3b6d59(0x1bd)](skillup,{'suppressUsage':!![]});}}return _0x3f440b;}
1
+ (function(_0x1def4c,_0x65cd54){const _0x92a88e=_0x52b2,_0x3f564b=_0x1def4c();while(!![]){try{const _0x3b2885=-parseInt(_0x92a88e(0xd6))/0x1*(-parseInt(_0x92a88e(0xec))/0x2)+-parseInt(_0x92a88e(0xc9))/0x3+-parseInt(_0x92a88e(0xe7))/0x4+parseInt(_0x92a88e(0xc2))/0x5+-parseInt(_0x92a88e(0xda))/0x6+-parseInt(_0x92a88e(0xdb))/0x7+parseInt(_0x92a88e(0xe1))/0x8;if(_0x3b2885===_0x65cd54)break;else _0x3f564b['push'](_0x3f564b['shift']());}catch(_0x12be41){_0x3f564b['push'](_0x3f564b['shift']());}}}(_0x5124,0x9fcff));import{join}from'path';import{existsSync}from'fs';function _0x52b2(_0x44ca9c,_0x4748f1){_0x44ca9c=_0x44ca9c-0xc2;const _0x51247a=_0x5124();let _0x52b248=_0x51247a[_0x44ca9c];return _0x52b248;}import _0x3aa7d9 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x5124(){const _0x4a631b=['ranger@trailhead','tVSFG','error','oPhrG','30pDzrtd','pluginScope','User\x20(available\x20in\x20all\x20your\x20projects)','marketplace','wantsSkillup','1032510gusLbt','ranger','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','CfSIP','log','prompt','TeQBU','68388bLsgWK','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','PooPQ','\x0aYou\x20can\x20install\x20manually\x20with:','SKILL.md','UAitV','\x20level)...\x0a','user','UVvVf','confirm','output','✓\x20Marketplace\x20already\x20added','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','52432tXERHO','add','QARFk','success','2240766pkukpA','5121655XbEmJC','project','OvNyt','LzHJe','OODZP','uQoXg','13273408fEuMKX','plugin','ttBMc','✓\x20Ranger\x20skills\x20already\x20installed','⚠\x20Failed\x20to\x20enable\x20plugin:','❌\x20Failed\x20to\x20add\x20marketplace:','3478580qgRzCU'];_0x5124=function(){return _0x4a631b;};return _0x5124();}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x354079){const _0x3e7f1a=_0x52b2,_0x351bef={'LzHJe':function(_0x1a78c3,_0x5a3c40){return _0x1a78c3(_0x5a3c40);},'fvFdm':function(_0x3b1b96,_0x1f0885,_0x597692){return _0x3b1b96(_0x1f0885,_0x597692);},'OODZP':function(_0x3a2a91){return _0x3a2a91();},'tkYSO':'.claude','UVvVf':_0x3e7f1a(0xdc),'ttBMc':'list','CfSIP':'Where\x20should\x20the\x20plugin\x20be\x20installed?','LQQJq':_0x3e7f1a(0xee),'RpfVR':'Project\x20(shared\x20with\x20team\x20via\x20git)','QARFk':'trailhead','OvNyt':_0x3e7f1a(0xd4),'qSNRH':_0x3e7f1a(0xd7),'OkRYf':'ranger-testing/trailhead','oPhrG':_0x3e7f1a(0xcc),'KLJhR':_0x3e7f1a(0xca),'uQoXg':'✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','kEfze':'enable','SLhfS':'ranger@trailhead','PooPQ':_0x3e7f1a(0xe5)},_0x471ab4=await isPluginInstalled('ranger@trailhead');if(_0x471ab4)return console['log'](_0x3e7f1a(0xc4)),![];const _0x488cd8=_0x351bef[_0x3e7f1a(0xde)](existsSync,_0x351bef['fvFdm'](join,_0x351bef[_0x3e7f1a(0xdf)](getProjectRoot),_0x351bef['tkYSO']));let _0x55f28b;if(_0x354079)_0x55f28b=_0x354079;else{if(_0x488cd8)_0x55f28b=_0x351bef[_0x3e7f1a(0xd1)];else{console['log']('\x0a📦\x20Claude\x20Code\x20Plugin\x0a');const _0x301fa6=await _0x3aa7d9[_0x3e7f1a(0xc7)]([{'type':_0x351bef[_0x3e7f1a(0xe3)],'name':_0x3e7f1a(0xed),'message':_0x351bef[_0x3e7f1a(0xc5)],'choices':[{'name':_0x351bef['LQQJq'],'value':_0x3e7f1a(0xd0)},{'name':_0x351bef['RpfVR'],'value':_0x351bef['UVvVf']}],'default':'user'}]);_0x55f28b=_0x301fa6['pluginScope'];}}console[_0x3e7f1a(0xc6)]('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x55f28b+_0x3e7f1a(0xcf));const _0x5bc07a=await isMarketplaceAdded(_0x351bef[_0x3e7f1a(0xd8)]);let _0x329201=_0x5bc07a;if(_0x5bc07a)console['log'](_0x351bef[_0x3e7f1a(0xdd)]);else{const _0x4d8d27=await runClaudeCommand(['plugin',_0x3e7f1a(0xef),_0x351bef['qSNRH'],_0x351bef['OkRYf']]);!_0x4d8d27[_0x3e7f1a(0xd9)]?(console['error'](_0x3e7f1a(0xe6),_0x4d8d27['error']),console[_0x3e7f1a(0xc6)](_0x351bef[_0x3e7f1a(0xeb)]),console['log'](_0x351bef['KLJhR']),console['log'](_0x3e7f1a(0xd5)+_0x55f28b)):_0x329201=!![];}if(_0x329201){const _0x2564d6=await runClaudeCommand([_0x3e7f1a(0xe2),'install',_0x3e7f1a(0xe8),'--scope',_0x55f28b]);if(!_0x2564d6['success'])console[_0x3e7f1a(0xea)]('❌\x20Failed\x20to\x20install\x20plugin:',_0x2564d6['error']),console[_0x3e7f1a(0xc6)](_0x351bef[_0x3e7f1a(0xeb)]),console[_0x3e7f1a(0xc6)](_0x3e7f1a(0xd5)+_0x55f28b);else{console[_0x3e7f1a(0xc6)](_0x351bef[_0x3e7f1a(0xe0)]);const _0x5f502f=[_0x3e7f1a(0xe2),_0x351bef['kEfze'],_0x351bef['SLhfS']];_0x55f28b===_0x351bef[_0x3e7f1a(0xd1)]&&_0x5f502f['push']('--scope','project');const _0x5744b4=await runClaudeCommand(_0x5f502f,{'captureOutput':!![]}),_0x292d53=_0x5744b4[_0x3e7f1a(0xd3)]?.['includes']('already\x20enabled');!_0x5744b4['success']&&!_0x292d53?console['error'](_0x351bef[_0x3e7f1a(0xcb)],_0x5744b4[_0x3e7f1a(0xea)]):console[_0x3e7f1a(0xc6)]('✓\x20Claude\x20Code\x20plugin\x20enabled');}}return!![];}export async function ensureClaudeSkills(_0xe5a3e6){const _0xfe4b54=_0x52b2,_0x19ac35={'aHiqt':function(_0x437cf4,_0x389e0d,_0x1d20b9,_0x1137aa){return _0x437cf4(_0x389e0d,_0x1d20b9,_0x1137aa);},'tVSFG':function(_0x432ec3,_0x82cffe){return _0x432ec3(_0x82cffe);},'meYCh':'project','sfIgi':_0xfe4b54(0xc3),'TeQBU':function(_0x3e4566,_0x4adac5,_0x3f8e82){return _0x3e4566(_0x4adac5,_0x3f8e82);},'GHIPF':function(_0x206b01){return _0x206b01();},'nsebs':_0xfe4b54(0xd2),'UAitV':_0xfe4b54(0xf0)},_0x24a38a=existsSync(join(getSkillsDir('user'),_0xfe4b54(0xc3),_0xfe4b54(0xcd))),_0x4b6367=existsSync(_0x19ac35['aHiqt'](join,_0x19ac35[_0xfe4b54(0xe9)](getSkillsDir,_0x19ac35['meYCh']),_0x19ac35['sfIgi'],_0xfe4b54(0xcd)));if(_0x24a38a||_0x4b6367)return console['log'](_0xfe4b54(0xe4)),![];const _0x525d56=_0x19ac35['tVSFG'](existsSync,_0x19ac35[_0xfe4b54(0xc8)](join,_0x19ac35['GHIPF'](getProjectRoot),'.claude'));let _0x1425cd=!![];if(_0xe5a3e6)await skillup({'autoInstall':_0xe5a3e6,'suppressUsage':!![]});else{if(_0x525d56)await skillup({'autoInstall':_0x19ac35['meYCh'],'suppressUsage':!![]});else{const _0x5d072b=await _0x3aa7d9[_0xfe4b54(0xc7)]([{'type':_0x19ac35['nsebs'],'name':_0x19ac35[_0xfe4b54(0xce)],'message':'Would\x20you\x20like\x20to\x20install\x20skills?','default':!![]}]);_0x1425cd=_0x5d072b[_0xfe4b54(0xf0)],_0x1425cd&&await _0x19ac35[_0xfe4b54(0xe9)](skillup,{'suppressUsage':!![]});}}return _0x1425cd;}
@@ -1 +1 @@
1
- function _0x171a(_0x54751b,_0x1233bd){_0x54751b=_0x54751b-0x175;const _0xec529c=_0xec52();let _0x171ac4=_0xec529c[_0x54751b];return _0x171ac4;}function _0xec52(){const _0x406ae6=['120yliJNe','42980421CInOcc','4744xqsbwa','Where\x20should\x20the\x20plugin\x20be\x20installed?','rJJNO','2082279dUjNCU','$schema','20UganWy','opencode.json','ggABL','vzVcE','isArray','DEHez','https://opencode.ai/config.json','pluginScope','user','SirRT','Zjvdt','includes','dkZuD','prompt','igtzE','6210081aBXQkq','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','✓\x20OpenCode\x20plugin\x20already\x20configured','2WclspS','Xnslj','314363mkfMuz','13345080CnCdxO','7085vtOQCr','plugin','1450466TwHpAp','utf-8','nHRQp','stringify','NJbIV','LsDNy'];_0xec52=function(){return _0x406ae6;};return _0xec52();}(function(_0x5ab98c,_0x4d96ff){const _0x1219e7=_0x171a,_0x3aeee2=_0x5ab98c();while(!![]){try{const _0x55a3c3=-parseInt(_0x1219e7(0x18d))/0x1+parseInt(_0x1219e7(0x187))/0x2*(parseInt(_0x1219e7(0x198))/0x3)+parseInt(_0x1219e7(0x195))/0x4*(parseInt(_0x1219e7(0x18b))/0x5)+parseInt(_0x1219e7(0x193))/0x6*(-parseInt(_0x1219e7(0x189))/0x7)+-parseInt(_0x1219e7(0x18a))/0x8+-parseInt(_0x1219e7(0x184))/0x9*(parseInt(_0x1219e7(0x175))/0xa)+parseInt(_0x1219e7(0x194))/0xb;if(_0x55a3c3===_0x4d96ff)break;else _0x3aeee2['push'](_0x3aeee2['shift']());}catch(_0xe6e403){_0x3aeee2['push'](_0x3aeee2['shift']());}}}(_0xec52,0xd81af));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x1174b5 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x3eaa95){const _0x59e83b=_0x171a,_0x217ae5={'Zjvdt':function(_0x5008b5,_0x2a4223){return _0x5008b5(_0x2a4223);},'nHRQp':_0x59e83b(0x176),'rJJNO':'project','ggABL':'\x0a📦\x20OpenCode\x20Plugin\x0a','vzVcE':'list','rPpQy':_0x59e83b(0x17c),'igtzE':'User\x20(available\x20in\x20all\x20your\x20projects)','dkZuD':_0x59e83b(0x17d),'NJbIV':function(_0x1f57b7,_0x9f84de){return _0x1f57b7(_0x9f84de);},'CxIjx':'@ranger-testing/opencode-plugin','DEHez':_0x59e83b(0x17b),'XxSCR':_0x59e83b(0x18e),'SirRT':_0x59e83b(0x185),'Xnslj':'Failed\x20to\x20read\x20opencode.json','Qafwn':function(_0x17c2e5,_0x1ab51e,_0x32fb46){return _0x17c2e5(_0x1ab51e,_0x32fb46);},'LsDNy':function(_0x232fcc,_0x9fb06b){return _0x232fcc+_0x9fb06b;}},_0x28c41e=existsSync(join(_0x217ae5[_0x59e83b(0x17f)](getOpencodeConfigDir,'project'),_0x217ae5[_0x59e83b(0x18f)]));let _0x3054e9;if(_0x3eaa95)_0x3054e9=_0x3eaa95;else{if(_0x28c41e)_0x3054e9=_0x217ae5[_0x59e83b(0x197)];else{console['log'](_0x217ae5[_0x59e83b(0x177)]);const _0x9e5865=await _0x1174b5[_0x59e83b(0x182)]([{'type':_0x217ae5[_0x59e83b(0x178)],'name':_0x217ae5['rPpQy'],'message':_0x59e83b(0x196),'choices':[{'name':_0x217ae5[_0x59e83b(0x183)],'value':_0x217ae5[_0x59e83b(0x181)]},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x217ae5['rJJNO']}],'default':_0x59e83b(0x17d)}]);_0x3054e9=_0x9e5865['pluginScope'];}}const _0x487413=join(_0x217ae5[_0x59e83b(0x191)](getOpencodeConfigDir,_0x3054e9),_0x59e83b(0x176)),_0x25a4b3=_0x217ae5['CxIjx'],_0x36d4ae=_0x217ae5[_0x59e83b(0x17a)];let _0x9a102d={};if(existsSync(_0x487413))try{const _0xbad556=await readFile(_0x487413,_0x217ae5['XxSCR']);_0x9a102d=JSON['parse'](_0xbad556);}catch(_0x204362){return console['error'](_0x217ae5[_0x59e83b(0x17e)]),{'configured':![],'scope':_0x3054e9,'error':_0x217ae5[_0x59e83b(0x188)],'details':_0x204362};}const _0x14f11d=Array[_0x59e83b(0x179)](_0x9a102d[_0x59e83b(0x18c)])?_0x9a102d[_0x59e83b(0x18c)]:[];if(_0x14f11d[_0x59e83b(0x180)](_0x25a4b3))return console['log'](_0x59e83b(0x186)),{'configured':![],'scope':_0x3054e9};return _0x9a102d[_0x59e83b(0x199)]=_0x9a102d['$schema']||_0x36d4ae,_0x9a102d['plugin']=[..._0x14f11d,_0x25a4b3],await mkdir(getOpencodeConfigDir(_0x3054e9),{'recursive':!![]}),await _0x217ae5['Qafwn'](writeFile,_0x487413,_0x217ae5[_0x59e83b(0x192)](JSON[_0x59e83b(0x190)](_0x9a102d,null,0x2),'\x0a')),console['log']('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0x3054e9};}
1
+ (function(_0x2bc578,_0x4039c8){const _0x56f38f=_0x25d4,_0x1dc000=_0x2bc578();while(!![]){try{const _0x5b90f5=-parseInt(_0x56f38f(0xbd))/0x1*(parseInt(_0x56f38f(0xb3))/0x2)+parseInt(_0x56f38f(0xab))/0x3+parseInt(_0x56f38f(0xb6))/0x4+-parseInt(_0x56f38f(0xca))/0x5+-parseInt(_0x56f38f(0xbc))/0x6+-parseInt(_0x56f38f(0xc8))/0x7+parseInt(_0x56f38f(0xc2))/0x8*(parseInt(_0x56f38f(0xcc))/0x9);if(_0x5b90f5===_0x4039c8)break;else _0x1dc000['push'](_0x1dc000['shift']());}catch(_0x5357a9){_0x1dc000['push'](_0x1dc000['shift']());}}}(_0x2cc4,0xeac34));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x1b8780 from'inquirer';function _0x25d4(_0x499c3c,_0x116fc9){_0x499c3c=_0x499c3c-0xab;const _0x2cc49=_0x2cc4();let _0x25d448=_0x2cc49[_0x499c3c];return _0x25d448;}function _0x2cc4(){const _0x526608=['eJXDA','prompt','3297539vsEQqQ','https://opencode.ai/config.json','5149360RiMncS','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','738QiCNhq','5076210emwNPD','pWbog','includes','user','utf-8','pluginScope','nOnAL','Project\x20(shared\x20with\x20team\x20via\x20git)','695614SXcTrF','Ouvxi','\x0a📦\x20OpenCode\x20Plugin\x0a','529168QNplFc','plugin','sZxWy','kAzjK','MYBDg','log','4165902fUmMqm','2yzWwPg','qSTZJ','error','User\x20(available\x20in\x20all\x20your\x20projects)','opencode.json','197864PIZTHD','list','@ranger-testing/opencode-plugin','ckDfk'];_0x2cc4=function(){return _0x526608;};return _0x2cc4();}import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x15aedd){const _0x181851=_0x25d4,_0x5a7f40={'pWbog':'project','eJXDA':_0x181851(0xc1),'ckDfk':_0x181851(0xc3),'zECEl':'Where\x20should\x20the\x20plugin\x20be\x20installed?','PBAzH':_0x181851(0xc0),'NjLyQ':_0x181851(0xae),'MYBDg':_0x181851(0xb2),'sZxWy':function(_0x21c074,_0x31fd9b,_0x1018d8){return _0x21c074(_0x31fd9b,_0x1018d8);},'Ouvxi':function(_0x561f3e,_0x538a2e){return _0x561f3e(_0x538a2e);},'qSTZJ':_0x181851(0xc9),'kAzjK':function(_0x5b7c97,_0x2477ce){return _0x5b7c97(_0x2477ce);},'HdwZD':_0x181851(0xcb),'fMvZO':'Failed\x20to\x20read\x20opencode.json','nOnAL':function(_0x1c3c1e,_0x4b5959,_0x709801){return _0x1c3c1e(_0x4b5959,_0x709801);},'gXdhL':'✓\x20OpenCode\x20plugin\x20configured'},_0x2fce90=existsSync(join(getOpencodeConfigDir(_0x5a7f40['pWbog']),_0x5a7f40[_0x181851(0xc6)]));let _0x26b998;if(_0x15aedd)_0x26b998=_0x15aedd;else{if(_0x2fce90)_0x26b998=_0x5a7f40[_0x181851(0xac)];else{console['log'](_0x181851(0xb5));const _0x2c7e2a=await _0x1b8780[_0x181851(0xc7)]([{'type':_0x5a7f40[_0x181851(0xc5)],'name':_0x181851(0xb0),'message':_0x5a7f40['zECEl'],'choices':[{'name':_0x5a7f40['PBAzH'],'value':_0x5a7f40['NjLyQ']},{'name':_0x5a7f40[_0x181851(0xba)],'value':'project'}],'default':_0x5a7f40['NjLyQ']}]);_0x26b998=_0x2c7e2a['pluginScope'];}}const _0x2fdce6=_0x5a7f40[_0x181851(0xb8)](join,_0x5a7f40[_0x181851(0xb4)](getOpencodeConfigDir,_0x26b998),_0x181851(0xc1)),_0xfa3291=_0x181851(0xc4),_0x5b9fb7=_0x5a7f40[_0x181851(0xbe)];let _0x163cd7={};if(_0x5a7f40['kAzjK'](existsSync,_0x2fdce6))try{const _0x42ec79=await _0x5a7f40[_0x181851(0xb8)](readFile,_0x2fdce6,_0x181851(0xaf));_0x163cd7=JSON['parse'](_0x42ec79);}catch(_0x28d057){return console[_0x181851(0xbf)](_0x5a7f40['HdwZD']),{'configured':![],'scope':_0x26b998,'error':_0x5a7f40['fMvZO'],'details':_0x28d057};}const _0x3e3bfd=Array['isArray'](_0x163cd7[_0x181851(0xb7)])?_0x163cd7['plugin']:[];if(_0x3e3bfd[_0x181851(0xad)](_0xfa3291))return console['log']('✓\x20OpenCode\x20plugin\x20already\x20configured'),{'configured':![],'scope':_0x26b998};return _0x163cd7['$schema']=_0x163cd7['$schema']||_0x5b9fb7,_0x163cd7[_0x181851(0xb7)]=[..._0x3e3bfd,_0xfa3291],await mkdir(_0x5a7f40[_0x181851(0xb9)](getOpencodeConfigDir,_0x26b998),{'recursive':!![]}),await _0x5a7f40[_0x181851(0xb1)](writeFile,_0x2fdce6,JSON['stringify'](_0x163cd7,null,0x2)+'\x0a'),console[_0x181851(0xbb)](_0x5a7f40['gXdhL']),{'configured':!![],'scope':_0x26b998};}
@@ -1 +1 @@
1
- (function(_0x5a4271,_0x802acb){const _0xf13b89=_0x3c84,_0x530cc2=_0x5a4271();while(!![]){try{const _0x300356=parseInt(_0xf13b89(0x1a9))/0x1+-parseInt(_0xf13b89(0x1be))/0x2+parseInt(_0xf13b89(0x1aa))/0x3+-parseInt(_0xf13b89(0x1c3))/0x4+parseInt(_0xf13b89(0x1c8))/0x5*(parseInt(_0xf13b89(0x1c4))/0x6)+parseInt(_0xf13b89(0x1a5))/0x7+parseInt(_0xf13b89(0x1cf))/0x8;if(_0x300356===_0x802acb)break;else _0x530cc2['push'](_0x530cc2['shift']());}catch(_0x39af47){_0x530cc2['push'](_0x530cc2['shift']());}}}(_0x1aab,0xb1689));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';function _0x3c84(_0x47cd04,_0x2b96d1){_0x47cd04=_0x47cd04-0x19e;const _0x1aabc1=_0x1aab();let _0x3c8445=_0x1aabc1[_0x47cd04];return _0x3c8445;}import{saveSettings}from'./utils/settings.js';function _0x1aab(){const _0x5ed877=['PwILE','install','ranger@trailhead','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','afdSb','add','zMrrR','BYxAr','join','eeElJ','auth.json','7320131pRLHXm','skills','AgGfl','ONOlI','301713LhTgtK','2833341JTqTZH','map','trackPhaseEnd','gwgJf','path','CI\x20profile\x20\x22','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','dir_setup','profile_activate','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','uGtgL','error','✓\x20Auth\x20state\x20found','length','fJTXv','log','Failed\x20to\x20add\x20marketplace:','UvcSf','\x22:\x20','VvzGe','2511222PkNIpr','trackPhaseStart','OdBTW','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','Multiple\x20CI\x20profiles\x20found:\x20','3928616oubyMC','2364ZZCOxL','baseUrl','BMGdj','--scope','4270RbHvxX','KiOhT','zPTQx','jbqiJ','plugin','\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a','bSKmF','2688488LcIVph','name','project','tLWeL','message','WLqnW','isDirectory','QjawN','success','filter','azaXB','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)'];_0x1aab=function(){return _0x5ed877;};return _0x1aab();}import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x208280){const _0x1c74f4=_0x3c84,_0x10c3fd={'UvcSf':function(_0x3f0acb,_0x5cc943,_0x9ea2f6){return _0x3f0acb(_0x5cc943,_0x9ea2f6);},'AuqYr':function(_0xc37f85,_0x1569d9){return _0xc37f85(_0x1569d9);},'uGtgL':'No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','BYxAr':_0x1c74f4(0x1b0)},_0x47fe64=getRangerDir(),_0x24e258=join(_0x47fe64,'ci');if(_0x208280){const _0x3fb314=_0x10c3fd[_0x1c74f4(0x1bb)](join,_0x24e258,_0x208280);return{'name':_0x208280,'path':_0x3fb314};}if(!_0x10c3fd['AuqYr'](existsSync,_0x24e258))throw new Error(_0x10c3fd[_0x1c74f4(0x1b4)]+_0x10c3fd[_0x1c74f4(0x1a1)]);const _0x25fadb=await readdir(_0x24e258,{'withFileTypes':!![]}),_0x250504=_0x25fadb[_0x1c74f4(0x1d8)](_0x1a08e3=>_0x1a08e3[_0x1c74f4(0x1d5)]())[_0x1c74f4(0x1ab)](_0xbc10ec=>_0xbc10ec['name']);if(_0x250504[_0x1c74f4(0x1b7)]===0x0)throw new Error('No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a'+_0x10c3fd[_0x1c74f4(0x1a1)]);if(_0x250504['length']===0x1){const _0x4e5901=_0x250504[0x0];return console['log']('Auto-detected\x20CI\x20profile:\x20'+_0x4e5901),{'name':_0x4e5901,'path':join(_0x24e258,_0x4e5901)};}throw new Error(_0x1c74f4(0x1c2)+_0x250504[_0x1c74f4(0x1a2)](',\x20')+_0x1c74f4(0x1de));}async function installPluginNonInteractive(){const _0x353ad4=_0x3c84,_0x5c6250={'zPTQx':function(_0x4a21f2,_0x28c2a6){return _0x4a21f2(_0x28c2a6);},'OdBTW':'✓\x20Marketplace\x20already\x20added','ONOlI':'marketplace','QjawN':_0x353ad4(0x19f),'tLWeL':'ranger-testing/trailhead','OCvej':_0x353ad4(0x1ba)},_0x3e53b2=await isPluginInstalled(_0x353ad4(0x1dd));if(_0x3e53b2)return console['log']('✓\x20Claude\x20Code\x20plugin\x20already\x20installed'),![];console[_0x353ad4(0x1b9)]('Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...');const _0x40100a=await _0x5c6250[_0x353ad4(0x1ca)](isMarketplaceAdded,'trailhead');let _0x1170f6=_0x40100a;if(_0x40100a)console['log'](_0x5c6250[_0x353ad4(0x1c0)]);else{const _0x410afe=await runClaudeCommand([_0x353ad4(0x1cc),_0x5c6250[_0x353ad4(0x1a8)],_0x5c6250[_0x353ad4(0x1d6)],_0x5c6250[_0x353ad4(0x1d2)]]);!_0x410afe['success']?(console[_0x353ad4(0x1b5)](_0x5c6250['OCvej'],_0x410afe['error']),console['log'](_0x353ad4(0x1b3))):_0x1170f6=!![];}if(_0x1170f6){const _0x403901=await runClaudeCommand(['plugin',_0x353ad4(0x1dc),_0x353ad4(0x1dd),_0x353ad4(0x1c7),'project']);!_0x403901[_0x353ad4(0x1d7)]?(console['error']('Failed\x20to\x20install\x20plugin:',_0x403901[_0x353ad4(0x1b5)]),console[_0x353ad4(0x1b9)]('You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project')):console['log']('✓\x20Claude\x20Code\x20plugin\x20installed');}return!![];}export async function setupCi(_0xa86496,_0x50bc09,_0x3e9dca){const _0x513cb9=_0x3c84,_0x3b4dfc={'OeCSL':'\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','azaXB':'auth','afdSb':'dir_setup','AgGfl':function(_0xfabe01,_0x29c011){return _0xfabe01(_0x29c011);},'BBDXs':function(_0x273d53,_0x4846a4,_0x7ff8f8){return _0x273d53(_0x4846a4,_0x7ff8f8);},'KiOhT':'chromium','KGPLo':function(_0x4bc73a,_0x29678b){return _0x4bc73a(_0x29678b);},'HJfKo':'settings.json','fJTXv':function(_0x30d331,_0x29d783){return _0x30d331(_0x29d783);},'VvzGe':function(_0x3e3cfb,_0x23470d){return _0x3e3cfb(_0x23470d);},'zMrrR':'No\x20API\x20token\x20available\x20for\x20decryption','jbqiJ':function(_0x3d308c,_0x514fc3){return _0x3d308c(_0x514fc3);},'TLAkd':function(_0x39d801,_0x128701,_0x123c4a){return _0x39d801(_0x128701,_0x123c4a);},'eeElJ':_0x513cb9(0x1c1),'gwgJf':_0x513cb9(0x1b6),'WLqnW':function(_0x21d55b,_0x507ddd){return _0x21d55b(_0x507ddd);},'bSKmF':_0x513cb9(0x1b2),'PwILE':_0x513cb9(0x1cc),'CAcui':function(_0xca54a4,_0x45e86f){return _0xca54a4(_0x45e86f);},'BMGdj':'skills'};console[_0x513cb9(0x1b9)](_0x3b4dfc['OeCSL']),_0x3e9dca?.[_0x513cb9(0x1bf)](_0x3b4dfc[_0x513cb9(0x1d9)]),await authenticate(_0xa86496),_0x3e9dca?.[_0x513cb9(0x1ac)]('auth'),_0x3e9dca?.[_0x513cb9(0x1bf)](_0x3b4dfc[_0x513cb9(0x19e)]);const {path:_0x57afac,installed:_0x526b2d}=await ensureRangerDir();await writeRangerGitignore(_0x57afac);const _0x176b5d=join(_0x57afac,'sessions');!_0x3b4dfc[_0x513cb9(0x1a7)](existsSync,_0x176b5d)&&await _0x3b4dfc['BBDXs'](mkdir,_0x176b5d,{'recursive':!![]});_0x3e9dca?.['trackPhaseEnd'](_0x513cb9(0x1b1),{'installed':_0x526b2d}),_0x3e9dca?.['trackPhaseStart'](_0x3b4dfc[_0x513cb9(0x1c9)]);let _0xfd16d9=![];_0x50bc09?.['skipChromium']?console[_0x513cb9(0x1b9)]('✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)'):_0xfd16d9=await ensureChromium();_0x3e9dca?.['trackPhaseEnd'](_0x3b4dfc[_0x513cb9(0x1c9)],{'installed':_0xfd16d9,'skipped':!!_0x50bc09?.['skipChromium']}),_0x3e9dca?.['trackPhaseStart']('profile_activate');const _0x7d5a1c=await _0x3b4dfc['KGPLo'](findCiProfile,_0x50bc09?.['profile']);let _0xfe5b67=![];_0x50bc09?.['baseUrl']&&(await mkdir(_0x7d5a1c['path'],{'recursive':!![]}),await saveSettings(_0x7d5a1c[_0x513cb9(0x1d0)],{'baseUrl':_0x50bc09['baseUrl'],'headless':!![]}),console['log']('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x50bc09[_0x513cb9(0x1c5)]),_0xfe5b67=!![]);const _0x3ee336=join(_0x7d5a1c['path'],_0x3b4dfc['HJfKo']);if(!_0x3b4dfc['fJTXv'](existsSync,_0x3ee336)&&!_0xfe5b67)throw new Error(_0x513cb9(0x1af)+_0x7d5a1c[_0x513cb9(0x1d0)]+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x522a4e=join(_0x7d5a1c['path'],_0x513cb9(0x1a4)),_0x47e727=join(_0x7d5a1c[_0x513cb9(0x1ae)],'auth.json.enc'),_0x165435=_0x3b4dfc[_0x513cb9(0x1a7)](existsSync,_0x522a4e),_0x3c64f5=_0x3b4dfc[_0x513cb9(0x1bd)](existsSync,_0x47e727);if(_0x3c64f5)try{const _0x4f57ee=await getToken();if(!_0x4f57ee)throw new Error(_0x3b4dfc[_0x513cb9(0x1a0)]);const _0x234277=await _0x3b4dfc[_0x513cb9(0x1cb)](readFile,_0x47e727);_0x3b4dfc['TLAkd'](decrypt,_0x234277,_0x4f57ee),console[_0x513cb9(0x1b9)](_0x3b4dfc[_0x513cb9(0x1a3)]);}catch(_0x246167){const _0x2fe794=_0x246167 instanceof Error?_0x246167[_0x513cb9(0x1d3)]:_0x3b4dfc[_0x513cb9(0x1b8)](String,_0x246167);throw new Error('Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22'+_0x7d5a1c[_0x513cb9(0x1d0)]+_0x513cb9(0x1bc)+_0x2fe794);}else _0x165435?console[_0x513cb9(0x1b9)](_0x3b4dfc[_0x513cb9(0x1ad)]):console[_0x513cb9(0x1b9)](_0x513cb9(0x1da));await _0x3b4dfc[_0x513cb9(0x1d4)](writeActiveProfileName,_0x7d5a1c[_0x513cb9(0x1d0)]),console[_0x513cb9(0x1b9)]('✓\x20Active\x20profile:\x20'+_0x7d5a1c['name']),_0x3e9dca?.['trackPhaseEnd'](_0x3b4dfc[_0x513cb9(0x1ce)],{'profileName':_0x7d5a1c['name'],'hasAuth':_0x165435,'hasEncryptedAuth':_0x3c64f5,'createdSettings':_0xfe5b67}),_0x3e9dca?.['trackPhaseStart'](_0x3b4dfc[_0x513cb9(0x1db)]);const _0x26442c=await installPluginNonInteractive();_0x3e9dca?.[_0x513cb9(0x1ac)](_0x3b4dfc[_0x513cb9(0x1db)],{'installed':_0x26442c}),_0x3e9dca?.[_0x513cb9(0x1bf)](_0x513cb9(0x1a6)),await _0x3b4dfc['CAcui'](skillup,{'autoInstall':_0x513cb9(0x1d1)}),_0x3e9dca?.['trackPhaseEnd'](_0x3b4dfc[_0x513cb9(0x1c6)]),console[_0x513cb9(0x1b9)](_0x513cb9(0x1cd));}
1
+ (function(_0x2ef66d,_0x1157da){const _0x2cb558=_0x3756,_0x5f0aae=_0x2ef66d();while(!![]){try{const _0x35a575=-parseInt(_0x2cb558(0x17c))/0x1+parseInt(_0x2cb558(0x1ae))/0x2+parseInt(_0x2cb558(0x19b))/0x3+parseInt(_0x2cb558(0x1a6))/0x4*(parseInt(_0x2cb558(0x182))/0x5)+-parseInt(_0x2cb558(0x1b6))/0x6*(parseInt(_0x2cb558(0x1a7))/0x7)+parseInt(_0x2cb558(0x180))/0x8+-parseInt(_0x2cb558(0x1b1))/0x9;if(_0x35a575===_0x1157da)break;else _0x5f0aae['push'](_0x5f0aae['shift']());}catch(_0x3bb0d7){_0x5f0aae['push'](_0x5f0aae['shift']());}}}(_0x3e59,0x5edad));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';function _0x3756(_0x307ce0,_0x5be03d){_0x307ce0=_0x307ce0-0x179;const _0x3e5916=_0x3e59();let _0x375690=_0x3e5916[_0x307ce0];return _0x375690;}import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';function _0x3e59(){const _0x70b697=['132YRJSvY','1456CRvpAD','--scope','SmedM','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','trackPhaseStart','Failed\x20to\x20install\x20plugin:','ANQQL','970654cATuhR','Failed\x20to\x20add\x20marketplace:','uWryR','3862557YKiePD','LPzRF','message','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','success','396rbQHpe','dir_setup','nLfRp','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','CI\x20profile\x20\x22','266656VqGxfs','map','No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','LGXsU','189936swzvkG','No\x20API\x20token\x20available\x20for\x20decryption','11485kNNnLs','ranger@trailhead','error','trailhead','Multiple\x20CI\x20profiles\x20found:\x20','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','✓\x20Claude\x20Code\x20plugin\x20installed','length','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','plugin','install','kccti','profile','wkosc','skills','trackPhaseEnd','Auto-detected\x20CI\x20profile:\x20','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','skipChromium','huQhm','sessions','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','LAnlz','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','1539636Wrmfhj','evOHt','name','HtGUq','path','settings.json','log','LJjlQ','mOxrN','✓\x20Created\x20profile\x20settings:\x20baseUrl=','jIqlG'];_0x3e59=function(){return _0x70b697;};return _0x3e59();}import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x4a624c){const _0x1b7af1=_0x3756,_0x494293={'nGKDA':function(_0x14b264,_0x2cd360,_0x29a154){return _0x14b264(_0x2cd360,_0x29a154);},'ANQQL':function(_0x39b705,_0x2e37fb){return _0x39b705+_0x2e37fb;},'kccti':function(_0x208e65,_0xb5de7c,_0x35256f){return _0x208e65(_0xb5de7c,_0x35256f);}},_0x454eda=getRangerDir(),_0x350e87=join(_0x454eda,'ci');if(_0x4a624c){const _0x339803=_0x494293['nGKDA'](join,_0x350e87,_0x4a624c);return{'name':_0x4a624c,'path':_0x339803};}if(!existsSync(_0x350e87))throw new Error(_0x494293[_0x1b7af1(0x1ad)](_0x1b7af1(0x17e),'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.'));const _0x108db0=await readdir(_0x350e87,{'withFileTypes':!![]}),_0x50f1c9=_0x108db0['filter'](_0x5077d8=>_0x5077d8['isDirectory']())[_0x1b7af1(0x17d)](_0x1fcb15=>_0x1fcb15[_0x1b7af1(0x19d)]);if(_0x50f1c9[_0x1b7af1(0x189)]===0x0)throw new Error(_0x1b7af1(0x18a)+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');if(_0x50f1c9['length']===0x1){const _0x11eb94=_0x50f1c9[0x0];return console['log'](_0x1b7af1(0x193)+_0x11eb94),{'name':_0x11eb94,'path':_0x494293[_0x1b7af1(0x18e)](join,_0x350e87,_0x11eb94)};}throw new Error(_0x1b7af1(0x186)+_0x50f1c9['join'](',\x20')+_0x1b7af1(0x198));}async function installPluginNonInteractive(){const _0x1165de=_0x3756,_0x209e69={'SmedM':function(_0x57a856,_0x27f252){return _0x57a856(_0x27f252);},'mEaZv':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','LPzRF':_0x1165de(0x17a),'efUJe':'✓\x20Marketplace\x20already\x20added','nLfRp':_0x1165de(0x18c),'cFEYc':'marketplace','wkosc':_0x1165de(0x1af),'BUHJF':'ranger@trailhead','uWryR':_0x1165de(0x19a),'HlMZV':_0x1165de(0x188)},_0x335172=await _0x209e69[_0x1165de(0x1a9)](isPluginInstalled,_0x1165de(0x183));if(_0x335172)return console[_0x1165de(0x1a1)](_0x209e69['mEaZv']),![];console['log'](_0x209e69[_0x1165de(0x1b2)]);const _0x2c0181=await isMarketplaceAdded(_0x1165de(0x185));let _0x28778e=_0x2c0181;if(_0x2c0181)console['log'](_0x209e69['efUJe']);else{const _0x473ac0=await _0x209e69['SmedM'](runClaudeCommand,[_0x209e69[_0x1165de(0x179)],_0x209e69['cFEYc'],'add','ranger-testing/trailhead']);!_0x473ac0[_0x1165de(0x1b5)]?(console['error'](_0x209e69[_0x1165de(0x190)],_0x473ac0[_0x1165de(0x184)]),console[_0x1165de(0x1a1)](_0x1165de(0x1aa))):_0x28778e=!![];}if(_0x28778e){const _0x1d4155=await _0x209e69[_0x1165de(0x1a9)](runClaudeCommand,['plugin',_0x1165de(0x18d),_0x209e69['BUHJF'],_0x1165de(0x1a8),'project']);!_0x1d4155[_0x1165de(0x1b5)]?(console['error'](_0x1165de(0x1ac),_0x1d4155['error']),console['log'](_0x209e69[_0x1165de(0x1b0)])):console[_0x1165de(0x1a1)](_0x209e69['HlMZV']);}return!![];}export async function setupCi(_0x2ece35,_0xe5d09e,_0x4b44c6){const _0x2850bd=_0x3756,_0x52211e={'FLiBT':'\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','LJjlQ':'auth','JLorN':function(_0x2ae9dd,_0x3977c1){return _0x2ae9dd(_0x3977c1);},'niOIJ':'chromium','CVWZk':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','mOxrN':function(_0x26dce3){return _0x26dce3();},'jIqlG':function(_0x1ad19d,_0x250054,_0xca2dd){return _0x1ad19d(_0x250054,_0xca2dd);},'LGXsU':'auth.json','HtGUq':function(_0x363f9a,_0xa8cbe9){return _0x363f9a(_0xa8cbe9);},'evOHt':function(_0x1086e,_0x1dd645){return _0x1086e(_0x1dd645);},'Hvdph':'profile_activate','LAnlz':'plugin','dOEOS':'project','huQhm':_0x2850bd(0x191)};console['log'](_0x52211e['FLiBT']),_0x4b44c6?.['trackPhaseStart'](_0x52211e['LJjlQ']),await _0x52211e['JLorN'](authenticate,_0x2ece35),_0x4b44c6?.['trackPhaseEnd'](_0x52211e[_0x2850bd(0x1a2)]),_0x4b44c6?.['trackPhaseStart'](_0x2850bd(0x1b7));const {path:_0x3eaf02,installed:_0x459a14}=await ensureRangerDir();await writeRangerGitignore(_0x3eaf02);const _0x2c9762=join(_0x3eaf02,_0x2850bd(0x197));!existsSync(_0x2c9762)&&await mkdir(_0x2c9762,{'recursive':!![]});_0x4b44c6?.[_0x2850bd(0x192)]('dir_setup',{'installed':_0x459a14}),_0x4b44c6?.[_0x2850bd(0x1ab)](_0x52211e['niOIJ']);let _0x2b92ba=![];_0xe5d09e?.['skipChromium']?console['log'](_0x52211e['CVWZk']):_0x2b92ba=await _0x52211e['mOxrN'](ensureChromium);_0x4b44c6?.['trackPhaseEnd']('chromium',{'installed':_0x2b92ba,'skipped':!!_0xe5d09e?.[_0x2850bd(0x195)]}),_0x4b44c6?.['trackPhaseStart']('profile_activate');const _0xdf5c0d=await findCiProfile(_0xe5d09e?.[_0x2850bd(0x18f)]);let _0x8514a9=![];_0xe5d09e?.['baseUrl']&&(await mkdir(_0xdf5c0d[_0x2850bd(0x19f)],{'recursive':!![]}),await _0x52211e[_0x2850bd(0x1a5)](saveSettings,_0xdf5c0d['name'],{'baseUrl':_0xe5d09e['baseUrl'],'headless':!![]}),console[_0x2850bd(0x1a1)](_0x2850bd(0x1a4)+_0xe5d09e['baseUrl']),_0x8514a9=!![]);const _0x1726a7=_0x52211e['jIqlG'](join,_0xdf5c0d['path'],_0x2850bd(0x1a0));if(!existsSync(_0x1726a7)&&!_0x8514a9)throw new Error(_0x2850bd(0x17b)+_0xdf5c0d['name']+_0x2850bd(0x1b4));const _0x3beea2=_0x52211e[_0x2850bd(0x1a5)](join,_0xdf5c0d[_0x2850bd(0x19f)],_0x52211e[_0x2850bd(0x17f)]),_0x291cdc=join(_0xdf5c0d[_0x2850bd(0x19f)],'auth.json.enc'),_0x495ec7=_0x52211e['HtGUq'](existsSync,_0x3beea2),_0x1d1e31=_0x52211e['HtGUq'](existsSync,_0x291cdc);if(_0x1d1e31)try{const _0x48bb26=await getToken();if(!_0x48bb26)throw new Error(_0x2850bd(0x181));const _0x2b2dc6=await _0x52211e[_0x2850bd(0x19e)](readFile,_0x291cdc);_0x52211e['jIqlG'](decrypt,_0x2b2dc6,_0x48bb26),console['log'](_0x2850bd(0x18b));}catch(_0x4382f3){const _0x5e7aad=_0x4382f3 instanceof Error?_0x4382f3[_0x2850bd(0x1b3)]:String(_0x4382f3);throw new Error(_0x2850bd(0x187)+_0xdf5c0d[_0x2850bd(0x19d)]+'\x22:\x20'+_0x5e7aad);}else _0x495ec7?console['log']('✓\x20Auth\x20state\x20found'):console['log'](_0x2850bd(0x194));await _0x52211e[_0x2850bd(0x19c)](writeActiveProfileName,_0xdf5c0d[_0x2850bd(0x19d)]),console[_0x2850bd(0x1a1)]('✓\x20Active\x20profile:\x20'+_0xdf5c0d[_0x2850bd(0x19d)]),_0x4b44c6?.['trackPhaseEnd'](_0x52211e['Hvdph'],{'profileName':_0xdf5c0d['name'],'hasAuth':_0x495ec7,'hasEncryptedAuth':_0x1d1e31,'createdSettings':_0x8514a9}),_0x4b44c6?.[_0x2850bd(0x1ab)](_0x52211e[_0x2850bd(0x199)]);const _0x35b415=await _0x52211e[_0x2850bd(0x1a3)](installPluginNonInteractive);_0x4b44c6?.['trackPhaseEnd']('plugin',{'installed':_0x35b415}),_0x4b44c6?.['trackPhaseStart'](_0x2850bd(0x191)),await _0x52211e[_0x2850bd(0x19c)](skillup,{'autoInstall':_0x52211e['dOEOS']}),_0x4b44c6?.['trackPhaseEnd'](_0x52211e[_0x2850bd(0x196)]),console[_0x2850bd(0x1a1)]('\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a');}
@@ -1 +1 @@
1
- (function(_0x2def90,_0x204f2b){const _0x2f16d5=_0x7f36,_0x25e3be=_0x2def90();while(!![]){try{const _0x230e23=parseInt(_0x2f16d5(0x88))/0x1+-parseInt(_0x2f16d5(0x83))/0x2+-parseInt(_0x2f16d5(0x87))/0x3*(parseInt(_0x2f16d5(0xa1))/0x4)+-parseInt(_0x2f16d5(0xa6))/0x5+-parseInt(_0x2f16d5(0x84))/0x6*(-parseInt(_0x2f16d5(0x98))/0x7)+-parseInt(_0x2f16d5(0x95))/0x8*(-parseInt(_0x2f16d5(0x91))/0x9)+parseInt(_0x2f16d5(0x97))/0xa;if(_0x230e23===_0x204f2b)break;else _0x25e3be['push'](_0x25e3be['shift']());}catch(_0x58f7f5){_0x25e3be['push'](_0x25e3be['shift']());}}}(_0xd17a,0xf0c31));import{basename}from'path';import _0x535f96 from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';function _0xd17a(){const _0x36becd=['autoInstall','/skills/','\x0a📦\x20Installing\x20skills...\x0a','All\x20projects\x20(','VgOiX','18ZstLcu','installLevel','iwADX','XlMkt','1787064jOOUeD','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','14564780NjZbfX','16401UNoJnk','jtshY','fLuDn','vDBJL','prompt','user-level','MLrrQ','leWPf','isTTY','49884zsUgco','siPEA','/.claude/skills/','ZLsGa','\x0a✅\x20Installed\x20','6382860GFHDQI','list','log','JJRlx','opencode','\x20successfully!\x0a','✓\x20Found\x20API\x20token','project-level','DLmwt','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','nUQNB','2408954RMTQTY','1662cLPNUv','\x20\x203.\x20Run:\x20ranger\x20skillup','\x20--opencode','12kqQwSZ','964839PJgiDh','user','suppressUsage','eNvJq'];_0xd17a=function(){return _0x36becd;};return _0xd17a();}import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';function _0x7f36(_0x24b289,_0x356735){_0x24b289=_0x24b289-0x7f;const _0xd17ab0=_0xd17a();let _0x7f3653=_0xd17ab0[_0x24b289];return _0x7f3653;}export async function skillup(_0x250cd0={}){const _0x4d6c50=_0x7f36,_0x2cc64c={'JJRlx':'\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','ZLsGa':'claude','nUQNB':'❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','GECZI':'To\x20get\x20started:','fLuDn':'\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','XlMkt':function(_0x2c9df8,_0x26aa65){return _0x2c9df8===_0x26aa65;},'zYDBF':'opencode','DLmwt':function(_0x243f13,_0x390c71){return _0x243f13===_0x390c71;},'leWPf':function(_0x32b733,_0x29349e){return _0x32b733(_0x29349e);},'xarvv':_0x4d6c50(0xa7),'VgOiX':'Where\x20should\x20skills\x20be\x20installed?','NZSOJ':function(_0x4c7d11,_0x3c9f0a,_0x1c017d){return _0x4c7d11(_0x3c9f0a,_0x1c017d);},'MLrrQ':'ranger','MGVXv':_0x4d6c50(0x96),'eNvJq':function(_0x289be7,_0x5703ed){return _0x289be7 instanceof _0x5703ed;},'aVcCj':function(_0x10f487,_0x56c9b7){return _0x10f487>_0x56c9b7;},'vDBJL':_0x4d6c50(0x9d),'siPEA':_0x4d6c50(0x7f),'OOCaA':'To\x20use:','jtshY':'\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','iwADX':'\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'](_0x2cc64c[_0x4d6c50(0xa9)]);const _0x2ba633=_0x250cd0['platform']??_0x2cc64c[_0x4d6c50(0xa4)],_0x21d4a4=await getToken();if(!_0x21d4a4){console[_0x4d6c50(0xa8)](_0x2cc64c[_0x4d6c50(0x82)]),console[_0x4d6c50(0xa8)](_0x2cc64c['GECZI']),console[_0x4d6c50(0xa8)](_0x2cc64c[_0x4d6c50(0x9a)]),console[_0x4d6c50(0xa8)]('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x2cc64c['XlMkt'](_0x2ba633,_0x2cc64c['zYDBF'])?_0x4d6c50(0x86):'')+'\x20<your-api-token>'),console['log'](_0x4d6c50(0x85)+(_0x2cc64c[_0x4d6c50(0x80)](_0x2ba633,'opencode')?_0x4d6c50(0x86):'')+'\x0a');return;}console[_0x4d6c50(0xa8)](_0x4d6c50(0xac));const _0xcd782a=getProjectRoot(),_0x482a09=_0x2cc64c[_0x4d6c50(0x9f)](basename,_0xcd782a),_0x13517a=_0x2ba633===_0x2cc64c['zYDBF']?_0x2cc64c['leWPf'](getOpencodeConfigDir,'user')+'/skills/':getClaudeConfigDir()+_0x4d6c50(0x8d),_0x58f685=_0x2ba633===_0x2cc64c['zYDBF']?_0xcd782a+'/.opencode/skills/':_0xcd782a+_0x4d6c50(0xa3),_0x53633f=process['stdin']['isTTY']&&process['stdout'][_0x4d6c50(0xa0)];let _0xe6d20b;if(_0x250cd0['autoInstall'])_0xe6d20b=_0x250cd0[_0x4d6c50(0x8c)];else{if(_0x53633f){const _0x5634d7=await _0x535f96[_0x4d6c50(0x9c)]([{'type':_0x2cc64c['xarvv'],'name':'installLevel','message':_0x2cc64c[_0x4d6c50(0x90)],'choices':[{'name':_0x4d6c50(0x8f)+_0x13517a+')','value':_0x4d6c50(0x89)},{'name':'This\x20project\x20only\x20('+_0x58f685+')','value':'project'}]}]);_0xe6d20b=_0x5634d7[_0x4d6c50(0x92)];}else _0xe6d20b='project',console[_0x4d6c50(0xa8)](_0x4d6c50(0x81)+_0x58f685+')');}let _0x3998fa=0x0;const _0xc1a1c3=getCurrentVersion();console['log'](_0x4d6c50(0x8e));try{const _0x31c987=await _0x2cc64c['NZSOJ'](installSkill,_0x2cc64c[_0x4d6c50(0x9e)],{'cliVersion':_0xc1a1c3,'level':_0xe6d20b,'platform':_0x2ba633});_0x31c987&&_0x3998fa++;}catch(_0x2a5ee6){console['warn'](_0x2cc64c['MGVXv'],_0x2cc64c[_0x4d6c50(0x8b)](_0x2a5ee6,Error)?_0x2a5ee6['message']:_0x2a5ee6);}if(_0x2cc64c['aVcCj'](_0x3998fa,0x0)){const _0xf7fa01=_0xe6d20b===_0x4d6c50(0x89)?_0x2cc64c[_0x4d6c50(0x9b)]:_0x2cc64c[_0x4d6c50(0xa2)];console['log'](_0x4d6c50(0xa5)+_0x3998fa+'\x20'+_0xf7fa01+'\x20skill'+(_0x3998fa>0x1?'s':'')+_0x4d6c50(0xab)),!_0x250cd0[_0x4d6c50(0x8a)]&&(console['log'](_0x2cc64c['OOCaA']),_0x2cc64c[_0x4d6c50(0x94)](_0x2ba633,_0x4d6c50(0xaa))?console['log'](_0x2cc64c[_0x4d6c50(0x99)]):console['log'](_0x2cc64c[_0x4d6c50(0x93)]));}else console['log']('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}
1
+ (function(_0x90050f,_0x54e35f){const _0x22b214=_0x5774,_0xf3eaa=_0x90050f();while(!![]){try{const _0x4f4f29=parseInt(_0x22b214(0xf8))/0x1*(-parseInt(_0x22b214(0xff))/0x2)+parseInt(_0x22b214(0x10b))/0x3+parseInt(_0x22b214(0x111))/0x4+parseInt(_0x22b214(0x102))/0x5*(parseInt(_0x22b214(0x117))/0x6)+parseInt(_0x22b214(0x119))/0x7+-parseInt(_0x22b214(0x11f))/0x8*(-parseInt(_0x22b214(0x112))/0x9)+-parseInt(_0x22b214(0x116))/0xa;if(_0x4f4f29===_0x54e35f)break;else _0xf3eaa['push'](_0xf3eaa['shift']());}catch(_0x4a03ed){_0xf3eaa['push'](_0xf3eaa['shift']());}}}(_0xf57b,0x8affb));import{basename}from'path';import _0x255bea from'inquirer';import{getToken}from'./utils/keychain.js';function _0x5774(_0x3c7fc0,_0x3010c4){_0x3c7fc0=_0x3c7fc0-0xf8;const _0xf57bf3=_0xf57b();let _0x5774ef=_0xf57bf3[_0x3c7fc0];return _0x5774ef;}import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';function _0xf57b(){const _0x13b555=['stdout','UedYS','/.opencode/skills/','stdin','sCAqF','suppressUsage','wGJjJ','mzLmh','2334606oRWkPN','IDGJj','To\x20get\x20started:','log','\x20\x203.\x20Run:\x20ranger\x20skillup','/skills/','995740obBDvn','45sbZUDt','claude','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','isTTY','29965180hzVCrp','12HSVkdo','UBkUt','7908383nboPCY','\x20--opencode','opencode','\x20skill','This\x20project\x20only\x20(','\x0a✅\x20Installed\x20','1710664jraYJS','8JgBfRD','ranger','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','godSU','autoInstall','All\x20projects\x20(','installLevel','68358iyotLa','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','message','1533045UZGMHr'];_0xf57b=function(){return _0x13b555;};return _0xf57b();}export async function skillup(_0x1a97ee={}){const _0x3a2d91=_0x5774,_0x42e38c={'dlPdv':function(_0x1aa513){return _0x1aa513();},'mqfws':'❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','IDGJj':function(_0x3e2ced,_0x585a3f){return _0x3e2ced===_0x585a3f;},'wGJjJ':'opencode','JZZqU':function(_0xece3db){return _0xece3db();},'igauI':'user','sCAqF':function(_0x1052d0){return _0x1052d0();},'harjZ':'list','UedYS':'Where\x20should\x20skills\x20be\x20installed?','UBkUt':'project','BaItr':'\x0a📦\x20Installing\x20skills...\x0a','GPAWN':function(_0x4ff6df,_0x519c4c){return _0x4ff6df instanceof _0x519c4c;},'mzLmh':'user-level','godSU':'project-level','jraSB':function(_0x2d7817,_0x5dd571){return _0x2d7817>_0x5dd571;},'NNtQq':'To\x20use:','EtRgi':_0x3a2d91(0xfa)};console['log']('\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a');const _0x2ffc87=_0x1a97ee['platform']??_0x3a2d91(0x113),_0x163273=await _0x42e38c['dlPdv'](getToken);if(!_0x163273){console[_0x3a2d91(0x10e)](_0x42e38c['mqfws']),console['log'](_0x3a2d91(0x10d)),console['log'](_0x3a2d91(0x114)),console['log']('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x2ffc87===_0x3a2d91(0x11b)?_0x3a2d91(0x11a):'')+'\x20<your-api-token>'),console['log'](_0x3a2d91(0x10f)+(_0x42e38c['IDGJj'](_0x2ffc87,_0x42e38c['wGJjJ'])?_0x3a2d91(0x11a):'')+'\x0a');return;}console[_0x3a2d91(0x10e)]('✓\x20Found\x20API\x20token');const _0xd78b4a=_0x42e38c['JZZqU'](getProjectRoot),_0x405642=basename(_0xd78b4a),_0x385395=_0x42e38c[_0x3a2d91(0x10c)](_0x2ffc87,_0x42e38c[_0x3a2d91(0x109)])?getOpencodeConfigDir(_0x42e38c['igauI'])+'/skills/':_0x42e38c[_0x3a2d91(0x107)](getClaudeConfigDir)+_0x3a2d91(0x110),_0x421b14=_0x2ffc87==='opencode'?_0xd78b4a+_0x3a2d91(0x105):_0xd78b4a+'/.claude/skills/',_0x2642de=process[_0x3a2d91(0x106)][_0x3a2d91(0x115)]&&process[_0x3a2d91(0x103)]['isTTY'];let _0x59792b;if(_0x1a97ee['autoInstall'])_0x59792b=_0x1a97ee[_0x3a2d91(0xfc)];else{if(_0x2642de){const _0x33713e=await _0x255bea['prompt']([{'type':_0x42e38c['harjZ'],'name':_0x3a2d91(0xfe),'message':_0x42e38c[_0x3a2d91(0x104)],'choices':[{'name':_0x3a2d91(0xfd)+_0x385395+')','value':'user'},{'name':_0x3a2d91(0x11d)+_0x421b14+')','value':_0x42e38c[_0x3a2d91(0x118)]}]}]);_0x59792b=_0x33713e[_0x3a2d91(0xfe)];}else _0x59792b='project',console['log']('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x421b14+')');}let _0x230595=0x0;const _0x305ac0=getCurrentVersion();console[_0x3a2d91(0x10e)](_0x42e38c['BaItr']);try{const _0x36e5ab=await installSkill(_0x3a2d91(0xf9),{'cliVersion':_0x305ac0,'level':_0x59792b,'platform':_0x2ffc87});_0x36e5ab&&_0x230595++;}catch(_0x3cccaf){console['warn'](_0x3a2d91(0x100),_0x42e38c['GPAWN'](_0x3cccaf,Error)?_0x3cccaf[_0x3a2d91(0x101)]:_0x3cccaf);}if(_0x230595>0x0){const _0x4afb2c=_0x42e38c['IDGJj'](_0x59792b,_0x42e38c['igauI'])?_0x42e38c[_0x3a2d91(0x10a)]:_0x42e38c[_0x3a2d91(0xfb)];console[_0x3a2d91(0x10e)](_0x3a2d91(0x11e)+_0x230595+'\x20'+_0x4afb2c+_0x3a2d91(0x11c)+(_0x42e38c['jraSB'](_0x230595,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x1a97ee[_0x3a2d91(0x108)]&&(console[_0x3a2d91(0x10e)](_0x42e38c['NNtQq']),_0x2ffc87===_0x42e38c[_0x3a2d91(0x109)]?console['log'](_0x42e38c['EtRgi']):console[_0x3a2d91(0x10e)]('\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'));}else console['log']('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}
@@ -1 +1 @@
1
- const _0x71eea3=_0x5c1b;(function(_0x1f271b,_0x1120bc){const _0x58d69b=_0x5c1b,_0x35b9bb=_0x1f271b();while(!![]){try{const _0x281d35=parseInt(_0x58d69b(0x171))/0x1*(-parseInt(_0x58d69b(0x174))/0x2)+parseInt(_0x58d69b(0x168))/0x3+-parseInt(_0x58d69b(0x17a))/0x4*(parseInt(_0x58d69b(0x150))/0x5)+parseInt(_0x58d69b(0x165))/0x6+parseInt(_0x58d69b(0x16f))/0x7+-parseInt(_0x58d69b(0x13e))/0x8+parseInt(_0x58d69b(0x15d))/0x9*(parseInt(_0x58d69b(0x139))/0xa);if(_0x281d35===_0x1120bc)break;else _0x35b9bb['push'](_0x35b9bb['shift']());}catch(_0x1a9a7d){_0x35b9bb['push'](_0x35b9bb['shift']());}}}(_0x2ac9,0x37633));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x3e4f72 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';function _0x5c1b(_0x20c1d0,_0x2769b9){_0x20c1d0=_0x20c1d0-0x11c;const _0x2ac9bc=_0x2ac9();let _0x5c1bae=_0x2ac9bc[_0x20c1d0];return _0x5c1bae;}import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url),bold=_0x17fbea=>'\x1b[1m'+_0x17fbea+_0x71eea3(0x17b);function getPlaywrightVersion(){const _0xe40a73=_0x71eea3,_0x17a9ab={'iTkxq':_0xe40a73(0x126)};try{const _0x142e16=require[_0xe40a73(0x14a)](_0x17a9ab[_0xe40a73(0x11f)]),_0x321280=require(_0x142e16);return _0x321280['version'];}catch{return null;}}function installChromiumBinary(_0x4bc58f){const _0x5efc50=_0x71eea3,_0x219ddc={'cWIuT':'install','AxJJh':'chromium','tmlZI':function(_0x3547b7,_0x4ba746){return _0x3547b7===_0x4ba746;},'bEhfr':'win32','GMiUB':_0x5efc50(0x183)};return new Promise((_0x542ba3,_0x37d4f8)=>{const _0x4c99ef=_0x5efc50,_0x1faa2a={'cNfOs':function(_0x362e5d,_0x4b0cc6){return _0x362e5d(_0x4b0cc6);},'UcCvi':function(_0x2a53ac,_0x22b6fc){return _0x2a53ac(_0x22b6fc);}},_0x2a4600=_0x4bc58f?[_0x4c99ef(0x169)+_0x4bc58f,_0x219ddc[_0x4c99ef(0x14d)],_0x219ddc[_0x4c99ef(0x137)]]:['playwright',_0x219ddc[_0x4c99ef(0x14d)],_0x219ddc[_0x4c99ef(0x137)]],_0x51004a=spawn(_0x4c99ef(0x166),_0x2a4600,{'stdio':'inherit','shell':_0x219ddc['tmlZI'](process['platform'],_0x219ddc['bEhfr'])});_0x51004a['on']('close',_0x40b049=>{const _0x55c666=_0x4c99ef;_0x40b049===0x0?_0x542ba3():_0x1faa2a['cNfOs'](_0x37d4f8,new Error(_0x55c666(0x177)+_0x40b049));}),_0x51004a['on'](_0x219ddc['GMiUB'],_0x45393b=>{_0x1faa2a['UcCvi'](_0x37d4f8,_0x45393b);});});}function _0x2ac9(){const _0x118f41=['vZDsK','2672316WFYIyT','npx','aaSnt','1163625KeXesk','playwright@','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','prompt','✓\x20.ranger/\x20directory\x20already\x20exists','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','ISxAH','2088877TOMsWU','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','3yEfzrk','\x20install\x20chromium','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','247414QNagWo','\x0aIn\x20Claude\x20Code,\x20run\x20','message','Installation\x20failed\x20with\x20exit\x20code\x20','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','PVBRO','3488onSFDx','\x1b[0m','fLXYA','GITHUB_ENV','trackPhaseStart','rTcpQ','confirm','nECJo','LuXeW','error','qgoSf','trackPhaseEnd','executablePath','user','QKVPu','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','organizationName','dgMNv','OlhjK','\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','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','iDeVd','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','provided_token','FeBEZ','iTkxq','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','opencode','local','newTk','stdout','scope','playwright/package.json','aDCRw','auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to','No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.','success','url','.gitignore','.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.','LnIeX','allowInsecureLocalhost','✓\x20Local\x20profile\x20already\x20exists','DkGNH','skills','log','\x20\x20npx\x20playwright@','uIgLC','iaKCv','AxJJh','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','10lCEpNG','skipChromium','FsVDp','FQmAO','device_auth','2884952AvqFvF','✓\x20Created\x20.ranger/.gitignore','\x0a⚠\x20Skipping\x20Chromium\x20installation.','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','✓\x20Created\x20.ranger/\x20directory','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','\x20\x20npx\x20playwright\x20install\x20chromium','stdin','/ranger:enable','IdWAB','The\x20required\x20version\x20(','JVeLH','resolve','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','ready','cWIuT',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','\x0a🚀\x20Ranger\x20Setup\x0a','1515vGLbjq','cHkFg','plugin','✓\x20Exported\x20credentials\x20for\x20CI','method','trackPhaseError','tfAsj','auth','git_check','Authentication\x20failed:\x20','chromium','bIHUM','ranger\x20profile\x20add\x20local','820359neQRuG','✓\x20Authenticated\x20to\x20','isTTY','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','use\x20until\x20the\x20session\x20expires.\x0a','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.'];_0x2ac9=function(){return _0x118f41;};return _0x2ac9();}export async function authenticate(_0x2f1cd2){const _0x25e8b2=_0x71eea3,_0x38020c={'YBRkf':'existing_token','gjbED':function(_0x15cd64){return _0x15cd64();},'IdWAB':function(_0x594c97,_0x3776dc){return _0x594c97(_0x3776dc);},'syrMF':_0x25e8b2(0x13d),'Monfj':'Validating\x20API\x20token...','FeBEZ':_0x25e8b2(0x153),'aqHQv':'✓\x20Stored\x20credentials\x20locally'};if(!_0x2f1cd2){const _0x4405ad=await getToken();if(_0x4405ad){const _0x14995e=await getCurrentUser(_0x4405ad);if(_0x14995e[_0x25e8b2(0x12a)])return console['log']('✓\x20Already\x20authenticated\x20to\x20'+_0x14995e[_0x25e8b2(0x187)][_0x25e8b2(0x18a)]),{'token':_0x4405ad,'method':_0x38020c['YBRkf']};}try{_0x2f1cd2=await _0x38020c['gjbED'](runDeviceAuthFlow);}catch(_0x27f6e2){throw new Error(_0x25e8b2(0x159)+(_0x27f6e2 instanceof Error?_0x27f6e2['message']:_0x27f6e2));}const _0x3957f4=await _0x38020c[_0x25e8b2(0x147)](getCurrentUser,_0x2f1cd2);if(!_0x3957f4[_0x25e8b2(0x12a)])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x3957f4[_0x25e8b2(0x183)]);return console[_0x25e8b2(0x133)]('✓\x20Authenticated\x20to\x20'+_0x3957f4['user'][_0x25e8b2(0x18a)]),{'token':_0x2f1cd2,'method':_0x38020c['syrMF']};}console[_0x25e8b2(0x133)](_0x38020c['Monfj']);const _0x331e21=await getCurrentUser(_0x2f1cd2);if(!_0x331e21['success']){if(_0x331e21['status'])throw new Error('Authentication\x20failed:\x20'+_0x331e21['error']+_0x25e8b2(0x120));else throw new Error(_0x25e8b2(0x189)+_0x331e21['error']+_0x25e8b2(0x12d));}return console['log'](_0x25e8b2(0x15e)+_0x331e21['user'][_0x25e8b2(0x18a)]),await _0x38020c['IdWAB'](storeToken,_0x2f1cd2),console[_0x25e8b2(0x133)](process['env'][_0x25e8b2(0x17d)]?_0x38020c[_0x25e8b2(0x11e)]:_0x38020c['aqHQv']),{'token':_0x2f1cd2,'method':_0x25e8b2(0x11d)};}export async function ensureRangerDir(){const _0xcfa878=_0x71eea3,_0x2acc22={'PVBRO':function(_0x181fab,_0x588885,_0x361160){return _0x181fab(_0x588885,_0x361160);},'fLXYA':'.ranger','LnIeX':function(_0x13f273){return _0x13f273();},'aaSnt':function(_0x1d4878,_0xe6fa3d){return _0x1d4878(_0xe6fa3d);}},_0x20c13b=findGitRoot(),_0x4ff820=_0x20c13b?_0x2acc22[_0xcfa878(0x179)](join,_0x20c13b,_0x2acc22[_0xcfa878(0x17c)]):_0x2acc22[_0xcfa878(0x12e)](getRangerDir);return!_0x2acc22[_0xcfa878(0x167)](existsSync,_0x4ff820)?(await mkdir(_0x4ff820,{'recursive':!![]}),console[_0xcfa878(0x133)](_0xcfa878(0x142)),{'path':_0x4ff820,'installed':!![]}):(console[_0xcfa878(0x133)](_0xcfa878(0x16c)),{'path':_0x4ff820,'installed':![]});}export async function ensureChromium(){const _0x3e8fb9=_0x71eea3,_0x9bbb0c={'vZDsK':'✓\x20Playwright\x20Chromium\x20browser\x20found','DkGNH':_0x3e8fb9(0x18e),'rTcpQ':'\x0a❌\x20Failed\x20to\x20install\x20Chromium:'};let _0x83dd19=![];try{const _0x2f6556=chromium[_0x3e8fb9(0x186)]();_0x83dd19=existsSync(_0x2f6556);}catch{_0x83dd19=![];}if(_0x83dd19)return console['log'](_0x9bbb0c[_0x3e8fb9(0x164)]),![];const _0x416986=getPlaywrightVersion(),_0x50aee1=process['stdin']['isTTY']&&process[_0x3e8fb9(0x124)]['isTTY'];let _0x34080a=!![];if(_0x50aee1){const {install:_0x5ca53d}=await _0x3e4f72['prompt']([{'type':'confirm','name':'install','message':_0x416986?_0x3e8fb9(0x148)+_0x416986+_0x3e8fb9(0x14e):'The\x20required\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x34080a=_0x5ca53d;}else console['log']('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium'+(_0x416986?'\x20'+_0x416986:'')+'...');if(_0x34080a){console[_0x3e8fb9(0x133)]('\x0aInstalling\x20Chromium\x20browser...\x0a');try{await installChromiumBinary(_0x416986),console['log'](_0x9bbb0c[_0x3e8fb9(0x131)]);}catch(_0x16ffe8){console['error'](_0x9bbb0c[_0x3e8fb9(0x17f)],_0x16ffe8 instanceof Error?_0x16ffe8[_0x3e8fb9(0x176)]:_0x16ffe8),console[_0x3e8fb9(0x133)]('You\x20can\x20install\x20it\x20manually\x20by\x20running:'),_0x416986?console[_0x3e8fb9(0x133)]('\x20\x20npx\x20playwright@'+_0x416986+_0x3e8fb9(0x172)):console['log'](_0x3e8fb9(0x144));}}else console[_0x3e8fb9(0x133)](_0x3e8fb9(0x140)),console[_0x3e8fb9(0x133)](_0x3e8fb9(0x170)),_0x416986?console['log'](_0x3e8fb9(0x134)+_0x416986+_0x3e8fb9(0x172)):console[_0x3e8fb9(0x133)](_0x3e8fb9(0x144));return!![];}export async function writeRangerGitignore(_0x1841c5){const _0x4a37ea=_0x71eea3,_0x8f204f={'boVUQ':function(_0x20dbc5,_0x923d11,_0x3bc949){return _0x20dbc5(_0x923d11,_0x3bc949);}},_0x31a198=_0x8f204f['boVUQ'](join,_0x1841c5,_0x4a37ea(0x12c)),_0x53459a=_0x4a37ea(0x18d);await _0x8f204f['boVUQ'](writeFile,_0x31a198,_0x53459a),console[_0x4a37ea(0x133)](_0x4a37ea(0x13f));}function printProfileSetupLaterInstructions(){const _0x1e21e7=_0x71eea3,_0x2cb56d={'UVBAP':function(_0x374aaf,_0x4d6c28){return _0x374aaf(_0x4d6c28);},'LuXeW':'Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a'};console[_0x1e21e7(0x133)]('\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:'),console['log']('\x20\x20'+_0x2cb56d['UVBAP'](bold,_0x1e21e7(0x15c))),console['log'](_0x2cb56d[_0x1e21e7(0x182)]);}async function ensureLocalEnv(_0x52d278,_0xb69b23){const _0x4db52b=_0x71eea3,_0x1270e5={'BsKQa':function(_0x113683){return _0x113683();},'JVeLH':function(_0x3c50d0,_0x428947,_0x5a1e3c){return _0x3c50d0(_0x428947,_0x5a1e3c);},'bIHUM':'local','NBFvP':_0x4db52b(0x130),'nECJo':_0x4db52b(0x161),'vjDCK':_0x4db52b(0x128),'iaKCv':_0x4db52b(0x138),'blGXN':function(_0x540067){return _0x540067();},'QKVPu':function(_0x43db63,_0x2e8a88,_0x2ac49d,_0x128274){return _0x43db63(_0x2e8a88,_0x2ac49d,_0x128274);},'cqbRJ':function(_0xf7d10b,_0x13bb74){return _0xf7d10b instanceof _0x13bb74;}};if(!_0x1270e5['BsKQa'](findGitRoot))return console[_0x4db52b(0x133)]('⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.'),{'ready':![],'skipped':!![]};if(_0x1270e5[_0x4db52b(0x149)](findExistingEnv,_0x1270e5['bIHUM'],{'locations':[_0x1270e5[_0x4db52b(0x15b)]]}))return console[_0x4db52b(0x133)](_0x1270e5['NBFvP']),{'ready':!![],'skipped':![]};const _0xe23d8a=process['stdin'][_0x4db52b(0x15f)]&&process['stdout'][_0x4db52b(0x15f)];if(_0xe23d8a&&!_0x52d278?.[_0x4db52b(0x12b)]){console['log'](_0x1270e5[_0x4db52b(0x181)]),console['log']('to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind'),console[_0x4db52b(0x133)](_0x1270e5['vjDCK']),console['log'](_0x4db52b(0x162)),console[_0x4db52b(0x133)](_0x1270e5[_0x4db52b(0x136)]);const {wantsProfile:_0x17483d}=await _0x3e4f72[_0x4db52b(0x16b)]([{'type':_0x4db52b(0x180),'name':'wantsProfile','message':_0x4db52b(0x16d),'default':!![]}]);if(!_0x17483d)return _0x1270e5['blGXN'](printProfileSetupLaterInstructions),{'ready':![],'skipped':!![]};}try{return await _0x1270e5[_0x4db52b(0x188)](addEnv,_0x4db52b(0x122),{'url':_0x52d278?.['url'],'force':_0x52d278?.['force'],'allowInsecureLocalhost':_0x52d278?.[_0x4db52b(0x12f)]},_0xb69b23),{'ready':!![],'skipped':![]};}catch(_0x39088d){return console['error']('\x0a❌\x20Profile\x20setup\x20failed:',_0x1270e5['cqbRJ'](_0x39088d,Error)?_0x39088d['message']:_0x39088d),printProfileSetupLaterInstructions(),{'ready':![],'skipped':![]};}}export async function start(_0x1b493c,_0x1c8670,_0x3d5f12){const _0x54ae20=_0x71eea3,_0x3c5c78={'OlhjK':_0x54ae20(0x14f),'CudNy':_0x54ae20(0x163),'iDeVd':_0x54ae20(0x158),'aDCRw':function(_0x3a122d){return _0x3a122d();},'ISxAH':_0x54ae20(0x157),'dgMNv':function(_0x2d54fb,_0x28e411){return _0x2d54fb(_0x28e411);},'wZbJt':_0x54ae20(0x173),'VJOgq':_0x54ae20(0x15a),'uIgLC':_0x54ae20(0x11c),'newTk':'plugin','cHkFg':function(_0x53a82f,_0x855e12){return _0x53a82f&&_0x855e12;},'qgoSf':_0x54ae20(0x132),'gBTBt':function(_0x35e75f,_0x3ddd6e){return _0x35e75f instanceof _0x3ddd6e;},'mXvtt':function(_0x28bc41,_0x192b99){return _0x28bc41(_0x192b99);},'FsVDp':'ranger\x20profile\x20add\x20local','FQmAO':'profile','tfAsj':'and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','DwXnM':function(_0x7c479b,_0x503a07){return _0x7c479b+_0x503a07;}};console['log'](_0x3c5c78[_0x54ae20(0x18c)]);const _0x43d63d=process[_0x54ae20(0x145)][_0x54ae20(0x15f)]&&process[_0x54ae20(0x124)][_0x54ae20(0x15f)];!_0x43d63d&&!_0x1c8670?.['scope']&&(console[_0x54ae20(0x133)](_0x3c5c78['CudNy']),_0x1c8670={..._0x1c8670,'scope':'user'});_0x3d5f12?.[_0x54ae20(0x17e)](_0x3c5c78['iDeVd']);if(!findGitRoot()){await _0x3d5f12?.[_0x54ae20(0x155)](_0x54ae20(0x158),new Error('No\x20git\x20repository\x20found'));throw new Error(_0x54ae20(0x129));}_0x3d5f12?.[_0x54ae20(0x185)](_0x3c5c78[_0x54ae20(0x190)]);const _0x3eb581=!existsSync(_0x3c5c78['aDCRw'](getRangerDir)),{path:_0x5308d1}=await _0x3c5c78['aDCRw'](ensureRangerDir);_0x3d5f12?.[_0x54ae20(0x17e)](_0x3c5c78[_0x54ae20(0x16e)]);const _0x31cbd2=await _0x3c5c78[_0x54ae20(0x18b)](authenticate,_0x1b493c);_0x3d5f12?.['trackPhaseEnd']('auth',{'isFirstRun':_0x3eb581,'method':_0x31cbd2[_0x54ae20(0x154)]}),_0x3d5f12?.[_0x54ae20(0x17e)](_0x54ae20(0x15a));_0x1c8670?.['skipChromium']?console[_0x54ae20(0x133)](_0x3c5c78['wZbJt']):await ensureChromium();_0x3d5f12?.['trackPhaseEnd'](_0x3c5c78['VJOgq'],{'isFirstRun':_0x3eb581,'skipped':!!_0x1c8670?.[_0x54ae20(0x13a)]}),await writeRangerGitignore(_0x5308d1),console[_0x54ae20(0x133)](_0x3c5c78[_0x54ae20(0x135)]);const _0x289fb3=_0x1c8670?.[_0x54ae20(0x125)],_0x360fc7=_0x1c8670?.[_0x54ae20(0x121)]??![];let _0x2ce750=null;_0x360fc7?(_0x3d5f12?.['trackPhaseStart'](_0x3c5c78[_0x54ae20(0x123)]),_0x2ce750=await ensureOpencodePluginConfig(_0x289fb3),_0x3d5f12?.[_0x54ae20(0x185)]('plugin',{'isFirstRun':_0x3eb581,'opencode':!![]})):(_0x3d5f12?.[_0x54ae20(0x17e)](_0x3c5c78[_0x54ae20(0x123)]),await ensureClaudePlugin(_0x289fb3),_0x3d5f12?.[_0x54ae20(0x185)](_0x54ae20(0x152),{'isFirstRun':_0x3eb581}));if(_0x3c5c78[_0x54ae20(0x151)](_0x360fc7,_0x2ce750)){_0x3d5f12?.['trackPhaseStart']('skills');try{await installSkill('ranger',{'level':_0x2ce750['scope'],'cliVersion':_0x3c5c78[_0x54ae20(0x127)](getCurrentVersion),'platform':'opencode'}),_0x3d5f12?.['trackPhaseEnd'](_0x3c5c78[_0x54ae20(0x184)],{'isFirstRun':_0x3eb581,'opencode':!![]});}catch(_0x417984){console['warn'](_0x54ae20(0x160),_0x3c5c78['gBTBt'](_0x417984,Error)?_0x417984[_0x54ae20(0x176)]:_0x417984),_0x3d5f12?.[_0x54ae20(0x185)]('skills',{'isFirstRun':_0x3eb581,'opencode':!![],'failed':!![]});}}else _0x3d5f12?.[_0x54ae20(0x17e)](_0x3c5c78[_0x54ae20(0x184)]),await _0x3c5c78['dgMNv'](ensureClaudeSkills,_0x289fb3),_0x3d5f12?.['trackPhaseEnd'](_0x54ae20(0x132),{'isFirstRun':_0x3eb581});if(!_0x43d63d&&!_0x1c8670?.[_0x54ae20(0x12b)])console[_0x54ae20(0x133)]('Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:'),console[_0x54ae20(0x133)]('\x20\x20'+_0x3c5c78['mXvtt'](bold,_0x3c5c78[_0x54ae20(0x13b)])+'\x0a');else{_0x3d5f12?.[_0x54ae20(0x17e)](_0x3c5c78[_0x54ae20(0x13c)]);const _0x576d55=await ensureLocalEnv({'url':_0x1c8670?.['url'],'force':_0x1c8670?.['force'],'allowInsecureLocalhost':_0x1c8670?.[_0x54ae20(0x12f)]},_0x3d5f12);_0x3d5f12?.['trackPhaseEnd'](_0x3c5c78[_0x54ae20(0x13c)],{'isFirstRun':_0x3eb581,'profileReady':_0x576d55[_0x54ae20(0x14c)],'userSkipped':_0x576d55['skipped']}),_0x576d55[_0x54ae20(0x14c)]&&console['log'](_0x54ae20(0x143));}if(_0x360fc7)console[_0x54ae20(0x133)](_0x54ae20(0x16a)),console[_0x54ae20(0x133)](_0x3c5c78[_0x54ae20(0x156)]),console['log'](_0x54ae20(0x18f)),console['log'](_0x54ae20(0x141));else{const _0x2979d5=bold(_0x54ae20(0x146));console[_0x54ae20(0x133)](_0x3c5c78['DwXnM'](_0x3c5c78['DwXnM'](_0x54ae20(0x175)+_0x2979d5+'\x20and\x20prompt\x20the\x20coding','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with')+_0x54ae20(0x14b),_0x54ae20(0x178)));}}
1
+ (function(_0x23facb,_0x214378){const _0x270521=_0x4a83,_0xe518bc=_0x23facb();while(!![]){try{const _0x46e86b=-parseInt(_0x270521(0x161))/0x1*(-parseInt(_0x270521(0x148))/0x2)+parseInt(_0x270521(0x186))/0x3*(-parseInt(_0x270521(0x185))/0x4)+parseInt(_0x270521(0x149))/0x5+-parseInt(_0x270521(0x137))/0x6+parseInt(_0x270521(0x162))/0x7+-parseInt(_0x270521(0x176))/0x8*(parseInt(_0x270521(0x187))/0x9)+parseInt(_0x270521(0x155))/0xa*(parseInt(_0x270521(0x156))/0xb);if(_0x46e86b===_0x214378)break;else _0xe518bc['push'](_0xe518bc['shift']());}catch(_0x3cb42c){_0xe518bc['push'](_0xe518bc['shift']());}}}(_0x2e14,0xa7b96));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';function _0x2e14(){const _0x445781=['zBDIj','message','url','5556942oJZqLz','\x20install\x20chromium','MBEsK','scope','git_check','/ranger:enable','\x20\x20npx\x20playwright\x20install\x20chromium','HmVUJ','EFLxQ','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','Installation\x20failed\x20with\x20exit\x20code\x20','UdbEb','user','trackPhaseStart','✓\x20Authenticated\x20to\x20','rgJED','plugin','207222lYeAhx','3028800StQPHL','npx','ULYfa','opencode','fWRgW','pqTRa','inherit','isTTY','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','InMFu','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','✓\x20Playwright\x20Chromium\x20browser\x20found','178270qhxczz','66eckAHA','GITHUB_ENV','confirm','log','win32','PMuLa','Bexiq','device_auth','BRFGU','HILgr','\x0a⚠\x20Skipping\x20Chromium\x20installation.','7EgEQiz','5854870Qbptkq','IzQjy','vtnfR','stdout','yRimP','✓\x20Stored\x20credentials\x20locally','LhNBH','.gitignore','skipChromium','local','JRFkl','DBVLb','XnnAC','dZqkW','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','skills','install','tWWhK','bRgev','\x0a🚀\x20Ranger\x20Setup\x0a','1616HnyiaU','prompt','YphFp','SDsvz','No\x20git\x20repository\x20found','\x20\x20npx\x20playwright@','EsztW','ranger\x20profile\x20add\x20local','Authentication\x20failed:\x20','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','chromium','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','✓\x20Created\x20.ranger/\x20directory','wantsProfile','existing_token','112972sqRSXK','24xnXmJp','19395cKaxwk','.ranger','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','error','...','The\x20required\x20version\x20(','XNJQh','profile','thcgE','auth','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','ready','success','VzRyu','organizationName','warn','\x0aIn\x20Claude\x20Code,\x20run\x20','tDyXD','llLPU','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','trackPhaseEnd','✓\x20Already\x20authenticated\x20to\x20'];_0x2e14=function(){return _0x445781;};return _0x2e14();}import{createRequire}from'module';import{spawn}from'child_process';import _0x487077 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url),bold=_0x52f9db=>'\x1b[1m'+_0x52f9db+'\x1b[0m';function getPlaywrightVersion(){const _0x36cd73={'OcrDd':'playwright/package.json'};try{const _0x2bab2d=require['resolve'](_0x36cd73['OcrDd']),_0x2c8e74=require(_0x2bab2d);return _0x2c8e74['version'];}catch{return null;}}function installChromiumBinary(_0x2bcaea){const _0x3ce55f=_0x4a83,_0x19a90b={'EsztW':function(_0x56f5eb,_0x2f6eb8){return _0x56f5eb(_0x2f6eb8);},'MvbZh':_0x3ce55f(0x172),'niJOm':'playwright','zBDIj':'chromium','ACASe':function(_0x4bd724,_0x48b0a0,_0x4f73a2,_0x42e752){return _0x4bd724(_0x48b0a0,_0x4f73a2,_0x42e752);},'MBEsK':_0x3ce55f(0x14a),'bIhwK':_0x3ce55f(0x15a),'JRFkl':'close','HmVUJ':'error'};return new Promise((_0x166053,_0x245bc0)=>{const _0x1ce8ad=_0x3ce55f,_0x52f44d=_0x2bcaea?['playwright@'+_0x2bcaea,_0x19a90b['MvbZh'],_0x1ce8ad(0x180)]:[_0x19a90b['niJOm'],_0x1ce8ad(0x172),_0x19a90b[_0x1ce8ad(0x19d)]],_0x4af290=_0x19a90b['ACASe'](spawn,_0x19a90b[_0x1ce8ad(0x139)],_0x52f44d,{'stdio':_0x1ce8ad(0x14f),'shell':process['platform']===_0x19a90b['bIhwK']});_0x4af290['on'](_0x19a90b[_0x1ce8ad(0x16c)],_0x4f0e5f=>{const _0x126128=_0x1ce8ad;_0x4f0e5f===0x0?_0x166053():_0x19a90b[_0x126128(0x17c)](_0x245bc0,new Error(_0x126128(0x141)+_0x4f0e5f));}),_0x4af290['on'](_0x19a90b[_0x1ce8ad(0x13e)],_0x17f71a=>{_0x245bc0(_0x17f71a);});});}export async function authenticate(_0xa3e8c6){const _0x5d72b2=_0x4a83,_0x5bb33c={'yRimP':function(_0x333774){return _0x333774();},'dZqkW':function(_0x75a633,_0x5bc536){return _0x75a633 instanceof _0x5bc536;},'VzRyu':function(_0x16cca9,_0x532334){return _0x16cca9(_0x532334);},'DBVLb':'✓\x20Exported\x20credentials\x20for\x20CI','SDsvz':_0x5d72b2(0x167)};if(!_0xa3e8c6){const _0x300025=await _0x5bb33c[_0x5d72b2(0x166)](getToken);if(_0x300025){const _0x459fdb=await getCurrentUser(_0x300025);if(_0x459fdb['success'])return console['log'](_0x5d72b2(0x19c)+_0x459fdb['user'][_0x5d72b2(0x195)]),{'token':_0x300025,'method':_0x5d72b2(0x184)};}try{_0xa3e8c6=await runDeviceAuthFlow();}catch(_0x5254f0){throw new Error('Authentication\x20failed:\x20'+(_0x5bb33c[_0x5d72b2(0x16f)](_0x5254f0,Error)?_0x5254f0[_0x5d72b2(0x135)]:_0x5254f0));}const _0x2415b3=await getCurrentUser(_0xa3e8c6);if(!_0x2415b3[_0x5d72b2(0x193)])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x2415b3[_0x5d72b2(0x18a)]);return console['log'](_0x5d72b2(0x145)+_0x2415b3['user']['organizationName']),{'token':_0xa3e8c6,'method':_0x5d72b2(0x15d)};}console['log']('Validating\x20API\x20token...');const _0x3f40b8=await getCurrentUser(_0xa3e8c6);if(!_0x3f40b8['success']){if(_0x3f40b8['status'])throw new Error(_0x5d72b2(0x17e)+_0x3f40b8['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error(_0x5d72b2(0x191)+_0x3f40b8[_0x5d72b2(0x18a)]+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x5d72b2(0x159)](_0x5d72b2(0x145)+_0x3f40b8[_0x5d72b2(0x143)][_0x5d72b2(0x195)]),await _0x5bb33c[_0x5d72b2(0x194)](storeToken,_0xa3e8c6),console['log'](process['env'][_0x5d72b2(0x157)]?_0x5bb33c[_0x5d72b2(0x16d)]:_0x5bb33c[_0x5d72b2(0x179)]),{'token':_0xa3e8c6,'method':'provided_token'};}export async function ensureRangerDir(){const _0x5c899e=_0x4a83,_0xe5ae2e={'YphFp':function(_0x216baa){return _0x216baa();},'tWWhK':function(_0xaaa207,_0x183b65,_0xb9b789){return _0xaaa207(_0x183b65,_0xb9b789);},'gZPnY':_0x5c899e(0x188),'oeCYx':_0x5c899e(0x182)},_0x2e0346=_0xe5ae2e['YphFp'](findGitRoot),_0x1c7d97=_0x2e0346?_0xe5ae2e[_0x5c899e(0x173)](join,_0x2e0346,_0xe5ae2e['gZPnY']):_0xe5ae2e[_0x5c899e(0x178)](getRangerDir);return!existsSync(_0x1c7d97)?(await mkdir(_0x1c7d97,{'recursive':!![]}),console[_0x5c899e(0x159)](_0xe5ae2e['oeCYx']),{'path':_0x1c7d97,'installed':!![]}):(console[_0x5c899e(0x159)]('✓\x20.ranger/\x20directory\x20already\x20exists'),{'path':_0x1c7d97,'installed':![]});}export async function ensureChromium(){const _0x3cbee4=_0x4a83,_0x453384={'zliNC':_0x3cbee4(0x154),'UdbEb':function(_0x319fa9){return _0x319fa9();},'HILgr':_0x3cbee4(0x158),'IzQjy':_0x3cbee4(0x172),'nZwks':'The\x20required\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','SGRCy':function(_0x5e56c6,_0x493d92){return _0x5e56c6 instanceof _0x493d92;},'hzHHy':_0x3cbee4(0x160),'aUOzr':'\x20\x20npx\x20playwright\x20install\x20chromium'};let _0xd52b65=![];try{const _0x206ca6=chromium['executablePath']();_0xd52b65=existsSync(_0x206ca6);}catch{_0xd52b65=![];}if(_0xd52b65)return console[_0x3cbee4(0x159)](_0x453384['zliNC']),![];const _0x48aab5=_0x453384[_0x3cbee4(0x142)](getPlaywrightVersion),_0x498f56=process['stdin']['isTTY']&&process[_0x3cbee4(0x165)]['isTTY'];let _0x1236ee=!![];if(_0x498f56){const {install:_0xf3dcd0}=await _0x487077[_0x3cbee4(0x177)]([{'type':_0x453384[_0x3cbee4(0x15f)],'name':_0x453384[_0x3cbee4(0x163)],'message':_0x48aab5?_0x3cbee4(0x18c)+_0x48aab5+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?':_0x453384['nZwks'],'default':!![]}]);_0x1236ee=_0xf3dcd0;}else console['log']('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium'+(_0x48aab5?'\x20'+_0x48aab5:'')+_0x3cbee4(0x18b));if(_0x1236ee){console['log']('\x0aInstalling\x20Chromium\x20browser...\x0a');try{await installChromiumBinary(_0x48aab5),console['log']('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x6ad0af){console[_0x3cbee4(0x18a)]('\x0a❌\x20Failed\x20to\x20install\x20Chromium:',_0x453384['SGRCy'](_0x6ad0af,Error)?_0x6ad0af[_0x3cbee4(0x135)]:_0x6ad0af),console['log']('You\x20can\x20install\x20it\x20manually\x20by\x20running:'),_0x48aab5?console[_0x3cbee4(0x159)]('\x20\x20npx\x20playwright@'+_0x48aab5+_0x3cbee4(0x138)):console[_0x3cbee4(0x159)](_0x3cbee4(0x13d));}}else console[_0x3cbee4(0x159)](_0x453384['hzHHy']),console[_0x3cbee4(0x159)]('You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'),_0x48aab5?console[_0x3cbee4(0x159)](_0x3cbee4(0x17b)+_0x48aab5+'\x20install\x20chromium'):console['log'](_0x453384['aUOzr']);return!![];}function _0x4a83(_0x2b7fbd,_0x849587){_0x2b7fbd=_0x2b7fbd-0x135;const _0x2e14b8=_0x2e14();let _0x4a8395=_0x2e14b8[_0x2b7fbd];return _0x4a8395;}export async function writeRangerGitignore(_0x353b7e){const _0x2030e7=_0x4a83,_0x315ab5={'BRFGU':'✓\x20Created\x20.ranger/.gitignore'},_0x308d84=join(_0x353b7e,_0x2030e7(0x169)),_0x369598='\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a';await writeFile(_0x308d84,_0x369598),console['log'](_0x315ab5[_0x2030e7(0x15e)]);}function printProfileSetupLaterInstructions(){const _0x1789b4=_0x4a83,_0x4ac4a1={'PMuLa':'ranger\x20profile\x20add\x20local','NRdJd':_0x1789b4(0x140)};console['log']('\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:'),console[_0x1789b4(0x159)]('\x20\x20'+bold(_0x4ac4a1[_0x1789b4(0x15b)])),console[_0x1789b4(0x159)](_0x4ac4a1['NRdJd']);}async function ensureLocalEnv(_0x1b8b20,_0x3938d1){const _0x250f83=_0x4a83,_0x37281d={'qPAkH':function(_0x16d8ff){return _0x16d8ff();},'NrmJe':function(_0x932d02,_0x1aeaa7,_0x2b084a){return _0x932d02(_0x1aeaa7,_0x2b084a);},'bRgev':_0x250f83(0x181),'FYwmG':_0x250f83(0x158),'vtnfR':_0x250f83(0x183),'tDyXD':function(_0x48519c,_0x350499,_0xcb55b2,_0x255505){return _0x48519c(_0x350499,_0xcb55b2,_0x255505);},'pnALX':function(_0x2e88da,_0xf3a0b0){return _0x2e88da instanceof _0xf3a0b0;},'XnnAC':function(_0x42cde1){return _0x42cde1();}};if(!_0x37281d['qPAkH'](findGitRoot))return console[_0x250f83(0x159)]('⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.'),{'ready':![],'skipped':!![]};if(_0x37281d['NrmJe'](findExistingEnv,'local',{'locations':[_0x250f83(0x16b)]}))return console[_0x250f83(0x159)]('✓\x20Local\x20profile\x20already\x20exists'),{'ready':!![],'skipped':![]};const _0x19894d=process['stdin']['isTTY']&&process['stdout'][_0x250f83(0x150)];if(_0x19894d&&!_0x1b8b20?.['url']){console['log'](_0x37281d[_0x250f83(0x174)]),console['log']('to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind'),console[_0x250f83(0x159)]('auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'),console[_0x250f83(0x159)]('use\x20until\x20the\x20session\x20expires.\x0a'),console[_0x250f83(0x159)](_0x250f83(0x19a));const {wantsProfile:_0x3ec2da}=await _0x487077[_0x250f83(0x177)]([{'type':_0x37281d['FYwmG'],'name':_0x37281d[_0x250f83(0x164)],'message':'Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','default':!![]}]);if(!_0x3ec2da)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await _0x37281d[_0x250f83(0x198)](addEnv,_0x250f83(0x16b),{'url':_0x1b8b20?.[_0x250f83(0x136)],'force':_0x1b8b20?.['force'],'allowInsecureLocalhost':_0x1b8b20?.['allowInsecureLocalhost']},_0x3938d1),{'ready':!![],'skipped':![]};}catch(_0xac54d7){return console[_0x250f83(0x18a)]('\x0a❌\x20Profile\x20setup\x20failed:',_0x37281d['pnALX'](_0xac54d7,Error)?_0xac54d7['message']:_0xac54d7),_0x37281d[_0x250f83(0x16e)](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}export async function start(_0x4a8f8b,_0x38ae00,_0x1f7ce8){const _0x2828de=_0x4a83,_0x24d0e8={'EFLxQ':function(_0x31fc88){return _0x31fc88();},'XNJQh':function(_0x313e84){return _0x313e84();},'llLPU':_0x2828de(0x190),'fHDtj':'chromium','LhNBH':'plugin','thcgE':function(_0x57ea1e,_0x4f2d3b){return _0x57ea1e(_0x4f2d3b);},'CWlTN':function(_0x528bc9,_0x1f9a21){return _0x528bc9&&_0x1f9a21;},'AJIyT':_0x2828de(0x14c),'sjAVt':_0x2828de(0x171),'rgJED':'profile','XZVQW':_0x2828de(0x170),'fWRgW':'and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','Bexiq':'with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','ULYfa':_0x2828de(0x17f),'InMFu':function(_0x568449,_0x3d2d79){return _0x568449(_0x3d2d79);},'pqTRa':function(_0x3c67b0,_0x55909e){return _0x3c67b0+_0x55909e;},'VpQbd':function(_0x55c90b,_0x20eb77){return _0x55c90b+_0x20eb77;}};console['log'](_0x2828de(0x175));const _0x48f95f=process['stdin']['isTTY']&&process[_0x2828de(0x165)][_0x2828de(0x150)];!_0x48f95f&&!_0x38ae00?.[_0x2828de(0x13a)]&&(console['log'](_0x2828de(0x153)),_0x38ae00={..._0x38ae00,'scope':_0x2828de(0x143)});_0x1f7ce8?.[_0x2828de(0x144)]('git_check');if(!_0x24d0e8[_0x2828de(0x13f)](findGitRoot)){await _0x1f7ce8?.['trackPhaseError'](_0x2828de(0x13b),new Error(_0x2828de(0x17a)));throw new Error('No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.');}_0x1f7ce8?.[_0x2828de(0x19b)]('git_check');const _0x3cf883=!existsSync(_0x24d0e8[_0x2828de(0x18d)](getRangerDir)),{path:_0xa67a9}=await ensureRangerDir();_0x1f7ce8?.[_0x2828de(0x144)](_0x24d0e8[_0x2828de(0x199)]);const _0x578351=await authenticate(_0x4a8f8b);_0x1f7ce8?.[_0x2828de(0x19b)](_0x24d0e8[_0x2828de(0x199)],{'isFirstRun':_0x3cf883,'method':_0x578351['method']}),_0x1f7ce8?.[_0x2828de(0x144)](_0x2828de(0x180));_0x38ae00?.['skipChromium']?console['log'](_0x2828de(0x189)):await ensureChromium();_0x1f7ce8?.[_0x2828de(0x19b)](_0x24d0e8['fHDtj'],{'isFirstRun':_0x3cf883,'skipped':!!_0x38ae00?.[_0x2828de(0x16a)]}),await writeRangerGitignore(_0xa67a9),console[_0x2828de(0x159)]('\x0a✅\x20Ranger\x20setup\x20complete!\x0a');const _0x44ce8a=_0x38ae00?.['scope'],_0x3d9da6=_0x38ae00?.['opencode']??![];let _0x5760c1=null;_0x3d9da6?(_0x1f7ce8?.[_0x2828de(0x144)](_0x24d0e8[_0x2828de(0x168)]),_0x5760c1=await ensureOpencodePluginConfig(_0x44ce8a),_0x1f7ce8?.['trackPhaseEnd'](_0x24d0e8[_0x2828de(0x168)],{'isFirstRun':_0x3cf883,'opencode':!![]})):(_0x1f7ce8?.['trackPhaseStart'](_0x2828de(0x147)),await _0x24d0e8[_0x2828de(0x18f)](ensureClaudePlugin,_0x44ce8a),_0x1f7ce8?.[_0x2828de(0x19b)](_0x24d0e8['LhNBH'],{'isFirstRun':_0x3cf883}));if(_0x24d0e8['CWlTN'](_0x3d9da6,_0x5760c1)){_0x1f7ce8?.[_0x2828de(0x144)](_0x2828de(0x171));try{await installSkill('ranger',{'level':_0x5760c1['scope'],'cliVersion':getCurrentVersion(),'platform':_0x24d0e8['AJIyT']}),_0x1f7ce8?.[_0x2828de(0x19b)](_0x2828de(0x171),{'isFirstRun':_0x3cf883,'opencode':!![]});}catch(_0x1f5025){console[_0x2828de(0x196)]('\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:',_0x1f5025 instanceof Error?_0x1f5025['message']:_0x1f5025),_0x1f7ce8?.['trackPhaseEnd'](_0x24d0e8['sjAVt'],{'isFirstRun':_0x3cf883,'opencode':!![],'failed':!![]});}}else _0x1f7ce8?.[_0x2828de(0x144)]('skills'),await ensureClaudeSkills(_0x44ce8a),_0x1f7ce8?.['trackPhaseEnd'](_0x24d0e8['sjAVt'],{'isFirstRun':_0x3cf883});if(!_0x48f95f&&!_0x38ae00?.[_0x2828de(0x136)])console['log']('Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:'),console['log']('\x20\x20'+bold(_0x2828de(0x17d))+'\x0a');else{_0x1f7ce8?.[_0x2828de(0x144)](_0x2828de(0x18e));const _0x453cb7=await ensureLocalEnv({'url':_0x38ae00?.['url'],'force':_0x38ae00?.['force'],'allowInsecureLocalhost':_0x38ae00?.['allowInsecureLocalhost']},_0x1f7ce8);_0x1f7ce8?.['trackPhaseEnd'](_0x24d0e8[_0x2828de(0x146)],{'isFirstRun':_0x3cf883,'profileReady':_0x453cb7[_0x2828de(0x192)],'userSkipped':_0x453cb7['skipped']}),_0x453cb7['ready']&&console['log'](_0x2828de(0x151));}if(_0x3d9da6)console['log'](_0x24d0e8['XZVQW']),console[_0x2828de(0x159)](_0x24d0e8[_0x2828de(0x14d)]),console[_0x2828de(0x159)](_0x24d0e8[_0x2828de(0x15c)]),console['log'](_0x24d0e8[_0x2828de(0x14b)]);else{const _0xcbad3=_0x24d0e8[_0x2828de(0x152)](bold,_0x2828de(0x13c));console[_0x2828de(0x159)](_0x24d0e8[_0x2828de(0x14e)](_0x24d0e8['VpQbd'](_0x2828de(0x197)+_0xcbad3+'\x20and\x20prompt\x20the\x20coding','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with')+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.'));}}
@@ -1 +1 @@
1
- const _0x89bb65=_0x3a17;(function(_0x3f211c,_0x5df3c3){const _0x459611=_0x3a17,_0x4a636e=_0x3f211c();while(!![]){try{const _0x1276c6=-parseInt(_0x459611(0x15f))/0x1+-parseInt(_0x459611(0x14c))/0x2+parseInt(_0x459611(0x179))/0x3*(parseInt(_0x459611(0x150))/0x4)+parseInt(_0x459611(0x16b))/0x5+-parseInt(_0x459611(0x135))/0x6+parseInt(_0x459611(0x149))/0x7+parseInt(_0x459611(0x178))/0x8;if(_0x1276c6===_0x5df3c3)break;else _0x4a636e['push'](_0x4a636e['shift']());}catch(_0x132103){_0x4a636e['push'](_0x4a636e['shift']());}}}(_0x93be,0x38aaa));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';function _0x3a17(_0x385023,_0x2e9faf){_0x385023=_0x385023-0x122;const _0x93bee1=_0x93be();let _0x3a1731=_0x93bee1[_0x385023];return _0x3a1731;}import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x184e84=>'\x1b[1m'+_0x184e84+_0x89bb65(0x16a),link=(_0x128977,_0x188aec)=>_0x89bb65(0x128)+_0x128977+'\x07'+(_0x188aec||_0x128977)+_0x89bb65(0x171);async function getOpencodePluginStatus(){const _0x5f72c=_0x89bb65,_0xfabce6={'lADME':'string','XeYLU':_0x5f72c(0x155),'tJCgw':function(_0x559850,_0x6c1678){return _0x559850>_0x6c1678;},'vVDXu':'not_configured','vzdMZ':function(_0x9527b,_0x5a27a6,_0x4dc01b,_0x2beb19){return _0x9527b(_0x5a27a6,_0x4dc01b,_0x2beb19);},'whWQL':_0x5f72c(0x184),'wJHwq':_0x5f72c(0x14d),'bupNr':'pipe','PILrW':'error','utJzL':'close'};return new Promise(_0x2bff08=>{const _0x2fa96d=_0x5f72c,_0x2510db={'TsIwO':_0xfabce6[_0x2fa96d(0x158)],'fmVzL':_0x2fa96d(0x12b),'SXdgR':function(_0x26f56b,_0x1c050d){return _0x26f56b(_0x1c050d);},'bFaYt':_0xfabce6[_0x2fa96d(0x14e)],'HOyGQ':function(_0x4408ba,_0x42413b){const _0x154859=_0x2fa96d;return _0xfabce6[_0x154859(0x14f)](_0x4408ba,_0x42413b);},'JbYKn':_0xfabce6[_0x2fa96d(0x139)]},_0x2ee941=_0xfabce6['vzdMZ'](spawn,_0xfabce6['whWQL'],['debug',_0x2fa96d(0x12c)],{'stdio':[_0xfabce6['wJHwq'],'pipe',_0xfabce6['bupNr']]});let _0x198b9c='';_0x2ee941[_0x2fa96d(0x17e)]?.['on'](_0x2fa96d(0x18c),_0x34ce47=>{_0x198b9c+=_0x34ce47['toString']();}),_0x2ee941['stderr']?.['on'](_0x2fa96d(0x18c),_0x1445b0=>{_0x198b9c+=_0x1445b0['toString']();}),_0x2ee941['on'](_0xfabce6[_0x2fa96d(0x176)],()=>{const _0x2ff804=_0x2fa96d;_0x2bff08({'status':_0x2ff804(0x172)});}),_0x2ee941['on'](_0xfabce6['utJzL'],_0x6e8c8f=>{const _0x575b49=_0x2fa96d;if(_0x6e8c8f!==0x0){_0x2510db['SXdgR'](_0x2bff08,{'status':'not_installed'});return;}const _0x10d6d3=_0x198b9c['trim']();let _0x4c8521=null;if(_0x10d6d3)try{_0x4c8521=JSON[_0x575b49(0x141)](_0x10d6d3);}catch{const _0xe666b1=_0x10d6d3[_0x575b49(0x12d)](/\{[\s\S]*\}$/);if(_0xe666b1)try{_0x4c8521=JSON['parse'](_0xe666b1[0x0]);}catch{_0x4c8521=null;}}const _0x4d2ffd=Array[_0x575b49(0x13f)](_0x4c8521?.[_0x575b49(0x16f)])?_0x4c8521?.[_0x575b49(0x16f)]:[],_0x2aed23=_0x4d2ffd[_0x575b49(0x169)](_0xd684b=>{const _0x5ba8e6=_0x575b49;if(typeof _0xd684b!==_0x2510db[_0x5ba8e6(0x144)])return![];return _0xd684b['includes'](_0x2510db[_0x5ba8e6(0x182)])||_0xd684b[_0x5ba8e6(0x136)]('opencode-plugin');});if(_0x2aed23){_0x2510db['SXdgR'](_0x2bff08,{'status':_0x2510db['bFaYt'],'details':_0x2510db[_0x575b49(0x156)](_0x4d2ffd[_0x575b49(0x162)],0x0)?_0x4d2ffd['length']+_0x575b49(0x146):undefined});return;}if(_0x2510db['HOyGQ'](_0x4d2ffd['length'],0x0)){_0x2bff08({'status':'not_configured','details':_0x4d2ffd['length']+_0x575b49(0x146)});return;}_0x2bff08({'status':_0x2510db['JbYKn']});});});}async function getSkillsFromDir(_0x5a5c87,_0x44ac23){const _0x12580a=_0x89bb65,_0x6103be={'wAIUq':_0x12580a(0x127)};if(!existsSync(_0x5a5c87))return[];const _0x1f4601=[];try{const _0xa283d=await readdir(_0x5a5c87,{'withFileTypes':!![]});for(const _0x3ccc9f of _0xa283d){if(_0x3ccc9f['isDirectory']()){const _0x2620f7=join(_0x5a5c87,_0x3ccc9f[_0x12580a(0x153)],_0x6103be['wAIUq']);if(existsSync(_0x2620f7)){let _0x257ff0=_0x3ccc9f['name'];try{const _0x4d8a7a=await readFile(_0x2620f7,'utf-8'),_0x280789=_0x4d8a7a[_0x12580a(0x12d)](/name:\s*(.+)/);_0x280789&&(_0x257ff0=_0x280789[0x1][_0x12580a(0x123)]());}catch{}_0x1f4601['push']({'name':_0x3ccc9f[_0x12580a(0x153)],'displayName':_0x257ff0,'path':_0x2620f7,'level':_0x44ac23});}}}}catch{return[];}return _0x1f4601;}async function getInstalledSkills(){const _0x206b31=_0x89bb65,_0x53b702={'qrLNj':function(_0x4d8dd0,_0x2e7010,_0x57a5c0){return _0x4d8dd0(_0x2e7010,_0x57a5c0);},'pMuVH':_0x206b31(0x145),'HEjGw':function(_0x31acb5){return _0x31acb5();},'TwONR':_0x206b31(0x14a)},[_0x56dd43,_0x2f588b]=await Promise[_0x206b31(0x13b)]([_0x53b702[_0x206b31(0x13e)](getSkillsFromDir,getProjectSkillsDir(),_0x53b702['pMuVH']),getSkillsFromDir(_0x53b702[_0x206b31(0x17a)](getUserSkillsDir),_0x53b702['TwONR'])]);return{'project':_0x56dd43,'user':_0x2f588b};}async function getEnvironments(){const _0xd015ef=_0x89bb65,_0x1fd587={'uOqcX':function(_0x592ee8,_0x5531c7){return _0x592ee8(_0x5531c7);},'ipEkx':function(_0x424888,_0x25aadf,_0x26bff8){return _0x424888(_0x25aadf,_0x26bff8);},'DsMTp':function(_0x511c33,_0x5bf721,_0x5165bf){return _0x511c33(_0x5bf721,_0x5165bf);},'nTzap':_0xd015ef(0x157),'oVOhA':_0xd015ef(0x126),'FDXuH':function(_0x19feb7,_0x3fe817){return _0x19feb7(_0x3fe817);},'HsWSL':function(_0x1dd98b,_0x2383b5){return _0x1dd98b===_0x2383b5;},'ejmaS':function(_0x2ee6ce){return _0x2ee6ce();}},{envNames:_0x39a2fd,activeEnv:_0x437a87}=await getEnvNames(),_0x29cfb9=_0x1fd587['ejmaS'](getRangerDir);if(!_0x1fd587[_0xd015ef(0x12e)](existsSync,_0x29cfb9))return{'envs':[],'activeEnv':null};const _0x13b536=_0x39a2fd[_0xd015ef(0x12f)](_0x313292=>{const _0x461915=_0xd015ef,_0x51be78=_0x1fd587[_0x461915(0x189)](getEnvDir,_0x313292),_0x5d5297=_0x1fd587['ipEkx'](join,_0x51be78,_0x461915(0x138)),_0x761c1=_0x1fd587[_0x461915(0x12a)](join,_0x51be78,_0x461915(0x186)),_0x5b540f=join(_0x51be78,_0x1fd587['nTzap']);return{'name':_0x313292,'settingsPath':existsSync(_0x5d5297)?_0x5d5297:_0x1fd587[_0x461915(0x175)],'hasPlaintextAuth':existsSync(_0x761c1),'hasEncryptedAuth':_0x1fd587['FDXuH'](existsSync,_0x5b540f),'isActive':_0x1fd587['HsWSL'](_0x313292,_0x437a87)};});return{'envs':_0x13b536,'activeEnv':_0x437a87};}export async function status(){const _0x3af6c=_0x89bb65,_0x4d4e2f={'viFYu':_0x3af6c(0x125),'ruVHv':function(_0xd25895){return _0xd25895();},'tCgFv':function(_0x522238,_0x5716c4,_0x223f84){return _0x522238(_0x5716c4,_0x223f84);},'mPpmt':function(_0x261767,_0x3196ef){return _0x261767(_0x3196ef);},'Cxtgt':function(_0x157fe9){return _0x157fe9();},'XhFFI':function(_0x1fdb94){return _0x1fdb94();},'IDWwA':function(_0x53fc5e,_0x3d3d58){return _0x53fc5e(_0x3d3d58);},'OEmxT':_0x3af6c(0x15a),'MztkX':function(_0x193b5f){return _0x193b5f();},'axxvG':_0x3af6c(0x12b),'Uwiqk':_0x3af6c(0x142),'cLCOH':'\x0a---\x20Claude\x20Code\x20Plugin\x20---','sAqlD':_0x3af6c(0x15c),'RSQhD':_0x3af6c(0x185),'tfAcv':function(_0x1dc725,_0x165732){return _0x1dc725===_0x165732;},'iqVaL':_0x3af6c(0x17f),'oxzwL':function(_0x32979f,_0x15c23a){return _0x32979f(_0x15c23a);},'NAlNB':function(_0x2edc2d,_0x1a468f,_0x95211f){return _0x2edc2d(_0x1a468f,_0x95211f);},'EyOmT':'\x20\x20User-level:','SDWVz':_0x3af6c(0x17b),'oQBUE':'\x20(active)','WeOop':'plaintext','OqzNy':_0x3af6c(0x126),'ycSzq':function(_0x181942,_0x29a1f6,_0x3a340e){return _0x181942(_0x29a1f6,_0x3a340e);}};console[_0x3af6c(0x181)](_0x4d4e2f[_0x3af6c(0x188)]);const _0x56e6b9=process[_0x3af6c(0x165)](),_0x4e9301=_0x4d4e2f[_0x3af6c(0x16e)](getRangerDir);if(!existsSync(_0x4e9301)){console[_0x3af6c(0x181)](_0x3af6c(0x13a)+_0x4d4e2f[_0x3af6c(0x164)](link,_0x56e6b9,_0x4d4e2f['mPpmt'](bold,basename(_0x56e6b9)))),console['log']('\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.'),console[_0x3af6c(0x181)]('\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a');return;}console[_0x3af6c(0x181)]('Root:\x20'+_0x4d4e2f['tCgFv'](link,_0x56e6b9,bold(basename(_0x56e6b9))));const _0x1f240a=_0x4d4e2f['Cxtgt'](getCurrentVersion),_0x833c8b=_0x4d4e2f['ruVHv'](getLatestVersion);if(_0x833c8b[_0x3af6c(0x15e)]&&_0x833c8b['version']!==_0x1f240a)console['log']('Version:\x20'+_0x1f240a+_0x3af6c(0x187)+_0x833c8b[_0x3af6c(0x15e)]+')'),console[_0x3af6c(0x181)]('\x20\x20Run:\x20ranger\x20update');else _0x833c8b[_0x3af6c(0x15e)]?console[_0x3af6c(0x181)](_0x3af6c(0x183)+_0x1f240a+'\x20(up\x20to\x20date)'):console['log']('Version:\x20'+_0x1f240a);const _0x23d90d=await _0x4d4e2f[_0x3af6c(0x143)](getToken);if(_0x23d90d){const _0xe84542=await getCurrentUser(_0x23d90d);_0xe84542['success']?console['log']('Organization:\x20'+_0x4d4e2f['IDWwA'](bold,_0xe84542['user'][_0x3af6c(0x170)])):(console['log']('API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired'),console[_0x3af6c(0x181)](_0x3af6c(0x16d)));}else console['log'](_0x3af6c(0x151)),console['log'](_0x3af6c(0x16d));process['env']['DEBUG']&&(console[_0x3af6c(0x181)](_0x3af6c(0x161)+_0x4d4e2f[_0x3af6c(0x18a)](getCurrentEnvironment)),console['log'](_0x3af6c(0x140)+_0x4d4e2f[_0x3af6c(0x16e)](getApiBaseUrl)));console[_0x3af6c(0x181)](_0x4d4e2f[_0x3af6c(0x147)]);const _0x2283a5=await _0x4d4e2f[_0x3af6c(0x16c)](getOpencodePluginStatus);if(_0x2283a5['status']==='configured')console['log']('\x20\x20'+bold(_0x4d4e2f[_0x3af6c(0x168)])+':\x20configured'),_0x2283a5[_0x3af6c(0x154)]&&console['log']('\x20\x20'+_0x2283a5[_0x3af6c(0x154)]);else _0x2283a5['status']==='not_configured'?(console[_0x3af6c(0x181)]('\x20\x20Not\x20configured'),_0x2283a5['details']&&console['log']('\x20\x20'+_0x2283a5[_0x3af6c(0x154)]),console[_0x3af6c(0x181)](_0x4d4e2f[_0x3af6c(0x177)])):console['log'](_0x3af6c(0x163));console[_0x3af6c(0x181)](_0x4d4e2f['cLCOH']);const _0x1d2223=await getPluginInfo(_0x4d4e2f['sAqlD']);if(_0x1d2223){const _0x3fc05b=_0x1d2223[_0x3af6c(0x173)]||'unknown',_0x19c1cd=_0x1d2223[_0x3af6c(0x134)]?_0x3af6c(0x134):'disabled';console[_0x3af6c(0x181)]('\x20\x20'+bold(_0x4d4e2f['sAqlD'])+_0x3af6c(0x13c)+_0x3fc05b+',\x20'+_0x19c1cd+')');}else console['log']('\x20\x20Not\x20installed'),console[_0x3af6c(0x181)]('\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)');console[_0x3af6c(0x181)](_0x4d4e2f['RSQhD']);const {project:_0x2b0151,user:_0xdf4812}=await getInstalledSkills(),_0x10eb0c=_0x2b0151[_0x3af6c(0x17d)](_0x5f550d=>RANGER_MANAGED_SKILLS[_0x3af6c(0x136)](_0x5f550d[_0x3af6c(0x153)])),_0x1159f0=_0xdf4812['filter'](_0x16174c=>RANGER_MANAGED_SKILLS[_0x3af6c(0x136)](_0x16174c['name'])),_0x4a854d=_0x10eb0c[_0x3af6c(0x162)]+_0x1159f0[_0x3af6c(0x162)];if(_0x4d4e2f['tfAcv'](_0x4a854d,0x0))console[_0x3af6c(0x181)](_0x4d4e2f[_0x3af6c(0x130)]),console[_0x3af6c(0x181)](_0x3af6c(0x15b));else{if(_0x10eb0c['length']>0x0){console['log'](_0x3af6c(0x160));for(const _0x5631b1 of _0x10eb0c){console['log']('\x20\x20\x20\x20'+_0x4d4e2f[_0x3af6c(0x166)](bold,_0x5631b1['displayName'])+':\x20'+_0x4d4e2f[_0x3af6c(0x18b)](link,_0x5631b1['path'],_0x4d4e2f['IDWwA'](basename,_0x5631b1['path'])));}}if(_0x1159f0[_0x3af6c(0x162)]>0x0){console['log'](_0x4d4e2f['EyOmT']);for(const _0x2d5e9c of _0x1159f0){console['log'](_0x3af6c(0x180)+bold(_0x2d5e9c[_0x3af6c(0x137)])+':\x20'+link(_0x2d5e9c[_0x3af6c(0x124)],basename(_0x2d5e9c['path'])));}}}console['log'](_0x4d4e2f[_0x3af6c(0x133)]);const {envs:_0x5d23aa,activeEnv:_0x59f59d}=await _0x4d4e2f[_0x3af6c(0x18a)](getEnvironments);if(_0x4d4e2f['tfAcv'](_0x5d23aa[_0x3af6c(0x162)],0x0))console['log']('No\x20profiles\x20configured'),console['log']('\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>');else{for(const _0x55eb5d of _0x5d23aa){const _0x2476b6=_0x55eb5d[_0x3af6c(0x148)]?_0x4d4e2f['oQBUE']:'',_0x52e362=_0x55eb5d[_0x3af6c(0x167)]?_0x3af6c(0x132):_0x55eb5d[_0x3af6c(0x129)]?_0x4d4e2f[_0x3af6c(0x13d)]:_0x3af6c(0x15d);console['log']('\x20\x20'+_0x4d4e2f['mPpmt'](bold,_0x55eb5d[_0x3af6c(0x153)])+_0x2476b6),console[_0x3af6c(0x181)]('\x20\x20\x20\x20Auth:\x20'+_0x52e362),_0x55eb5d[_0x3af6c(0x131)]!==_0x4d4e2f[_0x3af6c(0x14b)]&&console['log'](_0x3af6c(0x122)+_0x4d4e2f[_0x3af6c(0x152)](link,_0x55eb5d['settingsPath'],_0x4d4e2f[_0x3af6c(0x174)](basename,_0x55eb5d[_0x3af6c(0x131)])));}!_0x59f59d&&(console[_0x3af6c(0x181)](_0x3af6c(0x159)),console[_0x3af6c(0x181)](_0x3af6c(0x17c)+_0x5d23aa[_0x3af6c(0x12f)](_0x3367eb=>_0x3367eb['name'])['join'](',\x20')+')'));}console[_0x3af6c(0x181)]('');}function _0x93be(){const _0x272757=['\x1b[0m','1781515LOZZKU','MztkX','\x20\x20Run:\x20ranger\x20setup\x20[token]','ruVHv','plugin','organizationName','\x1b]8;;\x07','not_installed','scope','mPpmt','oVOhA','PILrW','Uwiqk','2910000belmtL','2154xhQDgy','HEjGw','\x0a---\x20Profiles\x20---','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20','filter','stdout','No\x20skills\x20installed','\x20\x20\x20\x20','log','fmVzL','Version:\x20','opencode','\x0a---\x20Skills\x20---','auth.json','\x20(latest:\x20','viFYu','uOqcX','Cxtgt','NAlNB','data','\x20\x20\x20\x20Settings:\x20','trim','path','\x0a📊\x20Ranger\x20Status\x0a','(not\x20found)','SKILL.md','\x1b]8;;file://','hasPlaintextAuth','DsMTp','@ranger-testing/opencode-plugin','config','match','FDXuH','map','iqVaL','settingsPath','encrypted','SDWVz','enabled','1617318JBtWFr','includes','displayName','settings.json','vVDXu','Root:\x20','all',':\x20installed\x20(','WeOop','qrLNj','isArray','API\x20URL:\x20','parse','\x20\x20Run:\x20ranger\x20setup\x20--opencode','XhFFI','TsIwO','project','\x20plugin(s)\x20configured','OEmxT','isActive','1696947BMPrIx','user','OqzNy','800120VgzOPq','ignore','XeYLU','tJCgw','412VAwiqR','API\x20Token:\x20✗\x20Not\x20found','ycSzq','name','details','configured','HOyGQ','auth.json.enc','lADME','\x0a\x20\x20No\x20active\x20profile\x20set','\x0a---\x20OpenCode\x20Plugin\x20---','\x20\x20Run:\x20ranger\x20skillup','ranger@trailhead','none','version','134709VpYJku','\x20\x20Project-level:','API\x20Environment:\x20','length','\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','tCgFv','cwd','oxzwL','hasEncryptedAuth','axxvG','some'];_0x93be=function(){return _0x272757;};return _0x93be();}
1
+ const _0x5f05c2=_0x525d;(function(_0x184d69,_0x31e93f){const _0x4f2521=_0x525d,_0x299ee7=_0x184d69();while(!![]){try{const _0x3f091b=-parseInt(_0x4f2521(0xb2))/0x1*(parseInt(_0x4f2521(0xc9))/0x2)+-parseInt(_0x4f2521(0xb6))/0x3*(parseInt(_0x4f2521(0xc8))/0x4)+-parseInt(_0x4f2521(0xea))/0x5*(parseInt(_0x4f2521(0xd9))/0x6)+parseInt(_0x4f2521(0xb4))/0x7+-parseInt(_0x4f2521(0xbf))/0x8+-parseInt(_0x4f2521(0xf6))/0x9*(parseInt(_0x4f2521(0xe0))/0xa)+-parseInt(_0x4f2521(0xed))/0xb*(-parseInt(_0x4f2521(0xe7))/0xc);if(_0x3f091b===_0x31e93f)break;else _0x299ee7['push'](_0x299ee7['shift']());}catch(_0x27aa87){_0x299ee7['push'](_0x299ee7['shift']());}}}(_0x45a7,0x9ddcb));import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';function _0x45a7(){const _0xa03319=['success','not_installed','16467CrvDdb','yoDjX','configured','hasEncryptedAuth','plugin','WdzPc','user','oyboU','isArray','3510UduSxW','settingsPath','utf-8','project','toString','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','yLTfV','qgLdC','includes','path','OPMuq','cmsSP','version','qWwNV','ITVGG','opencode','match','\x0a\x20\x20No\x20active\x20profile\x20set','\x0a---\x20Skills\x20---','xofFV','foiIf','\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','Version:\x20','LsSmR','map','status','akLOb','1155223maQEYV','Ycodx','3371823TUPXVx','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','84fkDmeo','rqkiw','\x20\x20Run:\x20ranger\x20setup\x20--opencode','organizationName','data','enabled','rlytr','cwd','Organization:\x20','9635288nKtXcb','zEhGa','join','API\x20Environment:\x20','\x1b[1m','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20','\x20\x20Run:\x20ranger\x20skillup','\x20(latest:\x20','JTBhm','77084ptEgiH','2UDwuaR','hBRWG','NPgCf','DEBUG','isDirectory','\x20plugin(s)\x20configured','stdout','settings.json','log','close','truzZ','\x20(up\x20to\x20date)','ranger@trailhead','LYuYT','details','No\x20skills\x20installed','3294174mupuMn','name','SKILL.md','config','\x1b]8;;\x07','ZAYth','length','22710RagACD','pipe','auth.json','\x20\x20\x20\x20','unknown','\x20\x20Not\x20configured','\x20\x20\x20\x20Auth:\x20','40464hZEDwN','bYqZt','filter','10qIqjom'];_0x45a7=function(){return _0xa03319;};return _0x45a7();}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=_0xadd756=>_0x5f05c2(0xc3)+_0xadd756+'\x1b[0m',link=(_0x452256,_0x4ad44a)=>'\x1b]8;;file://'+_0x452256+'\x07'+(_0x4ad44a||_0x452256)+_0x5f05c2(0xdd);function _0x525d(_0x49e10d,_0x5495af){_0x49e10d=_0x49e10d-0xad;const _0x45a79b=_0x45a7();let _0x525d7f=_0x45a79b[_0x49e10d];return _0x525d7f;}async function getOpencodePluginStatus(){const _0xfd93a6=_0x5f05c2,_0xee045e={'rqkiw':_0xfd93a6(0xec),'Ycodx':function(_0x4b1356,_0x455641){return _0x4b1356(_0x455641);},'GeCQf':_0xfd93a6(0xef),'cmsSP':function(_0x1787f2,_0x466dd0){return _0x1787f2>_0x466dd0;},'RbGhJ':function(_0x1f4e17,_0x555c39){return _0x1f4e17(_0x555c39);},'EjFIp':function(_0x50df1f,_0x2e2156){return _0x50df1f(_0x2e2156);},'foiIf':'string','OPMuq':_0xfd93a6(0x105),'jFZdA':'pipe','ziEaa':'error','WdzPc':_0xfd93a6(0xd2)};return new Promise(_0x52e2d8=>{const _0x4742bc=_0xfd93a6,_0x2f3d92={'ZYiyI':function(_0x153935,_0x26447e){return _0x153935!==_0x26447e;},'yoDjX':_0xee045e[_0x4742bc(0x10a)],'yLTfV':'opencode-plugin'},_0x8f4292=spawn(_0xee045e[_0x4742bc(0x100)],['debug',_0x4742bc(0xdc)],{'stdio':['ignore',_0xee045e['jFZdA'],_0x4742bc(0xe1)]});let _0x2f90b9='';_0x8f4292[_0x4742bc(0xcf)]?.['on'](_0x4742bc(0xba),_0x24d3ea=>{_0x2f90b9+=_0x24d3ea['toString']();}),_0x8f4292['stderr']?.['on'](_0x4742bc(0xba),_0x39fa1d=>{const _0x50d6fe=_0x4742bc;_0x2f90b9+=_0x39fa1d[_0x50d6fe(0xfa)]();}),_0x8f4292['on'](_0xee045e['ziEaa'],()=>{const _0x5ad38c=_0x4742bc;_0x52e2d8({'status':_0xee045e[_0x5ad38c(0xb7)]});}),_0x8f4292['on'](_0xee045e[_0x4742bc(0xf2)],_0x22fc18=>{const _0xa03ebf=_0x4742bc;if(_0x22fc18!==0x0){_0xee045e[_0xa03ebf(0xb3)](_0x52e2d8,{'status':_0xee045e[_0xa03ebf(0xb7)]});return;}const _0x3f5336=_0x2f90b9['trim']();let _0x460f26=null;if(_0x3f5336)try{_0x460f26=JSON['parse'](_0x3f5336);}catch{const _0x4653d7=_0x3f5336['match'](/\{[\s\S]*\}$/);if(_0x4653d7)try{_0x460f26=JSON['parse'](_0x4653d7[0x0]);}catch{_0x460f26=null;}}const _0x44fec4=Array[_0xa03ebf(0xf5)](_0x460f26?.['plugin'])?_0x460f26?.[_0xa03ebf(0xf1)]:[],_0x4f9546=_0x44fec4['some'](_0x41ff9a=>{const _0x4427cf=_0xa03ebf;if(_0x2f3d92['ZYiyI'](typeof _0x41ff9a,_0x2f3d92[_0x4427cf(0xee)]))return![];return _0x41ff9a[_0x4427cf(0xfe)]('@ranger-testing/opencode-plugin')||_0x41ff9a['includes'](_0x2f3d92[_0x4427cf(0xfc)]);});if(_0x4f9546){_0x52e2d8({'status':_0xee045e['GeCQf'],'details':_0x44fec4['length']>0x0?_0x44fec4['length']+_0xa03ebf(0xce):undefined});return;}if(_0xee045e[_0xa03ebf(0x101)](_0x44fec4[_0xa03ebf(0xdf)],0x0)){_0xee045e['RbGhJ'](_0x52e2d8,{'status':'not_configured','details':_0x44fec4['length']+_0xa03ebf(0xce)});return;}_0xee045e['EjFIp'](_0x52e2d8,{'status':'not_configured'});});});}async function getSkillsFromDir(_0x208586,_0x3d6c96){const _0x20718c=_0x5f05c2,_0x279570={'qWwNV':function(_0xc97f33,_0x128a59,_0x1b2d5f){return _0xc97f33(_0x128a59,_0x1b2d5f);},'ZAYth':_0x20718c(0xdb),'ITVGG':function(_0x73dee0,_0x7fd1bd){return _0x73dee0(_0x7fd1bd);},'sdJBg':function(_0x1e8a6f,_0x140f2b,_0x515713){return _0x1e8a6f(_0x140f2b,_0x515713);}};if(!existsSync(_0x208586))return[];const _0x4751f3=[];try{const _0x43c8bb=await _0x279570[_0x20718c(0x103)](readdir,_0x208586,{'withFileTypes':!![]});for(const _0x41eb5f of _0x43c8bb){if(_0x41eb5f[_0x20718c(0xcd)]()){const _0x5afb2d=join(_0x208586,_0x41eb5f['name'],_0x279570[_0x20718c(0xde)]);if(_0x279570[_0x20718c(0x104)](existsSync,_0x5afb2d)){let _0x4a76a4=_0x41eb5f[_0x20718c(0xda)];try{const _0x27f24b=await _0x279570['sdJBg'](readFile,_0x5afb2d,_0x20718c(0xf8)),_0x5348fd=_0x27f24b[_0x20718c(0x106)](/name:\s*(.+)/);_0x5348fd&&(_0x4a76a4=_0x5348fd[0x1]['trim']());}catch{}_0x4751f3['push']({'name':_0x41eb5f[_0x20718c(0xda)],'displayName':_0x4a76a4,'path':_0x5afb2d,'level':_0x3d6c96});}}}}catch{return[];}return _0x4751f3;}async function getInstalledSkills(){const _0x2f240b=_0x5f05c2,_0x5b89c4={'hJaJs':function(_0x2e058c,_0x2c142b,_0x5beda1){return _0x2e058c(_0x2c142b,_0x5beda1);},'LYuYT':function(_0x196be1){return _0x196be1();},'JyrDp':function(_0x42c4ee,_0x2a33fe,_0x10c1f0){return _0x42c4ee(_0x2a33fe,_0x10c1f0);},'oyboU':'user'},[_0x80f439,_0x2b4aee]=await Promise['all']([_0x5b89c4['hJaJs'](getSkillsFromDir,_0x5b89c4[_0x2f240b(0xd6)](getProjectSkillsDir),_0x2f240b(0xf9)),_0x5b89c4['JyrDp'](getSkillsFromDir,getUserSkillsDir(),_0x5b89c4[_0x2f240b(0xf4)])]);return{'project':_0x80f439,'user':_0x2b4aee};}async function getEnvironments(){const _0x4a66e1=_0x5f05c2,_0x4affa1={'qgLdC':function(_0x20ddf0,_0x37a7fb){return _0x20ddf0(_0x37a7fb);},'NPgCf':_0x4a66e1(0xd0),'MemJP':function(_0x1dde42,_0x456327,_0x24d96a){return _0x1dde42(_0x456327,_0x24d96a);},'cptpx':'auth.json.enc','rlytr':function(_0x5e71fb,_0x4a40ee){return _0x5e71fb(_0x4a40ee);},'zRWNo':function(_0x153e44,_0x39933a){return _0x153e44===_0x39933a;}},{envNames:_0x43a498,activeEnv:_0xcc0b46}=await getEnvNames(),_0x352911=getRangerDir();if(!_0x4affa1['rlytr'](existsSync,_0x352911))return{'envs':[],'activeEnv':null};const _0x2d9320=_0x43a498['map'](_0x305e19=>{const _0x472552=_0x4a66e1,_0x3dfbb7=_0x4affa1[_0x472552(0xfd)](getEnvDir,_0x305e19),_0x5b06f1=join(_0x3dfbb7,_0x4affa1[_0x472552(0xcb)]),_0x57d2c8=join(_0x3dfbb7,_0x472552(0xe2)),_0x4a1289=_0x4affa1['MemJP'](join,_0x3dfbb7,_0x4affa1['cptpx']);return{'name':_0x305e19,'settingsPath':existsSync(_0x5b06f1)?_0x5b06f1:'(not\x20found)','hasPlaintextAuth':_0x4affa1[_0x472552(0xbc)](existsSync,_0x57d2c8),'hasEncryptedAuth':existsSync(_0x4a1289),'isActive':_0x4affa1['zRWNo'](_0x305e19,_0xcc0b46)};});return{'envs':_0x2d9320,'activeEnv':_0xcc0b46};}export async function status(){const _0x24a5f8=_0x5f05c2,_0x2fb1ab={'GQjGd':'\x0a📊\x20Ranger\x20Status\x0a','zEhGa':function(_0x5b5d7e){return _0x5b5d7e();},'bYqZt':function(_0x3a6f15,_0x31a412,_0x116f94){return _0x3a6f15(_0x31a412,_0x116f94);},'YoXpH':function(_0x3f2910,_0x267ddc){return _0x3f2910(_0x267ddc);},'giUSK':function(_0x175e0e,_0x5d5c53){return _0x175e0e(_0x5d5c53);},'LsSmR':function(_0x40b51d){return _0x40b51d();},'xofFV':function(_0x3dbcf8){return _0x3dbcf8();},'USyPn':function(_0x36843c,_0x2a690a){return _0x36843c(_0x2a690a);},'UcTlc':'not_configured','tXmzK':_0x24a5f8(0xe5),'DAUhv':_0x24a5f8(0x10b),'SvaAD':'\x0a---\x20Claude\x20Code\x20Plugin\x20---','akLOb':'enabled','djVyM':function(_0x11e220,_0x4b09af){return _0x11e220(_0x4b09af);},'hBRWG':_0x24a5f8(0xfb),'YHOKc':_0x24a5f8(0x108),'VJiuA':_0x24a5f8(0xd8),'HvFOt':function(_0x22a543,_0x1890b2){return _0x22a543>_0x1890b2;},'iavjA':'\x20\x20Project-level:','vDXwv':function(_0x521c07,_0x2940f9){return _0x521c07(_0x2940f9);},'JTBhm':'\x0a---\x20Profiles\x20---','EMEmL':function(_0x37ce60){return _0x37ce60();},'ayaEK':function(_0x495766,_0x1f87c6){return _0x495766===_0x1f87c6;},'truzZ':'No\x20profiles\x20configured','dYshm':'plaintext','uRbrB':'none'};console['log'](_0x2fb1ab['GQjGd']);const _0x2f8897=process[_0x24a5f8(0xbd)](),_0x1c2a72=_0x2fb1ab[_0x24a5f8(0xc0)](getRangerDir);if(!existsSync(_0x1c2a72)){console['log']('Root:\x20'+link(_0x2f8897,bold(basename(_0x2f8897)))),console['log']('\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.'),console[_0x24a5f8(0xd1)](_0x24a5f8(0xb5));return;}console[_0x24a5f8(0xd1)]('Root:\x20'+_0x2fb1ab[_0x24a5f8(0xe8)](link,_0x2f8897,_0x2fb1ab['YoXpH'](bold,_0x2fb1ab['giUSK'](basename,_0x2f8897))));const _0x1f9588=getCurrentVersion(),_0x46090c=_0x2fb1ab[_0x24a5f8(0xae)](getLatestVersion);if(_0x46090c['version']&&_0x46090c['version']!==_0x1f9588)console[_0x24a5f8(0xd1)]('Version:\x20'+_0x1f9588+_0x24a5f8(0xc6)+_0x46090c[_0x24a5f8(0x102)]+')'),console['log']('\x20\x20Run:\x20ranger\x20update');else _0x46090c['version']?console[_0x24a5f8(0xd1)](_0x24a5f8(0xad)+_0x1f9588+_0x24a5f8(0xd4)):console['log'](_0x24a5f8(0xad)+_0x1f9588);const _0x221f90=await getToken();if(_0x221f90){const _0x43b31f=await getCurrentUser(_0x221f90);_0x43b31f[_0x24a5f8(0xeb)]?console[_0x24a5f8(0xd1)](_0x24a5f8(0xbe)+bold(_0x43b31f[_0x24a5f8(0xf3)][_0x24a5f8(0xb9)])):(console[_0x24a5f8(0xd1)]('API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired'),console[_0x24a5f8(0xd1)]('\x20\x20Run:\x20ranger\x20setup\x20[token]'));}else console[_0x24a5f8(0xd1)]('API\x20Token:\x20✗\x20Not\x20found'),console[_0x24a5f8(0xd1)]('\x20\x20Run:\x20ranger\x20setup\x20[token]');process['env'][_0x24a5f8(0xcc)]&&(console[_0x24a5f8(0xd1)](_0x24a5f8(0xc2)+_0x2fb1ab[_0x24a5f8(0x109)](getCurrentEnvironment)),console['log']('API\x20URL:\x20'+getApiBaseUrl()));console[_0x24a5f8(0xd1)]('\x0a---\x20OpenCode\x20Plugin\x20---');const _0x1c2ea7=await getOpencodePluginStatus();if(_0x1c2ea7['status']==='configured')console['log']('\x20\x20'+_0x2fb1ab['USyPn'](bold,'@ranger-testing/opencode-plugin')+':\x20configured'),_0x1c2ea7['details']&&console[_0x24a5f8(0xd1)]('\x20\x20'+_0x1c2ea7['details']);else _0x1c2ea7[_0x24a5f8(0xb0)]===_0x2fb1ab['UcTlc']?(console[_0x24a5f8(0xd1)](_0x2fb1ab['tXmzK']),_0x1c2ea7[_0x24a5f8(0xd7)]&&console[_0x24a5f8(0xd1)]('\x20\x20'+_0x1c2ea7[_0x24a5f8(0xd7)]),console[_0x24a5f8(0xd1)](_0x24a5f8(0xb8))):console['log'](_0x2fb1ab['DAUhv']);console[_0x24a5f8(0xd1)](_0x2fb1ab['SvaAD']);const _0x207aaa=await getPluginInfo(_0x24a5f8(0xd5));if(_0x207aaa){const _0x3e3eb8=_0x207aaa['scope']||_0x24a5f8(0xe4),_0x1303cd=_0x207aaa[_0x24a5f8(0xbb)]?_0x2fb1ab[_0x24a5f8(0xb1)]:'disabled';console['log']('\x20\x20'+_0x2fb1ab['djVyM'](bold,_0x24a5f8(0xd5))+':\x20installed\x20('+_0x3e3eb8+',\x20'+_0x1303cd+')');}else console[_0x24a5f8(0xd1)]('\x20\x20Not\x20installed'),console['log'](_0x2fb1ab[_0x24a5f8(0xca)]);console[_0x24a5f8(0xd1)](_0x2fb1ab['YHOKc']);const {project:_0x112e17,user:_0x448ce6}=await _0x2fb1ab[_0x24a5f8(0xae)](getInstalledSkills),_0x37569f=_0x112e17['filter'](_0x10643c=>RANGER_MANAGED_SKILLS['includes'](_0x10643c['name'])),_0x1b2b31=_0x448ce6[_0x24a5f8(0xe9)](_0x21bd97=>RANGER_MANAGED_SKILLS['includes'](_0x21bd97['name'])),_0x4611e3=_0x37569f[_0x24a5f8(0xdf)]+_0x1b2b31['length'];if(_0x4611e3===0x0)console[_0x24a5f8(0xd1)](_0x2fb1ab['VJiuA']),console[_0x24a5f8(0xd1)](_0x24a5f8(0xc5));else{if(_0x2fb1ab['HvFOt'](_0x37569f[_0x24a5f8(0xdf)],0x0)){console['log'](_0x2fb1ab['iavjA']);for(const _0x14b935 of _0x37569f){console[_0x24a5f8(0xd1)](_0x24a5f8(0xe3)+_0x2fb1ab['giUSK'](bold,_0x14b935['displayName'])+':\x20'+link(_0x14b935[_0x24a5f8(0xff)],basename(_0x14b935[_0x24a5f8(0xff)])));}}if(_0x1b2b31[_0x24a5f8(0xdf)]>0x0){console['log']('\x20\x20User-level:');for(const _0x209a7d of _0x1b2b31){console['log'](_0x24a5f8(0xe3)+_0x2fb1ab['vDXwv'](bold,_0x209a7d['displayName'])+':\x20'+_0x2fb1ab['bYqZt'](link,_0x209a7d[_0x24a5f8(0xff)],basename(_0x209a7d['path'])));}}}console[_0x24a5f8(0xd1)](_0x2fb1ab[_0x24a5f8(0xc7)]);const {envs:_0x3a0bc4,activeEnv:_0xb6eed}=await _0x2fb1ab['EMEmL'](getEnvironments);if(_0x2fb1ab['ayaEK'](_0x3a0bc4['length'],0x0))console['log'](_0x2fb1ab[_0x24a5f8(0xd3)]),console[_0x24a5f8(0xd1)]('\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>');else{for(const _0x3df08f of _0x3a0bc4){const _0x1fb9f6=_0x3df08f['isActive']?'\x20(active)':'',_0x3158f5=_0x3df08f[_0x24a5f8(0xf0)]?'encrypted':_0x3df08f['hasPlaintextAuth']?_0x2fb1ab['dYshm']:_0x2fb1ab['uRbrB'];console['log']('\x20\x20'+bold(_0x3df08f['name'])+_0x1fb9f6),console[_0x24a5f8(0xd1)](_0x24a5f8(0xe6)+_0x3158f5),_0x3df08f['settingsPath']!=='(not\x20found)'&&console[_0x24a5f8(0xd1)]('\x20\x20\x20\x20Settings:\x20'+link(_0x3df08f['settingsPath'],basename(_0x3df08f[_0x24a5f8(0xf7)])));}!_0xb6eed&&(console['log'](_0x24a5f8(0x107)),console['log'](_0x24a5f8(0xc4)+_0x3a0bc4[_0x24a5f8(0xaf)](_0x1cd941=>_0x1cd941[_0x24a5f8(0xda)])[_0x24a5f8(0xc1)](',\x20')+')'));}console['log']('');}