@ranger-testing/ranger-cli 2.5.4-alpha.071b7bd-1 → 2.5.4-alpha.1f7a251-7

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 (80) 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/migrateProfile.js +1 -0
  26. package/build/commands/setup/claude.js +1 -1
  27. package/build/commands/setup/opencode.js +1 -1
  28. package/build/commands/setupCi.js +1 -1
  29. package/build/commands/skillup.js +1 -1
  30. package/build/commands/start.js +1 -1
  31. package/build/commands/status.js +1 -1
  32. package/build/commands/update.js +1 -1
  33. package/build/commands/updateEnv.js +1 -1
  34. package/build/commands/useEnv.js +1 -1
  35. package/build/commands/utils/activeProfile.js +1 -1
  36. package/build/commands/utils/agentEnv.js +1 -1
  37. package/build/commands/utils/browserSessionsApi.js +1 -1
  38. package/build/commands/utils/claudeConfig.js +1 -1
  39. package/build/commands/utils/claudeOverrideSettings.js +1 -1
  40. package/build/commands/utils/claudePlugin.js +1 -1
  41. package/build/commands/utils/cloudProfile.js +1 -0
  42. package/build/commands/utils/cloudProfileSession.js +1 -0
  43. package/build/commands/utils/crypto.js +1 -1
  44. package/build/commands/utils/desirePathLog.js +1 -1
  45. package/build/commands/utils/deviceAuth.js +1 -1
  46. package/build/commands/utils/environment.js +1 -1
  47. package/build/commands/utils/featureApi.js +1 -1
  48. package/build/commands/utils/fixWebmDuration.js +1 -1
  49. package/build/commands/utils/gitTracked.js +1 -0
  50. package/build/commands/utils/keychain.js +1 -1
  51. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  52. package/build/commands/utils/matchAuthEnvironment.js +1 -0
  53. package/build/commands/utils/mcpImageBase64.js +1 -1
  54. package/build/commands/utils/model.js +1 -1
  55. package/build/commands/utils/opencodeConfig.js +1 -1
  56. package/build/commands/utils/playwrightCli.js +1 -1
  57. package/build/commands/utils/profileMessages.js +1 -1
  58. package/build/commands/utils/profileSetupBanner.js +1 -1
  59. package/build/commands/utils/projectsConfig.js +1 -0
  60. package/build/commands/utils/rangerConfig.js +1 -1
  61. package/build/commands/utils/rangerRoot.js +1 -1
  62. package/build/commands/utils/resolveProfileContext.js +1 -0
  63. package/build/commands/utils/resolveProfileUrl.js +1 -0
  64. package/build/commands/utils/retry.js +1 -1
  65. package/build/commands/utils/sessionCache.js +1 -1
  66. package/build/commands/utils/settings.js +1 -1
  67. package/build/commands/utils/skillContent.js +1 -1
  68. package/build/commands/utils/skills.js +1 -1
  69. package/build/commands/utils/stitchWebmFiles.js +1 -1
  70. package/build/commands/utils/telemetry.js +1 -1
  71. package/build/commands/utils/tokenRefresh.js +1 -1
  72. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  73. package/build/commands/utils/userApi.js +1 -1
  74. package/build/commands/utils/version.js +1 -1
  75. package/build/commands/verifyFeature.js +1 -1
  76. package/build/commands/verifyFeatureCli.js +1 -1
  77. package/build/skills/ranger/SKILL.md +18 -4
  78. package/build/skills/ranger/create.md +6 -0
  79. package/build/skills/ranger/verify.md +23 -3
  80. package/package.json +6 -2
@@ -1 +1 @@
1
- function _0x43c6(_0x2dd7df,_0x284c76){_0x2dd7df=_0x2dd7df-0x102;const _0x136458=_0x1364();let _0x43c697=_0x136458[_0x2dd7df];return _0x43c697;}(function(_0x15e3a3,_0x29cd27){const _0x2cda71=_0x43c6,_0x5743af=_0x15e3a3();while(!![]){try{const _0x3d3548=parseInt(_0x2cda71(0x108))/0x1*(-parseInt(_0x2cda71(0x10e))/0x2)+parseInt(_0x2cda71(0x109))/0x3+-parseInt(_0x2cda71(0x10d))/0x4*(-parseInt(_0x2cda71(0x10a))/0x5)+parseInt(_0x2cda71(0x106))/0x6*(-parseInt(_0x2cda71(0x102))/0x7)+-parseInt(_0x2cda71(0x10b))/0x8+parseInt(_0x2cda71(0x104))/0x9+-parseInt(_0x2cda71(0x107))/0xa;if(_0x3d3548===_0x29cd27)break;else _0x5743af['push'](_0x5743af['shift']());}catch(_0x4dff8c){_0x5743af['push'](_0x5743af['shift']());}}}(_0x1364,0x9adc0));import{isSessionEnabled}from'../utils/sessionCache.js';export function printBlock(_0x50a105){console['log'](_0x50a105);}function _0x1364(){const _0x49afdb=['309084IyWgxd','stdin','7808444sXGGFa','QnHks','5814288dzyxBK','parse','6JbnmgN','2995960AMEMQW','2AvfiQq','2327631mTMXAu','5ClhDOo','419584ivNday','NhZGG','3956060IIdPTB'];_0x1364=function(){return _0x49afdb;};return _0x1364();}export async function readHookInput(){const _0x2b88b8=_0x43c6;let _0xc73afb='';try{for await(const _0x1c0b3c of process[_0x2b88b8(0x10f)]){_0xc73afb+=_0x1c0b3c;}}catch{return null;}if(!_0xc73afb['trim']())return null;try{return JSON[_0x2b88b8(0x105)](_0xc73afb);}catch{return null;}}export async function getEnabledSessionId(_0x5b5b24){const _0x5a0624=_0x43c6,_0x4b6aea={'QnHks':function(_0x13e7a9,_0x3d26c0){return _0x13e7a9(_0x3d26c0);},'NhZGG':function(_0x11a0c3){return _0x11a0c3();}};if(_0x5b5b24)return _0x4b6aea[_0x5a0624(0x103)](isSessionEnabled,_0x5b5b24)?_0x5b5b24:null;const _0x4c9a87=await _0x4b6aea[_0x5a0624(0x10c)](readHookInput),_0x2914e3=_0x4c9a87?.['session_id'];if(!_0x2914e3||!isSessionEnabled(_0x2914e3))return null;return _0x2914e3;}export async function getEnabledHookContext(_0x1f52f6){if(_0x1f52f6){if(!isSessionEnabled(_0x1f52f6))return null;return{'sessionId':_0x1f52f6,'input':{'session_id':_0x1f52f6}};}const _0xd0e195=await readHookInput(),_0x434497=_0xd0e195?.['session_id'];if(!_0x434497||!isSessionEnabled(_0x434497))return null;return{'sessionId':_0x434497,'input':_0xd0e195};}
1
+ (function(_0x454edb,_0x437c6d){const _0x276b92=_0x2b15,_0x378b22=_0x454edb();while(!![]){try{const _0x402877=parseInt(_0x276b92(0xe6))/0x1*(-parseInt(_0x276b92(0xe2))/0x2)+parseInt(_0x276b92(0xda))/0x3+-parseInt(_0x276b92(0xe8))/0x4+parseInt(_0x276b92(0xe3))/0x5*(parseInt(_0x276b92(0xe7))/0x6)+-parseInt(_0x276b92(0xdc))/0x7*(parseInt(_0x276b92(0xe9))/0x8)+parseInt(_0x276b92(0xe4))/0x9+parseInt(_0x276b92(0xdf))/0xa*(parseInt(_0x276b92(0xde))/0xb);if(_0x402877===_0x437c6d)break;else _0x378b22['push'](_0x378b22['shift']());}catch(_0x5165a7){_0x378b22['push'](_0x378b22['shift']());}}}(_0x31ae,0x213a9));function _0x2b15(_0x517e3c,_0x399871){_0x517e3c=_0x517e3c-0xda;const _0x31ae87=_0x31ae();let _0x2b1513=_0x31ae87[_0x517e3c];return _0x2b1513;}import{isSessionEnabled}from'../utils/sessionCache.js';function _0x31ae(){const _0x2bb4cb=['8QBAkKx','118656RWVLmh','parse','264236AAimCf','log','752939pGPkNM','20SCLFHO','session_id','stdin','218748nyeXjE','7775WIYyfX','1314585OjfYNJ','MFHSY','1oBzIhy','144ChwOrL','306432sSvbmy'];_0x31ae=function(){return _0x2bb4cb;};return _0x31ae();}export function printBlock(_0x159620){const _0x5f328d=_0x2b15;console[_0x5f328d(0xdd)](_0x159620);}export async function readHookInput(){const _0x580d4a=_0x2b15;let _0x4ce9a1='';try{for await(const _0x5a3544 of process[_0x580d4a(0xe1)]){_0x4ce9a1+=_0x5a3544;}}catch{return null;}if(!_0x4ce9a1['trim']())return null;try{return JSON[_0x580d4a(0xdb)](_0x4ce9a1);}catch{return null;}}export async function getEnabledSessionId(_0x56d8ea){const _0x4cbd31=_0x2b15,_0x599e17={'MFHSY':function(_0x5c7e59,_0x5129fa){return _0x5c7e59(_0x5129fa);},'sjntg':function(_0x4199d1){return _0x4199d1();}};if(_0x56d8ea)return _0x599e17[_0x4cbd31(0xe5)](isSessionEnabled,_0x56d8ea)?_0x56d8ea:null;const _0x2592f9=await _0x599e17['sjntg'](readHookInput),_0x5a777c=_0x2592f9?.['session_id'];if(!_0x5a777c||!_0x599e17[_0x4cbd31(0xe5)](isSessionEnabled,_0x5a777c))return null;return _0x5a777c;}export async function getEnabledHookContext(_0x36d381){const _0x3932e5=_0x2b15;if(_0x36d381){if(!isSessionEnabled(_0x36d381))return null;return{'sessionId':_0x36d381,'input':{'session_id':_0x36d381}};}const _0x36b4ab=await readHookInput(),_0x443c3a=_0x36b4ab?.[_0x3932e5(0xe0)];if(!_0x443c3a||!isSessionEnabled(_0x443c3a))return null;return{'sessionId':_0x443c3a,'input':_0x36b4ab};}
@@ -1 +1 @@
1
- (function(_0x1cb440,_0x2bfd87){const _0x231701=_0x5195,_0x305977=_0x1cb440();while(!![]){try{const _0x2abcf9=parseInt(_0x231701(0xdb))/0x1*(parseInt(_0x231701(0xd3))/0x2)+-parseInt(_0x231701(0xd5))/0x3+parseInt(_0x231701(0xd6))/0x4*(-parseInt(_0x231701(0xd1))/0x5)+parseInt(_0x231701(0xd9))/0x6+-parseInt(_0x231701(0xd4))/0x7*(parseInt(_0x231701(0xd7))/0x8)+-parseInt(_0x231701(0xd0))/0x9+-parseInt(_0x231701(0xcf))/0xa*(-parseInt(_0x231701(0xce))/0xb);if(_0x2abcf9===_0x2bfd87)break;else _0x305977['push'](_0x305977['shift']());}catch(_0x5153bf){_0x305977['push'](_0x305977['shift']());}}}(_0x52a6,0x2e3dc));function _0x5195(_0x3a3fd1,_0x49f59b){_0x3a3fd1=_0x3a3fd1-0xce;const _0x52a641=_0x52a6();let _0x5195f9=_0x52a641[_0x3a3fd1];return _0x5195f9;}function _0x52a6(){const _0x1da2a6=['84258CBKtNH','2332zwBDzF','2009416EAZLQH','sessionId','213714NglsLu','dtzig','26330DARruh','11GVJthh','5311430zaUvcS','2594970ltNReb','175vduLTo','qBStG','16nQJIbe','7ynsWui'];_0x52a6=function(){return _0x1da2a6;};return _0x52a6();}import{printBlock,getEnabledHookContext}from'./output.js';import{shouldShowPlanReminder}from'../utils/sessionCache.js';export async function planReminder(_0x5dd951){const _0x2506e5=_0x5195,_0x1abf59={'dtzig':function(_0x4e0363,_0x235bd7){return _0x4e0363!==_0x235bd7;},'qBStG':'plan','ncOpL':function(_0xfe2f92,_0x3e2088){return _0xfe2f92(_0x3e2088);}},_0x3cf6cb=await getEnabledHookContext(_0x5dd951);if(!_0x3cf6cb)return;if(_0x1abf59[_0x2506e5(0xda)](_0x3cf6cb['input']['permission_mode'],_0x1abf59[_0x2506e5(0xd2)]))return;if(!_0x1abf59['ncOpL'](shouldShowPlanReminder,_0x3cf6cb[_0x2506e5(0xd8)]))return;printBlock('===\x20RANGER:\x20ACTION\x20REQUIRED\x20===\x0a\x0aIf\x20this\x20plan\x20involves\x20ANY\x20UI\x20changes,\x20you\x20MUST:\x0a\x0a1.\x20**READ\x20/ranger\x20skill\x20NOW**\x20-\x20specifically\x20the\x20create.md\x20instructions\x0a2.\x20**Add\x20a\x20Ranger\x20Feature\x20Review\x20Specification**\x20to\x20the\x20end\x20of\x20your\x20plan\x0a\x0aDO\x20NOT\x20write\x20scenarios\x20without\x20reading\x20create.md\x20first.\x0aScenarios\x20are\x20E2E\x20test\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0aYour\x20plan\x20must\x20end\x20with:\x0a```\x0a###\x20Ranger\x20Feature\x20Review\x20Specification\x20(create\x20this\x20first\x20with\x20`ranger\x20create`)\x0aFeature\x20Review\x20Name:\x20<name>\x0aDescription:\x20<description>\x0aScenarios:\x0a1.\x20<E2E\x20user\x20flow\x20that\x20can\x20be\x20verified\x20in\x20browser>\x0a2.\x20<another\x20E2E\x20user\x20flow\x20if\x20needed>\x0a```\x0a\x0aThen\x20run:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario1>\x22\x20-c\x20\x22<scenario2>\x22`\x0a\x0a===\x20END\x20===');}
1
+ (function(_0xa82528,_0x1d1aab){const _0x240f73=_0x472f,_0x1e3572=_0xa82528();while(!![]){try{const _0x244f6b=parseInt(_0x240f73(0x81))/0x1+-parseInt(_0x240f73(0x7b))/0x2+parseInt(_0x240f73(0x84))/0x3*(parseInt(_0x240f73(0x83))/0x4)+-parseInt(_0x240f73(0x7d))/0x5+-parseInt(_0x240f73(0x80))/0x6+-parseInt(_0x240f73(0x7f))/0x7*(-parseInt(_0x240f73(0x78))/0x8)+parseInt(_0x240f73(0x7c))/0x9;if(_0x244f6b===_0x1d1aab)break;else _0x1e3572['push'](_0x1e3572['shift']());}catch(_0x2a669b){_0x1e3572['push'](_0x1e3572['shift']());}}}(_0x55ea,0xe317b));import{printBlock,getEnabledHookContext}from'./output.js';import{shouldShowPlanReminder}from'../utils/sessionCache.js';export async function planReminder(_0x4f0bce){const _0x1dfa03=_0x472f,_0x467ffc={'AnuGs':function(_0x14f07d,_0x2a4065){return _0x14f07d!==_0x2a4065;},'HOxGV':'plan','lmHnE':function(_0x5a1351,_0x168606){return _0x5a1351(_0x168606);}},_0x46d550=await getEnabledHookContext(_0x4f0bce);if(!_0x46d550)return;if(_0x467ffc[_0x1dfa03(0x7a)](_0x46d550['input']['permission_mode'],_0x467ffc[_0x1dfa03(0x79)]))return;if(!_0x467ffc[_0x1dfa03(0x82)](shouldShowPlanReminder,_0x46d550['sessionId']))return;_0x467ffc['lmHnE'](printBlock,_0x1dfa03(0x7e));}function _0x472f(_0x99cf4e,_0xc4d88e){_0x99cf4e=_0x99cf4e-0x78;const _0x55ea57=_0x55ea();let _0x472f2d=_0x55ea57[_0x99cf4e];return _0x472f2d;}function _0x55ea(){const _0x3052ef=['HOxGV','AnuGs','203852xMuznD','18209070mRMcxH','2526985hjVWXO','===\x20RANGER:\x20ACTION\x20REQUIRED\x20===\x0a\x0aIf\x20this\x20plan\x20involves\x20ANY\x20UI\x20changes,\x20you\x20MUST:\x0a\x0a1.\x20**READ\x20/ranger\x20skill\x20NOW**\x20-\x20specifically\x20the\x20create.md\x20instructions\x0a2.\x20**Add\x20a\x20Ranger\x20Feature\x20Review\x20Specification**\x20to\x20the\x20end\x20of\x20your\x20plan\x0a\x0aDO\x20NOT\x20write\x20scenarios\x20without\x20reading\x20create.md\x20first.\x0aScenarios\x20are\x20E2E\x20test\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0aYour\x20plan\x20must\x20end\x20with:\x0a```\x0a###\x20Ranger\x20Feature\x20Review\x20Specification\x20(create\x20this\x20first\x20with\x20`ranger\x20create`)\x0aFeature\x20Review\x20Name:\x20<name>\x0aDescription:\x20<description>\x0aScenarios:\x0a1.\x20<E2E\x20user\x20flow\x20that\x20can\x20be\x20verified\x20in\x20browser>\x0a2.\x20<another\x20E2E\x20user\x20flow\x20if\x20needed>\x0a```\x0a\x0aThen\x20run:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario1>\x22\x20-c\x20\x22<scenario2>\x22`\x0a\x0a===\x20END\x20===','112qdlkYY','10506486vLnidm','52567OfPvbR','lmHnE','989524GXGyql','6mdlreR','359008tZmWwe'];_0x55ea=function(){return _0x3052ef;};return _0x55ea();}
@@ -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(_0x56c1ca,_0x22afd5){const _0x5b1d48=_0x51b4,_0x25fd32=_0x56c1ca();while(!![]){try{const _0x814af7=-parseInt(_0x5b1d48(0x7a))/0x1+-parseInt(_0x5b1d48(0x76))/0x2+-parseInt(_0x5b1d48(0x7b))/0x3*(-parseInt(_0x5b1d48(0x7d))/0x4)+parseInt(_0x5b1d48(0x7e))/0x5+parseInt(_0x5b1d48(0x77))/0x6+-parseInt(_0x5b1d48(0x78))/0x7+-parseInt(_0x5b1d48(0x7c))/0x8*(-parseInt(_0x5b1d48(0x79))/0x9);if(_0x814af7===_0x22afd5)break;else _0x25fd32['push'](_0x25fd32['shift']());}catch(_0x7cc31c){_0x25fd32['push'](_0x25fd32['shift']());}}}(_0x8b20,0x309e4));function _0x8b20(){const _0x5f6b8=['991564zomcnJ','149832YdIdTF','290324wQsOtO','327IqAFov','96dnpEmK','6040npmeHI','1785370pflBGH','239022dndwjw','175122DBKlfF'];_0x8b20=function(){return _0x5f6b8;};return _0x8b20();}function _0x51b4(_0x128d8a,_0x3b8684){_0x128d8a=_0x128d8a-0x76;const _0x8b2033=_0x8b20();let _0x51b4c6=_0x8b2033[_0x128d8a];return _0x51b4c6;}import{printBlock,getEnabledSessionId}from'./output.js';export async function planStart(_0x284ac0){const _0x23751e=await getEnabledSessionId(_0x284ac0);if(!_0x23751e)return;printBlock('===\x20RANGER:\x20ACTION\x20REQUIRED\x20===\x0a\x0aIf\x20this\x20plan\x20involves\x20UI\x20changes,\x20you\x20MUST:\x0a\x0a1.\x20**READ\x20/ranger\x20skill**\x20-\x20specifically\x20create.md\x0a2.\x20**Add\x20a\x20Ranger\x20Feature\x20Review\x20Specification**\x20at\x20the\x20end\x20of\x20your\x20plan\x0a\x0aScenarios\x20are\x20E2E\x20test\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0a**Good:**\x20\x22User\x20can\x20log\x20in\x20with\x20valid\x20credentials\x20and\x20see\x20dashboard\x22\x0a**Bad:**\x20\x22Add\x20form\x20validation\x22\x20or\x20\x22Button\x20is\x20visible\x22\x0a\x0aAfter\x20planning,\x20run:\x0a`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<E2E\x20flow\x201>\x22\x20-c\x20\x22<E2E\x20flow\x202>\x22`\x0a\x0a===\x20END\x20===');}
@@ -1 +1 @@
1
- (function(_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(_0x2df2db,_0x4c7d19){const _0x49db06=_0x13d6,_0x3fe636=_0x2df2db();while(!![]){try{const _0x493f2c=parseInt(_0x49db06(0x152))/0x1*(parseInt(_0x49db06(0x14d))/0x2)+-parseInt(_0x49db06(0x150))/0x3+parseInt(_0x49db06(0x153))/0x4*(-parseInt(_0x49db06(0x155))/0x5)+-parseInt(_0x49db06(0x149))/0x6+-parseInt(_0x49db06(0x147))/0x7*(-parseInt(_0x49db06(0x148))/0x8)+-parseInt(_0x49db06(0x14b))/0x9+parseInt(_0x49db06(0x14c))/0xa;if(_0x493f2c===_0x4c7d19)break;else _0x3fe636['push'](_0x3fe636['shift']());}catch(_0x714389){_0x3fe636['push'](_0x3fe636['shift']());}}}(_0x16da,0xe89d1));function _0x13d6(_0x99028c,_0x526ceb){_0x99028c=_0x99028c-0x147;const _0x16da03=_0x16da();let _0x13d691=_0x16da03[_0x99028c];return _0x13d691;}import{getSessionEntry,updateBranchTracking}from'../utils/sessionCache.js';import{getToken}from'../utils/keychain.js';function _0x16da(){const _0x4a7d6d=['11834001NNkHWj','31083890wLUqCU','971798ZTuEGl','log','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).','2891766ukjknJ','PostToolUse','1dgITqA','488YjjDxb','Zlear','39465ggwoOB','633311Hkuifq','80gYWaoj','1826856hWBKvK','stringify'];_0x16da=function(){return _0x4a7d6d;};return _0x16da();}import{getEnabledSessionId}from'./output.js';export async function postEdit(_0x417e6b){const _0x4a057e=_0x13d6,_0x54622e={'omZcJ':function(_0x13ffe4,_0x1c6194){return _0x13ffe4(_0x1c6194);},'oFzoX':function(_0x107b13,_0x58b8b6){return _0x107b13(_0x58b8b6);},'Zlear':function(_0x104462){return _0x104462();},'usmpO':'PostToolUse'},_0x5b8723=await _0x54622e['omZcJ'](getEnabledSessionId,_0x417e6b);if(!_0x5b8723)return;_0x54622e['oFzoX'](updateBranchTracking,_0x5b8723);const _0x18e93a=await _0x54622e[_0x4a057e(0x154)](getToken);if(!_0x18e93a)return;const _0x548f85=getSessionEntry(_0x5b8723);if(_0x548f85){const _0x4eafd2={'hookSpecificOutput':{'hookEventName':_0x4a057e(0x151),'additionalContext':_0x4a057e(0x14f)}};console[_0x4a057e(0x14e)](JSON[_0x4a057e(0x14a)](_0x4eafd2));return;}const _0x28a403={'hookSpecificOutput':{'hookEventName':_0x54622e['usmpO'],'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[_0x4a057e(0x14a)](_0x28a403));}
@@ -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(_0x4a727d,_0x2241fe){const _0x517063=_0x2544,_0x3f9473=_0x4a727d();while(!![]){try{const _0x51ec54=parseInt(_0x517063(0x9d))/0x1+parseInt(_0x517063(0x98))/0x2+-parseInt(_0x517063(0x9a))/0x3*(parseInt(_0x517063(0x95))/0x4)+parseInt(_0x517063(0x99))/0x5*(-parseInt(_0x517063(0x9c))/0x6)+-parseInt(_0x517063(0x94))/0x7+parseInt(_0x517063(0x97))/0x8+parseInt(_0x517063(0x96))/0x9;if(_0x51ec54===_0x2241fe)break;else _0x3f9473['push'](_0x3f9473['shift']());}catch(_0x1b8b9e){_0x3f9473['push'](_0x3f9473['shift']());}}}(_0x2f1c,0x26dcd));import{getToken}from'../utils/keychain.js';import{printBlock,getEnabledSessionId}from'./output.js';function _0x2544(_0x28502d,_0x3ee96e){_0x28502d=_0x28502d-0x94;const _0x2f1c54=_0x2f1c();let _0x254415=_0x2f1c54[_0x28502d];return _0x254415;}export async function preCompact(_0x498c23){const _0x5d214f=_0x2544,_0x55c035={'hRqeF':function(_0x587ca9,_0x43e5ad){return _0x587ca9(_0x43e5ad);},'QIvAJ':function(_0x492361,_0x19e306){return _0x492361(_0x19e306);}},_0x34c124=await _0x55c035[_0x5d214f(0x9b)](getEnabledSessionId,_0x498c23);if(!_0x34c124)return;try{const _0x9b9e47=await getToken();if(!_0x9b9e47)return;_0x55c035['QIvAJ'](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{}}function _0x2f1c(){const _0x279f05=['67077RkipfT','1607529uMuRpV','3332MhcilY','3377718sxfonU','2485992WfaXvZ','243272ziWKQk','1346780nHieOx','780ThGwrG','hRqeF','6BUORtK'];_0x2f1c=function(){return _0x279f05;};return _0x2f1c();}
@@ -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 _0x310c(_0x54106c,_0x574d69){_0x54106c=_0x54106c-0x1ca;const _0x1044dc=_0x1044();let _0x310c70=_0x1044dc[_0x54106c];return _0x310c70;}(function(_0x2b0dfa,_0x41562c){const _0x3dd7c9=_0x310c,_0x3d1fd7=_0x2b0dfa();while(!![]){try{const _0x3fb323=parseInt(_0x3dd7c9(0x1ce))/0x1+-parseInt(_0x3dd7c9(0x1ca))/0x2+-parseInt(_0x3dd7c9(0x1cd))/0x3+-parseInt(_0x3dd7c9(0x1d3))/0x4+-parseInt(_0x3dd7c9(0x1cc))/0x5*(parseInt(_0x3dd7c9(0x1d1))/0x6)+-parseInt(_0x3dd7c9(0x1d2))/0x7+-parseInt(_0x3dd7c9(0x1d0))/0x8*(-parseInt(_0x3dd7c9(0x1cf))/0x9);if(_0x3fb323===_0x41562c)break;else _0x3d1fd7['push'](_0x3d1fd7['shift']());}catch(_0x11fdc1){_0x3d1fd7['push'](_0x3d1fd7['shift']());}}}(_0x1044,0x81a2f));import{isSessionEnabled,recordEnabledSessionCleared}from'../utils/sessionCache.js';import{readHookInput}from'./output.js';export async function sessionEnd(_0x113b0c){const _0x376f41=_0x310c,_0x115f60=process[_0x376f41(0x1cb)]['CLAUDE_SESSION_ID'];let _0x4ae0b3=_0x113b0c,_0x4d6895;if(!_0x113b0c){if(_0x115f60&&!isSessionEnabled(_0x115f60))return;const _0x17410e=await readHookInput();_0x4ae0b3=_0x17410e?.['session_id']||_0x115f60,_0x4d6895=_0x17410e?.[_0x376f41(0x1d4)];}if(!_0x4ae0b3)return;_0x4d6895==='clear'&&recordEnabledSessionCleared(_0x4ae0b3);}function _0x1044(){const _0x554ed8=['548703JDgSJs','90156yZURUQ','16013556vTAhxa','8VGMYDv','24vjcXCt','1998143KpIwTs','893368yLyOEz','reason','134658JlBBmz','env','724285hJzfku'];_0x1044=function(){return _0x554ed8;};return _0x1044();}
@@ -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(_0x402a2b,_0x4e4e64){const _0x15c1f5=_0xa21d,_0x452f07=_0x402a2b();while(!![]){try{const _0x4a4698=-parseInt(_0x15c1f5(0x129))/0x1+parseInt(_0x15c1f5(0x13b))/0x2*(parseInt(_0x15c1f5(0x123))/0x3)+-parseInt(_0x15c1f5(0x128))/0x4*(-parseInt(_0x15c1f5(0x12b))/0x5)+-parseInt(_0x15c1f5(0x12a))/0x6*(-parseInt(_0x15c1f5(0x13a))/0x7)+parseInt(_0x15c1f5(0x134))/0x8*(-parseInt(_0x15c1f5(0x126))/0x9)+parseInt(_0x15c1f5(0x138))/0xa+-parseInt(_0x15c1f5(0x130))/0xb*(parseInt(_0x15c1f5(0x139))/0xc);if(_0x4a4698===_0x4e4e64)break;else _0x452f07['push'](_0x452f07['shift']());}catch(_0x22d93d){_0x452f07['push'](_0x452f07['shift']());}}}(_0x2a4e,0x6f39c));function _0xa21d(_0x45ef23,_0x19d07a){_0x45ef23=_0x45ef23-0x122;const _0x2a4e64=_0x2a4e();let _0xa21d14=_0x2a4e64[_0x45ef23];return _0xa21d14;}import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';function _0x2a4e(){const _0x41ba1a=['master','parse','396xyNCIN','\x20(Branch:\x20','1099796FwnkEd','287428IYuWRN','161418xjLzQr','15kZmBBU','stringify','success','MavAB','export\x20CLAUDE_SESSION_ID=\x22','7698251HJPfsM','CLAUDE_ENV_FILE','session_id','QLARD','113168SovWRu','trackCommandStart','source','vmqtd','1199740dwIKMu','12PBrdRt','231gLMAPx','6PtjMaV','trackCommandEnd','232653OuqfgK'];_0x2a4e=function(){return _0x41ba1a;};return _0x2a4e();}import{getToken}from'../utils/keychain.js';const RANGER_AUTO_ENABLED_PROMPT='=================================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🚨\x20RANGER\x20IS\x20ACTIVE\x20🚨\x0a=================================================================\x0a\x0aThis\x20session\x20has\x20Ranger\x20ENABLED.\x20Before\x20doing\x20ANYTHING\x20else:\x0a\x0a1.\x20**READ\x20the\x20/ranger\x20skill\x20FIRST**\x20-\x20Run\x20the\x20skill\x20to\x20understand\x20the\x20required\x20workflow\x20for\x20UI\x20features\x0a\x0a2.\x20**Check\x20for\x20existing\x20feature\x20reviews**\x20-\x20Run\x20`ranger\x20list`\x20to\x20see\x20if\x20there\x27s\x20an\x20in-progress\x20feature\x20review\x20to\x20resume\x0a\x0a3.\x20**For\x20ANY\x20UI\x20work**:\x20You\x20MUST\x20either:\x0a\x20\x20\x20-\x20Resume\x20an\x20existing\x20feature\x20review:\x20`ranger\x20resume\x20<id>`\x0a\x20\x20\x20-\x20Create\x20a\x20new\x20feature\x20review:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario>\x22`\x0a\x0a4.\x20**If\x20resuming\x20a\x20feature\x20review\x20with\x20reviewer\x20comments**:\x20Run\x20`ranger\x20get-review`\x20to\x20see\x20what\x20reviewers\x20want\x20fixed\x20before\x20making\x20code\x20changes\x0a\x0a=================================================================';export async function sessionStart(_0x294177){const _0x130163=_0xa21d,_0x485b10={'ARCjF':function(_0x21dcb1,_0x272500){return _0x21dcb1||_0x272500;},'MavAB':_0x130163(0x132),'PiMJQ':function(_0x4c7457,_0x37c441){return _0x4c7457&&_0x37c441;},'CxXAT':function(_0x1ec58d,_0x24ab10){return _0x1ec58d(_0x24ab10);},'vmqtd':'hook:session-start','zulTO':_0x130163(0x12d),'QLARD':function(_0x47be66){return _0x47be66();},'rpXDs':function(_0x5bcb6a,_0x4a53d2){return _0x5bcb6a!==_0x4a53d2;},'aaIlm':'SessionStart'};let _0x1e930f=_0x485b10['ARCjF'](_0x294177,''),_0x488e8d;if(!_0x294177){let _0x3b92f6='';for await(const _0xa7cd96 of process['stdin']){_0x3b92f6+=_0xa7cd96;}try{const _0x14c3a9=JSON[_0x130163(0x125)](_0x3b92f6);_0x1e930f=_0x14c3a9[_0x485b10[_0x130163(0x12e)]]||'',_0x488e8d=_0x14c3a9[_0x130163(0x136)];}catch{}const _0x57a6d3=process['env'][_0x130163(0x131)];if(_0x485b10['PiMJQ'](_0x57a6d3,_0x1e930f))try{await appendFile(_0x57a6d3,_0x130163(0x12f)+_0x1e930f+'\x22\x0a');}catch{}}try{await getToken();}catch{}if(_0x1e930f){shouldAutoEnableAfterClear(_0x488e8d)&&autoEnableAfterClear(_0x1e930f);initBranchTracking(_0x1e930f);const _0x4dce02=isSessionEnabled(_0x1e930f);try{const _0xa42bfb=_0x485b10['CxXAT'](createTelemetryCollector,_0x485b10[_0x130163(0x137)]);await _0xa42bfb[_0x130163(0x135)]({'sessionId':_0x1e930f,'hooksEnabled':_0x4dce02}),await _0xa42bfb[_0x130163(0x122)](_0x485b10['zulTO']);}catch{}if(_0x4dce02){const _0x1a0afb=_0x485b10[_0x130163(0x133)](getCurrentBranch),_0x26a669=_0x1a0afb&&_0x485b10['rpXDs'](_0x1a0afb,'main')&&_0x1a0afb!==_0x130163(0x124)?_0x130163(0x127)+_0x1a0afb+')':'',_0xa9fe5c={'hookSpecificOutput':{'hookEventName':_0x485b10['aaIlm'],'additionalContext':RANGER_AUTO_ENABLED_PROMPT+_0x26a669}};console['log'](JSON[_0x130163(0x12c)](_0xa9fe5c));}}}
@@ -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(_0x1dbd12,_0x31c4a2){const _0x402fa4=_0x3a26,_0x5c8f48=_0x1dbd12();while(!![]){try{const _0x310e45=-parseInt(_0x402fa4(0xd0))/0x1*(-parseInt(_0x402fa4(0xd1))/0x2)+-parseInt(_0x402fa4(0xe2))/0x3+-parseInt(_0x402fa4(0xde))/0x4*(-parseInt(_0x402fa4(0xd7))/0x5)+-parseInt(_0x402fa4(0xcc))/0x6+parseInt(_0x402fa4(0xd2))/0x7*(-parseInt(_0x402fa4(0xca))/0x8)+-parseInt(_0x402fa4(0xdc))/0x9*(-parseInt(_0x402fa4(0xdf))/0xa)+-parseInt(_0x402fa4(0xc8))/0xb;if(_0x310e45===_0x31c4a2)break;else _0x5c8f48['push'](_0x5c8f48['shift']());}catch(_0x1dc075){_0x5c8f48['push'](_0x5c8f48['shift']());}}}(_0x2265,0x7520d));function _0x2265(){const _0x3d3063=['yHzBX','trackCommandStart','5hWluHq','136270rtUFPl','8071fMDNoX','checklistItems','Stop','dMTXh','verified','5CunYgI','FyEDy','some','log','https://dashboard.ranger.net/features/','3296277aYwXWd','status','2480796GZDeEY','20lCHbHQ','blocked','trackCommandEnd','2594802eMJBxW','hook:stop','sessionId','1175669ytytWb','verification_in_progress','472JPjhSt','stringify','1042698pePoLy','currentSessionId'];_0x2265=function(){return _0x3d3063;};return _0x2265();}import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';function _0x3a26(_0x5b53f5,_0x7a56fe){_0x5b53f5=_0x5b53f5-0xc6;const _0x226505=_0x2265();let _0x3a26e6=_0x226505[_0x5b53f5];return _0x3a26e6;}import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x5624ac){const _0x322d92=_0x3a26,_0x3d67d0={'oyqYx':function(_0x134fbf,_0x30b740){return _0x134fbf(_0x30b740);},'yHzBX':function(_0x320631,_0x3b0bb2,_0x3e13cb,_0x1bcc46){return _0x320631(_0x3b0bb2,_0x3e13cb,_0x1bcc46);},'zUmzh':function(_0x58d742){return _0x58d742();},'LHuIE':_0x322d92(0xd4),'FyEDy':function(_0x4ea964,_0x426640,_0x52d264){return _0x4ea964(_0x426640,_0x52d264);}},_0x158e03=await _0x3d67d0['oyqYx'](getEnabledHookContext,_0x5624ac),_0x371012=_0x158e03?.[_0x322d92(0xc7)]??null;let _0x3c7bef=!![];if(!_0x371012){await _0x3d67d0[_0x322d92(0xce)](trackStop,_0x371012,![],_0x3c7bef);return;}try{const _0x11d671=getSessionEntry(_0x371012);if(!_0x11d671){await trackStop(_0x371012,!![],_0x3c7bef);return;}const _0x4388b3=await _0x3d67d0['zUmzh'](getToken),_0x4e75c5=_0x322d92(0xdb)+_0x11d671['featureId'];let _0x388ed0=null,_0x5ebde2=![],_0xe6f4c9=![];if(_0x4388b3)try{const _0x58adab=await _0x3d67d0['oyqYx'](getFeature,_0x11d671['featureId']);_0x388ed0=_0x58adab[_0x322d92(0xcd)]??null;const _0x564d5a=_0x58adab[_0x322d92(0xd3)]['filter'](_0x4903ab=>_0x4903ab['sessionId']===_0x388ed0);_0x5ebde2=_0x564d5a[_0x322d92(0xd9)](_0x37e11d=>_0x37e11d['status']!==_0x322d92(0xd6)&&_0x37e11d['status']!==_0x322d92(0xe0)&&_0x37e11d['status']!=='closed'&&_0x37e11d[_0x322d92(0xdd)]!=='incomplete'),_0xe6f4c9=_0x564d5a['some'](_0x502fd9=>_0x502fd9['status']===_0x322d92(0xc9));}catch{}if(_0x4388b3&&_0x388ed0&&_0x5ebde2){if(!_0xe6f4c9&&_0x3d67d0['oyqYx'](shouldShowStopReminder,_0x371012)){const _0x5c3af4={'hookSpecificOutput':{'hookEventName':_0x3d67d0['LHuIE'],'additionalContext':'RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20'+_0x4e75c5}};console[_0x322d92(0xda)](JSON[_0x322d92(0xcb)](_0x5c3af4));}}if(_0x4388b3&&_0x388ed0&&!_0x5ebde2)try{await _0x3d67d0[_0x322d92(0xd8)](concludeSession,_0x11d671['featureId'],_0x388ed0);}catch{}await trackStop(_0x371012,!![],_0x3c7bef);return;}catch{await trackStop(_0x371012,!![],_0x3c7bef);return;}}async function trackStop(_0x4b98ba,_0x7f0d03,_0x34427){const _0x32130b=_0x3a26,_0x548b39={'dMTXh':function(_0x195fbe,_0xd06a98){return _0x195fbe??_0xd06a98;}};try{const _0x1723d2=createTelemetryCollector(_0x32130b(0xc6));await _0x1723d2[_0x32130b(0xcf)]({'sessionId':_0x548b39[_0x32130b(0xd5)](_0x4b98ba,undefined),'hooksEnabled':_0x7f0d03,'stopAllowed':_0x34427}),await _0x1723d2[_0x32130b(0xe1)]('success');}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 _0x743d(){var _0x19fb12=['804834PDBcOx','2142106QpDhEx','8EbrDtG','36282830QyyDfq','59032dFtijD','2423134YXtjza','388987dzQXXh','1503594JYjpNj','144IToCfI','5VawVBC'];_0x743d=function(){return _0x19fb12;};return _0x743d();}(function(_0x3f7f1c,_0x4695d8){var _0xe8dc4b=_0x5f22,_0x8c093=_0x3f7f1c();while(!![]){try{var _0x53c55e=-parseInt(_0xe8dc4b(0x1c1))/0x1+-parseInt(_0xe8dc4b(0x1bc))/0x2+-parseInt(_0xe8dc4b(0x1c2))/0x3*(parseInt(_0xe8dc4b(0x1bd))/0x4)+-parseInt(_0xe8dc4b(0x1ba))/0x5*(parseInt(_0xe8dc4b(0x1bb))/0x6)+-parseInt(_0xe8dc4b(0x1c0))/0x7+-parseInt(_0xe8dc4b(0x1bf))/0x8*(parseInt(_0xe8dc4b(0x1b9))/0x9)+parseInt(_0xe8dc4b(0x1be))/0xa;if(_0x53c55e===_0x4695d8)break;else _0x8c093['push'](_0x8c093['shift']());}catch(_0x15381c){_0x8c093['push'](_0x8c093['shift']());}}}(_0x743d,0x8a8ba));function _0x5f22(_0x3bdfdd,_0x57dd95){_0x3bdfdd=_0x3bdfdd-0x1b9;var _0x743d13=_0x743d();var _0x5f2272=_0x743d13[_0x3bdfdd];return _0x5f2272;}export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start,ensureLocalEnv,ensureChromium,authenticate}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';export{migrateProfile}from'./migrateProfile.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 _0x3f75(){const _0x4861da=['lAbtg','WFXhH','isTTY','aSQEu','7287672oDRqZp','organizationName','success','318951zARiUQ','77WqmqxQ','message','\x0a✅\x20Logged\x20in\x20to\x20','5yCUOhz','log','Login\x20failed:\x20','1278oaCLCZ','429414quRlOB','VfZLo','694230GMjsYN','\x0a✅\x20API\x20key\x20stored\x20successfully','29231774HohByd','44740Inlzzu','14IDCOfT','user','1104332xAGXYm'];_0x3f75=function(){return _0x4861da;};return _0x3f75();}(function(_0x35b5c8,_0x5297d3){const _0x3ba2ca=_0x4633,_0x4a4d92=_0x35b5c8();while(!![]){try{const _0x4707ae=-parseInt(_0x3ba2ca(0xa4))/0x1+parseInt(_0x3ba2ca(0x90))/0x2*(parseInt(_0x3ba2ca(0x9a))/0x3)+-parseInt(_0x3ba2ca(0x92))/0x4*(-parseInt(_0x3ba2ca(0x9e))/0x5)+-parseInt(_0x3ba2ca(0xa2))/0x6*(parseInt(_0x3ba2ca(0x9b))/0x7)+-parseInt(_0x3ba2ca(0x97))/0x8+parseInt(_0x3ba2ca(0xa1))/0x9*(-parseInt(_0x3ba2ca(0x8f))/0xa)+parseInt(_0x3ba2ca(0x8e))/0xb;if(_0x4707ae===_0x5297d3)break;else _0x4a4d92['push'](_0x4a4d92['shift']());}catch(_0x5bab36){_0x4a4d92['push'](_0x4a4d92['shift']());}}}(_0x3f75,0x9eafc));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x4633(_0x39dae2,_0x9d2927){_0x39dae2=_0x39dae2-0x8d;const _0x3f754=_0x3f75();let _0x463347=_0x3f754[_0x39dae2];return _0x463347;}import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';export async function login(){const _0x18d24c=_0x4633,_0x21b97a={'lAbtg':function(_0xef972d){return _0xef972d();},'aSQEu':function(_0x4ef40e){return _0x4ef40e();},'NqSyF':'Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','VfZLo':function(_0x259d8e){return _0x259d8e();},'WFXhH':function(_0x6c4159,_0x522a75){return _0x6c4159(_0x522a75);},'mQRmI':_0x18d24c(0x8d),'ycTFa':function(_0x1a50ea,_0x293e4f){return _0x1a50ea instanceof _0x293e4f;}},_0x6b4c5=await _0x21b97a[_0x18d24c(0x93)](getMcpAuthOrigin);if(_0x6b4c5){console[_0x18d24c(0x9f)]('Re-authenticating\x20via\x20MCP\x20bootstrap...'),await _0x21b97a[_0x18d24c(0x96)](mcpBootstrap);return;}const _0x40e19c=process['stdin'][_0x18d24c(0x95)]&&process['stdout']['isTTY'];if(!_0x40e19c)throw new Error(_0x21b97a['NqSyF']);try{const _0x3dfbc5=await _0x21b97a[_0x18d24c(0xa3)](runDeviceAuthFlow),_0x74db3f=await _0x21b97a[_0x18d24c(0x94)](getCurrentUser,_0x3dfbc5);_0x74db3f[_0x18d24c(0x99)]?console[_0x18d24c(0x9f)](_0x18d24c(0x9d)+_0x74db3f[_0x18d24c(0x91)][_0x18d24c(0x98)]):console[_0x18d24c(0x9f)](_0x21b97a['mQRmI']);}catch(_0x3da58c){throw new Error(_0x18d24c(0xa0)+(_0x21b97a['ycTFa'](_0x3da58c,Error)?_0x3da58c[_0x18d24c(0x9c)]:_0x3da58c));}}
@@ -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 _0x151ee3=_0x3bf6;(function(_0x38daf5,_0x4ee0b1){const _0x15be12=_0x3bf6,_0x24e3e3=_0x38daf5();while(!![]){try{const _0x48ba97=-parseInt(_0x15be12(0xf4))/0x1+-parseInt(_0x15be12(0xc0))/0x2+parseInt(_0x15be12(0xec))/0x3+parseInt(_0x15be12(0xcc))/0x4*(-parseInt(_0x15be12(0x8a))/0x5)+-parseInt(_0x15be12(0xab))/0x6*(parseInt(_0x15be12(0x81))/0x7)+parseInt(_0x15be12(0xd7))/0x8*(-parseInt(_0x15be12(0x9c))/0x9)+parseInt(_0x15be12(0xad))/0xa*(parseInt(_0x15be12(0x9b))/0xb);if(_0x48ba97===_0x4ee0b1)break;else _0x24e3e3['push'](_0x24e3e3['shift']());}catch(_0x32310b){_0x24e3e3['push'](_0x24e3e3['shift']());}}}(_0x4adb,0x1c96f));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',_0x151ee3(0x90)),AUTH_ORIGIN_PATH=join(homedir(),_0x151ee3(0x8d),_0x151ee3(0xbe));function _0x4adb(){const _0x5759a0=['506121kqGNYr','2025-03-26','CofnD','sha256','platform','application/json','refreshToken','Could\x20not\x20extract\x20token\x20from\x20MCP\x20response','165362detdvG','hex','startsWith','YvlSN','refresh_token','oweTe','proxied','token','win32','mgeBr','trim','utf-8','writeHead','message','stdout','text/html','listen','name','Server\x20returned\x20error:\x20','ranger-cli','mSrMe','\x0aToken\x20written\x20to\x20','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','lPcFg','YoXWN','registration_endpoint','searchParams','parse','12215yVXPZd','log','CZvLv','origin','initialize','toString','nOMPc','xdg-open','KCaAC','79865qSDwwr','POST','code_challenge_method','.ranger','/.well-known/oauth-authorization-server','\x20done','mcp-oauth-tokens.json','resource','Ydtiy','application/json,\x20text/event-stream','TLcYb','uiDgy','JeLdn','error','Requesting\x20CLI\x20token...','siMLN','accessToken','22OzzrPY','53910cFoivJ','AdtTZ','http://localhost:','JLnIp','update','uxGcM','MyDXA','get','status','gUUjU','includes','sMyXI','json','type','redirect_uri','366YgkVLt','application/x-www-form-urlencoded','3527290gzFzYp','Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','Discovering\x20authorization\x20server...','/callback','NcsVq','close','length','open','UojMN','write','Ranger\x20CLI','end','zDJQh','QgqyV','2.0','isError','MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','auth-origin.txt','none','407456mAiYvX','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','notifications/initialized','fsHeF','FxGQt','base64url','S256','twnre','EHrVe','vtqTJ','Registering\x20OAuth\x20client...','clientSecret','36agcfyb','split','kPNWX','TtsBe','slice','clientId','expiresAt','client_secret','ZMFwB','headers','\x0aOpening\x20browser\x20for\x20authentication...','184JbbFxD','text','OAuth\x20error:\x20','client_id','string','lXPDa','stringify','YzqaW','Not\x20found','tools/call','expires_in','BneUe','yLYdy','result','fPXcZ','UWpsU','set','zgkGT','cTFmx','code','HDBwT'];_0x4adb=function(){return _0x5759a0;};return _0x4adb();}export async function getMcpAuthOrigin(){const _0x53947a=_0x151ee3,_0x595f4c={'MyDXA':function(_0x56de22,_0x59f88a,_0xf9624a){return _0x56de22(_0x59f88a,_0xf9624a);},'GgDKe':'utf-8','zDJQh':function(_0x519dce,_0x400d56){return _0x519dce||_0x400d56;}};try{const _0x3bc64c=(await _0x595f4c[_0x53947a(0xa2)](readFile,AUTH_ORIGIN_PATH,_0x595f4c['GgDKe']))[_0x53947a(0xfe)]();return _0x595f4c[_0x53947a(0xb9)](_0x3bc64c,null);}catch{return null;}}export async function mcpBootstrap(){const _0x461aed=_0x151ee3,_0x27b469={'fPXcZ':function(_0x4ae61b){return _0x4ae61b();},'mgeBr':function(_0x65c00c,_0x2c357b){return _0x65c00c(_0x2c357b);},'TtwLA':'proxied','goNIH':function(_0x3a68ba,_0x5bac55){return _0x3a68ba+_0x5bac55;}},_0x1d88d2=_0x27b469[_0x461aed(0xe5)](getMcpAuthUrl);currentOrigin=_0x1d88d2;const _0xcefd6e=process[_0x461aed(0x102)]['isTTY']??![];console[_0x461aed(0x82)]('\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20'+_0x1d88d2+'\x0a');const _0x2940d3=await _0x27b469[_0x461aed(0xfd)](tryUnauthenticated,_0x1d88d2);let _0x492559=null;if(_0x2940d3===_0x27b469['TtwLA'])_0x492559='';else{_0x492559=await loadCachedToken();if(!_0x492559){if(!_0xcefd6e)throw new Error(_0x27b469['goNIH'](_0x461aed(0xbd),_0x461aed(0x7b)));_0x492559=await oauthFlow(_0x1d88d2);}}await callGetCliToken(_0x1d88d2,_0x492559);}async function tryUnauthenticated(_0x79fec3){const _0x1d0e7f=_0x151ee3,_0x30383c={'NqJYR':function(_0x2d76dc,_0x34cbeb,_0x18f32f){return _0x2d76dc(_0x34cbeb,_0x18f32f);},'YoXWN':_0x1d0e7f(0xf1),'fsHeF':'1.0.0','KCaAC':_0x1d0e7f(0xfa)},_0x148117=await _0x30383c['NqJYR'](fetch,_0x79fec3,{'method':'POST','headers':{'Content-Type':_0x30383c[_0x1d0e7f(0x7d)],'Accept':_0x1d0e7f(0x93)},'body':JSON['stringify']({'jsonrpc':_0x1d0e7f(0xbb),'id':0x1,'method':'initialize','params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':_0x1d0e7f(0x78),'version':_0x30383c[_0x1d0e7f(0xc3)]}}})});if(_0x148117['ok'])return await _0x148117['text'](),_0x30383c[_0x1d0e7f(0x89)];if(_0x148117['status']===0x191)return await _0x148117['text'](),'needs-oauth';const _0x6f1793=await _0x148117['text']();throw new Error('MCP\x20server\x20returned\x20HTTP\x20'+_0x148117[_0x1d0e7f(0xa4)]+':\x20'+_0x6f1793);}class OAuthTimeoutError extends Error{constructor(_0x5c7a33){const _0x5dd301=_0x151ee3;super(_0x5c7a33),this[_0x5dd301(0x105)]='OAuthTimeoutError';}}async function oauthFlow(_0x53f8eb){const _0x15caa8=_0x151ee3,_0x4ad5e5={'ZhUMa':function(_0x5e91f0,_0x5b83b5){return _0x5e91f0(_0x5b83b5);},'rigoT':function(_0x24795e){return _0x24795e();},'CofnD':'\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'};try{return await _0x4ad5e5['ZhUMa'](oauthFlowAttempt,_0x53f8eb);}catch(_0x5b32dd){if(_0x5b32dd instanceof OAuthTimeoutError&&await _0x4ad5e5['rigoT'](loadCachedClient))return console[_0x15caa8(0x82)](_0x4ad5e5[_0x15caa8(0xee)]),await clearCachedClient(),await oauthFlowAttempt(_0x53f8eb);throw _0x5b32dd;}}async function oauthFlowAttempt(_0x4a443a){const _0x44ae60=_0x151ee3,_0x3442fa={'DqfcO':_0x44ae60(0xaf),'lPcFg':'Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','BneUe':'No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','TtsBe':_0x44ae60(0xca),'EHrVe':'authorization_code','UojMN':_0x44ae60(0xea),'nOMPc':_0x44ae60(0xbf),'BmIjz':_0x44ae60(0x8f),'EyYAh':function(_0x15db22,_0x40943d){return _0x15db22(_0x40943d);},'ifRPE':_0x44ae60(0xf5),'AdtTZ':_0x44ae60(0xda),'ZMFwB':'code_challenge','zgkGT':'state','jiuIw':'resource','gUUjU':_0x44ae60(0xd3),'yLYdy':_0x44ae60(0xac),'yJYaA':function(_0x2ab430,_0x39801a,_0x5dfc0d,_0x3d5387){return _0x2ab430(_0x39801a,_0x5dfc0d,_0x3d5387);}},_0x608054=_0x4a443a['replace'](/\/mcp$/,'');process['stdout']['write'](_0x3442fa['DqfcO']);const _0x1f2119=await fetch(_0x608054+'/.well-known/oauth-protected-resource');if(!_0x1f2119['ok'])throw new Error(_0x3442fa[_0x44ae60(0x7c)]);const _0x512687=await _0x1f2119[_0x44ae60(0xa8)](),_0x574b7e=_0x512687['authorization_servers']?.[0x0];if(!_0x574b7e)throw new Error(_0x3442fa[_0x44ae60(0xe2)]);console['log']('\x20'+_0x574b7e);const _0x551d79=await fetchAuthServerMetadata(_0x574b7e);let _0x12b00a,_0x4d1f91;const _0x5649c6=await loadCachedClient();if(_0x5649c6)_0x12b00a=_0x5649c6[_0x44ae60(0xd1)],_0x4d1f91=_0x5649c6['clientSecret'];else{if(_0x551d79[_0x44ae60(0x7e)]){process['stdout']['write'](_0x3442fa[_0x44ae60(0xcf)]);const _0x1c6355=await fetch(_0x551d79[_0x44ae60(0x7e)],{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON['stringify']({'client_name':_0x44ae60(0xb7),'redirect_uris':['http://localhost:'+CALLBACK_PORT+_0x44ae60(0xb0)],'grant_types':[_0x3442fa['EHrVe'],_0x44ae60(0xf8)],'response_types':[_0x3442fa[_0x44ae60(0xb5)]],'token_endpoint_auth_method':_0x3442fa[_0x44ae60(0x87)]})});if(!_0x1c6355['ok']){const _0x33f10d=await _0x1c6355['text']();throw new Error('Client\x20registration\x20failed:\x20'+_0x33f10d);}const _0x31b182=await _0x1c6355[_0x44ae60(0xa8)]();_0x12b00a=_0x31b182['client_id'],_0x4d1f91=_0x31b182[_0x44ae60(0xd3)],await saveCachedClient(_0x12b00a,_0x4d1f91),console['log'](_0x3442fa['BmIjz']);}else throw new Error(_0x44ae60(0xae));}const _0x2b1cff=randomBytes(0x20)['toString'](_0x44ae60(0xc5)),_0x3752a2=_0x3442fa['EyYAh'](createHash,_0x44ae60(0xef))[_0x44ae60(0xa0)](_0x2b1cff)['digest']('base64url'),_0x3aa11d=randomBytes(0x10)[_0x44ae60(0x86)](_0x3442fa['ifRPE']),_0xd6e8bd=new URL(_0x551d79['authorization_endpoint']);_0xd6e8bd['searchParams'][_0x44ae60(0xe7)]('response_type',_0x44ae60(0xea)),_0xd6e8bd['searchParams']['set'](_0x3442fa[_0x44ae60(0x9d)],_0x12b00a),_0xd6e8bd['searchParams'][_0x44ae60(0xe7)](_0x44ae60(0xaa),_0x44ae60(0x9e)+CALLBACK_PORT+'/callback'),_0xd6e8bd[_0x44ae60(0x7f)][_0x44ae60(0xe7)](_0x3442fa[_0x44ae60(0xd4)],_0x3752a2),_0xd6e8bd['searchParams']['set'](_0x44ae60(0x8c),_0x44ae60(0xc6)),_0xd6e8bd[_0x44ae60(0x7f)]['set'](_0x3442fa[_0x44ae60(0xe8)],_0x3aa11d);_0x512687[_0x44ae60(0x91)]&&_0xd6e8bd[_0x44ae60(0x7f)][_0x44ae60(0xe7)](_0x3442fa['jiuIw'],_0x512687['resource']);console['log'](_0x44ae60(0xd6)),console['log']('If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a'+_0xd6e8bd[_0x44ae60(0x86)]()+'\x0a'),await openBrowser(_0xd6e8bd[_0x44ae60(0x86)]());const _0x5712a4=await waitForCallback(_0x3aa11d);process['stdout'][_0x44ae60(0xb6)]('Exchanging\x20authorization\x20code...');const _0x230497=new URLSearchParams({'grant_type':_0x3442fa[_0x44ae60(0xc8)],'code':_0x5712a4,'redirect_uri':'http://localhost:'+CALLBACK_PORT+_0x44ae60(0xb0),'client_id':_0x12b00a,'code_verifier':_0x2b1cff});_0x4d1f91&&_0x230497[_0x44ae60(0xe7)](_0x3442fa[_0x44ae60(0xa5)],_0x4d1f91);_0x512687[_0x44ae60(0x91)]&&_0x230497['set']('resource',_0x512687[_0x44ae60(0x91)]);const _0xb9bb36=await fetch(_0x551d79['token_endpoint'],{'method':_0x44ae60(0x8b),'headers':{'Content-Type':_0x3442fa[_0x44ae60(0xe3)]},'body':_0x230497});if(!_0xb9bb36['ok']){const _0x2fbea0=await _0xb9bb36['text']();throw new Error('Token\x20exchange\x20failed:\x20'+_0x2fbea0);}const _0x18eb44=await _0xb9bb36[_0x44ae60(0xa8)]();return console['log'](_0x3442fa['BmIjz']),await _0x3442fa['yJYaA'](saveCachedToken,_0x18eb44['access_token'],_0x18eb44['refresh_token'],_0x18eb44[_0x44ae60(0xe1)]),_0x18eb44['access_token'];}async function callGetCliToken(_0x4f354f,_0xb5bb04){const _0x5db084=_0x151ee3,_0x38079c={'oweTe':function(_0x280698,_0x4ef678){return _0x280698(_0x4ef678);},'BFdcU':'Authorization','XTjKb':function(_0x3fc70e,_0x4bfe5f){return _0x3fc70e(_0x4bfe5f);},'ezgsI':_0x5db084(0x78),'oidOe':'1.0.0','QgqyV':'\x20done','sMyXI':_0x5db084(0xc2),'mSrMe':'2.0','HDBwT':'\x0aUnexpected\x20response\x20structure:','UALvi':'refresh.txt','ocvTu':function(_0x4dc32d,_0xe8e6eb,_0x127517,_0x40964c){return _0x4dc32d(_0xe8e6eb,_0x127517,_0x40964c);},'wzyWa':_0x5db084(0xbe)},_0x4c5ea0={'Content-Type':'application/json','Accept':_0x5db084(0x93)};_0xb5bb04&&(_0x4c5ea0[_0x38079c['BFdcU']]='Bearer\x20'+_0xb5bb04);const _0x56840a=async _0x3659c9=>{const _0x2c930e=_0x5db084,_0x21c759=await fetch(_0x4f354f,{'method':_0x2c930e(0x8b),'headers':_0x4c5ea0,'body':JSON[_0x2c930e(0xdd)](_0x3659c9)});if(!_0x21c759['ok']){const _0x20bf15=await _0x21c759['text']();throw new Error('HTTP\x20'+_0x21c759[_0x2c930e(0xa4)]+':\x20'+_0x20bf15);}return _0x38079c[_0x2c930e(0xf9)](parseResponse,_0x21c759);};process[_0x5db084(0x102)]['write']('Initializing\x20MCP\x20session...');const _0x1bcd71=await _0x38079c['XTjKb'](_0x56840a,{'jsonrpc':_0x5db084(0xbb),'id':0x1,'method':_0x5db084(0x85),'params':{'protocolVersion':_0x5db084(0xed),'capabilities':{},'clientInfo':{'name':_0x38079c['ezgsI'],'version':_0x38079c['oidOe']}}});if(_0x1bcd71['error'])throw new Error('MCP\x20initialize\x20failed:\x20'+(_0x1bcd71['error'][_0x5db084(0x101)]??JSON['stringify'](_0x1bcd71['error'])));console['log'](_0x38079c[_0x5db084(0xba)]),await fetch(_0x4f354f,{'method':'POST','headers':_0x4c5ea0,'body':JSON[_0x5db084(0xdd)]({'jsonrpc':_0x5db084(0xbb),'method':_0x38079c[_0x5db084(0xa7)]})})['then'](_0x74ef01=>_0x74ef01[_0x5db084(0xd8)]()),process['stdout'][_0x5db084(0xb6)](_0x5db084(0x98));const _0x5c710c=await _0x56840a({'jsonrpc':_0x38079c[_0x5db084(0x79)],'id':0x2,'method':_0x5db084(0xe0),'params':{'name':'get_cli_token','arguments':{}}});if(_0x5c710c[_0x5db084(0x97)])throw new Error('get_cli_token\x20failed:\x20'+(_0x5c710c['error'][_0x5db084(0x101)]??JSON['stringify'](_0x5c710c['error'])));console['log'](_0x38079c[_0x5db084(0xba)]);const _0x22be99=extractToken(_0x5c710c[_0x5db084(0xe4)]);if(!_0x22be99){console['error'](_0x38079c[_0x5db084(0xeb)]),console['error'](JSON['stringify'](_0x5c710c['result'],null,0x2));throw new Error(_0x5db084(0xf3));}const _0x15e8df=join(homedir(),_0x5db084(0x8d)),_0x11f70b=join(_0x15e8df,_0x38079c['UALvi']);await mkdir(_0x15e8df,{'recursive':!![]}),await _0x38079c['ocvTu'](writeFile,_0x11f70b,_0x22be99,{'mode':0x180}),await _0x38079c['ocvTu'](writeFile,join(_0x15e8df,_0x38079c['wzyWa']),_0x4f354f,{'mode':0x180}),console[_0x5db084(0x82)](_0x5db084(0x7a)+_0x11f70b),console[_0x5db084(0x82)]('Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a');}async function fetchAuthServerMetadata(_0x327f42){const _0xd84757=_0x151ee3,_0x35ac1d={'hhHNz':function(_0x28d136,_0x47f82e){return _0x28d136(_0x47f82e);}},_0x396e5c=_0x327f42+_0xd84757(0x8e),_0x5113d1=await _0x35ac1d['hhHNz'](fetch,_0x396e5c);if(!_0x5113d1['ok'])throw new Error(_0xd84757(0xc1)+_0x396e5c+':\x20'+_0x5113d1['status']);return _0x5113d1['json']();}function waitForCallback(_0x50bfa0){const _0x5506ea=_0x151ee3,_0x50685e={'JeLdn':'OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','oANpd':function(_0x39f14a,_0x3299d5){return _0x39f14a!==_0x3299d5;},'JLnIp':'/callback','TLcYb':_0x5506ea(0xdf),'Ydtiy':function(_0x4b5f2f,_0x5666bd){return _0x4b5f2f(_0x5666bd);},'mIAuz':_0x5506ea(0x103),'NcsVq':'<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','lXPDa':'127.0.0.1'};return new Promise((_0x613eb9,_0x374224)=>{const _0x4f9818=_0x5506ea,_0x30c5f3=setTimeout(()=>{const _0xeca439=_0x3bf6;_0x4fd564[_0xeca439(0xb2)](),_0x374224(new OAuthTimeoutError(_0x50685e[_0xeca439(0x96)]));},0x1d4c0),_0x4fd564=createServer((_0x2ae5ea,_0x4137f7)=>{const _0x383ec8=_0x3bf6,_0x52444b=new URL(_0x2ae5ea['url']??'/',_0x383ec8(0x9e)+CALLBACK_PORT);if(_0x50685e['oANpd'](_0x52444b['pathname'],_0x50685e[_0x383ec8(0x9f)])){_0x4137f7[_0x383ec8(0x100)](0x194),_0x4137f7['end'](_0x50685e[_0x383ec8(0x94)]);return;}const _0x5b9b0d=_0x52444b[_0x383ec8(0x7f)][_0x383ec8(0xa3)](_0x383ec8(0xea)),_0x14c6b0=_0x52444b[_0x383ec8(0x7f)]['get']('state'),_0x379915=_0x52444b[_0x383ec8(0x7f)][_0x383ec8(0xa3)]('error');if(_0x379915){const _0x3f8c9c=_0x52444b['searchParams'][_0x383ec8(0xa3)]('error_description')??_0x379915;_0x4137f7[_0x383ec8(0x100)](0xc8,{'Content-Type':'text/html'}),_0x4137f7[_0x383ec8(0xb8)]('<html><body><h2>Authentication\x20failed</h2><p>'+_0x3f8c9c+'</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>'),_0x50685e[_0x383ec8(0x92)](clearTimeout,_0x30c5f3),_0x4fd564[_0x383ec8(0xb2)](),_0x374224(new Error(_0x383ec8(0xd9)+_0x3f8c9c));return;}if(!_0x5b9b0d||_0x50685e['oANpd'](_0x14c6b0,_0x50bfa0)){_0x4137f7[_0x383ec8(0x100)](0x190,{'Content-Type':_0x50685e['mIAuz']}),_0x4137f7['end']('<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>');return;}_0x4137f7[_0x383ec8(0x100)](0xc8,{'Content-Type':_0x383ec8(0x103)}),_0x4137f7['end'](_0x50685e[_0x383ec8(0xb1)]),clearTimeout(_0x30c5f3),_0x4fd564[_0x383ec8(0xb2)](),_0x613eb9(_0x5b9b0d);});_0x4fd564[_0x4f9818(0x104)](CALLBACK_PORT,_0x50685e[_0x4f9818(0xdc)]);});}async function openBrowser(_0x2e91cd){const _0x5cba34=_0x151ee3,_0x59c71c={'UWpsU':function(_0x2fe806,_0x608205){return _0x2fe806===_0x608205;},'Fqwdd':'darwin','twnre':_0x5cba34(0xb4),'kPNWX':_0x5cba34(0xfc),'AEWDL':'start'},{exec:_0x4e36d3}=await import('child_process'),_0x281cc8=_0x59c71c[_0x5cba34(0xe6)](process['platform'],_0x59c71c['Fqwdd'])?_0x59c71c[_0x5cba34(0xc7)]:process[_0x5cba34(0xf0)]===_0x59c71c[_0x5cba34(0xce)]?_0x59c71c['AEWDL']:_0x5cba34(0x88);_0x4e36d3(_0x281cc8+'\x20\x22'+_0x2e91cd+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x585f29=_0x151ee3,_0x193ab7={'siMLN':function(_0x1f5be5,_0x52ea76){return _0x1f5be5!==_0x52ea76;}};try{const _0x1944f8=JSON[_0x585f29(0x80)](await readFile(TOKEN_CACHE_PATH,'utf-8'));if(_0x1944f8['origin']&&_0x193ab7[_0x585f29(0x99)](_0x1944f8[_0x585f29(0x84)],currentOrigin))return null;if(_0x1944f8[_0x585f29(0xd2)]&&Date['now']()>_0x1944f8['expiresAt'])return null;return _0x1944f8['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x28af14,_0x194cae,_0x8d406c){const _0x5d07d7=_0x151ee3,_0x5486a6={'CZvLv':function(_0x39d5c2,_0x3b5b00){return _0x39d5c2+_0x3b5b00;},'JUyTv':function(_0x2ccc30,_0x3bbecd){return _0x2ccc30*_0x3bbecd;},'YvlSN':function(_0x4213af,_0x219151,_0x322a85){return _0x4213af(_0x219151,_0x322a85);},'uxGcM':function(_0x584e8b){return _0x584e8b();},'gopLj':function(_0x28076b,_0x10eb39,_0x72d4b0,_0x4dc2a5){return _0x28076b(_0x10eb39,_0x72d4b0,_0x4dc2a5);}},_0x47f8aa=await loadCachedData(),_0x5e982f={..._0x47f8aa,'origin':currentOrigin,'accessToken':_0x28af14,'refreshToken':_0x194cae??_0x47f8aa?.[_0x5d07d7(0xf2)],'expiresAt':_0x8d406c?_0x5486a6[_0x5d07d7(0x83)](Date['now'](),_0x5486a6['JUyTv'](_0x8d406c,0x3e8)):undefined};await mkdir(_0x5486a6[_0x5d07d7(0xf7)](join,_0x5486a6[_0x5d07d7(0xa1)](homedir),_0x5d07d7(0x8d)),{'recursive':!![]}),await _0x5486a6['gopLj'](writeFile,TOKEN_CACHE_PATH,JSON[_0x5d07d7(0xdd)](_0x5e982f),{'mode':0x180});}async function loadCachedClient(){const _0x33acba=_0x151ee3,_0x2dea72=await loadCachedData();if(_0x2dea72?.[_0x33acba(0x84)]&&_0x2dea72[_0x33acba(0x84)]!==currentOrigin)return null;return _0x2dea72?.[_0x33acba(0xd1)]?{'clientId':_0x2dea72['clientId'],'clientSecret':_0x2dea72[_0x33acba(0xcb)]}:null;}async function clearCachedClient(){const _0x55ca1f=await loadCachedData();if(!_0x55ca1f)return;const {clientId:_0x4b374e,clientSecret:_0x4f70c7,..._0x577550}=_0x55ca1f;await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x577550),{'mode':0x180});}function _0x3bf6(_0x2a9ab8,_0x2c0db0){_0x2a9ab8=_0x2a9ab8-0x77;const _0x4adb3a=_0x4adb();let _0x3bf6e2=_0x4adb3a[_0x2a9ab8];return _0x3bf6e2;}async function saveCachedClient(_0x9f4d3a,_0x3a3215){const _0x40d670=_0x151ee3,_0x19a093={'uiDgy':function(_0xef4afe){return _0xef4afe();},'FxGQt':'.ranger'},_0xd23da6=await loadCachedData(),_0x21322b={..._0xd23da6,'origin':currentOrigin,'accessToken':_0xd23da6?.[_0x40d670(0x9a)]??'','clientId':_0x9f4d3a,'clientSecret':_0x3a3215};await mkdir(join(_0x19a093[_0x40d670(0x95)](homedir),_0x19a093[_0x40d670(0xc4)]),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x40d670(0xdd)](_0x21322b),{'mode':0x180});}async function loadCachedData(){const _0x38a6f7=_0x151ee3;try{return JSON[_0x38a6f7(0x80)](await readFile(TOKEN_CACHE_PATH,_0x38a6f7(0xff)));}catch{return null;}}async function parseResponse(_0x2707e7){const _0x31a06c=_0x151ee3,_0x5ea04b={'YzqaW':'text/event-stream','vtqTJ':'data:','MAygU':'No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream'},_0x335587=_0x2707e7[_0x31a06c(0xd5)][_0x31a06c(0xa3)]('content-type')??'';if(_0x335587[_0x31a06c(0xa6)](_0x5ea04b[_0x31a06c(0xde)])){const _0x323687=await _0x2707e7['text']();for(const _0x559cd8 of _0x323687[_0x31a06c(0xcd)]('\x0a')){const _0x3c059e=_0x559cd8[_0x31a06c(0xfe)]();if(_0x3c059e[_0x31a06c(0xf6)](_0x5ea04b['vtqTJ'])){const _0x1669c7=_0x3c059e[_0x31a06c(0xd0)](_0x5ea04b[_0x31a06c(0xc9)][_0x31a06c(0xb3)])[_0x31a06c(0xfe)]();if(!_0x1669c7)continue;try{const _0x2be9a9=JSON['parse'](_0x1669c7);if(_0x2be9a9['id']!==undefined||_0x2be9a9[_0x31a06c(0x97)])return _0x2be9a9;}catch{}}}throw new Error(_0x5ea04b['MAygU']);}return _0x2707e7['json']();}function extractToken(_0x434154){const _0x2a4f95=_0x151ee3,_0x43edb6={'DOgfy':'Unknown\x20error','cTFmx':function(_0x211378,_0x227408){return _0x211378===_0x227408;},'rYYAC':_0x2a4f95(0xd8),'ttAcD':function(_0x56d244,_0x21e406){return _0x56d244===_0x21e406;}};if(!_0x434154)return null;const _0x5eb6ff=_0x434154['structuredContent'];if(_0x5eb6ff?.['token']&&typeof _0x5eb6ff['token']===_0x2a4f95(0xdb))return _0x5eb6ff['token'];if(_0x434154[_0x2a4f95(0xbc)]){const _0x17d6b=_0x434154['content'];throw new Error(_0x2a4f95(0x77)+(_0x17d6b?.[0x0]?.[_0x2a4f95(0xd8)]??_0x43edb6['DOgfy']));}const _0x308b31=_0x434154['content'];if(_0x308b31)for(const _0x402b53 of _0x308b31){if(_0x43edb6[_0x2a4f95(0xe9)](_0x402b53[_0x2a4f95(0xa9)],_0x43edb6['rYYAC'])&&_0x402b53['text']){try{const _0x11e6bb=JSON['parse'](_0x402b53[_0x2a4f95(0xd8)]);if(_0x43edb6['ttAcD'](typeof _0x11e6bb?.[_0x2a4f95(0xfb)],'string'))return _0x11e6bb['token'];}catch{}const _0x41c1da=_0x402b53[_0x2a4f95(0xd8)]['match'](/(rngr_[A-Za-z0-9_-]+)/);if(_0x41c1da)return _0x41c1da[0x1];}}return null;}
@@ -0,0 +1 @@
1
+ (function(_0x1cf727,_0x47f2d5){const _0x47e24f=_0x34fc,_0x47cad3=_0x1cf727();while(!![]){try{const _0x2ff20b=-parseInt(_0x47e24f(0xc5))/0x1+parseInt(_0x47e24f(0xbb))/0x2+-parseInt(_0x47e24f(0x98))/0x3+-parseInt(_0x47e24f(0xc0))/0x4*(-parseInt(_0x47e24f(0x8d))/0x5)+parseInt(_0x47e24f(0x9d))/0x6*(-parseInt(_0x47e24f(0xcc))/0x7)+-parseInt(_0x47e24f(0xa5))/0x8+parseInt(_0x47e24f(0xcd))/0x9;if(_0x2ff20b===_0x47f2d5)break;else _0x47cad3['push'](_0x47cad3['shift']());}catch(_0x342120){_0x47cad3['push'](_0x47cad3['shift']());}}}(_0x4db9,0x6c3bd));import{readFile,rm}from'fs/promises';import{existsSync}from'fs';import{join}from'path';import _0x255b4d from'inquirer';import{getEnvNames}from'./env.js';import{getEnvDir,loadSettings}from'./utils/settings.js';import{getRangerDir}from'./utils/rangerRoot.js';function _0x34fc(_0x6ea894,_0x4d6951){_0x6ea894=_0x6ea894-0x79;const _0x4db993=_0x4db9();let _0x34fc65=_0x4db993[_0x6ea894];return _0x34fc65;}import{ApiError,createCloudProfile,fetchAuthConfig,saveCloudProfileCredentials,uploadCloudProfileSession}from'./utils/cloudProfile.js';import{matchAuthEnvironment}from'./utils/matchAuthEnvironment.js';import{readProjectsConfig,setProfileOverride,writeProjectsConfig}from'./utils/projectsConfig.js';import{isPathGitTracked}from'./utils/gitTracked.js';function formatPlanLine(_0x272882){const _0x119356=_0x34fc;if(_0x272882[_0x119356(0xb6)]===_0x119356(0x9a))return'\x20\x20'+_0x272882[_0x119356(0xa3)]['padEnd'](0x1e)+_0x119356(0x9f)+_0x272882[_0x119356(0xa9)]+')';if(_0x272882['preserveBaseUrl']&&_0x272882['baseUrl'])return'\x20\x20'+_0x272882[_0x119356(0xa3)]['padEnd'](0x1e)+_0x119356(0x83)+_0x272882[_0x119356(0x84)]+_0x119356(0x7a)+_0x272882[_0x119356(0x7e)]+'\x20as\x20project\x20override)';if(_0x272882['baseUrl'])return'\x20\x20'+_0x272882[_0x119356(0xa3)][_0x119356(0xcb)](0x1e)+_0x119356(0x83)+_0x272882['envKey']+_0x119356(0xc9)+_0x272882[_0x119356(0x7e)]+')';return'\x20\x20'+_0x272882['profileName'][_0x119356(0xcb)](0x1e)+_0x119356(0x83)+_0x272882['envKey']+')';}function shouldWarnGitTrackedOnce(_0x5556f9){const _0x14b165=_0x34fc,_0xfe900c=readProjectsConfig(),_0x40e942=_0xfe900c['projects'][_0x5556f9]??={},_0x4b05e1=_0x40e942[_0x14b165(0xb9)]??={},_0x1cb55e=_0x4b05e1[_0x14b165(0x9b)],_0x14d75d=new Date(),_0x5d7371=_0x14d75d['toISOString']()[_0x14b165(0x91)](0x0,0xa);if(_0x1cb55e===_0x5d7371)return![];return _0x4b05e1['gitTrackedRanger']=_0x5d7371,writeProjectsConfig(_0xfe900c),!![];}export async function migrateProfile(_0x160685,_0x1b55d5){const _0x42b746=_0x34fc,_0x4b1f8d={'dcloS':function(_0x4481e6,_0x5a97af){return _0x4481e6===_0x5a97af;},'pyoiy':'No\x20cloud\x20profile\x20auth\x20config\x20found\x20for\x20this\x20org.\x20Migration\x20requires\x20at\x20least\x20one\x20configured\x20auth\x20environment.','YNYWt':function(_0x492d0e,_0x245ce8){return _0x492d0e(_0x245ce8);},'QESCZ':function(_0x26b884,_0x53cd59){return _0x26b884(_0x53cd59);},'JLlwE':'skip','VtfFs':_0x42b746(0xbe),'qwzgP':function(_0xb90923,_0x358342){return _0xb90923(_0x358342);},'gSvXW':_0x42b746(0x89),'vTEiL':function(_0x57e856,_0x396500,_0x4f9fd3){return _0x57e856(_0x396500,_0x4f9fd3);},'QKfrG':'baseUrl','isHfS':_0x42b746(0xc4),'aRvni':function(_0x33f3c6,_0x26cc2d){return _0x33f3c6&&_0x26cc2d;},'iaaRS':'confirm','fwZVP':'Aborted.','dgIXW':function(_0xc8bb73,_0x523a7b){return _0xc8bb73(_0x523a7b);},'ZwxuM':'4|1|3|2|0','KHksW':_0x42b746(0xb8),'iuFiK':function(_0x20aeb2,_0x3f8a58){return _0x20aeb2===_0x3f8a58;},'CzUDg':'name_conflict','ZJgLN':'utf-8','pUeqJ':function(_0x148973,_0x50ed5a,_0x4b7bbe,_0x5a0871,_0x12c97d){return _0x148973(_0x50ed5a,_0x4b7bbe,_0x5a0871,_0x12c97d);},'YsLRV':function(_0x55f910,_0x4eaf0c){return _0x55f910 instanceof _0x4eaf0c;},'aUbZh':function(_0x565ade,_0x5ba4a6){return _0x565ade(_0x5ba4a6);},'hJviC':function(_0x2ab436,_0x202b1e){return _0x2ab436 instanceof _0x202b1e;},'RkekT':function(_0x441b53,_0x3a0252){return _0x441b53(_0x3a0252);},'mkRAS':function(_0x15df4b,_0x382108){return _0x15df4b+_0x382108;}};if(!_0x160685['profileName']&&!_0x160685['all'])throw new Error('Provide\x20a\x20profile\x20name\x20or\x20--all.\x0a\x20\x20Example:\x20ranger\x20profile\x20migrate\x20--all\x20--dry-run');let _0x4dee4c;try{_0x4dee4c=await fetchAuthConfig();}catch(_0x5a379b){throw new Error('Could\x20not\x20fetch\x20auth\x20config\x20('+(_0x5a379b instanceof Error?_0x5a379b['message']:String(_0x5a379b))+').\x20Run:\x20ranger\x20setup');}if(!_0x4dee4c||!_0x4dee4c['environments']||_0x4b1f8d['dcloS'](Object['keys'](_0x4dee4c['environments'])[_0x42b746(0xaa)],0x0))throw new Error(_0x4b1f8d['pyoiy']);const _0x3dadd7=[];if(_0x160685['all']){const {envNames:_0x4b0b71,envTypes:_0x42c790}=await getEnvNames();for(const _0xc055b3 of _0x4b0b71){if(_0x42c790[_0xc055b3]==='ci')continue;_0x3dadd7['push'](_0xc055b3);}}else _0x160685['profileName']&&_0x3dadd7['push'](_0x160685['profileName']);if(_0x3dadd7['length']===0x0){console['log']('No\x20local\x20profiles\x20found\x20to\x20migrate.');return;}const _0x3ac51e=[];for(const _0x364e4a of _0x3dadd7){const _0x1b1163=_0x4b1f8d[_0x42b746(0xb5)](getEnvDir,_0x364e4a);if(!_0x4b1f8d['QESCZ'](existsSync,_0x1b1163)){_0x3ac51e['push']({'kind':_0x4b1f8d['JLlwE'],'profileName':_0x364e4a,'reason':_0x4b1f8d[_0x42b746(0x86)]});continue;}const _0x11b2cd=await _0x4b1f8d[_0x42b746(0x99)](loadSettings,_0x364e4a),_0x4470eb=_0x11b2cd[_0x42b746(0x7e)];if(!_0x4470eb){_0x3ac51e[_0x42b746(0xc3)]({'kind':_0x42b746(0x9a),'profileName':_0x364e4a,'reason':_0x4b1f8d[_0x42b746(0x82)]});continue;}const _0x7354fd=_0x4b1f8d[_0x42b746(0x85)](matchAuthEnvironment,_0x4470eb,_0x4dee4c);if(!_0x7354fd){_0x3ac51e[_0x42b746(0xc3)]({'kind':_0x4b1f8d['JLlwE'],'profileName':_0x364e4a,'reason':_0x42b746(0x79)});continue;}const _0x1d762d=_0x4dee4c[_0x42b746(0xb2)][_0x7354fd],_0x35ad25=_0x1d762d?.['domains']??[],_0x58a3a0=_0x35ad25[_0x42b746(0xca)](_0x1bb3c2=>{const _0x3d9ce1=_0x42b746;try{return new URL(_0x1bb3c2)['origin']===new URL(_0x4470eb)[_0x3d9ce1(0xba)];}catch{return![];}}),_0x596cf6={};for(const [_0x7b17fb,_0x30b85b]of Object[_0x42b746(0xaf)](_0x11b2cd)){if(_0x7b17fb===_0x4b1f8d['QKfrG'])continue;if(_0x30b85b===undefined)continue;_0x596cf6[_0x7b17fb]=_0x30b85b;}!_0x58a3a0&&(_0x596cf6['baseUrl']=_0x4470eb);const _0x336be5=join(_0x1b1163,_0x4b1f8d[_0x42b746(0xbf)]),_0x50d148=existsSync(_0x336be5);_0x3ac51e['push']({'kind':_0x42b746(0xa2),'profileName':_0x364e4a,'envKey':_0x7354fd,'baseUrl':_0x4470eb,'preserveBaseUrl':!_0x58a3a0,'settings':_0x596cf6,'authJsonPath':_0x50d148?_0x336be5:null});}console[_0x42b746(0x8f)](_0x42b746(0xb3));for(const _0x94721e of _0x3ac51e){console['log'](formatPlanLine(_0x94721e));}if(_0x160685[_0x42b746(0x96)]){console[_0x42b746(0x8f)]('Nothing\x20migrated.\x20Run\x20without\x20--dry-run\x20to\x20apply.');return;}const _0x5ad7c4=Boolean(process['stdin'][_0x42b746(0x92)]&&process[_0x42b746(0x7c)][_0x42b746(0x92)]),_0x458187=_0x3ac51e['some'](_0x3802ef=>_0x3802ef[_0x42b746(0xb6)]===_0x42b746(0xa2));if(_0x4b1f8d['aRvni'](_0x458187,_0x5ad7c4)&&!_0x160685[_0x42b746(0x94)]){const {proceed:_0x405935}=await _0x255b4d[_0x42b746(0xb7)]([{'type':_0x4b1f8d[_0x42b746(0x7b)],'name':'proceed','message':_0x42b746(0xab),'default':![]}]);if(!_0x405935){console[_0x42b746(0x8f)](_0x4b1f8d[_0x42b746(0xc2)]);return;}}const _0x2cc13a=getRangerDir();let _0x48c832=![];if(existsSync(_0x2cc13a))try{_0x48c832=await _0x4b1f8d['dgIXW'](isPathGitTracked,_0x2cc13a);}catch{_0x48c832=![];}if(_0x48c832&&_0x4b1f8d['QESCZ'](shouldWarnGitTrackedOnce,process[_0x42b746(0xc8)]())){const _0x5e220a=_0x4b1f8d[_0x42b746(0xc7)][_0x42b746(0x88)]('|');let _0x195a3b=0x0;while(!![]){switch(_0x5e220a[_0x195a3b++]){case'0':console[_0x42b746(0x8f)](_0x42b746(0xc1));continue;case'1':console[_0x42b746(0x8f)](_0x4b1f8d['KHksW']);continue;case'2':console['log'](_0x42b746(0x95));continue;case'3':console['log']('\x20\x20git\x20rm\x20-r\x20--cached\x20.ranger/');continue;case'4':console['log'](_0x42b746(0x90));continue;}break;}}let _0x593869=0x0,_0x47af63=0x0,_0x386fe3=0x0,_0x12cbf1=0x0;for(const _0x1614a8 of _0x3ac51e){if(_0x1614a8['kind']===_0x42b746(0x9a)){_0x12cbf1++,_0x1b55d5?.['trackPhaseEnd'](_0x42b746(0xbc),{'profileName':_0x1614a8['profileName'],'reason':_0x1614a8['reason']});continue;}_0x1b55d5?.['trackPhaseStart']('profile.migrate.started',{'profileName':_0x1614a8[_0x42b746(0xa3)],'envKey':_0x1614a8[_0x42b746(0x84)]});try{try{await createCloudProfile(_0x1614a8['profileName'],_0x1614a8[_0x42b746(0x84)],{'settings':_0x1614a8['settings']});}catch(_0x179d04){if(_0x179d04 instanceof ApiError&&_0x4b1f8d['iuFiK'](_0x179d04['status'],0x199)){console['log']('\x20\x20⚠\x20'+_0x1614a8[_0x42b746(0xa3)]+_0x42b746(0xd1)),_0x12cbf1++,_0x1b55d5?.[_0x42b746(0xb1)](_0x42b746(0xbc),{'profileName':_0x1614a8['profileName'],'reason':_0x4b1f8d[_0x42b746(0xbd)]});continue;}throw _0x179d04;}let _0x2ceeca=![],_0x346702=![];if(_0x1614a8['authJsonPath'])try{const _0x432f23=await readFile(_0x1614a8['authJsonPath'],_0x4b1f8d['ZJgLN']),_0x16cb22=JSON['parse'](_0x432f23);await _0x4b1f8d[_0x42b746(0x85)](uploadCloudProfileSession,_0x1614a8[_0x42b746(0xa3)],_0x16cb22),_0x2ceeca=!![];}catch(_0x46bd54){_0x346702=!![],console[_0x42b746(0x8f)]('\x20\x20⚠\x20'+_0x1614a8['profileName']+_0x42b746(0xa6)+(_0x46bd54 instanceof Error?_0x46bd54[_0x42b746(0x97)]:_0x4b1f8d['YNYWt'](String,_0x46bd54))+').\x20Cloud\x20profile\x20created;\x20local\x20auth.json\x20left\x20in\x20place.');}let _0x387165=![];if(_0x160685[_0x42b746(0x81)]){const _0x595e6d=process[_0x42b746(0xae)]['RANGER_TEST_USERNAME'],_0x34f1b0=process['env'][_0x42b746(0x9c)];if(_0x4b1f8d[_0x42b746(0xad)](_0x595e6d,_0x34f1b0))try{await saveCloudProfileCredentials(_0x1614a8[_0x42b746(0xa3)],_0x595e6d,_0x34f1b0),_0x387165=!![];}catch(_0x2b9b56){console['log']('\x20\x20⚠\x20'+_0x1614a8['profileName']+_0x42b746(0x8b)+(_0x2b9b56 instanceof Error?_0x2b9b56['message']:String(_0x2b9b56))+').');}else console[_0x42b746(0x8f)]('\x20\x20⚠\x20'+_0x1614a8[_0x42b746(0xa3)]+_0x42b746(0xac));}if(_0x1614a8['preserveBaseUrl']&&_0x1614a8['baseUrl'])try{_0x4b1f8d[_0x42b746(0x87)](setProfileOverride,process[_0x42b746(0xc8)](),_0x1614a8['profileName'],_0x42b746(0x7e),_0x1614a8[_0x42b746(0x7e)]);}catch(_0x5c5edc){console[_0x42b746(0x8f)]('\x20\x20⚠\x20'+_0x1614a8[_0x42b746(0xa3)]+_0x42b746(0xcf)+(_0x4b1f8d['YsLRV'](_0x5c5edc,Error)?_0x5c5edc[_0x42b746(0x97)]:_0x4b1f8d['YNYWt'](String,_0x5c5edc))+').');}const _0x3b46ad=_0x4b1f8d[_0x42b746(0x7d)](getEnvDir,_0x1614a8[_0x42b746(0xa3)]);if(!_0x346702&&_0x4b1f8d['aUbZh'](existsSync,_0x3b46ad))try{await rm(_0x3b46ad,{'recursive':!![],'force':!![]}),_0x47af63++;}catch(_0x25c8fc){console[_0x42b746(0x8f)]('\x20\x20⚠\x20'+_0x1614a8['profileName']+_0x42b746(0x8e)+_0x3b46ad+'\x20('+(_0x25c8fc instanceof Error?_0x25c8fc[_0x42b746(0x97)]:String(_0x25c8fc))+').');}_0x593869++,_0x1614a8[_0x42b746(0xce)]&&_0x1614a8['baseUrl']?console[_0x42b746(0x8f)]('\x20\x20✓\x20'+_0x1614a8['profileName']+'\x20migrated\x20to\x20cloud\x20(env:\x20'+_0x1614a8['envKey']+_0x42b746(0xa1)):console[_0x42b746(0x8f)](_0x42b746(0x7f)+_0x1614a8[_0x42b746(0xa3)]+_0x42b746(0x93)+_0x1614a8[_0x42b746(0x84)]+')'),_0x1b55d5?.['trackPhaseEnd']('profile.migrate.succeeded',{'profileName':_0x1614a8[_0x42b746(0xa3)],'envKey':_0x1614a8['envKey'],'wasGitTracked':_0x48c832,'hadSession':_0x2ceeca,'savedCreds':_0x387165});}catch(_0x18e07e){_0x386fe3++,console['log'](_0x42b746(0x8c)+_0x1614a8[_0x42b746(0xa3)]+'\x20failed:\x20'+(_0x4b1f8d[_0x42b746(0xc6)](_0x18e07e,Error)?_0x18e07e[_0x42b746(0x97)]:_0x4b1f8d[_0x42b746(0xa8)](String,_0x18e07e))),_0x1b55d5?.['trackPhaseEnd']('profile.migrate.failed',{'profileName':_0x1614a8['profileName'],'error':_0x4b1f8d['YsLRV'](_0x18e07e,Error)?_0x18e07e['message']:String(_0x18e07e)});}}const _0x1e43b9=[];if(_0x593869>0x0)_0x1e43b9['push'](_0x593869+_0x42b746(0xd0)+(_0x4b1f8d[_0x42b746(0x8a)](_0x593869,0x1)?'':'s')+_0x42b746(0xa4));if(_0x47af63>0x0)_0x1e43b9[_0x42b746(0xc3)](_0x42b746(0x9e)+_0x47af63+_0x42b746(0xa0)+(_0x4b1f8d['dcloS'](_0x47af63,0x1)?'y':'ies'));if(_0x12cbf1>0x0)_0x1e43b9[_0x42b746(0xc3)](_0x12cbf1+_0x42b746(0xb4));if(_0x386fe3>0x0)_0x1e43b9['push'](_0x386fe3+_0x42b746(0x80));if(_0x1e43b9['length']>0x0)console[_0x42b746(0x8f)](_0x4b1f8d[_0x42b746(0xb0)](_0x1e43b9[_0x42b746(0xa7)]('.\x20'),'.'));}function _0x4db9(){const _0x188075=['saveCreds','gSvXW','\x20→\x20cloud\x20(env:\x20','envKey','vTEiL','VtfFs','pUeqJ','split','no\x20baseUrl\x20in\x20settings.json','dcloS',':\x20failed\x20to\x20save\x20credentials\x20(','\x20\x20✗\x20','2249385kiQKEq',':\x20failed\x20to\x20delete\x20local\x20dir\x20','log','Warning:\x20.ranger/\x20is\x20tracked\x20in\x20this\x20git\x20repo.','slice','isTTY','\x20migrated\x20to\x20cloud\x20(env:\x20','yes','\x20\x20echo\x20\x27.ranger/\x27\x20>>\x20.gitignore','dryRun','message','13497RGWFzW','qwzgP','skip','gitTrackedRanger','RANGER_TEST_PASSWORD','30jKRXug','Deleted\x20','\x20→\x20skip\x20(','\x20local\x20director',',\x20baseUrl\x20override\x20→\x20projects.json)','migrate','profileName','\x20migrated','3476040siMhXg',':\x20session\x20upload\x20failed\x20(','join','RkekT','reason','length','Proceed?',':\x20--save-creds\x20requested,\x20but\x20RANGER_TEST_USERNAME/PASSWORD\x20not\x20set\x20in\x20env.','aRvni','env','entries','mkRAS','trackPhaseEnd','environments','Plan:','\x20skipped','YNYWt','kind','prompt','After\x20migration,\x20uncommit\x20it:','_warnings','origin','1379828KxzgZk','profile.migrate.skipped','CzUDg','local\x20profile\x20directory\x20not\x20found','isHfS','4PUUvXB','Continuing\x20with\x20migration...','fwZVP','push','auth.json','759170LTbICb','hJviC','ZwxuM','cwd',',\x20matches\x20','some','padEnd','779261VaNZgD','9524907zKECiN','preserveBaseUrl',':\x20failed\x20to\x20write\x20projects.json\x20override\x20(','\x20profile',':\x20cloud\x20profile\x20with\x20this\x20name\x20already\x20exists.\x20Skipping.','no\x20matching\x20auth\x20env',',\x20preserving\x20baseUrl\x20','iaaRS','stdout','dgIXW','baseUrl','\x20\x20✓\x20','\x20failed'];_0x4db9=function(){return _0x188075;};return _0x4db9();}
@@ -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(_0x38e1dc,_0x370ad1){const _0x14fc1b=_0x4799,_0x364f52=_0x38e1dc();while(!![]){try{const _0x471140=-parseInt(_0x14fc1b(0x102))/0x1*(parseInt(_0x14fc1b(0x117))/0x2)+-parseInt(_0x14fc1b(0x127))/0x3+parseInt(_0x14fc1b(0x10c))/0x4*(parseInt(_0x14fc1b(0x116))/0x5)+parseInt(_0x14fc1b(0xf9))/0x6*(parseInt(_0x14fc1b(0x129))/0x7)+parseInt(_0x14fc1b(0x125))/0x8*(parseInt(_0x14fc1b(0x124))/0x9)+-parseInt(_0x14fc1b(0x105))/0xa+parseInt(_0x14fc1b(0x11c))/0xb;if(_0x471140===_0x370ad1)break;else _0x364f52['push'](_0x364f52['shift']());}catch(_0x1eb268){_0x364f52['push'](_0x364f52['shift']());}}}(_0xdee5,0x2a32c));import{join}from'path';import{existsSync}from'fs';import _0x44676a from'inquirer';function _0xdee5(){const _0x5ce4ec=['\x0a📦\x20Claude\x20Code\x20Plugin\x0a','log','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','Where\x20should\x20the\x20plugin\x20be\x20installed?','8WNZQhj','lZUFj','✓\x20Marketplace\x20already\x20added','EwRcj','prompt','plugin','list','success','Would\x20you\x20like\x20to\x20install\x20skills?','ranger-testing/trailhead','419135ZYLHty','46LJQXTJ','PvElM','ranger@trailhead','error','pFAtA','5479551KVKJGR','wantsSkillup','user','lpxNV','UWgbj','✓\x20Ranger\x20skills\x20already\x20installed','trailhead','qdVKy','6471UxlnTw','1448rOHmrs','SKILL.md','966111OpyuAB','project','406hfdzrA','❌\x20Failed\x20to\x20install\x20plugin:','8574MKQRzI','hrcay','lZStZ','Project\x20(shared\x20with\x20team\x20via\x20git)','\x0aYou\x20can\x20install\x20manually\x20with:','⚠\x20Failed\x20to\x20enable\x20plugin:','tYAEI','--scope','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','6241tXmlwn','marketplace','DjIqG','2403920UcqSIY','User\x20(available\x20in\x20all\x20your\x20projects)','gDNDU'];_0xdee5=function(){return _0x5ce4ec;};return _0xdee5();}import{skillup}from'../skillup.js';function _0x4799(_0xda7739,_0x3c7912){_0xda7739=_0xda7739-0xf8;const _0xdee5cc=_0xdee5();let _0x4799ab=_0xdee5cc[_0xda7739];return _0x4799ab;}import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x231058){const _0x385ed7=_0x4799,_0x5d4230={'qdVKy':_0x385ed7(0x101),'DjIqG':function(_0x348a51,_0x2a0702){return _0x348a51(_0x2a0702);},'QKzyG':'.claude','LpSKM':_0x385ed7(0x128),'dXMnZ':'pluginScope','UWgbj':_0x385ed7(0x10b),'pFAtA':_0x385ed7(0x106),'tYAEI':'user','aaecd':function(_0x4847b8,_0xb442d5){return _0x4847b8(_0xb442d5);},'OIzrN':_0x385ed7(0x122),'CRVKC':_0x385ed7(0x10e),'lpxNV':'plugin','zElOK':function(_0x27346a,_0x5f20bf){return _0x27346a(_0x5f20bf);},'EwRcj':'ranger@trailhead','ZglkN':'--scope','ZoDvU':_0x385ed7(0xf8),'kzBOf':_0x385ed7(0xfd),'hrcay':'✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','EGzxG':'already\x20enabled'},_0x5befe4=await isPluginInstalled(_0x385ed7(0x119));if(_0x5befe4)return console['log'](_0x5d4230[_0x385ed7(0x123)]),![];const _0xf8075e=_0x5d4230[_0x385ed7(0x104)](existsSync,join(getProjectRoot(),_0x5d4230['QKzyG']));let _0x3a4d33;if(_0x231058)_0x3a4d33=_0x231058;else{if(_0xf8075e)_0x3a4d33=_0x5d4230['LpSKM'];else{console['log'](_0x385ed7(0x108));const _0x570289=await _0x44676a['prompt']([{'type':_0x385ed7(0x112),'name':_0x5d4230['dXMnZ'],'message':_0x5d4230[_0x385ed7(0x120)],'choices':[{'name':_0x5d4230[_0x385ed7(0x11b)],'value':_0x5d4230[_0x385ed7(0xff)]},{'name':_0x385ed7(0xfc),'value':_0x385ed7(0x128)}],'default':_0x5d4230[_0x385ed7(0xff)]}]);_0x3a4d33=_0x570289['pluginScope'];}}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x3a4d33+'\x20level)...\x0a');const _0x5b09da=await _0x5d4230['aaecd'](isMarketplaceAdded,_0x5d4230['OIzrN']);let _0x598b7a=_0x5b09da;if(_0x5b09da)console[_0x385ed7(0x109)](_0x5d4230['CRVKC']);else{const _0x495d7c=await runClaudeCommand([_0x5d4230[_0x385ed7(0x11f)],_0x385ed7(0x103),'add',_0x385ed7(0x115)]);!_0x495d7c['success']?(console[_0x385ed7(0x11a)]('❌\x20Failed\x20to\x20add\x20marketplace:',_0x495d7c['error']),console[_0x385ed7(0x109)](_0x385ed7(0xfd)),console[_0x385ed7(0x109)]('\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead'),console['log'](_0x385ed7(0x10a)+_0x3a4d33)):_0x598b7a=!![];}if(_0x598b7a){const _0x4f8231=await _0x5d4230['zElOK'](runClaudeCommand,[_0x385ed7(0x111),'install',_0x5d4230[_0x385ed7(0x10f)],_0x5d4230['ZglkN'],_0x3a4d33]);if(!_0x4f8231[_0x385ed7(0x113)])console[_0x385ed7(0x11a)](_0x5d4230['ZoDvU'],_0x4f8231[_0x385ed7(0x11a)]),console['log'](_0x5d4230['kzBOf']),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x3a4d33);else{console['log'](_0x5d4230[_0x385ed7(0xfa)]);const _0xd674c5=[_0x385ed7(0x111),'enable',_0x5d4230['EwRcj']];_0x3a4d33==='project'&&_0xd674c5['push'](_0x385ed7(0x100),_0x5d4230['LpSKM']);const _0x317e33=await runClaudeCommand(_0xd674c5,{'captureOutput':!![]}),_0x252a3e=_0x317e33['output']?.['includes'](_0x5d4230['EGzxG']);!_0x317e33[_0x385ed7(0x113)]&&!_0x252a3e?console[_0x385ed7(0x11a)](_0x385ed7(0xfe),_0x317e33[_0x385ed7(0x11a)]):console[_0x385ed7(0x109)]('✓\x20Claude\x20Code\x20plugin\x20enabled');}}return!![];}export async function ensureClaudeSkills(_0x4154c6){const _0x4afc9d=_0x4799,_0x582072={'OrqgZ':function(_0x123cb2,_0x54e629){return _0x123cb2(_0x54e629);},'kXGLd':function(_0x497358,_0x1b1990,_0x1ef767,_0x335381){return _0x497358(_0x1b1990,_0x1ef767,_0x335381);},'WLyED':_0x4afc9d(0x11e),'gDNDU':function(_0x4df400,_0x194fec){return _0x4df400(_0x194fec);},'lZUFj':_0x4afc9d(0x128),'PvElM':_0x4afc9d(0x121),'lZStZ':function(_0x503716,_0x1a065b){return _0x503716(_0x1a065b);},'MVcsH':_0x4afc9d(0x11d),'knhIL':function(_0x1a57c1,_0x1e8cff){return _0x1a57c1(_0x1e8cff);}},_0x16281b=_0x582072['OrqgZ'](existsSync,_0x582072['kXGLd'](join,getSkillsDir(_0x582072['WLyED']),'ranger',_0x4afc9d(0x126))),_0x5bad1a=_0x582072[_0x4afc9d(0x107)](existsSync,join(getSkillsDir(_0x582072[_0x4afc9d(0x10d)]),'ranger',_0x4afc9d(0x126)));if(_0x16281b||_0x5bad1a)return console['log'](_0x582072[_0x4afc9d(0x118)]),![];const _0x28f9e1=_0x582072['lZStZ'](existsSync,join(getProjectRoot(),'.claude'));let _0x4e73d1=!![];if(_0x4154c6)await _0x582072[_0x4afc9d(0xfb)](skillup,{'autoInstall':_0x4154c6,'suppressUsage':!![]});else{if(_0x28f9e1)await skillup({'autoInstall':_0x582072[_0x4afc9d(0x10d)],'suppressUsage':!![]});else{const _0x5f3612=await _0x44676a[_0x4afc9d(0x110)]([{'type':'confirm','name':_0x582072['MVcsH'],'message':_0x4afc9d(0x114),'default':!![]}]);_0x4e73d1=_0x5f3612['wantsSkillup'],_0x4e73d1&&await _0x582072['knhIL'](skillup,{'suppressUsage':!![]});}}return _0x4e73d1;}
@@ -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(_0x24099c,_0x1bda94){const _0x2cb044=_0x709a,_0x3bb8c3=_0x24099c();while(!![]){try{const _0x2f69dd=parseInt(_0x2cb044(0xbb))/0x1*(parseInt(_0x2cb044(0xa1))/0x2)+parseInt(_0x2cb044(0xbf))/0x3+parseInt(_0x2cb044(0xa8))/0x4*(parseInt(_0x2cb044(0xb5))/0x5)+-parseInt(_0x2cb044(0xba))/0x6*(-parseInt(_0x2cb044(0xb6))/0x7)+parseInt(_0x2cb044(0xaa))/0x8*(-parseInt(_0x2cb044(0xa9))/0x9)+-parseInt(_0x2cb044(0xa6))/0xa+parseInt(_0x2cb044(0xb3))/0xb;if(_0x2f69dd===_0x1bda94)break;else _0x3bb8c3['push'](_0x3bb8c3['shift']());}catch(_0x12d9a2){_0x3bb8c3['push'](_0x3bb8c3['shift']());}}}(_0x637d,0x2719f));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0xebaa65 from'inquirer';function _0x709a(_0x35c783,_0x10485d){_0x35c783=_0x35c783-0x9e;const _0x637d5d=_0x637d();let _0x709ace=_0x637d5d[_0x35c783];return _0x709ace;}import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x3124c8){const _0x11a13d=_0x709a,_0x4f0677={'GNJiF':function(_0x35193f,_0xf81b56,_0x4f063c){return _0x35193f(_0xf81b56,_0x4f063c);},'ngeAg':function(_0x5c181c,_0xbd7af4){return _0x5c181c(_0xbd7af4);},'MafZN':_0x11a13d(0xa4),'GfoCN':'pluginScope','EYHxI':'User\x20(available\x20in\x20all\x20your\x20projects)','NfbIi':_0x11a13d(0x9e),'BPHnS':_0x11a13d(0xb2),'fRzmo':function(_0x4282da,_0x29797d){return _0x4282da(_0x29797d);},'LXhqp':function(_0x4e8c33,_0x4ed72f){return _0x4e8c33(_0x4ed72f);},'KYufK':_0x11a13d(0xad),'TosAn':_0x11a13d(0xa3),'vongv':'✓\x20OpenCode\x20plugin\x20already\x20configured','bkFhS':function(_0x43934a,_0x5a0b2e,_0x2b4732){return _0x43934a(_0x5a0b2e,_0x2b4732);},'xjrjT':function(_0x461021,_0x568b95){return _0x461021(_0x568b95);},'mQGJh':function(_0x3ad22d,_0x324457,_0xa05d15){return _0x3ad22d(_0x324457,_0xa05d15);}},_0x593f22=existsSync(_0x4f0677['GNJiF'](join,_0x4f0677['ngeAg'](getOpencodeConfigDir,'project'),_0x4f0677['MafZN']));let _0x38559e;if(_0x3124c8)_0x38559e=_0x3124c8;else{if(_0x593f22)_0x38559e=_0x11a13d(0xb0);else{console[_0x11a13d(0xa5)](_0x11a13d(0xb9));const _0x185c72=await _0xebaa65['prompt']([{'type':_0x11a13d(0xb8),'name':_0x4f0677['GfoCN'],'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x4f0677['EYHxI'],'value':_0x11a13d(0xb2)},{'name':_0x4f0677['NfbIi'],'value':'project'}],'default':_0x4f0677['BPHnS']}]);_0x38559e=_0x185c72[_0x11a13d(0xbe)];}}const _0x25885b=_0x4f0677[_0x11a13d(0xb4)](join,_0x4f0677['fRzmo'](getOpencodeConfigDir,_0x38559e),'opencode.json'),_0x2104b7='@ranger-testing/opencode-plugin',_0x286ed9=_0x11a13d(0xa7);let _0x2fdae7={};if(_0x4f0677[_0x11a13d(0x9f)](existsSync,_0x25885b))try{const _0x5742f7=await readFile(_0x25885b,_0x4f0677['KYufK']);_0x2fdae7=JSON['parse'](_0x5742f7);}catch(_0x2b9b05){return console[_0x11a13d(0xac)](_0x11a13d(0xb7)),{'configured':![],'scope':_0x38559e,'error':_0x4f0677[_0x11a13d(0xab)],'details':_0x2b9b05};}const _0xd25f96=Array[_0x11a13d(0xa0)](_0x2fdae7[_0x11a13d(0xae)])?_0x2fdae7['plugin']:[];if(_0xd25f96['includes'](_0x2104b7))return console[_0x11a13d(0xa5)](_0x4f0677[_0x11a13d(0xb1)]),{'configured':![],'scope':_0x38559e};return _0x2fdae7[_0x11a13d(0xa2)]=_0x2fdae7['$schema']||_0x286ed9,_0x2fdae7['plugin']=[..._0xd25f96,_0x2104b7],await _0x4f0677[_0x11a13d(0xbd)](mkdir,_0x4f0677[_0x11a13d(0xaf)](getOpencodeConfigDir,_0x38559e),{'recursive':!![]}),await _0x4f0677['mQGJh'](writeFile,_0x25885b,JSON['stringify'](_0x2fdae7,null,0x2)+'\x0a'),console[_0x11a13d(0xa5)](_0x11a13d(0xbc)),{'configured':!![],'scope':_0x38559e};}function _0x637d(){const _0x4aca9a=['99uMDRXc','165784uSjeLc','TosAn','error','utf-8','plugin','xjrjT','project','vongv','user','500335fNcyFQ','GNJiF','10fzFcPj','21MdqBWM','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','list','\x0a📦\x20OpenCode\x20Plugin\x0a','455082oCqlaH','1NNjtzp','✓\x20OpenCode\x20plugin\x20configured','bkFhS','pluginScope','668280xjsTFY','Project\x20(shared\x20with\x20team\x20via\x20git)','LXhqp','isArray','257696PsgVhP','$schema','Failed\x20to\x20read\x20opencode.json','opencode.json','log','2522520rvreAH','https://opencode.ai/config.json','31460pIpVrS'];_0x637d=function(){return _0x4aca9a;};return _0x637d();}
@@ -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(_0x4f3930,_0x4cf2fc){const _0x2ac060=_0x2556,_0x318519=_0x4f3930();while(!![]){try{const _0xe87542=-parseInt(_0x2ac060(0x180))/0x1+-parseInt(_0x2ac060(0x171))/0x2*(-parseInt(_0x2ac060(0x170))/0x3)+-parseInt(_0x2ac060(0x17e))/0x4*(parseInt(_0x2ac060(0x176))/0x5)+-parseInt(_0x2ac060(0x16f))/0x6*(-parseInt(_0x2ac060(0x18b))/0x7)+-parseInt(_0x2ac060(0x16b))/0x8*(-parseInt(_0x2ac060(0x16e))/0x9)+-parseInt(_0x2ac060(0x197))/0xa+parseInt(_0x2ac060(0x177))/0xb*(parseInt(_0x2ac060(0x198))/0xc);if(_0xe87542===_0x4cf2fc)break;else _0x318519['push'](_0x318519['shift']());}catch(_0x4615fe){_0x318519['push'](_0x318519['shift']());}}}(_0x1a3f,0x53772));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';function _0x2556(_0x4130f9,_0x780fe5){_0x4130f9=_0x4130f9-0x169;const _0x1a3f3d=_0x1a3f();let _0x2556a3=_0x1a3f3d[_0x4130f9];return _0x2556a3;}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';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x44f81f){const _0xff5623=_0x2556,_0x11de66={'UltrM':function(_0x986e21){return _0x986e21();},'haxBO':function(_0xa458fe,_0x33f40c,_0x454291){return _0xa458fe(_0x33f40c,_0x454291);},'WPhmS':function(_0x4aa0a6,_0x492ad2){return _0x4aa0a6(_0x492ad2);},'ydOZD':_0xff5623(0x186)},_0x2f6e3e=_0x11de66['UltrM'](getRangerDir),_0x3a62cc=join(_0x2f6e3e,'ci');if(_0x44f81f){const _0x486288=_0x11de66['haxBO'](join,_0x3a62cc,_0x44f81f);return{'name':_0x44f81f,'path':_0x486288};}if(!_0x11de66[_0xff5623(0x16a)](existsSync,_0x3a62cc))throw new Error(_0x11de66[_0xff5623(0x19e)]+_0xff5623(0x182));const _0x5875ed=await _0x11de66['haxBO'](readdir,_0x3a62cc,{'withFileTypes':!![]}),_0x5864d3=_0x5875ed[_0xff5623(0x18e)](_0x191091=>_0x191091['isDirectory']())['map'](_0x148cdd=>_0x148cdd[_0xff5623(0x194)]);if(_0x5864d3[_0xff5623(0x169)]===0x0)throw new Error('No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a'+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');if(_0x5864d3[_0xff5623(0x169)]===0x1){const _0x190e04=_0x5864d3[0x0];return console[_0xff5623(0x185)](_0xff5623(0x16c)+_0x190e04),{'name':_0x190e04,'path':join(_0x3a62cc,_0x190e04)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x5864d3[_0xff5623(0x17b)](',\x20')+'.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.');}async function installPluginNonInteractive(){const _0x5e9be3=_0x2556,_0x1ac4cb={'EyyCj':function(_0x3cc3f8,_0x235750){return _0x3cc3f8(_0x235750);},'SIfGP':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','bnAfl':'Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','rykMR':_0x5e9be3(0x16d),'fNRDH':'✓\x20Marketplace\x20already\x20added','hcUSA':function(_0x459d11,_0x58784c){return _0x459d11(_0x58784c);},'LRIdB':_0x5e9be3(0x183),'vlELF':'marketplace','oTEUS':'Failed\x20to\x20add\x20marketplace:','AhyWZ':'You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','EvMGp':'install','LBsqT':_0x5e9be3(0x19c),'BoNlr':'Failed\x20to\x20install\x20plugin:','DhfFp':'You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project'},_0x4e0775=await _0x1ac4cb[_0x5e9be3(0x17c)](isPluginInstalled,'ranger@trailhead');if(_0x4e0775)return console['log'](_0x1ac4cb[_0x5e9be3(0x184)]),![];console['log'](_0x1ac4cb['bnAfl']);const _0x213954=await isMarketplaceAdded(_0x1ac4cb[_0x5e9be3(0x195)]);let _0x1864d9=_0x213954;if(_0x213954)console['log'](_0x1ac4cb['fNRDH']);else{const _0x334696=await _0x1ac4cb[_0x5e9be3(0x181)](runClaudeCommand,[_0x1ac4cb['LRIdB'],_0x1ac4cb['vlELF'],_0x5e9be3(0x191),'ranger-testing/trailhead']);!_0x334696['success']?(console[_0x5e9be3(0x189)](_0x1ac4cb['oTEUS'],_0x334696[_0x5e9be3(0x189)]),console['log'](_0x1ac4cb['AhyWZ'])):_0x1864d9=!![];}if(_0x1864d9){const _0x4a650e=await runClaudeCommand(['plugin',_0x1ac4cb['EvMGp'],_0x1ac4cb['LBsqT'],'--scope',_0x5e9be3(0x19a)]);!_0x4a650e['success']?(console[_0x5e9be3(0x189)](_0x1ac4cb[_0x5e9be3(0x196)],_0x4a650e['error']),console['log'](_0x1ac4cb['DhfFp'])):console['log'](_0x5e9be3(0x175));}return!![];}function _0x1a3f(){const _0x1e203d=['gTcKO','profile','add','auth.json.enc','skipChromium','name','rykMR','BoNlr','4272570IystrA','492lxbBVb','bWfIu','project','sessions','ranger@trailhead','RgyOr','ydOZD','length','WPhmS','2445224vTnRqv','Auto-detected\x20CI\x20profile:\x20','trailhead','9wssMzC','1087278fLBqlP','3howOmr','777638BOdMHL','chromium','trackPhaseEnd','skills','✓\x20Claude\x20Code\x20plugin\x20installed','8885CgiOAq','27313qFxiCt','trackPhaseStart','fqIha','path','join','EyyCj','No\x20API\x20token\x20available\x20for\x20decryption','140tCKfPC','settings.json','146162NWPpGf','hcUSA','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','plugin','SIfGP','log','No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','✓\x20Active\x20profile:\x20','dir_setup','error','LPjXI','7rDJChg','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','QvuWY','filter'];_0x1a3f=function(){return _0x1e203d;};return _0x1a3f();}export async function setupCi(_0xf74878,_0x475293,_0x5910b9){const _0x5e8b08=_0x2556,_0x4948d0={'lGsQp':'\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','fqIha':'auth','LPjXI':function(_0x4b050f,_0xe10c1e){return _0x4b050f(_0xe10c1e);},'nmLkd':function(_0x46ac8f,_0x1ee16d,_0x3ca796){return _0x46ac8f(_0x1ee16d,_0x3ca796);},'gTcKO':function(_0x4f81aa,_0x40c4b2,_0x4222b9){return _0x4f81aa(_0x40c4b2,_0x4222b9);},'MrSmy':'profile_activate','uFvmS':function(_0xf62db5,_0xbb9fec,_0x4d740b){return _0xf62db5(_0xbb9fec,_0x4d740b);},'cPOHu':_0x5e8b08(0x17f),'bWfIu':'auth.json','RgyOr':_0x5e8b08(0x192),'QvuWY':function(_0x1e54ba,_0x54d591){return _0x1e54ba(_0x54d591);},'PsTBT':function(_0x4b33a4,_0x9329fa,_0x1026bb){return _0x4b33a4(_0x9329fa,_0x1026bb);},'zzSng':'✓\x20Auth\x20state\x20found','Ekjzk':_0x5e8b08(0x174),'Tuucc':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console[_0x5e8b08(0x185)](_0x4948d0['lGsQp']),_0x5910b9?.[_0x5e8b08(0x178)](_0x4948d0['fqIha']),await authenticate(_0xf74878),_0x5910b9?.['trackPhaseEnd'](_0x4948d0[_0x5e8b08(0x179)]),_0x5910b9?.['trackPhaseStart'](_0x5e8b08(0x188));const {path:_0x320da6,installed:_0x3f8e51}=await ensureRangerDir();await _0x4948d0[_0x5e8b08(0x18a)](writeRangerGitignore,_0x320da6);const _0x203257=_0x4948d0['nmLkd'](join,_0x320da6,_0x5e8b08(0x19b));!existsSync(_0x203257)&&await _0x4948d0[_0x5e8b08(0x18f)](mkdir,_0x203257,{'recursive':!![]});_0x5910b9?.['trackPhaseEnd']('dir_setup',{'installed':_0x3f8e51}),_0x5910b9?.['trackPhaseStart']('chromium');let _0x4f6e31=![];_0x475293?.[_0x5e8b08(0x193)]?console['log'](_0x5e8b08(0x18c)):_0x4f6e31=await ensureChromium();_0x5910b9?.[_0x5e8b08(0x173)](_0x5e8b08(0x172),{'installed':_0x4f6e31,'skipped':!!_0x475293?.['skipChromium']}),_0x5910b9?.['trackPhaseStart'](_0x4948d0['MrSmy']);const _0x56b9af=await _0x4948d0[_0x5e8b08(0x18a)](findCiProfile,_0x475293?.[_0x5e8b08(0x190)]);let _0x5734ef=![];_0x475293?.['baseUrl']&&(await _0x4948d0['uFvmS'](mkdir,_0x56b9af['path'],{'recursive':!![]}),await saveSettings(_0x56b9af[_0x5e8b08(0x194)],{'baseUrl':_0x475293['baseUrl'],'headless':!![]}),console['log']('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x475293['baseUrl']),_0x5734ef=!![]);const _0xa58306=join(_0x56b9af[_0x5e8b08(0x17a)],_0x4948d0['cPOHu']);if(!existsSync(_0xa58306)&&!_0x5734ef)throw new Error('CI\x20profile\x20\x22'+_0x56b9af[_0x5e8b08(0x194)]+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x2fd01f=join(_0x56b9af[_0x5e8b08(0x17a)],_0x4948d0[_0x5e8b08(0x199)]),_0x3a1195=join(_0x56b9af[_0x5e8b08(0x17a)],_0x4948d0[_0x5e8b08(0x19d)]),_0x5a13d6=_0x4948d0[_0x5e8b08(0x18a)](existsSync,_0x2fd01f),_0x2a5dd2=existsSync(_0x3a1195);if(_0x2a5dd2)try{const _0x4662d3=await getToken();if(!_0x4662d3)throw new Error(_0x5e8b08(0x17d));const _0x42271c=await _0x4948d0[_0x5e8b08(0x18d)](readFile,_0x3a1195);_0x4948d0['PsTBT'](decrypt,_0x42271c,_0x4662d3),console['log']('✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)');}catch(_0x1b187c){const _0x1c0f17=_0x1b187c instanceof Error?_0x1b187c['message']:String(_0x1b187c);throw new Error('Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22'+_0x56b9af['name']+'\x22:\x20'+_0x1c0f17);}else _0x5a13d6?console['log'](_0x4948d0['zzSng']):console['log']('\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)');await writeActiveProfileName(_0x56b9af[_0x5e8b08(0x194)]),console[_0x5e8b08(0x185)](_0x5e8b08(0x187)+_0x56b9af[_0x5e8b08(0x194)]),_0x5910b9?.['trackPhaseEnd']('profile_activate',{'profileName':_0x56b9af[_0x5e8b08(0x194)],'hasAuth':_0x5a13d6,'hasEncryptedAuth':_0x2a5dd2,'createdSettings':_0x5734ef}),_0x5910b9?.['trackPhaseStart'](_0x5e8b08(0x183));const _0x25be36=await installPluginNonInteractive();_0x5910b9?.['trackPhaseEnd']('plugin',{'installed':_0x25be36}),_0x5910b9?.['trackPhaseStart'](_0x5e8b08(0x174)),await _0x4948d0[_0x5e8b08(0x18a)](skillup,{'autoInstall':'project'}),_0x5910b9?.[_0x5e8b08(0x173)](_0x4948d0['Ekjzk']),console['log'](_0x4948d0['Tuucc']);}