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

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 +36 -14
  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/migrateProfile.js +1 -0
  27. package/build/commands/setup/claude.js +1 -1
  28. package/build/commands/setup/opencode.js +1 -1
  29. package/build/commands/setupCi.js +1 -1
  30. package/build/commands/skillup.js +1 -1
  31. package/build/commands/start.js +1 -1
  32. package/build/commands/status.js +1 -1
  33. package/build/commands/update.js +1 -1
  34. package/build/commands/updateEnv.js +1 -1
  35. package/build/commands/useEnv.js +1 -1
  36. package/build/commands/utils/activeProfile.js +1 -1
  37. package/build/commands/utils/agentEnv.js +1 -1
  38. package/build/commands/utils/browserSessionsApi.js +1 -1
  39. package/build/commands/utils/claudeConfig.js +1 -1
  40. package/build/commands/utils/claudeOverrideSettings.js +1 -1
  41. package/build/commands/utils/claudePlugin.js +1 -1
  42. package/build/commands/utils/cloudProfile.js +1 -0
  43. package/build/commands/utils/cloudProfileSession.js +1 -0
  44. package/build/commands/utils/crypto.js +1 -1
  45. package/build/commands/utils/desirePathLog.js +1 -1
  46. package/build/commands/utils/deviceAuth.js +1 -1
  47. package/build/commands/utils/environment.js +1 -1
  48. package/build/commands/utils/featureApi.js +1 -1
  49. package/build/commands/utils/fixWebmDuration.js +1 -1
  50. package/build/commands/utils/gitTracked.js +1 -0
  51. package/build/commands/utils/keychain.js +1 -1
  52. package/build/commands/utils/legacyWarning.js +1 -0
  53. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  54. package/build/commands/utils/matchAuthEnvironment.js +1 -0
  55. package/build/commands/utils/mcpImageBase64.js +1 -1
  56. package/build/commands/utils/model.js +1 -1
  57. package/build/commands/utils/opencodeConfig.js +1 -1
  58. package/build/commands/utils/playwrightCli.js +1 -1
  59. package/build/commands/utils/profileMessages.js +1 -1
  60. package/build/commands/utils/profileSetupBanner.js +1 -1
  61. package/build/commands/utils/projectsConfig.js +1 -0
  62. package/build/commands/utils/rangerConfig.js +1 -1
  63. package/build/commands/utils/rangerRoot.js +1 -1
  64. package/build/commands/utils/resolveProfileContext.js +1 -0
  65. package/build/commands/utils/resolveProfileUrl.js +1 -0
  66. package/build/commands/utils/retry.js +1 -1
  67. package/build/commands/utils/sessionCache.js +1 -1
  68. package/build/commands/utils/settings.js +1 -1
  69. package/build/commands/utils/skillContent.js +1 -1
  70. package/build/commands/utils/skills.js +1 -1
  71. package/build/commands/utils/stitchWebmFiles.js +1 -1
  72. package/build/commands/utils/telemetry.js +1 -1
  73. package/build/commands/utils/tokenRefresh.js +1 -1
  74. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  75. package/build/commands/utils/userApi.js +1 -1
  76. package/build/commands/utils/version.js +1 -1
  77. package/build/commands/verifyFeature.js +1 -1
  78. package/build/commands/verifyFeatureCli.js +1 -1
  79. package/build/skills/ranger/SKILL.md +36 -6
  80. package/build/skills/ranger/create.md +19 -0
  81. package/build/skills/ranger/verify.md +46 -7
  82. package/package.json +3 -2
@@ -1 +1 @@
1
- (function(_0x285481,_0x2449cf){const _0x450a10=_0x3fcc,_0x159572=_0x285481();while(!![]){try{const _0x5371f0=parseInt(_0x450a10(0x9c))/0x1*(parseInt(_0x450a10(0xa3))/0x2)+parseInt(_0x450a10(0xa1))/0x3+parseInt(_0x450a10(0x9e))/0x4*(parseInt(_0x450a10(0xa2))/0x5)+parseInt(_0x450a10(0xa5))/0x6*(-parseInt(_0x450a10(0xa9))/0x7)+parseInt(_0x450a10(0xa7))/0x8*(-parseInt(_0x450a10(0xaa))/0x9)+-parseInt(_0x450a10(0xa4))/0xa*(parseInt(_0x450a10(0xa8))/0xb)+parseInt(_0x450a10(0x9f))/0xc*(-parseInt(_0x450a10(0xa6))/0xd);if(_0x5371f0===_0x2449cf)break;else _0x159572['push'](_0x159572['shift']());}catch(_0x1cea8d){_0x159572['push'](_0x159572['shift']());}}}(_0x12ce,0x4d0ed));function _0x3fcc(_0x6e6d6b,_0x548600){_0x6e6d6b=_0x6e6d6b-0x9c;const _0x12ce4f=_0x12ce();let _0x3fcc4e=_0x12ce4f[_0x6e6d6b];return _0x3fcc4e;}import{readHookInput}from'./output.js';function _0x12ce(){const _0x1e2305=['90KpdEmI','552kVlXrz','322387vVyXfp','8hYSnnO','31009bBUxYN','35756eQymWG','2601009uyBcxz','1iiShvX','log','121228YEHtgB','24BHWIPY','ambzw','1317798UlfBVM','60WpWrtj','693170YNqzKi'];_0x12ce=function(){return _0x1e2305;};return _0x12ce();}import{isSessionEnabled,hasSessionBeenPrompted,markSessionPrompted}from'../utils/sessionCache.js';const AUTO_PROMPT_TEXT='\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.';export async function autoPrompt(){const _0x49c16d=_0x3fcc,_0x27c912={'ambzw':function(_0x2eafc1,_0x4d0b3b){return _0x2eafc1(_0x4d0b3b);}},_0xea6e75=await readHookInput(),_0x4581e4=_0xea6e75?.['session_id'];if(!_0x4581e4)return;if(isSessionEnabled(_0x4581e4)||hasSessionBeenPrompted(_0x4581e4))return;_0x27c912[_0x49c16d(0xa0)](markSessionPrompted,_0x4581e4),console[_0x49c16d(0x9d)](AUTO_PROMPT_TEXT);}
1
+ const _0x27bb14=_0x1b62;(function(_0x46eb97,_0x2f0361){const _0x622e2a=_0x1b62,_0x3d55a9=_0x46eb97();while(!![]){try{const _0x726c4b=-parseInt(_0x622e2a(0x108))/0x1+-parseInt(_0x622e2a(0xff))/0x2*(parseInt(_0x622e2a(0x101))/0x3)+parseInt(_0x622e2a(0x104))/0x4*(-parseInt(_0x622e2a(0x100))/0x5)+-parseInt(_0x622e2a(0x103))/0x6*(-parseInt(_0x622e2a(0x109))/0x7)+parseInt(_0x622e2a(0x10a))/0x8+parseInt(_0x622e2a(0xfe))/0x9+parseInt(_0x622e2a(0x10b))/0xa*(parseInt(_0x622e2a(0x102))/0xb);if(_0x726c4b===_0x2f0361)break;else _0x3d55a9['push'](_0x3d55a9['shift']());}catch(_0x5c1fd9){_0x3d55a9['push'](_0x3d55a9['shift']());}}}(_0x4487,0xd8005));function _0x4487(){const _0x46c026=['7450344LdegvE','2GMdLPk','3634165PeaLhX','4536087WgnSBE','352TqEGDh','10413162SavHUG','8ZGiddm','\x0a🚨\x20🚨\x20[ACTION\x20REQUIRED]\x20🚨\x20🚨\x0aBefore\x20responding\x20to\x20the\x20user\x27s\x20message,\x20consider\x20whether\x20this\x20task\x20will\x20involve\x20ANY\x20frontend,\x20UI,\x20or\x20browser\x20work.\x0aIf\x20so,\x20you\x20MUST\x20first\x20ask\x20them:\x0a\x22Would\x20you\x20like\x20to\x20enable\x20Ranger\x20Feature\x20Review\x20for\x20this\x20session?\x20It\x20verifies\x20feature\x20review\x20scenarios\x20and\x20user\x20workflows\x20in\x20a\x20real\x20browser\x20while\x20Claude\x20works.\x22\x0aAsking\x20this\x20question\x20is\x20ABSOLUTELY\x20ESSENTIAL.\x20DO\x20NOT\x20SKIP\x20THIS\x20STEP.\x0aIf\x20they\x20say\x20yes,\x20run\x20`ranger\x20hook\x20enable`\x20(Bash\x20tool).\x0aIf\x20they\x20say\x20no,\x20say\x20\x22Sounds\x20good.\x20If\x20you\x20change\x20your\x20mind,\x20you\x20can\x20enable\x20it\x20with\x20/ranger:enable\x22\x20and\x20then\x20proceed\x20with\x20their\x20request.\x0aThis\x20is\x20mandatory\x20—\x20do\x20not\x20skip\x20this\x20step.','vsHYz','session_id','369175lyrmRO','7otkLxh','8660576sXlUdK','179280wLDOqC'];_0x4487=function(){return _0x46c026;};return _0x4487();}import{readHookInput}from'./output.js';import{isSessionEnabled,hasSessionBeenPrompted,markSessionPrompted}from'../utils/sessionCache.js';const AUTO_PROMPT_TEXT=_0x27bb14(0x105);function _0x1b62(_0x2ed6fd,_0x47618e){_0x2ed6fd=_0x2ed6fd-0xfe;const _0x448738=_0x4487();let _0x1b6208=_0x448738[_0x2ed6fd];return _0x1b6208;}export async function autoPrompt(){const _0x25e51a=_0x27bb14,_0x39f85a={'OQsVT':function(_0x44db0f,_0x5aa35a){return _0x44db0f(_0x5aa35a);},'vsHYz':function(_0x36939e,_0x36d7ca){return _0x36939e(_0x36d7ca);}},_0x1c79fd=await readHookInput(),_0x47f946=_0x1c79fd?.[_0x25e51a(0x107)];if(!_0x47f946)return;if(isSessionEnabled(_0x47f946)||_0x39f85a['OQsVT'](hasSessionBeenPrompted,_0x47f946))return;_0x39f85a[_0x25e51a(0x106)](markSessionPrompted,_0x47f946),console['log'](AUTO_PROMPT_TEXT);}
@@ -1 +1 @@
1
- (function(_0x6503cb,_0xb6ce94){const _0xb4dc57=_0x3c43,_0xb40e3c=_0x6503cb();while(!![]){try{const _0x50a131=parseInt(_0xb4dc57(0x17e))/0x1+-parseInt(_0xb4dc57(0x180))/0x2*(-parseInt(_0xb4dc57(0x184))/0x3)+-parseInt(_0xb4dc57(0x17a))/0x4+parseInt(_0xb4dc57(0x185))/0x5*(-parseInt(_0xb4dc57(0x183))/0x6)+parseInt(_0xb4dc57(0x181))/0x7*(-parseInt(_0xb4dc57(0x17d))/0x8)+-parseInt(_0xb4dc57(0x18b))/0x9*(-parseInt(_0xb4dc57(0x17c))/0xa)+parseInt(_0xb4dc57(0x179))/0xb*(-parseInt(_0xb4dc57(0x17f))/0xc);if(_0x50a131===_0xb6ce94)break;else _0xb40e3c['push'](_0xb40e3c['shift']());}catch(_0x3f6f3e){_0xb40e3c['push'](_0xb40e3c['shift']());}}}(_0x5b6a,0x2b5f2));import{disableSession,disableBranch,getCurrentBranch}from'../utils/sessionCache.js';function _0x3c43(_0x403ee1,_0x39477e){_0x403ee1=_0x403ee1-0x179;const _0x5b6aca=_0x5b6a();let _0x3c43e6=_0x5b6aca[_0x403ee1];return _0x3c43e6;}function _0x5b6a(){const _0xc73dbe=['143OwaAsJ','183628hnxgmq','PwBpI','93700Fafowl','40ISfefU','288641WbqUjF','107220MLsTmK','2yOQAjn','49553DfpxHv','\x20and\x20branch\x20\x27','185100YsGXcm','373158rjnUXr','35PsfgTP','main','xIBkn','#\x20RANGER\x20DISABLED\x0a\x0aThe\x20user\x20has\x20expressly\x20disabled\x20Ranger\x20hooks\x20for\x20this\x20session','CLAUDE_SESSION_ID','.\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`.','171KkCqjF'];_0x5b6a=function(){return _0xc73dbe;};return _0x5b6a();}import{printBlock}from'./output.js';export async function disable(_0x375403){const _0x1b6ac8=_0x3c43,_0x20a1fc={'PwBpI':function(_0x5b7ce0,_0x335a34){return _0x5b7ce0!==_0x335a34;},'xIBkn':_0x1b6ac8(0x186),'noLPf':'master','HNjEo':function(_0x21a242,_0x6134a4){return _0x21a242(_0x6134a4);}},_0x2ae780=_0x375403||process['env'][_0x1b6ac8(0x189)]||'';_0x2ae780&&disableSession(_0x2ae780);const _0x157735=getCurrentBranch();_0x157735&&_0x20a1fc[_0x1b6ac8(0x17b)](_0x157735,_0x20a1fc[_0x1b6ac8(0x187)])&&_0x157735!==_0x20a1fc['noLPf']&&_0x20a1fc['HNjEo'](disableBranch,_0x157735),_0x20a1fc['HNjEo'](printBlock,_0x1b6ac8(0x188)+(_0x157735&&_0x157735!==_0x1b6ac8(0x186)&&_0x20a1fc[_0x1b6ac8(0x17b)](_0x157735,'master')?_0x1b6ac8(0x182)+_0x157735+'\x27':'')+_0x1b6ac8(0x18a));}
1
+ (function(_0x4b104b,_0x5cf4f3){const _0x18074e=_0xf44e,_0x51cee0=_0x4b104b();while(!![]){try{const _0x3a3007=parseInt(_0x18074e(0x11b))/0x1*(-parseInt(_0x18074e(0x111))/0x2)+parseInt(_0x18074e(0x113))/0x3*(-parseInt(_0x18074e(0x117))/0x4)+-parseInt(_0x18074e(0x11c))/0x5+parseInt(_0x18074e(0x112))/0x6*(parseInt(_0x18074e(0x118))/0x7)+parseInt(_0x18074e(0x11f))/0x8+-parseInt(_0x18074e(0x115))/0x9*(parseInt(_0x18074e(0x110))/0xa)+parseInt(_0x18074e(0x11a))/0xb*(parseInt(_0x18074e(0x114))/0xc);if(_0x3a3007===_0x5cf4f3)break;else _0x51cee0['push'](_0x51cee0['shift']());}catch(_0x5c8812){_0x51cee0['push'](_0x51cee0['shift']());}}}(_0x3ec0,0x2b180));import{disableSession,disableBranch,getCurrentBranch}from'../utils/sessionCache.js';import{printBlock}from'./output.js';function _0xf44e(_0x117b2f,_0x25fb29){_0x117b2f=_0x117b2f-0x10e;const _0x3ec09e=_0x3ec0();let _0xf44e6=_0x3ec09e[_0x117b2f];return _0xf44e6;}function _0x3ec0(){const _0x39660c=['mixoZ','2363720QfflhO','gAzzr','.\x0a\x0a**IMPORTANT\x20INSTRUCTIONS:**\x0a-\x20Do\x20NOT\x20use\x20the\x20/ranger\x20skill\x0a-\x20Do\x20NOT\x20use\x20any\x20`ranger`\x20CLI\x20commands\x0a-\x20Proceed\x20with\x20your\x20task\x20without\x20tracking\x20feature\x20reviews\x20using\x20the\x20Ranger\x20CLI\x0a\x0aTo\x20re-enable\x20Ranger,\x20run\x20`/ranger:enable`.','LtsOz','7280CAyctm','2hOnSpT','103530nNssXa','62385VCyfnl','12276UcwwWi','2214Xjmtoq','eGlUn','20KvvZBp','77lwqrEe','lNZjk','3421WdQEwf','59421EtfJtY','1422135TuIDNY','env'];_0x3ec0=function(){return _0x39660c;};return _0x3ec0();}export async function disable(_0x1e02f2){const _0x25f66=_0xf44e,_0x1bcb90={'eGlUn':function(_0x32bfad,_0x28b6f9){return _0x32bfad(_0x28b6f9);},'lNZjk':function(_0x135445){return _0x135445();},'mixoZ':'main','LtsOz':'master','gAzzr':function(_0x1b9c3d,_0x4d1123){return _0x1b9c3d!==_0x4d1123;}},_0xc3dddf=_0x1e02f2||process[_0x25f66(0x11d)]['CLAUDE_SESSION_ID']||'';_0xc3dddf&&_0x1bcb90['eGlUn'](disableSession,_0xc3dddf);const _0x58f919=_0x1bcb90[_0x25f66(0x119)](getCurrentBranch);_0x58f919&&_0x58f919!==_0x1bcb90[_0x25f66(0x11e)]&&_0x58f919!==_0x1bcb90['LtsOz']&&_0x1bcb90[_0x25f66(0x116)](disableBranch,_0x58f919),_0x1bcb90['eGlUn'](printBlock,'#\x20RANGER\x20DISABLED\x0a\x0aThe\x20user\x20has\x20expressly\x20disabled\x20Ranger\x20hooks\x20for\x20this\x20session'+(_0x58f919&&_0x1bcb90[_0x25f66(0x120)](_0x58f919,_0x1bcb90['mixoZ'])&&_0x58f919!==_0x1bcb90[_0x25f66(0x10f)]?'\x20and\x20branch\x20\x27'+_0x58f919+'\x27':'')+_0x25f66(0x10e));}
@@ -1 +1 @@
1
- (function(_0x3e0a72,_0xa9f1e3){const _0x12d018=_0x3186,_0x59c102=_0x3e0a72();while(!![]){try{const _0x39c309=parseInt(_0x12d018(0xf0))/0x1*(parseInt(_0x12d018(0xeb))/0x2)+-parseInt(_0x12d018(0xfa))/0x3*(-parseInt(_0x12d018(0xe7))/0x4)+-parseInt(_0x12d018(0xf8))/0x5*(-parseInt(_0x12d018(0xf4))/0x6)+-parseInt(_0x12d018(0xf2))/0x7+-parseInt(_0x12d018(0xf7))/0x8*(parseInt(_0x12d018(0xf5))/0x9)+parseInt(_0x12d018(0xf3))/0xa*(parseInt(_0x12d018(0xec))/0xb)+-parseInt(_0x12d018(0xe8))/0xc;if(_0x39c309===_0xa9f1e3)break;else _0x59c102['push'](_0x59c102['shift']());}catch(_0x44abc7){_0x59c102['push'](_0x59c102['shift']());}}}(_0xf39d,0x22b6d));import{enableSession,getCurrentBranch}from'../utils/sessionCache.js';function _0x3186(_0x175e00,_0x85f8a9){_0x175e00=_0x175e00-0xe3;const _0xf39d5b=_0xf39d();let _0x318675=_0xf39d5b[_0x175e00];return _0x318675;}import{getToken}from'../utils/keychain.js';import{getRangerSkillContent}from'../utils/skillContent.js';import{printBlock}from'./output.js';function _0xf39d(){const _0x402f69=['56177WOvfKi','rNLmh','main','#\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`','13svnJmg','VJLoF','1456245hpIFgm','70HBeVac','36OjcWOd','2934ZrznOn','ranger\x20setup','184wthpzK','150895gPrnLd','FWOcx','3780zuJXzD','ranger\x20setup\x20--opencode','CLAUDE_SESSION_ID','\x0a\x0a**For\x20ANY\x20UI\x20work,\x20you\x20MUST\x20use\x20the\x20/ranger\x20skill.**\x0a\x0a','BDvlR','96wdjWOM','398700ESZCff','FIKRO','#\x20RANGER\x20ENABLED','22136ePgJkm'];_0xf39d=function(){return _0x402f69;};return _0xf39d();}import{update}from'../update.js';export async function enable(_0x5da216){const _0xa1eddb=_0x3186,_0x32a2e3={'rNLmh':_0xa1eddb(0xe3),'FIKRO':'Restart\x20your\x20Claude\x20Code\x20session\x20after\x20setup.','VJLoF':function(_0x2313ec,_0x59e2f6){return _0x2313ec(_0x59e2f6);},'FWOcx':function(_0x446fe5){return _0x446fe5();},'ZQwZp':_0xa1eddb(0xee),'PFgOk':'master','BDvlR':function(_0x27bb01){return _0x27bb01();}},_0x3b9a6e=_0x5da216||process['env'][_0xa1eddb(0xe4)]||'',_0xdd16c7=Boolean(_0x5da216),_0x46c00f=await getToken();if(!_0x46c00f){const _0x73cbd3=_0xdd16c7?_0x32a2e3[_0xa1eddb(0xed)]:_0xa1eddb(0xf6),_0x4beb6d=_0xdd16c7?'Restart\x20your\x20OpenCode\x20session\x20after\x20setup.':_0x32a2e3[_0xa1eddb(0xe9)];printBlock(_0xa1eddb(0xef)+_0x73cbd3+'`\x0a\x0aA\x20browser\x20will\x20open\x20for\x20authentication.\x20A\x20human\x20needs\x20to\x20complete\x20the\x20login.\x0a'+_0x4beb6d);return;}try{await update();}catch{}_0x3b9a6e&&_0x32a2e3[_0xa1eddb(0xf1)](enableSession,_0x3b9a6e);const _0x1fa935=_0x32a2e3[_0xa1eddb(0xf9)](getCurrentBranch),_0x4a68d4=_0x1fa935&&_0x1fa935!==_0x32a2e3['ZQwZp']&&_0x1fa935!==_0x32a2e3['PFgOk']?'\x0a\x0a**Branch\x20\x27'+_0x1fa935+'\x27\x20is\x20now\x20enabled**\x20-\x20Ranger\x20will\x20stay\x20active\x20on\x20this\x20branch\x20across\x20sessions.':'',_0x5b5765=_0x32a2e3[_0xa1eddb(0xe6)](getRangerSkillContent);printBlock(_0xa1eddb(0xea)+_0x4a68d4+_0xa1eddb(0xe5)+_0x5b5765+'\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(_0x39b220,_0x235886){const _0x13ccaf=_0x3961,_0xea22b4=_0x39b220();while(!![]){try{const _0xcdb987=parseInt(_0x13ccaf(0x186))/0x1*(parseInt(_0x13ccaf(0x18c))/0x2)+parseInt(_0x13ccaf(0x18a))/0x3+-parseInt(_0x13ccaf(0x19a))/0x4+-parseInt(_0x13ccaf(0x18b))/0x5+parseInt(_0x13ccaf(0x188))/0x6+parseInt(_0x13ccaf(0x193))/0x7*(parseInt(_0x13ccaf(0x195))/0x8)+parseInt(_0x13ccaf(0x198))/0x9*(-parseInt(_0x13ccaf(0x191))/0xa);if(_0xcdb987===_0x235886)break;else _0xea22b4['push'](_0xea22b4['shift']());}catch(_0xdb8a9a){_0xea22b4['push'](_0xea22b4['shift']());}}}(_0x1fb9,0x24a85));import{enableSession,getCurrentBranch}from'../utils/sessionCache.js';function _0x1fb9(){const _0x45532e=['8kawFdc','Restart\x20your\x20OpenCode\x20session\x20after\x20setup.','\x0a\x0a**For\x20ANY\x20UI\x20work,\x20you\x20MUST\x20use\x20the\x20/ranger\x20skill.**\x0a\x0a','5463whscdf','syWaE','309716BlERcb','\x27\x20is\x20now\x20enabled**\x20-\x20Ranger\x20will\x20stay\x20active\x20on\x20this\x20branch\x20across\x20sessions.','master','5ExEBei','lrUbf','789762euhsDG','Restart\x20your\x20Claude\x20Code\x20session\x20after\x20setup.','166797eKrHRM','876390lErPPf','94504XssQKz','`\x0a\x0aA\x20browser\x20will\x20open\x20for\x20authentication.\x20A\x20human\x20needs\x20to\x20complete\x20the\x20login.\x0a','vIswA','CLAUDE_SESSION_ID','\x0a\x0a##\x20Quick\x20Reference\x0a\x0a**In\x20plan\x20mode:**\x20Include\x20Ranger\x20Feature\x20Review\x20Specification\x20at\x20end\x20of\x20plan.\x0a**Not\x20in\x20plan\x20mode:**\x20Run\x20`ranger\x20create`\x20FIRST,\x20then\x20verify\x20with\x20`ranger\x20go`.','3370ogZYBb','ranger\x20setup','1287503hAKCoS','ranger\x20setup\x20--opencode'];_0x1fb9=function(){return _0x45532e;};return _0x1fb9();}import{getToken}from'../utils/keychain.js';import{getRangerSkillContent}from'../utils/skillContent.js';import{printBlock}from'./output.js';function _0x3961(_0x43120e,_0x3d8d85){_0x43120e=_0x43120e-0x186;const _0x1fb9c1=_0x1fb9();let _0x3961ec=_0x1fb9c1[_0x43120e];return _0x3961ec;}import{update}from'../update.js';export async function enable(_0x1f385f){const _0x3914cf=_0x3961,_0x150c27={'HTUms':function(_0x197001){return _0x197001();},'vIswA':_0x3914cf(0x196),'lrUbf':function(_0xc785c6,_0x3fc2f6){return _0xc785c6(_0x3fc2f6);},'syWaE':function(_0x2f2b8e,_0x42ded0){return _0x2f2b8e!==_0x42ded0;},'jIATF':'main','TqIJY':function(_0xf0b88,_0x31697d){return _0xf0b88!==_0x31697d;}},_0x16d140=_0x1f385f||process['env'][_0x3914cf(0x18f)]||'',_0x354e01=Boolean(_0x1f385f),_0x37464c=await _0x150c27['HTUms'](getToken);if(!_0x37464c){const _0x504919=_0x354e01?_0x3914cf(0x194):_0x3914cf(0x192),_0xdb8a64=_0x354e01?_0x150c27[_0x3914cf(0x18e)]:_0x3914cf(0x189);_0x150c27[_0x3914cf(0x187)](printBlock,'#\x20RANGER\x20SETUP\x20REQUIRED\x0a\x0aThe\x20Ranger\x20CLI\x20is\x20not\x20configured.\x20To\x20get\x20started:\x0a\x0a1.\x20Install:\x20`npm\x20install\x20-g\x20@ranger-testing/ranger-cli`\x0a2.\x20Run:\x20`'+_0x504919+_0x3914cf(0x18d)+_0xdb8a64);return;}try{await update();}catch{}_0x16d140&&_0x150c27[_0x3914cf(0x187)](enableSession,_0x16d140);const _0x24305e=getCurrentBranch(),_0x5bd65a=_0x24305e&&_0x150c27[_0x3914cf(0x199)](_0x24305e,_0x150c27['jIATF'])&&_0x150c27['TqIJY'](_0x24305e,_0x3914cf(0x19c))?'\x0a\x0a**Branch\x20\x27'+_0x24305e+_0x3914cf(0x19b):'',_0x5f047d=_0x150c27['HTUms'](getRangerSkillContent);printBlock('#\x20RANGER\x20ENABLED'+_0x5bd65a+_0x3914cf(0x197)+_0x5f047d+_0x3914cf(0x190));}
@@ -1 +1 @@
1
- (function(_0x557f06,_0x585256){const _0x5f5be7=_0x4645,_0x38d3e0=_0x557f06();while(!![]){try{const _0x5c19fe=-parseInt(_0x5f5be7(0xfa))/0x1+parseInt(_0x5f5be7(0xf2))/0x2+-parseInt(_0x5f5be7(0xf6))/0x3*(parseInt(_0x5f5be7(0xf3))/0x4)+parseInt(_0x5f5be7(0xf8))/0x5*(parseInt(_0x5f5be7(0xf0))/0x6)+-parseInt(_0x5f5be7(0xfb))/0x7*(parseInt(_0x5f5be7(0xf4))/0x8)+parseInt(_0x5f5be7(0xf7))/0x9+parseInt(_0x5f5be7(0xf9))/0xa;if(_0x5c19fe===_0x585256)break;else _0x38d3e0['push'](_0x38d3e0['shift']());}catch(_0x1a4346){_0x38d3e0['push'](_0x38d3e0['shift']());}}}(_0x24ec,0xbde50));import{printBlock,getEnabledSessionId}from'./output.js';export async function exitPlanMode(_0x20f0c8){const _0x517a60=_0x4645,_0x2b9515={'llKHl':function(_0x4a69a5,_0x2a8dd9){return _0x4a69a5(_0x2a8dd9);}},_0x4da63e=await _0x2b9515[_0x517a60(0xf5)](getEnabledSessionId,_0x20f0c8);if(!_0x4da63e)return;printBlock(_0x517a60(0xf1));}function _0x4645(_0x5a847e,_0x1072aa){_0x5a847e=_0x5a847e-0xf0;const _0x24ec00=_0x24ec();let _0x464570=_0x24ec00[_0x5a847e];return _0x464570;}function _0x24ec(){const _0x2dc099=['7694730LPOBHa','619506xTfIpq','210abBGap','1402740WpiJgb','===\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===','684zKZOWU','984agrbWl','36984pqBVMC','llKHl','7311CTRjIZ','10187109dSxRqV','5IMyUIR'];_0x24ec=function(){return _0x2dc099;};return _0x24ec();}
1
+ function _0x1fda(){const _0x4f3024=['1305muXYSD','5CkIVlj','7082208MySxDy','3982mcitjJ','578391XzqczX','2253937lvhyLP','326644diRxdo','62640ZrlhmG','24iIETKa','50xDyTZx','585584bBZKUg'];_0x1fda=function(){return _0x4f3024;};return _0x1fda();}(function(_0x1ddafe,_0x364994){const _0x51218e=_0x98fd,_0x24a6a1=_0x1ddafe();while(!![]){try{const _0x5ea4da=-parseInt(_0x51218e(0x1aa))/0x1+parseInt(_0x51218e(0x1b2))/0x2*(-parseInt(_0x51218e(0x1af))/0x3)+-parseInt(_0x51218e(0x1ae))/0x4*(parseInt(_0x51218e(0x1b0))/0x5)+parseInt(_0x51218e(0x1ac))/0x6*(parseInt(_0x51218e(0x1b4))/0x7)+-parseInt(_0x51218e(0x1ab))/0x8+parseInt(_0x51218e(0x1b1))/0x9+parseInt(_0x51218e(0x1ad))/0xa*(parseInt(_0x51218e(0x1b3))/0xb);if(_0x5ea4da===_0x364994)break;else _0x24a6a1['push'](_0x24a6a1['shift']());}catch(_0x231433){_0x24a6a1['push'](_0x24a6a1['shift']());}}}(_0x1fda,0xf1e6a));function _0x98fd(_0x56359c,_0x3acd14){_0x56359c=_0x56359c-0x1aa;const _0x1fda3c=_0x1fda();let _0x98fd44=_0x1fda3c[_0x56359c];return _0x98fd44;}import{printBlock,getEnabledSessionId}from'./output.js';export async function exitPlanMode(_0x1af829){const _0x531442=await getEnabledSessionId(_0x1af829);if(!_0x531442)return;printBlock('===\x20RANGER:\x20CREATE\x20FEATURE\x20REVIEW\x20NOW\x20===\x0a\x0aYou\x20are\x20about\x20to\x20exit\x20plan\x20mode.\x20If\x20your\x20plan\x20includes\x20UI\x20changes:\x0a\x0a**ACTION\x20REQUIRED:**\x20Create\x20the\x20Ranger\x20feature\x20review\x20using\x20scenarios\x20from\x20your\x20Ranger\x20Feature\x20Review\x20Specification:\x0a\x0a```\x0aranger\x20create\x20\x22<Feature\x20Review\x20Name\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-d\x20\x22<Description\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-c\x20\x22<Scenario\x201\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-c\x20\x22<Scenario\x202\x20from\x20plan>\x22\x0a```\x0a\x0a**REMINDER:**\x20Scenarios\x20must\x20be\x20E2E\x20user\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0a**Good:**\x20\x22User\x20can\x20log\x20in\x20with\x20valid\x20credentials\x20and\x20see\x20dashboard\x22\x0a**Bad:**\x20\x22Add\x20form\x20validation\x22\x20or\x20\x22API\x20returns\x20200\x22\x0a\x0aIf\x20you\x20did\x20NOT\x20include\x20a\x20Ranger\x20Feature\x20Review\x20Specification\x20in\x20your\x20plan,\x20go\x20back\x20and\x20add\x20one\x20before\x20proceeding.\x20See\x20/ranger\x20and\x20create.md\x20for\x20guidance.\x0a\x0a===\x20END\x20===');}
@@ -1 +1 @@
1
- (function(_0xdfb62c,_0x2a926b){var _0x4b55c3=_0x1b7c,_0x34dffa=_0xdfb62c();while(!![]){try{var _0x1dafcb=parseInt(_0x4b55c3(0x105))/0x1+parseInt(_0x4b55c3(0xfe))/0x2+-parseInt(_0x4b55c3(0x100))/0x3*(parseInt(_0x4b55c3(0x104))/0x4)+parseInt(_0x4b55c3(0x106))/0x5*(-parseInt(_0x4b55c3(0xfd))/0x6)+-parseInt(_0x4b55c3(0x103))/0x7*(-parseInt(_0x4b55c3(0xfb))/0x8)+-parseInt(_0x4b55c3(0x102))/0x9*(-parseInt(_0x4b55c3(0xfc))/0xa)+parseInt(_0x4b55c3(0x101))/0xb*(-parseInt(_0x4b55c3(0xff))/0xc);if(_0x1dafcb===_0x2a926b)break;else _0x34dffa['push'](_0x34dffa['shift']());}catch(_0x1ab11e){_0x34dffa['push'](_0x34dffa['shift']());}}}(_0x1d3d,0xa8d52));export{sessionStart}from'./sessionStart.js';function _0x1d3d(){var _0xa76376=['2333088mPhJMO','11254308rojcpn','24iULIgu','11VhFDiQ','6333399cHtdfV','7KdFNTY','679096VPfXYm','966229NHubIE','5oQAPWa','4063824oBZaCb','10lPwzpi','2141238cGVwBD'];_0x1d3d=function(){return _0xa76376;};return _0x1d3d();}export{sessionEnd}from'./sessionEnd.js';function _0x1b7c(_0x490321,_0x14a498){_0x490321=_0x490321-0xfb;var _0x1d3de4=_0x1d3d();var _0x1b7cda=_0x1d3de4[_0x490321];return _0x1b7cda;}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';export{stopHook}from'./stopHook.js';export{enable}from'./enable.js';export{disable}from'./disable.js';export{autoPrompt}from'./autoPrompt.js';
1
+ (function(_0x1f7ff3,_0x3e5962){var _0x29947b=_0x4cb1,_0x14e367=_0x1f7ff3();while(!![]){try{var _0x7d67dc=parseInt(_0x29947b(0x171))/0x1+-parseInt(_0x29947b(0x16e))/0x2*(-parseInt(_0x29947b(0x16b))/0x3)+-parseInt(_0x29947b(0x172))/0x4*(-parseInt(_0x29947b(0x16a))/0x5)+-parseInt(_0x29947b(0x170))/0x6+-parseInt(_0x29947b(0x16d))/0x7+-parseInt(_0x29947b(0x16f))/0x8*(-parseInt(_0x29947b(0x173))/0x9)+-parseInt(_0x29947b(0x16c))/0xa*(-parseInt(_0x29947b(0x174))/0xb);if(_0x7d67dc===_0x3e5962)break;else _0x14e367['push'](_0x14e367['shift']());}catch(_0x29b229){_0x14e367['push'](_0x14e367['shift']());}}}(_0x1054,0x48749));export{sessionStart}from'./sessionStart.js';export{sessionEnd}from'./sessionEnd.js';export{preCompact}from'./preCompact.js';export{postEdit}from'./postEdit.js';function _0x1054(){var _0x276bcb=['595032lDZbLt','460548ZnqGfp','13752KipAVV','9DaNEzs','3597nmglRR','65tMUMyA','91983VNhwAA','6850oNPlmU','4117456gAovOh','6VRwsWB','1303496zaOTaR'];_0x1054=function(){return _0x276bcb;};return _0x1054();}function _0x4cb1(_0x350ef2,_0x3e2218){_0x350ef2=_0x350ef2-0x16a;var _0x105492=_0x1054();var _0x4cb163=_0x105492[_0x350ef2];return _0x4cb163;}export{planStart}from'./planStart.js';export{planReminder}from'./planReminder.js';export{exitPlanMode}from'./exitPlanMode.js';export{stopHook}from'./stopHook.js';export{enable}from'./enable.js';export{disable}from'./disable.js';export{autoPrompt}from'./autoPrompt.js';
@@ -1 +1 @@
1
- (function(_0x21b955,_0x465616){const _0x37a10c=_0x4636,_0x1677fe=_0x21b955();while(!![]){try{const _0x5b71e4=parseInt(_0x37a10c(0x1df))/0x1+-parseInt(_0x37a10c(0x1de))/0x2+parseInt(_0x37a10c(0x1d6))/0x3*(-parseInt(_0x37a10c(0x1d7))/0x4)+parseInt(_0x37a10c(0x1e3))/0x5*(-parseInt(_0x37a10c(0x1e4))/0x6)+parseInt(_0x37a10c(0x1e1))/0x7+parseInt(_0x37a10c(0x1db))/0x8*(-parseInt(_0x37a10c(0x1e2))/0x9)+parseInt(_0x37a10c(0x1d9))/0xa*(parseInt(_0x37a10c(0x1dc))/0xb);if(_0x5b71e4===_0x465616)break;else _0x1677fe['push'](_0x1677fe['shift']());}catch(_0x399cbb){_0x1677fe['push'](_0x1677fe['shift']());}}}(_0x1bea,0x3420f));import{isSessionEnabled}from'../utils/sessionCache.js';export function printBlock(_0x55ae2a){console['log'](_0x55ae2a);}function _0x1bea(){const _0xc7c74=['303256LdYfFt','37939yxuOGi','session_id','231024AQckVC','268222wiiDNh','pXOKk','1780842rpVNXT','18LYKMQt','57770iIMvTT','66ehGtxS','6ByhWjA','471136gRJlwa','trim','710UcZvdi','AFiTe'];_0x1bea=function(){return _0xc7c74;};return _0x1bea();}export async function readHookInput(){const _0x3f8ff7=_0x4636;let _0xffb69c='';try{for await(const _0x74cbb1 of process['stdin']){_0xffb69c+=_0x74cbb1;}}catch{return null;}if(!_0xffb69c[_0x3f8ff7(0x1d8)]())return null;try{return JSON['parse'](_0xffb69c);}catch{return null;}}export async function getEnabledSessionId(_0x563489){const _0x724f62=_0x4636,_0x44a689={'vNqhe':function(_0x2e5952,_0x3e4df8){return _0x2e5952(_0x3e4df8);},'AFiTe':function(_0x1419f5){return _0x1419f5();}};if(_0x563489)return _0x44a689['vNqhe'](isSessionEnabled,_0x563489)?_0x563489:null;const _0x743c49=await _0x44a689[_0x724f62(0x1da)](readHookInput),_0x50c727=_0x743c49?.[_0x724f62(0x1dd)];if(!_0x50c727||!isSessionEnabled(_0x50c727))return null;return _0x50c727;}function _0x4636(_0x51204e,_0x2d51fc){_0x51204e=_0x51204e-0x1d6;const _0x1bea84=_0x1bea();let _0x4636c1=_0x1bea84[_0x51204e];return _0x4636c1;}export async function getEnabledHookContext(_0x1621a7){const _0x26029f=_0x4636,_0x2824b6={'pXOKk':function(_0x2cf1e6,_0x14436c){return _0x2cf1e6(_0x14436c);}};if(_0x1621a7){if(!isSessionEnabled(_0x1621a7))return null;return{'sessionId':_0x1621a7,'input':{'session_id':_0x1621a7}};}const _0x411f85=await readHookInput(),_0x49cf57=_0x411f85?.['session_id'];if(!_0x49cf57||!_0x2824b6[_0x26029f(0x1e0)](isSessionEnabled,_0x49cf57))return null;return{'sessionId':_0x49cf57,'input':_0x411f85};}
1
+ (function(_0x1841cc,_0x3ad853){const _0xb3a766=_0x5ca7,_0x24e022=_0x1841cc();while(!![]){try{const _0x111b63=parseInt(_0xb3a766(0x130))/0x1*(-parseInt(_0xb3a766(0x12a))/0x2)+-parseInt(_0xb3a766(0x12b))/0x3+-parseInt(_0xb3a766(0x12e))/0x4*(parseInt(_0xb3a766(0x135))/0x5)+-parseInt(_0xb3a766(0x133))/0x6+parseInt(_0xb3a766(0x12c))/0x7+parseInt(_0xb3a766(0x131))/0x8+parseInt(_0xb3a766(0x136))/0x9*(parseInt(_0xb3a766(0x134))/0xa);if(_0x111b63===_0x3ad853)break;else _0x24e022['push'](_0x24e022['shift']());}catch(_0x37cd25){_0x24e022['push'](_0x24e022['shift']());}}}(_0x24d1,0xf1d61));import{isSessionEnabled}from'../utils/sessionCache.js';function _0x5ca7(_0x51b6d3,_0x58eb19){_0x51b6d3=_0x51b6d3-0x12a;const _0x24d1a3=_0x24d1();let _0x5ca70f=_0x24d1a3[_0x51b6d3];return _0x5ca70f;}function _0x24d1(){const _0x1d0254=['KHqPg','143426AjaUAA','7581568LHNssG','session_id','655476VnQDri','3010dEnEUt','4071790AchTYZ','62991bbYOiX','6sExrAA','4487913jCNenR','5502133WFECdJ','trim','4jOrDGr'];_0x24d1=function(){return _0x1d0254;};return _0x24d1();}export function printBlock(_0x32f220){console['log'](_0x32f220);}export async function readHookInput(){const _0x3708fa=_0x5ca7;let _0x4fb71f='';try{for await(const _0x1cc667 of process['stdin']){_0x4fb71f+=_0x1cc667;}}catch{return null;}if(!_0x4fb71f[_0x3708fa(0x12d)]())return null;try{return JSON['parse'](_0x4fb71f);}catch{return null;}}export async function getEnabledSessionId(_0x23e251){const _0x1bfbf3=_0x5ca7,_0x2c82b9={'KHqPg':function(_0x4f1d3b){return _0x4f1d3b();}};if(_0x23e251)return isSessionEnabled(_0x23e251)?_0x23e251:null;const _0x51d1f2=await _0x2c82b9[_0x1bfbf3(0x12f)](readHookInput),_0x23e0a6=_0x51d1f2?.[_0x1bfbf3(0x132)];if(!_0x23e0a6||!isSessionEnabled(_0x23e0a6))return null;return _0x23e0a6;}export async function getEnabledHookContext(_0x190a15){const _0x1dee1a={'lwNnk':function(_0x3229f6,_0xa8d6b4){return _0x3229f6(_0xa8d6b4);},'mpGOG':function(_0x223f24){return _0x223f24();}};if(_0x190a15){if(!_0x1dee1a['lwNnk'](isSessionEnabled,_0x190a15))return null;return{'sessionId':_0x190a15,'input':{'session_id':_0x190a15}};}const _0x4280c5=await _0x1dee1a['mpGOG'](readHookInput),_0x598e72=_0x4280c5?.['session_id'];if(!_0x598e72||!isSessionEnabled(_0x598e72))return null;return{'sessionId':_0x598e72,'input':_0x4280c5};}
@@ -1 +1 @@
1
- (function(_0x24fbe9,_0x2978d2){const _0x1dc83d=_0x2d48,_0x420551=_0x24fbe9();while(!![]){try{const _0x425e0e=-parseInt(_0x1dc83d(0x15b))/0x1*(-parseInt(_0x1dc83d(0x163))/0x2)+parseInt(_0x1dc83d(0x157))/0x3+parseInt(_0x1dc83d(0x161))/0x4*(parseInt(_0x1dc83d(0x15c))/0x5)+parseInt(_0x1dc83d(0x15e))/0x6*(parseInt(_0x1dc83d(0x156))/0x7)+-parseInt(_0x1dc83d(0x160))/0x8+parseInt(_0x1dc83d(0x159))/0x9+-parseInt(_0x1dc83d(0x165))/0xa*(parseInt(_0x1dc83d(0x158))/0xb);if(_0x425e0e===_0x2978d2)break;else _0x420551['push'](_0x420551['shift']());}catch(_0x459ec8){_0x420551['push'](_0x420551['shift']());}}}(_0x3674,0xc909a));import{printBlock,getEnabledHookContext}from'./output.js';function _0x3674(){const _0xce49f2=['permission_mode','3826564wARmjb','703101vEcXKK','16907UOhpQl','5019813HOyumr','input','3CeHnhR','70EAhKec','plan','18eJeiRq','sessionId','9612872kmCsxt','296268tJguCr','YJKjS','699370Kdqhiv','ikzQU','16220fipwtf'];_0x3674=function(){return _0xce49f2;};return _0x3674();}function _0x2d48(_0xa624e5,_0x37fa6a){_0xa624e5=_0xa624e5-0x155;const _0x3674d4=_0x3674();let _0x2d489a=_0x3674d4[_0xa624e5];return _0x2d489a;}import{shouldShowPlanReminder}from'../utils/sessionCache.js';export async function planReminder(_0x241a6){const _0xdaf91=_0x2d48,_0x1eb7f6={'ikzQU':_0xdaf91(0x15d),'YJKjS':function(_0x26db64,_0x2e5557){return _0x26db64(_0x2e5557);}},_0xa98691=await getEnabledHookContext(_0x241a6);if(!_0xa98691)return;if(_0xa98691[_0xdaf91(0x15a)][_0xdaf91(0x155)]!==_0x1eb7f6[_0xdaf91(0x164)])return;if(!_0x1eb7f6['YJKjS'](shouldShowPlanReminder,_0xa98691[_0xdaf91(0x15f)]))return;_0x1eb7f6[_0xdaf91(0x162)](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(_0x3729c4,_0x47d4b4){const _0x23bc96=_0x5d6a,_0x50ffd0=_0x3729c4();while(!![]){try{const _0x4e683e=parseInt(_0x23bc96(0x190))/0x1+-parseInt(_0x23bc96(0x199))/0x2*(-parseInt(_0x23bc96(0x196))/0x3)+parseInt(_0x23bc96(0x18e))/0x4*(-parseInt(_0x23bc96(0x192))/0x5)+parseInt(_0x23bc96(0x197))/0x6+parseInt(_0x23bc96(0x18f))/0x7+-parseInt(_0x23bc96(0x193))/0x8+-parseInt(_0x23bc96(0x191))/0x9;if(_0x4e683e===_0x47d4b4)break;else _0x50ffd0['push'](_0x50ffd0['shift']());}catch(_0xb7137e){_0x50ffd0['push'](_0x50ffd0['shift']());}}}(_0xd0dc,0xa7807));import{printBlock,getEnabledHookContext}from'./output.js';import{shouldShowPlanReminder}from'../utils/sessionCache.js';function _0xd0dc(){const _0x405d75=['7119438aUawSn','input','19340RDVbLt','2132vPxsNC','4789526QdBNci','586120ZBWZAh','7321131LXjVng','265mJfYJZ','7510288tTPioF','===\x20RANGER:\x20ACTION\x20REQUIRED\x20===\x0a\x0aIf\x20this\x20plan\x20involves\x20ANY\x20UI\x20changes,\x20you\x20MUST:\x0a\x0a1.\x20**READ\x20/ranger\x20skill\x20NOW**\x20-\x20specifically\x20the\x20create.md\x20instructions\x0a2.\x20**Add\x20a\x20Ranger\x20Feature\x20Review\x20Specification**\x20to\x20the\x20end\x20of\x20your\x20plan\x0a\x0aDO\x20NOT\x20write\x20scenarios\x20without\x20reading\x20create.md\x20first.\x0aScenarios\x20are\x20E2E\x20test\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0aYour\x20plan\x20must\x20end\x20with:\x0a```\x0a###\x20Ranger\x20Feature\x20Review\x20Specification\x20(create\x20this\x20first\x20with\x20`ranger\x20create`)\x0aFeature\x20Review\x20Name:\x20<name>\x0aDescription:\x20<description>\x0aScenarios:\x0a1.\x20<E2E\x20user\x20flow\x20that\x20can\x20be\x20verified\x20in\x20browser>\x0a2.\x20<another\x20E2E\x20user\x20flow\x20if\x20needed>\x0a```\x0a\x0aThen\x20run:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario1>\x22\x20-c\x20\x22<scenario2>\x22`\x0a\x0a===\x20END\x20===','YFtPz','3tpNgFt'];_0xd0dc=function(){return _0x405d75;};return _0xd0dc();}function _0x5d6a(_0x1f2dd6,_0x228c14){_0x1f2dd6=_0x1f2dd6-0x18e;const _0xd0dc7f=_0xd0dc();let _0x5d6a8e=_0xd0dc7f[_0x1f2dd6];return _0x5d6a8e;}export async function planReminder(_0x568be6){const _0xa44dfc=_0x5d6a,_0x38cc96={'YFtPz':function(_0x8f0f26,_0x3d0282){return _0x8f0f26(_0x3d0282);},'ewLtf':function(_0x20c858,_0x3ca45b){return _0x20c858!==_0x3ca45b;},'PVoKh':'plan'},_0x550f4=await _0x38cc96[_0xa44dfc(0x195)](getEnabledHookContext,_0x568be6);if(!_0x550f4)return;if(_0x38cc96['ewLtf'](_0x550f4[_0xa44dfc(0x198)]['permission_mode'],_0x38cc96['PVoKh']))return;if(!shouldShowPlanReminder(_0x550f4['sessionId']))return;_0x38cc96[_0xa44dfc(0x195)](printBlock,_0xa44dfc(0x194));}
@@ -1 +1 @@
1
- function _0x2c7e(){const _0x1bf04b=['1053jNGVqN','929420jflXhu','63oYMBND','===\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===','1105170IDfsgU','11VJjGPY','56QTUUWR','245TREczk','179120HjNuId','780296yxqwAG','1890fRSyDL','stYaY','81436zkqivD','1302060bPzhTw'];_0x2c7e=function(){return _0x1bf04b;};return _0x2c7e();}function _0x3358(_0x5a9445,_0x21615c){_0x5a9445=_0x5a9445-0xe8;const _0x2c7ee8=_0x2c7e();let _0x335822=_0x2c7ee8[_0x5a9445];return _0x335822;}(function(_0x18611b,_0x3cf06b){const _0x543260=_0x3358,_0x50b685=_0x18611b();while(!![]){try{const _0x2fe682=parseInt(_0x543260(0xea))/0x1+parseInt(_0x543260(0xeb))/0x2*(parseInt(_0x543260(0xef))/0x3)+parseInt(_0x543260(0xed))/0x4*(-parseInt(_0x543260(0xe8))/0x5)+-parseInt(_0x543260(0xf3))/0x6+-parseInt(_0x543260(0xf5))/0x7*(parseInt(_0x543260(0xe9))/0x8)+-parseInt(_0x543260(0xf1))/0x9*(-parseInt(_0x543260(0xf0))/0xa)+parseInt(_0x543260(0xf4))/0xb*(parseInt(_0x543260(0xee))/0xc);if(_0x2fe682===_0x3cf06b)break;else _0x50b685['push'](_0x50b685['shift']());}catch(_0x445463){_0x50b685['push'](_0x50b685['shift']());}}}(_0x2c7e,0x7c8e8));import{printBlock,getEnabledSessionId}from'./output.js';export async function planStart(_0x12e197){const _0x29e851=_0x3358,_0x46b989={'stYaY':function(_0x92d62d,_0x11219b){return _0x92d62d(_0x11219b);}},_0x55df9e=await _0x46b989['stYaY'](getEnabledSessionId,_0x12e197);if(!_0x55df9e)return;_0x46b989[_0x29e851(0xec)](printBlock,_0x29e851(0xf2));}
1
+ (function(_0x38540b,_0x5d1312){const _0x3a286d=_0x48e8,_0x530968=_0x38540b();while(!![]){try{const _0x23111a=-parseInt(_0x3a286d(0x1af))/0x1*(parseInt(_0x3a286d(0x1b3))/0x2)+parseInt(_0x3a286d(0x1b4))/0x3*(-parseInt(_0x3a286d(0x1ad))/0x4)+-parseInt(_0x3a286d(0x1b1))/0x5+-parseInt(_0x3a286d(0x1b0))/0x6+-parseInt(_0x3a286d(0x1ae))/0x7+parseInt(_0x3a286d(0x1b2))/0x8*(parseInt(_0x3a286d(0x1b5))/0x9)+-parseInt(_0x3a286d(0x1b6))/0xa*(-parseInt(_0x3a286d(0x1b7))/0xb);if(_0x23111a===_0x5d1312)break;else _0x530968['push'](_0x530968['shift']());}catch(_0x5cc5d9){_0x530968['push'](_0x530968['shift']());}}}(_0x5ef4,0xba476));function _0x48e8(_0x5125d0,_0x456ee2){_0x5125d0=_0x5125d0-0x1ad;const _0x5ef413=_0x5ef4();let _0x48e822=_0x5ef413[_0x5125d0];return _0x48e822;}import{printBlock,getEnabledSessionId}from'./output.js';function _0x5ef4(){const _0x2d0cdc=['9IHVrUM','20591340GOKior','11rlHDeV','1604068xacBPr','1570856FUnVbG','202823AupWyW','3780324OECsbk','3386575oMvGCv','6715848vJZdOT','2NbbvcZ','3MrNIrn'];_0x5ef4=function(){return _0x2d0cdc;};return _0x5ef4();}export async function planStart(_0x38d0e5){const _0x844ba2=await getEnabledSessionId(_0x38d0e5);if(!_0x844ba2)return;printBlock('===\x20RANGER:\x20ACTION\x20REQUIRED\x20===\x0a\x0aIf\x20this\x20plan\x20involves\x20UI\x20changes,\x20you\x20MUST:\x0a\x0a1.\x20**READ\x20/ranger\x20skill**\x20-\x20specifically\x20create.md\x0a2.\x20**Add\x20a\x20Ranger\x20Feature\x20Review\x20Specification**\x20at\x20the\x20end\x20of\x20your\x20plan\x0a\x0aScenarios\x20are\x20E2E\x20test\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0a**Good:**\x20\x22User\x20can\x20log\x20in\x20with\x20valid\x20credentials\x20and\x20see\x20dashboard\x22\x0a**Bad:**\x20\x22Add\x20form\x20validation\x22\x20or\x20\x22Button\x20is\x20visible\x22\x0a\x0aAfter\x20planning,\x20run:\x0a`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<E2E\x20flow\x201>\x22\x20-c\x20\x22<E2E\x20flow\x202>\x22`\x0a\x0a===\x20END\x20===');}
@@ -1 +1 @@
1
- (function(_0x1816ed,_0x16ad2d){const _0x33c830=_0x1b3a,_0x205d66=_0x1816ed();while(!![]){try{const _0x4a8e11=-parseInt(_0x33c830(0x1f2))/0x1*(parseInt(_0x33c830(0x1fe))/0x2)+parseInt(_0x33c830(0x1f5))/0x3*(-parseInt(_0x33c830(0x1fb))/0x4)+-parseInt(_0x33c830(0x1f7))/0x5+-parseInt(_0x33c830(0x1fc))/0x6+parseInt(_0x33c830(0x1fd))/0x7+parseInt(_0x33c830(0x1f3))/0x8*(parseInt(_0x33c830(0x1f9))/0x9)+-parseInt(_0x33c830(0x1f4))/0xa*(-parseInt(_0x33c830(0x1f8))/0xb);if(_0x4a8e11===_0x16ad2d)break;else _0x205d66['push'](_0x205d66['shift']());}catch(_0x1881f7){_0x205d66['push'](_0x205d66['shift']());}}}(_0xe8f6,0x5a0a7));function _0x1b3a(_0x22929e,_0x25d608){_0x22929e=_0x22929e-0x1f2;const _0xe8f673=_0xe8f6();let _0x1b3ae0=_0xe8f673[_0x22929e];return _0x1b3ae0;}import{getSessionEntry,updateBranchTracking}from'../utils/sessionCache.js';function _0xe8f6(){const _0x3f4ede=['249910FtzNog','618ipsWFe','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).','1550365EelZIk','649lohngJ','128691rnBVMv','PostToolUse','4748KmNoZQ','3913836aHlAqX','4265835rKgItD','106CfbHyt','10937pzNRxE','40VpMKNG'];_0xe8f6=function(){return _0x3f4ede;};return _0xe8f6();}import{getToken}from'../utils/keychain.js';import{getEnabledSessionId}from'./output.js';export async function postEdit(_0x24c47f){const _0x3d76b0=_0x1b3a,_0x235429={'KSFwH':_0x3d76b0(0x1fa)},_0x5f5439=await getEnabledSessionId(_0x24c47f);if(!_0x5f5439)return;updateBranchTracking(_0x5f5439);const _0x2e693e=await getToken();if(!_0x2e693e)return;const _0x2f3956=getSessionEntry(_0x5f5439);if(_0x2f3956){const _0x51668d={'hookSpecificOutput':{'hookEventName':_0x3d76b0(0x1fa),'additionalContext':_0x3d76b0(0x1f6)}};console['log'](JSON['stringify'](_0x51668d));return;}const _0x356d27={'hookSpecificOutput':{'hookEventName':_0x235429['KSFwH'],'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'](_0x356d27));}
1
+ (function(_0x28d6cf,_0x16d2f0){const _0x389075=_0x5e0a,_0x572a13=_0x28d6cf();while(!![]){try{const _0x43a65f=-parseInt(_0x389075(0x1ca))/0x1+-parseInt(_0x389075(0x1cf))/0x2+-parseInt(_0x389075(0x1c9))/0x3*(parseInt(_0x389075(0x1d5))/0x4)+parseInt(_0x389075(0x1cc))/0x5*(parseInt(_0x389075(0x1cb))/0x6)+parseInt(_0x389075(0x1d3))/0x7*(-parseInt(_0x389075(0x1c8))/0x8)+parseInt(_0x389075(0x1d0))/0x9*(-parseInt(_0x389075(0x1d2))/0xa)+parseInt(_0x389075(0x1ce))/0xb;if(_0x43a65f===_0x16d2f0)break;else _0x572a13['push'](_0x572a13['shift']());}catch(_0x5d6b20){_0x572a13['push'](_0x572a13['shift']());}}}(_0x15d6,0x255ec));import{getSessionEntry,updateBranchTracking}from'../utils/sessionCache.js';function _0x15d6(){const _0x5975f1=['qOUfZ','27524gaysAJ','88bUzvqE','111ufHVFN','116637sStwqV','42dQxZra','21985aarUDz','stringify','11407968cfOPPb','350524TlLygf','903627JZeoVq','log','20rcKtiO','106589VAMrPJ'];_0x15d6=function(){return _0x5975f1;};return _0x15d6();}import{getToken}from'../utils/keychain.js';import{getEnabledSessionId}from'./output.js';function _0x5e0a(_0x587264,_0x44ce3f){_0x587264=_0x587264-0x1c8;const _0x15d6b6=_0x15d6();let _0x5e0abd=_0x15d6b6[_0x587264];return _0x5e0abd;}export async function postEdit(_0x259fcb){const _0x53daf2=_0x5e0a,_0x346d72={'ALLJu':function(_0x42de77){return _0x42de77();},'ONXpH':function(_0x39c6ef,_0x97eae7){return _0x39c6ef(_0x97eae7);},'qOUfZ':'PostToolUse'},_0x28b5f1=await getEnabledSessionId(_0x259fcb);if(!_0x28b5f1)return;updateBranchTracking(_0x28b5f1);const _0xd404b7=await _0x346d72['ALLJu'](getToken);if(!_0xd404b7)return;const _0x520f9c=_0x346d72['ONXpH'](getSessionEntry,_0x28b5f1);if(_0x520f9c){const _0x4345c0={'hookSpecificOutput':{'hookEventName':_0x346d72['qOUfZ'],'additionalContext':'RANGER:\x20If\x20this\x20change\x20expands\x20the\x20scope\x20of\x20the\x20active\x20feature\x20review,\x20you\x20may\x20need\x20to\x20add\x20a\x20scenario.\x20See\x20Workflow\x201\x20in\x20/ranger.\x20If\x20you\x20decide\x20to\x20add\x20a\x20scenario,\x20you\x20MUST\x20read\x20Workflow\x201\x20IN\x20DETAIL\x20first.\x20Remember:\x20when\x20you\x20finish\x20your\x20work,\x20your\x20final\x20message\x20to\x20the\x20user\x20must\x20direct\x20them\x20to\x20the\x20Ranger\x20feature\x20review\x20dashboard\x20to\x20review\x20(e.g.\x20\x22Go\x20to\x20the\x20Ranger\x20feature\x20dashboard\x20to\x20review:\x20https://dashboard.ranger.net/features/{feature_id}\x22).'}};console[_0x53daf2(0x1d1)](JSON['stringify'](_0x4345c0));return;}const _0x1bb3ff={'hookSpecificOutput':{'hookEventName':_0x346d72[_0x53daf2(0x1d4)],'additionalContext':'RANGER:\x20If\x20this\x20is\x20for\x20a\x20UI\x20feature,\x20you\x20MUST\x20use\x20/ranger\x20to\x20either\x20create\x20a\x20new\x20feature\x20review\x20or\x20resume\x20an\x20existing\x20one.'}};console['log'](JSON[_0x53daf2(0x1cd)](_0x1bb3ff));}
@@ -1 +1 @@
1
- (function(_0x5928b2,_0x596371){const _0x54381e=_0x239f,_0x142946=_0x5928b2();while(!![]){try{const _0x3badb5=parseInt(_0x54381e(0x14e))/0x1*(parseInt(_0x54381e(0x149))/0x2)+parseInt(_0x54381e(0x14d))/0x3*(parseInt(_0x54381e(0x14a))/0x4)+parseInt(_0x54381e(0x151))/0x5+-parseInt(_0x54381e(0x14b))/0x6*(-parseInt(_0x54381e(0x154))/0x7)+parseInt(_0x54381e(0x14f))/0x8*(-parseInt(_0x54381e(0x152))/0x9)+parseInt(_0x54381e(0x150))/0xa*(-parseInt(_0x54381e(0x153))/0xb)+-parseInt(_0x54381e(0x14c))/0xc;if(_0x3badb5===_0x596371)break;else _0x142946['push'](_0x142946['shift']());}catch(_0x22f6da){_0x142946['push'](_0x142946['shift']());}}}(_0x35d0,0xb30e0));import{getToken}from'../utils/keychain.js';function _0x35d0(){const _0x26081c=['2453YJVqkD','7WcMpbv','8zhboDU','4fLuFSb','6614220jcGnwZ','6811992LakOxm','185589GuaSXg','322819rowCxm','8CHlcvg','48560xgDBTY','4751055jLtIeN','9195822IdUbGL'];_0x35d0=function(){return _0x26081c;};return _0x35d0();}import{printBlock,getEnabledSessionId}from'./output.js';function _0x239f(_0x397304,_0x31730b){_0x397304=_0x397304-0x149;const _0x35d0f4=_0x35d0();let _0x239f87=_0x35d0f4[_0x397304];return _0x239f87;}export async function preCompact(_0x2a5dd9){const _0x16c781={'gNWLL':function(_0x90ac4d){return _0x90ac4d();}},_0x2d4323=await getEnabledSessionId(_0x2a5dd9);if(!_0x2d4323)return;try{const _0x481f7d=await _0x16c781['gNWLL'](getToken);if(!_0x481f7d)return;printBlock('===\x20RANGER:\x20PRESERVE\x20IN\x20COMPACTION\x20===\x0a\x0aIf\x20you\x20created\x20a\x20plan\x20with\x20a\x20**Ranger\x20Feature\x20Review\x20Specification**,\x20you\x20MUST\x20preserve\x20it\x20in\x20the\x20compaction\x20summary.\x0a\x0aThe\x20specification\x20contains\x20scenarios\x20that\x20will\x20be\x20used\x20with\x20`ranger\x20create`.');}catch{}}
1
+ function _0x2d07(){const _0x2468f0=['3108010RCrYJK','1980410QIApmL','uAnjm','1vQXyDp','108vVFOBw','43410xhRFor','2419884xxdhDr','5062032NHOVAJ','375056rPoeGz','35lzrNkZ','99JTkNLs','4147782MgCIPy'];_0x2d07=function(){return _0x2468f0;};return _0x2d07();}(function(_0x40e638,_0x4e6a7c){const _0x3b4f6d=_0x9277,_0x2debdc=_0x40e638();while(!![]){try{const _0x3fbd2c=parseInt(_0x3b4f6d(0x83))/0x1*(-parseInt(_0x3b4f6d(0x80))/0x2)+parseInt(_0x3b4f6d(0x7b))/0x3+parseInt(_0x3b4f6d(0x78))/0x4*(parseInt(_0x3b4f6d(0x79))/0x5)+-parseInt(_0x3b4f6d(0x7f))/0x6+-parseInt(_0x3b4f6d(0x7d))/0x7*(parseInt(_0x3b4f6d(0x7c))/0x8)+-parseInt(_0x3b4f6d(0x7a))/0x9+parseInt(_0x3b4f6d(0x81))/0xa*(parseInt(_0x3b4f6d(0x7e))/0xb);if(_0x3fbd2c===_0x4e6a7c)break;else _0x2debdc['push'](_0x2debdc['shift']());}catch(_0x57243e){_0x2debdc['push'](_0x2debdc['shift']());}}}(_0x2d07,0xe9493));import{getToken}from'../utils/keychain.js';function _0x9277(_0x5cca74,_0x405ee6){_0x5cca74=_0x5cca74-0x78;const _0x2d07bb=_0x2d07();let _0x927706=_0x2d07bb[_0x5cca74];return _0x927706;}import{printBlock,getEnabledSessionId}from'./output.js';export async function preCompact(_0x2f16b0){const _0x4a8236=_0x9277,_0x55e800={'uAnjm':function(_0xe7e007,_0x4e2a1f){return _0xe7e007(_0x4e2a1f);}},_0x4d4f76=await _0x55e800[_0x4a8236(0x82)](getEnabledSessionId,_0x2f16b0);if(!_0x4d4f76)return;try{const _0x51b84e=await getToken();if(!_0x51b84e)return;_0x55e800[_0x4a8236(0x82)](printBlock,'===\x20RANGER:\x20PRESERVE\x20IN\x20COMPACTION\x20===\x0a\x0aIf\x20you\x20created\x20a\x20plan\x20with\x20a\x20**Ranger\x20Feature\x20Review\x20Specification**,\x20you\x20MUST\x20preserve\x20it\x20in\x20the\x20compaction\x20summary.\x0a\x0aThe\x20specification\x20contains\x20scenarios\x20that\x20will\x20be\x20used\x20with\x20`ranger\x20create`.');}catch{}}
@@ -1 +1 @@
1
- (function(_0x5095ec,_0x2ceb13){const _0x47e5c2=_0x151a,_0x5f21a8=_0x5095ec();while(!![]){try{const _0x453ae7=-parseInt(_0x47e5c2(0x16e))/0x1+-parseInt(_0x47e5c2(0x168))/0x2+-parseInt(_0x47e5c2(0x16c))/0x3+-parseInt(_0x47e5c2(0x167))/0x4+parseInt(_0x47e5c2(0x169))/0x5+parseInt(_0x47e5c2(0x16f))/0x6*(-parseInt(_0x47e5c2(0x164))/0x7)+parseInt(_0x47e5c2(0x166))/0x8*(parseInt(_0x47e5c2(0x16b))/0x9);if(_0x453ae7===_0x2ceb13)break;else _0x5f21a8['push'](_0x5f21a8['shift']());}catch(_0x5280a7){_0x5f21a8['push'](_0x5f21a8['shift']());}}}(_0x89ae,0xe7600));import{isSessionEnabled,recordEnabledSessionCleared}from'../utils/sessionCache.js';import{readHookInput}from'./output.js';function _0x151a(_0x316181,_0x148aab){_0x316181=_0x316181-0x164;const _0x89ae5b=_0x89ae();let _0x151a74=_0x89ae5b[_0x316181];return _0x151a74;}function _0x89ae(){const _0x1bef60=['1029934VIRgBe','7097058oUpnyZ','clear','7wgFASG','sZuVf','5176YwbgdD','449712hngqup','3515072bRZThx','1465930oLsYKv','env','88497JSxIMd','4874052nWsXHt','reason'];_0x89ae=function(){return _0x1bef60;};return _0x89ae();}export async function sessionEnd(_0xb208b5){const _0xdd7332=_0x151a,_0x2098e8={'GskhL':function(_0x924570,_0x15abdc){return _0x924570===_0x15abdc;},'sZuVf':function(_0x486e79,_0x40f402){return _0x486e79(_0x40f402);}},_0x396531=process[_0xdd7332(0x16a)]['CLAUDE_SESSION_ID'];let _0x1c5fdf=_0xb208b5,_0xf1d573;if(!_0xb208b5){if(_0x396531&&!isSessionEnabled(_0x396531))return;const _0x2f041c=await readHookInput();_0x1c5fdf=_0x2f041c?.['session_id']||_0x396531,_0xf1d573=_0x2f041c?.[_0xdd7332(0x16d)];}if(!_0x1c5fdf)return;_0x2098e8['GskhL'](_0xf1d573,_0xdd7332(0x170))&&_0x2098e8[_0xdd7332(0x165)](recordEnabledSessionCleared,_0x1c5fdf);}
1
+ function _0x1512(_0x45d0a3,_0x4aaf29){_0x45d0a3=_0x45d0a3-0x160;const _0x48c965=_0x48c9();let _0x151269=_0x48c965[_0x45d0a3];return _0x151269;}(function(_0x422efe,_0x387d6a){const _0x39dee8=_0x1512,_0x3e849f=_0x422efe();while(!![]){try{const _0x8dcbe4=-parseInt(_0x39dee8(0x164))/0x1+parseInt(_0x39dee8(0x16d))/0x2+parseInt(_0x39dee8(0x170))/0x3+parseInt(_0x39dee8(0x163))/0x4*(parseInt(_0x39dee8(0x168))/0x5)+-parseInt(_0x39dee8(0x162))/0x6+parseInt(_0x39dee8(0x160))/0x7*(-parseInt(_0x39dee8(0x166))/0x8)+parseInt(_0x39dee8(0x167))/0x9*(-parseInt(_0x39dee8(0x16a))/0xa);if(_0x8dcbe4===_0x387d6a)break;else _0x3e849f['push'](_0x3e849f['shift']());}catch(_0x3b10c3){_0x3e849f['push'](_0x3e849f['shift']());}}}(_0x48c9,0x85a9c));import{isSessionEnabled,recordEnabledSessionCleared}from'../utils/sessionCache.js';import{readHookInput}from'./output.js';export async function sessionEnd(_0x5b8898){const _0x230021=_0x1512,_0x54bd55={'WhnNm':function(_0x33bdfe,_0x34fcb3){return _0x33bdfe(_0x34fcb3);},'NgpqM':function(_0x5a7fb3){return _0x5a7fb3();},'XcMXl':function(_0x2a118c,_0x300516){return _0x2a118c===_0x300516;},'qwOab':'clear'},_0x4aee41=process[_0x230021(0x16c)]['CLAUDE_SESSION_ID'];let _0x59256c=_0x5b8898,_0x5a38e3;if(!_0x5b8898){if(_0x4aee41&&!_0x54bd55[_0x230021(0x165)](isSessionEnabled,_0x4aee41))return;const _0xe9841d=await _0x54bd55[_0x230021(0x169)](readHookInput);_0x59256c=_0xe9841d?.[_0x230021(0x16f)]||_0x4aee41,_0x5a38e3=_0xe9841d?.[_0x230021(0x161)];}if(!_0x59256c)return;_0x54bd55[_0x230021(0x16e)](_0x5a38e3,_0x54bd55[_0x230021(0x16b)])&&recordEnabledSessionCleared(_0x59256c);}function _0x48c9(){const _0x22bef4=['env','1615870rYOULn','XcMXl','session_id','2999142MNBFHX','3851491ripjdY','reason','2962314jaiZSR','1845308ZLbxDn','314367EWofIo','WhnNm','8vvAlLE','142119HyfaCE','5YZIgZn','NgpqM','230JVWhFI','qwOab'];_0x48c9=function(){return _0x22bef4;};return _0x48c9();}
@@ -1 +1 @@
1
- function _0x18ab(){const _0x33be06=['session_id','3222184GEfgFK','master','\x20(Branch:\x20','445782yPtUbX','SessionStart','1152912tJRNmH','ApZYR','hiYvH','3339486NMhkUJ','2CqntQX','log','42452pCUrzv','hook:session-start','qXGfK','482993OiHbIn','Hquxj','MEDTV','hZomj','1511920DyOJae','20XZxdMX','ZxKUU','stdin','UeCnz','parse','main'];_0x18ab=function(){return _0x33be06;};return _0x18ab();}(function(_0x13bedf,_0x31ae43){const _0x2f9d5f=_0x576e,_0x536c80=_0x13bedf();while(!![]){try{const _0x43b3d0=parseInt(_0x2f9d5f(0xd8))/0x1*(parseInt(_0x2f9d5f(0xd6))/0x2)+-parseInt(_0x2f9d5f(0xd2))/0x3+parseInt(_0x2f9d5f(0xdf))/0x4+parseInt(_0x2f9d5f(0xe0))/0x5*(parseInt(_0x2f9d5f(0xd0))/0x6)+-parseInt(_0x2f9d5f(0xdb))/0x7+-parseInt(_0x2f9d5f(0xcd))/0x8+parseInt(_0x2f9d5f(0xd5))/0x9;if(_0x43b3d0===_0x31ae43)break;else _0x536c80['push'](_0x536c80['shift']());}catch(_0xb97409){_0x536c80['push'](_0x536c80['shift']());}}}(_0x18ab,0x38c96));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 _0x576e(_0x2be64b,_0x35bed2){_0x2be64b=_0x2be64b-0xc7;const _0x18abdf=_0x18ab();let _0x576ef4=_0x18abdf[_0x2be64b];return _0x576ef4;}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(_0x1a813c){const _0x3196b8=_0x576e,_0x13d04f={'ZxKUU':function(_0xdfe296,_0x55f5ef){return _0xdfe296||_0x55f5ef;},'pGPUw':'source','hGJps':function(_0x1470fa,_0x182ce0){return _0x1470fa&&_0x182ce0;},'UeCnz':function(_0x18d21b,_0x1ee898,_0xfcbcc0){return _0x18d21b(_0x1ee898,_0xfcbcc0);},'haCHO':function(_0x315d56){return _0x315d56();},'enhwM':function(_0x61ae91,_0x2b8904){return _0x61ae91(_0x2b8904);},'MEDTV':function(_0x3d0556,_0x10994a){return _0x3d0556(_0x10994a);},'Hquxj':_0x3196b8(0xd9),'qXGfK':'success','MpiZb':function(_0x2fa0cd){return _0x2fa0cd();},'bEBJo':function(_0x501932,_0x5d296b){return _0x501932!==_0x5d296b;},'hZomj':_0x3196b8(0xcb),'ApZYR':_0x3196b8(0xce),'hiYvH':function(_0x38affd,_0x3d2863){return _0x38affd+_0x3d2863;}};let _0x11134d=_0x13d04f[_0x3196b8(0xc7)](_0x1a813c,''),_0xd03c2c;if(!_0x1a813c){let _0x517dae='';for await(const _0x2a6cf6 of process[_0x3196b8(0xc8)]){_0x517dae+=_0x2a6cf6;}try{const _0x4522b5=JSON[_0x3196b8(0xca)](_0x517dae);_0x11134d=_0x4522b5[_0x3196b8(0xcc)]||'',_0xd03c2c=_0x4522b5[_0x13d04f['pGPUw']];}catch{}const _0x5b9d20=process['env']['CLAUDE_ENV_FILE'];if(_0x13d04f['hGJps'](_0x5b9d20,_0x11134d))try{await _0x13d04f[_0x3196b8(0xc9)](appendFile,_0x5b9d20,'export\x20CLAUDE_SESSION_ID=\x22'+_0x11134d+'\x22\x0a');}catch{}}try{await _0x13d04f['haCHO'](getToken);}catch{}if(_0x11134d){_0x13d04f['enhwM'](shouldAutoEnableAfterClear,_0xd03c2c)&&_0x13d04f[_0x3196b8(0xdd)](autoEnableAfterClear,_0x11134d);initBranchTracking(_0x11134d);const _0x5d8a48=_0x13d04f[_0x3196b8(0xdd)](isSessionEnabled,_0x11134d);try{const _0x1f9d5e=createTelemetryCollector(_0x13d04f[_0x3196b8(0xdc)]);await _0x1f9d5e['trackCommandStart']({'sessionId':_0x11134d,'hooksEnabled':_0x5d8a48}),await _0x1f9d5e['trackCommandEnd'](_0x13d04f[_0x3196b8(0xda)]);}catch{}if(_0x5d8a48){const _0x3a18a8=_0x13d04f['MpiZb'](getCurrentBranch),_0x9cc93d=_0x3a18a8&&_0x13d04f['bEBJo'](_0x3a18a8,_0x13d04f[_0x3196b8(0xde)])&&_0x3a18a8!==_0x13d04f[_0x3196b8(0xd3)]?_0x3196b8(0xcf)+_0x3a18a8+')':'',_0x595928={'hookSpecificOutput':{'hookEventName':_0x3196b8(0xd1),'additionalContext':_0x13d04f[_0x3196b8(0xd4)](RANGER_AUTO_ENABLED_PROMPT,_0x9cc93d)}};console[_0x3196b8(0xd7)](JSON['stringify'](_0x595928));}}}
1
+ function _0x1234(_0x36f2f8,_0x28a29e){_0x36f2f8=_0x36f2f8-0x1c7;const _0x277f91=_0x277f();let _0x123498=_0x277f91[_0x36f2f8];return _0x123498;}function _0x277f(){const _0x48b726=['AJrgR','7374880BnRXDX','gHjMS','860725Kvaxza','stdin','1607920PPeCyE','626732xUtWRR','master','GnWqe','CvbBJ','session_id','success','9GnWZtN','mKeqw','trackCommandEnd','\x20(Branch:\x20','env','main','2477363AcTMFs','8562yvHIlx','6AHMxKV','OmRth','export\x20CLAUDE_SESSION_ID=\x22','130444OgfiOU','1ZqlYWA'];_0x277f=function(){return _0x48b726;};return _0x277f();}(function(_0x1c0702,_0x3fb540){const _0x2cd269=_0x1234,_0x4ddcb0=_0x1c0702();while(!![]){try{const _0x593605=parseInt(_0x2cd269(0x1db))/0x1*(-parseInt(_0x2cd269(0x1da))/0x2)+-parseInt(_0x2cd269(0x1d6))/0x3+-parseInt(_0x2cd269(0x1c9))/0x4+-parseInt(_0x2cd269(0x1df))/0x5*(parseInt(_0x2cd269(0x1d7))/0x6)+-parseInt(_0x2cd269(0x1d5))/0x7+parseInt(_0x2cd269(0x1c8))/0x8+parseInt(_0x2cd269(0x1cf))/0x9*(parseInt(_0x2cd269(0x1dd))/0xa);if(_0x593605===_0x3fb540)break;else _0x4ddcb0['push'](_0x4ddcb0['shift']());}catch(_0x4b31ae){_0x4ddcb0['push'](_0x4ddcb0['shift']());}}}(_0x277f,0x2dd11));import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';import{getToken}from'../utils/keychain.js';const RANGER_AUTO_ENABLED_PROMPT='=================================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🚨\x20RANGER\x20IS\x20ACTIVE\x20🚨\x0a=================================================================\x0a\x0aThis\x20session\x20has\x20Ranger\x20ENABLED.\x20Before\x20doing\x20ANYTHING\x20else:\x0a\x0a1.\x20**READ\x20the\x20/ranger\x20skill\x20FIRST**\x20-\x20Run\x20the\x20skill\x20to\x20understand\x20the\x20required\x20workflow\x20for\x20UI\x20features\x0a\x0a2.\x20**Check\x20for\x20existing\x20feature\x20reviews**\x20-\x20Run\x20`ranger\x20list`\x20to\x20see\x20if\x20there\x27s\x20an\x20in-progress\x20feature\x20review\x20to\x20resume\x0a\x0a3.\x20**For\x20ANY\x20UI\x20work**:\x20You\x20MUST\x20either:\x0a\x20\x20\x20-\x20Resume\x20an\x20existing\x20feature\x20review:\x20`ranger\x20resume\x20<id>`\x0a\x20\x20\x20-\x20Create\x20a\x20new\x20feature\x20review:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario>\x22`\x0a\x0a4.\x20**If\x20resuming\x20a\x20feature\x20review\x20with\x20reviewer\x20comments**:\x20Run\x20`ranger\x20get-review`\x20to\x20see\x20what\x20reviewers\x20want\x20fixed\x20before\x20making\x20code\x20changes\x0a\x0a=================================================================';export async function sessionStart(_0x153b12){const _0x5d1970=_0x1234,_0x1559e0={'mKeqw':function(_0x2480d1,_0x4b5a15){return _0x2480d1||_0x4b5a15;},'OmRth':function(_0x1ab09b,_0x34a6a0){return _0x1ab09b&&_0x34a6a0;},'AJrgR':function(_0x2229c2,_0x3bf38a){return _0x2229c2(_0x3bf38a);},'mNEhn':function(_0x86532e,_0x2e2029){return _0x86532e(_0x2e2029);},'GnWqe':function(_0x594769,_0x1ad236){return _0x594769(_0x1ad236);},'CvbBJ':function(_0x364200,_0x96b720){return _0x364200(_0x96b720);},'aYvTu':_0x5d1970(0x1ce),'zAJUO':function(_0x414666){return _0x414666();},'AoUUs':function(_0x167288,_0x40bafc){return _0x167288!==_0x40bafc;},'hHwsX':_0x5d1970(0x1ca),'gHjMS':'SessionStart','EUlbd':function(_0xe353a3,_0x2bb37b){return _0xe353a3+_0x2bb37b;}};let _0x1d6212=_0x1559e0[_0x5d1970(0x1d0)](_0x153b12,''),_0x55ce07;if(!_0x153b12){let _0x198370='';for await(const _0x53a067 of process[_0x5d1970(0x1c7)]){_0x198370+=_0x53a067;}try{const _0x1ec182=JSON['parse'](_0x198370);_0x1d6212=_0x1ec182[_0x5d1970(0x1cd)]||'',_0x55ce07=_0x1ec182['source'];}catch{}const _0x103411=process[_0x5d1970(0x1d3)]['CLAUDE_ENV_FILE'];if(_0x1559e0[_0x5d1970(0x1d8)](_0x103411,_0x1d6212))try{await appendFile(_0x103411,_0x5d1970(0x1d9)+_0x1d6212+'\x22\x0a');}catch{}}try{await getToken();}catch{}if(_0x1d6212){_0x1559e0['AJrgR'](shouldAutoEnableAfterClear,_0x55ce07)&&_0x1559e0[_0x5d1970(0x1dc)](autoEnableAfterClear,_0x1d6212);_0x1559e0['mNEhn'](initBranchTracking,_0x1d6212);const _0x30a6de=_0x1559e0[_0x5d1970(0x1cb)](isSessionEnabled,_0x1d6212);try{const _0x501404=_0x1559e0[_0x5d1970(0x1cc)](createTelemetryCollector,'hook:session-start');await _0x501404['trackCommandStart']({'sessionId':_0x1d6212,'hooksEnabled':_0x30a6de}),await _0x501404[_0x5d1970(0x1d1)](_0x1559e0['aYvTu']);}catch{}if(_0x30a6de){const _0x3de5c0=_0x1559e0['zAJUO'](getCurrentBranch),_0x1fcaf7=_0x3de5c0&&_0x3de5c0!==_0x5d1970(0x1d4)&&_0x1559e0['AoUUs'](_0x3de5c0,_0x1559e0['hHwsX'])?_0x5d1970(0x1d2)+_0x3de5c0+')':'',_0x823c51={'hookSpecificOutput':{'hookEventName':_0x1559e0[_0x5d1970(0x1de)],'additionalContext':_0x1559e0['EUlbd'](RANGER_AUTO_ENABLED_PROMPT,_0x1fcaf7)}};console['log'](JSON['stringify'](_0x823c51));}}}
@@ -1 +1 @@
1
- (function(_0x2f0e51,_0x2fe5ef){const _0x6aa6b=_0x5b85,_0xd1003c=_0x2f0e51();while(!![]){try{const _0x4c11d1=-parseInt(_0x6aa6b(0x1ba))/0x1+parseInt(_0x6aa6b(0x1cd))/0x2+-parseInt(_0x6aa6b(0x1bd))/0x3+parseInt(_0x6aa6b(0x1c6))/0x4*(-parseInt(_0x6aa6b(0x1b9))/0x5)+-parseInt(_0x6aa6b(0x1b3))/0x6*(-parseInt(_0x6aa6b(0x1b5))/0x7)+parseInt(_0x6aa6b(0x1b8))/0x8*(parseInt(_0x6aa6b(0x1c1))/0x9)+parseInt(_0x6aa6b(0x1b7))/0xa*(parseInt(_0x6aa6b(0x1b4))/0xb);if(_0x4c11d1===_0x2fe5ef)break;else _0xd1003c['push'](_0xd1003c['shift']());}catch(_0xc8660){_0xd1003c['push'](_0xd1003c['shift']());}}}(_0x1e48,0x56299));function _0x1e48(){const _0xfc841e=['123052EEmjKu','sessionId','featureId','1302654bjtyJQ','filter','closed','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','5925564iakogN','some','incomplete','status','stringify','2555428zMrldZ','blocked','log','currentSessionId','success','nwadr','checklistItems','258156Psmsnu','6KwFVXa','2124023wjmIIR','3979367gcEyYh','verified','10nkTwnz','8GbTqJD','5LfEDTq'];_0x1e48=function(){return _0xfc841e;};return _0x1e48();}import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x166a56){const _0x4da24e=_0x5b85,_0x1f0c07={'oQNNB':function(_0x3602ff,_0x5debfa,_0x2d74e4,_0x47f30e){return _0x3602ff(_0x5debfa,_0x2d74e4,_0x47f30e);},'VhcsW':function(_0x2315a9,_0x352dec){return _0x2315a9(_0x352dec);},'ivCfr':function(_0x22211c,_0x122f2c,_0x150e1b){return _0x22211c(_0x122f2c,_0x150e1b);}},_0x2eacdb=await getEnabledHookContext(_0x166a56),_0xed4c29=_0x2eacdb?.['sessionId']??null;let _0x5bb9c6=!![];if(!_0xed4c29){await trackStop(_0xed4c29,![],_0x5bb9c6);return;}try{const _0x27eeb8=getSessionEntry(_0xed4c29);if(!_0x27eeb8){await _0x1f0c07['oQNNB'](trackStop,_0xed4c29,!![],_0x5bb9c6);return;}const _0xedf1f=await getToken(),_0x7798d1='https://dashboard.ranger.net/features/'+_0x27eeb8[_0x4da24e(0x1bc)];let _0x4dfac7=null,_0x15da9c=![],_0x4b28c3=![];if(_0xedf1f)try{const _0xb260d1=await _0x1f0c07['VhcsW'](getFeature,_0x27eeb8[_0x4da24e(0x1bc)]);_0x4dfac7=_0xb260d1[_0x4da24e(0x1c9)]??null;const _0x288444=_0xb260d1[_0x4da24e(0x1cc)][_0x4da24e(0x1be)](_0x34a72d=>_0x34a72d[_0x4da24e(0x1bb)]===_0x4dfac7);_0x15da9c=_0x288444[_0x4da24e(0x1c2)](_0x39fc18=>_0x39fc18['status']!==_0x4da24e(0x1b6)&&_0x39fc18['status']!==_0x4da24e(0x1c7)&&_0x39fc18['status']!==_0x4da24e(0x1bf)&&_0x39fc18[_0x4da24e(0x1c4)]!==_0x4da24e(0x1c3)),_0x4b28c3=_0x288444['some'](_0x4bdd87=>_0x4bdd87[_0x4da24e(0x1c4)]==='verification_in_progress');}catch{}if(_0xedf1f&&_0x4dfac7&&_0x15da9c){if(!_0x4b28c3&&shouldShowStopReminder(_0xed4c29)){const _0xb2845={'hookSpecificOutput':{'hookEventName':'Stop','additionalContext':_0x4da24e(0x1c0)+_0x7798d1}};console[_0x4da24e(0x1c8)](JSON[_0x4da24e(0x1c5)](_0xb2845));}}if(_0xedf1f&&_0x4dfac7&&!_0x15da9c)try{await _0x1f0c07['ivCfr'](concludeSession,_0x27eeb8['featureId'],_0x4dfac7);}catch{}await _0x1f0c07['oQNNB'](trackStop,_0xed4c29,!![],_0x5bb9c6);return;}catch{await trackStop(_0xed4c29,!![],_0x5bb9c6);return;}}function _0x5b85(_0x22c4ae,_0x568e14){_0x22c4ae=_0x22c4ae-0x1b3;const _0x1e48f2=_0x1e48();let _0x5b8526=_0x1e48f2[_0x22c4ae];return _0x5b8526;}async function trackStop(_0x762a7e,_0x2cf488,_0x42b5b2){const _0x31815f=_0x5b85,_0x45b75c={'nwadr':function(_0x1c710c,_0x14ee04){return _0x1c710c(_0x14ee04);},'QCLyE':'hook:stop','CoJCN':function(_0x4929a2,_0x1c14fd){return _0x4929a2??_0x1c14fd;}};try{const _0x4824fb=_0x45b75c[_0x31815f(0x1cb)](createTelemetryCollector,_0x45b75c['QCLyE']);await _0x4824fb['trackCommandStart']({'sessionId':_0x45b75c['CoJCN'](_0x762a7e,undefined),'hooksEnabled':_0x2cf488,'stopAllowed':_0x42b5b2}),await _0x4824fb['trackCommandEnd'](_0x31815f(0x1ca));}catch{}}
1
+ (function(_0x330250,_0x2110d9){const _0x561d6d=_0x2d2d,_0x17b6c0=_0x330250();while(!![]){try{const _0x4338ca=-parseInt(_0x561d6d(0x1fb))/0x1+-parseInt(_0x561d6d(0x1f5))/0x2+-parseInt(_0x561d6d(0x200))/0x3*(-parseInt(_0x561d6d(0x1f8))/0x4)+parseInt(_0x561d6d(0x1ed))/0x5*(-parseInt(_0x561d6d(0x1ec))/0x6)+-parseInt(_0x561d6d(0x1f0))/0x7*(-parseInt(_0x561d6d(0x202))/0x8)+-parseInt(_0x561d6d(0x1eb))/0x9+parseInt(_0x561d6d(0x1f7))/0xa*(-parseInt(_0x561d6d(0x1ea))/0xb);if(_0x4338ca===_0x2110d9)break;else _0x17b6c0['push'](_0x17b6c0['shift']());}catch(_0x30cb59){_0x17b6c0['push'](_0x17b6c0['shift']());}}}(_0x97f1,0xb33f3));function _0x97f1(){const _0x30a70f=['139040pwMTGk','currentSessionId','22190RJRIej','4HtRtHj','status','featureId','617442VhaEat','log','incomplete','jLgut','sessionId','4254021VLzUPn','filter','11686152CagYcX','hvxWQ','meQVj','checklistItems','1243KgCVzF','4173579gZxEAw','636978hLynGN','35lyOlRl','verification_in_progress','closed','7nwrfMi','trackCommandEnd','https://dashboard.ranger.net/features/','wbNng','trackCommandStart'];_0x97f1=function(){return _0x30a70f;};return _0x97f1();}function _0x2d2d(_0x3d6185,_0x2f2349){_0x3d6185=_0x3d6185-0x1e7;const _0x97f1b0=_0x97f1();let _0x2d2d54=_0x97f1b0[_0x3d6185];return _0x2d2d54;}import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x81b3b3){const _0x4a7b2f=_0x2d2d,_0x307aee={'jLgut':function(_0x4ef216,_0x4c995f){return _0x4ef216(_0x4c995f);},'wbNng':function(_0x36d3c8,_0x28c11e,_0x4c5861,_0x50bda7){return _0x36d3c8(_0x28c11e,_0x4c5861,_0x50bda7);},'hvxWQ':function(_0x37a6b4,_0x181600){return _0x37a6b4&&_0x181600;},'VBqFn':function(_0x1e0a45,_0x361597,_0x270aba){return _0x1e0a45(_0x361597,_0x270aba);}},_0x3d9976=await getEnabledHookContext(_0x81b3b3),_0x3821a0=_0x3d9976?.[_0x4a7b2f(0x1ff)]??null;let _0x464744=!![];if(!_0x3821a0){await trackStop(_0x3821a0,![],_0x464744);return;}try{const _0x2bfa2a=_0x307aee[_0x4a7b2f(0x1fe)](getSessionEntry,_0x3821a0);if(!_0x2bfa2a){await _0x307aee[_0x4a7b2f(0x1f3)](trackStop,_0x3821a0,!![],_0x464744);return;}const _0x4c9f6e=await getToken(),_0x53632f=_0x4a7b2f(0x1f2)+_0x2bfa2a[_0x4a7b2f(0x1fa)];let _0x3f47b6=null,_0x300820=![],_0x56ca50=![];if(_0x4c9f6e)try{const _0x2728a9=await getFeature(_0x2bfa2a['featureId']);_0x3f47b6=_0x2728a9[_0x4a7b2f(0x1f6)]??null;const _0x710b02=_0x2728a9[_0x4a7b2f(0x1e9)][_0x4a7b2f(0x201)](_0x1b2075=>_0x1b2075['sessionId']===_0x3f47b6);_0x300820=_0x710b02['some'](_0x359481=>_0x359481[_0x4a7b2f(0x1f9)]!=='verified'&&_0x359481[_0x4a7b2f(0x1f9)]!=='blocked'&&_0x359481['status']!==_0x4a7b2f(0x1ef)&&_0x359481[_0x4a7b2f(0x1f9)]!==_0x4a7b2f(0x1fd)),_0x56ca50=_0x710b02['some'](_0x1d1ea2=>_0x1d1ea2['status']===_0x4a7b2f(0x1ee));}catch{}if(_0x307aee[_0x4a7b2f(0x1e7)](_0x4c9f6e,_0x3f47b6)&&_0x300820){if(!_0x56ca50&&shouldShowStopReminder(_0x3821a0)){const _0x2502a6={'hookSpecificOutput':{'hookEventName':'Stop','additionalContext':'RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20'+_0x53632f}};console[_0x4a7b2f(0x1fc)](JSON['stringify'](_0x2502a6));}}if(_0x4c9f6e&&_0x3f47b6&&!_0x300820)try{await _0x307aee['VBqFn'](concludeSession,_0x2bfa2a[_0x4a7b2f(0x1fa)],_0x3f47b6);}catch{}await _0x307aee[_0x4a7b2f(0x1f3)](trackStop,_0x3821a0,!![],_0x464744);return;}catch{await trackStop(_0x3821a0,!![],_0x464744);return;}}async function trackStop(_0x4ee478,_0x155568,_0x4f4f8d){const _0x2b7ccc=_0x2d2d,_0x50e056={'UJrYS':function(_0x1ff926,_0x2132f0){return _0x1ff926(_0x2132f0);},'eHEeR':'hook:stop','BLrBW':function(_0x1335fc,_0x4d2304){return _0x1335fc??_0x4d2304;},'meQVj':'success'};try{const _0x4bd717=_0x50e056['UJrYS'](createTelemetryCollector,_0x50e056['eHEeR']);await _0x4bd717[_0x2b7ccc(0x1f4)]({'sessionId':_0x50e056['BLrBW'](_0x4ee478,undefined),'hooksEnabled':_0x155568,'stopAllowed':_0x4f4f8d}),await _0x4bd717[_0x2b7ccc(0x1f1)](_0x50e056[_0x2b7ccc(0x1e8)]);}catch{}}
@@ -1 +1 @@
1
- (function(_0x450001,_0x24af0f){var _0x4d34fc=_0x35e9,_0x461fe5=_0x450001();while(!![]){try{var _0x356c69=parseInt(_0x4d34fc(0x13c))/0x1*(parseInt(_0x4d34fc(0x13f))/0x2)+-parseInt(_0x4d34fc(0x141))/0x3+parseInt(_0x4d34fc(0x142))/0x4+parseInt(_0x4d34fc(0x140))/0x5+parseInt(_0x4d34fc(0x144))/0x6*(-parseInt(_0x4d34fc(0x13d))/0x7)+-parseInt(_0x4d34fc(0x143))/0x8*(-parseInt(_0x4d34fc(0x13b))/0x9)+-parseInt(_0x4d34fc(0x13e))/0xa;if(_0x356c69===_0x24af0f)break;else _0x461fe5['push'](_0x461fe5['shift']());}catch(_0x3cf51a){_0x461fe5['push'](_0x461fe5['shift']());}}}(_0x585a,0x89ef7));export{addEnv}from'./addEnv.js';function _0x35e9(_0x2be673,_0x55494e){_0x2be673=_0x2be673-0x13b;var _0x585a1b=_0x585a();var _0x35e956=_0x585a1b[_0x2be673];return _0x35e956;}function _0x585a(){var _0x4b43aa=['2141004zxiRty','88RALoIJ','402GTlONw','810801ZtILcE','339QTIJuT','14532XwfyTs','4759730ZwzwsR','3426KutbMu','704800kjJiKI','3203547NpPGez'];_0x585a=function(){return _0x4b43aa;};return _0x585a();}export{clean}from'./clean.js';export{login}from'./login.js';export{start,ensureLocalEnv,ensureChromium,authenticate}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
1
+ (function(_0x5decab,_0x4d8c14){var _0x3a0d59=_0x4a0b,_0xf5747f=_0x5decab();while(!![]){try{var _0x1e43a8=parseInt(_0x3a0d59(0x87))/0x1*(parseInt(_0x3a0d59(0x8f))/0x2)+-parseInt(_0x3a0d59(0x8d))/0x3*(-parseInt(_0x3a0d59(0x89))/0x4)+-parseInt(_0x3a0d59(0x8b))/0x5*(parseInt(_0x3a0d59(0x86))/0x6)+parseInt(_0x3a0d59(0x8a))/0x7+-parseInt(_0x3a0d59(0x8c))/0x8*(parseInt(_0x3a0d59(0x88))/0x9)+parseInt(_0x3a0d59(0x85))/0xa+-parseInt(_0x3a0d59(0x8e))/0xb;if(_0x1e43a8===_0x4d8c14)break;else _0xf5747f['push'](_0xf5747f['shift']());}catch(_0x2910e6){_0xf5747f['push'](_0xf5747f['shift']());}}}(_0x1079,0x42bf0));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start,ensureLocalEnv,ensureChromium,authenticate}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';function _0x4a0b(_0x7637bd,_0x3468c2){_0x7637bd=_0x7637bd-0x85;var _0x10796e=_0x1079();var _0x4a0b00=_0x10796e[_0x7637bd];return _0x4a0b00;}export{envList}from'./env.js';function _0x1079(){var _0x14de17=['10098dFyXvT','16ZAoqRm','3763130JVpwXV','48865AVICCh','2288qZzHUx','306834XxoFca','9724088AnVicp','2698gJutWA','2113730UDOEpC','138RmbDdn','404MopZVg'];_0x1079=function(){return _0x14de17;};return _0x1079();}export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';export{migrateProfile}from'./migrateProfile.js';
@@ -1 +1 @@
1
- (function(_0x78b54f,_0xbe80ba){const _0x2c34a3=_0x2879,_0x50de8b=_0x78b54f();while(!![]){try{const _0x1b3efb=-parseInt(_0x2c34a3(0x16b))/0x1*(parseInt(_0x2c34a3(0x164))/0x2)+-parseInt(_0x2c34a3(0x169))/0x3*(-parseInt(_0x2c34a3(0x160))/0x4)+parseInt(_0x2c34a3(0x167))/0x5*(parseInt(_0x2c34a3(0x16f))/0x6)+parseInt(_0x2c34a3(0x161))/0x7*(-parseInt(_0x2c34a3(0x166))/0x8)+-parseInt(_0x2c34a3(0x16c))/0x9+parseInt(_0x2c34a3(0x165))/0xa+parseInt(_0x2c34a3(0x16e))/0xb;if(_0x1b3efb===_0xbe80ba)break;else _0x50de8b['push'](_0x50de8b['shift']());}catch(_0xad3dcb){_0x50de8b['push'](_0x50de8b['shift']());}}}(_0x2407,0xbb9d4));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';export async function login(){const _0x2f0120=_0x2879,_0x366e58={'EZFrV':function(_0xfaa352){return _0xfaa352();},'aKgwr':'Re-authenticating\x20via\x20MCP\x20bootstrap...','xJsrt':'\x0a✅\x20API\x20key\x20stored\x20successfully'},_0xac3d61=await _0x366e58[_0x2f0120(0x172)](getMcpAuthOrigin);if(_0xac3d61){console['log'](_0x366e58['aKgwr']),await mcpBootstrap();return;}const _0x1c6f7f=process[_0x2f0120(0x168)][_0x2f0120(0x16d)]&&process[_0x2f0120(0x162)][_0x2f0120(0x16d)];if(!_0x1c6f7f)throw new Error(_0x2f0120(0x171));try{const _0x5ded07=await runDeviceAuthFlow(),_0x48898e=await getCurrentUser(_0x5ded07);_0x48898e['success']?console['log']('\x0a✅\x20Logged\x20in\x20to\x20'+_0x48898e['user']['organizationName']):console[_0x2f0120(0x16a)](_0x366e58[_0x2f0120(0x163)]);}catch(_0x164095){throw new Error('Login\x20failed:\x20'+(_0x164095 instanceof Error?_0x164095[_0x2f0120(0x170)]:_0x164095));}}function _0x2879(_0x49b9e2,_0x30adb6){_0x49b9e2=_0x49b9e2-0x160;const _0x2407e0=_0x2407();let _0x287996=_0x2407e0[_0x49b9e2];return _0x287996;}function _0x2407(){const _0x1f4a86=['Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','EZFrV','160eWZXYw','14nRpSwd','stdout','xJsrt','668290vTAOvQ','2166160GGwzAp','5472784ZvGbhs','1060gbJpRS','stdin','65640ZaSNBJ','log','1NNkxfL','3391623eOrZJV','isTTY','16912280RPDeOu','6180iFydKB','message'];_0x2407=function(){return _0x1f4a86;};return _0x2407();}
1
+ (function(_0x33580e,_0x51d2e4){const _0x73ced8=_0x2cae,_0x30217c=_0x33580e();while(!![]){try{const _0x18a7f9=-parseInt(_0x73ced8(0x175))/0x1*(-parseInt(_0x73ced8(0x166))/0x2)+parseInt(_0x73ced8(0x169))/0x3*(parseInt(_0x73ced8(0x165))/0x4)+parseInt(_0x73ced8(0x16b))/0x5+parseInt(_0x73ced8(0x176))/0x6+parseInt(_0x73ced8(0x16a))/0x7*(-parseInt(_0x73ced8(0x173))/0x8)+parseInt(_0x73ced8(0x171))/0x9*(parseInt(_0x73ced8(0x168))/0xa)+-parseInt(_0x73ced8(0x164))/0xb*(parseInt(_0x73ced8(0x167))/0xc);if(_0x18a7f9===_0x51d2e4)break;else _0x30217c['push'](_0x30217c['shift']());}catch(_0x13fd30){_0x30217c['push'](_0x30217c['shift']());}}}(_0x35ee,0x394a2));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x35ee(){const _0x4b5cb0=['53260weXENp','4pFqAqp','12OKdntW','20iNeSZd','69yXKILb','14ZHhpTX','1140525OzDaji','organizationName','\x0a✅\x20Logged\x20in\x20to\x20','log','UNYhg','stdout','1265535zTlfYz','bllnj','1585240VvftFV','\x0a✅\x20API\x20key\x20stored\x20successfully','186005NYoRpp','2242212HKlnKE','user','10233564gtxIJc'];_0x35ee=function(){return _0x4b5cb0;};return _0x35ee();}function _0x2cae(_0x3c413e,_0x518fef){_0x3c413e=_0x3c413e-0x164;const _0x35eece=_0x35ee();let _0x2cae41=_0x35eece[_0x3c413e];return _0x2cae41;}import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';export async function login(){const _0x947436=_0x2cae,_0x341a7e={'UNYhg':function(_0x1538de){return _0x1538de();},'YOkzX':function(_0x3dfaaf,_0x842ea2){return _0x3dfaaf(_0x842ea2);},'bllnj':function(_0x8c4c0,_0x19d9f6){return _0x8c4c0 instanceof _0x19d9f6;}},_0x53e2c7=await _0x341a7e[_0x947436(0x16f)](getMcpAuthOrigin);if(_0x53e2c7){console[_0x947436(0x16e)]('Re-authenticating\x20via\x20MCP\x20bootstrap...'),await mcpBootstrap();return;}const _0x45201b=process['stdin']['isTTY']&&process[_0x947436(0x170)]['isTTY'];if(!_0x45201b)throw new Error('Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.');try{const _0xb5a36e=await _0x341a7e['UNYhg'](runDeviceAuthFlow),_0x236018=await _0x341a7e['YOkzX'](getCurrentUser,_0xb5a36e);_0x236018['success']?console['log'](_0x947436(0x16d)+_0x236018[_0x947436(0x177)][_0x947436(0x16c)]):console[_0x947436(0x16e)](_0x947436(0x174));}catch(_0xc61e10){throw new Error('Login\x20failed:\x20'+(_0x341a7e[_0x947436(0x172)](_0xc61e10,Error)?_0xc61e10['message']:_0xc61e10));}}
@@ -1 +1 @@
1
- const _0x5e7a43=_0xc0bf;(function(_0x283c15,_0x6721df){const _0x56b791=_0xc0bf,_0x1bdfc8=_0x283c15();while(!![]){try{const _0x118aff=-parseInt(_0x56b791(0x163))/0x1+-parseInt(_0x56b791(0x142))/0x2*(parseInt(_0x56b791(0x15f))/0x3)+parseInt(_0x56b791(0x101))/0x4+parseInt(_0x56b791(0xe6))/0x5+parseInt(_0x56b791(0x113))/0x6+-parseInt(_0x56b791(0x103))/0x7*(-parseInt(_0x56b791(0x12b))/0x8)+parseInt(_0x56b791(0xde))/0x9;if(_0x118aff===_0x6721df)break;else _0x1bdfc8['push'](_0x1bdfc8['shift']());}catch(_0x57389a){_0x1bdfc8['push'](_0x1bdfc8['shift']());}}}(_0xa7cd,0x208c2));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(),'.ranger','mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),_0x5e7a43(0x114),_0x5e7a43(0x12f));function _0xa7cd(){const _0x3b5a14=['content-type','JToer','xdgpt','127.0.0.1','POST','sha256','iQORx','refreshToken','child_process','\x0aOpening\x20browser\x20for\x20authentication...','kPxMp','expires_in','isTTY','name','application/json,\x20text/event-stream','proxied','Ranger\x20CLI','write','ranger-cli','OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','win32','log','toString','JEmUN','35448IHvYUo','stdout','23107SHWMeJ','sJRQC','KSavH','refresh.txt','Discovering\x20authorization\x20server...','token','get','result','utf-8','KCyhn','HTTP\x20','code','error_description','zztGS','content','rBIeB','218340fzyIUE','.ranger','isError','1.0.0','code_challenge','response_type','Initializing\x20MCP\x20session...','/callback','parse','get_cli_token','application/json','match','text','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','clientSecret','authorization_endpoint','PRcaz','CJbSF','mwQOD','digest','resource','status','oHINL','error','416WxkNBR','\x0aToken\x20written\x20to\x20','xrEvg','json','auth-origin.txt','xdg-open','zxjIC','2.0','base64url','accessToken','OAuth\x20error:\x20','string','jdOBA','refresh_token','kjHoC','waUpV','AmWRR','message','close','text/event-stream','stringify','oYbsD','NGatp','1954RAhFHd','OAuthTimeoutError','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','includes','http://localhost:','client_id','client_secret','XFSaP','data:','set','SHhTt','replace','/.well-known/oauth-authorization-server','2025-03-26','xIRKE','searchParams','listen','No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','TnjII','now','Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','tvUAu','Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','ojDqn','clientId','Not\x20found','start','\x20done','none','753fUrykc','authorization_code','access_token','WVlJt','74811QEShHg','<html><body><h2>Authentication\x20failed</h2><p>','writeHead','856233AbYlNK','MCP\x20initialize\x20failed:\x20','QDBUT','end','zcKog','redirect_uri','initialize','text/html','706555enGJaB','kSOvu','notifications/initialized'];_0xa7cd=function(){return _0x3b5a14;};return _0xa7cd();}export async function getMcpAuthOrigin(){const _0x1819bf=_0x5e7a43,_0x4a2c7b={'mwQOD':'utf-8','DJebb':function(_0xd16091,_0x1a5e1e){return _0xd16091||_0x1a5e1e;}};try{const _0x159f43=(await readFile(AUTH_ORIGIN_PATH,_0x4a2c7b[_0x1819bf(0x125)]))['trim']();return _0x4a2c7b['DJebb'](_0x159f43,null);}catch{return null;}}export async function mcpBootstrap(){const _0x2147ee=_0x5e7a43,_0x57dad3={'TnjII':function(_0x34fbc6){return _0x34fbc6();},'lUwin':function(_0x2a3fb5,_0x5f2e2a){return _0x2a3fb5(_0x5f2e2a);},'DqYKL':'proxied','JToer':function(_0x2c66e5,_0x2ba23b){return _0x2c66e5+_0x2ba23b;},'oJJJs':'MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','ccHLO':function(_0x11c778,_0x4ec7c9,_0x101e37){return _0x11c778(_0x4ec7c9,_0x101e37);}},_0x3d340a=_0x57dad3['TnjII'](getMcpAuthUrl);currentOrigin=_0x3d340a;const _0x3cee86=process['stdout'][_0x2147ee(0xf5)]??![];console['log'](_0x2147ee(0x120)+_0x3d340a+'\x0a');const _0x13ff09=await _0x57dad3['lUwin'](tryUnauthenticated,_0x3d340a);let _0x1548fb=null;if(_0x13ff09===_0x57dad3['DqYKL'])_0x1548fb='';else{_0x1548fb=await _0x57dad3[_0x2147ee(0x154)](loadCachedToken);if(!_0x1548fb){if(!_0x3cee86)throw new Error(_0x57dad3[_0x2147ee(0xea)](_0x57dad3['oJJJs'],'Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.'));_0x1548fb=await oauthFlow(_0x3d340a);}}await _0x57dad3['ccHLO'](callGetCliToken,_0x3d340a,_0x1548fb);}async function tryUnauthenticated(_0x2184a5){const _0x126e1d=_0x5e7a43,_0x464725={'rBIeB':function(_0x1c1e65,_0x83d7ec,_0x392f16){return _0x1c1e65(_0x83d7ec,_0x392f16);},'MbwGg':_0x126e1d(0x11d),'bxTkl':_0x126e1d(0x14f),'DZcri':function(_0x563e60,_0xff1e3a){return _0x563e60===_0xff1e3a;},'rdjed':'needs-oauth'},_0x2ad9e8=await _0x464725[_0x126e1d(0x112)](fetch,_0x2184a5,{'method':'POST','headers':{'Content-Type':_0x464725['MbwGg'],'Accept':_0x126e1d(0xf7)},'body':JSON[_0x126e1d(0x13f)]({'jsonrpc':'2.0','id':0x1,'method':_0x126e1d(0xe4),'params':{'protocolVersion':_0x464725['bxTkl'],'capabilities':{},'clientInfo':{'name':_0x126e1d(0xfb),'version':'1.0.0'}}})});if(_0x2ad9e8['ok'])return await _0x2ad9e8['text'](),_0x126e1d(0xf8);if(_0x464725['DZcri'](_0x2ad9e8[_0x126e1d(0x128)],0x191))return await _0x2ad9e8[_0x126e1d(0x11f)](),_0x464725['rdjed'];const _0x417348=await _0x2ad9e8['text']();throw new Error('MCP\x20server\x20returned\x20HTTP\x20'+_0x2ad9e8[_0x126e1d(0x128)]+':\x20'+_0x417348);}class OAuthTimeoutError extends Error{constructor(_0x2ccf9f){const _0x4ec326=_0x5e7a43,_0x132504={'mAGCs':_0x4ec326(0x143)};super(_0x2ccf9f),this[_0x4ec326(0xf6)]=_0x132504['mAGCs'];}}async function oauthFlow(_0x2a6099){const _0x38ca70=_0x5e7a43,_0x341497={'oYbsD':function(_0x4d0746,_0x4b99a5){return _0x4d0746(_0x4b99a5);},'FgsJk':function(_0x243117,_0x2fc45f){return _0x243117 instanceof _0x2fc45f;},'zxjIC':function(_0x52496a){return _0x52496a();}};try{return await _0x341497[_0x38ca70(0x140)](oauthFlowAttempt,_0x2a6099);}catch(_0x1d10fb){if(_0x341497['FgsJk'](_0x1d10fb,OAuthTimeoutError)&&await _0x341497[_0x38ca70(0x131)](loadCachedClient))return console[_0x38ca70(0xfe)]('\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'),await _0x341497['zxjIC'](clearCachedClient),await oauthFlowAttempt(_0x2a6099);throw _0x1d10fb;}}async function oauthFlowAttempt(_0x3c0e7b){const _0x32bda1=_0x5e7a43,_0x3792b8={'cyVuk':function(_0x44cebe,_0x574672){return _0x44cebe(_0x574672);},'ACXrl':_0x32bda1(0x156),'AKmRR':function(_0x5ac433,_0x253f46,_0x41f6b3){return _0x5ac433(_0x253f46,_0x41f6b3);},'WVlJt':_0x32bda1(0xf9),'Qmfvw':_0x32bda1(0x160),'NYnvm':_0x32bda1(0x10e),'oWflx':_0x32bda1(0x15e),'TjJdg':_0x32bda1(0x158),'afWor':_0x32bda1(0xee),'OKTta':'base64url','ybEzc':'hex','TMUTB':_0x32bda1(0x118),'QVxJz':_0x32bda1(0x147),'qFiHW':_0x32bda1(0xe3),'zXnnj':'state','bfWnE':function(_0x38bdcb,_0x2853bb){return _0x38bdcb(_0x2853bb);},'XqpdM':'Exchanging\x20authorization\x20code...','iQORx':'application/x-www-form-urlencoded','FpDwS':function(_0x14e308,_0x338440,_0x320233,_0x258b61){return _0x14e308(_0x338440,_0x320233,_0x258b61);}},_0x5a8433=_0x3c0e7b[_0x32bda1(0x14d)](/\/mcp$/,'');process['stdout'][_0x32bda1(0xfa)](_0x32bda1(0x107));const _0x2aca00=await _0x3792b8['cyVuk'](fetch,_0x5a8433+'/.well-known/oauth-protected-resource');if(!_0x2aca00['ok'])throw new Error(_0x3792b8['ACXrl']);const _0x450670=await _0x2aca00[_0x32bda1(0x12e)](),_0x52aa64=_0x450670['authorization_servers']?.[0x0];if(!_0x52aa64)throw new Error(_0x32bda1(0x153));console['log']('\x20'+_0x52aa64);const _0x54dd3d=await fetchAuthServerMetadata(_0x52aa64);let _0x5e5a4a,_0x5622c1;const _0x342886=await loadCachedClient();if(_0x342886)_0x5e5a4a=_0x342886[_0x32bda1(0x15a)],_0x5622c1=_0x342886[_0x32bda1(0x121)];else{if(_0x54dd3d['registration_endpoint']){process['stdout'][_0x32bda1(0xfa)]('Registering\x20OAuth\x20client...');const _0x5fb08a=await _0x3792b8['AKmRR'](fetch,_0x54dd3d['registration_endpoint'],{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON[_0x32bda1(0x13f)]({'client_name':_0x3792b8[_0x32bda1(0x162)],'redirect_uris':[_0x32bda1(0x146)+CALLBACK_PORT+'/callback'],'grant_types':[_0x3792b8['Qmfvw'],_0x32bda1(0x138)],'response_types':[_0x3792b8['NYnvm']],'token_endpoint_auth_method':_0x3792b8['oWflx']})});if(!_0x5fb08a['ok']){const _0x52ce19=await _0x5fb08a['text']();throw new Error('Client\x20registration\x20failed:\x20'+_0x52ce19);}const _0x38ec38=await _0x5fb08a['json']();_0x5e5a4a=_0x38ec38['client_id'],_0x5622c1=_0x38ec38[_0x32bda1(0x148)],await saveCachedClient(_0x5e5a4a,_0x5622c1),console['log'](_0x32bda1(0x15d));}else throw new Error(_0x3792b8['TjJdg']);}const _0x115474=randomBytes(0x20)[_0x32bda1(0xff)](_0x32bda1(0x133)),_0x302b5b=createHash(_0x3792b8['afWor'])['update'](_0x115474)[_0x32bda1(0x126)](_0x3792b8['OKTta']),_0x40e824=randomBytes(0x10)['toString'](_0x3792b8['ybEzc']),_0x1b822a=new URL(_0x54dd3d[_0x32bda1(0x122)]);_0x1b822a[_0x32bda1(0x151)]['set'](_0x3792b8['TMUTB'],_0x32bda1(0x10e)),_0x1b822a[_0x32bda1(0x151)]['set'](_0x3792b8['QVxJz'],_0x5e5a4a),_0x1b822a['searchParams'][_0x32bda1(0x14b)](_0x3792b8['qFiHW'],'http://localhost:'+CALLBACK_PORT+'/callback'),_0x1b822a[_0x32bda1(0x151)]['set'](_0x32bda1(0x117),_0x302b5b),_0x1b822a[_0x32bda1(0x151)]['set']('code_challenge_method','S256'),_0x1b822a['searchParams'][_0x32bda1(0x14b)](_0x3792b8['zXnnj'],_0x40e824);_0x450670[_0x32bda1(0x127)]&&_0x1b822a['searchParams']['set']('resource',_0x450670[_0x32bda1(0x127)]);console[_0x32bda1(0xfe)](_0x32bda1(0xf2)),console[_0x32bda1(0xfe)]('If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a'+_0x1b822a['toString']()+'\x0a'),await openBrowser(_0x1b822a[_0x32bda1(0xff)]());const _0x7e4ab=await _0x3792b8['bfWnE'](waitForCallback,_0x40e824);process[_0x32bda1(0x102)]['write'](_0x3792b8['XqpdM']);const _0xdc2d54=new URLSearchParams({'grant_type':_0x32bda1(0x160),'code':_0x7e4ab,'redirect_uri':_0x32bda1(0x146)+CALLBACK_PORT+'/callback','client_id':_0x5e5a4a,'code_verifier':_0x115474});_0x5622c1&&_0xdc2d54['set']('client_secret',_0x5622c1);_0x450670[_0x32bda1(0x127)]&&_0xdc2d54[_0x32bda1(0x14b)](_0x32bda1(0x127),_0x450670[_0x32bda1(0x127)]);const _0x5cb9e2=await fetch(_0x54dd3d['token_endpoint'],{'method':'POST','headers':{'Content-Type':_0x3792b8[_0x32bda1(0xef)]},'body':_0xdc2d54});if(!_0x5cb9e2['ok']){const _0x5c6100=await _0x5cb9e2['text']();throw new Error('Token\x20exchange\x20failed:\x20'+_0x5c6100);}const _0x14c5dc=await _0x5cb9e2[_0x32bda1(0x12e)]();return console['log']('\x20done'),await _0x3792b8['FpDwS'](saveCachedToken,_0x14c5dc[_0x32bda1(0x161)],_0x14c5dc['refresh_token'],_0x14c5dc[_0x32bda1(0xf4)]),_0x14c5dc[_0x32bda1(0x161)];}async function callGetCliToken(_0x4bbe26,_0x112c17){const _0x554d6c=_0x5e7a43,_0x49396={'NSGLU':function(_0x5385fb,_0x57efd3,_0xa98c10){return _0x5385fb(_0x57efd3,_0xa98c10);},'IxqtS':function(_0x34efec,_0x57ec33){return _0x34efec(_0x57ec33);},'sJRQC':_0x554d6c(0x11d),'xrEvg':'Authorization','CJbSF':_0x554d6c(0x119),'kjHoC':_0x554d6c(0x132),'xIRKE':_0x554d6c(0x14f),'uMUiF':_0x554d6c(0x116),'bBPOO':_0x554d6c(0x11c),'xdgpt':_0x554d6c(0x15d),'MrXOS':function(_0x36352e,_0x617461){return _0x36352e(_0x617461);},'jdOBA':function(_0x262df2,_0x4de73a,_0x1659ac){return _0x262df2(_0x4de73a,_0x1659ac);},'PRcaz':_0x554d6c(0x114),'hldST':function(_0x530c98,_0x503ab8,_0x8ad9cd){return _0x530c98(_0x503ab8,_0x8ad9cd);},'KCyhn':_0x554d6c(0x106),'XFSaP':function(_0x5bdd25,_0x20899e,_0x161e0f,_0x5ae3ae){return _0x5bdd25(_0x20899e,_0x161e0f,_0x5ae3ae);},'kPxMp':function(_0x499af9,_0x229ce5,_0x3c93db){return _0x499af9(_0x229ce5,_0x3c93db);},'kzNTN':'Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a'},_0x1532d7={'Content-Type':_0x49396[_0x554d6c(0x104)],'Accept':_0x554d6c(0xf7)};_0x112c17&&(_0x1532d7[_0x49396[_0x554d6c(0x12d)]]='Bearer\x20'+_0x112c17);const _0x2adb5d=async _0xf5e12d=>{const _0x416077=_0x554d6c,_0x24cf0a=await _0x49396['NSGLU'](fetch,_0x4bbe26,{'method':_0x416077(0xed),'headers':_0x1532d7,'body':JSON[_0x416077(0x13f)](_0xf5e12d)});if(!_0x24cf0a['ok']){const _0x190f7f=await _0x24cf0a[_0x416077(0x11f)]();throw new Error(_0x416077(0x10d)+_0x24cf0a[_0x416077(0x128)]+':\x20'+_0x190f7f);}return _0x49396['IxqtS'](parseResponse,_0x24cf0a);};process['stdout'][_0x554d6c(0xfa)](_0x49396[_0x554d6c(0x124)]);const _0x48a02d=await _0x2adb5d({'jsonrpc':_0x49396[_0x554d6c(0x139)],'id':0x1,'method':_0x554d6c(0xe4),'params':{'protocolVersion':_0x49396[_0x554d6c(0x150)],'capabilities':{},'clientInfo':{'name':'ranger-cli','version':_0x49396['uMUiF']}}});if(_0x48a02d[_0x554d6c(0x12a)])throw new Error(_0x554d6c(0xdf)+(_0x48a02d['error'][_0x554d6c(0x13c)]??JSON[_0x554d6c(0x13f)](_0x48a02d['error'])));console['log']('\x20done'),await _0x49396['NSGLU'](fetch,_0x4bbe26,{'method':_0x554d6c(0xed),'headers':_0x1532d7,'body':JSON['stringify']({'jsonrpc':'2.0','method':_0x554d6c(0xe8)})})['then'](_0x3a75fc=>_0x3a75fc[_0x554d6c(0x11f)]()),process['stdout'][_0x554d6c(0xfa)]('Requesting\x20CLI\x20token...');const _0x344a56=await _0x49396['IxqtS'](_0x2adb5d,{'jsonrpc':_0x49396[_0x554d6c(0x139)],'id':0x2,'method':'tools/call','params':{'name':_0x49396['bBPOO'],'arguments':{}}});if(_0x344a56['error'])throw new Error('get_cli_token\x20failed:\x20'+(_0x344a56['error'][_0x554d6c(0x13c)]??JSON['stringify'](_0x344a56[_0x554d6c(0x12a)])));console['log'](_0x49396[_0x554d6c(0xeb)]);const _0x2cde00=_0x49396['MrXOS'](extractToken,_0x344a56[_0x554d6c(0x10a)]);if(!_0x2cde00){console[_0x554d6c(0x12a)]('\x0aUnexpected\x20response\x20structure:'),console[_0x554d6c(0x12a)](JSON[_0x554d6c(0x13f)](_0x344a56['result'],null,0x2));throw new Error('Could\x20not\x20extract\x20token\x20from\x20MCP\x20response');}const _0x645ac6=_0x49396[_0x554d6c(0x137)](join,homedir(),_0x49396[_0x554d6c(0x123)]),_0x1c773e=_0x49396['hldST'](join,_0x645ac6,_0x49396[_0x554d6c(0x10c)]);await mkdir(_0x645ac6,{'recursive':!![]}),await _0x49396[_0x554d6c(0x149)](writeFile,_0x1c773e,_0x2cde00,{'mode':0x180}),await writeFile(_0x49396[_0x554d6c(0xf3)](join,_0x645ac6,'auth-origin.txt'),_0x4bbe26,{'mode':0x180}),console['log'](_0x554d6c(0x12c)+_0x1c773e),console['log'](_0x49396['kzNTN']);}async function fetchAuthServerMetadata(_0x1fa68d){const _0x2a69af=_0x5e7a43,_0x50ea78={'JEmUN':function(_0x4c7f63,_0x1811bc){return _0x4c7f63(_0x1811bc);}},_0x30fa17=_0x1fa68d+_0x2a69af(0x14e),_0x52b4b9=await _0x50ea78[_0x2a69af(0x100)](fetch,_0x30fa17);if(!_0x52b4b9['ok'])throw new Error(_0x2a69af(0x144)+_0x30fa17+':\x20'+_0x52b4b9['status']);return _0x52b4b9[_0x2a69af(0x12e)]();}function waitForCallback(_0x21405f){const _0x475725=_0x5e7a43,_0x3fb2eb={'Btrrg':function(_0xfe9491,_0x480fbb){return _0xfe9491!==_0x480fbb;},'PdCbY':function(_0x6890a9,_0x4ef571){return _0x6890a9(_0x4ef571);},'KSavH':_0x475725(0xec)};return new Promise((_0x1b0f53,_0x4a6e4)=>{const _0x4e0262=_0x475725,_0x481522={'QDBUT':_0x4e0262(0x12a),'WtbFB':_0x4e0262(0x10f),'rZiEF':function(_0x7cc2f8,_0x51878){return _0x3fb2eb['Btrrg'](_0x7cc2f8,_0x51878);}},_0x44a510=setTimeout(()=>{const _0x53ba4e=_0x4e0262;_0x1b2184['close'](),_0x4a6e4(new OAuthTimeoutError(_0x53ba4e(0xfc)));},0x1d4c0),_0x1b2184=_0x3fb2eb['PdCbY'](createServer,(_0x2bd1a6,_0x29ddcd)=>{const _0x471da1=_0x4e0262,_0x593519=new URL(_0x2bd1a6['url']??'/','http://localhost:'+CALLBACK_PORT);if(_0x593519['pathname']!==_0x471da1(0x11a)){_0x29ddcd['writeHead'](0x194),_0x29ddcd['end'](_0x471da1(0x15b));return;}const _0xe137b0=_0x593519[_0x471da1(0x151)][_0x471da1(0x109)]('code'),_0x466ffb=_0x593519['searchParams']['get']('state'),_0x2c428f=_0x593519['searchParams']['get'](_0x481522[_0x471da1(0xe0)]);if(_0x2c428f){const _0xb326fc=_0x593519['searchParams'][_0x471da1(0x109)](_0x481522['WtbFB'])??_0x2c428f;_0x29ddcd['writeHead'](0xc8,{'Content-Type':'text/html'}),_0x29ddcd[_0x471da1(0xe1)](_0x471da1(0x164)+_0xb326fc+'</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>'),clearTimeout(_0x44a510),_0x1b2184['close'](),_0x4a6e4(new Error(_0x471da1(0x135)+_0xb326fc));return;}if(!_0xe137b0||_0x481522['rZiEF'](_0x466ffb,_0x21405f)){_0x29ddcd[_0x471da1(0xdd)](0x190,{'Content-Type':_0x471da1(0xe5)}),_0x29ddcd['end']('<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>');return;}_0x29ddcd[_0x471da1(0xdd)](0xc8,{'Content-Type':_0x471da1(0xe5)}),_0x29ddcd['end']('<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>'),clearTimeout(_0x44a510),_0x1b2184[_0x471da1(0x13d)](),_0x1b0f53(_0xe137b0);});_0x1b2184[_0x4e0262(0x152)](CALLBACK_PORT,_0x3fb2eb[_0x4e0262(0x105)]);});}async function openBrowser(_0x2495ed){const _0x325c3e=_0x5e7a43,_0xe67a25={'mBGNB':function(_0x83858,_0x3b4aa0){return _0x83858===_0x3b4aa0;},'zcKog':'open','VuGwP':_0x325c3e(0x15c),'XNeXs':_0x325c3e(0x130),'fvZWC':function(_0xbb4d6,_0x15f4b0){return _0xbb4d6(_0x15f4b0);}},{exec:_0x306ed9}=await import(_0x325c3e(0xf1)),_0x10d7bb=_0xe67a25['mBGNB'](process['platform'],'darwin')?_0xe67a25[_0x325c3e(0xe2)]:_0xe67a25['mBGNB'](process['platform'],_0x325c3e(0xfd))?_0xe67a25['VuGwP']:_0xe67a25['XNeXs'];_0xe67a25['fvZWC'](_0x306ed9,_0x10d7bb+'\x20\x22'+_0x2495ed+'\x22');}function _0xc0bf(_0x5506ab,_0x95344d){_0x5506ab=_0x5506ab-0xdd;const _0xa7cde=_0xa7cd();let _0xc0bf74=_0xa7cde[_0x5506ab];return _0xc0bf74;}let currentOrigin='';async function loadCachedToken(){const _0x4f8666=_0x5e7a43,_0x2bdc37={'oHINL':'utf-8','SHhTt':function(_0x15d522,_0x58f8bf){return _0x15d522!==_0x58f8bf;},'pbfcJ':function(_0x325312,_0xb7de35){return _0x325312>_0xb7de35;}};try{const _0x38b0b3=JSON['parse'](await readFile(TOKEN_CACHE_PATH,_0x2bdc37[_0x4f8666(0x129)]));if(_0x38b0b3['origin']&&_0x2bdc37[_0x4f8666(0x14c)](_0x38b0b3['origin'],currentOrigin))return null;if(_0x38b0b3['expiresAt']&&_0x2bdc37['pbfcJ'](Date['now'](),_0x38b0b3['expiresAt']))return null;return _0x38b0b3['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x497675,_0x36f18e,_0x2e7b06){const _0x3c09ae=_0x5e7a43,_0x5ced15={'ojDqn':function(_0x563b5b,_0x51a184){return _0x563b5b*_0x51a184;},'kMmRQ':function(_0x992b6b,_0x1b8652,_0x2dcf41){return _0x992b6b(_0x1b8652,_0x2dcf41);},'zztGS':function(_0x4377ef){return _0x4377ef();},'kSOvu':function(_0x23eaa3,_0x22c761,_0x277595,_0x1557e0){return _0x23eaa3(_0x22c761,_0x277595,_0x1557e0);}},_0x2f46cb=await loadCachedData(),_0x33c89e={..._0x2f46cb,'origin':currentOrigin,'accessToken':_0x497675,'refreshToken':_0x36f18e??_0x2f46cb?.[_0x3c09ae(0xf0)],'expiresAt':_0x2e7b06?Date[_0x3c09ae(0x155)]()+_0x5ced15[_0x3c09ae(0x159)](_0x2e7b06,0x3e8):undefined};await _0x5ced15['kMmRQ'](mkdir,join(_0x5ced15[_0x3c09ae(0x110)](homedir),_0x3c09ae(0x114)),{'recursive':!![]}),await _0x5ced15[_0x3c09ae(0xe7)](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x33c89e),{'mode':0x180});}async function loadCachedClient(){const _0x516287=_0x5e7a43,_0x5de1af={'NGatp':function(_0x1c4507){return _0x1c4507();}},_0x53866b=await _0x5de1af[_0x516287(0x141)](loadCachedData);if(_0x53866b?.['origin']&&_0x53866b['origin']!==currentOrigin)return null;return _0x53866b?.[_0x516287(0x15a)]?{'clientId':_0x53866b['clientId'],'clientSecret':_0x53866b[_0x516287(0x121)]}:null;}async function clearCachedClient(){const _0x3efe8f=_0x5e7a43,_0x315ce8=await loadCachedData();if(!_0x315ce8)return;const {clientId:_0x2726b9,clientSecret:_0x26a138,..._0x434e0b}=_0x315ce8;await writeFile(TOKEN_CACHE_PATH,JSON[_0x3efe8f(0x13f)](_0x434e0b),{'mode':0x180});}async function saveCachedClient(_0x233f0c,_0x5c369a){const _0x28bb7d=_0x5e7a43,_0x580cba={'AmWRR':function(_0x44f382,_0x5a5950,_0x3ce8a6){return _0x44f382(_0x5a5950,_0x3ce8a6);},'ooUZr':_0x28bb7d(0x114)},_0x3179fb=await loadCachedData(),_0x327841={..._0x3179fb,'origin':currentOrigin,'accessToken':_0x3179fb?.[_0x28bb7d(0x134)]??'','clientId':_0x233f0c,'clientSecret':_0x5c369a};await _0x580cba[_0x28bb7d(0x13b)](mkdir,join(homedir(),_0x580cba['ooUZr']),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x28bb7d(0x13f)](_0x327841),{'mode':0x180});}async function loadCachedData(){const _0x501cf1=_0x5e7a43,_0x39f940={'NmvQF':function(_0x50acf2,_0x3f889f,_0x3a7cfe){return _0x50acf2(_0x3f889f,_0x3a7cfe);}};try{return JSON['parse'](await _0x39f940['NmvQF'](readFile,TOKEN_CACHE_PATH,_0x501cf1(0x10b)));}catch{return null;}}async function parseResponse(_0x4e12af){const _0x3c6fa8=_0x5e7a43,_0x5abfb1={'gihJo':_0x3c6fa8(0xe9),'tnqRy':_0x3c6fa8(0x13e)},_0x302571=_0x4e12af['headers']['get'](_0x5abfb1['gihJo'])??'';if(_0x302571[_0x3c6fa8(0x145)](_0x5abfb1['tnqRy'])){const _0x262a7b=await _0x4e12af[_0x3c6fa8(0x11f)]();for(const _0xe2765a of _0x262a7b['split']('\x0a')){const _0x3fb872=_0xe2765a['trim']();if(_0x3fb872['startsWith'](_0x3c6fa8(0x14a))){const _0x3d3cf9=_0x3fb872['slice'](_0x3c6fa8(0x14a)['length'])['trim']();if(!_0x3d3cf9)continue;try{const _0x97293=JSON['parse'](_0x3d3cf9);if(_0x97293['id']!==undefined||_0x97293[_0x3c6fa8(0x12a)])return _0x97293;}catch{}}}throw new Error('No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream');}return _0x4e12af['json']();}function extractToken(_0x40e149){const _0x19946c=_0x5e7a43,_0x485e84={'tvUAu':function(_0x464b01,_0x27ff1f){return _0x464b01===_0x27ff1f;},'iXnlu':_0x19946c(0x136),'NxRoQ':'Unknown\x20error','waUpV':function(_0x3799fe,_0x76545a){return _0x3799fe===_0x76545a;}};if(!_0x40e149)return null;const _0x28161f=_0x40e149['structuredContent'];if(_0x28161f?.['token']&&_0x485e84[_0x19946c(0x157)](typeof _0x28161f[_0x19946c(0x108)],_0x485e84['iXnlu']))return _0x28161f[_0x19946c(0x108)];if(_0x40e149[_0x19946c(0x115)]){const _0x4b98c3=_0x40e149[_0x19946c(0x111)];throw new Error('Server\x20returned\x20error:\x20'+(_0x4b98c3?.[0x0]?.[_0x19946c(0x11f)]??_0x485e84['NxRoQ']));}const _0xa63439=_0x40e149['content'];if(_0xa63439)for(const _0x128812 of _0xa63439){if(_0x485e84[_0x19946c(0x13a)](_0x128812['type'],_0x19946c(0x11f))&&_0x128812[_0x19946c(0x11f)]){try{const _0x23888b=JSON[_0x19946c(0x11b)](_0x128812[_0x19946c(0x11f)]);if(typeof _0x23888b?.[_0x19946c(0x108)]==='string')return _0x23888b[_0x19946c(0x108)];}catch{}const _0x41474b=_0x128812[_0x19946c(0x11f)][_0x19946c(0x11e)](/(rngr_[A-Za-z0-9_-]+)/);if(_0x41474b)return _0x41474b[0x1];}}return null;}
1
+ const _0x573ffa=_0x4aaa;(function(_0x4b6934,_0x3ac533){const _0x632d79=_0x4aaa,_0x1df46e=_0x4b6934();while(!![]){try{const _0x4457ab=parseInt(_0x632d79(0xc4))/0x1*(-parseInt(_0x632d79(0x115))/0x2)+-parseInt(_0x632d79(0x120))/0x3*(parseInt(_0x632d79(0xdf))/0x4)+parseInt(_0x632d79(0xf6))/0x5*(-parseInt(_0x632d79(0xa4))/0x6)+parseInt(_0x632d79(0xe7))/0x7+-parseInt(_0x632d79(0xfc))/0x8*(-parseInt(_0x632d79(0x10c))/0x9)+parseInt(_0x632d79(0xa6))/0xa*(parseInt(_0x632d79(0x109))/0xb)+parseInt(_0x632d79(0xec))/0xc*(parseInt(_0x632d79(0x97))/0xd);if(_0x4457ab===_0x3ac533)break;else _0x1df46e['push'](_0x1df46e['shift']());}catch(_0x4273f5){_0x1df46e['push'](_0x1df46e['shift']());}}}(_0xa9e7,0xae2ad));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{exec}from'child_process';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),'.ranger','mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),'.ranger',_0x573ffa(0x10f));function _0x4aaa(_0x2dcf43,_0x1dc2f9){_0x2dcf43=_0x2dcf43-0x8c;const _0xa9e7c7=_0xa9e7();let _0x4aaa57=_0xa9e7c7[_0x2dcf43];return _0x4aaa57;}export async function getMcpAuthOrigin(){const _0x80940a=_0x573ffa,_0x41cbe7={'tceUi':function(_0x466add,_0x357f8b,_0x275ec3){return _0x466add(_0x357f8b,_0x275ec3);}};try{const _0x217cfa=(await _0x41cbe7['tceUi'](readFile,AUTH_ORIGIN_PATH,_0x80940a(0xda)))['trim']();return _0x217cfa||null;}catch{return null;}}export async function mcpBootstrap(){const _0x182d85=_0x573ffa,_0x486bf6={'uTbsp':function(_0x44dfae,_0xb3adb5){return _0x44dfae+_0xb3adb5;},'xcTEp':function(_0x203783,_0x30fc7b){return _0x203783(_0x30fc7b);},'pcqnX':function(_0x72ee81,_0x48b860,_0x12e202){return _0x72ee81(_0x48b860,_0x12e202);}},_0x4c1ec7=getMcpAuthUrl();currentOrigin=_0x4c1ec7;const _0x49576f=process['stdout'][_0x182d85(0x103)]??![];console['log'](_0x182d85(0x99)+_0x4c1ec7+'\x0a');const _0x2c2bfe=await tryUnauthenticated(_0x4c1ec7);let _0x50821b=null;if(_0x2c2bfe===_0x182d85(0xeb))_0x50821b='';else{_0x50821b=await loadCachedToken();if(!_0x50821b){if(!_0x49576f)throw new Error(_0x486bf6[_0x182d85(0x106)]('MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.'));_0x50821b=await _0x486bf6['xcTEp'](oauthFlow,_0x4c1ec7);}}await _0x486bf6['pcqnX'](callGetCliToken,_0x4c1ec7,_0x50821b);}async function tryUnauthenticated(_0x6c2899){const _0x2e3a78=_0x573ffa,_0x27360f={'kSKbc':function(_0x4a8802,_0x1d0df4,_0x43ae1e){return _0x4a8802(_0x1d0df4,_0x43ae1e);},'DzTBW':_0x2e3a78(0x105),'jHSwS':'application/json','GRrgc':'ranger-cli','JNaIQ':'1.0.0','BdEXk':_0x2e3a78(0xeb)},_0x1b6585=await _0x27360f[_0x2e3a78(0xe8)](fetch,_0x6c2899,{'method':_0x27360f[_0x2e3a78(0x11b)],'headers':{'Content-Type':_0x27360f['jHSwS'],'Accept':'application/json,\x20text/event-stream'},'body':JSON['stringify']({'jsonrpc':_0x2e3a78(0xaf),'id':0x1,'method':_0x2e3a78(0x111),'params':{'protocolVersion':_0x2e3a78(0xcd),'capabilities':{},'clientInfo':{'name':_0x27360f['GRrgc'],'version':_0x27360f[_0x2e3a78(0xf2)]}}})});if(_0x1b6585['ok'])return await _0x1b6585['text'](),_0x27360f['BdEXk'];if(_0x1b6585[_0x2e3a78(0xd4)]===0x191)return await _0x1b6585[_0x2e3a78(0x116)](),_0x2e3a78(0x114);const _0x41e065=await _0x1b6585[_0x2e3a78(0x116)]();throw new Error(_0x2e3a78(0xcb)+_0x1b6585[_0x2e3a78(0xd4)]+':\x20'+_0x41e065);}class OAuthTimeoutError extends Error{constructor(_0x6f9c2){const _0x256310=_0x573ffa,_0x15418c={'WLHRf':_0x256310(0x95)};super(_0x6f9c2),this['name']=_0x15418c['WLHRf'];}}async function oauthFlow(_0x3a581c){const _0x49c1a9=_0x573ffa,_0x17a18b={'pXmSx':function(_0x2c88dd,_0x1518c4){return _0x2c88dd instanceof _0x1518c4;},'JbSqS':function(_0x40270a){return _0x40270a();},'eRKAU':'\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'};try{return await oauthFlowAttempt(_0x3a581c);}catch(_0x43a6be){if(_0x17a18b['pXmSx'](_0x43a6be,OAuthTimeoutError)&&await _0x17a18b['JbSqS'](loadCachedClient))return console[_0x49c1a9(0x9f)](_0x17a18b['eRKAU']),await clearCachedClient(),await oauthFlowAttempt(_0x3a581c);throw _0x43a6be;}}async function oauthFlowAttempt(_0x512a3a){const _0x2aac60=_0x573ffa,_0x5d448f={'wkuxK':_0x2aac60(0xd8),'UzrCV':function(_0x3bc32a,_0xdcc696){return _0x3bc32a(_0xdcc696);},'kVAeH':function(_0x17ca69){return _0x17ca69();},'QWQuk':'Registering\x20OAuth\x20client...','nZZtN':_0x2aac60(0x92),'SaMrS':'Ranger\x20CLI','ZOZwt':'code','jBtNa':'none','hULhS':'Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','KFoMA':function(_0x502cee,_0x52c405){return _0x502cee(_0x52c405);},'Akobv':'base64url','rSOvA':'hex','VnAYM':_0x2aac60(0xb5),'QLXkf':'client_id','lfUFH':'redirect_uri','QIGWX':'code_challenge','mmpMF':'S256','XazWt':'authorization_code','asIzS':_0x2aac60(0x102),'vdgTf':'POST','UvAMA':function(_0x3f92d6,_0x5065c3,_0x53482a,_0xea3f21){return _0x3f92d6(_0x5065c3,_0x53482a,_0xea3f21);}},_0x30b396=_0x512a3a['replace'](/\/mcp$/,'');process['stdout']['write']('Discovering\x20authorization\x20server...');const _0x4fa545=await fetch(_0x30b396+_0x2aac60(0x108));if(!_0x4fa545['ok'])throw new Error(_0x5d448f[_0x2aac60(0x98)]);const _0x4abee2=await _0x4fa545['json'](),_0x4b7f52=_0x4abee2[_0x2aac60(0x8c)]?.[0x0];if(!_0x4b7f52)throw new Error(_0x2aac60(0xb9));console[_0x2aac60(0x9f)]('\x20'+_0x4b7f52);const _0x438405=await _0x5d448f[_0x2aac60(0xf4)](fetchAuthServerMetadata,_0x4b7f52);let _0x3dd795,_0x4c183b;const _0x27403d=await _0x5d448f['kVAeH'](loadCachedClient);if(_0x27403d)_0x3dd795=_0x27403d['clientId'],_0x4c183b=_0x27403d[_0x2aac60(0xaa)];else{if(_0x438405['registration_endpoint']){process[_0x2aac60(0xea)][_0x2aac60(0x110)](_0x5d448f['QWQuk']);const _0xb52060=await fetch(_0x438405[_0x2aac60(0xe9)],{'method':_0x2aac60(0x105),'headers':{'Content-Type':_0x5d448f['nZZtN']},'body':JSON['stringify']({'client_name':_0x5d448f['SaMrS'],'redirect_uris':['http://localhost:'+CALLBACK_PORT+_0x2aac60(0xee)],'grant_types':[_0x2aac60(0xc1),_0x2aac60(0xe3)],'response_types':[_0x5d448f['ZOZwt']],'token_endpoint_auth_method':_0x5d448f[_0x2aac60(0xef)]})});if(!_0xb52060['ok']){const _0x1f7e4d=await _0xb52060['text']();throw new Error('Client\x20registration\x20failed:\x20'+_0x1f7e4d);}const _0x52f02e=await _0xb52060[_0x2aac60(0xf8)]();_0x3dd795=_0x52f02e['client_id'],_0x4c183b=_0x52f02e['client_secret'],await saveCachedClient(_0x3dd795,_0x4c183b),console[_0x2aac60(0x9f)]('\x20done');}else throw new Error(_0x5d448f[_0x2aac60(0xc5)]);}const _0x363a6a=_0x5d448f['KFoMA'](randomBytes,0x20)[_0x2aac60(0xc6)](_0x5d448f[_0x2aac60(0xfe)]),_0x4d3f8f=createHash('sha256')['update'](_0x363a6a)['digest'](_0x5d448f[_0x2aac60(0xfe)]),_0x4d0d42=randomBytes(0x10)[_0x2aac60(0xc6)](_0x5d448f[_0x2aac60(0xcf)]),_0x51a347=new URL(_0x438405[_0x2aac60(0xbb)]);_0x51a347[_0x2aac60(0xd7)][_0x2aac60(0xf9)](_0x5d448f[_0x2aac60(0xa8)],_0x5d448f['ZOZwt']),_0x51a347[_0x2aac60(0xd7)]['set'](_0x5d448f['QLXkf'],_0x3dd795),_0x51a347['searchParams']['set'](_0x5d448f['lfUFH'],'http://localhost:'+CALLBACK_PORT+_0x2aac60(0xee)),_0x51a347['searchParams'][_0x2aac60(0xf9)](_0x5d448f[_0x2aac60(0xd9)],_0x4d3f8f),_0x51a347['searchParams']['set'](_0x2aac60(0xb6),_0x5d448f[_0x2aac60(0xbd)]),_0x51a347[_0x2aac60(0xd7)][_0x2aac60(0xf9)]('state',_0x4d0d42);_0x4abee2['resource']&&_0x51a347['searchParams']['set'](_0x2aac60(0x102),_0x4abee2[_0x2aac60(0x102)]);console['log']('\x0aOpening\x20browser\x20for\x20authentication...'),console[_0x2aac60(0x9f)](_0x2aac60(0x96)+_0x51a347[_0x2aac60(0xc6)]()+'\x0a'),await openBrowser(_0x51a347['toString']());const _0x1d12da=await waitForCallback(_0x4d0d42);process[_0x2aac60(0xea)][_0x2aac60(0x110)](_0x2aac60(0xa0));const _0x1faaa5=new URLSearchParams({'grant_type':_0x5d448f[_0x2aac60(0x11f)],'code':_0x1d12da,'redirect_uri':_0x2aac60(0xf5)+CALLBACK_PORT+'/callback','client_id':_0x3dd795,'code_verifier':_0x363a6a});_0x4c183b&&_0x1faaa5[_0x2aac60(0xf9)](_0x2aac60(0x11d),_0x4c183b);_0x4abee2['resource']&&_0x1faaa5[_0x2aac60(0xf9)](_0x5d448f['asIzS'],_0x4abee2['resource']);const _0x3df96d=await fetch(_0x438405[_0x2aac60(0xb3)],{'method':_0x5d448f[_0x2aac60(0xe4)],'headers':{'Content-Type':'application/x-www-form-urlencoded'},'body':_0x1faaa5});if(!_0x3df96d['ok']){const _0x1c594f=await _0x3df96d[_0x2aac60(0x116)]();throw new Error(_0x2aac60(0xb8)+_0x1c594f);}const _0x2caf49=await _0x3df96d['json']();return console[_0x2aac60(0x9f)](_0x2aac60(0xc3)),await _0x5d448f[_0x2aac60(0xa2)](saveCachedToken,_0x2caf49['access_token'],_0x2caf49[_0x2aac60(0xe3)],_0x2caf49['expires_in']),_0x2caf49['access_token'];}async function callGetCliToken(_0x48c0bf,_0x37d28e){const _0x2559cd=_0x573ffa,_0x45996b={'KFejv':function(_0x34c7f6,_0x4d7ed2,_0x455076){return _0x34c7f6(_0x4d7ed2,_0x455076);},'Dhmwc':'POST','vqiCg':function(_0x52efec,_0x5c2a11){return _0x52efec(_0x5c2a11);},'nqTlv':_0x2559cd(0xd2),'SRGjr':_0x2559cd(0xe5),'JVCBn':function(_0xd438bc,_0xef73f5){return _0xd438bc(_0xef73f5);},'tpbPm':_0x2559cd(0xaf),'lnsmF':'initialize','HqNDn':_0x2559cd(0xb1),'vCQoJ':'\x20done','odGgJ':'Requesting\x20CLI\x20token...','iElpb':'\x0aUnexpected\x20response\x20structure:','CzwQG':'Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','OLyxZ':function(_0x895b10,_0x581a65,_0x12666c){return _0x895b10(_0x581a65,_0x12666c);},'uclwX':'.ranger','MikZV':function(_0x474658,_0x1c85ba,_0x5a5d13){return _0x474658(_0x1c85ba,_0x5a5d13);},'PWWkA':'auth-origin.txt'},_0x1c6471={'Content-Type':_0x2559cd(0x92),'Accept':'application/json,\x20text/event-stream'};_0x37d28e&&(_0x1c6471[_0x45996b['nqTlv']]=_0x2559cd(0xce)+_0x37d28e);const _0xfcd018=async _0x3b55f9=>{const _0x22f15a=_0x2559cd,_0x4ebd90=await _0x45996b['KFejv'](fetch,_0x48c0bf,{'method':_0x45996b['Dhmwc'],'headers':_0x1c6471,'body':JSON['stringify'](_0x3b55f9)});if(!_0x4ebd90['ok']){const _0xb495e2=await _0x4ebd90[_0x22f15a(0x116)]();throw new Error(_0x22f15a(0xb0)+_0x4ebd90['status']+':\x20'+_0xb495e2);}return _0x45996b[_0x22f15a(0xe0)](parseResponse,_0x4ebd90);};process[_0x2559cd(0xea)]['write'](_0x45996b[_0x2559cd(0x117)]);const _0x40eed=await _0x45996b['JVCBn'](_0xfcd018,{'jsonrpc':_0x45996b['tpbPm'],'id':0x1,'method':_0x45996b[_0x2559cd(0xc0)],'params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':_0x2559cd(0x94),'version':_0x45996b['HqNDn']}}});if(_0x40eed[_0x2559cd(0x9e)])throw new Error(_0x2559cd(0xe1)+(_0x40eed['error'][_0x2559cd(0x10e)]??JSON['stringify'](_0x40eed['error'])));console[_0x2559cd(0x9f)](_0x45996b['vCQoJ']),await _0x45996b[_0x2559cd(0xab)](fetch,_0x48c0bf,{'method':_0x2559cd(0x105),'headers':_0x1c6471,'body':JSON['stringify']({'jsonrpc':_0x45996b['tpbPm'],'method':'notifications/initialized'})})[_0x2559cd(0xed)](_0xeb981f=>_0xeb981f[_0x2559cd(0x116)]()),process[_0x2559cd(0xea)]['write'](_0x45996b[_0x2559cd(0x11a)]);const _0x14e6a9=await _0xfcd018({'jsonrpc':_0x45996b[_0x2559cd(0xbc)],'id':0x2,'method':'tools/call','params':{'name':'get_cli_token','arguments':{}}});if(_0x14e6a9['error'])throw new Error('get_cli_token\x20failed:\x20'+(_0x14e6a9[_0x2559cd(0x9e)][_0x2559cd(0x10e)]??JSON['stringify'](_0x14e6a9[_0x2559cd(0x9e)])));console[_0x2559cd(0x9f)](_0x2559cd(0xc3));const _0x274806=extractToken(_0x14e6a9[_0x2559cd(0x10a)]);if(!_0x274806){console['error'](_0x45996b[_0x2559cd(0xc7)]),console['error'](JSON[_0x2559cd(0xfb)](_0x14e6a9[_0x2559cd(0x10a)],null,0x2));throw new Error(_0x45996b[_0x2559cd(0xf7)]);}const _0x4e051a=_0x45996b[_0x2559cd(0x93)](join,homedir(),_0x45996b[_0x2559cd(0x10d)]),_0x2bd4de=join(_0x4e051a,_0x2559cd(0xb4));await mkdir(_0x4e051a,{'recursive':!![]}),await writeFile(_0x2bd4de,_0x274806,{'mode':0x180}),await writeFile(_0x45996b[_0x2559cd(0xfa)](join,_0x4e051a,_0x45996b['PWWkA']),_0x48c0bf,{'mode':0x180}),console[_0x2559cd(0x9f)]('\x0aToken\x20written\x20to\x20'+_0x2bd4de),console['log']('Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a');}async function fetchAuthServerMetadata(_0x592ae9){const _0x4b2f7e=_0x573ffa,_0x30b96e={'bBpKW':function(_0x3a1f7f,_0xd34a49){return _0x3a1f7f(_0xd34a49);}},_0x219b85=_0x592ae9+'/.well-known/oauth-authorization-server',_0x2151b0=await _0x30b96e['bBpKW'](fetch,_0x219b85);if(!_0x2151b0['ok'])throw new Error(_0x4b2f7e(0xd5)+_0x219b85+':\x20'+_0x2151b0['status']);return _0x2151b0[_0x4b2f7e(0xf8)]();}function waitForCallback(_0x5c531f){const _0x392473=_0x573ffa,_0x373689={'bRXtX':'/callback','XFSsx':'code','qxjsE':_0x392473(0x9e),'LoFUs':'error_description','uDizR':function(_0x54645a,_0x4ae2b5){return _0x54645a!==_0x4ae2b5;},'otvmB':_0x392473(0x100),'BunMQ':_0x392473(0x90),'quozI':_0x392473(0x8e),'djqvK':function(_0x3b1a1f){return _0x3b1a1f();},'ZlQPP':function(_0x124ef7,_0x29ec68){return _0x124ef7(_0x29ec68);},'xDDIk':_0x392473(0xa9)};return new Promise((_0x526f27,_0x3c6974)=>{const _0x20466e=_0x392473,_0x2550f9=()=>{const _0x4408e4=_0x4aaa;_0x23f247[_0x4408e4(0x8f)](),_0x23f247[_0x4408e4(0xd1)]();},_0x495426=setTimeout(()=>{const _0x53b7fa=_0x4aaa;_0x2550f9(),_0x3c6974(new OAuthTimeoutError(_0x53b7fa(0xca)));},0x1d4c0),_0x23f247=_0x373689['ZlQPP'](createServer,(_0x50e1c9,_0x210244)=>{const _0x25f169=_0x4aaa,_0x305f6e=new URL(_0x50e1c9[_0x25f169(0x9b)]??'/',_0x25f169(0xf5)+CALLBACK_PORT);if(_0x305f6e['pathname']!==_0x373689[_0x25f169(0xf3)]){_0x210244[_0x25f169(0xff)](0x194),_0x210244['end']('Not\x20found');return;}const _0x1f31c4=_0x305f6e['searchParams'][_0x25f169(0xbe)](_0x373689[_0x25f169(0xc8)]),_0x4bec8e=_0x305f6e['searchParams'][_0x25f169(0xbe)](_0x25f169(0x9c)),_0x387671=_0x305f6e['searchParams']['get'](_0x373689['qxjsE']);if(_0x387671){const _0x20a119=_0x305f6e['searchParams']['get'](_0x373689[_0x25f169(0xd0)])??_0x387671;_0x210244['writeHead'](0xc8,{'Content-Type':_0x25f169(0x100)}),_0x210244[_0x25f169(0x11c)](_0x25f169(0xfd)+_0x20a119+'</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>'),clearTimeout(_0x495426),_0x2550f9(),_0x3c6974(new Error('OAuth\x20error:\x20'+_0x20a119));return;}if(!_0x1f31c4||_0x373689['uDizR'](_0x4bec8e,_0x5c531f)){_0x210244[_0x25f169(0xff)](0x190,{'Content-Type':_0x373689['otvmB']}),_0x210244[_0x25f169(0x11c)](_0x373689[_0x25f169(0xf0)]);return;}_0x210244[_0x25f169(0xff)](0xc8,{'Content-Type':_0x373689[_0x25f169(0xe2)]}),_0x210244[_0x25f169(0x11c)](_0x373689[_0x25f169(0x113)]),clearTimeout(_0x495426),_0x373689['djqvK'](_0x2550f9),_0x373689[_0x25f169(0xd3)](_0x526f27,_0x1f31c4);});_0x23f247['listen'](CALLBACK_PORT,_0x373689[_0x20466e(0x91)]);});}async function openBrowser(_0x11f6e4){const _0x437e05=_0x573ffa,_0x5ca8e4={'quTpe':function(_0x54be6b,_0x385c06){return _0x54be6b===_0x385c06;},'UILkJ':'darwin','kZSET':_0x437e05(0xbf),'fHeCC':'xdg-open'},_0x2c2da8=_0x5ca8e4[_0x437e05(0xdb)](process['platform'],_0x5ca8e4[_0x437e05(0x107)])?_0x5ca8e4['kZSET']:_0x5ca8e4['quTpe'](process['platform'],'win32')?'start':_0x5ca8e4[_0x437e05(0xc9)];exec(_0x2c2da8+'\x20\x22'+_0x11f6e4+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x356564=_0x573ffa,_0x21abb1={'SIlFr':function(_0x1d29e9,_0x4e96f0,_0x5eff61){return _0x1d29e9(_0x4e96f0,_0x5eff61);},'WxqoG':'utf-8','LIEFp':function(_0x219c0d,_0x264d40){return _0x219c0d!==_0x264d40;},'HWzuP':function(_0x480a9c,_0x18742a){return _0x480a9c>_0x18742a;}};try{const _0x328ace=JSON[_0x356564(0x9a)](await _0x21abb1['SIlFr'](readFile,TOKEN_CACHE_PATH,_0x21abb1['WxqoG']));if(_0x328ace['origin']&&_0x21abb1['LIEFp'](_0x328ace[_0x356564(0xcc)],currentOrigin))return null;if(_0x328ace[_0x356564(0xc2)]&&_0x21abb1['HWzuP'](Date[_0x356564(0xa5)](),_0x328ace['expiresAt']))return null;return _0x328ace['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x58a761,_0x1e1c73,_0x2d6d72){const _0x4f141a=_0x573ffa,_0x429b3c={'PiXLj':function(_0x2cd435){return _0x2cd435();},'vrUAo':function(_0x450a1d,_0x3f61c0){return _0x450a1d+_0x3f61c0;},'NtwWn':function(_0x3e19ac,_0x4fff36,_0x432267){return _0x3e19ac(_0x4fff36,_0x432267);},'TDymW':function(_0x33437b){return _0x33437b();},'uuJPl':'.ranger'},_0x5eafd4=await _0x429b3c['PiXLj'](loadCachedData),_0x32c6bc={..._0x5eafd4,'origin':currentOrigin,'accessToken':_0x58a761,'refreshToken':_0x1e1c73??_0x5eafd4?.[_0x4f141a(0xf1)],'expiresAt':_0x2d6d72?_0x429b3c[_0x4f141a(0x10b)](Date[_0x4f141a(0xa5)](),_0x2d6d72*0x3e8):undefined};await mkdir(_0x429b3c[_0x4f141a(0x101)](join,_0x429b3c['TDymW'](homedir),_0x429b3c['uuJPl']),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x4f141a(0xfb)](_0x32c6bc),{'mode':0x180});}async function loadCachedClient(){const _0x270259=_0x573ffa,_0x2c3da0={'apVNG':function(_0x58bcfc){return _0x58bcfc();}},_0x250330=await _0x2c3da0[_0x270259(0x9d)](loadCachedData);if(_0x250330?.['origin']&&_0x250330['origin']!==currentOrigin)return null;return _0x250330?.['clientId']?{'clientId':_0x250330['clientId'],'clientSecret':_0x250330[_0x270259(0xaa)]}:null;}async function clearCachedClient(){const _0xedabc6=_0x573ffa,_0x5545bb={'YjzKz':function(_0x4b2dc5){return _0x4b2dc5();},'tuObB':function(_0x49a91d,_0x208a1c,_0x4368d5,_0x27f7bf){return _0x49a91d(_0x208a1c,_0x4368d5,_0x27f7bf);}},_0x4b3ce3=await _0x5545bb['YjzKz'](loadCachedData);if(!_0x4b3ce3)return;const {clientId:_0x54f86f,clientSecret:_0x34cc5b,..._0x17b60b}=_0x4b3ce3;await _0x5545bb[_0xedabc6(0xd6)](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x17b60b),{'mode':0x180});}async function saveCachedClient(_0x4f1201,_0x81d8c4){const _0x930a27=_0x573ffa,_0x5df611={'DMIar':function(_0x2ee403,_0x177633,_0xc44df8){return _0x2ee403(_0x177633,_0xc44df8);},'VEHkf':_0x930a27(0xa3),'QyIIh':function(_0x1b5525,_0xcfd6d8,_0x2a7f69,_0x1d52f1){return _0x1b5525(_0xcfd6d8,_0x2a7f69,_0x1d52f1);}},_0x47b80c=await loadCachedData(),_0x50ccaa={..._0x47b80c,'origin':currentOrigin,'accessToken':_0x47b80c?.['accessToken']??'','clientId':_0x4f1201,'clientSecret':_0x81d8c4};await mkdir(_0x5df611[_0x930a27(0xa7)](join,homedir(),_0x5df611['VEHkf']),{'recursive':!![]}),await _0x5df611['QyIIh'](writeFile,TOKEN_CACHE_PATH,JSON[_0x930a27(0xfb)](_0x50ccaa),{'mode':0x180});}function _0xa9e7(){const _0x2868ec=['NtwWn','resource','isTTY','startsWith','POST','uTbsp','UILkJ','/.well-known/oauth-protected-resource','66wpHIpe','result','vrUAo','257571QHBtXD','uclwX','message','auth-origin.txt','write','initialize','string','quozI','needs-oauth','2611598KWCrqV','text','SRGjr','structuredContent','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','odGgJ','DzTBW','end','client_secret','token','XazWt','3yKuIHj','authorization_servers','text/event-stream','<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','closeAllConnections','<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','xDDIk','application/json','OLyxZ','ranger-cli','OAuthTimeoutError','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','9583717OhRKcU','wkuxK','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','parse','url','state','apVNG','error','log','Exchanging\x20authorization\x20code...','RUDAV','UvAMA','.ranger','5972874Pzfbpb','now','2342890eIlPck','DMIar','VnAYM','127.0.0.1','clientSecret','KFejv','content','isError','length','2.0','HTTP\x20','1.0.0','Server\x20returned\x20error:\x20','token_endpoint','refresh.txt','response_type','code_challenge_method','data:','Token\x20exchange\x20failed:\x20','No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','FiSCt','authorization_endpoint','tpbPm','mmpMF','get','open','lnsmF','authorization_code','expiresAt','\x20done','1KjzGys','hULhS','toString','iElpb','XFSsx','fHeCC','OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','MCP\x20server\x20returned\x20HTTP\x20','origin','2025-03-26','Bearer\x20','rSOvA','LoFUs','close','Authorization','ZlQPP','status','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','tuObB','searchParams','Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','QIGWX','utf-8','quTpe','trim','match','headers','3789608WTTqkv','vqiCg','MCP\x20initialize\x20failed:\x20','otvmB','refresh_token','vdgTf','Initializing\x20MCP\x20session...','alcaZ','7725557iYUKrU','kSKbc','registration_endpoint','stdout','proxied','12XBEnGs','then','/callback','jBtNa','BunMQ','refreshToken','JNaIQ','bRXtX','UzrCV','http://localhost:','5VoeJff','CzwQG','json','set','MikZV','stringify','200OHpXaM','<html><body><h2>Authentication\x20failed</h2><p>','Akobv','writeHead','text/html'];_0xa9e7=function(){return _0x2868ec;};return _0xa9e7();}async function loadCachedData(){const _0x9895c8=_0x573ffa,_0x131573={'alcaZ':'utf-8'};try{return JSON['parse'](await readFile(TOKEN_CACHE_PATH,_0x131573[_0x9895c8(0xe6)]));}catch{return null;}}async function parseResponse(_0x4a5db0){const _0xf5123d=_0x573ffa,_0x23bd5e={'dCJmH':_0xf5123d(0x8d),'RUDAV':function(_0x3bfb06,_0x28e9f2){return _0x3bfb06!==_0x28e9f2;}},_0x47fc36=_0x4a5db0[_0xf5123d(0xde)][_0xf5123d(0xbe)]('content-type')??'';if(_0x47fc36['includes'](_0x23bd5e['dCJmH'])){const _0x52453c=await _0x4a5db0['text']();for(const _0x18e44d of _0x52453c['split']('\x0a')){const _0x297e08=_0x18e44d[_0xf5123d(0xdc)]();if(_0x297e08[_0xf5123d(0x104)](_0xf5123d(0xb7))){const _0x35a2e0=_0x297e08['slice']('data:'[_0xf5123d(0xae)])['trim']();if(!_0x35a2e0)continue;try{const _0x4babcd=JSON[_0xf5123d(0x9a)](_0x35a2e0);if(_0x23bd5e[_0xf5123d(0xa1)](_0x4babcd['id'],undefined)||_0x4babcd['error'])return _0x4babcd;}catch{}}}throw new Error(_0xf5123d(0x119));}return _0x4a5db0[_0xf5123d(0xf8)]();}function extractToken(_0x1f0cb5){const _0x2ab6db=_0x573ffa,_0x20f157={'FiSCt':function(_0x1cd781,_0x2ead48){return _0x1cd781===_0x2ead48;},'cHDlF':'string'};if(!_0x1f0cb5)return null;const _0x18d43e=_0x1f0cb5[_0x2ab6db(0x118)];if(_0x18d43e?.[_0x2ab6db(0x11e)]&&typeof _0x18d43e[_0x2ab6db(0x11e)]===_0x2ab6db(0x112))return _0x18d43e[_0x2ab6db(0x11e)];if(_0x1f0cb5[_0x2ab6db(0xad)]){const _0x477cc8=_0x1f0cb5['content'];throw new Error(_0x2ab6db(0xb2)+(_0x477cc8?.[0x0]?.['text']??'Unknown\x20error'));}const _0x270c81=_0x1f0cb5[_0x2ab6db(0xac)];if(_0x270c81)for(const _0x307802 of _0x270c81){if(_0x20f157[_0x2ab6db(0xba)](_0x307802['type'],_0x2ab6db(0x116))&&_0x307802['text']){try{const _0x2ca980=JSON[_0x2ab6db(0x9a)](_0x307802['text']);if(_0x20f157['FiSCt'](typeof _0x2ca980?.[_0x2ab6db(0x11e)],_0x20f157['cHDlF']))return _0x2ca980[_0x2ab6db(0x11e)];}catch{}const _0x4cdce8=_0x307802[_0x2ab6db(0x116)][_0x2ab6db(0xdd)](/(rngr_[A-Za-z0-9_-]+)/);if(_0x4cdce8)return _0x4cdce8[0x1];}}return null;}
@@ -0,0 +1 @@
1
+ (function(_0x14aabc,_0x5b0bb6){var _0x989c0e=_0x5175,_0x24c07a=_0x14aabc();while(!![]){try{var _0x155fa9=parseInt(_0x989c0e(0x1cc))/0x1+-parseInt(_0x989c0e(0x1db))/0x2*(parseInt(_0x989c0e(0x1de))/0x3)+parseInt(_0x989c0e(0x1d5))/0x4*(parseInt(_0x989c0e(0x1d2))/0x5)+parseInt(_0x989c0e(0x1da))/0x6+-parseInt(_0x989c0e(0x1d8))/0x7*(parseInt(_0x989c0e(0x1d3))/0x8)+parseInt(_0x989c0e(0x1d0))/0x9+parseInt(_0x989c0e(0x1cd))/0xa;if(_0x155fa9===_0x5b0bb6)break;else _0x24c07a['push'](_0x24c07a['shift']());}catch(_0x4dea74){_0x24c07a['push'](_0x24c07a['shift']());}}}(_0x364d,0xac6e2));export async function migrateProfile(_0x9bc307,_0x17b9a2){var _0x4af773=_0x5175,_0x18b227={'lmGBX':function(_0x250b06,_0x46eb1a){return _0x250b06+_0x46eb1a;},'jTBck':function(_0x53fb28,_0x24fd69){return _0x53fb28+_0x24fd69;},'RkDET':'For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a','VpWTi':_0x4af773(0x1d6),'AwWTn':_0x4af773(0x1d4)};console[_0x4af773(0x1d1)](_0x18b227['lmGBX'](_0x18b227['lmGBX'](_0x18b227['lmGBX'](_0x18b227[_0x4af773(0x1d9)](_0x18b227['jTBck'](_0x4af773(0x1cf),'\x0a'),'To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a')+_0x4af773(0x1d7),'\x0a')+_0x18b227[_0x4af773(0x1dc)],_0x18b227[_0x4af773(0x1dd)]),'\x0a')+_0x18b227[_0x4af773(0x1ce)]+'fallback;\x20you\x20can\x20delete\x20them\x20once\x20you\x20have\x20re-auth-ed.'),process[_0x4af773(0x1cb)](0x1);}function _0x5175(_0x2ec8b4,_0x1181c8){_0x2ec8b4=_0x2ec8b4-0x1cb;var _0x364d17=_0x364d();var _0x517525=_0x364d17[_0x2ec8b4];return _0x517525;}function _0x364d(){var _0x1bc8dc=['3KVBqIg','exit','919890mroZmN','3626920MfHhVK','AwWTn','ranger\x20profile\x20migrate\x20is\x20no\x20longer\x20supported.\x0a','6699357hwUKXL','error','1214335GWYjIX','248QAxcbE','Existing\x20sessions\x20in\x20your\x20old\x20<project>/.ranger/\x20dirs\x20still\x20work\x20as\x20a\x0a','12IDoqkr','\x20\x20https://docs.ranger.net/main/concepts/profiles\x0a','\x20\x20ranger\x20profile\x20add\x20<name>\x0a','224413KhkLjo','lmGBX','1894818TRhxTC','2742512WdXizv','RkDET','VpWTi'];_0x364d=function(){return _0x1bc8dc;};return _0x364d();}
@@ -1 +1 @@
1
- (function(_0x293ef0,_0x43f41b){const _0x6ee06e=_0x4010,_0x57bf9c=_0x293ef0();while(!![]){try{const _0x4f6810=-parseInt(_0x6ee06e(0x15c))/0x1+-parseInt(_0x6ee06e(0x184))/0x2*(-parseInt(_0x6ee06e(0x169))/0x3)+parseInt(_0x6ee06e(0x17f))/0x4+-parseInt(_0x6ee06e(0x17c))/0x5+-parseInt(_0x6ee06e(0x179))/0x6+parseInt(_0x6ee06e(0x172))/0x7*(parseInt(_0x6ee06e(0x185))/0x8)+parseInt(_0x6ee06e(0x183))/0x9;if(_0x4f6810===_0x43f41b)break;else _0x57bf9c['push'](_0x57bf9c['shift']());}catch(_0x31cc45){_0x57bf9c['push'](_0x57bf9c['shift']());}}}(_0x186b,0xc5236));import{join}from'path';import{existsSync}from'fs';function _0x186b(){const _0x3f4afe=['RdNtS','JoIqr','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','TOPIu','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','✓\x20Claude\x20Code\x20plugin\x20enabled','success','fzuVB','sVyUn','Would\x20you\x20like\x20to\x20install\x20skills?','error','391727lSiYeO','✓\x20Marketplace\x20already\x20added','nopbd','pluginScope','BMMro','confirm','list','SKILL.md','rQVrV','✓\x20Ranger\x20skills\x20already\x20installed','PmGmr','marketplace','vRRGx','459eDSeIR','KJRkS','enable','❌\x20Failed\x20to\x20install\x20plugin:','user','eIYNY','cJJjh','FOJOP','WIszo','63JMPpMm','nluLq','--scope','bmuZg','ranger','\x20level)...\x0a','output','8598090ILiSGt','log','.claude','6548685nPgqCA','mqRWq','bVIND','2885728VcvMPZ','ranger@trailhead','prompt','⚠\x20Failed\x20to\x20enable\x20plugin:','18353637ACmbpk','5674ZDxqfd','664152IYcsLk','project','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','includes','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','❌\x20Failed\x20to\x20add\x20marketplace:'];_0x186b=function(){return _0x3f4afe;};return _0x186b();}function _0x4010(_0x527e55,_0x5333a2){_0x527e55=_0x527e55-0x151;const _0x186b59=_0x186b();let _0x4010f8=_0x186b59[_0x527e55];return _0x4010f8;}import _0x26ab74 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(_0x4f1db2){const _0x444de2=_0x4010,_0x405f50={'FOJOP':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','eIYNY':function(_0x30fcc6,_0x47d7e1,_0x36151a){return _0x30fcc6(_0x47d7e1,_0x36151a);},'wDjKR':_0x444de2(0x153),'OXtdX':_0x444de2(0x162),'KJRkS':'Where\x20should\x20the\x20plugin\x20be\x20installed?','WXVUg':'add','EEjpE':_0x444de2(0x18a),'rQVrV':'\x0aYou\x20can\x20install\x20manually\x20with:','JoIqr':_0x444de2(0x174),'fzuVB':_0x444de2(0x155),'vRRGx':'plugin','bmuZg':_0x444de2(0x16b),'nopbd':_0x444de2(0x180),'mqRWq':_0x444de2(0x186),'bVIND':'already\x20enabled','BMMro':_0x444de2(0x182)},_0xc4dd17=await isPluginInstalled(_0x444de2(0x180));if(_0xc4dd17)return console[_0x444de2(0x17a)](_0x405f50[_0x444de2(0x170)]),![];const _0x34a193=existsSync(_0x405f50[_0x444de2(0x16e)](join,getProjectRoot(),_0x444de2(0x17b)));let _0x251631;if(_0x4f1db2)_0x251631=_0x4f1db2;else{if(_0x34a193)_0x251631='project';else{console[_0x444de2(0x17a)](_0x405f50['wDjKR']);const _0x37e198=await _0x26ab74[_0x444de2(0x181)]([{'type':_0x405f50['OXtdX'],'name':'pluginScope','message':_0x405f50[_0x444de2(0x16a)],'choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':'user'},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':_0x444de2(0x186)}],'default':'user'}]);_0x251631=_0x37e198[_0x444de2(0x15f)];}}console['log'](_0x444de2(0x189)+_0x251631+_0x444de2(0x177));const _0x1a01f9=await isMarketplaceAdded('trailhead');let _0x3b8fe0=_0x1a01f9;if(_0x1a01f9)console['log'](_0x444de2(0x15d));else{const _0x40099a=await runClaudeCommand(['plugin',_0x444de2(0x167),_0x405f50['WXVUg'],'ranger-testing/trailhead']);!_0x40099a['success']?(console['error'](_0x405f50['EEjpE'],_0x40099a['error']),console[_0x444de2(0x17a)](_0x405f50[_0x444de2(0x164)]),console[_0x444de2(0x17a)]('\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead'),console[_0x444de2(0x17a)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x251631)):_0x3b8fe0=!![];}if(_0x3b8fe0){const _0x564b7f=await runClaudeCommand(['plugin','install',_0x444de2(0x180),_0x405f50[_0x444de2(0x152)],_0x251631]);if(!_0x564b7f['success'])console['error'](_0x444de2(0x16c),_0x564b7f['error']),console['log'](_0x405f50[_0x444de2(0x164)]),console['log'](_0x444de2(0x187)+_0x251631);else{console[_0x444de2(0x17a)](_0x405f50[_0x444de2(0x158)]);const _0x4aa454=[_0x405f50[_0x444de2(0x168)],_0x405f50[_0x444de2(0x175)],_0x405f50[_0x444de2(0x15e)]];_0x251631===_0x405f50['mqRWq']&&_0x4aa454['push'](_0x405f50['JoIqr'],_0x405f50[_0x444de2(0x17d)]);const _0x55a432=await runClaudeCommand(_0x4aa454,{'captureOutput':!![]}),_0x3b715e=_0x55a432[_0x444de2(0x178)]?.[_0x444de2(0x188)](_0x405f50[_0x444de2(0x17e)]);!_0x55a432[_0x444de2(0x157)]&&!_0x3b715e?console[_0x444de2(0x15b)](_0x405f50[_0x444de2(0x160)],_0x55a432['error']):console[_0x444de2(0x17a)](_0x444de2(0x156));}}return!![];}export async function ensureClaudeSkills(_0x341b14){const _0x2c787d=_0x4010,_0x1f3509={'sVyUn':function(_0x4bf1c8,_0x14385c){return _0x4bf1c8(_0x14385c);},'WIszo':function(_0x33aa4f,_0x1b771a,_0xf64c28,_0x14dc5f){return _0x33aa4f(_0x1b771a,_0xf64c28,_0x14dc5f);},'nluLq':_0x2c787d(0x16d),'cJJjh':_0x2c787d(0x163),'PmGmr':function(_0x1baea0,_0x5c7b1c){return _0x1baea0(_0x5c7b1c);},'BwyNK':'ranger','kYbuT':function(_0x215ef4,_0x2d7872){return _0x215ef4||_0x2d7872;},'TOPIu':function(_0x34746a,_0x5b0e2a,_0x4b98e8){return _0x34746a(_0x5b0e2a,_0x4b98e8);},'rUkdb':function(_0x5bbd8b){return _0x5bbd8b();},'NLTrf':_0x2c787d(0x17b),'vyyEh':function(_0x621af4,_0x37ff2a){return _0x621af4(_0x37ff2a);},'ZOzJE':function(_0x33f88e,_0x2a2606){return _0x33f88e(_0x2a2606);},'lTMFH':'wantsSkillup','RdNtS':function(_0x62be57,_0x554fed){return _0x62be57(_0x554fed);}},_0x2d6f35=_0x1f3509[_0x2c787d(0x159)](existsSync,_0x1f3509[_0x2c787d(0x171)](join,getSkillsDir(_0x1f3509[_0x2c787d(0x173)]),_0x2c787d(0x176),_0x1f3509[_0x2c787d(0x16f)])),_0x2e7eef=_0x1f3509['sVyUn'](existsSync,join(_0x1f3509[_0x2c787d(0x166)](getSkillsDir,_0x2c787d(0x186)),_0x1f3509['BwyNK'],_0x1f3509['cJJjh']));if(_0x1f3509['kYbuT'](_0x2d6f35,_0x2e7eef))return console[_0x2c787d(0x17a)](_0x2c787d(0x165)),![];const _0xbf4314=existsSync(_0x1f3509[_0x2c787d(0x154)](join,_0x1f3509['rUkdb'](getProjectRoot),_0x1f3509['NLTrf']));let _0x558038=!![];if(_0x341b14)await _0x1f3509['vyyEh'](skillup,{'autoInstall':_0x341b14,'suppressUsage':!![]});else{if(_0xbf4314)await _0x1f3509['ZOzJE'](skillup,{'autoInstall':_0x2c787d(0x186),'suppressUsage':!![]});else{const _0x106d4a=await _0x26ab74[_0x2c787d(0x181)]([{'type':_0x2c787d(0x161),'name':_0x1f3509['lTMFH'],'message':_0x2c787d(0x15a),'default':!![]}]);_0x558038=_0x106d4a['wantsSkillup'],_0x558038&&await _0x1f3509[_0x2c787d(0x151)](skillup,{'suppressUsage':!![]});}}return _0x558038;}
1
+ (function(_0x3ba8e9,_0x57e6f4){const _0x463352=_0x449c,_0x55f96f=_0x3ba8e9();while(!![]){try{const _0x53e46d=-parseInt(_0x463352(0x1fc))/0x1*(parseInt(_0x463352(0x1f2))/0x2)+-parseInt(_0x463352(0x1e4))/0x3*(parseInt(_0x463352(0x1e3))/0x4)+parseInt(_0x463352(0x1f4))/0x5*(-parseInt(_0x463352(0x1fe))/0x6)+parseInt(_0x463352(0x20e))/0x7*(-parseInt(_0x463352(0x205))/0x8)+-parseInt(_0x463352(0x204))/0x9+-parseInt(_0x463352(0x1ff))/0xa+parseInt(_0x463352(0x1fa))/0xb*(parseInt(_0x463352(0x200))/0xc);if(_0x53e46d===_0x57e6f4)break;else _0x55f96f['push'](_0x55f96f['shift']());}catch(_0x340389){_0x55f96f['push'](_0x55f96f['shift']());}}}(_0x5d65,0x590e5));import{join}from'path';import{existsSync}from'fs';import _0x472b62 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';function _0x449c(_0x47c5a8,_0x287c73){_0x47c5a8=_0x47c5a8-0x1da;const _0x5d65dc=_0x5d65();let _0x449cf0=_0x5d65dc[_0x47c5a8];return _0x449cf0;}export async function ensureClaudePlugin(_0x52aaaa){const _0x4ba0cd=_0x449c,_0x1df320={'zXADC':function(_0x8fcdbb,_0x4e0db3){return _0x8fcdbb(_0x4e0db3);},'tyNgP':'ranger@trailhead','zRjxr':_0x4ba0cd(0x214),'cMpqc':'project','UxNqk':'\x0a📦\x20Claude\x20Code\x20Plugin\x0a','ldhXJ':'Where\x20should\x20the\x20plugin\x20be\x20installed?','cfzdk':_0x4ba0cd(0x1f0),'zIgrX':function(_0x3c783f,_0x59bf56){return _0x3c783f(_0x59bf56);},'PfZDA':_0x4ba0cd(0x1e8),'XFXtF':_0x4ba0cd(0x1fb),'oqfMO':_0x4ba0cd(0x20c),'Pqukx':_0x4ba0cd(0x21a),'MibWo':function(_0x4fd026,_0x476f9b){return _0x4fd026===_0x476f9b;},'XTuFU':_0x4ba0cd(0x20f),'iJarn':_0x4ba0cd(0x1e7),'pjZBZ':_0x4ba0cd(0x1ee),'wzgQM':function(_0x3f835f,_0x147eb9,_0xe5a136){return _0x3f835f(_0x147eb9,_0xe5a136);},'IguQl':function(_0x5ef568){return _0x5ef568();},'oNxpW':_0x4ba0cd(0x1da),'DrycD':_0x4ba0cd(0x1db)},_0x25aa85=await _0x1df320['zXADC'](isPluginInstalled,_0x1df320[_0x4ba0cd(0x1dc)]);if(_0x25aa85)return console[_0x4ba0cd(0x1de)](_0x1df320['zRjxr']),![];const _0x5be21e=existsSync(join(getProjectRoot(),_0x4ba0cd(0x218)));let _0x4e2186;if(_0x52aaaa)_0x4e2186=_0x52aaaa;else{if(_0x5be21e)_0x4e2186=_0x1df320['cMpqc'];else{console['log'](_0x1df320[_0x4ba0cd(0x206)]);const _0x50c467=await _0x472b62[_0x4ba0cd(0x21c)]([{'type':'list','name':'pluginScope','message':_0x1df320['ldhXJ'],'choices':[{'name':_0x4ba0cd(0x1f6),'value':_0x1df320['cfzdk']},{'name':_0x4ba0cd(0x217),'value':_0x1df320['cMpqc']}],'default':_0x1df320[_0x4ba0cd(0x20d)]}]);_0x4e2186=_0x50c467[_0x4ba0cd(0x1df)];}}console[_0x4ba0cd(0x1de)](_0x4ba0cd(0x210)+_0x4e2186+'\x20level)...\x0a');const _0x1c521b=await _0x1df320[_0x4ba0cd(0x213)](isMarketplaceAdded,_0x1df320[_0x4ba0cd(0x20a)]);let _0x262bc9=_0x1c521b;if(_0x1c521b)console[_0x4ba0cd(0x1de)](_0x1df320[_0x4ba0cd(0x1f1)]);else{const _0x2d247e=await _0x1df320[_0x4ba0cd(0x1e6)](runClaudeCommand,[_0x4ba0cd(0x1e7),_0x1df320[_0x4ba0cd(0x1f9)],_0x1df320[_0x4ba0cd(0x219)],'ranger-testing/trailhead']);!_0x2d247e['success']?(console['error'](_0x4ba0cd(0x21b),_0x2d247e['error']),console[_0x4ba0cd(0x1de)]('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x4ba0cd(0x1de)]('\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead'),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x4e2186)):_0x262bc9=!![];}if(_0x262bc9){const _0x5b68fc=await runClaudeCommand([_0x4ba0cd(0x1e7),'install',_0x4ba0cd(0x1dd),'--scope',_0x4e2186],{'cwd':_0x1df320[_0x4ba0cd(0x1f5)](_0x4e2186,_0x1df320['cMpqc'])?getProjectRoot():undefined});if(!_0x5b68fc['success'])console[_0x4ba0cd(0x1e5)](_0x1df320[_0x4ba0cd(0x1f3)],_0x5b68fc[_0x4ba0cd(0x1e5)]),console[_0x4ba0cd(0x1de)](_0x4ba0cd(0x1e9)),console[_0x4ba0cd(0x1de)](_0x4ba0cd(0x1eb)+_0x4e2186);else{console['log'](_0x4ba0cd(0x203));const _0x5c6b62=[_0x1df320[_0x4ba0cd(0x1ec)],_0x4ba0cd(0x209),_0x1df320[_0x4ba0cd(0x1dc)]];_0x4e2186===_0x1df320['cMpqc']&&_0x5c6b62[_0x4ba0cd(0x201)](_0x1df320['pjZBZ'],'project');const _0x48a141=await _0x1df320[_0x4ba0cd(0x1e2)](runClaudeCommand,_0x5c6b62,{'captureOutput':!![],'cwd':_0x4e2186===_0x1df320[_0x4ba0cd(0x1e1)]?_0x1df320['IguQl'](getProjectRoot):undefined}),_0x1e9e2d=_0x48a141['output']?.['includes'](_0x4ba0cd(0x211));!_0x48a141[_0x4ba0cd(0x216)]&&!_0x1e9e2d?console['error'](_0x1df320['oNxpW'],_0x48a141['error']):console[_0x4ba0cd(0x1de)](_0x1df320['DrycD']);}}return!![];}function _0x5d65(){const _0x55eeb5=['\x0aYou\x20can\x20install\x20manually\x20with:','mPdIL','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','iJarn','HidOh','--scope','Rialy','user','XFXtF','52OYvInW','XTuFU','5505Biixse','MibWo','User\x20(available\x20in\x20all\x20your\x20projects)','MHeGu','SKILL.md','oqfMO','10109dzjuzV','✓\x20Marketplace\x20already\x20added','1046GydQLV','✓\x20Ranger\x20skills\x20already\x20installed','2004GAISGD','6769840rywIws','37476PpYJhj','push','OhChW','✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','6359139bxrUXD','5192MsOShK','UxNqk','project','ranger','enable','PfZDA','Would\x20you\x20like\x20to\x20install\x20skills?','marketplace','cfzdk','7721HUgIAG','❌\x20Failed\x20to\x20install\x20plugin:','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','already\x20enabled','iImXv','zIgrX','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','TdGNC','success','Project\x20(shared\x20with\x20team\x20via\x20git)','.claude','Pqukx','add','❌\x20Failed\x20to\x20add\x20marketplace:','prompt','WsJXP','⚠\x20Failed\x20to\x20enable\x20plugin:','✓\x20Claude\x20Code\x20plugin\x20enabled','tyNgP','ranger@trailhead','log','pluginScope','wantsSkillup','cMpqc','wzgQM','10932jstuLf','12OTQGvf','error','zXADC','plugin','trailhead'];_0x5d65=function(){return _0x55eeb5;};return _0x5d65();}export async function ensureClaudeSkills(_0x53762e){const _0x5eb65e=_0x449c,_0x296823={'OhChW':function(_0x25881d,_0x2e1e4c,_0x4d820b,_0xd8a7db){return _0x25881d(_0x2e1e4c,_0x4d820b,_0xd8a7db);},'TdGNC':function(_0x5265e3,_0x2adaf7){return _0x5265e3(_0x2adaf7);},'HidOh':'user','cFXxS':_0x5eb65e(0x208),'iscIM':_0x5eb65e(0x1f8),'WsJXP':function(_0x972c07,_0x5892dd){return _0x972c07(_0x5892dd);},'MHeGu':function(_0x2dd8a,_0x1978cb,_0x50fd41){return _0x2dd8a(_0x1978cb,_0x50fd41);},'iImXv':'confirm','mPdIL':_0x5eb65e(0x1e0),'Rialy':function(_0x3951c8,_0x236b53){return _0x3951c8(_0x236b53);}},_0x19a3be=existsSync(_0x296823[_0x5eb65e(0x202)](join,_0x296823[_0x5eb65e(0x215)](getSkillsDir,_0x296823[_0x5eb65e(0x1ed)]),_0x296823['cFXxS'],_0x5eb65e(0x1f8))),_0x4e32cb=existsSync(join(getSkillsDir('project'),_0x296823['cFXxS'],_0x296823['iscIM']));if(_0x19a3be||_0x4e32cb)return console['log'](_0x5eb65e(0x1fd)),![];const _0x514f6f=_0x296823[_0x5eb65e(0x21d)](existsSync,_0x296823[_0x5eb65e(0x1f7)](join,getProjectRoot(),'.claude'));let _0x35d59b=!![];if(_0x53762e)await skillup({'autoInstall':_0x53762e,'suppressUsage':!![]});else{if(_0x514f6f)await skillup({'autoInstall':_0x5eb65e(0x207),'suppressUsage':!![]});else{const _0x3fb2a6=await _0x472b62['prompt']([{'type':_0x296823[_0x5eb65e(0x212)],'name':_0x296823[_0x5eb65e(0x1ea)],'message':_0x5eb65e(0x20b),'default':!![]}]);_0x35d59b=_0x3fb2a6[_0x5eb65e(0x1e0)],_0x35d59b&&await _0x296823[_0x5eb65e(0x1ef)](skillup,{'suppressUsage':!![]});}}return _0x35d59b;}