@ranger-testing/ranger-cli 2.5.4-alpha.a98f848-6 → 2.5.4-alpha.b2ba935-13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/README.md +36 -14
  2. package/build/cli.js +1 -1
  3. package/build/commands/addEnv.js +1 -1
  4. package/build/commands/authEncrypt.js +1 -1
  5. package/build/commands/clean.js +1 -1
  6. package/build/commands/config.js +1 -1
  7. package/build/commands/env.js +1 -1
  8. package/build/commands/feature.js +1 -1
  9. package/build/commands/hook.js +1 -1
  10. package/build/commands/hooks/autoPrompt.js +1 -1
  11. package/build/commands/hooks/disable.js +1 -1
  12. package/build/commands/hooks/enable.js +1 -1
  13. package/build/commands/hooks/exitPlanMode.js +1 -1
  14. package/build/commands/hooks/index.js +1 -1
  15. package/build/commands/hooks/output.js +1 -1
  16. package/build/commands/hooks/planReminder.js +1 -1
  17. package/build/commands/hooks/planStart.js +1 -1
  18. package/build/commands/hooks/postEdit.js +1 -1
  19. package/build/commands/hooks/preCompact.js +1 -1
  20. package/build/commands/hooks/sessionEnd.js +1 -1
  21. package/build/commands/hooks/sessionStart.js +1 -1
  22. package/build/commands/hooks/stopHook.js +1 -1
  23. package/build/commands/index.js +1 -1
  24. package/build/commands/login.js +1 -1
  25. package/build/commands/mcpBootstrap.js +1 -1
  26. package/build/commands/migrateProfile.js +1 -1
  27. package/build/commands/setup/claude.js +1 -1
  28. package/build/commands/setup/opencode.js +1 -1
  29. package/build/commands/setupCi.js +1 -1
  30. package/build/commands/skillup.js +1 -1
  31. package/build/commands/start.js +1 -1
  32. package/build/commands/status.js +1 -1
  33. package/build/commands/update.js +1 -1
  34. package/build/commands/updateEnv.js +1 -1
  35. package/build/commands/useEnv.js +1 -1
  36. package/build/commands/utils/activeProfile.js +1 -1
  37. package/build/commands/utils/agentEnv.js +1 -1
  38. package/build/commands/utils/browserSessionsApi.js +1 -1
  39. package/build/commands/utils/claudeConfig.js +1 -1
  40. package/build/commands/utils/claudeOverrideSettings.js +1 -1
  41. package/build/commands/utils/claudePlugin.js +1 -1
  42. package/build/commands/utils/cloudProfile.js +1 -1
  43. package/build/commands/utils/cloudProfileSession.js +1 -1
  44. package/build/commands/utils/crypto.js +1 -1
  45. package/build/commands/utils/desirePathLog.js +1 -1
  46. package/build/commands/utils/deviceAuth.js +1 -1
  47. package/build/commands/utils/environment.js +1 -1
  48. package/build/commands/utils/featureApi.js +1 -1
  49. package/build/commands/utils/fixWebmDuration.js +1 -1
  50. package/build/commands/utils/gitTracked.js +1 -1
  51. package/build/commands/utils/keychain.js +1 -1
  52. package/build/commands/utils/legacyWarning.js +1 -0
  53. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  54. package/build/commands/utils/matchAuthEnvironment.js +1 -1
  55. package/build/commands/utils/mcpImageBase64.js +1 -1
  56. package/build/commands/utils/model.js +1 -1
  57. package/build/commands/utils/opencodeConfig.js +1 -1
  58. package/build/commands/utils/playwrightCli.js +1 -1
  59. package/build/commands/utils/profileMessages.js +1 -1
  60. package/build/commands/utils/profileSetupBanner.js +1 -1
  61. package/build/commands/utils/projectsConfig.js +1 -1
  62. package/build/commands/utils/rangerConfig.js +1 -1
  63. package/build/commands/utils/rangerRoot.js +1 -1
  64. package/build/commands/utils/resolveProfileContext.js +1 -1
  65. package/build/commands/utils/resolveProfileUrl.js +1 -1
  66. package/build/commands/utils/retry.js +1 -1
  67. package/build/commands/utils/sessionCache.js +1 -1
  68. package/build/commands/utils/settings.js +1 -1
  69. package/build/commands/utils/skillContent.js +1 -1
  70. package/build/commands/utils/skills.js +1 -1
  71. package/build/commands/utils/stitchWebmFiles.js +1 -1
  72. package/build/commands/utils/telemetry.js +1 -1
  73. package/build/commands/utils/tokenRefresh.js +1 -1
  74. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  75. package/build/commands/utils/userApi.js +1 -1
  76. package/build/commands/utils/version.js +1 -1
  77. package/build/commands/verifyFeature.js +1 -1
  78. package/build/commands/verifyFeatureCli.js +1 -1
  79. package/build/skills/ranger/SKILL.md +24 -8
  80. package/build/skills/ranger/create.md +16 -3
  81. package/build/skills/ranger/verify.md +37 -18
  82. package/package.json +1 -1
@@ -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(_0x55473b,_0x14161b){const _0x34841b=_0x5cb4,_0xa3e794=_0x55473b();while(!![]){try{const _0x5b12c6=-parseInt(_0x34841b(0x98))/0x1*(parseInt(_0x34841b(0x8e))/0x2)+-parseInt(_0x34841b(0x97))/0x3+-parseInt(_0x34841b(0x91))/0x4+-parseInt(_0x34841b(0x90))/0x5+parseInt(_0x34841b(0x95))/0x6*(-parseInt(_0x34841b(0x8a))/0x7)+-parseInt(_0x34841b(0x8b))/0x8*(parseInt(_0x34841b(0x96))/0x9)+parseInt(_0x34841b(0x94))/0xa;if(_0x5b12c6===_0x14161b)break;else _0xa3e794['push'](_0xa3e794['shift']());}catch(_0x4f3b14){_0xa3e794['push'](_0xa3e794['shift']());}}}(_0x1dee,0x30ce2));import{sessionStart,sessionEnd,preCompact,postEdit,planStart,planReminder,exitPlanMode,stopHook,enable,disable,autoPrompt}from'./hooks/index.js';function _0x5cb4(_0x54772b,_0xed8847){_0x54772b=_0x54772b-0x8a;const _0x1dee1e=_0x1dee();let _0x5cb46f=_0x1dee1e[_0x54772b];return _0x5cb46f;}function _0x1dee(){const _0x368401=['17331270bwZAdi','24fUyAgk','1366992owneoz','513222QgvdOQ','283141agPJMP','491785adpxYA','8QBWyAa','Valid\x20hooks:\x20','MOooS','2SifYUn','once','1827760FzzQit','1122184kmHOzo','Unknown\x20hook:\x20','SIGINT'];_0x1dee=function(){return _0x368401;};return _0x1dee();}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 _0x433abf=_0x5cb4,_0x50f90f={'MOooS':'SIGTERM'};if(cancellationHandlersInstalled)return;const _0x815353=()=>{process['exit'](0x0);};process[_0x433abf(0x8f)](_0x433abf(0x93),_0x815353),process[_0x433abf(0x8f)](_0x50f90f[_0x433abf(0x8d)],_0x815353),process[_0x433abf(0x8f)]('SIGHUP',_0x815353),cancellationHandlersInstalled=!![];}export async function hook(_0x2b5fc1,_0xddc0e9){const _0x34f817=_0x5cb4;installCancellationHandlers();const _0x23142f=HOOKS[_0x2b5fc1];if(!_0x23142f){const _0x510dc3=Object['keys'](HOOKS)['join'](',\x20');console['error'](_0x34f817(0x92)+_0x2b5fc1),console['error'](_0x34f817(0x8c)+_0x510dc3),process['exit'](0x1);}await _0x23142f(_0xddc0e9);}
@@ -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 _0x12c2e9=_0x2698;function _0x2698(_0x536104,_0x512022){_0x536104=_0x536104-0x185;const _0x68b677=_0x68b6();let _0x26988f=_0x68b677[_0x536104];return _0x26988f;}(function(_0x2dbc51,_0x19c297){const _0x218b90=_0x2698,_0xf4ecd5=_0x2dbc51();while(!![]){try{const _0x57f0c5=-parseInt(_0x218b90(0x18a))/0x1*(parseInt(_0x218b90(0x186))/0x2)+parseInt(_0x218b90(0x18d))/0x3+-parseInt(_0x218b90(0x191))/0x4+-parseInt(_0x218b90(0x18f))/0x5+parseInt(_0x218b90(0x190))/0x6*(-parseInt(_0x218b90(0x18b))/0x7)+parseInt(_0x218b90(0x189))/0x8*(-parseInt(_0x218b90(0x187))/0x9)+parseInt(_0x218b90(0x188))/0xa;if(_0x57f0c5===_0x19c297)break;else _0xf4ecd5['push'](_0xf4ecd5['shift']());}catch(_0x37a496){_0xf4ecd5['push'](_0xf4ecd5['shift']());}}}(_0x68b6,0x3810b));import{readHookInput}from'./output.js';import{isSessionEnabled,hasSessionBeenPrompted,markSessionPrompted}from'../utils/sessionCache.js';const AUTO_PROMPT_TEXT=_0x12c2e9(0x185);function _0x68b6(){const _0x3f6017=['GVOmO','593130hQKELn','6VBHplg','315148xotOzG','\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.','96168ufPboa','4075389jUGtVT','7194190SNxhyw','8oDzhsG','2HNixpH','601538HwGEOS','session_id','1027680afiabp'];_0x68b6=function(){return _0x3f6017;};return _0x68b6();}export async function autoPrompt(){const _0xd42247=_0x12c2e9,_0x273fec={'GVOmO':function(_0x281335,_0x45712a){return _0x281335(_0x45712a);},'BEjbo':function(_0x78826,_0x790159){return _0x78826(_0x790159);}},_0x30c1b5=await readHookInput(),_0x28f990=_0x30c1b5?.[_0xd42247(0x18c)];if(!_0x28f990)return;if(_0x273fec[_0xd42247(0x18e)](isSessionEnabled,_0x28f990)||hasSessionBeenPrompted(_0x28f990))return;_0x273fec['BEjbo'](markSessionPrompted,_0x28f990),console['log'](AUTO_PROMPT_TEXT);}
@@ -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(_0x30a589,_0x39c903){const _0xb0452a=_0x4a0b,_0xc0ea21=_0x30a589();while(!![]){try{const _0x1d5c53=parseInt(_0xb0452a(0x1f4))/0x1+parseInt(_0xb0452a(0x1f0))/0x2+parseInt(_0xb0452a(0x1eb))/0x3*(parseInt(_0xb0452a(0x1ea))/0x4)+parseInt(_0xb0452a(0x1e8))/0x5*(parseInt(_0xb0452a(0x1ed))/0x6)+parseInt(_0xb0452a(0x1e9))/0x7*(-parseInt(_0xb0452a(0x1f2))/0x8)+parseInt(_0xb0452a(0x1e6))/0x9+-parseInt(_0xb0452a(0x1ee))/0xa;if(_0x1d5c53===_0x39c903)break;else _0xc0ea21['push'](_0xc0ea21['shift']());}catch(_0x2675f9){_0xc0ea21['push'](_0xc0ea21['shift']());}}}(_0x4fb9,0xe8b45));import{disableSession,disableBranch,getCurrentBranch}from'../utils/sessionCache.js';function _0x4fb9(){const _0x20ccb6=['205yDuFxu','7kVtbFw','12TAwLDv','1551873yUAKZG','env','56838zCbSwV','38065280qhKNPE','bZhvH','1159336rRCteN','CLAUDE_SESSION_ID','7825832UJHzUT','master','1731500ODKrYa','13378320QcGvlT','#\x20RANGER\x20DISABLED\x0a\x0aThe\x20user\x20has\x20expressly\x20disabled\x20Ranger\x20hooks\x20for\x20this\x20session'];_0x4fb9=function(){return _0x20ccb6;};return _0x4fb9();}import{printBlock}from'./output.js';function _0x4a0b(_0x1dd256,_0x2eabb3){_0x1dd256=_0x1dd256-0x1e6;const _0x4fb9c8=_0x4fb9();let _0x4a0b57=_0x4fb9c8[_0x1dd256];return _0x4a0b57;}export async function disable(_0x558cd8){const _0x196c67=_0x4a0b,_0x4cbc32={'sDGcu':'main','bZhvH':function(_0x1e12b8,_0x2984be){return _0x1e12b8(_0x2984be);},'dWfJx':function(_0x3ca98c,_0x5d67fc){return _0x3ca98c!==_0x5d67fc;}},_0x469b55=_0x558cd8||process[_0x196c67(0x1ec)][_0x196c67(0x1f1)]||'';_0x469b55&&disableSession(_0x469b55);const _0xe1af4=getCurrentBranch();_0xe1af4&&_0xe1af4!==_0x4cbc32['sDGcu']&&_0xe1af4!=='master'&&_0x4cbc32[_0x196c67(0x1ef)](disableBranch,_0xe1af4),printBlock(_0x196c67(0x1e7)+(_0xe1af4&&_0xe1af4!=='main'&&_0x4cbc32['dWfJx'](_0xe1af4,_0x196c67(0x1f3))?'\x20and\x20branch\x20\x27'+_0xe1af4+'\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(_0x4128ce,_0x34c944){const _0xb2edc2=_0x18d2,_0x5946c8=_0x4128ce();while(!![]){try{const _0x5aeb6b=parseInt(_0xb2edc2(0x191))/0x1*(-parseInt(_0xb2edc2(0x193))/0x2)+-parseInt(_0xb2edc2(0x187))/0x3*(parseInt(_0xb2edc2(0x18a))/0x4)+parseInt(_0xb2edc2(0x192))/0x5+parseInt(_0xb2edc2(0x183))/0x6+parseInt(_0xb2edc2(0x186))/0x7*(-parseInt(_0xb2edc2(0x18d))/0x8)+-parseInt(_0xb2edc2(0x188))/0x9*(parseInt(_0xb2edc2(0x18f))/0xa)+-parseInt(_0xb2edc2(0x18c))/0xb*(-parseInt(_0xb2edc2(0x194))/0xc);if(_0x5aeb6b===_0x34c944)break;else _0x5946c8['push'](_0x5946c8['shift']());}catch(_0x50a4a5){_0x5946c8['push'](_0x5946c8['shift']());}}}(_0x2863,0x7fe08));import{enableSession,getCurrentBranch}from'../utils/sessionCache.js';import{getToken}from'../utils/keychain.js';import{getRangerSkillContent}from'../utils/skillContent.js';import{printBlock}from'./output.js';import{update}from'../update.js';function _0x2863(){const _0x8d33f8=['dJpmc','14990wAqpKx','sJeum','20kdcFko','2273895XPrLtU','7988iNcPUe','16266084WKkHMl','sUzpk','TcCfj','Tcziq','4661046lJevBw','kGfKa','\x27\x20is\x20now\x20enabled**\x20-\x20Ranger\x20will\x20stay\x20active\x20on\x20this\x20branch\x20across\x20sessions.','4189346PJczGv','6LMUQRb','2853STCfYz','env','1819604uuVbHr','iIgFA','11mGcLaZ','8afptLt'];_0x2863=function(){return _0x8d33f8;};return _0x2863();}function _0x18d2(_0x5848d1,_0x2dba2a){_0x5848d1=_0x5848d1-0x180;const _0x28630d=_0x2863();let _0x18d2e3=_0x28630d[_0x5848d1];return _0x18d2e3;}export async function enable(_0x2103a1){const _0x11d744=_0x18d2,_0x5571f6={'iIgFA':function(_0x36295e,_0x38a06d){return _0x36295e(_0x38a06d);},'kGfKa':'ranger\x20setup\x20--opencode','sJeum':'ranger\x20setup','dJpmc':'Restart\x20your\x20Claude\x20Code\x20session\x20after\x20setup.','TcCfj':function(_0x4219e0){return _0x4219e0();},'Tcziq':'master','sUzpk':function(_0xa31070,_0x278924){return _0xa31070(_0x278924);}},_0xa0720=_0x2103a1||process[_0x11d744(0x189)]['CLAUDE_SESSION_ID']||'',_0x2288b4=_0x5571f6[_0x11d744(0x18b)](Boolean,_0x2103a1),_0x153b23=await getToken();if(!_0x153b23){const _0x1bafa4=_0x2288b4?_0x5571f6[_0x11d744(0x184)]:_0x5571f6[_0x11d744(0x190)],_0x474a0e=_0x2288b4?'Restart\x20your\x20OpenCode\x20session\x20after\x20setup.':_0x5571f6[_0x11d744(0x18e)];_0x5571f6[_0x11d744(0x18b)](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`'+_0x1bafa4+'`\x0a\x0aA\x20browser\x20will\x20open\x20for\x20authentication.\x20A\x20human\x20needs\x20to\x20complete\x20the\x20login.\x0a'+_0x474a0e);return;}try{await update();}catch{}_0xa0720&&enableSession(_0xa0720);const _0x2a6c61=_0x5571f6[_0x11d744(0x181)](getCurrentBranch),_0x27860b=_0x2a6c61&&_0x2a6c61!=='main'&&_0x2a6c61!==_0x5571f6[_0x11d744(0x182)]?'\x0a\x0a**Branch\x20\x27'+_0x2a6c61+_0x11d744(0x185):'',_0x22d8c2=_0x5571f6[_0x11d744(0x181)](getRangerSkillContent);_0x5571f6[_0x11d744(0x180)](printBlock,'#\x20RANGER\x20ENABLED'+_0x27860b+'\x0a\x0a**For\x20ANY\x20UI\x20work,\x20you\x20MUST\x20use\x20the\x20/ranger\x20skill.**\x0a\x0a'+_0x22d8c2+'\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 +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(_0x898b79,_0x358f5e){const _0x248020=_0xacaf,_0x5dcce4=_0x898b79();while(!![]){try{const _0x4ea2d4=-parseInt(_0x248020(0x1f0))/0x1*(-parseInt(_0x248020(0x1eb))/0x2)+parseInt(_0x248020(0x1ee))/0x3*(-parseInt(_0x248020(0x1e6))/0x4)+parseInt(_0x248020(0x1e4))/0x5*(-parseInt(_0x248020(0x1e7))/0x6)+parseInt(_0x248020(0x1ef))/0x7*(-parseInt(_0x248020(0x1e9))/0x8)+parseInt(_0x248020(0x1ea))/0x9*(parseInt(_0x248020(0x1e3))/0xa)+parseInt(_0x248020(0x1e5))/0xb*(parseInt(_0x248020(0x1ec))/0xc)+-parseInt(_0x248020(0x1e8))/0xd*(-parseInt(_0x248020(0x1ed))/0xe);if(_0x4ea2d4===_0x358f5e)break;else _0x5dcce4['push'](_0x5dcce4['shift']());}catch(_0x3d819c){_0x5dcce4['push'](_0x5dcce4['shift']());}}}(_0x30cd,0xcd233));function _0xacaf(_0x779228,_0x33c58c){_0x779228=_0x779228-0x1e2;const _0x30cdaa=_0x30cd();let _0xacaf33=_0x30cdaa[_0x779228];return _0xacaf33;}import{printBlock,getEnabledSessionId}from'./output.js';function _0x30cd(){const _0xdacd3=['175ibJJKM','802XitmBg','===\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===','1990EXKPHK','10ZQLWmd','11odzgIp','5997180PvfCey','4904154QWLOeM','140517APLSav','206192BDvSLM','56412WzWpOb','1438DguNDF','18100380qcQIvE','1666xvXdSv','3syPBhG'];_0x30cd=function(){return _0xdacd3;};return _0x30cd();}export async function exitPlanMode(_0x11cf81){const _0x141f56=_0xacaf,_0x3fa616={'NHhHu':function(_0x4cb140,_0x52598f){return _0x4cb140(_0x52598f);}},_0x340bcd=await getEnabledSessionId(_0x11cf81);if(!_0x340bcd)return;_0x3fa616['NHhHu'](printBlock,_0x141f56(0x1e2));}
@@ -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(_0x52d05b,_0x275f2c){var _0xdd1c0d=_0x1e21,_0x1d41ff=_0x52d05b();while(!![]){try{var _0x1563da=-parseInt(_0xdd1c0d(0x11d))/0x1+-parseInt(_0xdd1c0d(0x11e))/0x2*(parseInt(_0xdd1c0d(0x11b))/0x3)+-parseInt(_0xdd1c0d(0x118))/0x4*(-parseInt(_0xdd1c0d(0x119))/0x5)+parseInt(_0xdd1c0d(0x11c))/0x6+-parseInt(_0xdd1c0d(0x120))/0x7+parseInt(_0xdd1c0d(0x11f))/0x8+parseInt(_0xdd1c0d(0x11a))/0x9;if(_0x1563da===_0x275f2c)break;else _0x1d41ff['push'](_0x1d41ff['shift']());}catch(_0xf66237){_0x1d41ff['push'](_0x1d41ff['shift']());}}}(_0x19a6,0xe35f5));export{sessionStart}from'./sessionStart.js';function _0x1e21(_0x32b1e3,_0x364ad0){_0x32b1e3=_0x32b1e3-0x118;var _0x19a68b=_0x19a6();var _0x1e214f=_0x19a68b[_0x32b1e3];return _0x1e214f;}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';function _0x19a6(){var _0x46c052=['1984507hKYPzQ','4tJcCoQ','4909155EkNxWs','22250277IUpDdg','122019GLtWfv','5231202rfUcUK','1331731xRpZAC','88YEGIKf','81680ORHwzj'];_0x19a6=function(){return _0x46c052;};return _0x19a6();}export{stopHook}from'./stopHook.js';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(_0x189693,_0x4fb0dc){const _0x580a6b=_0x512e,_0x54aec0=_0x189693();while(!![]){try{const _0x44cfab=-parseInt(_0x580a6b(0x16c))/0x1+parseInt(_0x580a6b(0x16d))/0x2+-parseInt(_0x580a6b(0x16f))/0x3*(-parseInt(_0x580a6b(0x170))/0x4)+-parseInt(_0x580a6b(0x16e))/0x5+-parseInt(_0x580a6b(0x165))/0x6*(-parseInt(_0x580a6b(0x16b))/0x7)+parseInt(_0x580a6b(0x166))/0x8*(parseInt(_0x580a6b(0x168))/0x9)+-parseInt(_0x580a6b(0x164))/0xa;if(_0x44cfab===_0x4fb0dc)break;else _0x54aec0['push'](_0x54aec0['shift']());}catch(_0x212998){_0x54aec0['push'](_0x54aec0['shift']());}}}(_0x16c0,0xd4984));import{isSessionEnabled}from'../utils/sessionCache.js';export function printBlock(_0x569b56){console['log'](_0x569b56);}export async function readHookInput(){const _0x115e1=_0x512e;let _0x591857='';try{for await(const _0x36d79c of process[_0x115e1(0x169)]){_0x591857+=_0x36d79c;}}catch{return null;}if(!_0x591857['trim']())return null;try{return JSON[_0x115e1(0x16a)](_0x591857);}catch{return null;}}function _0x16c0(){const _0x53015d=['NZNDQ','9TdAsmW','stdin','parse','5638136OtHmHV','443225tzWiKT','787910xyqQGR','6597150yPjQIR','93189hKtRDZ','212UCTUfZ','xvHfP','session_id','6844580IHchDY','6zgpTch','3777272gxigoH'];_0x16c0=function(){return _0x53015d;};return _0x16c0();}export async function getEnabledSessionId(_0x3c7938){const _0xf41018=_0x512e,_0x261e1a={'NZNDQ':function(_0xc8dc14){return _0xc8dc14();},'lPeGg':function(_0x237b06,_0x18589e){return _0x237b06(_0x18589e);}};if(_0x3c7938)return isSessionEnabled(_0x3c7938)?_0x3c7938:null;const _0x413126=await _0x261e1a[_0xf41018(0x167)](readHookInput),_0x5054bd=_0x413126?.[_0xf41018(0x163)];if(!_0x5054bd||!_0x261e1a['lPeGg'](isSessionEnabled,_0x5054bd))return null;return _0x5054bd;}function _0x512e(_0x25854e,_0x5e4d83){_0x25854e=_0x25854e-0x163;const _0x16c0f7=_0x16c0();let _0x512e84=_0x16c0f7[_0x25854e];return _0x512e84;}export async function getEnabledHookContext(_0x5d04f2){const _0x371e90=_0x512e,_0x2914ab={'xvHfP':function(_0x57b4be,_0x9ae9f7){return _0x57b4be(_0x9ae9f7);}};if(_0x5d04f2){if(!_0x2914ab[_0x371e90(0x171)](isSessionEnabled,_0x5d04f2))return null;return{'sessionId':_0x5d04f2,'input':{'session_id':_0x5d04f2}};}const _0x43cc2f=await readHookInput(),_0x2fa7e9=_0x43cc2f?.['session_id'];if(!_0x2fa7e9||!_0x2914ab[_0x371e90(0x171)](isSessionEnabled,_0x2fa7e9))return null;return{'sessionId':_0x2fa7e9,'input':_0x43cc2f};}
@@ -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 _0x6a45(_0x25c993,_0x7f2b07){_0x25c993=_0x25c993-0x89;const _0x451ab7=_0x451a();let _0x6a4524=_0x451ab7[_0x25c993];return _0x6a4524;}(function(_0x12b87c,_0x374a15){const _0xb4130e=_0x6a45,_0x318094=_0x12b87c();while(!![]){try{const _0x3e8ca7=-parseInt(_0xb4130e(0x90))/0x1+-parseInt(_0xb4130e(0x8e))/0x2+-parseInt(_0xb4130e(0x89))/0x3*(-parseInt(_0xb4130e(0x8d))/0x4)+-parseInt(_0xb4130e(0x8b))/0x5+-parseInt(_0xb4130e(0x94))/0x6+parseInt(_0xb4130e(0x8c))/0x7+-parseInt(_0xb4130e(0x96))/0x8*(-parseInt(_0xb4130e(0x92))/0x9);if(_0x3e8ca7===_0x374a15)break;else _0x318094['push'](_0x318094['shift']());}catch(_0x498225){_0x318094['push'](_0x318094['shift']());}}}(_0x451a,0x5b5c4));import{printBlock,getEnabledHookContext}from'./output.js';import{shouldShowPlanReminder}from'../utils/sessionCache.js';export async function planReminder(_0x2c4948){const _0x1fb375=_0x6a45,_0x3bf345={'xrkgu':function(_0x27f2ac,_0x423ce9){return _0x27f2ac!==_0x423ce9;},'aeucE':_0x1fb375(0x8f)},_0x5a8bf6=await getEnabledHookContext(_0x2c4948);if(!_0x5a8bf6)return;if(_0x3bf345[_0x1fb375(0x91)](_0x5a8bf6['input'][_0x1fb375(0x8a)],_0x3bf345[_0x1fb375(0x93)]))return;if(!shouldShowPlanReminder(_0x5a8bf6[_0x1fb375(0x95)]))return;printBlock('===\x20RANGER:\x20ACTION\x20REQUIRED\x20===\x0a\x0aIf\x20this\x20plan\x20involves\x20ANY\x20UI\x20changes,\x20you\x20MUST:\x0a\x0a1.\x20**READ\x20/ranger\x20skill\x20NOW**\x20-\x20specifically\x20the\x20create.md\x20instructions\x0a2.\x20**Add\x20a\x20Ranger\x20Feature\x20Review\x20Specification**\x20to\x20the\x20end\x20of\x20your\x20plan\x0a\x0aDO\x20NOT\x20write\x20scenarios\x20without\x20reading\x20create.md\x20first.\x0aScenarios\x20are\x20E2E\x20test\x20flows,\x20NOT\x20implementation\x20tasks.\x0a\x0aYour\x20plan\x20must\x20end\x20with:\x0a```\x0a###\x20Ranger\x20Feature\x20Review\x20Specification\x20(create\x20this\x20first\x20with\x20`ranger\x20create`)\x0aFeature\x20Review\x20Name:\x20<name>\x0aDescription:\x20<description>\x0aScenarios:\x0a1.\x20<E2E\x20user\x20flow\x20that\x20can\x20be\x20verified\x20in\x20browser>\x0a2.\x20<another\x20E2E\x20user\x20flow\x20if\x20needed>\x0a```\x0a\x0aThen\x20run:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario1>\x22\x20-c\x20\x22<scenario2>\x22`\x0a\x0a===\x20END\x20===');}function _0x451a(){const _0x4f2ea3=['3891609rLtZWA','aeucE','3224310MmfoLP','sessionId','16SqYjQA','12645jyblgv','permission_mode','1838965DqfRdb','4719694lTSBHr','388qETdhh','480808icsIRo','plan','428105OyPtbQ','xrkgu'];_0x451a=function(){return _0x4f2ea3;};return _0x451a();}
@@ -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(_0x2392db,_0x1813ab){const _0x1c0a08=_0x4691,_0x423d3a=_0x2392db();while(!![]){try{const _0x406272=-parseInt(_0x1c0a08(0x12e))/0x1*(-parseInt(_0x1c0a08(0x12b))/0x2)+-parseInt(_0x1c0a08(0x130))/0x3*(parseInt(_0x1c0a08(0x128))/0x4)+parseInt(_0x1c0a08(0x12a))/0x5+-parseInt(_0x1c0a08(0x127))/0x6+-parseInt(_0x1c0a08(0x129))/0x7*(parseInt(_0x1c0a08(0x126))/0x8)+parseInt(_0x1c0a08(0x12f))/0x9+parseInt(_0x1c0a08(0x12d))/0xa;if(_0x406272===_0x1813ab)break;else _0x423d3a['push'](_0x423d3a['shift']());}catch(_0x1f6c83){_0x423d3a['push'](_0x423d3a['shift']());}}}(_0x4bdf,0x8fb41));function _0x4691(_0x5f30d2,_0x5a33dd){_0x5f30d2=_0x5f30d2-0x126;const _0x4bdfef=_0x4bdf();let _0x46911c=_0x4bdfef[_0x5f30d2];return _0x46911c;}import{printBlock,getEnabledSessionId}from'./output.js';function _0x4bdf(){const _0x438586=['10484280FRWLRy','2csohGr','389853TyMYLY','339chBFXO','232984dyxaRf','1167408mzBbrh','18388UwloRL','161XfmkOz','3591900kZhBTs','162342YOnVav','cdgPp'];_0x4bdf=function(){return _0x438586;};return _0x4bdf();}export async function planStart(_0x2a09aa){const _0x16a0b6=_0x4691,_0x553e93={'cdgPp':function(_0x1c5e65,_0x3a4dc5){return _0x1c5e65(_0x3a4dc5);}},_0x11e1f6=await _0x553e93[_0x16a0b6(0x12c)](getEnabledSessionId,_0x2a09aa);if(!_0x11e1f6)return;_0x553e93['cdgPp'](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 _0x1086(_0xb8291e,_0x4bc001){_0xb8291e=_0xb8291e-0x168;const _0x466ab4=_0x466a();let _0x1086b0=_0x466ab4[_0xb8291e];return _0x1086b0;}(function(_0x166111,_0x34057f){const _0x524583=_0x1086,_0x3888c3=_0x166111();while(!![]){try{const _0x1053ad=parseInt(_0x524583(0x176))/0x1*(parseInt(_0x524583(0x16e))/0x2)+parseInt(_0x524583(0x171))/0x3*(-parseInt(_0x524583(0x170))/0x4)+parseInt(_0x524583(0x16a))/0x5+parseInt(_0x524583(0x16d))/0x6*(parseInt(_0x524583(0x175))/0x7)+parseInt(_0x524583(0x168))/0x8+-parseInt(_0x524583(0x172))/0x9+-parseInt(_0x524583(0x16f))/0xa;if(_0x1053ad===_0x34057f)break;else _0x3888c3['push'](_0x3888c3['shift']());}catch(_0x4f8152){_0x3888c3['push'](_0x3888c3['shift']());}}}(_0x466a,0x5b82a));function _0x466a(){const _0xa5719a=['86XWyeMr','1790160RJozIH','log','2741655jjzxqs','RANGER:\x20If\x20this\x20change\x20expands\x20the\x20scope\x20of\x20the\x20active\x20feature\x20review,\x20you\x20may\x20need\x20to\x20add\x20a\x20scenario.\x20See\x20Workflow\x201\x20in\x20/ranger.\x20If\x20you\x20decide\x20to\x20add\x20a\x20scenario,\x20you\x20MUST\x20read\x20Workflow\x201\x20IN\x20DETAIL\x20first.\x20Remember:\x20when\x20you\x20finish\x20your\x20work,\x20your\x20final\x20message\x20to\x20the\x20user\x20must\x20direct\x20them\x20to\x20the\x20Ranger\x20feature\x20review\x20dashboard\x20to\x20review\x20(e.g.\x20\x22Go\x20to\x20the\x20Ranger\x20feature\x20dashboard\x20to\x20review:\x20https://dashboard.ranger.net/features/{feature_id}\x22).','PostToolUse','866004uQLdHW','14684odCjTH','5191030LyLuma','100676TOyZDC','39enxDzG','2940489EfdBGP','stringify','DfACi','7rdliuq'];_0x466a=function(){return _0xa5719a;};return _0x466a();}import{getSessionEntry,updateBranchTracking}from'../utils/sessionCache.js';import{getToken}from'../utils/keychain.js';import{getEnabledSessionId}from'./output.js';export async function postEdit(_0x103549){const _0x50b379=_0x1086,_0x2c56b3={'DfACi':function(_0xf2e56,_0x7195a8){return _0xf2e56(_0x7195a8);}},_0x2d0224=await getEnabledSessionId(_0x103549);if(!_0x2d0224)return;_0x2c56b3[_0x50b379(0x174)](updateBranchTracking,_0x2d0224);const _0x28f636=await getToken();if(!_0x28f636)return;const _0x5d1b48=getSessionEntry(_0x2d0224);if(_0x5d1b48){const _0x5df595={'hookSpecificOutput':{'hookEventName':_0x50b379(0x16c),'additionalContext':_0x50b379(0x16b)}};console['log'](JSON['stringify'](_0x5df595));return;}const _0x2b1cbc={'hookSpecificOutput':{'hookEventName':_0x50b379(0x16c),'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[_0x50b379(0x169)](JSON[_0x50b379(0x173)](_0x2b1cbc));}
@@ -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(_0x12c4c0,_0x416fda){const _0x587efb=_0x5eef,_0x4782f4=_0x12c4c0();while(!![]){try{const _0x391b07=parseInt(_0x587efb(0xf0))/0x1+-parseInt(_0x587efb(0xf3))/0x2*(parseInt(_0x587efb(0xe9))/0x3)+parseInt(_0x587efb(0xeb))/0x4*(parseInt(_0x587efb(0xf1))/0x5)+-parseInt(_0x587efb(0xe7))/0x6+parseInt(_0x587efb(0xe8))/0x7*(parseInt(_0x587efb(0xee))/0x8)+-parseInt(_0x587efb(0xec))/0x9*(parseInt(_0x587efb(0xed))/0xa)+-parseInt(_0x587efb(0xea))/0xb*(-parseInt(_0x587efb(0xf2))/0xc);if(_0x391b07===_0x416fda)break;else _0x4782f4['push'](_0x4782f4['shift']());}catch(_0x143a49){_0x4782f4['push'](_0x4782f4['shift']());}}}(_0x27bc,0xc3bff));function _0x27bc(){const _0x372781=['1124zKzmvH','2043lCpsaV','39280EneIYn','12442552AbjOZf','===\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`.','1197567CIowwc','2945caoaPB','12OKGNmf','4yNmKeV','8136702rwcBCK','7XdZpoI','640287tZuRlr','6138297HwLRKh'];_0x27bc=function(){return _0x372781;};return _0x27bc();}import{getToken}from'../utils/keychain.js';function _0x5eef(_0x3f83d4,_0x4d0763){_0x3f83d4=_0x3f83d4-0xe7;const _0x27bc5d=_0x27bc();let _0x5eef2b=_0x27bc5d[_0x3f83d4];return _0x5eef2b;}import{printBlock,getEnabledSessionId}from'./output.js';export async function preCompact(_0x2cf0a6){const _0x4a8372=_0x5eef,_0x3c7c5c={'BmQjx':function(_0x482836){return _0x482836();}},_0x67a852=await getEnabledSessionId(_0x2cf0a6);if(!_0x67a852)return;try{const _0x19b73f=await _0x3c7c5c['BmQjx'](getToken);if(!_0x19b73f)return;printBlock(_0x4a8372(0xef));}catch{}}
@@ -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(_0x27c544,_0x2325dc){const _0x5ceffc=_0x4032,_0x5b9764=_0x27c544();while(!![]){try{const _0x174aa0=parseInt(_0x5ceffc(0x113))/0x1+-parseInt(_0x5ceffc(0x117))/0x2+parseInt(_0x5ceffc(0x10d))/0x3*(-parseInt(_0x5ceffc(0x10c))/0x4)+-parseInt(_0x5ceffc(0x114))/0x5+parseInt(_0x5ceffc(0x10e))/0x6+-parseInt(_0x5ceffc(0x111))/0x7*(parseInt(_0x5ceffc(0x118))/0x8)+parseInt(_0x5ceffc(0x115))/0x9;if(_0x174aa0===_0x2325dc)break;else _0x5b9764['push'](_0x5b9764['shift']());}catch(_0x3189ad){_0x5b9764['push'](_0x5b9764['shift']());}}}(_0x137e,0x39ed1));function _0x4032(_0x81a92b,_0x414a16){_0x81a92b=_0x81a92b-0x10b;const _0x137e80=_0x137e();let _0x403208=_0x137e80[_0x81a92b];return _0x403208;}function _0x137e(){const _0x4cd097=['262584alVqsY','700795auqcvv','6801822AgncNy','env','923606YPgsxf','3896ycXOzp','reason','80xnHtUu','30903pbmZqF','1742232EsmPkf','trlUO','grIeB','3787RioVJE','jvTOo'];_0x137e=function(){return _0x4cd097;};return _0x137e();}import{isSessionEnabled,recordEnabledSessionCleared}from'../utils/sessionCache.js';import{readHookInput}from'./output.js';export async function sessionEnd(_0x253608){const _0x1a06d1=_0x4032,_0x1dad01={'jvTOo':function(_0x2a2d99,_0x8670d7){return _0x2a2d99(_0x8670d7);},'trlUO':function(_0x3dfa64,_0xc00c8e){return _0x3dfa64===_0xc00c8e;},'grIeB':'clear'},_0x2146b5=process[_0x1a06d1(0x116)]['CLAUDE_SESSION_ID'];let _0x40ea60=_0x253608,_0x34b82c;if(!_0x253608){if(_0x2146b5&&!_0x1dad01[_0x1a06d1(0x112)](isSessionEnabled,_0x2146b5))return;const _0x24edcc=await readHookInput();_0x40ea60=_0x24edcc?.['session_id']||_0x2146b5,_0x34b82c=_0x24edcc?.[_0x1a06d1(0x10b)];}if(!_0x40ea60)return;_0x1dad01[_0x1a06d1(0x10f)](_0x34b82c,_0x1dad01[_0x1a06d1(0x110)])&&recordEnabledSessionCleared(_0x40ea60);}
@@ -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
+ const _0x5132e1=_0x154d;(function(_0x1edbe7,_0x1a603d){const _0x20b509=_0x154d,_0x125e54=_0x1edbe7();while(!![]){try{const _0x192228=parseInt(_0x20b509(0xb6))/0x1+parseInt(_0x20b509(0xc5))/0x2*(parseInt(_0x20b509(0xc8))/0x3)+-parseInt(_0x20b509(0xbe))/0x4*(-parseInt(_0x20b509(0xbd))/0x5)+-parseInt(_0x20b509(0xce))/0x6*(-parseInt(_0x20b509(0xcb))/0x7)+parseInt(_0x20b509(0xc9))/0x8*(parseInt(_0x20b509(0xcc))/0x9)+parseInt(_0x20b509(0xc6))/0xa+-parseInt(_0x20b509(0xbb))/0xb;if(_0x192228===_0x1a603d)break;else _0x125e54['push'](_0x125e54['shift']());}catch(_0x37e96a){_0x125e54['push'](_0x125e54['shift']());}}}(_0x3ab4,0x59f11));import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';function _0x3ab4(){const _0x3ac718=['=================================================================\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=================================================================','qMZgQ','241082NIRLyq','4298690XeCvsx','BoDVw','3injkBD','4099872EdryVe','trackCommandEnd','56ahFdpQ','9aJHPXr','xulaS','66102seNmRN','CLAUDE_ENV_FILE','721818jfPYUm','DDKgL','log','hook:session-start','FHCDl','22744469jNXMRz','EjXyU','88005HRoTOJ','128JYjzwU','export\x20CLAUDE_SESSION_ID=\x22','stdin','utAfP','env'];_0x3ab4=function(){return _0x3ac718;};return _0x3ab4();}import{createTelemetryCollector}from'../utils/telemetry.js';import{getToken}from'../utils/keychain.js';function _0x154d(_0x1b3fbc,_0x27a96e){_0x1b3fbc=_0x1b3fbc-0xb6;const _0x3ab48e=_0x3ab4();let _0x154dc0=_0x3ab48e[_0x1b3fbc];return _0x154dc0;}const RANGER_AUTO_ENABLED_PROMPT=_0x5132e1(0xc3);export async function sessionStart(_0x31b674){const _0x506868=_0x5132e1,_0x1e31d0={'xulaS':'source','FHCDl':function(_0x5f1279,_0x45d062,_0x47cbda){return _0x5f1279(_0x45d062,_0x47cbda);},'BoDVw':function(_0x107eb5,_0x195b35){return _0x107eb5(_0x195b35);},'qMZgQ':function(_0x41d7c7,_0x139c45){return _0x41d7c7(_0x139c45);},'DDKgL':function(_0x47455b,_0x37b718){return _0x47455b(_0x37b718);},'EjXyU':_0x506868(0xb9),'BNTkc':'success','utAfP':'main'};let _0x37146d=_0x31b674||'',_0x12cf31;if(!_0x31b674){let _0x5d0b9b='';for await(const _0x39c4ce of process[_0x506868(0xc0)]){_0x5d0b9b+=_0x39c4ce;}try{const _0xb4734=JSON['parse'](_0x5d0b9b);_0x37146d=_0xb4734['session_id']||'',_0x12cf31=_0xb4734[_0x1e31d0[_0x506868(0xcd)]];}catch{}const _0x48e8d7=process[_0x506868(0xc2)][_0x506868(0xcf)];if(_0x48e8d7&&_0x37146d)try{await _0x1e31d0[_0x506868(0xba)](appendFile,_0x48e8d7,_0x506868(0xbf)+_0x37146d+'\x22\x0a');}catch{}}try{await getToken();}catch{}if(_0x37146d){shouldAutoEnableAfterClear(_0x12cf31)&&_0x1e31d0[_0x506868(0xc7)](autoEnableAfterClear,_0x37146d);_0x1e31d0[_0x506868(0xc4)](initBranchTracking,_0x37146d);const _0x489edd=_0x1e31d0[_0x506868(0xc7)](isSessionEnabled,_0x37146d);try{const _0x3abdac=_0x1e31d0[_0x506868(0xb7)](createTelemetryCollector,_0x1e31d0[_0x506868(0xbc)]);await _0x3abdac['trackCommandStart']({'sessionId':_0x37146d,'hooksEnabled':_0x489edd}),await _0x3abdac[_0x506868(0xca)](_0x1e31d0['BNTkc']);}catch{}if(_0x489edd){const _0x4f6625=getCurrentBranch(),_0x13437b=_0x4f6625&&_0x4f6625!==_0x1e31d0[_0x506868(0xc1)]&&_0x4f6625!=='master'?'\x20(Branch:\x20'+_0x4f6625+')':'',_0x37ae3b={'hookSpecificOutput':{'hookEventName':'SessionStart','additionalContext':RANGER_AUTO_ENABLED_PROMPT+_0x13437b}};console[_0x506868(0xb8)](JSON['stringify'](_0x37ae3b));}}}
@@ -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 _0x4232(_0x5b5810,_0x27832f){_0x5b5810=_0x5b5810-0x15b;const _0x594169=_0x5941();let _0x423257=_0x594169[_0x5b5810];return _0x423257;}(function(_0x2a40ec,_0x2ba123){const _0x12b608=_0x4232,_0x3d4937=_0x2a40ec();while(!![]){try{const _0x3395be=parseInt(_0x12b608(0x15c))/0x1+parseInt(_0x12b608(0x164))/0x2+parseInt(_0x12b608(0x15b))/0x3+parseInt(_0x12b608(0x165))/0x4*(-parseInt(_0x12b608(0x171))/0x5)+-parseInt(_0x12b608(0x173))/0x6*(-parseInt(_0x12b608(0x167))/0x7)+-parseInt(_0x12b608(0x162))/0x8*(-parseInt(_0x12b608(0x16e))/0x9)+-parseInt(_0x12b608(0x160))/0xa*(parseInt(_0x12b608(0x172))/0xb);if(_0x3395be===_0x2ba123)break;else _0x3d4937['push'](_0x3d4937['shift']());}catch(_0x3da689){_0x3d4937['push'](_0x3d4937['shift']());}}}(_0x5941,0x2f41c));import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';function _0x5941(){const _0x3d007f=['23464btugwu','SDkYI','checklistItems','SCnUn','currentSessionId','verified','trackCommandStart','18747jEJvUf','status','Stop','435LmBqEt','2882EbTTNr','60gVpzFH','312495zYDBNu','28818sjZxih','sBibR','closed','trackCommandEnd','7910GVlqvY','incomplete','1256GSFMdx','stringify','396574eqltte','13380SLslua','featureId'];_0x5941=function(){return _0x3d007f;};return _0x5941();}import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x799d48){const _0x577303=_0x4232,_0x4ca2c2={'WaSpe':function(_0x47a58c,_0x4c72fa){return _0x47a58c(_0x4c72fa);},'hvxCz':function(_0x48c51d,_0x3c3b7a,_0x14ad7e,_0x34f13d){return _0x48c51d(_0x3c3b7a,_0x14ad7e,_0x34f13d);},'gDzJX':function(_0x3887b6,_0x55b8c3){return _0x3887b6(_0x55b8c3);},'GTkfg':function(_0x134d27){return _0x134d27();},'ZgpxD':function(_0x2cbb1a,_0x39e162){return _0x2cbb1a&&_0x39e162;},'SDkYI':function(_0x3448b4,_0xdb58e3){return _0x3448b4&&_0xdb58e3;},'RIBBM':function(_0x137d6e,_0x36745a,_0x58b9ba,_0x36af00){return _0x137d6e(_0x36745a,_0x58b9ba,_0x36af00);}},_0x38fbf8=await _0x4ca2c2['WaSpe'](getEnabledHookContext,_0x799d48),_0x48db59=_0x38fbf8?.['sessionId']??null;let _0x2ad7b2=!![];if(!_0x48db59){await _0x4ca2c2['hvxCz'](trackStop,_0x48db59,![],_0x2ad7b2);return;}try{const _0x20db97=_0x4ca2c2['gDzJX'](getSessionEntry,_0x48db59);if(!_0x20db97){await trackStop(_0x48db59,!![],_0x2ad7b2);return;}const _0x5e1805=await _0x4ca2c2['GTkfg'](getToken),_0x5a33e3='https://dashboard.ranger.net/features/'+_0x20db97[_0x577303(0x166)];let _0x1c5854=null,_0x5a2f18=![],_0x43c81b=![];if(_0x5e1805)try{const _0x1b03a0=await getFeature(_0x20db97[_0x577303(0x166)]);_0x1c5854=_0x1b03a0[_0x577303(0x16b)]??null;const _0x20bc04=_0x1b03a0[_0x577303(0x169)]['filter'](_0x5de5e2=>_0x5de5e2['sessionId']===_0x1c5854);_0x5a2f18=_0x20bc04['some'](_0x52fe27=>_0x52fe27['status']!==_0x577303(0x16c)&&_0x52fe27['status']!=='blocked'&&_0x52fe27[_0x577303(0x16f)]!==_0x577303(0x15e)&&_0x52fe27['status']!==_0x577303(0x161)),_0x43c81b=_0x20bc04['some'](_0x273579=>_0x273579[_0x577303(0x16f)]==='verification_in_progress');}catch{}if(_0x4ca2c2['ZgpxD'](_0x5e1805,_0x1c5854)&&_0x5a2f18){if(!_0x43c81b&&shouldShowStopReminder(_0x48db59)){const _0x2f59b8={'hookSpecificOutput':{'hookEventName':_0x577303(0x170),'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'+_0x5a33e3}};console['log'](JSON[_0x577303(0x163)](_0x2f59b8));}}if(_0x4ca2c2[_0x577303(0x168)](_0x5e1805,_0x1c5854)&&!_0x5a2f18)try{await concludeSession(_0x20db97['featureId'],_0x1c5854);}catch{}await _0x4ca2c2['RIBBM'](trackStop,_0x48db59,!![],_0x2ad7b2);return;}catch{await trackStop(_0x48db59,!![],_0x2ad7b2);return;}}async function trackStop(_0xe5db4f,_0x20b5e4,_0x4b1313){const _0x5e1514=_0x4232,_0x3c9b43={'sBibR':function(_0x11b6bd,_0x135008){return _0x11b6bd??_0x135008;},'SCnUn':'success'};try{const _0x650568=createTelemetryCollector('hook:stop');await _0x650568[_0x5e1514(0x16d)]({'sessionId':_0x3c9b43[_0x5e1514(0x15d)](_0xe5db4f,undefined),'hooksEnabled':_0x20b5e4,'stopAllowed':_0x4b1313}),await _0x650568[_0x5e1514(0x15f)](_0x3c9b43[_0x5e1514(0x16a)]);}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 _0x5aad(){var _0x59e474=['4198980oZFFrq','36uMTrgV','3cQxZKj','270474EkzGxJ','4288340dFpzZx','213AljynO','46108wVminN','5465514rPPUGz','353040vpNKyV','6156906AlmfLZ'];_0x5aad=function(){return _0x59e474;};return _0x5aad();}(function(_0x37afb4,_0x4c6f0d){var _0x581dd5=_0x3da1,_0x406adb=_0x37afb4();while(!![]){try{var _0x2024da=-parseInt(_0x581dd5(0x6e))/0x1*(-parseInt(_0x581dd5(0x6f))/0x2)+parseInt(_0x581dd5(0x67))/0x3*(parseInt(_0x581dd5(0x68))/0x4)+parseInt(_0x581dd5(0x70))/0x5+-parseInt(_0x581dd5(0x69))/0x6+-parseInt(_0x581dd5(0x6b))/0x7+-parseInt(_0x581dd5(0x6a))/0x8*(parseInt(_0x581dd5(0x6d))/0x9)+parseInt(_0x581dd5(0x6c))/0xa;if(_0x2024da===_0x4c6f0d)break;else _0x406adb['push'](_0x406adb['shift']());}catch(_0x4704ea){_0x406adb['push'](_0x406adb['shift']());}}}(_0x5aad,0x828a9));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start,ensureLocalEnv,ensureChromium,authenticate}from'./start.js';export{useEnv}from'./useEnv.js';function _0x3da1(_0x27ffe7,_0x20f91c){_0x27ffe7=_0x27ffe7-0x67;var _0x5aad3f=_0x5aad();var _0x3da107=_0x5aad3f[_0x27ffe7];return _0x3da107;}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(_0x24cad9,_0x59b929){const _0x2289ad=_0x478a,_0x2b9fc4=_0x24cad9();while(!![]){try{const _0x57d87f=parseInt(_0x2289ad(0x1f6))/0x1*(-parseInt(_0x2289ad(0x1f2))/0x2)+parseInt(_0x2289ad(0x1eb))/0x3*(-parseInt(_0x2289ad(0x1f9))/0x4)+-parseInt(_0x2289ad(0x1f4))/0x5*(-parseInt(_0x2289ad(0x1ed))/0x6)+-parseInt(_0x2289ad(0x1f7))/0x7+-parseInt(_0x2289ad(0x1fc))/0x8+parseInt(_0x2289ad(0x1f1))/0x9+parseInt(_0x2289ad(0x1fa))/0xa*(parseInt(_0x2289ad(0x1f0))/0xb);if(_0x57d87f===_0x59b929)break;else _0x2b9fc4['push'](_0x2b9fc4['shift']());}catch(_0x1d9d22){_0x2b9fc4['push'](_0x2b9fc4['shift']());}}}(_0x47f8,0x2b9b6));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x478a(_0x36f1fd,_0x860f82){_0x36f1fd=_0x36f1fd-0x1eb;const _0x47f8d8=_0x47f8();let _0x478af4=_0x47f8d8[_0x36f1fd];return _0x478af4;}import{getCurrentUser}from'./utils/userApi.js';import{getMcpAuthOrigin,mcpBootstrap}from'./mcpBootstrap.js';function _0x47f8(){const _0x3e43a2=['88dpxuTB','591570qIbgSg','\x0a✅\x20API\x20key\x20stored\x20successfully','4Ltilwu','20dvqkZB','stdout','382352rackYv','isTTY','602379AlTpJV','INvLG','1666164GGIvlN','message','Re-authenticating\x20via\x20MCP\x20bootstrap...','1054009tUWnOU','1177371kZdBOb','2010tdcyaS','\x0a✅\x20Logged\x20in\x20to\x20','5Silixh','log'];_0x47f8=function(){return _0x3e43a2;};return _0x47f8();}export async function login(){const _0x36e2b4=_0x478a,_0x14ac7f={'UCSDB':function(_0x2feff3){return _0x2feff3();},'CULxX':_0x36e2b4(0x1ef),'INvLG':function(_0x10287d){return _0x10287d();},'AjEQg':'Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','vgbuv':function(_0x27c48e,_0x301666){return _0x27c48e(_0x301666);}},_0x44913e=await _0x14ac7f['UCSDB'](getMcpAuthOrigin);if(_0x44913e){console[_0x36e2b4(0x1f5)](_0x14ac7f['CULxX']),await _0x14ac7f[_0x36e2b4(0x1ec)](mcpBootstrap);return;}const _0x10c3de=process['stdin'][_0x36e2b4(0x1fd)]&&process[_0x36e2b4(0x1fb)]['isTTY'];if(!_0x10c3de)throw new Error(_0x14ac7f['AjEQg']);try{const _0x16db7a=await runDeviceAuthFlow(),_0x529a62=await _0x14ac7f['vgbuv'](getCurrentUser,_0x16db7a);_0x529a62['success']?console['log'](_0x36e2b4(0x1f3)+_0x529a62['user']['organizationName']):console['log'](_0x36e2b4(0x1f8));}catch(_0x34304d){throw new Error('Login\x20failed:\x20'+(_0x34304d instanceof Error?_0x34304d[_0x36e2b4(0x1ee)]:_0x34304d));}}
@@ -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 _0x4cdcf7=_0xef40;(function(_0x4303dc,_0x5b6bcb){const _0x585db1=_0xef40,_0x3f7c48=_0x4303dc();while(!![]){try{const _0x4acf23=-parseInt(_0x585db1(0x155))/0x1+parseInt(_0x585db1(0x15f))/0x2+parseInt(_0x585db1(0x116))/0x3*(-parseInt(_0x585db1(0x133))/0x4)+-parseInt(_0x585db1(0x115))/0x5+parseInt(_0x585db1(0x165))/0x6+parseInt(_0x585db1(0x173))/0x7+parseInt(_0x585db1(0xfa))/0x8*(-parseInt(_0x585db1(0x15c))/0x9);if(_0x4acf23===_0x5b6bcb)break;else _0x3f7c48['push'](_0x3f7c48['shift']());}catch(_0x3abead){_0x3f7c48['push'](_0x3f7c48['shift']());}}}(_0x4db6,0x8bbc8));import{mkdir,writeFile,readFile}from'fs/promises';import{join}from'path';import{homedir}from'os';import{createServer}from'http';import{randomBytes,createHash}from'crypto';import{getMcpAuthUrl}from'./utils/environment.js';const CALLBACK_PORT=0x4d78,TOKEN_CACHE_PATH=join(homedir(),'.ranger',_0x4cdcf7(0x117)),AUTH_ORIGIN_PATH=join(homedir(),'.ranger',_0x4cdcf7(0x14b));export async function getMcpAuthOrigin(){const _0x36ac32={'Fztyk':'utf-8'};try{const _0x3b8c8d=(await readFile(AUTH_ORIGIN_PATH,_0x36ac32['Fztyk']))['trim']();return _0x3b8c8d||null;}catch{return null;}}export async function mcpBootstrap(){const _0x5a4509=_0x4cdcf7,_0x58b3c6={'ofRZU':function(_0x119608,_0x4627ab){return _0x119608(_0x4627ab);},'OZgWk':function(_0x1886f6,_0x3c42d7){return _0x1886f6===_0x3c42d7;},'RIdQF':function(_0x517443){return _0x517443();},'gAdAY':function(_0x2f83f1,_0x374d48,_0x37cce1){return _0x2f83f1(_0x374d48,_0x37cce1);}},_0x5513f1=getMcpAuthUrl();currentOrigin=_0x5513f1;const _0xc2edaf=process[_0x5a4509(0x145)]['isTTY']??![];console['log'](_0x5a4509(0x172)+_0x5513f1+'\x0a');const _0xec93c=await _0x58b3c6[_0x5a4509(0x110)](tryUnauthenticated,_0x5513f1);let _0x3f8f20=null;if(_0x58b3c6['OZgWk'](_0xec93c,_0x5a4509(0x18b)))_0x3f8f20='';else{_0x3f8f20=await _0x58b3c6[_0x5a4509(0x160)](loadCachedToken);if(!_0x3f8f20){if(!_0xc2edaf)throw new Error(_0x5a4509(0x186)+_0x5a4509(0xf7));_0x3f8f20=await oauthFlow(_0x5513f1);}}await _0x58b3c6[_0x5a4509(0x10e)](callGetCliToken,_0x5513f1,_0x3f8f20);}async function tryUnauthenticated(_0x1b261a){const _0x4169da=_0x4cdcf7,_0x16a24c={'sDORb':function(_0x4a7aef,_0x332acb,_0x1864d8){return _0x4a7aef(_0x332acb,_0x1864d8);},'sCWJa':_0x4169da(0x184),'YFkum':'application/json','AZGVZ':_0x4169da(0x148),'lKAIR':'initialize','vkRZM':_0x4169da(0x187),'GXCuT':_0x4169da(0x18b),'BGcNC':_0x4169da(0x126)},_0x48030e=await _0x16a24c['sDORb'](fetch,_0x1b261a,{'method':_0x16a24c['sCWJa'],'headers':{'Content-Type':_0x16a24c['YFkum'],'Accept':_0x16a24c[_0x4169da(0x13b)]},'body':JSON[_0x4169da(0x13e)]({'jsonrpc':'2.0','id':0x1,'method':_0x16a24c['lKAIR'],'params':{'protocolVersion':_0x4169da(0x127),'capabilities':{},'clientInfo':{'name':_0x16a24c['vkRZM'],'version':_0x4169da(0x151)}}})});if(_0x48030e['ok'])return await _0x48030e['text'](),_0x16a24c[_0x4169da(0x13c)];if(_0x48030e[_0x4169da(0x107)]===0x191)return await _0x48030e['text'](),_0x16a24c['BGcNC'];const _0x3d0a05=await _0x48030e[_0x4169da(0x111)]();throw new Error('MCP\x20server\x20returned\x20HTTP\x20'+_0x48030e[_0x4169da(0x107)]+':\x20'+_0x3d0a05);}class OAuthTimeoutError extends Error{constructor(_0x5dff73){const _0x45857d=_0x4cdcf7;super(_0x5dff73),this['name']=_0x45857d(0x16c);}}async function oauthFlow(_0x561dc3){const _0x31ff71={'lOivF':function(_0x29bb01,_0x187b36){return _0x29bb01(_0x187b36);},'mRVfY':function(_0x425402){return _0x425402();},'CWmip':function(_0x474d0d,_0x5e6ea1){return _0x474d0d(_0x5e6ea1);}};try{return await _0x31ff71['lOivF'](oauthFlowAttempt,_0x561dc3);}catch(_0x225b9d){if(_0x225b9d instanceof OAuthTimeoutError&&await _0x31ff71['mRVfY'](loadCachedClient))return console['log']('\x0aCached\x20OAuth\x20client\x20may\x20be\x20stale\x20—\x20clearing\x20and\x20retrying...\x0a'),await clearCachedClient(),await _0x31ff71['CWmip'](oauthFlowAttempt,_0x561dc3);throw _0x225b9d;}}async function oauthFlowAttempt(_0x196754){const _0x5bcebb=_0x4cdcf7,_0x3def1b={'PEGmb':'Discovering\x20authorization\x20server...','ZJkLp':_0x5bcebb(0x101),'dirGE':function(_0x37a0f7,_0x18ca11,_0x3f5e9e){return _0x37a0f7(_0x18ca11,_0x3f5e9e);},'mMgBi':'POST','rUfns':_0x5bcebb(0x137),'lRFpi':_0x5bcebb(0x113),'IENfh':_0x5bcebb(0x12d),'HjkoB':function(_0x237d2d,_0x159f7d){return _0x237d2d(_0x159f7d);},'BjGdh':'hex','GyPSU':'response_type','AHetH':'code','pYjra':_0x5bcebb(0x14f),'AVgpI':_0x5bcebb(0x132),'EbBmE':'Exchanging\x20authorization\x20code...','okzIH':_0x5bcebb(0x166)},_0x1eb138=_0x196754['replace'](/\/mcp$/,'');process['stdout']['write'](_0x3def1b['PEGmb']);const _0x427433=await fetch(_0x1eb138+_0x5bcebb(0x153));if(!_0x427433['ok'])throw new Error(_0x5bcebb(0x100));const _0xdb330c=await _0x427433[_0x5bcebb(0x140)](),_0x120aa8=_0xdb330c[_0x5bcebb(0x188)]?.[0x0];if(!_0x120aa8)throw new Error(_0x3def1b[_0x5bcebb(0x159)]);console[_0x5bcebb(0x104)]('\x20'+_0x120aa8);const _0x2a43cc=await fetchAuthServerMetadata(_0x120aa8);let _0x59cf3e,_0x4fcc12;const _0x570cf2=await loadCachedClient();if(_0x570cf2)_0x59cf3e=_0x570cf2[_0x5bcebb(0x167)],_0x4fcc12=_0x570cf2[_0x5bcebb(0xfc)];else{if(_0x2a43cc[_0x5bcebb(0x123)]){process['stdout']['write'](_0x5bcebb(0xfb));const _0x4cc5dc=await _0x3def1b[_0x5bcebb(0x12b)](fetch,_0x2a43cc[_0x5bcebb(0x123)],{'method':_0x3def1b[_0x5bcebb(0xf9)],'headers':{'Content-Type':_0x5bcebb(0x11a)},'body':JSON[_0x5bcebb(0x13e)]({'client_name':'Ranger\x20CLI','redirect_uris':[_0x5bcebb(0x181)+CALLBACK_PORT+_0x5bcebb(0x12a)],'grant_types':['authorization_code',_0x3def1b['rUfns']],'response_types':[_0x5bcebb(0x114)],'token_endpoint_auth_method':_0x3def1b[_0x5bcebb(0x168)]})});if(!_0x4cc5dc['ok']){const _0x2bcae5=await _0x4cc5dc[_0x5bcebb(0x111)]();throw new Error('Client\x20registration\x20failed:\x20'+_0x2bcae5);}const _0x195d85=await _0x4cc5dc[_0x5bcebb(0x140)]();_0x59cf3e=_0x195d85['client_id'],_0x4fcc12=_0x195d85['client_secret'],await saveCachedClient(_0x59cf3e,_0x4fcc12),console['log'](_0x5bcebb(0x15d));}else throw new Error('Authorization\x20server\x20does\x20not\x20support\x20dynamic\x20client\x20registration\x20and\x20no\x20cached\x20client\x20found');}const _0x50ed94=randomBytes(0x20)[_0x5bcebb(0x147)](_0x3def1b[_0x5bcebb(0x120)]),_0xe4c495=createHash('sha256')[_0x5bcebb(0x11c)](_0x50ed94)[_0x5bcebb(0x179)]('base64url'),_0x38186f=_0x3def1b[_0x5bcebb(0x158)](randomBytes,0x10)['toString'](_0x3def1b['BjGdh']),_0x4195da=new URL(_0x2a43cc[_0x5bcebb(0x138)]);_0x4195da[_0x5bcebb(0x176)][_0x5bcebb(0x12f)](_0x3def1b[_0x5bcebb(0x134)],_0x3def1b['AHetH']),_0x4195da[_0x5bcebb(0x176)][_0x5bcebb(0x12f)](_0x3def1b['pYjra'],_0x59cf3e),_0x4195da[_0x5bcebb(0x176)]['set'](_0x5bcebb(0x141),'http://localhost:'+CALLBACK_PORT+_0x5bcebb(0x12a)),_0x4195da[_0x5bcebb(0x176)]['set']('code_challenge',_0xe4c495),_0x4195da['searchParams']['set'](_0x5bcebb(0x174),_0x3def1b['AVgpI']),_0x4195da['searchParams']['set']('state',_0x38186f);_0xdb330c[_0x5bcebb(0xf5)]&&_0x4195da[_0x5bcebb(0x176)]['set'](_0x5bcebb(0xf5),_0xdb330c[_0x5bcebb(0xf5)]);console[_0x5bcebb(0x104)](_0x5bcebb(0x121)),console['log'](_0x5bcebb(0x139)+_0x4195da['toString']()+'\x0a'),await openBrowser(_0x4195da[_0x5bcebb(0x147)]());const _0x1d8e70=await waitForCallback(_0x38186f);process[_0x5bcebb(0x145)][_0x5bcebb(0x11d)](_0x3def1b['EbBmE']);const _0x456a96=new URLSearchParams({'grant_type':'authorization_code','code':_0x1d8e70,'redirect_uri':'http://localhost:'+CALLBACK_PORT+'/callback','client_id':_0x59cf3e,'code_verifier':_0x50ed94});_0x4fcc12&&_0x456a96[_0x5bcebb(0x12f)](_0x5bcebb(0x180),_0x4fcc12);_0xdb330c['resource']&&_0x456a96['set']('resource',_0xdb330c[_0x5bcebb(0xf5)]);const _0xa7cfb0=await _0x3def1b[_0x5bcebb(0x12b)](fetch,_0x2a43cc[_0x5bcebb(0x16d)],{'method':_0x3def1b[_0x5bcebb(0xf9)],'headers':{'Content-Type':_0x3def1b['okzIH']},'body':_0x456a96});if(!_0xa7cfb0['ok']){const _0x131d5a=await _0xa7cfb0[_0x5bcebb(0x111)]();throw new Error('Token\x20exchange\x20failed:\x20'+_0x131d5a);}const _0x1ec9a6=await _0xa7cfb0[_0x5bcebb(0x140)]();return console[_0x5bcebb(0x104)]('\x20done'),await saveCachedToken(_0x1ec9a6[_0x5bcebb(0x18c)],_0x1ec9a6['refresh_token'],_0x1ec9a6[_0x5bcebb(0x178)]),_0x1ec9a6['access_token'];}async function callGetCliToken(_0x31f13a,_0x26a6a4){const _0x48752f=_0x4cdcf7,_0x1f25b3={'MqhLj':function(_0xa4bc0b,_0x4eacc4,_0x463547){return _0xa4bc0b(_0x4eacc4,_0x463547);},'BqFsk':function(_0x5dfff8,_0x3110f4){return _0x5dfff8(_0x3110f4);},'lUsDk':function(_0x1aec77,_0x5eb5aa){return _0x1aec77(_0x5eb5aa);},'icdgk':'1.0.0','PXHnO':_0x48752f(0x15d),'yBcMP':'notifications/initialized','Pyvxr':_0x48752f(0x17b),'vIHTi':_0x48752f(0x156),'XZExQ':_0x48752f(0x103),'lPPEZ':'.ranger','xgbvM':function(_0x58d597,_0x5b2d62,_0x4c80d4){return _0x58d597(_0x5b2d62,_0x4c80d4);},'IhhLN':function(_0x366e12,_0x2e71d5,_0x1bd7e6,_0x317352){return _0x366e12(_0x2e71d5,_0x1bd7e6,_0x317352);}},_0x2f71e4={'Content-Type':'application/json','Accept':_0x48752f(0x148)};_0x26a6a4&&(_0x2f71e4[_0x48752f(0xff)]=_0x48752f(0x162)+_0x26a6a4);const _0x5b0738=async _0x31fa77=>{const _0x20cd91=_0x48752f,_0x4618b2=await _0x1f25b3[_0x20cd91(0xfe)](fetch,_0x31f13a,{'method':_0x20cd91(0x184),'headers':_0x2f71e4,'body':JSON[_0x20cd91(0x13e)](_0x31fa77)});if(!_0x4618b2['ok']){const _0x5866cc=await _0x4618b2[_0x20cd91(0x111)]();throw new Error('HTTP\x20'+_0x4618b2[_0x20cd91(0x107)]+':\x20'+_0x5866cc);}return _0x1f25b3[_0x20cd91(0x14e)](parseResponse,_0x4618b2);};process['stdout'][_0x48752f(0x11d)]('Initializing\x20MCP\x20session...');const _0x38fc57=await _0x1f25b3[_0x48752f(0x149)](_0x5b0738,{'jsonrpc':'2.0','id':0x1,'method':_0x48752f(0xf8),'params':{'protocolVersion':'2025-03-26','capabilities':{},'clientInfo':{'name':'ranger-cli','version':_0x1f25b3['icdgk']}}});if(_0x38fc57['error'])throw new Error(_0x48752f(0x119)+(_0x38fc57[_0x48752f(0x15b)][_0x48752f(0x135)]??JSON['stringify'](_0x38fc57['error'])));console['log'](_0x1f25b3['PXHnO']),await _0x1f25b3[_0x48752f(0xfe)](fetch,_0x31f13a,{'method':_0x48752f(0x184),'headers':_0x2f71e4,'body':JSON['stringify']({'jsonrpc':'2.0','method':_0x1f25b3['yBcMP']})})[_0x48752f(0x118)](_0x1219db=>_0x1219db['text']()),process[_0x48752f(0x145)][_0x48752f(0x11d)](_0x48752f(0x136));const _0x1693be=await _0x5b0738({'jsonrpc':_0x1f25b3[_0x48752f(0x10d)],'id':0x2,'method':_0x48752f(0x12c),'params':{'name':'get_cli_token','arguments':{}}});if(_0x1693be['error'])throw new Error('get_cli_token\x20failed:\x20'+(_0x1693be[_0x48752f(0x15b)]['message']??JSON[_0x48752f(0x13e)](_0x1693be['error'])));console[_0x48752f(0x104)](_0x1f25b3[_0x48752f(0x10c)]);const _0x37ee6a=_0x1f25b3['lUsDk'](extractToken,_0x1693be['result']);if(!_0x37ee6a){console[_0x48752f(0x15b)](_0x1f25b3[_0x48752f(0x152)]),console['error'](JSON['stringify'](_0x1693be['result'],null,0x2));throw new Error(_0x1f25b3[_0x48752f(0x171)]);}const _0xab226b=join(homedir(),_0x1f25b3['lPPEZ']),_0x22116d=_0x1f25b3[_0x48752f(0xfd)](join,_0xab226b,_0x48752f(0x14c));await mkdir(_0xab226b,{'recursive':!![]}),await _0x1f25b3['IhhLN'](writeFile,_0x22116d,_0x37ee6a,{'mode':0x180}),await _0x1f25b3[_0x48752f(0x175)](writeFile,join(_0xab226b,_0x48752f(0x14b)),_0x31f13a,{'mode':0x180}),console[_0x48752f(0x104)]('\x0aToken\x20written\x20to\x20'+_0x22116d),console[_0x48752f(0x104)](_0x48752f(0x105));}async function fetchAuthServerMetadata(_0x41d8af){const _0x12640d=_0x4cdcf7,_0x2b4897=_0x41d8af+_0x12640d(0x169),_0x646f08=await fetch(_0x2b4897);if(!_0x646f08['ok'])throw new Error('Could\x20not\x20fetch\x20auth\x20server\x20metadata\x20from\x20'+_0x2b4897+':\x20'+_0x646f08[_0x12640d(0x107)]);return _0x646f08['json']();}function waitForCallback(_0x883d85){const _0x3836fa=_0x4cdcf7,_0x5ec4e9={'FVxES':function(_0x5d20b3,_0x4eaadf){return _0x5d20b3!==_0x4eaadf;},'HAAsg':'/callback','PpKkg':_0x3836fa(0x114),'JLuSj':_0x3836fa(0x15b),'RoBFJ':'error_description','qKwlS':function(_0x35a229,_0x140cd1){return _0x35a229(_0x140cd1);},'BITTh':_0x3836fa(0x15a),'uXdQK':'<html><body><h2>Authenticated!</h2><p>You\x20can\x20close\x20this\x20window\x20and\x20return\x20to\x20the\x20terminal.</p></body></html>','UUeGY':'OAuth\x20callback\x20timed\x20out\x20after\x202\x20minutes','PwZdT':function(_0x147be0,_0x16ff50,_0x4d3d6a){return _0x147be0(_0x16ff50,_0x4d3d6a);},'ktdtt':function(_0x29edbf,_0x4655a6){return _0x29edbf(_0x4655a6);}};return new Promise((_0x4e0ec4,_0x578ae7)=>{const _0x11bbd3=_0x3836fa,_0x1e9a8a={'EtBGt':_0x5ec4e9['UUeGY']},_0x132ebe=_0x5ec4e9[_0x11bbd3(0x10f)](setTimeout,()=>{_0x2a9a9d['close'](),_0x578ae7(new OAuthTimeoutError(_0x1e9a8a['EtBGt']));},0x1d4c0),_0x2a9a9d=_0x5ec4e9['ktdtt'](createServer,(_0x587f9f,_0x3072d0)=>{const _0x1bb628=_0x11bbd3,_0x151b96=new URL(_0x587f9f[_0x1bb628(0x183)]??'/','http://localhost:'+CALLBACK_PORT);if(_0x5ec4e9[_0x1bb628(0x16f)](_0x151b96[_0x1bb628(0x17f)],_0x5ec4e9[_0x1bb628(0x163)])){_0x3072d0[_0x1bb628(0x185)](0x194),_0x3072d0[_0x1bb628(0x154)]('Not\x20found');return;}const _0xca50f5=_0x151b96[_0x1bb628(0x176)]['get'](_0x5ec4e9['PpKkg']),_0x2bed19=_0x151b96['searchParams']['get']('state'),_0x3ec9f7=_0x151b96['searchParams'][_0x1bb628(0x108)](_0x5ec4e9[_0x1bb628(0x131)]);if(_0x3ec9f7){const _0x21f133=_0x151b96['searchParams']['get'](_0x5ec4e9['RoBFJ'])??_0x3ec9f7;_0x3072d0['writeHead'](0xc8,{'Content-Type':_0x1bb628(0x124)}),_0x3072d0['end']('<html><body><h2>Authentication\x20failed</h2><p>'+_0x21f133+'</p><p>You\x20can\x20close\x20this\x20window.</p></body></html>'),_0x5ec4e9['qKwlS'](clearTimeout,_0x132ebe),_0x2a9a9d['close'](),_0x578ae7(new Error('OAuth\x20error:\x20'+_0x21f133));return;}if(!_0xca50f5||_0x2bed19!==_0x883d85){_0x3072d0[_0x1bb628(0x185)](0x190,{'Content-Type':'text/html'}),_0x3072d0[_0x1bb628(0x154)](_0x5ec4e9[_0x1bb628(0x12e)]);return;}_0x3072d0['writeHead'](0xc8,{'Content-Type':'text/html'}),_0x3072d0[_0x1bb628(0x154)](_0x5ec4e9['uXdQK']),clearTimeout(_0x132ebe),_0x2a9a9d[_0x1bb628(0x11e)](),_0x5ec4e9['qKwlS'](_0x4e0ec4,_0xca50f5);});_0x2a9a9d['listen'](CALLBACK_PORT,_0x11bbd3(0x11f));});}async function openBrowser(_0x494b31){const _0x1a4598=_0x4cdcf7,_0x19e649={'iMzdT':'child_process','WoVQf':_0x1a4598(0x150),'BHIXh':function(_0x4263bf,_0x44314e){return _0x4263bf===_0x44314e;},'UvJyR':'win32'},{exec:_0x1300ee}=await import(_0x19e649[_0x1a4598(0x142)]),_0x1fb9d9=process['platform']===_0x19e649['WoVQf']?_0x1a4598(0x146):_0x19e649[_0x1a4598(0x16b)](process['platform'],_0x19e649['UvJyR'])?'start':_0x1a4598(0x177);_0x1300ee(_0x1fb9d9+'\x20\x22'+_0x494b31+'\x22');}let currentOrigin='';async function loadCachedToken(){const _0x2c9d6f=_0x4cdcf7,_0x135415={'PyzaE':function(_0xc47180,_0x3bd29e,_0x4287b8){return _0xc47180(_0x3bd29e,_0x4287b8);},'HXJev':function(_0x5c7717,_0x36af21){return _0x5c7717!==_0x36af21;}};try{const _0x659f42=JSON[_0x2c9d6f(0x143)](await _0x135415[_0x2c9d6f(0x102)](readFile,TOKEN_CACHE_PATH,_0x2c9d6f(0x17c)));if(_0x659f42[_0x2c9d6f(0x17a)]&&_0x135415['HXJev'](_0x659f42['origin'],currentOrigin))return null;if(_0x659f42[_0x2c9d6f(0xf6)]&&Date[_0x2c9d6f(0x13d)]()>_0x659f42['expiresAt'])return null;return _0x659f42['accessToken']??null;}catch{return null;}}async function saveCachedToken(_0x14250e,_0x1891f4,_0x53c3cb){const _0xdc0899=_0x4cdcf7,_0x5aad6d={'fCasI':function(_0x3bc8ab){return _0x3bc8ab();},'BgbLP':function(_0x579a37,_0x5a3f1a){return _0x579a37+_0x5a3f1a;},'kbOaF':function(_0x4c485d,_0x2459c8,_0x3ef5d1){return _0x4c485d(_0x2459c8,_0x3ef5d1);},'myYiQ':function(_0x5cf250,_0x52f3f1,_0x10fd55,_0x34098d){return _0x5cf250(_0x52f3f1,_0x10fd55,_0x34098d);}},_0x5b6ff3=await _0x5aad6d[_0xdc0899(0x144)](loadCachedData),_0x1bc62f={..._0x5b6ff3,'origin':currentOrigin,'accessToken':_0x14250e,'refreshToken':_0x1891f4??_0x5b6ff3?.[_0xdc0899(0x13f)],'expiresAt':_0x53c3cb?_0x5aad6d[_0xdc0899(0x109)](Date[_0xdc0899(0x13d)](),_0x53c3cb*0x3e8):undefined};await _0x5aad6d[_0xdc0899(0x161)](mkdir,join(homedir(),'.ranger'),{'recursive':!![]}),await _0x5aad6d['myYiQ'](writeFile,TOKEN_CACHE_PATH,JSON[_0xdc0899(0x13e)](_0x1bc62f),{'mode':0x180});}function _0x4db6(){const _0x4691f6=['log','Run\x20`ranger\x20status`\x20to\x20verify\x20authentication.\x0a','split','status','get','BgbLP','slice','accessToken','PXHnO','Pyvxr','gAdAY','PwZdT','ofRZU','text','string','none','code','438185LtpcbW','9QlyRfp','mcp-oauth-tokens.json','then','MCP\x20initialize\x20failed:\x20','application/json','text/event-stream','update','write','close','127.0.0.1','IENfh','\x0aOpening\x20browser\x20for\x20authentication...','includes','registration_endpoint','text/html','Server\x20returned\x20error:\x20','needs-oauth','2025-03-26','content-type','JGXhc','/callback','dirGE','tools/call','base64url','BITTh','set','type','JLuSj','S256','772004CORiJV','GyPSU','message','Requesting\x20CLI\x20token...','refresh_token','authorization_endpoint','If\x20the\x20browser\x20doesn\x27t\x20open,\x20visit:\x0a','match','AZGVZ','GXCuT','now','stringify','refreshToken','json','redirect_uri','iMzdT','parse','fCasI','stdout','open','toString','application/json,\x20text/event-stream','lUsDk','No\x20JSON-RPC\x20response\x20found\x20in\x20SSE\x20stream','auth-origin.txt','refresh.txt','startsWith','BqFsk','client_id','darwin','1.0.0','vIHTi','/.well-known/oauth-protected-resource','end','59513iuPcOd','\x0aUnexpected\x20response\x20structure:','nyfws','HjkoB','ZJkLp','<html><body><h2>Invalid\x20callback</h2><p>Missing\x20code\x20or\x20state\x20mismatch.</p></body></html>','error','3239865ijZZhI','\x20done','lWYxP','489500SEMUbQ','RIdQF','kbOaF','Bearer\x20','HAAsg','length','4856916pqWMUr','application/x-www-form-urlencoded','clientId','lRFpi','/.well-known/oauth-authorization-server','headers','BHIXh','OAuthTimeoutError','token_endpoint','NyZAX','FVxES','token','XZExQ','\x0aConnecting\x20to\x20MCP\x20auth\x20server:\x20','4229834QPKxRB','code_challenge_method','IhhLN','searchParams','xdg-open','expires_in','digest','origin','2.0','utf-8','LCtTk','wTrGX','pathname','client_secret','http://localhost:','content','url','POST','writeHead','MCP\x20server\x20requires\x20authentication\x20but\x20running\x20in\x20non-interactive\x20mode.\x0a','ranger-cli','authorization_servers','qpljs','trim','proxied','access_token','resource','expiresAt','Run\x20`ranger\x20setup\x20--mcp-bootstrap`\x20interactively\x20first.','initialize','mMgBi','8ileFSL','Registering\x20OAuth\x20client...','clientSecret','xgbvM','MqhLj','Authorization','Could\x20not\x20fetch\x20protected\x20resource\x20metadata\x20from\x20MCP\x20server','No\x20authorization_servers\x20in\x20protected\x20resource\x20metadata','PyzaE','Could\x20not\x20extract\x20token\x20from\x20MCP\x20response'];_0x4db6=function(){return _0x4691f6;};return _0x4db6();}async function loadCachedClient(){const _0x5a5c0a=_0x4cdcf7,_0x28e51d={'NyZAX':function(_0x56eff4){return _0x56eff4();},'TxRjW':function(_0x4e202f,_0x1b2a39){return _0x4e202f!==_0x1b2a39;}},_0xf71de7=await _0x28e51d[_0x5a5c0a(0x16e)](loadCachedData);if(_0xf71de7?.['origin']&&_0x28e51d['TxRjW'](_0xf71de7['origin'],currentOrigin))return null;return _0xf71de7?.[_0x5a5c0a(0x167)]?{'clientId':_0xf71de7[_0x5a5c0a(0x167)],'clientSecret':_0xf71de7[_0x5a5c0a(0xfc)]}:null;}async function clearCachedClient(){const _0xa6a6ad={'LQrSn':function(_0x5208b3){return _0x5208b3();}},_0x3c12e9=await _0xa6a6ad['LQrSn'](loadCachedData);if(!_0x3c12e9)return;const {clientId:_0x5787e0,clientSecret:_0x4da276,..._0x3b8c23}=_0x3c12e9;await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x3b8c23),{'mode':0x180});}async function saveCachedClient(_0x3014e4,_0x5e639e){const _0x582561=_0x4cdcf7,_0x1e8c7e=await loadCachedData(),_0x564b69={..._0x1e8c7e,'origin':currentOrigin,'accessToken':_0x1e8c7e?.[_0x582561(0x10b)]??'','clientId':_0x3014e4,'clientSecret':_0x5e639e};await mkdir(join(homedir(),'.ranger'),{'recursive':!![]}),await writeFile(TOKEN_CACHE_PATH,JSON['stringify'](_0x564b69),{'mode':0x180});}async function loadCachedData(){const _0x2da8af=_0x4cdcf7,_0x549fb6={'wTrGX':function(_0x36a299,_0x83d975,_0x5d31e8){return _0x36a299(_0x83d975,_0x5d31e8);}};try{return JSON['parse'](await _0x549fb6[_0x2da8af(0x17e)](readFile,TOKEN_CACHE_PATH,_0x2da8af(0x17c)));}catch{return null;}}function _0xef40(_0x5f4bcd,_0x11a274){_0x5f4bcd=_0x5f4bcd-0xf5;const _0x4db6ce=_0x4db6();let _0xef40ad=_0x4db6ce[_0x5f4bcd];return _0xef40ad;}async function parseResponse(_0x184444){const _0x2ad469=_0x4cdcf7,_0x21c74a={'lWYxP':_0x2ad469(0x128),'qpljs':'data:','JGXhc':function(_0x5b99fe,_0x36a350){return _0x5b99fe!==_0x36a350;},'nyfws':_0x2ad469(0x14a)},_0x3ba6a6=_0x184444[_0x2ad469(0x16a)][_0x2ad469(0x108)](_0x21c74a[_0x2ad469(0x15e)])??'';if(_0x3ba6a6[_0x2ad469(0x122)](_0x2ad469(0x11b))){const _0x577492=await _0x184444['text']();for(const _0x16ac2e of _0x577492[_0x2ad469(0x106)]('\x0a')){const _0xd1df5=_0x16ac2e[_0x2ad469(0x18a)]();if(_0xd1df5[_0x2ad469(0x14d)](_0x21c74a['qpljs'])){const _0x5d6741=_0xd1df5[_0x2ad469(0x10a)](_0x21c74a[_0x2ad469(0x189)][_0x2ad469(0x164)])[_0x2ad469(0x18a)]();if(!_0x5d6741)continue;try{const _0x41ca88=JSON[_0x2ad469(0x143)](_0x5d6741);if(_0x21c74a[_0x2ad469(0x129)](_0x41ca88['id'],undefined)||_0x41ca88[_0x2ad469(0x15b)])return _0x41ca88;}catch{}}}throw new Error(_0x21c74a[_0x2ad469(0x157)]);}return _0x184444[_0x2ad469(0x140)]();}function extractToken(_0x57d750){const _0xfd00a6=_0x4cdcf7,_0x7262b7={'tGufJ':function(_0x552f39,_0x462ea2){return _0x552f39===_0x462ea2;},'LCtTk':_0xfd00a6(0x111)};if(!_0x57d750)return null;const _0x4b0679=_0x57d750['structuredContent'];if(_0x4b0679?.['token']&&_0x7262b7['tGufJ'](typeof _0x4b0679['token'],_0xfd00a6(0x112)))return _0x4b0679[_0xfd00a6(0x170)];if(_0x57d750['isError']){const _0x390401=_0x57d750['content'];throw new Error(_0xfd00a6(0x125)+(_0x390401?.[0x0]?.[_0xfd00a6(0x111)]??'Unknown\x20error'));}const _0x489711=_0x57d750[_0xfd00a6(0x182)];if(_0x489711)for(const _0x428470 of _0x489711){if(_0x428470[_0xfd00a6(0x130)]===_0x7262b7[_0xfd00a6(0x17d)]&&_0x428470['text']){try{const _0x5b2d6f=JSON['parse'](_0x428470[_0xfd00a6(0x111)]);if(typeof _0x5b2d6f?.['token']===_0xfd00a6(0x112))return _0x5b2d6f['token'];}catch{}const _0x4cf5ca=_0x428470[_0xfd00a6(0x111)][_0xfd00a6(0x13a)](/(rngr_[A-Za-z0-9_-]+)/);if(_0x4cf5ca)return _0x4cf5ca[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 _0x3b2e(){var _0x1188d1=['7614341gMlMOG','pnRmD','fallback;\x20you\x20can\x20delete\x20them\x20once\x20you\x20have\x20re-auth-ed.','zvgJm','15926394qJrfwi','15oCxEOr','2XHfYMS','5495109OasRWH','2352590fqebGU','\x20\x20ranger\x20profile\x20add\x20<name>\x0a','1377923KomzTu','11034eXEQKK','12112VksVtV','6mZRajs','For\x20CI\x20/\x20background\x20agents\x20and\x20other\x20setup\x20options,\x20see:\x0a','446644LAiYsj'];_0x3b2e=function(){return _0x1188d1;};return _0x3b2e();}(function(_0x1eca9c,_0x366d45){var _0x5aa06f=_0x2c5c,_0x40cb78=_0x1eca9c();while(!![]){try{var _0x1602a5=parseInt(_0x5aa06f(0x196))/0x1+parseInt(_0x5aa06f(0x1a2))/0x2*(-parseInt(_0x5aa06f(0x1a3))/0x3)+-parseInt(_0x5aa06f(0x19b))/0x4*(parseInt(_0x5aa06f(0x1a1))/0x5)+-parseInt(_0x5aa06f(0x199))/0x6*(-parseInt(_0x5aa06f(0x19c))/0x7)+parseInt(_0x5aa06f(0x198))/0x8*(parseInt(_0x5aa06f(0x197))/0x9)+parseInt(_0x5aa06f(0x1a4))/0xa+-parseInt(_0x5aa06f(0x1a0))/0xb;if(_0x1602a5===_0x366d45)break;else _0x40cb78['push'](_0x40cb78['shift']());}catch(_0x4116b9){_0x40cb78['push'](_0x40cb78['shift']());}}}(_0x3b2e,0xe61e9));function _0x2c5c(_0x4d0668,_0x5d3432){_0x4d0668=_0x4d0668-0x195;var _0x3b2eff=_0x3b2e();var _0x2c5cb4=_0x3b2eff[_0x4d0668];return _0x2c5cb4;}export async function migrateProfile(_0x109d16,_0x130b4a){var _0x6569bf=_0x2c5c,_0x16c41a={'pnRmD':function(_0x5c50aa,_0x66de59){return _0x5c50aa+_0x66de59;},'tPgLi':function(_0x2c7e19,_0x4a98cb){return _0x2c7e19+_0x4a98cb;},'rotlZ':_0x6569bf(0x195),'zvgJm':'\x20\x20https://docs.ranger.net/main/concepts/profiles\x0a','uQAqh':'Existing\x20sessions\x20in\x20your\x20old\x20<project>/.ranger/\x20dirs\x20still\x20work\x20as\x20a\x0a'};console['error'](_0x16c41a[_0x6569bf(0x19d)](_0x16c41a['pnRmD'](_0x16c41a[_0x6569bf(0x19d)](_0x16c41a['tPgLi'](_0x16c41a['pnRmD']('ranger\x20profile\x20migrate\x20is\x20no\x20longer\x20supported.\x0a','\x0a')+'To\x20set\x20up\x20a\x20fresh\x20profile,\x20run:\x0a',_0x16c41a['rotlZ']),'\x0a')+_0x6569bf(0x19a)+_0x16c41a[_0x6569bf(0x19f)],'\x0a')+_0x16c41a['uQAqh'],_0x6569bf(0x19e))),process['exit'](0x1);}