@ranger-testing/ranger-cli 2.5.4-alpha.feb9faf-20 → 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
- function _0x3a07(){const _0x3a16be=['3095385fEzxiL','862893oAHnSN','\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.','1798356DZCkRj','session_id','23383913eraGIA','732640LfLRym','3841971ovgIAo','1127936HiLjRA','rLiCW'];_0x3a07=function(){return _0x3a16be;};return _0x3a07();}const _0x5bdb9d=_0x4d78;(function(_0x40fe35,_0x2e46d9){const _0x2ab044=_0x4d78,_0x12bb26=_0x40fe35();while(!![]){try{const _0x26b0c8=-parseInt(_0x2ab044(0x15e))/0x1+-parseInt(_0x2ab044(0x15b))/0x2+-parseInt(_0x2ab044(0x15a))/0x3+-parseInt(_0x2ab044(0x159))/0x4+parseInt(_0x2ab044(0x15d))/0x5+-parseInt(_0x2ab044(0x160))/0x6+parseInt(_0x2ab044(0x158))/0x7;if(_0x26b0c8===_0x2e46d9)break;else _0x12bb26['push'](_0x12bb26['shift']());}catch(_0x547071){_0x12bb26['push'](_0x12bb26['shift']());}}}(_0x3a07,0xbbcd0));function _0x4d78(_0x2d4f55,_0x1b7137){_0x2d4f55=_0x2d4f55-0x158;const _0x3a074e=_0x3a07();let _0x4d78cb=_0x3a074e[_0x2d4f55];return _0x4d78cb;}import{readHookInput}from'./output.js';import{isSessionEnabled,hasSessionBeenPrompted,markSessionPrompted}from'../utils/sessionCache.js';const AUTO_PROMPT_TEXT=_0x5bdb9d(0x15f);export async function autoPrompt(){const _0x4dd2de=_0x5bdb9d,_0x50471d={'rLiCW':function(_0xfc807b,_0x13b09f){return _0xfc807b(_0x13b09f);}},_0x2b80bb=await readHookInput(),_0x3db3ac=_0x2b80bb?.[_0x4dd2de(0x161)];if(!_0x3db3ac)return;if(_0x50471d['rLiCW'](isSessionEnabled,_0x3db3ac)||hasSessionBeenPrompted(_0x3db3ac))return;_0x50471d[_0x4dd2de(0x15c)](markSessionPrompted,_0x3db3ac),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(_0x1d27ba,_0x36325a){const _0xe2ec13=_0x5a9d,_0x746913=_0x1d27ba();while(!![]){try{const _0x55cffa=-parseInt(_0xe2ec13(0x1d4))/0x1+parseInt(_0xe2ec13(0x1cd))/0x2+-parseInt(_0xe2ec13(0x1cf))/0x3*(parseInt(_0xe2ec13(0x1d2))/0x4)+-parseInt(_0xe2ec13(0x1da))/0x5+parseInt(_0xe2ec13(0x1d0))/0x6*(-parseInt(_0xe2ec13(0x1ca))/0x7)+parseInt(_0xe2ec13(0x1d7))/0x8+parseInt(_0xe2ec13(0x1cb))/0x9*(parseInt(_0xe2ec13(0x1d6))/0xa);if(_0x55cffa===_0x36325a)break;else _0x746913['push'](_0x746913['shift']());}catch(_0x363dba){_0x746913['push'](_0x746913['shift']());}}}(_0x50ba,0xef539));function _0x5a9d(_0x2b39d0,_0xdf47f4){_0x2b39d0=_0x2b39d0-0x1ca;const _0x50baa5=_0x50ba();let _0x5a9de5=_0x50baa5[_0x2b39d0];return _0x5a9de5;}import{disableSession,disableBranch,getCurrentBranch}from'../utils/sessionCache.js';function _0x50ba(){const _0x4d36f5=['6dNyoVt','mWMQw','1280676kHFgKA','uWcSA','811717BFTxkR','.\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`.','500aMJnQU','5766920hiFvsh','CLAUDE_SESSION_ID','\x20and\x20branch\x20\x27','7407015eyGYCE','4137966zGRWEk','536805LHsYFm','qcCKU','3524538WbszME','master','15REeOtM'];_0x50ba=function(){return _0x4d36f5;};return _0x50ba();}import{printBlock}from'./output.js';export async function disable(_0x2c7377){const _0x187cbc=_0x5a9d,_0xfadfa5={'uWcSA':function(_0x562798){return _0x562798();},'XCIsm':function(_0x5a4651,_0x1ab805){return _0x5a4651!==_0x1ab805;},'BKReI':function(_0x2f4a52,_0x999336){return _0x2f4a52(_0x999336);},'mWMQw':function(_0x443b78,_0x5adb1e){return _0x443b78(_0x5adb1e);},'iAplJ':'main','qcCKU':_0x187cbc(0x1ce)},_0x2d7465=_0x2c7377||process['env'][_0x187cbc(0x1d8)]||'';_0x2d7465&&disableSession(_0x2d7465);const _0x57101e=_0xfadfa5[_0x187cbc(0x1d3)](getCurrentBranch);_0x57101e&&_0x57101e!=='main'&&_0xfadfa5['XCIsm'](_0x57101e,_0x187cbc(0x1ce))&&_0xfadfa5['BKReI'](disableBranch,_0x57101e),_0xfadfa5[_0x187cbc(0x1d1)](printBlock,'#\x20RANGER\x20DISABLED\x0a\x0aThe\x20user\x20has\x20expressly\x20disabled\x20Ranger\x20hooks\x20for\x20this\x20session'+(_0x57101e&&_0x57101e!==_0xfadfa5['iAplJ']&&_0x57101e!==_0xfadfa5[_0x187cbc(0x1cc)]?_0x187cbc(0x1d9)+_0x57101e+'\x27':'')+_0x187cbc(0x1d5));}
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(_0x1375c0,_0x5b8f6e){const _0x1c6109=_0x21a6,_0x2fac2d=_0x1375c0();while(!![]){try{const _0x3e1183=parseInt(_0x1c6109(0xaf))/0x1+parseInt(_0x1c6109(0xa7))/0x2*(-parseInt(_0x1c6109(0xb1))/0x3)+parseInt(_0x1c6109(0xb2))/0x4*(-parseInt(_0x1c6109(0xaa))/0x5)+parseInt(_0x1c6109(0xa9))/0x6+-parseInt(_0x1c6109(0xa6))/0x7+parseInt(_0x1c6109(0xa3))/0x8+parseInt(_0x1c6109(0xa4))/0x9;if(_0x3e1183===_0x5b8f6e)break;else _0x2fac2d['push'](_0x2fac2d['shift']());}catch(_0x47531f){_0x2fac2d['push'](_0x2fac2d['shift']());}}}(_0x2910,0xdc145));function _0x21a6(_0x34184f,_0x39c2c9){_0x34184f=_0x34184f-0xa0;const _0x29103f=_0x2910();let _0x21a62f=_0x29103f[_0x34184f];return _0x21a62f;}import{enableSession,getCurrentBranch}from'../utils/sessionCache.js';function _0x2910(){const _0x5dc47e=['nCaCG','774884AkDhCr','GUbii','27tkzgfc','1993076kjZCjU','env','EHsFd','master','12294672iHndHR','10195938qrDfUx','ranger\x20setup','5536062fEbxoq','331106XjhDJs','`\x0a\x0aA\x20browser\x20will\x20open\x20for\x20authentication.\x20A\x20human\x20needs\x20to\x20complete\x20the\x20login.\x0a','4405356fFEyID','10zkwcTF','JkkgX','ranger\x20setup\x20--opencode','fbCRB'];_0x2910=function(){return _0x5dc47e;};return _0x2910();}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(_0x90abac){const _0x4abfde=_0x21a6,_0x41faee={'GUbii':function(_0x1086a3,_0x51c832){return _0x1086a3(_0x51c832);},'nCaCG':function(_0x2ae0f1){return _0x2ae0f1();},'zDQTl':_0x4abfde(0xac),'JkkgX':_0x4abfde(0xa5),'nwWHJ':'Restart\x20your\x20OpenCode\x20session\x20after\x20setup.','WUmiW':function(_0x3b96a9,_0xf4f66d){return _0x3b96a9(_0xf4f66d);},'EHsFd':'main','djacz':_0x4abfde(0xa2),'fbCRB':function(_0x2facb8){return _0x2facb8();}},_0x4679a5=_0x90abac||process[_0x4abfde(0xa0)]['CLAUDE_SESSION_ID']||'',_0x3e75f8=_0x41faee[_0x4abfde(0xb0)](Boolean,_0x90abac),_0x2b07a7=await _0x41faee['nCaCG'](getToken);if(!_0x2b07a7){const _0x3d7902=_0x3e75f8?_0x41faee['zDQTl']:_0x41faee[_0x4abfde(0xab)],_0x2dc30a=_0x3e75f8?_0x41faee['nwWHJ']:'Restart\x20your\x20Claude\x20Code\x20session\x20after\x20setup.';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`'+_0x3d7902+_0x4abfde(0xa8)+_0x2dc30a);return;}try{await _0x41faee[_0x4abfde(0xae)](update);}catch{}_0x4679a5&&_0x41faee['WUmiW'](enableSession,_0x4679a5);const _0x4ae013=_0x41faee[_0x4abfde(0xae)](getCurrentBranch),_0x20553e=_0x4ae013&&_0x4ae013!==_0x41faee[_0x4abfde(0xa1)]&&_0x4ae013!==_0x41faee['djacz']?'\x0a\x0a**Branch\x20\x27'+_0x4ae013+'\x27\x20is\x20now\x20enabled**\x20-\x20Ranger\x20will\x20stay\x20active\x20on\x20this\x20branch\x20across\x20sessions.':'',_0x20239d=_0x41faee[_0x4abfde(0xad)](getRangerSkillContent);printBlock('#\x20RANGER\x20ENABLED'+_0x20553e+'\x0a\x0a**For\x20ANY\x20UI\x20work,\x20you\x20MUST\x20use\x20the\x20/ranger\x20skill.**\x0a\x0a'+_0x20239d+'\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`.');}
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(_0x34bbe9,_0x1158ba){const _0x407f9a=_0x5d1e,_0x4ac1fc=_0x34bbe9();while(!![]){try{const _0x31e433=parseInt(_0x407f9a(0x15b))/0x1*(parseInt(_0x407f9a(0x154))/0x2)+-parseInt(_0x407f9a(0x158))/0x3+-parseInt(_0x407f9a(0x155))/0x4*(parseInt(_0x407f9a(0x157))/0x5)+-parseInt(_0x407f9a(0x153))/0x6*(parseInt(_0x407f9a(0x151))/0x7)+-parseInt(_0x407f9a(0x156))/0x8*(parseInt(_0x407f9a(0x159))/0x9)+parseInt(_0x407f9a(0x152))/0xa+parseInt(_0x407f9a(0x15a))/0xb;if(_0x31e433===_0x1158ba)break;else _0x4ac1fc['push'](_0x4ac1fc['shift']());}catch(_0x3506b6){_0x4ac1fc['push'](_0x4ac1fc['shift']());}}}(_0x5e06,0xa5229));function _0x5e06(){const _0x5cd8db=['1045zYJArK','3718875YERGhr','5518224oybVdE','17843925PxqMDl','36FJitWi','63uEmeUc','5094150iTYYqJ','141786CVPSUr','73922igvGje','2052aVrTrz','16HoFlTL'];_0x5e06=function(){return _0x5cd8db;};return _0x5e06();}import{printBlock,getEnabledSessionId}from'./output.js';function _0x5d1e(_0x13c122,_0x168bdb){_0x13c122=_0x13c122-0x151;const _0x5e0676=_0x5e06();let _0x5d1e32=_0x5e0676[_0x13c122];return _0x5d1e32;}export async function exitPlanMode(_0x4f2eb1){const _0x4704b4={'niKUc':function(_0x5c2255,_0x51cb94){return _0x5c2255(_0x51cb94);}},_0x13702d=await getEnabledSessionId(_0x4f2eb1);if(!_0x13702d)return;_0x4704b4['niKUc'](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(_0x306aa4,_0x18f29e){var _0x3394c7=_0x2cde,_0x1a380b=_0x306aa4();while(!![]){try{var _0xeb78b2=parseInt(_0x3394c7(0x15b))/0x1+parseInt(_0x3394c7(0x160))/0x2+parseInt(_0x3394c7(0x15f))/0x3*(parseInt(_0x3394c7(0x161))/0x4)+-parseInt(_0x3394c7(0x158))/0x5*(-parseInt(_0x3394c7(0x15d))/0x6)+-parseInt(_0x3394c7(0x159))/0x7*(-parseInt(_0x3394c7(0x15c))/0x8)+parseInt(_0x3394c7(0x15a))/0x9+parseInt(_0x3394c7(0x15e))/0xa*(-parseInt(_0x3394c7(0x157))/0xb);if(_0xeb78b2===_0x18f29e)break;else _0x1a380b['push'](_0x1a380b['shift']());}catch(_0x84caa0){_0x1a380b['push'](_0x1a380b['shift']());}}}(_0xeee0,0xdc4eb));export{sessionStart}from'./sessionStart.js';export{sessionEnd}from'./sessionEnd.js';function _0x2cde(_0x1e9d12,_0x433031){_0x1e9d12=_0x1e9d12-0x157;var _0xeee0e1=_0xeee0();var _0x2cde09=_0xeee0e1[_0x1e9d12];return _0x2cde09;}export{preCompact}from'./preCompact.js';export{postEdit}from'./postEdit.js';export{planStart}from'./planStart.js';export{planReminder}from'./planReminder.js';export{exitPlanMode}from'./exitPlanMode.js';function _0xeee0(){var _0x298919=['584991XcCLrO','5eVJfRd','21427xvVgOH','4201371QoHJgo','1708251BVfxyO','1480QjCytd','3878634NMVBus','610PKOpEe','641553wgNxLc','1089550BGjwoo','4ZeWHDt'];_0xeee0=function(){return _0x298919;};return _0xeee0();}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(_0x3f64cd,_0x4fb1a0){const _0x1f565d=_0xbcf2,_0x1e84ae=_0x3f64cd();while(!![]){try{const _0x5ed327=-parseInt(_0x1f565d(0xa9))/0x1+-parseInt(_0x1f565d(0xa6))/0x2*(-parseInt(_0x1f565d(0xa2))/0x3)+parseInt(_0x1f565d(0xae))/0x4+parseInt(_0x1f565d(0xad))/0x5*(-parseInt(_0x1f565d(0xab))/0x6)+-parseInt(_0x1f565d(0xa8))/0x7+parseInt(_0x1f565d(0xa4))/0x8+-parseInt(_0x1f565d(0xac))/0x9*(parseInt(_0x1f565d(0xa7))/0xa);if(_0x5ed327===_0x4fb1a0)break;else _0x1e84ae['push'](_0x1e84ae['shift']());}catch(_0x20e3c8){_0x1e84ae['push'](_0x1e84ae['shift']());}}}(_0x286e,0xb1b3b));import{isSessionEnabled}from'../utils/sessionCache.js';export function printBlock(_0x378524){const _0x3abc6d=_0xbcf2;console[_0x3abc6d(0xa0)](_0x378524);}export async function readHookInput(){const _0x3318f9=_0xbcf2;let _0xb7169='';try{for await(const _0x1ac0c8 of process[_0x3318f9(0xa5)]){_0xb7169+=_0x1ac0c8;}}catch{return null;}if(!_0xb7169['trim']())return null;try{return JSON['parse'](_0xb7169);}catch{return null;}}export async function getEnabledSessionId(_0x350ce3){const _0x5d7d88=_0xbcf2,_0x255764={'XleuL':function(_0x1efb06,_0x27cab5){return _0x1efb06(_0x27cab5);},'gYaYW':function(_0x17d94b){return _0x17d94b();}};if(_0x350ce3)return _0x255764[_0x5d7d88(0xaa)](isSessionEnabled,_0x350ce3)?_0x350ce3:null;const _0x30bef3=await _0x255764[_0x5d7d88(0xa3)](readHookInput),_0x246967=_0x30bef3?.[_0x5d7d88(0xa1)];if(!_0x246967||!isSessionEnabled(_0x246967))return null;return _0x246967;}function _0xbcf2(_0xc5b9de,_0x28b805){_0xc5b9de=_0xc5b9de-0xa0;const _0x286e1c=_0x286e();let _0xbcf208=_0x286e1c[_0xc5b9de];return _0xbcf208;}export async function getEnabledHookContext(_0x591140){if(_0x591140){if(!isSessionEnabled(_0x591140))return null;return{'sessionId':_0x591140,'input':{'session_id':_0x591140}};}const _0x55238c=await readHookInput(),_0x5344f0=_0x55238c?.['session_id'];if(!_0x5344f0||!isSessionEnabled(_0x5344f0))return null;return{'sessionId':_0x5344f0,'input':_0x55238c};}function _0x286e(){const _0x97c2ed=['21fdtoJn','gYaYW','9880992qxvDEI','stdin','405488fmUgZj','78400pnrISp','4479531njdYko','556407XPmuhs','XleuL','18vcbqRT','1575oQCdHW','1204015yjzyXn','5457136wJlQVk','log','session_id'];_0x286e=function(){return _0x97c2ed;};return _0x286e();}
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(_0x4a9847,_0x4ff8fe){const _0xe272de=_0x16b1,_0x4f4ab7=_0x4a9847();while(!![]){try{const _0x11790b=parseInt(_0xe272de(0x100))/0x1+parseInt(_0xe272de(0x102))/0x2*(-parseInt(_0xe272de(0x104))/0x3)+-parseInt(_0xe272de(0x108))/0x4*(-parseInt(_0xe272de(0x10c))/0x5)+-parseInt(_0xe272de(0x109))/0x6+-parseInt(_0xe272de(0x106))/0x7+parseInt(_0xe272de(0x10d))/0x8+parseInt(_0xe272de(0x101))/0x9;if(_0x11790b===_0x4ff8fe)break;else _0x4f4ab7['push'](_0x4f4ab7['shift']());}catch(_0xe7fead){_0x4f4ab7['push'](_0x4f4ab7['shift']());}}}(_0x215b,0xcf77f));function _0x215b(){const _0x5b457a=['PIQVj','514845XJooDi','8086752zfgkVQ','556974KKVCHC','4422375pGNWOi','48NHDkik','sessionId','138978hdJeRH','permission_mode','1830185nMmQBP','input','60RVVDOs','8283948BDDwNx','ciAou'];_0x215b=function(){return _0x5b457a;};return _0x215b();}import{printBlock,getEnabledHookContext}from'./output.js';import{shouldShowPlanReminder}from'../utils/sessionCache.js';function _0x16b1(_0x42b598,_0x30bfea){_0x42b598=_0x42b598-0x100;const _0x215b8d=_0x215b();let _0x16b197=_0x215b8d[_0x42b598];return _0x16b197;}export async function planReminder(_0x1703e4){const _0x309ad6=_0x16b1,_0xf48000={'ciAou':function(_0x18b9bd,_0x3461eb){return _0x18b9bd(_0x3461eb);},'PIQVj':function(_0x334eba,_0x1612bf){return _0x334eba!==_0x1612bf;}},_0x38e323=await _0xf48000[_0x309ad6(0x10a)](getEnabledHookContext,_0x1703e4);if(!_0x38e323)return;if(_0xf48000[_0x309ad6(0x10b)](_0x38e323[_0x309ad6(0x107)][_0x309ad6(0x105)],'plan'))return;if(!shouldShowPlanReminder(_0x38e323[_0x309ad6(0x103)]))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===');}
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(_0x404564,_0x19cb32){const _0x2ced95=_0x2ec7,_0x3862f2=_0x404564();while(!![]){try{const _0x128a43=parseInt(_0x2ced95(0xbc))/0x1+parseInt(_0x2ced95(0xbd))/0x2*(-parseInt(_0x2ced95(0xba))/0x3)+parseInt(_0x2ced95(0xbb))/0x4+-parseInt(_0x2ced95(0xc1))/0x5+parseInt(_0x2ced95(0xc2))/0x6*(parseInt(_0x2ced95(0xc0))/0x7)+parseInt(_0x2ced95(0xb9))/0x8+-parseInt(_0x2ced95(0xbf))/0x9*(-parseInt(_0x2ced95(0xbe))/0xa);if(_0x128a43===_0x19cb32)break;else _0x3862f2['push'](_0x3862f2['shift']());}catch(_0xb2c587){_0x3862f2['push'](_0x3862f2['shift']());}}}(_0x5942,0x438aa));function _0x5942(){const _0x19564b=['70tosWOo','90333BTeUqm','28dTXTRM','2030730epuAJs','746058yxzcBN','koemY','3505312TRjbQi','1152477SWqDzA','13760rMIByq','57720dghTUb','2hUHfhK'];_0x5942=function(){return _0x19564b;};return _0x5942();}import{printBlock,getEnabledSessionId}from'./output.js';function _0x2ec7(_0xfef905,_0xde9a3e){_0xfef905=_0xfef905-0xb8;const _0x5942c8=_0x5942();let _0x2ec7e5=_0x5942c8[_0xfef905];return _0x2ec7e5;}export async function planStart(_0x40619b){const _0x39d49c=_0x2ec7,_0x176ff4={'koemY':function(_0x382e6b,_0x4f1be4){return _0x382e6b(_0x4f1be4);}},_0x1939b9=await _0x176ff4['koemY'](getEnabledSessionId,_0x40619b);if(!_0x1939b9)return;_0x176ff4[_0x39d49c(0xb8)](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 _0x1777(_0x3a4793,_0x3d5a53){_0x3a4793=_0x3a4793-0x79;const _0x249834=_0x2498();let _0x177715=_0x249834[_0x3a4793];return _0x177715;}function _0x2498(){const _0x1d2e5f=['7721CSrWFm','1288xusDAH','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.','83961ztvVCL','EQpLQ','1031139qcAGyp','194080nVhSmO','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).','PostToolUse','log','110uTVCZg','4497660sOXOlv','64698lFNqLN','2ZXDSzO','827840AMSUOQ'];_0x2498=function(){return _0x1d2e5f;};return _0x2498();}(function(_0x94d497,_0x1f8770){const _0x288fca=_0x1777,_0x10017b=_0x94d497();while(!![]){try{const _0x441d0c=-parseInt(_0x288fca(0x7a))/0x1*(parseInt(_0x288fca(0x81))/0x2)+-parseInt(_0x288fca(0x86))/0x3+parseInt(_0x288fca(0x82))/0x4+parseInt(_0x288fca(0x7e))/0x5*(-parseInt(_0x288fca(0x80))/0x6)+-parseInt(_0x288fca(0x83))/0x7*(parseInt(_0x288fca(0x84))/0x8)+parseInt(_0x288fca(0x79))/0x9+parseInt(_0x288fca(0x7f))/0xa;if(_0x441d0c===_0x1f8770)break;else _0x10017b['push'](_0x10017b['shift']());}catch(_0x4d93fb){_0x10017b['push'](_0x10017b['shift']());}}}(_0x2498,0x20d15));import{getSessionEntry,updateBranchTracking}from'../utils/sessionCache.js';import{getToken}from'../utils/keychain.js';import{getEnabledSessionId}from'./output.js';export async function postEdit(_0x23c408){const _0xeb9bac=_0x1777,_0xc9c7aa={'EQpLQ':_0xeb9bac(0x7c)},_0x33c259=await getEnabledSessionId(_0x23c408);if(!_0x33c259)return;updateBranchTracking(_0x33c259);const _0x1c8750=await getToken();if(!_0x1c8750)return;const _0x4a2e88=getSessionEntry(_0x33c259);if(_0x4a2e88){const _0x3a25d4={'hookSpecificOutput':{'hookEventName':_0xc9c7aa[_0xeb9bac(0x87)],'additionalContext':_0xeb9bac(0x7b)}};console[_0xeb9bac(0x7d)](JSON['stringify'](_0x3a25d4));return;}const _0x526b8e={'hookSpecificOutput':{'hookEventName':_0xc9c7aa[_0xeb9bac(0x87)],'additionalContext':_0xeb9bac(0x85)}};console[_0xeb9bac(0x7d)](JSON['stringify'](_0x526b8e));}
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(_0x142051,_0x5daa09){const _0x534f19=_0x4f25,_0x20b691=_0x142051();while(!![]){try{const _0x2f505d=parseInt(_0x534f19(0x1db))/0x1+parseInt(_0x534f19(0x1e3))/0x2+-parseInt(_0x534f19(0x1e4))/0x3*(-parseInt(_0x534f19(0x1dd))/0x4)+-parseInt(_0x534f19(0x1df))/0x5+parseInt(_0x534f19(0x1d9))/0x6+-parseInt(_0x534f19(0x1e1))/0x7*(-parseInt(_0x534f19(0x1e0))/0x8)+parseInt(_0x534f19(0x1da))/0x9*(-parseInt(_0x534f19(0x1dc))/0xa);if(_0x2f505d===_0x5daa09)break;else _0x20b691['push'](_0x20b691['shift']());}catch(_0x51a340){_0x20b691['push'](_0x20b691['shift']());}}}(_0x22aa,0x7a5b3));import{getToken}from'../utils/keychain.js';function _0x22aa(){const _0x2c8bd9=['TNxAh','3120885sXiZVC','8tDcucT','5542873mdrCjy','===\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`.','1288160NsnLJV','107427EKsXnV','qJGvr','5402364sBsdvA','747VmOiBv','458643jtaZrf','283130fDxTpo','76WQxDtU'];_0x22aa=function(){return _0x2c8bd9;};return _0x22aa();}import{printBlock,getEnabledSessionId}from'./output.js';function _0x4f25(_0x4c5dae,_0xbe95d4){_0x4c5dae=_0x4c5dae-0x1d9;const _0x22aa5c=_0x22aa();let _0x4f2594=_0x22aa5c[_0x4c5dae];return _0x4f2594;}export async function preCompact(_0x1cde66){const _0x4fcbaf=_0x4f25,_0x1d6554={'qJGvr':function(_0xbcfb8e,_0x4527c1){return _0xbcfb8e(_0x4527c1);},'TNxAh':function(_0x35371f){return _0x35371f();}},_0x3b0d4a=await _0x1d6554[_0x4fcbaf(0x1e5)](getEnabledSessionId,_0x1cde66);if(!_0x3b0d4a)return;try{const _0x3ea7cb=await _0x1d6554[_0x4fcbaf(0x1de)](getToken);if(!_0x3ea7cb)return;printBlock(_0x4fcbaf(0x1e2));}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(_0x4fa45c,_0x53707d){const _0x2c8fe0=_0x3ba0,_0x3007b3=_0x4fa45c();while(!![]){try{const _0x285327=-parseInt(_0x2c8fe0(0x145))/0x1+parseInt(_0x2c8fe0(0x13d))/0x2*(parseInt(_0x2c8fe0(0x144))/0x3)+parseInt(_0x2c8fe0(0x149))/0x4+parseInt(_0x2c8fe0(0x147))/0x5+parseInt(_0x2c8fe0(0x148))/0x6+-parseInt(_0x2c8fe0(0x146))/0x7*(parseInt(_0x2c8fe0(0x140))/0x8)+-parseInt(_0x2c8fe0(0x143))/0x9;if(_0x285327===_0x53707d)break;else _0x3007b3['push'](_0x3007b3['shift']());}catch(_0x44a02d){_0x3007b3['push'](_0x3007b3['shift']());}}}(_0x15da,0x79a1f));import{isSessionEnabled,recordEnabledSessionCleared}from'../utils/sessionCache.js';import{readHookInput}from'./output.js';function _0x3ba0(_0x59d211,_0x56c247){_0x59d211=_0x59d211-0x13d;const _0x15daea=_0x15da();let _0x3ba056=_0x15daea[_0x59d211];return _0x3ba056;}function _0x15da(){const _0x4f413d=['356621dzGzUo','1189293ScUVaa','2839080UptgnG','855126ZUNPpo','441684pzANRH','148130fIUPNA','clear','session_id','24bnwLle','wDdbR','env','1105362qHNHmi','27paMwmD'];_0x15da=function(){return _0x4f413d;};return _0x15da();}export async function sessionEnd(_0x16e5a5){const _0x4aae1d=_0x3ba0,_0x91a81e={'mnaKw':function(_0x42e124,_0x2db4b2){return _0x42e124===_0x2db4b2;},'wDdbR':_0x4aae1d(0x13e)},_0x199010=process[_0x4aae1d(0x142)]['CLAUDE_SESSION_ID'];let _0x3ce4f1=_0x16e5a5,_0x5737ba;if(!_0x16e5a5){if(_0x199010&&!isSessionEnabled(_0x199010))return;const _0x17a108=await readHookInput();_0x3ce4f1=_0x17a108?.[_0x4aae1d(0x13f)]||_0x199010,_0x5737ba=_0x17a108?.['reason'];}if(!_0x3ce4f1)return;_0x91a81e['mnaKw'](_0x5737ba,_0x91a81e[_0x4aae1d(0x141)])&&recordEnabledSessionCleared(_0x3ce4f1);}
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
- const _0x4d54b0=_0x43b3;(function(_0x84daed,_0x11104b){const _0x3330d9=_0x43b3,_0x6ba8b4=_0x84daed();while(!![]){try{const _0x44d130=parseInt(_0x3330d9(0x105))/0x1+parseInt(_0x3330d9(0x11a))/0x2*(parseInt(_0x3330d9(0x114))/0x3)+-parseInt(_0x3330d9(0x118))/0x4+-parseInt(_0x3330d9(0x11b))/0x5*(-parseInt(_0x3330d9(0x10b))/0x6)+-parseInt(_0x3330d9(0x116))/0x7*(parseInt(_0x3330d9(0x10d))/0x8)+parseInt(_0x3330d9(0x11e))/0x9*(parseInt(_0x3330d9(0x10f))/0xa)+-parseInt(_0x3330d9(0x11d))/0xb*(parseInt(_0x3330d9(0x113))/0xc);if(_0x44d130===_0x11104b)break;else _0x6ba8b4['push'](_0x6ba8b4['shift']());}catch(_0x7efe3f){_0x6ba8b4['push'](_0x6ba8b4['shift']());}}}(_0xb93e,0xb8679));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';function _0xb93e(){const _0x12d5b5=['\x20(Branch:\x20','vHJGL','114pfKzrp','stKrp','2581584NrFVmi','pKWNT','10evZDTe','session_id','OWkQc','trackCommandEnd','12tKYLKC','33WiAfNp','PyLnv','7REnYaF','log','3385400xtgmrw','=================================================================\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=================================================================','212362TbOlzb','30005LDhWRR','parse','616022dqJTly','1421469eLlxmr','540420vagAMV','QzIka','shYAI','trackCommandStart'];_0xb93e=function(){return _0x12d5b5;};return _0xb93e();}function _0x43b3(_0x57865c,_0x56dff0){_0x57865c=_0x57865c-0x105;const _0xb93e9=_0xb93e();let _0x43b3f2=_0xb93e9[_0x57865c];return _0x43b3f2;}const RANGER_AUTO_ENABLED_PROMPT=_0x4d54b0(0x119);export async function sessionStart(_0x366afb){const _0x3c0b01=_0x4d54b0,_0x9d38c4={'gMlOm':'source','EJjkp':function(_0x1c296e,_0x3dbd52){return _0x1c296e&&_0x3dbd52;},'shYAI':function(_0x4db0e9,_0x5f56f9){return _0x4db0e9(_0x5f56f9);},'pKWNT':'success','stKrp':function(_0x6abf10,_0x14a0da){return _0x6abf10!==_0x14a0da;},'QzIka':'main','PyLnv':function(_0xff70ab,_0x235108){return _0xff70ab!==_0x235108;},'vHJGL':'master','OWkQc':'SessionStart'};let _0x5f0e88=_0x366afb||'',_0x5a9efd;if(!_0x366afb){let _0x2454e6='';for await(const _0x4c96af of process['stdin']){_0x2454e6+=_0x4c96af;}try{const _0x48acea=JSON[_0x3c0b01(0x11c)](_0x2454e6);_0x5f0e88=_0x48acea[_0x3c0b01(0x110)]||'',_0x5a9efd=_0x48acea[_0x9d38c4['gMlOm']];}catch{}const _0x5d696c=process['env']['CLAUDE_ENV_FILE'];if(_0x9d38c4['EJjkp'](_0x5d696c,_0x5f0e88))try{await appendFile(_0x5d696c,'export\x20CLAUDE_SESSION_ID=\x22'+_0x5f0e88+'\x22\x0a');}catch{}}try{await getToken();}catch{}if(_0x5f0e88){shouldAutoEnableAfterClear(_0x5a9efd)&&_0x9d38c4[_0x3c0b01(0x107)](autoEnableAfterClear,_0x5f0e88);_0x9d38c4[_0x3c0b01(0x107)](initBranchTracking,_0x5f0e88);const _0x32cbac=isSessionEnabled(_0x5f0e88);try{const _0xc21f5e=createTelemetryCollector('hook:session-start');await _0xc21f5e[_0x3c0b01(0x108)]({'sessionId':_0x5f0e88,'hooksEnabled':_0x32cbac}),await _0xc21f5e[_0x3c0b01(0x112)](_0x9d38c4[_0x3c0b01(0x10e)]);}catch{}if(_0x32cbac){const _0x2f5fee=getCurrentBranch(),_0x221ab5=_0x2f5fee&&_0x9d38c4[_0x3c0b01(0x10c)](_0x2f5fee,_0x9d38c4[_0x3c0b01(0x106)])&&_0x9d38c4[_0x3c0b01(0x115)](_0x2f5fee,_0x9d38c4[_0x3c0b01(0x10a)])?_0x3c0b01(0x109)+_0x2f5fee+')':'',_0x160f3d={'hookSpecificOutput':{'hookEventName':_0x9d38c4[_0x3c0b01(0x111)],'additionalContext':RANGER_AUTO_ENABLED_PROMPT+_0x221ab5}};console[_0x3c0b01(0x117)](JSON['stringify'](_0x160f3d));}}}
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(_0x53bb22,_0x42fc75){const _0x2e88df=_0x1cbe,_0x1ac3db=_0x53bb22();while(!![]){try{const _0x5e2910=parseInt(_0x2e88df(0x13e))/0x1+-parseInt(_0x2e88df(0x136))/0x2*(-parseInt(_0x2e88df(0x139))/0x3)+-parseInt(_0x2e88df(0x145))/0x4*(-parseInt(_0x2e88df(0x146))/0x5)+parseInt(_0x2e88df(0x133))/0x6*(parseInt(_0x2e88df(0x13f))/0x7)+parseInt(_0x2e88df(0x137))/0x8*(-parseInt(_0x2e88df(0x147))/0x9)+parseInt(_0x2e88df(0x134))/0xa+parseInt(_0x2e88df(0x144))/0xb*(-parseInt(_0x2e88df(0x141))/0xc);if(_0x5e2910===_0x42fc75)break;else _0x1ac3db['push'](_0x1ac3db['shift']());}catch(_0x3b389c){_0x1ac3db['push'](_0x1ac3db['shift']());}}}(_0x3750,0xc930a));import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';function _0x3750(){const _0x24651a=['filter','658960rcYbcb','8205015ItTqyN','Stop','11189172aEVciU','status','blocked','33JSgauM','16ITYOTw','1544195XQgSGx','657RrBanK','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','checklistItems','awEAG','6Oiagyo','6937260CWVDVT','closed','6PAwEwU','69512QhNjuQ','cxEGq','495477hNnHhf','sessionId','featureId','log'];_0x3750=function(){return _0x24651a;};return _0x3750();}import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';function _0x1cbe(_0x21f7dc,_0x32adf6){_0x21f7dc=_0x21f7dc-0x133;const _0x3750d9=_0x3750();let _0x1cbed7=_0x3750d9[_0x21f7dc];return _0x1cbed7;}export async function stopHook(_0x79a553){const _0x13d0a4=_0x1cbe,_0x18f025={'OsIIP':function(_0x4ef09,_0x31cf8c){return _0x4ef09(_0x31cf8c);},'cIyNy':function(_0x894f01,_0x57d2db){return _0x894f01&&_0x57d2db;},'thDNv':function(_0x2cb01c,_0x2cd76e){return _0x2cb01c(_0x2cd76e);},'awEAG':function(_0x3c0bd7,_0x49f131,_0x1def75,_0x1c2c89){return _0x3c0bd7(_0x49f131,_0x1def75,_0x1c2c89);}},_0x397669=await getEnabledHookContext(_0x79a553),_0x27a075=_0x397669?.[_0x13d0a4(0x13a)]??null;let _0x617e7f=!![];if(!_0x27a075){await trackStop(_0x27a075,![],_0x617e7f);return;}try{const _0x40888d=_0x18f025['OsIIP'](getSessionEntry,_0x27a075);if(!_0x40888d){await trackStop(_0x27a075,!![],_0x617e7f);return;}const _0x343c1c=await getToken(),_0x24eed3='https://dashboard.ranger.net/features/'+_0x40888d['featureId'];let _0x3bdb7a=null,_0x12f780=![],_0x27b706=![];if(_0x343c1c)try{const _0x46726c=await _0x18f025['OsIIP'](getFeature,_0x40888d['featureId']);_0x3bdb7a=_0x46726c['currentSessionId']??null;const _0x30e0a5=_0x46726c[_0x13d0a4(0x149)][_0x13d0a4(0x13d)](_0x38f485=>_0x38f485['sessionId']===_0x3bdb7a);_0x12f780=_0x30e0a5['some'](_0x1fa9ea=>_0x1fa9ea['status']!=='verified'&&_0x1fa9ea[_0x13d0a4(0x142)]!==_0x13d0a4(0x143)&&_0x1fa9ea['status']!==_0x13d0a4(0x135)&&_0x1fa9ea[_0x13d0a4(0x142)]!=='incomplete'),_0x27b706=_0x30e0a5['some'](_0x4f3a4f=>_0x4f3a4f['status']==='verification_in_progress');}catch{}if(_0x18f025['cIyNy'](_0x343c1c,_0x3bdb7a)&&_0x12f780){if(!_0x27b706&&_0x18f025['thDNv'](shouldShowStopReminder,_0x27a075)){const _0x30d983={'hookSpecificOutput':{'hookEventName':_0x13d0a4(0x140),'additionalContext':_0x13d0a4(0x148)+_0x24eed3}};console[_0x13d0a4(0x13c)](JSON['stringify'](_0x30d983));}}if(_0x343c1c&&_0x3bdb7a&&!_0x12f780)try{await concludeSession(_0x40888d[_0x13d0a4(0x13b)],_0x3bdb7a);}catch{}await _0x18f025['awEAG'](trackStop,_0x27a075,!![],_0x617e7f);return;}catch{await _0x18f025[_0x13d0a4(0x14a)](trackStop,_0x27a075,!![],_0x617e7f);return;}}async function trackStop(_0x4ab119,_0x402e01,_0x4ebd18){const _0x41001c=_0x1cbe,_0x6466fd={'cxEGq':function(_0x33cc1f,_0x160404){return _0x33cc1f(_0x160404);}};try{const _0x146a0b=_0x6466fd[_0x41001c(0x138)](createTelemetryCollector,'hook:stop');await _0x146a0b['trackCommandStart']({'sessionId':_0x4ab119??undefined,'hooksEnabled':_0x402e01,'stopAllowed':_0x4ebd18}),await _0x146a0b['trackCommandEnd']('success');}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(_0x9a4e00,_0x381c9c){var _0x13ca4f=_0xe578,_0x462fd6=_0x9a4e00();while(!![]){try{var _0x2eac7b=-parseInt(_0x13ca4f(0xe9))/0x1+parseInt(_0x13ca4f(0xeb))/0x2+parseInt(_0x13ca4f(0xe6))/0x3+-parseInt(_0x13ca4f(0xe5))/0x4+-parseInt(_0x13ca4f(0xec))/0x5+parseInt(_0x13ca4f(0xe8))/0x6*(-parseInt(_0x13ca4f(0xea))/0x7)+parseInt(_0x13ca4f(0xe7))/0x8;if(_0x2eac7b===_0x381c9c)break;else _0x462fd6['push'](_0x462fd6['shift']());}catch(_0x101483){_0x462fd6['push'](_0x462fd6['shift']());}}}(_0xe6d3,0xbd2bf));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';function _0xe578(_0x2e9069,_0x55d9e9){_0x2e9069=_0x2e9069-0xe5;var _0xe6d3b3=_0xe6d3();var _0xe57867=_0xe6d3b3[_0x2e9069];return _0xe57867;}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';export{migrateProfile}from'./migrateProfile.js';function _0xe6d3(){var _0x1edb3e=['857575hVMThI','7ytkmot','2476266ElhUBv','5145495JBmRov','1894872Flqxpb','1254732meRTTE','21617128SLesmA','7339674SZBYpa'];_0xe6d3=function(){return _0x1edb3e;};return _0xe6d3();}
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(_0x178175,_0x210e76){const _0x41c450=_0x14da,_0x4fa62b=_0x178175();while(!![]){try{const _0x25732d=-parseInt(_0x41c450(0xee))/0x1+parseInt(_0x41c450(0xf3))/0x2*(-parseInt(_0x41c450(0xf2))/0x3)+-parseInt(_0x41c450(0xfc))/0x4*(parseInt(_0x41c450(0xef))/0x5)+parseInt(_0x41c450(0xf7))/0x6*(-parseInt(_0x41c450(0xfb))/0x7)+-parseInt(_0x41c450(0xfa))/0x8*(parseInt(_0x41c450(0xec))/0x9)+-parseInt(_0x41c450(0xfd))/0xa*(-parseInt(_0x41c450(0xf1))/0xb)+parseInt(_0x41c450(0xed))/0xc;if(_0x25732d===_0x210e76)break;else _0x4fa62b['push'](_0x4fa62b['shift']());}catch(_0x3ef524){_0x4fa62b['push'](_0x4fa62b['shift']());}}}(_0x1491,0xa04b2));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';function _0x14da(_0x3bf934,_0x5dff5e){_0x3bf934=_0x3bf934-0xec;const _0x14917f=_0x1491();let _0x14da26=_0x14917f[_0x3bf934];return _0x14da26;}export async function login(){const _0xb042e2=_0x14da,_0x158021={'aBzgK':function(_0x1c4ce4){return _0x1c4ce4();},'mGUlT':'Re-authenticating\x20via\x20MCP\x20bootstrap...','DITPK':function(_0x4da965){return _0x4da965();},'fowgx':_0xb042e2(0xf4),'HrHDD':_0xb042e2(0xff)},_0x1d85d1=await _0x158021[_0xb042e2(0xf0)](getMcpAuthOrigin);if(_0x1d85d1){console[_0xb042e2(0xf5)](_0x158021['mGUlT']),await _0x158021[_0xb042e2(0xf8)](mcpBootstrap);return;}const _0x2b3daa=process['stdin']['isTTY']&&process[_0xb042e2(0xfe)]['isTTY'];if(!_0x2b3daa)throw new Error(_0x158021['fowgx']);try{const _0x118437=await runDeviceAuthFlow(),_0x75a917=await getCurrentUser(_0x118437);_0x75a917['success']?console[_0xb042e2(0xf5)](_0xb042e2(0xf9)+_0x75a917['user']['organizationName']):console[_0xb042e2(0xf5)](_0x158021['HrHDD']);}catch(_0x4e1a2e){throw new Error(_0xb042e2(0xf6)+(_0x4e1a2e instanceof Error?_0x4e1a2e['message']:_0x4e1a2e));}}function _0x1491(){const _0x2ed117=['82GgQuWV','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','log','Login\x20failed:\x20','6978HmhSAZ','DITPK','\x0a✅\x20Logged\x20in\x20to\x20','297384cTYLJk','1659utlVZs','232kupPKg','570NkIFpo','stdout','\x0a✅\x20API\x20key\x20stored\x20successfully','297GoLXoC','37235064DZdQbC','271796skbDdm','91135PtZcOR','aBzgK','237193bLFmAV','61767rMKjuj'];_0x1491=function(){return _0x2ed117;};return _0x1491();}
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 _0xa3d572=_0x55ea;(function(_0x5a57f5,_0x509733){const _0x534bbf=_0x55ea,_0x24ca99=_0x5a57f5();while(!![]){try{const _0x53c42e=parseInt(_0x534bbf(0xf1))/0x1*(parseInt(_0x534bbf(0x11b))/0x2)+-parseInt(_0x534bbf(0xef))/0x3+-parseInt(_0x534bbf(0x11a))/0x4+-parseInt(_0x534bbf(0xe5))/0x5+-parseInt(_0x534bbf(0xe7))/0x6*(parseInt(_0x534bbf(0x120))/0x7)+-parseInt(_0x534bbf(0x137))/0x8*(parseInt(_0x534bbf(0xe3))/0x9)+parseInt(_0x534bbf(0x113))/0xa;if(_0x53c42e===_0x509733)break;else _0x24ca99['push'](_0x24ca99['shift']());}catch(_0x229f83){_0x24ca99['push'](_0x24ca99['shift']());}}}(_0x426e,0xc66cc));import{mkdir,writeFile,readFile}from'fs/promises';function _0x426e(){const _0x37858e=['client_id','registration_endpoint','json','content-type','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','40441610zrwHJV','WdDbA','end','\x0aUnexpected\x20response\x20structure:','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','replace','now','468432OxdRja','4990GFckEk','searchParams','name','base64url','text/html','308623FQequw','yYOzF','uNZVg','aNLbo','Requesting\x20CLI\x20token...','slice','BXjvA','uzYdm','error','Initializing\x20MCP\x20session...','Unknown\x20error','MByjT','/.well-known/oauth-authorization-server','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','TkIyN','ogIVC','get_cli_token\x20failed:\x20','digest','OAuth\x20error:\x20','get','authorization_code','token','expires_in','7116456UNXmqN','hPxSA','origin','error_description','kByRv','ScPpF','resource','OAuthTimeoutError','content','write','MCP\x20server\x20returned\x20HTTP\x20','Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','Ranger\x20CLI','Not\x20found','PJbiu','text','state','listen','dKmbw','<html><body><h2>Authentication\x20failed</h2><p>','Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','status','\x20done','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','\x0aOpening\x20browser\x20for\x20authentication...','krUts','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','rpcKy','authorization_endpoint','ranger-cli','utf-8','cZgPI','aSbBu','Server\x20returned\x20error:\x20','message','darwin','xFtDG','stdout','stringify','open','close','notifications/initialized','code','set','imHPX','includes','url','clientId','XufDw','result','No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','auth-origin.txt','Exchanging\x20authorization\x20code...','gNdJK','client_secret','trim','tRciU','update','tUnUq','vRTGA','toString','POST','authorization_servers','KKBfz','isError','UuWDf','StEMe','writeHead','9MzAjnb','mRuEa','7657830NnEIlW','code_challenge_method','156BSkrMb','split','Authorization','redirect_uri','expiresAt','application/json','access_token','UMFTu','249879GlcNiO','/callback','215YVJNAI','initialize','DLCXV','http://localhost:','ajjQa','GugFN','cyysz','1.0.0','accessToken','RoVqT','clientSecret','qJErM','zhUHr','application/json,\x20text/event-stream','TbYBj','closeAllConnections','hex','ARVJS','127.0.0.1','2.0','startsWith','log','Registering\x20OAuth\x20client...','then','rzzSd','lmRjT','eqtTG','CMUYc','.ranger'];_0x426e=function(){return _0x37858e;};return _0x426e();}import{join}from'path';function _0x55ea(_0x35ee12,_0xef6851){_0x35ee12=_0x35ee12-0xc1;const _0x426e1c=_0x426e();let _0x55eaca=_0x426e1c[_0x35ee12];return _0x55eaca;}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(),_0xa3d572(0x10d),'mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),_0xa3d572(0x10d),_0xa3d572(0xd2));export async function getMcpAuthOrigin(){const _0xcc5dd7=_0xa3d572;try{const _0xd9535f=(await readFile(AUTH_ORIGIN_PATH,'utf-8'))[_0xcc5dd7(0xd6)]();return _0xd9535f||null;}catch{return null;}}export async function mcpBootstrap(){const _0x348c0e=_0xa3d572,_0x5cbb29={'ELlKL':function(_0xbedba2){return _0xbedba2();},'OHYnj':function(_0x5c92f3,_0x54396f){return _0x5c92f3(_0x54396f);},'KLCyl':'proxied','tRciU':function(_0x24c811,_0x35abee){return _0x24c811+_0x35abee;},'ogIVC':_0x348c0e(0x14e),'xrgVg':function(_0x13d7d3,_0x1034a3,_0x27a9da){return _0x13d7d3(_0x1034a3,_0x27a9da);}},_0x586818=_0x5cbb29['ELlKL'](getMcpAuthUrl);currentOrigin=_0x586818;const _0x273061=process[_0x348c0e(0xc4)]['isTTY']??![];console['log']('\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20'+_0x586818+'\x0a');const _0x16a813=await _0x5cbb29['OHYnj'](tryUnauthenticated,_0x586818);let _0x175308=null;if(_0x16a813===_0x5cbb29['KLCyl'])_0x175308='';else{_0x175308=await loadCachedToken();if(!_0x175308){if(!_0x273061)throw new Error(_0x5cbb29[_0x348c0e(0xd7)]('MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a',_0x5cbb29[_0x348c0e(0x12f)]));_0x175308=await _0x5cbb29['OHYnj'](oauthFlow,_0x586818);}}await _0x5cbb29['xrgVg'](callGetCliToken,_0x586818,_0x175308);}async function tryUnauthenticated(_0x1b9e26){const _0x5885c2=_0xa3d572,_0x18dce1={'LoEUP':'application/json','vRTGA':_0x5885c2(0xf2),'sdENZ':'2025-03-26','TkIyN':'ranger-cli','RoVqT':_0x5885c2(0xf8),'cLDYF':function(_0x1be7d1,_0x4035eb){return _0x1be7d1===_0x4035eb;}},_0x133bf7=await fetch(_0x1b9e26,{'method':'POST','headers':{'Content-Type':_0x18dce1['LoEUP'],'Accept':_0x5885c2(0xfe)},'body':JSON['stringify']({'jsonrpc':_0x5885c2(0x104),'id':0x1,'method':_0x18dce1[_0x5885c2(0xda)],'params':{'protocolVersion':_0x18dce1['sdENZ'],'capabilities':{},'clientInfo':{'name':_0x18dce1[_0x5885c2(0x12e)],'version':_0x18dce1[_0x5885c2(0xfa)]}}})});if(_0x133bf7['ok'])return await _0x133bf7[_0x5885c2(0x146)](),'proxied';if(_0x18dce1['cLDYF'](_0x133bf7[_0x5885c2(0x14c)],0x191))return await _0x133bf7[_0x5885c2(0x146)](),'needs-oauth';const _0x4b1924=await _0x133bf7[_0x5885c2(0x146)]();throw new Error(_0x5885c2(0x141)+_0x133bf7[_0x5885c2(0x14c)]+':\x20'+_0x4b1924);}class OAuthTimeoutError extends Error{constructor(_0x10e934){const _0x2ac381=_0xa3d572,_0x32ee8b={'cZgPI':_0x2ac381(0x13e)};super(_0x10e934),this[_0x2ac381(0x11d)]=_0x32ee8b[_0x2ac381(0x156)];}}async function oauthFlow(_0xba29eb){const _0x326057=_0xa3d572,_0x4898f1={'kZVEY':function(_0x1a03f2,_0x5063ab){return _0x1a03f2(_0x5063ab);},'iWkII':function(_0x4a340b,_0x205597){return _0x4a340b instanceof _0x205597;},'GhPOB':function(_0x1982f9){return _0x1982f9();},'PJbiu':'\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a','uNnMc':function(_0x2622c3){return _0x2622c3();},'zCsuU':function(_0x97aa87,_0x19e685){return _0x97aa87(_0x19e685);}};try{return await _0x4898f1['kZVEY'](oauthFlowAttempt,_0xba29eb);}catch(_0x4edfe3){if(_0x4898f1['iWkII'](_0x4edfe3,OAuthTimeoutError)&&await _0x4898f1['GhPOB'](loadCachedClient))return console[_0x326057(0x106)](_0x4898f1[_0x326057(0x145)]),await _0x4898f1['uNnMc'](clearCachedClient),await _0x4898f1['zCsuU'](oauthFlowAttempt,_0xba29eb);throw _0x4edfe3;}}async function oauthFlowAttempt(_0x11f9d6){const _0x5460aa=_0xa3d572,_0x1175e9={'aSbBu':function(_0x467445,_0x11406f){return _0x467445(_0x11406f);},'tUnUq':function(_0x52f004,_0x1cf6f6){return _0x52f004(_0x1cf6f6);},'PLcqM':'application/json','isYKP':_0x5460aa(0x134),'hPxSA':'none','lmRjT':_0x5460aa(0x14d),'DTgAe':'sha256','rzzSd':_0x5460aa(0xc9),'mRuEa':_0x5460aa(0xea),'ZDSDe':'S256','qJErM':'state','GugFN':_0x5460aa(0xd3),'zjdxY':_0x5460aa(0x13d),'zhUHr':function(_0x3ec995,_0x40b833,_0x4f6acd){return _0x3ec995(_0x40b833,_0x4f6acd);},'tPUIy':_0x5460aa(0xdc)},_0x7002c0=_0x11f9d6[_0x5460aa(0x118)](/\/mcp$/,'');process[_0x5460aa(0xc4)]['write']('Discovering\x20authorization\x20server...');const _0x5a1ce8=await _0x1175e9[_0x5460aa(0x157)](fetch,_0x7002c0+'/.well-known/oauth-protected-resource');if(!_0x5a1ce8['ok'])throw new Error(_0x5460aa(0x142));const _0x4dd2bb=await _0x5a1ce8['json'](),_0xec982b=_0x4dd2bb[_0x5460aa(0xdd)]?.[0x0];if(!_0xec982b)throw new Error(_0x5460aa(0xd1));console[_0x5460aa(0x106)]('\x20'+_0xec982b);const _0x377cb=await _0x1175e9[_0x5460aa(0xd9)](fetchAuthServerMetadata,_0xec982b);let _0x462db9,_0x29a5d8;const _0x386829=await loadCachedClient();if(_0x386829)_0x462db9=_0x386829['clientId'],_0x29a5d8=_0x386829[_0x5460aa(0xfb)];else{if(_0x377cb['registration_endpoint']){process['stdout']['write'](_0x5460aa(0x107));const _0x2c8b06=await fetch(_0x377cb[_0x5460aa(0x10f)],{'method':'POST','headers':{'Content-Type':_0x1175e9['PLcqM']},'body':JSON[_0x5460aa(0xc5)]({'client_name':_0x5460aa(0x143),'redirect_uris':[_0x5460aa(0xf4)+CALLBACK_PORT+'/callback'],'grant_types':[_0x1175e9['isYKP'],'refresh_token'],'response_types':[_0x5460aa(0xc9)],'token_endpoint_auth_method':_0x1175e9[_0x5460aa(0x138)]})});if(!_0x2c8b06['ok']){const _0xafc7c4=await _0x2c8b06['text']();throw new Error('Client\x20registration\x20failed:\x20'+_0xafc7c4);}const _0x2222da=await _0x2c8b06['json']();_0x462db9=_0x2222da[_0x5460aa(0x10e)],_0x29a5d8=_0x2222da['client_secret'],await saveCachedClient(_0x462db9,_0x29a5d8),console['log'](_0x1175e9['lmRjT']);}else throw new Error(_0x5460aa(0x14b));}const _0x5c9d77=_0x1175e9['tUnUq'](randomBytes,0x20)[_0x5460aa(0xdb)](_0x5460aa(0x11e)),_0x538938=createHash(_0x1175e9['DTgAe'])[_0x5460aa(0xd8)](_0x5c9d77)[_0x5460aa(0x131)](_0x5460aa(0x11e)),_0x5010fe=_0x1175e9['aSbBu'](randomBytes,0x10)['toString'](_0x5460aa(0x101)),_0x1c5a5a=new URL(_0x377cb[_0x5460aa(0x153)]);_0x1c5a5a[_0x5460aa(0x11c)][_0x5460aa(0xca)]('response_type',_0x1175e9[_0x5460aa(0x109)]),_0x1c5a5a['searchParams'][_0x5460aa(0xca)](_0x5460aa(0x10e),_0x462db9),_0x1c5a5a['searchParams'][_0x5460aa(0xca)](_0x1175e9[_0x5460aa(0xe4)],'http://localhost:'+CALLBACK_PORT+'/callback'),_0x1c5a5a[_0x5460aa(0x11c)][_0x5460aa(0xca)]('code_challenge',_0x538938),_0x1c5a5a['searchParams']['set'](_0x5460aa(0xe6),_0x1175e9['ZDSDe']),_0x1c5a5a['searchParams'][_0x5460aa(0xca)](_0x1175e9[_0x5460aa(0xfc)],_0x5010fe);_0x4dd2bb[_0x5460aa(0x13d)]&&_0x1c5a5a['searchParams'][_0x5460aa(0xca)]('resource',_0x4dd2bb[_0x5460aa(0x13d)]);console[_0x5460aa(0x106)](_0x5460aa(0x14f)),console[_0x5460aa(0x106)](_0x5460aa(0x12d)+_0x1c5a5a[_0x5460aa(0xdb)]()+'\x0a'),await openBrowser(_0x1c5a5a[_0x5460aa(0xdb)]());const _0x3f89be=await waitForCallback(_0x5010fe);process[_0x5460aa(0xc4)]['write'](_0x1175e9[_0x5460aa(0xf6)]);const _0x4c3eab=new URLSearchParams({'grant_type':_0x5460aa(0x134),'code':_0x3f89be,'redirect_uri':_0x5460aa(0xf4)+CALLBACK_PORT+_0x5460aa(0xf0),'client_id':_0x462db9,'code_verifier':_0x5c9d77});_0x29a5d8&&_0x4c3eab['set'](_0x5460aa(0xd5),_0x29a5d8);_0x4dd2bb['resource']&&_0x4c3eab[_0x5460aa(0xca)](_0x1175e9['zjdxY'],_0x4dd2bb['resource']);const _0x3d8511=await _0x1175e9[_0x5460aa(0xfd)](fetch,_0x377cb['token_endpoint'],{'method':_0x1175e9['tPUIy'],'headers':{'Content-Type':'application/x-www-form-urlencoded'},'body':_0x4c3eab});if(!_0x3d8511['ok']){const _0x4e4845=await _0x3d8511[_0x5460aa(0x146)]();throw new Error('Token\x20exchange\x20failed:\x20'+_0x4e4845);}const _0x56e853=await _0x3d8511[_0x5460aa(0x110)]();return console['log'](_0x1175e9[_0x5460aa(0x10a)]),await saveCachedToken(_0x56e853[_0x5460aa(0xed)],_0x56e853['refresh_token'],_0x56e853[_0x5460aa(0x136)]),_0x56e853[_0x5460aa(0xed)];}async function callGetCliToken(_0x3f8145,_0x4e9c7f){const _0x5de3fe=_0xa3d572,_0x38a9d8={'dKmbw':function(_0x250b31,_0x53e62b,_0x36f9b7){return _0x250b31(_0x53e62b,_0x36f9b7);},'OfUEW':'application/json,\x20text/event-stream','cyysz':_0x5de3fe(0xe9),'qtZWH':function(_0x28f432,_0x14df6a){return _0x28f432(_0x14df6a);},'FKINP':'initialize','UMFTu':'2025-03-26','bFMsb':_0x5de3fe(0x154),'uNZVg':'\x20done','bnCfN':_0x5de3fe(0x104),'crWKE':_0x5de3fe(0xc8),'gNdJK':'get_cli_token','MByjT':function(_0x950a44,_0x3e7a4a){return _0x950a44(_0x3e7a4a);},'XtxJX':'refresh.txt','FmmRy':function(_0x3d5325,_0x1fe051,_0x51008a){return _0x3d5325(_0x1fe051,_0x51008a);},'krUts':_0x5de3fe(0xd2),'CMUYc':'Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a'},_0x4b6863={'Content-Type':_0x5de3fe(0xec),'Accept':_0x38a9d8['OfUEW']};_0x4e9c7f&&(_0x4b6863[_0x38a9d8[_0x5de3fe(0xf7)]]='Bearer\x20'+_0x4e9c7f);const _0x340356=async _0x3a2685=>{const _0x185510=await _0x38a9d8['dKmbw'](fetch,_0x3f8145,{'method':'POST','headers':_0x4b6863,'body':JSON['stringify'](_0x3a2685)});if(!_0x185510['ok']){const _0x491b7e=await _0x185510['text']();throw new Error('HTTP\x20'+_0x185510['status']+':\x20'+_0x491b7e);}return parseResponse(_0x185510);};process[_0x5de3fe(0xc4)]['write'](_0x5de3fe(0x129));const _0x5b4b2e=await _0x38a9d8['qtZWH'](_0x340356,{'jsonrpc':'2.0','id':0x1,'method':_0x38a9d8['FKINP'],'params':{'protocolVersion':_0x38a9d8[_0x5de3fe(0xee)],'capabilities':{},'clientInfo':{'name':_0x38a9d8['bFMsb'],'version':'1.0.0'}}});if(_0x5b4b2e['error'])throw new Error('MCP\x20initialize\x20failed:\x20'+(_0x5b4b2e['error'][_0x5de3fe(0xc1)]??JSON['stringify'](_0x5b4b2e[_0x5de3fe(0x128)])));console[_0x5de3fe(0x106)](_0x38a9d8[_0x5de3fe(0x122)]),await _0x38a9d8['dKmbw'](fetch,_0x3f8145,{'method':'POST','headers':_0x4b6863,'body':JSON[_0x5de3fe(0xc5)]({'jsonrpc':_0x38a9d8['bnCfN'],'method':_0x38a9d8['crWKE']})})[_0x5de3fe(0x108)](_0x214524=>_0x214524['text']()),process[_0x5de3fe(0xc4)][_0x5de3fe(0x140)](_0x5de3fe(0x124));const _0x36d243=await _0x38a9d8['qtZWH'](_0x340356,{'jsonrpc':_0x5de3fe(0x104),'id':0x2,'method':'tools/call','params':{'name':_0x38a9d8[_0x5de3fe(0xd4)],'arguments':{}}});if(_0x36d243['error'])throw new Error(_0x5de3fe(0x130)+(_0x36d243['error'][_0x5de3fe(0xc1)]??JSON['stringify'](_0x36d243[_0x5de3fe(0x128)])));console['log'](_0x38a9d8[_0x5de3fe(0x122)]);const _0x2d210a=_0x38a9d8[_0x5de3fe(0x12b)](extractToken,_0x36d243['result']);if(!_0x2d210a){console['error'](_0x5de3fe(0x116)),console[_0x5de3fe(0x128)](JSON[_0x5de3fe(0xc5)](_0x36d243[_0x5de3fe(0xd0)],null,0x2));throw new Error('Could\x20not\x20extract\x20token\x20from\x20MCP\x20response');}const _0xbe76d9=join(homedir(),_0x5de3fe(0x10d)),_0x457bb2=_0x38a9d8[_0x5de3fe(0x149)](join,_0xbe76d9,_0x38a9d8['XtxJX']);await _0x38a9d8['FmmRy'](mkdir,_0xbe76d9,{'recursive':!![]}),await writeFile(_0x457bb2,_0x2d210a,{'mode':0x180}),await writeFile(join(_0xbe76d9,_0x38a9d8[_0x5de3fe(0x150)]),_0x3f8145,{'mode':0x180}),console['log']('\x0aToken\x20written\x20to\x20'+_0x457bb2),console[_0x5de3fe(0x106)](_0x38a9d8[_0x5de3fe(0x10c)]);}async function fetchAuthServerMetadata(_0x500926){const _0x3a933e=_0xa3d572,_0x2a0488=_0x500926+_0x3a933e(0x12c),_0x53642f=await fetch(_0x2a0488);if(!_0x53642f['ok'])throw new Error(_0x3a933e(0x151)+_0x2a0488+':\x20'+_0x53642f['status']);return _0x53642f[_0x3a933e(0x110)]();}function waitForCallback(_0x5d0a01){const _0x14009b=_0xa3d572,_0x39d476={'BFXZa':function(_0x11a61a){return _0x11a61a();},'TbYBj':_0x14009b(0x11f),'rpcKy':function(_0x230404,_0x42de38){return _0x230404(_0x42de38);},'wimLj':function(_0x478f54,_0x710929,_0x5aca43){return _0x478f54(_0x710929,_0x5aca43);}};return new Promise((_0xae7b5,_0x426805)=>{const _0x3cd71e=_0x14009b,_0x231d9a={'yHgeN':function(_0x48d559){return _0x39d476['BFXZa'](_0x48d559);},'BXjvA':function(_0x527686,_0x582a00){return _0x527686(_0x582a00);},'ajjQa':'OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','UuWDf':_0x3cd71e(0x144),'LpaTc':_0x3cd71e(0xc9),'xFtDG':_0x39d476[_0x3cd71e(0xff)],'iNeiq':function(_0x2144b2,_0x59c820){return _0x2144b2(_0x59c820);},'kByRv':'<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','eqtTG':'<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','yYOzF':function(_0x38e1f9,_0x1125cd){const _0x4ba07c=_0x3cd71e;return _0x39d476[_0x4ba07c(0x152)](_0x38e1f9,_0x1125cd);}},_0x396201=()=>{const _0xc1000a=_0x3cd71e;_0x5e8fe5[_0xc1000a(0x100)](),_0x5e8fe5[_0xc1000a(0xc7)]();},_0x86623=_0x39d476['wimLj'](setTimeout,()=>{const _0x172f8e=_0x3cd71e;_0x231d9a['yHgeN'](_0x396201),_0x231d9a['BXjvA'](_0x426805,new OAuthTimeoutError(_0x231d9a[_0x172f8e(0xf5)]));},0x1d4c0),_0x5e8fe5=_0x39d476['rpcKy'](createServer,(_0x56b4f7,_0x28e2e0)=>{const _0xcfe1ff=_0x3cd71e,_0x3f6110=new URL(_0x56b4f7[_0xcfe1ff(0xcd)]??'/',_0xcfe1ff(0xf4)+CALLBACK_PORT);if(_0x3f6110['pathname']!==_0xcfe1ff(0xf0)){_0x28e2e0['writeHead'](0x194),_0x28e2e0[_0xcfe1ff(0x115)](_0x231d9a[_0xcfe1ff(0xe0)]);return;}const _0x522bde=_0x3f6110[_0xcfe1ff(0x11c)]['get'](_0x231d9a['LpaTc']),_0xbe158d=_0x3f6110['searchParams'][_0xcfe1ff(0x133)](_0xcfe1ff(0x147)),_0x3b1721=_0x3f6110[_0xcfe1ff(0x11c)]['get']('error');if(_0x3b1721){const _0xdf6a26=_0x3f6110[_0xcfe1ff(0x11c)][_0xcfe1ff(0x133)](_0xcfe1ff(0x13a))??_0x3b1721;_0x28e2e0['writeHead'](0xc8,{'Content-Type':_0x231d9a['xFtDG']}),_0x28e2e0[_0xcfe1ff(0x115)](_0xcfe1ff(0x14a)+_0xdf6a26+_0xcfe1ff(0x112)),_0x231d9a['iNeiq'](clearTimeout,_0x86623),_0x396201(),_0x231d9a[_0xcfe1ff(0x126)](_0x426805,new Error(_0xcfe1ff(0x132)+_0xdf6a26));return;}if(!_0x522bde||_0xbe158d!==_0x5d0a01){_0x28e2e0[_0xcfe1ff(0xe2)](0x190,{'Content-Type':_0x231d9a['xFtDG']}),_0x28e2e0[_0xcfe1ff(0x115)](_0x231d9a[_0xcfe1ff(0x13b)]);return;}_0x28e2e0['writeHead'](0xc8,{'Content-Type':_0x231d9a[_0xcfe1ff(0xc3)]}),_0x28e2e0[_0xcfe1ff(0x115)](_0x231d9a[_0xcfe1ff(0x10b)]),_0x231d9a[_0xcfe1ff(0x121)](clearTimeout,_0x86623),_0x396201(),_0xae7b5(_0x522bde);});_0x5e8fe5[_0x3cd71e(0x148)](CALLBACK_PORT,_0x3cd71e(0x103));});}async function openBrowser(_0x12a5f3){const _0x17ffc4=_0xa3d572,_0x186d71={'aNLbo':function(_0x56ec4a,_0x1db4e8){return _0x56ec4a===_0x1db4e8;},'Uilro':_0x17ffc4(0xc2),'WLzhT':_0x17ffc4(0xc6),'zTnqd':'start','imHPX':'xdg-open'},_0x288d21=_0x186d71[_0x17ffc4(0x123)](process['platform'],_0x186d71['Uilro'])?_0x186d71['WLzhT']:process['platform']==='win32'?_0x186d71['zTnqd']:_0x186d71[_0x17ffc4(0xcb)];exec(_0x288d21+'\x20\x22'+_0x12a5f3+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x533802=_0xa3d572,_0x35e1fd={'CXRRd':function(_0x4f7c29,_0x3cfe65){return _0x4f7c29!==_0x3cfe65;}};try{const _0x1ad1ee=JSON['parse'](await readFile(TOKEN_CACHE_PATH,_0x533802(0x155)));if(_0x1ad1ee['origin']&&_0x35e1fd['CXRRd'](_0x1ad1ee[_0x533802(0x139)],currentOrigin))return null;if(_0x1ad1ee['expiresAt']&&Date[_0x533802(0x119)]()>_0x1ad1ee[_0x533802(0xeb)])return null;return _0x1ad1ee[_0x533802(0xf9)]??null;}catch{return null;}}async function saveCachedToken(_0x5b24cf,_0x53a800,_0x208002){const _0x2f3133=_0xa3d572,_0x1dfba8={'KKBfz':function(_0x153c88){return _0x153c88();},'XPkwK':function(_0x4b3fbd,_0x459b07,_0x4ecde7,_0x462a6a){return _0x4b3fbd(_0x459b07,_0x4ecde7,_0x462a6a);}},_0x1d95ee=await loadCachedData(),_0x36a39b={..._0x1d95ee,'origin':currentOrigin,'accessToken':_0x5b24cf,'refreshToken':_0x53a800??_0x1d95ee?.['refreshToken'],'expiresAt':_0x208002?Date['now']()+_0x208002*0x3e8:undefined};await mkdir(join(_0x1dfba8[_0x2f3133(0xde)](homedir),'.ranger'),{'recursive':!![]}),await _0x1dfba8['XPkwK'](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x36a39b),{'mode':0x180});}async function loadCachedClient(){const _0x8eed6=_0xa3d572,_0xceb6f0={'yiXfm':function(_0x2c0118){return _0x2c0118();}},_0x58f8a3=await _0xceb6f0['yiXfm'](loadCachedData);if(_0x58f8a3?.[_0x8eed6(0x139)]&&_0x58f8a3[_0x8eed6(0x139)]!==currentOrigin)return null;return _0x58f8a3?.[_0x8eed6(0xce)]?{'clientId':_0x58f8a3[_0x8eed6(0xce)],'clientSecret':_0x58f8a3[_0x8eed6(0xfb)]}:null;}async function clearCachedClient(){const _0x4f826f=_0xa3d572,_0x155551=await loadCachedData();if(!_0x155551)return;const {clientId:_0x1ba493,clientSecret:_0x205838,..._0x5b7be3}=_0x155551;await writeFile(TOKEN_CACHE_PATH,JSON[_0x4f826f(0xc5)](_0x5b7be3),{'mode':0x180});}async function saveCachedClient(_0x333667,_0x27600e){const _0x18032a=_0xa3d572,_0x47e79e={'uzYdm':function(_0x502e09,_0x4c67e0,_0x662bbf){return _0x502e09(_0x4c67e0,_0x662bbf);},'DiJwt':function(_0x3fe96d){return _0x3fe96d();},'DLCXV':'.ranger'},_0x352481=await loadCachedData(),_0x5ef9e1={..._0x352481,'origin':currentOrigin,'accessToken':_0x352481?.[_0x18032a(0xf9)]??'','clientId':_0x333667,'clientSecret':_0x27600e};await _0x47e79e['uzYdm'](mkdir,_0x47e79e[_0x18032a(0x127)](join,_0x47e79e['DiJwt'](homedir),_0x47e79e[_0x18032a(0xf3)]),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x18032a(0xc5)](_0x5ef9e1),{'mode':0x180});}async function loadCachedData(){const _0x508667=_0xa3d572,_0xf38c7d={'XufDw':'utf-8'};try{return JSON['parse'](await readFile(TOKEN_CACHE_PATH,_0xf38c7d[_0x508667(0xcf)]));}catch{return null;}}async function parseResponse(_0x823403){const _0x4a765a=_0xa3d572,_0x4647ee={'StEMe':_0x4a765a(0x111),'pfqxM':'text/event-stream','WdDbA':'data:','sIIyD':function(_0x4f36c6,_0x1561b2){return _0x4f36c6!==_0x1561b2;},'ziGNz':_0x4a765a(0x117)},_0x2c815c=_0x823403['headers'][_0x4a765a(0x133)](_0x4647ee[_0x4a765a(0xe1)])??'';if(_0x2c815c[_0x4a765a(0xcc)](_0x4647ee['pfqxM'])){const _0x1c8c7c=await _0x823403[_0x4a765a(0x146)]();for(const _0x216136 of _0x1c8c7c[_0x4a765a(0xe8)]('\x0a')){const _0x3aec83=_0x216136['trim']();if(_0x3aec83[_0x4a765a(0x105)]('data:')){const _0x40b5a8=_0x3aec83[_0x4a765a(0x125)](_0x4647ee[_0x4a765a(0x114)]['length'])[_0x4a765a(0xd6)]();if(!_0x40b5a8)continue;try{const _0x456f48=JSON['parse'](_0x40b5a8);if(_0x4647ee['sIIyD'](_0x456f48['id'],undefined)||_0x456f48['error'])return _0x456f48;}catch{}}}throw new Error(_0x4647ee['ziGNz']);}return _0x823403['json']();}function extractToken(_0x5ac1a9){const _0x27a731=_0xa3d572,_0x53e2ff={'ARVJS':'string','ScPpF':function(_0x8cc253,_0x235292){return _0x8cc253===_0x235292;}};if(!_0x5ac1a9)return null;const _0x1e0055=_0x5ac1a9['structuredContent'];if(_0x1e0055?.['token']&&typeof _0x1e0055[_0x27a731(0x135)]===_0x53e2ff[_0x27a731(0x102)])return _0x1e0055['token'];if(_0x5ac1a9[_0x27a731(0xdf)]){const _0x127096=_0x5ac1a9[_0x27a731(0x13f)];throw new Error(_0x27a731(0x158)+(_0x127096?.[0x0]?.['text']??_0x27a731(0x12a)));}const _0x17fd59=_0x5ac1a9['content'];if(_0x17fd59)for(const _0x410d84 of _0x17fd59){if(_0x53e2ff[_0x27a731(0x13c)](_0x410d84['type'],'text')&&_0x410d84['text']){try{const _0x1a84df=JSON['parse'](_0x410d84['text']);if(typeof _0x1a84df?.['token']===_0x53e2ff['ARVJS'])return _0x1a84df[_0x27a731(0x135)];}catch{}const _0x32651d=_0x410d84[_0x27a731(0x146)]['match'](/(rngr_[A-Za-z0-9_-]+)/);if(_0x32651d)return _0x32651d[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(_0x5f37cf,_0x31c245){const _0x23758b=_0x4d50,_0x205a70=_0x5f37cf();while(!![]){try{const _0x37ed9a=parseInt(_0x23758b(0xac))/0x1*(-parseInt(_0x23758b(0x8d))/0x2)+parseInt(_0x23758b(0xa3))/0x3+parseInt(_0x23758b(0x7e))/0x4*(-parseInt(_0x23758b(0xad))/0x5)+parseInt(_0x23758b(0x8c))/0x6+parseInt(_0x23758b(0x98))/0x7+-parseInt(_0x23758b(0xab))/0x8*(-parseInt(_0x23758b(0x90))/0x9)+-parseInt(_0x23758b(0xae))/0xa;if(_0x37ed9a===_0x31c245)break;else _0x205a70['push'](_0x205a70['shift']());}catch(_0x482514){_0x205a70['push'](_0x205a70['shift']());}}}(_0x29b7,0xc7020));import{join}from'path';import{existsSync}from'fs';import _0x481de5 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x4d50(_0x3a3b1b,_0x210228){_0x3a3b1b=_0x3a3b1b-0x7d;const _0x29b764=_0x29b7();let _0x4d5056=_0x29b764[_0x3a3b1b];return _0x4d5056;}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x6ba8b4){const _0x331039=_0x4d50,_0x2cd4cb={'nUDbY':_0x331039(0x91),'jXnoA':function(_0x48d535,_0x323a4b,_0x2f6f87){return _0x48d535(_0x323a4b,_0x2f6f87);},'HfItl':_0x331039(0xa0),'OtVcW':'list','mlAeA':'Where\x20should\x20the\x20plugin\x20be\x20installed?','zbiOu':'user','qGIpr':function(_0x12d796,_0x53703a){return _0x12d796(_0x53703a);},'rCmFy':_0x331039(0x93),'GwEQB':function(_0x1886d1,_0x4c80fd){return _0x1886d1(_0x4c80fd);},'MNFFs':_0x331039(0x82),'ttqHg':_0x331039(0x8b),'ARbyI':_0x331039(0xb1),'qDFWJ':'--scope','FhLdG':function(_0x4d4cce,_0x4dc8c2){return _0x4d4cce===_0x4dc8c2;},'wpjFT':function(_0x39bb1d){return _0x39bb1d();},'OExVd':'\x0aYou\x20can\x20install\x20manually\x20with:','AsMXM':_0x331039(0x9d),'QrHkU':_0x331039(0x9a),'LSFXj':function(_0x42e3ab,_0x24e410){return _0x42e3ab===_0x24e410;},'VPkmc':function(_0x52297e){return _0x52297e();},'zhjZX':'already\x20enabled','afdTP':_0x331039(0xa5)},_0x7e973f=await isPluginInstalled('ranger@trailhead');if(_0x7e973f)return console[_0x331039(0xa9)](_0x2cd4cb['nUDbY']),![];const _0x24f79b=existsSync(_0x2cd4cb[_0x331039(0x8e)](join,getProjectRoot(),'.claude'));let _0x4beaa5;if(_0x6ba8b4)_0x4beaa5=_0x6ba8b4;else{if(_0x24f79b)_0x4beaa5=_0x2cd4cb['HfItl'];else{console[_0x331039(0xa9)](_0x331039(0xb0));const _0x171462=await _0x481de5[_0x331039(0x97)]([{'type':_0x2cd4cb['OtVcW'],'name':_0x331039(0x89),'message':_0x2cd4cb[_0x331039(0xb2)],'choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':_0x2cd4cb[_0x331039(0xa2)]},{'name':_0x331039(0xa6),'value':_0x2cd4cb[_0x331039(0xaf)]}],'default':'user'}]);_0x4beaa5=_0x171462[_0x331039(0x89)];}}console[_0x331039(0xa9)]('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x4beaa5+'\x20level)...\x0a');const _0x306e6f=await _0x2cd4cb['qGIpr'](isMarketplaceAdded,_0x2cd4cb[_0x331039(0xa1)]);let _0x400af8=_0x306e6f;if(_0x306e6f)console[_0x331039(0xa9)](_0x331039(0x9f));else{const _0x49be05=await _0x2cd4cb['GwEQB'](runClaudeCommand,['plugin',_0x331039(0x8f),_0x331039(0x8a),_0x331039(0x9c)]);!_0x49be05['success']?(console['error'](_0x331039(0x7f),_0x49be05[_0x331039(0x87)]),console['log']('\x0aYou\x20can\x20install\x20manually\x20with:'),console['log'](_0x2cd4cb['MNFFs']),console[_0x331039(0xa9)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x4beaa5)):_0x400af8=!![];}if(_0x400af8){const _0xa2be9d=await runClaudeCommand([_0x2cd4cb[_0x331039(0x92)],'install',_0x2cd4cb[_0x331039(0x9b)],_0x2cd4cb['qDFWJ'],_0x4beaa5],{'cwd':_0x2cd4cb[_0x331039(0x83)](_0x4beaa5,'project')?_0x2cd4cb['wpjFT'](getProjectRoot):undefined});if(!_0xa2be9d['success'])console['error'](_0x331039(0xa8),_0xa2be9d['error']),console[_0x331039(0xa9)](_0x2cd4cb[_0x331039(0x99)]),console['log'](_0x331039(0x94)+_0x4beaa5);else{console[_0x331039(0xa9)](_0x2cd4cb['AsMXM']);const _0x52fddb=[_0x2cd4cb['ttqHg'],_0x2cd4cb[_0x331039(0x81)],_0x331039(0xb1)];_0x4beaa5===_0x2cd4cb[_0x331039(0xaf)]&&_0x52fddb['push'](_0x2cd4cb['qDFWJ'],_0x2cd4cb['HfItl']);const _0x103167=await runClaudeCommand(_0x52fddb,{'captureOutput':!![],'cwd':_0x2cd4cb['LSFXj'](_0x4beaa5,_0x331039(0xa0))?_0x2cd4cb['VPkmc'](getProjectRoot):undefined}),_0x1f680d=_0x103167['output']?.['includes'](_0x2cd4cb[_0x331039(0x80)]);!_0x103167[_0x331039(0xa7)]&&!_0x1f680d?console['error'](_0x331039(0x7d),_0x103167[_0x331039(0x87)]):console['log'](_0x2cd4cb[_0x331039(0x9e)]);}}return!![];}function _0x29b7(){const _0x15a154=['ranger-testing/trailhead','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','afdTP','✓\x20Marketplace\x20already\x20added','project','rCmFy','zbiOu','3180057YeHVtz','sKFJx','✓\x20Claude\x20Code\x20plugin\x20enabled','Project\x20(shared\x20with\x20team\x20via\x20git)','success','❌\x20Failed\x20to\x20install\x20plugin:','log','user','8GFIhQx','1nPsVdV','35zhLlhC','12942160nUluni','HfItl','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','ranger@trailhead','mlAeA','yeLKr','⚠\x20Failed\x20to\x20enable\x20plugin:','784816Wflpsv','❌\x20Failed\x20to\x20add\x20marketplace:','zhjZX','QrHkU','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','FhLdG','OIttz','confirm','.claude','error','bLWEV','pluginScope','add','plugin','3681684MpuvDb','385778vBvhRy','jXnoA','marketplace','9664587xSZtzA','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','ttqHg','trailhead','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','Would\x20you\x20like\x20to\x20install\x20skills?','HrJdu','prompt','6497351ojCylL','OExVd','enable','ARbyI'];_0x29b7=function(){return _0x15a154;};return _0x29b7();}export async function ensureClaudeSkills(_0x522115){const _0x3b40f5=_0x4d50,_0x1471b6={'OIttz':function(_0x508d53,_0x2c2892,_0x49007b,_0x2ac87c){return _0x508d53(_0x2c2892,_0x49007b,_0x2ac87c);},'yeLKr':'ranger','HrJdu':function(_0x4dbf21,_0x301606){return _0x4dbf21(_0x301606);},'vgqYq':function(_0x5a7415,_0x42f0e4){return _0x5a7415||_0x42f0e4;},'sKFJx':function(_0xd2f992,_0x31749c){return _0xd2f992(_0x31749c);},'cZRRo':function(_0x1f0bd5,_0x3839f9,_0x3421c2){return _0x1f0bd5(_0x3839f9,_0x3421c2);},'aRSFb':function(_0x3732a3){return _0x3732a3();},'NzyRI':_0x3b40f5(0x86),'bLWEV':_0x3b40f5(0x95)},_0x181304=existsSync(_0x1471b6[_0x3b40f5(0x84)](join,getSkillsDir(_0x3b40f5(0xaa)),_0x1471b6[_0x3b40f5(0xb3)],'SKILL.md')),_0x207e51=_0x1471b6['HrJdu'](existsSync,_0x1471b6['OIttz'](join,_0x1471b6['HrJdu'](getSkillsDir,_0x3b40f5(0xa0)),_0x1471b6[_0x3b40f5(0xb3)],'SKILL.md'));if(_0x1471b6['vgqYq'](_0x181304,_0x207e51))return console[_0x3b40f5(0xa9)]('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0xd8bb66=_0x1471b6[_0x3b40f5(0xa4)](existsSync,_0x1471b6['cZRRo'](join,_0x1471b6['aRSFb'](getProjectRoot),_0x1471b6['NzyRI']));let _0x3fb3a3=!![];if(_0x522115)await _0x1471b6[_0x3b40f5(0x96)](skillup,{'autoInstall':_0x522115,'suppressUsage':!![]});else{if(_0xd8bb66)await _0x1471b6[_0x3b40f5(0xa4)](skillup,{'autoInstall':'project','suppressUsage':!![]});else{const _0xd21e73=await _0x481de5[_0x3b40f5(0x97)]([{'type':_0x3b40f5(0x85),'name':'wantsSkillup','message':_0x1471b6[_0x3b40f5(0x88)],'default':!![]}]);_0x3fb3a3=_0xd21e73['wantsSkillup'],_0x3fb3a3&&await skillup({'suppressUsage':!![]});}}return _0x3fb3a3;}
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(_0x42cf65,_0x2c80db){const _0x13f113=_0x20c7,_0x4baf76=_0x42cf65();while(!![]){try{const _0xa6f309=parseInt(_0x13f113(0xd9))/0x1+-parseInt(_0x13f113(0xd3))/0x2+parseInt(_0x13f113(0xc4))/0x3*(parseInt(_0x13f113(0xcc))/0x4)+parseInt(_0x13f113(0xc8))/0x5*(parseInt(_0x13f113(0xd2))/0x6)+-parseInt(_0x13f113(0xd1))/0x7+parseInt(_0x13f113(0xc3))/0x8+parseInt(_0x13f113(0xcb))/0x9*(-parseInt(_0x13f113(0xd6))/0xa);if(_0xa6f309===_0x2c80db)break;else _0x4baf76['push'](_0x4baf76['shift']());}catch(_0x2f27e8){_0x4baf76['push'](_0x4baf76['shift']());}}}(_0x2a70,0x3b0ce));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';function _0x2a70(){const _0xdb5313=['$schema','pluginScope','230424hUSdyN','tBXBb','plugin','user','project','Wgtzp','parse','list','2889384BaRiqu','52413BwgBqL','error','cWhNJ','\x0a📦\x20OpenCode\x20Plugin\x0a','10GTRcxD','isArray','Project\x20(shared\x20with\x20team\x20via\x20git)','1454049pDEhds','24AMImaQ','✓\x20OpenCode\x20plugin\x20already\x20configured','oIwSa','jEngV','duDAY','1832215OCiSGv','1303338HuXcaG','285142fihGoC','utf-8','User\x20(available\x20in\x20all\x20your\x20projects)','30UNPLeH'];_0x2a70=function(){return _0xdb5313;};return _0x2a70();}function _0x20c7(_0x99b2ba,_0x68ad6e){_0x99b2ba=_0x99b2ba-0xc0;const _0x2a707a=_0x2a70();let _0x20c7ee=_0x2a707a[_0x99b2ba];return _0x20c7ee;}import _0x230cec from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x25cc78){const _0x39c4bb=_0x20c7,_0x257a3d={'RnaYp':function(_0x3368ca,_0x54958d){return _0x3368ca(_0x54958d);},'IUFAY':'project','cWhNJ':'opencode.json','nHLKH':_0x39c4bb(0xc2),'jEngV':'Where\x20should\x20the\x20plugin\x20be\x20installed?','uCnSM':_0x39c4bb(0xdc),'wNREk':_0x39c4bb(0xca),'tBXBb':'https://opencode.ai/config.json','oIwSa':'⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','duDAY':'Failed\x20to\x20read\x20opencode.json','Wgtzp':_0x39c4bb(0xcd),'yaOEi':function(_0x1f7197,_0x51fa8c,_0x2171d4){return _0x1f7197(_0x51fa8c,_0x2171d4);},'FyNhl':function(_0x48b970,_0x460ff9){return _0x48b970(_0x460ff9);}},_0x5f2f70=existsSync(join(_0x257a3d['RnaYp'](getOpencodeConfigDir,_0x257a3d['IUFAY']),_0x257a3d[_0x39c4bb(0xc6)]));let _0x32464e;if(_0x25cc78)_0x32464e=_0x25cc78;else{if(_0x5f2f70)_0x32464e=_0x39c4bb(0xdd);else{console['log'](_0x39c4bb(0xc7));const _0x46c687=await _0x230cec['prompt']([{'type':_0x257a3d['nHLKH'],'name':_0x39c4bb(0xd8),'message':_0x257a3d[_0x39c4bb(0xcf)],'choices':[{'name':_0x39c4bb(0xd5),'value':_0x257a3d['uCnSM']},{'name':_0x257a3d['wNREk'],'value':'project'}],'default':_0x39c4bb(0xdc)}]);_0x32464e=_0x46c687['pluginScope'];}}const _0x41b900=join(getOpencodeConfigDir(_0x32464e),_0x257a3d['cWhNJ']),_0x276c7c='@ranger-testing/opencode-plugin',_0x4da640=_0x257a3d[_0x39c4bb(0xda)];let _0x5cb77b={};if(existsSync(_0x41b900))try{const _0x4c9247=await readFile(_0x41b900,_0x39c4bb(0xd4));_0x5cb77b=JSON[_0x39c4bb(0xc1)](_0x4c9247);}catch(_0x49d6f4){return console[_0x39c4bb(0xc5)](_0x257a3d[_0x39c4bb(0xce)]),{'configured':![],'scope':_0x32464e,'error':_0x257a3d[_0x39c4bb(0xd0)],'details':_0x49d6f4};}const _0x37c552=Array[_0x39c4bb(0xc9)](_0x5cb77b[_0x39c4bb(0xdb)])?_0x5cb77b[_0x39c4bb(0xdb)]:[];if(_0x37c552['includes'](_0x276c7c))return console['log'](_0x257a3d[_0x39c4bb(0xc0)]),{'configured':![],'scope':_0x32464e};return _0x5cb77b[_0x39c4bb(0xd7)]=_0x5cb77b[_0x39c4bb(0xd7)]||_0x4da640,_0x5cb77b[_0x39c4bb(0xdb)]=[..._0x37c552,_0x276c7c],await _0x257a3d['yaOEi'](mkdir,_0x257a3d['FyNhl'](getOpencodeConfigDir,_0x32464e),{'recursive':!![]}),await writeFile(_0x41b900,JSON['stringify'](_0x5cb77b,null,0x2)+'\x0a'),console['log']('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0x32464e};}
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};}