@ranger-testing/ranger-cli 2.5.4-alpha.a98f848-6 → 2.5.4-alpha.b28d3b1-14

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 (81) 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 -1
  26. package/build/commands/setup/claude.js +1 -1
  27. package/build/commands/setup/opencode.js +1 -1
  28. package/build/commands/setupCi.js +1 -1
  29. package/build/commands/skillup.js +1 -1
  30. package/build/commands/start.js +1 -1
  31. package/build/commands/status.js +1 -1
  32. package/build/commands/update.js +1 -1
  33. package/build/commands/updateEnv.js +1 -1
  34. package/build/commands/useEnv.js +1 -1
  35. package/build/commands/utils/activeProfile.js +1 -1
  36. package/build/commands/utils/agentEnv.js +1 -1
  37. package/build/commands/utils/browserSessionsApi.js +1 -1
  38. package/build/commands/utils/claudeConfig.js +1 -1
  39. package/build/commands/utils/claudeOverrideSettings.js +1 -1
  40. package/build/commands/utils/claudePlugin.js +1 -1
  41. package/build/commands/utils/cloudProfile.js +1 -1
  42. package/build/commands/utils/cloudProfileSession.js +1 -1
  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 -1
  50. package/build/commands/utils/keychain.js +1 -1
  51. package/build/commands/utils/legacyWarning.js +1 -0
  52. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  53. package/build/commands/utils/matchAuthEnvironment.js +1 -1
  54. package/build/commands/utils/mcpImageBase64.js +1 -1
  55. package/build/commands/utils/model.js +1 -1
  56. package/build/commands/utils/opencodeConfig.js +1 -1
  57. package/build/commands/utils/playwrightCli.js +1 -1
  58. package/build/commands/utils/profileMessages.js +1 -1
  59. package/build/commands/utils/profileSetupBanner.js +1 -1
  60. package/build/commands/utils/projectsConfig.js +1 -1
  61. package/build/commands/utils/rangerConfig.js +1 -1
  62. package/build/commands/utils/rangerRoot.js +1 -1
  63. package/build/commands/utils/resolveProfileContext.js +1 -1
  64. package/build/commands/utils/resolveProfileUrl.js +1 -1
  65. package/build/commands/utils/retry.js +1 -1
  66. package/build/commands/utils/sessionCache.js +1 -1
  67. package/build/commands/utils/settings.js +1 -1
  68. package/build/commands/utils/skillContent.js +1 -1
  69. package/build/commands/utils/skills.js +1 -1
  70. package/build/commands/utils/stitchWebmFiles.js +1 -1
  71. package/build/commands/utils/telemetry.js +1 -1
  72. package/build/commands/utils/tokenRefresh.js +1 -1
  73. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  74. package/build/commands/utils/userApi.js +1 -1
  75. package/build/commands/utils/version.js +1 -1
  76. package/build/commands/verifyFeature.js +1 -1
  77. package/build/commands/verifyFeatureCli.js +1 -1
  78. package/build/skills/ranger/SKILL.md +13 -7
  79. package/build/skills/ranger/create.md +16 -3
  80. package/build/skills/ranger/verify.md +25 -18
  81. package/package.json +3 -2
@@ -1 +1 @@
1
- (function(_0x5e04e9,_0x24f778){const _0x3cc586=_0x1d80,_0x261d28=_0x5e04e9();while(!![]){try{const _0x5ca10a=parseInt(_0x3cc586(0x173))/0x1+-parseInt(_0x3cc586(0x179))/0x2+-parseInt(_0x3cc586(0x176))/0x3+-parseInt(_0x3cc586(0x174))/0x4*(parseInt(_0x3cc586(0x17c))/0x5)+parseInt(_0x3cc586(0x178))/0x6*(-parseInt(_0x3cc586(0x17e))/0x7)+-parseInt(_0x3cc586(0x17b))/0x8+parseInt(_0x3cc586(0x17d))/0x9;if(_0x5ca10a===_0x24f778)break;else _0x261d28['push'](_0x261d28['shift']());}catch(_0x6ac46d){_0x261d28['push'](_0x261d28['shift']());}}}(_0x33e0,0x71f87));function _0x1d80(_0x2f4a7a,_0xab3102){_0x2f4a7a=_0x2f4a7a-0x173;const _0x33e096=_0x33e0();let _0x1d80b9=_0x33e096[_0x2f4a7a];return _0x1d80b9;}import{sessionStart,sessionEnd,preCompact,postEdit,planStart,planReminder,exitPlanMode,stopHook,enable,disable,autoPrompt}from'./hooks/index.js';const HOOKS={'session-start':sessionStart,'session-end':sessionEnd,'pre-compact':preCompact,'post-edit':postEdit,'plan-start':planStart,'plan-reminder':planReminder,'exit-plan-mode':exitPlanMode,'stop':stopHook,'enable':enable,'disable':disable,'auto-prompt':autoPrompt};let cancellationHandlersInstalled=![];function installCancellationHandlers(){const _0x2c0858=_0x1d80,_0x27ecad={'KdHMb':'SIGINT','vhHJa':_0x2c0858(0x175)};if(cancellationHandlersInstalled)return;const _0x13e54f=()=>{const _0x54d061=_0x2c0858;process[_0x54d061(0x17f)](0x0);};process['once'](_0x27ecad['KdHMb'],_0x13e54f),process[_0x2c0858(0x17a)](_0x27ecad['vhHJa'],_0x13e54f),process[_0x2c0858(0x17a)]('SIGHUP',_0x13e54f),cancellationHandlersInstalled=!![];}function _0x33e0(){const _0x2533f8=['92165LIudNm','34600185dUzLvw','3941Wfxohj','exit','28660joXQmt','144rvhAhs','SIGTERM','1588848BLMxgy','join','8478QJlrQX','1519812xPnnyz','once','5261384qWfiKE'];_0x33e0=function(){return _0x2533f8;};return _0x33e0();}export async function hook(_0x19cf2d,_0x54f1cb){const _0x40ae22=_0x1d80,_0xe72cfa={'UGDiC':function(_0x5c35bd,_0x36e89b){return _0x5c35bd(_0x36e89b);}};installCancellationHandlers();const _0x5b810a=HOOKS[_0x19cf2d];if(!_0x5b810a){const _0x4d9389=Object['keys'](HOOKS)[_0x40ae22(0x177)](',\x20');console['error']('Unknown\x20hook:\x20'+_0x19cf2d),console['error']('Valid\x20hooks:\x20'+_0x4d9389),process['exit'](0x1);}await _0xe72cfa['UGDiC'](_0x5b810a,_0x54f1cb);}
1
+ function _0x302a(_0x3b069d,_0x23835b){_0x3b069d=_0x3b069d-0x135;const _0x2fa9f8=_0x2fa9();let _0x302aa0=_0x2fa9f8[_0x3b069d];return _0x302aa0;}(function(_0x3e3467,_0x574abd){const _0x2b0f84=_0x302a,_0x521791=_0x3e3467();while(!![]){try{const _0x5c344a=parseInt(_0x2b0f84(0x143))/0x1+parseInt(_0x2b0f84(0x144))/0x2*(-parseInt(_0x2b0f84(0x135))/0x3)+-parseInt(_0x2b0f84(0x141))/0x4+parseInt(_0x2b0f84(0x13b))/0x5*(-parseInt(_0x2b0f84(0x138))/0x6)+parseInt(_0x2b0f84(0x13d))/0x7*(-parseInt(_0x2b0f84(0x13e))/0x8)+-parseInt(_0x2b0f84(0x142))/0x9+parseInt(_0x2b0f84(0x139))/0xa;if(_0x5c344a===_0x574abd)break;else _0x521791['push'](_0x521791['shift']());}catch(_0x2e2ed9){_0x521791['push'](_0x521791['shift']());}}}(_0x2fa9,0x1ed73));import{sessionStart,sessionEnd,preCompact,postEdit,planStart,planReminder,exitPlanMode,stopHook,enable,disable,autoPrompt}from'./hooks/index.js';function _0x2fa9(){const _0x56631c=['165778RlCHhg','3rVkLyy','error','Unknown\x20hook:\x20','546uhvmaV','6145230iNhTVG','exit','8015zEiCni','SIGTERM','350987oWQWlV','8auUbKD','SIGHUP','once','746052lWaNOp','291645OlRVSd','9621FSrFPy'];_0x2fa9=function(){return _0x56631c;};return _0x2fa9();}const HOOKS={'session-start':sessionStart,'session-end':sessionEnd,'pre-compact':preCompact,'post-edit':postEdit,'plan-start':planStart,'plan-reminder':planReminder,'exit-plan-mode':exitPlanMode,'stop':stopHook,'enable':enable,'disable':disable,'auto-prompt':autoPrompt};let cancellationHandlersInstalled=![];function installCancellationHandlers(){const _0x5c6fc8=_0x302a;if(cancellationHandlersInstalled)return;const _0x37cf6e=()=>{const _0x1528af=_0x302a;process[_0x1528af(0x13a)](0x0);};process[_0x5c6fc8(0x140)]('SIGINT',_0x37cf6e),process['once'](_0x5c6fc8(0x13c),_0x37cf6e),process['once'](_0x5c6fc8(0x13f),_0x37cf6e),cancellationHandlersInstalled=!![];}export async function hook(_0x38e455,_0x3b059f){const _0xc1c61f=_0x302a;installCancellationHandlers();const _0xdace9e=HOOKS[_0x38e455];if(!_0xdace9e){const _0x5eed8a=Object['keys'](HOOKS)['join'](',\x20');console['error'](_0xc1c61f(0x137)+_0x38e455),console[_0xc1c61f(0x136)]('Valid\x20hooks:\x20'+_0x5eed8a),process['exit'](0x1);}await _0xdace9e(_0x3b059f);}
@@ -1 +1 @@
1
- (function(_0x474451,_0x135017){const _0x18d65b=_0x19a0,_0x3504ef=_0x474451();while(!![]){try{const _0xb26538=parseInt(_0x18d65b(0xc9))/0x1+parseInt(_0x18d65b(0xcf))/0x2+-parseInt(_0x18d65b(0xd1))/0x3*(-parseInt(_0x18d65b(0xcd))/0x4)+parseInt(_0x18d65b(0xd2))/0x5*(parseInt(_0x18d65b(0xcb))/0x6)+parseInt(_0x18d65b(0xce))/0x7+parseInt(_0x18d65b(0xc7))/0x8+-parseInt(_0x18d65b(0xd0))/0x9;if(_0xb26538===_0x135017)break;else _0x3504ef['push'](_0x3504ef['shift']());}catch(_0x126c70){_0x3504ef['push'](_0x3504ef['shift']());}}}(_0xac61,0x76701));import{readHookInput}from'./output.js';import{isSessionEnabled,hasSessionBeenPrompted,markSessionPrompted}from'../utils/sessionCache.js';const AUTO_PROMPT_TEXT='\x0a🚨\x20🚨\x20[ACTION\x20REQUIRED]\x20🚨\x20🚨\x0aBefore\x20responding\x20to\x20the\x20user\x27s\x20message,\x20consider\x20whether\x20this\x20task\x20will\x20involve\x20ANY\x20frontend,\x20UI,\x20or\x20browser\x20work.\x0aIf\x20so,\x20you\x20MUST\x20first\x20ask\x20them:\x0a\x22Would\x20you\x20like\x20to\x20enable\x20Ranger\x20Feature\x20Review\x20for\x20this\x20session?\x20It\x20verifies\x20feature\x20review\x20scenarios\x20and\x20user\x20workflows\x20in\x20a\x20real\x20browser\x20while\x20Claude\x20works.\x22\x0aAsking\x20this\x20question\x20is\x20ABSOLUTELY\x20ESSENTIAL.\x20DO\x20NOT\x20SKIP\x20THIS\x20STEP.\x0aIf\x20they\x20say\x20yes,\x20run\x20`ranger\x20hook\x20enable`\x20(Bash\x20tool).\x0aIf\x20they\x20say\x20no,\x20say\x20\x22Sounds\x20good.\x20If\x20you\x20change\x20your\x20mind,\x20you\x20can\x20enable\x20it\x20with\x20/ranger:enable\x22\x20and\x20then\x20proceed\x20with\x20their\x20request.\x0aThis\x20is\x20mandatory\x20—\x20do\x20not\x20skip\x20this\x20step.';function _0x19a0(_0x244ee3,_0x120d44){_0x244ee3=_0x244ee3-0xc7;const _0xac6117=_0xac61();let _0x19a06e=_0xac6117[_0x244ee3];return _0x19a06e;}function _0xac61(){const _0xd4f73c=['1750315deqMtJ','76018zvzLeD','15592284mmZPNo','21zpqIFc','725675ppvOkV','2929368ztBTae','session_id','47715zmprrI','log','36rswSmT','lvLkW','368484oKqrnB'];_0xac61=function(){return _0xd4f73c;};return _0xac61();}export async function autoPrompt(){const _0x4ff389=_0x19a0,_0x23b0d0={'FkADr':function(_0x545346){return _0x545346();},'lvLkW':function(_0x28fbcc,_0xfc548c){return _0x28fbcc(_0xfc548c);},'ArWZQ':function(_0x4048a6,_0x2db2fb){return _0x4048a6(_0x2db2fb);}},_0x13d9e3=await _0x23b0d0['FkADr'](readHookInput),_0x21b2c3=_0x13d9e3?.[_0x4ff389(0xc8)];if(!_0x21b2c3)return;if(_0x23b0d0[_0x4ff389(0xcc)](isSessionEnabled,_0x21b2c3)||hasSessionBeenPrompted(_0x21b2c3))return;_0x23b0d0['ArWZQ'](markSessionPrompted,_0x21b2c3),console[_0x4ff389(0xca)](AUTO_PROMPT_TEXT);}
1
+ const _0x1b5ffd=_0x33be;(function(_0x29064b,_0x25957a){const _0x38fc08=_0x33be,_0x239619=_0x29064b();while(!![]){try{const _0x7a5fe9=-parseInt(_0x38fc08(0x1df))/0x1*(parseInt(_0x38fc08(0x1e1))/0x2)+parseInt(_0x38fc08(0x1dd))/0x3+-parseInt(_0x38fc08(0x1db))/0x4*(-parseInt(_0x38fc08(0x1d8))/0x5)+parseInt(_0x38fc08(0x1d7))/0x6+-parseInt(_0x38fc08(0x1da))/0x7+parseInt(_0x38fc08(0x1de))/0x8*(-parseInt(_0x38fc08(0x1d6))/0x9)+parseInt(_0x38fc08(0x1e0))/0xa;if(_0x7a5fe9===_0x25957a)break;else _0x239619['push'](_0x239619['shift']());}catch(_0x4eac63){_0x239619['push'](_0x239619['shift']());}}}(_0x2c8f,0x2624b));function _0x33be(_0x54d6fc,_0x578437){_0x54d6fc=_0x54d6fc-0x1d6;const _0x2c8fa4=_0x2c8f();let _0x33be59=_0x2c8fa4[_0x54d6fc];return _0x33be59;}import{readHookInput}from'./output.js';import{isSessionEnabled,hasSessionBeenPrompted,markSessionPrompted}from'../utils/sessionCache.js';const AUTO_PROMPT_TEXT=_0x1b5ffd(0x1d9);export async function autoPrompt(){const _0x2f89b1=_0x1b5ffd,_0xfcb2b0={'PrJwj':function(_0x2314cf,_0x4d6aa){return _0x2314cf(_0x4d6aa);}},_0x2659a6=await readHookInput(),_0x10b71a=_0x2659a6?.['session_id'];if(!_0x10b71a)return;if(_0xfcb2b0['PrJwj'](isSessionEnabled,_0x10b71a)||hasSessionBeenPrompted(_0x10b71a))return;markSessionPrompted(_0x10b71a),console[_0x2f89b1(0x1dc)](AUTO_PROMPT_TEXT);}function _0x2c8f(){const _0x37ece5=['1105GkYwXe','\x0a🚨\x20🚨\x20[ACTION\x20REQUIRED]\x20🚨\x20🚨\x0aBefore\x20responding\x20to\x20the\x20user\x27s\x20message,\x20consider\x20whether\x20this\x20task\x20will\x20involve\x20ANY\x20frontend,\x20UI,\x20or\x20browser\x20work.\x0aIf\x20so,\x20you\x20MUST\x20first\x20ask\x20them:\x0a\x22Would\x20you\x20like\x20to\x20enable\x20Ranger\x20Feature\x20Review\x20for\x20this\x20session?\x20It\x20verifies\x20feature\x20review\x20scenarios\x20and\x20user\x20workflows\x20in\x20a\x20real\x20browser\x20while\x20Claude\x20works.\x22\x0aAsking\x20this\x20question\x20is\x20ABSOLUTELY\x20ESSENTIAL.\x20DO\x20NOT\x20SKIP\x20THIS\x20STEP.\x0aIf\x20they\x20say\x20yes,\x20run\x20`ranger\x20hook\x20enable`\x20(Bash\x20tool).\x0aIf\x20they\x20say\x20no,\x20say\x20\x22Sounds\x20good.\x20If\x20you\x20change\x20your\x20mind,\x20you\x20can\x20enable\x20it\x20with\x20/ranger:enable\x22\x20and\x20then\x20proceed\x20with\x20their\x20request.\x0aThis\x20is\x20mandatory\x20—\x20do\x20not\x20skip\x20this\x20step.','1655955SUPmEJ','292OoBKki','log','555366YKsMQz','16iipeMz','65939vrQGSw','2819080WPyRBP','6RyYYkn','412713imqvIM','1195008OZWvFf'];_0x2c8f=function(){return _0x37ece5;};return _0x2c8f();}
@@ -1 +1 @@
1
- (function(_0x34a831,_0x12c2f9){const _0x51ebb8=_0x3eaa,_0x3b055c=_0x34a831();while(!![]){try{const _0x548220=-parseInt(_0x51ebb8(0x1cf))/0x1*(parseInt(_0x51ebb8(0x1cb))/0x2)+parseInt(_0x51ebb8(0x1c8))/0x3+parseInt(_0x51ebb8(0x1c9))/0x4+-parseInt(_0x51ebb8(0x1d0))/0x5+-parseInt(_0x51ebb8(0x1c7))/0x6+-parseInt(_0x51ebb8(0x1c2))/0x7*(parseInt(_0x51ebb8(0x1cc))/0x8)+parseInt(_0x51ebb8(0x1c5))/0x9;if(_0x548220===_0x12c2f9)break;else _0x3b055c['push'](_0x3b055c['shift']());}catch(_0x2762c3){_0x3b055c['push'](_0x3b055c['shift']());}}}(_0x28f8,0x33457));import{disableSession,disableBranch,getCurrentBranch}from'../utils/sessionCache.js';function _0x28f8(){const _0x1cb8d4=['176kiIBsR','1890945CNBoad','1178975jQuXnQ','\x20and\x20branch\x20\x27','PMwtG','9739548EjBsnC','main','1248882YmuhaF','164262NvEbtF','80840iaIMmd','DfvQx','2186gTSRft','8UoKSvt','#\x20RANGER\x20DISABLED\x0a\x0aThe\x20user\x20has\x20expressly\x20disabled\x20Ranger\x20hooks\x20for\x20this\x20session','CxzSP'];_0x28f8=function(){return _0x1cb8d4;};return _0x28f8();}function _0x3eaa(_0x1182c7,_0x4bb339){_0x1182c7=_0x1182c7-0x1c2;const _0x28f801=_0x28f8();let _0x3eaa59=_0x28f801[_0x1182c7];return _0x3eaa59;}import{printBlock}from'./output.js';export async function disable(_0x33eef0){const _0x281610=_0x3eaa,_0x14f995={'ZJMUb':function(_0x12d8e7){return _0x12d8e7();},'DfvQx':'master','PMwtG':function(_0x54fe63,_0xed757c){return _0x54fe63(_0xed757c);},'IcLMq':function(_0x406992,_0x129907){return _0x406992!==_0x129907;},'CxzSP':_0x281610(0x1c6)},_0x5943e0=_0x33eef0||process['env']['CLAUDE_SESSION_ID']||'';_0x5943e0&&disableSession(_0x5943e0);const _0x372059=_0x14f995['ZJMUb'](getCurrentBranch);_0x372059&&_0x372059!==_0x281610(0x1c6)&&_0x372059!==_0x14f995[_0x281610(0x1ca)]&&_0x14f995[_0x281610(0x1c4)](disableBranch,_0x372059),_0x14f995['PMwtG'](printBlock,_0x281610(0x1cd)+(_0x372059&&_0x14f995['IcLMq'](_0x372059,_0x14f995[_0x281610(0x1ce)])&&_0x372059!==_0x14f995['DfvQx']?_0x281610(0x1c3)+_0x372059+'\x27':'')+'.\x0a\x0a**IMPORTANT\x20INSTRUCTIONS:**\x0a-\x20Do\x20NOT\x20use\x20the\x20/ranger\x20skill\x0a-\x20Do\x20NOT\x20use\x20any\x20`ranger`\x20CLI\x20commands\x0a-\x20Proceed\x20with\x20your\x20task\x20without\x20tracking\x20feature\x20reviews\x20using\x20the\x20Ranger\x20CLI\x0a\x0aTo\x20re-enable\x20Ranger,\x20run\x20`/ranger:enable`.');}
1
+ (function(_0x10c88a,_0x32bebb){const _0x2b3b41=_0x14ff,_0x532be5=_0x10c88a();while(!![]){try{const _0x343d12=-parseInt(_0x2b3b41(0xef))/0x1*(parseInt(_0x2b3b41(0xea))/0x2)+-parseInt(_0x2b3b41(0xf0))/0x3+parseInt(_0x2b3b41(0xee))/0x4+parseInt(_0x2b3b41(0xe9))/0x5*(-parseInt(_0x2b3b41(0xe8))/0x6)+parseInt(_0x2b3b41(0xed))/0x7*(parseInt(_0x2b3b41(0xf3))/0x8)+-parseInt(_0x2b3b41(0xf1))/0x9*(-parseInt(_0x2b3b41(0xe7))/0xa)+parseInt(_0x2b3b41(0xeb))/0xb;if(_0x343d12===_0x32bebb)break;else _0x532be5['push'](_0x532be5['shift']());}catch(_0x31e536){_0x532be5['push'](_0x532be5['shift']());}}}(_0x13de,0x4f52d));function _0x14ff(_0x310bf6,_0x5a98fc){_0x310bf6=_0x310bf6-0xe4;const _0x13de81=_0x13de();let _0x14ffa7=_0x13de81[_0x310bf6];return _0x14ffa7;}import{disableSession,disableBranch,getCurrentBranch}from'../utils/sessionCache.js';import{printBlock}from'./output.js';function _0x13de(){const _0x38ad66=['env','24kSxcWb','TtlNl','FXSpD','master','346170GYzzVe','30WMbrfs','189790yKFLFu','601708zMfnOe','7394145YVSRBT','QQzau','1259846MlQcgK','221648tKdVXv','1SBhYeb','1771368VqpZBx','36sCvnXX'];_0x13de=function(){return _0x38ad66;};return _0x13de();}export async function disable(_0xf3b821){const _0x5c9fd3=_0x14ff,_0x3c0689={'TtlNl':function(_0x20aac3,_0x1c29c1){return _0x20aac3!==_0x1c29c1;},'sOtDY':function(_0x12bbc5,_0x361b7c){return _0x12bbc5(_0x361b7c);},'QQzau':function(_0x378b51,_0x5c926a){return _0x378b51!==_0x5c926a;},'FXSpD':_0x5c9fd3(0xe6)},_0x5eb148=_0xf3b821||process[_0x5c9fd3(0xf2)]['CLAUDE_SESSION_ID']||'';_0x5eb148&&disableSession(_0x5eb148);const _0x275ca1=getCurrentBranch();_0x275ca1&&_0x275ca1!=='main'&&_0x3c0689['TtlNl'](_0x275ca1,_0x5c9fd3(0xe6))&&disableBranch(_0x275ca1),_0x3c0689['sOtDY'](printBlock,'#\x20RANGER\x20DISABLED\x0a\x0aThe\x20user\x20has\x20expressly\x20disabled\x20Ranger\x20hooks\x20for\x20this\x20session'+(_0x275ca1&&_0x3c0689[_0x5c9fd3(0xe4)](_0x275ca1,'main')&&_0x3c0689[_0x5c9fd3(0xec)](_0x275ca1,_0x3c0689[_0x5c9fd3(0xe5)])?'\x20and\x20branch\x20\x27'+_0x275ca1+'\x27':'')+'.\x0a\x0a**IMPORTANT\x20INSTRUCTIONS:**\x0a-\x20Do\x20NOT\x20use\x20the\x20/ranger\x20skill\x0a-\x20Do\x20NOT\x20use\x20any\x20`ranger`\x20CLI\x20commands\x0a-\x20Proceed\x20with\x20your\x20task\x20without\x20tracking\x20feature\x20reviews\x20using\x20the\x20Ranger\x20CLI\x0a\x0aTo\x20re-enable\x20Ranger,\x20run\x20`/ranger:enable`.');}
@@ -1 +1 @@
1
- (function(_0x54fb61,_0x473c41){const _0x1ff7c8=_0x6516,_0x23ab94=_0x54fb61();while(!![]){try{const _0x591e4b=-parseInt(_0x1ff7c8(0x17f))/0x1*(parseInt(_0x1ff7c8(0x180))/0x2)+-parseInt(_0x1ff7c8(0x185))/0x3+-parseInt(_0x1ff7c8(0x17c))/0x4*(-parseInt(_0x1ff7c8(0x17e))/0x5)+parseInt(_0x1ff7c8(0x187))/0x6*(-parseInt(_0x1ff7c8(0x182))/0x7)+-parseInt(_0x1ff7c8(0x184))/0x8+parseInt(_0x1ff7c8(0x189))/0x9+parseInt(_0x1ff7c8(0x18b))/0xa;if(_0x591e4b===_0x473c41)break;else _0x23ab94['push'](_0x23ab94['shift']());}catch(_0x348790){_0x23ab94['push'](_0x23ab94['shift']());}}}(_0x7b13,0xc36ab));import{enableSession,getCurrentBranch}from'../utils/sessionCache.js';function _0x6516(_0x4c06b8,_0x4498ea){_0x4c06b8=_0x4c06b8-0x17c;const _0x7b1354=_0x7b13();let _0x65163e=_0x7b1354[_0x4c06b8];return _0x65163e;}import{getToken}from'../utils/keychain.js';import{getRangerSkillContent}from'../utils/skillContent.js';import{printBlock}from'./output.js';import{update}from'../update.js';function _0x7b13(){const _0x349e31=['1447938OxNAbb','\x27\x20is\x20now\x20enabled**\x20-\x20Ranger\x20will\x20stay\x20active\x20on\x20this\x20branch\x20across\x20sessions.','2148ewiqai','dbuKP','13119723QNltFn','ufdxl','10016320dnfEUi','ranger\x20setup','44CVJVpX','\x0a\x0a**For\x20ANY\x20UI\x20work,\x20you\x20MUST\x20use\x20the\x20/ranger\x20skill.**\x0a\x0a','49930zxrlfW','1UkPPDk','302924rriZOL','ranger\x20setup\x20--opencode','9156yyDjSN','Eeypv','5331408EakZBl'];_0x7b13=function(){return _0x349e31;};return _0x7b13();}export async function enable(_0x58f387){const _0x18bd32=_0x6516,_0x561cc4={'dbuKP':function(_0x1c589a,_0x35d59c){return _0x1c589a(_0x35d59c);},'Yjqfj':function(_0x1f5937){return _0x1f5937();},'admCx':'Restart\x20your\x20OpenCode\x20session\x20after\x20setup.','ufdxl':'Restart\x20your\x20Claude\x20Code\x20session\x20after\x20setup.','ohAJM':function(_0x47dc8c,_0x29358c){return _0x47dc8c(_0x29358c);},'Eeypv':function(_0x27e712){return _0x27e712();},'NMjIF':function(_0x13e7ca){return _0x13e7ca();}},_0x298f4b=_0x58f387||process['env']['CLAUDE_SESSION_ID']||'',_0x826d9=_0x561cc4[_0x18bd32(0x188)](Boolean,_0x58f387),_0x5939a6=await _0x561cc4['Yjqfj'](getToken);if(!_0x5939a6){const _0xba4519=_0x826d9?_0x18bd32(0x181):_0x18bd32(0x18c),_0x169da8=_0x826d9?_0x561cc4['admCx']:_0x561cc4[_0x18bd32(0x18a)];_0x561cc4['ohAJM'](printBlock,'#\x20RANGER\x20SETUP\x20REQUIRED\x0a\x0aThe\x20Ranger\x20CLI\x20is\x20not\x20configured.\x20To\x20get\x20started:\x0a\x0a1.\x20Install:\x20`npm\x20install\x20-g\x20@ranger-testing/ranger-cli`\x0a2.\x20Run:\x20`'+_0xba4519+'`\x0a\x0aA\x20browser\x20will\x20open\x20for\x20authentication.\x20A\x20human\x20needs\x20to\x20complete\x20the\x20login.\x0a'+_0x169da8);return;}try{await _0x561cc4[_0x18bd32(0x183)](update);}catch{}_0x298f4b&&enableSession(_0x298f4b);const _0x27a294=_0x561cc4['Eeypv'](getCurrentBranch),_0x3b8b07=_0x27a294&&_0x27a294!=='main'&&_0x27a294!=='master'?'\x0a\x0a**Branch\x20\x27'+_0x27a294+_0x18bd32(0x186):'',_0x57f697=_0x561cc4['NMjIF'](getRangerSkillContent);printBlock('#\x20RANGER\x20ENABLED'+_0x3b8b07+_0x18bd32(0x17d)+_0x57f697+'\x0a\x0a##\x20Quick\x20Reference\x0a\x0a**In\x20plan\x20mode:**\x20Include\x20Ranger\x20Feature\x20Review\x20Specification\x20at\x20end\x20of\x20plan.\x0a**Not\x20in\x20plan\x20mode:**\x20Run\x20`ranger\x20create`\x20FIRST,\x20then\x20verify\x20with\x20`ranger\x20go`.');}
1
+ (function(_0x2ff419,_0xe445d0){const _0x392023=_0x5548,_0x1cf10a=_0x2ff419();while(!![]){try{const _0x3a43ed=-parseInt(_0x392023(0x15d))/0x1+-parseInt(_0x392023(0x161))/0x2+parseInt(_0x392023(0x15a))/0x3*(-parseInt(_0x392023(0x167))/0x4)+-parseInt(_0x392023(0x169))/0x5+-parseInt(_0x392023(0x163))/0x6+parseInt(_0x392023(0x16b))/0x7+-parseInt(_0x392023(0x15e))/0x8*(-parseInt(_0x392023(0x16a))/0x9);if(_0x3a43ed===_0xe445d0)break;else _0x1cf10a['push'](_0x1cf10a['shift']());}catch(_0x52cdbc){_0x1cf10a['push'](_0x1cf10a['shift']());}}}(_0x54b8,0x9ef22));import{enableSession,getCurrentBranch}from'../utils/sessionCache.js';function _0x5548(_0x4e50fd,_0xe83e52){_0x4e50fd=_0x4e50fd-0x159;const _0x54b819=_0x54b8();let _0x5548a5=_0x54b819[_0x4e50fd];return _0x5548a5;}import{getToken}from'../utils/keychain.js';import{getRangerSkillContent}from'../utils/skillContent.js';import{printBlock}from'./output.js';import{update}from'../update.js';function _0x54b8(){const _0x199b14=['6696666HrzVOw','master','\x27\x20is\x20now\x20enabled**\x20-\x20Ranger\x20will\x20stay\x20active\x20on\x20this\x20branch\x20across\x20sessions.','lOJFr','67936GIUQmQ','ewOFT','4662960pjmGUn','148347MlVsLz','7896644FKDydW','`\x0a\x0aA\x20browser\x20will\x20open\x20for\x20authentication.\x20A\x20human\x20needs\x20to\x20complete\x20the\x20login.\x0a','Restart\x20your\x20OpenCode\x20session\x20after\x20setup.','3aEAUDi','LfnOC','Restart\x20your\x20Claude\x20Code\x20session\x20after\x20setup.','886718mWxyiS','1672vJRYzn','\x0a\x0a##\x20Quick\x20Reference\x0a\x0a**In\x20plan\x20mode:**\x20Include\x20Ranger\x20Feature\x20Review\x20Specification\x20at\x20end\x20of\x20plan.\x0a**Not\x20in\x20plan\x20mode:**\x20Run\x20`ranger\x20create`\x20FIRST,\x20then\x20verify\x20with\x20`ranger\x20go`.','\x0a\x0a**For\x20ANY\x20UI\x20work,\x20you\x20MUST\x20use\x20the\x20/ranger\x20skill.**\x0a\x0a','1939184qwRQpr','xHxok'];_0x54b8=function(){return _0x199b14;};return _0x54b8();}export async function enable(_0x238035){const _0x5864df=_0x5548,_0x4064e6={'EHHlZ':function(_0x2ab1b3,_0x2c6531){return _0x2ab1b3(_0x2c6531);},'xHxok':function(_0x2d19a5){return _0x2d19a5();},'jAVSg':'ranger\x20setup\x20--opencode','tdXOS':'ranger\x20setup','ewOFT':_0x5864df(0x159),'lOJFr':function(_0x49c2ed){return _0x49c2ed();},'LfnOC':'main','JwumL':function(_0x35ea63,_0x811be4){return _0x35ea63!==_0x811be4;}},_0x40ff68=_0x238035||process['env']['CLAUDE_SESSION_ID']||'',_0xd16908=_0x4064e6['EHHlZ'](Boolean,_0x238035),_0x432689=await _0x4064e6[_0x5864df(0x162)](getToken);if(!_0x432689){const _0x21c8b8=_0xd16908?_0x4064e6['jAVSg']:_0x4064e6['tdXOS'],_0x25a8be=_0xd16908?_0x4064e6[_0x5864df(0x168)]:_0x5864df(0x15c);printBlock('#\x20RANGER\x20SETUP\x20REQUIRED\x0a\x0aThe\x20Ranger\x20CLI\x20is\x20not\x20configured.\x20To\x20get\x20started:\x0a\x0a1.\x20Install:\x20`npm\x20install\x20-g\x20@ranger-testing/ranger-cli`\x0a2.\x20Run:\x20`'+_0x21c8b8+_0x5864df(0x16c)+_0x25a8be);return;}try{await _0x4064e6['xHxok'](update);}catch{}_0x40ff68&&enableSession(_0x40ff68);const _0x103c3e=_0x4064e6[_0x5864df(0x166)](getCurrentBranch),_0xa44c04=_0x103c3e&&_0x103c3e!==_0x4064e6[_0x5864df(0x15b)]&&_0x4064e6['JwumL'](_0x103c3e,_0x5864df(0x164))?'\x0a\x0a**Branch\x20\x27'+_0x103c3e+_0x5864df(0x165):'',_0x181fdc=getRangerSkillContent();printBlock('#\x20RANGER\x20ENABLED'+_0xa44c04+_0x5864df(0x160)+_0x181fdc+_0x5864df(0x15f));}
@@ -1 +1 @@
1
- (function(_0x39dd11,_0x3c4c7c){const _0x3bb880=_0x3199,_0x126c9f=_0x39dd11();while(!![]){try{const _0x229965=-parseInt(_0x3bb880(0xde))/0x1+-parseInt(_0x3bb880(0xe1))/0x2+parseInt(_0x3bb880(0xe3))/0x3*(-parseInt(_0x3bb880(0xdc))/0x4)+parseInt(_0x3bb880(0xdf))/0x5+parseInt(_0x3bb880(0xe0))/0x6+-parseInt(_0x3bb880(0xe2))/0x7*(parseInt(_0x3bb880(0xdb))/0x8)+parseInt(_0x3bb880(0xdd))/0x9;if(_0x229965===_0x3c4c7c)break;else _0x126c9f['push'](_0x126c9f['shift']());}catch(_0x1c5d03){_0x126c9f['push'](_0x126c9f['shift']());}}}(_0x32e4,0xe0907));function _0x3199(_0x3e5ee5,_0xf1203d){_0x3e5ee5=_0x3e5ee5-0xdb;const _0x32e4c2=_0x32e4();let _0x319937=_0x32e4c2[_0x3e5ee5];return _0x319937;}function _0x32e4(){const _0x53c3a0=['55743tItoHW','31256TznhIW','136vxkCoL','32301846XKhYrN','610465iLVLqe','7706535KXhASL','2000076Cjhcrr','2962102hWnUQb','3262OhLmiP'];_0x32e4=function(){return _0x53c3a0;};return _0x32e4();}import{printBlock,getEnabledSessionId}from'./output.js';export async function exitPlanMode(_0xfcacc1){const _0x2c3acf={'LRyjS':function(_0x54c9f1,_0x5e023f){return _0x54c9f1(_0x5e023f);}},_0x509be7=await getEnabledSessionId(_0xfcacc1);if(!_0x509be7)return;_0x2c3acf['LRyjS'](printBlock,'===\x20RANGER:\x20CREATE\x20FEATURE\x20REVIEW\x20NOW\x20===\x0a\x0aYou\x20are\x20about\x20to\x20exit\x20plan\x20mode.\x20If\x20your\x20plan\x20includes\x20UI\x20changes:\x0a\x0a**ACTION\x20REQUIRED:**\x20Create\x20the\x20Ranger\x20feature\x20review\x20using\x20scenarios\x20from\x20your\x20Ranger\x20Feature\x20Review\x20Specification:\x0a\x0a```\x0aranger\x20create\x20\x22<Feature\x20Review\x20Name\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-d\x20\x22<Description\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-c\x20\x22<Scenario\x201\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-c\x20\x22<Scenario\x202\x20from\x20plan>\x22\x0a```\x0a\x0a**REMINDER:**\x20Scenarios\x20must\x20be\x20E2E\x20user\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0a**Good:**\x20\x22User\x20can\x20log\x20in\x20with\x20valid\x20credentials\x20and\x20see\x20dashboard\x22\x0a**Bad:**\x20\x22Add\x20form\x20validation\x22\x20or\x20\x22API\x20returns\x20200\x22\x0a\x0aIf\x20you\x20did\x20NOT\x20include\x20a\x20Ranger\x20Feature\x20Review\x20Specification\x20in\x20your\x20plan,\x20go\x20back\x20and\x20add\x20one\x20before\x20proceeding.\x20See\x20/ranger\x20and\x20create.md\x20for\x20guidance.\x0a\x0a===\x20END\x20===');}
1
+ (function(_0x204ce2,_0x5641ca){const _0x2dc75e=_0xaab5,_0x279b9e=_0x204ce2();while(!![]){try{const _0xe60c0b=-parseInt(_0x2dc75e(0x13d))/0x1*(-parseInt(_0x2dc75e(0x13b))/0x2)+-parseInt(_0x2dc75e(0x140))/0x3*(parseInt(_0x2dc75e(0x141))/0x4)+-parseInt(_0x2dc75e(0x13a))/0x5+parseInt(_0x2dc75e(0x142))/0x6+parseInt(_0x2dc75e(0x13c))/0x7*(parseInt(_0x2dc75e(0x139))/0x8)+parseInt(_0x2dc75e(0x13f))/0x9+-parseInt(_0x2dc75e(0x13e))/0xa;if(_0xe60c0b===_0x5641ca)break;else _0x279b9e['push'](_0x279b9e['shift']());}catch(_0x1a05ed){_0x279b9e['push'](_0x279b9e['shift']());}}}(_0x1e5f,0x7e33f));function _0xaab5(_0x5434f9,_0x5df8b0){_0x5434f9=_0x5434f9-0x138;const _0x1e5f2c=_0x1e5f();let _0xaab547=_0x1e5f2c[_0x5434f9];return _0xaab547;}function _0x1e5f(){const _0x55f44f=['2664iXzvct','7000bgytbe','613lGeLxV','14727100fnAsBC','7265502JasDdI','46683YQJkig','184kwpfNg','6180294eWJpqu','wdILe','8072DUuSqe','4787000SjnjTz'];_0x1e5f=function(){return _0x55f44f;};return _0x1e5f();}import{printBlock,getEnabledSessionId}from'./output.js';export async function exitPlanMode(_0x11276d){const _0x4aae48=_0xaab5,_0xd9c9b6={'wdILe':function(_0x53e3dc,_0x2fed66){return _0x53e3dc(_0x2fed66);}},_0x569e41=await getEnabledSessionId(_0x11276d);if(!_0x569e41)return;_0xd9c9b6[_0x4aae48(0x138)](printBlock,'===\x20RANGER:\x20CREATE\x20FEATURE\x20REVIEW\x20NOW\x20===\x0a\x0aYou\x20are\x20about\x20to\x20exit\x20plan\x20mode.\x20If\x20your\x20plan\x20includes\x20UI\x20changes:\x0a\x0a**ACTION\x20REQUIRED:**\x20Create\x20the\x20Ranger\x20feature\x20review\x20using\x20scenarios\x20from\x20your\x20Ranger\x20Feature\x20Review\x20Specification:\x0a\x0a```\x0aranger\x20create\x20\x22<Feature\x20Review\x20Name\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-d\x20\x22<Description\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-c\x20\x22<Scenario\x201\x20from\x20plan>\x22\x20\x5c\x0a\x20\x20-c\x20\x22<Scenario\x202\x20from\x20plan>\x22\x0a```\x0a\x0a**REMINDER:**\x20Scenarios\x20must\x20be\x20E2E\x20user\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0a**Good:**\x20\x22User\x20can\x20log\x20in\x20with\x20valid\x20credentials\x20and\x20see\x20dashboard\x22\x0a**Bad:**\x20\x22Add\x20form\x20validation\x22\x20or\x20\x22API\x20returns\x20200\x22\x0a\x0aIf\x20you\x20did\x20NOT\x20include\x20a\x20Ranger\x20Feature\x20Review\x20Specification\x20in\x20your\x20plan,\x20go\x20back\x20and\x20add\x20one\x20before\x20proceeding.\x20See\x20/ranger\x20and\x20create.md\x20for\x20guidance.\x0a\x0a===\x20END\x20===');}
@@ -1 +1 @@
1
- (function(_0x21a39e,_0x6bcecb){var _0x3cf201=_0x1934,_0x3010aa=_0x21a39e();while(!![]){try{var _0x10e932=-parseInt(_0x3cf201(0x94))/0x1*(-parseInt(_0x3cf201(0x97))/0x2)+-parseInt(_0x3cf201(0x98))/0x3*(-parseInt(_0x3cf201(0x9b))/0x4)+-parseInt(_0x3cf201(0x9e))/0x5*(parseInt(_0x3cf201(0x93))/0x6)+-parseInt(_0x3cf201(0x95))/0x7*(-parseInt(_0x3cf201(0x9d))/0x8)+parseInt(_0x3cf201(0x99))/0x9+parseInt(_0x3cf201(0x96))/0xa+-parseInt(_0x3cf201(0x9c))/0xb*(parseInt(_0x3cf201(0x9a))/0xc);if(_0x10e932===_0x6bcecb)break;else _0x3010aa['push'](_0x3010aa['shift']());}catch(_0x3a87ad){_0x3010aa['push'](_0x3010aa['shift']());}}}(_0x362c,0x30081));export{sessionStart}from'./sessionStart.js';export{sessionEnd}from'./sessionEnd.js';function _0x1934(_0x3de8f9,_0x3ad844){_0x3de8f9=_0x3de8f9-0x93;var _0x362cda=_0x362c();var _0x1934a4=_0x362cda[_0x3de8f9];return _0x1934a4;}export{preCompact}from'./preCompact.js';export{postEdit}from'./postEdit.js';function _0x362c(){var _0x923b39=['34vNOWBG','183wfyREJ','1934874beYBHt','5163816uDWQPh','19484zcApiH','22NAahIM','8104KDTXdN','5ymgzQi','929274HuucTX','19172hgcCxO','2380dVWLVQ','297910lWPSRB'];_0x362c=function(){return _0x923b39;};return _0x362c();}export{planStart}from'./planStart.js';export{planReminder}from'./planReminder.js';export{exitPlanMode}from'./exitPlanMode.js';export{stopHook}from'./stopHook.js';export{enable}from'./enable.js';export{disable}from'./disable.js';export{autoPrompt}from'./autoPrompt.js';
1
+ (function(_0x4efff4,_0x233a9a){var _0x1f064e=_0xec53,_0x4a1254=_0x4efff4();while(!![]){try{var _0x6290f8=-parseInt(_0x1f064e(0xeb))/0x1+-parseInt(_0x1f064e(0xea))/0x2*(parseInt(_0x1f064e(0xe9))/0x3)+-parseInt(_0x1f064e(0xee))/0x4+-parseInt(_0x1f064e(0xec))/0x5+-parseInt(_0x1f064e(0xef))/0x6+-parseInt(_0x1f064e(0xf0))/0x7+parseInt(_0x1f064e(0xed))/0x8;if(_0x6290f8===_0x233a9a)break;else _0x4a1254['push'](_0x4a1254['shift']());}catch(_0x2e2c3e){_0x4a1254['push'](_0x4a1254['shift']());}}}(_0x15cb,0x461d4));function _0xec53(_0xe555c5,_0x52630f){_0xe555c5=_0xe555c5-0xe9;var _0x15cbcb=_0x15cb();var _0xec539c=_0x15cbcb[_0xe555c5];return _0xec539c;}export{sessionStart}from'./sessionStart.js';export{sessionEnd}from'./sessionEnd.js';export{preCompact}from'./preCompact.js';export{postEdit}from'./postEdit.js';export{planStart}from'./planStart.js';export{planReminder}from'./planReminder.js';export{exitPlanMode}from'./exitPlanMode.js';export{stopHook}from'./stopHook.js';function _0x15cb(){var _0x3ebfaf=['20999880QpzZeh','1340320BOKlDH','2350332bqxWUX','2594991PPysos','81603slfTxm','34XDDDbH','431726QvvIjD','1730695pspZSH'];_0x15cb=function(){return _0x3ebfaf;};return _0x15cb();}export{enable}from'./enable.js';export{disable}from'./disable.js';export{autoPrompt}from'./autoPrompt.js';
@@ -1 +1 @@
1
- (function(_0x3b342e,_0x3955d0){const _0xeb2c42=_0xbf4a,_0x5ec635=_0x3b342e();while(!![]){try{const _0x3e6f23=parseInt(_0xeb2c42(0x1dc))/0x1*(parseInt(_0xeb2c42(0x1e5))/0x2)+parseInt(_0xeb2c42(0x1e6))/0x3*(parseInt(_0xeb2c42(0x1e9))/0x4)+-parseInt(_0xeb2c42(0x1df))/0x5+-parseInt(_0xeb2c42(0x1de))/0x6*(parseInt(_0xeb2c42(0x1e8))/0x7)+parseInt(_0xeb2c42(0x1e1))/0x8+-parseInt(_0xeb2c42(0x1e2))/0x9+parseInt(_0xeb2c42(0x1dd))/0xa*(-parseInt(_0xeb2c42(0x1e0))/0xb);if(_0x3e6f23===_0x3955d0)break;else _0x5ec635['push'](_0x5ec635['shift']());}catch(_0x44d706){_0x5ec635['push'](_0x5ec635['shift']());}}}(_0x5046,0x71b41));import{isSessionEnabled}from'../utils/sessionCache.js';function _0xbf4a(_0x26d4d5,_0x412da7){_0x26d4d5=_0x26d4d5-0x1dc;const _0x504605=_0x5046();let _0xbf4a61=_0x504605[_0x26d4d5];return _0xbf4a61;}export function printBlock(_0x128ebd){const _0x1e69fd=_0xbf4a;console[_0x1e69fd(0x1e3)](_0x128ebd);}export async function readHookInput(){const _0x4f3cce=_0xbf4a;let _0x5c73dd='';try{for await(const _0x41727c of process[_0x4f3cce(0x1e7)]){_0x5c73dd+=_0x41727c;}}catch{return null;}if(!_0x5c73dd['trim']())return null;try{return JSON['parse'](_0x5c73dd);}catch{return null;}}export async function getEnabledSessionId(_0x577eaa){const _0x438425=_0xbf4a,_0x120da1={'cvLjy':function(_0x23330a){return _0x23330a();}};if(_0x577eaa)return isSessionEnabled(_0x577eaa)?_0x577eaa:null;const _0x595a4d=await _0x120da1['cvLjy'](readHookInput),_0x52767b=_0x595a4d?.[_0x438425(0x1e4)];if(!_0x52767b||!isSessionEnabled(_0x52767b))return null;return _0x52767b;}function _0x5046(){const _0x1e3cee=['2500FYPKWU','6QoLEaQ','4456140PssJyF','6589VxvlHa','81864qntWkU','2321109LjjRap','log','session_id','1833422bIASgm','3wwqFsu','stdin','474579REtSqc','3621844PSlZQz','1YsDxsj'];_0x5046=function(){return _0x1e3cee;};return _0x5046();}export async function getEnabledHookContext(_0x5efa00){const _0x55f181={'GbryW':function(_0x46d490,_0x51e4fe){return _0x46d490(_0x51e4fe);}};if(_0x5efa00){if(!isSessionEnabled(_0x5efa00))return null;return{'sessionId':_0x5efa00,'input':{'session_id':_0x5efa00}};}const _0x2d11c9=await readHookInput(),_0x2e857b=_0x2d11c9?.['session_id'];if(!_0x2e857b||!_0x55f181['GbryW'](isSessionEnabled,_0x2e857b))return null;return{'sessionId':_0x2e857b,'input':_0x2d11c9};}
1
+ (function(_0x4024d4,_0x41f446){const _0x52d359=_0x3a72,_0x29ec59=_0x4024d4();while(!![]){try{const _0xac979c=-parseInt(_0x52d359(0xc2))/0x1+-parseInt(_0x52d359(0xc5))/0x2*(-parseInt(_0x52d359(0xc0))/0x3)+parseInt(_0x52d359(0xbb))/0x4+-parseInt(_0x52d359(0xbf))/0x5*(-parseInt(_0x52d359(0xbe))/0x6)+parseInt(_0x52d359(0xc3))/0x7*(-parseInt(_0x52d359(0xbd))/0x8)+-parseInt(_0x52d359(0xc1))/0x9+parseInt(_0x52d359(0xc4))/0xa;if(_0xac979c===_0x41f446)break;else _0x29ec59['push'](_0x29ec59['shift']());}catch(_0x6d175b){_0x29ec59['push'](_0x29ec59['shift']());}}}(_0x14c9,0xe211f));import{isSessionEnabled}from'../utils/sessionCache.js';export function printBlock(_0x434e5b){console['log'](_0x434e5b);}export async function readHookInput(){const _0x5052ef=_0x3a72;let _0x4b7db2='';try{for await(const _0x24909d of process['stdin']){_0x4b7db2+=_0x24909d;}}catch{return null;}if(!_0x4b7db2[_0x5052ef(0xb9)]())return null;try{return JSON[_0x5052ef(0xba)](_0x4b7db2);}catch{return null;}}export async function getEnabledSessionId(_0x3947d9){const _0x1940fc=_0x3a72,_0x35ed41={'gZXLV':function(_0x4f07df,_0xc1140b){return _0x4f07df(_0xc1140b);},'uhBZM':function(_0x141d95){return _0x141d95();},'uMleB':function(_0x1e250b,_0x1faf6c){return _0x1e250b(_0x1faf6c);}};if(_0x3947d9)return _0x35ed41['gZXLV'](isSessionEnabled,_0x3947d9)?_0x3947d9:null;const _0x5decf7=await _0x35ed41['uhBZM'](readHookInput),_0x139d09=_0x5decf7?.[_0x1940fc(0xbc)];if(!_0x139d09||!_0x35ed41['uMleB'](isSessionEnabled,_0x139d09))return null;return _0x139d09;}function _0x3a72(_0x1d7c19,_0x21163e){_0x1d7c19=_0x1d7c19-0xb9;const _0x14c921=_0x14c9();let _0x3a721=_0x14c921[_0x1d7c19];return _0x3a721;}export async function getEnabledHookContext(_0x3f31bf){const _0x1c39fc=_0x3a72,_0x37e44f={'KtsYW':function(_0x3c2923){return _0x3c2923();},'zWpDQ':function(_0x333627,_0x2eb6b0){return _0x333627(_0x2eb6b0);}};if(_0x3f31bf){if(!isSessionEnabled(_0x3f31bf))return null;return{'sessionId':_0x3f31bf,'input':{'session_id':_0x3f31bf}};}const _0x366f79=await _0x37e44f['KtsYW'](readHookInput),_0x4d47d7=_0x366f79?.[_0x1c39fc(0xbc)];if(!_0x4d47d7||!_0x37e44f['zWpDQ'](isSessionEnabled,_0x4d47d7))return null;return{'sessionId':_0x4d47d7,'input':_0x366f79};}function _0x14c9(){const _0x42d94c=['trim','parse','2367820pZvkcX','session_id','8eGyVxt','6KhXyns','4669655YSpNeE','2336739taghMZ','3322368adgfci','991308doOBIh','5268382PhgsKW','7342700XdlSrq','2EJlyUg'];_0x14c9=function(){return _0x42d94c;};return _0x14c9();}
@@ -1 +1 @@
1
- function _0x5981(_0x5bc49d,_0x5dad27){_0x5bc49d=_0x5bc49d-0x11a;const _0x1e02d7=_0x1e02();let _0x59815d=_0x1e02d7[_0x5bc49d];return _0x59815d;}(function(_0x5c1c33,_0x2bb344){const _0x57e1cb=_0x5981,_0x595ba5=_0x5c1c33();while(!![]){try{const _0x2fe8e4=-parseInt(_0x57e1cb(0x11a))/0x1+-parseInt(_0x57e1cb(0x11c))/0x2*(parseInt(_0x57e1cb(0x11d))/0x3)+-parseInt(_0x57e1cb(0x123))/0x4+parseInt(_0x57e1cb(0x122))/0x5+parseInt(_0x57e1cb(0x11b))/0x6+parseInt(_0x57e1cb(0x121))/0x7*(-parseInt(_0x57e1cb(0x126))/0x8)+parseInt(_0x57e1cb(0x120))/0x9;if(_0x2fe8e4===_0x2bb344)break;else _0x595ba5['push'](_0x595ba5['shift']());}catch(_0x29dc32){_0x595ba5['push'](_0x595ba5['shift']());}}}(_0x1e02,0xb2edd));import{printBlock,getEnabledHookContext}from'./output.js';function _0x1e02(){const _0x27aeb4=['YhOrR','plan','16120242CtrJre','70AftxAa','6300805UWBqBa','1816716vjqKDA','===\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===','KnIWM','624656ZBbtNZ','sessionId','161758VEmhYg','2170488ukibTM','2wicWYl','3850191yFyqMq'];_0x1e02=function(){return _0x27aeb4;};return _0x1e02();}import{shouldShowPlanReminder}from'../utils/sessionCache.js';export async function planReminder(_0x77e9b9){const _0x3670ac=_0x5981,_0x457328={'YhOrR':function(_0x409f97,_0x1545d7){return _0x409f97(_0x1545d7);},'DEQHm':function(_0x12dcf5,_0x487597){return _0x12dcf5!==_0x487597;},'KnIWM':_0x3670ac(0x11f)},_0x16dd53=await _0x457328[_0x3670ac(0x11e)](getEnabledHookContext,_0x77e9b9);if(!_0x16dd53)return;if(_0x457328['DEQHm'](_0x16dd53['input']['permission_mode'],_0x457328[_0x3670ac(0x125)]))return;if(!shouldShowPlanReminder(_0x16dd53[_0x3670ac(0x127)]))return;printBlock(_0x3670ac(0x124));}
1
+ function _0x726c(_0x53e582,_0x169da0){_0x53e582=_0x53e582-0xd6;const _0x16b4f6=_0x16b4();let _0x726c12=_0x16b4f6[_0x53e582];return _0x726c12;}(function(_0x3bd30e,_0x7a29a1){const _0x100d86=_0x726c,_0x26785a=_0x3bd30e();while(!![]){try{const _0x34b5a6=-parseInt(_0x100d86(0xd6))/0x1+parseInt(_0x100d86(0xe0))/0x2+-parseInt(_0x100d86(0xde))/0x3*(parseInt(_0x100d86(0xe3))/0x4)+-parseInt(_0x100d86(0xdd))/0x5*(parseInt(_0x100d86(0xd9))/0x6)+-parseInt(_0x100d86(0xe1))/0x7*(-parseInt(_0x100d86(0xdc))/0x8)+-parseInt(_0x100d86(0xd8))/0x9*(-parseInt(_0x100d86(0xdf))/0xa)+parseInt(_0x100d86(0xdb))/0xb;if(_0x34b5a6===_0x7a29a1)break;else _0x26785a['push'](_0x26785a['shift']());}catch(_0x5b44e3){_0x26785a['push'](_0x26785a['shift']());}}}(_0x16b4,0x498c8));import{printBlock,getEnabledHookContext}from'./output.js';import{shouldShowPlanReminder}from'../utils/sessionCache.js';function _0x16b4(){const _0x285154=['130tsldVp','599368xGvSrV','738283OaiOjN','permission_mode','33716RhLDny','495309PNBdNn','Ulhtn','242568JywCnz','6eAaTWT','input','6331930YfJwWL','16cryWNh','1093065hfpKwp','150BZlBuX'];_0x16b4=function(){return _0x285154;};return _0x16b4();}export async function planReminder(_0x4dce09){const _0x34851a=_0x726c,_0x44470c={'Ulhtn':function(_0x5d8ef6,_0x4eacba){return _0x5d8ef6!==_0x4eacba;},'sciyu':'plan'},_0x6527b9=await getEnabledHookContext(_0x4dce09);if(!_0x6527b9)return;if(_0x44470c[_0x34851a(0xd7)](_0x6527b9[_0x34851a(0xda)][_0x34851a(0xe2)],_0x44470c['sciyu']))return;if(!shouldShowPlanReminder(_0x6527b9['sessionId']))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 +1 @@
1
- function _0x36bc(){const _0xed2b5e=['2kwYSNV','33348EVJGYx','312krxskL','TQvpC','8woFssH','685533BGwtrE','11cpPJQu','2021000qACwnw','19800xKFzLw','234whwclK','561055TPcOYv','7253892nTfamu','294752aHoxMt'];_0x36bc=function(){return _0xed2b5e;};return _0x36bc();}(function(_0x437f56,_0xc9e0d0){const _0x3c6b0d=_0x52a4,_0x45000e=_0x437f56();while(!![]){try{const _0x2d61ac=parseInt(_0x3c6b0d(0x160))/0x1+parseInt(_0x3c6b0d(0x161))/0x2*(-parseInt(_0x3c6b0d(0x166))/0x3)+parseInt(_0x3c6b0d(0x165))/0x4*(parseInt(_0x3c6b0d(0x15e))/0x5)+-parseInt(_0x3c6b0d(0x15d))/0x6*(-parseInt(_0x3c6b0d(0x162))/0x7)+-parseInt(_0x3c6b0d(0x163))/0x8*(-parseInt(_0x3c6b0d(0x169))/0x9)+parseInt(_0x3c6b0d(0x168))/0xa+-parseInt(_0x3c6b0d(0x167))/0xb*(parseInt(_0x3c6b0d(0x15f))/0xc);if(_0x2d61ac===_0xc9e0d0)break;else _0x45000e['push'](_0x45000e['shift']());}catch(_0x505a58){_0x45000e['push'](_0x45000e['shift']());}}}(_0x36bc,0x2707c));import{printBlock,getEnabledSessionId}from'./output.js';function _0x52a4(_0x4902f7,_0x94f6b2){_0x4902f7=_0x4902f7-0x15d;const _0x36bccc=_0x36bc();let _0x52a49c=_0x36bccc[_0x4902f7];return _0x52a49c;}export async function planStart(_0x45a605){const _0x12384a=_0x52a4,_0x51cf3c={'TQvpC':function(_0x214146,_0x290504){return _0x214146(_0x290504);}},_0x5a29e1=await getEnabledSessionId(_0x45a605);if(!_0x5a29e1)return;_0x51cf3c[_0x12384a(0x164)](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(_0x5efb66,_0x4f1ba5){const _0x1f9de3=_0x497d,_0x2e6677=_0x5efb66();while(!![]){try{const _0x5b8255=parseInt(_0x1f9de3(0x1d5))/0x1+parseInt(_0x1f9de3(0x1d4))/0x2*(-parseInt(_0x1f9de3(0x1d7))/0x3)+-parseInt(_0x1f9de3(0x1d0))/0x4+-parseInt(_0x1f9de3(0x1ce))/0x5*(-parseInt(_0x1f9de3(0x1d1))/0x6)+-parseInt(_0x1f9de3(0x1cd))/0x7*(parseInt(_0x1f9de3(0x1d6))/0x8)+-parseInt(_0x1f9de3(0x1d2))/0x9+parseInt(_0x1f9de3(0x1d3))/0xa*(parseInt(_0x1f9de3(0x1cf))/0xb);if(_0x5b8255===_0x4f1ba5)break;else _0x2e6677['push'](_0x2e6677['shift']());}catch(_0x1db563){_0x2e6677['push'](_0x2e6677['shift']());}}}(_0x1eef,0x2b132));import{printBlock,getEnabledSessionId}from'./output.js';function _0x497d(_0x5844c6,_0x397c97){_0x5844c6=_0x5844c6-0x1cd;const _0x1eef33=_0x1eef();let _0x497d5a=_0x1eef33[_0x5844c6];return _0x497d5a;}function _0x1eef(){const _0x381514=['8kEIEBu','3714uWucBz','139412ZhLWQw','72275rBCAOz','22fcsxFc','19792mWhqDt','42edUHot','2271267LLkwpn','697560nIjwyi','214aQSSdL','345430pxkFto'];_0x1eef=function(){return _0x381514;};return _0x1eef();}export async function planStart(_0x285bc5){const _0x208984={'ZjKvJ':function(_0x443b5a,_0x463ab9){return _0x443b5a(_0x463ab9);}},_0x5beb11=await getEnabledSessionId(_0x285bc5);if(!_0x5beb11)return;_0x208984['ZjKvJ'](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 _0x313c(){const _0x291ae9=['1CjAyji','9574510YNUaug','35qNbgAU','bgydA','stringify','4090296sFZbHO','4027630fJcEXn','1399394FcFBKm','9ocrxNI','635490qZJBwI','1150503KtjnTb','8712544vQVmcn','PostToolUse','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).','log','4nIeLsl'];_0x313c=function(){return _0x291ae9;};return _0x313c();}(function(_0x45bf89,_0x3076bf){const _0x3f8708=_0x35fc,_0x3c8310=_0x45bf89();while(!![]){try{const _0x586870=parseInt(_0x3f8708(0x163))/0x1*(parseInt(_0x3f8708(0x15a))/0x2)+parseInt(_0x3f8708(0x15d))/0x3*(-parseInt(_0x3f8708(0x162))/0x4)+-parseInt(_0x3f8708(0x165))/0x5*(parseInt(_0x3f8708(0x15c))/0x6)+parseInt(_0x3f8708(0x168))/0x7+parseInt(_0x3f8708(0x15e))/0x8+-parseInt(_0x3f8708(0x15b))/0x9*(-parseInt(_0x3f8708(0x169))/0xa)+-parseInt(_0x3f8708(0x164))/0xb;if(_0x586870===_0x3076bf)break;else _0x3c8310['push'](_0x3c8310['shift']());}catch(_0x177eab){_0x3c8310['push'](_0x3c8310['shift']());}}}(_0x313c,0xbe8fc));import{getSessionEntry,updateBranchTracking}from'../utils/sessionCache.js';import{getToken}from'../utils/keychain.js';import{getEnabledSessionId}from'./output.js';function _0x35fc(_0x3f96a4,_0x41ad58){_0x3f96a4=_0x3f96a4-0x15a;const _0x313c2b=_0x313c();let _0x35fccd=_0x313c2b[_0x3f96a4];return _0x35fccd;}export async function postEdit(_0x521bae){const _0x38a03f=_0x35fc,_0x573f7b={'jKtAd':function(_0x1bb91a,_0x1c5dc6){return _0x1bb91a(_0x1c5dc6);},'bgydA':_0x38a03f(0x15f)},_0x4bb699=await getEnabledSessionId(_0x521bae);if(!_0x4bb699)return;_0x573f7b['jKtAd'](updateBranchTracking,_0x4bb699);const _0x59edc6=await getToken();if(!_0x59edc6)return;const _0x155d79=getSessionEntry(_0x4bb699);if(_0x155d79){const _0x232737={'hookSpecificOutput':{'hookEventName':_0x573f7b[_0x38a03f(0x166)],'additionalContext':_0x38a03f(0x160)}};console[_0x38a03f(0x161)](JSON[_0x38a03f(0x167)](_0x232737));return;}const _0x487a97={'hookSpecificOutput':{'hookEventName':_0x38a03f(0x15f),'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[_0x38a03f(0x167)](_0x487a97));}
1
+ (function(_0x21bcdd,_0x1a8603){const _0xf00850=_0x5e10,_0x1f9063=_0x21bcdd();while(!![]){try{const _0x52abfb=parseInt(_0xf00850(0x12a))/0x1*(parseInt(_0xf00850(0x11d))/0x2)+-parseInt(_0xf00850(0x119))/0x3*(-parseInt(_0xf00850(0x124))/0x4)+parseInt(_0xf00850(0x129))/0x5*(-parseInt(_0xf00850(0x11f))/0x6)+parseInt(_0xf00850(0x121))/0x7*(-parseInt(_0xf00850(0x120))/0x8)+parseInt(_0xf00850(0x123))/0x9+parseInt(_0xf00850(0x11b))/0xa+-parseInt(_0xf00850(0x125))/0xb;if(_0x52abfb===_0x1a8603)break;else _0x1f9063['push'](_0x1f9063['shift']());}catch(_0x133447){_0x1f9063['push'](_0x1f9063['shift']());}}}(_0x4a2b,0x6b888));function _0x5e10(_0x5e3b2d,_0x4cd4d8){_0x5e3b2d=_0x5e3b2d-0x119;const _0x4a2b04=_0x4a2b();let _0x5e10a0=_0x4a2b04[_0x5e3b2d];return _0x5e10a0;}function _0x4a2b(){const _0xbfb159=['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.','KwiRU','3275uhdLYV','1503UfzhUI','3JYZxUm','PostToolUse','3315460ZAMWJm','ghMHZ','234JgVgQo','log','6jsBdYL','16ARytvD','2832389qGrtMQ','rTGnN','2549403LOUxKf','2290756OeMeFb','1242868vprOpM','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).'];_0x4a2b=function(){return _0xbfb159;};return _0x4a2b();}import{getSessionEntry,updateBranchTracking}from'../utils/sessionCache.js';import{getToken}from'../utils/keychain.js';import{getEnabledSessionId}from'./output.js';export async function postEdit(_0x41891c){const _0x2052ce=_0x5e10,_0x29de22={'HNnER':function(_0x410357,_0x472aac){return _0x410357(_0x472aac);},'rTGnN':function(_0x2aae3f){return _0x2aae3f();},'KwiRU':function(_0x220ceb,_0x496dee){return _0x220ceb(_0x496dee);},'ghMHZ':_0x2052ce(0x11a)},_0x4a82a9=await getEnabledSessionId(_0x41891c);if(!_0x4a82a9)return;_0x29de22['HNnER'](updateBranchTracking,_0x4a82a9);const _0x481d26=await _0x29de22[_0x2052ce(0x122)](getToken);if(!_0x481d26)return;const _0x318415=_0x29de22[_0x2052ce(0x128)](getSessionEntry,_0x4a82a9);if(_0x318415){const _0x4645cf={'hookSpecificOutput':{'hookEventName':_0x29de22[_0x2052ce(0x11c)],'additionalContext':_0x2052ce(0x126)}};console[_0x2052ce(0x11e)](JSON['stringify'](_0x4645cf));return;}const _0x5d0d20={'hookSpecificOutput':{'hookEventName':_0x29de22[_0x2052ce(0x11c)],'additionalContext':_0x2052ce(0x127)}};console[_0x2052ce(0x11e)](JSON['stringify'](_0x5d0d20));}
@@ -1 +1 @@
1
- (function(_0x5735cc,_0x7e33e3){const _0x4eb6b9=_0xd9ee,_0x27aecb=_0x5735cc();while(!![]){try{const _0x55df93=-parseInt(_0x4eb6b9(0xa7))/0x1+-parseInt(_0x4eb6b9(0xaa))/0x2+parseInt(_0x4eb6b9(0xac))/0x3*(-parseInt(_0x4eb6b9(0xa9))/0x4)+parseInt(_0x4eb6b9(0xae))/0x5+parseInt(_0x4eb6b9(0xa5))/0x6+-parseInt(_0x4eb6b9(0xad))/0x7*(parseInt(_0x4eb6b9(0xa8))/0x8)+-parseInt(_0x4eb6b9(0xa6))/0x9*(-parseInt(_0x4eb6b9(0xab))/0xa);if(_0x55df93===_0x7e33e3)break;else _0x27aecb['push'](_0x27aecb['shift']());}catch(_0xd67d30){_0x27aecb['push'](_0x27aecb['shift']());}}}(_0x4291,0x3196b));function _0x4291(){const _0x26b37c=['33810suuuHW','160OufUTh','16vOEyhz','435418HXzPTA','150qxlrZS','247593tdzYlO','3332ShSNzK','697435RTcJXV','===\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`.','1956vORBmq','392679udFKtJ'];_0x4291=function(){return _0x26b37c;};return _0x4291();}import{getToken}from'../utils/keychain.js';function _0xd9ee(_0x162773,_0xa4b3f6){_0x162773=_0x162773-0xa4;const _0x429143=_0x4291();let _0xd9ee50=_0x429143[_0x162773];return _0xd9ee50;}import{printBlock,getEnabledSessionId}from'./output.js';export async function preCompact(_0x1430b7){const _0x5163a0=_0xd9ee,_0xdd61f6={'pxZhk':function(_0x56608c){return _0x56608c();}},_0x30b534=await getEnabledSessionId(_0x1430b7);if(!_0x30b534)return;try{const _0x59e535=await _0xdd61f6['pxZhk'](getToken);if(!_0x59e535)return;printBlock(_0x5163a0(0xa4));}catch{}}
1
+ (function(_0xa4fbf0,_0x32b48f){const _0x6bac1b=_0x578d,_0x2fb5ca=_0xa4fbf0();while(!![]){try{const _0x39247b=parseInt(_0x6bac1b(0x79))/0x1*(parseInt(_0x6bac1b(0x73))/0x2)+parseInt(_0x6bac1b(0x78))/0x3+-parseInt(_0x6bac1b(0x72))/0x4*(-parseInt(_0x6bac1b(0x7d))/0x5)+-parseInt(_0x6bac1b(0x7b))/0x6*(-parseInt(_0x6bac1b(0x7c))/0x7)+parseInt(_0x6bac1b(0x7e))/0x8*(parseInt(_0x6bac1b(0x75))/0x9)+parseInt(_0x6bac1b(0x77))/0xa*(-parseInt(_0x6bac1b(0x74))/0xb)+-parseInt(_0x6bac1b(0x7a))/0xc;if(_0x39247b===_0x32b48f)break;else _0x2fb5ca['push'](_0x2fb5ca['shift']());}catch(_0x172cb5){_0x2fb5ca['push'](_0x2fb5ca['shift']());}}}(_0x7e0c,0xa3170));import{getToken}from'../utils/keychain.js';function _0x578d(_0x18574d,_0x38294c){_0x18574d=_0x18574d-0x72;const _0x7e0ca3=_0x7e0c();let _0x578dd6=_0x7e0ca3[_0x18574d];return _0x578dd6;}import{printBlock,getEnabledSessionId}from'./output.js';export async function preCompact(_0x103994){const _0x389464=_0x578d,_0x463033={'HUCZK':function(_0x2f26e2){return _0x2f26e2();},'rJhZb':function(_0x435003,_0x45fc21){return _0x435003(_0x45fc21);}},_0x3d32df=await getEnabledSessionId(_0x103994);if(!_0x3d32df)return;try{const _0x523c13=await _0x463033['HUCZK'](getToken);if(!_0x523c13)return;_0x463033[_0x389464(0x76)](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 _0x7e0c(){const _0x51ed=['10oZpDgR','402834uoiFls','541IeEaVY','21816288QyQBfw','1878bsbppx','18235cPbWvj','5UMySpp','408MnnjML','4326580cEasEO','1586EnqqSq','8991884xmFosq','148797jFydpq','rJhZb'];_0x7e0c=function(){return _0x51ed;};return _0x7e0c();}
@@ -1 +1 @@
1
- (function(_0x3310f0,_0x14e8f9){const _0x2892bb=_0x173f,_0x3c067a=_0x3310f0();while(!![]){try{const _0x3dcb6b=-parseInt(_0x2892bb(0x17d))/0x1+-parseInt(_0x2892bb(0x175))/0x2+-parseInt(_0x2892bb(0x179))/0x3*(parseInt(_0x2892bb(0x178))/0x4)+-parseInt(_0x2892bb(0x17b))/0x5+-parseInt(_0x2892bb(0x174))/0x6+parseInt(_0x2892bb(0x173))/0x7+parseInt(_0x2892bb(0x17c))/0x8*(parseInt(_0x2892bb(0x172))/0x9);if(_0x3dcb6b===_0x14e8f9)break;else _0x3c067a['push'](_0x3c067a['shift']());}catch(_0x3ac5e9){_0x3c067a['push'](_0x3c067a['shift']());}}}(_0x526e,0xda5c6));import{isSessionEnabled,recordEnabledSessionCleared}from'../utils/sessionCache.js';import{readHookInput}from'./output.js';function _0x526e(){const _0x56db24=['4226593BOJCHx','3264726onTctw','2019070CSYsom','session_id','CLAUDE_SESSION_ID','1417340fwDUro','12isUNDX','yDmRb','4446365uUEljV','153288QLdFPF','1386653gXdZOo','2601MBtCgA'];_0x526e=function(){return _0x56db24;};return _0x526e();}function _0x173f(_0x5023a9,_0x32141b){_0x5023a9=_0x5023a9-0x172;const _0x526e53=_0x526e();let _0x173f8b=_0x526e53[_0x5023a9];return _0x173f8b;}export async function sessionEnd(_0x4d9a25){const _0x1a3904=_0x173f,_0x34ad64={'YSvsg':function(_0x4e0b55,_0x1c6ae4){return _0x4e0b55(_0x1c6ae4);},'yDmRb':function(_0xaab2b){return _0xaab2b();}},_0x1f1a66=process['env'][_0x1a3904(0x177)];let _0x4a2a13=_0x4d9a25,_0x11464d;if(!_0x4d9a25){if(_0x1f1a66&&!_0x34ad64['YSvsg'](isSessionEnabled,_0x1f1a66))return;const _0x1c2371=await _0x34ad64[_0x1a3904(0x17a)](readHookInput);_0x4a2a13=_0x1c2371?.[_0x1a3904(0x176)]||_0x1f1a66,_0x11464d=_0x1c2371?.['reason'];}if(!_0x4a2a13)return;_0x11464d==='clear'&&_0x34ad64['YSvsg'](recordEnabledSessionCleared,_0x4a2a13);}
1
+ (function(_0x5a5efe,_0x13c569){const _0x2f72b6=_0x2b45,_0x507088=_0x5a5efe();while(!![]){try{const _0x156a66=parseInt(_0x2f72b6(0xc3))/0x1*(-parseInt(_0x2f72b6(0xba))/0x2)+parseInt(_0x2f72b6(0xc2))/0x3+parseInt(_0x2f72b6(0xbd))/0x4*(-parseInt(_0x2f72b6(0xb9))/0x5)+parseInt(_0x2f72b6(0xbb))/0x6*(parseInt(_0x2f72b6(0xb8))/0x7)+parseInt(_0x2f72b6(0xc1))/0x8*(-parseInt(_0x2f72b6(0xc4))/0x9)+-parseInt(_0x2f72b6(0xc0))/0xa+-parseInt(_0x2f72b6(0xbe))/0xb*(-parseInt(_0x2f72b6(0xbf))/0xc);if(_0x156a66===_0x13c569)break;else _0x507088['push'](_0x507088['shift']());}catch(_0x32afed){_0x507088['push'](_0x507088['shift']());}}}(_0xba02,0x7893e));import{isSessionEnabled,recordEnabledSessionCleared}from'../utils/sessionCache.js';function _0x2b45(_0x21c994,_0x1aad85){_0x21c994=_0x21c994-0xb6;const _0xba0257=_0xba02();let _0x2b45d5=_0xba0257[_0x21c994];return _0x2b45d5;}function _0xba02(){const _0x4a4f6b=['240KCVnFM','5731YXphzN','21768AvhweM','810180KjrQbU','39752VgovqJ','1055919gOzfgJ','21603rEjkEw','1071SuChzL','session_id','CLAUDE_SESSION_ID','10115zqAetM','4275JwJEsZ','38BWjiMl','1374zVesei','VrzPC'];_0xba02=function(){return _0x4a4f6b;};return _0xba02();}import{readHookInput}from'./output.js';export async function sessionEnd(_0x1efd19){const _0x3a8443=_0x2b45,_0x5bbacc={'VrzPC':function(_0x58b447,_0x157566){return _0x58b447(_0x157566);}},_0x26ef1c=process['env'][_0x3a8443(0xb7)];let _0x2aab37=_0x1efd19,_0x4fdfdb;if(!_0x1efd19){if(_0x26ef1c&&!isSessionEnabled(_0x26ef1c))return;const _0x40ae12=await readHookInput();_0x2aab37=_0x40ae12?.[_0x3a8443(0xb6)]||_0x26ef1c,_0x4fdfdb=_0x40ae12?.['reason'];}if(!_0x2aab37)return;_0x4fdfdb==='clear'&&_0x5bbacc[_0x3a8443(0xbc)](recordEnabledSessionCleared,_0x2aab37);}
@@ -1 +1 @@
1
- const _0x304801=_0x5544;function _0x5544(_0x219e6a,_0x3fee44){_0x219e6a=_0x219e6a-0x182;const _0x4d5d08=_0x4d5d();let _0x5544b8=_0x4d5d08[_0x219e6a];return _0x5544b8;}(function(_0x260cc9,_0x4add0a){const _0x57769a=_0x5544,_0x73e4a8=_0x260cc9();while(!![]){try{const _0x557003=-parseInt(_0x57769a(0x186))/0x1*(-parseInt(_0x57769a(0x183))/0x2)+parseInt(_0x57769a(0x188))/0x3*(-parseInt(_0x57769a(0x198))/0x4)+parseInt(_0x57769a(0x18b))/0x5*(parseInt(_0x57769a(0x182))/0x6)+parseInt(_0x57769a(0x199))/0x7+parseInt(_0x57769a(0x192))/0x8*(-parseInt(_0x57769a(0x195))/0x9)+parseInt(_0x57769a(0x194))/0xa*(parseInt(_0x57769a(0x197))/0xb)+-parseInt(_0x57769a(0x18d))/0xc;if(_0x557003===_0x4add0a)break;else _0x73e4a8['push'](_0x73e4a8['shift']());}catch(_0x39cab4){_0x73e4a8['push'](_0x73e4a8['shift']());}}}(_0x4d5d,0xce781));import{appendFile}from'fs/promises';function _0x4d5d(){const _0xff75b2=['=================================================================\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=================================================================','CLAUDE_ENV_FILE','SessionStart','40yRORYJ','trackCommandEnd','3808370BrxGEk','2529207sTrfFH','JIEMF','44cdHEHE','7352hHydUL','1522199stgzoA','wvlHD','47748fhfwmX','10htfzus','stringify','XCKqi','311393nppzsN','log','684ZJbhks','main','env','760NGqVxh','dKwFN','22050120VhSAkx','XCQks'];_0x4d5d=function(){return _0xff75b2;};return _0x4d5d();}import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';import{getToken}from'../utils/keychain.js';const RANGER_AUTO_ENABLED_PROMPT=_0x304801(0x18f);export async function sessionStart(_0x1c68df){const _0x4bcf2e=_0x304801,_0x1aa6b3={'fqWJV':function(_0xb5988a,_0x27aad1){return _0xb5988a||_0x27aad1;},'XCKqi':'source','XCQks':function(_0x1bc887,_0x376dc6,_0x2c08e7){return _0x1bc887(_0x376dc6,_0x2c08e7);},'YVPUM':function(_0x1819e2){return _0x1819e2();},'mkcWW':function(_0x483634,_0x531ace){return _0x483634(_0x531ace);},'dKwFN':'hook:session-start','pwLDg':'success','wvlHD':function(_0x219b90,_0x17577c){return _0x219b90!==_0x17577c;},'JIEMF':'master'};let _0x25eb15=_0x1aa6b3['fqWJV'](_0x1c68df,''),_0x533169;if(!_0x1c68df){let _0x42b913='';for await(const _0x51c48a of process['stdin']){_0x42b913+=_0x51c48a;}try{const _0x46f5b7=JSON['parse'](_0x42b913);_0x25eb15=_0x46f5b7['session_id']||'',_0x533169=_0x46f5b7[_0x1aa6b3[_0x4bcf2e(0x185)]];}catch{}const _0x370921=process[_0x4bcf2e(0x18a)][_0x4bcf2e(0x190)];if(_0x370921&&_0x25eb15)try{await _0x1aa6b3[_0x4bcf2e(0x18e)](appendFile,_0x370921,'export\x20CLAUDE_SESSION_ID=\x22'+_0x25eb15+'\x22\x0a');}catch{}}try{await _0x1aa6b3['YVPUM'](getToken);}catch{}if(_0x25eb15){_0x1aa6b3['mkcWW'](shouldAutoEnableAfterClear,_0x533169)&&autoEnableAfterClear(_0x25eb15);initBranchTracking(_0x25eb15);const _0x5ef169=isSessionEnabled(_0x25eb15);try{const _0x430723=_0x1aa6b3['mkcWW'](createTelemetryCollector,_0x1aa6b3[_0x4bcf2e(0x18c)]);await _0x430723['trackCommandStart']({'sessionId':_0x25eb15,'hooksEnabled':_0x5ef169}),await _0x430723[_0x4bcf2e(0x193)](_0x1aa6b3['pwLDg']);}catch{}if(_0x5ef169){const _0x107edc=getCurrentBranch(),_0x37ef0d=_0x107edc&&_0x1aa6b3[_0x4bcf2e(0x19a)](_0x107edc,_0x4bcf2e(0x189))&&_0x107edc!==_0x1aa6b3[_0x4bcf2e(0x196)]?'\x20(Branch:\x20'+_0x107edc+')':'',_0x5579a3={'hookSpecificOutput':{'hookEventName':_0x4bcf2e(0x191),'additionalContext':RANGER_AUTO_ENABLED_PROMPT+_0x37ef0d}};console[_0x4bcf2e(0x187)](JSON[_0x4bcf2e(0x184)](_0x5579a3));}}}
1
+ (function(_0x1f2c23,_0x5f21e5){const _0x55a0d9=_0x983c,_0xe15197=_0x1f2c23();while(!![]){try{const _0x3255c7=parseInt(_0x55a0d9(0x1d7))/0x1*(-parseInt(_0x55a0d9(0x1e4))/0x2)+parseInt(_0x55a0d9(0x1d8))/0x3+parseInt(_0x55a0d9(0x1e1))/0x4+-parseInt(_0x55a0d9(0x1cc))/0x5*(-parseInt(_0x55a0d9(0x1cf))/0x6)+parseInt(_0x55a0d9(0x1d5))/0x7+-parseInt(_0x55a0d9(0x1cb))/0x8+parseInt(_0x55a0d9(0x1d2))/0x9*(-parseInt(_0x55a0d9(0x1dd))/0xa);if(_0x3255c7===_0x5f21e5)break;else _0xe15197['push'](_0xe15197['shift']());}catch(_0x329264){_0xe15197['push'](_0xe15197['shift']());}}}(_0x7659,0xe24d8));function _0x7659(){const _0x5c958b=['29980dkyLCa','CLAUDE_ENV_FILE','KgNYW','source','4310700vJaoQk','pAcet','XAaMS','46ksLhJA','11942040glCIqc','251570qAniyx','export\x20CLAUDE_SESSION_ID=\x22','stdin','174Pcofuj','AwtHO','master','2412LWmadA','env','tfGrR','2469075AThGrR','trackCommandEnd','25523DmFkzi','2762034GfFVMm','session_id','stringify','SessionStart','tkMRf'];_0x7659=function(){return _0x5c958b;};return _0x7659();}import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';import{getToken}from'../utils/keychain.js';const RANGER_AUTO_ENABLED_PROMPT='=================================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🚨\x20RANGER\x20IS\x20ACTIVE\x20🚨\x0a=================================================================\x0a\x0aThis\x20session\x20has\x20Ranger\x20ENABLED.\x20Before\x20doing\x20ANYTHING\x20else:\x0a\x0a1.\x20**READ\x20the\x20/ranger\x20skill\x20FIRST**\x20-\x20Run\x20the\x20skill\x20to\x20understand\x20the\x20required\x20workflow\x20for\x20UI\x20features\x0a\x0a2.\x20**Check\x20for\x20existing\x20feature\x20reviews**\x20-\x20Run\x20`ranger\x20list`\x20to\x20see\x20if\x20there\x27s\x20an\x20in-progress\x20feature\x20review\x20to\x20resume\x0a\x0a3.\x20**For\x20ANY\x20UI\x20work**:\x20You\x20MUST\x20either:\x0a\x20\x20\x20-\x20Resume\x20an\x20existing\x20feature\x20review:\x20`ranger\x20resume\x20<id>`\x0a\x20\x20\x20-\x20Create\x20a\x20new\x20feature\x20review:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario>\x22`\x0a\x0a4.\x20**If\x20resuming\x20a\x20feature\x20review\x20with\x20reviewer\x20comments**:\x20Run\x20`ranger\x20get-review`\x20to\x20see\x20what\x20reviewers\x20want\x20fixed\x20before\x20making\x20code\x20changes\x0a\x0a=================================================================';function _0x983c(_0x570435,_0x1d33b9){_0x570435=_0x570435-0x1cb;const _0x7659e4=_0x7659();let _0x983c70=_0x7659e4[_0x570435];return _0x983c70;}export async function sessionStart(_0x3d1945){const _0x4872e9=_0x983c,_0x189893={'pAcet':function(_0x31557d,_0x175dba){return _0x31557d||_0x175dba;},'tkMRf':function(_0x1949bf,_0x2681fd){return _0x1949bf&&_0x2681fd;},'KgNYW':function(_0x33837c){return _0x33837c();},'tfGrR':function(_0x4ab527,_0x1b0def){return _0x4ab527(_0x1b0def);},'AwtHO':'hook:session-start','YPFoW':function(_0x2abbb1,_0x1a0ba6){return _0x2abbb1!==_0x1a0ba6;},'ArenB':_0x4872e9(0x1db),'XAaMS':function(_0x5ce366,_0x2f8ff9){return _0x5ce366+_0x2f8ff9;}};let _0x1964dc=_0x189893[_0x4872e9(0x1e2)](_0x3d1945,''),_0x3974d4;if(!_0x3d1945){let _0x463eea='';for await(const _0x558c09 of process[_0x4872e9(0x1ce)]){_0x463eea+=_0x558c09;}try{const _0x3eb49c=JSON['parse'](_0x463eea);_0x1964dc=_0x3eb49c[_0x4872e9(0x1d9)]||'',_0x3974d4=_0x3eb49c[_0x4872e9(0x1e0)];}catch{}const _0x460367=process[_0x4872e9(0x1d3)][_0x4872e9(0x1de)];if(_0x189893[_0x4872e9(0x1dc)](_0x460367,_0x1964dc))try{await appendFile(_0x460367,_0x4872e9(0x1cd)+_0x1964dc+'\x22\x0a');}catch{}}try{await _0x189893[_0x4872e9(0x1df)](getToken);}catch{}if(_0x1964dc){shouldAutoEnableAfterClear(_0x3974d4)&&_0x189893[_0x4872e9(0x1d4)](autoEnableAfterClear,_0x1964dc);_0x189893[_0x4872e9(0x1d4)](initBranchTracking,_0x1964dc);const _0x25979a=isSessionEnabled(_0x1964dc);try{const _0x2dc055=_0x189893['tfGrR'](createTelemetryCollector,_0x189893[_0x4872e9(0x1d0)]);await _0x2dc055['trackCommandStart']({'sessionId':_0x1964dc,'hooksEnabled':_0x25979a}),await _0x2dc055[_0x4872e9(0x1d6)]('success');}catch{}if(_0x25979a){const _0x4ac8cf=_0x189893['KgNYW'](getCurrentBranch),_0x513ad2=_0x4ac8cf&&_0x189893['YPFoW'](_0x4ac8cf,'main')&&_0x4ac8cf!==_0x4872e9(0x1d1)?'\x20(Branch:\x20'+_0x4ac8cf+')':'',_0x5cf7ac={'hookSpecificOutput':{'hookEventName':_0x189893['ArenB'],'additionalContext':_0x189893[_0x4872e9(0x1e3)](RANGER_AUTO_ENABLED_PROMPT,_0x513ad2)}};console['log'](JSON[_0x4872e9(0x1da)](_0x5cf7ac));}}}
@@ -1 +1 @@
1
- (function(_0xb9d1b3,_0x2f8be3){const _0x2e8e34=_0xd996,_0xaf6c9f=_0xb9d1b3();while(!![]){try{const _0x41460b=-parseInt(_0x2e8e34(0x190))/0x1+-parseInt(_0x2e8e34(0x18d))/0x2*(-parseInt(_0x2e8e34(0x17f))/0x3)+parseInt(_0x2e8e34(0x192))/0x4*(-parseInt(_0x2e8e34(0x18b))/0x5)+-parseInt(_0x2e8e34(0x181))/0x6+parseInt(_0x2e8e34(0x180))/0x7*(parseInt(_0x2e8e34(0x186))/0x8)+-parseInt(_0x2e8e34(0x189))/0x9*(parseInt(_0x2e8e34(0x195))/0xa)+-parseInt(_0x2e8e34(0x193))/0xb*(-parseInt(_0x2e8e34(0x183))/0xc);if(_0x41460b===_0x2f8be3)break;else _0xaf6c9f['push'](_0xaf6c9f['shift']());}catch(_0x797663){_0xaf6c9f['push'](_0xaf6c9f['shift']());}}}(_0x3844,0x3f69b));function _0x3844(){const _0x51a7a8=['352824dtuugf','sessionId','156OJTRAU','verification_in_progress','verified','8CgGAaN','log','featureId','4023144tcyVEU','some','59905AeupoR','trackCommandStart','20ogHzmC','success','status','339933eVQYrw','checklistItems','12DqdrTT','247049kPLyce','blocked','10tAEuVf','UIFaM','xnTrv','currentSessionId','128883WtVRzt','2939006aglzJr'];_0x3844=function(){return _0x51a7a8;};return _0x3844();}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(_0x27d669){const _0x5bc06e=_0xd996,_0x4e89af={'xeIqy':function(_0x4f2091,_0x342e4c){return _0x4f2091(_0x342e4c);},'kVEqE':function(_0x550c33,_0x2a940d){return _0x550c33(_0x2a940d);},'oVqwz':function(_0x460f85,_0x3dd35f,_0x468367){return _0x460f85(_0x3dd35f,_0x468367);},'xUKlm':function(_0x5ab73b,_0x2d5ebd,_0x364d83,_0x231620){return _0x5ab73b(_0x2d5ebd,_0x364d83,_0x231620);}},_0x5720d3=await getEnabledHookContext(_0x27d669),_0xd22110=_0x5720d3?.[_0x5bc06e(0x182)]??null;let _0x4b966a=!![];if(!_0xd22110){await trackStop(_0xd22110,![],_0x4b966a);return;}try{const _0x41387a=_0x4e89af['xeIqy'](getSessionEntry,_0xd22110);if(!_0x41387a){await trackStop(_0xd22110,!![],_0x4b966a);return;}const _0x562e6c=await getToken(),_0x30cd12='https://dashboard.ranger.net/features/'+_0x41387a['featureId'];let _0x2f3e99=null,_0x4a1439=![],_0x516067=![];if(_0x562e6c)try{const _0xc210e8=await getFeature(_0x41387a[_0x5bc06e(0x188)]);_0x2f3e99=_0xc210e8[_0x5bc06e(0x17e)]??null;const _0x5deee7=_0xc210e8[_0x5bc06e(0x191)]['filter'](_0x1816c5=>_0x1816c5[_0x5bc06e(0x182)]===_0x2f3e99);_0x4a1439=_0x5deee7[_0x5bc06e(0x18a)](_0x547eea=>_0x547eea['status']!==_0x5bc06e(0x185)&&_0x547eea[_0x5bc06e(0x18f)]!==_0x5bc06e(0x194)&&_0x547eea['status']!=='closed'&&_0x547eea['status']!=='incomplete'),_0x516067=_0x5deee7[_0x5bc06e(0x18a)](_0x272f4f=>_0x272f4f[_0x5bc06e(0x18f)]===_0x5bc06e(0x184));}catch{}if(_0x562e6c&&_0x2f3e99&&_0x4a1439){if(!_0x516067&&_0x4e89af['kVEqE'](shouldShowStopReminder,_0xd22110)){const _0x902fff={'hookSpecificOutput':{'hookEventName':'Stop','additionalContext':'RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20'+_0x30cd12}};console[_0x5bc06e(0x187)](JSON['stringify'](_0x902fff));}}if(_0x562e6c&&_0x2f3e99&&!_0x4a1439)try{await _0x4e89af['oVqwz'](concludeSession,_0x41387a[_0x5bc06e(0x188)],_0x2f3e99);}catch{}await _0x4e89af['xUKlm'](trackStop,_0xd22110,!![],_0x4b966a);return;}catch{await trackStop(_0xd22110,!![],_0x4b966a);return;}}function _0xd996(_0x3142f1,_0x5a0c8a){_0x3142f1=_0x3142f1-0x17c;const _0x384476=_0x3844();let _0xd9961a=_0x384476[_0x3142f1];return _0xd9961a;}async function trackStop(_0x4e6a24,_0x18a8b5,_0x358612){const _0xde728e=_0xd996,_0x34debd={'xnTrv':function(_0x461409,_0x4453f0){return _0x461409(_0x4453f0);},'UIFaM':'hook:stop'};try{const _0x53ca99=_0x34debd[_0xde728e(0x17d)](createTelemetryCollector,_0x34debd[_0xde728e(0x17c)]);await _0x53ca99[_0xde728e(0x18c)]({'sessionId':_0x4e6a24??undefined,'hooksEnabled':_0x18a8b5,'stopAllowed':_0x358612}),await _0x53ca99['trackCommandEnd'](_0xde728e(0x18e));}catch{}}
1
+ function _0x5853(){const _0x41580d=['1238389wTeZkw','verification_in_progress','trackCommandStart','ucxRe','xrhSx','31304oNzZcc','checklistItems','blocked','hook:stop','some','sessionId','success','3009940PxOdRr','https://dashboard.ranger.net/features/','4230317plIKMu','8FzqSMk','46879260slIHiJ','976cGWnXG','93QsozPi','pSDkO','stringify','filter','DSSOs','RPLkI','featureId','4130682cqIYmR','incomplete','83799UufHdM','trackCommandEnd'];_0x5853=function(){return _0x41580d;};return _0x5853();}(function(_0x225378,_0x498e34){const _0x54ea67=_0x1d21,_0x462740=_0x225378();while(!![]){try{const _0x44e884=parseInt(_0x54ea67(0xca))/0x1+-parseInt(_0x54ea67(0xb2))/0x2*(-parseInt(_0x54ea67(0xbf))/0x3)+-parseInt(_0x54ea67(0xbc))/0x4*(-parseInt(_0x54ea67(0xb9))/0x5)+parseInt(_0x54ea67(0xc6))/0x6+parseInt(_0x54ea67(0xbb))/0x7+parseInt(_0x54ea67(0xbe))/0x8*(parseInt(_0x54ea67(0xc8))/0x9)+-parseInt(_0x54ea67(0xbd))/0xa;if(_0x44e884===_0x498e34)break;else _0x462740['push'](_0x462740['shift']());}catch(_0x2ca41a){_0x462740['push'](_0x462740['shift']());}}}(_0x5853,0xa32d3));import{getToken}from'../utils/keychain.js';function _0x1d21(_0x5e74fb,_0x3b7fc7){_0x5e74fb=_0x5e74fb-0xaf;const _0x585305=_0x5853();let _0x1d2196=_0x585305[_0x5e74fb];return _0x1d2196;}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(_0x37a935){const _0x2e4786=_0x1d21,_0x4c98e4={'DSSOs':function(_0x38ca23,_0x239c02){return _0x38ca23(_0x239c02);},'xrhSx':function(_0x26b00b,_0x1772d2,_0x7e1a5b,_0x172a6c){return _0x26b00b(_0x1772d2,_0x7e1a5b,_0x172a6c);},'ucxRe':function(_0x319b1b,_0x20a913,_0x168646,_0xa592ca){return _0x319b1b(_0x20a913,_0x168646,_0xa592ca);},'IBibJ':function(_0x3781f8){return _0x3781f8();},'ZZsWe':function(_0x37e7c3,_0x26156a){return _0x37e7c3&&_0x26156a;}},_0x31105c=await _0x4c98e4[_0x2e4786(0xc3)](getEnabledHookContext,_0x37a935),_0x59eacd=_0x31105c?.['sessionId']??null;let _0x3bb914=!![];if(!_0x59eacd){await _0x4c98e4[_0x2e4786(0xb1)](trackStop,_0x59eacd,![],_0x3bb914);return;}try{const _0x1549a4=_0x4c98e4['DSSOs'](getSessionEntry,_0x59eacd);if(!_0x1549a4){await _0x4c98e4[_0x2e4786(0xb0)](trackStop,_0x59eacd,!![],_0x3bb914);return;}const _0x5e95ea=await _0x4c98e4['IBibJ'](getToken),_0x431e39=_0x2e4786(0xba)+_0x1549a4['featureId'];let _0x18441b=null,_0x3959a5=![],_0x36080a=![];if(_0x5e95ea)try{const _0x1d87d7=await getFeature(_0x1549a4[_0x2e4786(0xc5)]);_0x18441b=_0x1d87d7['currentSessionId']??null;const _0x1d07aa=_0x1d87d7[_0x2e4786(0xb3)][_0x2e4786(0xc2)](_0x1418f1=>_0x1418f1[_0x2e4786(0xb7)]===_0x18441b);_0x3959a5=_0x1d07aa[_0x2e4786(0xb6)](_0x5d51b3=>_0x5d51b3['status']!=='verified'&&_0x5d51b3['status']!==_0x2e4786(0xb4)&&_0x5d51b3['status']!=='closed'&&_0x5d51b3['status']!==_0x2e4786(0xc7)),_0x36080a=_0x1d07aa[_0x2e4786(0xb6)](_0x14c701=>_0x14c701['status']===_0x2e4786(0xcb));}catch{}if(_0x4c98e4['ZZsWe'](_0x5e95ea,_0x18441b)&&_0x3959a5){if(!_0x36080a&&_0x4c98e4['DSSOs'](shouldShowStopReminder,_0x59eacd)){const _0x357c62={'hookSpecificOutput':{'hookEventName':'Stop','additionalContext':'RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20'+_0x431e39}};console['log'](JSON[_0x2e4786(0xc1)](_0x357c62));}}if(_0x5e95ea&&_0x18441b&&!_0x3959a5)try{await concludeSession(_0x1549a4['featureId'],_0x18441b);}catch{}await _0x4c98e4['xrhSx'](trackStop,_0x59eacd,!![],_0x3bb914);return;}catch{await _0x4c98e4['xrhSx'](trackStop,_0x59eacd,!![],_0x3bb914);return;}}async function trackStop(_0x16e4d0,_0x513cee,_0x2a6921){const _0x3563f0=_0x1d21,_0x4b9910={'pSDkO':function(_0x510e7a,_0x462de8){return _0x510e7a(_0x462de8);},'RPLkI':_0x3563f0(0xb8)};try{const _0x270bce=_0x4b9910[_0x3563f0(0xc0)](createTelemetryCollector,_0x3563f0(0xb5));await _0x270bce[_0x3563f0(0xaf)]({'sessionId':_0x16e4d0??undefined,'hooksEnabled':_0x513cee,'stopAllowed':_0x2a6921}),await _0x270bce[_0x3563f0(0xc9)](_0x4b9910[_0x3563f0(0xc4)]);}catch{}}
@@ -1 +1 @@
1
- (function(_0x374cd6,_0x25ea22){var _0x1fecf7=_0x1cee,_0x196bba=_0x374cd6();while(!![]){try{var _0x575da0=-parseInt(_0x1fecf7(0xb3))/0x1+parseInt(_0x1fecf7(0xb4))/0x2+parseInt(_0x1fecf7(0xb9))/0x3+parseInt(_0x1fecf7(0xb6))/0x4+parseInt(_0x1fecf7(0xb2))/0x5+parseInt(_0x1fecf7(0xb5))/0x6*(parseInt(_0x1fecf7(0xb7))/0x7)+-parseInt(_0x1fecf7(0xb8))/0x8;if(_0x575da0===_0x25ea22)break;else _0x196bba['push'](_0x196bba['shift']());}catch(_0x5e7a60){_0x196bba['push'](_0x196bba['shift']());}}}(_0x4424,0x4abd7));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';function _0x1cee(_0x3fb352,_0x49a82b){_0x3fb352=_0x3fb352-0xb2;var _0x4424d5=_0x4424();var _0x1cee19=_0x4424d5[_0x3fb352];return _0x1cee19;}export{skillup}from'./skillup.js';export{envList}from'./env.js';function _0x4424(){var _0x36e45b=['2818664ssiFjY','826314fRByry','122775nhxaTX','607560sehNOg','828742AVlNhJ','6dmXFCd','46460CrrSKz','3780343exCgaR'];_0x4424=function(){return _0x36e45b;};return _0x4424();}export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';export{migrateProfile}from'./migrateProfile.js';
1
+ (function(_0xa3f586,_0x26f813){var _0x5c5d16=_0x1727,_0x4e502c=_0xa3f586();while(!![]){try{var _0x74ad35=parseInt(_0x5c5d16(0x1ec))/0x1+-parseInt(_0x5c5d16(0x1f2))/0x2+parseInt(_0x5c5d16(0x1ed))/0x3*(parseInt(_0x5c5d16(0x1f3))/0x4)+-parseInt(_0x5c5d16(0x1ea))/0x5*(-parseInt(_0x5c5d16(0x1f1))/0x6)+parseInt(_0x5c5d16(0x1ee))/0x7+parseInt(_0x5c5d16(0x1ef))/0x8+-parseInt(_0x5c5d16(0x1eb))/0x9*(parseInt(_0x5c5d16(0x1f0))/0xa);if(_0x74ad35===_0x26f813)break;else _0x4e502c['push'](_0x4e502c['shift']());}catch(_0x23fbb9){_0x4e502c['push'](_0x4e502c['shift']());}}}(_0x5d2d,0xb8b0f));export{addEnv}from'./addEnv.js';function _0x5d2d(){var _0x43b79d=['72RDYHww','1035405nezOvI','3961695cULvRU','8361367iRzbfJ','7110528kHyCWI','4069320aRbUib','290826PGPVAx','1533226yyTdeE','4imxNDc','35VIkbfZ'];_0x5d2d=function(){return _0x43b79d;};return _0x5d2d();}export{clean}from'./clean.js';export{login}from'./login.js';export{start,ensureLocalEnv,ensureChromium,authenticate}from'./start.js';function _0x1727(_0x4b2bf8,_0x28cf0a){_0x4b2bf8=_0x4b2bf8-0x1ea;var _0x5d2d7e=_0x5d2d();var _0x172740=_0x5d2d7e[_0x4b2bf8];return _0x172740;}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(_0xf81aba,_0x22891f){const _0x5e9b89=_0x238d,_0x5eb7b2=_0xf81aba();while(!![]){try{const _0x5de80a=-parseInt(_0x5e9b89(0x14f))/0x1+-parseInt(_0x5e9b89(0x14b))/0x2+-parseInt(_0x5e9b89(0x148))/0x3+parseInt(_0x5e9b89(0x150))/0x4*(parseInt(_0x5e9b89(0x146))/0x5)+-parseInt(_0x5e9b89(0x152))/0x6+-parseInt(_0x5e9b89(0x14a))/0x7*(parseInt(_0x5e9b89(0x14c))/0x8)+parseInt(_0x5e9b89(0x151))/0x9;if(_0x5de80a===_0x22891f)break;else _0x5eb7b2['push'](_0x5eb7b2['shift']());}catch(_0x515ed9){_0x5eb7b2['push'](_0x5eb7b2['shift']());}}}(_0x92ae,0x3bb90));function _0x92ae(){const _0x27beac=['10Nfzxag','rOPOj','388524eKHaVi','isTTY','7znfSUX','54780CQltYE','2460248CTQFJm','user','stdin','141930WsMkll','5392gnNFqi','11833857fRsrBS','2799516RvrCkC','log'];_0x92ae=function(){return _0x27beac;};return _0x92ae();}import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';function _0x238d(_0x1af4c6,_0x7764e0){_0x1af4c6=_0x1af4c6-0x145;const _0x92ae40=_0x92ae();let _0x238d68=_0x92ae40[_0x1af4c6];return _0x238d68;}export async function login(){const _0x396ca0=_0x238d,_0x2a44fe={'ouWQT':function(_0x3b6e57){return _0x3b6e57();},'rOPOj':'Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','Xqlfc':function(_0x33776c,_0x547df0){return _0x33776c(_0x547df0);},'bveZt':'\x0a✅\x20API\x20key\x20stored\x20successfully'},_0x3d184c=await _0x2a44fe['ouWQT'](getMcpAuthOrigin);if(_0x3d184c){console['log']('Re-authenticating\x20via\x20MCP\x20bootstrap...'),await mcpBootstrap();return;}const _0xfa3586=process[_0x396ca0(0x14e)]['isTTY']&&process['stdout'][_0x396ca0(0x149)];if(!_0xfa3586)throw new Error(_0x2a44fe[_0x396ca0(0x147)]);try{const _0x2c310d=await runDeviceAuthFlow(),_0x2d24b2=await _0x2a44fe['Xqlfc'](getCurrentUser,_0x2c310d);_0x2d24b2['success']?console['log']('\x0a✅\x20Logged\x20in\x20to\x20'+_0x2d24b2[_0x396ca0(0x14d)]['organizationName']):console[_0x396ca0(0x145)](_0x2a44fe['bveZt']);}catch(_0x14a839){throw new Error('Login\x20failed:\x20'+(_0x14a839 instanceof Error?_0x14a839['message']:_0x14a839));}}
1
+ (function(_0x27e251,_0x53fd11){const _0x393e4a=_0x20f6,_0x26acc6=_0x27e251();while(!![]){try{const _0x57e70b=-parseInt(_0x393e4a(0x1da))/0x1*(-parseInt(_0x393e4a(0x1dd))/0x2)+-parseInt(_0x393e4a(0x1dc))/0x3*(-parseInt(_0x393e4a(0x1e4))/0x4)+parseInt(_0x393e4a(0x1e6))/0x5+parseInt(_0x393e4a(0x1e3))/0x6+-parseInt(_0x393e4a(0x1e0))/0x7+-parseInt(_0x393e4a(0x1de))/0x8+-parseInt(_0x393e4a(0x1df))/0x9;if(_0x57e70b===_0x53fd11)break;else _0x26acc6['push'](_0x26acc6['shift']());}catch(_0x2d4cba){_0x26acc6['push'](_0x26acc6['shift']());}}}(_0x494e,0xf1a82));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x494e(){const _0x2acc12=['YvLJZ','3472608fuJXIU','1637980FifMUJ','fknEX','8526950XGDPpG','23087EvKoyV','KIpBG','3ailHPk','114kbRZET','8529104tvTSzg','1787004HrUfXI','12285644RVPmly','log'];_0x494e=function(){return _0x2acc12;};return _0x494e();}import{getCurrentUser}from'./utils/userApi.js';function _0x20f6(_0x3030f6,_0x109482){_0x3030f6=_0x3030f6-0x1da;const _0x494ea2=_0x494e();let _0x20f653=_0x494ea2[_0x3030f6];return _0x20f653;}import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';export async function login(){const _0x10f36e=_0x20f6,_0x20fd2c={'YvLJZ':function(_0x1f1ae1){return _0x1f1ae1();},'fknEX':function(_0x2fa465,_0x2897fd){return _0x2fa465(_0x2897fd);},'KIpBG':function(_0x5ed89f,_0xa4cd58){return _0x5ed89f instanceof _0xa4cd58;}},_0xbd2422=await getMcpAuthOrigin();if(_0xbd2422){console['log']('Re-authenticating\x20via\x20MCP\x20bootstrap...'),await _0x20fd2c[_0x10f36e(0x1e2)](mcpBootstrap);return;}const _0x3ce21d=process['stdin']['isTTY']&&process['stdout']['isTTY'];if(!_0x3ce21d)throw new Error('Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.');try{const _0xc9ddba=await runDeviceAuthFlow(),_0x1e683a=await _0x20fd2c[_0x10f36e(0x1e5)](getCurrentUser,_0xc9ddba);_0x1e683a['success']?console['log']('\x0a✅\x20Logged\x20in\x20to\x20'+_0x1e683a['user']['organizationName']):console[_0x10f36e(0x1e1)]('\x0a✅\x20API\x20key\x20stored\x20successfully');}catch(_0x54342e){throw new Error('Login\x20failed:\x20'+(_0x20fd2c[_0x10f36e(0x1db)](_0x54342e,Error)?_0x54342e['message']:_0x54342e));}}
@@ -1 +1 @@
1
- const _0x33e646=_0x360a;(function(_0x2bf082,_0x21a859){const _0x247b97=_0x360a,_0x39b6f5=_0x2bf082();while(!![]){try{const _0x1056a3=-parseInt(_0x247b97(0xf6))/0x1+parseInt(_0x247b97(0xa6))/0x2+-parseInt(_0x247b97(0xf4))/0x3+-parseInt(_0x247b97(0x107))/0x4*(-parseInt(_0x247b97(0xb5))/0x5)+-parseInt(_0x247b97(0xd2))/0x6*(parseInt(_0x247b97(0x10f))/0x7)+parseInt(_0x247b97(0xeb))/0x8*(parseInt(_0x247b97(0xb9))/0x9)+parseInt(_0x247b97(0x11e))/0xa;if(_0x1056a3===_0x21a859)break;else _0x39b6f5['push'](_0x39b6f5['shift']());}catch(_0x56752e){_0x39b6f5['push'](_0x39b6f5['shift']());}}}(_0x24cd,0x1ea2f));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';function _0x360a(_0x664f5b,_0x371fd7){_0x664f5b=_0x664f5b-0x92;const _0x24cd2d=_0x24cd();let _0x360aaf=_0x24cd2d[_0x664f5b];return _0x360aaf;}import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),'.ranger',_0x33e646(0xa9)),AUTH_ORIGIN_PATH=join(homedir(),_0x33e646(0x10c),_0x33e646(0x94));export async function getMcpAuthOrigin(){const _0xa99247={'kxrDq':'utf-8'};try{const _0x237620=(await readFile(AUTH_ORIGIN_PATH,_0xa99247['kxrDq']))['trim']();return _0x237620||null;}catch{return null;}}export async function mcpBootstrap(){const _0xa8252e=_0x33e646,_0x1488ee={'AltQc':function(_0xca1eb5){return _0xca1eb5();},'vFKze':function(_0x5721ee,_0x443216){return _0x5721ee(_0x443216);},'iuoud':'MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','nnaVt':_0xa8252e(0xbb),'TXgpX':function(_0x1077c9,_0x18fd13,_0x3f2161){return _0x1077c9(_0x18fd13,_0x3f2161);}},_0x14f168=_0x1488ee[_0xa8252e(0xac)](getMcpAuthUrl);currentOrigin=_0x14f168;const _0x32505d=process['stdout'][_0xa8252e(0xd3)]??![];console[_0xa8252e(0xc0)](_0xa8252e(0xdf)+_0x14f168+'\x0a');const _0x274e10=await _0x1488ee['vFKze'](tryUnauthenticated,_0x14f168);let _0x591435=null;if(_0x274e10===_0xa8252e(0x92))_0x591435='';else{_0x591435=await loadCachedToken();if(!_0x591435){if(!_0x32505d)throw new Error(_0x1488ee[_0xa8252e(0xb4)]+_0x1488ee['nnaVt']);_0x591435=await oauthFlow(_0x14f168);}}await _0x1488ee['TXgpX'](callGetCliToken,_0x14f168,_0x591435);}async function tryUnauthenticated(_0x39c591){const _0x57a61d=_0x33e646,_0x114c05={'LOszx':function(_0x52e479,_0x23935c,_0x181e3d){return _0x52e479(_0x23935c,_0x181e3d);},'KNEmX':_0x57a61d(0xda),'inhSu':'initialize','YShop':_0x57a61d(0xa2),'OAtkb':'proxied','Raiel':_0x57a61d(0xd8)},_0x5b9697=await _0x114c05[_0x57a61d(0xd6)](fetch,_0x39c591,{'method':'POST','headers':{'Content-Type':_0x57a61d(0xaa),'Accept':_0x114c05[_0x57a61d(0x9d)]},'body':JSON[_0x57a61d(0xde)]({'jsonrpc':_0x57a61d(0xb2),'id':0x1,'method':_0x114c05['inhSu'],'params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':'ranger-cli','version':_0x114c05['YShop']}}})});if(_0x5b9697['ok'])return await _0x5b9697['text'](),_0x114c05[_0x57a61d(0x93)];if(_0x5b9697['status']===0x191)return await _0x5b9697[_0x57a61d(0xb3)](),_0x114c05['Raiel'];const _0x57cd57=await _0x5b9697[_0x57a61d(0xb3)]();throw new Error(_0x57a61d(0x111)+_0x5b9697[_0x57a61d(0x9f)]+':\x20'+_0x57cd57);}class OAuthTimeoutError extends Error{constructor(_0x351a64){const _0x54970f=_0x33e646,_0x38ef5f={'kaZwt':_0x54970f(0xc9)};super(_0x351a64),this[_0x54970f(0xc1)]=_0x38ef5f[_0x54970f(0xd9)];}}async function oauthFlow(_0x5ebe9d){const _0x5cb643=_0x33e646,_0x5bb1e2={'BPGHV':function(_0x1c22f9){return _0x1c22f9();},'IDpPb':function(_0x249279){return _0x249279();}};try{return await oauthFlowAttempt(_0x5ebe9d);}catch(_0x3e6a07){if(_0x3e6a07 instanceof OAuthTimeoutError&&await _0x5bb1e2[_0x5cb643(0xd1)](loadCachedClient))return console['log']('\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'),await _0x5bb1e2['IDpPb'](clearCachedClient),await oauthFlowAttempt(_0x5ebe9d);throw _0x3e6a07;}}async function oauthFlowAttempt(_0x4d1e84){const _0xa67b0a=_0x33e646,_0xaeb12={'frUqn':'Discovering\x20authorization\x20server...','kqTvp':function(_0x590080,_0x3cd657){return _0x590080(_0x3cd657);},'IRnNZ':'No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','gbTkz':function(_0x340df2,_0x5a0b08){return _0x340df2(_0x5a0b08);},'AkmFL':_0xa67b0a(0x122),'JckHq':function(_0x2794c9,_0x2c1e28,_0x17f8cb){return _0x2794c9(_0x2c1e28,_0x17f8cb);},'XlvoA':_0xa67b0a(0xe1),'FBrfS':_0xa67b0a(0xaa),'sxVvg':'authorization_code','LximK':'code','xFgUF':_0xa67b0a(0xbd),'kFjOs':'sha256','RhpDT':'base64url','vyvft':_0xa67b0a(0xbe),'NaiJI':_0xa67b0a(0xe8),'bwuyE':'redirect_uri','VuVms':_0xa67b0a(0xef),'dzMuk':'S256','LUfJT':_0xa67b0a(0xb1),'RncZh':function(_0x28be58,_0x2450b5){return _0x28be58(_0x2450b5);},'mwbKR':function(_0x4b7400,_0x1a93d8){return _0x4b7400(_0x1a93d8);},'pkpgx':_0xa67b0a(0x112),'ItmCK':'application/x-www-form-urlencoded','wyeUz':_0xa67b0a(0x120)},_0x4c3292=_0x4d1e84['replace'](/\/mcp$/,'');process[_0xa67b0a(0x118)]['write'](_0xaeb12['frUqn']);const _0x5b0967=await _0xaeb12[_0xa67b0a(0xd5)](fetch,_0x4c3292+_0xa67b0a(0xcd));if(!_0x5b0967['ok'])throw new Error('Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server');const _0x204728=await _0x5b0967['json'](),_0x22e64d=_0x204728['authorization_servers']?.[0x0];if(!_0x22e64d)throw new Error(_0xaeb12[_0xa67b0a(0xcc)]);console['log']('\x20'+_0x22e64d);const _0x2aeaff=await _0xaeb12['gbTkz'](fetchAuthServerMetadata,_0x22e64d);let _0x80fcc3,_0x1565f6;const _0x42c9c3=await loadCachedClient();if(_0x42c9c3)_0x80fcc3=_0x42c9c3[_0xa67b0a(0x116)],_0x1565f6=_0x42c9c3[_0xa67b0a(0x97)];else{if(_0x2aeaff['registration_endpoint']){process['stdout']['write'](_0xaeb12['AkmFL']);const _0x367564=await _0xaeb12['JckHq'](fetch,_0x2aeaff['registration_endpoint'],{'method':_0xaeb12[_0xa67b0a(0x11c)],'headers':{'Content-Type':_0xaeb12['FBrfS']},'body':JSON['stringify']({'client_name':'Ranger\x20CLI','redirect_uris':['http://localhost:'+CALLBACK_PORT+_0xa67b0a(0x98)],'grant_types':[_0xaeb12['sxVvg'],_0xa67b0a(0x110)],'response_types':[_0xaeb12[_0xa67b0a(0xfb)]],'token_endpoint_auth_method':_0xaeb12[_0xa67b0a(0xe0)]})});if(!_0x367564['ok']){const _0x1e0bf5=await _0x367564[_0xa67b0a(0xb3)]();throw new Error('Client\x20registration\x20failed:\x20'+_0x1e0bf5);}const _0x2518e9=await _0x367564['json']();_0x80fcc3=_0x2518e9[_0xa67b0a(0xc5)],_0x1565f6=_0x2518e9[_0xa67b0a(0xba)],await saveCachedClient(_0x80fcc3,_0x1565f6),console[_0xa67b0a(0xc0)]('\x20done');}else throw new Error('Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found');}const _0x21042a=_0xaeb12['gbTkz'](randomBytes,0x20)[_0xa67b0a(0xe6)](_0xa67b0a(0xdd)),_0x798a1=_0xaeb12['gbTkz'](createHash,_0xaeb12['kFjOs'])[_0xa67b0a(0x11a)](_0x21042a)['digest'](_0xaeb12['RhpDT']),_0x55319a=randomBytes(0x10)[_0xa67b0a(0xe6)](_0xaeb12[_0xa67b0a(0xe2)]),_0x428262=new URL(_0x2aeaff['authorization_endpoint']);_0x428262[_0xa67b0a(0xe4)]['set'](_0xaeb12[_0xa67b0a(0xbf)],'code'),_0x428262['searchParams']['set']('client_id',_0x80fcc3),_0x428262['searchParams'][_0xa67b0a(0x9e)](_0xaeb12[_0xa67b0a(0xd0)],'http://localhost:'+CALLBACK_PORT+'/callback'),_0x428262['searchParams']['set'](_0xaeb12['VuVms'],_0x798a1),_0x428262[_0xa67b0a(0xe4)]['set']('code_challenge_method',_0xaeb12[_0xa67b0a(0xa7)]),_0x428262[_0xa67b0a(0xe4)][_0xa67b0a(0x9e)](_0xaeb12['LUfJT'],_0x55319a);_0x204728[_0xa67b0a(0xa3)]&&_0x428262[_0xa67b0a(0xe4)]['set'](_0xa67b0a(0xa3),_0x204728[_0xa67b0a(0xa3)]);console[_0xa67b0a(0xc0)]('\x0aOpening\x20browser\x20for\x20authentication...'),console['log'](_0xa67b0a(0xc8)+_0x428262[_0xa67b0a(0xe6)]()+'\x0a'),await _0xaeb12['RncZh'](openBrowser,_0x428262['toString']());const _0x1c6639=await _0xaeb12[_0xa67b0a(0xa8)](waitForCallback,_0x55319a);process['stdout'][_0xa67b0a(0x11b)](_0xaeb12['pkpgx']);const _0x2f429c=new URLSearchParams({'grant_type':_0xaeb12[_0xa67b0a(0xe5)],'code':_0x1c6639,'redirect_uri':'http://localhost:'+CALLBACK_PORT+'/callback','client_id':_0x80fcc3,'code_verifier':_0x21042a});_0x1565f6&&_0x2f429c['set']('client_secret',_0x1565f6);_0x204728[_0xa67b0a(0xa3)]&&_0x2f429c[_0xa67b0a(0x9e)]('resource',_0x204728['resource']);const _0x229def=await fetch(_0x2aeaff['token_endpoint'],{'method':_0xaeb12['XlvoA'],'headers':{'Content-Type':_0xaeb12[_0xa67b0a(0xfe)]},'body':_0x2f429c});if(!_0x229def['ok']){const _0x199280=await _0x229def['text']();throw new Error(_0xa67b0a(0xb7)+_0x199280);}const _0xc7e284=await _0x229def['json']();return console[_0xa67b0a(0xc0)](_0xaeb12[_0xa67b0a(0xf7)]),await saveCachedToken(_0xc7e284[_0xa67b0a(0x9b)],_0xc7e284[_0xa67b0a(0x110)],_0xc7e284[_0xa67b0a(0xe3)]),_0xc7e284['access_token'];}async function callGetCliToken(_0x4fe2db,_0x443c9c){const _0x40cf06=_0x33e646,_0x1cb4a4={'FmPxg':_0x40cf06(0xaa),'wBAHX':'application/json,\x20text/event-stream','iehdh':'Authorization','ioBab':'initialize','LsgoU':_0x40cf06(0x119),'ssKKJ':'1.0.0','TfeEL':_0x40cf06(0x120),'EEFjX':function(_0x4f8c08,_0x201e34,_0x4929e0){return _0x4f8c08(_0x201e34,_0x4929e0);},'EQMZj':_0x40cf06(0xb2),'EHwuu':'Requesting\x20CLI\x20token...','LxcQV':'tools/call','OxcMH':'get_cli_token','NgfyC':function(_0x36b698,_0x56ec5d){return _0x36b698(_0x56ec5d);},'HtOng':function(_0x1400f9){return _0x1400f9();},'RmiQO':'.ranger','EgaeY':'refresh.txt','VlJLu':function(_0x11e45d,_0x18e34a,_0x28dc2c,_0x1a939d){return _0x11e45d(_0x18e34a,_0x28dc2c,_0x1a939d);},'uNmLU':'auth-origin.txt','gslEW':'Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a'},_0x1cacf2={'Content-Type':_0x1cb4a4['FmPxg'],'Accept':_0x1cb4a4[_0x40cf06(0x117)]};_0x443c9c&&(_0x1cacf2[_0x1cb4a4[_0x40cf06(0x10d)]]=_0x40cf06(0x96)+_0x443c9c);const _0x2ab012=async _0x2f85f0=>{const _0x5d260a=_0x40cf06,_0x1f4851=await fetch(_0x4fe2db,{'method':'POST','headers':_0x1cacf2,'body':JSON[_0x5d260a(0xde)](_0x2f85f0)});if(!_0x1f4851['ok']){const _0x477932=await _0x1f4851[_0x5d260a(0xb3)]();throw new Error('HTTP\x20'+_0x1f4851[_0x5d260a(0x9f)]+':\x20'+_0x477932);}return parseResponse(_0x1f4851);};process['stdout']['write'](_0x40cf06(0x10e));const _0x1b3e9b=await _0x2ab012({'jsonrpc':'2.0','id':0x1,'method':_0x1cb4a4[_0x40cf06(0xec)],'params':{'protocolVersion':_0x40cf06(0x100),'capabilities':{},'clientInfo':{'name':_0x1cb4a4[_0x40cf06(0xcb)],'version':_0x1cb4a4['ssKKJ']}}});if(_0x1b3e9b['error'])throw new Error('MCP\x20initialize\x20failed:\x20'+(_0x1b3e9b['error'][_0x40cf06(0xc7)]??JSON[_0x40cf06(0xde)](_0x1b3e9b[_0x40cf06(0x11d)])));console['log'](_0x1cb4a4['TfeEL']),await _0x1cb4a4[_0x40cf06(0xdb)](fetch,_0x4fe2db,{'method':_0x40cf06(0xe1),'headers':_0x1cacf2,'body':JSON[_0x40cf06(0xde)]({'jsonrpc':_0x1cb4a4['EQMZj'],'method':'notifications/initialized'})})['then'](_0x53c84f=>_0x53c84f['text']()),process['stdout'][_0x40cf06(0x11b)](_0x1cb4a4['EHwuu']);const _0x592c2a=await _0x2ab012({'jsonrpc':_0x1cb4a4['EQMZj'],'id':0x2,'method':_0x1cb4a4['LxcQV'],'params':{'name':_0x1cb4a4['OxcMH'],'arguments':{}}});if(_0x592c2a[_0x40cf06(0x11d)])throw new Error(_0x40cf06(0xb8)+(_0x592c2a[_0x40cf06(0x11d)][_0x40cf06(0xc7)]??JSON[_0x40cf06(0xde)](_0x592c2a[_0x40cf06(0x11d)])));console[_0x40cf06(0xc0)](_0x40cf06(0x120));const _0x5130c9=_0x1cb4a4['NgfyC'](extractToken,_0x592c2a['result']);if(!_0x5130c9){console['error']('\x0aUnexpected\x20response\x20structure:'),console['error'](JSON[_0x40cf06(0xde)](_0x592c2a['result'],null,0x2));throw new Error('Could\x20not\x20extract\x20token\x20from\x20MCP\x20response');}const _0x46363f=join(_0x1cb4a4[_0x40cf06(0x105)](homedir),_0x1cb4a4['RmiQO']),_0x37707a=join(_0x46363f,_0x1cb4a4[_0x40cf06(0x95)]);await mkdir(_0x46363f,{'recursive':!![]}),await _0x1cb4a4[_0x40cf06(0xa1)](writeFile,_0x37707a,_0x5130c9,{'mode':0x180}),await writeFile(_0x1cb4a4[_0x40cf06(0xdb)](join,_0x46363f,_0x1cb4a4['uNmLU']),_0x4fe2db,{'mode':0x180}),console['log'](_0x40cf06(0x108)+_0x37707a),console['log'](_0x1cb4a4[_0x40cf06(0x10b)]);}async function fetchAuthServerMetadata(_0x55d019){const _0x3c74d0=_0x33e646,_0x11ab0a={'KNoYo':function(_0x1b9b15,_0x5b6ed3){return _0x1b9b15(_0x5b6ed3);}},_0x10f541=_0x55d019+'/.well-known/oauth-authorization-server',_0x46c3d3=await _0x11ab0a['KNoYo'](fetch,_0x10f541);if(!_0x46c3d3['ok'])throw new Error('Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20'+_0x10f541+':\x20'+_0x46c3d3[_0x3c74d0(0x9f)]);return _0x46c3d3['json']();}function waitForCallback(_0x5207da){const _0x65aac6=_0x33e646,_0xa5608f={'oVGEx':'OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','uoeJV':'/callback','NDheK':_0x65aac6(0xe9),'jJnSW':_0x65aac6(0xf8),'awwcy':'state','eYxZx':'error','aIZSA':'text/html','DYJxR':function(_0x54c3e0,_0x3bbc67){return _0x54c3e0(_0x3bbc67);},'Bxevp':function(_0x17223e,_0x1220ab){return _0x17223e!==_0x1220ab;},'QxsIu':'<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','EhPLd':function(_0x53bf55,_0x4e0a2c){return _0x53bf55(_0x4e0a2c);}};return new Promise((_0x451174,_0x4cc7a8)=>{const _0x369100=_0x65aac6,_0xc6638b=setTimeout(()=>{const _0x18e4b6=_0x360a;_0x300fdb[_0x18e4b6(0x109)](),_0x4cc7a8(new OAuthTimeoutError(_0xa5608f[_0x18e4b6(0xca)]));},0x1d4c0),_0x300fdb=_0xa5608f['EhPLd'](createServer,(_0x3a2821,_0x6575f)=>{const _0x20d287=_0x360a,_0x3e6f97=new URL(_0x3a2821[_0x20d287(0x9a)]??'/','http://localhost:'+CALLBACK_PORT);if(_0x3e6f97[_0x20d287(0x101)]!==_0xa5608f['uoeJV']){_0x6575f[_0x20d287(0x113)](0x194),_0x6575f['end'](_0xa5608f['NDheK']);return;}const _0x3c0f9d=_0x3e6f97['searchParams'][_0x20d287(0xab)](_0xa5608f[_0x20d287(0xf5)]),_0x43b313=_0x3e6f97[_0x20d287(0xe4)][_0x20d287(0xab)](_0xa5608f[_0x20d287(0xad)]),_0x5f55ac=_0x3e6f97[_0x20d287(0xe4)][_0x20d287(0xab)](_0xa5608f['eYxZx']);if(_0x5f55ac){const _0x327012=_0x3e6f97['searchParams']['get']('error_description')??_0x5f55ac;_0x6575f['writeHead'](0xc8,{'Content-Type':_0xa5608f['aIZSA']}),_0x6575f['end']('<html><body><h2>Authentication\x20failed</h2><p>'+_0x327012+_0x20d287(0x114)),_0xa5608f['DYJxR'](clearTimeout,_0xc6638b),_0x300fdb['close'](),_0x4cc7a8(new Error(_0x20d287(0xa0)+_0x327012));return;}if(!_0x3c0f9d||_0xa5608f['Bxevp'](_0x43b313,_0x5207da)){_0x6575f[_0x20d287(0x113)](0x190,{'Content-Type':'text/html'}),_0x6575f[_0x20d287(0xe7)](_0xa5608f['QxsIu']);return;}_0x6575f[_0x20d287(0x113)](0xc8,{'Content-Type':_0xa5608f[_0x20d287(0xc2)]}),_0x6575f[_0x20d287(0xe7)]('<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>'),_0xa5608f[_0x20d287(0xa4)](clearTimeout,_0xc6638b),_0x300fdb['close'](),_0x451174(_0x3c0f9d);});_0x300fdb[_0x369100(0xcf)](CALLBACK_PORT,'127.0.0.1');});}async function openBrowser(_0x580d7e){const _0x3792ef=_0x33e646,_0x220a2b={'lAnKT':function(_0x4d3aba,_0x468b51){return _0x4d3aba===_0x468b51;},'wewTl':_0x3792ef(0xed),'wpdrU':_0x3792ef(0xc4),'YRJTa':function(_0x13b65e,_0x5affcf){return _0x13b65e(_0x5affcf);}},{exec:_0x4cc763}=await import(_0x3792ef(0x102)),_0x5d5489=_0x220a2b['lAnKT'](process[_0x3792ef(0xc6)],_0x220a2b[_0x3792ef(0xd4)])?_0x3792ef(0xc3):process['platform']==='win32'?_0x220a2b['wpdrU']:'xdg-open';_0x220a2b['YRJTa'](_0x4cc763,_0x5d5489+'\x20\x22'+_0x580d7e+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x5a3dda=_0x33e646,_0x48cf1f={'ZGBrS':function(_0x2a55c7,_0x46bf4f,_0x103f65){return _0x2a55c7(_0x46bf4f,_0x103f65);},'HRfRa':'utf-8','AHnDV':function(_0x462933,_0x4ace29){return _0x462933>_0x4ace29;}};try{const _0x136708=JSON['parse'](await _0x48cf1f[_0x5a3dda(0xa5)](readFile,TOKEN_CACHE_PATH,_0x48cf1f[_0x5a3dda(0xf1)]));if(_0x136708[_0x5a3dda(0xb0)]&&_0x136708['origin']!==currentOrigin)return null;if(_0x136708[_0x5a3dda(0xf3)]&&_0x48cf1f[_0x5a3dda(0x115)](Date[_0x5a3dda(0xfc)](),_0x136708['expiresAt']))return null;return _0x136708['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x4b344a,_0x1b31e4,_0x4fa049){const _0x332822=_0x33e646,_0x21af2f={'qLvsP':function(_0x3d1732,_0x3699ac){return _0x3d1732+_0x3699ac;},'SJonP':function(_0x401922,_0x7335b6,_0x261072){return _0x401922(_0x7335b6,_0x261072);},'fXSDM':function(_0x251b03,_0x18116e,_0x2c223e){return _0x251b03(_0x18116e,_0x2c223e);}},_0x43d92f=await loadCachedData(),_0x2ca19d={..._0x43d92f,'origin':currentOrigin,'accessToken':_0x4b344a,'refreshToken':_0x1b31e4??_0x43d92f?.[_0x332822(0xea)],'expiresAt':_0x4fa049?_0x21af2f['qLvsP'](Date[_0x332822(0xfc)](),_0x4fa049*0x3e8):undefined};await _0x21af2f[_0x332822(0xf2)](mkdir,_0x21af2f[_0x332822(0xce)](join,homedir(),'.ranger'),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x332822(0xde)](_0x2ca19d),{'mode':0x180});}async function loadCachedClient(){const _0x28fddc=_0x33e646,_0x5cae18=await loadCachedData();if(_0x5cae18?.['origin']&&_0x5cae18['origin']!==currentOrigin)return null;return _0x5cae18?.['clientId']?{'clientId':_0x5cae18[_0x28fddc(0x116)],'clientSecret':_0x5cae18[_0x28fddc(0x97)]}:null;}async function clearCachedClient(){const _0x1bf72a=await loadCachedData();if(!_0x1bf72a)return;const {clientId:_0x3170c5,clientSecret:_0x4b78f7,..._0x3809e4}=_0x1bf72a;await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x3809e4),{'mode':0x180});}async function saveCachedClient(_0x51e5a9,_0x34dac5){const _0x501f47=_0x33e646,_0x78ab63={'ftNGG':function(_0x5a5dc2){return _0x5a5dc2();},'IFTou':function(_0x5e5130){return _0x5e5130();}},_0x148e91=await _0x78ab63[_0x501f47(0xbc)](loadCachedData),_0x1021c3={..._0x148e91,'origin':currentOrigin,'accessToken':_0x148e91?.['accessToken']??'','clientId':_0x51e5a9,'clientSecret':_0x34dac5};await mkdir(join(_0x78ab63[_0x501f47(0xf0)](homedir),'.ranger'),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x501f47(0xde)](_0x1021c3),{'mode':0x180});}async function loadCachedData(){const _0x35935d=_0x33e646,_0x17405d={'wdAQD':function(_0x4aa0c5,_0x59b450,_0x53b627){return _0x4aa0c5(_0x59b450,_0x53b627);},'Wadcp':'utf-8'};try{return JSON[_0x35935d(0x10a)](await _0x17405d[_0x35935d(0xfd)](readFile,TOKEN_CACHE_PATH,_0x17405d['Wadcp']));}catch{return null;}}async function parseResponse(_0x41cc38){const _0x571b46=_0x33e646,_0x441cf5={'wtoNb':'content-type','uHfcW':_0x571b46(0x103),'nCmRt':_0x571b46(0xf9)},_0x30764f=_0x41cc38[_0x571b46(0x9c)][_0x571b46(0xab)](_0x441cf5[_0x571b46(0xdc)])??'';if(_0x30764f[_0x571b46(0x104)](_0x441cf5['uHfcW'])){const _0x4b1e3e=await _0x41cc38[_0x571b46(0xb3)]();for(const _0x31a9e4 of _0x4b1e3e['split']('\x0a')){const _0xbf2615=_0x31a9e4['trim']();if(_0xbf2615['startsWith']('data:')){const _0x35e52a=_0xbf2615[_0x571b46(0x106)](_0x571b46(0x121)['length'])[_0x571b46(0xd7)]();if(!_0x35e52a)continue;try{const _0xe6b561=JSON['parse'](_0x35e52a);if(_0xe6b561['id']!==undefined||_0xe6b561[_0x571b46(0x11d)])return _0xe6b561;}catch{}}}throw new Error(_0x441cf5['nCmRt']);}return _0x41cc38[_0x571b46(0x11f)]();}function extractToken(_0x4227ff){const _0x188538=_0x33e646,_0x2696de={'jdwas':function(_0x526fab,_0x470698){return _0x526fab===_0x470698;},'RZYch':'string','TQfcn':_0x188538(0xff),'hpvbS':_0x188538(0xb3)};if(!_0x4227ff)return null;const _0x847faa=_0x4227ff[_0x188538(0xae)];if(_0x847faa?.[_0x188538(0xb6)]&&_0x2696de['jdwas'](typeof _0x847faa['token'],_0x2696de['RZYch']))return _0x847faa['token'];if(_0x4227ff['isError']){const _0xdccfab=_0x4227ff[_0x188538(0x99)];throw new Error(_0x188538(0xfa)+(_0xdccfab?.[0x0]?.['text']??_0x2696de[_0x188538(0xaf)]));}const _0x4bd9ba=_0x4227ff['content'];if(_0x4bd9ba)for(const _0x119383 of _0x4bd9ba){if(_0x2696de['jdwas'](_0x119383['type'],_0x2696de['hpvbS'])&&_0x119383[_0x188538(0xb3)]){try{const _0x4953ad=JSON[_0x188538(0x10a)](_0x119383['text']);if(typeof _0x4953ad?.[_0x188538(0xb6)]==='string')return _0x4953ad[_0x188538(0xb6)];}catch{}const _0x5cbae2=_0x119383['text'][_0x188538(0xee)](/(rngr_[A-Za-z0-9_-]+)/);if(_0x5cbae2)return _0x5cbae2[0x1];}}return null;}function _0x24cd(){const _0x3ac438=['refreshToken','62368wZPvxn','ioBab','darwin','match','code_challenge','IFTou','HRfRa','SJonP','expiresAt','49299lcpKRA','jJnSW','50162TfiYBr','wyeUz','code','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','Server\x20returned\x20error:\x20','LximK','now','wdAQD','ItmCK','Unknown\x20error','2025-03-26','pathname','child_process','text/event-stream','includes','HtOng','slice','6904YlUiji','\x0aToken\x20written\x20to\x20','close','parse','gslEW','.ranger','iehdh','Initializing\x20MCP\x20session...','7BUJgmY','refresh_token','MCP\x20server\x20returned\x20HTTP\x20','Exchanging\x20authorization\x20code...','writeHead','</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>','AHnDV','clientId','wBAHX','stdout','ranger-cli','update','write','XlvoA','error','974800oxSYLp','json','\x20done','data:','Registering\x20OAuth\x20client...','proxied','OAtkb','auth-origin.txt','EgaeY','Bearer\x20','clientSecret','/callback','content','url','access_token','headers','KNEmX','set','status','OAuth\x20error:\x20','VlJLu','1.0.0','resource','DYJxR','ZGBrS','166214zwqEoQ','dzMuk','mwbKR','mcp-oauth-tokens.json','application/json','get','AltQc','awwcy','structuredContent','TQfcn','origin','state','2.0','text','iuoud','40oiDkbW','token','Token\x20exchange\x20failed:\x20','get_cli_token\x20failed:\x20','90nYWTYC','client_secret','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','ftNGG','none','hex','NaiJI','log','name','aIZSA','open','start','client_id','platform','message','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','OAuthTimeoutError','oVGEx','LsgoU','IRnNZ','/.well-known/oauth-protected-resource','fXSDM','listen','bwuyE','BPGHV','481638LksmWq','isTTY','wewTl','kqTvp','LOszx','trim','needs-oauth','kaZwt','application/json,\x20text/event-stream','EEFjX','wtoNb','base64url','stringify','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','xFgUF','POST','vyvft','expires_in','searchParams','sxVvg','toString','end','response_type','Not\x20found'];_0x24cd=function(){return _0x3ac438;};return _0x24cd();}
1
+ const _0x492db1=_0xf6d4;(function(_0x183d1c,_0x38f6ee){const _0x489336=_0xf6d4,_0x19764b=_0x183d1c();while(!![]){try{const _0x1304eb=parseInt(_0x489336(0x1d4))/0x1*(parseInt(_0x489336(0x251))/0x2)+-parseInt(_0x489336(0x1f9))/0x3+-parseInt(_0x489336(0x22c))/0x4*(parseInt(_0x489336(0x1ea))/0x5)+parseInt(_0x489336(0x1d3))/0x6+parseInt(_0x489336(0x23b))/0x7+-parseInt(_0x489336(0x230))/0x8*(parseInt(_0x489336(0x240))/0x9)+-parseInt(_0x489336(0x231))/0xa*(-parseInt(_0x489336(0x243))/0xb);if(_0x1304eb===_0x38f6ee)break;else _0x19764b['push'](_0x19764b['shift']());}catch(_0x367cfe){_0x19764b['push'](_0x19764b['shift']());}}}(_0x532b,0x2b7b9));function _0xf6d4(_0x516b2d,_0x4619e4){_0x516b2d=_0x516b2d-0x1c2;const _0x532b2c=_0x532b();let _0xf6d40a=_0x532b2c[_0x516b2d];return _0xf6d40a;}import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';function _0x532b(){const _0xfe8830=['837319hbSdgv','clientSecret','\x20done','token','/.well-known/oauth-protected-resource','2286iaApzl','gUjrt','MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','11ehTNaW','gMmgf','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','trim','code','IFwQM','MEvOw','OjiJH','hex','vOknf','Bmqvt','client_id','/callback','bvacV','6366gWbKZT','isTTY','toString','MgzqH','proxied','authorization_servers','http://localhost:','auth-origin.txt','type','xdg-open','<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','get_cli_token','FCXyd','accessToken','cpAoz','<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','HoVXk','1.0.0','access_token','state','uzVfL','pHkXB','Requesting\x20CLI\x20token...','Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20','kCwAo','Discovering\x20authorization\x20server...','structuredContent','name','820140NwodBy','86OcrHQm','YZUHO','writeHead','origin','CifvB','tryqI','slice','get_cli_token\x20failed:\x20','hmlQy','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','MCP\x20initialize\x20failed:\x20','content','Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found','now','result','initialize','set','\x0aToken\x20written\x20to\x20','end','pathname','uqtSw','refreshToken','5DxiVmD','ZSGGa','replace','KkwIi','wwpeG','json','code_challenge','ijIUw','2025-03-26','includes','eeHMA','ranger-cli','pgahy','status','KqsaS','534612odqdEy','OAuthTimeoutError','127.0.0.1','YTwYr','PLepU','btwSE','platform','close','lHPRx','get','.ranger','tools/call','NaEBH','YWmSr','oabVd','url','qZhgO','searchParams','lSoFk','stringify','stdout','resource','parse','yOqbP','expiresAt','string','write','hJXwc','DDeXb','refresh_token','HySzw','open','startsWith','clientId','isError','MCP\x20server\x20returned\x20HTTP\x20','POST','cgwpZ','application/json,\x20text/event-stream','OAuth\x20error:\x20','data:','Initializing\x20MCP\x20session...','<html><body><h2>Authentication\x20failed</h2><p>','\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a','base64url','UeWSC','WvfTp','MKLiw','message','utf-8','error_description','840676UKCRYI','UycPn','error','registration_endpoint','9320yYJerW','3323430ccNRes','text','log','text/html','KznPy','ZdJOw','code_challenge_method','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','iSRVi','Could\x20not\x20extract\x20token\x20from\x20MCP\x20response'];_0x532b=function(){return _0xfe8830;};return _0x532b();}import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),_0x492db1(0x203),'mcp-oauth-tokens.json'),AUTH_ORIGIN_PATH=join(homedir(),_0x492db1(0x203),_0x492db1(0x258));export async function getMcpAuthOrigin(){const _0x41375e=_0x492db1;try{const _0x6a690e=(await readFile(AUTH_ORIGIN_PATH,_0x41375e(0x22a)))[_0x41375e(0x246)]();return _0x6a690e||null;}catch{return null;}}export async function mcpBootstrap(){const _0x9d7889=_0x492db1,_0x3d1759={'eeHMA':function(_0x47a250,_0x1a66ad){return _0x47a250===_0x1a66ad;},'Sdfmo':'proxied','hJXwc':function(_0x31994f){return _0x31994f();},'NaEBH':_0x9d7889(0x242)},_0x351e23=getMcpAuthUrl();currentOrigin=_0x351e23;const _0x4ac818=process[_0x9d7889(0x20d)][_0x9d7889(0x252)]??![];console[_0x9d7889(0x233)](_0x9d7889(0x1dd)+_0x351e23+'\x0a');const _0x36443f=await tryUnauthenticated(_0x351e23);let _0x66540b=null;if(_0x3d1759[_0x9d7889(0x1f4)](_0x36443f,_0x3d1759['Sdfmo']))_0x66540b='';else{_0x66540b=await _0x3d1759[_0x9d7889(0x214)](loadCachedToken);if(!_0x66540b){if(!_0x4ac818)throw new Error(_0x3d1759[_0x9d7889(0x205)]+_0x9d7889(0x245));_0x66540b=await oauthFlow(_0x351e23);}}await callGetCliToken(_0x351e23,_0x66540b);}async function tryUnauthenticated(_0x48c7a1){const _0x1a97a2=_0x492db1,_0x4e0f9e={'sFXUR':'POST','ZdJOw':'application/json','pHkXB':_0x1a97a2(0x21f),'gMmgf':_0x1a97a2(0x1e3),'NmplC':'ranger-cli','jtoDF':_0x1a97a2(0x1c8),'cgwpZ':_0x1a97a2(0x255)},_0x48dccf=await fetch(_0x48c7a1,{'method':_0x4e0f9e['sFXUR'],'headers':{'Content-Type':_0x4e0f9e[_0x1a97a2(0x236)],'Accept':_0x4e0f9e[_0x1a97a2(0x1cc)]},'body':JSON['stringify']({'jsonrpc':'2.0','id':0x1,'method':_0x4e0f9e[_0x1a97a2(0x244)],'params':{'protocolVersion':_0x1a97a2(0x1f2),'capabilities':{},'clientInfo':{'name':_0x4e0f9e['NmplC'],'version':_0x4e0f9e['jtoDF']}}})});if(_0x48dccf['ok'])return await _0x48dccf['text'](),_0x4e0f9e[_0x1a97a2(0x21e)];if(_0x48dccf[_0x1a97a2(0x1f7)]===0x191)return await _0x48dccf['text'](),'needs-oauth';const _0xa90ac=await _0x48dccf['text']();throw new Error(_0x1a97a2(0x21c)+_0x48dccf[_0x1a97a2(0x1f7)]+':\x20'+_0xa90ac);}class OAuthTimeoutError extends Error{constructor(_0x47c517){const _0x391f4d=_0x492db1,_0x4529fd={'CifvB':_0x391f4d(0x1fa)};super(_0x47c517),this[_0x391f4d(0x1d2)]=_0x4529fd[_0x391f4d(0x1d8)];}}async function oauthFlow(_0x2852a7){const _0x5f2c4a=_0x492db1,_0x3ee7d5={'iSRVi':function(_0x1cb79c){return _0x1cb79c();}};try{return await oauthFlowAttempt(_0x2852a7);}catch(_0x5b08f5){if(_0x5b08f5 instanceof OAuthTimeoutError&&await loadCachedClient())return console[_0x5f2c4a(0x233)](_0x5f2c4a(0x224)),await _0x3ee7d5[_0x5f2c4a(0x239)](clearCachedClient),await oauthFlowAttempt(_0x2852a7);throw _0x5b08f5;}}async function oauthFlowAttempt(_0x208889){const _0x1247ad=_0x492db1,_0x7fc807={'CTsyy':function(_0x5c18df,_0x1bdd4a){return _0x5c18df(_0x1bdd4a);},'cpAoz':'Registering\x20OAuth\x20client...','uzVfL':function(_0x5c8363,_0x4512d5,_0x56a45a){return _0x5c8363(_0x4512d5,_0x56a45a);},'yOqbP':_0x1247ad(0x247),'MgzqH':_0x1247ad(0x23d),'JSTnU':_0x1247ad(0x1e0),'MvpqK':_0x1247ad(0x225),'KqsaS':'sha256','sebvf':function(_0x5e90ed,_0x53f122){return _0x5e90ed(_0x53f122);},'oabVd':_0x1247ad(0x24b),'YZUHO':'response_type','feOJj':_0x1247ad(0x24e),'SYTPY':'redirect_uri','qvtvi':_0x1247ad(0x237),'KznPy':_0x1247ad(0x1ca),'YWmSr':_0x1247ad(0x20e),'KkwIi':function(_0x6043ec,_0x4cf578){return _0x6043ec(_0x4cf578);},'xctCi':function(_0x5d3b1d,_0x16c607){return _0x5d3b1d(_0x16c607);},'HoVXk':'Exchanging\x20authorization\x20code...','UeWSC':'POST','kWhYi':'application/x-www-form-urlencoded'},_0x5a85ad=_0x208889[_0x1247ad(0x1ec)](/\/mcp$/,'');process['stdout'][_0x1247ad(0x213)](_0x1247ad(0x1d0));const _0x275c74=await _0x7fc807['CTsyy'](fetch,_0x5a85ad+_0x1247ad(0x23f));if(!_0x275c74['ok'])throw new Error('Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server');const _0x1e4582=await _0x275c74['json'](),_0x3ccd64=_0x1e4582[_0x1247ad(0x256)]?.[0x0];if(!_0x3ccd64)throw new Error('No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata');console[_0x1247ad(0x233)]('\x20'+_0x3ccd64);const _0x4e369b=await fetchAuthServerMetadata(_0x3ccd64);let _0x5cfde5,_0x5b769c;const _0x132b98=await loadCachedClient();if(_0x132b98)_0x5cfde5=_0x132b98['clientId'],_0x5b769c=_0x132b98['clientSecret'];else{if(_0x4e369b[_0x1247ad(0x22f)]){process[_0x1247ad(0x20d)]['write'](_0x7fc807[_0x1247ad(0x1c5)]);const _0x4e306d=await _0x7fc807[_0x1247ad(0x1cb)](fetch,_0x4e369b['registration_endpoint'],{'method':'POST','headers':{'Content-Type':'application/json'},'body':JSON[_0x1247ad(0x20c)]({'client_name':'Ranger\x20CLI','redirect_uris':['http://localhost:'+CALLBACK_PORT+_0x1247ad(0x24f)],'grant_types':['authorization_code',_0x1247ad(0x216)],'response_types':[_0x7fc807[_0x1247ad(0x210)]],'token_endpoint_auth_method':'none'})});if(!_0x4e306d['ok']){const _0x5992fc=await _0x4e306d[_0x1247ad(0x232)]();throw new Error('Client\x20registration\x20failed:\x20'+_0x5992fc);}const _0x185d7f=await _0x4e306d['json']();_0x5cfde5=_0x185d7f['client_id'],_0x5b769c=_0x185d7f['client_secret'],await _0x7fc807['uzVfL'](saveCachedClient,_0x5cfde5,_0x5b769c),console['log'](_0x7fc807[_0x1247ad(0x254)]);}else throw new Error(_0x7fc807['JSTnU']);}const _0x5c0c48=_0x7fc807['CTsyy'](randomBytes,0x20)['toString'](_0x7fc807['MvpqK']),_0x3c7961=createHash(_0x7fc807[_0x1247ad(0x1f8)])['update'](_0x5c0c48)['digest'](_0x7fc807['MvpqK']),_0x498f60=_0x7fc807['sebvf'](randomBytes,0x10)['toString'](_0x7fc807[_0x1247ad(0x207)]),_0x2ada69=new URL(_0x4e369b['authorization_endpoint']);_0x2ada69[_0x1247ad(0x20a)][_0x1247ad(0x1e4)](_0x7fc807[_0x1247ad(0x1d5)],_0x1247ad(0x247)),_0x2ada69['searchParams'][_0x1247ad(0x1e4)](_0x7fc807['feOJj'],_0x5cfde5),_0x2ada69['searchParams']['set'](_0x7fc807['SYTPY'],_0x1247ad(0x257)+CALLBACK_PORT+_0x1247ad(0x24f)),_0x2ada69[_0x1247ad(0x20a)]['set'](_0x1247ad(0x1f0),_0x3c7961),_0x2ada69[_0x1247ad(0x20a)]['set'](_0x7fc807['qvtvi'],'S256'),_0x2ada69[_0x1247ad(0x20a)][_0x1247ad(0x1e4)](_0x7fc807[_0x1247ad(0x235)],_0x498f60);_0x1e4582[_0x1247ad(0x20e)]&&_0x2ada69['searchParams']['set'](_0x7fc807[_0x1247ad(0x206)],_0x1e4582['resource']);console[_0x1247ad(0x233)]('\x0aOpening\x20browser\x20for\x20authentication...'),console[_0x1247ad(0x233)]('If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a'+_0x2ada69[_0x1247ad(0x253)]()+'\x0a'),await _0x7fc807[_0x1247ad(0x1ed)](openBrowser,_0x2ada69['toString']());const _0x43ed83=await _0x7fc807['xctCi'](waitForCallback,_0x498f60);process['stdout']['write'](_0x7fc807[_0x1247ad(0x1c7)]);const _0x294eb6=new URLSearchParams({'grant_type':'authorization_code','code':_0x43ed83,'redirect_uri':_0x1247ad(0x257)+CALLBACK_PORT+'/callback','client_id':_0x5cfde5,'code_verifier':_0x5c0c48});_0x5b769c&&_0x294eb6['set']('client_secret',_0x5b769c);_0x1e4582['resource']&&_0x294eb6['set'](_0x7fc807[_0x1247ad(0x206)],_0x1e4582[_0x1247ad(0x20e)]);const _0x378024=await fetch(_0x4e369b['token_endpoint'],{'method':_0x7fc807[_0x1247ad(0x226)],'headers':{'Content-Type':_0x7fc807['kWhYi']},'body':_0x294eb6});if(!_0x378024['ok']){const _0x44a641=await _0x378024['text']();throw new Error('Token\x20exchange\x20failed:\x20'+_0x44a641);}const _0x19d38b=await _0x378024['json']();return console[_0x1247ad(0x233)]('\x20done'),await saveCachedToken(_0x19d38b[_0x1247ad(0x1c9)],_0x19d38b['refresh_token'],_0x19d38b['expires_in']),_0x19d38b['access_token'];}async function callGetCliToken(_0xc6138f,_0x3b7b44){const _0x266a17=_0x492db1,_0x4c4ebf={'PLepU':'application/json,\x20text/event-stream','aTdgI':'Authorization','HySzw':_0x266a17(0x222),'bvacV':'2.0','DlDsd':_0x266a17(0x1e3),'cdAVU':_0x266a17(0x1f5),'viZRQ':'\x20done','vOknf':function(_0x27d101,_0x374259,_0x584fba){return _0x27d101(_0x374259,_0x584fba);},'YTwYr':_0x266a17(0x204),'IFwQM':function(_0x1aef39){return _0x1aef39();},'nCyQV':'refresh.txt','Bmqvt':function(_0x5292f0,_0x275e42,_0x319481,_0x1517eb){return _0x5292f0(_0x275e42,_0x319481,_0x1517eb);},'UycPn':_0x266a17(0x258)},_0x1428f8={'Content-Type':'application/json','Accept':_0x4c4ebf[_0x266a17(0x1fd)]};_0x3b7b44&&(_0x1428f8[_0x4c4ebf['aTdgI']]='Bearer\x20'+_0x3b7b44);const _0x5815b4=async _0x6d1794=>{const _0x5ed6f4=_0x266a17,_0x5abf7c=await fetch(_0xc6138f,{'method':'POST','headers':_0x1428f8,'body':JSON['stringify'](_0x6d1794)});if(!_0x5abf7c['ok']){const _0x134c69=await _0x5abf7c[_0x5ed6f4(0x232)]();throw new Error('HTTP\x20'+_0x5abf7c['status']+':\x20'+_0x134c69);}return parseResponse(_0x5abf7c);};process['stdout'][_0x266a17(0x213)](_0x4c4ebf[_0x266a17(0x217)]);const _0x3cf839=await _0x5815b4({'jsonrpc':_0x4c4ebf[_0x266a17(0x250)],'id':0x1,'method':_0x4c4ebf['DlDsd'],'params':{'protocolVersion':_0x266a17(0x1f2),'capabilities':{},'clientInfo':{'name':_0x4c4ebf['cdAVU'],'version':_0x266a17(0x1c8)}}});if(_0x3cf839['error'])throw new Error(_0x266a17(0x1de)+(_0x3cf839[_0x266a17(0x22e)][_0x266a17(0x229)]??JSON['stringify'](_0x3cf839[_0x266a17(0x22e)])));console[_0x266a17(0x233)](_0x4c4ebf['viZRQ']),await _0x4c4ebf[_0x266a17(0x24c)](fetch,_0xc6138f,{'method':_0x266a17(0x21d),'headers':_0x1428f8,'body':JSON[_0x266a17(0x20c)]({'jsonrpc':_0x4c4ebf['bvacV'],'method':'notifications/initialized'})})['then'](_0x35c63b=>_0x35c63b['text']()),process['stdout']['write'](_0x266a17(0x1cd));const _0x334240=await _0x5815b4({'jsonrpc':_0x4c4ebf['bvacV'],'id':0x2,'method':_0x4c4ebf[_0x266a17(0x1fc)],'params':{'name':_0x266a17(0x1c2),'arguments':{}}});if(_0x334240['error'])throw new Error(_0x266a17(0x1db)+(_0x334240['error']['message']??JSON[_0x266a17(0x20c)](_0x334240['error'])));console[_0x266a17(0x233)](_0x4c4ebf['viZRQ']);const _0x225a91=extractToken(_0x334240[_0x266a17(0x1e2)]);if(!_0x225a91){console['error']('\x0aUnexpected\x20response\x20structure:'),console['error'](JSON['stringify'](_0x334240['result'],null,0x2));throw new Error(_0x266a17(0x23a));}const _0x1f11b5=_0x4c4ebf['vOknf'](join,_0x4c4ebf[_0x266a17(0x248)](homedir),'.ranger'),_0x227186=_0x4c4ebf['vOknf'](join,_0x1f11b5,_0x4c4ebf['nCyQV']);await mkdir(_0x1f11b5,{'recursive':!![]}),await writeFile(_0x227186,_0x225a91,{'mode':0x180}),await _0x4c4ebf[_0x266a17(0x24d)](writeFile,join(_0x1f11b5,_0x4c4ebf[_0x266a17(0x22d)]),_0xc6138f,{'mode':0x180}),console[_0x266a17(0x233)](_0x266a17(0x1e5)+_0x227186),console[_0x266a17(0x233)]('Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a');}async function fetchAuthServerMetadata(_0x48e22c){const _0x41302d=_0x492db1,_0x2a79aa={'qZhgO':function(_0x10a58d,_0x32d855){return _0x10a58d(_0x32d855);}},_0x52650f=_0x48e22c+'/.well-known/oauth-authorization-server',_0x33a3cf=await _0x2a79aa[_0x41302d(0x209)](fetch,_0x52650f);if(!_0x33a3cf['ok'])throw new Error(_0x41302d(0x1ce)+_0x52650f+':\x20'+_0x33a3cf['status']);return _0x33a3cf[_0x41302d(0x1ef)]();}function waitForCallback(_0x32a8ae){const _0x4ad0e6=_0x492db1,_0x2105da={'uwEqG':function(_0x1c90d1,_0x6616df){return _0x1c90d1(_0x6616df);},'wwpeG':function(_0x3ac3d5,_0x16f428){return _0x3ac3d5!==_0x16f428;},'jefYj':'Not\x20found','gShgt':_0x4ad0e6(0x1ca),'WvfTp':_0x4ad0e6(0x1fb)};return new Promise((_0xf0a050,_0x4c25cd)=>{const _0x5c732e=_0x4ad0e6,_0x305dbc={'ZSGGa':function(_0x26ea49,_0x2cdbc8){const _0x26473b=_0xf6d4;return _0x2105da[_0x26473b(0x1ee)](_0x26ea49,_0x2cdbc8);},'FehSo':_0x2105da['jefYj'],'OjiJH':_0x2105da['gShgt'],'XnjRv':_0x5c732e(0x22e),'ijIUw':_0x5c732e(0x22b),'btwSE':function(_0x2c1811,_0x1d366a){return _0x2c1811(_0x1d366a);},'uqtSw':'text/html','tryqI':function(_0x3e7da3,_0x123fdd){return _0x3e7da3(_0x123fdd);}},_0x5b5670=setTimeout(()=>{_0x519932['close'](),_0x2105da['uwEqG'](_0x4c25cd,new OAuthTimeoutError('OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes'));},0x1d4c0),_0x519932=createServer((_0x40e9b1,_0x25539e)=>{const _0x23a43e=_0x5c732e,_0x42db5f=new URL(_0x40e9b1[_0x23a43e(0x208)]??'/','http://localhost:'+CALLBACK_PORT);if(_0x305dbc[_0x23a43e(0x1eb)](_0x42db5f[_0x23a43e(0x1e7)],_0x23a43e(0x24f))){_0x25539e['writeHead'](0x194),_0x25539e[_0x23a43e(0x1e6)](_0x305dbc['FehSo']);return;}const _0x4a6e10=_0x42db5f['searchParams'][_0x23a43e(0x202)](_0x23a43e(0x247)),_0x3b7378=_0x42db5f['searchParams']['get'](_0x305dbc[_0x23a43e(0x24a)]),_0x313cd5=_0x42db5f['searchParams'][_0x23a43e(0x202)](_0x305dbc['XnjRv']);if(_0x313cd5){const _0x48d9f7=_0x42db5f['searchParams']['get'](_0x305dbc[_0x23a43e(0x1f1)])??_0x313cd5;_0x25539e['writeHead'](0xc8,{'Content-Type':_0x23a43e(0x234)}),_0x25539e[_0x23a43e(0x1e6)](_0x23a43e(0x223)+_0x48d9f7+'</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>'),_0x305dbc[_0x23a43e(0x1fe)](clearTimeout,_0x5b5670),_0x519932['close'](),_0x4c25cd(new Error(_0x23a43e(0x220)+_0x48d9f7));return;}if(!_0x4a6e10||_0x305dbc['ZSGGa'](_0x3b7378,_0x32a8ae)){_0x25539e[_0x23a43e(0x1d6)](0x190,{'Content-Type':_0x305dbc[_0x23a43e(0x1e8)]}),_0x25539e['end'](_0x23a43e(0x25b));return;}_0x25539e[_0x23a43e(0x1d6)](0xc8,{'Content-Type':_0x23a43e(0x234)}),_0x25539e['end'](_0x23a43e(0x1c6)),clearTimeout(_0x5b5670),_0x519932[_0x23a43e(0x200)](),_0x305dbc[_0x23a43e(0x1d9)](_0xf0a050,_0x4a6e10);});_0x519932['listen'](CALLBACK_PORT,_0x2105da[_0x5c732e(0x227)]);});}async function openBrowser(_0x550a17){const _0x1bf431=_0x492db1,_0x2239de={'JcYpj':'child_process','DDeXb':function(_0x4d176a,_0x3cc023){return _0x4d176a===_0x3cc023;},'hmlQy':'win32','Rfeax':'start','Tbwob':_0x1bf431(0x25a),'RYQJH':function(_0x2b8a44,_0x23016c){return _0x2b8a44(_0x23016c);}},{exec:_0x3d996c}=await import(_0x2239de['JcYpj']),_0x1e8d3f=process[_0x1bf431(0x1ff)]==='darwin'?_0x1bf431(0x218):_0x2239de[_0x1bf431(0x215)](process['platform'],_0x2239de[_0x1bf431(0x1dc)])?_0x2239de['Rfeax']:_0x2239de['Tbwob'];_0x2239de['RYQJH'](_0x3d996c,_0x1e8d3f+'\x20\x22'+_0x550a17+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x277b09=_0x492db1,_0x23d959={'lSoFk':'utf-8'};try{const _0x29ea6f=JSON['parse'](await readFile(TOKEN_CACHE_PATH,_0x23d959[_0x277b09(0x20b)]));if(_0x29ea6f['origin']&&_0x29ea6f[_0x277b09(0x1d7)]!==currentOrigin)return null;if(_0x29ea6f['expiresAt']&&Date[_0x277b09(0x1e1)]()>_0x29ea6f[_0x277b09(0x211)])return null;return _0x29ea6f[_0x277b09(0x1c4)]??null;}catch{return null;}}async function saveCachedToken(_0x5e120a,_0x3c4607,_0x271f42){const _0x1b96ea=_0x492db1,_0x1caf7b={'kCwAo':function(_0x4bbb68,_0x23acd7){return _0x4bbb68+_0x23acd7;},'FCXyd':function(_0x303bb1,_0x46f58d){return _0x303bb1*_0x46f58d;},'vZrmO':function(_0x125cbe){return _0x125cbe();},'MKLiw':function(_0x36535a,_0x2bc62d,_0x541b89,_0x1476e0){return _0x36535a(_0x2bc62d,_0x541b89,_0x1476e0);}},_0x5ef6dc=await loadCachedData(),_0xf4216={..._0x5ef6dc,'origin':currentOrigin,'accessToken':_0x5e120a,'refreshToken':_0x3c4607??_0x5ef6dc?.[_0x1b96ea(0x1e9)],'expiresAt':_0x271f42?_0x1caf7b[_0x1b96ea(0x1cf)](Date[_0x1b96ea(0x1e1)](),_0x1caf7b[_0x1b96ea(0x1c3)](_0x271f42,0x3e8)):undefined};await mkdir(join(_0x1caf7b['vZrmO'](homedir),'.ranger'),{'recursive':!![]}),await _0x1caf7b[_0x1b96ea(0x228)](writeFile,TOKEN_CACHE_PATH,JSON[_0x1b96ea(0x20c)](_0xf4216),{'mode':0x180});}async function loadCachedClient(){const _0x185739=_0x492db1,_0x515f82={'AnYjO':function(_0x286077){return _0x286077();}},_0xe2b6b4=await _0x515f82['AnYjO'](loadCachedData);if(_0xe2b6b4?.[_0x185739(0x1d7)]&&_0xe2b6b4[_0x185739(0x1d7)]!==currentOrigin)return null;return _0xe2b6b4?.[_0x185739(0x21a)]?{'clientId':_0xe2b6b4['clientId'],'clientSecret':_0xe2b6b4[_0x185739(0x23c)]}:null;}async function clearCachedClient(){const _0x1b8557=_0x492db1,_0x28a073={'drXSo':function(_0x4fffc9){return _0x4fffc9();},'lHPRx':function(_0x419a2a,_0x5a43ff,_0x3f1827,_0x14e52d){return _0x419a2a(_0x5a43ff,_0x3f1827,_0x14e52d);}},_0x222cd9=await _0x28a073['drXSo'](loadCachedData);if(!_0x222cd9)return;const {clientId:_0xa5a0ff,clientSecret:_0x150922,..._0x4852b8}=_0x222cd9;await _0x28a073[_0x1b8557(0x201)](writeFile,TOKEN_CACHE_PATH,JSON['stringify'](_0x4852b8),{'mode':0x180});}async function saveCachedClient(_0x5d1297,_0x4f63e7){const _0x7f9e3d=_0x492db1,_0xe58bd={'gUjrt':function(_0x5d8006){return _0x5d8006();}},_0x3858cc=await loadCachedData(),_0x31c7d1={..._0x3858cc,'origin':currentOrigin,'accessToken':_0x3858cc?.[_0x7f9e3d(0x1c4)]??'','clientId':_0x5d1297,'clientSecret':_0x4f63e7};await mkdir(join(_0xe58bd[_0x7f9e3d(0x241)](homedir),_0x7f9e3d(0x203)),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON[_0x7f9e3d(0x20c)](_0x31c7d1),{'mode':0x180});}async function loadCachedData(){const _0x47ed91=_0x492db1,_0x1a9ac6={'GKYqt':function(_0x2f6912,_0x17271b,_0x1ec505){return _0x2f6912(_0x17271b,_0x1ec505);},'EVtSq':_0x47ed91(0x22a)};try{return JSON[_0x47ed91(0x20f)](await _0x1a9ac6['GKYqt'](readFile,TOKEN_CACHE_PATH,_0x1a9ac6['EVtSq']));}catch{return null;}}async function parseResponse(_0xaaa039){const _0x4c2ace=_0x492db1,_0xc56e7f={'vLCax':'text/event-stream','pgahy':_0x4c2ace(0x221),'tRbUw':function(_0xd07ac2,_0x32ac75){return _0xd07ac2!==_0x32ac75;}},_0x595cd9=_0xaaa039['headers']['get']('content-type')??'';if(_0x595cd9[_0x4c2ace(0x1f3)](_0xc56e7f['vLCax'])){const _0x11ac58=await _0xaaa039[_0x4c2ace(0x232)]();for(const _0x3c6f93 of _0x11ac58['split']('\x0a')){const _0x4df452=_0x3c6f93['trim']();if(_0x4df452[_0x4c2ace(0x219)](_0xc56e7f[_0x4c2ace(0x1f6)])){const _0x20fb3b=_0x4df452[_0x4c2ace(0x1da)](_0x4c2ace(0x221)['length'])[_0x4c2ace(0x246)]();if(!_0x20fb3b)continue;try{const _0x940010=JSON['parse'](_0x20fb3b);if(_0xc56e7f['tRbUw'](_0x940010['id'],undefined)||_0x940010['error'])return _0x940010;}catch{}}}throw new Error(_0x4c2ace(0x238));}return _0xaaa039['json']();}function extractToken(_0x5e9139){const _0x3c2d97=_0x492db1,_0xbb9db7={'QdUZE':_0x3c2d97(0x212),'MEvOw':function(_0x4d5349,_0x100306){return _0x4d5349===_0x100306;},'WSZOm':'text'};if(!_0x5e9139)return null;const _0x1d60c3=_0x5e9139[_0x3c2d97(0x1d1)];if(_0x1d60c3?.[_0x3c2d97(0x23e)]&&typeof _0x1d60c3[_0x3c2d97(0x23e)]===_0xbb9db7['QdUZE'])return _0x1d60c3[_0x3c2d97(0x23e)];if(_0x5e9139[_0x3c2d97(0x21b)]){const _0xdb4ae4=_0x5e9139['content'];throw new Error('Server\x20returned\x20error:\x20'+(_0xdb4ae4?.[0x0]?.[_0x3c2d97(0x232)]??'Unknown\x20error'));}const _0x2b2458=_0x5e9139[_0x3c2d97(0x1df)];if(_0x2b2458)for(const _0x2fb33c of _0x2b2458){if(_0xbb9db7[_0x3c2d97(0x249)](_0x2fb33c[_0x3c2d97(0x259)],_0xbb9db7['WSZOm'])&&_0x2fb33c[_0x3c2d97(0x232)]){try{const _0x272ce1=JSON[_0x3c2d97(0x20f)](_0x2fb33c['text']);if(typeof _0x272ce1?.[_0x3c2d97(0x23e)]===_0x3c2d97(0x212))return _0x272ce1[_0x3c2d97(0x23e)];}catch{}const _0x47b930=_0x2fb33c['text']['match'](/(rngr_[A-Za-z0-9_-]+)/);if(_0x47b930)return _0x47b930[0x1];}}return null;}
@@ -1 +1 @@
1
- (function(_0x5ddd12,_0x8ae4f3){const _0x57bffc=_0x555e,_0x38776e=_0x5ddd12();while(!![]){try{const _0x8125b2=-parseInt(_0x57bffc(0x209))/0x1+-parseInt(_0x57bffc(0x201))/0x2+-parseInt(_0x57bffc(0x21d))/0x3+-parseInt(_0x57bffc(0x229))/0x4*(parseInt(_0x57bffc(0x1f3))/0x5)+-parseInt(_0x57bffc(0x20a))/0x6+parseInt(_0x57bffc(0x205))/0x7*(-parseInt(_0x57bffc(0x237))/0x8)+-parseInt(_0x57bffc(0x1f9))/0x9*(-parseInt(_0x57bffc(0x215))/0xa);if(_0x8125b2===_0x8ae4f3)break;else _0x38776e['push'](_0x38776e['shift']());}catch(_0x545f33){_0x38776e['push'](_0x38776e['shift']());}}}(_0x944b,0xa0250));import{readFile,rm}from'fs/promises';import{existsSync}from'fs';import{join}from'path';function _0x555e(_0x4fb284,_0x3c5147){_0x4fb284=_0x4fb284-0x1e6;const _0x944bb2=_0x944b();let _0x555ed8=_0x944bb2[_0x4fb284];return _0x555ed8;}import _0x5e3661 from'inquirer';import{getEnvNames}from'./env.js';import{getEnvDir,loadSettings}from'./utils/settings.js';function _0x944b(){const _0x243c25=['profileName','zbWtS','some','stdout','Ygabw','status','\x20→\x20skip\x20(','54323920GVjnbZ','tePaL','fnmLk','\x20\x20⚠\x20','No\x20local\x20profiles\x20found\x20to\x20migrate.','\x20migrated\x20to\x20cloud\x20(env:\x20','log','MGLzZ','3620454HsWQBd','znybd','envKey','all','RANGER_TEST_PASSWORD','QsmAD','push','isTTY','split','\x20→\x20cloud\x20(env:\x20','no\x20matching\x20auth\x20env','preserveBaseUrl','2261412tBLxQy','trackPhaseEnd','Aborted.','\x20profile','profile.migrate.started','message',',\x20baseUrl\x20override\x20→\x20projects.json)','3|4|2|0|1','_warnings','skip','sJbBi','authJsonPath','Kfwnw',').\x20Cloud\x20profile\x20created;\x20local\x20auth.json\x20left\x20in\x20place.','3743216WtNrsf','XaysF','PjEwN',',\x20matches\x20','UIYDV',',\x20preserving\x20baseUrl\x20','ies','\x20as\x20project\x20override)',':\x20failed\x20to\x20delete\x20local\x20dir\x20',':\x20session\x20upload\x20failed\x20(','Warning:\x20.ranger/\x20is\x20tracked\x20in\x20this\x20git\x20repo.','\x20failed','environments','MLkVp','utf-8','10yxTmKF','stdin','tyovw','\x20\x20echo\x20\x27.ranger/\x27\x20>>\x20.gitignore','padEnd','zxFbN','9vjvLDr','join','\x20skipped','cwd','baseUrl','kind','Continuing\x20with\x20migration...','wlCgW','1946964grsmDs','proceed','RANGER_TEST_USERNAME','XVIOn','14PPbeSF','profile.migrate.failed','HXilf','oZiwB','308249KKseUI','1328286YZPTeB','Provide\x20a\x20profile\x20name\x20or\x20--all.\x0a\x20\x20Example:\x20ranger\x20profile\x20migrate\x20--all\x20--dry-run','gitTrackedRanger','GWGsK'];_0x944b=function(){return _0x243c25;};return _0x944b();}import{getRangerDir}from'./utils/rangerRoot.js';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(_0x505b71){const _0xb40350=_0x555e;if(_0x505b71['kind']===_0xb40350(0x232))return'\x20\x20'+_0x505b71[_0xb40350(0x20e)]['padEnd'](0x1e)+_0xb40350(0x214)+_0x505b71['reason']+')';if(_0x505b71[_0xb40350(0x228)]&&_0x505b71['baseUrl'])return'\x20\x20'+_0x505b71[_0xb40350(0x20e)][_0xb40350(0x1f7)](0x1e)+'\x20→\x20cloud\x20(env:\x20'+_0x505b71['envKey']+_0xb40350(0x1e9)+_0x505b71['baseUrl']+_0xb40350(0x1eb);if(_0x505b71[_0xb40350(0x1fd)])return'\x20\x20'+_0x505b71[_0xb40350(0x20e)]['padEnd'](0x1e)+_0xb40350(0x226)+_0x505b71[_0xb40350(0x21f)]+_0xb40350(0x1e7)+_0x505b71[_0xb40350(0x1fd)]+')';return'\x20\x20'+_0x505b71[_0xb40350(0x20e)]['padEnd'](0x1e)+'\x20→\x20cloud\x20(env:\x20'+_0x505b71[_0xb40350(0x21f)]+')';}function shouldWarnGitTrackedOnce(_0x4e72c8){const _0x2d4013=_0x555e,_0x47bcc1={'znybd':function(_0x10f7c1){return _0x10f7c1();},'XsQPc':function(_0x3a4825,_0x409c91){return _0x3a4825===_0x409c91;},'XaysF':function(_0x4bcaf4,_0xefe37a){return _0x4bcaf4(_0xefe37a);}},_0x501332=_0x47bcc1[_0x2d4013(0x21e)](readProjectsConfig),_0x4551ea=_0x501332['projects'][_0x4e72c8]??={},_0x5bd18e=_0x4551ea[_0x2d4013(0x231)]??={},_0x1c6a02=_0x5bd18e['gitTrackedRanger'],_0x3f8fa8=new Date(),_0x5a6191=_0x3f8fa8['toISOString']()['slice'](0x0,0xa);if(_0x47bcc1['XsQPc'](_0x1c6a02,_0x5a6191))return![];return _0x5bd18e[_0x2d4013(0x20c)]=_0x5a6191,_0x47bcc1[_0x2d4013(0x238)](writeProjectsConfig,_0x501332),!![];}export async function migrateProfile(_0x8e54a0,_0x4d0a02){const _0x22f0dc=_0x555e,_0x37225b={'tePaL':function(_0x35090b,_0x4f9bca){return _0x35090b===_0x4f9bca;},'EyKiw':_0x22f0dc(0x20b),'zxFbN':function(_0x275ba4){return _0x275ba4();},'MGLzZ':function(_0x208ca9,_0x4ebdd3){return _0x208ca9(_0x4ebdd3);},'oZiwB':'local\x20profile\x20directory\x20not\x20found','zbWtS':function(_0x1269ef,_0x4f50ad){return _0x1269ef(_0x4f50ad);},'HXilf':_0x22f0dc(0x232),'Ygabw':'baseUrl','WTBUT':'auth.json','QsmAD':function(_0x23962b,_0x98e0ef){return _0x23962b(_0x98e0ef);},'yNQAz':'Nothing\x20migrated.\x20Run\x20without\x20--dry-run\x20to\x20apply.','sJbBi':_0x22f0dc(0x202),'QmwRH':'Proceed?','fnmLk':function(_0x33303c){return _0x33303c();},'DuEpu':function(_0x547bc7,_0x38e3a7){return _0x547bc7(_0x38e3a7);},'GWGsK':_0x22f0dc(0x1ff),'fnMcO':'\x20\x20git\x20rm\x20-r\x20--cached\x20.ranger/','PjEwN':function(_0x2dcef5,_0x41563b,_0x372a5f,_0x1d95ff){return _0x2dcef5(_0x41563b,_0x372a5f,_0x1d95ff);},'UIYDV':function(_0x57df90,_0x48861f){return _0x57df90 instanceof _0x48861f;},'MLkVp':function(_0x48dd8a,_0x1bf03d,_0x195d04){return _0x48dd8a(_0x1bf03d,_0x195d04);},'XVIOn':function(_0x1833f4,_0x25114c,_0x5b3a71){return _0x1833f4(_0x25114c,_0x5b3a71);},'fngnw':_0x22f0dc(0x206),'wlCgW':function(_0x3025d0,_0x22e524){return _0x3025d0 instanceof _0x22e524;},'Kfwnw':function(_0x1b23f,_0x57fe8c){return _0x1b23f===_0x57fe8c;},'tyovw':function(_0x32476f,_0x57aeef){return _0x32476f>_0x57aeef;}};if(!_0x8e54a0['profileName']&&!_0x8e54a0[_0x22f0dc(0x220)])throw new Error(_0x37225b['EyKiw']);let _0x30b7df;try{_0x30b7df=await _0x37225b[_0x22f0dc(0x1f8)](fetchAuthConfig);}catch(_0x29fa05){throw new Error('Could\x20not\x20fetch\x20auth\x20config\x20('+(_0x29fa05 instanceof Error?_0x29fa05['message']:String(_0x29fa05))+').\x20Run:\x20ranger\x20setup');}if(!_0x30b7df||!_0x30b7df['environments']||Object['keys'](_0x30b7df[_0x22f0dc(0x1f0)])['length']===0x0)throw new Error('No\x20cloud\x20profile\x20auth\x20config\x20found\x20for\x20this\x20org.\x20Migration\x20requires\x20at\x20least\x20one\x20configured\x20auth\x20environment.');const _0x4ad5e1=[];if(_0x8e54a0[_0x22f0dc(0x220)]){const {envNames:_0x187307,envTypes:_0x51d2fc}=await _0x37225b[_0x22f0dc(0x1f8)](getEnvNames);for(const _0x49ff29 of _0x187307){if(_0x37225b[_0x22f0dc(0x216)](_0x51d2fc[_0x49ff29],'ci'))continue;_0x4ad5e1[_0x22f0dc(0x223)](_0x49ff29);}}else _0x8e54a0['profileName']&&_0x4ad5e1[_0x22f0dc(0x223)](_0x8e54a0[_0x22f0dc(0x20e)]);if(_0x37225b['tePaL'](_0x4ad5e1['length'],0x0)){console[_0x22f0dc(0x21b)](_0x22f0dc(0x219));return;}const _0xd3acaf=[];for(const _0x4a2e00 of _0x4ad5e1){const _0x4fe9ec=_0x37225b['MGLzZ'](getEnvDir,_0x4a2e00);if(!existsSync(_0x4fe9ec)){_0xd3acaf['push']({'kind':'skip','profileName':_0x4a2e00,'reason':_0x37225b[_0x22f0dc(0x208)]});continue;}const _0x312c39=await _0x37225b[_0x22f0dc(0x20f)](loadSettings,_0x4a2e00),_0x5e4ec9=_0x312c39['baseUrl'];if(!_0x5e4ec9){_0xd3acaf[_0x22f0dc(0x223)]({'kind':_0x37225b[_0x22f0dc(0x207)],'profileName':_0x4a2e00,'reason':'no\x20baseUrl\x20in\x20settings.json'});continue;}const _0x5e45c8=matchAuthEnvironment(_0x5e4ec9,_0x30b7df);if(!_0x5e45c8){_0xd3acaf[_0x22f0dc(0x223)]({'kind':_0x22f0dc(0x232),'profileName':_0x4a2e00,'reason':_0x22f0dc(0x227)});continue;}const _0x43b494=_0x30b7df[_0x22f0dc(0x1f0)][_0x5e45c8],_0xf7c5d2=_0x43b494?.['domains']??[],_0x13c7f7=_0xf7c5d2['some'](_0x3a8fe8=>{const _0x3d8863=_0x22f0dc;try{return _0x37225b[_0x3d8863(0x216)](new URL(_0x3a8fe8)['origin'],new URL(_0x5e4ec9)['origin']);}catch{return![];}}),_0x48164d={};for(const [_0x564fbe,_0x43a693]of Object['entries'](_0x312c39)){if(_0x37225b[_0x22f0dc(0x216)](_0x564fbe,_0x37225b[_0x22f0dc(0x212)]))continue;if(_0x43a693===undefined)continue;_0x48164d[_0x564fbe]=_0x43a693;}!_0x13c7f7&&(_0x48164d['baseUrl']=_0x5e4ec9);const _0x501d99=join(_0x4fe9ec,_0x37225b['WTBUT']),_0x21d107=_0x37225b[_0x22f0dc(0x222)](existsSync,_0x501d99);_0xd3acaf['push']({'kind':'migrate','profileName':_0x4a2e00,'envKey':_0x5e45c8,'baseUrl':_0x5e4ec9,'preserveBaseUrl':!_0x13c7f7,'settings':_0x48164d,'authJsonPath':_0x21d107?_0x501d99:null});}console['log']('Plan:');for(const _0xd831fe of _0xd3acaf){console[_0x22f0dc(0x21b)](formatPlanLine(_0xd831fe));}if(_0x8e54a0['dryRun']){console[_0x22f0dc(0x21b)](_0x37225b['yNQAz']);return;}const _0x17c9a7=Boolean(process[_0x22f0dc(0x1f4)][_0x22f0dc(0x224)]&&process[_0x22f0dc(0x211)][_0x22f0dc(0x224)]),_0x319104=_0xd3acaf[_0x22f0dc(0x210)](_0x3f419d=>_0x3f419d[_0x22f0dc(0x1fe)]==='migrate');if(_0x319104&&_0x17c9a7&&!_0x8e54a0['yes']){const {proceed:_0x54e28c}=await _0x5e3661['prompt']([{'type':'confirm','name':_0x37225b[_0x22f0dc(0x233)],'message':_0x37225b['QmwRH'],'default':![]}]);if(!_0x54e28c){console[_0x22f0dc(0x21b)](_0x22f0dc(0x22b));return;}}const _0x2d47d6=_0x37225b[_0x22f0dc(0x217)](getRangerDir);let _0x522a58=![];if(existsSync(_0x2d47d6))try{_0x522a58=await _0x37225b['MGLzZ'](isPathGitTracked,_0x2d47d6);}catch{_0x522a58=![];}if(_0x522a58&&_0x37225b['DuEpu'](shouldWarnGitTrackedOnce,process[_0x22f0dc(0x1fc)]())){const _0x36df03=_0x22f0dc(0x230)[_0x22f0dc(0x225)]('|');let _0x3e840d=0x0;while(!![]){switch(_0x36df03[_0x3e840d++]){case'0':console[_0x22f0dc(0x21b)](_0x22f0dc(0x1f6));continue;case'1':console['log'](_0x37225b[_0x22f0dc(0x20d)]);continue;case'2':console[_0x22f0dc(0x21b)](_0x37225b['fnMcO']);continue;case'3':console['log'](_0x22f0dc(0x1ee));continue;case'4':console['log']('After\x20migration,\x20uncommit\x20it:');continue;}break;}}let _0x4da287=0x0,_0x3d2cd1=0x0,_0x13753a=0x0,_0x595edd=0x0;for(const _0x2a1546 of _0xd3acaf){if(_0x2a1546['kind']===_0x37225b['HXilf']){_0x595edd++,_0x4d0a02?.['trackPhaseEnd']('profile.migrate.skipped',{'profileName':_0x2a1546[_0x22f0dc(0x20e)],'reason':_0x2a1546['reason']});continue;}_0x4d0a02?.['trackPhaseStart'](_0x22f0dc(0x22d),{'profileName':_0x2a1546['profileName'],'envKey':_0x2a1546['envKey']});try{try{await _0x37225b[_0x22f0dc(0x1e6)](createCloudProfile,_0x2a1546['profileName'],_0x2a1546['envKey'],{'settings':_0x2a1546['settings']});}catch(_0x49b9c5){if(_0x37225b[_0x22f0dc(0x1e8)](_0x49b9c5,ApiError)&&_0x49b9c5[_0x22f0dc(0x213)]===0x199){console['log'](_0x22f0dc(0x218)+_0x2a1546[_0x22f0dc(0x20e)]+':\x20cloud\x20profile\x20with\x20this\x20name\x20already\x20exists.\x20Skipping.'),_0x595edd++,_0x4d0a02?.[_0x22f0dc(0x22a)]('profile.migrate.skipped',{'profileName':_0x2a1546[_0x22f0dc(0x20e)],'reason':'name_conflict'});continue;}throw _0x49b9c5;}let _0x410a3a=![],_0x3c589d=![];if(_0x2a1546['authJsonPath'])try{const _0x435563=await _0x37225b[_0x22f0dc(0x1f1)](readFile,_0x2a1546[_0x22f0dc(0x234)],_0x22f0dc(0x1f2)),_0x5a49ef=JSON['parse'](_0x435563);await _0x37225b[_0x22f0dc(0x204)](uploadCloudProfileSession,_0x2a1546[_0x22f0dc(0x20e)],_0x5a49ef),_0x410a3a=!![];}catch(_0xc19ad6){_0x3c589d=!![],console['log']('\x20\x20⚠\x20'+_0x2a1546[_0x22f0dc(0x20e)]+_0x22f0dc(0x1ed)+(_0xc19ad6 instanceof Error?_0xc19ad6[_0x22f0dc(0x22e)]:_0x37225b['zbWtS'](String,_0xc19ad6))+_0x22f0dc(0x236));}let _0x402e0c=![];if(_0x8e54a0['saveCreds']){const _0x4c2c82=process['env'][_0x22f0dc(0x203)],_0x16f080=process['env'][_0x22f0dc(0x221)];if(_0x4c2c82&&_0x16f080)try{await saveCloudProfileCredentials(_0x2a1546[_0x22f0dc(0x20e)],_0x4c2c82,_0x16f080),_0x402e0c=!![];}catch(_0x234846){console[_0x22f0dc(0x21b)]('\x20\x20⚠\x20'+_0x2a1546[_0x22f0dc(0x20e)]+':\x20failed\x20to\x20save\x20credentials\x20('+(_0x234846 instanceof Error?_0x234846[_0x22f0dc(0x22e)]:String(_0x234846))+').');}else console[_0x22f0dc(0x21b)](_0x22f0dc(0x218)+_0x2a1546[_0x22f0dc(0x20e)]+':\x20--save-creds\x20requested,\x20but\x20RANGER_TEST_USERNAME/PASSWORD\x20not\x20set\x20in\x20env.');}if(_0x2a1546['preserveBaseUrl']&&_0x2a1546[_0x22f0dc(0x1fd)])try{setProfileOverride(process['cwd'](),_0x2a1546['profileName'],_0x37225b['Ygabw'],_0x2a1546['baseUrl']);}catch(_0x2e59b5){console['log'](_0x22f0dc(0x218)+_0x2a1546[_0x22f0dc(0x20e)]+':\x20failed\x20to\x20write\x20projects.json\x20override\x20('+(_0x37225b[_0x22f0dc(0x1e8)](_0x2e59b5,Error)?_0x2e59b5[_0x22f0dc(0x22e)]:_0x37225b[_0x22f0dc(0x21c)](String,_0x2e59b5))+').');}const _0x5c4e66=getEnvDir(_0x2a1546['profileName']);if(!_0x3c589d&&existsSync(_0x5c4e66))try{await rm(_0x5c4e66,{'recursive':!![],'force':!![]}),_0x3d2cd1++;}catch(_0x59ccef){console['log'](_0x22f0dc(0x218)+_0x2a1546['profileName']+_0x22f0dc(0x1ec)+_0x5c4e66+'\x20('+(_0x59ccef instanceof Error?_0x59ccef[_0x22f0dc(0x22e)]:String(_0x59ccef))+').');}_0x4da287++,_0x2a1546['preserveBaseUrl']&&_0x2a1546[_0x22f0dc(0x1fd)]?console['log']('\x20\x20✓\x20'+_0x2a1546[_0x22f0dc(0x20e)]+_0x22f0dc(0x21a)+_0x2a1546[_0x22f0dc(0x21f)]+_0x22f0dc(0x22f)):console['log']('\x20\x20✓\x20'+_0x2a1546['profileName']+_0x22f0dc(0x21a)+_0x2a1546[_0x22f0dc(0x21f)]+')'),_0x4d0a02?.['trackPhaseEnd']('profile.migrate.succeeded',{'profileName':_0x2a1546['profileName'],'envKey':_0x2a1546[_0x22f0dc(0x21f)],'wasGitTracked':_0x522a58,'hadSession':_0x410a3a,'savedCreds':_0x402e0c});}catch(_0x1edbd0){_0x13753a++,console[_0x22f0dc(0x21b)]('\x20\x20✗\x20'+_0x2a1546['profileName']+'\x20failed:\x20'+(_0x1edbd0 instanceof Error?_0x1edbd0['message']:String(_0x1edbd0))),_0x4d0a02?.['trackPhaseEnd'](_0x37225b['fngnw'],{'profileName':_0x2a1546[_0x22f0dc(0x20e)],'error':_0x37225b[_0x22f0dc(0x200)](_0x1edbd0,Error)?_0x1edbd0[_0x22f0dc(0x22e)]:String(_0x1edbd0)});}}const _0x25df55=[];if(_0x4da287>0x0)_0x25df55[_0x22f0dc(0x223)](_0x4da287+_0x22f0dc(0x22c)+(_0x37225b['Kfwnw'](_0x4da287,0x1)?'':'s')+'\x20migrated');if(_0x37225b['tyovw'](_0x3d2cd1,0x0))_0x25df55[_0x22f0dc(0x223)]('Deleted\x20'+_0x3d2cd1+'\x20local\x20director'+(_0x37225b[_0x22f0dc(0x235)](_0x3d2cd1,0x1)?'y':_0x22f0dc(0x1ea)));if(_0x37225b[_0x22f0dc(0x1f5)](_0x595edd,0x0))_0x25df55['push'](_0x595edd+_0x22f0dc(0x1fb));if(_0x13753a>0x0)_0x25df55[_0x22f0dc(0x223)](_0x13753a+_0x22f0dc(0x1ef));if(_0x25df55['length']>0x0)console['log'](_0x25df55[_0x22f0dc(0x1fa)]('.\x20')+'.');}
1
+ function _0x5c42(_0x3b4041,_0x5b7201){_0x3b4041=_0x3b4041-0xd8;var _0x3ea9bf=_0x3ea9();var _0x5c4221=_0x3ea9bf[_0x3b4041];return _0x5c4221;}(function(_0x4d4a70,_0x1dd338){var _0x4b1b63=_0x5c42,_0x53ccdf=_0x4d4a70();while(!![]){try{var _0x56048f=parseInt(_0x4b1b63(0xd9))/0x1*(parseInt(_0x4b1b63(0xdd))/0x2)+-parseInt(_0x4b1b63(0xde))/0x3*(-parseInt(_0x4b1b63(0xeb))/0x4)+-parseInt(_0x4b1b63(0xdc))/0x5+-parseInt(_0x4b1b63(0xe3))/0x6*(-parseInt(_0x4b1b63(0xdb))/0x7)+parseInt(_0x4b1b63(0xea))/0x8*(parseInt(_0x4b1b63(0xe1))/0x9)+parseInt(_0x4b1b63(0xe2))/0xa*(parseInt(_0x4b1b63(0xd8))/0xb)+-parseInt(_0x4b1b63(0xe0))/0xc;if(_0x56048f===_0x1dd338)break;else _0x53ccdf['push'](_0x53ccdf['shift']());}catch(_0x507a35){_0x53ccdf['push'](_0x53ccdf['shift']());}}}(_0x3ea9,0xc3102));export async function migrateProfile(_0x3809c5,_0x230672){var _0x1c3ce3=_0x5c42,_0x5f59de={'kBmSR':function(_0x195dc1,_0x2c4cd0){return _0x195dc1+_0x2c4cd0;},'CeBvD':function(_0x2cf836,_0x5447be){return _0x2cf836+_0x5447be;},'XawXK':function(_0x156fc1,_0x4c2b5d){return _0x156fc1+_0x4c2b5d;},'hUmRI':function(_0x315aff,_0x964154){return _0x315aff+_0x964154;},'tUcTG':'Re-auth\x20via\x20the\x20new\x20flow:\x0a','qsmeQ':'\x20\x20•\x20username/password:\x20RANGER_TEST_USERNAME=...\x20RANGER_TEST_PASSWORD=...\x20ranger\x20go\x20--url\x20<url>\x0a','FNlur':_0x1c3ce3(0xda),'PRCBE':'Delete\x20them\x20once\x20you\x20have\x20re-auth-ed.\x0a','jJNwy':'Reference:\x20docs/feature/cloud-profiles-old-vs-new-structure.md'};console['error'](_0x5f59de['kBmSR'](_0x5f59de[_0x1c3ce3(0xe7)](_0x5f59de['XawXK'](_0x5f59de['kBmSR'](_0x5f59de[_0x1c3ce3(0xdf)](_0x5f59de['CeBvD'](_0x5f59de[_0x1c3ce3(0xdf)](_0x5f59de[_0x1c3ce3(0xe9)]('ranger\x20profile\x20migrate\x20is\x20no\x20longer\x20supported.\x0a','\x0a'),'Cloud\x20profiles\x20are\x201:1\x20with\x20accounts;\x20legacy\x20profile\x20names\x20'),'aren\x27t\x20account-keyed\x20and\x20session\x20state\x20can\x27t\x20be\x20mapped\x20cleanly.\x0a')+'\x0a'+_0x5f59de[_0x1c3ce3(0xe6)],_0x5f59de[_0x1c3ce3(0xe5)]),_0x5f59de['FNlur']),'\x0a'),_0x1c3ce3(0xec))+_0x5f59de['PRCBE']+'\x0a',_0x5f59de[_0x1c3ce3(0xe8)])),process[_0x1c3ce3(0xe4)](0x1);}function _0x3ea9(){var _0x59b32a=['4gawIdS','3tgxYUi','XawXK','9245700zTKMZF','103941Jlfhkm','2140KhHmIx','779238PsuAjo','exit','qsmeQ','tUcTG','CeBvD','jJNwy','hUmRI','136mxNNmk','3400672RehBuS','Legacy\x20<project>/.ranger/\x20dirs\x20stay\x20readable\x20during\x20the\x20alpha.\x20','43648YbPlrk','16103CRWvIn','\x20\x20•\x20SSO/OAuth:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20ranger\x20profile\x20add\x20<account-email>\x0a','49ldjVZw','6337585byrtAq'];_0x3ea9=function(){return _0x59b32a;};return _0x3ea9();}