@ranger-testing/ranger-cli 2.5.4-alpha.071b7bd-1 → 2.5.4-alpha.ed286f1-2

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 (69) hide show
  1. package/build/cli.js +1 -1
  2. package/build/commands/addEnv.js +1 -1
  3. package/build/commands/authEncrypt.js +1 -1
  4. package/build/commands/clean.js +1 -1
  5. package/build/commands/config.js +1 -1
  6. package/build/commands/env.js +1 -1
  7. package/build/commands/feature.js +1 -1
  8. package/build/commands/hook.js +1 -1
  9. package/build/commands/hooks/autoPrompt.js +1 -1
  10. package/build/commands/hooks/disable.js +1 -1
  11. package/build/commands/hooks/enable.js +1 -1
  12. package/build/commands/hooks/exitPlanMode.js +1 -1
  13. package/build/commands/hooks/index.js +1 -1
  14. package/build/commands/hooks/output.js +1 -1
  15. package/build/commands/hooks/planReminder.js +1 -1
  16. package/build/commands/hooks/planStart.js +1 -1
  17. package/build/commands/hooks/postEdit.js +1 -1
  18. package/build/commands/hooks/preCompact.js +1 -1
  19. package/build/commands/hooks/sessionEnd.js +1 -1
  20. package/build/commands/hooks/sessionStart.js +1 -1
  21. package/build/commands/hooks/stopHook.js +1 -1
  22. package/build/commands/index.js +1 -1
  23. package/build/commands/login.js +1 -1
  24. package/build/commands/mcpBootstrap.js +1 -1
  25. package/build/commands/setup/claude.js +1 -1
  26. package/build/commands/setup/opencode.js +1 -1
  27. package/build/commands/setupCi.js +1 -1
  28. package/build/commands/skillup.js +1 -1
  29. package/build/commands/start.js +1 -1
  30. package/build/commands/status.js +1 -1
  31. package/build/commands/update.js +1 -1
  32. package/build/commands/updateEnv.js +1 -1
  33. package/build/commands/useEnv.js +1 -1
  34. package/build/commands/utils/activeProfile.js +1 -1
  35. package/build/commands/utils/agentEnv.js +1 -1
  36. package/build/commands/utils/browserSessionsApi.js +1 -1
  37. package/build/commands/utils/claudeConfig.js +1 -1
  38. package/build/commands/utils/claudeOverrideSettings.js +1 -1
  39. package/build/commands/utils/claudePlugin.js +1 -1
  40. package/build/commands/utils/crypto.js +1 -1
  41. package/build/commands/utils/desirePathLog.js +1 -1
  42. package/build/commands/utils/deviceAuth.js +1 -1
  43. package/build/commands/utils/environment.js +1 -1
  44. package/build/commands/utils/featureApi.js +1 -1
  45. package/build/commands/utils/fixWebmDuration.js +1 -1
  46. package/build/commands/utils/keychain.js +1 -1
  47. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  48. package/build/commands/utils/mcpImageBase64.js +1 -1
  49. package/build/commands/utils/model.js +1 -1
  50. package/build/commands/utils/opencodeConfig.js +1 -1
  51. package/build/commands/utils/playwrightCli.js +1 -1
  52. package/build/commands/utils/profileMessages.js +1 -1
  53. package/build/commands/utils/profileSetupBanner.js +1 -1
  54. package/build/commands/utils/rangerConfig.js +1 -1
  55. package/build/commands/utils/rangerRoot.js +1 -1
  56. package/build/commands/utils/retry.js +1 -1
  57. package/build/commands/utils/sessionCache.js +1 -1
  58. package/build/commands/utils/settings.js +1 -1
  59. package/build/commands/utils/skillContent.js +1 -1
  60. package/build/commands/utils/skills.js +1 -1
  61. package/build/commands/utils/stitchWebmFiles.js +1 -1
  62. package/build/commands/utils/telemetry.js +1 -1
  63. package/build/commands/utils/tokenRefresh.js +1 -1
  64. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  65. package/build/commands/utils/userApi.js +1 -1
  66. package/build/commands/utils/version.js +1 -1
  67. package/build/commands/verifyFeature.js +1 -1
  68. package/build/commands/verifyFeatureCli.js +1 -1
  69. package/package.json +6 -2
@@ -1 +1 @@
1
- (function(_0x30c6e6,_0x5a70d8){const _0x1bb71b=_0x49a3,_0x49ce87=_0x30c6e6();while(!![]){try{const _0x3f776c=parseInt(_0x1bb71b(0x1a5))/0x1*(-parseInt(_0x1bb71b(0x1a1))/0x2)+-parseInt(_0x1bb71b(0x1a4))/0x3+parseInt(_0x1bb71b(0x1a2))/0x4+parseInt(_0x1bb71b(0x1a6))/0x5+parseInt(_0x1bb71b(0x1a8))/0x6+parseInt(_0x1bb71b(0x1a9))/0x7*(parseInt(_0x1bb71b(0x1a3))/0x8)+-parseInt(_0x1bb71b(0x1a0))/0x9*(parseInt(_0x1bb71b(0x1a7))/0xa);if(_0x3f776c===_0x5a70d8)break;else _0x49ce87['push'](_0x49ce87['shift']());}catch(_0x24cfdf){_0x49ce87['push'](_0x49ce87['shift']());}}}(_0x3a36,0xd251e));import{printBlock,getEnabledSessionId}from'./output.js';function _0x3a36(){const _0xf2bdd3=['10nVvwva','4739880TvzowV','3423zCGRpq','168813NOWGlV','2uItmAt','3599356Zemlsf','18104jLpHOD','2712171myjGHA','1112957KrhDoM','504075qkGeMv'];_0x3a36=function(){return _0xf2bdd3;};return _0x3a36();}function _0x49a3(_0x2163d,_0x3a8bb0){_0x2163d=_0x2163d-0x1a0;const _0x3a3675=_0x3a36();let _0x49a3ee=_0x3a3675[_0x2163d];return _0x49a3ee;}export async function planStart(_0x16782a){const _0xf16acf=await getEnabledSessionId(_0x16782a);if(!_0xf16acf)return;printBlock('===\x20RANGER:\x20ACTION\x20REQUIRED\x20===\x0a\x0aIf\x20this\x20plan\x20involves\x20UI\x20changes,\x20you\x20MUST:\x0a\x0a1.\x20**READ\x20/ranger\x20skill**\x20-\x20specifically\x20create.md\x0a2.\x20**Add\x20a\x20Ranger\x20Feature\x20Review\x20Specification**\x20at\x20the\x20end\x20of\x20your\x20plan\x0a\x0aScenarios\x20are\x20E2E\x20test\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0a**Good:**\x20\x22User\x20can\x20log\x20in\x20with\x20valid\x20credentials\x20and\x20see\x20dashboard\x22\x0a**Bad:**\x20\x22Add\x20form\x20validation\x22\x20or\x20\x22Button\x20is\x20visible\x22\x0a\x0aAfter\x20planning,\x20run:\x0a`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<E2E\x20flow\x201>\x22\x20-c\x20\x22<E2E\x20flow\x202>\x22`\x0a\x0a===\x20END\x20===');}
1
+ function _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 +1 @@
1
- (function(_0x40f759,_0x8a4cff){const _0xe62862=_0x5775,_0x259694=_0x40f759();while(!![]){try{const _0x17030c=-parseInt(_0xe62862(0x14d))/0x1+-parseInt(_0xe62862(0x14b))/0x2*(-parseInt(_0xe62862(0x157))/0x3)+parseInt(_0xe62862(0x14f))/0x4+parseInt(_0xe62862(0x149))/0x5+-parseInt(_0xe62862(0x155))/0x6*(parseInt(_0xe62862(0x14c))/0x7)+-parseInt(_0xe62862(0x14a))/0x8*(parseInt(_0xe62862(0x14e))/0x9)+parseInt(_0xe62862(0x151))/0xa;if(_0x17030c===_0x8a4cff)break;else _0x259694['push'](_0x259694['shift']());}catch(_0x187478){_0x259694['push'](_0x259694['shift']());}}}(_0x9130,0xe9e66));import{getSessionEntry,updateBranchTracking}from'../utils/sessionCache.js';function _0x9130(){const _0x488127=['8257465PkTWNk','16GgjJKH','101666JHnKKY','7XdJBmn','1367479ssqiIW','7813845krFUKW','2321984PSiQmV','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).','22041500VQFNZq','stringify','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.','log','8955132TIrQwe','PostToolUse','66ozkxYI'];_0x9130=function(){return _0x488127;};return _0x9130();}function _0x5775(_0x48444f,_0x5bdb0e){_0x48444f=_0x48444f-0x149;const _0x91307f=_0x9130();let _0x577514=_0x91307f[_0x48444f];return _0x577514;}import{getToken}from'../utils/keychain.js';import{getEnabledSessionId}from'./output.js';export async function postEdit(_0x2eb34d){const _0x56b2d5=_0x5775,_0x147045={'gjBsq':_0x56b2d5(0x156)},_0x376cc5=await getEnabledSessionId(_0x2eb34d);if(!_0x376cc5)return;updateBranchTracking(_0x376cc5);const _0x37914d=await getToken();if(!_0x37914d)return;const _0x28148f=getSessionEntry(_0x376cc5);if(_0x28148f){const _0x1a98f1={'hookSpecificOutput':{'hookEventName':'PostToolUse','additionalContext':_0x56b2d5(0x150)}};console[_0x56b2d5(0x154)](JSON[_0x56b2d5(0x152)](_0x1a98f1));return;}const _0x2295df={'hookSpecificOutput':{'hookEventName':_0x147045['gjBsq'],'additionalContext':_0x56b2d5(0x153)}};console['log'](JSON[_0x56b2d5(0x152)](_0x2295df));}
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 +1 @@
1
- function _0xccd1(){const _0x3801fe=['232849CSJupv','601134IvTyfO','HnBtg','514299aygZCF','7990xBnpxE','6057cOTQIb','2NLvMuA','===\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`.','12766528wiItTE','56gEjGOR','28peQuuz','6530310ITUagC','10602702TxvAFz'];_0xccd1=function(){return _0x3801fe;};return _0xccd1();}(function(_0x45cf82,_0x1fb22b){const _0x2f35f0=_0x4d25,_0x4644d9=_0x45cf82();while(!![]){try{const _0x3ba686=-parseInt(_0x2f35f0(0x1af))/0x1*(-parseInt(_0x2f35f0(0x1b5))/0x2)+-parseInt(_0x2f35f0(0x1b2))/0x3*(-parseInt(_0x2f35f0(0x1b9))/0x4)+-parseInt(_0x2f35f0(0x1ba))/0x5+-parseInt(_0x2f35f0(0x1b0))/0x6*(-parseInt(_0x2f35f0(0x1b8))/0x7)+-parseInt(_0x2f35f0(0x1b7))/0x8+-parseInt(_0x2f35f0(0x1b4))/0x9*(-parseInt(_0x2f35f0(0x1b3))/0xa)+parseInt(_0x2f35f0(0x1bb))/0xb;if(_0x3ba686===_0x1fb22b)break;else _0x4644d9['push'](_0x4644d9['shift']());}catch(_0x630a97){_0x4644d9['push'](_0x4644d9['shift']());}}}(_0xccd1,0xcba4b));function _0x4d25(_0xce8f18,_0x298c3e){_0xce8f18=_0xce8f18-0x1af;const _0xccd198=_0xccd1();let _0x4d2520=_0xccd198[_0xce8f18];return _0x4d2520;}import{getToken}from'../utils/keychain.js';import{printBlock,getEnabledSessionId}from'./output.js';export async function preCompact(_0x5692ac){const _0xb6505=_0x4d25,_0x1506da={'HnBtg':function(_0x12df76,_0x45793f){return _0x12df76(_0x45793f);},'ZFnNj':function(_0x51df0c){return _0x51df0c();}},_0xea3f62=await _0x1506da[_0xb6505(0x1b1)](getEnabledSessionId,_0x5692ac);if(!_0xea3f62)return;try{const _0x4e3462=await _0x1506da['ZFnNj'](getToken);if(!_0x4e3462)return;printBlock(_0xb6505(0x1b6));}catch{}}
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 +1 @@
1
- (function(_0x34aa8b,_0x52f95a){const _0x5c6475=_0x32d4,_0x3c5150=_0x34aa8b();while(!![]){try{const _0x1ccdc5=-parseInt(_0x5c6475(0x1a2))/0x1+parseInt(_0x5c6475(0x1a0))/0x2*(parseInt(_0x5c6475(0x1aa))/0x3)+parseInt(_0x5c6475(0x19f))/0x4+-parseInt(_0x5c6475(0x1ab))/0x5*(parseInt(_0x5c6475(0x1a3))/0x6)+parseInt(_0x5c6475(0x1a6))/0x7*(-parseInt(_0x5c6475(0x1a7))/0x8)+-parseInt(_0x5c6475(0x1a1))/0x9+-parseInt(_0x5c6475(0x1a5))/0xa*(-parseInt(_0x5c6475(0x1ad))/0xb);if(_0x1ccdc5===_0x52f95a)break;else _0x3c5150['push'](_0x3c5150['shift']());}catch(_0x25dc1e){_0x3c5150['push'](_0x3c5150['shift']());}}}(_0x1de3,0x6851e));import{isSessionEnabled,recordEnabledSessionCleared}from'../utils/sessionCache.js';function _0x32d4(_0x4e2f29,_0x19a812){_0x4e2f29=_0x4e2f29-0x19f;const _0x1de367=_0x1de3();let _0x32d4fe=_0x1de367[_0x4e2f29];return _0x32d4fe;}import{readHookInput}from'./output.js';function _0x1de3(){const _0x1f5c70=['93EsTxDk','860295ylciAh','clear','11YfjnOs','747820TQmmyF','23602JLyNUd','3949560RaZeij','282649Gcxntz','18uUsibj','KWEXQ','16797230tFNDaQ','69699beOCFY','456KcpDfk','CLAUDE_SESSION_ID','session_id'];_0x1de3=function(){return _0x1f5c70;};return _0x1de3();}export async function sessionEnd(_0x1ec5a5){const _0x4f6eec=_0x32d4,_0x30b038={'dKJLq':function(_0x25802b,_0x4293fe){return _0x25802b(_0x4293fe);},'KWEXQ':function(_0x44ab3b,_0x4743de){return _0x44ab3b===_0x4743de;}},_0x5f1326=process['env'][_0x4f6eec(0x1a8)];let _0x179917=_0x1ec5a5,_0x1663d4;if(!_0x1ec5a5){if(_0x5f1326&&!_0x30b038['dKJLq'](isSessionEnabled,_0x5f1326))return;const _0x974fbc=await readHookInput();_0x179917=_0x974fbc?.[_0x4f6eec(0x1a9)]||_0x5f1326,_0x1663d4=_0x974fbc?.['reason'];}if(!_0x179917)return;_0x30b038[_0x4f6eec(0x1a4)](_0x1663d4,_0x4f6eec(0x1ac))&&_0x30b038['dKJLq'](recordEnabledSessionCleared,_0x179917);}
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 +1 @@
1
- const _0x18aef3=_0x5840;(function(_0x370a1f,_0x309dcd){const _0x3f2c74=_0x5840,_0x542277=_0x370a1f();while(!![]){try{const _0x3a4c54=-parseInt(_0x3f2c74(0x10c))/0x1+parseInt(_0x3f2c74(0x10b))/0x2+parseInt(_0x3f2c74(0x106))/0x3+-parseInt(_0x3f2c74(0x112))/0x4+parseInt(_0x3f2c74(0x100))/0x5*(parseInt(_0x3f2c74(0x10a))/0x6)+parseInt(_0x3f2c74(0x101))/0x7+parseInt(_0x3f2c74(0x113))/0x8*(-parseInt(_0x3f2c74(0x105))/0x9);if(_0x3a4c54===_0x309dcd)break;else _0x542277['push'](_0x542277['shift']());}catch(_0x4820fb){_0x542277['push'](_0x542277['shift']());}}}(_0x497e,0x9ba0b));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 _0x5840(_0x35eb61,_0x49b749){_0x35eb61=_0x35eb61-0xfd;const _0x497eb6=_0x497e();let _0x584086=_0x497eb6[_0x35eb61];return _0x584086;}const RANGER_AUTO_ENABLED_PROMPT=_0x18aef3(0x104);export async function sessionStart(_0x17d62e){const _0x437d58=_0x18aef3,_0x47dc08={'pEhEY':'session_id','YWpSD':'source','gBWoW':function(_0x1e48bc,_0x461cfa){return _0x1e48bc&&_0x461cfa;},'OwlnR':function(_0x10e018,_0x17dcf1){return _0x10e018(_0x17dcf1);},'SBONB':_0x437d58(0x114),'MgLxj':function(_0x294ed3){return _0x294ed3();},'VVXyD':_0x437d58(0xfe),'ldNfG':_0x437d58(0xfd),'QGAhq':function(_0x97b742,_0x327423){return _0x97b742+_0x327423;}};let _0xf58a3c=_0x17d62e||'',_0xf846ad;if(!_0x17d62e){let _0x2abc3e='';for await(const _0x5e77b0 of process[_0x437d58(0x107)]){_0x2abc3e+=_0x5e77b0;}try{const _0x54c0cd=JSON['parse'](_0x2abc3e);_0xf58a3c=_0x54c0cd[_0x47dc08[_0x437d58(0x102)]]||'',_0xf846ad=_0x54c0cd[_0x47dc08[_0x437d58(0x103)]];}catch{}const _0x57981c=process['env'][_0x437d58(0x10d)];if(_0x47dc08['gBWoW'](_0x57981c,_0xf58a3c))try{await appendFile(_0x57981c,_0x437d58(0x10e)+_0xf58a3c+'\x22\x0a');}catch{}}try{await getToken();}catch{}if(_0xf58a3c){shouldAutoEnableAfterClear(_0xf846ad)&&autoEnableAfterClear(_0xf58a3c);initBranchTracking(_0xf58a3c);const _0xcba818=isSessionEnabled(_0xf58a3c);try{const _0x583c55=_0x47dc08[_0x437d58(0x109)](createTelemetryCollector,_0x47dc08['SBONB']);await _0x583c55['trackCommandStart']({'sessionId':_0xf58a3c,'hooksEnabled':_0xcba818}),await _0x583c55['trackCommandEnd']('success');}catch{}if(_0xcba818){const _0x56c4a4=_0x47dc08['MgLxj'](getCurrentBranch),_0x436d2b=_0x56c4a4&&_0x56c4a4!==_0x437d58(0x10f)&&_0x56c4a4!==_0x47dc08[_0x437d58(0x108)]?'\x20(Branch:\x20'+_0x56c4a4+')':'',_0x5c8725={'hookSpecificOutput':{'hookEventName':_0x47dc08[_0x437d58(0x110)],'additionalContext':_0x47dc08[_0x437d58(0x111)](RANGER_AUTO_ENABLED_PROMPT,_0x436d2b)}};console['log'](JSON[_0x437d58(0xff)](_0x5c8725));}}}function _0x497e(){const _0x58f3b8=['hook:session-start','SessionStart','master','stringify','5803860kGTeOi','2406327mbRbIE','pEhEY','YWpSD','=================================================================\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=================================================================','369801VlseTO','2536617syHlia','stdin','VVXyD','OwlnR','6XuvYfE','1304540clmxeG','1160919IezGGx','CLAUDE_ENV_FILE','export\x20CLAUDE_SESSION_ID=\x22','main','ldNfG','QGAhq','2186192DGnIXB','128HSmRVh'];_0x497e=function(){return _0x58f3b8;};return _0x497e();}
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 +1 @@
1
- (function(_0x4388fc,_0x208706){const _0x433f89=_0x308d,_0x25d792=_0x4388fc();while(!![]){try{const _0x53c574=parseInt(_0x433f89(0xd2))/0x1*(parseInt(_0x433f89(0xdd))/0x2)+-parseInt(_0x433f89(0xca))/0x3+parseInt(_0x433f89(0xda))/0x4+-parseInt(_0x433f89(0xc9))/0x5+parseInt(_0x433f89(0xde))/0x6+-parseInt(_0x433f89(0xcc))/0x7+-parseInt(_0x433f89(0xce))/0x8;if(_0x53c574===_0x208706)break;else _0x25d792['push'](_0x25d792['shift']());}catch(_0x2f8d14){_0x25d792['push'](_0x25d792['shift']());}}}(_0x236b,0xaede0));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(_0xf8d321){const _0x325467=_0x308d,_0x2676e3={'LFoAQ':function(_0xc30d8a,_0x16f3dc,_0x3ee558,_0x2ef2b9){return _0xc30d8a(_0x16f3dc,_0x3ee558,_0x2ef2b9);},'bqPad':function(_0xb00025){return _0xb00025();},'cElvK':function(_0x8d7a47,_0x1afce1){return _0x8d7a47&&_0x1afce1;},'VcdXV':function(_0x397574,_0x4c2395,_0x1a6b07,_0x26c721){return _0x397574(_0x4c2395,_0x1a6b07,_0x26c721);}},_0x48ad9b=await getEnabledHookContext(_0xf8d321),_0x50bbbe=_0x48ad9b?.['sessionId']??null;let _0x232998=!![];if(!_0x50bbbe){await _0x2676e3['LFoAQ'](trackStop,_0x50bbbe,![],_0x232998);return;}try{const _0x104283=getSessionEntry(_0x50bbbe);if(!_0x104283){await trackStop(_0x50bbbe,!![],_0x232998);return;}const _0x2cf525=await _0x2676e3['bqPad'](getToken),_0x5755b0=_0x325467(0xd4)+_0x104283['featureId'];let _0x50b6e6=null,_0x59d996=![],_0x171f0e=![];if(_0x2cf525)try{const _0x85caae=await getFeature(_0x104283[_0x325467(0xcd)]);_0x50b6e6=_0x85caae['currentSessionId']??null;const _0x345019=_0x85caae[_0x325467(0xdc)]['filter'](_0x4943fa=>_0x4943fa['sessionId']===_0x50b6e6);_0x59d996=_0x345019[_0x325467(0xd8)](_0x4e350e=>_0x4e350e[_0x325467(0xd5)]!=='verified'&&_0x4e350e['status']!==_0x325467(0xd7)&&_0x4e350e[_0x325467(0xd5)]!=='closed'&&_0x4e350e['status']!=='incomplete'),_0x171f0e=_0x345019[_0x325467(0xd8)](_0x41cdcd=>_0x41cdcd[_0x325467(0xd5)]==='verification_in_progress');}catch{}if(_0x2676e3[_0x325467(0xd0)](_0x2cf525,_0x50b6e6)&&_0x59d996){if(!_0x171f0e&&shouldShowStopReminder(_0x50bbbe)){const _0x231304={'hookSpecificOutput':{'hookEventName':_0x325467(0xd3),'additionalContext':_0x325467(0xd1)+_0x5755b0}};console[_0x325467(0xc8)](JSON[_0x325467(0xcb)](_0x231304));}}if(_0x2cf525&&_0x50b6e6&&!_0x59d996)try{await concludeSession(_0x104283['featureId'],_0x50b6e6);}catch{}await _0x2676e3[_0x325467(0xd9)](trackStop,_0x50bbbe,!![],_0x232998);return;}catch{await trackStop(_0x50bbbe,!![],_0x232998);return;}}function _0x308d(_0xe6830,_0x3492c3){_0xe6830=_0xe6830-0xc8;const _0x236bf0=_0x236b();let _0x308dc6=_0x236bf0[_0xe6830];return _0x308dc6;}async function trackStop(_0x23d4b9,_0x446a2c,_0x4ff6f8){const _0xe71b37=_0x308d;try{const _0x2629be=createTelemetryCollector(_0xe71b37(0xd6));await _0x2629be['trackCommandStart']({'sessionId':_0x23d4b9??undefined,'hooksEnabled':_0x446a2c,'stopAllowed':_0x4ff6f8}),await _0x2629be[_0xe71b37(0xcf)](_0xe71b37(0xdb));}catch{}}function _0x236b(){const _0x4a80cc=['status','hook:stop','blocked','some','VcdXV','4781372SCAtPA','success','checklistItems','2TFdhxm','2906592zXfwrr','log','133975fAQYuf','211959UXCVLI','stringify','7695576pblqRR','featureId','1389264uybPRB','trackCommandEnd','cElvK','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','406955cPiwOl','Stop','https://dashboard.ranger.net/features/'];_0x236b=function(){return _0x4a80cc;};return _0x236b();}
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 +1 @@
1
- (function(_0x4647aa,_0x46320d){var _0x28e5f0=_0x18a2,_0x2fe4fc=_0x4647aa();while(!![]){try{var _0x5341b0=-parseInt(_0x28e5f0(0x120))/0x1*(-parseInt(_0x28e5f0(0x122))/0x2)+-parseInt(_0x28e5f0(0x129))/0x3*(-parseInt(_0x28e5f0(0x121))/0x4)+parseInt(_0x28e5f0(0x127))/0x5+-parseInt(_0x28e5f0(0x128))/0x6+parseInt(_0x28e5f0(0x11f))/0x7*(-parseInt(_0x28e5f0(0x125))/0x8)+-parseInt(_0x28e5f0(0x124))/0x9*(-parseInt(_0x28e5f0(0x12a))/0xa)+parseInt(_0x28e5f0(0x123))/0xb*(-parseInt(_0x28e5f0(0x126))/0xc);if(_0x5341b0===_0x46320d)break;else _0x2fe4fc['push'](_0x2fe4fc['shift']());}catch(_0x1a9991){_0x2fe4fc['push'](_0x2fe4fc['shift']());}}}(_0xea53,0x72cea));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';function _0xea53(){var _0x80d9d6=['487643LBKOKJ','152976iTnJMh','2YpRGDy','22uNvdtM','259902SDIeGG','97784nOVNig','2951712VBgjov','2097945ixxUGJ','90546EEQQrN','3EmIuVm','320btRfLP','511fpJZFJ'];_0xea53=function(){return _0x80d9d6;};return _0xea53();}export{start,ensureLocalEnv,ensureChromium,authenticate}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';function _0x18a2(_0x554389,_0x43b4bb){_0x554389=_0x554389-0x11f;var _0xea532d=_0xea53();var _0x18a2e9=_0xea532d[_0x554389];return _0x18a2e9;}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(_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 +1 @@
1
- (function(_0x3ba880,_0x34be7e){const _0xea963f=_0x8c3f,_0x2b31ec=_0x3ba880();while(!![]){try{const _0x5a57e4=-parseInt(_0xea963f(0xde))/0x1*(parseInt(_0xea963f(0xd3))/0x2)+parseInt(_0xea963f(0xcc))/0x3+parseInt(_0xea963f(0xcf))/0x4*(parseInt(_0xea963f(0xce))/0x5)+parseInt(_0xea963f(0xd7))/0x6*(parseInt(_0xea963f(0xc8))/0x7)+-parseInt(_0xea963f(0xd4))/0x8*(-parseInt(_0xea963f(0xd1))/0x9)+parseInt(_0xea963f(0xca))/0xa+parseInt(_0xea963f(0xd6))/0xb*(-parseInt(_0xea963f(0xd5))/0xc);if(_0x5a57e4===_0x34be7e)break;else _0x2b31ec['push'](_0x2b31ec['shift']());}catch(_0x2ab036){_0x2b31ec['push'](_0x2b31ec['shift']());}}}(_0x54c8,0x86b92));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';function _0x54c8(){const _0x1768c1=['59656BumdHi','159756uZQsGR','1925GDjiHQ','30WRSvEQ','log','stdin','isTTY','\x0a✅\x20API\x20key\x20stored\x20successfully','user','lgewF','2DMPuCu','success','1047361tqByCN','wwLda','7617440FOnIKc','organizationName','2202423dhweap','veFEw','144895OnuEEO','72CQtwek','Login\x20failed:\x20','207GjpAzY','stdout','55532cijiGH'];_0x54c8=function(){return _0x1768c1;};return _0x54c8();}function _0x8c3f(_0xcadbc4,_0x4aadc5){_0xcadbc4=_0xcadbc4-0xc8;const _0x54c8a0=_0x54c8();let _0x8c3f43=_0x54c8a0[_0xcadbc4];return _0x8c3f43;}export async function login(){const _0x39a6d2=_0x8c3f,_0x96d526={'sHoQs':'Re-authenticating\x20via\x20MCP\x20bootstrap...','wwLda':function(_0x32552e){return _0x32552e();},'AXDoP':'Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','lgewF':function(_0xf700e5,_0x164590){return _0xf700e5(_0x164590);},'veFEw':function(_0x23c0f5,_0x50fb59){return _0x23c0f5 instanceof _0x50fb59;}},_0x5a0019=await getMcpAuthOrigin();if(_0x5a0019){console[_0x39a6d2(0xd8)](_0x96d526['sHoQs']),await _0x96d526[_0x39a6d2(0xc9)](mcpBootstrap);return;}const _0x372bd3=process[_0x39a6d2(0xd9)][_0x39a6d2(0xda)]&&process[_0x39a6d2(0xd2)][_0x39a6d2(0xda)];if(!_0x372bd3)throw new Error(_0x96d526['AXDoP']);try{const _0x400d83=await runDeviceAuthFlow(),_0x2760a7=await _0x96d526[_0x39a6d2(0xdd)](getCurrentUser,_0x400d83);_0x2760a7[_0x39a6d2(0xdf)]?console[_0x39a6d2(0xd8)]('\x0a✅\x20Logged\x20in\x20to\x20'+_0x2760a7[_0x39a6d2(0xdc)][_0x39a6d2(0xcb)]):console['log'](_0x39a6d2(0xdb));}catch(_0x99b682){throw new Error(_0x39a6d2(0xd0)+(_0x96d526[_0x39a6d2(0xcd)](_0x99b682,Error)?_0x99b682['message']:_0x99b682));}}
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 +1 @@
1
- function _0x37e1(_0x468dcd,_0x5ab2a6){_0x468dcd=_0x468dcd-0x17a;const _0x1eb9ce=_0x1eb9();let _0x37e12f=_0x1eb9ce[_0x468dcd];return _0x37e12f;}const _0x46302a=_0x37e1;(function(_0x173148,_0x34d147){const _0x485fb5=_0x37e1,_0x2712bd=_0x173148();while(!![]){try{const _0x33d14b=parseInt(_0x485fb5(0x1a0))/0x1*(parseInt(_0x485fb5(0x19e))/0x2)+parseInt(_0x485fb5(0x1c3))/0x3+-parseInt(_0x485fb5(0x1f1))/0x4*(-parseInt(_0x485fb5(0x1ab))/0x5)+parseInt(_0x485fb5(0x1eb))/0x6*(parseInt(_0x485fb5(0x17b))/0x7)+-parseInt(_0x485fb5(0x1b5))/0x8*(parseInt(_0x485fb5(0x1db))/0x9)+parseInt(_0x485fb5(0x1ca))/0xa*(-parseInt(_0x485fb5(0x1bd))/0xb)+-parseInt(_0x485fb5(0x1fe))/0xc;if(_0x33d14b===_0x34d147)break;else _0x2712bd['push'](_0x2712bd['shift']());}catch(_0x152728){_0x2712bd['push'](_0x2712bd['shift']());}}}(_0x1eb9,0x241ab));function _0x1eb9(){const _0x1b5e3e=['FZSfN','access_token','authorization_code','parse','1785179QSaBKn','sFKBF','listen','iGBeL','UfSSy','MCP\x20server\x20returned\x20HTTP\x20','315975wgOPrj','jLtzt','child_process','uGBUu','OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','KDfcL','yvIBA','10EWqNBT','registration_endpoint','state','<html><body><h2>Authentication\x20failed</h2><p>','omFyQ','bwgKK','text','now','set','eKKgg','VLRlS','EbwxF','error','url','stringify','text/html','bGlDr','10845kicmMA','code_challenge','get','resource','darwin','POST','writeHead','refreshToken','HTTP\x20','auth-origin.txt','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','application/json,\x20text/event-stream','json','lnJrx','RuDTP','headers','887562ontATy','close','IHGZL','2025-03-26','Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','aaBWJ','4RUAhXD','Bxmel','zxksB','NbBBx','pathname','Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','searchParams','open','SLjKr','stdout','OAuthTimeoutError','Authorization','needs-oauth','3281556GeWpXr','ZpEFx','vhmXX','clientId','string','content','Requesting\x20CLI\x20token...','1.0.0','authorization_endpoint','toString','AdJhO','Not\x20found','iZxnQ','response_type','Ranger\x20CLI','origin','wHGdm','QmHuN','match','/.well-known/oauth-authorization-server','zNgcK','mpLlz','kAOMG','7YwlRAU','includes','CKXnP','type','/callback','digest','haFjz','text/event-stream','authorization_servers','clientSecret','eUCRz','S256','end','DwBhf','\x20done','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','log','tdlpd','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','expires_in','<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','token','start','cSsZn','qdArK','accessToken','dpjHy','isTTY','application/x-www-form-urlencoded','EpTdI','pYwXj','WCkzF','dHrED','.ranger','ranger-cli','32iZvatW','2.0','7246kWcKDg','expiresAt','jHXzU','code_challenge_method','refresh_token','leklG','nUqhv','code','ScXpa','message','update','1409635bQyuxv','http://localhost:','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','EyMhf','win32','cxNtZ','gnqYX','status','akIhe','/.well-known/oauth-protected-resource','448haYjHK','application/json','WUXot','Could\x20not\x20extract\x20token\x20from\x20MCP\x20response'];_0x1eb9=function(){return _0x1b5e3e;};return _0x1eb9();}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(),_0x46302a(0x19c),'mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),'.ranger',_0x46302a(0x1e4));export async function getMcpAuthOrigin(){const _0x592c42=_0x46302a,_0x7e79ef={'irGnz':function(_0x4a3b72,_0x36eeb3,_0x526b75){return _0x4a3b72(_0x36eeb3,_0x526b75);},'rRsiS':'utf-8','WCkzF':function(_0x44f8a3,_0x39d462){return _0x44f8a3||_0x39d462;}};try{const _0x401540=(await _0x7e79ef['irGnz'](readFile,AUTH_ORIGIN_PATH,_0x7e79ef['rRsiS']))['trim']();return _0x7e79ef[_0x592c42(0x19a)](_0x401540,null);}catch{return null;}}export async function mcpBootstrap(){const _0x4ccac6=_0x46302a,_0x527473={'bGlDr':function(_0x9bbfa4){return _0x9bbfa4();},'rYYRE':function(_0x1ab796,_0x36ddde){return _0x1ab796(_0x36ddde);},'RuDTP':'proxied','SLpca':function(_0x35cfea,_0x3bbd5f){return _0x35cfea+_0x3bbd5f;},'SLjKr':'MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','WUXot':_0x4ccac6(0x1ad)},_0x2a81dc=_0x527473[_0x4ccac6(0x1da)](getMcpAuthUrl);currentOrigin=_0x2a81dc;const _0x7f9be9=process['stdout'][_0x4ccac6(0x196)]??![];console['log'](_0x4ccac6(0x18d)+_0x2a81dc+'\x0a');const _0x1ac53f=await _0x527473['rYYRE'](tryUnauthenticated,_0x2a81dc);let _0x41024f=null;if(_0x1ac53f===_0x527473[_0x4ccac6(0x1e9)])_0x41024f='';else{_0x41024f=await loadCachedToken();if(!_0x41024f){if(!_0x7f9be9)throw new Error(_0x527473['SLpca'](_0x527473[_0x4ccac6(0x1f9)],_0x527473[_0x4ccac6(0x1b7)]));_0x41024f=await oauthFlow(_0x2a81dc);}}await callGetCliToken(_0x2a81dc,_0x41024f);}async function tryUnauthenticated(_0x25077){const _0x2177f8=_0x46302a,_0x1bbee2={'AdJhO':_0x2177f8(0x1e0),'exkWA':_0x2177f8(0x1b6),'ebSSt':'2.0','leklG':_0x2177f8(0x19d),'GRSCa':_0x2177f8(0x205),'iZxnQ':'proxied','akIhe':function(_0x516fa1,_0x36e48f){return _0x516fa1===_0x36e48f;}},_0x3fe59a=await fetch(_0x25077,{'method':_0x1bbee2[_0x2177f8(0x208)],'headers':{'Content-Type':_0x1bbee2['exkWA'],'Accept':_0x2177f8(0x1e6)},'body':JSON['stringify']({'jsonrpc':_0x1bbee2['ebSSt'],'id':0x1,'method':'initialize','params':{'protocolVersion':_0x2177f8(0x1ee),'capabilities':{},'clientInfo':{'name':_0x1bbee2[_0x2177f8(0x1a5)],'version':_0x1bbee2['GRSCa']}}})});if(_0x3fe59a['ok'])return await _0x3fe59a[_0x2177f8(0x1d0)](),_0x1bbee2[_0x2177f8(0x20a)];if(_0x1bbee2[_0x2177f8(0x1b3)](_0x3fe59a[_0x2177f8(0x1b2)],0x191))return await _0x3fe59a['text'](),_0x2177f8(0x1fd);const _0x39a34a=await _0x3fe59a[_0x2177f8(0x1d0)]();throw new Error(_0x2177f8(0x1c2)+_0x3fe59a['status']+':\x20'+_0x39a34a);}class OAuthTimeoutError extends Error{constructor(_0x23a8c5){const _0xdf5526=_0x46302a,_0x5e50d6={'NNdKJ':_0xdf5526(0x1fb)};super(_0x23a8c5),this['name']=_0x5e50d6['NNdKJ'];}}async function oauthFlow(_0x338e1e){const _0x27e007=_0x46302a,_0x3dbdaa={'jHXzU':function(_0x3c2723,_0x4f9fff){return _0x3c2723(_0x4f9fff);}};try{return await _0x3dbdaa[_0x27e007(0x1a2)](oauthFlowAttempt,_0x338e1e);}catch(_0x50429d){if(_0x50429d instanceof OAuthTimeoutError&&await loadCachedClient())return console[_0x27e007(0x18b)]('\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'),await clearCachedClient(),await oauthFlowAttempt(_0x338e1e);throw _0x50429d;}}async function oauthFlowAttempt(_0x2fc1f0){const _0x11cb81=_0x46302a,_0x15ffdd={'CKXnP':_0x11cb81(0x1ef),'IHGZL':'Registering\x20OAuth\x20client...','mpLlz':function(_0x2152c3,_0x74bd36,_0x539958){return _0x2152c3(_0x74bd36,_0x539958);},'VqofJ':_0x11cb81(0x1e0),'dpjHy':_0x11cb81(0x1bb),'cSsZn':'none','EbwxF':_0x11cb81(0x1f6),'mtvno':function(_0x10f147,_0x22439b){return _0x10f147(_0x22439b);},'yxHzc':'base64url','gWpYG':'hex','yvIBA':'code','zxksB':'client_id','DSZsD':_0x11cb81(0x1a3),'VLRlS':_0x11cb81(0x186),'GQoyY':'Exchanging\x20authorization\x20code...'},_0x9e0e01=_0x2fc1f0['replace'](/\/mcp$/,'');process[_0x11cb81(0x1fa)]['write']('Discovering\x20authorization\x20server...');const _0x2ea4f4=await fetch(_0x9e0e01+_0x11cb81(0x1b4));if(!_0x2ea4f4['ok'])throw new Error(_0x15ffdd[_0x11cb81(0x17d)]);const _0x5df878=await _0x2ea4f4[_0x11cb81(0x1e7)](),_0x5b93af=_0x5df878[_0x11cb81(0x183)]?.[0x0];if(!_0x5b93af)throw new Error('No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata');console['log']('\x20'+_0x5b93af);const _0xad1211=await fetchAuthServerMetadata(_0x5b93af);let _0x141e2c,_0x4cf617;const _0xd9f43d=await loadCachedClient();if(_0xd9f43d)_0x141e2c=_0xd9f43d[_0x11cb81(0x201)],_0x4cf617=_0xd9f43d[_0x11cb81(0x184)];else{if(_0xad1211['registration_endpoint']){process['stdout']['write'](_0x15ffdd[_0x11cb81(0x1ed)]);const _0x4e3bc3=await _0x15ffdd[_0x11cb81(0x213)](fetch,_0xad1211[_0x11cb81(0x1cb)],{'method':_0x15ffdd['VqofJ'],'headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'client_name':_0x11cb81(0x20c),'redirect_uris':[_0x11cb81(0x1ac)+CALLBACK_PORT+'/callback'],'grant_types':[_0x15ffdd[_0x11cb81(0x195)],_0x11cb81(0x1a4)],'response_types':[_0x11cb81(0x1a7)],'token_endpoint_auth_method':_0x15ffdd[_0x11cb81(0x192)]})});if(!_0x4e3bc3['ok']){const _0x5cb0cf=await _0x4e3bc3[_0x11cb81(0x1d0)]();throw new Error('Client\x20registration\x20failed:\x20'+_0x5cb0cf);}const _0x28b0d4=await _0x4e3bc3[_0x11cb81(0x1e7)]();_0x141e2c=_0x28b0d4['client_id'],_0x4cf617=_0x28b0d4['client_secret'],await _0x15ffdd[_0x11cb81(0x213)](saveCachedClient,_0x141e2c,_0x4cf617),console[_0x11cb81(0x18b)](_0x11cb81(0x189));}else throw new Error(_0x15ffdd[_0x11cb81(0x1d5)]);}const _0x38fe39=_0x15ffdd['mtvno'](randomBytes,0x20)['toString'](_0x15ffdd['yxHzc']),_0x48ed0f=createHash('sha256')[_0x11cb81(0x1aa)](_0x38fe39)[_0x11cb81(0x180)](_0x15ffdd['yxHzc']),_0x21628a=randomBytes(0x10)[_0x11cb81(0x207)](_0x15ffdd['gWpYG']),_0x508d50=new URL(_0xad1211[_0x11cb81(0x206)]);_0x508d50[_0x11cb81(0x1f7)]['set'](_0x11cb81(0x20b),_0x15ffdd[_0x11cb81(0x1c9)]),_0x508d50['searchParams'][_0x11cb81(0x1d2)](_0x15ffdd[_0x11cb81(0x1f3)],_0x141e2c),_0x508d50['searchParams']['set']('redirect_uri',_0x11cb81(0x1ac)+CALLBACK_PORT+'/callback'),_0x508d50['searchParams']['set'](_0x11cb81(0x1dc),_0x48ed0f),_0x508d50['searchParams']['set'](_0x15ffdd['DSZsD'],_0x15ffdd[_0x11cb81(0x1d4)]),_0x508d50['searchParams'][_0x11cb81(0x1d2)]('state',_0x21628a);_0x5df878['resource']&&_0x508d50['searchParams']['set']('resource',_0x5df878[_0x11cb81(0x1de)]);console[_0x11cb81(0x18b)]('\x0aOpening\x20browser\x20for\x20authentication...'),console[_0x11cb81(0x18b)]('If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a'+_0x508d50[_0x11cb81(0x207)]()+'\x0a'),await openBrowser(_0x508d50['toString']());const _0x5a7310=await waitForCallback(_0x21628a);process['stdout']['write'](_0x15ffdd['GQoyY']);const _0x28b3b6=new URLSearchParams({'grant_type':_0x11cb81(0x1bb),'code':_0x5a7310,'redirect_uri':_0x11cb81(0x1ac)+CALLBACK_PORT+'/callback','client_id':_0x141e2c,'code_verifier':_0x38fe39});_0x4cf617&&_0x28b3b6[_0x11cb81(0x1d2)]('client_secret',_0x4cf617);_0x5df878['resource']&&_0x28b3b6['set'](_0x11cb81(0x1de),_0x5df878['resource']);const _0x277861=await fetch(_0xad1211['token_endpoint'],{'method':'POST','headers':{'Content-Type':_0x11cb81(0x197)},'body':_0x28b3b6});if(!_0x277861['ok']){const _0x12280a=await _0x277861['text']();throw new Error('Token\x20exchange\x20failed:\x20'+_0x12280a);}const _0x520890=await _0x277861['json']();return console['log'](_0x11cb81(0x189)),await saveCachedToken(_0x520890['access_token'],_0x520890['refresh_token'],_0x520890[_0x11cb81(0x18e)]),_0x520890[_0x11cb81(0x1ba)];}async function callGetCliToken(_0x4687d9,_0x24f9ec){const _0x3e12d8=_0x46302a,_0x515433={'yMFmY':function(_0x2b77b9,_0x5284c1){return _0x2b77b9(_0x5284c1);},'AvPoe':_0x3e12d8(0x1b6),'pnMfu':_0x3e12d8(0x1e6),'nUqhv':'Initializing\x20MCP\x20session...','YeRKW':function(_0x170117,_0x21a3ac){return _0x170117(_0x21a3ac);},'lnJrx':_0x3e12d8(0x19f),'bsCDt':'ranger-cli','tiHtV':'1.0.0','iGBeL':'\x20done','UBKQN':_0x3e12d8(0x204),'drnDS':function(_0x2a37e6,_0x82f3bb){return _0x2a37e6(_0x82f3bb);},'kAOMG':'tools/call','UfSSy':function(_0x4dfd00,_0x4aef85){return _0x4dfd00(_0x4aef85);},'rUXEl':function(_0x3ab012){return _0x3ab012();},'tdlpd':_0x3e12d8(0x19c),'KDfcL':function(_0x133ff7,_0x20e64f,_0x3b31c8){return _0x133ff7(_0x20e64f,_0x3b31c8);},'DwBhf':function(_0xd68768,_0x362fe4,_0x4bd0a6,_0xea5e5){return _0xd68768(_0x362fe4,_0x4bd0a6,_0xea5e5);},'wHGdm':'Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a'},_0x3d4cf8={'Content-Type':_0x515433['AvPoe'],'Accept':_0x515433['pnMfu']};_0x24f9ec&&(_0x3d4cf8[_0x3e12d8(0x1fc)]='Bearer\x20'+_0x24f9ec);const _0x2de054=async _0x167c38=>{const _0x18c7a3=_0x3e12d8,_0x3ae26c=await fetch(_0x4687d9,{'method':_0x18c7a3(0x1e0),'headers':_0x3d4cf8,'body':JSON['stringify'](_0x167c38)});if(!_0x3ae26c['ok']){const _0x3cbd56=await _0x3ae26c[_0x18c7a3(0x1d0)]();throw new Error(_0x18c7a3(0x1e3)+_0x3ae26c['status']+':\x20'+_0x3cbd56);}return _0x515433['yMFmY'](parseResponse,_0x3ae26c);};process['stdout']['write'](_0x515433[_0x3e12d8(0x1a6)]);const _0x277f2b=await _0x515433['YeRKW'](_0x2de054,{'jsonrpc':_0x515433[_0x3e12d8(0x1e8)],'id':0x1,'method':'initialize','params':{'protocolVersion':_0x3e12d8(0x1ee),'capabilities':{},'clientInfo':{'name':_0x515433['bsCDt'],'version':_0x515433['tiHtV']}}});if(_0x277f2b['error'])throw new Error('MCP\x20initialize\x20failed:\x20'+(_0x277f2b['error'][_0x3e12d8(0x1a9)]??JSON['stringify'](_0x277f2b[_0x3e12d8(0x1d6)])));console['log'](_0x515433[_0x3e12d8(0x1c0)]),await fetch(_0x4687d9,{'method':'POST','headers':_0x3d4cf8,'body':JSON['stringify']({'jsonrpc':_0x3e12d8(0x19f),'method':'notifications/initialized'})})['then'](_0x38df34=>_0x38df34['text']()),process['stdout']['write'](_0x515433['UBKQN']);const _0x1cab66=await _0x515433['drnDS'](_0x2de054,{'jsonrpc':_0x3e12d8(0x19f),'id':0x2,'method':_0x515433[_0x3e12d8(0x17a)],'params':{'name':'get_cli_token','arguments':{}}});if(_0x1cab66[_0x3e12d8(0x1d6)])throw new Error('get_cli_token\x20failed:\x20'+(_0x1cab66['error'][_0x3e12d8(0x1a9)]??JSON['stringify'](_0x1cab66[_0x3e12d8(0x1d6)])));console['log'](_0x3e12d8(0x189));const _0x557be0=_0x515433[_0x3e12d8(0x1c1)](extractToken,_0x1cab66['result']);if(!_0x557be0){console['error']('\x0aUnexpected\x20response\x20structure:'),console[_0x3e12d8(0x1d6)](JSON['stringify'](_0x1cab66['result'],null,0x2));throw new Error(_0x3e12d8(0x1b8));}const _0x438574=join(_0x515433['rUXEl'](homedir),_0x515433[_0x3e12d8(0x18c)]),_0x482db9=_0x515433[_0x3e12d8(0x1c8)](join,_0x438574,'refresh.txt');await mkdir(_0x438574,{'recursive':!![]}),await writeFile(_0x482db9,_0x557be0,{'mode':0x180}),await _0x515433[_0x3e12d8(0x188)](writeFile,join(_0x438574,_0x3e12d8(0x1e4)),_0x4687d9,{'mode':0x180}),console['log']('\x0aToken\x20written\x20to\x20'+_0x482db9),console['log'](_0x515433[_0x3e12d8(0x20e)]);}async function fetchAuthServerMetadata(_0xed2a17){const _0x57258b=_0x46302a,_0x23bbcd={'pYwXj':function(_0x18cbae,_0x21b382){return _0x18cbae(_0x21b382);}},_0x3f4a02=_0xed2a17+_0x57258b(0x211),_0x34761b=await _0x23bbcd[_0x57258b(0x199)](fetch,_0x3f4a02);if(!_0x34761b['ok'])throw new Error(_0x57258b(0x1e5)+_0x3f4a02+':\x20'+_0x34761b['status']);return _0x34761b['json']();}function waitForCallback(_0x46d8c1){const _0x423db7=_0x46302a,_0x320946={'qXqZj':function(_0x583af5,_0x1488fb){return _0x583af5(_0x1488fb);},'bwgKK':function(_0x4c17d6,_0x221056){return _0x4c17d6!==_0x221056;},'Bxmel':_0x423db7(0x1cc),'eUCRz':'error_description','dpwMZ':function(_0x1be8c8,_0x309322){return _0x1be8c8(_0x309322);},'omFyQ':_0x423db7(0x1d9),'ZpEFx':_0x423db7(0x18f)};return new Promise((_0x4bbae9,_0x1679e9)=>{const _0x379fd8=_0x423db7,_0x48aa4a={'sFKBF':function(_0x1e358e,_0x18c9d5){const _0x4b78c3=_0x37e1;return _0x320946[_0x4b78c3(0x1cf)](_0x1e358e,_0x18c9d5);},'uGBUu':_0x379fd8(0x17f),'zNgcK':_0x320946[_0x379fd8(0x1f2)],'OMpxJ':_0x320946[_0x379fd8(0x185)],'lHmaR':function(_0x4d5438,_0x5ef64d){return _0x320946['dpwMZ'](_0x4d5438,_0x5ef64d);},'dHrED':function(_0x2464a5,_0x3344d3){return _0x2464a5(_0x3344d3);},'ALYaZ':_0x320946[_0x379fd8(0x1ce)],'zjHlr':_0x320946[_0x379fd8(0x1ff)]},_0x225a98=setTimeout(()=>{const _0x4935df=_0x379fd8;_0x522b2a['close'](),_0x320946['qXqZj'](_0x1679e9,new OAuthTimeoutError(_0x4935df(0x1c7)));},0x1d4c0),_0x522b2a=_0x320946['qXqZj'](createServer,(_0x1d8428,_0x272d58)=>{const _0x50e8db=_0x379fd8,_0x22f52f=new URL(_0x1d8428[_0x50e8db(0x1d7)]??'/','http://localhost:'+CALLBACK_PORT);if(_0x48aa4a[_0x50e8db(0x1be)](_0x22f52f[_0x50e8db(0x1f5)],_0x48aa4a[_0x50e8db(0x1c6)])){_0x272d58['writeHead'](0x194),_0x272d58[_0x50e8db(0x187)](_0x50e8db(0x209));return;}const _0x47b75a=_0x22f52f['searchParams'][_0x50e8db(0x1dd)]('code'),_0x59ffa9=_0x22f52f[_0x50e8db(0x1f7)]['get'](_0x48aa4a[_0x50e8db(0x212)]),_0x243c53=_0x22f52f['searchParams']['get'](_0x50e8db(0x1d6));if(_0x243c53){const _0x483882=_0x22f52f['searchParams']['get'](_0x48aa4a['OMpxJ'])??_0x243c53;_0x272d58[_0x50e8db(0x1e1)](0xc8,{'Content-Type':_0x50e8db(0x1d9)}),_0x272d58[_0x50e8db(0x187)](_0x50e8db(0x1cd)+_0x483882+_0x50e8db(0x18a)),_0x48aa4a['lHmaR'](clearTimeout,_0x225a98),_0x522b2a[_0x50e8db(0x1ec)](),_0x48aa4a[_0x50e8db(0x19b)](_0x1679e9,new Error('OAuth\x20error:\x20'+_0x483882));return;}if(!_0x47b75a||_0x48aa4a['sFKBF'](_0x59ffa9,_0x46d8c1)){_0x272d58[_0x50e8db(0x1e1)](0x190,{'Content-Type':_0x48aa4a['ALYaZ']}),_0x272d58['end']('<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>');return;}_0x272d58['writeHead'](0xc8,{'Content-Type':_0x50e8db(0x1d9)}),_0x272d58['end'](_0x48aa4a['zjHlr']),clearTimeout(_0x225a98),_0x522b2a[_0x50e8db(0x1ec)](),_0x48aa4a[_0x50e8db(0x19b)](_0x4bbae9,_0x47b75a);});_0x522b2a[_0x379fd8(0x1bf)](CALLBACK_PORT,'127.0.0.1');});}async function openBrowser(_0x25c38e){const _0x5db714=_0x46302a,_0x231dcb={'ScXpa':_0x5db714(0x1f8),'EpTdI':function(_0x3902ab,_0xb8a298){return _0x3902ab===_0xb8a298;}},{exec:_0x541180}=await import(_0x5db714(0x1c5)),_0x4990b3=process['platform']===_0x5db714(0x1df)?_0x231dcb[_0x5db714(0x1a8)]:_0x231dcb[_0x5db714(0x198)](process['platform'],_0x5db714(0x1af))?_0x5db714(0x191):'xdg-open';_0x541180(_0x4990b3+'\x20\x22'+_0x25c38e+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x563ae2=_0x46302a,_0x53a0d5={'JHwHt':function(_0x675fac,_0x171782,_0x2a150f){return _0x675fac(_0x171782,_0x2a150f);}};try{const _0x1e3256=JSON['parse'](await _0x53a0d5['JHwHt'](readFile,TOKEN_CACHE_PATH,'utf-8'));if(_0x1e3256[_0x563ae2(0x20d)]&&_0x1e3256[_0x563ae2(0x20d)]!==currentOrigin)return null;if(_0x1e3256[_0x563ae2(0x1a1)]&&Date[_0x563ae2(0x1d1)]()>_0x1e3256['expiresAt'])return null;return _0x1e3256[_0x563ae2(0x194)]??null;}catch{return null;}}async function saveCachedToken(_0x4fec14,_0x1b175f,_0x2b726a){const _0x5291c5=_0x46302a,_0x43eab0={'QmHuN':function(_0x2041b8){return _0x2041b8();},'eKKgg':function(_0x2b865c,_0x4b7d8c){return _0x2b865c*_0x4b7d8c;},'aaBWJ':function(_0x23a7ab,_0x904aa1,_0x3ebb06){return _0x23a7ab(_0x904aa1,_0x3ebb06);},'QDcGu':'.ranger','EyMhf':function(_0x25b4d,_0x514239,_0x397adc,_0x1e099c){return _0x25b4d(_0x514239,_0x397adc,_0x1e099c);}},_0x28c240=await _0x43eab0[_0x5291c5(0x20f)](loadCachedData),_0x483906={..._0x28c240,'origin':currentOrigin,'accessToken':_0x4fec14,'refreshToken':_0x1b175f??_0x28c240?.[_0x5291c5(0x1e2)],'expiresAt':_0x2b726a?Date[_0x5291c5(0x1d1)]()+_0x43eab0[_0x5291c5(0x1d3)](_0x2b726a,0x3e8):undefined};await mkdir(_0x43eab0[_0x5291c5(0x1f0)](join,homedir(),_0x43eab0['QDcGu']),{'recursive':!![]}),await _0x43eab0[_0x5291c5(0x1ae)](writeFile,TOKEN_CACHE_PATH,JSON[_0x5291c5(0x1d8)](_0x483906),{'mode':0x180});}async function loadCachedClient(){const _0xdf24d0=_0x46302a,_0xba69c7=await loadCachedData();if(_0xba69c7?.[_0xdf24d0(0x20d)]&&_0xba69c7[_0xdf24d0(0x20d)]!==currentOrigin)return null;return _0xba69c7?.[_0xdf24d0(0x201)]?{'clientId':_0xba69c7['clientId'],'clientSecret':_0xba69c7['clientSecret']}:null;}async function clearCachedClient(){const _0x52f6c2=_0x46302a,_0x28514a={'cxNtZ':function(_0x2d8849,_0x4833b6,_0x344193,_0x3c8ed0){return _0x2d8849(_0x4833b6,_0x344193,_0x3c8ed0);}},_0x1fefa6=await loadCachedData();if(!_0x1fefa6)return;const {clientId:_0x5413bc,clientSecret:_0x574c01,..._0x133c0d}=_0x1fefa6;await _0x28514a[_0x52f6c2(0x1b0)](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x133c0d),{'mode':0x180});}async function saveCachedClient(_0x340a65,_0x466b49){const _0x33fe7c=_0x46302a,_0x44f5d6={'FZSfN':function(_0x2dcb2d,_0x11588c,_0x1d9311){return _0x2dcb2d(_0x11588c,_0x1d9311);},'jLtzt':_0x33fe7c(0x19c),'gnqYX':function(_0x5efc60,_0x58a9d9,_0x5be6e0,_0x39000c){return _0x5efc60(_0x58a9d9,_0x5be6e0,_0x39000c);}},_0x43bdc3=await loadCachedData(),_0x195147={..._0x43bdc3,'origin':currentOrigin,'accessToken':_0x43bdc3?.[_0x33fe7c(0x194)]??'','clientId':_0x340a65,'clientSecret':_0x466b49};await _0x44f5d6[_0x33fe7c(0x1b9)](mkdir,join(homedir(),_0x44f5d6[_0x33fe7c(0x1c4)]),{'recursive':!![]}),await _0x44f5d6[_0x33fe7c(0x1b1)](writeFile,TOKEN_CACHE_PATH,JSON[_0x33fe7c(0x1d8)](_0x195147),{'mode':0x180});}async function loadCachedData(){const _0x19ceb1=_0x46302a,_0x363502={'SAVuV':function(_0x23f048,_0x4dcbb5,_0x33c71a){return _0x23f048(_0x4dcbb5,_0x33c71a);},'vhmXX':'utf-8'};try{return JSON['parse'](await _0x363502['SAVuV'](readFile,TOKEN_CACHE_PATH,_0x363502[_0x19ceb1(0x200)]));}catch{return null;}}async function parseResponse(_0x2c3375){const _0x441bd7=_0x46302a,_0x1ff895={'QOPFv':'content-type','NbBBx':'data:','AiQeo':function(_0x99cc2c,_0x43fdb6){return _0x99cc2c!==_0x43fdb6;},'qdArK':'No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream'},_0x338a8f=_0x2c3375[_0x441bd7(0x1ea)][_0x441bd7(0x1dd)](_0x1ff895['QOPFv'])??'';if(_0x338a8f[_0x441bd7(0x17c)](_0x441bd7(0x182))){const _0x572a96=await _0x2c3375[_0x441bd7(0x1d0)]();for(const _0x5adcb0 of _0x572a96['split']('\x0a')){const _0x51f180=_0x5adcb0['trim']();if(_0x51f180['startsWith'](_0x1ff895['NbBBx'])){const _0x2decaa=_0x51f180['slice'](_0x1ff895[_0x441bd7(0x1f4)]['length'])['trim']();if(!_0x2decaa)continue;try{const _0x59450f=JSON[_0x441bd7(0x1bc)](_0x2decaa);if(_0x1ff895['AiQeo'](_0x59450f['id'],undefined)||_0x59450f['error'])return _0x59450f;}catch{}}}throw new Error(_0x1ff895[_0x441bd7(0x193)]);}return _0x2c3375['json']();}function extractToken(_0xa98c04){const _0x5ab2b7=_0x46302a,_0x3715b9={'tfHML':function(_0xda82d5,_0x320050){return _0xda82d5===_0x320050;},'haFjz':'text','oBKUV':_0x5ab2b7(0x202)};if(!_0xa98c04)return null;const _0x55443c=_0xa98c04['structuredContent'];if(_0x55443c?.[_0x5ab2b7(0x190)]&&_0x3715b9['tfHML'](typeof _0x55443c[_0x5ab2b7(0x190)],'string'))return _0x55443c[_0x5ab2b7(0x190)];if(_0xa98c04['isError']){const _0x26614c=_0xa98c04[_0x5ab2b7(0x203)];throw new Error('Server\x20returned\x20error:\x20'+(_0x26614c?.[0x0]?.['text']??'Unknown\x20error'));}const _0x16b679=_0xa98c04[_0x5ab2b7(0x203)];if(_0x16b679)for(const _0x2a1b7d of _0x16b679){if(_0x3715b9['tfHML'](_0x2a1b7d[_0x5ab2b7(0x17e)],_0x3715b9[_0x5ab2b7(0x181)])&&_0x2a1b7d[_0x5ab2b7(0x1d0)]){try{const _0x1c3d16=JSON[_0x5ab2b7(0x1bc)](_0x2a1b7d[_0x5ab2b7(0x1d0)]);if(typeof _0x1c3d16?.['token']===_0x3715b9['oBKUV'])return _0x1c3d16[_0x5ab2b7(0x190)];}catch{}const _0x4bb659=_0x2a1b7d['text'][_0x5ab2b7(0x210)](/(rngr_[A-Za-z0-9_-]+)/);if(_0x4bb659)return _0x4bb659[0x1];}}return null;}
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 +1 @@
1
- (function(_0x566b11,_0x172bcb){const _0x5ae464=_0x70b3,_0xae7aac=_0x566b11();while(!![]){try{const _0xfe97c0=parseInt(_0x5ae464(0x189))/0x1+-parseInt(_0x5ae464(0x165))/0x2+-parseInt(_0x5ae464(0x18d))/0x3+-parseInt(_0x5ae464(0x18b))/0x4*(parseInt(_0x5ae464(0x188))/0x5)+parseInt(_0x5ae464(0x17a))/0x6+parseInt(_0x5ae464(0x175))/0x7+-parseInt(_0x5ae464(0x178))/0x8*(-parseInt(_0x5ae464(0x185))/0x9);if(_0xfe97c0===_0x172bcb)break;else _0xae7aac['push'](_0xae7aac['shift']());}catch(_0x1adfbf){_0xae7aac['push'](_0xae7aac['shift']());}}}(_0x7e5a,0x46792));import{join}from'path';import{existsSync}from'fs';import _0x33a0f2 from'inquirer';import{skillup}from'../skillup.js';function _0x70b3(_0xb504d8,_0x304f9f){_0xb504d8=_0xb504d8-0x161;const _0x7e5a87=_0x7e5a();let _0x70b356=_0x7e5a87[_0xb504d8];return _0x70b356;}import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x7e5a(){const _0xa2d24d=['334737MRwsBU','cLQSo','CWbeG','jJSKb','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','PCAiI','260684vsKWNd','ZoQQK','ranger','MOwOF','WZxPL','pPxNW','LSFDA','list','error','wantsSkillup','push','plugin','bvbzT','VjQnJ','HbpLH','user','60018MtxVNH','confirm','XXZAq','27592hnIjkW','log','2515392tmzCGy','\x0aYou\x20can\x20install\x20manually\x20with:','\x20level)...\x0a','MUjOm','kggyc','NrNRt','--scope','output','✓\x20Ranger\x20skills\x20already\x20installed','oYHLI','success','261JkUhGd','HFOpk','✓\x20Claude\x20Code\x20plugin\x20enabled','594140yRZiaH','478064GbTtmo','seToj','16YtjAAp','project'];_0x7e5a=function(){return _0xa2d24d;};return _0x7e5a();}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0xc0cabf){const _0x69a12f=_0x70b3,_0x2296fc={'MUjOm':function(_0x14e0c3,_0x27b8b3){return _0x14e0c3(_0x27b8b3);},'LSFDA':'ranger@trailhead','oYHLI':_0x69a12f(0x163),'MOwOF':function(_0x550877,_0xa11fc3){return _0x550877(_0xa11fc3);},'XXZAq':function(_0x4bc7c6,_0x4c9a79,_0x31f0d5){return _0x4bc7c6(_0x4c9a79,_0x31f0d5);},'kggyc':'.claude','ZoQQK':'pluginScope','mZzwX':'Where\x20should\x20the\x20plugin\x20be\x20installed?','rHZVj':'User\x20(available\x20in\x20all\x20your\x20projects)','AOkaz':_0x69a12f(0x174),'PCAiI':function(_0x2ba0ab,_0x495d3a){return _0x2ba0ab(_0x495d3a);},'CWbeG':'✓\x20Marketplace\x20already\x20added','HFOpk':'marketplace','bvbzT':'add','Bsxqd':'ranger-testing/trailhead','VjQnJ':'\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','IGAzr':_0x69a12f(0x180),'NrNRt':function(_0x34d3e1,_0x46753e){return _0x34d3e1===_0x46753e;},'WZxPL':_0x69a12f(0x18c),'IoPHQ':_0x69a12f(0x187)},_0x4180d7=await _0x2296fc[_0x69a12f(0x17d)](isPluginInstalled,_0x2296fc['LSFDA']);if(_0x4180d7)return console['log'](_0x2296fc[_0x69a12f(0x183)]),![];const _0x2cbe8a=_0x2296fc[_0x69a12f(0x168)](existsSync,_0x2296fc[_0x69a12f(0x177)](join,getProjectRoot(),_0x2296fc[_0x69a12f(0x17e)]));let _0x5b749d;if(_0xc0cabf)_0x5b749d=_0xc0cabf;else{if(_0x2cbe8a)_0x5b749d=_0x69a12f(0x18c);else{console['log']('\x0a📦\x20Claude\x20Code\x20Plugin\x0a');const _0x2a7f3=await _0x33a0f2['prompt']([{'type':_0x69a12f(0x16c),'name':_0x2296fc[_0x69a12f(0x166)],'message':_0x2296fc['mZzwX'],'choices':[{'name':_0x2296fc['rHZVj'],'value':'user'},{'name':'Project\x20(shared\x20with\x20team\x20via\x20git)','value':'project'}],'default':_0x2296fc['AOkaz']}]);_0x5b749d=_0x2a7f3['pluginScope'];}}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x5b749d+_0x69a12f(0x17c));const _0x5edf90=await _0x2296fc[_0x69a12f(0x164)](isMarketplaceAdded,'trailhead');let _0x4954b2=_0x5edf90;if(_0x5edf90)console['log'](_0x2296fc[_0x69a12f(0x161)]);else{const _0x1879a3=await runClaudeCommand([_0x69a12f(0x170),_0x2296fc[_0x69a12f(0x186)],_0x2296fc[_0x69a12f(0x171)],_0x2296fc['Bsxqd']]);!_0x1879a3['success']?(console[_0x69a12f(0x16d)]('❌\x20Failed\x20to\x20add\x20marketplace:',_0x1879a3[_0x69a12f(0x16d)]),console['log'](_0x69a12f(0x17b)),console['log'](_0x2296fc[_0x69a12f(0x172)]),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x5b749d)):_0x4954b2=!![];}if(_0x4954b2){const _0x2c9098=await runClaudeCommand(['plugin','install',_0x2296fc[_0x69a12f(0x16b)],_0x2296fc['IGAzr'],_0x5b749d]);if(!_0x2c9098[_0x69a12f(0x184)])console[_0x69a12f(0x16d)]('❌\x20Failed\x20to\x20install\x20plugin:',_0x2c9098[_0x69a12f(0x16d)]),console[_0x69a12f(0x179)](_0x69a12f(0x17b)),console[_0x69a12f(0x179)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x5b749d);else{console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x4672e9=[_0x69a12f(0x170),'enable','ranger@trailhead'];_0x2296fc[_0x69a12f(0x17f)](_0x5b749d,_0x2296fc[_0x69a12f(0x169)])&&_0x4672e9[_0x69a12f(0x16f)]('--scope',_0x2296fc['WZxPL']);const _0x335be9=await _0x2296fc[_0x69a12f(0x177)](runClaudeCommand,_0x4672e9,{'captureOutput':!![]}),_0x1fc6cc=_0x335be9[_0x69a12f(0x181)]?.['includes']('already\x20enabled');!_0x335be9['success']&&!_0x1fc6cc?console['error']('⚠\x20Failed\x20to\x20enable\x20plugin:',_0x335be9['error']):console[_0x69a12f(0x179)](_0x2296fc['IoPHQ']);}}return!![];}export async function ensureClaudeSkills(_0x32ffaa){const _0x2b17b3=_0x70b3,_0x122518={'cLQSo':function(_0x4ebb86,_0x54fe2c){return _0x4ebb86(_0x54fe2c);},'HbpLH':function(_0x331718,_0x25738e,_0x557503,_0x48f8f4){return _0x331718(_0x25738e,_0x557503,_0x48f8f4);},'alRYd':'SKILL.md','jJSKb':function(_0x2129ef,_0xd7c614){return _0x2129ef(_0xd7c614);},'seToj':'project','oqiZB':_0x2b17b3(0x167),'HNSJC':_0x2b17b3(0x182),'pPxNW':_0x2b17b3(0x16e)},_0x3d9c98=_0x122518[_0x2b17b3(0x18e)](existsSync,_0x122518[_0x2b17b3(0x173)](join,_0x122518['cLQSo'](getSkillsDir,'user'),'ranger',_0x122518['alRYd'])),_0x4b09e8=_0x122518['cLQSo'](existsSync,join(_0x122518['jJSKb'](getSkillsDir,_0x122518[_0x2b17b3(0x18a)]),_0x122518['oqiZB'],_0x122518['alRYd']));if(_0x3d9c98||_0x4b09e8)return console[_0x2b17b3(0x179)](_0x122518['HNSJC']),![];const _0x485872=_0x122518[_0x2b17b3(0x162)](existsSync,join(getProjectRoot(),'.claude'));let _0x2bbbb4=!![];if(_0x32ffaa)await skillup({'autoInstall':_0x32ffaa,'suppressUsage':!![]});else{if(_0x485872)await skillup({'autoInstall':_0x122518['seToj'],'suppressUsage':!![]});else{const _0x3c4535=await _0x33a0f2['prompt']([{'type':_0x2b17b3(0x176),'name':_0x122518[_0x2b17b3(0x16a)],'message':'Would\x20you\x20like\x20to\x20install\x20skills?','default':!![]}]);_0x2bbbb4=_0x3c4535['wantsSkillup'],_0x2bbbb4&&await skillup({'suppressUsage':!![]});}}return _0x2bbbb4;}
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 +1 @@
1
- (function(_0x3fbd98,_0x24ab2e){const _0x5c649e=_0x544c,_0x85e0e1=_0x3fbd98();while(!![]){try{const _0x143ce6=-parseInt(_0x5c649e(0x1e3))/0x1*(-parseInt(_0x5c649e(0x1f6))/0x2)+parseInt(_0x5c649e(0x1f1))/0x3*(-parseInt(_0x5c649e(0x1e2))/0x4)+parseInt(_0x5c649e(0x1ed))/0x5+-parseInt(_0x5c649e(0x1f0))/0x6*(-parseInt(_0x5c649e(0x1f7))/0x7)+-parseInt(_0x5c649e(0x1ee))/0x8*(parseInt(_0x5c649e(0x1f5))/0x9)+-parseInt(_0x5c649e(0x1f2))/0xa+parseInt(_0x5c649e(0x1e6))/0xb*(parseInt(_0x5c649e(0x1fa))/0xc);if(_0x143ce6===_0x24ab2e)break;else _0x85e0e1['push'](_0x85e0e1['shift']());}catch(_0x41787b){_0x85e0e1['push'](_0x85e0e1['shift']());}}}(_0x5e4f,0x6cfeb));function _0x544c(_0x3e48b3,_0x2f6dd4){_0x3e48b3=_0x3e48b3-0x1df;const _0x5e4f85=_0x5e4f();let _0x544cab=_0x5e4f85[_0x3e48b3];return _0x544cab;}import{join}from'path';function _0x5e4f(){const _0x365ba6=['XmWMb','$schema','187wDxzoA','Project\x20(shared\x20with\x20team\x20via\x20git)','user','plugin','https://opencode.ai/config.json','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','opencode.json','204365PXEhgo','6808cTrJxD','✓\x20OpenCode\x20plugin\x20already\x20configured','12jASuRM','6654eUpEKu','6161940rwvREU','log','quJzC','1278riHRKX','41462VYPIkH','325913cuhWfd','oNDmr','utf-8','785676mvSDwN','\x0a📦\x20OpenCode\x20Plugin\x0a','User\x20(available\x20in\x20all\x20your\x20projects)','Yoibq','project','Failed\x20to\x20read\x20opencode.json','nOGFG','includes','152aIXiAP','1GRioYP'];_0x5e4f=function(){return _0x365ba6;};return _0x5e4f();}import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x54c18c from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x56955b){const _0x37a1e8=_0x544c,_0x4f961e={'FHDCV':function(_0x555067,_0x3c1334){return _0x555067(_0x3c1334);},'oNDmr':function(_0x1411fa,_0x58620f,_0x4d1696){return _0x1411fa(_0x58620f,_0x4d1696);},'nOGFG':function(_0x12b382,_0x58d840){return _0x12b382(_0x58d840);},'XmWMb':_0x37a1e8(0x1fe),'pmqNb':'pluginScope','QFUMZ':'Where\x20should\x20the\x20plugin\x20be\x20installed?','JembB':_0x37a1e8(0x1fc),'Hvbsu':function(_0xe12c4a,_0x10f111,_0x1ee0e5){return _0xe12c4a(_0x10f111,_0x1ee0e5);},'quJzC':function(_0x173a13,_0x209941){return _0x173a13(_0x209941);},'Yoibq':'opencode.json','MOyfR':'@ranger-testing/opencode-plugin','tilIY':_0x37a1e8(0x1ea),'okanP':_0x37a1e8(0x1f9),'Gixza':_0x37a1e8(0x1df),'NKRzz':function(_0x51f618,_0x3c9997){return _0x51f618(_0x3c9997);},'qfEPY':'✓\x20OpenCode\x20plugin\x20configured'},_0x1dd310=_0x4f961e['FHDCV'](existsSync,_0x4f961e['oNDmr'](join,_0x4f961e[_0x37a1e8(0x1e0)](getOpencodeConfigDir,_0x4f961e[_0x37a1e8(0x1e4)]),_0x37a1e8(0x1ec)));let _0x3fd065;if(_0x56955b)_0x3fd065=_0x56955b;else{if(_0x1dd310)_0x3fd065='project';else{console['log'](_0x37a1e8(0x1fb));const _0x34726e=await _0x54c18c['prompt']([{'type':'list','name':_0x4f961e['pmqNb'],'message':_0x4f961e['QFUMZ'],'choices':[{'name':_0x4f961e['JembB'],'value':_0x37a1e8(0x1e8)},{'name':_0x37a1e8(0x1e7),'value':_0x4f961e['XmWMb']}],'default':'user'}]);_0x3fd065=_0x34726e['pluginScope'];}}const _0x2d352c=_0x4f961e['Hvbsu'](join,_0x4f961e[_0x37a1e8(0x1f4)](getOpencodeConfigDir,_0x3fd065),_0x4f961e[_0x37a1e8(0x1fd)]),_0x325cb9=_0x4f961e['MOyfR'],_0x43bbef=_0x4f961e['tilIY'];let _0x508ec9={};if(existsSync(_0x2d352c))try{const _0x37d12d=await readFile(_0x2d352c,_0x4f961e['okanP']);_0x508ec9=JSON['parse'](_0x37d12d);}catch(_0x550ec3){return console['error'](_0x37a1e8(0x1eb)),{'configured':![],'scope':_0x3fd065,'error':_0x4f961e['Gixza'],'details':_0x550ec3};}const _0x10f041=Array['isArray'](_0x508ec9['plugin'])?_0x508ec9[_0x37a1e8(0x1e9)]:[];if(_0x10f041[_0x37a1e8(0x1e1)](_0x325cb9))return console[_0x37a1e8(0x1f3)](_0x37a1e8(0x1ef)),{'configured':![],'scope':_0x3fd065};return _0x508ec9[_0x37a1e8(0x1e5)]=_0x508ec9[_0x37a1e8(0x1e5)]||_0x43bbef,_0x508ec9['plugin']=[..._0x10f041,_0x325cb9],await _0x4f961e[_0x37a1e8(0x1f8)](mkdir,_0x4f961e['NKRzz'](getOpencodeConfigDir,_0x3fd065),{'recursive':!![]}),await writeFile(_0x2d352c,JSON['stringify'](_0x508ec9,null,0x2)+'\x0a'),console['log'](_0x4f961e['qfEPY']),{'configured':!![],'scope':_0x3fd065};}
1
+ (function(_0x16f332,_0x73a45f){const _0x3e2541=_0x5c25,_0x56e346=_0x16f332();while(!![]){try{const _0x25ff43=parseInt(_0x3e2541(0xd4))/0x1+parseInt(_0x3e2541(0xe3))/0x2+parseInt(_0x3e2541(0xe2))/0x3*(parseInt(_0x3e2541(0xe4))/0x4)+parseInt(_0x3e2541(0xd9))/0x5*(parseInt(_0x3e2541(0xd2))/0x6)+-parseInt(_0x3e2541(0xd6))/0x7*(parseInt(_0x3e2541(0xe5))/0x8)+parseInt(_0x3e2541(0xe9))/0x9+-parseInt(_0x3e2541(0xdd))/0xa;if(_0x25ff43===_0x73a45f)break;else _0x56e346['push'](_0x56e346['shift']());}catch(_0x400384){_0x56e346['push'](_0x56e346['shift']());}}}(_0x2982,0xa4df1));function _0x5c25(_0x23b97a,_0x565601){_0x23b97a=_0x23b97a-0xcd;const _0x298294=_0x2982();let _0x5c25ab=_0x298294[_0x23b97a];return _0x5c25ab;}import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x472936 from'inquirer';function _0x2982(){const _0x1d9def=['40FDyuPQ','stringify','pluginScope','parse','21144660QtRFUy','Project\x20(shared\x20with\x20team\x20via\x20git)','Where\x20should\x20the\x20plugin\x20be\x20installed?','✓\x20OpenCode\x20plugin\x20already\x20configured','log','3ewpXoJ','2433482nuVjcs','3978772QbhFey','40EteXbw','user','ULFFR','project','1703187EyOSur','OHImF','✓\x20OpenCode\x20plugin\x20configured','@ranger-testing/opencode-plugin','HUABi','zjgpO','\x0a📦\x20OpenCode\x20Plugin\x0a','Failed\x20to\x20read\x20opencode.json','518718RtUnVP','plugin','444053FWWYSa','heBNL','1045205cljvVy','SXysX','includes'];_0x2982=function(){return _0x1d9def;};return _0x2982();}import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x41e6a9){const _0x5a41ad=_0x5c25,_0x49add6={'ULFFR':function(_0x2b64fa,_0x5c0f56){return _0x2b64fa(_0x5c0f56);},'BetIk':function(_0x585491,_0x3d614b,_0x250a51){return _0x585491(_0x3d614b,_0x250a51);},'gxOum':'project','zjgpO':_0x5a41ad(0xd0),'heBNL':'list','QysXD':'User\x20(available\x20in\x20all\x20your\x20projects)','SXysX':_0x5a41ad(0xde),'qGpgb':function(_0x15d402,_0x49d62c,_0x3c434d){return _0x15d402(_0x49d62c,_0x3c434d);},'HEIfc':'opencode.json','TRWCl':_0x5a41ad(0xcd),'LadKy':'https://opencode.ai/config.json','CwpPv':'utf-8','JJmOh':'⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','VkQmR':_0x5a41ad(0xd1),'OHImF':function(_0x226675,_0x1cdf03){return _0x226675(_0x1cdf03);},'BVZPw':function(_0x3c71f6,_0x5926cc){return _0x3c71f6+_0x5926cc;},'HUABi':_0x5a41ad(0xeb)},_0x13ab9e=_0x49add6[_0x5a41ad(0xe7)](existsSync,_0x49add6['BetIk'](join,getOpencodeConfigDir('project'),'opencode.json'));let _0x311e38;if(_0x41e6a9)_0x311e38=_0x41e6a9;else{if(_0x13ab9e)_0x311e38=_0x49add6['gxOum'];else{console['log'](_0x49add6[_0x5a41ad(0xcf)]);const _0x5b27e3=await _0x472936['prompt']([{'type':_0x49add6[_0x5a41ad(0xd5)],'name':'pluginScope','message':_0x5a41ad(0xdf),'choices':[{'name':_0x49add6['QysXD'],'value':_0x5a41ad(0xe6)},{'name':_0x49add6[_0x5a41ad(0xd7)],'value':_0x5a41ad(0xe8)}],'default':_0x5a41ad(0xe6)}]);_0x311e38=_0x5b27e3[_0x5a41ad(0xdb)];}}const _0x53d2b6=_0x49add6['qGpgb'](join,getOpencodeConfigDir(_0x311e38),_0x49add6['HEIfc']),_0x263f3c=_0x49add6['TRWCl'],_0x585ec4=_0x49add6['LadKy'];let _0x16de1c={};if(existsSync(_0x53d2b6))try{const _0x548f6d=await readFile(_0x53d2b6,_0x49add6['CwpPv']);_0x16de1c=JSON[_0x5a41ad(0xdc)](_0x548f6d);}catch(_0x14bf4b){return console['error'](_0x49add6['JJmOh']),{'configured':![],'scope':_0x311e38,'error':_0x49add6['VkQmR'],'details':_0x14bf4b};}const _0x5f41db=Array['isArray'](_0x16de1c['plugin'])?_0x16de1c[_0x5a41ad(0xd3)]:[];if(_0x5f41db[_0x5a41ad(0xd8)](_0x263f3c))return console[_0x5a41ad(0xe1)](_0x5a41ad(0xe0)),{'configured':![],'scope':_0x311e38};return _0x16de1c['$schema']=_0x16de1c['$schema']||_0x585ec4,_0x16de1c[_0x5a41ad(0xd3)]=[..._0x5f41db,_0x263f3c],await mkdir(_0x49add6[_0x5a41ad(0xea)](getOpencodeConfigDir,_0x311e38),{'recursive':!![]}),await writeFile(_0x53d2b6,_0x49add6['BVZPw'](JSON[_0x5a41ad(0xda)](_0x16de1c,null,0x2),'\x0a')),console['log'](_0x49add6[_0x5a41ad(0xce)]),{'configured':!![],'scope':_0x311e38};}
@@ -1 +1 @@
1
- (function(_0x4df791,_0x25803f){const _0x29c778=_0x1bf9,_0x5999c3=_0x4df791();while(!![]){try{const _0x35af39=parseInt(_0x29c778(0xfc))/0x1+-parseInt(_0x29c778(0x10b))/0x2*(-parseInt(_0x29c778(0x120))/0x3)+-parseInt(_0x29c778(0xf8))/0x4*(-parseInt(_0x29c778(0x134))/0x5)+-parseInt(_0x29c778(0x113))/0x6*(-parseInt(_0x29c778(0xf9))/0x7)+parseInt(_0x29c778(0x110))/0x8+-parseInt(_0x29c778(0xff))/0x9*(parseInt(_0x29c778(0x10d))/0xa)+-parseInt(_0x29c778(0x119))/0xb*(parseInt(_0x29c778(0x127))/0xc);if(_0x35af39===_0x25803f)break;else _0x5999c3['push'](_0x5999c3['shift']());}catch(_0x188f29){_0x5999c3['push'](_0x5999c3['shift']());}}}(_0x22a4,0x57aff));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';function _0x22a4(){const _0x33c480=['693621jTGEIe','length','FPhUa','\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a','isDirectory','ranger@trailhead','pkZsP','success','profile_activate','Failed\x20to\x20install\x20plugin:','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','sessions','32bBeAPI','map','30bDhXbn','BKezg','settings.json','4360528ldGjyC','QIufU','trackPhaseEnd','1761810MQYVeJ','oueph','AZjEz','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','EHagP','rWmbz','55JQdOiX','plugin','ranger-testing/trailhead','name','trackPhaseStart','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','87507zggpQY','filter','Fnoya','zXcJK','message','path','HtdbT','4045740JRgwUK','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','MwXsm','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','--scope','hIles','skills','EhjiT','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','baseUrl','chromium','project','10585gfloMb','ldrxX','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','MExJo','marketplace','log','dir_setup','profile','1172ccsxiV','7WocLvx','fLiYl','error','350413OlxPvH','wMZvL','OvfgI'];_0x22a4=function(){return _0x33c480;};return _0x22a4();}import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x56a9ab){const _0x24e463=_0x1bf9,_0x47e09d={'QLeVr':function(_0x26b9df){return _0x26b9df();},'HtdbT':function(_0x49e4d3,_0x280642,_0x540f3e){return _0x49e4d3(_0x280642,_0x540f3e);},'MExJo':function(_0x27a294,_0x43dc9b){return _0x27a294+_0x43dc9b;},'ldrxX':_0x24e463(0x130),'IimeM':function(_0x1edc04,_0x2695ee,_0x5f564a){return _0x1edc04(_0x2695ee,_0x5f564a);},'mPLLQ':function(_0x1f2e33,_0x262045){return _0x1f2e33===_0x262045;},'BKezg':'No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','xuAXm':function(_0x43a323,_0x4f381a){return _0x43a323===_0x4f381a;}},_0x46990c=_0x47e09d['QLeVr'](getRangerDir),_0x5e6e82=join(_0x46990c,'ci');if(_0x56a9ab){const _0x1ac09d=_0x47e09d[_0x24e463(0x126)](join,_0x5e6e82,_0x56a9ab);return{'name':_0x56a9ab,'path':_0x1ac09d};}if(!existsSync(_0x5e6e82))throw new Error(_0x47e09d[_0x24e463(0x137)](_0x24e463(0x11f),_0x47e09d['ldrxX']));const _0xa845a0=await _0x47e09d['IimeM'](readdir,_0x5e6e82,{'withFileTypes':!![]}),_0x2d42f3=_0xa845a0[_0x24e463(0x121)](_0x20df26=>_0x20df26[_0x24e463(0x103)]())[_0x24e463(0x10c)](_0x577753=>_0x577753['name']);if(_0x47e09d['mPLLQ'](_0x2d42f3[_0x24e463(0x100)],0x0))throw new Error(_0x47e09d[_0x24e463(0x10e)]+_0x47e09d[_0x24e463(0x135)]);if(_0x47e09d['xuAXm'](_0x2d42f3['length'],0x1)){const _0x2e394c=_0x2d42f3[0x0];return console['log']('Auto-detected\x20CI\x20profile:\x20'+_0x2e394c),{'name':_0x2e394c,'path':join(_0x5e6e82,_0x2e394c)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x2d42f3['join'](',\x20')+_0x24e463(0x128));}function _0x1bf9(_0x4a4c57,_0x6f1644){_0x4a4c57=_0x4a4c57-0xf4;const _0x22a4e1=_0x22a4();let _0x1bf96c=_0x22a4e1[_0x4a4c57];return _0x1bf96c;}async function installPluginNonInteractive(){const _0x2e0ed5=_0x1bf9,_0x3e5716={'xGcHA':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','OvfgI':'Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','pkZsP':function(_0x5638e4,_0x5b51b1){return _0x5638e4(_0x5b51b1);},'fLiYl':'trailhead','NSsOm':'add','EhjiT':'Failed\x20to\x20add\x20marketplace:','RQJHe':_0x2e0ed5(0x136),'eLsWT':_0x2e0ed5(0x104),'lFcEo':_0x2e0ed5(0x12c),'MwXsm':_0x2e0ed5(0x133),'bhYmn':_0x2e0ed5(0x12b),'zXcJK':'✓\x20Claude\x20Code\x20plugin\x20installed'},_0x38025a=await isPluginInstalled('ranger@trailhead');if(_0x38025a)return console[_0x2e0ed5(0xf5)](_0x3e5716['xGcHA']),![];console['log'](_0x3e5716[_0x2e0ed5(0xfe)]);const _0x2cf9f3=await _0x3e5716[_0x2e0ed5(0x105)](isMarketplaceAdded,_0x3e5716[_0x2e0ed5(0xfa)]);let _0x3e7a46=_0x2cf9f3;if(_0x2cf9f3)console['log']('✓\x20Marketplace\x20already\x20added');else{const _0x41234e=await runClaudeCommand(['plugin',_0x2e0ed5(0xf4),_0x3e5716['NSsOm'],_0x2e0ed5(0x11b)]);!_0x41234e[_0x2e0ed5(0x106)]?(console['error'](_0x3e5716[_0x2e0ed5(0x12f)],_0x41234e['error']),console['log'](_0x3e5716['RQJHe'])):_0x3e7a46=!![];}if(_0x3e7a46){const _0x58f918=await runClaudeCommand(['plugin','install',_0x3e5716['eLsWT'],_0x3e5716['lFcEo'],_0x3e5716[_0x2e0ed5(0x12a)]]);!_0x58f918[_0x2e0ed5(0x106)]?(console[_0x2e0ed5(0xfb)](_0x2e0ed5(0x108),_0x58f918['error']),console['log'](_0x3e5716['bhYmn'])):console['log'](_0x3e5716[_0x2e0ed5(0x123)]);}return!![];}export async function setupCi(_0x52cdd4,_0x2fe642,_0x25d122){const _0xd6331b=_0x1bf9,_0x327424={'QIufU':'auth','hIles':function(_0xab8c2c,_0xb30abd){return _0xab8c2c(_0xb30abd);},'Fnoya':function(_0x1a8eac,_0x1ef330,_0x243ae6){return _0x1a8eac(_0x1ef330,_0x243ae6);},'Sbtjn':_0xd6331b(0x10a),'YqjXD':_0xd6331b(0xf6),'ybTgB':function(_0x53545e){return _0x53545e();},'EHagP':function(_0x433481,_0x2c5c3b,_0xd9b37f){return _0x433481(_0x2c5c3b,_0xd9b37f);},'darUW':_0xd6331b(0x10f),'kFkJK':function(_0x24f2ca,_0x220f7d){return _0x24f2ca(_0x220f7d);},'FPhUa':'No\x20API\x20token\x20available\x20for\x20decryption','rWmbz':_0xd6331b(0x109),'SPLqz':_0xd6331b(0x11e),'wMZvL':_0xd6331b(0x11a),'AZjEz':_0xd6331b(0x133),'rtrAm':_0xd6331b(0x12e),'oueph':_0xd6331b(0x102)};console['log'](_0xd6331b(0x129)),_0x25d122?.[_0xd6331b(0x11d)](_0x327424[_0xd6331b(0x111)]),await _0x327424['hIles'](authenticate,_0x52cdd4),_0x25d122?.['trackPhaseEnd'](_0x327424[_0xd6331b(0x111)]),_0x25d122?.[_0xd6331b(0x11d)](_0xd6331b(0xf6));const {path:_0x4c5b77,installed:_0x470fa7}=await ensureRangerDir();await writeRangerGitignore(_0x4c5b77);const _0x39579f=_0x327424[_0xd6331b(0x122)](join,_0x4c5b77,_0x327424['Sbtjn']);!_0x327424[_0xd6331b(0x12d)](existsSync,_0x39579f)&&await mkdir(_0x39579f,{'recursive':!![]});_0x25d122?.['trackPhaseEnd'](_0x327424['YqjXD'],{'installed':_0x470fa7}),_0x25d122?.['trackPhaseStart']('chromium');let _0x49bf00=![];_0x2fe642?.['skipChromium']?console['log']('✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)'):_0x49bf00=await _0x327424['ybTgB'](ensureChromium);_0x25d122?.[_0xd6331b(0x112)](_0xd6331b(0x132),{'installed':_0x49bf00,'skipped':!!_0x2fe642?.['skipChromium']}),_0x25d122?.['trackPhaseStart'](_0xd6331b(0x107));const _0x5cac05=await findCiProfile(_0x2fe642?.[_0xd6331b(0xf7)]);let _0x3485e9=![];_0x2fe642?.['baseUrl']&&(await _0x327424[_0xd6331b(0x117)](mkdir,_0x5cac05['path'],{'recursive':!![]}),await _0x327424[_0xd6331b(0x117)](saveSettings,_0x5cac05['name'],{'baseUrl':_0x2fe642[_0xd6331b(0x131)],'headless':!![]}),console[_0xd6331b(0xf5)]('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x2fe642[_0xd6331b(0x131)]),_0x3485e9=!![]);const _0x1e82de=_0x327424['Fnoya'](join,_0x5cac05[_0xd6331b(0x125)],_0x327424['darUW']);if(!_0x327424['kFkJK'](existsSync,_0x1e82de)&&!_0x3485e9)throw new Error('CI\x20profile\x20\x22'+_0x5cac05['name']+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x515a85=join(_0x5cac05[_0xd6331b(0x125)],'auth.json'),_0x54efb4=join(_0x5cac05[_0xd6331b(0x125)],'auth.json.enc'),_0x551757=existsSync(_0x515a85),_0x31cb3e=existsSync(_0x54efb4);if(_0x31cb3e)try{const _0x36ed20=await getToken();if(!_0x36ed20)throw new Error(_0x327424[_0xd6331b(0x101)]);const _0x3f1801=await readFile(_0x54efb4);decrypt(_0x3f1801,_0x36ed20),console['log'](_0x327424[_0xd6331b(0x118)]);}catch(_0x435de3){const _0x2e09c7=_0x435de3 instanceof Error?_0x435de3[_0xd6331b(0x124)]:_0x327424['kFkJK'](String,_0x435de3);throw new Error(_0xd6331b(0x116)+_0x5cac05['name']+'\x22:\x20'+_0x2e09c7);}else _0x551757?console['log']('✓\x20Auth\x20state\x20found'):console[_0xd6331b(0xf5)](_0x327424['SPLqz']);await writeActiveProfileName(_0x5cac05[_0xd6331b(0x11c)]),console[_0xd6331b(0xf5)]('✓\x20Active\x20profile:\x20'+_0x5cac05[_0xd6331b(0x11c)]),_0x25d122?.['trackPhaseEnd']('profile_activate',{'profileName':_0x5cac05[_0xd6331b(0x11c)],'hasAuth':_0x551757,'hasEncryptedAuth':_0x31cb3e,'createdSettings':_0x3485e9}),_0x25d122?.['trackPhaseStart'](_0x327424[_0xd6331b(0xfd)]);const _0x22c2bb=await installPluginNonInteractive();_0x25d122?.['trackPhaseEnd'](_0xd6331b(0x11a),{'installed':_0x22c2bb}),_0x25d122?.[_0xd6331b(0x11d)](_0xd6331b(0x12e)),await skillup({'autoInstall':_0x327424[_0xd6331b(0x115)]}),_0x25d122?.['trackPhaseEnd'](_0x327424['rtrAm']),console[_0xd6331b(0xf5)](_0x327424[_0xd6331b(0x114)]);}
1
+ (function(_0x2260e2,_0x131845){const _0x1da4f9=_0x5e01,_0x3c94f9=_0x2260e2();while(!![]){try{const _0x10c6e0=parseInt(_0x1da4f9(0x13c))/0x1+parseInt(_0x1da4f9(0x101))/0x2+parseInt(_0x1da4f9(0x11f))/0x3*(parseInt(_0x1da4f9(0x12f))/0x4)+-parseInt(_0x1da4f9(0x108))/0x5+-parseInt(_0x1da4f9(0x112))/0x6*(-parseInt(_0x1da4f9(0x121))/0x7)+parseInt(_0x1da4f9(0x129))/0x8+-parseInt(_0x1da4f9(0x104))/0x9;if(_0x10c6e0===_0x131845)break;else _0x3c94f9['push'](_0x3c94f9['shift']());}catch(_0x4a9f14){_0x3c94f9['push'](_0x3c94f9['shift']());}}}(_0x3176,0xd1f28));import{mkdir,readFile,readdir}from'fs/promises';function _0x5e01(_0x14afa0,_0x2f7dc4){_0x14afa0=_0x14afa0-0xff;const _0x317652=_0x3176();let _0x5e01f6=_0x317652[_0x14afa0];return _0x5e01f6;}import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';function _0x3176(){const _0x56a6ec=['ECxDm','skvre','skipChromium','baseUrl','8863600NAnrDa','pnkPx','ranger-testing/trailhead','auth.json','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','8jWZkMT','error','CI\x20profile\x20\x22','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','ranger@trailhead','add','settings.json','sessions','cGRzi','No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','kgsHN','hDnYg','trackPhaseStart','684800yuFsEJ','success','install','✓\x20Active\x20profile:\x20','map','dir_setup','sqmpy','UOjCl','704768yUGmNK','uTpeI','\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a','5368023sjamYX','path','Multiple\x20CI\x20profiles\x20found:\x20','plugin','4099790ceXwWB','No\x20API\x20token\x20available\x20for\x20decryption','profile','KjHru','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','name','\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','Auto-detected\x20CI\x20profile:\x20','vUTrB','EqpkW','10722ynFUEa','urnTg','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','marketplace','log','cRLSC','project','✓\x20Created\x20profile\x20settings:\x20baseUrl=','auth.json.enc','trackPhaseEnd','cDCYN','CYFtS','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','6507hARwIm','profile_activate','497qpiEaz','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','Failed\x20to\x20install\x20plugin:'];_0x3176=function(){return _0x56a6ec;};return _0x3176();}import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x4b690f){const _0x10b04e=_0x5e01,_0x29ab85={'wwviv':function(_0x55a986,_0x4710d0,_0xcbbca0){return _0x55a986(_0x4710d0,_0xcbbca0);},'EAOLI':function(_0xf847d0,_0x581589){return _0xf847d0+_0x581589;},'Opqel':_0x10b04e(0x138),'sqmpy':function(_0x5f1f20,_0x22ca18,_0x2f79b0){return _0x5f1f20(_0x22ca18,_0x2f79b0);},'TLhAr':_0x10b04e(0x12d),'uTpeI':'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','kNXEE':function(_0x4da7b8,_0x47db18,_0x4d5788){return _0x4da7b8(_0x47db18,_0x4d5788);}},_0x19cdfa=getRangerDir(),_0x4014a6=_0x29ab85['wwviv'](join,_0x19cdfa,'ci');if(_0x4b690f){const _0xccddd1=_0x29ab85['wwviv'](join,_0x4014a6,_0x4b690f);return{'name':_0x4b690f,'path':_0xccddd1};}if(!existsSync(_0x4014a6))throw new Error(_0x29ab85['EAOLI'](_0x29ab85['Opqel'],'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.'));const _0x333303=await _0x29ab85[_0x10b04e(0xff)](readdir,_0x4014a6,{'withFileTypes':!![]}),_0x2ca3a1=_0x333303['filter'](_0x506578=>_0x506578['isDirectory']())[_0x10b04e(0x140)](_0x1832d1=>_0x1832d1[_0x10b04e(0x10d)]);if(_0x2ca3a1['length']===0x0)throw new Error(_0x29ab85['TLhAr']+_0x29ab85[_0x10b04e(0x102)]);if(_0x2ca3a1['length']===0x1){const _0x1f968b=_0x2ca3a1[0x0];return console['log'](_0x10b04e(0x10f)+_0x1f968b),{'name':_0x1f968b,'path':_0x29ab85['kNXEE'](join,_0x4014a6,_0x1f968b)};}throw new Error(_0x10b04e(0x106)+_0x2ca3a1['join'](',\x20')+_0x10b04e(0x12e));}async function installPluginNonInteractive(){const _0x4a3c00=_0x5e01,_0xceb594={'kgsHN':'ranger@trailhead','uWmRV':_0x4a3c00(0x122),'XgnAc':function(_0x399d29,_0x1c5c3f){return _0x399d29(_0x1c5c3f);},'eSqeS':'✓\x20Marketplace\x20already\x20added','FRJew':_0x4a3c00(0x134),'urnTg':'You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','SnjMe':'plugin','MjGZW':_0x4a3c00(0x118),'wabPA':_0x4a3c00(0x123),'hDnYg':'✓\x20Claude\x20Code\x20plugin\x20installed'},_0x59ee77=await isPluginInstalled(_0xceb594[_0x4a3c00(0x139)]);if(_0x59ee77)return console['log'](_0x4a3c00(0x10c)),![];console[_0x4a3c00(0x116)](_0xceb594['uWmRV']);const _0x3c19a1=await _0xceb594['XgnAc'](isMarketplaceAdded,'trailhead');let _0x516d56=_0x3c19a1;if(_0x3c19a1)console[_0x4a3c00(0x116)](_0xceb594['eSqeS']);else{const _0x427680=await _0xceb594['XgnAc'](runClaudeCommand,[_0x4a3c00(0x107),_0x4a3c00(0x115),_0xceb594['FRJew'],_0x4a3c00(0x12b)]);!_0x427680['success']?(console['error']('Failed\x20to\x20add\x20marketplace:',_0x427680[_0x4a3c00(0x130)]),console['log'](_0xceb594[_0x4a3c00(0x113)])):_0x516d56=!![];}if(_0x516d56){const _0x540a38=await runClaudeCommand([_0xceb594['SnjMe'],_0x4a3c00(0x13e),_0x4a3c00(0x133),'--scope',_0xceb594['MjGZW']]);!_0x540a38[_0x4a3c00(0x13d)]?(console[_0x4a3c00(0x130)](_0x4a3c00(0x124),_0x540a38['error']),console['log'](_0xceb594['wabPA'])):console['log'](_0xceb594[_0x4a3c00(0x13a)]);}return!![];}export async function setupCi(_0x23f782,_0x1736d8,_0x16fcd9){const _0x591a72=_0x5e01,_0x5175f4={'jBNvR':'auth','vuxHK':function(_0x68c85d,_0x6b0c70){return _0x68c85d(_0x6b0c70);},'skvre':function(_0x19f5fc,_0x1a90c5,_0x5bfd62){return _0x19f5fc(_0x1a90c5,_0x5bfd62);},'cRLSC':_0x591a72(0x136),'cGRzi':function(_0x5555d1,_0xcf6418){return _0x5555d1(_0xcf6418);},'UOjCl':'chromium','zxxkG':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','WUcKa':function(_0x2b15dd){return _0x2b15dd();},'pnkPx':_0x591a72(0x135),'cDCYN':function(_0x44177d,_0x27e29c,_0xc88e7c){return _0x44177d(_0x27e29c,_0xc88e7c);},'NdmIE':_0x591a72(0x109),'CYFtS':'✓\x20Auth\x20state\x20found','otEiA':_0x591a72(0x114),'EqpkW':function(_0x46437f,_0x45e1f9){return _0x46437f(_0x45e1f9);},'fnEkW':_0x591a72(0x120),'ECxDm':_0x591a72(0x107),'KjHru':'skills','vUTrB':_0x591a72(0x103)};console[_0x591a72(0x116)](_0x591a72(0x10e)),_0x16fcd9?.[_0x591a72(0x13b)]('auth'),await authenticate(_0x23f782),_0x16fcd9?.['trackPhaseEnd'](_0x5175f4['jBNvR']),_0x16fcd9?.['trackPhaseStart']('dir_setup');const {path:_0xcffae2,installed:_0x4302a6}=await ensureRangerDir();await _0x5175f4['vuxHK'](writeRangerGitignore,_0xcffae2);const _0x524da0=_0x5175f4['skvre'](join,_0xcffae2,_0x5175f4[_0x591a72(0x117)]);!_0x5175f4[_0x591a72(0x137)](existsSync,_0x524da0)&&await _0x5175f4['skvre'](mkdir,_0x524da0,{'recursive':!![]});_0x16fcd9?.[_0x591a72(0x11b)](_0x591a72(0x141),{'installed':_0x4302a6}),_0x16fcd9?.[_0x591a72(0x13b)](_0x5175f4[_0x591a72(0x100)]);let _0x24e8dd=![];_0x1736d8?.[_0x591a72(0x127)]?console[_0x591a72(0x116)](_0x5175f4['zxxkG']):_0x24e8dd=await _0x5175f4['WUcKa'](ensureChromium);_0x16fcd9?.[_0x591a72(0x11b)](_0x5175f4[_0x591a72(0x100)],{'installed':_0x24e8dd,'skipped':!!_0x1736d8?.[_0x591a72(0x127)]}),_0x16fcd9?.['trackPhaseStart']('profile_activate');const _0x4c3554=await findCiProfile(_0x1736d8?.[_0x591a72(0x10a)]);let _0x490538=![];_0x1736d8?.[_0x591a72(0x128)]&&(await _0x5175f4[_0x591a72(0x126)](mkdir,_0x4c3554['path'],{'recursive':!![]}),await saveSettings(_0x4c3554['name'],{'baseUrl':_0x1736d8[_0x591a72(0x128)],'headless':!![]}),console['log'](_0x591a72(0x119)+_0x1736d8[_0x591a72(0x128)]),_0x490538=!![]);const _0x73c0ba=join(_0x4c3554[_0x591a72(0x105)],_0x5175f4[_0x591a72(0x12a)]);if(!_0x5175f4[_0x591a72(0x137)](existsSync,_0x73c0ba)&&!_0x490538)throw new Error(_0x591a72(0x131)+_0x4c3554[_0x591a72(0x10d)]+_0x591a72(0x132));const _0x3a5752=join(_0x4c3554['path'],_0x591a72(0x12c)),_0x175afb=_0x5175f4[_0x591a72(0x11c)](join,_0x4c3554[_0x591a72(0x105)],_0x591a72(0x11a)),_0x321237=_0x5175f4['cGRzi'](existsSync,_0x3a5752),_0x57f35a=existsSync(_0x175afb);if(_0x57f35a)try{const _0x4f0435=await getToken();if(!_0x4f0435)throw new Error(_0x5175f4['NdmIE']);const _0x63b557=await readFile(_0x175afb);_0x5175f4[_0x591a72(0x126)](decrypt,_0x63b557,_0x4f0435),console['log']('✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)');}catch(_0x3d480f){const _0x32ec3a=_0x3d480f instanceof Error?_0x3d480f['message']:String(_0x3d480f);throw new Error(_0x591a72(0x11e)+_0x4c3554[_0x591a72(0x10d)]+'\x22:\x20'+_0x32ec3a);}else _0x321237?console['log'](_0x5175f4[_0x591a72(0x11d)]):console['log'](_0x5175f4['otEiA']);await _0x5175f4[_0x591a72(0x111)](writeActiveProfileName,_0x4c3554[_0x591a72(0x10d)]),console[_0x591a72(0x116)](_0x591a72(0x13f)+_0x4c3554['name']),_0x16fcd9?.['trackPhaseEnd'](_0x5175f4['fnEkW'],{'profileName':_0x4c3554[_0x591a72(0x10d)],'hasAuth':_0x321237,'hasEncryptedAuth':_0x57f35a,'createdSettings':_0x490538}),_0x16fcd9?.[_0x591a72(0x13b)](_0x5175f4['ECxDm']);const _0x54324d=await installPluginNonInteractive();_0x16fcd9?.[_0x591a72(0x11b)](_0x5175f4[_0x591a72(0x125)],{'installed':_0x54324d}),_0x16fcd9?.[_0x591a72(0x13b)](_0x5175f4[_0x591a72(0x10b)]),await skillup({'autoInstall':_0x591a72(0x118)}),_0x16fcd9?.['trackPhaseEnd'](_0x5175f4['KjHru']),console['log'](_0x5175f4[_0x591a72(0x110)]);}
@@ -1 +1 @@
1
- function _0x357d(){const _0x3f0fb4=['\x20--opencode','YzuOX','\x20skill','109574XQbJGa','installLevel','\x20<your-api-token>','This\x20project\x20only\x20(','\x20successfully!\x0a','warn','\x20\x203.\x20Run:\x20ranger\x20skillup','3rPvwbz','90NPdWHD','1003036dFssTK','14880bJtwYU','8fxcUWf','project-level','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','2gMxZNi','ranger','CJCvd','log','user-level','1887636lpXBMj','YIVZT','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','user','All\x20projects\x20(','\x20\x202.\x20Run:\x20ranger\x20setup','PbNFu','autoInstall','XiedE','Where\x20should\x20skills\x20be\x20installed?','ZJdeh','message','VcePr','1859KyybiP','stdin','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','prompt','\x0a✅\x20Installed\x20','\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a','74097WWnuQJ','ooUYd','opencode','HBzFU','vTONS','869743LkDuXr','split','tfkzF','402310ZappGS','list','✓\x20Found\x20API\x20token','xVQiY'];_0x357d=function(){return _0x3f0fb4;};return _0x357d();}(function(_0x2f4ebb,_0x5ec1bc){const _0x5ab2f2=_0x40bb,_0x55e439=_0x2f4ebb();while(!![]){try{const _0xbc468f=-parseInt(_0x5ab2f2(0x17f))/0x1*(-parseInt(_0x5ab2f2(0x18d))/0x2)+-parseInt(_0x5ab2f2(0x186))/0x3*(parseInt(_0x5ab2f2(0x188))/0x4)+parseInt(_0x5ab2f2(0x178))/0x5+parseInt(_0x5ab2f2(0x192))/0x6+-parseInt(_0x5ab2f2(0x175))/0x7*(-parseInt(_0x5ab2f2(0x18a))/0x8)+-parseInt(_0x5ab2f2(0x170))/0x9*(-parseInt(_0x5ab2f2(0x187))/0xa)+parseInt(_0x5ab2f2(0x19f))/0xb*(-parseInt(_0x5ab2f2(0x189))/0xc);if(_0xbc468f===_0x5ec1bc)break;else _0x55e439['push'](_0x55e439['shift']());}catch(_0x56de54){_0x55e439['push'](_0x55e439['shift']());}}}(_0x357d,0x3b3ed));import{basename}from'path';import _0x1b1bcd from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';function _0x40bb(_0x36fb7a,_0x5d3d7b){_0x36fb7a=_0x36fb7a-0x170;const _0x357d91=_0x357d();let _0x40bb9b=_0x357d91[_0x36fb7a];return _0x40bb9b;}import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x1af866={}){const _0x49b0b5=_0x40bb,_0x526db3={'coqyO':'\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','ZJdeh':'claude','OTgjS':function(_0x179362){return _0x179362();},'tfkzF':function(_0x17c196,_0x43bfe0){return _0x17c196===_0x43bfe0;},'ooUYd':_0x49b0b5(0x17c),'XiedE':function(_0x2be8c2,_0x20c70b){return _0x2be8c2===_0x20c70b;},'PbNFu':_0x49b0b5(0x172),'PRjXN':'To\x20get\x20started:','YIVZT':_0x49b0b5(0x17a),'sqvQb':function(_0x44b2a7){return _0x44b2a7();},'xVQiY':function(_0xace1a,_0x1d9c95){return _0xace1a(_0x1d9c95);},'YzuOX':function(_0x5b8d39,_0x5da432){return _0x5b8d39===_0x5da432;},'JvxNB':'project','CJCvd':function(_0x2715da,_0xe979ef,_0x586cb8){return _0x2715da(_0xe979ef,_0x586cb8);},'HBzFU':_0x49b0b5(0x1a1),'VcePr':function(_0xfe2fa8,_0x303649){return _0xfe2fa8>_0x303649;},'fdWef':_0x49b0b5(0x195),'vTONS':_0x49b0b5(0x18b),'ZtsUH':_0x49b0b5(0x1a4)};console[_0x49b0b5(0x190)](_0x526db3['coqyO']);const _0x23a342=_0x1af866['platform']??_0x526db3[_0x49b0b5(0x19c)],_0x31a0a3=await _0x526db3['OTgjS'](getToken);if(!_0x31a0a3){const _0x449382='1|4|0|3|2|5'[_0x49b0b5(0x176)]('|');let _0x114ac4=0x0;while(!![]){switch(_0x449382[_0x114ac4++]){case'0':console['log']('\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli');continue;case'1':console[_0x49b0b5(0x190)](_0x49b0b5(0x194));continue;case'2':console['log'](_0x49b0b5(0x185)+(_0x526db3[_0x49b0b5(0x177)](_0x23a342,_0x49b0b5(0x172))?_0x526db3[_0x49b0b5(0x171)]:'')+'\x0a');continue;case'3':console['log'](_0x49b0b5(0x197)+(_0x526db3[_0x49b0b5(0x19a)](_0x23a342,_0x526db3[_0x49b0b5(0x198)])?_0x526db3[_0x49b0b5(0x171)]:'')+_0x49b0b5(0x181));continue;case'4':console[_0x49b0b5(0x190)](_0x526db3['PRjXN']);continue;case'5':return;}break;}}console['log'](_0x526db3[_0x49b0b5(0x193)]);const _0x2f0cc6=_0x526db3['sqvQb'](getProjectRoot),_0x5a4a19=_0x526db3[_0x49b0b5(0x17b)](basename,_0x2f0cc6),_0x2a4255=_0x526db3[_0x49b0b5(0x17d)](_0x23a342,'opencode')?getOpencodeConfigDir('user')+'/skills/':getClaudeConfigDir()+'/skills/',_0x4f8616=_0x23a342==='opencode'?_0x2f0cc6+'/.opencode/skills/':_0x2f0cc6+'/.claude/skills/',_0x1558cd=process[_0x49b0b5(0x1a0)]['isTTY']&&process['stdout']['isTTY'];let _0x174d7a;if(_0x1af866['autoInstall'])_0x174d7a=_0x1af866[_0x49b0b5(0x199)];else{if(_0x1558cd){const _0x402bab=await _0x1b1bcd[_0x49b0b5(0x1a2)]([{'type':_0x49b0b5(0x179),'name':_0x49b0b5(0x180),'message':_0x49b0b5(0x19b),'choices':[{'name':_0x49b0b5(0x196)+_0x2a4255+')','value':_0x49b0b5(0x195)},{'name':_0x49b0b5(0x182)+_0x4f8616+')','value':'project'}]}]);_0x174d7a=_0x402bab['installLevel'];}else _0x174d7a=_0x526db3['JvxNB'],console[_0x49b0b5(0x190)]('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x4f8616+')');}let _0x125fb2=0x0;const _0x4e2e70=getCurrentVersion();console[_0x49b0b5(0x190)]('\x0a📦\x20Installing\x20skills...\x0a');try{const _0x3e7707=await _0x526db3[_0x49b0b5(0x18f)](installSkill,_0x49b0b5(0x18e),{'cliVersion':_0x4e2e70,'level':_0x174d7a,'platform':_0x23a342});_0x3e7707&&_0x125fb2++;}catch(_0x449a73){console[_0x49b0b5(0x184)](_0x526db3[_0x49b0b5(0x173)],_0x449a73 instanceof Error?_0x449a73[_0x49b0b5(0x19d)]:_0x449a73);}if(_0x526db3[_0x49b0b5(0x19e)](_0x125fb2,0x0)){const _0x4814c6=_0x174d7a===_0x526db3['fdWef']?_0x49b0b5(0x191):_0x526db3[_0x49b0b5(0x174)];console['log'](_0x49b0b5(0x1a3)+_0x125fb2+'\x20'+_0x4814c6+_0x49b0b5(0x17e)+(_0x125fb2>0x1?'s':'')+_0x49b0b5(0x183)),!_0x1af866['suppressUsage']&&(console['log']('To\x20use:'),_0x23a342===_0x526db3['PbNFu']?console[_0x49b0b5(0x190)](_0x49b0b5(0x18c)):console[_0x49b0b5(0x190)]('\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'));}else console['log'](_0x526db3['ZtsUH']);}
1
+ (function(_0x1e33af,_0x594ffe){const _0x37fe89=_0xa9b4,_0x1f18ce=_0x1e33af();while(!![]){try{const _0x1cbbd7=parseInt(_0x37fe89(0x1a5))/0x1*(-parseInt(_0x37fe89(0x182))/0x2)+-parseInt(_0x37fe89(0x1a1))/0x3*(parseInt(_0x37fe89(0x199))/0x4)+parseInt(_0x37fe89(0x1ab))/0x5*(parseInt(_0x37fe89(0x1a8))/0x6)+parseInt(_0x37fe89(0x186))/0x7*(parseInt(_0x37fe89(0x1a3))/0x8)+-parseInt(_0x37fe89(0x19d))/0x9*(-parseInt(_0x37fe89(0x198))/0xa)+parseInt(_0x37fe89(0x1ac))/0xb*(-parseInt(_0x37fe89(0x18a))/0xc)+parseInt(_0x37fe89(0x19a))/0xd*(parseInt(_0x37fe89(0x181))/0xe);if(_0x1cbbd7===_0x594ffe)break;else _0x1f18ce['push'](_0x1f18ce['shift']());}catch(_0x4fe698){_0x1f18ce['push'](_0x1f18ce['shift']());}}}(_0x432b,0x28f50));import{basename}from'path';import _0x4ec7b7 from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';function _0xa9b4(_0x4e411c,_0x43c15f){_0x4e411c=_0x4e411c-0x181;const _0x432bd4=_0x432b();let _0xa9b419=_0x432bd4[_0x4e411c];return _0xa9b419;}function _0x432b(){const _0x5eba7e=['vGprM','warn','user','ETaNt','To\x20use:','BpSTd','/skills/','\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a','opencode','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','gmiGO','VuqzK','130KCtIIX','567532kxrUUK','80977TSLZLr','log','LInxF','32985fvjVbK','✓\x20Found\x20API\x20token','All\x20projects\x20(','platform','6lbFTPZ','\x20skill','1497784lJAdXg','\x20--opencode','165198ivOeYw','\x20successfully!\x0a','installLevel','11604akyDWz','apolD','IVNJf','55lmznmo','21043fhbvPD','1358YmXcOm','4KYrksL','suppressUsage','list','autoInstall','7iGqBRr','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','project','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','492mCHsGV','To\x20get\x20started:'];_0x432b=function(){return _0x5eba7e;};return _0x432b();}export async function skillup(_0x554336={}){const _0x239165=_0xa9b4,_0x7a57fe={'LRNYy':'claude','gmiGO':function(_0x1823bb){return _0x1823bb();},'cUHoZ':_0x239165(0x189),'fEyWB':_0x239165(0x18b),'IVNJf':'\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','ggbOH':function(_0x465104,_0x753366){return _0x465104===_0x753366;},'OhJyd':_0x239165(0x1a4),'ETaNt':function(_0x4e13b1,_0xdbf39f){return _0x4e13b1===_0xdbf39f;},'GAgfQ':_0x239165(0x194),'vGprM':_0x239165(0x19e),'EzMdl':function(_0x2730ba,_0x3770ab){return _0x2730ba(_0x3770ab);},'wwoxx':'user','kcdDK':_0x239165(0x1a7),'LInxF':'Where\x20should\x20skills\x20be\x20installed?','ZqVgX':'project','nUHqA':function(_0x177399,_0x20e46c,_0x38749d){return _0x177399(_0x20e46c,_0x38749d);},'fIbRP':'\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','BpSTd':function(_0x19d3eb,_0x4ea73f){return _0x19d3eb>_0x4ea73f;},'KkPUO':function(_0x4315cf,_0xf4d647){return _0x4315cf===_0xf4d647;},'VuqzK':_0x239165(0x190),'apolD':'\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!','SCNzZ':_0x239165(0x193)};console['log'](_0x239165(0x195));const _0x260aae=_0x554336[_0x239165(0x1a0)]??_0x7a57fe['LRNYy'],_0x36799d=await _0x7a57fe[_0x239165(0x196)](getToken);if(!_0x36799d){console[_0x239165(0x19b)](_0x7a57fe['cUHoZ']),console[_0x239165(0x19b)](_0x7a57fe['fEyWB']),console['log'](_0x7a57fe[_0x239165(0x1aa)]),console[_0x239165(0x19b)]('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x7a57fe['ggbOH'](_0x260aae,_0x239165(0x194))?_0x7a57fe['OhJyd']:'')+'\x20<your-api-token>'),console['log']('\x20\x203.\x20Run:\x20ranger\x20skillup'+(_0x7a57fe[_0x239165(0x18f)](_0x260aae,_0x7a57fe['GAgfQ'])?'\x20--opencode':'')+'\x0a');return;}console[_0x239165(0x19b)](_0x7a57fe[_0x239165(0x18c)]);const _0x31ec6e=getProjectRoot(),_0x578daa=basename(_0x31ec6e),_0x18dd1a=_0x260aae==='opencode'?_0x7a57fe['EzMdl'](getOpencodeConfigDir,_0x7a57fe['wwoxx'])+'/skills/':getClaudeConfigDir()+_0x239165(0x192),_0x423786=_0x260aae===_0x7a57fe['GAgfQ']?_0x31ec6e+'/.opencode/skills/':_0x31ec6e+'/.claude/skills/',_0x598d78=process['stdin']['isTTY']&&process['stdout']['isTTY'];let _0x3d295b;if(_0x554336[_0x239165(0x185)])_0x3d295b=_0x554336[_0x239165(0x185)];else{if(_0x598d78){const _0x266bea=await _0x4ec7b7['prompt']([{'type':_0x239165(0x184),'name':_0x7a57fe['kcdDK'],'message':_0x7a57fe[_0x239165(0x19c)],'choices':[{'name':_0x239165(0x19f)+_0x18dd1a+')','value':_0x239165(0x18e)},{'name':'This\x20project\x20only\x20('+_0x423786+')','value':_0x239165(0x188)}]}]);_0x3d295b=_0x266bea['installLevel'];}else _0x3d295b=_0x7a57fe['ZqVgX'],console[_0x239165(0x19b)](_0x239165(0x187)+_0x423786+')');}let _0x52bb2d=0x0;const _0xbf266b=getCurrentVersion();console[_0x239165(0x19b)]('\x0a📦\x20Installing\x20skills...\x0a');try{const _0x2f3bf5=await _0x7a57fe['nUHqA'](installSkill,'ranger',{'cliVersion':_0xbf266b,'level':_0x3d295b,'platform':_0x260aae});_0x2f3bf5&&_0x52bb2d++;}catch(_0x4a49f4){console[_0x239165(0x18d)](_0x7a57fe['fIbRP'],_0x4a49f4 instanceof Error?_0x4a49f4['message']:_0x4a49f4);}if(_0x7a57fe[_0x239165(0x191)](_0x52bb2d,0x0)){const _0x59c9f4=_0x7a57fe['KkPUO'](_0x3d295b,_0x239165(0x18e))?'user-level':'project-level';console['log']('\x0a✅\x20Installed\x20'+_0x52bb2d+'\x20'+_0x59c9f4+_0x239165(0x1a2)+(_0x7a57fe['BpSTd'](_0x52bb2d,0x1)?'s':'')+_0x239165(0x1a6)),!_0x554336[_0x239165(0x183)]&&(console[_0x239165(0x19b)](_0x7a57fe[_0x239165(0x197)]),_0x260aae==='opencode'?console['log']('\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.'):console['log'](_0x7a57fe[_0x239165(0x1a9)]));}else console['log'](_0x7a57fe['SCNzZ']);}