@ranger-testing/ranger-cli 2.4.0 → 2.4.1

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 -1
  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
- 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
+ (function(_0x1c29df,_0x235345){const _0xd775a7=_0x5009,_0x13b8c1=_0x1c29df();while(!![]){try{const _0x119494=-parseInt(_0xd775a7(0xa5))/0x1*(parseInt(_0xd775a7(0xa3))/0x2)+parseInt(_0xd775a7(0xab))/0x3*(parseInt(_0xd775a7(0x9a))/0x4)+parseInt(_0xd775a7(0xa6))/0x5+parseInt(_0xd775a7(0xac))/0x6+parseInt(_0xd775a7(0xa2))/0x7+parseInt(_0xd775a7(0xa7))/0x8+-parseInt(_0xd775a7(0x99))/0x9;if(_0x119494===_0x235345)break;else _0x13b8c1['push'](_0x13b8c1['shift']());}catch(_0x3313da){_0x13b8c1['push'](_0x13b8c1['shift']());}}}(_0xb3f2,0x910d5));function _0x5009(_0x591a8f,_0x55f538){_0x591a8f=_0x591a8f-0x99;const _0xb3f2b8=_0xb3f2();let _0x500973=_0xb3f2b8[_0x591a8f];return _0x500973;}import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';import{createTelemetryCollector}from'../utils/telemetry.js';function _0xb3f2(){const _0x3974a9=['xGGMy','663153NwPOjY','5880594nCZawk','export\x20CLAUDE_SESSION_ID=\x22','17281620OxiGkW','4lAeMDM','DvQSD','log','CLAUDE_ENV_FILE','master','LUdqL','rxale','parse','6080585AyuxQm','10JExPlM','stringify','29762SoMVoP','2754290DyKkPM','339680fzRSdS','session_id','trackCommandEnd'];_0xb3f2=function(){return _0x3974a9;};return _0xb3f2();}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(_0x2cdda6){const _0x4d9104=_0x5009,_0x1e207d={'rxale':function(_0x2768a0,_0x91c118){return _0x2768a0||_0x91c118;},'xGGMy':function(_0x4d0046,_0x4e5082){return _0x4d0046(_0x4e5082);},'mpGSj':function(_0x171560,_0x3aeab2){return _0x171560(_0x3aeab2);},'KwNez':'hook:session-start','GBdjr':'success','DvQSD':function(_0x2d28a9,_0x4af8f9){return _0x2d28a9!==_0x4af8f9;},'LUdqL':_0x4d9104(0x9e),'ejOkl':function(_0x33a3d4,_0x260b79){return _0x33a3d4+_0x260b79;}};let _0x45caf6=_0x1e207d[_0x4d9104(0xa0)](_0x2cdda6,''),_0x1af103;if(!_0x2cdda6){let _0x51449e='';for await(const _0x5bd04a of process['stdin']){_0x51449e+=_0x5bd04a;}try{const _0x3adf4e=JSON[_0x4d9104(0xa1)](_0x51449e);_0x45caf6=_0x3adf4e[_0x4d9104(0xa8)]||'',_0x1af103=_0x3adf4e['source'];}catch{}const _0x23ba64=process['env'][_0x4d9104(0x9d)];if(_0x23ba64&&_0x45caf6)try{await appendFile(_0x23ba64,_0x4d9104(0xad)+_0x45caf6+'\x22\x0a');}catch{}}if(_0x45caf6){_0x1e207d['xGGMy'](shouldAutoEnableAfterClear,_0x1af103)&&_0x1e207d[_0x4d9104(0xaa)](autoEnableAfterClear,_0x45caf6);initBranchTracking(_0x45caf6);const _0x134658=_0x1e207d['mpGSj'](isSessionEnabled,_0x45caf6);try{const _0x4ef27f=_0x1e207d[_0x4d9104(0xaa)](createTelemetryCollector,_0x1e207d['KwNez']);await _0x4ef27f['trackCommandStart']({'sessionId':_0x45caf6,'hooksEnabled':_0x134658}),await _0x4ef27f[_0x4d9104(0xa9)](_0x1e207d['GBdjr']);}catch{}if(_0x134658){const _0x21dde5=getCurrentBranch(),_0x4dbbab=_0x21dde5&&_0x21dde5!=='main'&&_0x1e207d[_0x4d9104(0x9b)](_0x21dde5,_0x1e207d[_0x4d9104(0x9f)])?'\x20(Branch:\x20'+_0x21dde5+')':'',_0x57976a={'hookSpecificOutput':{'hookEventName':'SessionStart','additionalContext':_0x1e207d['ejOkl'](RANGER_AUTO_ENABLED_PROMPT,_0x4dbbab)}};console[_0x4d9104(0x9c)](JSON[_0x4d9104(0xa4)](_0x57976a));}}}
@@ -1 +1 @@
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
+ (function(_0x383564,_0x36fe81){const _0x3f6de4=_0x9af1,_0x22a766=_0x383564();while(!![]){try{const _0xf1b38b=-parseInt(_0x3f6de4(0x1f5))/0x1*(-parseInt(_0x3f6de4(0x1f6))/0x2)+-parseInt(_0x3f6de4(0x1f0))/0x3+-parseInt(_0x3f6de4(0x204))/0x4+-parseInt(_0x3f6de4(0x201))/0x5*(-parseInt(_0x3f6de4(0x1fe))/0x6)+parseInt(_0x3f6de4(0x1f1))/0x7+parseInt(_0x3f6de4(0x200))/0x8*(parseInt(_0x3f6de4(0x1ff))/0x9)+parseInt(_0x3f6de4(0x1f2))/0xa*(-parseInt(_0x3f6de4(0x1f3))/0xb);if(_0xf1b38b===_0x36fe81)break;else _0x22a766['push'](_0x22a766['shift']());}catch(_0x1a8b3d){_0x22a766['push'](_0x22a766['shift']());}}}(_0x5e27,0x97ec3));function _0x9af1(_0x3f5682,_0x5191cc){_0x3f5682=_0x3f5682-0x1ed;const _0x5e27bb=_0x5e27();let _0x9af114=_0x5e27bb[_0x3f5682];return _0x9af114;}import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';import{getEnabledHookContext}from'./output.js';function _0x5e27(){const _0x224378=['stringify','731784qsVhhN','TDFKK','status','blocked','Stop','3536427cXqnjH','943054xebqmu','120LqxeIB','215105yftaOA','checklistItems','31526KuXWIA','68jDWMyi','qUlyb','success','some','sessionId','featureId','CJeWQ','https://dashboard.ranger.net/features/','3977070WGgLjj','5013aAbBRb','5016UUjndw','5SzOMSJ','cgpCH'];_0x5e27=function(){return _0x224378;};return _0x5e27();}import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x72d33b){const _0x49f659=_0x9af1,_0xe3259a={'cgpCH':function(_0x30d1a6,_0x572afe){return _0x30d1a6(_0x572afe);},'CJeWQ':function(_0x2b9de5,_0x16377c){return _0x2b9de5(_0x16377c);},'zpTDt':function(_0x3cfc0b){return _0x3cfc0b();},'qUlyb':function(_0x3aff86,_0x1c7571){return _0x3aff86&&_0x1c7571;},'KgbyK':_0x49f659(0x1ef),'TDFKK':function(_0x2a428a,_0x4940e0,_0x358f03,_0x31e847){return _0x2a428a(_0x4940e0,_0x358f03,_0x31e847);}},_0x2fd110=await _0xe3259a[_0x49f659(0x202)](getEnabledHookContext,_0x72d33b),_0x2b873=_0x2fd110?.['sessionId']??null;let _0x24730a=!![];if(!_0x2b873){await trackStop(_0x2b873,![],_0x24730a);return;}try{const _0x1e9109=_0xe3259a[_0x49f659(0x1fc)](getSessionEntry,_0x2b873);if(!_0x1e9109){await trackStop(_0x2b873,!![],_0x24730a);return;}const _0x117e77=await _0xe3259a['zpTDt'](getToken),_0x5e8631=_0x49f659(0x1fd)+_0x1e9109['featureId'];let _0x527382=null,_0x3e283c=![],_0x525f4a=![];if(_0x117e77)try{const _0x424d2f=await getFeature(_0x1e9109['featureId']);_0x527382=_0x424d2f['currentSessionId']??null;const _0x5a796e=_0x424d2f[_0x49f659(0x1f4)]['filter'](_0xd4c060=>_0xd4c060[_0x49f659(0x1fa)]===_0x527382);_0x3e283c=_0x5a796e['some'](_0x4da2ae=>_0x4da2ae['status']!=='verified'&&_0x4da2ae[_0x49f659(0x1ed)]!==_0x49f659(0x1ee)&&_0x4da2ae['status']!=='closed'&&_0x4da2ae['status']!=='incomplete'),_0x525f4a=_0x5a796e[_0x49f659(0x1f9)](_0x2c044f=>_0x2c044f['status']==='verification_in_progress');}catch{}if(_0xe3259a['qUlyb'](_0x117e77,_0x527382)&&_0x3e283c){if(!_0x525f4a&&shouldShowStopReminder(_0x2b873)){const _0x5adc67={'hookSpecificOutput':{'hookEventName':_0xe3259a['KgbyK'],'additionalContext':'RANGER:\x20The\x20active\x20feature\x20review\x20still\x20has\x20unfinished\x20checklist\x20items.\x20Before\x20responding\x20to\x20the\x20user,\x20if\x20this\x20UI\x20work\x20is\x20ready,\x20run\x20`ranger\x20show`\x20and\x20then\x20`ranger\x20go`\x20for\x20the\x20relevant\x20scenario(s).\x20If\x20it\x20is\x20not\x20ready\x20for\x20browser\x20verification\x20yet,\x20continue\x20implementing.\x20Dashboard:\x20'+_0x5e8631}};console['log'](JSON[_0x49f659(0x203)](_0x5adc67));}}if(_0xe3259a[_0x49f659(0x1f7)](_0x117e77,_0x527382)&&!_0x3e283c)try{await concludeSession(_0x1e9109[_0x49f659(0x1fb)],_0x527382);}catch{}await trackStop(_0x2b873,!![],_0x24730a);return;}catch{await _0xe3259a[_0x49f659(0x205)](trackStop,_0x2b873,!![],_0x24730a);return;}}async function trackStop(_0x2ec11f,_0x2c039d,_0x1fa626){const _0xe5c260=_0x9af1,_0x4376f9={'dvKTs':_0xe5c260(0x1f8)};try{const _0x18a002=createTelemetryCollector('hook:stop');await _0x18a002['trackCommandStart']({'sessionId':_0x2ec11f??undefined,'hooksEnabled':_0x2c039d,'stopAllowed':_0x1fa626}),await _0x18a002['trackCommandEnd'](_0x4376f9['dvKTs']);}catch{}}
@@ -1 +1 @@
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
+ function _0x55f9(_0x4f69aa,_0x52a3ac){_0x4f69aa=_0x4f69aa-0x1ad;var _0x12e9ab=_0x12e9();var _0x55f95c=_0x12e9ab[_0x4f69aa];return _0x55f95c;}(function(_0x3f5178,_0xabcf59){var _0x2ec79f=_0x55f9,_0x416c47=_0x3f5178();while(!![]){try{var _0x588a5f=parseInt(_0x2ec79f(0x1b3))/0x1*(-parseInt(_0x2ec79f(0x1ad))/0x2)+-parseInt(_0x2ec79f(0x1b1))/0x3*(parseInt(_0x2ec79f(0x1b5))/0x4)+-parseInt(_0x2ec79f(0x1b2))/0x5*(-parseInt(_0x2ec79f(0x1ae))/0x6)+parseInt(_0x2ec79f(0x1b7))/0x7+parseInt(_0x2ec79f(0x1b4))/0x8+-parseInt(_0x2ec79f(0x1b6))/0x9*(-parseInt(_0x2ec79f(0x1b8))/0xa)+parseInt(_0x2ec79f(0x1b0))/0xb*(parseInt(_0x2ec79f(0x1af))/0xc);if(_0x588a5f===_0xabcf59)break;else _0x416c47['push'](_0x416c47['shift']());}catch(_0x525f65){_0x416c47['push'](_0x416c47['shift']());}}}(_0x12e9,0x7d50e));export{addEnv}from'./addEnv.js';export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';export{useEnv}from'./useEnv.js';function _0x12e9(){var _0x1281f4=['1468555syJyja','27MzMcRT','2084495uSajLZ','3222SZVqxu','786216lTVSNw','378888GvzaKj','3127914MQDLGT','67823VhRUaj','20WbiZmU','334VcaJPR','12JfubHl','24jRHyTO'];_0x12e9=function(){return _0x1281f4;};return _0x12e9();}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(_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
+ (function(_0x4dca48,_0xacad5e){const _0x4c8138=_0x6180,_0xade248=_0x4dca48();while(!![]){try{const _0x38e375=parseInt(_0x4c8138(0x7b))/0x1*(-parseInt(_0x4c8138(0x74))/0x2)+parseInt(_0x4c8138(0x72))/0x3*(-parseInt(_0x4c8138(0x77))/0x4)+-parseInt(_0x4c8138(0x79))/0x5*(parseInt(_0x4c8138(0x73))/0x6)+parseInt(_0x4c8138(0x6c))/0x7*(-parseInt(_0x4c8138(0x6e))/0x8)+-parseInt(_0x4c8138(0x76))/0x9*(parseInt(_0x4c8138(0x70))/0xa)+-parseInt(_0x4c8138(0x78))/0xb+parseInt(_0x4c8138(0x6b))/0xc;if(_0x38e375===_0xacad5e)break;else _0xade248['push'](_0xade248['shift']());}catch(_0x264cd9){_0xade248['push'](_0xade248['shift']());}}}(_0x5a41,0xaa1c1));import{runDeviceAuthFlow}from'./utils/deviceAuth.js';function _0x5a41(){const _0xebfbdb=['stdin','19uRHfFh','\x0a✅\x20Logged\x20in\x20to\x20','isTTY','55381848YEihOL','518vYbwlI','log','58592ydrERi','Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.','610sIsLaf','Login\x20failed:\x20','9Klcbkq','1512gnElEW','78262dslTAT','message','89433YPYETX','875884qnHIRK','5690674XCJUZc','16915wqrIvq'];_0x5a41=function(){return _0xebfbdb;};return _0x5a41();}function _0x6180(_0x1b8cdc,_0x4aa92d){_0x1b8cdc=_0x1b8cdc-0x69;const _0x5a4184=_0x5a41();let _0x61809f=_0x5a4184[_0x1b8cdc];return _0x61809f;}import{getCurrentUser}from'./utils/userApi.js';export async function login(){const _0x42b9dc=_0x6180,_0x2ba933={'hOvXU':function(_0x102192,_0x13bc60){return _0x102192(_0x13bc60);},'uSqnZ':'\x0a✅\x20API\x20key\x20stored\x20successfully'},_0x7d38e7=process[_0x42b9dc(0x7a)][_0x42b9dc(0x6a)]&&process['stdout']['isTTY'];if(!_0x7d38e7)throw new Error(_0x42b9dc(0x6f));try{const _0x349eea=await runDeviceAuthFlow(),_0x3c9f22=await _0x2ba933['hOvXU'](getCurrentUser,_0x349eea);_0x3c9f22['success']?console['log'](_0x42b9dc(0x69)+_0x3c9f22['user']['organizationName']):console[_0x42b9dc(0x6d)](_0x2ba933['uSqnZ']);}catch(_0x5c0468){throw new Error(_0x42b9dc(0x71)+(_0x5c0468 instanceof Error?_0x5c0468[_0x42b9dc(0x75)]:_0x5c0468));}}
@@ -1 +1 @@
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
+ (function(_0x5898d6,_0x21022c){const _0x4e1e33=_0x923c,_0x5792f8=_0x5898d6();while(!![]){try{const _0x594507=parseInt(_0x4e1e33(0x1f9))/0x1*(-parseInt(_0x4e1e33(0x1fb))/0x2)+-parseInt(_0x4e1e33(0x1f3))/0x3*(parseInt(_0x4e1e33(0x1f1))/0x4)+-parseInt(_0x4e1e33(0x1dd))/0x5*(-parseInt(_0x4e1e33(0x1cf))/0x6)+parseInt(_0x4e1e33(0x1de))/0x7*(-parseInt(_0x4e1e33(0x1f6))/0x8)+-parseInt(_0x4e1e33(0x1c6))/0x9+-parseInt(_0x4e1e33(0x1ea))/0xa*(parseInt(_0x4e1e33(0x1d5))/0xb)+parseInt(_0x4e1e33(0x1ec))/0xc;if(_0x594507===_0x21022c)break;else _0x5792f8['push'](_0x5792f8['shift']());}catch(_0x560845){_0x5792f8['push'](_0x5792f8['shift']());}}}(_0x11fb,0x9bcff));function _0x11fb(){const _0x1ea117=['✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','cHJUh','ranger','\x0a📦\x20Claude\x20Code\x20Plugin\x0a','1840665rWnsjf','2302433jlGfUW','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','Fqicr','ukhwX','fAsib','.claude','\x20level)...\x0a','sRtWx','Project\x20(shared\x20with\x20team\x20via\x20git)','yfrJv','IFqBC','Where\x20should\x20the\x20plugin\x20be\x20installed?','648190jXGIFL','BbtRu','36702372cWLezP','RazXy','success','already\x20enabled','list','1463816darOpf','SKILL.md','3OoGZpR','prompt','AuJGI','8MMhdnJ','pluginScope','install','24SETRyN','includes','94618gJnCzq','11353338AxejIU','AEFaj','trailhead','error','log','--scope','output','plugin','project','12stDOXd','enable','\x0aYou\x20can\x20install\x20manually\x20with:','zDziJ','ranger@trailhead','tQCeP','11YPAcJK','qSYzl','rGucr'];_0x11fb=function(){return _0x1ea117;};return _0x11fb();}import{join}from'path';import{existsSync}from'fs';function _0x923c(_0x2c9331,_0x12db51){_0x2c9331=_0x2c9331-0x1c6;const _0x11fb40=_0x11fb();let _0x923cdc=_0x11fb40[_0x2c9331];return _0x923cdc;}import _0x7de497 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(_0x533e7b){const _0x4bc55d=_0x923c,_0x26a8fd={'gZcDx':_0x4bc55d(0x1d3),'UHVWw':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','RazXy':function(_0x4d2aaa,_0x4481e0){return _0x4d2aaa(_0x4481e0);},'elJEl':function(_0x380e32,_0x48d9ad,_0x23b875){return _0x380e32(_0x48d9ad,_0x23b875);},'yoINA':'.claude','IFqBC':_0x4bc55d(0x1ce),'rGucr':_0x4bc55d(0x1dc),'Fqicr':'user','tQCeP':_0x4bc55d(0x1e6),'sRtWx':'plugin','qSYzl':'marketplace','MKCNs':function(_0x5c57ea,_0x112259){return _0x5c57ea(_0x112259);},'cHJUh':_0x4bc55d(0x1cb),'lsrpa':'❌\x20Failed\x20to\x20install\x20plugin:','jgPFB':'\x0aYou\x20can\x20install\x20manually\x20with:','ukhwX':function(_0x37a521,_0xa2ac7f,_0x2a8590){return _0x37a521(_0xa2ac7f,_0x2a8590);},'XuJSB':_0x4bc55d(0x1ef),'fAsib':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x38db1b=await isPluginInstalled(_0x26a8fd['gZcDx']);if(_0x38db1b)return console[_0x4bc55d(0x1ca)](_0x26a8fd['UHVWw']),![];const _0x7ba3cb=_0x26a8fd[_0x4bc55d(0x1ed)](existsSync,_0x26a8fd['elJEl'](join,getProjectRoot(),_0x26a8fd['yoINA']));let _0x29e10f;if(_0x533e7b)_0x29e10f=_0x533e7b;else{if(_0x7ba3cb)_0x29e10f=_0x26a8fd[_0x4bc55d(0x1e8)];else{console['log'](_0x26a8fd[_0x4bc55d(0x1d7)]);const _0x2f7f00=await _0x7de497['prompt']([{'type':_0x4bc55d(0x1f0),'name':'pluginScope','message':_0x4bc55d(0x1e9),'choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':_0x26a8fd[_0x4bc55d(0x1e0)]},{'name':_0x26a8fd[_0x4bc55d(0x1d4)],'value':_0x26a8fd['IFqBC']}],'default':_0x26a8fd[_0x4bc55d(0x1e0)]}]);_0x29e10f=_0x2f7f00[_0x4bc55d(0x1f7)];}}console['log'](_0x4bc55d(0x1d9)+_0x29e10f+_0x4bc55d(0x1e4));const _0x107856=await _0x26a8fd[_0x4bc55d(0x1ed)](isMarketplaceAdded,_0x4bc55d(0x1c8));let _0x113db5=_0x107856;if(_0x107856)console['log']('✓\x20Marketplace\x20already\x20added');else{const _0x54fde6=await runClaudeCommand([_0x26a8fd[_0x4bc55d(0x1e5)],_0x26a8fd[_0x4bc55d(0x1d6)],'add','ranger-testing/trailhead']);!_0x54fde6['success']?(console['error']('❌\x20Failed\x20to\x20add\x20marketplace:',_0x54fde6[_0x4bc55d(0x1c9)]),console['log'](_0x4bc55d(0x1d1)),console['log'](_0x4bc55d(0x1df)),console[_0x4bc55d(0x1ca)]('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x29e10f)):_0x113db5=!![];}if(_0x113db5){const _0x532c75=await _0x26a8fd['MKCNs'](runClaudeCommand,[_0x4bc55d(0x1cd),_0x4bc55d(0x1f8),_0x26a8fd['gZcDx'],_0x26a8fd['cHJUh'],_0x29e10f]);if(!_0x532c75[_0x4bc55d(0x1ee)])console[_0x4bc55d(0x1c9)](_0x26a8fd['lsrpa'],_0x532c75[_0x4bc55d(0x1c9)]),console[_0x4bc55d(0x1ca)](_0x26a8fd['jgPFB']),console['log']('\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20'+_0x29e10f);else{console['log'](_0x4bc55d(0x1d8));const _0x557edf=[_0x4bc55d(0x1cd),_0x4bc55d(0x1d0),'ranger@trailhead'];_0x29e10f===_0x26a8fd[_0x4bc55d(0x1e8)]&&_0x557edf['push'](_0x26a8fd[_0x4bc55d(0x1da)],_0x4bc55d(0x1ce));const _0x47a2f4=await _0x26a8fd[_0x4bc55d(0x1e1)](runClaudeCommand,_0x557edf,{'captureOutput':!![]}),_0x4ce526=_0x47a2f4[_0x4bc55d(0x1cc)]?.[_0x4bc55d(0x1fa)](_0x26a8fd['XuJSB']);!_0x47a2f4['success']&&!_0x4ce526?console['error']('⚠\x20Failed\x20to\x20enable\x20plugin:',_0x47a2f4['error']):console[_0x4bc55d(0x1ca)](_0x26a8fd[_0x4bc55d(0x1e2)]);}}return!![];}export async function ensureClaudeSkills(_0x34047a){const _0x391560=_0x923c,_0x43c176={'ZaLOa':'user','AEFaj':_0x391560(0x1f2),'XJrot':function(_0x4a0a91,_0x5a0c9b){return _0x4a0a91(_0x5a0c9b);},'NwjJx':function(_0x57d18e,_0x32c32d,_0x92ffd7,_0x5e821d){return _0x57d18e(_0x32c32d,_0x92ffd7,_0x5e821d);},'AuJGI':'project','CUEMx':_0x391560(0x1db),'JurVx':function(_0x20be46,_0x496c97){return _0x20be46||_0x496c97;},'BbtRu':function(_0x51cceb,_0x567905){return _0x51cceb(_0x567905);},'hPYyk':function(_0x16bc56,_0x54c30f,_0x1d62a9){return _0x16bc56(_0x54c30f,_0x1d62a9);},'LIcJS':_0x391560(0x1e3),'zDziJ':function(_0x5f36c7,_0x4bf771){return _0x5f36c7(_0x4bf771);},'yfrJv':'confirm'},_0x14efb4=existsSync(join(getSkillsDir(_0x43c176['ZaLOa']),'ranger',_0x43c176[_0x391560(0x1c7)])),_0x4d12ca=_0x43c176['XJrot'](existsSync,_0x43c176['NwjJx'](join,getSkillsDir(_0x43c176[_0x391560(0x1f5)]),_0x43c176['CUEMx'],_0x43c176[_0x391560(0x1c7)]));if(_0x43c176['JurVx'](_0x14efb4,_0x4d12ca))return console[_0x391560(0x1ca)]('✓\x20Ranger\x20skills\x20already\x20installed'),![];const _0x3d7f95=_0x43c176[_0x391560(0x1eb)](existsSync,_0x43c176['hPYyk'](join,getProjectRoot(),_0x43c176['LIcJS']));let _0x3645a1=!![];if(_0x34047a)await _0x43c176[_0x391560(0x1d2)](skillup,{'autoInstall':_0x34047a,'suppressUsage':!![]});else{if(_0x3d7f95)await skillup({'autoInstall':_0x43c176['AuJGI'],'suppressUsage':!![]});else{const _0x53f46a=await _0x7de497[_0x391560(0x1f4)]([{'type':_0x43c176[_0x391560(0x1e7)],'name':'wantsSkillup','message':'Would\x20you\x20like\x20to\x20install\x20skills?','default':!![]}]);_0x3645a1=_0x53f46a['wantsSkillup'],_0x3645a1&&await skillup({'suppressUsage':!![]});}}return _0x3645a1;}
@@ -1 +1 @@
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
+ (function(_0x1620ba,_0x549326){const _0x3a8ec9=_0x2c5b,_0x583ba7=_0x1620ba();while(!![]){try{const _0x800965=-parseInt(_0x3a8ec9(0xf0))/0x1*(-parseInt(_0x3a8ec9(0x104))/0x2)+parseInt(_0x3a8ec9(0xff))/0x3*(parseInt(_0x3a8ec9(0xf7))/0x4)+-parseInt(_0x3a8ec9(0xef))/0x5+parseInt(_0x3a8ec9(0x107))/0x6*(-parseInt(_0x3a8ec9(0x109))/0x7)+-parseInt(_0x3a8ec9(0xf4))/0x8*(-parseInt(_0x3a8ec9(0xfc))/0x9)+parseInt(_0x3a8ec9(0x108))/0xa*(parseInt(_0x3a8ec9(0x105))/0xb)+parseInt(_0x3a8ec9(0x103))/0xc*(parseInt(_0x3a8ec9(0xe9))/0xd);if(_0x800965===_0x549326)break;else _0x583ba7['push'](_0x583ba7['shift']());}catch(_0x4ad9a2){_0x583ba7['push'](_0x583ba7['shift']());}}}(_0x5d30,0xf1ff9));function _0x5d30(){const _0x130d71=['9190742QwFdaa','prompt','399198uOeZpm','10JGSnhR','203ZOFggO','error','CptFY','User\x20(available\x20in\x20all\x20your\x20projects)','228644Bcqdsd','isArray','project','plugin','https://opencode.ai/config.json','Pydqd','6957235jVkfzG','5803URBYmv','keQuA','opencode.json','Failed\x20to\x20read\x20opencode.json','32IxqJoC','log','\x0a📦\x20OpenCode\x20Plugin\x0a','899848YUsQir','DNmPU','pluginScope','stringify','$schema','1618443VhTKYb','✓\x20OpenCode\x20plugin\x20already\x20configured','GOMNp','12mAgzAE','jAqXK','kcqAb','@ranger-testing/opencode-plugin','1200HoLFbk','34hYCjkL'];_0x5d30=function(){return _0x130d71;};return _0x5d30();}import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';import _0x320fbd from'inquirer';function _0x2c5b(_0x265bc4,_0x242488){_0x265bc4=_0x265bc4-0xe7;const _0x5d3088=_0x5d30();let _0x2c5b94=_0x5d3088[_0x265bc4];return _0x2c5b94;}import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';export async function ensureOpencodePluginConfig(_0x6da74a){const _0x1e86fd=_0x2c5b,_0x265292={'keQuA':function(_0xa4c79a,_0xb64b33){return _0xa4c79a(_0xb64b33);},'CptFY':_0x1e86fd(0xeb),'GOMNp':_0x1e86fd(0xf2),'kcqAb':_0x1e86fd(0xf6),'lQMVK':_0x1e86fd(0xe8),'tOBkt':'user','jAqXK':'Project\x20(shared\x20with\x20team\x20via\x20git)','Pydqd':'utf-8','xCjfm':'⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','HumpD':_0x1e86fd(0xfd),'DNmPU':function(_0x38afe3,_0x42e741){return _0x38afe3+_0x42e741;}},_0xfccff3=existsSync(join(_0x265292[_0x1e86fd(0xf1)](getOpencodeConfigDir,_0x265292[_0x1e86fd(0xe7)]),_0x265292[_0x1e86fd(0xfe)]));let _0x557031;if(_0x6da74a)_0x557031=_0x6da74a;else{if(_0xfccff3)_0x557031='project';else{console[_0x1e86fd(0xf5)](_0x265292[_0x1e86fd(0x101)]);const _0x553901=await _0x320fbd[_0x1e86fd(0x106)]([{'type':'list','name':_0x1e86fd(0xf9),'message':'Where\x20should\x20the\x20plugin\x20be\x20installed?','choices':[{'name':_0x265292['lQMVK'],'value':_0x265292['tOBkt']},{'name':_0x265292[_0x1e86fd(0x100)],'value':_0x265292['CptFY']}],'default':'user'}]);_0x557031=_0x553901['pluginScope'];}}const _0x18d89b=join(getOpencodeConfigDir(_0x557031),_0x265292[_0x1e86fd(0xfe)]),_0x469606=_0x1e86fd(0x102),_0x5928f8=_0x1e86fd(0xed);let _0x2f2787={};if(existsSync(_0x18d89b))try{const _0x3b1d55=await readFile(_0x18d89b,_0x265292[_0x1e86fd(0xee)]);_0x2f2787=JSON['parse'](_0x3b1d55);}catch(_0x5bc779){return console[_0x1e86fd(0x10a)](_0x265292['xCjfm']),{'configured':![],'scope':_0x557031,'error':_0x1e86fd(0xf3),'details':_0x5bc779};}const _0x5ed474=Array[_0x1e86fd(0xea)](_0x2f2787[_0x1e86fd(0xec)])?_0x2f2787[_0x1e86fd(0xec)]:[];if(_0x5ed474['includes'](_0x469606))return console['log'](_0x265292['HumpD']),{'configured':![],'scope':_0x557031};return _0x2f2787['$schema']=_0x2f2787[_0x1e86fd(0xfb)]||_0x5928f8,_0x2f2787['plugin']=[..._0x5ed474,_0x469606],await mkdir(_0x265292['keQuA'](getOpencodeConfigDir,_0x557031),{'recursive':!![]}),await writeFile(_0x18d89b,_0x265292[_0x1e86fd(0xf8)](JSON[_0x1e86fd(0xfa)](_0x2f2787,null,0x2),'\x0a')),console[_0x1e86fd(0xf5)]('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0x557031};}
@@ -1 +1 @@
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
+ function _0x3c23(){const _0x51b16c=['tnxlU','trackPhaseStart','settings.json','16KcsfXv','project','bKOdS','✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','jQuUB','6838700luPRrO','--scope','dir_setup','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','Auto-detected\x20CI\x20profile:\x20','skipChromium','trackPhaseEnd','toNac','message','✓\x20Claude\x20Code\x20plugin\x20installed','16YPzYpy','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','✓\x20Created\x20profile\x20settings:\x20baseUrl=','1587432QanbXj','auth','mxsiX','sXbaS','FoJIv','success','OQHft','length','Failed\x20to\x20install\x20plugin:','baseUrl','\x22:\x20','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','auth.json.enc','\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.','UNTXo','444436GyWiUl','install','add','plugin','6Tofele','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','qCHCH','sessions','error','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','NIEOp','279330VNGgRF','yNphD','2446440HSVfQl','83178YzrMAL','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','ZvARQ','ranger@trailhead','eNpaA','name','600955aTmWqb','marketplace','jRIjD','hlRdW','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','skills','log'];_0x3c23=function(){return _0x51b16c;};return _0x3c23();}(function(_0x52b68f,_0x112b72){const _0x319ac1=_0x512c,_0x374c24=_0x52b68f();while(!![]){try{const _0x2cf3a2=parseInt(_0x319ac1(0x149))/0x1+parseInt(_0x319ac1(0x13e))/0x2*(-parseInt(_0x319ac1(0x142))/0x3)+-parseInt(_0x319ac1(0x16b))/0x4*(-parseInt(_0x319ac1(0x152))/0x5)+parseInt(_0x319ac1(0x14b))/0x6+parseInt(_0x319ac1(0x16e))/0x7+-parseInt(_0x319ac1(0x15c))/0x8*(-parseInt(_0x319ac1(0x14c))/0x9)+-parseInt(_0x319ac1(0x161))/0xa;if(_0x2cf3a2===_0x112b72)break;else _0x374c24['push'](_0x374c24['shift']());}catch(_0x3fd640){_0x374c24['push'](_0x374c24['shift']());}}}(_0x3c23,0x45874));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';function _0x512c(_0x16e99e,_0xb67c7a){_0x16e99e=_0x16e99e-0x13a;const _0x3c23e5=_0x3c23();let _0x512c2d=_0x3c23e5[_0x16e99e];return _0x512c2d;}import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x3f2ff3){const _0x37a42a=_0x512c,_0x273db7={'OQHft':function(_0x579b73){return _0x579b73();},'NIEOp':'No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','yNphD':'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.','jRIjD':function(_0x4a322d,_0x22df1a,_0x35e2b9){return _0x4a322d(_0x22df1a,_0x35e2b9);},'MwEwj':function(_0x2dae56,_0x3ac4dd){return _0x2dae56===_0x3ac4dd;},'qCHCH':function(_0xc61b6a,_0x1102bf){return _0xc61b6a+_0x1102bf;}},_0x55f4eb=_0x273db7[_0x37a42a(0x174)](getRangerDir),_0x2eee1d=join(_0x55f4eb,'ci');if(_0x3f2ff3){const _0x164d54=join(_0x2eee1d,_0x3f2ff3);return{'name':_0x3f2ff3,'path':_0x164d54};}if(!existsSync(_0x2eee1d))throw new Error(_0x273db7[_0x37a42a(0x148)]+_0x273db7[_0x37a42a(0x14a)]);const _0x4f7248=await _0x273db7[_0x37a42a(0x154)](readdir,_0x2eee1d,{'withFileTypes':!![]}),_0x273822=_0x4f7248['filter'](_0x4b7c33=>_0x4b7c33['isDirectory']())['map'](_0x5b7ed3=>_0x5b7ed3[_0x37a42a(0x151)]);if(_0x273db7['MwEwj'](_0x273822['length'],0x0))throw new Error(_0x273db7[_0x37a42a(0x144)](_0x37a42a(0x13a),_0x273db7['yNphD']));if(_0x273822[_0x37a42a(0x175)]===0x1){const _0x3f9d0d=_0x273822[0x0];return console['log'](_0x37a42a(0x165)+_0x3f9d0d),{'name':_0x3f9d0d,'path':join(_0x2eee1d,_0x3f9d0d)};}throw new Error('Multiple\x20CI\x20profiles\x20found:\x20'+_0x273822['join'](',\x20')+_0x37a42a(0x16c));}async function installPluginNonInteractive(){const _0x1d4620=_0x512c,_0x4bef1f={'qrsQc':'✓\x20Marketplace\x20already\x20added','sXbaS':function(_0x3e055f,_0x120d14){return _0x3e055f(_0x120d14);},'toNac':_0x1d4620(0x153),'FoJIv':'ranger-testing/trailhead','jQuUB':'Failed\x20to\x20add\x20marketplace:','UNTXo':_0x1d4620(0x164),'rjUzE':function(_0x4c03d9,_0x2887bf){return _0x4c03d9(_0x2887bf);},'MArcG':_0x1d4620(0x162),'tnxlU':_0x1d4620(0x15d),'cdRSs':_0x1d4620(0x16a)},_0x4f50e5=await isPluginInstalled(_0x1d4620(0x14f));if(_0x4f50e5)return console['log']('✓\x20Claude\x20Code\x20plugin\x20already\x20installed'),![];console[_0x1d4620(0x158)]('Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...');const _0x54a793=await isMarketplaceAdded('trailhead');let _0x1ed6a5=_0x54a793;if(_0x54a793)console[_0x1d4620(0x158)](_0x4bef1f['qrsQc']);else{const _0x37d8ff=await _0x4bef1f[_0x1d4620(0x171)](runClaudeCommand,['plugin',_0x4bef1f[_0x1d4620(0x168)],_0x1d4620(0x140),_0x4bef1f[_0x1d4620(0x172)]]);!_0x37d8ff[_0x1d4620(0x173)]?(console[_0x1d4620(0x146)](_0x4bef1f[_0x1d4620(0x160)],_0x37d8ff['error']),console['log'](_0x4bef1f[_0x1d4620(0x13d)])):_0x1ed6a5=!![];}if(_0x1ed6a5){const _0x175ea5=await _0x4bef1f['rjUzE'](runClaudeCommand,['plugin',_0x1d4620(0x13f),_0x1d4620(0x14f),_0x4bef1f['MArcG'],_0x4bef1f[_0x1d4620(0x159)]]);!_0x175ea5['success']?(console['error'](_0x1d4620(0x176),_0x175ea5['error']),console['log'](_0x1d4620(0x147))):console[_0x1d4620(0x158)](_0x4bef1f['cdRSs']);}return!![];}export async function setupCi(_0x4375ad,_0x2bc89f,_0x122a43){const _0x1d8b62=_0x512c,_0x24ffe8={'IMySj':'\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','ssQoe':_0x1d8b62(0x16f),'bKOdS':function(_0x397af4,_0x16cadf){return _0x397af4(_0x16cadf);},'ZPQMl':_0x1d8b62(0x163),'OOAsm':_0x1d8b62(0x145),'PMTDo':function(_0x3c7d0b,_0x52bbb5){return _0x3c7d0b(_0x52bbb5);},'MfPVG':'chromium','rclNg':function(_0x59f7e1){return _0x59f7e1();},'mxsiX':'profile_activate','ZvARQ':function(_0x585a48,_0x551fe8,_0x26851c){return _0x585a48(_0x551fe8,_0x26851c);},'NCfSP':function(_0x4be512,_0x1a3d28,_0x24e280){return _0x4be512(_0x1a3d28,_0x24e280);},'aKBXw':_0x1d8b62(0x15b),'SfkyE':function(_0x2f4ab1,_0x704fb8,_0x44aff1){return _0x2f4ab1(_0x704fb8,_0x44aff1);},'hlRdW':function(_0x13542f,_0x492312){return _0x13542f(_0x492312);},'EcrRf':_0x1d8b62(0x15f),'mtMMy':function(_0x5576fc,_0x1cfb5f){return _0x5576fc instanceof _0x1cfb5f;},'uAgCS':'✓\x20Auth\x20state\x20found','PKHIB':_0x1d8b62(0x143),'EBSSV':function(_0x4752db,_0x23affe){return _0x4752db(_0x23affe);},'bZMuN':_0x1d8b62(0x141),'eNpaA':'skills','OXuVu':'\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a'};console['log'](_0x24ffe8['IMySj']),_0x122a43?.['trackPhaseStart'](_0x24ffe8['ssQoe']),await _0x24ffe8[_0x1d8b62(0x15e)](authenticate,_0x4375ad),_0x122a43?.[_0x1d8b62(0x167)]('auth'),_0x122a43?.['trackPhaseStart'](_0x24ffe8['ZPQMl']);const {path:_0xc18f86,installed:_0x27c727}=await ensureRangerDir();await writeRangerGitignore(_0xc18f86);const _0x8f1fd4=join(_0xc18f86,_0x24ffe8['OOAsm']);!_0x24ffe8['PMTDo'](existsSync,_0x8f1fd4)&&await mkdir(_0x8f1fd4,{'recursive':!![]});_0x122a43?.['trackPhaseEnd']('dir_setup',{'installed':_0x27c727}),_0x122a43?.['trackPhaseStart'](_0x24ffe8['MfPVG']);let _0x1751a1=![];_0x2bc89f?.[_0x1d8b62(0x166)]?console[_0x1d8b62(0x158)](_0x1d8b62(0x14d)):_0x1751a1=await _0x24ffe8['rclNg'](ensureChromium);_0x122a43?.['trackPhaseEnd']('chromium',{'installed':_0x1751a1,'skipped':!!_0x2bc89f?.['skipChromium']}),_0x122a43?.[_0x1d8b62(0x15a)](_0x24ffe8[_0x1d8b62(0x170)]);const _0x41b233=await findCiProfile(_0x2bc89f?.['profile']);let _0x213efd=![];_0x2bc89f?.[_0x1d8b62(0x177)]&&(await _0x24ffe8[_0x1d8b62(0x14e)](mkdir,_0x41b233['path'],{'recursive':!![]}),await saveSettings(_0x41b233[_0x1d8b62(0x151)],{'baseUrl':_0x2bc89f[_0x1d8b62(0x177)],'headless':!![]}),console[_0x1d8b62(0x158)](_0x1d8b62(0x16d)+_0x2bc89f['baseUrl']),_0x213efd=!![]);const _0x4ec8ac=_0x24ffe8['NCfSP'](join,_0x41b233['path'],_0x24ffe8['aKBXw']);if(!existsSync(_0x4ec8ac)&&!_0x213efd)throw new Error('CI\x20profile\x20\x22'+_0x41b233[_0x1d8b62(0x151)]+_0x1d8b62(0x13c));const _0x467c06=join(_0x41b233['path'],'auth.json'),_0x273a00=_0x24ffe8['SfkyE'](join,_0x41b233['path'],_0x1d8b62(0x13b)),_0x2b207a=existsSync(_0x467c06),_0x285c4e=_0x24ffe8[_0x1d8b62(0x155)](existsSync,_0x273a00);if(_0x285c4e)try{const _0x487122=await _0x24ffe8['rclNg'](getToken);if(!_0x487122)throw new Error('No\x20API\x20token\x20available\x20for\x20decryption');const _0x46e40f=await readFile(_0x273a00);decrypt(_0x46e40f,_0x487122),console['log'](_0x24ffe8['EcrRf']);}catch(_0x33c09c){const _0x578912=_0x24ffe8['mtMMy'](_0x33c09c,Error)?_0x33c09c[_0x1d8b62(0x169)]:String(_0x33c09c);throw new Error(_0x1d8b62(0x156)+_0x41b233[_0x1d8b62(0x151)]+_0x1d8b62(0x178)+_0x578912);}else _0x2b207a?console[_0x1d8b62(0x158)](_0x24ffe8['uAgCS']):console[_0x1d8b62(0x158)](_0x24ffe8['PKHIB']);await _0x24ffe8['EBSSV'](writeActiveProfileName,_0x41b233[_0x1d8b62(0x151)]),console[_0x1d8b62(0x158)]('✓\x20Active\x20profile:\x20'+_0x41b233[_0x1d8b62(0x151)]),_0x122a43?.['trackPhaseEnd']('profile_activate',{'profileName':_0x41b233['name'],'hasAuth':_0x2b207a,'hasEncryptedAuth':_0x285c4e,'createdSettings':_0x213efd}),_0x122a43?.['trackPhaseStart'](_0x24ffe8['bZMuN']);const _0x47f565=await installPluginNonInteractive();_0x122a43?.['trackPhaseEnd'](_0x24ffe8['bZMuN'],{'installed':_0x47f565}),_0x122a43?.['trackPhaseStart'](_0x24ffe8[_0x1d8b62(0x150)]),await _0x24ffe8['PMTDo'](skillup,{'autoInstall':'project'}),_0x122a43?.[_0x1d8b62(0x167)](_0x1d8b62(0x157)),console[_0x1d8b62(0x158)](_0x24ffe8['OXuVu']);}
@@ -1 +1 @@
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
+ (function(_0x19d7fa,_0x3b4a98){const _0x4af02e=_0x24cd,_0x26126e=_0x19d7fa();while(!![]){try{const _0x269c07=-parseInt(_0x4af02e(0xa7))/0x1*(-parseInt(_0x4af02e(0xba))/0x2)+-parseInt(_0x4af02e(0xae))/0x3+-parseInt(_0x4af02e(0xbc))/0x4+-parseInt(_0x4af02e(0xbb))/0x5+-parseInt(_0x4af02e(0xcd))/0x6+-parseInt(_0x4af02e(0xbd))/0x7+-parseInt(_0x4af02e(0xb0))/0x8*(-parseInt(_0x4af02e(0xd3))/0x9);if(_0x269c07===_0x3b4a98)break;else _0x26126e['push'](_0x26126e['shift']());}catch(_0x57703d){_0x26126e['push'](_0x26126e['shift']());}}}(_0x5791,0x8f1dc));import{basename}from'path';import _0x3f0f8c from'inquirer';import{getToken}from'./utils/keychain.js';function _0x24cd(_0x196261,_0x4ea95a){_0x196261=_0x196261-0xa7;const _0x579146=_0x5791();let _0x24cd95=_0x579146[_0x196261];return _0x24cd95;}import{installSkill}from'./utils/skills.js';function _0x5791(){const _0x5c798a=['warn','RedIg','5399358YSCWfR','CaTDZ','/skills/','suppressUsage','stdin','xrHvK','14557041cHStWV','All\x20projects\x20(','931417iIpAwS','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','xuvsT','\x0a✅\x20Installed\x20','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a','\x20skill','138852tuQnox','message','8ZORSwR','EPIcV','isTTY','VPLNd','project','user-level','EGYZi','KbMOo','/.claude/skills/','user','2whxdLF','3572020LsDEbM','447068NlABKz','1332198BHblNm','claude','To\x20use:','log','\x20\x203.\x20Run:\x20ranger\x20skillup','FAiCt','platform','Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20(','autoInstall','stdout','\x20--opencode','opencode','WLCHA','\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli'];_0x5791=function(){return _0x5c798a;};return _0x5791();}import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x25416b={}){const _0x425100=_0x24cd,_0x510d76={'RedIg':_0x425100(0xbe),'FAiCt':function(_0x3c7146){return _0x3c7146();},'WPNSc':'To\x20get\x20started:','naHJF':function(_0x302fc5,_0x293c11){return _0x302fc5===_0x293c11;},'WLCHA':_0x425100(0xc8),'VPLNd':_0x425100(0xc7),'EPIcV':function(_0x177837,_0x4567b8){return _0x177837===_0x4567b8;},'GArwH':function(_0x2cda12,_0x32cc83){return _0x2cda12===_0x32cc83;},'KbMOo':'list','xrHvK':'Where\x20should\x20skills\x20be\x20installed?','zyNFK':function(_0x365b3b){return _0x365b3b();},'EGYZi':'\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','ORhUQ':function(_0x58c5ce,_0x1de5d2){return _0x58c5ce instanceof _0x1de5d2;},'RWNpM':'user','xuvsT':'project-level','GTsFT':function(_0x5114ae,_0x155015){return _0x5114ae>_0x155015;},'PnkHd':_0x425100(0xbf),'CaTDZ':_0x425100(0xab),'aFTZy':'\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a'};console['log'](_0x425100(0xa8));const _0x27588d=_0x25416b[_0x425100(0xc3)]??_0x510d76[_0x425100(0xcc)],_0x30a5a4=await _0x510d76[_0x425100(0xc2)](getToken);if(!_0x30a5a4){console[_0x425100(0xc0)](_0x425100(0xac)),console['log'](_0x510d76['WPNSc']),console['log'](_0x425100(0xca)),console['log']('\x20\x202.\x20Run:\x20ranger\x20setup'+(_0x510d76['naHJF'](_0x27588d,_0x510d76[_0x425100(0xc9)])?_0x510d76[_0x425100(0xb3)]:'')+'\x20<your-api-token>'),console['log'](_0x425100(0xc1)+(_0x510d76[_0x425100(0xb1)](_0x27588d,'opencode')?_0x510d76[_0x425100(0xb3)]:'')+'\x0a');return;}console['log']('✓\x20Found\x20API\x20token');const _0x1c3d16=getProjectRoot(),_0x2ebabe=basename(_0x1c3d16),_0x10fa42=_0x510d76[_0x425100(0xb1)](_0x27588d,_0x425100(0xc8))?getOpencodeConfigDir(_0x425100(0xb9))+_0x425100(0xcf):_0x510d76['FAiCt'](getClaudeConfigDir)+'/skills/',_0x3d0f4d=_0x510d76['GArwH'](_0x27588d,_0x425100(0xc8))?_0x1c3d16+'/.opencode/skills/':_0x1c3d16+_0x425100(0xb8),_0x20c11f=process[_0x425100(0xd1)]['isTTY']&&process[_0x425100(0xc6)][_0x425100(0xb2)];let _0xa5f791;if(_0x25416b[_0x425100(0xc5)])_0xa5f791=_0x25416b[_0x425100(0xc5)];else{if(_0x20c11f){const _0x43614c=await _0x3f0f8c['prompt']([{'type':_0x510d76[_0x425100(0xb7)],'name':'installLevel','message':_0x510d76[_0x425100(0xd2)],'choices':[{'name':_0x425100(0xd4)+_0x10fa42+')','value':'user'},{'name':'This\x20project\x20only\x20('+_0x3d0f4d+')','value':_0x425100(0xb4)}]}]);_0xa5f791=_0x43614c['installLevel'];}else _0xa5f791=_0x425100(0xb4),console['log'](_0x425100(0xc4)+_0x3d0f4d+')');}let _0x1dc1de=0x0;const _0x81a172=_0x510d76['zyNFK'](getCurrentVersion);console[_0x425100(0xc0)]('\x0a📦\x20Installing\x20skills...\x0a');try{const _0x4ea4de=await installSkill('ranger',{'cliVersion':_0x81a172,'level':_0xa5f791,'platform':_0x27588d});_0x4ea4de&&_0x1dc1de++;}catch(_0x70bacb){console[_0x425100(0xcb)](_0x510d76[_0x425100(0xb6)],_0x510d76['ORhUQ'](_0x70bacb,Error)?_0x70bacb[_0x425100(0xaf)]:_0x70bacb);}if(_0x1dc1de>0x0){const _0x22feed=_0xa5f791===_0x510d76['RWNpM']?_0x425100(0xb5):_0x510d76[_0x425100(0xa9)];console['log'](_0x425100(0xaa)+_0x1dc1de+'\x20'+_0x22feed+_0x425100(0xad)+(_0x510d76['GTsFT'](_0x1dc1de,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x25416b[_0x425100(0xd0)]&&(console['log'](_0x510d76['PnkHd']),_0x27588d===_0x510d76['WLCHA']?console['log'](_0x510d76[_0x425100(0xce)]):console[_0x425100(0xc0)]('\x20\x20-\x20Open\x20Claude\x20Code\x20in\x20plan\x20mode\x20and\x20run\x20/ranger:enable.\x20Plan\x20out\x20a\x20UI\x20feature\x20with\x20Ranger\x20and\x20watch\x20Ranger\x20test\x20it\x20for\x20you!'));}else console['log'](_0x510d76['aFTZy']);}
@@ -1 +1 @@
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
+ const _0x43e1a5=_0x3bb9;(function(_0x571637,_0x41c3a3){const _0x17a405=_0x3bb9,_0x576f71=_0x571637();while(!![]){try{const _0x4868a3=-parseInt(_0x17a405(0x112))/0x1*(-parseInt(_0x17a405(0xbe))/0x2)+-parseInt(_0x17a405(0xcf))/0x3+parseInt(_0x17a405(0xe7))/0x4+parseInt(_0x17a405(0xd0))/0x5+-parseInt(_0x17a405(0xf4))/0x6+-parseInt(_0x17a405(0x116))/0x7+parseInt(_0x17a405(0xd7))/0x8*(-parseInt(_0x17a405(0x12c))/0x9);if(_0x4868a3===_0x41c3a3)break;else _0x576f71['push'](_0x576f71['shift']());}catch(_0x3467c4){_0x576f71['push'](_0x576f71['shift']());}}}(_0x4623,0xc04ae));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x43b0b3 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=_0x1b7cc9=>_0x43e1a5(0xb9)+_0x1b7cc9+'\x1b[0m';function getPlaywrightVersion(){const _0x53522e=_0x43e1a5,_0x3c0ca3={'RUWsq':_0x53522e(0xe0)};try{const _0x2dba21=require[_0x53522e(0x11b)](_0x3c0ca3[_0x53522e(0xee)]),_0x4133c2=require(_0x2dba21);return _0x4133c2[_0x53522e(0xd8)];}catch{return null;}}function installChromiumBinary(_0x1e2729){const _0x188b7b=_0x43e1a5,_0xc64c63={'Fyljq':function(_0x80616e,_0x1dd577){return _0x80616e===_0x1dd577;},'dRFqE':function(_0x5aabf0,_0x14ff29){return _0x5aabf0(_0x14ff29);},'czfxd':'install','qMrxX':function(_0x566763,_0x231bbb,_0x2241d4,_0x500513){return _0x566763(_0x231bbb,_0x2241d4,_0x500513);},'soaVN':'inherit','BmElR':_0x188b7b(0x103),'rZVWE':_0x188b7b(0x131),'nAHwC':'error'};return new Promise((_0x2f6cd4,_0x4a6abc)=>{const _0x3ed48b=_0x188b7b,_0x4287db=['playwright@'+_0x1e2729,_0xc64c63['czfxd'],_0x3ed48b(0x118)],_0x15e7d0=_0xc64c63[_0x3ed48b(0x12f)](spawn,_0x3ed48b(0x120),_0x4287db,{'stdio':_0xc64c63['soaVN'],'shell':process['platform']===_0xc64c63[_0x3ed48b(0xfb)]});_0x15e7d0['on'](_0xc64c63['rZVWE'],_0x4dd8e6=>{const _0x44e5e4=_0x3ed48b;_0xc64c63[_0x44e5e4(0xff)](_0x4dd8e6,0x0)?_0x2f6cd4():_0x4a6abc(new Error('Installation\x20failed\x20with\x20exit\x20code\x20'+_0x4dd8e6));}),_0x15e7d0['on'](_0xc64c63['nAHwC'],_0x22a8c8=>{_0xc64c63['dRFqE'](_0x4a6abc,_0x22a8c8);});});}export async function authenticate(_0x1cfabf){const _0x487118=_0x43e1a5,_0x863534={'xWXLi':function(_0x72b6e){return _0x72b6e();},'NTjhP':function(_0x3743d6,_0x5f50ea){return _0x3743d6(_0x5f50ea);},'HaZOb':_0x487118(0xfd),'eHugv':function(_0x45cacf,_0xb6f438){return _0x45cacf instanceof _0xb6f438;},'fMewH':_0x487118(0x123),'jwoBv':_0x487118(0xbb)};if(!_0x1cfabf){const _0x530a3f=await _0x863534[_0x487118(0xd5)](getToken);if(_0x530a3f){const _0x389f11=await _0x863534[_0x487118(0xf2)](getCurrentUser,_0x530a3f);if(_0x389f11['success'])return console[_0x487118(0xd9)](_0x487118(0xea)+_0x389f11[_0x487118(0xf8)][_0x487118(0x114)]),{'token':_0x530a3f,'method':_0x863534['HaZOb']};}try{_0x1cfabf=await _0x863534[_0x487118(0xd5)](runDeviceAuthFlow);}catch(_0x1296f2){throw new Error(_0x487118(0x11a)+(_0x863534[_0x487118(0xf6)](_0x1296f2,Error)?_0x1296f2[_0x487118(0xfc)]:_0x1296f2));}const _0x50e4f2=await getCurrentUser(_0x1cfabf);if(!_0x50e4f2['success'])throw new Error('Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'+_0x50e4f2['error']);return console[_0x487118(0xd9)]('✓\x20Authenticated\x20to\x20'+_0x50e4f2[_0x487118(0xf8)]['organizationName']),{'token':_0x1cfabf,'method':_0x863534['fMewH']};}console[_0x487118(0xd9)](_0x863534['jwoBv']);const _0x13d6af=await getCurrentUser(_0x1cfabf);if(!_0x13d6af[_0x487118(0x111)]){if(_0x13d6af[_0x487118(0x100)])throw new Error('Authentication\x20failed:\x20'+_0x13d6af['error']+'.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.');else throw new Error(_0x487118(0x110)+_0x13d6af[_0x487118(0x121)]+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console[_0x487118(0xd9)]('✓\x20Authenticated\x20to\x20'+_0x13d6af[_0x487118(0xf8)][_0x487118(0x114)]),await storeToken(_0x1cfabf),console['log'](process['env'][_0x487118(0xda)]?_0x487118(0xd1):'✓\x20Stored\x20credentials\x20locally'),{'token':_0x1cfabf,'method':'provided_token'};}export async function ensureRangerDir(){const _0x120789=_0x43e1a5,_0xa4e9a7={'nJmYu':'.ranger','JMgXo':function(_0x28fee3){return _0x28fee3();},'mwiOd':function(_0x549782,_0x53df5f){return _0x549782(_0x53df5f);},'IjsHE':function(_0x32c1fb,_0x406fbb,_0x4c1826){return _0x32c1fb(_0x406fbb,_0x4c1826);},'anyrB':'✓\x20Created\x20.ranger/\x20directory'},_0x35c24f=findGitRoot(),_0x234c8d=_0x35c24f?join(_0x35c24f,_0xa4e9a7[_0x120789(0xb6)]):_0xa4e9a7[_0x120789(0x10f)](getRangerDir);return!_0xa4e9a7['mwiOd'](existsSync,_0x234c8d)?(await _0xa4e9a7['IjsHE'](mkdir,_0x234c8d,{'recursive':!![]}),console['log'](_0xa4e9a7[_0x120789(0xe4)]),{'path':_0x234c8d,'installed':!![]}):(console['log']('✓\x20.ranger/\x20directory\x20already\x20exists'),{'path':_0x234c8d,'installed':![]});}export async function ensureChromium(){const _0x515731=_0x43e1a5,_0x413c41={'EYZTa':function(_0x4b1ccd,_0x47e8b9){return _0x4b1ccd(_0x47e8b9);},'uBOoP':function(_0x239888){return _0x239888();},'mjKAB':function(_0xdb3b6,_0x15c7f3){return _0xdb3b6??_0x15c7f3;},'pUQZU':'confirm','EJnfT':'\x20(fallback\x20version)','UjeLL':_0x515731(0xeb),'DZBok':_0x515731(0x125),'bPExU':'\x0a❌\x20Failed\x20to\x20install\x20Chromium:','ITlhq':_0x515731(0xed)};let _0x5d73b5=![];try{const _0x3dfedc=chromium['executablePath']();_0x5d73b5=_0x413c41['EYZTa'](existsSync,_0x3dfedc);}catch{_0x5d73b5=![];}if(_0x5d73b5)return console[_0x515731(0xd9)](_0x515731(0x119)),![];const _0x4aa909=_0x413c41[_0x515731(0xe5)](getPlaywrightVersion),_0x44431f=_0x413c41['mjKAB'](_0x4aa909,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x473e4d=!_0x4aa909,_0x539b7b=process[_0x515731(0xc1)][_0x515731(0x104)]&&process[_0x515731(0xd4)]['isTTY'];let _0x5c7d02=!![];if(_0x539b7b){const {install:_0xc14d4b}=await _0x43b0b3['prompt']([{'type':_0x413c41['pUQZU'],'name':_0x515731(0xc2),'message':_0x473e4d?_0x515731(0xe9)+_0x44431f+_0x515731(0xf7):_0x515731(0xdb)+_0x44431f+')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','default':!![]}]);_0x5c7d02=_0xc14d4b;}else console['log']('\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20'+_0x44431f+(_0x473e4d?_0x413c41[_0x515731(0x11c)]:'')+'...');if(_0x5c7d02){console['log'](_0x413c41['UjeLL']);try{await _0x413c41['EYZTa'](installChromiumBinary,_0x44431f),console[_0x515731(0xd9)](_0x413c41['DZBok']);}catch(_0x2851b0){console['error'](_0x413c41[_0x515731(0xf3)],_0x2851b0 instanceof Error?_0x2851b0[_0x515731(0xfc)]:_0x2851b0),console[_0x515731(0xd9)]('You\x20can\x20install\x20it\x20manually\x20by\x20running:'),console[_0x515731(0xd9)](_0x515731(0xe2)+_0x44431f+_0x515731(0xbc));}}else console[_0x515731(0xd9)](_0x413c41[_0x515731(0xc9)]),console['log']('You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:'),console['log'](_0x515731(0xe2)+_0x44431f+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x44feaa){const _0xcc6f3d=_0x43e1a5,_0x14d995={'HgByK':function(_0x9de644,_0x571eaf,_0xa1396){return _0x9de644(_0x571eaf,_0xa1396);},'tqHcN':'✓\x20Created\x20.ranger/.gitignore'},_0xf90088=_0x14d995[_0xcc6f3d(0x12b)](join,_0x44feaa,_0xcc6f3d(0xc8)),_0x31b531='\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';await writeFile(_0xf90088,_0x31b531),console[_0xcc6f3d(0xd9)](_0x14d995['tqHcN']);}function _0x4623(){const _0x542372=['allowInsecureLocalhost','\x0a✅\x20Ranger\x20setup\x20complete!\x0a','Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','playwright/package.json','VLEjd','\x20\x20npx\x20playwright@','scope','anyrB','uBOoP','znWnc','3478536ssKNAp','KXMsh','Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20','✓\x20Already\x20authenticated\x20to\x20','\x0aInstalling\x20Chromium\x20browser...\x0a','mrDDZ','\x0a⚠\x20Skipping\x20Chromium\x20installation.','RUWsq','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','plugin','ZbyiI','NTjhP','bPExU','2115396btrTcv','RFjON','eHugv','\x20now?','user','DZmLG','nYGXH','BmElR','message','existing_token','skills','Fyljq','status','skipChromium','confirm','win32','isTTY','\x0a🚀\x20Ranger\x20Setup\x0a','git_check','PJOUO','trackPhaseEnd','rsVuC','auth','CXmNZ','use\x20until\x20the\x20session\x20expires.\x0a','/ranger:enable','\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','JMgXo','Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20','success','353yOjTAw','ready','organizationName','KsvOd','9215535LkuzPj','FkIEA','chromium','✓\x20Playwright\x20Chromium\x20browser\x20found','Authentication\x20failed:\x20','resolve','EJnfT','ranger','and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','local','npx','error','kMzYc','device_auth','WlHuY','\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully','nAEoZ','skipped','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','ASaEC','VNNWT','HgByK','27tcycTj','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','url','qMrxX','pPQOu','close','nJmYu','force','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','\x1b[1m','with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','Validating\x20API\x20token...','\x20install\x20chromium','SQvSI','8266KzhNxt','ranger\x20profile\x20add\x20local','Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a','stdin','install','trackPhaseError','OYsEu','MxDzl','No\x20git\x20repository\x20found','Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.','.gitignore','ITlhq','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','dlpQv','opencode','Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','vhznV','2132718KCJgVm','5026225cYvcCT','✓\x20Exported\x20credentials\x20for\x20CI','\x20and\x20prompt\x20the\x20coding','\x0aIn\x20Claude\x20Code,\x20run\x20','stdout','xWXLi','trackPhaseStart','443256MtREUg','version','log','GITHUB_ENV','The\x20required\x20version\x20(','OoHLj'];_0x4623=function(){return _0x542372;};return _0x4623();}function printProfileSetupLaterInstructions(){const _0x19195e=_0x43e1a5,_0x36d6a2={'MxDzl':function(_0x1f8088,_0x1205c2){return _0x1f8088(_0x1205c2);},'WlHuY':_0x19195e(0xc0)};console['log']('\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:'),console[_0x19195e(0xd9)]('\x20\x20'+_0x36d6a2[_0x19195e(0xc5)](bold,_0x19195e(0xbf))),console[_0x19195e(0xd9)](_0x36d6a2[_0x19195e(0x124)]);}function _0x3bb9(_0x2f5d9d,_0x4148f7){_0x2f5d9d=_0x2f5d9d-0xb6;const _0x4623de=_0x4623();let _0x3bb9ef=_0x4623de[_0x2f5d9d];return _0x3bb9ef;}async function ensureLocalEnv(_0x39e1bd,_0x2d5bee){const _0x1f1555=_0x43e1a5,_0x268e27={'VLEjd':function(_0x2b9e98){return _0x2b9e98();},'wPLTw':'⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','lRGGE':'local','mrDDZ':'to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','TASqF':_0x1f1555(0x10c),'IQcaQ':_0x1f1555(0x128),'ZbyiI':_0x1f1555(0x102),'nYGXH':_0x1f1555(0xcd),'MOizg':function(_0x3fb17e,_0x1fdd6d,_0x1002d7,_0x5737e2){return _0x3fb17e(_0x1fdd6d,_0x1002d7,_0x5737e2);},'zSBky':'\x0a❌\x20Profile\x20setup\x20failed:','pPQOu':function(_0x281cd6,_0x11b99f){return _0x281cd6 instanceof _0x11b99f;}};if(!_0x268e27[_0x1f1555(0xe1)](findGitRoot))return console['log'](_0x268e27['wPLTw']),{'ready':![],'skipped':!![]};if(findExistingEnv(_0x268e27['lRGGE'],{'locations':[_0x1f1555(0x11f)]}))return console['log']('✓\x20Local\x20profile\x20already\x20exists'),{'ready':!![],'skipped':![]};const _0x654a1b=process[_0x1f1555(0xc1)]['isTTY']&&process[_0x1f1555(0xd4)][_0x1f1555(0x104)];if(_0x654a1b&&!_0x39e1bd?.['url']){console['log'](_0x1f1555(0x12d)),console['log'](_0x268e27[_0x1f1555(0xec)]),console[_0x1f1555(0xd9)]('auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'),console['log'](_0x268e27['TASqF']),console['log'](_0x268e27['IQcaQ']);const {wantsProfile:_0xd5fed9}=await _0x43b0b3['prompt']([{'type':_0x268e27[_0x1f1555(0xf1)],'name':'wantsProfile','message':_0x268e27[_0x1f1555(0xfa)],'default':!![]}]);if(!_0xd5fed9)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await _0x268e27['MOizg'](addEnv,_0x268e27['lRGGE'],{'url':_0x39e1bd?.['url'],'force':_0x39e1bd?.[_0x1f1555(0xb7)],'allowInsecureLocalhost':_0x39e1bd?.[_0x1f1555(0xdd)]},_0x2d5bee),{'ready':!![],'skipped':![]};}catch(_0x2f40b8){return console['error'](_0x268e27['zSBky'],_0x268e27[_0x1f1555(0x130)](_0x2f40b8,Error)?_0x2f40b8['message']:_0x2f40b8),printProfileSetupLaterInstructions(),{'ready':![],'skipped':![]};}}export async function start(_0x396405,_0x5ca3f2,_0x33dee2){const _0xdfd664=_0x43e1a5,_0x18c922={'znWnc':_0xdfd664(0xc7),'LxYwF':_0xdfd664(0xf8),'fLdwv':'git_check','KXMsh':function(_0x10f066){return _0x10f066();},'nAEoZ':_0xdfd664(0xc6),'tpzmM':_0xdfd664(0x10a),'XupYy':function(_0x2ff9ee,_0x315cd7){return _0x2ff9ee(_0x315cd7);},'OoHLj':_0xdfd664(0x118),'dlpQv':'✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','KsvOd':_0xdfd664(0xde),'VNNWT':_0xdfd664(0xf0),'RFjON':function(_0x5c62d1,_0x19c542){return _0x5c62d1(_0x19c542);},'kMzYc':function(_0x13528a,_0x3ef3d8){return _0x13528a&&_0x3ef3d8;},'SQvSI':_0xdfd664(0xfe),'FkIEA':function(_0x281b11){return _0x281b11();},'OYsEu':'opencode','vBHLr':_0xdfd664(0xef),'xUqpD':function(_0x30c00b,_0x4e3442){return _0x30c00b instanceof _0x4e3442;},'KnYTY':_0xdfd664(0xdf),'vhznV':_0xdfd664(0xbf),'ASaEC':'profile','DZmLG':function(_0xc8f6c7,_0x4c0dcd,_0x31d8f9){return _0xc8f6c7(_0x4c0dcd,_0x31d8f9);},'CXmNZ':_0xdfd664(0xca),'rsVuC':'verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.','qCqNp':function(_0x1c07bf,_0x2bdc5b){return _0x1c07bf(_0x2bdc5b);},'PJOUO':_0xdfd664(0x10d),'JhnAP':function(_0x3b56f4,_0x2b6151){return _0x3b56f4+_0x2b6151;}};console[_0xdfd664(0xd9)](_0xdfd664(0x105));const _0x591b42=process['stdin'][_0xdfd664(0x104)]&&process[_0xdfd664(0xd4)]['isTTY'];!_0x591b42&&!_0x5ca3f2?.[_0xdfd664(0xe3)]&&(console['log'](_0x18c922[_0xdfd664(0xe6)]),_0x5ca3f2={..._0x5ca3f2,'scope':_0x18c922['LxYwF']});_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922['fLdwv']);if(!_0x18c922[_0xdfd664(0xe8)](findGitRoot)){await _0x33dee2?.[_0xdfd664(0xc3)](_0xdfd664(0x106),new Error(_0x18c922[_0xdfd664(0x126)]));throw new Error('No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.');}_0x33dee2?.[_0xdfd664(0x108)](_0x18c922['fLdwv']);const _0x28dade=!existsSync(getRangerDir()),{path:_0x36970}=await ensureRangerDir();_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922['tpzmM']);const _0x2a85a0=await _0x18c922['XupYy'](authenticate,_0x396405);_0x33dee2?.[_0xdfd664(0x108)]('auth',{'isFirstRun':_0x28dade,'method':_0x2a85a0['method']}),_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922[_0xdfd664(0xdc)]);_0x5ca3f2?.['skipChromium']?console[_0xdfd664(0xd9)](_0x18c922[_0xdfd664(0xcb)]):await ensureChromium();_0x33dee2?.['trackPhaseEnd'](_0x18c922[_0xdfd664(0xdc)],{'isFirstRun':_0x28dade,'skipped':!!_0x5ca3f2?.[_0xdfd664(0x101)]}),await writeRangerGitignore(_0x36970),console[_0xdfd664(0xd9)](_0x18c922[_0xdfd664(0x115)]);const _0x5cb3a8=_0x5ca3f2?.[_0xdfd664(0xe3)],_0x2bdd36=_0x5ca3f2?.[_0xdfd664(0xcc)]??![];let _0x57cddc=null;_0x2bdd36?(_0x33dee2?.[_0xdfd664(0xd6)]('plugin'),_0x57cddc=await _0x18c922['XupYy'](ensureOpencodePluginConfig,_0x5cb3a8),_0x33dee2?.[_0xdfd664(0x108)](_0x18c922[_0xdfd664(0x12a)],{'isFirstRun':_0x28dade,'opencode':!![]})):(_0x33dee2?.['trackPhaseStart'](_0xdfd664(0xf0)),await _0x18c922['RFjON'](ensureClaudePlugin,_0x5cb3a8),_0x33dee2?.['trackPhaseEnd']('plugin',{'isFirstRun':_0x28dade}));if(_0x18c922[_0xdfd664(0x122)](_0x2bdd36,_0x57cddc)){_0x33dee2?.['trackPhaseStart'](_0x18c922[_0xdfd664(0xbd)]);try{await installSkill(_0xdfd664(0x11d),{'level':_0x57cddc['scope'],'cliVersion':_0x18c922[_0xdfd664(0x117)](getCurrentVersion),'platform':_0x18c922[_0xdfd664(0xc4)]}),_0x33dee2?.['trackPhaseEnd'](_0xdfd664(0xfe),{'isFirstRun':_0x28dade,'opencode':!![]});}catch(_0x25fb06){console['warn'](_0x18c922['vBHLr'],_0x18c922['xUqpD'](_0x25fb06,Error)?_0x25fb06[_0xdfd664(0xfc)]:_0x25fb06),_0x33dee2?.['trackPhaseEnd']('skills',{'isFirstRun':_0x28dade,'opencode':!![],'failed':!![]});}}else _0x33dee2?.['trackPhaseStart']('skills'),await ensureClaudeSkills(_0x5cb3a8),_0x33dee2?.[_0xdfd664(0x108)](_0x18c922[_0xdfd664(0xbd)],{'isFirstRun':_0x28dade});if(!_0x591b42&&!_0x5ca3f2?.[_0xdfd664(0x12e)])console['log'](_0x18c922['KnYTY']),console['log']('\x20\x20'+_0x18c922[_0xdfd664(0xf5)](bold,_0x18c922[_0xdfd664(0xce)])+'\x0a');else{_0x33dee2?.[_0xdfd664(0xd6)](_0x18c922[_0xdfd664(0x129)]);const _0x496ab5=await _0x18c922[_0xdfd664(0xf9)](ensureLocalEnv,{'url':_0x5ca3f2?.['url'],'force':_0x5ca3f2?.[_0xdfd664(0xb7)],'allowInsecureLocalhost':_0x5ca3f2?.[_0xdfd664(0xdd)]},_0x33dee2);_0x33dee2?.['trackPhaseEnd'](_0x18c922['ASaEC'],{'isFirstRun':_0x28dade,'profileReady':_0x496ab5[_0xdfd664(0x113)],'userSkipped':_0x496ab5[_0xdfd664(0x127)]}),_0x496ab5[_0xdfd664(0x113)]&&console['log']('\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.');}if(_0x2bdd36)console['log'](_0x18c922[_0xdfd664(0x10b)]),console['log'](_0xdfd664(0x11e)),console['log'](_0xdfd664(0xba)),console['log'](_0x18c922[_0xdfd664(0x109)]);else{const _0x381514=_0x18c922['qCqNp'](bold,_0x18c922[_0xdfd664(0x107)]);console['log'](_0x18c922['JhnAP'](_0xdfd664(0xd3)+_0x381514+_0xdfd664(0xd2)+'\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with',_0xdfd664(0x10e))+_0xdfd664(0xb8));}}
@@ -1 +1 @@
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
+ const _0x3800ce=_0x1f23;(function(_0xba0034,_0x529a51){const _0x46c3c5=_0x1f23,_0x5c0103=_0xba0034();while(!![]){try{const _0x12a1d4=-parseInt(_0x46c3c5(0x171))/0x1+parseInt(_0x46c3c5(0x197))/0x2+-parseInt(_0x46c3c5(0x185))/0x3+parseInt(_0x46c3c5(0x1b3))/0x4+parseInt(_0x46c3c5(0x162))/0x5+parseInt(_0x46c3c5(0x1c3))/0x6*(-parseInt(_0x46c3c5(0x178))/0x7)+-parseInt(_0x46c3c5(0x1bb))/0x8;if(_0x12a1d4===_0x529a51)break;else _0x5c0103['push'](_0x5c0103['shift']());}catch(_0x214cd7){_0x5c0103['push'](_0x5c0103['shift']());}}}(_0xbd02,0x936cf));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';function _0x1f23(_0x1ec306,_0x299f12){_0x1ec306=_0x1ec306-0x15c;const _0xbd021c=_0xbd02();let _0x1f2394=_0xbd021c[_0x1ec306];return _0x1f2394;}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';function _0xbd02(){const _0x3be619=['API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired','debug','SATln','4096568xMqGUy','EBbuW','sKSkV','configured','map','@ranger-testing/opencode-plugin','hasPlaintextAuth','log','1263654QJyAiY','not_configured','settingsPath','some','oajog','PhcSp','ignore','4971170sSvxde','\x1b[0m','length','UPDGs','QLRiC','path','auth.json','user','kqZof','No\x20profiles\x20configured','\x20\x20\x20\x20','\x20\x20Project-level:','\x20(active)','MnJpq','API\x20URL:\x20','259905TsTbQj','trim','\x0a---\x20Claude\x20Code\x20Plugin\x20---','details','auth.json.enc','jkjqe','bbKJI','21AmqIrW','sIaYS','data','opencode-plugin','kDfUb','DfyhJ','OEEuF','includes','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','vprvO','displayName','yfVFA','close','305991MRxDhR','TbhdY','pipe','version','\x0a---\x20Profiles\x20---',':\x20installed\x20(','tWXYl','fTFzW','not_installed','Version:\x20','wNgka','\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.','LlrKQ','\x1b]8;;file://','isDirectory','LlqvO','none','fDbMQ','1580660XGlcGL','JejBZ','error','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','encrypted','Root:\x20','\x20(latest:\x20','enabled','\x0a\x20\x20No\x20active\x20profile\x20set','\x0a---\x20Skills\x20---','unknown','name','parse','eKhEc','qYUzg','disabled','phvlw','ranger@trailhead','wGrtY','match','jCjUO','\x20(up\x20to\x20date)','KApUf','toString','aBhRG','apEOf','isArray','\x1b[1m','1300364ZxjoAv',':\x20configured','\x20\x20Run:\x20ranger\x20setup\x20[token]','filter','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20'];_0xbd02=function(){return _0x3be619;};return _0xbd02();}import{getPluginInfo}from'./utils/claudePlugin.js';import{RANGER_MANAGED_SKILLS}from'./utils/skills.js';import{spawn}from'child_process';const bold=_0x3aca31=>_0x3800ce(0x1b2)+_0x3aca31+_0x3800ce(0x163),link=(_0x3ca274,_0x5b479c)=>_0x3800ce(0x192)+_0x3ca274+'\x07'+(_0x5b479c||_0x3ca274)+'\x1b]8;;\x07';async function getOpencodePluginStatus(){const _0x19e26b=_0x3800ce,_0x55caac={'DfyhJ':'@ranger-testing/opencode-plugin','ySmRh':function(_0x43ddad,_0xad4298){return _0x43ddad!==_0xad4298;},'fDbMQ':function(_0x358e93,_0x100297){return _0x358e93(_0x100297);},'MnJpq':_0x19e26b(0x18d),'OjlaF':_0x19e26b(0x1be),'CpIwd':function(_0x2f0262,_0x1faede){return _0x2f0262>_0x1faede;},'OEEuF':function(_0x51afdb,_0xac0338){return _0x51afdb>_0xac0338;},'kDfUb':_0x19e26b(0x15c),'ILYwA':function(_0x3d0414,_0x53d67f,_0x12b720,_0x2a093d){return _0x3d0414(_0x53d67f,_0x12b720,_0x2a093d);},'LQJfI':_0x19e26b(0x187),'kqZof':_0x19e26b(0x17a),'BNMsB':_0x19e26b(0x199)};return new Promise(_0x4ace8c=>{const _0x2a827e=_0x19e26b,_0x1ac869=_0x55caac['ILYwA'](spawn,'opencode',[_0x2a827e(0x1b9),'config'],{'stdio':[_0x2a827e(0x161),'pipe',_0x55caac['LQJfI']]});let _0x22ba0d='';_0x1ac869['stdout']?.['on'](_0x55caac[_0x2a827e(0x16a)],_0x248ac9=>{const _0x16b3d1=_0x2a827e;_0x22ba0d+=_0x248ac9[_0x16b3d1(0x1ae)]();}),_0x1ac869['stderr']?.['on'](_0x55caac[_0x2a827e(0x16a)],_0x2b8fc1=>{const _0x480ed5=_0x2a827e;_0x22ba0d+=_0x2b8fc1[_0x480ed5(0x1ae)]();}),_0x1ac869['on'](_0x55caac['BNMsB'],()=>{const _0x38b832=_0x2a827e;_0x4ace8c({'status':_0x38b832(0x18d)});}),_0x1ac869['on'](_0x2a827e(0x184),_0x4d26d5=>{const _0x2a822e=_0x2a827e,_0x158470={'qYUzg':'string','ltQMV':_0x55caac[_0x2a822e(0x17d)]};if(_0x55caac['ySmRh'](_0x4d26d5,0x0)){_0x55caac['fDbMQ'](_0x4ace8c,{'status':_0x55caac[_0x2a822e(0x16f)]});return;}const _0x2dc0c2=_0x22ba0d[_0x2a822e(0x172)]();let _0x47de0a=null;if(_0x2dc0c2)try{_0x47de0a=JSON[_0x2a822e(0x1a3)](_0x2dc0c2);}catch{const _0x6bd870=_0x2dc0c2[_0x2a822e(0x1aa)](/\{[\s\S]*\}$/);if(_0x6bd870)try{_0x47de0a=JSON[_0x2a822e(0x1a3)](_0x6bd870[0x0]);}catch{_0x47de0a=null;}}const _0x224d59=Array[_0x2a822e(0x1b1)](_0x47de0a?.['plugin'])?_0x47de0a?.['plugin']:[],_0x268e85=_0x224d59[_0x2a822e(0x15e)](_0x30f4d6=>{const _0x3e2281=_0x2a822e;if(typeof _0x30f4d6!==_0x158470[_0x3e2281(0x1a5)])return![];return _0x30f4d6[_0x3e2281(0x17f)](_0x158470['ltQMV'])||_0x30f4d6['includes'](_0x3e2281(0x17b));});if(_0x268e85){_0x4ace8c({'status':_0x55caac['OjlaF'],'details':_0x55caac['CpIwd'](_0x224d59['length'],0x0)?_0x224d59['length']+'\x20plugin(s)\x20configured':undefined});return;}if(_0x55caac[_0x2a822e(0x17e)](_0x224d59[_0x2a822e(0x164)],0x0)){_0x4ace8c({'status':_0x55caac[_0x2a822e(0x17c)],'details':_0x224d59[_0x2a822e(0x164)]+'\x20plugin(s)\x20configured'});return;}_0x55caac[_0x2a822e(0x196)](_0x4ace8c,{'status':_0x55caac[_0x2a822e(0x17c)]});});});}async function getSkillsFromDir(_0x54b17c,_0x488f20){const _0x64e198=_0x3800ce,_0x1a9563={'apEOf':function(_0x2f68e0,_0x4a5140,_0x278ecf){return _0x2f68e0(_0x4a5140,_0x278ecf);},'cAmDk':'SKILL.md'};if(!existsSync(_0x54b17c))return[];const _0x11e111=[];try{const _0x29ddf2=await _0x1a9563[_0x64e198(0x1b0)](readdir,_0x54b17c,{'withFileTypes':!![]});for(const _0x8810fc of _0x29ddf2){if(_0x8810fc[_0x64e198(0x193)]()){const _0x136bc3=join(_0x54b17c,_0x8810fc['name'],_0x1a9563['cAmDk']);if(existsSync(_0x136bc3)){let _0x481fb1=_0x8810fc[_0x64e198(0x1a2)];try{const _0x1f0569=await _0x1a9563['apEOf'](readFile,_0x136bc3,'utf-8'),_0x37ec46=_0x1f0569['match'](/name:\s*(.+)/);_0x37ec46&&(_0x481fb1=_0x37ec46[0x1]['trim']());}catch{}_0x11e111['push']({'name':_0x8810fc[_0x64e198(0x1a2)],'displayName':_0x481fb1,'path':_0x136bc3,'level':_0x488f20});}}}}catch{return[];}return _0x11e111;}async function getInstalledSkills(){const _0x361eeb=_0x3800ce,_0x2b1620={'vprvO':function(_0x3ed072,_0xaa4b25,_0x5ec5a4){return _0x3ed072(_0xaa4b25,_0x5ec5a4);},'sIaYS':function(_0x37a2ab){return _0x37a2ab();},'EBbuW':'project','erBco':function(_0x3d4d69,_0x17f031,_0x187c08){return _0x3d4d69(_0x17f031,_0x187c08);},'wNgka':function(_0xb58300){return _0xb58300();}},[_0x2ad639,_0x23ae3c]=await Promise['all']([_0x2b1620[_0x361eeb(0x181)](getSkillsFromDir,_0x2b1620[_0x361eeb(0x179)](getProjectSkillsDir),_0x2b1620[_0x361eeb(0x1bc)]),_0x2b1620['erBco'](getSkillsFromDir,_0x2b1620[_0x361eeb(0x18f)](getUserSkillsDir),'user')]);return{'project':_0x2ad639,'user':_0x23ae3c};}async function getEnvironments(){const _0xa56a79=_0x3800ce,_0x207403={'jCjUO':function(_0x222582,_0x4ee810){return _0x222582(_0x4ee810);},'fTFzW':_0xa56a79(0x168),'sKSkV':function(_0x1bdfb3,_0x1ec339){return _0x1bdfb3(_0x1ec339);},'yfVFA':function(_0xdb7642){return _0xdb7642();}},{envNames:_0x87d00a,activeEnv:_0x5189a6}=await getEnvNames(),_0x1437b0=_0x207403[_0xa56a79(0x183)](getRangerDir);if(!_0x207403[_0xa56a79(0x1ab)](existsSync,_0x1437b0))return{'envs':[],'activeEnv':null};const _0x84b70a=_0x87d00a[_0xa56a79(0x1bf)](_0x3a3534=>{const _0x22f5b7=_0xa56a79,_0x31fb2d=_0x207403[_0x22f5b7(0x1ab)](getEnvDir,_0x3a3534),_0xeaa902=join(_0x31fb2d,'settings.json'),_0x4f3f1c=join(_0x31fb2d,_0x207403[_0x22f5b7(0x18c)]),_0x2c6d14=join(_0x31fb2d,_0x22f5b7(0x175));return{'name':_0x3a3534,'settingsPath':_0x207403[_0x22f5b7(0x1bd)](existsSync,_0xeaa902)?_0xeaa902:'(not\x20found)','hasPlaintextAuth':existsSync(_0x4f3f1c),'hasEncryptedAuth':existsSync(_0x2c6d14),'isActive':_0x3a3534===_0x5189a6};});return{'envs':_0x84b70a,'activeEnv':_0x5189a6};}export async function status(){const _0x36de70=_0x3800ce,_0x18e77d={'UPDGs':function(_0x10b6af,_0x3760a5){return _0x10b6af(_0x3760a5);},'QLRiC':function(_0x471f0a,_0x46fb84,_0x506b56){return _0x471f0a(_0x46fb84,_0x506b56);},'aBhRG':function(_0x31c1a8,_0x38a1e6){return _0x31c1a8(_0x38a1e6);},'LlrKQ':function(_0x45244a){return _0x45244a();},'JejBZ':'\x0a---\x20OpenCode\x20Plugin\x20---','RHwNq':function(_0x79341){return _0x79341();},'ZjKzO':_0x36de70(0x1be),'QztTQ':_0x36de70(0x1c0),'NSuUF':function(_0x8cae63,_0x33c26e){return _0x8cae63===_0x33c26e;},'fDeBA':'not_configured','LlqvO':'\x20\x20Run:\x20ranger\x20setup\x20--opencode','TbhdY':'\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','eKhEc':_0x36de70(0x173),'bbKJI':_0x36de70(0x1a8),'SATln':_0x36de70(0x1a1),'oajog':_0x36de70(0x19e),'KApUf':'\x20\x20Not\x20installed','wYoHE':_0x36de70(0x19a),'tWXYl':_0x36de70(0x1a0),'wGrtY':function(_0x27cedf,_0x4934f2){return _0x27cedf>_0x4934f2;},'phvlw':function(_0x37af99,_0x60a78b){return _0x37af99(_0x60a78b);},'STLuo':_0x36de70(0x189),'jkjqe':_0x36de70(0x16e),'PhcSp':_0x36de70(0x195),'VDSim':function(_0x318f99,_0x2f998e){return _0x318f99(_0x2f998e);}};console[_0x36de70(0x1c2)]('\x0a📊\x20Ranger\x20Status\x0a');const _0x173a07=process['cwd'](),_0x584aaf=getRangerDir();if(!_0x18e77d[_0x36de70(0x165)](existsSync,_0x584aaf)){console['log'](_0x36de70(0x19c)+_0x18e77d[_0x36de70(0x166)](link,_0x173a07,_0x18e77d['aBhRG'](bold,_0x18e77d[_0x36de70(0x1af)](basename,_0x173a07)))),console['log'](_0x36de70(0x190)),console[_0x36de70(0x1c2)](_0x36de70(0x180));return;}console[_0x36de70(0x1c2)](_0x36de70(0x19c)+_0x18e77d[_0x36de70(0x166)](link,_0x173a07,_0x18e77d[_0x36de70(0x1af)](bold,_0x18e77d[_0x36de70(0x165)](basename,_0x173a07))));const _0xd10140=getCurrentVersion(),_0x44e2cd=getLatestVersion();if(_0x44e2cd['version']&&_0x44e2cd[_0x36de70(0x188)]!==_0xd10140)console['log']('Version:\x20'+_0xd10140+_0x36de70(0x19d)+_0x44e2cd[_0x36de70(0x188)]+')'),console['log']('\x20\x20Run:\x20ranger\x20update');else _0x44e2cd[_0x36de70(0x188)]?console['log'](_0x36de70(0x18e)+_0xd10140+_0x36de70(0x1ac)):console[_0x36de70(0x1c2)]('Version:\x20'+_0xd10140);const _0x4d7b28=await getToken();if(_0x4d7b28){const _0x9b283c=await getCurrentUser(_0x4d7b28);_0x9b283c['success']?console['log']('Organization:\x20'+bold(_0x9b283c[_0x36de70(0x169)]['organizationName'])):(console[_0x36de70(0x1c2)](_0x36de70(0x1b8)),console[_0x36de70(0x1c2)](_0x36de70(0x1b5)));}else console[_0x36de70(0x1c2)]('API\x20Token:\x20✗\x20Not\x20found'),console['log']('\x20\x20Run:\x20ranger\x20setup\x20[token]');process['env']['DEBUG']&&(console[_0x36de70(0x1c2)]('API\x20Environment:\x20'+_0x18e77d['LlrKQ'](getCurrentEnvironment)),console[_0x36de70(0x1c2)](_0x36de70(0x170)+_0x18e77d[_0x36de70(0x191)](getApiBaseUrl)));console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x198)]);const _0x2bf058=await _0x18e77d['RHwNq'](getOpencodePluginStatus);if(_0x2bf058['status']===_0x18e77d['ZjKzO'])console[_0x36de70(0x1c2)]('\x20\x20'+bold(_0x18e77d['QztTQ'])+_0x36de70(0x1b4)),_0x2bf058[_0x36de70(0x174)]&&console[_0x36de70(0x1c2)]('\x20\x20'+_0x2bf058['details']);else _0x18e77d['NSuUF'](_0x2bf058['status'],_0x18e77d['fDeBA'])?(console['log']('\x20\x20Not\x20configured'),_0x2bf058['details']&&console['log']('\x20\x20'+_0x2bf058[_0x36de70(0x174)]),console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x194)])):console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x186)]);console[_0x36de70(0x1c2)](_0x18e77d[_0x36de70(0x1a4)]);const _0x23278c=await getPluginInfo(_0x18e77d[_0x36de70(0x177)]);if(_0x23278c){const _0x35451b=_0x23278c['scope']||_0x18e77d[_0x36de70(0x1ba)],_0x8c2c5b=_0x23278c[_0x36de70(0x19e)]?_0x18e77d[_0x36de70(0x15f)]:_0x36de70(0x1a6);console['log']('\x20\x20'+bold('ranger@trailhead')+_0x36de70(0x18a)+_0x35451b+',\x20'+_0x8c2c5b+')');}else console['log'](_0x18e77d[_0x36de70(0x1ad)]),console['log'](_0x18e77d['wYoHE']);console['log'](_0x18e77d[_0x36de70(0x18b)]);const {project:_0x3235b8,user:_0x4d2d2f}=await getInstalledSkills(),_0x2fa67c=_0x3235b8[_0x36de70(0x1b6)](_0x5d2088=>RANGER_MANAGED_SKILLS['includes'](_0x5d2088['name'])),_0xdcfc4e=_0x4d2d2f[_0x36de70(0x1b6)](_0xeaed1d=>RANGER_MANAGED_SKILLS[_0x36de70(0x17f)](_0xeaed1d['name'])),_0xa3c472=_0x2fa67c['length']+_0xdcfc4e[_0x36de70(0x164)];if(_0xa3c472===0x0)console['log']('No\x20skills\x20installed'),console[_0x36de70(0x1c2)]('\x20\x20Run:\x20ranger\x20skillup');else{if(_0x18e77d[_0x36de70(0x1a9)](_0x2fa67c[_0x36de70(0x164)],0x0)){console['log'](_0x36de70(0x16d));for(const _0x6c038e of _0x2fa67c){console[_0x36de70(0x1c2)]('\x20\x20\x20\x20'+_0x18e77d[_0x36de70(0x1a7)](bold,_0x6c038e[_0x36de70(0x182)])+':\x20'+link(_0x6c038e[_0x36de70(0x167)],basename(_0x6c038e['path'])));}}if(_0xdcfc4e[_0x36de70(0x164)]>0x0){console[_0x36de70(0x1c2)]('\x20\x20User-level:');for(const _0x42ece3 of _0xdcfc4e){console[_0x36de70(0x1c2)](_0x36de70(0x16c)+bold(_0x42ece3[_0x36de70(0x182)])+':\x20'+link(_0x42ece3['path'],_0x18e77d[_0x36de70(0x1af)](basename,_0x42ece3[_0x36de70(0x167)])));}}}console['log'](_0x18e77d['STLuo']);const {envs:_0x4fab6e,activeEnv:_0x3b5024}=await getEnvironments();if(_0x4fab6e['length']===0x0)console['log'](_0x36de70(0x16b)),console['log']('\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>');else{for(const _0x37d9cb of _0x4fab6e){const _0x2a4554=_0x37d9cb['isActive']?_0x18e77d[_0x36de70(0x176)]:'',_0x357d56=_0x37d9cb['hasEncryptedAuth']?_0x36de70(0x19b):_0x37d9cb[_0x36de70(0x1c1)]?'plaintext':_0x18e77d[_0x36de70(0x160)];console['log']('\x20\x20'+_0x18e77d['VDSim'](bold,_0x37d9cb[_0x36de70(0x1a2)])+_0x2a4554),console['log']('\x20\x20\x20\x20Auth:\x20'+_0x357d56),_0x37d9cb[_0x36de70(0x15d)]!=='(not\x20found)'&&console['log']('\x20\x20\x20\x20Settings:\x20'+link(_0x37d9cb['settingsPath'],basename(_0x37d9cb[_0x36de70(0x15d)])));}!_0x3b5024&&(console['log'](_0x36de70(0x19f)),console['log'](_0x36de70(0x1b7)+_0x4fab6e[_0x36de70(0x1bf)](_0x91d84f=>_0x91d84f[_0x36de70(0x1a2)])['join'](',\x20')+')'));}console['log']('');}