@ranger-testing/ranger-cli 2.3.1 → 2.4.0

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 (70) hide show
  1. package/build/cli.js +1 -1
  2. package/build/commands/addEnv.js +1 -1
  3. package/build/commands/authEncrypt.js +1 -1
  4. package/build/commands/clean.js +1 -1
  5. package/build/commands/config.js +1 -1
  6. package/build/commands/env.js +1 -1
  7. package/build/commands/feature.js +1 -1
  8. package/build/commands/hook.js +1 -1
  9. package/build/commands/hooks/autoPrompt.js +1 -1
  10. package/build/commands/hooks/disable.js +1 -1
  11. package/build/commands/hooks/enable.js +1 -1
  12. package/build/commands/hooks/exitPlanMode.js +1 -1
  13. package/build/commands/hooks/index.js +1 -1
  14. package/build/commands/hooks/output.js +1 -1
  15. package/build/commands/hooks/planReminder.js +1 -1
  16. package/build/commands/hooks/planStart.js +1 -1
  17. package/build/commands/hooks/postEdit.js +1 -1
  18. package/build/commands/hooks/preCompact.js +1 -1
  19. package/build/commands/hooks/sessionEnd.js +1 -1
  20. package/build/commands/hooks/sessionStart.js +1 -1
  21. package/build/commands/hooks/stopHook.js +1 -1
  22. package/build/commands/index.js +1 -1
  23. package/build/commands/login.js +1 -1
  24. package/build/commands/setup/claude.js +1 -1
  25. package/build/commands/setup/opencode.js +1 -1
  26. package/build/commands/setupCi.js +1 -1
  27. package/build/commands/skillup.js +1 -1
  28. package/build/commands/start.js +1 -1
  29. package/build/commands/status.js +1 -1
  30. package/build/commands/update.js +1 -1
  31. package/build/commands/updateEnv.js +1 -1
  32. package/build/commands/useEnv.js +1 -1
  33. package/build/commands/utils/activeProfile.js +1 -1
  34. package/build/commands/utils/agentEnv.js +1 -0
  35. package/build/commands/utils/browserSessionsApi.js +1 -1
  36. package/build/commands/utils/claudeConfig.js +1 -1
  37. package/build/commands/utils/claudePlugin.js +1 -1
  38. package/build/commands/utils/crypto.js +1 -1
  39. package/build/commands/utils/desirePathLog.js +1 -1
  40. package/build/commands/utils/deviceAuth.js +1 -1
  41. package/build/commands/utils/environment.js +1 -1
  42. package/build/commands/utils/featureApi.js +1 -1
  43. package/build/commands/utils/featureReportGenerator.js +1 -1
  44. package/build/commands/utils/fixWebmDuration.js +1 -1
  45. package/build/commands/utils/git.js +1 -1
  46. package/build/commands/utils/keychain.js +1 -1
  47. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  48. package/build/commands/utils/mcpImageBase64.js +1 -1
  49. package/build/commands/utils/model.js +1 -1
  50. package/build/commands/utils/opencodeConfig.js +1 -1
  51. package/build/commands/utils/playwrightCli.js +1 -1
  52. package/build/commands/utils/profileMessages.js +1 -1
  53. package/build/commands/utils/profileSetupBanner.js +1 -1
  54. package/build/commands/utils/rangerConfig.js +1 -1
  55. package/build/commands/utils/rangerRoot.js +1 -1
  56. package/build/commands/utils/reportGenerator.js +1 -1
  57. package/build/commands/utils/retry.js +1 -1
  58. package/build/commands/utils/sessionCache.js +1 -1
  59. package/build/commands/utils/settings.js +1 -1
  60. package/build/commands/utils/skillContent.js +1 -1
  61. package/build/commands/utils/skills.js +1 -1
  62. package/build/commands/utils/stitchWebmFiles.js +1 -1
  63. package/build/commands/utils/telemetry.js +1 -1
  64. package/build/commands/utils/traceSnapshotMapper.js +1 -1
  65. package/build/commands/utils/userApi.js +1 -1
  66. package/build/commands/utils/version.js +1 -1
  67. package/build/commands/verifyFeature.js +1 -1
  68. package/build/commands/verifyFeatureCli.js +1 -1
  69. package/build/commands/verifyInBrowser.js +1 -1
  70. package/package.json +1 -1
@@ -1 +1 @@
1
- (function(_0x2ced36,_0x3cadda){const _0x2c5814=_0x4fbb,_0x49d836=_0x2ced36();while(!![]){try{const _0x1eb070=parseInt(_0x2c5814(0x12c))/0x1*(parseInt(_0x2c5814(0x11f))/0x2)+parseInt(_0x2c5814(0x12a))/0x3*(-parseInt(_0x2c5814(0x12d))/0x4)+parseInt(_0x2c5814(0x122))/0x5*(-parseInt(_0x2c5814(0x124))/0x6)+-parseInt(_0x2c5814(0x11b))/0x7*(parseInt(_0x2c5814(0x134))/0x8)+-parseInt(_0x2c5814(0x133))/0x9*(parseInt(_0x2c5814(0x11e))/0xa)+-parseInt(_0x2c5814(0x120))/0xb*(-parseInt(_0x2c5814(0x121))/0xc)+parseInt(_0x2c5814(0x11d))/0xd;if(_0x1eb070===_0x3cadda)break;else _0x49d836['push'](_0x49d836['shift']());}catch(_0x5dfae2){_0x49d836['push'](_0x49d836['shift']());}}}(_0x5a1f,0x67aca));import{appendFile}from'fs/promises';function _0x5a1f(){const _0x572afe=['28472ezkShG','stdin','273vEkBsq','KApDy','7565480gcwkEM','716460sZSkxf','2PFVvfo','143mMCxQV','732528rRIlAg','80UnYpSK','success','101814VFeiWi','OTUUT','main','hook:session-start','bbgUD','export\x20CLAUDE_SESSION_ID=\x22','42192kRKAZM','master','683513DmjQVz','124lFvRsb','HvhgA','log','CLAUDE_ENV_FILE','parse','env','99SJrFNF'];_0x5a1f=function(){return _0x572afe;};return _0x5a1f();}function _0x4fbb(_0x1dbeb4,_0x1ae66a){_0x1dbeb4=_0x1dbeb4-0x11b;const _0x5a1f5d=_0x5a1f();let _0x4fbbd7=_0x5a1f5d[_0x1dbeb4];return _0x4fbbd7;}import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';const RANGER_AUTO_ENABLED_PROMPT='=================================================================\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20🚨\x20RANGER\x20IS\x20ACTIVE\x20🚨\x0a=================================================================\x0a\x0aThis\x20session\x20has\x20Ranger\x20ENABLED.\x20Before\x20doing\x20ANYTHING\x20else:\x0a\x0a1.\x20**READ\x20the\x20/ranger\x20skill\x20FIRST**\x20-\x20Run\x20the\x20skill\x20to\x20understand\x20the\x20required\x20workflow\x20for\x20UI\x20features\x0a\x0a2.\x20**Check\x20for\x20existing\x20feature\x20reviews**\x20-\x20Run\x20`ranger\x20list`\x20to\x20see\x20if\x20there\x27s\x20an\x20in-progress\x20feature\x20review\x20to\x20resume\x0a\x0a3.\x20**For\x20ANY\x20UI\x20work**:\x20You\x20MUST\x20either:\x0a\x20\x20\x20-\x20Resume\x20an\x20existing\x20feature\x20review:\x20`ranger\x20resume\x20<id>`\x0a\x20\x20\x20-\x20Create\x20a\x20new\x20feature\x20review:\x20`ranger\x20create\x20\x22<name>\x22\x20-d\x20\x22<desc>\x22\x20-c\x20\x22<scenario>\x22`\x0a\x0a4.\x20**If\x20resuming\x20a\x20feature\x20review\x20with\x20reviewer\x20comments**:\x20Run\x20`ranger\x20get-review`\x20to\x20see\x20what\x20reviewers\x20want\x20fixed\x20before\x20making\x20code\x20changes\x0a\x0a=================================================================';export async function sessionStart(_0x52133e){const _0x5e3305=_0x4fbb,_0x26756c={'Youka':function(_0x2bd791,_0x4a3219){return _0x2bd791||_0x4a3219;},'GdcRY':'session_id','OTUUT':'source','bbgUD':function(_0x5d9c40,_0x1dd7c9){return _0x5d9c40&&_0x1dd7c9;},'zUYFC':function(_0x4a7c35,_0x51ae8e){return _0x4a7c35(_0x51ae8e);},'HvhgA':function(_0x7cfad4,_0x2623be){return _0x7cfad4(_0x2623be);},'KApDy':function(_0x11a168,_0x702640){return _0x11a168(_0x702640);},'MFjQF':_0x5e3305(0x123),'puUQg':_0x5e3305(0x12b)};let _0x47589c=_0x26756c['Youka'](_0x52133e,''),_0x525b74;if(!_0x52133e){let _0x535a86='';for await(const _0x42032e of process[_0x5e3305(0x135)]){_0x535a86+=_0x42032e;}try{const _0x3d67d7=JSON[_0x5e3305(0x131)](_0x535a86);_0x47589c=_0x3d67d7[_0x26756c['GdcRY']]||'',_0x525b74=_0x3d67d7[_0x26756c[_0x5e3305(0x125)]];}catch{}const _0x14ae6c=process[_0x5e3305(0x132)][_0x5e3305(0x130)];if(_0x26756c[_0x5e3305(0x128)](_0x14ae6c,_0x47589c))try{await appendFile(_0x14ae6c,_0x5e3305(0x129)+_0x47589c+'\x22\x0a');}catch{}}if(_0x47589c){shouldAutoEnableAfterClear(_0x525b74)&&_0x26756c['zUYFC'](autoEnableAfterClear,_0x47589c);_0x26756c[_0x5e3305(0x12e)](initBranchTracking,_0x47589c);const _0xa5d15b=_0x26756c[_0x5e3305(0x11c)](isSessionEnabled,_0x47589c);try{const _0x5ba02c=createTelemetryCollector(_0x5e3305(0x127));await _0x5ba02c['trackCommandStart']({'sessionId':_0x47589c,'hooksEnabled':_0xa5d15b}),await _0x5ba02c['trackCommandEnd'](_0x26756c['MFjQF']);}catch{}if(_0xa5d15b){const _0x248808=getCurrentBranch(),_0x29c28e=_0x248808&&_0x248808!==_0x5e3305(0x126)&&_0x248808!==_0x26756c['puUQg']?'\x20(Branch:\x20'+_0x248808+')':'',_0x291fb9={'hookSpecificOutput':{'hookEventName':'SessionStart','additionalContext':RANGER_AUTO_ENABLED_PROMPT+_0x29c28e}};console[_0x5e3305(0x12f)](JSON['stringify'](_0x291fb9));}}}
1
+ const _0x120a25=_0x3b01;(function(_0x3f1f0a,_0x1e031c){const _0x4a5542=_0x3b01,_0x7e2f5c=_0x3f1f0a();while(!![]){try{const _0x3b5ab1=parseInt(_0x4a5542(0x1aa))/0x1*(parseInt(_0x4a5542(0x1b4))/0x2)+parseInt(_0x4a5542(0x1a6))/0x3*(parseInt(_0x4a5542(0x1af))/0x4)+parseInt(_0x4a5542(0x1a5))/0x5*(parseInt(_0x4a5542(0x1ac))/0x6)+parseInt(_0x4a5542(0x1a8))/0x7*(parseInt(_0x4a5542(0x1b3))/0x8)+-parseInt(_0x4a5542(0x1ae))/0x9*(parseInt(_0x4a5542(0x1bb))/0xa)+parseInt(_0x4a5542(0x1ab))/0xb+-parseInt(_0x4a5542(0x1b0))/0xc;if(_0x3b5ab1===_0x1e031c)break;else _0x7e2f5c['push'](_0x7e2f5c['shift']());}catch(_0x5369e0){_0x7e2f5c['push'](_0x7e2f5c['shift']());}}}(_0x4a97,0x9cfca));import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';const RANGER_AUTO_ENABLED_PROMPT=_0x120a25(0x1a3);function _0x4a97(){const _0x19d2f7=['master','dCprt','rQhcO','hook:session-start','2646790zFgxbE','=================================================================\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=================================================================','\x20(Branch:\x20','1075880smkHzX','449706JyIYVy','trackCommandStart','1047529FilJHO','CLAUDE_ENV_FILE','117yazSVc','2054547qrbRee','18hzNUdd','fRUkr','27QaSQjw','32eCHuCT','25395708pQpZjy','main','log','48IASlqB','10666EcZGsH','rGybf','Onuur'];_0x4a97=function(){return _0x19d2f7;};return _0x4a97();}function _0x3b01(_0x594ddc,_0x3cb1c9){_0x594ddc=_0x594ddc-0x1a3;const _0x4a970f=_0x4a97();let _0x3b0114=_0x4a970f[_0x594ddc];return _0x3b0114;}export async function sessionStart(_0x58b6a7){const _0x16dd55=_0x120a25,_0x551e54={'IekJu':'session_id','WiryR':'source','hcZzn':function(_0x19e2e1,_0x43c87c){return _0x19e2e1&&_0x43c87c;},'Onuur':function(_0x819633,_0x5d6ded){return _0x819633(_0x5d6ded);},'rQhcO':_0x16dd55(0x1ba),'xoxRB':function(_0x59cccb){return _0x59cccb();},'rGybf':_0x16dd55(0x1b1),'fRUkr':function(_0x42e48f,_0x3ba249){return _0x42e48f!==_0x3ba249;},'fyYqt':_0x16dd55(0x1b7),'dCprt':'SessionStart','WKMwG':function(_0x281de4,_0x469f06){return _0x281de4+_0x469f06;}};let _0x3c0f19=_0x58b6a7||'',_0x16452c;if(!_0x58b6a7){let _0x4e2bcb='';for await(const _0x33c278 of process['stdin']){_0x4e2bcb+=_0x33c278;}try{const _0x2eceb9=JSON['parse'](_0x4e2bcb);_0x3c0f19=_0x2eceb9[_0x551e54['IekJu']]||'',_0x16452c=_0x2eceb9[_0x551e54['WiryR']];}catch{}const _0x31b96d=process['env'][_0x16dd55(0x1a9)];if(_0x551e54['hcZzn'](_0x31b96d,_0x3c0f19))try{await appendFile(_0x31b96d,'export\x20CLAUDE_SESSION_ID=\x22'+_0x3c0f19+'\x22\x0a');}catch{}}if(_0x3c0f19){_0x551e54[_0x16dd55(0x1b6)](shouldAutoEnableAfterClear,_0x16452c)&&autoEnableAfterClear(_0x3c0f19);initBranchTracking(_0x3c0f19);const _0x467cdb=isSessionEnabled(_0x3c0f19);try{const _0x6a0e8a=_0x551e54['Onuur'](createTelemetryCollector,_0x551e54[_0x16dd55(0x1b9)]);await _0x6a0e8a[_0x16dd55(0x1a7)]({'sessionId':_0x3c0f19,'hooksEnabled':_0x467cdb}),await _0x6a0e8a['trackCommandEnd']('success');}catch{}if(_0x467cdb){const _0x119132=_0x551e54['xoxRB'](getCurrentBranch),_0x553404=_0x119132&&_0x119132!==_0x551e54[_0x16dd55(0x1b5)]&&_0x551e54[_0x16dd55(0x1ad)](_0x119132,_0x551e54['fyYqt'])?_0x16dd55(0x1a4)+_0x119132+')':'',_0x43e7d6={'hookSpecificOutput':{'hookEventName':_0x551e54[_0x16dd55(0x1b8)],'additionalContext':_0x551e54['WKMwG'](RANGER_AUTO_ENABLED_PROMPT,_0x553404)}};console[_0x16dd55(0x1b2)](JSON['stringify'](_0x43e7d6));}}}
@@ -1 +1 @@
1
- (function(_0x179e8e,_0x1032e9){const _0x422563=_0x4107,_0x2c2a00=_0x179e8e();while(!![]){try{const _0x1e7bec=parseInt(_0x422563(0x1bd))/0x1+parseInt(_0x422563(0x1d4))/0x2+parseInt(_0x422563(0x1d3))/0x3*(-parseInt(_0x422563(0x1cc))/0x4)+parseInt(_0x422563(0x1c0))/0x5+parseInt(_0x422563(0x1c8))/0x6*(-parseInt(_0x422563(0x1c2))/0x7)+-parseInt(_0x422563(0x1d0))/0x8*(-parseInt(_0x422563(0x1ba))/0x9)+parseInt(_0x422563(0x1b7))/0xa*(-parseInt(_0x422563(0x1d6))/0xb);if(_0x1e7bec===_0x1032e9)break;else _0x2c2a00['push'](_0x2c2a00['shift']());}catch(_0x4ba95a){_0x2c2a00['push'](_0x2c2a00['shift']());}}}(_0x1b6c,0x2a716));import{open}from'fs/promises';import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';function _0x1b6c(){const _0x112907=['block','3xMjYQd','454862HJkYRb','includes','1184700TBfjat','size','40CUmddf','usqxa','IJkGg','27XnxWtS','alloc','sessionId','337858pnZqHe','read','utf8','999500XrzRFH','name','21uBEfXQ','\x20for\x20\x22','message','stop_hook_active','currentSessionId','yZtTe','677706FFkldT','`,\x20then\x20run\x20/exit\x20again.','featureId','zTUNN','490732ErptKO','success','uaoqD','YdLbF','802648HZNLRd','KTBVO'];_0x1b6c=function(){return _0x112907;};return _0x1b6c();}export async function stopHook(_0x324076){const _0x12137c=_0x4107,_0x2d719c={'yZtTe':function(_0x3b6e67,_0x94fb1d){return _0x3b6e67(_0x94fb1d);},'usqxa':function(_0x15823b,_0x6fec5d){return _0x15823b(_0x6fec5d);},'fwzww':function(_0x22d65a,_0x533a95,_0x198e9d,_0x486894){return _0x22d65a(_0x533a95,_0x198e9d,_0x486894);},'zTUNN':'RANGER_SKIP_VERIFICATION','IJkGg':function(_0x454d36,_0x5dcf60,_0x1e4bb2){return _0x454d36(_0x5dcf60,_0x1e4bb2);},'wpmUH':function(_0x9d6ef4,_0x19f2bb,_0x3d70d1){return _0x9d6ef4(_0x19f2bb,_0x3d70d1);},'QBOmx':function(_0x3b3b86,_0x4c5f90){return _0x3b3b86&&_0x4c5f90;},'qVVYu':function(_0x1206e9,_0x57ac4f,_0x39b6e0,_0x335e7c){return _0x1206e9(_0x57ac4f,_0x39b6e0,_0x335e7c);},'YdLbF':function(_0x250b70,_0x3d9dfb,_0x424eea,_0x33960e){return _0x250b70(_0x3d9dfb,_0x424eea,_0x33960e);}},_0x27bbd5=await _0x2d719c[_0x12137c(0x1c7)](getEnabledHookContext,_0x324076),_0x3aecb2=_0x27bbd5?.[_0x12137c(0x1bc)]??null,_0x7fa8a7=_0x2d719c[_0x12137c(0x1b8)](Boolean,_0x27bbd5?.['input']?.[_0x12137c(0x1c5)]),_0x14c831=typeof _0x27bbd5?.['input']?.['transcript_path']==='string'?_0x27bbd5['input']['transcript_path']:null;let _0x21698e=!![];if(!_0x3aecb2){await trackStop(_0x3aecb2,![],_0x21698e);return;}try{const _0xdc0ad5=getSessionEntry(_0x3aecb2);if(!_0xdc0ad5){await _0x2d719c['fwzww'](trackStop,_0x3aecb2,!![],_0x21698e);return;}const _0x5810f4='https://dashboard.ranger.net/features/'+_0xdc0ad5['featureId'],_0x44d78b=_0x2d719c[_0x12137c(0x1cb)],_0x55c0bd=await getToken(),_0x29e318=!_0x7fa8a7;let _0x35e43f=null,_0x467ce0=null;const _0x5a8223=_0x7fa8a7&&await _0x2d719c[_0x12137c(0x1b9)](transcriptHasToken,_0x14c831,_0x44d78b),_0x343ea7=await _0x2d719c['wpmUH'](transcriptHasToken,_0x14c831,_0x5810f4);if(_0x55c0bd)try{const _0x3974ef=await _0x2d719c['yZtTe'](getFeature,_0xdc0ad5[_0x12137c(0x1ca)]);_0x35e43f=_0x3974ef[_0x12137c(0x1c1)]??null,_0x467ce0=_0x3974ef[_0x12137c(0x1c6)]??null;}catch{}if(_0x2d719c['QBOmx'](_0x55c0bd,_0x467ce0))try{await _0x2d719c[_0x12137c(0x1b9)](concludeSession,_0xdc0ad5['featureId'],_0x467ce0);}catch(_0x4b8d8f){if(_0x5a8223){await _0x2d719c['qVVYu'](trackStop,_0x3aecb2,!![],_0x21698e);return;}_0x21698e=![];const _0x597f96=_0x4b8d8f instanceof Error?_0x4b8d8f[_0x12137c(0x1c4)]:String(_0x4b8d8f),_0x494b98={'decision':_0x12137c(0x1d2),'reason':'Failed\x20to\x20conclude\x20Ranger\x20feature\x20review\x20session'+(_0x35e43f?_0x12137c(0x1c3)+_0x35e43f+'\x22':'')+':\x0a\x0a'+_0x597f96+'\x0a\x0aThis\x20is\x20most\x20likely\x20due\x20to\x20pending\x20scenarios\x20that\x20need\x20to\x20be\x20verified.\x20Please\x20resolve\x20the\x20issue\x20or\x20resume\x20later\x20with:\x0a\x20\x20ranger\x20resume\x0a\x0aIf\x20you\x20are\x20extremely\x20sure\x20this\x20is\x20the\x20user\x27s\x20requirement\x20and\x20want\x20to\x20skip\x20verification\x20for\x20now,\x20send\x20a\x20final\x20message\x20that\x20includes\x20the\x20feature\x20review\x20link\x20('+_0x5810f4+')\x20and\x20the\x20token\x20`'+_0x44d78b+_0x12137c(0x1c9)};console['log'](JSON['stringify'](_0x494b98)),await _0x2d719c[_0x12137c(0x1cf)](trackStop,_0x3aecb2,!![],_0x21698e);return;}await trackStop(_0x3aecb2,!![],_0x21698e);return;}catch{await trackStop(_0x3aecb2,!![],_0x21698e);return;}}function _0x4107(_0x5ae01e,_0x5a8b2c){_0x5ae01e=_0x5ae01e-0x1b7;const _0x1b6c50=_0x1b6c();let _0x41074f=_0x1b6c50[_0x5ae01e];return _0x41074f;}async function trackStop(_0x389c34,_0x21ed56,_0x39338a){const _0x12f8ff=_0x4107,_0x26ccdb={'jdazY':_0x12f8ff(0x1cd)};try{const _0x48a580=createTelemetryCollector('hook:stop');await _0x48a580['trackCommandStart']({'sessionId':_0x389c34??undefined,'hooksEnabled':_0x21ed56,'stopAllowed':_0x39338a}),await _0x48a580['trackCommandEnd'](_0x26ccdb['jdazY']);}catch{}}async function transcriptHasToken(_0x45ce0f,_0x1ddfaf){const _0x16c759=_0x4107,_0x3fac08={'KTBVO':function(_0x4513,_0x20bb74,_0x2a1f3e){return _0x4513(_0x20bb74,_0x2a1f3e);}};if(!_0x45ce0f)return![];const _0x2c844f=await _0x3fac08[_0x16c759(0x1d1)](readTranscriptTail,_0x45ce0f,0x30d40);return _0x2c844f?_0x2c844f[_0x16c759(0x1d5)](_0x1ddfaf):![];}async function readTranscriptTail(_0x12842b,_0x1c95a0){const _0x181ea1=_0x4107,_0xdc309b={'uaoqD':_0x181ea1(0x1bf)};let _0x1f7a17=null;try{_0x1f7a17=await open(_0x12842b,'r');const _0x3a26ff=await _0x1f7a17['stat'](),_0x5df550=Math['min'](_0x3a26ff[_0x181ea1(0x1d7)],_0x1c95a0);if(_0x5df550<=0x0)return'';const _0x5130e7=Buffer[_0x181ea1(0x1bb)](_0x5df550);return await _0x1f7a17[_0x181ea1(0x1be)](_0x5130e7,0x0,_0x5df550,_0x3a26ff['size']-_0x5df550),_0x5130e7['toString'](_0xdc309b[_0x181ea1(0x1ce)]);}catch{return null;}finally{try{await _0x1f7a17?.['close']();}catch{}}}
1
+ (function(_0x1c7f93,_0x264697){const _0x393d3b=_0x35c4,_0x5235ea=_0x1c7f93();while(!![]){try{const _0x1c5e0c=-parseInt(_0x393d3b(0x173))/0x1*(-parseInt(_0x393d3b(0x16c))/0x2)+parseInt(_0x393d3b(0x172))/0x3*(parseInt(_0x393d3b(0x16e))/0x4)+-parseInt(_0x393d3b(0x160))/0x5*(-parseInt(_0x393d3b(0x16f))/0x6)+parseInt(_0x393d3b(0x171))/0x7+-parseInt(_0x393d3b(0x15e))/0x8*(-parseInt(_0x393d3b(0x165))/0x9)+parseInt(_0x393d3b(0x177))/0xa*(parseInt(_0x393d3b(0x16a))/0xb)+-parseInt(_0x393d3b(0x16b))/0xc;if(_0x1c5e0c===_0x264697)break;else _0x5235ea['push'](_0x5235ea['shift']());}catch(_0x3286e6){_0x5235ea['push'](_0x5235ea['shift']());}}}(_0x4bf2,0x3fb5d));function _0x35c4(_0x5d5aad,_0x368656){_0x5d5aad=_0x5d5aad-0x15e;const _0x4bf249=_0x4bf2();let _0x35c447=_0x4bf249[_0x5d5aad];return _0x35c447;}import{getToken}from'../utils/keychain.js';function _0x4bf2(){const _0xa95747=['https://dashboard.ranger.net/features/','featureId','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','9mtIEzQ','incomplete','trackCommandStart','verified','Stop','545149moeZWR','21127428rLqOGx','2dIZekN','sessionId','4jtMhpJ','90198uzUYLD','stringify','1856092hTUGDS','1090218Tuewer','282686HtJVOe','some','currentSessionId','status','100qCYsIp','2151832FtFrkP','raqFW','115suDgNj','success'];_0x4bf2=function(){return _0xa95747;};return _0x4bf2();}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(_0x3f3edc){const _0x5e5033=_0x35c4,_0x51d82a={'raqFW':function(_0x98a853,_0x3c1b80){return _0x98a853(_0x3c1b80);},'OFTzU':function(_0x1c6e36,_0x7ba9a,_0x5589b7,_0x1dd6e2){return _0x1c6e36(_0x7ba9a,_0x5589b7,_0x1dd6e2);},'CEbHt':function(_0x32c8f6,_0x2e51d3){return _0x32c8f6&&_0x2e51d3;},'tLaNk':_0x5e5033(0x169),'mnEOB':function(_0x2e39f4,_0x44d938,_0x172120,_0x353f63){return _0x2e39f4(_0x44d938,_0x172120,_0x353f63);}},_0x4c27fa=await _0x51d82a[_0x5e5033(0x15f)](getEnabledHookContext,_0x3f3edc),_0x5ae976=_0x4c27fa?.[_0x5e5033(0x16d)]??null;let _0x1b9f2f=!![];if(!_0x5ae976){await trackStop(_0x5ae976,![],_0x1b9f2f);return;}try{const _0x206feb=_0x51d82a['raqFW'](getSessionEntry,_0x5ae976);if(!_0x206feb){await _0x51d82a['OFTzU'](trackStop,_0x5ae976,!![],_0x1b9f2f);return;}const _0x38d006=await getToken(),_0xad8a3d=_0x5e5033(0x162)+_0x206feb[_0x5e5033(0x163)];let _0x43eb38=null,_0x4a0d50=![],_0x5a4b40=![];if(_0x38d006)try{const _0x438c9d=await _0x51d82a['raqFW'](getFeature,_0x206feb[_0x5e5033(0x163)]);_0x43eb38=_0x438c9d[_0x5e5033(0x175)]??null;const _0x55205e=_0x438c9d['checklistItems']['filter'](_0x5ab31a=>_0x5ab31a[_0x5e5033(0x16d)]===_0x43eb38);_0x4a0d50=_0x55205e[_0x5e5033(0x174)](_0x1e582b=>_0x1e582b[_0x5e5033(0x176)]!==_0x5e5033(0x168)&&_0x1e582b['status']!=='blocked'&&_0x1e582b[_0x5e5033(0x176)]!=='closed'&&_0x1e582b[_0x5e5033(0x176)]!==_0x5e5033(0x166)),_0x5a4b40=_0x55205e['some'](_0x1b7b70=>_0x1b7b70[_0x5e5033(0x176)]==='verification_in_progress');}catch{}if(_0x51d82a['CEbHt'](_0x38d006,_0x43eb38)&&_0x4a0d50){if(!_0x5a4b40&&shouldShowStopReminder(_0x5ae976)){const _0x276889={'hookSpecificOutput':{'hookEventName':_0x51d82a['tLaNk'],'additionalContext':_0x5e5033(0x164)+_0xad8a3d}};console['log'](JSON[_0x5e5033(0x170)](_0x276889));}}if(_0x51d82a['CEbHt'](_0x38d006,_0x43eb38)&&!_0x4a0d50)try{await concludeSession(_0x206feb[_0x5e5033(0x163)],_0x43eb38);}catch{}await _0x51d82a['mnEOB'](trackStop,_0x5ae976,!![],_0x1b9f2f);return;}catch{await _0x51d82a['OFTzU'](trackStop,_0x5ae976,!![],_0x1b9f2f);return;}}async function trackStop(_0x3b9a68,_0x12d375,_0x21b7d1){const _0x2784d9=_0x35c4;try{const _0x330422=createTelemetryCollector('hook:stop');await _0x330422[_0x2784d9(0x167)]({'sessionId':_0x3b9a68??undefined,'hooksEnabled':_0x12d375,'stopAllowed':_0x21b7d1}),await _0x330422['trackCommandEnd'](_0x2784d9(0x161));}catch{}}
@@ -1 +1 @@
1
- (function(_0x5b53b8,_0x5c3e87){var _0x413aa5=_0x1021,_0x4b48f9=_0x5b53b8();while(!![]){try{var _0x1598ca=-parseInt(_0x413aa5(0x16b))/0x1*(-parseInt(_0x413aa5(0x16f))/0x2)+-parseInt(_0x413aa5(0x16d))/0x3+-parseInt(_0x413aa5(0x172))/0x4*(parseInt(_0x413aa5(0x16a))/0x5)+-parseInt(_0x413aa5(0x16e))/0x6*(-parseInt(_0x413aa5(0x171))/0x7)+-parseInt(_0x413aa5(0x170))/0x8+-parseInt(_0x413aa5(0x16c))/0x9*(-parseInt(_0x413aa5(0x168))/0xa)+-parseInt(_0x413aa5(0x169))/0xb;if(_0x1598ca===_0x5c3e87)break;else _0x4b48f9['push'](_0x4b48f9['shift']());}catch(_0xe95e21){_0x4b48f9['push'](_0x4b48f9['shift']());}}}(_0x2a0c,0xae3e4));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';function _0x1021(_0x42260a,_0xd8743b){_0x42260a=_0x42260a-0x168;var _0x2a0c3a=_0x2a0c();var _0x1021b4=_0x2a0c3a[_0x42260a];return _0x1021b4;}export{login}from'./login.js';export{start}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';function _0x2a0c(){var _0x59c68d=['212225vibtLc','8kuxeCH','45558QziUnX','1395837QtPWHJ','6gIkWFm','326604UPnzYJ','1256576anNtBA','9443791TgNPbg','32vEIAcm','320lhAsas','12560922TJpuVj'];_0x2a0c=function(){return _0x59c68d;};return _0x2a0c();}
1
+ (function(_0x439bcf,_0x127b98){var _0x97ffd7=_0x30cd,_0x2748ef=_0x439bcf();while(!![]){try{var _0x18281e=-parseInt(_0x97ffd7(0x198))/0x1*(-parseInt(_0x97ffd7(0x196))/0x2)+parseInt(_0x97ffd7(0x19b))/0x3*(parseInt(_0x97ffd7(0x19d))/0x4)+-parseInt(_0x97ffd7(0x19a))/0x5+-parseInt(_0x97ffd7(0x197))/0x6+-parseInt(_0x97ffd7(0x19e))/0x7+-parseInt(_0x97ffd7(0x199))/0x8+parseInt(_0x97ffd7(0x19c))/0x9;if(_0x18281e===_0x127b98)break;else _0x2748ef['push'](_0x2748ef['shift']());}catch(_0xcf0737){_0x2748ef['push'](_0x2748ef['shift']());}}}(_0x172b,0x3051c));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';function _0x172b(){var _0x4a1624=['1VkGDvK','1096064qiQddc','1577990YpTXyn','543342bpMVsf','6067719SrtqIB','4jgCEff','1953119AUhSxU','160364uWNiho','35688pKhQzx'];_0x172b=function(){return _0x4a1624;};return _0x172b();}function _0x30cd(_0x129826,_0x4616d6){_0x129826=_0x129826-0x196;var _0x172be9=_0x172b();var _0x30cd91=_0x172be9[_0x129826];return _0x30cd91;}export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';export{skillup}from'./skillup.js';export{envList}from'./env.js';export{hook}from'./hook.js';export{setupCi}from'./setupCi.js';
@@ -1 +1 @@
1
- function _0x1081(_0xbb51a1,_0x43df45){_0xbb51a1=_0xbb51a1-0x19e;const _0x4fcb36=_0x4fcb();let _0x108148=_0x4fcb36[_0xbb51a1];return _0x108148;}(function(_0x225cce,_0x3f4e5b){const _0x37b284=_0x1081,_0xf960f4=_0x225cce();while(!![]){try{const _0x5ab926=parseInt(_0x37b284(0x1ae))/0x1+-parseInt(_0x37b284(0x1a6))/0x2+parseInt(_0x37b284(0x1a0))/0x3+-parseInt(_0x37b284(0x1a2))/0x4*(-parseInt(_0x37b284(0x1a4))/0x5)+parseInt(_0x37b284(0x1a7))/0x6+-parseInt(_0x37b284(0x1a9))/0x7*(parseInt(_0x37b284(0x1a3))/0x8)+-parseInt(_0x37b284(0x1ad))/0x9;if(_0x5ab926===_0x3f4e5b)break;else _0xf960f4['push'](_0xf960f4['shift']());}catch(_0x5680b5){_0xf960f4['push'](_0xf960f4['shift']());}}}(_0x4fcb,0xde65a));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x4fcb(){const _0x3f068d=['Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','Login\x20failed:\x20','4282809XDuFzD','log','5812dyptdi','160aHLExL','3755sqScjD','organizationName','1754940iPyqFL','5651790rygcHA','\x0a✅\x20Logged\x20in\x20to\x20','182259cuZOYc','cnGZb','isTTY','\x0a✅\x20API\x20key\x20stored\x20successfully','11749014wxwLLG','153823yxjVig'];_0x4fcb=function(){return _0x3f068d;};return _0x4fcb();}export async function login(){const _0x438cba=_0x1081,_0x53d10f={'cnGZb':function(_0x2afb5f,_0x3fdcb2){return _0x2afb5f instanceof _0x3fdcb2;}},_0x4425ee=process['stdin']['isTTY']&&process['stdout'][_0x438cba(0x1ab)];if(!_0x4425ee)throw new Error(_0x438cba(0x19e));try{const _0x4563d9=await runDeviceAuthFlow(),_0x179c1f=await getCurrentUser(_0x4563d9);_0x179c1f['success']?console[_0x438cba(0x1a1)](_0x438cba(0x1a8)+_0x179c1f['user'][_0x438cba(0x1a5)]):console[_0x438cba(0x1a1)](_0x438cba(0x1ac));}catch(_0x218711){throw new Error(_0x438cba(0x19f)+(_0x53d10f[_0x438cba(0x1aa)](_0x218711,Error)?_0x218711['message']:_0x218711));}}
1
+ (function(_0x51bc3b,_0xcfb28c){const _0x4dd9ca=_0x4a73,_0x4dfff3=_0x51bc3b();while(!![]){try{const _0x5da02c=parseInt(_0x4dd9ca(0x6e))/0x1*(-parseInt(_0x4dd9ca(0x6c))/0x2)+parseInt(_0x4dd9ca(0x73))/0x3+parseInt(_0x4dd9ca(0x70))/0x4+parseInt(_0x4dd9ca(0x71))/0x5*(-parseInt(_0x4dd9ca(0x78))/0x6)+parseInt(_0x4dd9ca(0x6a))/0x7+parseInt(_0x4dd9ca(0x77))/0x8+parseInt(_0x4dd9ca(0x74))/0x9;if(_0x5da02c===_0xcfb28c)break;else _0x4dfff3['push'](_0x4dfff3['shift']());}catch(_0x2503c2){_0x4dfff3['push'](_0x4dfff3['shift']());}}}(_0x14ba,0x62d82));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';function _0x14ba(){const _0x12790c=['organizationName','599184iRMmub','3068958IEPTBg','1883308PPgNtH','AuDjJ','77020TjBSvz','success','19iTjPhA','hemsL','2731100RERQVT','5KXEqvq','user','495852pjgKDv','4104432yALhlO','isTTY'];_0x14ba=function(){return _0x12790c;};return _0x14ba();}function _0x4a73(_0x12f22a,_0x5078a6){_0x12f22a=_0x12f22a-0x6a;const _0x14ba10=_0x14ba();let _0x4a73ac=_0x14ba10[_0x12f22a];return _0x4a73ac;}export async function login(){const _0xefd648=_0x4a73,_0xa5abad={'ZzVja':function(_0x21a13d){return _0x21a13d();},'AuDjJ':function(_0x5480f0,_0x5e9de6){return _0x5480f0(_0x5e9de6);},'hemsL':'\x0a✅\x20API\x20key\x20stored\x20successfully','TAuMI':function(_0x1df2d2,_0x2bea98){return _0x1df2d2 instanceof _0x2bea98;}},_0xb69fc8=process['stdin'][_0xefd648(0x75)]&&process['stdout'][_0xefd648(0x75)];if(!_0xb69fc8)throw new Error('Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.');try{const _0x2c6919=await _0xa5abad['ZzVja'](runDeviceAuthFlow),_0x2929df=await _0xa5abad[_0xefd648(0x6b)](getCurrentUser,_0x2c6919);_0x2929df[_0xefd648(0x6d)]?console['log']('\x0a✅\x20Logged\x20in\x20to\x20'+_0x2929df[_0xefd648(0x72)][_0xefd648(0x76)]):console['log'](_0xa5abad[_0xefd648(0x6f)]);}catch(_0x40e2b8){throw new Error('Login\x20failed:\x20'+(_0xa5abad['TAuMI'](_0x40e2b8,Error)?_0x40e2b8['message']:_0x40e2b8));}}
@@ -1 +1 @@
1
- (function(_0x3f5095,_0x51b7b9){const _0x3e6469=_0x44c0,_0x5c0ce6=_0x3f5095();while(!![]){try{const _0x14c55e=parseInt(_0x3e6469(0x1cb))/0x1+parseInt(_0x3e6469(0x1be))/0x2*(parseInt(_0x3e6469(0x1dd))/0x3)+-parseInt(_0x3e6469(0x1bc))/0x4*(-parseInt(_0x3e6469(0x1c2))/0x5)+parseInt(_0x3e6469(0x1da))/0x6*(parseInt(_0x3e6469(0x1cd))/0x7)+-parseInt(_0x3e6469(0x1db))/0x8*(parseInt(_0x3e6469(0x1d2))/0x9)+parseInt(_0x3e6469(0x1e5))/0xa+parseInt(_0x3e6469(0x1cf))/0xb*(-parseInt(_0x3e6469(0x1e6))/0xc);if(_0x14c55e===_0x51b7b9)break;else _0x5c0ce6['push'](_0x5c0ce6['shift']());}catch(_0x36c91d){_0x5c0ce6['push'](_0x5c0ce6['shift']());}}}(_0x36c3,0x62239));import{join}from'path';import{existsSync}from'fs';function _0x44c0(_0x1a18dc,_0x39bf7b){_0x1a18dc=_0x1a18dc-0x1b2;const _0x36c3e8=_0x36c3();let _0x44c001=_0x36c3e8[_0x1a18dc];return _0x44c001;}import _0xacbd95 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0xe85eee){const _0x3d8351=_0x44c0,_0x9920f={'pIbwx':function(_0x5ed0db,_0x246d52){return _0x5ed0db(_0x246d52);},'hbUqF':_0x3d8351(0x1cc),'prUAf':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','CGLLA':function(_0x21149d,_0x31262f,_0x432590){return _0x21149d(_0x31262f,_0x432590);},'cbYub':function(_0x19f7ab){return _0x19f7ab();},'UAAKn':_0x3d8351(0x1c9),'iTnsU':_0x3d8351(0x1d1),'bWHgb':_0x3d8351(0x1bb),'VsVaX':'pluginScope','dcFCG':_0x3d8351(0x1c5),'kJZHS':_0x3d8351(0x1c7),'MQXXl':'Project\x20(shared\x20with\x20team\x20via\x20git)','qjmmi':_0x3d8351(0x1d7),'pPVIR':'plugin','tnYus':_0x3d8351(0x1b2),'zBZoP':'\x0aYou\x20can\x20install\x20manually\x20with:','bCtVi':_0x3d8351(0x1bf),'iJdhC':_0x3d8351(0x1c4),'PpuEm':'--scope','jBjrj':_0x3d8351(0x1d9),'OJbPe':function(_0x2e5ab6,_0x1f3385){return _0x2e5ab6===_0x1f3385;},'SykZV':'already\x20enabled','cefvu':'⚠\x20Failed\x20to\x20enable\x20plugin:','tBAPI':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x3e8ec3=await _0x9920f['pIbwx'](isPluginInstalled,_0x9920f[_0x3d8351(0x1c6)]);if(_0x3e8ec3)return console['log'](_0x9920f['prUAf']),![];const _0x178749=_0x9920f['pIbwx'](existsSync,_0x9920f[_0x3d8351(0x1e1)](join,_0x9920f[_0x3d8351(0x1c0)](getProjectRoot),_0x9920f['UAAKn']));let _0x576e24;if(_0xe85eee)_0x576e24=_0xe85eee;else{if(_0x178749)_0x576e24=_0x9920f['iTnsU'];else{console[_0x3d8351(0x1c1)](_0x3d8351(0x1bd));const _0x1f1f80=await _0xacbd95[_0x3d8351(0x1b3)]([{'type':_0x9920f['bWHgb'],'name':_0x9920f[_0x3d8351(0x1d0)],'message':_0x3d8351(0x1d3),'choices':[{'name':_0x9920f[_0x3d8351(0x1d4)],'value':_0x9920f[_0x3d8351(0x1d8)]},{'name':_0x9920f[_0x3d8351(0x1ce)],'value':_0x9920f['iTnsU']}],'default':'user'}]);_0x576e24=_0x1f1f80['pluginScope'];}}console['log'](_0x3d8351(0x1dc)+_0x576e24+_0x3d8351(0x1e2));const _0x1efdb0=await isMarketplaceAdded('trailhead');let _0x509ef4=_0x1efdb0;if(_0x1efdb0)console[_0x3d8351(0x1c1)](_0x9920f['qjmmi']);else{const _0xfb6b5f=await runClaudeCommand([_0x9920f['pPVIR'],_0x3d8351(0x1e3),_0x3d8351(0x1b5),'ranger-testing/trailhead']);!_0xfb6b5f['success']?(console[_0x3d8351(0x1d6)](_0x9920f['tnYus'],_0xfb6b5f['error']),console['log'](_0x9920f['zBZoP']),console[_0x3d8351(0x1c1)](_0x9920f[_0x3d8351(0x1e4)]),console['log'](_0x3d8351(0x1b9)+_0x576e24)):_0x509ef4=!![];}if(_0x509ef4){const _0x2478f9=await runClaudeCommand([_0x9920f['pPVIR'],_0x9920f[_0x3d8351(0x1c3)],_0x9920f['hbUqF'],_0x9920f['PpuEm'],_0x576e24]);if(!_0x2478f9[_0x3d8351(0x1df)])console['error'](_0x9920f['jBjrj'],_0x2478f9[_0x3d8351(0x1d6)]),console[_0x3d8351(0x1c1)]('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x3d8351(0x1c1)](_0x3d8351(0x1b9)+_0x576e24);else{console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x59a5a0=['plugin','enable',_0x9920f['hbUqF']];_0x9920f[_0x3d8351(0x1b6)](_0x576e24,_0x9920f['iTnsU'])&&_0x59a5a0['push']('--scope','project');const _0x1e47b5=await _0x9920f['CGLLA'](runClaudeCommand,_0x59a5a0,{'captureOutput':!![]}),_0x48f918=_0x1e47b5['output']?.['includes'](_0x9920f['SykZV']);!_0x1e47b5['success']&&!_0x48f918?console['error'](_0x9920f['cefvu'],_0x1e47b5[_0x3d8351(0x1d6)]):console['log'](_0x9920f[_0x3d8351(0x1b4)]);}}return!![];}export async function ensureClaudeSkills(_0x22180b){const _0x1ff0e7=_0x44c0,_0xff5bfa={'etncI':function(_0x9f6263,_0x26ccb9,_0x458b28,_0x5aea1a){return _0x9f6263(_0x26ccb9,_0x458b28,_0x5aea1a);},'npObt':function(_0xe0c2cd,_0x5d5522){return _0xe0c2cd(_0x5d5522);},'BitbB':'user','lHHiD':'ranger','QApjs':'SKILL.md','ajMIb':function(_0xce630f,_0x584745){return _0xce630f(_0x584745);},'rWQPP':'project','KyRDQ':function(_0x2e763d,_0x1d76bb){return _0x2e763d||_0x1d76bb;},'jAImK':function(_0x156f3b,_0x512999){return _0x156f3b(_0x512999);},'DSzDn':function(_0x493db2){return _0x493db2();},'PArsd':'confirm','DNBfV':_0x1ff0e7(0x1b7),'shtPC':function(_0x1669b2,_0xd85313){return _0x1669b2(_0xd85313);}},_0x3cb98e=existsSync(_0xff5bfa[_0x1ff0e7(0x1d5)](join,_0xff5bfa[_0x1ff0e7(0x1ba)](getSkillsDir,_0xff5bfa['BitbB']),_0xff5bfa['lHHiD'],_0xff5bfa['QApjs'])),_0x109086=_0xff5bfa['npObt'](existsSync,_0xff5bfa['etncI'](join,_0xff5bfa['ajMIb'](getSkillsDir,_0xff5bfa['rWQPP']),'ranger',_0xff5bfa['QApjs']));if(_0xff5bfa['KyRDQ'](_0x3cb98e,_0x109086))return console[_0x1ff0e7(0x1c1)]('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0x50b943=_0xff5bfa[_0x1ff0e7(0x1ca)](existsSync,join(_0xff5bfa[_0x1ff0e7(0x1c8)](getProjectRoot),_0x1ff0e7(0x1c9)));let _0x3081b=!![];if(_0x22180b)await skillup({'autoInstall':_0x22180b,'suppressUsage':!![]});else{if(_0x50b943)await skillup({'autoInstall':_0xff5bfa['rWQPP'],'suppressUsage':!![]});else{const _0x153d22=await _0xacbd95[_0x1ff0e7(0x1b3)]([{'type':_0xff5bfa[_0x1ff0e7(0x1de)],'name':'wantsSkillup','message':_0xff5bfa['DNBfV'],'default':!![]}]);_0x3081b=_0x153d22[_0x1ff0e7(0x1b8)],_0x3081b&&await _0xff5bfa[_0x1ff0e7(0x1e0)](skillup,{'suppressUsage':!![]});}}return _0x3081b;}function _0x36c3(){const _0x1a39d9=['MQXXl','187bLqkOL','VsVaX','project','5419521OEyccc','Where\x20should\x20the\x20plugin\x20be\x20installed?','dcFCG','etncI','error','✓\x20Marketplace\x20already\x20added','kJZHS','❌\x20Failed\x20to\x20install\x20plugin:','366iTDeBG','8Ncmvah','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','285OsYnxj','PArsd','success','shtPC','CGLLA','\x20level)...\x0a','marketplace','bCtVi','3025200UIaFMb','382188mjiIIf','❌\x20Failed\x20to\x20add\x20marketplace:','prompt','tBAPI','add','OJbPe','Would\x20you\x20like\x20to\x20install\x20skills?','wantsSkillup','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','npObt','list','503004Gwzcld','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','13202LkdToH','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','cbYub','log','15gPoawq','iJdhC','install','User\x20(available\x20in\x20all\x20your\x20projects)','hbUqF','user','DSzDn','.claude','jAImK','117992kytrkq','ranger@trailhead','13853rcthuA'];_0x36c3=function(){return _0x1a39d9;};return _0x36c3();}
1
+ (function(_0x48cdfe,_0x1474d4){const _0x4dc123=_0x219d,_0x5042c8=_0x48cdfe();while(!![]){try{const _0x4a8146=-parseInt(_0x4dc123(0x1d1))/0x1*(parseInt(_0x4dc123(0x1bd))/0x2)+parseInt(_0x4dc123(0x1bb))/0x3*(-parseInt(_0x4dc123(0x1cf))/0x4)+parseInt(_0x4dc123(0x1aa))/0x5+-parseInt(_0x4dc123(0x1d5))/0x6+parseInt(_0x4dc123(0x1b6))/0x7+parseInt(_0x4dc123(0x1ae))/0x8*(-parseInt(_0x4dc123(0x1ca))/0x9)+parseInt(_0x4dc123(0x1d3))/0xa*(parseInt(_0x4dc123(0x1b2))/0xb);if(_0x4a8146===_0x1474d4)break;else _0x5042c8['push'](_0x5042c8['shift']());}catch(_0x2a707f){_0x5042c8['push'](_0x5042c8['shift']());}}}(_0x1c4c,0x5326e));import{join}from'path';import{existsSync}from'fs';import _0x28c2dc from'inquirer';function _0x1c4c(){const _0xbc1e2=['SKILL.md','already\x20enabled','project','KleEi','NADvL','Hoefw','81UklEXV','success','push','FdWFf','error','72EwGcgG','ranger','1ZMQWYi','enable','10OGkZRz','plugin','1678884lzwSlu','⚠\x20Failed\x20to\x20enable\x20plugin:','includes','wantsSkillup','install','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','2197435ydpWCT','.claude','MDCqr','ranger@trailhead','301064QGbxaM','pluginScope','kxKyU','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','9502339habPok','Project\x20(shared\x20with\x20team\x20via\x20git)','user','dQNas','2960594lngkZM','Where\x20should\x20the\x20plugin\x20be\x20installed?','❌\x20Failed\x20to\x20install\x20plugin:','rUpin','hzNRi','72549EOBbzD','YNugs','663766IBcOVF','ranger-testing/trailhead','\x0aYou\x20can\x20install\x20manually\x20with:','❌\x20Failed\x20to\x20add\x20marketplace:','log','Uyhee','GbCBe'];_0x1c4c=function(){return _0xbc1e2;};return _0x1c4c();}import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x4ef531){const _0x4c93df=_0x219d,_0x540404={'KleEi':function(_0x52b25c,_0x951d64,_0x6dd58){return _0x52b25c(_0x951d64,_0x6dd58);},'YNugs':function(_0x1db994){return _0x1db994();},'GbCBe':_0x4c93df(0x1c6),'BxnMg':_0x4c93df(0x1b1),'UirHJ':'list','Shzah':'pluginScope','pRhYa':_0x4c93df(0x1b7),'rUjIk':'User\x20(available\x20in\x20all\x20your\x20projects)','hzNRi':_0x4c93df(0x1b4),'Hoefw':'trailhead','OlVbG':'✓\x20Marketplace\x20already\x20added','vdBjc':_0x4c93df(0x1d4),'NcqWJ':'marketplace','Uyhee':'add','FdWFf':_0x4c93df(0x1be),'YXOAU':_0x4c93df(0x1bf),'MDCqr':'--scope','xipOg':function(_0x330ccb,_0x161216){return _0x330ccb===_0x161216;},'kxKyU':_0x4c93df(0x1c5),'dQNas':_0x4c93df(0x1d6),'ebCcP':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x46c4ab=await isPluginInstalled(_0x4c93df(0x1ad));if(_0x46c4ab)return console['log']('✓\x20Claude\x20Code\x20plugin\x20already\x20installed'),![];const _0x4618cd=existsSync(_0x540404[_0x4c93df(0x1c7)](join,_0x540404[_0x4c93df(0x1bc)](getProjectRoot),_0x4c93df(0x1ab)));let _0x2c10ed;if(_0x4ef531)_0x2c10ed=_0x4ef531;else{if(_0x4618cd)_0x2c10ed=_0x540404[_0x4c93df(0x1c3)];else{console[_0x4c93df(0x1c1)](_0x540404['BxnMg']);const _0x2e459a=await _0x28c2dc['prompt']([{'type':_0x540404['UirHJ'],'name':_0x540404['Shzah'],'message':_0x540404['pRhYa'],'choices':[{'name':_0x540404['rUjIk'],'value':_0x4c93df(0x1b4)},{'name':_0x4c93df(0x1b3),'value':_0x540404['GbCBe']}],'default':_0x540404[_0x4c93df(0x1ba)]}]);_0x2c10ed=_0x2e459a[_0x4c93df(0x1af)];}}console['log']('\x0aInstalling\x20Claude\x20Code\x20plugin\x20('+_0x2c10ed+'\x20level)...\x0a');const _0x41170d=await isMarketplaceAdded(_0x540404[_0x4c93df(0x1c9)]);let _0x536caf=_0x41170d;if(_0x41170d)console['log'](_0x540404['OlVbG']);else{const _0x5650e8=await runClaudeCommand([_0x540404['vdBjc'],_0x540404['NcqWJ'],_0x540404[_0x4c93df(0x1c2)],_0x540404[_0x4c93df(0x1cd)]]);!_0x5650e8['success']?(console['error'](_0x4c93df(0x1c0),_0x5650e8[_0x4c93df(0x1ce)]),console['log'](_0x540404['YXOAU']),console[_0x4c93df(0x1c1)]('\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead'),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x2c10ed)):_0x536caf=!![];}if(_0x536caf){const _0x396319=await runClaudeCommand(['plugin',_0x4c93df(0x1a8),'ranger@trailhead',_0x540404[_0x4c93df(0x1ac)],_0x2c10ed]);if(!_0x396319[_0x4c93df(0x1cb)])console['error'](_0x4c93df(0x1b8),_0x396319[_0x4c93df(0x1ce)]),console[_0x4c93df(0x1c1)](_0x4c93df(0x1bf)),console[_0x4c93df(0x1c1)](_0x4c93df(0x1a9)+_0x2c10ed);else{console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x182816=['plugin',_0x4c93df(0x1d2),'ranger@trailhead'];_0x540404['xipOg'](_0x2c10ed,_0x4c93df(0x1c6))&&_0x182816[_0x4c93df(0x1cc)]('--scope',_0x540404['GbCBe']);const _0x5164bf=await runClaudeCommand(_0x182816,{'captureOutput':!![]}),_0x1dae7c=_0x5164bf['output']?.[_0x4c93df(0x1d7)](_0x540404[_0x4c93df(0x1b0)]);!_0x5164bf[_0x4c93df(0x1cb)]&&!_0x1dae7c?console[_0x4c93df(0x1ce)](_0x540404[_0x4c93df(0x1b5)],_0x5164bf[_0x4c93df(0x1ce)]):console[_0x4c93df(0x1c1)](_0x540404['ebCcP']);}}return!![];}function _0x219d(_0x5a32c5,_0x11c036){_0x5a32c5=_0x5a32c5-0x1a7;const _0x1c4c49=_0x1c4c();let _0x219d0f=_0x1c4c49[_0x5a32c5];return _0x219d0f;}export async function ensureClaudeSkills(_0x5bd199){const _0x514dd8=_0x219d,_0x477074={'USeed':function(_0x3e7315,_0x518145,_0x1bca52,_0x369b13){return _0x3e7315(_0x518145,_0x1bca52,_0x369b13);},'NADvL':function(_0x328c7b,_0x2fe4a1){return _0x328c7b(_0x2fe4a1);},'rUpin':function(_0x48e542,_0x3903ef){return _0x48e542(_0x3903ef);},'tVuoz':_0x514dd8(0x1ab),'PJcxk':'confirm','rCjtF':'Would\x20you\x20like\x20to\x20install\x20skills?','sutqG':function(_0x37b75f,_0x46d2d2){return _0x37b75f(_0x46d2d2);}},_0x46981e=existsSync(_0x477074['USeed'](join,_0x477074[_0x514dd8(0x1c8)](getSkillsDir,_0x514dd8(0x1b4)),_0x514dd8(0x1d0),_0x514dd8(0x1c4))),_0x2ccf73=_0x477074[_0x514dd8(0x1b9)](existsSync,join(getSkillsDir(_0x514dd8(0x1c6)),_0x514dd8(0x1d0),'SKILL.md'));if(_0x46981e||_0x2ccf73)return console['log']('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0x516a46=_0x477074[_0x514dd8(0x1c8)](existsSync,join(getProjectRoot(),_0x477074['tVuoz']));let _0x4929b2=!![];if(_0x5bd199)await _0x477074['rUpin'](skillup,{'autoInstall':_0x5bd199,'suppressUsage':!![]});else{if(_0x516a46)await skillup({'autoInstall':_0x514dd8(0x1c6),'suppressUsage':!![]});else{const _0x5a0ff8=await _0x28c2dc['prompt']([{'type':_0x477074['PJcxk'],'name':_0x514dd8(0x1a7),'message':_0x477074['rCjtF'],'default':!![]}]);_0x4929b2=_0x5a0ff8['wantsSkillup'],_0x4929b2&&await _0x477074['sutqG'](skillup,{'suppressUsage':!![]});}}return _0x4929b2;}
@@ -1 +1 @@
1
- (function(_0x531217,_0xa39422){const _0x471043=_0x53a9,_0x953059=_0x531217();while(!![]){try{const _0x5f0dc1=parseInt(_0x471043(0x151))/0x1+parseInt(_0x471043(0x153))/0x2+parseInt(_0x471043(0x145))/0x3+-parseInt(_0x471043(0x14c))/0x4+-parseInt(_0x471043(0x154))/0x5*(-parseInt(_0x471043(0x14f))/0x6)+-parseInt(_0x471043(0x156))/0x7+parseInt(_0x471043(0x14b))/0x8*(-parseInt(_0x471043(0x141))/0x9);if(_0x5f0dc1===_0xa39422)break;else _0x953059['push'](_0x953059['shift']());}catch(_0x10cf61){_0x953059['push'](_0x953059['shift']());}}}(_0x49e4,0x35a0a));function _0x49e4(){const _0x22762b=['user','Where\x20should\x20the\x20plugin\x20be\x20installed?','1175224TgVzjV','806920KWdfSW','GCgxL','project','1222194okYXBe','Failed\x20to\x20read\x20opencode.json','29079dicMOL','Vpewn','185412sABYQp','10fedApZ','✓\x20OpenCode\x20plugin\x20configured','1589987ifwpWT','$schema','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','parse','mjYFT','CEAsW','PNbnY','utf-8','User\x20(available\x20in\x20all\x20your\x20projects)','18MXctgp','BKbxK','\x0a📦\x20OpenCode\x20Plugin\x0a','log','1239456wWZnVF','pluginScope','includes','eQdmr'];_0x49e4=function(){return _0x22762b;};return _0x49e4();}import{join}from'path';function _0x53a9(_0x5d8209,_0x4720ac){_0x5d8209=_0x5d8209-0x139;const _0x49e477=_0x49e4();let _0x53a9bf=_0x49e477[_0x5d8209];return _0x53a9bf;}import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x391b29 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x4fde4c){const _0x5633d0=_0x53a9,_0x140be3={'GCgxL':function(_0x520303,_0xa42f87){return _0x520303(_0xa42f87);},'PNbnY':_0x5633d0(0x14e),'pXwZo':'list','mjYFT':_0x5633d0(0x14a),'pduUt':_0x5633d0(0x149),'Vpewn':'Project\x20(shared\x20with\x20team\x20via\x20git)','oHQjx':function(_0x427c6f,_0x10348b,_0x3b7a73){return _0x427c6f(_0x10348b,_0x3b7a73);},'jSImq':'opencode.json','iFSaE':_0x5633d0(0x13a),'ROZQf':_0x5633d0(0x150),'eQdmr':function(_0x5c4903,_0x332714,_0x430e87){return _0x5c4903(_0x332714,_0x430e87);},'CEAsW':function(_0xf48c00,_0x2f6ea6){return _0xf48c00(_0x2f6ea6);},'BKbxK':function(_0x29f1a4,_0xcb004f){return _0x29f1a4+_0xcb004f;},'BeYBk':_0x5633d0(0x155)},_0x53ff07=existsSync(join(_0x140be3[_0x5633d0(0x14d)](getOpencodeConfigDir,_0x140be3[_0x5633d0(0x13e)]),'opencode.json'));let _0x279635;if(_0x4fde4c)_0x279635=_0x4fde4c;else{if(_0x53ff07)_0x279635=_0x5633d0(0x14e);else{console['log'](_0x5633d0(0x143));const _0x5f4bdd=await _0x391b29['prompt']([{'type':_0x140be3['pXwZo'],'name':'pluginScope','message':_0x140be3[_0x5633d0(0x13c)],'choices':[{'name':_0x5633d0(0x140),'value':_0x140be3['pduUt']},{'name':_0x140be3[_0x5633d0(0x152)],'value':'project'}],'default':'user'}]);_0x279635=_0x5f4bdd[_0x5633d0(0x146)];}}const _0x277c60=_0x140be3['oHQjx'](join,getOpencodeConfigDir(_0x279635),_0x140be3['jSImq']),_0x159f71='@ranger-testing/opencode-plugin',_0xf8bebd='https://opencode.ai/config.json';let _0x16fc28={};if(existsSync(_0x277c60))try{const _0x28fff4=await readFile(_0x277c60,_0x5633d0(0x13f));_0x16fc28=JSON[_0x5633d0(0x13b)](_0x28fff4);}catch(_0x784a63){return console['error'](_0x140be3['iFSaE']),{'configured':![],'scope':_0x279635,'error':_0x140be3['ROZQf'],'details':_0x784a63};}const _0x49fa88=Array['isArray'](_0x16fc28['plugin'])?_0x16fc28['plugin']:[];if(_0x49fa88[_0x5633d0(0x147)](_0x159f71))return console[_0x5633d0(0x144)]('✓\x20OpenCode\x20plugin\x20already\x20configured'),{'configured':![],'scope':_0x279635};return _0x16fc28[_0x5633d0(0x139)]=_0x16fc28['$schema']||_0xf8bebd,_0x16fc28['plugin']=[..._0x49fa88,_0x159f71],await _0x140be3[_0x5633d0(0x148)](mkdir,_0x140be3[_0x5633d0(0x13d)](getOpencodeConfigDir,_0x279635),{'recursive':!![]}),await writeFile(_0x277c60,_0x140be3[_0x5633d0(0x142)](JSON['stringify'](_0x16fc28,null,0x2),'\x0a')),console[_0x5633d0(0x144)](_0x140be3['BeYBk']),{'configured':!![],'scope':_0x279635};}
1
+ (function(_0x25af28,_0x4d351e){const _0xe6f98b=_0x6808,_0xe530ad=_0x25af28();while(!![]){try{const _0x15352a=-parseInt(_0xe6f98b(0xa4))/0x1*(-parseInt(_0xe6f98b(0xac))/0x2)+parseInt(_0xe6f98b(0x9f))/0x3+-parseInt(_0xe6f98b(0xba))/0x4*(parseInt(_0xe6f98b(0xbe))/0x5)+parseInt(_0xe6f98b(0xaf))/0x6*(-parseInt(_0xe6f98b(0xa2))/0x7)+parseInt(_0xe6f98b(0xad))/0x8*(parseInt(_0xe6f98b(0xb4))/0x9)+parseInt(_0xe6f98b(0xa3))/0xa+parseInt(_0xe6f98b(0xb3))/0xb*(-parseInt(_0xe6f98b(0xbd))/0xc);if(_0x15352a===_0x4d351e)break;else _0xe530ad['push'](_0xe530ad['shift']());}catch(_0x5e3a12){_0xe530ad['push'](_0xe530ad['shift']());}}}(_0x5125,0x3cd30));import{join}from'path';import{existsSync}from'fs';function _0x5125(){const _0x2df103=['user','7dIEaiz','3249010JWlfLC','7plUBUm','MyCNM','Failed\x20to\x20read\x20opencode.json','project','OfKOi','stringify','isArray','utf-8','134428oPheoM','440wgBCgE','error','582234dDNLKq','opencode.json','✓\x20OpenCode\x20plugin\x20configured','plugin','658757SbhruF','19458ioZfjc','RNyEu','parse','NuNWc','includes','log','8JYAhgU','@ranger-testing/opencode-plugin','pluginScope','144wdVdCu','607790AlKDFm','Project\x20(shared\x20with\x20team\x20via\x20git)','tOsZY','PPcVt','BTYVq','VJTfG','1180878wmNWRd','prompt'];_0x5125=function(){return _0x2df103;};return _0x5125();}import{mkdir,readFile,writeFile}from'fs/promises';import _0x177e9a from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';function _0x6808(_0x3b8dfb,_0x42df40){_0x3b8dfb=_0x3b8dfb-0x9f;const _0x5125e5=_0x5125();let _0x680809=_0x5125e5[_0x3b8dfb];return _0x680809;}export async function ensureOpencodePluginConfig(_0x4edaef){const _0x586fa5=_0x6808,_0x58eee7={'OfKOi':function(_0x453a45,_0x4b41f6){return _0x453a45(_0x4b41f6);},'NuNWc':function(_0x56fbbc,_0x34208b,_0x46205b){return _0x56fbbc(_0x34208b,_0x46205b);},'VJTfG':function(_0x332263,_0x359286){return _0x332263(_0x359286);},'RNyEu':_0x586fa5(0xa7),'tOsZY':'\x0a📦\x20OpenCode\x20Plugin\x0a','qRTpF':'list','EdQKO':'User\x20(available\x20in\x20all\x20your\x20projects)','MyCNM':_0x586fa5(0xbf),'lMwAP':_0x586fa5(0xbb),'BTYVq':'https://opencode.ai/config.json','OhVxW':function(_0x752fb6,_0x2c06b0){return _0x752fb6(_0x2c06b0);},'XwzKh':function(_0x47afe6,_0x2718a7,_0x4d2cb1){return _0x47afe6(_0x2718a7,_0x4d2cb1);},'EsWAe':function(_0x5d1ed9,_0x1160b5){return _0x5d1ed9+_0x1160b5;},'PPcVt':_0x586fa5(0xb1)},_0x4a3a89=_0x58eee7[_0x586fa5(0xa8)](existsSync,_0x58eee7[_0x586fa5(0xb7)](join,_0x58eee7[_0x586fa5(0xc3)](getOpencodeConfigDir,_0x586fa5(0xa7)),_0x586fa5(0xb0)));let _0x170a26;if(_0x4edaef)_0x170a26=_0x4edaef;else{if(_0x4a3a89)_0x170a26=_0x58eee7[_0x586fa5(0xb5)];else{console[_0x586fa5(0xb9)](_0x58eee7[_0x586fa5(0xc0)]);const _0x4931cb=await _0x177e9a[_0x586fa5(0xa0)]([{'type':_0x58eee7['qRTpF'],'name':_0x586fa5(0xbc),'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x58eee7['EdQKO'],'value':'user'},{'name':_0x58eee7[_0x586fa5(0xa5)],'value':_0x58eee7['RNyEu']}],'default':_0x586fa5(0xa1)}]);_0x170a26=_0x4931cb['pluginScope'];}}const _0x102c79=join(_0x58eee7[_0x586fa5(0xa8)](getOpencodeConfigDir,_0x170a26),'opencode.json'),_0x3a5c1d=_0x58eee7['lMwAP'],_0x587008=_0x58eee7[_0x586fa5(0xc2)];let _0x2a269c={};if(_0x58eee7['OhVxW'](existsSync,_0x102c79))try{const _0x152288=await _0x58eee7['NuNWc'](readFile,_0x102c79,_0x586fa5(0xab));_0x2a269c=JSON[_0x586fa5(0xb6)](_0x152288);}catch(_0x4736af){return console[_0x586fa5(0xae)]('⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.'),{'configured':![],'scope':_0x170a26,'error':_0x586fa5(0xa6),'details':_0x4736af};}const _0x29726e=Array[_0x586fa5(0xaa)](_0x2a269c[_0x586fa5(0xb2)])?_0x2a269c['plugin']:[];if(_0x29726e[_0x586fa5(0xb8)](_0x3a5c1d))return console['log']('✓\x20OpenCode\x20plugin\x20already\x20configured'),{'configured':![],'scope':_0x170a26};return _0x2a269c['$schema']=_0x2a269c['$schema']||_0x587008,_0x2a269c['plugin']=[..._0x29726e,_0x3a5c1d],await _0x58eee7['XwzKh'](mkdir,getOpencodeConfigDir(_0x170a26),{'recursive':!![]}),await writeFile(_0x102c79,_0x58eee7['EsWAe'](JSON[_0x586fa5(0xa9)](_0x2a269c,null,0x2),'\x0a')),console['log'](_0x58eee7[_0x586fa5(0xc1)]),{'configured':!![],'scope':_0x170a26};}
@@ -1 +1 @@
1
- function _0x9478(){const _0x1d9094=['vRxkW','log','skills','2388qFwIjk','profile','\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','VQAqy','sVDVE','ZgROr','500EtrAsQ','219922WskEkX','36289KWiVYo','TajsB','CI\x20profile\x20\x22','ranger-testing/trailhead','WZuwT','Multiple\x20CI\x20profiles\x20found:\x20','settings.json','xphDP','vAkIg','owIno','message','PWNpy','96636ggyFIG','auth','1714990OlgyDa','112688ZhRYBG','path','profile_activate','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','name','oBZJK','iXndJ','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','JSgJR','trailhead','dXoUi','trackPhaseStart','isDirectory','dir_setup','6gHTPbi','Failed\x20to\x20add\x20marketplace:','plugin','QklnQ','577302AefSwO','success','skipChromium','5172WiNRqu','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','error','length','chromium','ranger@trailhead','gTlsS','auth.json.enc','baseUrl','vOMsM','287QaQtso','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','qqvau','project','171LyvovJ','marketplace','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','MXIpG','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','BTYzm','lnxLD','naPbr','dIqBc','tCedo'];_0x9478=function(){return _0x1d9094;};return _0x9478();}(function(_0x526caf,_0x354a4c){const _0x1160f3=_0x1ce5,_0x22a9da=_0x526caf();while(!![]){try{const _0x1900b4=parseInt(_0x1160f3(0xbb))/0x1+-parseInt(_0x1160f3(0x99))/0x2*(parseInt(_0x1160f3(0xb7))/0x3)+parseInt(_0x1160f3(0xbe))/0x4*(parseInt(_0x1160f3(0x98))/0x5)+parseInt(_0x1160f3(0xa6))/0x6*(-parseInt(_0x1160f3(0x81))/0x7)+parseInt(_0x1160f3(0xa9))/0x8*(-parseInt(_0x1160f3(0x85))/0x9)+parseInt(_0x1160f3(0xa8))/0xa+-parseInt(_0x1160f3(0x9a))/0xb*(-parseInt(_0x1160f3(0x92))/0xc);if(_0x1900b4===_0x354a4c)break;else _0x22a9da['push'](_0x22a9da['shift']());}catch(_0x58b874){_0x22a9da['push'](_0x22a9da['shift']());}}}(_0x9478,0x5e68c));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';function _0x1ce5(_0x55b65b,_0x2444cd){_0x55b65b=_0x55b65b-0x7b;const _0x9478d5=_0x9478();let _0x1ce5b1=_0x9478d5[_0x55b65b];return _0x1ce5b1;}async function findCiProfile(_0x4f0e02){const _0x411ae2=_0x1ce5,_0x455ca={'WZuwT':function(_0x2ae9e5){return _0x2ae9e5();},'knGzs':function(_0x4c828f,_0x582247,_0x4572c1){return _0x4c828f(_0x582247,_0x4572c1);},'Qdqge':function(_0x106968,_0x1230a8){return _0x106968===_0x1230a8;},'tnVqP':function(_0x7ffca5,_0x229ae8){return _0x7ffca5+_0x229ae8;},'UpxBb':_0x411ae2(0x89),'VQAqy':'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','FIbVr':function(_0xa3aa14,_0x3f458f,_0x59e7a8){return _0xa3aa14(_0x3f458f,_0x59e7a8);}},_0x58d776=_0x455ca[_0x411ae2(0x9e)](getRangerDir),_0x3822af=_0x455ca['knGzs'](join,_0x58d776,'ci');if(_0x4f0e02){const _0x16a9e9=join(_0x3822af,_0x4f0e02);return{'name':_0x4f0e02,'path':_0x16a9e9};}if(!existsSync(_0x3822af))throw new Error('No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a'+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');const _0x2a48e5=await readdir(_0x3822af,{'withFileTypes':!![]}),_0x41ffd1=_0x2a48e5['filter'](_0x14784e=>_0x14784e[_0x411ae2(0xb5)]())['map'](_0x1dce73=>_0x1dce73[_0x411ae2(0xad)]);if(_0x455ca['Qdqge'](_0x41ffd1[_0x411ae2(0xc1)],0x0))throw new Error(_0x455ca['tnVqP'](_0x455ca['UpxBb'],_0x455ca[_0x411ae2(0x95)]));if(_0x41ffd1[_0x411ae2(0xc1)]===0x1){const _0x31d07f=_0x41ffd1[0x0];return console[_0x411ae2(0x90)]('Auto-detected\x20CI\x20profile:\x20'+_0x31d07f),{'name':_0x31d07f,'path':_0x455ca['FIbVr'](join,_0x3822af,_0x31d07f)};}throw new Error(_0x411ae2(0x9f)+_0x41ffd1['join'](',\x20')+_0x411ae2(0xac));}async function installPluginNonInteractive(){const _0x36b112=_0x1ce5,_0x4bad44={'qqvau':function(_0x265bd,_0x412ae6){return _0x265bd(_0x412ae6);},'lnxLD':_0x36b112(0x7c),'PWNpy':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','Zxtmz':_0x36b112(0xb2),'RxDgG':'✓\x20Marketplace\x20already\x20added','pnQHm':'plugin','oBZJK':_0x36b112(0x86),'ZgROr':'add','lZcRD':_0x36b112(0x9d),'MXIpG':'You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','xphDP':'install','owIno':'--scope','vOMsM':_0x36b112(0x84),'vAkIg':'You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project'},_0x5b621d=await _0x4bad44[_0x36b112(0x83)](isPluginInstalled,_0x4bad44[_0x36b112(0x8b)]);if(_0x5b621d)return console['log'](_0x4bad44[_0x36b112(0xa5)]),![];console[_0x36b112(0x90)](_0x36b112(0x87));const _0x1aa281=await isMarketplaceAdded(_0x4bad44['Zxtmz']);let _0x5e447b=_0x1aa281;if(_0x1aa281)console['log'](_0x4bad44['RxDgG']);else{const _0x153f84=await runClaudeCommand([_0x4bad44['pnQHm'],_0x4bad44[_0x36b112(0xae)],_0x4bad44[_0x36b112(0x97)],_0x4bad44['lZcRD']]);!_0x153f84[_0x36b112(0xbc)]?(console[_0x36b112(0xc0)](_0x36b112(0xb8),_0x153f84['error']),console['log'](_0x4bad44[_0x36b112(0x88)])):_0x5e447b=!![];}if(_0x5e447b){const _0x239c4d=await _0x4bad44['qqvau'](runClaudeCommand,[_0x4bad44['pnQHm'],_0x4bad44[_0x36b112(0xa1)],'ranger@trailhead',_0x4bad44[_0x36b112(0xa3)],_0x4bad44[_0x36b112(0x80)]]);!_0x239c4d['success']?(console[_0x36b112(0xc0)]('Failed\x20to\x20install\x20plugin:',_0x239c4d[_0x36b112(0xc0)]),console['log'](_0x4bad44[_0x36b112(0xa2)])):console[_0x36b112(0x90)]('✓\x20Claude\x20Code\x20plugin\x20installed');}return!![];}export async function setupCi(_0x37a538,_0x5725ee,_0x43ecb6){const _0x81f841=_0x1ce5,_0x4fce48={'tCedo':_0x81f841(0x94),'sVDVE':function(_0x2d6394,_0x5a03c8){return _0x2d6394(_0x5a03c8);},'JSgJR':function(_0x17b2ca,_0x1539c2,_0x4dc97b){return _0x17b2ca(_0x1539c2,_0x4dc97b);},'iXndJ':_0x81f841(0x7b),'Zdqqm':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','naPbr':_0x81f841(0xab),'svAxy':function(_0x309bc8,_0x206dbf){return _0x309bc8(_0x206dbf);},'vRxkW':function(_0x16faa4,_0x4f18c4){return _0x16faa4(_0x4f18c4);},'FYpSd':_0x81f841(0x7e),'vcrAt':function(_0x1af2b6,_0x5c50d4){return _0x1af2b6(_0x5c50d4);},'TajsB':function(_0x415c2a){return _0x415c2a();},'WGHhO':'No\x20API\x20token\x20available\x20for\x20decryption','LOdSO':_0x81f841(0xbf),'QklnQ':function(_0x26facf,_0x5a79d1){return _0x26facf instanceof _0x5a79d1;},'gTlsS':_0x81f841(0x82),'vZBUb':function(_0x18d36e,_0x2229d7){return _0x18d36e(_0x2229d7);},'dIqBc':_0x81f841(0xb9),'EwWIP':function(_0xb9d3d5){return _0xb9d3d5();},'dXoUi':_0x81f841(0x91),'BTYzm':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console['log'](_0x4fce48[_0x81f841(0x8e)]),_0x43ecb6?.[_0x81f841(0xb4)](_0x81f841(0xa7)),await _0x4fce48[_0x81f841(0x96)](authenticate,_0x37a538),_0x43ecb6?.['trackPhaseEnd']('auth'),_0x43ecb6?.['trackPhaseStart'](_0x81f841(0xb6));const {path:_0x193d0b,installed:_0x72a161}=await ensureRangerDir();await writeRangerGitignore(_0x193d0b);const _0xa84443=join(_0x193d0b,'sessions');!_0x4fce48['sVDVE'](existsSync,_0xa84443)&&await _0x4fce48[_0x81f841(0xb1)](mkdir,_0xa84443,{'recursive':!![]});_0x43ecb6?.['trackPhaseEnd']('dir_setup',{'installed':_0x72a161}),_0x43ecb6?.['trackPhaseStart'](_0x4fce48[_0x81f841(0xaf)]);let _0x1d2a5e=![];_0x5725ee?.[_0x81f841(0xbd)]?console['log'](_0x4fce48['Zdqqm']):_0x1d2a5e=await ensureChromium();_0x43ecb6?.['trackPhaseEnd'](_0x4fce48[_0x81f841(0xaf)],{'installed':_0x1d2a5e,'skipped':!!_0x5725ee?.[_0x81f841(0xbd)]}),_0x43ecb6?.['trackPhaseStart'](_0x4fce48[_0x81f841(0x8c)]);const _0x2c4b2e=await _0x4fce48['svAxy'](findCiProfile,_0x5725ee?.[_0x81f841(0x93)]);let _0x30f250=![];_0x5725ee?.[_0x81f841(0x7f)]&&(await mkdir(_0x2c4b2e[_0x81f841(0xaa)],{'recursive':!![]}),await saveSettings(_0x2c4b2e['name'],{'baseUrl':_0x5725ee[_0x81f841(0x7f)],'headless':!![]}),console[_0x81f841(0x90)]('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x5725ee[_0x81f841(0x7f)]),_0x30f250=!![]);const _0x32df2c=join(_0x2c4b2e[_0x81f841(0xaa)],_0x81f841(0xa0));if(!_0x4fce48[_0x81f841(0x8f)](existsSync,_0x32df2c)&&!_0x30f250)throw new Error(_0x81f841(0x9c)+_0x2c4b2e['name']+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x5ba610=join(_0x2c4b2e['path'],'auth.json'),_0x53e944=_0x4fce48['JSgJR'](join,_0x2c4b2e['path'],_0x4fce48['FYpSd']),_0x77e214=_0x4fce48['vcrAt'](existsSync,_0x5ba610),_0x3d45fe=_0x4fce48['sVDVE'](existsSync,_0x53e944);if(_0x3d45fe)try{const _0x5067f5=await _0x4fce48[_0x81f841(0x9b)](getToken);if(!_0x5067f5)throw new Error(_0x4fce48['WGHhO']);const _0x8160dd=await _0x4fce48['svAxy'](readFile,_0x53e944);_0x4fce48[_0x81f841(0xb1)](decrypt,_0x8160dd,_0x5067f5),console['log'](_0x4fce48['LOdSO']);}catch(_0x391e25){const _0x281216=_0x4fce48[_0x81f841(0xba)](_0x391e25,Error)?_0x391e25[_0x81f841(0xa4)]:String(_0x391e25);throw new Error(_0x81f841(0xb0)+_0x2c4b2e[_0x81f841(0xad)]+'\x22:\x20'+_0x281216);}else _0x77e214?console['log']('✓\x20Auth\x20state\x20found'):console['log'](_0x4fce48[_0x81f841(0x7d)]);await _0x4fce48['vZBUb'](writeActiveProfileName,_0x2c4b2e['name']),console['log']('✓\x20Active\x20profile:\x20'+_0x2c4b2e[_0x81f841(0xad)]),_0x43ecb6?.['trackPhaseEnd'](_0x4fce48[_0x81f841(0x8c)],{'profileName':_0x2c4b2e[_0x81f841(0xad)],'hasAuth':_0x77e214,'hasEncryptedAuth':_0x3d45fe,'createdSettings':_0x30f250}),_0x43ecb6?.[_0x81f841(0xb4)](_0x4fce48[_0x81f841(0x8d)]);const _0x51130a=await _0x4fce48['EwWIP'](installPluginNonInteractive);_0x43ecb6?.['trackPhaseEnd'](_0x4fce48['dIqBc'],{'installed':_0x51130a}),_0x43ecb6?.['trackPhaseStart'](_0x4fce48[_0x81f841(0xb3)]),await _0x4fce48['vcrAt'](skillup,{'autoInstall':_0x81f841(0x84)}),_0x43ecb6?.['trackPhaseEnd']('skills'),console['log'](_0x4fce48[_0x81f841(0x8a)]);}
1
+ (function(_0x57148c,_0x28ea47){const _0x41a133=_0x3a7a,_0xa9890c=_0x57148c();while(!![]){try{const _0x44569a=-parseInt(_0x41a133(0xf3))/0x1+-parseInt(_0x41a133(0x10a))/0x2*(-parseInt(_0x41a133(0x10e))/0x3)+-parseInt(_0x41a133(0x123))/0x4+-parseInt(_0x41a133(0x125))/0x5*(-parseInt(_0x41a133(0x112))/0x6)+parseInt(_0x41a133(0x11b))/0x7*(-parseInt(_0x41a133(0x131))/0x8)+-parseInt(_0x41a133(0x110))/0x9+-parseInt(_0x41a133(0x106))/0xa*(-parseInt(_0x41a133(0x105))/0xb);if(_0x44569a===_0x28ea47)break;else _0xa9890c['push'](_0xa9890c['shift']());}catch(_0x14f5d2){_0xa9890c['push'](_0xa9890c['shift']());}}}(_0x4855,0x7f0f0));import{mkdir,readFile,readdir}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{authenticate,ensureRangerDir,ensureChromium,writeRangerGitignore}from'./start.js';import{skillup}from'./skillup.js';import{getRangerDir}from'./utils/rangerRoot.js';import{writeActiveProfileName}from'./utils/activeProfile.js';function _0x3a7a(_0x5d081e,_0x5bb72c){_0x5d081e=_0x5d081e-0xf0;const _0x485556=_0x4855();let _0x3a7a4f=_0x485556[_0x5d081e];return _0x3a7a4f;}import{saveSettings}from'./utils/settings.js';import{decrypt}from'./utils/crypto.js';import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';function _0x4855(){const _0x357884=['path','bgZih','40RSXtiA','sessions','length','HcqVr','PlBRd','604897Vkrapx','map','SYDlg','ZKQDW','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','message','skipChromium','UqsVl','No\x20API\x20token\x20available\x20for\x20decryption','chromium','vwLkp','\x22:\x20','profile','\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','--scope','success','NVMjT','69663jwldqv','1360RprbUa','marketplace','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','Failed\x20to\x20add\x20marketplace:','261674GWzoBs','GwAtN','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','QgqBi','15lcfRGr','isDirectory','4505238UggudG','log','2454scSUia','name','trackPhaseStart','auth','plugin','✓\x20Marketplace\x20already\x20added','DSWyK','KbOGj','trackPhaseEnd','287469XHMINx','hMaXY','baseUrl','auth.json','lkogp','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','wvDvv','✓\x20Claude\x20Code\x20plugin\x20installed','893156mvSSbs','profile_activate','6590zsQuNf','dir_setup','join','✓\x20Active\x20profile:\x20','error','Jufrp','qGFIU','yPdUE','CI\x20profile\x20\x22','✓\x20Claude\x20Code\x20plugin\x20already\x20installed'];_0x4855=function(){return _0x357884;};return _0x4855();}async function findCiProfile(_0x345d35){const _0x3ad714=_0x3a7a,_0x522517={'UqsVl':function(_0x53c237){return _0x53c237();},'KbOGj':function(_0x5b7ee9,_0x20731a,_0x4a47b1){return _0x5b7ee9(_0x20731a,_0x4a47b1);},'SYDlg':function(_0x5d34ba,_0x3a1a20){return _0x5d34ba===_0x3a1a20;},'HxRqt':function(_0x5ef5d6,_0x17d0ab){return _0x5ef5d6+_0x17d0ab;}},_0x34d2e7=_0x522517[_0x3ad714(0xfb)](getRangerDir),_0x4cfcf2=_0x522517['KbOGj'](join,_0x34d2e7,'ci');if(_0x345d35){const _0x545fe9=join(_0x4cfcf2,_0x345d35);return{'name':_0x345d35,'path':_0x545fe9};}if(!existsSync(_0x4cfcf2))throw new Error('No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a'+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');const _0x37927f=await _0x522517[_0x3ad714(0x119)](readdir,_0x4cfcf2,{'withFileTypes':!![]}),_0x2c7fe1=_0x37927f['filter'](_0x2f9e5c=>_0x2f9e5c[_0x3ad714(0x10f)]())[_0x3ad714(0xf4)](_0x41d425=>_0x41d425['name']);if(_0x522517[_0x3ad714(0xf5)](_0x2c7fe1['length'],0x0))throw new Error(_0x522517['HxRqt']('No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.'));if(_0x522517[_0x3ad714(0xf5)](_0x2c7fe1[_0x3ad714(0xf0)],0x1)){const _0x47b44e=_0x2c7fe1[0x0];return console[_0x3ad714(0x111)]('Auto-detected\x20CI\x20profile:\x20'+_0x47b44e),{'name':_0x47b44e,'path':join(_0x4cfcf2,_0x47b44e)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x2c7fe1[_0x3ad714(0x127)](',\x20')+'.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.');}async function installPluginNonInteractive(){const _0x387800=_0x3a7a,_0x1d17e2={'RhKej':function(_0x2ac8a8,_0x56e752){return _0x2ac8a8(_0x56e752);},'GwAtN':_0x387800(0x12e),'qEEAy':_0x387800(0x117),'wvDvv':_0x387800(0x116),'QgqBi':_0x387800(0x107),'vwLkp':'ranger-testing/trailhead','hPLmO':'You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','ifglm':'install','VlyYH':'Failed\x20to\x20install\x20plugin:'},_0x338da6=await _0x1d17e2['RhKej'](isPluginInstalled,'ranger@trailhead');if(_0x338da6)return console[_0x387800(0x111)](_0x1d17e2[_0x387800(0x10b)]),![];console['log'](_0x387800(0xf8));const _0x3afdb4=await isMarketplaceAdded('trailhead');let _0x2dec04=_0x3afdb4;if(_0x3afdb4)console['log'](_0x1d17e2['qEEAy']);else{const _0x21969a=await runClaudeCommand([_0x1d17e2[_0x387800(0x121)],_0x1d17e2[_0x387800(0x10d)],'add',_0x1d17e2[_0x387800(0xfe)]]);!_0x21969a[_0x387800(0x103)]?(console['error'](_0x387800(0x109),_0x21969a[_0x387800(0x129)]),console['log'](_0x1d17e2['hPLmO'])):_0x2dec04=!![];}if(_0x2dec04){const _0x2137b3=await runClaudeCommand(['plugin',_0x1d17e2['ifglm'],'ranger@trailhead',_0x387800(0x102),'project']);!_0x2137b3['success']?(console['error'](_0x1d17e2['VlyYH'],_0x2137b3['error']),console['log']('You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project')):console['log'](_0x387800(0x122));}return!![];}export async function setupCi(_0x1c7b4f,_0x3a3cbf,_0x1c0d00){const _0x24819f=_0x3a7a,_0x354091={'hMaXY':_0x24819f(0x101),'DSWyK':'auth','qGFIU':function(_0x102610,_0x3e8a0e){return _0x102610(_0x3e8a0e);},'NVMjT':function(_0x4f0567,_0x3b4513,_0x402567){return _0x4f0567(_0x3b4513,_0x402567);},'Jufrp':'dir_setup','lkogp':_0x24819f(0xfd),'ubTlr':'settings.json','ZKQDW':function(_0x1b1208,_0x4db326,_0x498d67){return _0x1b1208(_0x4db326,_0x498d67);},'HcqVr':function(_0x17d3f0,_0x57d040){return _0x17d3f0(_0x57d040);},'yPdUE':_0x24819f(0xfc),'Uslno':function(_0x4e31c1,_0x36e314){return _0x4e31c1(_0x36e314);},'OctDC':'✓\x20Auth\x20state\x20found','oofvL':_0x24819f(0x120),'bgZih':function(_0xf86ef4,_0x308aff){return _0xf86ef4(_0x308aff);},'PlBRd':_0x24819f(0x116),'jqgHV':'skills'};console[_0x24819f(0x111)](_0x354091[_0x24819f(0x11c)]),_0x1c0d00?.[_0x24819f(0x114)](_0x24819f(0x115)),await authenticate(_0x1c7b4f),_0x1c0d00?.['trackPhaseEnd'](_0x354091[_0x24819f(0x118)]),_0x1c0d00?.[_0x24819f(0x114)](_0x24819f(0x126));const {path:_0x2eca69,installed:_0x3ef9ba}=await ensureRangerDir();await writeRangerGitignore(_0x2eca69);const _0x432702=join(_0x2eca69,_0x24819f(0x132));!_0x354091[_0x24819f(0x12b)](existsSync,_0x432702)&&await _0x354091[_0x24819f(0x104)](mkdir,_0x432702,{'recursive':!![]});_0x1c0d00?.[_0x24819f(0x11a)](_0x354091[_0x24819f(0x12a)],{'installed':_0x3ef9ba}),_0x1c0d00?.['trackPhaseStart'](_0x24819f(0xfd));let _0x38d01c=![];_0x3a3cbf?.[_0x24819f(0xfa)]?console[_0x24819f(0x111)]('✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)'):_0x38d01c=await ensureChromium();_0x1c0d00?.[_0x24819f(0x11a)](_0x354091[_0x24819f(0x11f)],{'installed':_0x38d01c,'skipped':!!_0x3a3cbf?.['skipChromium']}),_0x1c0d00?.['trackPhaseStart']('profile_activate');const _0x4c2c71=await _0x354091['qGFIU'](findCiProfile,_0x3a3cbf?.[_0x24819f(0x100)]);let _0x3c2d43=![];_0x3a3cbf?.[_0x24819f(0x11d)]&&(await mkdir(_0x4c2c71['path'],{'recursive':!![]}),await saveSettings(_0x4c2c71[_0x24819f(0x113)],{'baseUrl':_0x3a3cbf['baseUrl'],'headless':!![]}),console[_0x24819f(0x111)]('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x3a3cbf['baseUrl']),_0x3c2d43=!![]);const _0xe302f2=_0x354091[_0x24819f(0x104)](join,_0x4c2c71['path'],_0x354091['ubTlr']);if(!_0x354091[_0x24819f(0x12b)](existsSync,_0xe302f2)&&!_0x3c2d43)throw new Error(_0x24819f(0x12d)+_0x4c2c71[_0x24819f(0x113)]+_0x24819f(0x10c));const _0x2d3d08=_0x354091[_0x24819f(0xf6)](join,_0x4c2c71[_0x24819f(0x12f)],_0x24819f(0x11e)),_0x50aa83=join(_0x4c2c71[_0x24819f(0x12f)],'auth.json.enc'),_0x2ae4a7=_0x354091[_0x24819f(0xf1)](existsSync,_0x2d3d08),_0x3e6503=existsSync(_0x50aa83);if(_0x3e6503)try{const _0x93b3df=await getToken();if(!_0x93b3df)throw new Error(_0x354091[_0x24819f(0x12c)]);const _0x2bc2f3=await _0x354091['Uslno'](readFile,_0x50aa83);decrypt(_0x2bc2f3,_0x93b3df),console[_0x24819f(0x111)](_0x24819f(0xf7));}catch(_0x4d28fe){const _0x213b51=_0x4d28fe instanceof Error?_0x4d28fe[_0x24819f(0xf9)]:String(_0x4d28fe);throw new Error(_0x24819f(0x108)+_0x4c2c71[_0x24819f(0x113)]+_0x24819f(0xff)+_0x213b51);}else _0x2ae4a7?console['log'](_0x354091['OctDC']):console[_0x24819f(0x111)](_0x354091['oofvL']);await _0x354091[_0x24819f(0x130)](writeActiveProfileName,_0x4c2c71[_0x24819f(0x113)]),console[_0x24819f(0x111)](_0x24819f(0x128)+_0x4c2c71[_0x24819f(0x113)]),_0x1c0d00?.[_0x24819f(0x11a)](_0x24819f(0x124),{'profileName':_0x4c2c71['name'],'hasAuth':_0x2ae4a7,'hasEncryptedAuth':_0x3e6503,'createdSettings':_0x3c2d43}),_0x1c0d00?.[_0x24819f(0x114)](_0x354091[_0x24819f(0xf2)]);const _0x3ee44e=await installPluginNonInteractive();_0x1c0d00?.[_0x24819f(0x11a)](_0x354091['PlBRd'],{'installed':_0x3ee44e}),_0x1c0d00?.['trackPhaseStart'](_0x354091['jqgHV']),await _0x354091[_0x24819f(0x130)](skillup,{'autoInstall':'project'}),_0x1c0d00?.[_0x24819f(0x11a)](_0x354091['jqgHV']),console[_0x24819f(0x111)]('\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a');}
@@ -1 +1 @@
1
- (function(_0x3153c0,_0x3ef98f){const _0xb192c8=_0x53be,_0x4d6ca3=_0x3153c0();while(!![]){try{const _0x221167=parseInt(_0xb192c8(0x151))/0x1+-parseInt(_0xb192c8(0x15d))/0x2+parseInt(_0xb192c8(0x164))/0x3+-parseInt(_0xb192c8(0x16d))/0x4+-parseInt(_0xb192c8(0x163))/0x5*(parseInt(_0xb192c8(0x15f))/0x6)+-parseInt(_0xb192c8(0x169))/0x7+-parseInt(_0xb192c8(0x149))/0x8*(-parseInt(_0xb192c8(0x153))/0x9);if(_0x221167===_0x3ef98f)break;else _0x4d6ca3['push'](_0x4d6ca3['shift']());}catch(_0x2e38ec){_0x4d6ca3['push'](_0x4d6ca3['shift']());}}}(_0x5009,0x9bd9d));import{basename}from'path';import _0x525f33 from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';function _0x53be(_0x482110,_0x26364f){_0x482110=_0x482110-0x142;const _0x500998=_0x5009();let _0x53becd=_0x500998[_0x482110];return _0x53becd;}import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x56d40e={}){const _0x1e9489=_0x53be,_0x331f9b={'kojpu':_0x1e9489(0x16a),'BascH':'claude','NFjdk':_0x1e9489(0x176),'AcdqZ':'To\x20get\x20started:','tzjrJ':'\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','onvkB':function(_0x502605,_0x17bbc1){return _0x502605===_0x17bbc1;},'HjlbT':_0x1e9489(0x15a),'YLaeP':_0x1e9489(0x143),'mLBly':function(_0x45b0e8){return _0x45b0e8();},'hspAE':function(_0x35d24d,_0x5e2dc4){return _0x35d24d===_0x5e2dc4;},'yVOWV':'user','fODVJ':_0x1e9489(0x167),'QCUkj':_0x1e9489(0x14a),'apcEr':_0x1e9489(0x172),'LEKnA':_0x1e9489(0x175),'Kwgid':_0x1e9489(0x146),'tiGxh':_0x1e9489(0x16c),'RRszD':'\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','AytZo':function(_0x52e02a,_0x6d4681){return _0x52e02a===_0x6d4681;},'fbCZg':'user-level','xkEyu':'project-level','cMIhH':function(_0x429a3d,_0x490e00){return _0x429a3d>_0x490e00;},'mbpQo':_0x1e9489(0x148)};console['log'](_0x331f9b[_0x1e9489(0x150)]);const _0x2c521b=_0x56d40e[_0x1e9489(0x152)]??_0x331f9b['BascH'],_0x27a0da=await getToken();if(!_0x27a0da){console['log'](_0x331f9b[_0x1e9489(0x14c)]),console['log'](_0x331f9b[_0x1e9489(0x154)]),console[_0x1e9489(0x14d)](_0x331f9b[_0x1e9489(0x156)]),console[_0x1e9489(0x14d)]('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x331f9b[_0x1e9489(0x147)](_0x2c521b,'opencode')?_0x331f9b[_0x1e9489(0x16f)]:'')+_0x1e9489(0x16b)),console['log'](_0x1e9489(0x145)+(_0x2c521b===_0x331f9b[_0x1e9489(0x171)]?_0x331f9b['HjlbT']:'')+'\x0a');return;}console[_0x1e9489(0x14d)](_0x1e9489(0x160));const _0x5f3305=_0x331f9b[_0x1e9489(0x142)](getProjectRoot),_0x8fa06c=basename(_0x5f3305),_0xe37e67=_0x331f9b['hspAE'](_0x2c521b,_0x1e9489(0x143))?getOpencodeConfigDir(_0x331f9b[_0x1e9489(0x14b)])+'/skills/':getClaudeConfigDir()+'/skills/',_0x2fde41=_0x2c521b===_0x331f9b['YLaeP']?_0x5f3305+'/.opencode/skills/':_0x5f3305+_0x1e9489(0x15b),_0x574dbf=process[_0x1e9489(0x166)][_0x1e9489(0x15e)]&&process[_0x1e9489(0x165)]['isTTY'];let _0x486c51;if(_0x56d40e['autoInstall'])_0x486c51=_0x56d40e[_0x1e9489(0x15c)];else{if(_0x574dbf){const _0x1d8765=await _0x525f33['prompt']([{'type':_0x331f9b['fODVJ'],'name':_0x331f9b['QCUkj'],'message':_0x331f9b['apcEr'],'choices':[{'name':_0x1e9489(0x155)+_0xe37e67+')','value':_0x331f9b['yVOWV']},{'name':'This\x20project\x20only\x20('+_0x2fde41+')','value':'project'}]}]);_0x486c51=_0x1d8765['installLevel'];}else _0x486c51=_0x331f9b['LEKnA'],console['log'](_0x1e9489(0x170)+_0x2fde41+')');}let _0x36378f=0x0;const _0x53eb88=getCurrentVersion();console['log'](_0x331f9b['Kwgid']);try{const _0x4ff88a=await installSkill(_0x331f9b[_0x1e9489(0x16e)],{'cliVersion':_0x53eb88,'level':_0x486c51,'platform':_0x2c521b});_0x4ff88a&&_0x36378f++;}catch(_0x136a6f){console[_0x1e9489(0x144)](_0x331f9b[_0x1e9489(0x14e)],_0x136a6f instanceof Error?_0x136a6f[_0x1e9489(0x159)]:_0x136a6f);}if(_0x36378f>0x0){const _0xe00f40=_0x331f9b[_0x1e9489(0x162)](_0x486c51,_0x331f9b[_0x1e9489(0x14b)])?_0x331f9b[_0x1e9489(0x161)]:_0x331f9b[_0x1e9489(0x168)];console['log'](_0x1e9489(0x14f)+_0x36378f+'\x20'+_0xe00f40+'\x20skill'+(_0x331f9b['cMIhH'](_0x36378f,0x1)?'s':'')+_0x1e9489(0x158)),!_0x56d40e['suppressUsage']&&(console['log']('To\x20use:'),_0x331f9b[_0x1e9489(0x173)](_0x2c521b,_0x1e9489(0x143))?console['log'](_0x331f9b[_0x1e9489(0x157)]):console['log'](_0x1e9489(0x174)));}else console[_0x1e9489(0x14d)]('\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a');}function _0x5009(){const _0x36bfd1=['Where\x20should\x20skills\x20be\x20installed?','hspAE','\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!','project','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','mLBly','opencode','warn','\x20\x203.\x20Run:\x20ranger\x20skillup','\x0a📦\x20Installing\x20skills...\x0a','onvkB','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','120vEChPX','installLevel','yVOWV','NFjdk','log','RRszD','\x0a✅\x20Installed\x20','kojpu','116353SkSOsA','platform','801954OcLwYl','AcdqZ','All\x20projects\x20(','tzjrJ','mbpQo','\x20successfully!\x0a','message','\x20--opencode','/.claude/skills/','autoInstall','1543768RFFyFm','isTTY','200220qPlhCI','✓\x20Found\x20API\x20token','fbCZg','AytZo','45ZaLKKa','3791403vrEKgB','stdout','stdin','list','xkEyu','4999246jXoLen','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','\x20<your-api-token>','ranger','1167948GYGFKq','tiGxh','HjlbT','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','YLaeP'];_0x5009=function(){return _0x36bfd1;};return _0x5009();}
1
+ function _0x18bd(_0x5a849d,_0xad1de1){_0x5a849d=_0x5a849d-0x134;const _0x52160f=_0x5216();let _0x18bd1a=_0x52160f[_0x5a849d];return _0x18bd1a;}(function(_0x271c0b,_0x1e9ae3){const _0x1bae53=_0x18bd,_0x4f9a2e=_0x271c0b();while(!![]){try{const _0x4392ee=parseInt(_0x1bae53(0x148))/0x1+parseInt(_0x1bae53(0x13b))/0x2+parseInt(_0x1bae53(0x159))/0x3+parseInt(_0x1bae53(0x13a))/0x4+-parseInt(_0x1bae53(0x14e))/0x5+parseInt(_0x1bae53(0x156))/0x6*(-parseInt(_0x1bae53(0x15c))/0x7)+parseInt(_0x1bae53(0x143))/0x8;if(_0x4392ee===_0x1e9ae3)break;else _0x4f9a2e['push'](_0x4f9a2e['shift']());}catch(_0x3d1d64){_0x4f9a2e['push'](_0x4f9a2e['shift']());}}}(_0x5216,0xbd899));import{basename}from'path';import _0x3270b2 from'inquirer';import{getToken}from'./utils/keychain.js';import{installSkill}from'./utils/skills.js';function _0x5216(){const _0x351fb9=['message','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','/skills/','log','313464JKbHRr','OCdvS','rOXzY','1089519SxutsW','DuTwd','\x20--opencode','147pSwFLC','user-level','/.opencode/skills/','ttlmO','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','This\x20project\x20only\x20(','user','project','autoInstall','NURfb','2328380qIEkpi','849882TEzwUN','project-level','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','prompt','mjcFk','stdin','krEPf','/.claude/skills/','3264048Kgjtmd','\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a','installLevel','sRKbC','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','1155732zeYzvf','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli','stdout','\x20\x202.\x20Run:\x20ranger\x20setup','LfTtB','EBCzF','5302390hZJRSw','list','\x20skill','\x20\x203.\x20Run:\x20ranger\x20skillup'];_0x5216=function(){return _0x351fb9;};return _0x5216();}import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x192504={}){const _0x26f11d=_0x18bd,_0x3ec23b={'xbSYl':_0x26f11d(0x134),'ttlmO':'claude','LfTtB':function(_0x348481){return _0x348481();},'xjAIm':'5|2|1|4|3|0','GBoLd':_0x26f11d(0x149),'sRKbC':function(_0x1b8641,_0x1cf856){return _0x1b8641===_0x1cf856;},'krEPf':_0x26f11d(0x15b),'rOXzY':'opencode','NURfb':function(_0x1107db,_0x5e48c8){return _0x1107db(_0x5e48c8);},'OCdvS':_0x26f11d(0x136),'gwmVT':_0x26f11d(0x145),'uhllP':'Where\x20should\x20skills\x20be\x20installed?','HHOrA':_0x26f11d(0x137),'DuTwd':'\x0a📦\x20Installing\x20skills...\x0a','WTtCs':function(_0x1822b9,_0x52b3bc,_0x3540d2){return _0x1822b9(_0x52b3bc,_0x3540d2);},'mjcFk':_0x26f11d(0x13d),'LHVfe':function(_0x1fd91a,_0x212fbd){return _0x1fd91a instanceof _0x212fbd;},'JlyHq':function(_0x14824e,_0x21b3c1){return _0x14824e>_0x21b3c1;},'EBCzF':'To\x20use:','yvtiQ':_0x26f11d(0x153),'kUVHC':_0x26f11d(0x144)};console[_0x26f11d(0x155)](_0x3ec23b['xbSYl']);const _0x842632=_0x192504['platform']??_0x3ec23b[_0x26f11d(0x15f)],_0x3d0e5f=await _0x3ec23b['LfTtB'](getToken);if(!_0x3d0e5f){const _0x47f227=_0x3ec23b['xjAIm']['split']('|');let _0x11e61c=0x0;while(!![]){switch(_0x47f227[_0x11e61c++]){case'0':return;case'1':console['log'](_0x3ec23b['GBoLd']);continue;case'2':console['log']('To\x20get\x20started:');continue;case'3':console[_0x26f11d(0x155)](_0x26f11d(0x151)+(_0x3ec23b['sRKbC'](_0x842632,'opencode')?_0x3ec23b[_0x26f11d(0x141)]:'')+'\x0a');continue;case'4':console[_0x26f11d(0x155)](_0x26f11d(0x14b)+(_0x842632===_0x3ec23b['rOXzY']?_0x3ec23b[_0x26f11d(0x141)]:'')+'\x20<your-api-token>');continue;case'5':console[_0x26f11d(0x155)](_0x26f11d(0x147));continue;}break;}}console[_0x26f11d(0x155)]('✓\x20Found\x20API\x20token');const _0x35e271=getProjectRoot(),_0x590eed=_0x3ec23b[_0x26f11d(0x139)](basename,_0x35e271),_0x2bf9a3=_0x3ec23b[_0x26f11d(0x146)](_0x842632,_0x3ec23b[_0x26f11d(0x158)])?getOpencodeConfigDir(_0x3ec23b['OCdvS'])+'/skills/':_0x3ec23b[_0x26f11d(0x14c)](getClaudeConfigDir)+_0x26f11d(0x154),_0x11d466=_0x842632===_0x3ec23b['rOXzY']?_0x35e271+_0x26f11d(0x15e):_0x35e271+_0x26f11d(0x142),_0x58356e=process[_0x26f11d(0x140)]['isTTY']&&process[_0x26f11d(0x14a)]['isTTY'];let _0x512a57;if(_0x192504[_0x26f11d(0x138)])_0x512a57=_0x192504['autoInstall'];else{if(_0x58356e){const _0x1537d8=await _0x3270b2[_0x26f11d(0x13e)]([{'type':_0x26f11d(0x14f),'name':_0x3ec23b['gwmVT'],'message':_0x3ec23b['uhllP'],'choices':[{'name':'All\x20projects\x20('+_0x2bf9a3+')','value':_0x3ec23b['OCdvS']},{'name':_0x26f11d(0x135)+_0x11d466+')','value':'project'}]}]);_0x512a57=_0x1537d8['installLevel'];}else _0x512a57=_0x3ec23b['HHOrA'],console[_0x26f11d(0x155)]('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x11d466+')');}let _0x302d64=0x0;const _0x1f0fde=_0x3ec23b['LfTtB'](getCurrentVersion);console[_0x26f11d(0x155)](_0x3ec23b[_0x26f11d(0x15a)]);try{const _0x58b8b7=await _0x3ec23b['WTtCs'](installSkill,'ranger',{'cliVersion':_0x1f0fde,'level':_0x512a57,'platform':_0x842632});_0x58b8b7&&_0x302d64++;}catch(_0x46ebe5){console['warn'](_0x3ec23b[_0x26f11d(0x13f)],_0x3ec23b['LHVfe'](_0x46ebe5,Error)?_0x46ebe5[_0x26f11d(0x152)]:_0x46ebe5);}if(_0x3ec23b['JlyHq'](_0x302d64,0x0)){const _0x1a61c7=_0x3ec23b[_0x26f11d(0x146)](_0x512a57,_0x3ec23b[_0x26f11d(0x157)])?_0x26f11d(0x15d):_0x26f11d(0x13c);console['log']('\x0a✅\x20Installed\x20'+_0x302d64+'\x20'+_0x1a61c7+_0x26f11d(0x150)+(_0x3ec23b['JlyHq'](_0x302d64,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x192504['suppressUsage']&&(console[_0x26f11d(0x155)](_0x3ec23b[_0x26f11d(0x14d)]),_0x842632===_0x3ec23b['rOXzY']?console[_0x26f11d(0x155)](_0x3ec23b['yvtiQ']):console[_0x26f11d(0x155)]('\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'));}else console[_0x26f11d(0x155)](_0x3ec23b['kUVHC']);}
@@ -1 +1 @@
1
- const _0x577a92=_0x4cd2;(function(_0x34da7d,_0x2934e8){const _0x51f2c5=_0x4cd2,_0x8961ff=_0x34da7d();while(!![]){try{const _0x406028=-parseInt(_0x51f2c5(0x16c))/0x1+parseInt(_0x51f2c5(0x14a))/0x2*(parseInt(_0x51f2c5(0x155))/0x3)+-parseInt(_0x51f2c5(0x195))/0x4*(parseInt(_0x51f2c5(0x145))/0x5)+-parseInt(_0x51f2c5(0x193))/0x6+parseInt(_0x51f2c5(0x18c))/0x7+-parseInt(_0x51f2c5(0x162))/0x8+parseInt(_0x51f2c5(0x18f))/0x9;if(_0x406028===_0x2934e8)break;else _0x8961ff['push'](_0x8961ff['shift']());}catch(_0x431477){_0x8961ff['push'](_0x8961ff['shift']());}}}(_0x4bc3,0x84158));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x3bdf73 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerDir,findGitRoot}from'./utils/rangerRoot.js';function _0x4bc3(){const _0x14c86c=['QFXui','/ranger:enable','status','LHxKw','✓\x20Authenticated\x20to\x20','.gitignore','\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20','use\x20until\x20the\x20session\x20expires.\x0a','ready','isTTY','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','ObIYm','GtRQt','env','trackPhaseError','zocWS','eAJTa','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','win32','method','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','Authentication\x20failed:\x20','\x20now?','3842608pAYCpV','LSxFy','skipChromium','13826241zYowmy','confirm','\x20\x20npx\x20playwright@','ZnLWM','3871386mCyiDk','\x0a❌\x20Profile\x20setup\x20failed:','164wNjyZM','install','user','sNTVG','chromium','RSobU','.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','✓\x20Exported\x20credentials\x20for\x20CI','aXbWb','skills','playwright@','nzYAL','trackPhaseStart','message','force','trackPhaseEnd','stdout','cCNSG','log','60505rzZfsP','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','✓\x20Local\x20profile\x20already\x20exists','✓\x20Created\x20.ranger/.gitignore','106SinGQz','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','No\x20git\x20repository\x20found','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','sxdUP','git_check','\x20and\x20prompt\x20the\x20coding','\x20(fallback\x20version)','✓\x20Already\x20authenticated\x20to\x20','ranger','HkXUL','36843gzIFWz','platform','stdin','hNGHW','scope','NSUfp','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','ranger\x20profile\x20add\x20local','wEjyJ','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a','prompt','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','5543672MdDEul','\x20install\x20chromium','error','PeSRg','\x1b[1m','lQsls','auth','local','resolve','kttnl','360739BdCiaQ','profile','opencode','url','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','✓\x20Created\x20.ranger/\x20directory','npx'];_0x4bc3=function(){return _0x14c86c;};return _0x4bc3();}import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2',bold=_0x50cdda=>_0x577a92(0x166)+_0x50cdda+'\x1b[0m';function getPlaywrightVersion(){const _0x32ffc3=_0x577a92,_0x38ebc7={'ezUAQ':'playwright/package.json','FKwQt':function(_0x243c13,_0x3caa65){return _0x243c13(_0x3caa65);}};try{const _0x2c1978=require[_0x32ffc3(0x16a)](_0x38ebc7['ezUAQ']),_0x5eae24=_0x38ebc7['FKwQt'](require,_0x2c1978);return _0x5eae24['version'];}catch{return null;}}function installChromiumBinary(_0x53229d){const _0x18618c=_0x577a92,_0x59729e={'CTyTk':_0x18618c(0x196),'kttnl':_0x18618c(0x187),'PeSRg':_0x18618c(0x164)};return new Promise((_0xec00fa,_0x24a85d)=>{const _0x129451=_0x18618c,_0x235362={'djzvC':function(_0x10cdfa){return _0x10cdfa();}},_0x5b948c=[_0x129451(0x1a0)+_0x53229d,_0x59729e['CTyTk'],_0x129451(0x199)],_0x533646=spawn(_0x129451(0x173),_0x5b948c,{'stdio':'inherit','shell':process[_0x129451(0x156)]===_0x59729e[_0x129451(0x16b)]});_0x533646['on']('close',_0xfd5eb1=>{_0xfd5eb1===0x0?_0x235362['djzvC'](_0xec00fa):_0x24a85d(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0xfd5eb1));}),_0x533646['on'](_0x59729e[_0x129451(0x165)],_0x38f4ee=>{_0x24a85d(_0x38f4ee);});});}export async function authenticate(_0x59b47b){const _0x56e140=_0x577a92,_0x2d0400={'sNTVG':'existing_token','PXAwF':function(_0x1989e9){return _0x1989e9();},'thwAn':function(_0x468587,_0x1e6ceb){return _0x468587 instanceof _0x1e6ceb;},'fYfJR':'Validating\x20API\x20token...'};if(!_0x59b47b){const _0x53d1a7=await getToken();if(_0x53d1a7){const _0x9f6691=await getCurrentUser(_0x53d1a7);if(_0x9f6691['success'])return console['log'](_0x56e140(0x152)+_0x9f6691[_0x56e140(0x197)]['organizationName']),{'token':_0x53d1a7,'method':_0x2d0400[_0x56e140(0x198)]};}try{_0x59b47b=await _0x2d0400['PXAwF'](runDeviceAuthFlow);}catch(_0x3901cd){throw new Error('Authentication\x20failed:\x20'+(_0x2d0400['thwAn'](_0x3901cd,Error)?_0x3901cd['message']:_0x3901cd));}const _0x3bab55=await getCurrentUser(_0x59b47b);if(!_0x3bab55['success'])throw new Error(_0x56e140(0x17b)+_0x3bab55['error']);return console['log'](_0x56e140(0x178)+_0x3bab55[_0x56e140(0x197)]['organizationName']),{'token':_0x59b47b,'method':'device_auth'};}console[_0x56e140(0x144)](_0x2d0400['fYfJR']);const _0x281bf7=await getCurrentUser(_0x59b47b);if(!_0x281bf7['success']){if(_0x281bf7[_0x56e140(0x176)])throw new Error(_0x56e140(0x18a)+_0x281bf7['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error(_0x56e140(0x186)+_0x281bf7['error']+_0x56e140(0x19b));}return console[_0x56e140(0x144)](_0x56e140(0x178)+_0x281bf7['user']['organizationName']),await storeToken(_0x59b47b),console[_0x56e140(0x144)](process[_0x56e140(0x182)]['GITHUB_ENV']?_0x56e140(0x19d):'✓\x20Stored\x20credentials\x20locally'),{'token':_0x59b47b,'method':'provided_token'};}export async function ensureRangerDir(){const _0xce2df5=_0x577a92,_0xb42a68={'rbKIN':function(_0x326bd5,_0xe40913,_0xcc9fb){return _0x326bd5(_0xe40913,_0xcc9fb);},'aXbWb':_0xce2df5(0x172),'pwfMG':'✓\x20.ranger/\x20directory\x20already\x20exists'},_0x2c9883=findGitRoot(),_0x7987d1=_0x2c9883?join(_0x2c9883,'.ranger'):getRangerDir();return!existsSync(_0x7987d1)?(await _0xb42a68['rbKIN'](mkdir,_0x7987d1,{'recursive':!![]}),console['log'](_0xb42a68[_0xce2df5(0x19e)]),{'path':_0x7987d1,'installed':!![]}):(console[_0xce2df5(0x144)](_0xb42a68['pwfMG']),{'path':_0x7987d1,'installed':![]});}export async function ensureChromium(){const _0x2e4300=_0x577a92,_0x4083c0={'mxdlT':function(_0x297102,_0x302222){return _0x297102??_0x302222;},'XLOCs':'\x0aInstalling\x20Chromium\x20browser...\x0a','pkXnh':function(_0x9a63b2,_0x159c6c){return _0x9a63b2(_0x159c6c);},'ZTLOr':function(_0x4bd158,_0x16c48f){return _0x4bd158 instanceof _0x16c48f;}};let _0x5ca849=![];try{const _0x3cd171=chromium['executablePath']();_0x5ca849=existsSync(_0x3cd171);}catch{_0x5ca849=![];}if(_0x5ca849)return console['log']('✓\x20Playwright\x20Chromium\x20browser\x20found'),![];const _0x168ac4=getPlaywrightVersion(),_0x2030a7=_0x4083c0['mxdlT'](_0x168ac4,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x36e0d5=!_0x168ac4,_0x2ecf03=process['stdin'][_0x2e4300(0x17e)]&&process[_0x2e4300(0x142)]['isTTY'];let _0x1fb6ee=!![];if(_0x2ecf03){const {install:_0x45f5ea}=await _0x3bdf73[_0x2e4300(0x160)]([{'type':_0x2e4300(0x190),'name':'install','message':_0x36e0d5?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x2030a7+_0x2e4300(0x18b):'The\x20required\x20version\x20('+_0x2030a7+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x1fb6ee=_0x45f5ea;}else console['log'](_0x2e4300(0x19c)+_0x2030a7+(_0x36e0d5?_0x2e4300(0x151):'')+'...');if(_0x1fb6ee){console['log'](_0x4083c0['XLOCs']);try{await _0x4083c0['pkXnh'](installChromiumBinary,_0x2030a7),console[_0x2e4300(0x144)]('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x5aa1a2){console['error']('\x0a❌\x20Failed\x20to\x20install\x20Chromium:',_0x4083c0['ZTLOr'](_0x5aa1a2,Error)?_0x5aa1a2['message']:_0x5aa1a2),console[_0x2e4300(0x144)]('You\x20can\x20install\x20it\x20manually\x20by\x20running:'),console[_0x2e4300(0x144)](_0x2e4300(0x191)+_0x2030a7+'\x20install\x20chromium');}}else console[_0x2e4300(0x144)]('\x0a⚠\x20Skipping\x20Chromium\x20installation.'),console['log'](_0x2e4300(0x161)),console[_0x2e4300(0x144)]('\x20\x20npx\x20playwright@'+_0x2030a7+_0x2e4300(0x163));return!![];}export async function writeRangerGitignore(_0x54de64){const _0x4b4dfa=_0x577a92,_0x176dbd={'lQsls':function(_0x531ce8,_0x300338,_0x464c2c){return _0x531ce8(_0x300338,_0x464c2c);},'cCNSG':_0x4b4dfa(0x149)},_0x585cb9=_0x176dbd[_0x4b4dfa(0x167)](join,_0x54de64,_0x4b4dfa(0x179)),_0x4ce7f1=_0x4b4dfa(0x15f);await writeFile(_0x585cb9,_0x4ce7f1),console[_0x4b4dfa(0x144)](_0x176dbd[_0x4b4dfa(0x143)]);}function _0x4cd2(_0x5ba499,_0x5a0f2c){_0x5ba499=_0x5ba499-0x13f;const _0x4bc3ad=_0x4bc3();let _0x4cd267=_0x4bc3ad[_0x5ba499];return _0x4cd267;}function printProfileSetupLaterInstructions(){const _0x2bee6d=_0x577a92,_0xfa1417={'GzBMa':_0x2bee6d(0x17a),'rSAaE':_0x2bee6d(0x15c)};console[_0x2bee6d(0x144)](_0xfa1417['GzBMa']),console[_0x2bee6d(0x144)]('\x20\x20'+bold(_0xfa1417['rSAaE'])),console['log']('Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a');}async function ensureLocalEnv(_0x2eb578,_0x3495c1){const _0x347bac=_0x577a92,_0x5ef4cd={'QFXui':_0x347bac(0x169),'YlhYo':_0x347bac(0x148),'PvfkM':_0x347bac(0x171),'hNGHW':'to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','eAJTa':'You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','mjadE':_0x347bac(0x190),'qSTvH':'wantsProfile','MBbRC':_0x347bac(0x15b)};if(!findGitRoot())return console[_0x347bac(0x144)]('⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.'),{'ready':![],'skipped':!![]};if(findExistingEnv(_0x5ef4cd[_0x347bac(0x174)],{'locations':[_0x347bac(0x169)]}))return console[_0x347bac(0x144)](_0x5ef4cd['YlhYo']),{'ready':!![],'skipped':![]};const _0x27e686=process['stdin'][_0x347bac(0x17e)]&&process['stdout'][_0x347bac(0x17e)];if(_0x27e686&&!_0x2eb578?.[_0x347bac(0x16f)]){console[_0x347bac(0x144)](_0x5ef4cd['PvfkM']),console['log'](_0x5ef4cd[_0x347bac(0x158)]),console['log']('auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'),console[_0x347bac(0x144)](_0x347bac(0x17c)),console['log'](_0x5ef4cd[_0x347bac(0x185)]);const {wantsProfile:_0x528f2f}=await _0x3bdf73['prompt']([{'type':_0x5ef4cd['mjadE'],'name':_0x5ef4cd['qSTvH'],'message':_0x5ef4cd['MBbRC'],'default':!![]}]);if(!_0x528f2f)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await addEnv(_0x347bac(0x169),{'url':_0x2eb578?.[_0x347bac(0x16f)],'force':_0x2eb578?.[_0x347bac(0x140)],'allowInsecureLocalhost':_0x2eb578?.['allowInsecureLocalhost']},_0x3495c1),{'ready':!![],'skipped':![]};}catch(_0x540957){return console['error'](_0x347bac(0x194),_0x540957 instanceof Error?_0x540957['message']:_0x540957),printProfileSetupLaterInstructions(),{'ready':![],'skipped':![]};}}export async function start(_0x3a869f,_0x303e4c,_0x1260c2){const _0x4455cd=_0x577a92,_0x30d901={'RSobU':_0x4455cd(0x14f),'zocWS':function(_0x4daf1e){return _0x4daf1e();},'ObIYm':'No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.','LHxKw':function(_0x309b50,_0x366b7b){return _0x309b50(_0x366b7b);},'sxdUP':'auth','TgwHb':function(_0x5c722b,_0x150970){return _0x5c722b(_0x150970);},'wEjyJ':_0x4455cd(0x17f),'HkXUL':function(_0x3ecd02){return _0x3ecd02();},'GtRQt':'plugin','acrej':function(_0x2bdcdb,_0x11ded5){return _0x2bdcdb(_0x11ded5);},'etvDo':function(_0x45a760,_0x6d3e3b){return _0x45a760&&_0x6d3e3b;},'LSxFy':'skills','bAAYV':function(_0x27ba63){return _0x27ba63();},'ZnLWM':function(_0x30e640,_0x1175b9){return _0x30e640 instanceof _0x1175b9;},'oRyht':'Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','LElvN':_0x4455cd(0x15c),'NSUfp':function(_0x5938db,_0x3b1bec,_0xd12c4c){return _0x5938db(_0x3b1bec,_0xd12c4c);},'pzZMz':_0x4455cd(0x16d),'nzYAL':_0x4455cd(0x14b),'TBmzE':function(_0x58aea9,_0x122f40){return _0x58aea9+_0x122f40;}};console[_0x4455cd(0x144)]('\x0a🚀\x20Ranger\x20Setup\x0a');const _0x3a67b3=process[_0x4455cd(0x157)][_0x4455cd(0x17e)]&&process['stdout'][_0x4455cd(0x17e)];!_0x3a67b3&&!_0x303e4c?.[_0x4455cd(0x159)]&&(console['log'](_0x4455cd(0x15e)),_0x303e4c={..._0x303e4c,'scope':_0x4455cd(0x197)});_0x1260c2?.[_0x4455cd(0x1a2)](_0x30d901['RSobU']);if(!_0x30d901[_0x4455cd(0x184)](findGitRoot)){await _0x1260c2?.[_0x4455cd(0x183)](_0x30d901[_0x4455cd(0x19a)],new Error(_0x4455cd(0x14c)));throw new Error(_0x30d901[_0x4455cd(0x180)]);}_0x1260c2?.['trackPhaseEnd']('git_check');const _0x332ef1=!_0x30d901[_0x4455cd(0x177)](existsSync,_0x30d901['zocWS'](getRangerDir)),{path:_0x4f852c}=await ensureRangerDir();_0x1260c2?.['trackPhaseStart'](_0x30d901[_0x4455cd(0x14e)]);const _0x17eda7=await _0x30d901['TgwHb'](authenticate,_0x3a869f);_0x1260c2?.['trackPhaseEnd'](_0x4455cd(0x168),{'isFirstRun':_0x332ef1,'method':_0x17eda7[_0x4455cd(0x188)]}),_0x1260c2?.['trackPhaseStart']('chromium');_0x303e4c?.[_0x4455cd(0x18e)]?console['log'](_0x30d901[_0x4455cd(0x15d)]):await _0x30d901[_0x4455cd(0x154)](ensureChromium);_0x1260c2?.['trackPhaseEnd'](_0x4455cd(0x199),{'isFirstRun':_0x332ef1,'skipped':!!_0x303e4c?.[_0x4455cd(0x18e)]}),await _0x30d901['TgwHb'](writeRangerGitignore,_0x4f852c),console['log'](_0x4455cd(0x147));const _0x4107a7=_0x303e4c?.[_0x4455cd(0x159)],_0x1a4572=_0x303e4c?.[_0x4455cd(0x16e)]??![];let _0x40f160=null;_0x1a4572?(_0x1260c2?.[_0x4455cd(0x1a2)](_0x30d901[_0x4455cd(0x181)]),_0x40f160=await ensureOpencodePluginConfig(_0x4107a7),_0x1260c2?.['trackPhaseEnd']('plugin',{'isFirstRun':_0x332ef1,'opencode':!![]})):(_0x1260c2?.[_0x4455cd(0x1a2)]('plugin'),await _0x30d901['acrej'](ensureClaudePlugin,_0x4107a7),_0x1260c2?.['trackPhaseEnd'](_0x30d901['GtRQt'],{'isFirstRun':_0x332ef1}));if(_0x30d901['etvDo'](_0x1a4572,_0x40f160)){_0x1260c2?.['trackPhaseStart'](_0x30d901[_0x4455cd(0x18d)]);try{await installSkill(_0x4455cd(0x153),{'level':_0x40f160[_0x4455cd(0x159)],'cliVersion':_0x30d901['bAAYV'](getCurrentVersion),'platform':'opencode'}),_0x1260c2?.['trackPhaseEnd']('skills',{'isFirstRun':_0x332ef1,'opencode':!![]});}catch(_0x2c03a0){console['warn']('\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:',_0x30d901[_0x4455cd(0x192)](_0x2c03a0,Error)?_0x2c03a0[_0x4455cd(0x13f)]:_0x2c03a0),_0x1260c2?.['trackPhaseEnd'](_0x4455cd(0x19f),{'isFirstRun':_0x332ef1,'opencode':!![],'failed':!![]});}}else _0x1260c2?.[_0x4455cd(0x1a2)](_0x30d901[_0x4455cd(0x18d)]),await _0x30d901['acrej'](ensureClaudeSkills,_0x4107a7),_0x1260c2?.['trackPhaseEnd']('skills',{'isFirstRun':_0x332ef1});if(!_0x3a67b3&&!_0x303e4c?.['url'])console['log'](_0x30d901['oRyht']),console['log']('\x20\x20'+bold(_0x30d901['LElvN'])+'\x0a');else{_0x1260c2?.[_0x4455cd(0x1a2)](_0x4455cd(0x16d));const _0x5d5b68=await _0x30d901[_0x4455cd(0x15a)](ensureLocalEnv,{'url':_0x303e4c?.[_0x4455cd(0x16f)],'force':_0x303e4c?.['force'],'allowInsecureLocalhost':_0x303e4c?.['allowInsecureLocalhost']},_0x1260c2);_0x1260c2?.[_0x4455cd(0x141)](_0x30d901['pzZMz'],{'isFirstRun':_0x332ef1,'profileReady':_0x5d5b68['ready'],'userSkipped':_0x5d5b68['skipped']}),_0x5d5b68[_0x4455cd(0x17d)]&&console[_0x4455cd(0x144)](_0x4455cd(0x146));}if(_0x1a4572)console['log'](_0x4455cd(0x14d)),console[_0x4455cd(0x144)]('and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review'),console[_0x4455cd(0x144)](_0x30d901[_0x4455cd(0x1a1)]),console[_0x4455cd(0x144)](_0x4455cd(0x189));else{const _0x4b712a=bold(_0x4455cd(0x175));console['log'](_0x30d901['TBmzE'](_0x30d901['TBmzE']('\x0aIn\x20Claude\x20Code,\x20run\x20'+_0x4b712a+_0x4455cd(0x150),_0x4455cd(0x170))+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.'));}}
1
+ const _0x3d9dda=_0x3b59;(function(_0x2917a9,_0x50dd51){const _0x3c340a=_0x3b59,_0x15960c=_0x2917a9();while(!![]){try{const _0x21c43b=-parseInt(_0x3c340a(0x21a))/0x1+parseInt(_0x3c340a(0x1f7))/0x2+parseInt(_0x3c340a(0x218))/0x3*(parseInt(_0x3c340a(0x1e0))/0x4)+parseInt(_0x3c340a(0x213))/0x5*(-parseInt(_0x3c340a(0x20e))/0x6)+-parseInt(_0x3c340a(0x223))/0x7+parseInt(_0x3c340a(0x1e9))/0x8+parseInt(_0x3c340a(0x1e1))/0x9;if(_0x21c43b===_0x50dd51)break;else _0x15960c['push'](_0x15960c['shift']());}catch(_0x1488b3){_0x15960c['push'](_0x15960c['shift']());}}}(_0x1f38,0x6dcde));import{mkdir,writeFile}from'fs/promises';function _0x1f38(){const _0x523f8f=['\x0a⚠\x20Skipping\x20Chromium\x20installation.','organizationName','✓\x20Stored\x20credentials\x20locally','scope','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','trackPhaseError','url','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','Validating\x20API\x20token...','✓\x20Created\x20.ranger/.gitignore',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','tXgMp','1052426wTItve','ZlobR','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','QsQSN','✓\x20Local\x20profile\x20already\x20exists','✓\x20Authenticated\x20to\x20','stdin','Vgsql','You\x20can\x20install\x20it\x20manually\x20by\x20running:','log','QwoKh','afqux','gkuxB','yWwwp','local','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','plugin','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','message','version','✓\x20Playwright\x20Chromium\x20browser\x20found','xAFQP','/ranger:enable','222NQNNDN','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','install','auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to','\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with','85125osIaOw','trackPhaseEnd','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','\x0a\x0a#\x20Ignore\x20local-only\x20directories\x0alocal/\x0asessions/\x0abug-bashes/\x0areports/\x0afeedback-images/\x0a\x0aactive-profile.txt\x0aactive-feature.txt\x0a.gitignore\x0a\x0a#\x20Ignore\x20plaintext\x20auth\x20files\x20(encrypted\x20.enc\x20files\x20are\x20safe\x20to\x20commit)\x0a**/auth.json\x0a','existing_token','48MNfKOo','user','769932nxgoJH','allowInsecureLocalhost','\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','hOKWB','qcXWk','\x20now?','playwright@','verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','766024wloxAM','env','and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','ranger\x20profile\x20add\x20local','resolve','PZsxu','Authentication\x20failed:\x20','wroqB','isTTY','BwGSL','\x20install\x20chromium','executablePath','error','✓\x20Exported\x20credentials\x20for\x20CI','opencode','wdWfY','skills','oFCoo','method','\x1b[1m','Kfqei','profile','✓\x20Created\x20.ranger/\x20directory','YMnDo','success','skipped','\x20(fallback\x20version)','\x20and\x20prompt\x20the\x20coding','force','\x0aIn\x20Claude\x20Code,\x20run\x20','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','platform','.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.','trackPhaseStart','status','chromium','134524tgvWxB','6587226HhQEfj','Uytdj','BEmVx','aXRap','prompt','\x0aInstalling\x20Chromium\x20browser...\x0a','RXXKT','warn','1302592IjBtwj'];_0x1f38=function(){return _0x523f8f;};return _0x1f38();}import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x400808 from'inquirer';import{getToken,storeToken}from'./utils/keychain.js';import{getCurrentUser}from'./utils/userApi.js';import{chromium}from'playwright';import{addEnv}from'./addEnv.js';import{getRangerDir,findGitRoot}from'./utils/rangerRoot.js';import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{findExistingEnv}from'./utils/settings.js';import{getCurrentVersion}from'./utils/version.js';import{ensureClaudePlugin,ensureClaudeSkills}from'./setup/claude.js';import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION='1.58.2',bold=_0x3df460=>_0x3d9dda(0x1ce)+_0x3df460+'\x1b[0m';function getPlaywrightVersion(){const _0x2c0928=_0x3d9dda;try{const _0x4eaeba=require[_0x2c0928(0x227)]('playwright/package.json'),_0x16f046=require(_0x4eaeba);return _0x16f046[_0x2c0928(0x20a)];}catch{return null;}}function installChromiumBinary(_0x3d7aa7){const _0x869533={'fpyvx':function(_0x4751e2,_0x508c7e){return _0x4751e2(_0x508c7e);},'uONYG':'chromium','Vgsql':function(_0x1802ed,_0x4e8d80,_0x40277e,_0x10c672){return _0x1802ed(_0x4e8d80,_0x40277e,_0x10c672);},'yWwwp':'npx','FZzUC':'close','TLiGi':'error'};return new Promise((_0x2d7cc4,_0x195f4e)=>{const _0x44e69c=_0x3b59,_0x2479b6=[_0x44e69c(0x221)+_0x3d7aa7,'install',_0x869533['uONYG']],_0x18d8a9=_0x869533[_0x44e69c(0x1fe)](spawn,_0x869533[_0x44e69c(0x204)],_0x2479b6,{'stdio':'inherit','shell':process[_0x44e69c(0x1db)]==='win32'});_0x18d8a9['on'](_0x869533['FZzUC'],_0x15af66=>{_0x15af66===0x0?_0x2d7cc4():_0x195f4e(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x15af66));}),_0x18d8a9['on'](_0x869533['TLiGi'],_0x52d91e=>{_0x869533['fpyvx'](_0x195f4e,_0x52d91e);});});}export async function authenticate(_0x1a4af9){const _0x53e19b=_0x3d9dda,_0x56d189={'sItpb':function(_0x4f8b66){return _0x4f8b66();},'SRrKo':function(_0x13c468,_0x31f0f1){return _0x13c468(_0x31f0f1);},'cMIQS':function(_0xd42f6d,_0x234b4f){return _0xd42f6d instanceof _0x234b4f;},'nLFHl':_0x53e19b(0x1ec),'AxMQp':'provided_token'};if(!_0x1a4af9){const _0x12c0eb=await _0x56d189['sItpb'](getToken);if(_0x12c0eb){const _0x5dc37b=await _0x56d189['SRrKo'](getCurrentUser,_0x12c0eb);if(_0x5dc37b[_0x53e19b(0x1d3)])return console[_0x53e19b(0x200)]('✓\x20Already\x20authenticated\x20to\x20'+_0x5dc37b['user'][_0x53e19b(0x1eb)]),{'token':_0x12c0eb,'method':_0x53e19b(0x217)};}try{_0x1a4af9=await _0x56d189['sItpb'](runDeviceAuthFlow);}catch(_0x3dcdc1){throw new Error('Authentication\x20failed:\x20'+(_0x56d189['cMIQS'](_0x3dcdc1,Error)?_0x3dcdc1['message']:_0x3dcdc1));}const _0x49f52a=await getCurrentUser(_0x1a4af9);if(!_0x49f52a[_0x53e19b(0x1d3)])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x49f52a[_0x53e19b(0x22f)]);return console[_0x53e19b(0x200)](_0x53e19b(0x1fc)+_0x49f52a['user'][_0x53e19b(0x1eb)]),{'token':_0x1a4af9,'method':'device_auth'};}console['log'](_0x53e19b(0x1f3));const _0x3a53bd=await getCurrentUser(_0x1a4af9);if(!_0x3a53bd[_0x53e19b(0x1d3)]){if(_0x3a53bd[_0x53e19b(0x1de)])throw new Error(_0x53e19b(0x229)+_0x3a53bd['error']+_0x53e19b(0x1ef));else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x3a53bd[_0x53e19b(0x22f)]+_0x53e19b(0x1dc));}return console[_0x53e19b(0x200)]('✓\x20Authenticated\x20to\x20'+_0x3a53bd[_0x53e19b(0x219)][_0x53e19b(0x1eb)]),await storeToken(_0x1a4af9),console[_0x53e19b(0x200)](process[_0x53e19b(0x224)]['GITHUB_ENV']?_0x53e19b(0x230):_0x56d189['nLFHl']),{'token':_0x1a4af9,'method':_0x56d189['AxMQp']};}export async function ensureRangerDir(){const _0x4d7800=_0x3d9dda,_0x5cacee={'MwucN':function(_0x316c6a){return _0x316c6a();},'Kfqei':function(_0x268383,_0x34f768,_0x1b30ff){return _0x268383(_0x34f768,_0x1b30ff);},'YMnDo':function(_0x3c2f01){return _0x3c2f01();},'hOKWB':function(_0x34e54c,_0x37328a){return _0x34e54c(_0x37328a);},'aXRap':_0x4d7800(0x1d1),'hnUbu':'✓\x20.ranger/\x20directory\x20already\x20exists'},_0xec316a=_0x5cacee['MwucN'](findGitRoot),_0x46405c=_0xec316a?_0x5cacee[_0x4d7800(0x1cf)](join,_0xec316a,'.ranger'):_0x5cacee[_0x4d7800(0x1d2)](getRangerDir);return!_0x5cacee[_0x4d7800(0x21e)](existsSync,_0x46405c)?(await mkdir(_0x46405c,{'recursive':!![]}),console['log'](_0x5cacee[_0x4d7800(0x1e4)]),{'path':_0x46405c,'installed':!![]}):(console[_0x4d7800(0x200)](_0x5cacee['hnUbu']),{'path':_0x46405c,'installed':![]});}export async function ensureChromium(){const _0x45684f=_0x3d9dda,_0x65de28={'puude':function(_0x3c13b4,_0x16b3f4){return _0x3c13b4(_0x16b3f4);},'dGnPB':_0x45684f(0x20b),'RXXKT':'confirm','gkuxB':_0x45684f(0x210),'XzQWR':_0x45684f(0x1d5),'BEmVx':_0x45684f(0x1e6),'Uytdj':_0x45684f(0x1f2),'fridO':function(_0x25d4d7,_0x25fab){return _0x25d4d7 instanceof _0x25fab;},'hNBUM':_0x45684f(0x1ff),'AooJL':_0x45684f(0x1da)};let _0x3d779a=![];try{const _0x13369d=chromium[_0x45684f(0x22e)]();_0x3d779a=_0x65de28['puude'](existsSync,_0x13369d);}catch{_0x3d779a=![];}if(_0x3d779a)return console['log'](_0x65de28['dGnPB']),![];const _0x35e6aa=getPlaywrightVersion(),_0xeb9c63=_0x35e6aa??PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION,_0x79644f=!_0x35e6aa,_0x5f00da=process[_0x45684f(0x1fd)][_0x45684f(0x22b)]&&process['stdout'][_0x45684f(0x22b)];let _0x5b0be8=!![];if(_0x5f00da){const {install:_0x5f099f}=await _0x400808[_0x45684f(0x1e5)]([{'type':_0x65de28[_0x45684f(0x1e7)],'name':_0x65de28[_0x45684f(0x203)],'message':_0x79644f?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0xeb9c63+_0x45684f(0x220):'The\x20required\x20version\x20('+_0xeb9c63+_0x45684f(0x1f5),'default':!![]}]);_0x5b0be8=_0x5f099f;}else console[_0x45684f(0x200)](_0x45684f(0x1d9)+_0xeb9c63+(_0x79644f?_0x65de28['XzQWR']:'')+'...');if(_0x5b0be8){console['log'](_0x65de28[_0x45684f(0x1e3)]);try{await _0x65de28['puude'](installChromiumBinary,_0xeb9c63),console[_0x45684f(0x200)](_0x65de28[_0x45684f(0x1e2)]);}catch(_0x148a5a){console[_0x45684f(0x22f)]('\x0a❌\x20Failed\x20to\x20install\x20Chromium:',_0x65de28['fridO'](_0x148a5a,Error)?_0x148a5a['message']:_0x148a5a),console[_0x45684f(0x200)](_0x65de28['hNBUM']),console['log']('\x20\x20npx\x20playwright@'+_0xeb9c63+'\x20install\x20chromium');}}else console['log'](_0x45684f(0x1ea)),console['log'](_0x65de28['AooJL']),console['log']('\x20\x20npx\x20playwright@'+_0xeb9c63+_0x45684f(0x22d));return!![];}function _0x3b59(_0x363af8,_0x3c1bb2){_0x363af8=_0x363af8-0x1cd;const _0x1f3815=_0x1f38();let _0x3b5968=_0x1f3815[_0x363af8];return _0x3b5968;}export async function writeRangerGitignore(_0x5a9d68){const _0x487af8=_0x3d9dda,_0x1feb2d={'PbfiZ':'.gitignore','afqux':_0x487af8(0x1f4)},_0x512055=join(_0x5a9d68,_0x1feb2d['PbfiZ']),_0x4e590e=_0x487af8(0x216);await writeFile(_0x512055,_0x4e590e),console['log'](_0x1feb2d[_0x487af8(0x202)]);}function printProfileSetupLaterInstructions(){const _0x590af3=_0x3d9dda,_0x13a7fe={'ZlobR':_0x590af3(0x21c),'ErkXR':function(_0x3956f6,_0x460e2d){return _0x3956f6(_0x460e2d);},'wroqB':'Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a'};console['log'](_0x13a7fe[_0x590af3(0x1f8)]),console['log']('\x20\x20'+_0x13a7fe['ErkXR'](bold,_0x590af3(0x226))),console['log'](_0x13a7fe[_0x590af3(0x22a)]);}async function ensureLocalEnv(_0x2bae1b,_0x17f803){const _0x35c282=_0x3d9dda,_0x110714={'eYyld':function(_0x29df25,_0xbd0138,_0xdd594b){return _0x29df25(_0xbd0138,_0xdd594b);},'xAFQP':_0x35c282(0x205),'ihkwl':_0x35c282(0x1fb),'vXgZP':_0x35c282(0x21d),'PZsxu':_0x35c282(0x211),'OnRxQ':'wantsProfile','EGgmg':function(_0x269e33){return _0x269e33();}};if(!findGitRoot())return console[_0x35c282(0x200)]('⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.'),{'ready':![],'skipped':!![]};if(_0x110714['eYyld'](findExistingEnv,_0x110714[_0x35c282(0x20c)],{'locations':[_0x35c282(0x205)]}))return console['log'](_0x110714['ihkwl']),{'ready':!![],'skipped':![]};const _0x4a9afe=process[_0x35c282(0x1fd)]['isTTY']&&process['stdout'][_0x35c282(0x22b)];if(_0x4a9afe&&!_0x2bae1b?.['url']){console['log'](_0x110714['vXgZP']),console['log']('to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind'),console['log'](_0x110714[_0x35c282(0x228)]),console[_0x35c282(0x200)]('use\x20until\x20the\x20session\x20expires.\x0a'),console[_0x35c282(0x200)](_0x35c282(0x1f9));const {wantsProfile:_0x2990d8}=await _0x400808[_0x35c282(0x1e5)]([{'type':'confirm','name':_0x110714['OnRxQ'],'message':_0x35c282(0x1ee),'default':!![]}]);if(!_0x2990d8)return _0x110714['EGgmg'](printProfileSetupLaterInstructions),{'ready':![],'skipped':!![]};}try{return await addEnv(_0x35c282(0x205),{'url':_0x2bae1b?.[_0x35c282(0x1f1)],'force':_0x2bae1b?.[_0x35c282(0x1d7)],'allowInsecureLocalhost':_0x2bae1b?.[_0x35c282(0x21b)]},_0x17f803),{'ready':!![],'skipped':![]};}catch(_0x56cdac){return console[_0x35c282(0x22f)]('\x0a❌\x20Profile\x20setup\x20failed:',_0x56cdac instanceof Error?_0x56cdac[_0x35c282(0x209)]:_0x56cdac),_0x110714['EGgmg'](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}export async function start(_0x4720b2,_0x23c3e0,_0x1c3264){const _0x269b89=_0x3d9dda,_0x5c519b={'gaCif':_0x269b89(0x215),'mqlZx':_0x269b89(0x219),'EjeAS':function(_0x37abd5){return _0x37abd5();},'QwoKh':'git_check','qSOLo':'No\x20git\x20repository\x20found','GvkZW':function(_0xe985c9){return _0xe985c9();},'qcXWk':'auth','BwGSL':function(_0x3c1962,_0x31b7bc){return _0x3c1962(_0x31b7bc);},'kkLky':_0x269b89(0x1df),'IoXAR':function(_0x16504d,_0x261ac6){return _0x16504d(_0x261ac6);},'XHNWu':_0x269b89(0x207),'oFCoo':_0x269b89(0x233),'wKrFO':function(_0x5a6533,_0x45fdc7,_0x468a43){return _0x5a6533(_0x45fdc7,_0x468a43);},'cxxxt':_0x269b89(0x20f),'tXgMp':function(_0x35d4fc,_0x42feb4){return _0x35d4fc instanceof _0x42feb4;},'nhIZL':_0x269b89(0x1d0),'UVsDn':_0x269b89(0x222),'wdWfY':_0x269b89(0x20d),'QsQSN':function(_0x1d0825,_0xebd509){return _0x1d0825+_0xebd509;}};console[_0x269b89(0x200)]('\x0a🚀\x20Ranger\x20Setup\x0a');const _0x48c4dd=process['stdin'][_0x269b89(0x22b)]&&process['stdout'][_0x269b89(0x22b)];!_0x48c4dd&&!_0x23c3e0?.[_0x269b89(0x1ed)]&&(console['log'](_0x5c519b['gaCif']),_0x23c3e0={..._0x23c3e0,'scope':_0x5c519b['mqlZx']});_0x1c3264?.['trackPhaseStart']('git_check');if(!_0x5c519b['EjeAS'](findGitRoot)){await _0x1c3264?.[_0x269b89(0x1f0)](_0x5c519b[_0x269b89(0x201)],new Error(_0x5c519b['qSOLo']));throw new Error('No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.');}_0x1c3264?.['trackPhaseEnd'](_0x5c519b[_0x269b89(0x201)]);const _0x1f3a51=!existsSync(getRangerDir()),{path:_0x40fcc7}=await _0x5c519b['GvkZW'](ensureRangerDir);_0x1c3264?.[_0x269b89(0x1dd)](_0x5c519b[_0x269b89(0x21f)]);const _0x4e0910=await _0x5c519b['BwGSL'](authenticate,_0x4720b2);_0x1c3264?.[_0x269b89(0x214)]('auth',{'isFirstRun':_0x1f3a51,'method':_0x4e0910[_0x269b89(0x1cd)]}),_0x1c3264?.[_0x269b89(0x1dd)](_0x269b89(0x1df));_0x23c3e0?.['skipChromium']?console['log'](_0x269b89(0x208)):await ensureChromium();_0x1c3264?.['trackPhaseEnd'](_0x5c519b['kkLky'],{'isFirstRun':_0x1f3a51,'skipped':!!_0x23c3e0?.['skipChromium']}),await _0x5c519b['IoXAR'](writeRangerGitignore,_0x40fcc7),console[_0x269b89(0x200)]('\x0a✅\x20Ranger\x20setup\x20complete!\x0a');const _0x442979=_0x23c3e0?.[_0x269b89(0x1ed)],_0x19f568=_0x23c3e0?.['opencode']??![];let _0x23a527=null;_0x19f568?(_0x1c3264?.['trackPhaseStart'](_0x5c519b['XHNWu']),_0x23a527=await _0x5c519b['IoXAR'](ensureOpencodePluginConfig,_0x442979),_0x1c3264?.['trackPhaseEnd']('plugin',{'isFirstRun':_0x1f3a51,'opencode':!![]})):(_0x1c3264?.[_0x269b89(0x1dd)](_0x5c519b['XHNWu']),await _0x5c519b[_0x269b89(0x22c)](ensureClaudePlugin,_0x442979),_0x1c3264?.['trackPhaseEnd'](_0x269b89(0x207),{'isFirstRun':_0x1f3a51}));if(_0x19f568&&_0x23a527){_0x1c3264?.[_0x269b89(0x1dd)](_0x5c519b['oFCoo']);try{await _0x5c519b['wKrFO'](installSkill,'ranger',{'level':_0x23a527[_0x269b89(0x1ed)],'cliVersion':_0x5c519b['EjeAS'](getCurrentVersion),'platform':_0x269b89(0x231)}),_0x1c3264?.['trackPhaseEnd'](_0x5c519b[_0x269b89(0x234)],{'isFirstRun':_0x1f3a51,'opencode':!![]});}catch(_0x310d62){console[_0x269b89(0x1e8)](_0x5c519b['cxxxt'],_0x5c519b[_0x269b89(0x1f6)](_0x310d62,Error)?_0x310d62['message']:_0x310d62),_0x1c3264?.['trackPhaseEnd']('skills',{'isFirstRun':_0x1f3a51,'opencode':!![],'failed':!![]});}}else _0x1c3264?.[_0x269b89(0x1dd)](_0x5c519b[_0x269b89(0x234)]),await _0x5c519b['BwGSL'](ensureClaudeSkills,_0x442979),_0x1c3264?.['trackPhaseEnd'](_0x5c519b['oFCoo'],{'isFirstRun':_0x1f3a51});if(!_0x48c4dd&&!_0x23c3e0?.['url'])console['log']('Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:'),console[_0x269b89(0x200)]('\x20\x20'+bold(_0x269b89(0x226))+'\x0a');else{_0x1c3264?.['trackPhaseStart']('profile');const _0x562150=await ensureLocalEnv({'url':_0x23c3e0?.[_0x269b89(0x1f1)],'force':_0x23c3e0?.['force'],'allowInsecureLocalhost':_0x23c3e0?.[_0x269b89(0x21b)]},_0x1c3264);_0x1c3264?.[_0x269b89(0x214)](_0x5c519b['nhIZL'],{'isFirstRun':_0x1f3a51,'profileReady':_0x562150['ready'],'userSkipped':_0x562150[_0x269b89(0x1d4)]}),_0x562150['ready']&&console[_0x269b89(0x200)]('\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.');}if(_0x19f568)console[_0x269b89(0x200)](_0x269b89(0x206)),console['log'](_0x269b89(0x225)),console[_0x269b89(0x200)]('with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'),console['log'](_0x5c519b['UVsDn']);else{const _0x191feb=bold(_0x5c519b[_0x269b89(0x232)]);console['log'](_0x5c519b[_0x269b89(0x1fa)](_0x5c519b[_0x269b89(0x1fa)](_0x269b89(0x1d8)+_0x191feb+_0x269b89(0x1d6),_0x269b89(0x212))+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.'));}}
@@ -1 +1 @@
1
- const _0x457348=_0xc410;(function(_0x1d4ca5,_0x4429fb){const _0x47ccbb=_0xc410,_0x4de5df=_0x1d4ca5();while(!![]){try{const _0x4ff74c=-parseInt(_0x47ccbb(0xa2))/0x1+parseInt(_0x47ccbb(0xd4))/0x2*(-parseInt(_0x47ccbb(0x101))/0x3)+-parseInt(_0x47ccbb(0xdc))/0x4+parseInt(_0x47ccbb(0xb5))/0x5+parseInt(_0x47ccbb(0xa3))/0x6*(parseInt(_0x47ccbb(0xd3))/0x7)+-parseInt(_0x47ccbb(0xe4))/0x8+parseInt(_0x47ccbb(0xb2))/0x9;if(_0x4ff74c===_0x4429fb)break;else _0x4de5df['push'](_0x4de5df['shift']());}catch(_0x10b33e){_0x4de5df['push'](_0x4de5df['shift']());}}}(_0xc190,0xc7850));import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';import{getCurrentVersion,getLatestVersion}from'./utils/version.js';import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';import{getRangerDir}from'./utils/rangerRoot.js';import{getEnvDir}from'./utils/settings.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x2381f8=>_0x457348(0xf0)+_0x2381f8+'\x1b[0m',link=(_0x16db8e,_0x243898)=>_0x457348(0xcd)+_0x16db8e+'\x07'+(_0x243898||_0x16db8e)+_0x457348(0xf2);async function getOpencodePluginStatus(){const _0x42a3e8=_0x457348,_0x5b9971={'lJGkw':function(_0x3db55b,_0x1eface){return _0x3db55b(_0x1eface);},'czKHe':'not_installed','ODyVS':_0x42a3e8(0xb7),'qbhnh':_0x42a3e8(0x9b),'hWkHz':_0x42a3e8(0xe5),'QSNAD':_0x42a3e8(0xbb),'RHGIE':function(_0x579930,_0x2fe9f9){return _0x579930>_0x2fe9f9;},'zICle':'not_configured','fwBZt':_0x42a3e8(0xc0),'XdMOm':'debug','PMqYT':'ignore','RnzRE':'data'};return new Promise(_0x5eace3=>{const _0x520a6c=_0x42a3e8,_0x185101=spawn(_0x5b9971['fwBZt'],[_0x5b9971['XdMOm'],_0x520a6c(0xca)],{'stdio':[_0x5b9971[_0x520a6c(0xcb)],'pipe','pipe']});let _0x189581='';_0x185101['stdout']?.['on']('data',_0x1b8084=>{const _0x48890c=_0x520a6c;_0x189581+=_0x1b8084[_0x48890c(0xbe)]();}),_0x185101[_0x520a6c(0xe7)]?.['on'](_0x5b9971[_0x520a6c(0xec)],_0x5948de=>{const _0x33284a=_0x520a6c;_0x189581+=_0x5948de[_0x33284a(0xbe)]();}),_0x185101['on'](_0x520a6c(0xad),()=>{const _0x5c220d=_0x520a6c;_0x5b9971['lJGkw'](_0x5eace3,{'status':_0x5b9971[_0x5c220d(0xa1)]});}),_0x185101['on']('close',_0x1c58ec=>{const _0x2b36e1=_0x520a6c,_0x586d7d={'nrVWE':function(_0x26b338,_0x2e16d4){return _0x26b338!==_0x2e16d4;},'RCHTk':_0x5b9971[_0x2b36e1(0xed)],'SSvPP':_0x5b9971[_0x2b36e1(0xa7)],'PbSzd':_0x5b9971[_0x2b36e1(0xee)]};if(_0x1c58ec!==0x0){_0x5b9971['lJGkw'](_0x5eace3,{'status':_0x5b9971[_0x2b36e1(0xa1)]});return;}const _0x517368=_0x189581[_0x2b36e1(0x100)]();let _0x4e2b33=null;if(_0x517368)try{_0x4e2b33=JSON['parse'](_0x517368);}catch{const _0x2c1987=_0x517368['match'](/\{[\s\S]*\}$/);if(_0x2c1987)try{_0x4e2b33=JSON[_0x2b36e1(0x9d)](_0x2c1987[0x0]);}catch{_0x4e2b33=null;}}const _0x422da7=Array[_0x2b36e1(0xda)](_0x4e2b33?.['plugin'])?_0x4e2b33?.[_0x2b36e1(0xbf)]:[],_0x458ccb=_0x422da7[_0x2b36e1(0xf8)](_0xdd6e48=>{const _0x4b1d1e=_0x2b36e1;if(_0x586d7d[_0x4b1d1e(0xfa)](typeof _0xdd6e48,_0x586d7d['RCHTk']))return![];return _0xdd6e48[_0x4b1d1e(0xf3)](_0x586d7d['SSvPP'])||_0xdd6e48[_0x4b1d1e(0xf3)](_0x586d7d['PbSzd']);});if(_0x458ccb){_0x5b9971['lJGkw'](_0x5eace3,{'status':_0x5b9971[_0x2b36e1(0xa5)],'details':_0x5b9971[_0x2b36e1(0xbc)](_0x422da7['length'],0x0)?_0x422da7['length']+_0x2b36e1(0xe3):undefined});return;}if(_0x422da7[_0x2b36e1(0xb1)]>0x0){_0x5eace3({'status':_0x5b9971['zICle'],'details':_0x422da7[_0x2b36e1(0xb1)]+_0x2b36e1(0xe3)});return;}_0x5b9971['lJGkw'](_0x5eace3,{'status':_0x5b9971[_0x2b36e1(0xcc)]});});});}async function getSkillsFromDir(_0x4caf40,_0x29b4da){const _0xaf2454=_0x457348,_0x36c812={'aMJzo':_0xaf2454(0xe0),'ZVsGn':function(_0x59ae78,_0x3d9b1c){return _0x59ae78(_0x3d9b1c);},'jtIuN':'utf-8'};if(!existsSync(_0x4caf40))return[];const _0x4f69df=[];try{const _0x3b6a5a=await readdir(_0x4caf40,{'withFileTypes':!![]});for(const _0x24f765 of _0x3b6a5a){if(_0x24f765[_0xaf2454(0xef)]()){const _0x465115=join(_0x4caf40,_0x24f765['name'],_0x36c812['aMJzo']);if(_0x36c812['ZVsGn'](existsSync,_0x465115)){let _0x5dc77c=_0x24f765[_0xaf2454(0xcf)];try{const _0xafd3f3=await readFile(_0x465115,_0x36c812['jtIuN']),_0x43f885=_0xafd3f3['match'](/name:\s*(.+)/);_0x43f885&&(_0x5dc77c=_0x43f885[0x1]['trim']());}catch{}_0x4f69df[_0xaf2454(0xd5)]({'name':_0x24f765['name'],'displayName':_0x5dc77c,'path':_0x465115,'level':_0x29b4da});}}}}catch{return[];}return _0x4f69df;}async function getInstalledSkills(){const _0x46ac68=_0x457348,_0x5713b3={'OTOEQ':function(_0x13b5ce,_0x2efbc9,_0x5ca8d9){return _0x13b5ce(_0x2efbc9,_0x5ca8d9);},'rtWgF':function(_0x356d02){return _0x356d02();},'GVOHo':_0x46ac68(0xa4),'ehKGj':function(_0x53a1fc,_0x538d2,_0x4e93e5){return _0x53a1fc(_0x538d2,_0x4e93e5);},'ZohnB':'user'},[_0x236cc8,_0x3b29f2]=await Promise[_0x46ac68(0xa9)]([_0x5713b3['OTOEQ'](getSkillsFromDir,_0x5713b3[_0x46ac68(0xb0)](getProjectSkillsDir),_0x5713b3[_0x46ac68(0xc4)]),_0x5713b3[_0x46ac68(0xeb)](getSkillsFromDir,_0x5713b3['rtWgF'](getUserSkillsDir),_0x5713b3['ZohnB'])]);return{'project':_0x236cc8,'user':_0x3b29f2};}function _0xc410(_0x3bdd3e,_0x3f91e1){_0x3bdd3e=_0x3bdd3e-0x99;const _0xc1909d=_0xc190();let _0xc4100b=_0xc1909d[_0x3bdd3e];return _0xc4100b;}function _0xc190(){const _0x5382a7=['toString','plugin','opencode','\x20\x20User-level:','Organization:\x20','KIVoZ','GVOHo','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','encrypted','enabled','map','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','config','PMqYT','zICle','\x1b]8;;file://','AcSbS','name','scope',':\x20configured','plaintext','350vFmmHX','28452iSOLnk','push','SeQkG','\x0a📊\x20Ranger\x20Status\x0a','SXtXq','pHKRl','isArray','soUab','6254040exwhov','LGDzD','UYyVj','log','SKILL.md','filter','xcIcD','\x20plugin(s)\x20configured','6875184GFJYDz','opencode-plugin','disabled','stderr','ranger@trailhead','displayName','No\x20profiles\x20configured','ehKGj','RnzRE','ODyVS','hWkHz','isDirectory','\x1b[1m','\x20\x20\x20\x20','\x1b]8;;\x07','includes','join','PRhiR','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','details','some','version','nrVWE','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20','\x0a---\x20Profiles\x20---','path','settings.json','cwd','trim','75qpzUDp','PLAsH','dfVmS','\x20\x20\x20\x20Settings:\x20','\x20\x20Run:\x20ranger\x20setup\x20--opencode','DEBUG','API\x20URL:\x20','@ranger-testing/opencode-plugin','(not\x20found)','parse','vFeEJ','kolWE','Root:\x20','czKHe','773735eNTdka','116262tXtBYl','project','QSNAD','status','qbhnh','brbek','all','\x0a---\x20Skills\x20---','API\x20Environment:\x20','unknown','error','hasEncryptedAuth','gYnwE','rtWgF','length','18274554zmzxoc','KArea','none','6850845LIksrt','\x20\x20Not\x20configured','string','Version:\x20','YKvjs','auth.json.enc','configured','RHGIE','\x0a\x20\x20No\x20active\x20profile\x20set'];_0xc190=function(){return _0x5382a7;};return _0xc190();}async function getEnvironments(){const _0x468fa1=_0x457348,_0x46bf5c={'ukZge':function(_0x44ab50,_0x15eb84,_0x98715b){return _0x44ab50(_0x15eb84,_0x98715b);},'soUab':_0x468fa1(0x9c),'SXtXq':function(_0x5694a5,_0x22505d){return _0x5694a5(_0x22505d);},'StqBT':function(_0x4b3f1a,_0x471f90){return _0x4b3f1a===_0x471f90;},'CEjfd':function(_0x5dd109){return _0x5dd109();}},{envNames:_0x5cbaa9,activeEnv:_0x4aee70}=await _0x46bf5c['CEjfd'](getEnvNames),_0x4ff768=getRangerDir();if(!existsSync(_0x4ff768))return{'envs':[],'activeEnv':null};const _0x3cb82d=_0x5cbaa9[_0x468fa1(0xc8)](_0x3d2de2=>{const _0x14141d=_0x468fa1,_0x48784f=getEnvDir(_0x3d2de2),_0x3ff155=join(_0x48784f,_0x14141d(0xfe)),_0x44b3a7=_0x46bf5c['ukZge'](join,_0x48784f,'auth.json'),_0xec6569=join(_0x48784f,_0x14141d(0xba));return{'name':_0x3d2de2,'settingsPath':existsSync(_0x3ff155)?_0x3ff155:_0x46bf5c[_0x14141d(0xdb)],'hasPlaintextAuth':_0x46bf5c[_0x14141d(0xd8)](existsSync,_0x44b3a7),'hasEncryptedAuth':existsSync(_0xec6569),'isActive':_0x46bf5c['StqBT'](_0x3d2de2,_0x4aee70)};});return{'envs':_0x3cb82d,'activeEnv':_0x4aee70};}export async function status(){const _0x2be3f8=_0x457348,_0x31a792={'PLAsH':_0x2be3f8(0xd7),'kolWE':function(_0x2fc5bd){return _0x2fc5bd();},'YKvjs':function(_0xe6ebec,_0x1b0bbe){return _0xe6ebec(_0x1b0bbe);},'pHKRl':function(_0x178bf5,_0x199dc1,_0x34a4ac){return _0x178bf5(_0x199dc1,_0x34a4ac);},'PRhiR':function(_0x52c064,_0x24ee1f){return _0x52c064(_0x24ee1f);},'VLjXr':function(_0x17c763,_0x10f157,_0x1c6891){return _0x17c763(_0x10f157,_0x1c6891);},'brbek':function(_0x4f70ea){return _0x4f70ea();},'gYnwE':function(_0x1e48a5,_0x264fdc){return _0x1e48a5!==_0x264fdc;},'QBpeg':function(_0x2584bb){return _0x2584bb();},'QobLO':function(_0x4fa612,_0x34933d){return _0x4fa612===_0x34933d;},'UYyVj':'configured','KArea':_0x2be3f8(0xb6),'LwMvq':'\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','KIVoZ':_0x2be3f8(0xac),'cKkoj':'\x20\x20Not\x20installed','Smnbe':'\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','qFNui':function(_0x53ff67){return _0x53ff67();},'SeQkG':function(_0x5e1b8f,_0x12d430){return _0x5e1b8f===_0x12d430;},'yalfZ':'\x20\x20Project-level:','dfVmS':function(_0x157b93,_0x460d32){return _0x157b93(_0x460d32);},'xcIcD':function(_0x189bc0,_0x4b7eb3){return _0x189bc0>_0x4b7eb3;},'LGDzD':_0x2be3f8(0xc1),'wXwqY':function(_0x4ecee5,_0x3afe09){return _0x4ecee5(_0x3afe09);},'vFeEJ':function(_0x3799b5){return _0x3799b5();},'ZRJYB':function(_0x5e34da,_0x105ac4){return _0x5e34da===_0x105ac4;},'bhxtp':_0x2be3f8(0xea),'skZMX':'\x20(active)','AcSbS':_0x2be3f8(0xd2)};console[_0x2be3f8(0xdf)](_0x31a792[_0x2be3f8(0x102)]);const _0x8d0853=process[_0x2be3f8(0xff)](),_0x1ceb43=_0x31a792[_0x2be3f8(0x9f)](getRangerDir);if(!_0x31a792[_0x2be3f8(0xb9)](existsSync,_0x1ceb43)){console[_0x2be3f8(0xdf)](_0x2be3f8(0xa0)+_0x31a792[_0x2be3f8(0xd9)](link,_0x8d0853,bold(_0x31a792[_0x2be3f8(0xf5)](basename,_0x8d0853)))),console[_0x2be3f8(0xdf)](_0x2be3f8(0xf6)),console['log'](_0x2be3f8(0xc5));return;}console['log']('Root:\x20'+_0x31a792['VLjXr'](link,_0x8d0853,bold(basename(_0x8d0853))));const _0x4dab0f=_0x31a792[_0x2be3f8(0xa8)](getCurrentVersion),_0x2ac532=getLatestVersion();if(_0x2ac532[_0x2be3f8(0xf9)]&&_0x31a792[_0x2be3f8(0xaf)](_0x2ac532['version'],_0x4dab0f))console[_0x2be3f8(0xdf)](_0x2be3f8(0xb8)+_0x4dab0f+'\x20(latest:\x20'+_0x2ac532['version']+')'),console['log']('\x20\x20Run:\x20ranger\x20update');else _0x2ac532['version']?console['log'](_0x2be3f8(0xb8)+_0x4dab0f+'\x20(up\x20to\x20date)'):console[_0x2be3f8(0xdf)]('Version:\x20'+_0x4dab0f);const _0x41cb90=await _0x31a792['kolWE'](getToken);if(_0x41cb90){const _0x45485b=await _0x31a792['YKvjs'](getCurrentUser,_0x41cb90);_0x45485b['success']?console['log'](_0x2be3f8(0xc2)+bold(_0x45485b['user']['organizationName'])):(console[_0x2be3f8(0xdf)]('API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired'),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]'));}else console['log']('API\x20Token:\x20✗\x20Not\x20found'),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]');process['env'][_0x2be3f8(0x99)]&&(console['log'](_0x2be3f8(0xab)+getCurrentEnvironment()),console['log'](_0x2be3f8(0x9a)+_0x31a792['QBpeg'](getApiBaseUrl)));console['log']('\x0a---\x20OpenCode\x20Plugin\x20---');const _0x8e0ed6=await getOpencodePluginStatus();if(_0x31a792['QobLO'](_0x8e0ed6[_0x2be3f8(0xa6)],_0x31a792[_0x2be3f8(0xde)]))console[_0x2be3f8(0xdf)]('\x20\x20'+bold('@ranger-testing/opencode-plugin')+_0x2be3f8(0xd1)),_0x8e0ed6[_0x2be3f8(0xf7)]&&console['log']('\x20\x20'+_0x8e0ed6[_0x2be3f8(0xf7)]);else _0x8e0ed6['status']==='not_configured'?(console['log'](_0x31a792[_0x2be3f8(0xb3)]),_0x8e0ed6[_0x2be3f8(0xf7)]&&console[_0x2be3f8(0xdf)]('\x20\x20'+_0x8e0ed6['details']),console['log'](_0x2be3f8(0x105))):console[_0x2be3f8(0xdf)](_0x31a792['LwMvq']);console['log']('\x0a---\x20Claude\x20Code\x20Plugin\x20---');const _0x537f11=await getPluginInfo(_0x2be3f8(0xe8));if(_0x537f11){const _0x416ac2=_0x537f11[_0x2be3f8(0xd0)]||_0x31a792[_0x2be3f8(0xc3)],_0xf87f5e=_0x537f11[_0x2be3f8(0xc7)]?_0x2be3f8(0xc7):_0x2be3f8(0xe6);console[_0x2be3f8(0xdf)]('\x20\x20'+_0x31a792['YKvjs'](bold,_0x2be3f8(0xe8))+':\x20installed\x20('+_0x416ac2+',\x20'+_0xf87f5e+')');}else console['log'](_0x31a792['cKkoj']),console[_0x2be3f8(0xdf)](_0x31a792['Smnbe']);console['log'](_0x2be3f8(0xaa));const {project:_0x38bef0,user:_0x1bb20d}=await _0x31a792['qFNui'](getInstalledSkills),_0x17cf4e=_0x38bef0[_0x2be3f8(0xe1)](_0x2b7d43=>RANGER_MANAGED_SKILLS[_0x2be3f8(0xf3)](_0x2b7d43['name'])),_0x461ec3=_0x1bb20d[_0x2be3f8(0xe1)](_0x153000=>RANGER_MANAGED_SKILLS[_0x2be3f8(0xf3)](_0x153000[_0x2be3f8(0xcf)])),_0x16853d=_0x17cf4e['length']+_0x461ec3[_0x2be3f8(0xb1)];if(_0x31a792[_0x2be3f8(0xd6)](_0x16853d,0x0))console[_0x2be3f8(0xdf)]('No\x20skills\x20installed'),console[_0x2be3f8(0xdf)]('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x17cf4e['length']>0x0){console['log'](_0x31a792['yalfZ']);for(const _0x252f8b of _0x17cf4e){console[_0x2be3f8(0xdf)]('\x20\x20\x20\x20'+bold(_0x252f8b['displayName'])+':\x20'+_0x31a792['VLjXr'](link,_0x252f8b['path'],_0x31a792[_0x2be3f8(0x103)](basename,_0x252f8b[_0x2be3f8(0xfd)])));}}if(_0x31a792[_0x2be3f8(0xe2)](_0x461ec3['length'],0x0)){console['log'](_0x31a792[_0x2be3f8(0xdd)]);for(const _0x2fe667 of _0x461ec3){console['log'](_0x2be3f8(0xf1)+_0x31a792['PRhiR'](bold,_0x2fe667[_0x2be3f8(0xe9)])+':\x20'+link(_0x2fe667['path'],_0x31a792['wXwqY'](basename,_0x2fe667['path'])));}}}console['log'](_0x2be3f8(0xfc));const {envs:_0x356984,activeEnv:_0x1e771f}=await _0x31a792[_0x2be3f8(0x9e)](getEnvironments);if(_0x31a792['ZRJYB'](_0x356984[_0x2be3f8(0xb1)],0x0))console['log'](_0x31a792['bhxtp']),console['log'](_0x2be3f8(0xc9));else{for(const _0x57b41c of _0x356984){const _0x4104a8=_0x57b41c['isActive']?_0x31a792['skZMX']:'',_0x50cb5a=_0x57b41c[_0x2be3f8(0xae)]?_0x2be3f8(0xc6):_0x57b41c['hasPlaintextAuth']?_0x31a792[_0x2be3f8(0xce)]:_0x2be3f8(0xb4);console['log']('\x20\x20'+_0x31a792['PRhiR'](bold,_0x57b41c[_0x2be3f8(0xcf)])+_0x4104a8),console['log']('\x20\x20\x20\x20Auth:\x20'+_0x50cb5a),_0x31a792['gYnwE'](_0x57b41c['settingsPath'],_0x2be3f8(0x9c))&&console[_0x2be3f8(0xdf)](_0x2be3f8(0x104)+link(_0x57b41c['settingsPath'],basename(_0x57b41c['settingsPath'])));}!_0x1e771f&&(console['log'](_0x2be3f8(0xbd)),console['log'](_0x2be3f8(0xfb)+_0x356984[_0x2be3f8(0xc8)](_0x42db2b=>_0x42db2b[_0x2be3f8(0xcf)])[_0x2be3f8(0xf4)](',\x20')+')'));}console[_0x2be3f8(0xdf)]('');}
1
+ const _0x57bda0=_0x44ff;(function(_0x5a78ba,_0x5ba2e4){const _0x1e56a9=_0x44ff,_0x38ebda=_0x5a78ba();while(!![]){try{const _0x2d7106=parseInt(_0x1e56a9(0xd3))/0x1*(-parseInt(_0x1e56a9(0xbc))/0x2)+-parseInt(_0x1e56a9(0xce))/0x3+-parseInt(_0x1e56a9(0xe5))/0x4+parseInt(_0x1e56a9(0xc1))/0x5*(parseInt(_0x1e56a9(0xd2))/0x6)+parseInt(_0x1e56a9(0xf9))/0x7+-parseInt(_0x1e56a9(0xf1))/0x8+-parseInt(_0x1e56a9(0xee))/0x9*(-parseInt(_0x1e56a9(0xbd))/0xa);if(_0x2d7106===_0x5ba2e4)break;else _0x38ebda['push'](_0x38ebda['shift']());}catch(_0x581960){_0x38ebda['push'](_0x38ebda['shift']());}}}(_0x1ab4,0x1e223));function _0x44ff(_0x4eeab0,_0x335711){_0x4eeab0=_0x4eeab0-0xa5;const _0x1ab43a=_0x1ab4();let _0x44ff15=_0x1ab43a[_0x4eeab0];return _0x44ff15;}import{readFile,readdir}from'fs/promises';import{join,basename}from'path';import{existsSync}from'fs';import{getToken}from'./utils/keychain.js';import{getCurrentVersion,getLatestVersion}from'./utils/version.js';import{getApiBaseUrl,getCurrentEnvironment}from'./utils/environment.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getEnvNames}from'./env.js';import{getCurrentUser}from'./utils/userApi.js';import{getRangerDir}from'./utils/rangerRoot.js';import{getEnvDir}from'./utils/settings.js';import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x592a93=>'\x1b[1m'+_0x592a93+_0x57bda0(0x100),link=(_0x26749,_0x453ecf)=>_0x57bda0(0x102)+_0x26749+'\x07'+(_0x453ecf||_0x26749)+'\x1b]8;;\x07';function _0x1ab4(){const _0x2cbe9d=['toString','organizationName','log','cpNWz','trim','isArray','769968eoFZHO','SasPL','project','SKILL.md','\x20\x20Not\x20installed','hasEncryptedAuth','auth.json','hiBsa','stdout','27CWvHUP','configured','hasPlaintextAuth','900824yOXZTy','name','parse','API\x20Environment:\x20','disabled','HIXNA','nMlvJ','HUtho','985957UCbHRh','details','jHppz','ignore','includes','join','none','\x1b[0m','scope','\x1b]8;;file://','lvkaH','length','nywBt','OLotT','gNjTw','version','status','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20','not_configured','tutEw','\x20(active)','RtOQh','debug','PPYWp','ASfTc','PKnVm','some','mTXDG','ranger@trailhead','match','map','RWhEx','sjlND','YOKDO','262xfMRWH','1166170tzqjhm','@ranger-testing/opencode-plugin','VcXha','Version:\x20','229925ICPbed','gpbeK','\x20\x20Run:\x20ranger\x20update','enabled','data','qMrWw','PKVaU','\x0a---\x20Skills\x20---','hypJU','isActive','\x20\x20Run:\x20ranger\x20setup\x20[token]','settingsPath','auth.json.enc','204654IpZFol','DEBUG','DTAff','(not\x20found)','18UhEjBE','1007QAUugh','\x20\x20\x20\x20Auth:\x20','\x0a---\x20Profiles\x20---','nSxMc',':\x20configured','\x0a📊\x20Ranger\x20Status\x0a',':\x20installed\x20(','Root:\x20','uEZcm','\x20plugin(s)\x20configured','push','kGPVQ'];_0x1ab4=function(){return _0x2cbe9d;};return _0x1ab4();}async function getOpencodePluginStatus(){const _0x2462b8=_0x57bda0,_0x219baf={'nMlvJ':function(_0x52d715,_0x1b188f){return _0x52d715!==_0x1b188f;},'WtBeI':function(_0x4ceeed,_0x585b16){return _0x4ceeed(_0x585b16);},'IKVbt':'configured','cpNWz':function(_0x1d2045,_0x25b304){return _0x1d2045>_0x25b304;},'wkZNT':function(_0x4c44a2,_0x2e869a){return _0x4c44a2>_0x2e869a;},'ASfTc':'not_configured','rjIgy':function(_0x319065,_0x53a897){return _0x319065(_0x53a897);},'hiBsa':'not_installed','HUtho':'@ranger-testing/opencode-plugin','RtOQh':function(_0x2f1378,_0x478b74,_0x119d08,_0x21a1aa){return _0x2f1378(_0x478b74,_0x119d08,_0x21a1aa);},'McYTT':'opencode','nywBt':'config','sjlND':_0x2462b8(0xfc),'PPeJL':'pipe','gpbeK':_0x2462b8(0xc5)};return new Promise(_0x394802=>{const _0x56429a=_0x2462b8,_0x232eab={'gNjTw':function(_0x56ea99,_0x286f04){return _0x219baf['rjIgy'](_0x56ea99,_0x286f04);},'gardI':_0x219baf[_0x56429a(0xec)],'tutEw':_0x219baf[_0x56429a(0xf8)]},_0x4d86d1=_0x219baf[_0x56429a(0xaf)](spawn,_0x219baf['McYTT'],[_0x56429a(0xb0),_0x219baf[_0x56429a(0xa5)]],{'stdio':[_0x219baf[_0x56429a(0xba)],_0x219baf['PPeJL'],'pipe']});let _0x2291a8='';_0x4d86d1[_0x56429a(0xed)]?.['on']('data',_0x44a21c=>{_0x2291a8+=_0x44a21c['toString']();}),_0x4d86d1['stderr']?.['on'](_0x219baf[_0x56429a(0xc2)],_0x58c24f=>{const _0x5a0152=_0x56429a;_0x2291a8+=_0x58c24f[_0x5a0152(0xdf)]();}),_0x4d86d1['on']('error',()=>{const _0x4566b1=_0x56429a;_0x232eab[_0x4566b1(0xa7)](_0x394802,{'status':_0x232eab['gardI']});}),_0x4d86d1['on']('close',_0x1aab89=>{const _0x2c210e=_0x56429a;if(_0x219baf[_0x2c210e(0xf7)](_0x1aab89,0x0)){_0x219baf['WtBeI'](_0x394802,{'status':'not_installed'});return;}const _0x57cfd0=_0x2291a8['trim']();let _0xb38849=null;if(_0x57cfd0)try{_0xb38849=JSON['parse'](_0x57cfd0);}catch{const _0x209ec4=_0x57cfd0['match'](/\{[\s\S]*\}$/);if(_0x209ec4)try{_0xb38849=JSON[_0x2c210e(0xf3)](_0x209ec4[0x0]);}catch{_0xb38849=null;}}const _0x517b5a=Array[_0x2c210e(0xe4)](_0xb38849?.['plugin'])?_0xb38849?.['plugin']:[],_0x3efd02=_0x517b5a[_0x2c210e(0xb4)](_0x9837ab=>{const _0x3383ab=_0x2c210e;if(typeof _0x9837ab!=='string')return![];return _0x9837ab[_0x3383ab(0xfd)](_0x232eab[_0x3383ab(0xad)])||_0x9837ab[_0x3383ab(0xfd)]('opencode-plugin');});if(_0x3efd02){_0x394802({'status':_0x219baf['IKVbt'],'details':_0x219baf[_0x2c210e(0xe2)](_0x517b5a['length'],0x0)?_0x517b5a['length']+_0x2c210e(0xdc):undefined});return;}if(_0x219baf['wkZNT'](_0x517b5a['length'],0x0)){_0x394802({'status':_0x219baf[_0x2c210e(0xb2)],'details':_0x517b5a['length']+'\x20plugin(s)\x20configured'});return;}_0x219baf['rjIgy'](_0x394802,{'status':_0x2c210e(0xac)});});});}async function getSkillsFromDir(_0x444a10,_0x163577){const _0x5bbe4c=_0x57bda0,_0x335862={'CTihi':function(_0xcb4d77,_0x3aead2){return _0xcb4d77(_0x3aead2);},'RWhEx':function(_0x1e0aa2,_0x26027c,_0x16a56f,_0x4cd6fc){return _0x1e0aa2(_0x26027c,_0x16a56f,_0x4cd6fc);}};if(!_0x335862['CTihi'](existsSync,_0x444a10))return[];const _0x3f723e=[];try{const _0x16ea83=await readdir(_0x444a10,{'withFileTypes':!![]});for(const _0xe7963f of _0x16ea83){if(_0xe7963f['isDirectory']()){const _0x52dc7a=_0x335862[_0x5bbe4c(0xb9)](join,_0x444a10,_0xe7963f['name'],_0x5bbe4c(0xe8));if(existsSync(_0x52dc7a)){let _0x5c4bac=_0xe7963f['name'];try{const _0x3ab6ba=await readFile(_0x52dc7a,'utf-8'),_0xb31ae6=_0x3ab6ba[_0x5bbe4c(0xb7)](/name:\s*(.+)/);_0xb31ae6&&(_0x5c4bac=_0xb31ae6[0x1][_0x5bbe4c(0xe3)]());}catch{}_0x3f723e[_0x5bbe4c(0xdd)]({'name':_0xe7963f[_0x5bbe4c(0xf2)],'displayName':_0x5c4bac,'path':_0x52dc7a,'level':_0x163577});}}}}catch{return[];}return _0x3f723e;}async function getInstalledSkills(){const _0x52b06c=_0x57bda0,_0x10a94b={'mTXDG':function(_0x892095){return _0x892095();},'uEZcm':'user'},[_0x2597c5,_0x325fae]=await Promise['all']([getSkillsFromDir(_0x10a94b[_0x52b06c(0xb5)](getProjectSkillsDir),_0x52b06c(0xe7)),getSkillsFromDir(getUserSkillsDir(),_0x10a94b[_0x52b06c(0xdb)])]);return{'project':_0x2597c5,'user':_0x325fae};}async function getEnvironments(){const _0x5e7b27=_0x57bda0,_0xb964e4={'HIXNA':function(_0x59da0b,_0x1cd10f,_0x34791a){return _0x59da0b(_0x1cd10f,_0x34791a);},'lvkaH':'settings.json','nSxMc':_0x5e7b27(0xeb),'TNpSP':function(_0x19cadb,_0x15a31a,_0x218085){return _0x19cadb(_0x15a31a,_0x218085);},'OLotT':_0x5e7b27(0xcd),'HSMvO':function(_0x4501c4){return _0x4501c4();},'eBdaL':function(_0x6c5345,_0x37e851){return _0x6c5345(_0x37e851);}},{envNames:_0xc7b254,activeEnv:_0x2e8c04}=await _0xb964e4['HSMvO'](getEnvNames),_0x57e963=getRangerDir();if(!_0xb964e4['eBdaL'](existsSync,_0x57e963))return{'envs':[],'activeEnv':null};const _0x199e0c=_0xc7b254[_0x5e7b27(0xb8)](_0x57b483=>{const _0x543826=_0x5e7b27,_0x3a33ab=getEnvDir(_0x57b483),_0x30cbf3=_0xb964e4['HIXNA'](join,_0x3a33ab,_0xb964e4[_0x543826(0x103)]),_0x18e5b0=_0xb964e4[_0x543826(0xf6)](join,_0x3a33ab,_0xb964e4[_0x543826(0xd6)]),_0x32de7c=_0xb964e4['TNpSP'](join,_0x3a33ab,_0xb964e4[_0x543826(0xa6)]);return{'name':_0x57b483,'settingsPath':existsSync(_0x30cbf3)?_0x30cbf3:_0x543826(0xd1),'hasPlaintextAuth':existsSync(_0x18e5b0),'hasEncryptedAuth':existsSync(_0x32de7c),'isActive':_0x57b483===_0x2e8c04};});return{'envs':_0x199e0c,'activeEnv':_0x2e8c04};}export async function status(){const _0x3a0a8d=_0x57bda0,_0x5de284={'PPYWp':_0x3a0a8d(0xd8),'JiELu':function(_0x537a29){return _0x537a29();},'hypJU':function(_0x204db2,_0x2ac927){return _0x204db2(_0x2ac927);},'SasPL':function(_0x5b355d,_0x5e73c8,_0x317e08){return _0x5b355d(_0x5e73c8,_0x317e08);},'fKtWj':function(_0x1e5e2a,_0x4309f6){return _0x1e5e2a(_0x4309f6);},'kwsOx':_0x3a0a8d(0xef),'hURKG':_0x3a0a8d(0xbe),'qMrWw':function(_0x32e158,_0xa59d97){return _0x32e158===_0xa59d97;},'kGPVQ':'\x20\x20Not\x20configured','MYWYP':'\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','YOKDO':'unknown','PKnVm':_0x3a0a8d(0xf5),'WlUqW':_0x3a0a8d(0xe9),'jHppz':_0x3a0a8d(0xc8),'qwVpQ':function(_0x236f2b,_0x1ec457){return _0x236f2b+_0x1ec457;},'Dupjq':'\x20\x20Project-level:','ftnPp':function(_0x19e939,_0x50768b){return _0x19e939(_0x50768b);},'zYOXc':function(_0xbae9c1,_0x120594){return _0xbae9c1(_0x120594);},'vTYoT':function(_0x2c5c6b,_0x9f1e28,_0x3c0f93){return _0x2c5c6b(_0x9f1e28,_0x3c0f93);},'sonlF':_0x3a0a8d(0xd5),'paFMN':'No\x20profiles\x20configured','VcXha':'encrypted','PKVaU':'plaintext','DTAff':function(_0x2aae24,_0x114fce){return _0x2aae24(_0x114fce);},'Mpooa':_0x3a0a8d(0xd1)};console['log'](_0x5de284[_0x3a0a8d(0xb1)]);const _0x262f38=process['cwd'](),_0x32eaf7=_0x5de284['JiELu'](getRangerDir);if(!_0x5de284[_0x3a0a8d(0xc9)](existsSync,_0x32eaf7)){console['log']('Root:\x20'+_0x5de284[_0x3a0a8d(0xe6)](link,_0x262f38,bold(basename(_0x262f38)))),console[_0x3a0a8d(0xe1)](_0x3a0a8d(0xaa)),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a');return;}console[_0x3a0a8d(0xe1)](_0x3a0a8d(0xda)+link(_0x262f38,bold(_0x5de284[_0x3a0a8d(0xc9)](basename,_0x262f38))));const _0x54ed85=getCurrentVersion(),_0x5adb88=getLatestVersion();if(_0x5adb88[_0x3a0a8d(0xa8)]&&_0x5adb88[_0x3a0a8d(0xa8)]!==_0x54ed85)console[_0x3a0a8d(0xe1)](_0x3a0a8d(0xc0)+_0x54ed85+'\x20(latest:\x20'+_0x5adb88[_0x3a0a8d(0xa8)]+')'),console[_0x3a0a8d(0xe1)](_0x3a0a8d(0xc3));else _0x5adb88[_0x3a0a8d(0xa8)]?console['log']('Version:\x20'+_0x54ed85+'\x20(up\x20to\x20date)'):console['log']('Version:\x20'+_0x54ed85);const _0x1fa0a8=await getToken();if(_0x1fa0a8){const _0x4ff379=await getCurrentUser(_0x1fa0a8);_0x4ff379['success']?console['log']('Organization:\x20'+_0x5de284['fKtWj'](bold,_0x4ff379['user'][_0x3a0a8d(0xe0)])):(console['log']('API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired'),console[_0x3a0a8d(0xe1)](_0x3a0a8d(0xcb)));}else console[_0x3a0a8d(0xe1)]('API\x20Token:\x20✗\x20Not\x20found'),console[_0x3a0a8d(0xe1)]('\x20\x20Run:\x20ranger\x20setup\x20[token]');process['env'][_0x3a0a8d(0xcf)]&&(console[_0x3a0a8d(0xe1)](_0x3a0a8d(0xf4)+getCurrentEnvironment()),console['log']('API\x20URL:\x20'+getApiBaseUrl()));console['log']('\x0a---\x20OpenCode\x20Plugin\x20---');const _0x18338b=await getOpencodePluginStatus();if(_0x18338b['status']===_0x5de284['kwsOx'])console['log']('\x20\x20'+bold(_0x5de284['hURKG'])+_0x3a0a8d(0xd7)),_0x18338b[_0x3a0a8d(0xfa)]&&console['log']('\x20\x20'+_0x18338b['details']);else _0x5de284[_0x3a0a8d(0xc6)](_0x18338b[_0x3a0a8d(0xa9)],'not_configured')?(console[_0x3a0a8d(0xe1)](_0x5de284[_0x3a0a8d(0xde)]),_0x18338b[_0x3a0a8d(0xfa)]&&console['log']('\x20\x20'+_0x18338b[_0x3a0a8d(0xfa)]),console['log']('\x20\x20Run:\x20ranger\x20setup\x20--opencode')):console[_0x3a0a8d(0xe1)](_0x5de284['MYWYP']);console['log']('\x0a---\x20Claude\x20Code\x20Plugin\x20---');const _0x11ef58=await _0x5de284[_0x3a0a8d(0xc9)](getPluginInfo,_0x3a0a8d(0xb6));if(_0x11ef58){const _0x283e9a=_0x11ef58[_0x3a0a8d(0x101)]||_0x5de284[_0x3a0a8d(0xbb)],_0x52f290=_0x11ef58[_0x3a0a8d(0xc4)]?_0x3a0a8d(0xc4):_0x5de284[_0x3a0a8d(0xb3)];console['log']('\x20\x20'+bold('ranger@trailhead')+_0x3a0a8d(0xd9)+_0x283e9a+',\x20'+_0x52f290+')');}else console[_0x3a0a8d(0xe1)](_0x5de284['WlUqW']),console[_0x3a0a8d(0xe1)]('\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)');console[_0x3a0a8d(0xe1)](_0x5de284[_0x3a0a8d(0xfb)]);const {project:_0x429d60,user:_0x2eaa04}=await getInstalledSkills(),_0x41822f=_0x429d60['filter'](_0x321998=>RANGER_MANAGED_SKILLS['includes'](_0x321998[_0x3a0a8d(0xf2)])),_0x5aef8e=_0x2eaa04['filter'](_0x3d0518=>RANGER_MANAGED_SKILLS[_0x3a0a8d(0xfd)](_0x3d0518[_0x3a0a8d(0xf2)])),_0x34bbe0=_0x5de284['qwVpQ'](_0x41822f[_0x3a0a8d(0x104)],_0x5aef8e['length']);if(_0x34bbe0===0x0)console['log']('No\x20skills\x20installed'),console[_0x3a0a8d(0xe1)]('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x41822f['length']>0x0){console[_0x3a0a8d(0xe1)](_0x5de284['Dupjq']);for(const _0xc6fafe of _0x41822f){console[_0x3a0a8d(0xe1)]('\x20\x20\x20\x20'+_0x5de284['ftnPp'](bold,_0xc6fafe['displayName'])+':\x20'+link(_0xc6fafe['path'],_0x5de284[_0x3a0a8d(0xc9)](basename,_0xc6fafe['path'])));}}if(_0x5aef8e['length']>0x0){console['log']('\x20\x20User-level:');for(const _0x12ff5b of _0x5aef8e){console['log']('\x20\x20\x20\x20'+_0x5de284['zYOXc'](bold,_0x12ff5b['displayName'])+':\x20'+_0x5de284['vTYoT'](link,_0x12ff5b['path'],basename(_0x12ff5b['path'])));}}}console[_0x3a0a8d(0xe1)](_0x5de284['sonlF']);const {envs:_0x49a57c,activeEnv:_0x390fcb}=await getEnvironments();if(_0x5de284['qMrWw'](_0x49a57c['length'],0x0))console['log'](_0x5de284['paFMN']),console[_0x3a0a8d(0xe1)]('\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>');else{for(const _0x771fd2 of _0x49a57c){const _0x4e459b=_0x771fd2[_0x3a0a8d(0xca)]?_0x3a0a8d(0xae):'',_0x118f41=_0x771fd2[_0x3a0a8d(0xea)]?_0x5de284[_0x3a0a8d(0xbf)]:_0x771fd2[_0x3a0a8d(0xf0)]?_0x5de284[_0x3a0a8d(0xc7)]:_0x3a0a8d(0xff);console[_0x3a0a8d(0xe1)]('\x20\x20'+_0x5de284[_0x3a0a8d(0xd0)](bold,_0x771fd2[_0x3a0a8d(0xf2)])+_0x4e459b),console[_0x3a0a8d(0xe1)](_0x3a0a8d(0xd4)+_0x118f41),_0x771fd2['settingsPath']!==_0x5de284['Mpooa']&&console['log']('\x20\x20\x20\x20Settings:\x20'+link(_0x771fd2[_0x3a0a8d(0xcc)],_0x5de284['ftnPp'](basename,_0x771fd2[_0x3a0a8d(0xcc)])));}!_0x390fcb&&(console[_0x3a0a8d(0xe1)]('\x0a\x20\x20No\x20active\x20profile\x20set'),console['log'](_0x3a0a8d(0xab)+_0x49a57c[_0x3a0a8d(0xb8)](_0x6ece43=>_0x6ece43['name'])[_0x3a0a8d(0xfe)](',\x20')+')'));}console['log']('');}
@@ -1 +1 @@
1
- (function(_0xd11039,_0x528b2b){const _0x28f625=_0x4f72,_0x4cea79=_0xd11039();while(!![]){try{const _0x5f3f3f=parseInt(_0x28f625(0x1bc))/0x1*(-parseInt(_0x28f625(0x1c2))/0x2)+parseInt(_0x28f625(0x1a0))/0x3*(parseInt(_0x28f625(0x193))/0x4)+-parseInt(_0x28f625(0x1cb))/0x5*(-parseInt(_0x28f625(0x1c6))/0x6)+parseInt(_0x28f625(0x1bd))/0x7+-parseInt(_0x28f625(0x1b9))/0x8*(parseInt(_0x28f625(0x1bf))/0x9)+parseInt(_0x28f625(0x194))/0xa+-parseInt(_0x28f625(0x1a9))/0xb*(-parseInt(_0x28f625(0x1cc))/0xc);if(_0x5f3f3f===_0x528b2b)break;else _0x4cea79['push'](_0x4cea79['shift']());}catch(_0x522c7a){_0x4cea79['push'](_0x4cea79['shift']());}}}(_0xe9bc,0xdb151));import{spawn}from'child_process';import{existsSync}from'fs';import{readFile,writeFile}from'fs/promises';function _0x4f72(_0x103175,_0xc9111f){_0x103175=_0x103175-0x18d;const _0xe9bc7a=_0xe9bc();let _0x4f728c=_0xe9bc7a[_0x103175];return _0x4f728c;}import{installSkill,removeSkill,RANGER_MANAGED_SKILLS,DEPRECATED_SKILLS}from'./utils/skills.js';import{PACKAGE_NAME,getCurrentVersion,getLatestVersion,compareVersions}from'./utils/version.js';function _0xe9bc(){const _0x2626d1=['WOFzi','warn','Update\x20failed:\x20','Oipbz','claude','pTXPg','73275whRKFk','xBxYC','error','\x0aYour\x20version\x20(','@latest...\x0a','LxPcN','endsWith','findIndex','uMtoh','303655fpCoEJ','\x20skill\x20','ranger@trailhead','.gitignore','KYAMG','close','\x0aCould\x20not\x20check\x20latest\x20version:\x20','active-profile.txt','install','TdRbB','TvhKz','inherit','weluV','krMUA','length','user','122456kcIagg','opencode','EWUZX','1321577fCFslx','1467543ueBJrD','some','549rutKjp','\x0aClaude\x20plugin\x20updated\x20(user\x20scope).','active-feature.txt','2dQkLoY','\x0a✅\x20Update\x20complete!','WMsyg','\x0aClaude\x20marketplace\x20updated\x20(trailhead).','463764GycDJh','mdSNa','trailhead','push','win32','20BKXmCK','72doJxUe','eXaTE','Attempting\x20install\x20anyway...','log','mOmUw','✓\x20Migrated\x20active\x20profile\x20file','platform','\x0aReinstalling\x20','252YhIobP','9294350aqKGoc','version','AUGVU','npm','\x0aNo\x20ranger-managed\x20skills\x20found\x20to\x20reinstall.','WEtHM'];_0xe9bc=function(){return _0x2626d1;};return _0xe9bc();}import{getSkillsDir}from'./utils/claudeConfig.js';import{getOpencodeSkillsDir}from'./utils/opencodeConfig.js';import{join}from'path';import{migrateActiveProfileFile}from'./utils/activeProfile.js';import{getRangerDir}from'./utils/rangerRoot.js';import{isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function runInstall(){const _0x38792a=_0x4f72,_0x467e86={'mOmUw':function(_0x55627,_0x2694ef){return _0x55627(_0x2694ef);},'cCrwY':function(_0x2e25d6,_0x3d6c9b){return _0x2e25d6===_0x3d6c9b;},'Wcguw':function(_0x5d79d1,_0x5234b0,_0x602036,_0x553dbc){return _0x5d79d1(_0x5234b0,_0x602036,_0x553dbc);},'OwmtO':_0x38792a(0x197),'AUGVU':_0x38792a(0x1ca),'KYAMG':'close','gDVxj':'error'};return new Promise(_0xa0476b=>{const _0x501d42=_0x38792a;console[_0x501d42(0x18e)]('\x0aInstalling\x20'+PACKAGE_NAME+_0x501d42(0x1a4));const _0x4ebeb3=_0x467e86['Wcguw'](spawn,_0x467e86['OwmtO'],[_0x501d42(0x1b1),'-g',PACKAGE_NAME+'@latest'],{'stdio':_0x501d42(0x1b4),'shell':_0x467e86['cCrwY'](process['platform'],_0x467e86[_0x501d42(0x196)])});_0x4ebeb3['on'](_0x467e86[_0x501d42(0x1ad)],_0x3a6673=>{const _0x48b763=_0x501d42;_0x467e86[_0x48b763(0x18f)](_0xa0476b,_0x467e86['cCrwY'](_0x3a6673,0x0));}),_0x4ebeb3['on'](_0x467e86['gDVxj'],()=>{_0xa0476b(![]);});});}async function updateClaudeMarketplace(){const _0x5c765f={'IoMui':function(_0x3277cb,_0x86e631){return _0x3277cb===_0x86e631;},'cdZMw':function(_0x45f9c5,_0x1e76a9){return _0x45f9c5(_0x1e76a9);},'TvhKz':function(_0xf29c82,_0x4e00dd,_0x4c8b76,_0x39d1d3){return _0xf29c82(_0x4e00dd,_0x4c8b76,_0x39d1d3);},'gFPna':'plugin','mdSNa':'marketplace','HSDwr':'update','Agppf':'trailhead','CWdBS':function(_0x5d7efc,_0x4eb436){return _0x5d7efc===_0x4eb436;},'KCyUS':'win32'};return new Promise(_0x1bd6d9=>{const _0x438271=_0x4f72,_0x8721cd=_0x5c765f[_0x438271(0x1b3)](spawn,_0x438271(0x19e),[_0x5c765f['gFPna'],_0x5c765f[_0x438271(0x1c7)],_0x5c765f['HSDwr'],_0x5c765f['Agppf']],{'stdio':'pipe','shell':_0x5c765f['CWdBS'](process['platform'],_0x5c765f['KCyUS'])});_0x8721cd['on']('close',_0x2efc4c=>{_0x1bd6d9(_0x5c765f['IoMui'](_0x2efc4c,0x0));}),_0x8721cd['on'](_0x438271(0x1a2),()=>{_0x5c765f['cdZMw'](_0x1bd6d9,![]);});});}async function updateClaudePlugin(_0x7be2d6){const _0x40d8f0={'krMUA':'plugin','TdRbB':'update','WOFzi':'--scope','eXaTE':function(_0x3ce562,_0x382e37,_0x52733e,_0x3ad1f0){return _0x3ce562(_0x382e37,_0x52733e,_0x3ad1f0);},'EWUZX':function(_0x5f408e,_0x454173){return _0x5f408e===_0x454173;}};return new Promise(_0x3ec76f=>{const _0x455f6e=_0x4f72,_0x5a39aa=[_0x40d8f0[_0x455f6e(0x1b6)],_0x40d8f0[_0x455f6e(0x1b2)],_0x455f6e(0x1ab)];_0x7be2d6&&_0x5a39aa[_0x455f6e(0x1c9)](_0x40d8f0[_0x455f6e(0x19a)],_0x7be2d6);const _0x2608ed=_0x40d8f0[_0x455f6e(0x1cd)](spawn,'claude',_0x5a39aa,{'stdio':'pipe','shell':_0x40d8f0[_0x455f6e(0x1bb)](process[_0x455f6e(0x191)],'win32')});_0x2608ed['on'](_0x455f6e(0x1ae),_0x8fd46c=>{_0x3ec76f(_0x8fd46c===0x0);}),_0x2608ed['on']('error',()=>{_0x3ec76f(![]);});});}function isSkillInstalled(_0x5c83d9,_0x45f94c,_0x3b75a6){const _0x4e54f2=_0x4f72,_0x386510={'rHgjf':function(_0x12b116,_0xeed0b9){return _0x12b116===_0xeed0b9;},'KDcja':function(_0x39ef89,_0x548e63,_0x2f3c0e){return _0x39ef89(_0x548e63,_0x2f3c0e);}},_0x86c404=_0x386510['rHgjf'](_0x3b75a6,_0x4e54f2(0x1ba))?getOpencodeSkillsDir(_0x45f94c):getSkillsDir(_0x45f94c),_0x4a5f90=_0x386510['KDcja'](join,_0x86c404,_0x5c83d9);return existsSync(_0x4a5f90);}async function reinstallSkills(_0x49f4f1){const _0x156012=_0x4f72,_0x50e26f={'WEtHM':'project','BrsVT':_0x156012(0x1b8),'uMtoh':function(_0x4a8013,_0x11a4d1,_0x33c20c){return _0x4a8013(_0x11a4d1,_0x33c20c);},'mHyLj':_0x156012(0x198),'cxLkL':function(_0x291876,_0x29064b,_0x27a3d0){return _0x291876(_0x29064b,_0x27a3d0);}},_0xf877ab=[_0x50e26f[_0x156012(0x199)],_0x50e26f['BrsVT']],_0x432854=[];for(const _0x2305a7 of _0xf877ab){for(const _0x34b5ed of RANGER_MANAGED_SKILLS){isSkillInstalled(_0x34b5ed,_0x2305a7,'claude')&&_0x432854[_0x156012(0x1c9)]({'skillName':_0x34b5ed,'level':_0x2305a7,'platform':_0x156012(0x19e)}),isSkillInstalled(_0x34b5ed,_0x2305a7,'opencode')&&_0x432854[_0x156012(0x1c9)]({'skillName':_0x34b5ed,'level':_0x2305a7,'platform':'opencode'});}}for(const _0x39df5f of _0xf877ab){for(const _0x3ebc30 of DEPRECATED_SKILLS){await _0x50e26f[_0x156012(0x1a8)](removeSkill,_0x3ebc30,_0x39df5f);}}if(_0x432854[_0x156012(0x1b7)]===0x0){console[_0x156012(0x18e)](_0x50e26f['mHyLj']);return;}console[_0x156012(0x18e)](_0x156012(0x192)+_0x432854[_0x156012(0x1b7)]+'\x20ranger-managed\x20skill(s)...');for(const {skillName:_0x3387da,level:_0x45e69d,platform:_0x51c0bf}of _0x432854){try{await _0x50e26f['cxLkL'](installSkill,_0x3387da,{'level':_0x45e69d,'cliVersion':_0x49f4f1,'platform':_0x51c0bf});}catch(_0x1d1c71){console[_0x156012(0x19b)]('\x20\x20Failed\x20to\x20reinstall\x20'+_0x51c0bf+'\x20'+_0x45e69d+_0x156012(0x1aa)+_0x3387da+':',_0x1d1c71);}}}async function ensureActiveProfileGitignored(){const _0x58ac6d=_0x4f72,_0x30b3b3={'pTXPg':function(_0x103f14,_0x37d37c,_0x476149){return _0x103f14(_0x37d37c,_0x476149);},'KXoUC':function(_0x39582e){return _0x39582e();},'LxPcN':'utf-8','xBxYC':function(_0x4342f2,_0x47e7ba){return _0x4342f2===_0x47e7ba;},'sDWrd':'active-profile.txt'},_0x54a217=_0x30b3b3[_0x58ac6d(0x19f)](join,_0x30b3b3['KXoUC'](getRangerDir),_0x58ac6d(0x1ac));if(!existsSync(_0x54a217))return![];let _0x1ed8c1='';try{_0x1ed8c1=await _0x30b3b3['pTXPg'](readFile,_0x54a217,_0x30b3b3[_0x58ac6d(0x1a5)]);}catch{return![];}const _0x1e26c0=_0x1ed8c1['split'](/\r?\n/);if(_0x1e26c0[_0x58ac6d(0x1be)](_0x1cd6b9=>_0x1cd6b9['trim']()===_0x58ac6d(0x1b0)))return![];let _0x529484=_0x1e26c0[_0x58ac6d(0x1a7)](_0x477e20=>_0x477e20['trim']()===_0x58ac6d(0x1c1));_0x30b3b3[_0x58ac6d(0x1a1)](_0x529484,-0x1)&&(_0x529484=_0x1e26c0['length']);_0x1e26c0['splice'](_0x529484,0x0,_0x30b3b3['sDWrd']);let _0x426802=_0x1e26c0['join']('\x0a');!_0x426802[_0x58ac6d(0x1a6)]('\x0a')&&(_0x426802+='\x0a');try{await writeFile(_0x54a217,_0x426802,_0x30b3b3['LxPcN']);}catch{return![];}return!![];}export async function update(){const _0x3696fa=_0x4f72,_0xe8978c={'ZYsNx':function(_0x24a267){return _0x24a267();},'Oipbz':function(_0x30c863){return _0x30c863();},'ypIuc':function(_0x34307a,_0x23f31d,_0x2bf994){return _0x34307a(_0x23f31d,_0x2bf994);},'obYJc':function(_0x3b97c8,_0x120d0c){return _0x3b97c8===_0x120d0c;},'zbjZY':'Update\x20failed.','PAVsV':function(_0x1a6e60,_0x4ffa12){return _0x1a6e60(_0x4ffa12);},'weluV':_0x3696fa(0x1c8),'WMsyg':function(_0x45a262,_0x424bfb){return _0x45a262(_0x424bfb);},'MhPxY':_0x3696fa(0x1ab),'LTKhj':_0x3696fa(0x1c5),'FIPZN':function(_0x29c6b7){return _0x29c6b7();},'udOLq':'project'},_0x5e237d=_0xe8978c['ZYsNx'](getCurrentVersion);console[_0x3696fa(0x18e)]('\x0aCurrent\x20version:\x20'+_0x5e237d),console[_0x3696fa(0x18e)]('Checking\x20for\x20updates...');const _0x428e3c=getLatestVersion();let _0x49d6fe=_0x5e237d;if(!_0x428e3c['version']){console['warn'](_0x3696fa(0x1af)+_0x428e3c[_0x3696fa(0x1a2)]),console['log'](_0x3696fa(0x18d));const _0x2bd618=await runInstall();if(_0x2bd618)console[_0x3696fa(0x18e)]('\x0aSuccessfully\x20installed\x20latest\x20version.'),_0x49d6fe=_0xe8978c[_0x3696fa(0x19d)](getCurrentVersion);else throw new Error(_0x3696fa(0x19c)+_0x428e3c[_0x3696fa(0x1a2)]);}else{const _0x593349=_0x428e3c[_0x3696fa(0x195)];console['log']('Latest\x20version:\x20\x20'+_0x593349);const _0x13059c=_0xe8978c['ypIuc'](compareVersions,_0x5e237d,_0x593349);if(_0xe8978c['obYJc'](_0x13059c,0x0))console['log']('\x0aYou\x20are\x20already\x20on\x20the\x20latest\x20version.');else{if(_0x13059c<0x0)console[_0x3696fa(0x18e)](_0x3696fa(0x1a3)+_0x5e237d+')\x20is\x20newer\x20than\x20the\x20published\x20version\x20('+_0x593349+').');else{const _0xd1f3b4=await runInstall();if(_0xd1f3b4)console[_0x3696fa(0x18e)]('\x0aSuccessfully\x20updated\x20to\x20version\x20'+_0x593349),_0x49d6fe=_0x593349;else throw new Error(_0xe8978c['zbjZY']);}}}await _0xe8978c['PAVsV'](reinstallSkills,_0x49d6fe);const _0x30bf15=await isMarketplaceAdded(_0xe8978c[_0x3696fa(0x1b5)]),_0x5e9225=await _0xe8978c[_0x3696fa(0x1c4)](isPluginInstalled,_0xe8978c['MhPxY']);if(_0x30bf15){const _0x56f958=await _0xe8978c['ZYsNx'](updateClaudeMarketplace);_0x56f958&&console[_0x3696fa(0x18e)](_0xe8978c['LTKhj']);}if(_0x5e9225){const _0x1b06fc=await _0xe8978c['FIPZN'](updateClaudePlugin);_0x1b06fc&&console['log'](_0x3696fa(0x1c0));const _0x43ac75=await updateClaudePlugin(_0xe8978c['udOLq']);_0x43ac75&&console['log']((_0x1b06fc?'':'\x0a')+'Claude\x20plugin\x20updated\x20(project\x20scope).');}const _0x86468a=await _0xe8978c['ZYsNx'](migrateActiveProfileFile);_0x86468a&&console['log'](_0x3696fa(0x190));const _0x5af6f9=await ensureActiveProfileGitignored();console[_0x3696fa(0x18e)](_0x3696fa(0x1c3));}
1
+ (function(_0x263138,_0x4be758){const _0x549f02=_0x3392,_0x422359=_0x263138();while(!![]){try{const _0x3a78d9=parseInt(_0x549f02(0x160))/0x1+parseInt(_0x549f02(0x147))/0x2+parseInt(_0x549f02(0x142))/0x3*(-parseInt(_0x549f02(0x13d))/0x4)+-parseInt(_0x549f02(0x162))/0x5+-parseInt(_0x549f02(0x146))/0x6*(parseInt(_0x549f02(0x135))/0x7)+parseInt(_0x549f02(0x15a))/0x8*(parseInt(_0x549f02(0x131))/0x9)+parseInt(_0x549f02(0x14a))/0xa;if(_0x3a78d9===_0x4be758)break;else _0x422359['push'](_0x422359['shift']());}catch(_0x3da7a5){_0x422359['push'](_0x422359['shift']());}}}(_0x3bb5,0x8698f));function _0x3392(_0x281333,_0xd9c009){_0x281333=_0x281333-0x12c;const _0x3bb52d=_0x3bb5();let _0x3392e3=_0x3bb52d[_0x281333];return _0x3392e3;}import{spawn}from'child_process';import{existsSync}from'fs';import{readFile,writeFile}from'fs/promises';import{installSkill,removeSkill,RANGER_MANAGED_SKILLS,DEPRECATED_SKILLS}from'./utils/skills.js';import{PACKAGE_NAME,getCurrentVersion,getLatestVersion,compareVersions}from'./utils/version.js';import{getSkillsDir}from'./utils/claudeConfig.js';import{getOpencodeSkillsDir}from'./utils/opencodeConfig.js';import{join}from'path';import{migrateActiveProfileFile}from'./utils/activeProfile.js';import{getRangerDir}from'./utils/rangerRoot.js';import{isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function runInstall(){const _0x39e327=_0x3392,_0x472d2b={'yLtbI':function(_0xdaed99,_0x1c76a3){return _0xdaed99(_0x1c76a3);},'EUXAK':function(_0x4bb294,_0x293290,_0x1f56ad,_0x1393e6){return _0x4bb294(_0x293290,_0x1f56ad,_0x1393e6);},'ipqAg':'npm','XqsIR':'install','aXDJS':_0x39e327(0x12c)};return new Promise(_0x52e2a5=>{const _0x4ed937=_0x39e327,_0x3014b1={'sXKim':function(_0xdcce95,_0x207004){return _0x472d2b['yLtbI'](_0xdcce95,_0x207004);}};console['log'](_0x4ed937(0x16a)+PACKAGE_NAME+_0x4ed937(0x139));const _0x4cf571=_0x472d2b['EUXAK'](spawn,_0x472d2b[_0x4ed937(0x145)],[_0x472d2b['XqsIR'],'-g',PACKAGE_NAME+'@latest'],{'stdio':'inherit','shell':process['platform']===_0x4ed937(0x15b)});_0x4cf571['on'](_0x4ed937(0x137),_0x2024d9=>{_0x52e2a5(_0x2024d9===0x0);}),_0x4cf571['on'](_0x472d2b['aXDJS'],()=>{const _0x3c567a=_0x4ed937;_0x3014b1[_0x3c567a(0x13a)](_0x52e2a5,![]);});});}async function updateClaudeMarketplace(){const _0x4dc349=_0x3392,_0x357d93={'aSReW':function(_0x5d69b1,_0xe24d26){return _0x5d69b1(_0xe24d26);},'XvVeR':'marketplace','aPxaI':_0x4dc349(0x13f),'lKaUa':function(_0x9b5e15,_0x367791){return _0x9b5e15===_0x367791;}};return new Promise(_0x4d9507=>{const _0x5abf33=_0x4dc349,_0x5225cc={'McMQY':function(_0x287a66,_0x4ff5a3){const _0x1b4cd6=_0x3392;return _0x357d93[_0x1b4cd6(0x16e)](_0x287a66,_0x4ff5a3);}},_0x4a415c=spawn(_0x5abf33(0x149),['plugin',_0x357d93[_0x5abf33(0x169)],'update',_0x357d93[_0x5abf33(0x134)]],{'stdio':'pipe','shell':_0x357d93[_0x5abf33(0x14c)](process[_0x5abf33(0x138)],_0x5abf33(0x15b))});_0x4a415c['on']('close',_0x2ef7f2=>{const _0x16a5f2=_0x5abf33;_0x5225cc[_0x16a5f2(0x12e)](_0x4d9507,_0x2ef7f2===0x0);}),_0x4a415c['on']('error',()=>{_0x4d9507(![]);});});}async function updateClaudePlugin(_0x4809ae){const _0x209221=_0x3392,_0x4baeb7={'edwGX':_0x209221(0x140),'mBaop':'--scope','gZbeA':function(_0x5b5e85,_0x5c8c19,_0x3c7866,_0x20670f){return _0x5b5e85(_0x5c8c19,_0x3c7866,_0x20670f);},'uuaxe':function(_0xbcd7d0,_0x38a786){return _0xbcd7d0===_0x38a786;},'WLixC':'win32','CVMKt':_0x209221(0x137),'uIztS':'error'};return new Promise(_0xd0d977=>{const _0x86f31a=_0x209221,_0x372fdb={'tMFWc':function(_0x5e3136,_0xe212ab){return _0x5e3136(_0xe212ab);}},_0x2a8d61=[_0x86f31a(0x14d),_0x86f31a(0x148),_0x4baeb7[_0x86f31a(0x150)]];_0x4809ae&&_0x2a8d61[_0x86f31a(0x167)](_0x4baeb7['mBaop'],_0x4809ae);const _0x858aa5=_0x4baeb7['gZbeA'](spawn,'claude',_0x2a8d61,{'stdio':'pipe','shell':_0x4baeb7['uuaxe'](process[_0x86f31a(0x138)],_0x4baeb7[_0x86f31a(0x143)])});_0x858aa5['on'](_0x4baeb7[_0x86f31a(0x153)],_0x13dc9f=>{const _0x30bbb3=_0x86f31a;_0x372fdb[_0x30bbb3(0x154)](_0xd0d977,_0x13dc9f===0x0);}),_0x858aa5['on'](_0x4baeb7[_0x86f31a(0x168)],()=>{_0xd0d977(![]);});});}function isSkillInstalled(_0x31a3ad,_0x113ff0,_0xab85bd){const _0x5819cf={'dEqXe':'opencode','wKNPO':function(_0x151ef8,_0x25830d){return _0x151ef8(_0x25830d);}},_0x3c0c11=_0xab85bd===_0x5819cf['dEqXe']?getOpencodeSkillsDir(_0x113ff0):getSkillsDir(_0x113ff0),_0x5620b4=join(_0x3c0c11,_0x31a3ad);return _0x5819cf['wKNPO'](existsSync,_0x5620b4);}function _0x3bb5(){const _0x2fecf4=['CVMKt','tMFWc','sJzdx','\x0aYou\x20are\x20already\x20on\x20the\x20latest\x20version.','eOVLv','Claude\x20plugin\x20updated\x20(project\x20scope).','Checking\x20for\x20updates...','56856JgKShR','win32','length','lHbUB','zLrBO','FDlnS','508034wlxGkn','lQUTl','5310550zBGCgw','\x0aSuccessfully\x20updated\x20to\x20version\x20','warn','active-feature.txt','nZdep','push','uIztS','XvVeR','\x0aInstalling\x20','trim','MubKc','Latest\x20version:\x20\x20','aSReW','error','.gitignore','McMQY','EpxJH','project','603IaDlMx','version','FUisZ','aPxaI','203MBOtWv','Update\x20failed:\x20','close','platform','@latest...\x0a','sXKim','DhtlI','opencode','1832DwBNZn','AIyyR','trailhead','ranger@trailhead','utf-8','3777bZpzDi','WLixC','\x0aClaude\x20plugin\x20updated\x20(user\x20scope).','ipqAg','84810nQXxtQ','525604qYlgPO','update','claude','13529530QyYVTD','\x0aNo\x20ranger-managed\x20skills\x20found\x20to\x20reinstall.','lKaUa','plugin','eawfq','cTCWL','edwGX','log','rnmhk'];_0x3bb5=function(){return _0x2fecf4;};return _0x3bb5();}async function reinstallSkills(_0xc5adfe){const _0x4b979d=_0x3392,_0x5b981d={'MubKc':'user','EpxJH':function(_0x170317,_0x376a41,_0x41e970,_0x3bb07b){return _0x170317(_0x376a41,_0x41e970,_0x3bb07b);},'EMAey':'opencode','PfXgF':function(_0x41579c,_0x5be68d,_0x2de601){return _0x41579c(_0x5be68d,_0x2de601);},'DhtlI':_0x4b979d(0x14b)},_0x2f63a6=['project',_0x5b981d[_0x4b979d(0x16c)]],_0x51b3f8=[];for(const _0x58b36b of _0x2f63a6){for(const _0x34d286 of RANGER_MANAGED_SKILLS){_0x5b981d[_0x4b979d(0x12f)](isSkillInstalled,_0x34d286,_0x58b36b,_0x4b979d(0x149))&&_0x51b3f8['push']({'skillName':_0x34d286,'level':_0x58b36b,'platform':_0x4b979d(0x149)}),_0x5b981d['EpxJH'](isSkillInstalled,_0x34d286,_0x58b36b,_0x4b979d(0x13c))&&_0x51b3f8['push']({'skillName':_0x34d286,'level':_0x58b36b,'platform':_0x5b981d['EMAey']});}}for(const _0x130d8a of _0x2f63a6){for(const _0xd49ce6 of DEPRECATED_SKILLS){await _0x5b981d['PfXgF'](removeSkill,_0xd49ce6,_0x130d8a);}}if(_0x51b3f8['length']===0x0){console['log'](_0x5b981d[_0x4b979d(0x13b)]);return;}console[_0x4b979d(0x151)]('\x0aReinstalling\x20'+_0x51b3f8['length']+'\x20ranger-managed\x20skill(s)...');for(const {skillName:_0x3d77fb,level:_0x590d4a,platform:_0x22ee58}of _0x51b3f8){try{await _0x5b981d['PfXgF'](installSkill,_0x3d77fb,{'level':_0x590d4a,'cliVersion':_0xc5adfe,'platform':_0x22ee58});}catch(_0x4837b5){console[_0x4b979d(0x164)]('\x20\x20Failed\x20to\x20reinstall\x20'+_0x22ee58+'\x20'+_0x590d4a+'\x20skill\x20'+_0x3d77fb+':',_0x4837b5);}}}async function ensureActiveProfileGitignored(){const _0x3209f7=_0x3392,_0x2ce22d={'zffCf':function(_0x3865dd,_0x2d2eb9,_0x1ef00a){return _0x3865dd(_0x2d2eb9,_0x1ef00a);},'nZdep':function(_0x4d31a0,_0x5a5903){return _0x4d31a0(_0x5a5903);},'cTCWL':function(_0x168091,_0x8fbed,_0x11f3cf){return _0x168091(_0x8fbed,_0x11f3cf);},'AIyyR':function(_0x5a8c5c,_0x908685){return _0x5a8c5c===_0x908685;},'lHbUB':function(_0x25e5fa,_0x4a6c13,_0x53c827,_0x1b8f87){return _0x25e5fa(_0x4a6c13,_0x53c827,_0x1b8f87);}},_0x16b5ab=_0x2ce22d['zffCf'](join,getRangerDir(),_0x3209f7(0x12d));if(!_0x2ce22d[_0x3209f7(0x166)](existsSync,_0x16b5ab))return![];let _0x4f9bbb='';try{_0x4f9bbb=await _0x2ce22d[_0x3209f7(0x14f)](readFile,_0x16b5ab,_0x3209f7(0x141));}catch{return![];}const _0x55a299=_0x4f9bbb['split'](/\r?\n/);if(_0x55a299['some'](_0x2d3da7=>_0x2d3da7['trim']()==='active-profile.txt'))return![];let _0x1808d7=_0x55a299['findIndex'](_0x51ca6d=>_0x51ca6d[_0x3209f7(0x16b)]()===_0x3209f7(0x165));_0x2ce22d[_0x3209f7(0x13e)](_0x1808d7,-0x1)&&(_0x1808d7=_0x55a299[_0x3209f7(0x15c)]);_0x55a299['splice'](_0x1808d7,0x0,'active-profile.txt');let _0x2414be=_0x55a299['join']('\x0a');!_0x2414be['endsWith']('\x0a')&&(_0x2414be+='\x0a');try{await _0x2ce22d[_0x3209f7(0x15d)](writeFile,_0x16b5ab,_0x2414be,'utf-8');}catch{return![];}return!![];}export async function update(){const _0x54f452=_0x3392,_0x4ebb81={'GvXZe':_0x54f452(0x159),'lQUTl':function(_0x418438){return _0x418438();},'sJzdx':function(_0x239071){return _0x239071();},'xKEpS':function(_0x33d2fc,_0x2108f5,_0x2e58d3){return _0x33d2fc(_0x2108f5,_0x2e58d3);},'eawfq':function(_0x238ea2,_0x1ce4ad){return _0x238ea2===_0x1ce4ad;},'zfxyH':function(_0x2628c5,_0x456bcc){return _0x2628c5<_0x456bcc;},'eOVLv':function(_0xa0276d){return _0xa0276d();},'FDlnS':'Update\x20failed.','FUisZ':function(_0x17d0be,_0x462eb8){return _0x17d0be(_0x462eb8);},'eoDFu':_0x54f452(0x13f),'zLrBO':'ranger@trailhead','ctiHo':function(_0x24502){return _0x24502();},'dSiZT':_0x54f452(0x130),'rnmhk':function(_0x23630f){return _0x23630f();},'QCRYI':'\x0a✅\x20Update\x20complete!'},_0x49baff=getCurrentVersion();console['log']('\x0aCurrent\x20version:\x20'+_0x49baff),console['log'](_0x4ebb81['GvXZe']);const _0x57fb54=_0x4ebb81['lQUTl'](getLatestVersion);let _0xb53f55=_0x49baff;if(!_0x57fb54['version']){console['warn']('\x0aCould\x20not\x20check\x20latest\x20version:\x20'+_0x57fb54[_0x54f452(0x12c)]),console['log']('Attempting\x20install\x20anyway...');const _0x2fbb6c=await _0x4ebb81[_0x54f452(0x161)](runInstall);if(_0x2fbb6c)console[_0x54f452(0x151)]('\x0aSuccessfully\x20installed\x20latest\x20version.'),_0xb53f55=_0x4ebb81[_0x54f452(0x155)](getCurrentVersion);else throw new Error(_0x54f452(0x136)+_0x57fb54[_0x54f452(0x12c)]);}else{const _0x1d90dd=_0x57fb54[_0x54f452(0x132)];console['log'](_0x54f452(0x16d)+_0x1d90dd);const _0x4fc8da=_0x4ebb81['xKEpS'](compareVersions,_0x49baff,_0x1d90dd);if(_0x4ebb81[_0x54f452(0x14e)](_0x4fc8da,0x0))console[_0x54f452(0x151)](_0x54f452(0x156));else{if(_0x4ebb81['zfxyH'](_0x4fc8da,0x0))console['log']('\x0aYour\x20version\x20('+_0x49baff+')\x20is\x20newer\x20than\x20the\x20published\x20version\x20('+_0x1d90dd+').');else{const _0x45c78b=await _0x4ebb81[_0x54f452(0x157)](runInstall);if(_0x45c78b)console[_0x54f452(0x151)](_0x54f452(0x163)+_0x1d90dd),_0xb53f55=_0x1d90dd;else throw new Error(_0x4ebb81[_0x54f452(0x15f)]);}}}await _0x4ebb81[_0x54f452(0x133)](reinstallSkills,_0xb53f55);const _0x2bbbee=await isMarketplaceAdded(_0x4ebb81['eoDFu']),_0x4f8115=await isPluginInstalled(_0x4ebb81[_0x54f452(0x15e)]);if(_0x2bbbee){const _0x3bfaf3=await updateClaudeMarketplace();_0x3bfaf3&&console[_0x54f452(0x151)]('\x0aClaude\x20marketplace\x20updated\x20(trailhead).');}if(_0x4f8115){const _0x248cf4=await _0x4ebb81['ctiHo'](updateClaudePlugin);_0x248cf4&&console['log'](_0x54f452(0x144));const _0x2025a1=await updateClaudePlugin(_0x4ebb81['dSiZT']);_0x2025a1&&console[_0x54f452(0x151)]((_0x248cf4?'':'\x0a')+_0x54f452(0x158));}const _0x43148c=await _0x4ebb81[_0x54f452(0x152)](migrateActiveProfileFile);_0x43148c&&console['log']('✓\x20Migrated\x20active\x20profile\x20file');const _0x4c0722=await ensureActiveProfileGitignored();console[_0x54f452(0x151)](_0x4ebb81['QCRYI']);}