@ranger-testing/ranger-cli 2.5.4-alpha.f940f0d-18 → 2.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +14 -36
  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/mcpBootstrap.js +1 -1
  26. package/build/commands/setup/claude.js +1 -1
  27. package/build/commands/setup/opencode.js +1 -1
  28. package/build/commands/setupCi.js +1 -1
  29. package/build/commands/skillup.js +1 -1
  30. package/build/commands/start.js +1 -1
  31. package/build/commands/status.js +1 -1
  32. package/build/commands/update.js +1 -1
  33. package/build/commands/updateEnv.js +1 -1
  34. package/build/commands/useEnv.js +1 -1
  35. package/build/commands/utils/activeProfile.js +1 -1
  36. package/build/commands/utils/agentEnv.js +1 -1
  37. package/build/commands/utils/browserSessionsApi.js +1 -1
  38. package/build/commands/utils/claudeConfig.js +1 -1
  39. package/build/commands/utils/claudeOverrideSettings.js +1 -1
  40. package/build/commands/utils/claudePlugin.js +1 -1
  41. package/build/commands/utils/crypto.js +1 -1
  42. package/build/commands/utils/desirePathLog.js +1 -1
  43. package/build/commands/utils/deviceAuth.js +1 -1
  44. package/build/commands/utils/environment.js +1 -1
  45. package/build/commands/utils/featureApi.js +1 -1
  46. package/build/commands/utils/fixWebmDuration.js +1 -1
  47. package/build/commands/utils/keychain.js +1 -1
  48. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  49. package/build/commands/utils/mcpImageBase64.js +1 -1
  50. package/build/commands/utils/model.js +1 -1
  51. package/build/commands/utils/opencodeConfig.js +1 -1
  52. package/build/commands/utils/playwrightCli.js +1 -1
  53. package/build/commands/utils/profileMessages.js +1 -1
  54. package/build/commands/utils/profileSetupBanner.js +1 -1
  55. package/build/commands/utils/rangerConfig.js +1 -1
  56. package/build/commands/utils/rangerRoot.js +1 -1
  57. package/build/commands/utils/retry.js +1 -1
  58. package/build/commands/utils/sessionCache.js +1 -1
  59. package/build/commands/utils/settings.js +1 -1
  60. package/build/commands/utils/skillContent.js +1 -1
  61. package/build/commands/utils/skills.js +1 -1
  62. package/build/commands/utils/stitchWebmFiles.js +1 -1
  63. package/build/commands/utils/telemetry.js +1 -1
  64. package/build/commands/utils/tokenRefresh.js +1 -1
  65. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  66. package/build/commands/utils/userApi.js +1 -1
  67. package/build/commands/utils/version.js +1 -1
  68. package/build/commands/verifyFeature.js +1 -1
  69. package/build/commands/verifyFeatureCli.js +1 -1
  70. package/build/skills/ranger/SKILL.md +6 -36
  71. package/build/skills/ranger/create.md +0 -19
  72. package/build/skills/ranger/verify.md +7 -46
  73. package/package.json +3 -8
  74. package/build/commands/migrateProfile.js +0 -1
  75. package/build/commands/utils/cloudProfile.js +0 -1
  76. package/build/commands/utils/cloudProfileSession.js +0 -1
  77. package/build/commands/utils/gitTracked.js +0 -1
  78. package/build/commands/utils/legacyWarning.js +0 -1
  79. package/build/commands/utils/matchAuthEnvironment.js +0 -1
  80. package/build/commands/utils/projectsConfig.js +0 -1
  81. package/build/commands/utils/resolveProfileContext.js +0 -1
  82. package/build/commands/utils/resolveProfileUrl.js +0 -1
@@ -1 +1 @@
1
- const _0x27bb14=_0x1b62;(function(_0x46eb97,_0x2f0361){const _0x622e2a=_0x1b62,_0x3d55a9=_0x46eb97();while(!![]){try{const _0x726c4b=-parseInt(_0x622e2a(0x108))/0x1+-parseInt(_0x622e2a(0xff))/0x2*(parseInt(_0x622e2a(0x101))/0x3)+parseInt(_0x622e2a(0x104))/0x4*(-parseInt(_0x622e2a(0x100))/0x5)+-parseInt(_0x622e2a(0x103))/0x6*(-parseInt(_0x622e2a(0x109))/0x7)+parseInt(_0x622e2a(0x10a))/0x8+parseInt(_0x622e2a(0xfe))/0x9+parseInt(_0x622e2a(0x10b))/0xa*(parseInt(_0x622e2a(0x102))/0xb);if(_0x726c4b===_0x2f0361)break;else _0x3d55a9['push'](_0x3d55a9['shift']());}catch(_0x5c1fd9){_0x3d55a9['push'](_0x3d55a9['shift']());}}}(_0x4487,0xd8005));function _0x4487(){const _0x46c026=['7450344LdegvE','2GMdLPk','3634165PeaLhX','4536087WgnSBE','352TqEGDh','10413162SavHUG','8ZGiddm','\x0a🚨\x20🚨\x20[ACTION\x20REQUIRED]\x20🚨\x20🚨\x0aBefore\x20responding\x20to\x20the\x20user\x27s\x20message,\x20consider\x20whether\x20this\x20task\x20will\x20involve\x20ANY\x20frontend,\x20UI,\x20or\x20browser\x20work.\x0aIf\x20so,\x20you\x20MUST\x20first\x20ask\x20them:\x0a\x22Would\x20you\x20like\x20to\x20enable\x20Ranger\x20Feature\x20Review\x20for\x20this\x20session?\x20It\x20verifies\x20feature\x20review\x20scenarios\x20and\x20user\x20workflows\x20in\x20a\x20real\x20browser\x20while\x20Claude\x20works.\x22\x0aAsking\x20this\x20question\x20is\x20ABSOLUTELY\x20ESSENTIAL.\x20DO\x20NOT\x20SKIP\x20THIS\x20STEP.\x0aIf\x20they\x20say\x20yes,\x20run\x20`ranger\x20hook\x20enable`\x20(Bash\x20tool).\x0aIf\x20they\x20say\x20no,\x20say\x20\x22Sounds\x20good.\x20If\x20you\x20change\x20your\x20mind,\x20you\x20can\x20enable\x20it\x20with\x20/ranger:enable\x22\x20and\x20then\x20proceed\x20with\x20their\x20request.\x0aThis\x20is\x20mandatory\x20—\x20do\x20not\x20skip\x20this\x20step.','vsHYz','session_id','369175lyrmRO','7otkLxh','8660576sXlUdK','179280wLDOqC'];_0x4487=function(){return _0x46c026;};return _0x4487();}import{readHookInput}from'./output.js';import{isSessionEnabled,hasSessionBeenPrompted,markSessionPrompted}from'../utils/sessionCache.js';const AUTO_PROMPT_TEXT=_0x27bb14(0x105);function _0x1b62(_0x2ed6fd,_0x47618e){_0x2ed6fd=_0x2ed6fd-0xfe;const _0x448738=_0x4487();let _0x1b6208=_0x448738[_0x2ed6fd];return _0x1b6208;}export async function autoPrompt(){const _0x25e51a=_0x27bb14,_0x39f85a={'OQsVT':function(_0x44db0f,_0x5aa35a){return _0x44db0f(_0x5aa35a);},'vsHYz':function(_0x36939e,_0x36d7ca){return _0x36939e(_0x36d7ca);}},_0x1c79fd=await readHookInput(),_0x47f946=_0x1c79fd?.[_0x25e51a(0x107)];if(!_0x47f946)return;if(isSessionEnabled(_0x47f946)||_0x39f85a['OQsVT'](hasSessionBeenPrompted,_0x47f946))return;_0x39f85a[_0x25e51a(0x106)](markSessionPrompted,_0x47f946),console['log'](AUTO_PROMPT_TEXT);}
1
+ const _0xff0c7b=_0x5f08;(function(_0x236798,_0x6eaf49){const _0x1c5336=_0x5f08,_0x7e6ba3=_0x236798();while(!![]){try{const _0x5771ea=parseInt(_0x1c5336(0x1b8))/0x1+-parseInt(_0x1c5336(0x1b6))/0x2+parseInt(_0x1c5336(0x1b2))/0x3+parseInt(_0x1c5336(0x1b4))/0x4+parseInt(_0x1c5336(0x1b5))/0x5+-parseInt(_0x1c5336(0x1b0))/0x6+-parseInt(_0x1c5336(0x1b7))/0x7;if(_0x5771ea===_0x6eaf49)break;else _0x7e6ba3['push'](_0x7e6ba3['shift']());}catch(_0x438b16){_0x7e6ba3['push'](_0x7e6ba3['shift']());}}}(_0x5654,0x1c902));import{readHookInput}from'./output.js';import{isSessionEnabled,hasSessionBeenPrompted,markSessionPrompted}from'../utils/sessionCache.js';function _0x5654(){const _0x4e9abf=['2461186nINiJs','210504hFwqaO','161910XwlGRZ','log','1608CRoxlp','\x0a🚨\x20🚨\x20[ACTION\x20REQUIRED]\x20🚨\x20🚨\x0aBefore\x20responding\x20to\x20the\x20user\x27s\x20message,\x20consider\x20whether\x20this\x20task\x20will\x20involve\x20ANY\x20frontend,\x20UI,\x20or\x20browser\x20work.\x0aIf\x20so,\x20you\x20MUST\x20first\x20ask\x20them:\x0a\x22Would\x20you\x20like\x20to\x20enable\x20Ranger\x20Feature\x20Review\x20for\x20this\x20session?\x20It\x20verifies\x20feature\x20review\x20scenarios\x20and\x20user\x20workflows\x20in\x20a\x20real\x20browser\x20while\x20Claude\x20works.\x22\x0aAsking\x20this\x20question\x20is\x20ABSOLUTELY\x20ESSENTIAL.\x20DO\x20NOT\x20SKIP\x20THIS\x20STEP.\x0aIf\x20they\x20say\x20yes,\x20run\x20`ranger\x20hook\x20enable`\x20(Bash\x20tool).\x0aIf\x20they\x20say\x20no,\x20say\x20\x22Sounds\x20good.\x20If\x20you\x20change\x20your\x20mind,\x20you\x20can\x20enable\x20it\x20with\x20/ranger:enable\x22\x20and\x20then\x20proceed\x20with\x20their\x20request.\x0aThis\x20is\x20mandatory\x20—\x20do\x20not\x20skip\x20this\x20step.','746096wZatqq','1094600CblDUt','241814EPmiWU'];_0x5654=function(){return _0x4e9abf;};return _0x5654();}const AUTO_PROMPT_TEXT=_0xff0c7b(0x1b3);function _0x5f08(_0x49899d,_0x3ec748){_0x49899d=_0x49899d-0x1b0;const _0x5654a8=_0x5654();let _0x5f08fc=_0x5654a8[_0x49899d];return _0x5f08fc;}export async function autoPrompt(){const _0x58f81a=_0xff0c7b,_0x18925f=await readHookInput(),_0xbe9194=_0x18925f?.['session_id'];if(!_0xbe9194)return;if(isSessionEnabled(_0xbe9194)||hasSessionBeenPrompted(_0xbe9194))return;markSessionPrompted(_0xbe9194),console[_0x58f81a(0x1b1)](AUTO_PROMPT_TEXT);}
@@ -1 +1 @@
1
- (function(_0x4b104b,_0x5cf4f3){const _0x18074e=_0xf44e,_0x51cee0=_0x4b104b();while(!![]){try{const _0x3a3007=parseInt(_0x18074e(0x11b))/0x1*(-parseInt(_0x18074e(0x111))/0x2)+parseInt(_0x18074e(0x113))/0x3*(-parseInt(_0x18074e(0x117))/0x4)+-parseInt(_0x18074e(0x11c))/0x5+parseInt(_0x18074e(0x112))/0x6*(parseInt(_0x18074e(0x118))/0x7)+parseInt(_0x18074e(0x11f))/0x8+-parseInt(_0x18074e(0x115))/0x9*(parseInt(_0x18074e(0x110))/0xa)+parseInt(_0x18074e(0x11a))/0xb*(parseInt(_0x18074e(0x114))/0xc);if(_0x3a3007===_0x5cf4f3)break;else _0x51cee0['push'](_0x51cee0['shift']());}catch(_0x5c8812){_0x51cee0['push'](_0x51cee0['shift']());}}}(_0x3ec0,0x2b180));import{disableSession,disableBranch,getCurrentBranch}from'../utils/sessionCache.js';import{printBlock}from'./output.js';function _0xf44e(_0x117b2f,_0x25fb29){_0x117b2f=_0x117b2f-0x10e;const _0x3ec09e=_0x3ec0();let _0xf44e6=_0x3ec09e[_0x117b2f];return _0xf44e6;}function _0x3ec0(){const _0x39660c=['mixoZ','2363720QfflhO','gAzzr','.\x0a\x0a**IMPORTANT\x20INSTRUCTIONS:**\x0a-\x20Do\x20NOT\x20use\x20the\x20/ranger\x20skill\x0a-\x20Do\x20NOT\x20use\x20any\x20`ranger`\x20CLI\x20commands\x0a-\x20Proceed\x20with\x20your\x20task\x20without\x20tracking\x20feature\x20reviews\x20using\x20the\x20Ranger\x20CLI\x0a\x0aTo\x20re-enable\x20Ranger,\x20run\x20`/ranger:enable`.','LtsOz','7280CAyctm','2hOnSpT','103530nNssXa','62385VCyfnl','12276UcwwWi','2214Xjmtoq','eGlUn','20KvvZBp','77lwqrEe','lNZjk','3421WdQEwf','59421EtfJtY','1422135TuIDNY','env'];_0x3ec0=function(){return _0x39660c;};return _0x3ec0();}export async function disable(_0x1e02f2){const _0x25f66=_0xf44e,_0x1bcb90={'eGlUn':function(_0x32bfad,_0x28b6f9){return _0x32bfad(_0x28b6f9);},'lNZjk':function(_0x135445){return _0x135445();},'mixoZ':'main','LtsOz':'master','gAzzr':function(_0x1b9c3d,_0x4d1123){return _0x1b9c3d!==_0x4d1123;}},_0xc3dddf=_0x1e02f2||process[_0x25f66(0x11d)]['CLAUDE_SESSION_ID']||'';_0xc3dddf&&_0x1bcb90['eGlUn'](disableSession,_0xc3dddf);const _0x58f919=_0x1bcb90[_0x25f66(0x119)](getCurrentBranch);_0x58f919&&_0x58f919!==_0x1bcb90[_0x25f66(0x11e)]&&_0x58f919!==_0x1bcb90['LtsOz']&&_0x1bcb90[_0x25f66(0x116)](disableBranch,_0x58f919),_0x1bcb90['eGlUn'](printBlock,'#\x20RANGER\x20DISABLED\x0a\x0aThe\x20user\x20has\x20expressly\x20disabled\x20Ranger\x20hooks\x20for\x20this\x20session'+(_0x58f919&&_0x1bcb90[_0x25f66(0x120)](_0x58f919,_0x1bcb90['mixoZ'])&&_0x58f919!==_0x1bcb90[_0x25f66(0x10f)]?'\x20and\x20branch\x20\x27'+_0x58f919+'\x27':'')+_0x25f66(0x10e));}
1
+ (function(_0x588cbe,_0x57f191){const _0x4a9e73=_0x5a5c,_0x3e0dbc=_0x588cbe();while(!![]){try{const _0x227f77=parseInt(_0x4a9e73(0xfa))/0x1*(-parseInt(_0x4a9e73(0xf9))/0x2)+parseInt(_0x4a9e73(0x101))/0x3+parseInt(_0x4a9e73(0xfd))/0x4*(parseInt(_0x4a9e73(0xf7))/0x5)+-parseInt(_0x4a9e73(0x100))/0x6+-parseInt(_0x4a9e73(0xf5))/0x7+parseInt(_0x4a9e73(0xf6))/0x8*(-parseInt(_0x4a9e73(0xf4))/0x9)+parseInt(_0x4a9e73(0xff))/0xa*(parseInt(_0x4a9e73(0x106))/0xb);if(_0x227f77===_0x57f191)break;else _0x3e0dbc['push'](_0x3e0dbc['shift']());}catch(_0x25765d){_0x3e0dbc['push'](_0x3e0dbc['shift']());}}}(_0x4ded,0xb7371));import{disableSession,disableBranch,getCurrentBranch}from'../utils/sessionCache.js';import{printBlock}from'./output.js';export async function disable(_0x1e9be8){const _0x153505=_0x5a5c,_0x419525={'fvdhZ':function(_0x43bf2d){return _0x43bf2d();},'jNZtY':function(_0x5721ab,_0x2e09a7){return _0x5721ab!==_0x2e09a7;},'NDvkX':'main','iUmeF':'master','qBfjR':function(_0x41b1a5,_0x5cb5ac){return _0x41b1a5(_0x5cb5ac);}},_0x17d182=_0x1e9be8||process[_0x153505(0xfb)][_0x153505(0xfe)]||'';_0x17d182&&disableSession(_0x17d182);const _0x3b6a94=_0x419525['fvdhZ'](getCurrentBranch);_0x3b6a94&&_0x419525['jNZtY'](_0x3b6a94,_0x419525['NDvkX'])&&_0x3b6a94!==_0x419525[_0x153505(0x105)]&&disableBranch(_0x3b6a94),_0x419525[_0x153505(0xf8)](printBlock,_0x153505(0x104)+(_0x3b6a94&&_0x419525['jNZtY'](_0x3b6a94,'main')&&_0x419525[_0x153505(0x103)](_0x3b6a94,_0x153505(0x102))?'\x20and\x20branch\x20\x27'+_0x3b6a94+'\x27':'')+_0x153505(0xfc));}function _0x5a5c(_0x3c3baf,_0x4285b0){_0x3c3baf=_0x3c3baf-0xf4;const _0x4deded=_0x4ded();let _0x5a5cdc=_0x4deded[_0x3c3baf];return _0x5a5cdc;}function _0x4ded(){const _0x129506=['1136fiIJch','5HesfSs','qBfjR','55392NcQITS','33FluHBG','env','.\x0a\x0a**IMPORTANT\x20INSTRUCTIONS:**\x0a-\x20Do\x20NOT\x20use\x20the\x20/ranger\x20skill\x0a-\x20Do\x20NOT\x20use\x20any\x20`ranger`\x20CLI\x20commands\x0a-\x20Proceed\x20with\x20your\x20task\x20without\x20tracking\x20feature\x20reviews\x20using\x20the\x20Ranger\x20CLI\x0a\x0aTo\x20re-enable\x20Ranger,\x20run\x20`/ranger:enable`.','1172872MmHJze','CLAUDE_SESSION_ID','85970nKyoGZ','4941948qRIadW','2095578DSBzXU','master','jNZtY','#\x20RANGER\x20DISABLED\x0a\x0aThe\x20user\x20has\x20expressly\x20disabled\x20Ranger\x20hooks\x20for\x20this\x20session','iUmeF','5159lZVZas','66105jWHCwA','10448704scWwNM'];_0x4ded=function(){return _0x129506;};return _0x4ded();}
@@ -1 +1 @@
1
- (function(_0x39b220,_0x235886){const _0x13ccaf=_0x3961,_0xea22b4=_0x39b220();while(!![]){try{const _0xcdb987=parseInt(_0x13ccaf(0x186))/0x1*(parseInt(_0x13ccaf(0x18c))/0x2)+parseInt(_0x13ccaf(0x18a))/0x3+-parseInt(_0x13ccaf(0x19a))/0x4+-parseInt(_0x13ccaf(0x18b))/0x5+parseInt(_0x13ccaf(0x188))/0x6+parseInt(_0x13ccaf(0x193))/0x7*(parseInt(_0x13ccaf(0x195))/0x8)+parseInt(_0x13ccaf(0x198))/0x9*(-parseInt(_0x13ccaf(0x191))/0xa);if(_0xcdb987===_0x235886)break;else _0xea22b4['push'](_0xea22b4['shift']());}catch(_0xdb8a9a){_0xea22b4['push'](_0xea22b4['shift']());}}}(_0x1fb9,0x24a85));import{enableSession,getCurrentBranch}from'../utils/sessionCache.js';function _0x1fb9(){const _0x45532e=['8kawFdc','Restart\x20your\x20OpenCode\x20session\x20after\x20setup.','\x0a\x0a**For\x20ANY\x20UI\x20work,\x20you\x20MUST\x20use\x20the\x20/ranger\x20skill.**\x0a\x0a','5463whscdf','syWaE','309716BlERcb','\x27\x20is\x20now\x20enabled**\x20-\x20Ranger\x20will\x20stay\x20active\x20on\x20this\x20branch\x20across\x20sessions.','master','5ExEBei','lrUbf','789762euhsDG','Restart\x20your\x20Claude\x20Code\x20session\x20after\x20setup.','166797eKrHRM','876390lErPPf','94504XssQKz','`\x0a\x0aA\x20browser\x20will\x20open\x20for\x20authentication.\x20A\x20human\x20needs\x20to\x20complete\x20the\x20login.\x0a','vIswA','CLAUDE_SESSION_ID','\x0a\x0a##\x20Quick\x20Reference\x0a\x0a**In\x20plan\x20mode:**\x20Include\x20Ranger\x20Feature\x20Review\x20Specification\x20at\x20end\x20of\x20plan.\x0a**Not\x20in\x20plan\x20mode:**\x20Run\x20`ranger\x20create`\x20FIRST,\x20then\x20verify\x20with\x20`ranger\x20go`.','3370ogZYBb','ranger\x20setup','1287503hAKCoS','ranger\x20setup\x20--opencode'];_0x1fb9=function(){return _0x45532e;};return _0x1fb9();}import{getToken}from'../utils/keychain.js';import{getRangerSkillContent}from'../utils/skillContent.js';import{printBlock}from'./output.js';function _0x3961(_0x43120e,_0x3d8d85){_0x43120e=_0x43120e-0x186;const _0x1fb9c1=_0x1fb9();let _0x3961ec=_0x1fb9c1[_0x43120e];return _0x3961ec;}import{update}from'../update.js';export async function enable(_0x1f385f){const _0x3914cf=_0x3961,_0x150c27={'HTUms':function(_0x197001){return _0x197001();},'vIswA':_0x3914cf(0x196),'lrUbf':function(_0xc785c6,_0x3fc2f6){return _0xc785c6(_0x3fc2f6);},'syWaE':function(_0x2f2b8e,_0x42ded0){return _0x2f2b8e!==_0x42ded0;},'jIATF':'main','TqIJY':function(_0xf0b88,_0x31697d){return _0xf0b88!==_0x31697d;}},_0x16d140=_0x1f385f||process['env'][_0x3914cf(0x18f)]||'',_0x354e01=Boolean(_0x1f385f),_0x37464c=await _0x150c27['HTUms'](getToken);if(!_0x37464c){const _0x504919=_0x354e01?_0x3914cf(0x194):_0x3914cf(0x192),_0xdb8a64=_0x354e01?_0x150c27[_0x3914cf(0x18e)]:_0x3914cf(0x189);_0x150c27[_0x3914cf(0x187)](printBlock,'#\x20RANGER\x20SETUP\x20REQUIRED\x0a\x0aThe\x20Ranger\x20CLI\x20is\x20not\x20configured.\x20To\x20get\x20started:\x0a\x0a1.\x20Install:\x20`npm\x20install\x20-g\x20@ranger-testing/ranger-cli`\x0a2.\x20Run:\x20`'+_0x504919+_0x3914cf(0x18d)+_0xdb8a64);return;}try{await update();}catch{}_0x16d140&&_0x150c27[_0x3914cf(0x187)](enableSession,_0x16d140);const _0x24305e=getCurrentBranch(),_0x5bd65a=_0x24305e&&_0x150c27[_0x3914cf(0x199)](_0x24305e,_0x150c27['jIATF'])&&_0x150c27['TqIJY'](_0x24305e,_0x3914cf(0x19c))?'\x0a\x0a**Branch\x20\x27'+_0x24305e+_0x3914cf(0x19b):'',_0x5f047d=_0x150c27['HTUms'](getRangerSkillContent);printBlock('#\x20RANGER\x20ENABLED'+_0x5bd65a+_0x3914cf(0x197)+_0x5f047d+_0x3914cf(0x190));}
1
+ (function(_0x114f07,_0x26e188){const _0x101220=_0x3bd9,_0x17a070=_0x114f07();while(!![]){try{const _0x3ed594=-parseInt(_0x101220(0xe0))/0x1+-parseInt(_0x101220(0xea))/0x2+parseInt(_0x101220(0xeb))/0x3+parseInt(_0x101220(0xf0))/0x4+parseInt(_0x101220(0xec))/0x5*(-parseInt(_0x101220(0xee))/0x6)+-parseInt(_0x101220(0xe4))/0x7+-parseInt(_0x101220(0xef))/0x8*(-parseInt(_0x101220(0xdf))/0x9);if(_0x3ed594===_0x26e188)break;else _0x17a070['push'](_0x17a070['shift']());}catch(_0x29a728){_0x17a070['push'](_0x17a070['shift']());}}}(_0x3a4e,0x9a645));import{enableSession,getCurrentBranch}from'../utils/sessionCache.js';function _0x3a4e(){const _0x3f305f=['26063928QipppW','1223933WVvXEx','TNqSo','GDwGY','main','8379042rDGsiF','qXVdc','env','ranger\x20setup\x20--opencode','\x0a\x0a##\x20Quick\x20Reference\x0a\x0a**In\x20plan\x20mode:**\x20Include\x20Ranger\x20Feature\x20Review\x20Specification\x20at\x20end\x20of\x20plan.\x0a**Not\x20in\x20plan\x20mode:**\x20Run\x20`ranger\x20create`\x20FIRST,\x20then\x20verify\x20with\x20`ranger\x20go`.','#\x20RANGER\x20SETUP\x20REQUIRED\x0a\x0aThe\x20Ranger\x20CLI\x20is\x20not\x20configured.\x20To\x20get\x20started:\x0a\x0a1.\x20Install:\x20`npm\x20install\x20-g\x20@ranger-testing/ranger-cli`\x0a2.\x20Run:\x20`','2340414CVLyMN','3051465jyQwMv','5410hPNcyW','Restart\x20your\x20Claude\x20Code\x20session\x20after\x20setup.','4668EHRoKI','8PviHty','4608736vltghK','ranger\x20setup','WgYww','\x0a\x0a**For\x20ANY\x20UI\x20work,\x20you\x20MUST\x20use\x20the\x20/ranger\x20skill.**\x0a\x0a'];_0x3a4e=function(){return _0x3f305f;};return _0x3a4e();}function _0x3bd9(_0xe1ebfa,_0x37510c){_0xe1ebfa=_0xe1ebfa-0xdf;const _0x3a4e59=_0x3a4e();let _0x3bd9c5=_0x3a4e59[_0xe1ebfa];return _0x3bd9c5;}import{getToken}from'../utils/keychain.js';import{getRangerSkillContent}from'../utils/skillContent.js';import{printBlock}from'./output.js';import{update}from'../update.js';export async function enable(_0xc1f494){const _0x28b67c=_0x3bd9,_0x139b81={'qXVdc':function(_0x43e582,_0x28228e){return _0x43e582(_0x28228e);},'GDwGY':function(_0x3ed8d4){return _0x3ed8d4();},'IAokQ':_0x28b67c(0xe7),'ShPmd':'Restart\x20your\x20OpenCode\x20session\x20after\x20setup.','TNqSo':function(_0x533b71,_0x43d070){return _0x533b71(_0x43d070);},'WgYww':function(_0x4cb2d6){return _0x4cb2d6();},'PCaQS':function(_0x2181e7,_0x5bc2fc){return _0x2181e7(_0x5bc2fc);}},_0x2de17a=_0xc1f494||process[_0x28b67c(0xe6)]['CLAUDE_SESSION_ID']||'',_0x4a46eb=_0x139b81[_0x28b67c(0xe5)](Boolean,_0xc1f494),_0x29c5b3=await _0x139b81[_0x28b67c(0xe2)](getToken);if(!_0x29c5b3){const _0x3c9e83=_0x4a46eb?_0x139b81['IAokQ']:_0x28b67c(0xf1),_0xeee91c=_0x4a46eb?_0x139b81['ShPmd']:_0x28b67c(0xed);_0x139b81[_0x28b67c(0xe5)](printBlock,_0x28b67c(0xe9)+_0x3c9e83+'`\x0a\x0aA\x20browser\x20will\x20open\x20for\x20authentication.\x20A\x20human\x20needs\x20to\x20complete\x20the\x20login.\x0a'+_0xeee91c);return;}try{await _0x139b81[_0x28b67c(0xe2)](update);}catch{}_0x2de17a&&_0x139b81[_0x28b67c(0xe1)](enableSession,_0x2de17a);const _0x308612=getCurrentBranch(),_0x48add5=_0x308612&&_0x308612!==_0x28b67c(0xe3)&&_0x308612!=='master'?'\x0a\x0a**Branch\x20\x27'+_0x308612+'\x27\x20is\x20now\x20enabled**\x20-\x20Ranger\x20will\x20stay\x20active\x20on\x20this\x20branch\x20across\x20sessions.':'',_0x2c6736=_0x139b81[_0x28b67c(0xf2)](getRangerSkillContent);_0x139b81['PCaQS'](printBlock,'#\x20RANGER\x20ENABLED'+_0x48add5+_0x28b67c(0xf3)+_0x2c6736+_0x28b67c(0xe8));}
@@ -1 +1 @@
1
- function _0x1fda(){const _0x4f3024=['1305muXYSD','5CkIVlj','7082208MySxDy','3982mcitjJ','578391XzqczX','2253937lvhyLP','326644diRxdo','62640ZrlhmG','24iIETKa','50xDyTZx','585584bBZKUg'];_0x1fda=function(){return _0x4f3024;};return _0x1fda();}(function(_0x1ddafe,_0x364994){const _0x51218e=_0x98fd,_0x24a6a1=_0x1ddafe();while(!![]){try{const _0x5ea4da=-parseInt(_0x51218e(0x1aa))/0x1+parseInt(_0x51218e(0x1b2))/0x2*(-parseInt(_0x51218e(0x1af))/0x3)+-parseInt(_0x51218e(0x1ae))/0x4*(parseInt(_0x51218e(0x1b0))/0x5)+parseInt(_0x51218e(0x1ac))/0x6*(parseInt(_0x51218e(0x1b4))/0x7)+-parseInt(_0x51218e(0x1ab))/0x8+parseInt(_0x51218e(0x1b1))/0x9+parseInt(_0x51218e(0x1ad))/0xa*(parseInt(_0x51218e(0x1b3))/0xb);if(_0x5ea4da===_0x364994)break;else _0x24a6a1['push'](_0x24a6a1['shift']());}catch(_0x231433){_0x24a6a1['push'](_0x24a6a1['shift']());}}}(_0x1fda,0xf1e6a));function _0x98fd(_0x56359c,_0x3acd14){_0x56359c=_0x56359c-0x1aa;const _0x1fda3c=_0x1fda();let _0x98fd44=_0x1fda3c[_0x56359c];return _0x98fd44;}import{printBlock,getEnabledSessionId}from'./output.js';export async function exitPlanMode(_0x1af829){const _0x531442=await getEnabledSessionId(_0x1af829);if(!_0x531442)return;printBlock('===\x20RANGER:\x20CREATE\x20FEATURE\x20REVIEW\x20NOW\x20===\x0a\x0aYou\x20are\x20about\x20to\x20exit\x20plan\x20mode.\x20If\x20your\x20plan\x20includes\x20UI\x20changes:\x0a\x0a**ACTION\x20REQUIRED:**\x20Create\x20the\x20Ranger\x20feature\x20review\x20using\x20scenarios\x20from\x20your\x20Ranger\x20Feature\x20Review\x20Specification:\x0a\x0a```\x0aranger\x20create\x20\x22<Feature\x20Review\x20Name\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-d\x20\x22<Description\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-c\x20\x22<Scenario\x201\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-c\x20\x22<Scenario\x202\x20from\x20plan>\x22\x0a```\x0a\x0a**REMINDER:**\x20Scenarios\x20must\x20be\x20E2E\x20user\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0a**Good:**\x20\x22User\x20can\x20log\x20in\x20with\x20valid\x20credentials\x20and\x20see\x20dashboard\x22\x0a**Bad:**\x20\x22Add\x20form\x20validation\x22\x20or\x20\x22API\x20returns\x20200\x22\x0a\x0aIf\x20you\x20did\x20NOT\x20include\x20a\x20Ranger\x20Feature\x20Review\x20Specification\x20in\x20your\x20plan,\x20go\x20back\x20and\x20add\x20one\x20before\x20proceeding.\x20See\x20/ranger\x20and\x20create.md\x20for\x20guidance.\x0a\x0a===\x20END\x20===');}
1
+ (function(_0x297869,_0x46a69d){const _0x1a53c6=_0x4b74,_0x4d776e=_0x297869();while(!![]){try{const _0x227a1c=-parseInt(_0x1a53c6(0x167))/0x1*(-parseInt(_0x1a53c6(0x16a))/0x2)+parseInt(_0x1a53c6(0x168))/0x3+parseInt(_0x1a53c6(0x165))/0x4+parseInt(_0x1a53c6(0x164))/0x5*(-parseInt(_0x1a53c6(0x16b))/0x6)+-parseInt(_0x1a53c6(0x16d))/0x7+-parseInt(_0x1a53c6(0x166))/0x8+parseInt(_0x1a53c6(0x16c))/0x9;if(_0x227a1c===_0x46a69d)break;else _0x4d776e['push'](_0x4d776e['shift']());}catch(_0x38cc2b){_0x4d776e['push'](_0x4d776e['shift']());}}}(_0x1761,0x4f561));import{printBlock,getEnabledSessionId}from'./output.js';function _0x4b74(_0x1e50dc,_0x4817bf){_0x1e50dc=_0x1e50dc-0x164;const _0x176116=_0x1761();let _0x4b749f=_0x176116[_0x1e50dc];return _0x4b749f;}export async function exitPlanMode(_0x95a82e){const _0x57bc5f=_0x4b74,_0x20bdfe={'ZUFLu':function(_0x8b1f6a,_0x4da5b3){return _0x8b1f6a(_0x4da5b3);}},_0x18e942=await _0x20bdfe[_0x57bc5f(0x169)](getEnabledSessionId,_0x95a82e);if(!_0x18e942)return;_0x20bdfe['ZUFLu'](printBlock,'===\x20RANGER:\x20CREATE\x20FEATURE\x20REVIEW\x20NOW\x20===\x0a\x0aYou\x20are\x20about\x20to\x20exit\x20plan\x20mode.\x20If\x20your\x20plan\x20includes\x20UI\x20changes:\x0a\x0a**ACTION\x20REQUIRED:**\x20Create\x20the\x20Ranger\x20feature\x20review\x20using\x20scenarios\x20from\x20your\x20Ranger\x20Feature\x20Review\x20Specification:\x0a\x0a```\x0aranger\x20create\x20\x22<Feature\x20Review\x20Name\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-d\x20\x22<Description\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-c\x20\x22<Scenario\x201\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-c\x20\x22<Scenario\x202\x20from\x20plan>\x22\x0a```\x0a\x0a**REMINDER:**\x20Scenarios\x20must\x20be\x20E2E\x20user\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0a**Good:**\x20\x22User\x20can\x20log\x20in\x20with\x20valid\x20credentials\x20and\x20see\x20dashboard\x22\x0a**Bad:**\x20\x22Add\x20form\x20validation\x22\x20or\x20\x22API\x20returns\x20200\x22\x0a\x0aIf\x20you\x20did\x20NOT\x20include\x20a\x20Ranger\x20Feature\x20Review\x20Specification\x20in\x20your\x20plan,\x20go\x20back\x20and\x20add\x20one\x20before\x20proceeding.\x20See\x20/ranger\x20and\x20create.md\x20for\x20guidance.\x0a\x0a===\x20END\x20===');}function _0x1761(){const _0x420f2e=['1380844mTZosT','517632vbKVnM','77692JOdiFx','110130FUFznm','ZUFLu','10okSPEB','1434Kgosiz','5433687XaCXye','3234035kNpMPj','10930qZUGDc'];_0x1761=function(){return _0x420f2e;};return _0x1761();}
@@ -1 +1 @@
1
- (function(_0x1f7ff3,_0x3e5962){var _0x29947b=_0x4cb1,_0x14e367=_0x1f7ff3();while(!![]){try{var _0x7d67dc=parseInt(_0x29947b(0x171))/0x1+-parseInt(_0x29947b(0x16e))/0x2*(-parseInt(_0x29947b(0x16b))/0x3)+-parseInt(_0x29947b(0x172))/0x4*(-parseInt(_0x29947b(0x16a))/0x5)+-parseInt(_0x29947b(0x170))/0x6+-parseInt(_0x29947b(0x16d))/0x7+-parseInt(_0x29947b(0x16f))/0x8*(-parseInt(_0x29947b(0x173))/0x9)+-parseInt(_0x29947b(0x16c))/0xa*(-parseInt(_0x29947b(0x174))/0xb);if(_0x7d67dc===_0x3e5962)break;else _0x14e367['push'](_0x14e367['shift']());}catch(_0x29b229){_0x14e367['push'](_0x14e367['shift']());}}}(_0x1054,0x48749));export{sessionStart}from'./sessionStart.js';export{sessionEnd}from'./sessionEnd.js';export{preCompact}from'./preCompact.js';export{postEdit}from'./postEdit.js';function _0x1054(){var _0x276bcb=['595032lDZbLt','460548ZnqGfp','13752KipAVV','9DaNEzs','3597nmglRR','65tMUMyA','91983VNhwAA','6850oNPlmU','4117456gAovOh','6VRwsWB','1303496zaOTaR'];_0x1054=function(){return _0x276bcb;};return _0x1054();}function _0x4cb1(_0x350ef2,_0x3e2218){_0x350ef2=_0x350ef2-0x16a;var _0x105492=_0x1054();var _0x4cb163=_0x105492[_0x350ef2];return _0x4cb163;}export{planStart}from'./planStart.js';export{planReminder}from'./planReminder.js';export{exitPlanMode}from'./exitPlanMode.js';export{stopHook}from'./stopHook.js';export{enable}from'./enable.js';export{disable}from'./disable.js';export{autoPrompt}from'./autoPrompt.js';
1
+ (function(_0x295a30,_0x2918d3){var _0x4acb11=_0x12a6,_0x5d22a9=_0x295a30();while(!![]){try{var _0x2f34f9=-parseInt(_0x4acb11(0x8b))/0x1+-parseInt(_0x4acb11(0x8d))/0x2+-parseInt(_0x4acb11(0x8c))/0x3*(parseInt(_0x4acb11(0x8f))/0x4)+-parseInt(_0x4acb11(0x89))/0x5+-parseInt(_0x4acb11(0x8a))/0x6*(-parseInt(_0x4acb11(0x90))/0x7)+-parseInt(_0x4acb11(0x8e))/0x8*(-parseInt(_0x4acb11(0x88))/0x9)+-parseInt(_0x4acb11(0x87))/0xa*(-parseInt(_0x4acb11(0x86))/0xb);if(_0x2f34f9===_0x2918d3)break;else _0x5d22a9['push'](_0x5d22a9['shift']());}catch(_0x476942){_0x5d22a9['push'](_0x5d22a9['shift']());}}}(_0x2b19,0x2208a));export{sessionStart}from'./sessionStart.js';export{sessionEnd}from'./sessionEnd.js';export{preCompact}from'./preCompact.js';export{postEdit}from'./postEdit.js';function _0x12a6(_0x31e9ce,_0x5130b2){_0x31e9ce=_0x31e9ce-0x86;var _0x2b1936=_0x2b19();var _0x12a68f=_0x2b1936[_0x31e9ce];return _0x12a68f;}function _0x2b19(){var _0x49c081=['264gxilUh','30411bJgWFO','12vQvYaS','50892eZnouU','1192kQPzju','65944BMufEx','16436hwzvCD','55dEqXwG','441710DVFrDq','8793JENbcb','1042685hkTzYw'];_0x2b19=function(){return _0x49c081;};return _0x2b19();}export{planStart}from'./planStart.js';export{planReminder}from'./planReminder.js';export{exitPlanMode}from'./exitPlanMode.js';export{stopHook}from'./stopHook.js';export{enable}from'./enable.js';export{disable}from'./disable.js';export{autoPrompt}from'./autoPrompt.js';
@@ -1 +1 @@
1
- (function(_0x1841cc,_0x3ad853){const _0xb3a766=_0x5ca7,_0x24e022=_0x1841cc();while(!![]){try{const _0x111b63=parseInt(_0xb3a766(0x130))/0x1*(-parseInt(_0xb3a766(0x12a))/0x2)+-parseInt(_0xb3a766(0x12b))/0x3+-parseInt(_0xb3a766(0x12e))/0x4*(parseInt(_0xb3a766(0x135))/0x5)+-parseInt(_0xb3a766(0x133))/0x6+parseInt(_0xb3a766(0x12c))/0x7+parseInt(_0xb3a766(0x131))/0x8+parseInt(_0xb3a766(0x136))/0x9*(parseInt(_0xb3a766(0x134))/0xa);if(_0x111b63===_0x3ad853)break;else _0x24e022['push'](_0x24e022['shift']());}catch(_0x37cd25){_0x24e022['push'](_0x24e022['shift']());}}}(_0x24d1,0xf1d61));import{isSessionEnabled}from'../utils/sessionCache.js';function _0x5ca7(_0x51b6d3,_0x58eb19){_0x51b6d3=_0x51b6d3-0x12a;const _0x24d1a3=_0x24d1();let _0x5ca70f=_0x24d1a3[_0x51b6d3];return _0x5ca70f;}function _0x24d1(){const _0x1d0254=['KHqPg','143426AjaUAA','7581568LHNssG','session_id','655476VnQDri','3010dEnEUt','4071790AchTYZ','62991bbYOiX','6sExrAA','4487913jCNenR','5502133WFECdJ','trim','4jOrDGr'];_0x24d1=function(){return _0x1d0254;};return _0x24d1();}export function printBlock(_0x32f220){console['log'](_0x32f220);}export async function readHookInput(){const _0x3708fa=_0x5ca7;let _0x4fb71f='';try{for await(const _0x1cc667 of process['stdin']){_0x4fb71f+=_0x1cc667;}}catch{return null;}if(!_0x4fb71f[_0x3708fa(0x12d)]())return null;try{return JSON['parse'](_0x4fb71f);}catch{return null;}}export async function getEnabledSessionId(_0x23e251){const _0x1bfbf3=_0x5ca7,_0x2c82b9={'KHqPg':function(_0x4f1d3b){return _0x4f1d3b();}};if(_0x23e251)return isSessionEnabled(_0x23e251)?_0x23e251:null;const _0x51d1f2=await _0x2c82b9[_0x1bfbf3(0x12f)](readHookInput),_0x23e0a6=_0x51d1f2?.[_0x1bfbf3(0x132)];if(!_0x23e0a6||!isSessionEnabled(_0x23e0a6))return null;return _0x23e0a6;}export async function getEnabledHookContext(_0x190a15){const _0x1dee1a={'lwNnk':function(_0x3229f6,_0xa8d6b4){return _0x3229f6(_0xa8d6b4);},'mpGOG':function(_0x223f24){return _0x223f24();}};if(_0x190a15){if(!_0x1dee1a['lwNnk'](isSessionEnabled,_0x190a15))return null;return{'sessionId':_0x190a15,'input':{'session_id':_0x190a15}};}const _0x4280c5=await _0x1dee1a['mpGOG'](readHookInput),_0x598e72=_0x4280c5?.['session_id'];if(!_0x598e72||!isSessionEnabled(_0x598e72))return null;return{'sessionId':_0x598e72,'input':_0x4280c5};}
1
+ function _0x8d5c(){const _0x4ac0c3=['3300130ZTixOf','129APxgmB','5072940nfJEDe','33fqaDmV','session_id','7OuLKwI','4340IlcTaD','66412NbvgJK','7212jsSIYX','78700jbxDnT','pdOGR','1907270tytkDJ','4239448Pttxhi'];_0x8d5c=function(){return _0x4ac0c3;};return _0x8d5c();}(function(_0x443db7,_0x65d1f){const _0x5508f8=_0x5a85,_0x13ae5b=_0x443db7();while(!![]){try{const _0x4068ef=-parseInt(_0x5508f8(0x12a))/0x1*(parseInt(_0x5508f8(0x12e))/0x2)+-parseInt(_0x5508f8(0x133))/0x3*(parseInt(_0x5508f8(0x12c))/0x4)+-parseInt(_0x5508f8(0x130))/0x5+parseInt(_0x5508f8(0x12d))/0x6*(parseInt(_0x5508f8(0x12b))/0x7)+-parseInt(_0x5508f8(0x131))/0x8+parseInt(_0x5508f8(0x127))/0x9+parseInt(_0x5508f8(0x132))/0xa*(parseInt(_0x5508f8(0x128))/0xb);if(_0x4068ef===_0x65d1f)break;else _0x13ae5b['push'](_0x13ae5b['shift']());}catch(_0x408fff){_0x13ae5b['push'](_0x13ae5b['shift']());}}}(_0x8d5c,0x6135f));import{isSessionEnabled}from'../utils/sessionCache.js';export function printBlock(_0x539065){console['log'](_0x539065);}function _0x5a85(_0x1d104f,_0x3875a6){_0x1d104f=_0x1d104f-0x127;const _0x8d5cd5=_0x8d5c();let _0x5a856e=_0x8d5cd5[_0x1d104f];return _0x5a856e;}export async function readHookInput(){let _0x2c2395='';try{for await(const _0x435558 of process['stdin']){_0x2c2395+=_0x435558;}}catch{return null;}if(!_0x2c2395['trim']())return null;try{return JSON['parse'](_0x2c2395);}catch{return null;}}export async function getEnabledSessionId(_0x4fc5f8){if(_0x4fc5f8)return isSessionEnabled(_0x4fc5f8)?_0x4fc5f8:null;const _0x19c54a=await readHookInput(),_0x47dac0=_0x19c54a?.['session_id'];if(!_0x47dac0||!isSessionEnabled(_0x47dac0))return null;return _0x47dac0;}export async function getEnabledHookContext(_0x555541){const _0x18126f=_0x5a85,_0x3e9d37={'pdOGR':function(_0x352ef9,_0x229aeb){return _0x352ef9(_0x229aeb);}};if(_0x555541){if(!_0x3e9d37[_0x18126f(0x12f)](isSessionEnabled,_0x555541))return null;return{'sessionId':_0x555541,'input':{'session_id':_0x555541}};}const _0x4df35d=await readHookInput(),_0x48c10d=_0x4df35d?.[_0x18126f(0x129)];if(!_0x48c10d||!isSessionEnabled(_0x48c10d))return null;return{'sessionId':_0x48c10d,'input':_0x4df35d};}
@@ -1 +1 @@
1
- (function(_0x3729c4,_0x47d4b4){const _0x23bc96=_0x5d6a,_0x50ffd0=_0x3729c4();while(!![]){try{const _0x4e683e=parseInt(_0x23bc96(0x190))/0x1+-parseInt(_0x23bc96(0x199))/0x2*(-parseInt(_0x23bc96(0x196))/0x3)+parseInt(_0x23bc96(0x18e))/0x4*(-parseInt(_0x23bc96(0x192))/0x5)+parseInt(_0x23bc96(0x197))/0x6+parseInt(_0x23bc96(0x18f))/0x7+-parseInt(_0x23bc96(0x193))/0x8+-parseInt(_0x23bc96(0x191))/0x9;if(_0x4e683e===_0x47d4b4)break;else _0x50ffd0['push'](_0x50ffd0['shift']());}catch(_0xb7137e){_0x50ffd0['push'](_0x50ffd0['shift']());}}}(_0xd0dc,0xa7807));import{printBlock,getEnabledHookContext}from'./output.js';import{shouldShowPlanReminder}from'../utils/sessionCache.js';function _0xd0dc(){const _0x405d75=['7119438aUawSn','input','19340RDVbLt','2132vPxsNC','4789526QdBNci','586120ZBWZAh','7321131LXjVng','265mJfYJZ','7510288tTPioF','===\x20RANGER:\x20ACTION\x20REQUIRED\x20===\x0a\x0aIf\x20this\x20plan\x20involves\x20ANY\x20UI\x20changes,\x20you\x20MUST:\x0a\x0a1.\x20**READ\x20/ranger\x20skill\x20NOW**\x20-\x20specifically\x20the\x20create.md\x20instructions\x0a2.\x20**Add\x20a\x20Ranger\x20Feature\x20Review\x20Specification**\x20to\x20the\x20end\x20of\x20your\x20plan\x0a\x0aDO\x20NOT\x20write\x20scenarios\x20without\x20reading\x20create.md\x20first.\x0aScenarios\x20are\x20E2E\x20test\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0aYour\x20plan\x20must\x20end\x20with:\x0a```\x0a###\x20Ranger\x20Feature\x20Review\x20Specification\x20(create\x20this\x20first\x20with\x20`ranger\x20create`)\x0aFeature\x20Review\x20Name:\x20<name>\x0aDescription:\x20<description>\x0aScenarios:\x0a1.\x20<E2E\x20user\x20flow\x20that\x20can\x20be\x20verified\x20in\x20browser>\x0a2.\x20<another\x20E2E\x20user\x20flow\x20if\x20needed>\x0a```\x0a\x0aThen\x20run:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario1>\x22\x20-c\x20\x22<scenario2>\x22`\x0a\x0a===\x20END\x20===','YFtPz','3tpNgFt'];_0xd0dc=function(){return _0x405d75;};return _0xd0dc();}function _0x5d6a(_0x1f2dd6,_0x228c14){_0x1f2dd6=_0x1f2dd6-0x18e;const _0xd0dc7f=_0xd0dc();let _0x5d6a8e=_0xd0dc7f[_0x1f2dd6];return _0x5d6a8e;}export async function planReminder(_0x568be6){const _0xa44dfc=_0x5d6a,_0x38cc96={'YFtPz':function(_0x8f0f26,_0x3d0282){return _0x8f0f26(_0x3d0282);},'ewLtf':function(_0x20c858,_0x3ca45b){return _0x20c858!==_0x3ca45b;},'PVoKh':'plan'},_0x550f4=await _0x38cc96[_0xa44dfc(0x195)](getEnabledHookContext,_0x568be6);if(!_0x550f4)return;if(_0x38cc96['ewLtf'](_0x550f4[_0xa44dfc(0x198)]['permission_mode'],_0x38cc96['PVoKh']))return;if(!shouldShowPlanReminder(_0x550f4['sessionId']))return;_0x38cc96[_0xa44dfc(0x195)](printBlock,_0xa44dfc(0x194));}
1
+ (function(_0x473150,_0x4f5262){const _0x32673a=_0x2112,_0xe09471=_0x473150();while(!![]){try{const _0x1875c6=-parseInt(_0x32673a(0x17e))/0x1+parseInt(_0x32673a(0x17f))/0x2+parseInt(_0x32673a(0x184))/0x3*(-parseInt(_0x32673a(0x181))/0x4)+parseInt(_0x32673a(0x186))/0x5*(-parseInt(_0x32673a(0x17d))/0x6)+parseInt(_0x32673a(0x183))/0x7+-parseInt(_0x32673a(0x17b))/0x8+-parseInt(_0x32673a(0x180))/0x9*(-parseInt(_0x32673a(0x17c))/0xa);if(_0x1875c6===_0x4f5262)break;else _0xe09471['push'](_0xe09471['shift']());}catch(_0x5c8770){_0xe09471['push'](_0xe09471['shift']());}}}(_0x11bc,0x81b04));function _0x2112(_0x233197,_0x2ac6a7){_0x233197=_0x233197-0x179;const _0x11bca6=_0x11bc();let _0x2112fc=_0x11bca6[_0x233197];return _0x2112fc;}import{printBlock,getEnabledHookContext}from'./output.js';import{shouldShowPlanReminder}from'../utils/sessionCache.js';export async function planReminder(_0x45ef8c){const _0x3a11e2=_0x2112,_0x59e035={'CFOHz':function(_0x41d8a6,_0xdcd249){return _0x41d8a6(_0xdcd249);},'VeHal':function(_0x2f85d5,_0x33b2ff){return _0x2f85d5!==_0x33b2ff;}},_0x64b204=await _0x59e035['CFOHz'](getEnabledHookContext,_0x45ef8c);if(!_0x64b204)return;if(_0x59e035['VeHal'](_0x64b204[_0x3a11e2(0x179)]['permission_mode'],_0x3a11e2(0x17a)))return;if(!_0x59e035[_0x3a11e2(0x185)](shouldShowPlanReminder,_0x64b204[_0x3a11e2(0x182)]))return;printBlock('===\x20RANGER:\x20ACTION\x20REQUIRED\x20===\x0a\x0aIf\x20this\x20plan\x20involves\x20ANY\x20UI\x20changes,\x20you\x20MUST:\x0a\x0a1.\x20**READ\x20/ranger\x20skill\x20NOW**\x20-\x20specifically\x20the\x20create.md\x20instructions\x0a2.\x20**Add\x20a\x20Ranger\x20Feature\x20Review\x20Specification**\x20to\x20the\x20end\x20of\x20your\x20plan\x0a\x0aDO\x20NOT\x20write\x20scenarios\x20without\x20reading\x20create.md\x20first.\x0aScenarios\x20are\x20E2E\x20test\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0aYour\x20plan\x20must\x20end\x20with:\x0a```\x0a###\x20Ranger\x20Feature\x20Review\x20Specification\x20(create\x20this\x20first\x20with\x20`ranger\x20create`)\x0aFeature\x20Review\x20Name:\x20<name>\x0aDescription:\x20<description>\x0aScenarios:\x0a1.\x20<E2E\x20user\x20flow\x20that\x20can\x20be\x20verified\x20in\x20browser>\x0a2.\x20<another\x20E2E\x20user\x20flow\x20if\x20needed>\x0a```\x0a\x0aThen\x20run:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario1>\x22\x20-c\x20\x22<scenario2>\x22`\x0a\x0a===\x20END\x20===');}function _0x11bc(){const _0x3760e3=['CFOHz','4960btXYxF','input','plan','8401368DCSZXR','2110ZZpGXv','5706VvygyA','249268dVyJUY','882894AMZDzy','82179oiqmRw','8120xCjJsB','sessionId','6095719gxqWwk','687VmILoW'];_0x11bc=function(){return _0x3760e3;};return _0x11bc();}
@@ -1 +1 @@
1
- (function(_0x38540b,_0x5d1312){const _0x3a286d=_0x48e8,_0x530968=_0x38540b();while(!![]){try{const _0x23111a=-parseInt(_0x3a286d(0x1af))/0x1*(parseInt(_0x3a286d(0x1b3))/0x2)+parseInt(_0x3a286d(0x1b4))/0x3*(-parseInt(_0x3a286d(0x1ad))/0x4)+-parseInt(_0x3a286d(0x1b1))/0x5+-parseInt(_0x3a286d(0x1b0))/0x6+-parseInt(_0x3a286d(0x1ae))/0x7+parseInt(_0x3a286d(0x1b2))/0x8*(parseInt(_0x3a286d(0x1b5))/0x9)+-parseInt(_0x3a286d(0x1b6))/0xa*(-parseInt(_0x3a286d(0x1b7))/0xb);if(_0x23111a===_0x5d1312)break;else _0x530968['push'](_0x530968['shift']());}catch(_0x5cc5d9){_0x530968['push'](_0x530968['shift']());}}}(_0x5ef4,0xba476));function _0x48e8(_0x5125d0,_0x456ee2){_0x5125d0=_0x5125d0-0x1ad;const _0x5ef413=_0x5ef4();let _0x48e822=_0x5ef413[_0x5125d0];return _0x48e822;}import{printBlock,getEnabledSessionId}from'./output.js';function _0x5ef4(){const _0x2d0cdc=['9IHVrUM','20591340GOKior','11rlHDeV','1604068xacBPr','1570856FUnVbG','202823AupWyW','3780324OECsbk','3386575oMvGCv','6715848vJZdOT','2NbbvcZ','3MrNIrn'];_0x5ef4=function(){return _0x2d0cdc;};return _0x5ef4();}export async function planStart(_0x38d0e5){const _0x844ba2=await getEnabledSessionId(_0x38d0e5);if(!_0x844ba2)return;printBlock('===\x20RANGER:\x20ACTION\x20REQUIRED\x20===\x0a\x0aIf\x20this\x20plan\x20involves\x20UI\x20changes,\x20you\x20MUST:\x0a\x0a1.\x20**READ\x20/ranger\x20skill**\x20-\x20specifically\x20create.md\x0a2.\x20**Add\x20a\x20Ranger\x20Feature\x20Review\x20Specification**\x20at\x20the\x20end\x20of\x20your\x20plan\x0a\x0aScenarios\x20are\x20E2E\x20test\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0a**Good:**\x20\x22User\x20can\x20log\x20in\x20with\x20valid\x20credentials\x20and\x20see\x20dashboard\x22\x0a**Bad:**\x20\x22Add\x20form\x20validation\x22\x20or\x20\x22Button\x20is\x20visible\x22\x0a\x0aAfter\x20planning,\x20run:\x0a`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<E2E\x20flow\x201>\x22\x20-c\x20\x22<E2E\x20flow\x202>\x22`\x0a\x0a===\x20END\x20===');}
1
+ function _0x462e(_0x350e73,_0x4770c6){_0x350e73=_0x350e73-0xbd;const _0x502ce5=_0x502c();let _0x462ed2=_0x502ce5[_0x350e73];return _0x462ed2;}function _0x502c(){const _0x39733c=['80jqCXnK','6XBxJaY','222280MQfQXi','6809322lYTmum','9668910wBOsFz','gAxGf','351DFKFlz','2643091bmwtBm','4OultSB','1157618QjOGmx','1296461mWzzvt','1466106iCOouR'];_0x502c=function(){return _0x39733c;};return _0x502c();}(function(_0x1e2691,_0x544939){const _0x325a0f=_0x462e,_0x429a60=_0x1e2691();while(!![]){try{const _0x3d64bb=-parseInt(_0x325a0f(0xbf))/0x1+-parseInt(_0x325a0f(0xc0))/0x2*(parseInt(_0x325a0f(0xc2))/0x3)+-parseInt(_0x325a0f(0xbd))/0x4*(-parseInt(_0x325a0f(0xc5))/0x5)+parseInt(_0x325a0f(0xc4))/0x6+-parseInt(_0x325a0f(0xbe))/0x7+parseInt(_0x325a0f(0xc3))/0x8*(-parseInt(_0x325a0f(0xc7))/0x9)+parseInt(_0x325a0f(0xc1))/0xa*(parseInt(_0x325a0f(0xc8))/0xb);if(_0x3d64bb===_0x544939)break;else _0x429a60['push'](_0x429a60['shift']());}catch(_0x5baf72){_0x429a60['push'](_0x429a60['shift']());}}}(_0x502c,0xef1a1));import{printBlock,getEnabledSessionId}from'./output.js';export async function planStart(_0x534605){const _0x3c1c21=_0x462e,_0x45f342={'gAxGf':function(_0x3d150a,_0x39dfc1){return _0x3d150a(_0x39dfc1);}},_0x599b81=await _0x45f342['gAxGf'](getEnabledSessionId,_0x534605);if(!_0x599b81)return;_0x45f342[_0x3c1c21(0xc6)](printBlock,'===\x20RANGER:\x20ACTION\x20REQUIRED\x20===\x0a\x0aIf\x20this\x20plan\x20involves\x20UI\x20changes,\x20you\x20MUST:\x0a\x0a1.\x20**READ\x20/ranger\x20skill**\x20-\x20specifically\x20create.md\x0a2.\x20**Add\x20a\x20Ranger\x20Feature\x20Review\x20Specification**\x20at\x20the\x20end\x20of\x20your\x20plan\x0a\x0aScenarios\x20are\x20E2E\x20test\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0a**Good:**\x20\x22User\x20can\x20log\x20in\x20with\x20valid\x20credentials\x20and\x20see\x20dashboard\x22\x0a**Bad:**\x20\x22Add\x20form\x20validation\x22\x20or\x20\x22Button\x20is\x20visible\x22\x0a\x0aAfter\x20planning,\x20run:\x0a`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<E2E\x20flow\x201>\x22\x20-c\x20\x22<E2E\x20flow\x202>\x22`\x0a\x0a===\x20END\x20===');}
@@ -1 +1 @@
1
- (function(_0x28d6cf,_0x16d2f0){const _0x389075=_0x5e0a,_0x572a13=_0x28d6cf();while(!![]){try{const _0x43a65f=-parseInt(_0x389075(0x1ca))/0x1+-parseInt(_0x389075(0x1cf))/0x2+-parseInt(_0x389075(0x1c9))/0x3*(parseInt(_0x389075(0x1d5))/0x4)+parseInt(_0x389075(0x1cc))/0x5*(parseInt(_0x389075(0x1cb))/0x6)+parseInt(_0x389075(0x1d3))/0x7*(-parseInt(_0x389075(0x1c8))/0x8)+parseInt(_0x389075(0x1d0))/0x9*(-parseInt(_0x389075(0x1d2))/0xa)+parseInt(_0x389075(0x1ce))/0xb;if(_0x43a65f===_0x16d2f0)break;else _0x572a13['push'](_0x572a13['shift']());}catch(_0x5d6b20){_0x572a13['push'](_0x572a13['shift']());}}}(_0x15d6,0x255ec));import{getSessionEntry,updateBranchTracking}from'../utils/sessionCache.js';function _0x15d6(){const _0x5975f1=['qOUfZ','27524gaysAJ','88bUzvqE','111ufHVFN','116637sStwqV','42dQxZra','21985aarUDz','stringify','11407968cfOPPb','350524TlLygf','903627JZeoVq','log','20rcKtiO','106589VAMrPJ'];_0x15d6=function(){return _0x5975f1;};return _0x15d6();}import{getToken}from'../utils/keychain.js';import{getEnabledSessionId}from'./output.js';function _0x5e0a(_0x587264,_0x44ce3f){_0x587264=_0x587264-0x1c8;const _0x15d6b6=_0x15d6();let _0x5e0abd=_0x15d6b6[_0x587264];return _0x5e0abd;}export async function postEdit(_0x259fcb){const _0x53daf2=_0x5e0a,_0x346d72={'ALLJu':function(_0x42de77){return _0x42de77();},'ONXpH':function(_0x39c6ef,_0x97eae7){return _0x39c6ef(_0x97eae7);},'qOUfZ':'PostToolUse'},_0x28b5f1=await getEnabledSessionId(_0x259fcb);if(!_0x28b5f1)return;updateBranchTracking(_0x28b5f1);const _0xd404b7=await _0x346d72['ALLJu'](getToken);if(!_0xd404b7)return;const _0x520f9c=_0x346d72['ONXpH'](getSessionEntry,_0x28b5f1);if(_0x520f9c){const _0x4345c0={'hookSpecificOutput':{'hookEventName':_0x346d72['qOUfZ'],'additionalContext':'RANGER:\x20If\x20this\x20change\x20expands\x20the\x20scope\x20of\x20the\x20active\x20feature\x20review,\x20you\x20may\x20need\x20to\x20add\x20a\x20scenario.\x20See\x20Workflow\x201\x20in\x20/ranger.\x20If\x20you\x20decide\x20to\x20add\x20a\x20scenario,\x20you\x20MUST\x20read\x20Workflow\x201\x20IN\x20DETAIL\x20first.\x20Remember:\x20when\x20you\x20finish\x20your\x20work,\x20your\x20final\x20message\x20to\x20the\x20user\x20must\x20direct\x20them\x20to\x20the\x20Ranger\x20feature\x20review\x20dashboard\x20to\x20review\x20(e.g.\x20\x22Go\x20to\x20the\x20Ranger\x20feature\x20dashboard\x20to\x20review:\x20https://dashboard.ranger.net/features/{feature_id}\x22).'}};console[_0x53daf2(0x1d1)](JSON['stringify'](_0x4345c0));return;}const _0x1bb3ff={'hookSpecificOutput':{'hookEventName':_0x346d72[_0x53daf2(0x1d4)],'additionalContext':'RANGER:\x20If\x20this\x20is\x20for\x20a\x20UI\x20feature,\x20you\x20MUST\x20use\x20/ranger\x20to\x20either\x20create\x20a\x20new\x20feature\x20review\x20or\x20resume\x20an\x20existing\x20one.'}};console['log'](JSON[_0x53daf2(0x1cd)](_0x1bb3ff));}
1
+ function _0x4b3e(_0x2bf2de,_0x4b2450){_0x2bf2de=_0x2bf2de-0x13d;const _0x10b196=_0x10b1();let _0x4b3e95=_0x10b196[_0x2bf2de];return _0x4b3e95;}(function(_0x522e29,_0x2aa439){const _0x4c54eb=_0x4b3e,_0x41514f=_0x522e29();while(!![]){try{const _0x13d4ea=-parseInt(_0x4c54eb(0x141))/0x1+parseInt(_0x4c54eb(0x145))/0x2+-parseInt(_0x4c54eb(0x13e))/0x3+parseInt(_0x4c54eb(0x147))/0x4+-parseInt(_0x4c54eb(0x142))/0x5+parseInt(_0x4c54eb(0x13f))/0x6*(-parseInt(_0x4c54eb(0x144))/0x7)+parseInt(_0x4c54eb(0x13d))/0x8*(parseInt(_0x4c54eb(0x140))/0x9);if(_0x13d4ea===_0x2aa439)break;else _0x41514f['push'](_0x41514f['shift']());}catch(_0x30403f){_0x41514f['push'](_0x41514f['shift']());}}}(_0x10b1,0x4a6e0));function _0x10b1(){const _0x2d0139=['RANGER:\x20If\x20this\x20change\x20expands\x20the\x20scope\x20of\x20the\x20active\x20feature\x20review,\x20you\x20may\x20need\x20to\x20add\x20a\x20scenario.\x20See\x20Workflow\x201\x20in\x20/ranger.\x20If\x20you\x20decide\x20to\x20add\x20a\x20scenario,\x20you\x20MUST\x20read\x20Workflow\x201\x20IN\x20DETAIL\x20first.\x20Remember:\x20when\x20you\x20finish\x20your\x20work,\x20your\x20final\x20message\x20to\x20the\x20user\x20must\x20direct\x20them\x20to\x20the\x20Ranger\x20feature\x20review\x20dashboard\x20to\x20review\x20(e.g.\x20\x22Go\x20to\x20the\x20Ranger\x20feature\x20dashboard\x20to\x20review:\x20https://dashboard.ranger.net/features/{feature_id}\x22).','3006941VTcwko','614904vCjuoB','stringify','418860QynDFt','PostToolUse','8086016vUXCga','637947agmCBx','6VeJUMR','9XHTzrV','102807oAOSmd','1865180IaftTQ'];_0x10b1=function(){return _0x2d0139;};return _0x10b1();}import{getSessionEntry,updateBranchTracking}from'../utils/sessionCache.js';import{getToken}from'../utils/keychain.js';import{getEnabledSessionId}from'./output.js';export async function postEdit(_0x2a71ff){const _0x3db587=_0x4b3e,_0x419174={'ohbtK':function(_0x327209){return _0x327209();},'PzznZ':_0x3db587(0x148)},_0x2e9abb=await getEnabledSessionId(_0x2a71ff);if(!_0x2e9abb)return;updateBranchTracking(_0x2e9abb);const _0x199392=await _0x419174['ohbtK'](getToken);if(!_0x199392)return;const _0x333dd8=getSessionEntry(_0x2e9abb);if(_0x333dd8){const _0x565bac={'hookSpecificOutput':{'hookEventName':'PostToolUse','additionalContext':_0x3db587(0x143)}};console['log'](JSON[_0x3db587(0x146)](_0x565bac));return;}const _0xaf2886={'hookSpecificOutput':{'hookEventName':_0x419174['PzznZ'],'additionalContext':'RANGER:\x20If\x20this\x20is\x20for\x20a\x20UI\x20feature,\x20you\x20MUST\x20use\x20/ranger\x20to\x20either\x20create\x20a\x20new\x20feature\x20review\x20or\x20resume\x20an\x20existing\x20one.'}};console['log'](JSON['stringify'](_0xaf2886));}
@@ -1 +1 @@
1
- function _0x2d07(){const _0x2468f0=['3108010RCrYJK','1980410QIApmL','uAnjm','1vQXyDp','108vVFOBw','43410xhRFor','2419884xxdhDr','5062032NHOVAJ','375056rPoeGz','35lzrNkZ','99JTkNLs','4147782MgCIPy'];_0x2d07=function(){return _0x2468f0;};return _0x2d07();}(function(_0x40e638,_0x4e6a7c){const _0x3b4f6d=_0x9277,_0x2debdc=_0x40e638();while(!![]){try{const _0x3fbd2c=parseInt(_0x3b4f6d(0x83))/0x1*(-parseInt(_0x3b4f6d(0x80))/0x2)+parseInt(_0x3b4f6d(0x7b))/0x3+parseInt(_0x3b4f6d(0x78))/0x4*(parseInt(_0x3b4f6d(0x79))/0x5)+-parseInt(_0x3b4f6d(0x7f))/0x6+-parseInt(_0x3b4f6d(0x7d))/0x7*(parseInt(_0x3b4f6d(0x7c))/0x8)+-parseInt(_0x3b4f6d(0x7a))/0x9+parseInt(_0x3b4f6d(0x81))/0xa*(parseInt(_0x3b4f6d(0x7e))/0xb);if(_0x3fbd2c===_0x4e6a7c)break;else _0x2debdc['push'](_0x2debdc['shift']());}catch(_0x57243e){_0x2debdc['push'](_0x2debdc['shift']());}}}(_0x2d07,0xe9493));import{getToken}from'../utils/keychain.js';function _0x9277(_0x5cca74,_0x405ee6){_0x5cca74=_0x5cca74-0x78;const _0x2d07bb=_0x2d07();let _0x927706=_0x2d07bb[_0x5cca74];return _0x927706;}import{printBlock,getEnabledSessionId}from'./output.js';export async function preCompact(_0x2f16b0){const _0x4a8236=_0x9277,_0x55e800={'uAnjm':function(_0xe7e007,_0x4e2a1f){return _0xe7e007(_0x4e2a1f);}},_0x4d4f76=await _0x55e800[_0x4a8236(0x82)](getEnabledSessionId,_0x2f16b0);if(!_0x4d4f76)return;try{const _0x51b84e=await getToken();if(!_0x51b84e)return;_0x55e800[_0x4a8236(0x82)](printBlock,'===\x20RANGER:\x20PRESERVE\x20IN\x20COMPACTION\x20===\x0a\x0aIf\x20you\x20created\x20a\x20plan\x20with\x20a\x20**Ranger\x20Feature\x20Review\x20Specification**,\x20you\x20MUST\x20preserve\x20it\x20in\x20the\x20compaction\x20summary.\x0a\x0aThe\x20specification\x20contains\x20scenarios\x20that\x20will\x20be\x20used\x20with\x20`ranger\x20create`.');}catch{}}
1
+ function _0x12cc(){const _0x150dcc=['59589068YBSZZu','382098LFTStm','607936xpWdRO','2588728dkeSKZ','89829XgHFhO','2897490jpSJlu','===\x20RANGER:\x20PRESERVE\x20IN\x20COMPACTION\x20===\x0a\x0aIf\x20you\x20created\x20a\x20plan\x20with\x20a\x20**Ranger\x20Feature\x20Review\x20Specification**,\x20you\x20MUST\x20preserve\x20it\x20in\x20the\x20compaction\x20summary.\x0a\x0aThe\x20specification\x20contains\x20scenarios\x20that\x20will\x20be\x20used\x20with\x20`ranger\x20create`.','27WJitTn','10gzLrOD','21MNVwtC','3120669lrEvpT','35TvlrZo'];_0x12cc=function(){return _0x150dcc;};return _0x12cc();}function _0x1309(_0x3843cd,_0x48e471){_0x3843cd=_0x3843cd-0x1a4;const _0x12cc4e=_0x12cc();let _0x1309e1=_0x12cc4e[_0x3843cd];return _0x1309e1;}(function(_0x3dca4a,_0x29b034){const _0x5ddd5c=_0x1309,_0x15fe1d=_0x3dca4a();while(!![]){try{const _0x35d03a=parseInt(_0x5ddd5c(0x1a5))/0x1+-parseInt(_0x5ddd5c(0x1a6))/0x2+-parseInt(_0x5ddd5c(0x1a8))/0x3*(parseInt(_0x5ddd5c(0x1af))/0x4)+-parseInt(_0x5ddd5c(0x1ac))/0x5*(parseInt(_0x5ddd5c(0x1ae))/0x6)+-parseInt(_0x5ddd5c(0x1aa))/0x7*(parseInt(_0x5ddd5c(0x1a4))/0x8)+parseInt(_0x5ddd5c(0x1ab))/0x9*(-parseInt(_0x5ddd5c(0x1a9))/0xa)+parseInt(_0x5ddd5c(0x1ad))/0xb;if(_0x35d03a===_0x29b034)break;else _0x15fe1d['push'](_0x15fe1d['shift']());}catch(_0x2f0b81){_0x15fe1d['push'](_0x15fe1d['shift']());}}}(_0x12cc,0xe2591));import{getToken}from'../utils/keychain.js';import{printBlock,getEnabledSessionId}from'./output.js';export async function preCompact(_0x2cdaf0){const _0x492ea3=_0x1309,_0x15bc5f={'cYrEG':function(_0x46ba1d,_0x919972){return _0x46ba1d(_0x919972);}},_0x4ba3ae=await _0x15bc5f['cYrEG'](getEnabledSessionId,_0x2cdaf0);if(!_0x4ba3ae)return;try{const _0x3f2794=await getToken();if(!_0x3f2794)return;_0x15bc5f['cYrEG'](printBlock,_0x492ea3(0x1a7));}catch{}}
@@ -1 +1 @@
1
- function _0x1512(_0x45d0a3,_0x4aaf29){_0x45d0a3=_0x45d0a3-0x160;const _0x48c965=_0x48c9();let _0x151269=_0x48c965[_0x45d0a3];return _0x151269;}(function(_0x422efe,_0x387d6a){const _0x39dee8=_0x1512,_0x3e849f=_0x422efe();while(!![]){try{const _0x8dcbe4=-parseInt(_0x39dee8(0x164))/0x1+parseInt(_0x39dee8(0x16d))/0x2+parseInt(_0x39dee8(0x170))/0x3+parseInt(_0x39dee8(0x163))/0x4*(parseInt(_0x39dee8(0x168))/0x5)+-parseInt(_0x39dee8(0x162))/0x6+parseInt(_0x39dee8(0x160))/0x7*(-parseInt(_0x39dee8(0x166))/0x8)+parseInt(_0x39dee8(0x167))/0x9*(-parseInt(_0x39dee8(0x16a))/0xa);if(_0x8dcbe4===_0x387d6a)break;else _0x3e849f['push'](_0x3e849f['shift']());}catch(_0x3b10c3){_0x3e849f['push'](_0x3e849f['shift']());}}}(_0x48c9,0x85a9c));import{isSessionEnabled,recordEnabledSessionCleared}from'../utils/sessionCache.js';import{readHookInput}from'./output.js';export async function sessionEnd(_0x5b8898){const _0x230021=_0x1512,_0x54bd55={'WhnNm':function(_0x33bdfe,_0x34fcb3){return _0x33bdfe(_0x34fcb3);},'NgpqM':function(_0x5a7fb3){return _0x5a7fb3();},'XcMXl':function(_0x2a118c,_0x300516){return _0x2a118c===_0x300516;},'qwOab':'clear'},_0x4aee41=process[_0x230021(0x16c)]['CLAUDE_SESSION_ID'];let _0x59256c=_0x5b8898,_0x5a38e3;if(!_0x5b8898){if(_0x4aee41&&!_0x54bd55[_0x230021(0x165)](isSessionEnabled,_0x4aee41))return;const _0xe9841d=await _0x54bd55[_0x230021(0x169)](readHookInput);_0x59256c=_0xe9841d?.[_0x230021(0x16f)]||_0x4aee41,_0x5a38e3=_0xe9841d?.[_0x230021(0x161)];}if(!_0x59256c)return;_0x54bd55[_0x230021(0x16e)](_0x5a38e3,_0x54bd55[_0x230021(0x16b)])&&recordEnabledSessionCleared(_0x59256c);}function _0x48c9(){const _0x22bef4=['env','1615870rYOULn','XcMXl','session_id','2999142MNBFHX','3851491ripjdY','reason','2962314jaiZSR','1845308ZLbxDn','314367EWofIo','WhnNm','8vvAlLE','142119HyfaCE','5YZIgZn','NgpqM','230JVWhFI','qwOab'];_0x48c9=function(){return _0x22bef4;};return _0x48c9();}
1
+ function _0x4f8e(){const _0x59d4eb=['session_id','40139irUXxq','4WVuvqa','1024650ltqGJf','SAgIX','20TTMffm','97530SKAuJx','4377470RhRqqG','5013YJhArP','28yqooZK','5965372jxXRWE','11208pVbhdd','12750353oqUoHr'];_0x4f8e=function(){return _0x59d4eb;};return _0x4f8e();}(function(_0x21afff,_0x4c6ad5){const _0x3ec2e1=_0x4975,_0x539c4d=_0x21afff();while(!![]){try{const _0xd76db3=-parseInt(_0x3ec2e1(0x181))/0x1*(-parseInt(_0x3ec2e1(0x17c))/0x2)+parseInt(_0x3ec2e1(0x186))/0x3+parseInt(_0x3ec2e1(0x182))/0x4*(-parseInt(_0x3ec2e1(0x187))/0x5)+parseInt(_0x3ec2e1(0x183))/0x6+-parseInt(_0x3ec2e1(0x17d))/0x7+-parseInt(_0x3ec2e1(0x17e))/0x8*(parseInt(_0x3ec2e1(0x17b))/0x9)+-parseInt(_0x3ec2e1(0x185))/0xa*(-parseInt(_0x3ec2e1(0x17f))/0xb);if(_0xd76db3===_0x4c6ad5)break;else _0x539c4d['push'](_0x539c4d['shift']());}catch(_0x5264b8){_0x539c4d['push'](_0x539c4d['shift']());}}}(_0x4f8e,0x8c7c6));import{isSessionEnabled,recordEnabledSessionCleared}from'../utils/sessionCache.js';import{readHookInput}from'./output.js';function _0x4975(_0x19c807,_0x3505de){_0x19c807=_0x19c807-0x17b;const _0x4f8e2f=_0x4f8e();let _0x4975e8=_0x4f8e2f[_0x19c807];return _0x4975e8;}export async function sessionEnd(_0x478edc){const _0x34330b=_0x4975,_0x2c49cc={'SAgIX':function(_0x1e46a9,_0x53eea9){return _0x1e46a9===_0x53eea9;}},_0x31fe02=process['env']['CLAUDE_SESSION_ID'];let _0x5b4023=_0x478edc,_0x3d2a93;if(!_0x478edc){if(_0x31fe02&&!isSessionEnabled(_0x31fe02))return;const _0x542952=await readHookInput();_0x5b4023=_0x542952?.[_0x34330b(0x180)]||_0x31fe02,_0x3d2a93=_0x542952?.['reason'];}if(!_0x5b4023)return;_0x2c49cc[_0x34330b(0x184)](_0x3d2a93,'clear')&&recordEnabledSessionCleared(_0x5b4023);}
@@ -1 +1 @@
1
- function _0x1234(_0x36f2f8,_0x28a29e){_0x36f2f8=_0x36f2f8-0x1c7;const _0x277f91=_0x277f();let _0x123498=_0x277f91[_0x36f2f8];return _0x123498;}function _0x277f(){const _0x48b726=['AJrgR','7374880BnRXDX','gHjMS','860725Kvaxza','stdin','1607920PPeCyE','626732xUtWRR','master','GnWqe','CvbBJ','session_id','success','9GnWZtN','mKeqw','trackCommandEnd','\x20(Branch:\x20','env','main','2477363AcTMFs','8562yvHIlx','6AHMxKV','OmRth','export\x20CLAUDE_SESSION_ID=\x22','130444OgfiOU','1ZqlYWA'];_0x277f=function(){return _0x48b726;};return _0x277f();}(function(_0x1c0702,_0x3fb540){const _0x2cd269=_0x1234,_0x4ddcb0=_0x1c0702();while(!![]){try{const _0x593605=parseInt(_0x2cd269(0x1db))/0x1*(-parseInt(_0x2cd269(0x1da))/0x2)+-parseInt(_0x2cd269(0x1d6))/0x3+-parseInt(_0x2cd269(0x1c9))/0x4+-parseInt(_0x2cd269(0x1df))/0x5*(parseInt(_0x2cd269(0x1d7))/0x6)+-parseInt(_0x2cd269(0x1d5))/0x7+parseInt(_0x2cd269(0x1c8))/0x8+parseInt(_0x2cd269(0x1cf))/0x9*(parseInt(_0x2cd269(0x1dd))/0xa);if(_0x593605===_0x3fb540)break;else _0x4ddcb0['push'](_0x4ddcb0['shift']());}catch(_0x4b31ae){_0x4ddcb0['push'](_0x4ddcb0['shift']());}}}(_0x277f,0x2dd11));import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';import{getToken}from'../utils/keychain.js';const RANGER_AUTO_ENABLED_PROMPT='=================================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🚨\x20RANGER\x20IS\x20ACTIVE\x20🚨\x0a=================================================================\x0a\x0aThis\x20session\x20has\x20Ranger\x20ENABLED.\x20Before\x20doing\x20ANYTHING\x20else:\x0a\x0a1.\x20**READ\x20the\x20/ranger\x20skill\x20FIRST**\x20-\x20Run\x20the\x20skill\x20to\x20understand\x20the\x20required\x20workflow\x20for\x20UI\x20features\x0a\x0a2.\x20**Check\x20for\x20existing\x20feature\x20reviews**\x20-\x20Run\x20`ranger\x20list`\x20to\x20see\x20if\x20there\x27s\x20an\x20in-progress\x20feature\x20review\x20to\x20resume\x0a\x0a3.\x20**For\x20ANY\x20UI\x20work**:\x20You\x20MUST\x20either:\x0a\x20\x20\x20-\x20Resume\x20an\x20existing\x20feature\x20review:\x20`ranger\x20resume\x20<id>`\x0a\x20\x20\x20-\x20Create\x20a\x20new\x20feature\x20review:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario>\x22`\x0a\x0a4.\x20**If\x20resuming\x20a\x20feature\x20review\x20with\x20reviewer\x20comments**:\x20Run\x20`ranger\x20get-review`\x20to\x20see\x20what\x20reviewers\x20want\x20fixed\x20before\x20making\x20code\x20changes\x0a\x0a=================================================================';export async function sessionStart(_0x153b12){const _0x5d1970=_0x1234,_0x1559e0={'mKeqw':function(_0x2480d1,_0x4b5a15){return _0x2480d1||_0x4b5a15;},'OmRth':function(_0x1ab09b,_0x34a6a0){return _0x1ab09b&&_0x34a6a0;},'AJrgR':function(_0x2229c2,_0x3bf38a){return _0x2229c2(_0x3bf38a);},'mNEhn':function(_0x86532e,_0x2e2029){return _0x86532e(_0x2e2029);},'GnWqe':function(_0x594769,_0x1ad236){return _0x594769(_0x1ad236);},'CvbBJ':function(_0x364200,_0x96b720){return _0x364200(_0x96b720);},'aYvTu':_0x5d1970(0x1ce),'zAJUO':function(_0x414666){return _0x414666();},'AoUUs':function(_0x167288,_0x40bafc){return _0x167288!==_0x40bafc;},'hHwsX':_0x5d1970(0x1ca),'gHjMS':'SessionStart','EUlbd':function(_0xe353a3,_0x2bb37b){return _0xe353a3+_0x2bb37b;}};let _0x1d6212=_0x1559e0[_0x5d1970(0x1d0)](_0x153b12,''),_0x55ce07;if(!_0x153b12){let _0x198370='';for await(const _0x53a067 of process[_0x5d1970(0x1c7)]){_0x198370+=_0x53a067;}try{const _0x1ec182=JSON['parse'](_0x198370);_0x1d6212=_0x1ec182[_0x5d1970(0x1cd)]||'',_0x55ce07=_0x1ec182['source'];}catch{}const _0x103411=process[_0x5d1970(0x1d3)]['CLAUDE_ENV_FILE'];if(_0x1559e0[_0x5d1970(0x1d8)](_0x103411,_0x1d6212))try{await appendFile(_0x103411,_0x5d1970(0x1d9)+_0x1d6212+'\x22\x0a');}catch{}}try{await getToken();}catch{}if(_0x1d6212){_0x1559e0['AJrgR'](shouldAutoEnableAfterClear,_0x55ce07)&&_0x1559e0[_0x5d1970(0x1dc)](autoEnableAfterClear,_0x1d6212);_0x1559e0['mNEhn'](initBranchTracking,_0x1d6212);const _0x30a6de=_0x1559e0[_0x5d1970(0x1cb)](isSessionEnabled,_0x1d6212);try{const _0x501404=_0x1559e0[_0x5d1970(0x1cc)](createTelemetryCollector,'hook:session-start');await _0x501404['trackCommandStart']({'sessionId':_0x1d6212,'hooksEnabled':_0x30a6de}),await _0x501404[_0x5d1970(0x1d1)](_0x1559e0['aYvTu']);}catch{}if(_0x30a6de){const _0x3de5c0=_0x1559e0['zAJUO'](getCurrentBranch),_0x1fcaf7=_0x3de5c0&&_0x3de5c0!==_0x5d1970(0x1d4)&&_0x1559e0['AoUUs'](_0x3de5c0,_0x1559e0['hHwsX'])?_0x5d1970(0x1d2)+_0x3de5c0+')':'',_0x823c51={'hookSpecificOutput':{'hookEventName':_0x1559e0[_0x5d1970(0x1de)],'additionalContext':_0x1559e0['EUlbd'](RANGER_AUTO_ENABLED_PROMPT,_0x1fcaf7)}};console['log'](JSON['stringify'](_0x823c51));}}}
1
+ (function(_0x2560fc,_0x2a42a4){const _0x4c8ce7=_0x377f,_0x155793=_0x2560fc();while(!![]){try{const _0x1615f9=parseInt(_0x4c8ce7(0xe0))/0x1*(-parseInt(_0x4c8ce7(0xd7))/0x2)+parseInt(_0x4c8ce7(0xd6))/0x3+-parseInt(_0x4c8ce7(0xcf))/0x4+-parseInt(_0x4c8ce7(0xd5))/0x5+-parseInt(_0x4c8ce7(0xce))/0x6+parseInt(_0x4c8ce7(0xda))/0x7+parseInt(_0x4c8ce7(0xd0))/0x8;if(_0x1615f9===_0x2a42a4)break;else _0x155793['push'](_0x155793['shift']());}catch(_0x48b643){_0x155793['push'](_0x155793['shift']());}}}(_0x56ca,0x97e34));import{appendFile}from'fs/promises';function _0x56ca(){const _0x5e8457=['FMQGk','SessionStart','trackCommandStart','dyfYn','xtzSK','1261YLlzqW','QSUYE','log','master','3463398aKYutg','3772756gaUqMD','20544008ZFKwlz','env','trackCommandEnd','\x20(Branch:\x20','FhUsn','4793440xPsFJM','2097372hokZji','1150vkJaBI','stdin','source','3914344jjHDhL'];_0x56ca=function(){return _0x5e8457;};return _0x56ca();}function _0x377f(_0x59a40e,_0x3239ef){_0x59a40e=_0x59a40e-0xce;const _0x56ca25=_0x56ca();let _0x377fc7=_0x56ca25[_0x59a40e];return _0x377fc7;}import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';import{getToken}from'../utils/keychain.js';const RANGER_AUTO_ENABLED_PROMPT='=================================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🚨\x20RANGER\x20IS\x20ACTIVE\x20🚨\x0a=================================================================\x0a\x0aThis\x20session\x20has\x20Ranger\x20ENABLED.\x20Before\x20doing\x20ANYTHING\x20else:\x0a\x0a1.\x20**READ\x20the\x20/ranger\x20skill\x20FIRST**\x20-\x20Run\x20the\x20skill\x20to\x20understand\x20the\x20required\x20workflow\x20for\x20UI\x20features\x0a\x0a2.\x20**Check\x20for\x20existing\x20feature\x20reviews**\x20-\x20Run\x20`ranger\x20list`\x20to\x20see\x20if\x20there\x27s\x20an\x20in-progress\x20feature\x20review\x20to\x20resume\x0a\x0a3.\x20**For\x20ANY\x20UI\x20work**:\x20You\x20MUST\x20either:\x0a\x20\x20\x20-\x20Resume\x20an\x20existing\x20feature\x20review:\x20`ranger\x20resume\x20<id>`\x0a\x20\x20\x20-\x20Create\x20a\x20new\x20feature\x20review:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario>\x22`\x0a\x0a4.\x20**If\x20resuming\x20a\x20feature\x20review\x20with\x20reviewer\x20comments**:\x20Run\x20`ranger\x20get-review`\x20to\x20see\x20what\x20reviewers\x20want\x20fixed\x20before\x20making\x20code\x20changes\x0a\x0a=================================================================';export async function sessionStart(_0x9fa2b9){const _0x2fa678=_0x377f,_0x20ce7f={'FhUsn':function(_0x3980e4,_0xc325){return _0x3980e4||_0xc325;},'FMQGk':'session_id','xtzSK':function(_0x127cb5,_0x664c1e){return _0x127cb5&&_0x664c1e;},'wnGWy':function(_0x31963c,_0x39c8e9,_0x313a52){return _0x31963c(_0x39c8e9,_0x313a52);},'dyfYn':function(_0x27b038,_0x590c87){return _0x27b038(_0x590c87);},'QSUYE':'main','duvGU':_0x2fa678(0xe3)};let _0x75dbff=_0x20ce7f[_0x2fa678(0xd4)](_0x9fa2b9,''),_0x31cf9f;if(!_0x9fa2b9){let _0x579427='';for await(const _0x572b47 of process[_0x2fa678(0xd8)]){_0x579427+=_0x572b47;}try{const _0x26eb86=JSON['parse'](_0x579427);_0x75dbff=_0x26eb86[_0x20ce7f[_0x2fa678(0xdb)]]||'',_0x31cf9f=_0x26eb86[_0x2fa678(0xd9)];}catch{}const _0x3acdc=process[_0x2fa678(0xd1)]['CLAUDE_ENV_FILE'];if(_0x20ce7f[_0x2fa678(0xdf)](_0x3acdc,_0x75dbff))try{await _0x20ce7f['wnGWy'](appendFile,_0x3acdc,'export\x20CLAUDE_SESSION_ID=\x22'+_0x75dbff+'\x22\x0a');}catch{}}try{await getToken();}catch{}if(_0x75dbff){shouldAutoEnableAfterClear(_0x31cf9f)&&autoEnableAfterClear(_0x75dbff);initBranchTracking(_0x75dbff);const _0x294a83=_0x20ce7f[_0x2fa678(0xde)](isSessionEnabled,_0x75dbff);try{const _0x25719c=createTelemetryCollector('hook:session-start');await _0x25719c[_0x2fa678(0xdd)]({'sessionId':_0x75dbff,'hooksEnabled':_0x294a83}),await _0x25719c[_0x2fa678(0xd2)]('success');}catch{}if(_0x294a83){const _0xe57d0a=getCurrentBranch(),_0x25702e=_0xe57d0a&&_0xe57d0a!==_0x20ce7f[_0x2fa678(0xe1)]&&_0xe57d0a!==_0x20ce7f['duvGU']?_0x2fa678(0xd3)+_0xe57d0a+')':'',_0x4d8160={'hookSpecificOutput':{'hookEventName':_0x2fa678(0xdc),'additionalContext':RANGER_AUTO_ENABLED_PROMPT+_0x25702e}};console[_0x2fa678(0xe2)](JSON['stringify'](_0x4d8160));}}}
@@ -1 +1 @@
1
- (function(_0x330250,_0x2110d9){const _0x561d6d=_0x2d2d,_0x17b6c0=_0x330250();while(!![]){try{const _0x4338ca=-parseInt(_0x561d6d(0x1fb))/0x1+-parseInt(_0x561d6d(0x1f5))/0x2+-parseInt(_0x561d6d(0x200))/0x3*(-parseInt(_0x561d6d(0x1f8))/0x4)+parseInt(_0x561d6d(0x1ed))/0x5*(-parseInt(_0x561d6d(0x1ec))/0x6)+-parseInt(_0x561d6d(0x1f0))/0x7*(-parseInt(_0x561d6d(0x202))/0x8)+-parseInt(_0x561d6d(0x1eb))/0x9+parseInt(_0x561d6d(0x1f7))/0xa*(-parseInt(_0x561d6d(0x1ea))/0xb);if(_0x4338ca===_0x2110d9)break;else _0x17b6c0['push'](_0x17b6c0['shift']());}catch(_0x30cb59){_0x17b6c0['push'](_0x17b6c0['shift']());}}}(_0x97f1,0xb33f3));function _0x97f1(){const _0x30a70f=['139040pwMTGk','currentSessionId','22190RJRIej','4HtRtHj','status','featureId','617442VhaEat','log','incomplete','jLgut','sessionId','4254021VLzUPn','filter','11686152CagYcX','hvxWQ','meQVj','checklistItems','1243KgCVzF','4173579gZxEAw','636978hLynGN','35lyOlRl','verification_in_progress','closed','7nwrfMi','trackCommandEnd','https://dashboard.ranger.net/features/','wbNng','trackCommandStart'];_0x97f1=function(){return _0x30a70f;};return _0x97f1();}function _0x2d2d(_0x3d6185,_0x2f2349){_0x3d6185=_0x3d6185-0x1e7;const _0x97f1b0=_0x97f1();let _0x2d2d54=_0x97f1b0[_0x3d6185];return _0x2d2d54;}import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x81b3b3){const _0x4a7b2f=_0x2d2d,_0x307aee={'jLgut':function(_0x4ef216,_0x4c995f){return _0x4ef216(_0x4c995f);},'wbNng':function(_0x36d3c8,_0x28c11e,_0x4c5861,_0x50bda7){return _0x36d3c8(_0x28c11e,_0x4c5861,_0x50bda7);},'hvxWQ':function(_0x37a6b4,_0x181600){return _0x37a6b4&&_0x181600;},'VBqFn':function(_0x1e0a45,_0x361597,_0x270aba){return _0x1e0a45(_0x361597,_0x270aba);}},_0x3d9976=await getEnabledHookContext(_0x81b3b3),_0x3821a0=_0x3d9976?.[_0x4a7b2f(0x1ff)]??null;let _0x464744=!![];if(!_0x3821a0){await trackStop(_0x3821a0,![],_0x464744);return;}try{const _0x2bfa2a=_0x307aee[_0x4a7b2f(0x1fe)](getSessionEntry,_0x3821a0);if(!_0x2bfa2a){await _0x307aee[_0x4a7b2f(0x1f3)](trackStop,_0x3821a0,!![],_0x464744);return;}const _0x4c9f6e=await getToken(),_0x53632f=_0x4a7b2f(0x1f2)+_0x2bfa2a[_0x4a7b2f(0x1fa)];let _0x3f47b6=null,_0x300820=![],_0x56ca50=![];if(_0x4c9f6e)try{const _0x2728a9=await getFeature(_0x2bfa2a['featureId']);_0x3f47b6=_0x2728a9[_0x4a7b2f(0x1f6)]??null;const _0x710b02=_0x2728a9[_0x4a7b2f(0x1e9)][_0x4a7b2f(0x201)](_0x1b2075=>_0x1b2075['sessionId']===_0x3f47b6);_0x300820=_0x710b02['some'](_0x359481=>_0x359481[_0x4a7b2f(0x1f9)]!=='verified'&&_0x359481[_0x4a7b2f(0x1f9)]!=='blocked'&&_0x359481['status']!==_0x4a7b2f(0x1ef)&&_0x359481[_0x4a7b2f(0x1f9)]!==_0x4a7b2f(0x1fd)),_0x56ca50=_0x710b02['some'](_0x1d1ea2=>_0x1d1ea2['status']===_0x4a7b2f(0x1ee));}catch{}if(_0x307aee[_0x4a7b2f(0x1e7)](_0x4c9f6e,_0x3f47b6)&&_0x300820){if(!_0x56ca50&&shouldShowStopReminder(_0x3821a0)){const _0x2502a6={'hookSpecificOutput':{'hookEventName':'Stop','additionalContext':'RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20'+_0x53632f}};console[_0x4a7b2f(0x1fc)](JSON['stringify'](_0x2502a6));}}if(_0x4c9f6e&&_0x3f47b6&&!_0x300820)try{await _0x307aee['VBqFn'](concludeSession,_0x2bfa2a[_0x4a7b2f(0x1fa)],_0x3f47b6);}catch{}await _0x307aee[_0x4a7b2f(0x1f3)](trackStop,_0x3821a0,!![],_0x464744);return;}catch{await trackStop(_0x3821a0,!![],_0x464744);return;}}async function trackStop(_0x4ee478,_0x155568,_0x4f4f8d){const _0x2b7ccc=_0x2d2d,_0x50e056={'UJrYS':function(_0x1ff926,_0x2132f0){return _0x1ff926(_0x2132f0);},'eHEeR':'hook:stop','BLrBW':function(_0x1335fc,_0x4d2304){return _0x1335fc??_0x4d2304;},'meQVj':'success'};try{const _0x4bd717=_0x50e056['UJrYS'](createTelemetryCollector,_0x50e056['eHEeR']);await _0x4bd717[_0x2b7ccc(0x1f4)]({'sessionId':_0x50e056['BLrBW'](_0x4ee478,undefined),'hooksEnabled':_0x155568,'stopAllowed':_0x4f4f8d}),await _0x4bd717[_0x2b7ccc(0x1f1)](_0x50e056[_0x2b7ccc(0x1e8)]);}catch{}}
1
+ (function(_0x2c1d73,_0x3a7e6c){const _0x1a98ff=_0x3512,_0x35a21f=_0x2c1d73();while(!![]){try{const _0x410c9e=-parseInt(_0x1a98ff(0x109))/0x1+-parseInt(_0x1a98ff(0x114))/0x2*(-parseInt(_0x1a98ff(0x10b))/0x3)+-parseInt(_0x1a98ff(0x102))/0x4*(parseInt(_0x1a98ff(0x100))/0x5)+parseInt(_0x1a98ff(0x110))/0x6+parseInt(_0x1a98ff(0x107))/0x7*(parseInt(_0x1a98ff(0x101))/0x8)+-parseInt(_0x1a98ff(0x105))/0x9+parseInt(_0x1a98ff(0x10a))/0xa;if(_0x410c9e===_0x3a7e6c)break;else _0x35a21f['push'](_0x35a21f['shift']());}catch(_0x4013f4){_0x35a21f['push'](_0x35a21f['shift']());}}}(_0x5a4a,0x5c270));import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';function _0x3512(_0x2a2599,_0x2b0e0b){_0x2a2599=_0x2a2599-0x100;const _0x5a4aee=_0x5a4a();let _0x3512af=_0x5a4aee[_0x2a2599];return _0x3512af;}function _0x5a4a(){const _0x13816f=['hvPER','2676156aDiILe','PwbTA','https://dashboard.ranger.net/features/','verification_in_progress','83280Msexqj','status','checklistItems','currentSessionId','60OkwgKq','1400OtyqPC','61280oThdgG','log','CqKDT','2003283TjoKzq','featureId','329PbkVIn','some','706395ngZQRZ','9111070PHBuMO','9pMoPig','RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20','hook:stop','yYHPq'];_0x5a4a=function(){return _0x13816f;};return _0x5a4a();}import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x4a726b){const _0x3757ed=_0x3512,_0x21511f={'mjNnS':function(_0x3adfda,_0x4a3453,_0x9f536a,_0x3a917b){return _0x3adfda(_0x4a3453,_0x9f536a,_0x3a917b);},'tKSbW':function(_0x8617e7,_0xbd13ca){return _0x8617e7(_0xbd13ca);},'CqKDT':function(_0x4f1dab){return _0x4f1dab();},'yYHPq':function(_0x42ccbd,_0x151961){return _0x42ccbd(_0x151961);},'CJTXo':function(_0x17635f,_0x4d4b28){return _0x17635f&&_0x4d4b28;},'hvPER':'Stop','PwbTA':function(_0x83608a,_0x5160e9,_0x5670b7){return _0x83608a(_0x5160e9,_0x5670b7);},'zWynq':function(_0xd259cf,_0x4ffe7d,_0x5654df,_0x5e4e28){return _0xd259cf(_0x4ffe7d,_0x5654df,_0x5e4e28);}},_0x879171=await getEnabledHookContext(_0x4a726b),_0x3018f6=_0x879171?.['sessionId']??null;let _0x357784=!![];if(!_0x3018f6){await _0x21511f['mjNnS'](trackStop,_0x3018f6,![],_0x357784);return;}try{const _0x5d5844=_0x21511f['tKSbW'](getSessionEntry,_0x3018f6);if(!_0x5d5844){await trackStop(_0x3018f6,!![],_0x357784);return;}const _0x208f91=await _0x21511f[_0x3757ed(0x104)](getToken),_0x119b4e=_0x3757ed(0x112)+_0x5d5844[_0x3757ed(0x106)];let _0x89e1e3=null,_0x280148=![],_0x498957=![];if(_0x208f91)try{const _0x1fac6a=await _0x21511f['yYHPq'](getFeature,_0x5d5844['featureId']);_0x89e1e3=_0x1fac6a[_0x3757ed(0x117)]??null;const _0x27a8d4=_0x1fac6a[_0x3757ed(0x116)]['filter'](_0x195ecb=>_0x195ecb['sessionId']===_0x89e1e3);_0x280148=_0x27a8d4['some'](_0x50d051=>_0x50d051['status']!=='verified'&&_0x50d051['status']!=='blocked'&&_0x50d051['status']!=='closed'&&_0x50d051['status']!=='incomplete'),_0x498957=_0x27a8d4[_0x3757ed(0x108)](_0x3594c1=>_0x3594c1[_0x3757ed(0x115)]===_0x3757ed(0x113));}catch{}if(_0x21511f['CJTXo'](_0x208f91,_0x89e1e3)&&_0x280148){if(!_0x498957&&_0x21511f[_0x3757ed(0x10e)](shouldShowStopReminder,_0x3018f6)){const _0x3e9a70={'hookSpecificOutput':{'hookEventName':_0x21511f[_0x3757ed(0x10f)],'additionalContext':_0x3757ed(0x10c)+_0x119b4e}};console[_0x3757ed(0x103)](JSON['stringify'](_0x3e9a70));}}if(_0x208f91&&_0x89e1e3&&!_0x280148)try{await _0x21511f[_0x3757ed(0x111)](concludeSession,_0x5d5844[_0x3757ed(0x106)],_0x89e1e3);}catch{}await trackStop(_0x3018f6,!![],_0x357784);return;}catch{await _0x21511f['zWynq'](trackStop,_0x3018f6,!![],_0x357784);return;}}async function trackStop(_0x5e113d,_0x1c5df9,_0x3b6bc6){const _0x45e4d5=_0x3512,_0x1b4f42={'NdACS':function(_0x5ea0b0,_0x22aa1d){return _0x5ea0b0(_0x22aa1d);}};try{const _0x533f93=_0x1b4f42['NdACS'](createTelemetryCollector,_0x45e4d5(0x10d));await _0x533f93['trackCommandStart']({'sessionId':_0x5e113d??undefined,'hooksEnabled':_0x1c5df9,'stopAllowed':_0x3b6bc6}),await _0x533f93['trackCommandEnd']('success');}catch{}}
@@ -1 +1 @@
1
- (function(_0x5decab,_0x4d8c14){var _0x3a0d59=_0x4a0b,_0xf5747f=_0x5decab();while(!![]){try{var _0x1e43a8=parseInt(_0x3a0d59(0x87))/0x1*(parseInt(_0x3a0d59(0x8f))/0x2)+-parseInt(_0x3a0d59(0x8d))/0x3*(-parseInt(_0x3a0d59(0x89))/0x4)+-parseInt(_0x3a0d59(0x8b))/0x5*(parseInt(_0x3a0d59(0x86))/0x6)+parseInt(_0x3a0d59(0x8a))/0x7+-parseInt(_0x3a0d59(0x8c))/0x8*(parseInt(_0x3a0d59(0x88))/0x9)+parseInt(_0x3a0d59(0x85))/0xa+-parseInt(_0x3a0d59(0x8e))/0xb;if(_0x1e43a8===_0x4d8c14)break;else _0xf5747f['push'](_0xf5747f['shift']());}catch(_0x2910e6){_0xf5747f['push'](_0xf5747f['shift']());}}}(_0x1079,0x42bf0));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start,ensureLocalEnv,ensureChromium,authenticate}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';function _0x4a0b(_0x7637bd,_0x3468c2){_0x7637bd=_0x7637bd-0x85;var _0x10796e=_0x1079();var _0x4a0b00=_0x10796e[_0x7637bd];return _0x4a0b00;}export{envList}from'./env.js';function _0x1079(){var _0x14de17=['10098dFyXvT','16ZAoqRm','3763130JVpwXV','48865AVICCh','2288qZzHUx','306834XxoFca','9724088AnVicp','2698gJutWA','2113730UDOEpC','138RmbDdn','404MopZVg'];_0x1079=function(){return _0x14de17;};return _0x1079();}export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';export{migrateProfile}from'./migrateProfile.js';
1
+ (function(_0x40d66d,_0x4bb27e){var _0x3c7c9f=_0x1209,_0x94ab75=_0x40d66d();while(!![]){try{var _0x1daaad=parseInt(_0x3c7c9f(0x1a1))/0x1*(-parseInt(_0x3c7c9f(0x1a7))/0x2)+parseInt(_0x3c7c9f(0x1a9))/0x3*(parseInt(_0x3c7c9f(0x1ac))/0x4)+parseInt(_0x3c7c9f(0x1a3))/0x5+parseInt(_0x3c7c9f(0x1ab))/0x6+parseInt(_0x3c7c9f(0x1aa))/0x7*(-parseInt(_0x3c7c9f(0x1a5))/0x8)+parseInt(_0x3c7c9f(0x1a8))/0x9*(parseInt(_0x3c7c9f(0x1a4))/0xa)+-parseInt(_0x3c7c9f(0x1a2))/0xb*(-parseInt(_0x3c7c9f(0x1a6))/0xc);if(_0x1daaad===_0x4bb27e)break;else _0x94ab75['push'](_0x94ab75['shift']());}catch(_0x4a460b){_0x94ab75['push'](_0x94ab75['shift']());}}}(_0x1cf2,0x2ad6f));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';function _0x1209(_0x48e555,_0x34512b){_0x48e555=_0x48e555-0x1a1;var _0x1cf28a=_0x1cf2();var _0x120980=_0x1cf28a[_0x48e555];return _0x120980;}function _0x1cf2(){var _0x24b9e3=['612970NhkWtw','190oUUVHZ','680968RxrYnB','240eUNlOb','203600vEzlQr','9333SoqzwS','6iLhSKL','7GwidmJ','659526lZOhdn','310108ljgdYX','2LsmKkC','31306AnciwN'];_0x1cf2=function(){return _0x24b9e3;};return _0x1cf2();}export{start,ensureLocalEnv,ensureChromium,authenticate}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
@@ -1 +1 @@
1
- (function(_0x33580e,_0x51d2e4){const _0x73ced8=_0x2cae,_0x30217c=_0x33580e();while(!![]){try{const _0x18a7f9=-parseInt(_0x73ced8(0x175))/0x1*(-parseInt(_0x73ced8(0x166))/0x2)+parseInt(_0x73ced8(0x169))/0x3*(parseInt(_0x73ced8(0x165))/0x4)+parseInt(_0x73ced8(0x16b))/0x5+parseInt(_0x73ced8(0x176))/0x6+parseInt(_0x73ced8(0x16a))/0x7*(-parseInt(_0x73ced8(0x173))/0x8)+parseInt(_0x73ced8(0x171))/0x9*(parseInt(_0x73ced8(0x168))/0xa)+-parseInt(_0x73ced8(0x164))/0xb*(parseInt(_0x73ced8(0x167))/0xc);if(_0x18a7f9===_0x51d2e4)break;else _0x30217c['push'](_0x30217c['shift']());}catch(_0x13fd30){_0x30217c['push'](_0x30217c['shift']());}}}(_0x35ee,0x394a2));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x35ee(){const _0x4b5cb0=['53260weXENp','4pFqAqp','12OKdntW','20iNeSZd','69yXKILb','14ZHhpTX','1140525OzDaji','organizationName','\x0a✅\x20Logged\x20in\x20to\x20','log','UNYhg','stdout','1265535zTlfYz','bllnj','1585240VvftFV','\x0a✅\x20API\x20key\x20stored\x20successfully','186005NYoRpp','2242212HKlnKE','user','10233564gtxIJc'];_0x35ee=function(){return _0x4b5cb0;};return _0x35ee();}function _0x2cae(_0x3c413e,_0x518fef){_0x3c413e=_0x3c413e-0x164;const _0x35eece=_0x35ee();let _0x2cae41=_0x35eece[_0x3c413e];return _0x2cae41;}import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';export async function login(){const _0x947436=_0x2cae,_0x341a7e={'UNYhg':function(_0x1538de){return _0x1538de();},'YOkzX':function(_0x3dfaaf,_0x842ea2){return _0x3dfaaf(_0x842ea2);},'bllnj':function(_0x8c4c0,_0x19d9f6){return _0x8c4c0 instanceof _0x19d9f6;}},_0x53e2c7=await _0x341a7e[_0x947436(0x16f)](getMcpAuthOrigin);if(_0x53e2c7){console[_0x947436(0x16e)]('Re-authenticating\x20via\x20MCP\x20bootstrap...'),await mcpBootstrap();return;}const _0x45201b=process['stdin']['isTTY']&&process[_0x947436(0x170)]['isTTY'];if(!_0x45201b)throw new Error('Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.');try{const _0xb5a36e=await _0x341a7e['UNYhg'](runDeviceAuthFlow),_0x236018=await _0x341a7e['YOkzX'](getCurrentUser,_0xb5a36e);_0x236018['success']?console['log'](_0x947436(0x16d)+_0x236018[_0x947436(0x177)][_0x947436(0x16c)]):console[_0x947436(0x16e)](_0x947436(0x174));}catch(_0xc61e10){throw new Error('Login\x20failed:\x20'+(_0x341a7e[_0x947436(0x172)](_0xc61e10,Error)?_0xc61e10['message']:_0xc61e10));}}
1
+ (function(_0x130292,_0x5bf678){const _0x170008=_0x11b1,_0x1f1af8=_0x130292();while(!![]){try{const _0x4de1ea=-parseInt(_0x170008(0x1fa))/0x1+-parseInt(_0x170008(0x1f6))/0x2*(parseInt(_0x170008(0x200))/0x3)+parseInt(_0x170008(0x1f0))/0x4+-parseInt(_0x170008(0x1fd))/0x5+parseInt(_0x170008(0x1fb))/0x6*(parseInt(_0x170008(0x1f1))/0x7)+parseInt(_0x170008(0x1f3))/0x8+parseInt(_0x170008(0x1fe))/0x9*(parseInt(_0x170008(0x1f9))/0xa);if(_0x4de1ea===_0x5bf678)break;else _0x1f1af8['push'](_0x1f1af8['shift']());}catch(_0x2cb21d){_0x1f1af8['push'](_0x1f1af8['shift']());}}}(_0x75cb,0x4df11));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x11b1(_0x49d949,_0x50883b){_0x49d949=_0x49d949-0x1f0;const _0x75cb6=_0x75cb();let _0x11b122=_0x75cb6[_0x49d949];return _0x11b122;}function _0x75cb(){const _0xaf9971=['4476760MvfpiX','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','Login\x20failed:\x20','7362lRfUsh','organizationName','kuZcM','40yIAqMK','243300OmocNE','6shhECr','user','1517180LhgPyB','630459KRRjoq','lsIVI','519mXAWtG','log','900756oxQuea','3064670ljOHNA','isTTY'];_0x75cb=function(){return _0xaf9971;};return _0x75cb();}import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';export async function login(){const _0x397c0c=_0x11b1,_0x175c91={'kuZcM':function(_0x37741c){return _0x37741c();},'lsIVI':'Re-authenticating\x20via\x20MCP\x20bootstrap...','haZxa':function(_0x3fbc82,_0x440cd5){return _0x3fbc82(_0x440cd5);}},_0x595678=await _0x175c91[_0x397c0c(0x1f8)](getMcpAuthOrigin);if(_0x595678){console['log'](_0x175c91[_0x397c0c(0x1ff)]),await mcpBootstrap();return;}const _0x2e1f5f=process['stdin'][_0x397c0c(0x1f2)]&&process['stdout']['isTTY'];if(!_0x2e1f5f)throw new Error(_0x397c0c(0x1f4));try{const _0x7ad6c2=await runDeviceAuthFlow(),_0x5909b7=await _0x175c91['haZxa'](getCurrentUser,_0x7ad6c2);_0x5909b7['success']?console['log']('\x0a✅\x20Logged\x20in\x20to\x20'+_0x5909b7[_0x397c0c(0x1fc)][_0x397c0c(0x1f7)]):console[_0x397c0c(0x201)]('\x0a✅\x20API\x20key\x20stored\x20successfully');}catch(_0x2e2d75){throw new Error(_0x397c0c(0x1f5)+(_0x2e2d75 instanceof Error?_0x2e2d75['message']:_0x2e2d75));}}
@@ -1 +1 @@
1
- const _0x573ffa=_0x4aaa;(function(_0x4b6934,_0x3ac533){const _0x632d79=_0x4aaa,_0x1df46e=_0x4b6934();while(!![]){try{const _0x4457ab=parseInt(_0x632d79(0xc4))/0x1*(-parseInt(_0x632d79(0x115))/0x2)+-parseInt(_0x632d79(0x120))/0x3*(parseInt(_0x632d79(0xdf))/0x4)+parseInt(_0x632d79(0xf6))/0x5*(-parseInt(_0x632d79(0xa4))/0x6)+parseInt(_0x632d79(0xe7))/0x7+-parseInt(_0x632d79(0xfc))/0x8*(-parseInt(_0x632d79(0x10c))/0x9)+parseInt(_0x632d79(0xa6))/0xa*(parseInt(_0x632d79(0x109))/0xb)+parseInt(_0x632d79(0xec))/0xc*(parseInt(_0x632d79(0x97))/0xd);if(_0x4457ab===_0x3ac533)break;else _0x1df46e['push'](_0x1df46e['shift']());}catch(_0x4273f5){_0x1df46e['push'](_0x1df46e['shift']());}}}(_0xa9e7,0xae2ad));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{exec}from'child_process';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),'.ranger','mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),'.ranger',_0x573ffa(0x10f));function _0x4aaa(_0x2dcf43,_0x1dc2f9){_0x2dcf43=_0x2dcf43-0x8c;const _0xa9e7c7=_0xa9e7();let _0x4aaa57=_0xa9e7c7[_0x2dcf43];return _0x4aaa57;}export async function getMcpAuthOrigin(){const _0x80940a=_0x573ffa,_0x41cbe7={'tceUi':function(_0x466add,_0x357f8b,_0x275ec3){return _0x466add(_0x357f8b,_0x275ec3);}};try{const _0x217cfa=(await _0x41cbe7['tceUi'](readFile,AUTH_ORIGIN_PATH,_0x80940a(0xda)))['trim']();return _0x217cfa||null;}catch{return null;}}export async function mcpBootstrap(){const _0x182d85=_0x573ffa,_0x486bf6={'uTbsp':function(_0x44dfae,_0xb3adb5){return _0x44dfae+_0xb3adb5;},'xcTEp':function(_0x203783,_0x30fc7b){return _0x203783(_0x30fc7b);},'pcqnX':function(_0x72ee81,_0x48b860,_0x12e202){return _0x72ee81(_0x48b860,_0x12e202);}},_0x4c1ec7=getMcpAuthUrl();currentOrigin=_0x4c1ec7;const _0x49576f=process['stdout'][_0x182d85(0x103)]??![];console['log'](_0x182d85(0x99)+_0x4c1ec7+'\x0a');const _0x2c2bfe=await tryUnauthenticated(_0x4c1ec7);let _0x50821b=null;if(_0x2c2bfe===_0x182d85(0xeb))_0x50821b='';else{_0x50821b=await loadCachedToken();if(!_0x50821b){if(!_0x49576f)throw new Error(_0x486bf6[_0x182d85(0x106)]('MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.'));_0x50821b=await _0x486bf6['xcTEp'](oauthFlow,_0x4c1ec7);}}await _0x486bf6['pcqnX'](callGetCliToken,_0x4c1ec7,_0x50821b);}async function tryUnauthenticated(_0x6c2899){const _0x2e3a78=_0x573ffa,_0x27360f={'kSKbc':function(_0x4a8802,_0x1d0df4,_0x43ae1e){return _0x4a8802(_0x1d0df4,_0x43ae1e);},'DzTBW':_0x2e3a78(0x105),'jHSwS':'application/json','GRrgc':'ranger-cli','JNaIQ':'1.0.0','BdEXk':_0x2e3a78(0xeb)},_0x1b6585=await _0x27360f[_0x2e3a78(0xe8)](fetch,_0x6c2899,{'method':_0x27360f[_0x2e3a78(0x11b)],'headers':{'Content-Type':_0x27360f['jHSwS'],'Accept':'application/json,\x20text/event-stream'},'body':JSON['stringify']({'jsonrpc':_0x2e3a78(0xaf),'id':0x1,'method':_0x2e3a78(0x111),'params':{'protocolVersion':_0x2e3a78(0xcd),'capabilities':{},'clientInfo':{'name':_0x27360f['GRrgc'],'version':_0x27360f[_0x2e3a78(0xf2)]}}})});if(_0x1b6585['ok'])return await _0x1b6585['text'](),_0x27360f['BdEXk'];if(_0x1b6585[_0x2e3a78(0xd4)]===0x191)return await _0x1b6585[_0x2e3a78(0x116)](),_0x2e3a78(0x114);const _0x41e065=await _0x1b6585[_0x2e3a78(0x116)]();throw new Error(_0x2e3a78(0xcb)+_0x1b6585[_0x2e3a78(0xd4)]+':\x20'+_0x41e065);}class OAuthTimeoutError extends Error{constructor(_0x6f9c2){const _0x256310=_0x573ffa,_0x15418c={'WLHRf':_0x256310(0x95)};super(_0x6f9c2),this['name']=_0x15418c['WLHRf'];}}async function oauthFlow(_0x3a581c){const _0x49c1a9=_0x573ffa,_0x17a18b={'pXmSx':function(_0x2c88dd,_0x1518c4){return _0x2c88dd instanceof _0x1518c4;},'JbSqS':function(_0x40270a){return _0x40270a();},'eRKAU':'\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'};try{return await oauthFlowAttempt(_0x3a581c);}catch(_0x43a6be){if(_0x17a18b['pXmSx'](_0x43a6be,OAuthTimeoutError)&&await _0x17a18b['JbSqS'](loadCachedClient))return console[_0x49c1a9(0x9f)](_0x17a18b['eRKAU']),await clearCachedClient(),await oauthFlowAttempt(_0x3a581c);throw _0x43a6be;}}async function oauthFlowAttempt(_0x512a3a){const _0x2aac60=_0x573ffa,_0x5d448f={'wkuxK':_0x2aac60(0xd8),'UzrCV':function(_0x3bc32a,_0xdcc696){return _0x3bc32a(_0xdcc696);},'kVAeH':function(_0x17ca69){return _0x17ca69();},'QWQuk':'Registering\x20OAuth\x20client...','nZZtN':_0x2aac60(0x92),'SaMrS':'Ranger\x20CLI','ZOZwt':'code','jBtNa':'none','hULhS':'Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','KFoMA':function(_0x502cee,_0x52c405){return _0x502cee(_0x52c405);},'Akobv':'base64url','rSOvA':'hex','VnAYM':_0x2aac60(0xb5),'QLXkf':'client_id','lfUFH':'redirect_uri','QIGWX':'code_challenge','mmpMF':'S256','XazWt':'authorization_code','asIzS':_0x2aac60(0x102),'vdgTf':'POST','UvAMA':function(_0x3f92d6,_0x5065c3,_0x53482a,_0xea3f21){return _0x3f92d6(_0x5065c3,_0x53482a,_0xea3f21);}},_0x30b396=_0x512a3a['replace'](/\/mcp$/,'');process['stdout']['write']('Discovering\x20authorization\x20server...');const _0x4fa545=await fetch(_0x30b396+_0x2aac60(0x108));if(!_0x4fa545['ok'])throw new Error(_0x5d448f[_0x2aac60(0x98)]);const _0x4abee2=await _0x4fa545['json'](),_0x4b7f52=_0x4abee2[_0x2aac60(0x8c)]?.[0x0];if(!_0x4b7f52)throw new Error(_0x2aac60(0xb9));console[_0x2aac60(0x9f)]('\x20'+_0x4b7f52);const _0x438405=await _0x5d448f[_0x2aac60(0xf4)](fetchAuthServerMetadata,_0x4b7f52);let _0x3dd795,_0x4c183b;const _0x27403d=await _0x5d448f['kVAeH'](loadCachedClient);if(_0x27403d)_0x3dd795=_0x27403d['clientId'],_0x4c183b=_0x27403d[_0x2aac60(0xaa)];else{if(_0x438405['registration_endpoint']){process[_0x2aac60(0xea)][_0x2aac60(0x110)](_0x5d448f['QWQuk']);const _0xb52060=await fetch(_0x438405[_0x2aac60(0xe9)],{'method':_0x2aac60(0x105),'headers':{'Content-Type':_0x5d448f['nZZtN']},'body':JSON['stringify']({'client_name':_0x5d448f['SaMrS'],'redirect_uris':['http://localhost:'+CALLBACK_PORT+_0x2aac60(0xee)],'grant_types':[_0x2aac60(0xc1),_0x2aac60(0xe3)],'response_types':[_0x5d448f['ZOZwt']],'token_endpoint_auth_method':_0x5d448f[_0x2aac60(0xef)]})});if(!_0xb52060['ok']){const _0x1f7e4d=await _0xb52060['text']();throw new Error('Client\x20registration\x20failed:\x20'+_0x1f7e4d);}const _0x52f02e=await _0xb52060[_0x2aac60(0xf8)]();_0x3dd795=_0x52f02e['client_id'],_0x4c183b=_0x52f02e['client_secret'],await saveCachedClient(_0x3dd795,_0x4c183b),console[_0x2aac60(0x9f)]('\x20done');}else throw new Error(_0x5d448f[_0x2aac60(0xc5)]);}const _0x363a6a=_0x5d448f['KFoMA'](randomBytes,0x20)[_0x2aac60(0xc6)](_0x5d448f[_0x2aac60(0xfe)]),_0x4d3f8f=createHash('sha256')['update'](_0x363a6a)['digest'](_0x5d448f[_0x2aac60(0xfe)]),_0x4d0d42=randomBytes(0x10)[_0x2aac60(0xc6)](_0x5d448f[_0x2aac60(0xcf)]),_0x51a347=new URL(_0x438405[_0x2aac60(0xbb)]);_0x51a347[_0x2aac60(0xd7)][_0x2aac60(0xf9)](_0x5d448f[_0x2aac60(0xa8)],_0x5d448f['ZOZwt']),_0x51a347[_0x2aac60(0xd7)]['set'](_0x5d448f['QLXkf'],_0x3dd795),_0x51a347['searchParams']['set'](_0x5d448f['lfUFH'],'http://localhost:'+CALLBACK_PORT+_0x2aac60(0xee)),_0x51a347['searchParams'][_0x2aac60(0xf9)](_0x5d448f[_0x2aac60(0xd9)],_0x4d3f8f),_0x51a347['searchParams']['set'](_0x2aac60(0xb6),_0x5d448f[_0x2aac60(0xbd)]),_0x51a347[_0x2aac60(0xd7)][_0x2aac60(0xf9)]('state',_0x4d0d42);_0x4abee2['resource']&&_0x51a347['searchParams']['set'](_0x2aac60(0x102),_0x4abee2[_0x2aac60(0x102)]);console['log']('\x0aOpening\x20browser\x20for\x20authentication...'),console[_0x2aac60(0x9f)](_0x2aac60(0x96)+_0x51a347[_0x2aac60(0xc6)]()+'\x0a'),await openBrowser(_0x51a347['toString']());const _0x1d12da=await waitForCallback(_0x4d0d42);process[_0x2aac60(0xea)][_0x2aac60(0x110)](_0x2aac60(0xa0));const _0x1faaa5=new URLSearchParams({'grant_type':_0x5d448f[_0x2aac60(0x11f)],'code':_0x1d12da,'redirect_uri':_0x2aac60(0xf5)+CALLBACK_PORT+'/callback','client_id':_0x3dd795,'code_verifier':_0x363a6a});_0x4c183b&&_0x1faaa5[_0x2aac60(0xf9)](_0x2aac60(0x11d),_0x4c183b);_0x4abee2['resource']&&_0x1faaa5[_0x2aac60(0xf9)](_0x5d448f['asIzS'],_0x4abee2['resource']);const _0x3df96d=await fetch(_0x438405[_0x2aac60(0xb3)],{'method':_0x5d448f[_0x2aac60(0xe4)],'headers':{'Content-Type':'application/x-www-form-urlencoded'},'body':_0x1faaa5});if(!_0x3df96d['ok']){const _0x1c594f=await _0x3df96d[_0x2aac60(0x116)]();throw new Error(_0x2aac60(0xb8)+_0x1c594f);}const _0x2caf49=await _0x3df96d['json']();return console[_0x2aac60(0x9f)](_0x2aac60(0xc3)),await _0x5d448f[_0x2aac60(0xa2)](saveCachedToken,_0x2caf49['access_token'],_0x2caf49[_0x2aac60(0xe3)],_0x2caf49['expires_in']),_0x2caf49['access_token'];}async function callGetCliToken(_0x48c0bf,_0x37d28e){const _0x2559cd=_0x573ffa,_0x45996b={'KFejv':function(_0x34c7f6,_0x4d7ed2,_0x455076){return _0x34c7f6(_0x4d7ed2,_0x455076);},'Dhmwc':'POST','vqiCg':function(_0x52efec,_0x5c2a11){return _0x52efec(_0x5c2a11);},'nqTlv':_0x2559cd(0xd2),'SRGjr':_0x2559cd(0xe5),'JVCBn':function(_0xd438bc,_0xef73f5){return _0xd438bc(_0xef73f5);},'tpbPm':_0x2559cd(0xaf),'lnsmF':'initialize','HqNDn':_0x2559cd(0xb1),'vCQoJ':'\x20done','odGgJ':'Requesting\x20CLI\x20token...','iElpb':'\x0aUnexpected\x20response\x20structure:','CzwQG':'Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','OLyxZ':function(_0x895b10,_0x581a65,_0x12666c){return _0x895b10(_0x581a65,_0x12666c);},'uclwX':'.ranger','MikZV':function(_0x474658,_0x1c85ba,_0x5a5d13){return _0x474658(_0x1c85ba,_0x5a5d13);},'PWWkA':'auth-origin.txt'},_0x1c6471={'Content-Type':_0x2559cd(0x92),'Accept':'application/json,\x20text/event-stream'};_0x37d28e&&(_0x1c6471[_0x45996b['nqTlv']]=_0x2559cd(0xce)+_0x37d28e);const _0xfcd018=async _0x3b55f9=>{const _0x22f15a=_0x2559cd,_0x4ebd90=await _0x45996b['KFejv'](fetch,_0x48c0bf,{'method':_0x45996b['Dhmwc'],'headers':_0x1c6471,'body':JSON['stringify'](_0x3b55f9)});if(!_0x4ebd90['ok']){const _0xb495e2=await _0x4ebd90[_0x22f15a(0x116)]();throw new Error(_0x22f15a(0xb0)+_0x4ebd90['status']+':\x20'+_0xb495e2);}return _0x45996b[_0x22f15a(0xe0)](parseResponse,_0x4ebd90);};process[_0x2559cd(0xea)]['write'](_0x45996b[_0x2559cd(0x117)]);const _0x40eed=await _0x45996b['JVCBn'](_0xfcd018,{'jsonrpc':_0x45996b['tpbPm'],'id':0x1,'method':_0x45996b[_0x2559cd(0xc0)],'params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':_0x2559cd(0x94),'version':_0x45996b['HqNDn']}}});if(_0x40eed[_0x2559cd(0x9e)])throw new Error(_0x2559cd(0xe1)+(_0x40eed['error'][_0x2559cd(0x10e)]??JSON['stringify'](_0x40eed['error'])));console[_0x2559cd(0x9f)](_0x45996b['vCQoJ']),await _0x45996b[_0x2559cd(0xab)](fetch,_0x48c0bf,{'method':_0x2559cd(0x105),'headers':_0x1c6471,'body':JSON['stringify']({'jsonrpc':_0x45996b['tpbPm'],'method':'notifications/initialized'})})[_0x2559cd(0xed)](_0xeb981f=>_0xeb981f[_0x2559cd(0x116)]()),process[_0x2559cd(0xea)]['write'](_0x45996b[_0x2559cd(0x11a)]);const _0x14e6a9=await _0xfcd018({'jsonrpc':_0x45996b[_0x2559cd(0xbc)],'id':0x2,'method':'tools/call','params':{'name':'get_cli_token','arguments':{}}});if(_0x14e6a9['error'])throw new Error('get_cli_token\x20failed:\x20'+(_0x14e6a9[_0x2559cd(0x9e)][_0x2559cd(0x10e)]??JSON['stringify'](_0x14e6a9[_0x2559cd(0x9e)])));console[_0x2559cd(0x9f)](_0x2559cd(0xc3));const _0x274806=extractToken(_0x14e6a9[_0x2559cd(0x10a)]);if(!_0x274806){console['error'](_0x45996b[_0x2559cd(0xc7)]),console['error'](JSON[_0x2559cd(0xfb)](_0x14e6a9[_0x2559cd(0x10a)],null,0x2));throw new Error(_0x45996b[_0x2559cd(0xf7)]);}const _0x4e051a=_0x45996b[_0x2559cd(0x93)](join,homedir(),_0x45996b[_0x2559cd(0x10d)]),_0x2bd4de=join(_0x4e051a,_0x2559cd(0xb4));await mkdir(_0x4e051a,{'recursive':!![]}),await writeFile(_0x2bd4de,_0x274806,{'mode':0x180}),await writeFile(_0x45996b[_0x2559cd(0xfa)](join,_0x4e051a,_0x45996b['PWWkA']),_0x48c0bf,{'mode':0x180}),console[_0x2559cd(0x9f)]('\x0aToken\x20written\x20to\x20'+_0x2bd4de),console['log']('Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a');}async function fetchAuthServerMetadata(_0x592ae9){const _0x4b2f7e=_0x573ffa,_0x30b96e={'bBpKW':function(_0x3a1f7f,_0xd34a49){return _0x3a1f7f(_0xd34a49);}},_0x219b85=_0x592ae9+'/.well-known/oauth-authorization-server',_0x2151b0=await _0x30b96e['bBpKW'](fetch,_0x219b85);if(!_0x2151b0['ok'])throw new Error(_0x4b2f7e(0xd5)+_0x219b85+':\x20'+_0x2151b0['status']);return _0x2151b0[_0x4b2f7e(0xf8)]();}function waitForCallback(_0x5c531f){const _0x392473=_0x573ffa,_0x373689={'bRXtX':'/callback','XFSsx':'code','qxjsE':_0x392473(0x9e),'LoFUs':'error_description','uDizR':function(_0x54645a,_0x4ae2b5){return _0x54645a!==_0x4ae2b5;},'otvmB':_0x392473(0x100),'BunMQ':_0x392473(0x90),'quozI':_0x392473(0x8e),'djqvK':function(_0x3b1a1f){return _0x3b1a1f();},'ZlQPP':function(_0x124ef7,_0x29ec68){return _0x124ef7(_0x29ec68);},'xDDIk':_0x392473(0xa9)};return new Promise((_0x526f27,_0x3c6974)=>{const _0x20466e=_0x392473,_0x2550f9=()=>{const _0x4408e4=_0x4aaa;_0x23f247[_0x4408e4(0x8f)](),_0x23f247[_0x4408e4(0xd1)]();},_0x495426=setTimeout(()=>{const _0x53b7fa=_0x4aaa;_0x2550f9(),_0x3c6974(new OAuthTimeoutError(_0x53b7fa(0xca)));},0x1d4c0),_0x23f247=_0x373689['ZlQPP'](createServer,(_0x50e1c9,_0x210244)=>{const _0x25f169=_0x4aaa,_0x305f6e=new URL(_0x50e1c9[_0x25f169(0x9b)]??'/',_0x25f169(0xf5)+CALLBACK_PORT);if(_0x305f6e['pathname']!==_0x373689[_0x25f169(0xf3)]){_0x210244[_0x25f169(0xff)](0x194),_0x210244['end']('Not\x20found');return;}const _0x1f31c4=_0x305f6e['searchParams'][_0x25f169(0xbe)](_0x373689[_0x25f169(0xc8)]),_0x4bec8e=_0x305f6e['searchParams'][_0x25f169(0xbe)](_0x25f169(0x9c)),_0x387671=_0x305f6e['searchParams']['get'](_0x373689['qxjsE']);if(_0x387671){const _0x20a119=_0x305f6e['searchParams']['get'](_0x373689[_0x25f169(0xd0)])??_0x387671;_0x210244['writeHead'](0xc8,{'Content-Type':_0x25f169(0x100)}),_0x210244[_0x25f169(0x11c)](_0x25f169(0xfd)+_0x20a119+'</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>'),clearTimeout(_0x495426),_0x2550f9(),_0x3c6974(new Error('OAuth\x20error:\x20'+_0x20a119));return;}if(!_0x1f31c4||_0x373689['uDizR'](_0x4bec8e,_0x5c531f)){_0x210244[_0x25f169(0xff)](0x190,{'Content-Type':_0x373689['otvmB']}),_0x210244[_0x25f169(0x11c)](_0x373689[_0x25f169(0xf0)]);return;}_0x210244[_0x25f169(0xff)](0xc8,{'Content-Type':_0x373689[_0x25f169(0xe2)]}),_0x210244[_0x25f169(0x11c)](_0x373689[_0x25f169(0x113)]),clearTimeout(_0x495426),_0x373689['djqvK'](_0x2550f9),_0x373689[_0x25f169(0xd3)](_0x526f27,_0x1f31c4);});_0x23f247['listen'](CALLBACK_PORT,_0x373689[_0x20466e(0x91)]);});}async function openBrowser(_0x11f6e4){const _0x437e05=_0x573ffa,_0x5ca8e4={'quTpe':function(_0x54be6b,_0x385c06){return _0x54be6b===_0x385c06;},'UILkJ':'darwin','kZSET':_0x437e05(0xbf),'fHeCC':'xdg-open'},_0x2c2da8=_0x5ca8e4[_0x437e05(0xdb)](process['platform'],_0x5ca8e4[_0x437e05(0x107)])?_0x5ca8e4['kZSET']:_0x5ca8e4['quTpe'](process['platform'],'win32')?'start':_0x5ca8e4[_0x437e05(0xc9)];exec(_0x2c2da8+'\x20\x22'+_0x11f6e4+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x356564=_0x573ffa,_0x21abb1={'SIlFr':function(_0x1d29e9,_0x4e96f0,_0x5eff61){return _0x1d29e9(_0x4e96f0,_0x5eff61);},'WxqoG':'utf-8','LIEFp':function(_0x219c0d,_0x264d40){return _0x219c0d!==_0x264d40;},'HWzuP':function(_0x480a9c,_0x18742a){return _0x480a9c>_0x18742a;}};try{const _0x328ace=JSON[_0x356564(0x9a)](await _0x21abb1['SIlFr'](readFile,TOKEN_CACHE_PATH,_0x21abb1['WxqoG']));if(_0x328ace['origin']&&_0x21abb1['LIEFp'](_0x328ace[_0x356564(0xcc)],currentOrigin))return null;if(_0x328ace[_0x356564(0xc2)]&&_0x21abb1['HWzuP'](Date[_0x356564(0xa5)](),_0x328ace['expiresAt']))return null;return _0x328ace['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x58a761,_0x1e1c73,_0x2d6d72){const _0x4f141a=_0x573ffa,_0x429b3c={'PiXLj':function(_0x2cd435){return _0x2cd435();},'vrUAo':function(_0x450a1d,_0x3f61c0){return _0x450a1d+_0x3f61c0;},'NtwWn':function(_0x3e19ac,_0x4fff36,_0x432267){return _0x3e19ac(_0x4fff36,_0x432267);},'TDymW':function(_0x33437b){return _0x33437b();},'uuJPl':'.ranger'},_0x5eafd4=await _0x429b3c['PiXLj'](loadCachedData),_0x32c6bc={..._0x5eafd4,'origin':currentOrigin,'accessToken':_0x58a761,'refreshToken':_0x1e1c73??_0x5eafd4?.[_0x4f141a(0xf1)],'expiresAt':_0x2d6d72?_0x429b3c[_0x4f141a(0x10b)](Date[_0x4f141a(0xa5)](),_0x2d6d72*0x3e8):undefined};await mkdir(_0x429b3c[_0x4f141a(0x101)](join,_0x429b3c['TDymW'](homedir),_0x429b3c['uuJPl']),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x4f141a(0xfb)](_0x32c6bc),{'mode':0x180});}async function loadCachedClient(){const _0x270259=_0x573ffa,_0x2c3da0={'apVNG':function(_0x58bcfc){return _0x58bcfc();}},_0x250330=await _0x2c3da0[_0x270259(0x9d)](loadCachedData);if(_0x250330?.['origin']&&_0x250330['origin']!==currentOrigin)return null;return _0x250330?.['clientId']?{'clientId':_0x250330['clientId'],'clientSecret':_0x250330[_0x270259(0xaa)]}:null;}async function clearCachedClient(){const _0xedabc6=_0x573ffa,_0x5545bb={'YjzKz':function(_0x4b2dc5){return _0x4b2dc5();},'tuObB':function(_0x49a91d,_0x208a1c,_0x4368d5,_0x27f7bf){return _0x49a91d(_0x208a1c,_0x4368d5,_0x27f7bf);}},_0x4b3ce3=await _0x5545bb['YjzKz'](loadCachedData);if(!_0x4b3ce3)return;const {clientId:_0x54f86f,clientSecret:_0x34cc5b,..._0x17b60b}=_0x4b3ce3;await _0x5545bb[_0xedabc6(0xd6)](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x17b60b),{'mode':0x180});}async function saveCachedClient(_0x4f1201,_0x81d8c4){const _0x930a27=_0x573ffa,_0x5df611={'DMIar':function(_0x2ee403,_0x177633,_0xc44df8){return _0x2ee403(_0x177633,_0xc44df8);},'VEHkf':_0x930a27(0xa3),'QyIIh':function(_0x1b5525,_0xcfd6d8,_0x2a7f69,_0x1d52f1){return _0x1b5525(_0xcfd6d8,_0x2a7f69,_0x1d52f1);}},_0x47b80c=await loadCachedData(),_0x50ccaa={..._0x47b80c,'origin':currentOrigin,'accessToken':_0x47b80c?.['accessToken']??'','clientId':_0x4f1201,'clientSecret':_0x81d8c4};await mkdir(_0x5df611[_0x930a27(0xa7)](join,homedir(),_0x5df611['VEHkf']),{'recursive':!![]}),await _0x5df611['QyIIh'](writeFile,TOKEN_CACHE_PATH,JSON[_0x930a27(0xfb)](_0x50ccaa),{'mode':0x180});}function _0xa9e7(){const _0x2868ec=['NtwWn','resource','isTTY','startsWith','POST','uTbsp','UILkJ','/.well-known/oauth-protected-resource','66wpHIpe','result','vrUAo','257571QHBtXD','uclwX','message','auth-origin.txt','write','initialize','string','quozI','needs-oauth','2611598KWCrqV','text','SRGjr','structuredContent','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','odGgJ','DzTBW','end','client_secret','token','XazWt','3yKuIHj','authorization_servers','text/event-stream','<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','closeAllConnections','<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','xDDIk','application/json','OLyxZ','ranger-cli','OAuthTimeoutError','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','9583717OhRKcU','wkuxK','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','parse','url','state','apVNG','error','log','Exchanging\x20authorization\x20code...','RUDAV','UvAMA','.ranger','5972874Pzfbpb','now','2342890eIlPck','DMIar','VnAYM','127.0.0.1','clientSecret','KFejv','content','isError','length','2.0','HTTP\x20','1.0.0','Server\x20returned\x20error:\x20','token_endpoint','refresh.txt','response_type','code_challenge_method','data:','Token\x20exchange\x20failed:\x20','No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','FiSCt','authorization_endpoint','tpbPm','mmpMF','get','open','lnsmF','authorization_code','expiresAt','\x20done','1KjzGys','hULhS','toString','iElpb','XFSsx','fHeCC','OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','MCP\x20server\x20returned\x20HTTP\x20','origin','2025-03-26','Bearer\x20','rSOvA','LoFUs','close','Authorization','ZlQPP','status','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','tuObB','searchParams','Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','QIGWX','utf-8','quTpe','trim','match','headers','3789608WTTqkv','vqiCg','MCP\x20initialize\x20failed:\x20','otvmB','refresh_token','vdgTf','Initializing\x20MCP\x20session...','alcaZ','7725557iYUKrU','kSKbc','registration_endpoint','stdout','proxied','12XBEnGs','then','/callback','jBtNa','BunMQ','refreshToken','JNaIQ','bRXtX','UzrCV','http://localhost:','5VoeJff','CzwQG','json','set','MikZV','stringify','200OHpXaM','<html><body><h2>Authentication\x20failed</h2><p>','Akobv','writeHead','text/html'];_0xa9e7=function(){return _0x2868ec;};return _0xa9e7();}async function loadCachedData(){const _0x9895c8=_0x573ffa,_0x131573={'alcaZ':'utf-8'};try{return JSON['parse'](await readFile(TOKEN_CACHE_PATH,_0x131573[_0x9895c8(0xe6)]));}catch{return null;}}async function parseResponse(_0x4a5db0){const _0xf5123d=_0x573ffa,_0x23bd5e={'dCJmH':_0xf5123d(0x8d),'RUDAV':function(_0x3bfb06,_0x28e9f2){return _0x3bfb06!==_0x28e9f2;}},_0x47fc36=_0x4a5db0[_0xf5123d(0xde)][_0xf5123d(0xbe)]('content-type')??'';if(_0x47fc36['includes'](_0x23bd5e['dCJmH'])){const _0x52453c=await _0x4a5db0['text']();for(const _0x18e44d of _0x52453c['split']('\x0a')){const _0x297e08=_0x18e44d[_0xf5123d(0xdc)]();if(_0x297e08[_0xf5123d(0x104)](_0xf5123d(0xb7))){const _0x35a2e0=_0x297e08['slice']('data:'[_0xf5123d(0xae)])['trim']();if(!_0x35a2e0)continue;try{const _0x4babcd=JSON[_0xf5123d(0x9a)](_0x35a2e0);if(_0x23bd5e[_0xf5123d(0xa1)](_0x4babcd['id'],undefined)||_0x4babcd['error'])return _0x4babcd;}catch{}}}throw new Error(_0xf5123d(0x119));}return _0x4a5db0[_0xf5123d(0xf8)]();}function extractToken(_0x1f0cb5){const _0x2ab6db=_0x573ffa,_0x20f157={'FiSCt':function(_0x1cd781,_0x2ead48){return _0x1cd781===_0x2ead48;},'cHDlF':'string'};if(!_0x1f0cb5)return null;const _0x18d43e=_0x1f0cb5[_0x2ab6db(0x118)];if(_0x18d43e?.[_0x2ab6db(0x11e)]&&typeof _0x18d43e[_0x2ab6db(0x11e)]===_0x2ab6db(0x112))return _0x18d43e[_0x2ab6db(0x11e)];if(_0x1f0cb5[_0x2ab6db(0xad)]){const _0x477cc8=_0x1f0cb5['content'];throw new Error(_0x2ab6db(0xb2)+(_0x477cc8?.[0x0]?.['text']??'Unknown\x20error'));}const _0x270c81=_0x1f0cb5[_0x2ab6db(0xac)];if(_0x270c81)for(const _0x307802 of _0x270c81){if(_0x20f157[_0x2ab6db(0xba)](_0x307802['type'],_0x2ab6db(0x116))&&_0x307802['text']){try{const _0x2ca980=JSON[_0x2ab6db(0x9a)](_0x307802['text']);if(_0x20f157['FiSCt'](typeof _0x2ca980?.[_0x2ab6db(0x11e)],_0x20f157['cHDlF']))return _0x2ca980[_0x2ab6db(0x11e)];}catch{}const _0x4cdce8=_0x307802[_0x2ab6db(0x116)][_0x2ab6db(0xdd)](/(rngr_[A-Za-z0-9_-]+)/);if(_0x4cdce8)return _0x4cdce8[0x1];}}return null;}
1
+ const _0xd4fbbe=_0x3e95;(function(_0x20d17c,_0xa9067){const _0x354ca2=_0x3e95,_0x482241=_0x20d17c();while(!![]){try{const _0x28a5a0=parseInt(_0x354ca2(0xe8))/0x1+parseInt(_0x354ca2(0x107))/0x2*(parseInt(_0x354ca2(0x153))/0x3)+-parseInt(_0x354ca2(0xe2))/0x4*(-parseInt(_0x354ca2(0x109))/0x5)+-parseInt(_0x354ca2(0x160))/0x6*(parseInt(_0x354ca2(0x13d))/0x7)+parseInt(_0x354ca2(0xf7))/0x8*(-parseInt(_0x354ca2(0x12f))/0x9)+-parseInt(_0x354ca2(0x152))/0xa*(parseInt(_0x354ca2(0xca))/0xb)+-parseInt(_0x354ca2(0x142))/0xc*(-parseInt(_0x354ca2(0xf8))/0xd);if(_0x28a5a0===_0xa9067)break;else _0x482241['push'](_0x482241['shift']());}catch(_0x2a416d){_0x482241['push'](_0x482241['shift']());}}}(_0x2877,0xd7deb));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),_0xd4fbbe(0xcd),'mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),_0xd4fbbe(0xcd),_0xd4fbbe(0x157));export async function getMcpAuthOrigin(){const _0x345743={'yQbwz':function(_0x2a912f,_0x98fddc,_0x78abfe){return _0x2a912f(_0x98fddc,_0x78abfe);},'OMayA':function(_0x2699e5,_0x3df7a9){return _0x2699e5||_0x3df7a9;}};try{const _0x1960d0=(await _0x345743['yQbwz'](readFile,AUTH_ORIGIN_PATH,'utf-8'))['trim']();return _0x345743['OMayA'](_0x1960d0,null);}catch{return null;}}export async function mcpBootstrap(){const _0x3d4993=_0xd4fbbe,_0x4a65ed={'wxoqy':function(_0x2660a6,_0x5f3c4b){return _0x2660a6(_0x5f3c4b);},'KhWIX':function(_0x13c822){return _0x13c822();},'RwycM':function(_0x5476c8,_0x12c8d5){return _0x5476c8+_0x12c8d5;},'meHBO':'Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','XYQiG':function(_0x1a68d7,_0x1fd19c,_0x47f972){return _0x1a68d7(_0x1fd19c,_0x47f972);}},_0x268b4a=getMcpAuthUrl();currentOrigin=_0x268b4a;const _0x54975d=process['stdout'][_0x3d4993(0x101)]??![];console['log'](_0x3d4993(0x113)+_0x268b4a+'\x0a');const _0xe65864=await _0x4a65ed['wxoqy'](tryUnauthenticated,_0x268b4a);let _0x36f768=null;if(_0xe65864==='proxied')_0x36f768='';else{_0x36f768=await _0x4a65ed['KhWIX'](loadCachedToken);if(!_0x36f768){if(!_0x54975d)throw new Error(_0x4a65ed['RwycM'](_0x3d4993(0x114),_0x4a65ed[_0x3d4993(0x135)]));_0x36f768=await _0x4a65ed[_0x3d4993(0xe7)](oauthFlow,_0x268b4a);}}await _0x4a65ed['XYQiG'](callGetCliToken,_0x268b4a,_0x36f768);}async function tryUnauthenticated(_0x57ddc6){const _0x48f089=_0xd4fbbe,_0x58c586={'UCcxO':_0x48f089(0x130),'MTbjw':'application/json','hMqJZ':'application/json,\x20text/event-stream','EUpiv':_0x48f089(0x11a),'hXLxq':_0x48f089(0xfc),'xDwzU':_0x48f089(0x103),'ogzOI':'ranger-cli','qTmUC':'proxied','yWptI':function(_0x41dce2,_0x4c2330){return _0x41dce2===_0x4c2330;},'bMqSK':'needs-oauth'},_0x15731a=await fetch(_0x57ddc6,{'method':_0x58c586[_0x48f089(0x104)],'headers':{'Content-Type':_0x58c586['MTbjw'],'Accept':_0x58c586['hMqJZ']},'body':JSON['stringify']({'jsonrpc':_0x58c586[_0x48f089(0xd2)],'id':0x1,'method':_0x58c586['hXLxq'],'params':{'protocolVersion':_0x58c586['xDwzU'],'capabilities':{},'clientInfo':{'name':_0x58c586['ogzOI'],'version':_0x48f089(0x158)}}})});if(_0x15731a['ok'])return await _0x15731a[_0x48f089(0x14e)](),_0x58c586[_0x48f089(0xf0)];if(_0x58c586['yWptI'](_0x15731a['status'],0x191))return await _0x15731a[_0x48f089(0x14e)](),_0x58c586['bMqSK'];const _0x53bfe1=await _0x15731a[_0x48f089(0x14e)]();throw new Error('MCP\x20server\x20returned\x20HTTP\x20'+_0x15731a[_0x48f089(0x123)]+':\x20'+_0x53bfe1);}function _0x3e95(_0x57956e,_0x64ecb3){_0x57956e=_0x57956e-0xc9;const _0x2877e8=_0x2877();let _0x3e95e8=_0x2877e8[_0x57956e];return _0x3e95e8;}class OAuthTimeoutError extends Error{constructor(_0x30ca75){const _0x4b39b4=_0xd4fbbe,_0x10f8f1={'sYSal':'OAuthTimeoutError'};super(_0x30ca75),this[_0x4b39b4(0x10c)]=_0x10f8f1[_0x4b39b4(0x14a)];}}async function oauthFlow(_0x4c1e72){const _0x1e8daf=_0xd4fbbe,_0xbec56d={'Krbdv':function(_0x18d2b5,_0x643a40){return _0x18d2b5 instanceof _0x643a40;},'yOPtF':function(_0x4b6491){return _0x4b6491();},'cACGw':_0x1e8daf(0x162)};try{return await oauthFlowAttempt(_0x4c1e72);}catch(_0x2a5f97){if(_0xbec56d[_0x1e8daf(0x10b)](_0x2a5f97,OAuthTimeoutError)&&await _0xbec56d[_0x1e8daf(0xd7)](loadCachedClient))return console[_0x1e8daf(0x128)](_0xbec56d['cACGw']),await clearCachedClient(),await oauthFlowAttempt(_0x4c1e72);throw _0x2a5f97;}}function _0x2877(){const _0x3942a9=['state','open','writeHead','96OQADfr','clientId','Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','digest','zfNUH','Jqnrd','match','code','sYSal','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','includes','now','text','trim','win32','rDPQE','12590140EFUSUg','111byffrE','code_challenge_method','isError','ciols','auth-origin.txt','1.0.0','none','write','ckcIX','pathname','stdout','result','close','2401314sDyljy','\x0aToken\x20written\x20to\x20','\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a','authorization_servers','11AEhGFt','LcQGd','Bearer\x20','.ranger','ErwKp','OKExa','expires_in','sNWor','EUpiv','clientSecret','mOOXJ','refreshToken','searchParams','yOPtF','<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','oToUT','Euuym','origin','boHbr','gLZVa','replace','/callback','parse','nFlzR','77092xjdNfb','taGwy','http://localhost:','end','rALcs','wxoqy','1422809BnLBYl','OAuth\x20error:\x20','set','NEqLM','Not\x20found','\x0aOpening\x20browser\x20for\x20authentication...','text/event-stream','startsWith','qTmUC','structuredContent','kixVX','toString','access_token','bwqVz','base64url','8gILIWa','1603849RNiJWB','string','dnjQh','frnRL','initialize','knlso','error','expiresAt','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','isTTY','application/json,\x20text/event-stream','2025-03-26','UCcxO','json','DawkP','9740gprYii','content-type','425QXwDCc','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','Krbdv','name','MPMee','Discovering\x20authorization\x20server...','nmbty','Client\x20registration\x20failed:\x20','update','\x0aUnexpected\x20response\x20structure:','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','stringify','token_endpoint','Exchanging\x20authorization\x20code...','WRKPr','resource','2.0','utf-8','eDLHk','Ranger\x20CLI','tools/call','FjYqR','get','Jvicr','error_description','status','listen','WaXuT','response_type','content','log','hex','message','VykVF','qrXuQ','code_challenge','EYXdz','7958826nyyToE','POST','accessToken','KRlnN','fZIkS','GCgxF','meHBO','kdWnD','MCP\x20initialize\x20failed:\x20','\x20done','Initializing\x20MCP\x20session...','token','HTTP\x20','data:','21XotTQF','split'];_0x2877=function(){return _0x3942a9;};return _0x2877();}async function oauthFlowAttempt(_0x4730b1){const _0x23feba=_0xd4fbbe,_0x2fcc1d={'ZTABF':_0x23feba(0x10e),'frnRL':function(_0x58122a,_0x1c7309){return _0x58122a(_0x1c7309);},'Euuym':function(_0x164ee5){return _0x164ee5();},'NEqLM':'Registering\x20OAuth\x20client...','taGwy':_0x23feba(0x11d),'zfNUH':'authorization_code','Jqnrd':_0x23feba(0x159),'Bamzf':function(_0x3d8914,_0x335f50,_0x2d5911){return _0x3d8914(_0x335f50,_0x2d5911);},'OtZRT':'\x20done','vezAc':_0x23feba(0xf6),'ckcIX':'sha256','vvIzw':_0x23feba(0x129),'IaLHa':_0x23feba(0x126),'PTuxE':'code','qrXuQ':'client_id','bwqVz':_0x23feba(0x13f),'sNWor':function(_0x4cc39d,_0x2ef8c4){return _0x4cc39d(_0x2ef8c4);},'VbaMV':function(_0x15c0c2,_0x324c09,_0x113c2f){return _0x15c0c2(_0x324c09,_0x113c2f);},'boHbr':_0x23feba(0x130),'GCgxF':'application/x-www-form-urlencoded','rtmer':function(_0x126f70,_0x54dad3,_0x4b77ec,_0x272c8a){return _0x126f70(_0x54dad3,_0x4b77ec,_0x272c8a);}},_0x54505f=_0x4730b1[_0x23feba(0xde)](/\/mcp$/,'');process[_0x23feba(0x15d)]['write'](_0x2fcc1d['ZTABF']);const _0x212a22=await fetch(_0x54505f+'/.well-known/oauth-protected-resource');if(!_0x212a22['ok'])throw new Error('Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server');const _0x13bd6b=await _0x212a22[_0x23feba(0x105)](),_0x21c7ab=_0x13bd6b[_0x23feba(0xc9)]?.[0x0];if(!_0x21c7ab)throw new Error('No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata');console[_0x23feba(0x128)]('\x20'+_0x21c7ab);const _0x247587=await _0x2fcc1d[_0x23feba(0xfb)](fetchAuthServerMetadata,_0x21c7ab);let _0xf89a17,_0xc353db;const _0x26bbdd=await _0x2fcc1d[_0x23feba(0xda)](loadCachedClient);if(_0x26bbdd)_0xf89a17=_0x26bbdd['clientId'],_0xc353db=_0x26bbdd[_0x23feba(0xd3)];else{if(_0x247587['registration_endpoint']){process[_0x23feba(0x15d)]['write'](_0x2fcc1d[_0x23feba(0xeb)]);const _0x1be83=await fetch(_0x247587['registration_endpoint'],{'method':_0x23feba(0x130),'headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'client_name':_0x2fcc1d[_0x23feba(0xe3)],'redirect_uris':['http://localhost:'+CALLBACK_PORT+_0x23feba(0xdf)],'grant_types':[_0x2fcc1d[_0x23feba(0x146)],'refresh_token'],'response_types':[_0x23feba(0x149)],'token_endpoint_auth_method':_0x2fcc1d[_0x23feba(0x147)]})});if(!_0x1be83['ok']){const _0x4b18ed=await _0x1be83['text']();throw new Error(_0x23feba(0x110)+_0x4b18ed);}const _0xbed377=await _0x1be83[_0x23feba(0x105)]();_0xf89a17=_0xbed377['client_id'],_0xc353db=_0xbed377['client_secret'],await _0x2fcc1d['Bamzf'](saveCachedClient,_0xf89a17,_0xc353db),console['log'](_0x2fcc1d['OtZRT']);}else throw new Error(_0x23feba(0x144));}const _0x533ca7=randomBytes(0x20)['toString'](_0x2fcc1d['vezAc']),_0x132c7a=_0x2fcc1d['frnRL'](createHash,_0x2fcc1d[_0x23feba(0x15b)])[_0x23feba(0x111)](_0x533ca7)[_0x23feba(0x145)](_0x2fcc1d['vezAc']),_0xcd0024=_0x2fcc1d['frnRL'](randomBytes,0x10)['toString'](_0x2fcc1d['vvIzw']),_0x59d4ff=new URL(_0x247587['authorization_endpoint']);_0x59d4ff[_0x23feba(0xd6)]['set'](_0x2fcc1d['IaLHa'],_0x2fcc1d['PTuxE']),_0x59d4ff[_0x23feba(0xd6)]['set'](_0x2fcc1d[_0x23feba(0x12c)],_0xf89a17),_0x59d4ff[_0x23feba(0xd6)][_0x23feba(0xea)]('redirect_uri','http://localhost:'+CALLBACK_PORT+'/callback'),_0x59d4ff[_0x23feba(0xd6)][_0x23feba(0xea)](_0x23feba(0x12d),_0x132c7a),_0x59d4ff[_0x23feba(0xd6)]['set'](_0x23feba(0x154),'S256'),_0x59d4ff[_0x23feba(0xd6)]['set'](_0x2fcc1d[_0x23feba(0xf5)],_0xcd0024);_0x13bd6b[_0x23feba(0x119)]&&_0x59d4ff['searchParams']['set']('resource',_0x13bd6b[_0x23feba(0x119)]);console['log'](_0x23feba(0xed)),console[_0x23feba(0x128)]('If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a'+_0x59d4ff[_0x23feba(0xf3)]()+'\x0a'),await _0x2fcc1d[_0x23feba(0xd1)](openBrowser,_0x59d4ff[_0x23feba(0xf3)]());const _0xbdfeb=await waitForCallback(_0xcd0024);process['stdout']['write'](_0x23feba(0x117));const _0x16ce9e=new URLSearchParams({'grant_type':_0x2fcc1d['zfNUH'],'code':_0xbdfeb,'redirect_uri':_0x23feba(0xe4)+CALLBACK_PORT+'/callback','client_id':_0xf89a17,'code_verifier':_0x533ca7});_0xc353db&&_0x16ce9e['set']('client_secret',_0xc353db);_0x13bd6b['resource']&&_0x16ce9e[_0x23feba(0xea)](_0x23feba(0x119),_0x13bd6b['resource']);const _0x559b37=await _0x2fcc1d['VbaMV'](fetch,_0x247587[_0x23feba(0x116)],{'method':_0x2fcc1d[_0x23feba(0xdc)],'headers':{'Content-Type':_0x2fcc1d[_0x23feba(0x134)]},'body':_0x16ce9e});if(!_0x559b37['ok']){const _0x472b3a=await _0x559b37['text']();throw new Error('Token\x20exchange\x20failed:\x20'+_0x472b3a);}const _0x5eec51=await _0x559b37[_0x23feba(0x105)]();return console[_0x23feba(0x128)](_0x2fcc1d['OtZRT']),await _0x2fcc1d['rtmer'](saveCachedToken,_0x5eec51['access_token'],_0x5eec51['refresh_token'],_0x5eec51[_0x23feba(0xd0)]),_0x5eec51[_0x23feba(0xf4)];}async function callGetCliToken(_0xfcb4f7,_0x1de218){const _0x4d822e=_0xd4fbbe,_0x4452c5={'DawkP':function(_0xa1e59f,_0x28e84f,_0x43f60f){return _0xa1e59f(_0x28e84f,_0x43f60f);},'aewDr':'application/json','mOOXJ':function(_0x254bd4,_0x217d0b){return _0x254bd4(_0x217d0b);},'lqrXV':'2.0','TsNey':_0x4d822e(0xfc),'ScluW':_0x4d822e(0x103),'lWrMS':'ranger-cli','mfCCw':function(_0x419613,_0x4dfb71,_0x3cf611){return _0x419613(_0x4dfb71,_0x3cf611);},'ciols':_0x4d822e(0x130),'rALcs':'notifications/initialized','nmbty':_0x4d822e(0x11e),'fZIkS':'get_cli_token','OKExa':_0x4d822e(0x138),'JPhGO':'Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','nJhxg':function(_0x236963,_0x1bcbcf,_0x428935){return _0x236963(_0x1bcbcf,_0x428935);},'KRlnN':function(_0x4cbee5){return _0x4cbee5();},'Cljua':_0x4d822e(0xcd),'rDPQE':'refresh.txt','eDLHk':function(_0x5a7b6e,_0x3da658,_0x392577){return _0x5a7b6e(_0x3da658,_0x392577);},'LcQGd':function(_0x13b13a,_0xbf1dcc,_0x153a0a,_0x53e5fa){return _0x13b13a(_0xbf1dcc,_0x153a0a,_0x53e5fa);},'kixVX':function(_0x366a96,_0x1499b8,_0x34862f){return _0x366a96(_0x1499b8,_0x34862f);}},_0x1b5880={'Content-Type':_0x4452c5['aewDr'],'Accept':_0x4d822e(0x102)};_0x1de218&&(_0x1b5880['Authorization']=_0x4d822e(0xcc)+_0x1de218);const _0x50a2c5=async _0x59d524=>{const _0x4da9bd=_0x4d822e,_0x39aba9=await _0x4452c5[_0x4da9bd(0x106)](fetch,_0xfcb4f7,{'method':'POST','headers':_0x1b5880,'body':JSON[_0x4da9bd(0x115)](_0x59d524)});if(!_0x39aba9['ok']){const _0x35a343=await _0x39aba9[_0x4da9bd(0x14e)]();throw new Error(_0x4da9bd(0x13b)+_0x39aba9['status']+':\x20'+_0x35a343);}return parseResponse(_0x39aba9);};process['stdout']['write'](_0x4d822e(0x139));const _0x5f01a3=await _0x4452c5[_0x4d822e(0xd4)](_0x50a2c5,{'jsonrpc':_0x4452c5['lqrXV'],'id':0x1,'method':_0x4452c5['TsNey'],'params':{'protocolVersion':_0x4452c5['ScluW'],'capabilities':{},'clientInfo':{'name':_0x4452c5['lWrMS'],'version':_0x4d822e(0x158)}}});if(_0x5f01a3['error'])throw new Error(_0x4d822e(0x137)+(_0x5f01a3['error'][_0x4d822e(0x12a)]??JSON[_0x4d822e(0x115)](_0x5f01a3['error'])));console['log'](_0x4d822e(0x138)),await _0x4452c5['mfCCw'](fetch,_0xfcb4f7,{'method':_0x4452c5[_0x4d822e(0x156)],'headers':_0x1b5880,'body':JSON['stringify']({'jsonrpc':_0x4d822e(0x11a),'method':_0x4452c5[_0x4d822e(0xe6)]})})['then'](_0xf6c6dd=>_0xf6c6dd['text']()),process[_0x4d822e(0x15d)][_0x4d822e(0x15a)]('Requesting\x20CLI\x20token...');const _0x5ae95b=await _0x50a2c5({'jsonrpc':'2.0','id':0x2,'method':_0x4452c5[_0x4d822e(0x10f)],'params':{'name':_0x4452c5[_0x4d822e(0x133)],'arguments':{}}});if(_0x5ae95b[_0x4d822e(0xfe)])throw new Error('get_cli_token\x20failed:\x20'+(_0x5ae95b['error']['message']??JSON[_0x4d822e(0x115)](_0x5ae95b['error'])));console['log'](_0x4452c5[_0x4d822e(0xcf)]);const _0x1b39cd=extractToken(_0x5ae95b['result']);if(!_0x1b39cd){console['error'](_0x4d822e(0x112)),console['error'](JSON[_0x4d822e(0x115)](_0x5ae95b[_0x4d822e(0x15e)],null,0x2));throw new Error(_0x4452c5['JPhGO']);}const _0xc9393c=_0x4452c5['nJhxg'](join,_0x4452c5[_0x4d822e(0x132)](homedir),_0x4452c5['Cljua']),_0x4ed35d=join(_0xc9393c,_0x4452c5[_0x4d822e(0x151)]);await _0x4452c5[_0x4d822e(0x11c)](mkdir,_0xc9393c,{'recursive':!![]}),await writeFile(_0x4ed35d,_0x1b39cd,{'mode':0x180}),await _0x4452c5[_0x4d822e(0xcb)](writeFile,_0x4452c5[_0x4d822e(0xf2)](join,_0xc9393c,_0x4d822e(0x157)),_0xfcb4f7,{'mode':0x180}),console[_0x4d822e(0x128)](_0x4d822e(0x161)+_0x4ed35d),console['log']('Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a');}async function fetchAuthServerMetadata(_0x42182c){const _0x174f40=_0xd4fbbe,_0xd36cc={'emsrg':function(_0x133a21,_0x3a472c){return _0x133a21(_0x3a472c);}},_0x5bbdfb=_0x42182c+'/.well-known/oauth-authorization-server',_0x598419=await _0xd36cc['emsrg'](fetch,_0x5bbdfb);if(!_0x598419['ok'])throw new Error(_0x174f40(0x10a)+_0x5bbdfb+':\x20'+_0x598419[_0x174f40(0x123)]);return _0x598419['json']();}function waitForCallback(_0x5e87b4){const _0x345666=_0xd4fbbe,_0x9379c5={'knlso':function(_0x592a6f,_0x24118a){return _0x592a6f(_0x24118a);},'AdFZJ':'OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','MPMee':'code','kdWnD':'text/html','FjYqR':function(_0x27c407,_0x978c0b){return _0x27c407!==_0x978c0b;},'guSEN':_0x345666(0xd8),'SVhEA':function(_0x3c6c73,_0x5ba745){return _0x3c6c73(_0x5ba745);}};return new Promise((_0xc6468,_0x42eaa1)=>{const _0x4de3e9=_0x345666,_0x4627e1=setTimeout(()=>{_0x531db3['close'](),_0x9379c5['knlso'](_0x42eaa1,new OAuthTimeoutError(_0x9379c5['AdFZJ']));},0x1d4c0),_0x531db3=createServer((_0x1117d2,_0x1d1063)=>{const _0x5ef353=_0x3e95,_0x1ed016=new URL(_0x1117d2['url']??'/',_0x5ef353(0xe4)+CALLBACK_PORT);if(_0x1ed016[_0x5ef353(0x15c)]!==_0x5ef353(0xdf)){_0x1d1063['writeHead'](0x194),_0x1d1063['end'](_0x5ef353(0xec));return;}const _0xccea7e=_0x1ed016[_0x5ef353(0xd6)][_0x5ef353(0x120)](_0x9379c5[_0x5ef353(0x10d)]),_0x3c75e1=_0x1ed016[_0x5ef353(0xd6)]['get']('state'),_0x1f7464=_0x1ed016['searchParams']['get']('error');if(_0x1f7464){const _0x5f2288=_0x1ed016[_0x5ef353(0xd6)][_0x5ef353(0x120)](_0x5ef353(0x122))??_0x1f7464;_0x1d1063[_0x5ef353(0x141)](0xc8,{'Content-Type':_0x9379c5['kdWnD']}),_0x1d1063['end']('<html><body><h2>Authentication\x20failed</h2><p>'+_0x5f2288+_0x5ef353(0x14b)),_0x9379c5[_0x5ef353(0xfd)](clearTimeout,_0x4627e1),_0x531db3['close'](),_0x42eaa1(new Error(_0x5ef353(0xe9)+_0x5f2288));return;}if(!_0xccea7e||_0x9379c5[_0x5ef353(0x11f)](_0x3c75e1,_0x5e87b4)){_0x1d1063['writeHead'](0x190,{'Content-Type':_0x9379c5['kdWnD']}),_0x1d1063['end'](_0x9379c5['guSEN']);return;}_0x1d1063[_0x5ef353(0x141)](0xc8,{'Content-Type':_0x9379c5[_0x5ef353(0x136)]}),_0x1d1063[_0x5ef353(0xe5)]('<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>'),_0x9379c5['knlso'](clearTimeout,_0x4627e1),_0x531db3[_0x5ef353(0x15f)](),_0x9379c5['SVhEA'](_0xc6468,_0xccea7e);});_0x531db3[_0x4de3e9(0x124)](CALLBACK_PORT,'127.0.0.1');});}async function openBrowser(_0xee7e77){const _0x1f0673=_0xd4fbbe,_0x401891={'oToUT':function(_0x3107b9,_0x3678ed){return _0x3107b9===_0x3678ed;}},{exec:_0x234933}=await import('child_process'),_0x492a61=_0x401891[_0x1f0673(0xd9)](process['platform'],'darwin')?_0x1f0673(0x140):process['platform']===_0x1f0673(0x150)?'start':'xdg-open';_0x234933(_0x492a61+'\x20\x22'+_0xee7e77+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x39be3e=_0xd4fbbe,_0x467325={'HNFjL':function(_0x4583a1,_0x2ead12,_0x4c7b4a){return _0x4583a1(_0x2ead12,_0x4c7b4a);},'OTYur':function(_0x2c0d82,_0xbc2ee3){return _0x2c0d82!==_0xbc2ee3;},'BuVju':function(_0x423045,_0x42b0e5){return _0x423045>_0x42b0e5;}};try{const _0x3e171a=JSON['parse'](await _0x467325['HNFjL'](readFile,TOKEN_CACHE_PATH,_0x39be3e(0x11b)));if(_0x3e171a[_0x39be3e(0xdb)]&&_0x467325['OTYur'](_0x3e171a['origin'],currentOrigin))return null;if(_0x3e171a['expiresAt']&&_0x467325['BuVju'](Date[_0x39be3e(0x14d)](),_0x3e171a[_0x39be3e(0xff)]))return null;return _0x3e171a[_0x39be3e(0x131)]??null;}catch{return null;}}async function saveCachedToken(_0x4f125b,_0x47331f,_0x2329d5){const _0x3bb1c6=_0xd4fbbe,_0xcb593f={'WaXuT':function(_0x98d68,_0xd69d3c){return _0x98d68+_0xd69d3c;},'ErwKp':function(_0x52711b,_0x4c3a32){return _0x52711b*_0x4c3a32;},'qBTnS':function(_0x1dc4fc){return _0x1dc4fc();},'Jvicr':'.ranger','othGo':function(_0x16c3ce,_0x454eaf,_0x5d6db4,_0x38c29d){return _0x16c3ce(_0x454eaf,_0x5d6db4,_0x38c29d);}},_0x579eba=await loadCachedData(),_0x2f5651={..._0x579eba,'origin':currentOrigin,'accessToken':_0x4f125b,'refreshToken':_0x47331f??_0x579eba?.[_0x3bb1c6(0xd5)],'expiresAt':_0x2329d5?_0xcb593f[_0x3bb1c6(0x125)](Date['now'](),_0xcb593f[_0x3bb1c6(0xce)](_0x2329d5,0x3e8)):undefined};await mkdir(join(_0xcb593f['qBTnS'](homedir),_0xcb593f[_0x3bb1c6(0x121)]),{'recursive':!![]}),await _0xcb593f['othGo'](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x2f5651),{'mode':0x180});}async function loadCachedClient(){const _0x5525d8=_0xd4fbbe,_0x6019e0={'dnjQh':function(_0x31fe05){return _0x31fe05();},'oINQP':function(_0x309010,_0x521638){return _0x309010!==_0x521638;}},_0x3d57f8=await _0x6019e0[_0x5525d8(0xfa)](loadCachedData);if(_0x3d57f8?.['origin']&&_0x6019e0['oINQP'](_0x3d57f8['origin'],currentOrigin))return null;return _0x3d57f8?.['clientId']?{'clientId':_0x3d57f8[_0x5525d8(0x143)],'clientSecret':_0x3d57f8['clientSecret']}:null;}async function clearCachedClient(){const _0x79966c=_0xd4fbbe,_0x5e421a={'VykVF':function(_0x1f4a45,_0x123a63,_0x8eebf3,_0x3d4825){return _0x1f4a45(_0x123a63,_0x8eebf3,_0x3d4825);}},_0x295a73=await loadCachedData();if(!_0x295a73)return;const {clientId:_0x42a86d,clientSecret:_0x151c83,..._0x3ce562}=_0x295a73;await _0x5e421a[_0x79966c(0x12b)](writeFile,TOKEN_CACHE_PATH,JSON[_0x79966c(0x115)](_0x3ce562),{'mode':0x180});}async function saveCachedClient(_0x1dbf69,_0x42802b){const _0x6385bd=_0xd4fbbe,_0x158e44={'EYXdz':function(_0x4ed13f,_0xf3fbde,_0xff952d){return _0x4ed13f(_0xf3fbde,_0xff952d);},'gLZVa':function(_0x3824ca){return _0x3824ca();},'JYcVX':'.ranger','xcHPZ':function(_0x4a4954,_0x35b9bb,_0x2a053f,_0x39f3bb){return _0x4a4954(_0x35b9bb,_0x2a053f,_0x39f3bb);}},_0x6ae98c=await loadCachedData(),_0x518ef6={..._0x6ae98c,'origin':currentOrigin,'accessToken':_0x6ae98c?.['accessToken']??'','clientId':_0x1dbf69,'clientSecret':_0x42802b};await _0x158e44[_0x6385bd(0x12e)](mkdir,join(_0x158e44[_0x6385bd(0xdd)](homedir),_0x158e44['JYcVX']),{'recursive':!![]}),await _0x158e44['xcHPZ'](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x518ef6),{'mode':0x180});}async function loadCachedData(){const _0x47e2f9=_0xd4fbbe,_0x46efee={'RBDrW':_0x47e2f9(0x11b)};try{return JSON[_0x47e2f9(0xe0)](await readFile(TOKEN_CACHE_PATH,_0x46efee['RBDrW']));}catch{return null;}}async function parseResponse(_0x24f5fa){const _0x4c05cf=_0xd4fbbe,_0x3ee2f8={'QdnMu':_0x4c05cf(0xee),'MPFyx':_0x4c05cf(0x13c),'WRKPr':_0x4c05cf(0x100)},_0xdc73e3=_0x24f5fa['headers'][_0x4c05cf(0x120)](_0x4c05cf(0x108))??'';if(_0xdc73e3[_0x4c05cf(0x14c)](_0x3ee2f8['QdnMu'])){const _0x4d3e70=await _0x24f5fa[_0x4c05cf(0x14e)]();for(const _0x169372 of _0x4d3e70[_0x4c05cf(0x13e)]('\x0a')){const _0x4bc5fd=_0x169372[_0x4c05cf(0x14f)]();if(_0x4bc5fd[_0x4c05cf(0xef)](_0x3ee2f8['MPFyx'])){const _0x183f00=_0x4bc5fd['slice'](_0x4c05cf(0x13c)['length'])['trim']();if(!_0x183f00)continue;try{const _0x119b78=JSON['parse'](_0x183f00);if(_0x119b78['id']!==undefined||_0x119b78[_0x4c05cf(0xfe)])return _0x119b78;}catch{}}}throw new Error(_0x3ee2f8[_0x4c05cf(0x118)]);}return _0x24f5fa['json']();}function extractToken(_0x145aeb){const _0x42b172=_0xd4fbbe,_0x46931b={'nFlzR':function(_0x3613cf,_0xa56df5){return _0x3613cf===_0xa56df5;}};if(!_0x145aeb)return null;const _0x12ef1e=_0x145aeb[_0x42b172(0xf1)];if(_0x12ef1e?.[_0x42b172(0x13a)]&&_0x46931b[_0x42b172(0xe1)](typeof _0x12ef1e['token'],_0x42b172(0xf9)))return _0x12ef1e['token'];if(_0x145aeb[_0x42b172(0x155)]){const _0x195143=_0x145aeb[_0x42b172(0x127)];throw new Error('Server\x20returned\x20error:\x20'+(_0x195143?.[0x0]?.['text']??'Unknown\x20error'));}const _0x59d75a=_0x145aeb['content'];if(_0x59d75a)for(const _0x36bd3a of _0x59d75a){if(_0x36bd3a['type']===_0x42b172(0x14e)&&_0x36bd3a['text']){try{const _0x467684=JSON['parse'](_0x36bd3a['text']);if(typeof _0x467684?.[_0x42b172(0x13a)]==='string')return _0x467684['token'];}catch{}const _0xccc3fc=_0x36bd3a[_0x42b172(0x14e)][_0x42b172(0x148)](/(rngr_[A-Za-z0-9_-]+)/);if(_0xccc3fc)return _0xccc3fc[0x1];}}return null;}
@@ -1 +1 @@
1
- (function(_0x3ba8e9,_0x57e6f4){const _0x463352=_0x449c,_0x55f96f=_0x3ba8e9();while(!![]){try{const _0x53e46d=-parseInt(_0x463352(0x1fc))/0x1*(parseInt(_0x463352(0x1f2))/0x2)+-parseInt(_0x463352(0x1e4))/0x3*(parseInt(_0x463352(0x1e3))/0x4)+parseInt(_0x463352(0x1f4))/0x5*(-parseInt(_0x463352(0x1fe))/0x6)+parseInt(_0x463352(0x20e))/0x7*(-parseInt(_0x463352(0x205))/0x8)+-parseInt(_0x463352(0x204))/0x9+-parseInt(_0x463352(0x1ff))/0xa+parseInt(_0x463352(0x1fa))/0xb*(parseInt(_0x463352(0x200))/0xc);if(_0x53e46d===_0x57e6f4)break;else _0x55f96f['push'](_0x55f96f['shift']());}catch(_0x340389){_0x55f96f['push'](_0x55f96f['shift']());}}}(_0x5d65,0x590e5));import{join}from'path';import{existsSync}from'fs';import _0x472b62 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';function _0x449c(_0x47c5a8,_0x287c73){_0x47c5a8=_0x47c5a8-0x1da;const _0x5d65dc=_0x5d65();let _0x449cf0=_0x5d65dc[_0x47c5a8];return _0x449cf0;}export async function ensureClaudePlugin(_0x52aaaa){const _0x4ba0cd=_0x449c,_0x1df320={'zXADC':function(_0x8fcdbb,_0x4e0db3){return _0x8fcdbb(_0x4e0db3);},'tyNgP':'ranger@trailhead','zRjxr':_0x4ba0cd(0x214),'cMpqc':'project','UxNqk':'\x0a📦\x20Claude\x20Code\x20Plugin\x0a','ldhXJ':'Where\x20should\x20the\x20plugin\x20be\x20installed?','cfzdk':_0x4ba0cd(0x1f0),'zIgrX':function(_0x3c783f,_0x59bf56){return _0x3c783f(_0x59bf56);},'PfZDA':_0x4ba0cd(0x1e8),'XFXtF':_0x4ba0cd(0x1fb),'oqfMO':_0x4ba0cd(0x20c),'Pqukx':_0x4ba0cd(0x21a),'MibWo':function(_0x4fd026,_0x476f9b){return _0x4fd026===_0x476f9b;},'XTuFU':_0x4ba0cd(0x20f),'iJarn':_0x4ba0cd(0x1e7),'pjZBZ':_0x4ba0cd(0x1ee),'wzgQM':function(_0x3f835f,_0x147eb9,_0xe5a136){return _0x3f835f(_0x147eb9,_0xe5a136);},'IguQl':function(_0x5ef568){return _0x5ef568();},'oNxpW':_0x4ba0cd(0x1da),'DrycD':_0x4ba0cd(0x1db)},_0x25aa85=await _0x1df320['zXADC'](isPluginInstalled,_0x1df320[_0x4ba0cd(0x1dc)]);if(_0x25aa85)return console[_0x4ba0cd(0x1de)](_0x1df320['zRjxr']),![];const _0x5be21e=existsSync(join(getProjectRoot(),_0x4ba0cd(0x218)));let _0x4e2186;if(_0x52aaaa)_0x4e2186=_0x52aaaa;else{if(_0x5be21e)_0x4e2186=_0x1df320['cMpqc'];else{console['log'](_0x1df320[_0x4ba0cd(0x206)]);const _0x50c467=await _0x472b62[_0x4ba0cd(0x21c)]([{'type':'list','name':'pluginScope','message':_0x1df320['ldhXJ'],'choices':[{'name':_0x4ba0cd(0x1f6),'value':_0x1df320['cfzdk']},{'name':_0x4ba0cd(0x217),'value':_0x1df320['cMpqc']}],'default':_0x1df320[_0x4ba0cd(0x20d)]}]);_0x4e2186=_0x50c467[_0x4ba0cd(0x1df)];}}console[_0x4ba0cd(0x1de)](_0x4ba0cd(0x210)+_0x4e2186+'\x20level)...\x0a');const _0x1c521b=await _0x1df320[_0x4ba0cd(0x213)](isMarketplaceAdded,_0x1df320[_0x4ba0cd(0x20a)]);let _0x262bc9=_0x1c521b;if(_0x1c521b)console[_0x4ba0cd(0x1de)](_0x1df320[_0x4ba0cd(0x1f1)]);else{const _0x2d247e=await _0x1df320[_0x4ba0cd(0x1e6)](runClaudeCommand,[_0x4ba0cd(0x1e7),_0x1df320[_0x4ba0cd(0x1f9)],_0x1df320[_0x4ba0cd(0x219)],'ranger-testing/trailhead']);!_0x2d247e['success']?(console['error'](_0x4ba0cd(0x21b),_0x2d247e['error']),console[_0x4ba0cd(0x1de)]('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x4ba0cd(0x1de)]('\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead'),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x4e2186)):_0x262bc9=!![];}if(_0x262bc9){const _0x5b68fc=await runClaudeCommand([_0x4ba0cd(0x1e7),'install',_0x4ba0cd(0x1dd),'--scope',_0x4e2186],{'cwd':_0x1df320[_0x4ba0cd(0x1f5)](_0x4e2186,_0x1df320['cMpqc'])?getProjectRoot():undefined});if(!_0x5b68fc['success'])console[_0x4ba0cd(0x1e5)](_0x1df320[_0x4ba0cd(0x1f3)],_0x5b68fc[_0x4ba0cd(0x1e5)]),console[_0x4ba0cd(0x1de)](_0x4ba0cd(0x1e9)),console[_0x4ba0cd(0x1de)](_0x4ba0cd(0x1eb)+_0x4e2186);else{console['log'](_0x4ba0cd(0x203));const _0x5c6b62=[_0x1df320[_0x4ba0cd(0x1ec)],_0x4ba0cd(0x209),_0x1df320[_0x4ba0cd(0x1dc)]];_0x4e2186===_0x1df320['cMpqc']&&_0x5c6b62[_0x4ba0cd(0x201)](_0x1df320['pjZBZ'],'project');const _0x48a141=await _0x1df320[_0x4ba0cd(0x1e2)](runClaudeCommand,_0x5c6b62,{'captureOutput':!![],'cwd':_0x4e2186===_0x1df320[_0x4ba0cd(0x1e1)]?_0x1df320['IguQl'](getProjectRoot):undefined}),_0x1e9e2d=_0x48a141['output']?.['includes'](_0x4ba0cd(0x211));!_0x48a141[_0x4ba0cd(0x216)]&&!_0x1e9e2d?console['error'](_0x1df320['oNxpW'],_0x48a141['error']):console[_0x4ba0cd(0x1de)](_0x1df320['DrycD']);}}return!![];}function _0x5d65(){const _0x55eeb5=['\x0aYou\x20can\x20install\x20manually\x20with:','mPdIL','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','iJarn','HidOh','--scope','Rialy','user','XFXtF','52OYvInW','XTuFU','5505Biixse','MibWo','User\x20(available\x20in\x20all\x20your\x20projects)','MHeGu','SKILL.md','oqfMO','10109dzjuzV','✓\x20Marketplace\x20already\x20added','1046GydQLV','✓\x20Ranger\x20skills\x20already\x20installed','2004GAISGD','6769840rywIws','37476PpYJhj','push','OhChW','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','6359139bxrUXD','5192MsOShK','UxNqk','project','ranger','enable','PfZDA','Would\x20you\x20like\x20to\x20install\x20skills?','marketplace','cfzdk','7721HUgIAG','❌\x20Failed\x20to\x20install\x20plugin:','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','already\x20enabled','iImXv','zIgrX','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','TdGNC','success','Project\x20(shared\x20with\x20team\x20via\x20git)','.claude','Pqukx','add','❌\x20Failed\x20to\x20add\x20marketplace:','prompt','WsJXP','⚠\x20Failed\x20to\x20enable\x20plugin:','✓\x20Claude\x20Code\x20plugin\x20enabled','tyNgP','ranger@trailhead','log','pluginScope','wantsSkillup','cMpqc','wzgQM','10932jstuLf','12OTQGvf','error','zXADC','plugin','trailhead'];_0x5d65=function(){return _0x55eeb5;};return _0x5d65();}export async function ensureClaudeSkills(_0x53762e){const _0x5eb65e=_0x449c,_0x296823={'OhChW':function(_0x25881d,_0x2e1e4c,_0x4d820b,_0xd8a7db){return _0x25881d(_0x2e1e4c,_0x4d820b,_0xd8a7db);},'TdGNC':function(_0x5265e3,_0x2adaf7){return _0x5265e3(_0x2adaf7);},'HidOh':'user','cFXxS':_0x5eb65e(0x208),'iscIM':_0x5eb65e(0x1f8),'WsJXP':function(_0x972c07,_0x5892dd){return _0x972c07(_0x5892dd);},'MHeGu':function(_0x2dd8a,_0x1978cb,_0x50fd41){return _0x2dd8a(_0x1978cb,_0x50fd41);},'iImXv':'confirm','mPdIL':_0x5eb65e(0x1e0),'Rialy':function(_0x3951c8,_0x236b53){return _0x3951c8(_0x236b53);}},_0x19a3be=existsSync(_0x296823[_0x5eb65e(0x202)](join,_0x296823[_0x5eb65e(0x215)](getSkillsDir,_0x296823[_0x5eb65e(0x1ed)]),_0x296823['cFXxS'],_0x5eb65e(0x1f8))),_0x4e32cb=existsSync(join(getSkillsDir('project'),_0x296823['cFXxS'],_0x296823['iscIM']));if(_0x19a3be||_0x4e32cb)return console['log'](_0x5eb65e(0x1fd)),![];const _0x514f6f=_0x296823[_0x5eb65e(0x21d)](existsSync,_0x296823[_0x5eb65e(0x1f7)](join,getProjectRoot(),'.claude'));let _0x35d59b=!![];if(_0x53762e)await skillup({'autoInstall':_0x53762e,'suppressUsage':!![]});else{if(_0x514f6f)await skillup({'autoInstall':_0x5eb65e(0x207),'suppressUsage':!![]});else{const _0x3fb2a6=await _0x472b62['prompt']([{'type':_0x296823[_0x5eb65e(0x212)],'name':_0x296823[_0x5eb65e(0x1ea)],'message':_0x5eb65e(0x20b),'default':!![]}]);_0x35d59b=_0x3fb2a6[_0x5eb65e(0x1e0)],_0x35d59b&&await _0x296823[_0x5eb65e(0x1ef)](skillup,{'suppressUsage':!![]});}}return _0x35d59b;}
1
+ (function(_0x2ae0ce,_0x50f0b2){const _0x217747=_0x2206,_0x184af8=_0x2ae0ce();while(!![]){try{const _0x22b79d=-parseInt(_0x217747(0xdc))/0x1*(-parseInt(_0x217747(0xc0))/0x2)+parseInt(_0x217747(0xb9))/0x3*(-parseInt(_0x217747(0xb6))/0x4)+-parseInt(_0x217747(0xb2))/0x5*(parseInt(_0x217747(0xaa))/0x6)+parseInt(_0x217747(0xc2))/0x7*(-parseInt(_0x217747(0xb0))/0x8)+-parseInt(_0x217747(0xde))/0x9*(-parseInt(_0x217747(0xba))/0xa)+-parseInt(_0x217747(0xc1))/0xb+-parseInt(_0x217747(0xbc))/0xc*(parseInt(_0x217747(0xb8))/0xd);if(_0x22b79d===_0x50f0b2)break;else _0x184af8['push'](_0x184af8['shift']());}catch(_0x220616){_0x184af8['push'](_0x184af8['shift']());}}}(_0x1d61,0x61ee2));function _0x2206(_0x10d586,_0x55b99a){_0x10d586=_0x10d586-0xa7;const _0x1d61e9=_0x1d61();let _0x22060a=_0x1d61e9[_0x10d586];return _0x22060a;}import{join}from'path';import{existsSync}from'fs';import _0x96da48 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x2f5750){const _0x122a68=_0x2206,_0x57149e={'OVsTS':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','mCTIK':function(_0x5dae8e){return _0x5dae8e();},'oYSHi':_0x122a68(0xc9),'zkpyq':'Where\x20should\x20the\x20plugin\x20be\x20installed?','xorqg':_0x122a68(0xc5),'rKowG':_0x122a68(0xcb),'QBnxr':'Project\x20(shared\x20with\x20team\x20via\x20git)','lJCdO':function(_0x31a610,_0x135f73){return _0x31a610(_0x135f73);},'BFFmD':'marketplace','ujxNL':_0x122a68(0xd2),'TWZje':function(_0x173ca7,_0x4ff1e0){return _0x173ca7(_0x4ff1e0);},'XlNqx':'ranger@trailhead','aEsmr':_0x122a68(0xcd),'WpuZV':_0x122a68(0xa8),'DdyWV':_0x122a68(0xd3),'xrAnN':_0x122a68(0xc3),'YujHb':_0x122a68(0xac)},_0x411e1f=await isPluginInstalled(_0x122a68(0xd1));if(_0x411e1f)return console[_0x122a68(0xc8)](_0x57149e[_0x122a68(0xc6)]),![];const _0x2e28ff=existsSync(join(_0x57149e['mCTIK'](getProjectRoot),'.claude'));let _0x2a1cc0;if(_0x2f5750)_0x2a1cc0=_0x2f5750;else{if(_0x2e28ff)_0x2a1cc0=_0x122a68(0xc3);else{console['log'](_0x57149e['oYSHi']);const _0x4f5bda=await _0x96da48[_0x122a68(0xb7)]([{'type':'list','name':_0x122a68(0xb4),'message':_0x57149e[_0x122a68(0xce)],'choices':[{'name':_0x57149e['xorqg'],'value':_0x57149e['rKowG']},{'name':_0x57149e['QBnxr'],'value':_0x122a68(0xc3)}],'default':'user'}]);_0x2a1cc0=_0x4f5bda[_0x122a68(0xb4)];}}console['log'](_0x122a68(0xdd)+_0x2a1cc0+'\x20level)...\x0a');const _0x59cbbd=await _0x57149e['lJCdO'](isMarketplaceAdded,_0x122a68(0xc7));let _0x5089ac=_0x59cbbd;if(_0x59cbbd)console[_0x122a68(0xc8)](_0x122a68(0xbd));else{const _0x1c5de1=await runClaudeCommand(['plugin',_0x57149e[_0x122a68(0xd7)],_0x57149e[_0x122a68(0xd4)],'ranger-testing/trailhead']);!_0x1c5de1[_0x122a68(0xd5)]?(console[_0x122a68(0xcf)](_0x122a68(0xd6),_0x1c5de1['error']),console['log']('\x0aYou\x20can\x20install\x20manually\x20with:'),console['log']('\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead'),console['log'](_0x122a68(0xbf)+_0x2a1cc0)):_0x5089ac=!![];}if(_0x5089ac){const _0x4ad00a=await _0x57149e[_0x122a68(0xa7)](runClaudeCommand,['plugin',_0x122a68(0xb5),_0x57149e[_0x122a68(0xd9)],_0x57149e['aEsmr'],_0x2a1cc0]);if(!_0x4ad00a['success'])console[_0x122a68(0xcf)](_0x57149e[_0x122a68(0xd0)],_0x4ad00a['error']),console['log'](_0x57149e[_0x122a68(0xae)]),console['log'](_0x122a68(0xbf)+_0x2a1cc0);else{console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0xccd338=['plugin','enable',_0x122a68(0xd1)];_0x2a1cc0===_0x122a68(0xc3)&&_0xccd338['push']('--scope',_0x57149e[_0x122a68(0xc4)]);const _0xf2429=await runClaudeCommand(_0xccd338,{'captureOutput':!![]}),_0x18b951=_0xf2429[_0x122a68(0xb1)]?.[_0x122a68(0xcc)](_0x122a68(0xaf));!_0xf2429[_0x122a68(0xd5)]&&!_0x18b951?console['error'](_0x122a68(0xbb),_0xf2429['error']):console['log'](_0x57149e[_0x122a68(0xa9)]);}}return!![];}function _0x1d61(){const _0x17b4c8=['22085fLpLJd','project','xrAnN','User\x20(available\x20in\x20all\x20your\x20projects)','OVsTS','trailhead','log','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','.claude','user','includes','--scope','zkpyq','error','WpuZV','ranger@trailhead','add','\x0aYou\x20can\x20install\x20manually\x20with:','ujxNL','success','❌\x20Failed\x20to\x20add\x20marketplace:','BFFmD','skNzc','XlNqx','SKILL.md','aIGPJ','377XySWPW','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','6741Zgpdbu','TWZje','❌\x20Failed\x20to\x20install\x20plugin:','YujHb','57864dYqKVT','XFjWp','✓\x20Claude\x20Code\x20plugin\x20enabled','ycSzv','DdyWV','already\x20enabled','808TVeKKB','output','15GoQmoS','drYjZ','pluginScope','install','384KXgEJK','prompt','29965bGnqhW','4146LKlPMZ','6190JZhabI','⚠\x20Failed\x20to\x20enable\x20plugin:','1308ArEdSb','✓\x20Marketplace\x20already\x20added','ranger','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','3858GRfIyx','640618xxIjMG'];_0x1d61=function(){return _0x17b4c8;};return _0x1d61();}export async function ensureClaudeSkills(_0x2fb3fe){const _0x35de73=_0x2206,_0x529525={'XFjWp':function(_0x472fa5,_0x31d82d){return _0x472fa5(_0x31d82d);},'drYjZ':_0x35de73(0xcb),'skNzc':_0x35de73(0xbe),'mbSbL':'SKILL.md','aIGPJ':function(_0x2fce3c,_0x2e5136){return _0x2fce3c||_0x2e5136;},'IRfRZ':'project','ycSzv':'wantsSkillup','JZXtP':'Would\x20you\x20like\x20to\x20install\x20skills?'},_0x49f79b=_0x529525['XFjWp'](existsSync,join(getSkillsDir(_0x529525[_0x35de73(0xb3)]),_0x529525[_0x35de73(0xd8)],_0x35de73(0xda))),_0x34455=_0x529525[_0x35de73(0xab)](existsSync,join(_0x529525['XFjWp'](getSkillsDir,'project'),_0x529525[_0x35de73(0xd8)],_0x529525['mbSbL']));if(_0x529525[_0x35de73(0xdb)](_0x49f79b,_0x34455))return console[_0x35de73(0xc8)]('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0x121082=existsSync(join(getProjectRoot(),_0x35de73(0xca)));let _0x4b795d=!![];if(_0x2fb3fe)await skillup({'autoInstall':_0x2fb3fe,'suppressUsage':!![]});else{if(_0x121082)await _0x529525[_0x35de73(0xab)](skillup,{'autoInstall':_0x529525['IRfRZ'],'suppressUsage':!![]});else{const _0x581cb5=await _0x96da48['prompt']([{'type':'confirm','name':_0x529525[_0x35de73(0xad)],'message':_0x529525['JZXtP'],'default':!![]}]);_0x4b795d=_0x581cb5['wantsSkillup'],_0x4b795d&&await _0x529525['XFjWp'](skillup,{'suppressUsage':!![]});}}return _0x4b795d;}
@@ -1 +1 @@
1
- function _0x4b72(_0x355c2c,_0x12cd06){_0x355c2c=_0x355c2c-0x1dd;const _0x272238=_0x2722();let _0x4b7201=_0x272238[_0x355c2c];return _0x4b7201;}(function(_0x418492,_0x11cd64){const _0x296dc3=_0x4b72,_0x4e4ef4=_0x418492();while(!![]){try{const _0x1a591e=parseInt(_0x296dc3(0x1f4))/0x1+-parseInt(_0x296dc3(0x1fa))/0x2+parseInt(_0x296dc3(0x1e0))/0x3*(parseInt(_0x296dc3(0x201))/0x4)+parseInt(_0x296dc3(0x1e1))/0x5*(-parseInt(_0x296dc3(0x1f3))/0x6)+parseInt(_0x296dc3(0x1f0))/0x7+-parseInt(_0x296dc3(0x1e5))/0x8*(parseInt(_0x296dc3(0x1e7))/0x9)+-parseInt(_0x296dc3(0x1f1))/0xa*(-parseInt(_0x296dc3(0x1eb))/0xb);if(_0x1a591e===_0x11cd64)break;else _0x4e4ef4['push'](_0x4e4ef4['shift']());}catch(_0x558b42){_0x4e4ef4['push'](_0x4e4ef4['shift']());}}}(_0x2722,0x3a5f0));import{join}from'path';function _0x2722(){const _0x21a5d8=['xgAhk','pluginScope','includes','158477CoRyUn','plugin','tsfpp','zixsm','RMDSa','1504307iUDQbH','210MAKDec','https://opencode.ai/config.json','6JKrZii','53895bJhxeo','log','haBAA','rRejD','GmYQi','list','637734xMvxuE','VycCi','prompt','jwdTy','JXckn','@ranger-testing/opencode-plugin','stringify','12owALtT','isArray','project','✓\x20OpenCode\x20plugin\x20already\x20configured','421569UsviKF','211045tUuaJg','\x0a📦\x20OpenCode\x20Plugin\x0a','$schema','user','523664IbCSup','YecDB','54jmybzz'];_0x2722=function(){return _0x21a5d8;};return _0x2722();}import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x2ebaea from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x2e23f0){const _0x53e424=_0x4b72,_0xa66d91={'Givhj':function(_0x6a1f80,_0x3cee11,_0x26353b){return _0x6a1f80(_0x3cee11,_0x26353b);},'RjddT':function(_0x1b42e6,_0x471a31){return _0x1b42e6(_0x471a31);},'GmYQi':_0x53e424(0x1de),'haBAA':_0x53e424(0x1e2),'rRejD':_0x53e424(0x1f9),'RMDSa':'User\x20(available\x20in\x20all\x20your\x20projects)','zixsm':_0x53e424(0x1e4),'VycCi':function(_0x52f0aa,_0x2a62c8,_0x4296f6){return _0x52f0aa(_0x2a62c8,_0x4296f6);},'JXckn':function(_0x412fa2,_0x408054){return _0x412fa2(_0x408054);},'ERual':'opencode.json','PsXoJ':_0x53e424(0x1ff),'aLDgZ':_0x53e424(0x1f2),'jwdTy':function(_0x1696ba,_0x3edd7b){return _0x1696ba(_0x3edd7b);},'ltfGq':function(_0x288ff2,_0x36716c,_0x5b060b){return _0x288ff2(_0x36716c,_0x5b060b);},'tsfpp':'Failed\x20to\x20read\x20opencode.json','xgAhk':function(_0x174790,_0x26a403,_0x2d9625){return _0x174790(_0x26a403,_0x2d9625);},'rgWhR':function(_0x42a452,_0x369aa2){return _0x42a452(_0x369aa2);},'xqoil':function(_0x19345a,_0x5e9071,_0x26d11b){return _0x19345a(_0x5e9071,_0x26d11b);},'YecDB':function(_0x29eb51,_0x3c8cde){return _0x29eb51+_0x3c8cde;},'ygsTe':'✓\x20OpenCode\x20plugin\x20configured'},_0x132119=existsSync(_0xa66d91['Givhj'](join,_0xa66d91['RjddT'](getOpencodeConfigDir,_0xa66d91[_0x53e424(0x1f8)]),'opencode.json'));let _0x5d7197;if(_0x2e23f0)_0x5d7197=_0x2e23f0;else{if(_0x132119)_0x5d7197=_0xa66d91['GmYQi'];else{console[_0x53e424(0x1f5)](_0xa66d91[_0x53e424(0x1f6)]);const _0x9c17b6=await _0x2ebaea[_0x53e424(0x1fc)]([{'type':_0xa66d91[_0x53e424(0x1f7)],'name':'pluginScope','message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0xa66d91[_0x53e424(0x1ef)],'value':_0x53e424(0x1e4)},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':'project'}],'default':_0xa66d91[_0x53e424(0x1ee)]}]);_0x5d7197=_0x9c17b6[_0x53e424(0x1e9)];}}const _0x28443c=_0xa66d91[_0x53e424(0x1fb)](join,_0xa66d91[_0x53e424(0x1fe)](getOpencodeConfigDir,_0x5d7197),_0xa66d91['ERual']),_0x347566=_0xa66d91['PsXoJ'],_0x37330e=_0xa66d91['aLDgZ'];let _0x9ab2df={};if(_0xa66d91[_0x53e424(0x1fd)](existsSync,_0x28443c))try{const _0x171719=await _0xa66d91['ltfGq'](readFile,_0x28443c,'utf-8');_0x9ab2df=JSON['parse'](_0x171719);}catch(_0x4df56f){return console['error']('⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.'),{'configured':![],'scope':_0x5d7197,'error':_0xa66d91[_0x53e424(0x1ed)],'details':_0x4df56f};}const _0x43c0b3=Array[_0x53e424(0x1dd)](_0x9ab2df['plugin'])?_0x9ab2df['plugin']:[];if(_0x43c0b3[_0x53e424(0x1ea)](_0x347566))return console[_0x53e424(0x1f5)](_0x53e424(0x1df)),{'configured':![],'scope':_0x5d7197};return _0x9ab2df[_0x53e424(0x1e3)]=_0x9ab2df[_0x53e424(0x1e3)]||_0x37330e,_0x9ab2df[_0x53e424(0x1ec)]=[..._0x43c0b3,_0x347566],await _0xa66d91[_0x53e424(0x1e8)](mkdir,_0xa66d91['rgWhR'](getOpencodeConfigDir,_0x5d7197),{'recursive':!![]}),await _0xa66d91['xqoil'](writeFile,_0x28443c,_0xa66d91[_0x53e424(0x1e6)](JSON[_0x53e424(0x200)](_0x9ab2df,null,0x2),'\x0a')),console['log'](_0xa66d91['ygsTe']),{'configured':!![],'scope':_0x5d7197};}
1
+ function _0x5e75(){const _0x490dcd=['DilUd','user','690512CKDFzH','AYIZl','list','1602244EjqJjM','bnWth','1215405HvULeV','943716avMFOS','4gPAFaX','project','117PYuoZN','jHnlD','includes','eEfwV','isArray','✓\x20OpenCode\x20plugin\x20already\x20configured','924140aEHxCw','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','byrkp','166898PDcoOC','igLZr','$schema','jcHPT','UpiOX','207180eQAQjX','error','plugin','Failed\x20to\x20read\x20opencode.json','log','EFYmF'];_0x5e75=function(){return _0x490dcd;};return _0x5e75();}(function(_0x3c22e3,_0x5be2b3){const _0x443035=_0x4c94,_0x4b0113=_0x3c22e3();while(!![]){try{const _0x1a93d8=parseInt(_0x443035(0xa4))/0x1*(-parseInt(_0x443035(0x99))/0x2)+-parseInt(_0x443035(0x97))/0x3+-parseInt(_0x443035(0x8a))/0x4+-parseInt(_0x443035(0xa1))/0x5+-parseInt(_0x443035(0x98))/0x6+parseInt(_0x443035(0x95))/0x7+-parseInt(_0x443035(0x92))/0x8*(-parseInt(_0x443035(0x9b))/0x9);if(_0x1a93d8===_0x5be2b3)break;else _0x4b0113['push'](_0x4b0113['shift']());}catch(_0x78a026){_0x4b0113['push'](_0x4b0113['shift']());}}}(_0x5e75,0x35416));import{join}from'path';function _0x4c94(_0x439ed5,_0x225940){_0x439ed5=_0x439ed5-0x87;const _0x5e753f=_0x5e75();let _0x4c941c=_0x5e753f[_0x439ed5];return _0x4c941c;}import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x41fee9 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x16c539){const _0x5cd26e=_0x4c94,_0x2575aa={'QdFLK':function(_0x5299a3,_0x2d7041){return _0x5299a3(_0x2d7041);},'AYIZl':'opencode.json','jcHPT':'\x0a📦\x20OpenCode\x20Plugin\x0a','igLZr':'pluginScope','bnWth':'Where\x20should\x20the\x20plugin\x20be\x20installed?','SiQUD':_0x5cd26e(0x91),'EFYmF':'Project\x20(shared\x20with\x20team\x20via\x20git)','DilUd':function(_0x3fbce1,_0x26ca1b){return _0x3fbce1(_0x26ca1b);},'byrkp':'@ranger-testing/opencode-plugin','jHnlD':'https://opencode.ai/config.json','DlnWI':function(_0x54e3f6,_0x31b74e){return _0x54e3f6(_0x31b74e);},'avHoS':_0x5cd26e(0xa2),'eEfwV':function(_0x435537,_0x414b3a,_0x189d18){return _0x435537(_0x414b3a,_0x189d18);},'JzfbL':function(_0x343a62,_0x42611b){return _0x343a62(_0x42611b);},'UpiOX':function(_0x1036ec,_0x4fe55b){return _0x1036ec+_0x4fe55b;}},_0x154179=_0x2575aa['QdFLK'](existsSync,join(getOpencodeConfigDir(_0x5cd26e(0x9a)),_0x2575aa[_0x5cd26e(0x93)]));let _0xe44af8;if(_0x16c539)_0xe44af8=_0x16c539;else{if(_0x154179)_0xe44af8=_0x5cd26e(0x9a);else{console['log'](_0x2575aa[_0x5cd26e(0x88)]);const _0x117fc5=await _0x41fee9['prompt']([{'type':_0x5cd26e(0x94),'name':_0x2575aa[_0x5cd26e(0xa5)],'message':_0x2575aa[_0x5cd26e(0x96)],'choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':_0x2575aa['SiQUD']},{'name':_0x2575aa[_0x5cd26e(0x8f)],'value':'project'}],'default':'user'}]);_0xe44af8=_0x117fc5['pluginScope'];}}const _0x1cdcc3=join(_0x2575aa[_0x5cd26e(0x90)](getOpencodeConfigDir,_0xe44af8),_0x2575aa[_0x5cd26e(0x93)]),_0x1702d1=_0x2575aa[_0x5cd26e(0xa3)],_0xa90dc0=_0x2575aa[_0x5cd26e(0x9c)];let _0x2eeb70={};if(_0x2575aa['DlnWI'](existsSync,_0x1cdcc3))try{const _0x1a05eb=await readFile(_0x1cdcc3,'utf-8');_0x2eeb70=JSON['parse'](_0x1a05eb);}catch(_0x366e39){return console[_0x5cd26e(0x8b)](_0x2575aa['avHoS']),{'configured':![],'scope':_0xe44af8,'error':_0x5cd26e(0x8d),'details':_0x366e39};}const _0x17605d=Array[_0x5cd26e(0x9f)](_0x2eeb70[_0x5cd26e(0x8c)])?_0x2eeb70[_0x5cd26e(0x8c)]:[];if(_0x17605d[_0x5cd26e(0x9d)](_0x1702d1))return console[_0x5cd26e(0x8e)](_0x5cd26e(0xa0)),{'configured':![],'scope':_0xe44af8};return _0x2eeb70[_0x5cd26e(0x87)]=_0x2eeb70['$schema']||_0xa90dc0,_0x2eeb70['plugin']=[..._0x17605d,_0x1702d1],await _0x2575aa[_0x5cd26e(0x9e)](mkdir,_0x2575aa['JzfbL'](getOpencodeConfigDir,_0xe44af8),{'recursive':!![]}),await _0x2575aa['eEfwV'](writeFile,_0x1cdcc3,_0x2575aa[_0x5cd26e(0x89)](JSON['stringify'](_0x2eeb70,null,0x2),'\x0a')),console[_0x5cd26e(0x8e)]('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0xe44af8};}