@ranger-testing/ranger-cli 2.4.0 → 2.4.2

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
+ const _0x181ed0=_0x53e2;function _0x53e2(_0x3c34d9,_0x101419){_0x3c34d9=_0x3c34d9-0x107;const _0x595789=_0x5957();let _0x53e267=_0x595789[_0x3c34d9];return _0x53e267;}(function(_0x23bba4,_0xdda322){const _0x522683=_0x53e2,_0x5f359a=_0x23bba4();while(!![]){try{const _0x2747bc=-parseInt(_0x522683(0x10c))/0x1*(parseInt(_0x522683(0x120))/0x2)+parseInt(_0x522683(0x11f))/0x3*(-parseInt(_0x522683(0x110))/0x4)+parseInt(_0x522683(0x115))/0x5*(parseInt(_0x522683(0x11b))/0x6)+parseInt(_0x522683(0x114))/0x7+-parseInt(_0x522683(0x107))/0x8*(parseInt(_0x522683(0x11e))/0x9)+-parseInt(_0x522683(0x125))/0xa+parseInt(_0x522683(0x10d))/0xb*(parseInt(_0x522683(0x109))/0xc);if(_0x2747bc===_0xdda322)break;else _0x5f359a['push'](_0x5f359a['shift']());}catch(_0xabd5b5){_0x5f359a['push'](_0x5f359a['shift']());}}}(_0x5957,0xbc0e5));import{appendFile}from'fs/promises';import{initBranchTracking,shouldAutoEnableAfterClear,autoEnableAfterClear,isSessionEnabled,getCurrentBranch}from'../utils/sessionCache.js';function _0x5957(){const _0x300b4e=['4413volgYq','11LBFrrv','MbFkc','=================================================================\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=================================================================','1933616QMoRPa','jGPRC','CLAUDE_ENV_FILE','env','7179319CZkAIb','35LdeVGz','log','WjCPv','\x20(Branch:\x20','session_id','SessionStart','973374YFbbaq','master','stdin','9CVpdBr','3riHSuK','238ZASccG','vxkyC','hook:session-start','source','oexer','13709370qiphOO','eYSDI','11637008jQxGok','export\x20CLAUDE_SESSION_ID=\x22','29318052TQVIhP','success','stringify'];_0x5957=function(){return _0x300b4e;};return _0x5957();}import{createTelemetryCollector}from'../utils/telemetry.js';const RANGER_AUTO_ENABLED_PROMPT=_0x181ed0(0x10f);export async function sessionStart(_0x1bfada){const _0x4c3eab=_0x181ed0,_0x406bfc={'ofBny':function(_0xde992,_0xe6a95d){return _0xde992||_0xe6a95d;},'hvRpl':_0x4c3eab(0x123),'oexer':function(_0x5ad302,_0x547137){return _0x5ad302&&_0x547137;},'WjCPv':function(_0x2e8066,_0xf577e1,_0x4cb4f8){return _0x2e8066(_0xf577e1,_0x4cb4f8);},'eYSDI':function(_0x45341b,_0x23c3de){return _0x45341b(_0x23c3de);},'PAykt':function(_0x327444,_0x16ccaf){return _0x327444(_0x16ccaf);},'MbFkc':_0x4c3eab(0x122),'jGPRC':function(_0x117c82,_0x72f9be){return _0x117c82!==_0x72f9be;},'vxkyC':_0x4c3eab(0x11c),'tWiUy':_0x4c3eab(0x11a),'UuedV':function(_0x5d0868,_0x3f8307){return _0x5d0868+_0x3f8307;}};let _0x2cbf70=_0x406bfc['ofBny'](_0x1bfada,''),_0x5a2db0;if(!_0x1bfada){let _0x352f53='';for await(const _0x43b0de of process[_0x4c3eab(0x11d)]){_0x352f53+=_0x43b0de;}try{const _0x393919=JSON['parse'](_0x352f53);_0x2cbf70=_0x393919[_0x4c3eab(0x119)]||'',_0x5a2db0=_0x393919[_0x406bfc['hvRpl']];}catch{}const _0xcf17ec=process[_0x4c3eab(0x113)][_0x4c3eab(0x112)];if(_0x406bfc[_0x4c3eab(0x124)](_0xcf17ec,_0x2cbf70))try{await _0x406bfc[_0x4c3eab(0x117)](appendFile,_0xcf17ec,_0x4c3eab(0x108)+_0x2cbf70+'\x22\x0a');}catch{}}if(_0x2cbf70){_0x406bfc[_0x4c3eab(0x126)](shouldAutoEnableAfterClear,_0x5a2db0)&&autoEnableAfterClear(_0x2cbf70);_0x406bfc['PAykt'](initBranchTracking,_0x2cbf70);const _0x309dc4=isSessionEnabled(_0x2cbf70);try{const _0x31667b=createTelemetryCollector(_0x406bfc[_0x4c3eab(0x10e)]);await _0x31667b['trackCommandStart']({'sessionId':_0x2cbf70,'hooksEnabled':_0x309dc4}),await _0x31667b['trackCommandEnd'](_0x4c3eab(0x10a));}catch{}if(_0x309dc4){const _0x129db3=getCurrentBranch(),_0x5d96d9=_0x129db3&&_0x406bfc[_0x4c3eab(0x111)](_0x129db3,'main')&&_0x406bfc[_0x4c3eab(0x111)](_0x129db3,_0x406bfc[_0x4c3eab(0x121)])?_0x4c3eab(0x118)+_0x129db3+')':'',_0x3ef90a={'hookSpecificOutput':{'hookEventName':_0x406bfc['tWiUy'],'additionalContext':_0x406bfc['UuedV'](RANGER_AUTO_ENABLED_PROMPT,_0x5d96d9)}};console[_0x4c3eab(0x116)](JSON[_0x4c3eab(0x10b)](_0x3ef90a));}}}
@@ -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(_0x1b3109,_0x501210){const _0x2fcb14=_0x1994,_0x4b820b=_0x1b3109();while(!![]){try{const _0x235edf=-parseInt(_0x2fcb14(0x167))/0x1+parseInt(_0x2fcb14(0x16f))/0x2+parseInt(_0x2fcb14(0x16b))/0x3+parseInt(_0x2fcb14(0x171))/0x4+parseInt(_0x2fcb14(0x160))/0x5*(-parseInt(_0x2fcb14(0x16d))/0x6)+-parseInt(_0x2fcb14(0x173))/0x7*(parseInt(_0x2fcb14(0x164))/0x8)+parseInt(_0x2fcb14(0x161))/0x9;if(_0x235edf===_0x501210)break;else _0x4b820b['push'](_0x4b820b['shift']());}catch(_0x14bb7f){_0x4b820b['push'](_0x4b820b['shift']());}}}(_0x1f91,0x67ab6));function _0x1994(_0x953ceb,_0x25a84c){_0x953ceb=_0x953ceb-0x160;const _0x1f91da=_0x1f91();let _0x1994d5=_0x1f91da[_0x953ceb];return _0x1994d5;}import{getToken}from'../utils/keychain.js';import{getFeature,concludeSession}from'../utils/featureApi.js';import{getSessionEntry,shouldShowStopReminder}from'../utils/sessionCache.js';function _0x1f91(){const _0x1a0437=['130805iAjyAU','9419616eYryRy','bYWEq','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','410944AAiyBN','stringify','currentSessionId','184898ORqihw','pxMsC','Yvlxm','verification_in_progress','190305oDQiDd','vzumR','174gcLAxS','trackCommandEnd','680336mBwNSs','featureId','699240tcCySx','status','35LOpTHL','KSAts','some','nSvbn'];_0x1f91=function(){return _0x1a0437;};return _0x1f91();}import{getEnabledHookContext}from'./output.js';import{createTelemetryCollector}from'../utils/telemetry.js';export async function stopHook(_0x45016f){const _0x33f93b=_0x1994,_0x5e54a3={'nSvbn':function(_0x325775,_0x4ba0f6){return _0x325775(_0x4ba0f6);},'Yvlxm':function(_0x52ee17,_0x156a53,_0x59003e,_0x33b109){return _0x52ee17(_0x156a53,_0x59003e,_0x33b109);},'vzumR':function(_0x2c8b66){return _0x2c8b66();},'KSAts':function(_0x2c480c,_0x10a0a3){return _0x2c480c&&_0x10a0a3;},'pxMsC':function(_0x1adc32,_0x2a42e9,_0x13dd5b,_0x309cf2){return _0x1adc32(_0x2a42e9,_0x13dd5b,_0x309cf2);}},_0x5cd137=await _0x5e54a3['nSvbn'](getEnabledHookContext,_0x45016f),_0x52ac15=_0x5cd137?.['sessionId']??null;let _0x1140b8=!![];if(!_0x52ac15){await _0x5e54a3[_0x33f93b(0x169)](trackStop,_0x52ac15,![],_0x1140b8);return;}try{const _0xdfb258=getSessionEntry(_0x52ac15);if(!_0xdfb258){await _0x5e54a3[_0x33f93b(0x169)](trackStop,_0x52ac15,!![],_0x1140b8);return;}const _0x37bf7a=await _0x5e54a3[_0x33f93b(0x16c)](getToken),_0x55a4ea='https://dashboard.ranger.net/features/'+_0xdfb258['featureId'];let _0x3f5c7b=null,_0x3a472c=![],_0x1a19ee=![];if(_0x37bf7a)try{const _0xc6421e=await _0x5e54a3[_0x33f93b(0x176)](getFeature,_0xdfb258[_0x33f93b(0x170)]);_0x3f5c7b=_0xc6421e[_0x33f93b(0x166)]??null;const _0x3ef0bb=_0xc6421e['checklistItems']['filter'](_0x1fe8f1=>_0x1fe8f1['sessionId']===_0x3f5c7b);_0x3a472c=_0x3ef0bb['some'](_0x20b75f=>_0x20b75f['status']!=='verified'&&_0x20b75f[_0x33f93b(0x172)]!=='blocked'&&_0x20b75f['status']!=='closed'&&_0x20b75f['status']!=='incomplete'),_0x1a19ee=_0x3ef0bb[_0x33f93b(0x175)](_0x392a15=>_0x392a15['status']===_0x33f93b(0x16a));}catch{}if(_0x37bf7a&&_0x3f5c7b&&_0x3a472c){if(!_0x1a19ee&&shouldShowStopReminder(_0x52ac15)){const _0x1a81b1={'hookSpecificOutput':{'hookEventName':'Stop','additionalContext':_0x33f93b(0x163)+_0x55a4ea}};console['log'](JSON[_0x33f93b(0x165)](_0x1a81b1));}}if(_0x5e54a3[_0x33f93b(0x174)](_0x37bf7a,_0x3f5c7b)&&!_0x3a472c)try{await concludeSession(_0xdfb258[_0x33f93b(0x170)],_0x3f5c7b);}catch{}await _0x5e54a3[_0x33f93b(0x168)](trackStop,_0x52ac15,!![],_0x1140b8);return;}catch{await trackStop(_0x52ac15,!![],_0x1140b8);return;}}async function trackStop(_0x19fadb,_0x20a4c1,_0x2062a5){const _0x4d9151=_0x1994,_0x199a18={'LSZaX':function(_0x258776,_0x2b033f){return _0x258776(_0x2b033f);},'bYWEq':'hook:stop'};try{const _0x482b2b=_0x199a18['LSZaX'](createTelemetryCollector,_0x199a18[_0x4d9151(0x162)]);await _0x482b2b['trackCommandStart']({'sessionId':_0x19fadb??undefined,'hooksEnabled':_0x20a4c1,'stopAllowed':_0x2062a5}),await _0x482b2b[_0x4d9151(0x16e)]('success');}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(_0x1549eb,_0x5a6edd){var _0x7f2358=_0x4a44,_0x1b73e2=_0x1549eb();while(!![]){try{var _0x452677=-parseInt(_0x7f2358(0xbb))/0x1+parseInt(_0x7f2358(0xb9))/0x2+-parseInt(_0x7f2358(0xb8))/0x3+parseInt(_0x7f2358(0xbf))/0x4+-parseInt(_0x7f2358(0xba))/0x5+parseInt(_0x7f2358(0xbe))/0x6+-parseInt(_0x7f2358(0xbc))/0x7*(-parseInt(_0x7f2358(0xbd))/0x8);if(_0x452677===_0x5a6edd)break;else _0x1b73e2['push'](_0x1b73e2['shift']());}catch(_0x17f605){_0x1b73e2['push'](_0x1b73e2['shift']());}}}(_0x1b58,0x50026));export{addEnv}from'./addEnv.js';function _0x1b58(){var _0x2a3567=['1661001ZMqtMm','1101422eslZcq','1870050RFKAXG','534088WtRpdq','2786RJZSYH','14552ZXAtOy','2039790aFjNTt','699380siYAid'];_0x1b58=function(){return _0x2a3567;};return _0x1b58();}export{clean}from'./clean.js';export{login}from'./login.js';export{start}from'./start.js';export{useEnv}from'./useEnv.js';export{updateEnv}from'./updateEnv.js';export{update}from'./update.js';function _0x4a44(_0x23f748,_0x1d4eac){_0x23f748=_0x23f748-0xb8;var _0x1b58d7=_0x1b58();var _0x4a44a0=_0x1b58d7[_0x23f748];return _0x4a44a0;}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 _0x42a1(_0x3a8256,_0x1fb763){_0x3a8256=_0x3a8256-0x14b;const _0x5eed53=_0x5eed();let _0x42a17e=_0x5eed53[_0x3a8256];return _0x42a17e;}(function(_0x45d49f,_0x1ce61a){const _0x53056b=_0x42a1,_0x4f4b7d=_0x45d49f();while(!![]){try{const _0x1f35ae=-parseInt(_0x53056b(0x14b))/0x1*(-parseInt(_0x53056b(0x14c))/0x2)+-parseInt(_0x53056b(0x153))/0x3+parseInt(_0x53056b(0x151))/0x4*(parseInt(_0x53056b(0x152))/0x5)+-parseInt(_0x53056b(0x158))/0x6+parseInt(_0x53056b(0x155))/0x7+-parseInt(_0x53056b(0x156))/0x8*(parseInt(_0x53056b(0x157))/0x9)+parseInt(_0x53056b(0x150))/0xa*(-parseInt(_0x53056b(0x14f))/0xb);if(_0x1f35ae===_0x1ce61a)break;else _0x4f4b7d['push'](_0x4f4b7d['shift']());}catch(_0x5d2f6a){_0x4f4b7d['push'](_0x4f4b7d['shift']());}}}(_0x5eed,0xe1874));function _0x5eed(){const _0x204b7b=['NGVfQ','log','success','organizationName','586wlLJAZ','5062xcxylI','\x0a✅\x20API\x20key\x20stored\x20successfully','user','7579oKwQWd','14410HLvdCV','16SIMyDG','805965dFlmRM','1142457MbqFnH','stdin','2047689CpGbvW','373112KStviL','9jMwrzB','458364bejMRo'];_0x5eed=function(){return _0x204b7b;};return _0x5eed();}import{runDeviceAuthFlow}from'./utils/deviceAuth.js';import{getCurrentUser}from'./utils/userApi.js';export async function login(){const _0x324866=_0x42a1,_0x3caf12={'jLHUi':function(_0x42f79c){return _0x42f79c();},'NGVfQ':function(_0x110c03,_0x3cae41){return _0x110c03(_0x3cae41);}},_0x529068=process[_0x324866(0x154)]['isTTY']&&process['stdout']['isTTY'];if(!_0x529068)throw new Error('Login\x20requires\x20an\x20interactive\x20terminal.\x20In\x20CI,\x20use:\x20ranger\x20setup\x20[token]\x20or\x20set\x20RANGER_CLI_TOKEN.');try{const _0x416393=await _0x3caf12['jLHUi'](runDeviceAuthFlow),_0x5614e5=await _0x3caf12[_0x324866(0x159)](getCurrentUser,_0x416393);_0x5614e5[_0x324866(0x15b)]?console[_0x324866(0x15a)]('\x0a✅\x20Logged\x20in\x20to\x20'+_0x5614e5[_0x324866(0x14e)][_0x324866(0x15c)]):console['log'](_0x324866(0x14d));}catch(_0x3e6a18){throw new Error('Login\x20failed:\x20'+(_0x3e6a18 instanceof Error?_0x3e6a18['message']:_0x3e6a18));}}
@@ -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(_0x2f1e26,_0x44ec09){const _0x5b8268=_0x452c,_0x54bf33=_0x2f1e26();while(!![]){try{const _0x2e5a39=-parseInt(_0x5b8268(0x122))/0x1*(-parseInt(_0x5b8268(0x112))/0x2)+-parseInt(_0x5b8268(0x10d))/0x3+parseInt(_0x5b8268(0x13c))/0x4*(parseInt(_0x5b8268(0x135))/0x5)+parseInt(_0x5b8268(0x12e))/0x6+parseInt(_0x5b8268(0x127))/0x7*(parseInt(_0x5b8268(0x136))/0x8)+-parseInt(_0x5b8268(0x11d))/0x9+parseInt(_0x5b8268(0x131))/0xa*(parseInt(_0x5b8268(0x116))/0xb);if(_0x2e5a39===_0x44ec09)break;else _0x54bf33['push'](_0x54bf33['shift']());}catch(_0x2a8ef4){_0x54bf33['push'](_0x54bf33['shift']());}}}(_0x138e,0xd228a));import{join}from'path';import{existsSync}from'fs';import _0x20a374 from'inquirer';import{skillup}from'../skillup.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'../utils/claudePlugin.js';function _0x452c(_0x32dcb1,_0x2673c5){_0x32dcb1=_0x32dcb1-0x10b;const _0x138e02=_0x138e();let _0x452c00=_0x138e02[_0x32dcb1];return _0x452c00;}import{getProjectRoot,getSkillsDir}from'../utils/claudeConfig.js';export async function ensureClaudePlugin(_0x22d552){const _0x22ebe9=_0x452c,_0x52c8ac={'rZLvx':'ranger@trailhead','Poscu':_0x22ebe9(0x11f),'LjnOL':function(_0x53cf9e){return _0x53cf9e();},'xiZtR':'\x0a📦\x20Claude\x20Code\x20Plugin\x0a','XSZNC':'user','biZOt':_0x22ebe9(0x123),'FVHKA':_0x22ebe9(0x119),'MLiAx':_0x22ebe9(0x11c),'KEIFl':function(_0x121115,_0x2f03a3){return _0x121115(_0x2f03a3);},'QfvCF':_0x22ebe9(0x129),'tkgAD':_0x22ebe9(0x10b),'lLHxv':'install','ToHxJ':'--scope','sBXKa':_0x22ebe9(0x140),'qLlqK':function(_0x6f90be,_0x34f48e){return _0x6f90be===_0x34f48e;},'kEgfH':function(_0x673676,_0x4388ef,_0x15c426){return _0x673676(_0x4388ef,_0x15c426);},'gioya':'✓\x20Claude\x20Code\x20plugin\x20enabled'},_0x5c2854=await isPluginInstalled(_0x52c8ac['rZLvx']);if(_0x5c2854)return console['log'](_0x52c8ac[_0x22ebe9(0x11a)]),![];const _0x3bb591=existsSync(join(_0x52c8ac[_0x22ebe9(0x12f)](getProjectRoot),'.claude'));let _0x242a1a;if(_0x22d552)_0x242a1a=_0x22d552;else{if(_0x3bb591)_0x242a1a='project';else{console['log'](_0x52c8ac['xiZtR']);const _0x153031=await _0x20a374[_0x22ebe9(0x118)]([{'type':'list','name':_0x22ebe9(0x134),'message':_0x22ebe9(0x139),'choices':[{'name':'User\x20(available\x20in\x20all\x20your\x20projects)','value':_0x52c8ac['XSZNC']},{'name':_0x52c8ac['biZOt'],'value':_0x52c8ac[_0x22ebe9(0x10c)]}],'default':_0x22ebe9(0x10f)}]);_0x242a1a=_0x153031[_0x22ebe9(0x134)];}}console['log'](_0x22ebe9(0x133)+_0x242a1a+_0x22ebe9(0x120));const _0x3a68a1=await isMarketplaceAdded(_0x22ebe9(0x13d));let _0x229046=_0x3a68a1;if(_0x3a68a1)console['log'](_0x52c8ac[_0x22ebe9(0x125)]);else{const _0x539c2a=await _0x52c8ac['KEIFl'](runClaudeCommand,[_0x22ebe9(0x10b),_0x52c8ac[_0x22ebe9(0x138)],'add','ranger-testing/trailhead']);!_0x539c2a['success']?(console['error']('❌\x20Failed\x20to\x20add\x20marketplace:',_0x539c2a[_0x22ebe9(0x13a)]),console[_0x22ebe9(0x111)](_0x22ebe9(0x113)),console['log'](_0x22ebe9(0x11b)),console[_0x22ebe9(0x111)](_0x22ebe9(0x13b)+_0x242a1a)):_0x229046=!![];}if(_0x229046){const _0x1e1ea3=await runClaudeCommand([_0x52c8ac['tkgAD'],_0x52c8ac[_0x22ebe9(0x12b)],_0x52c8ac[_0x22ebe9(0x114)],_0x52c8ac[_0x22ebe9(0x12d)],_0x242a1a]);if(!_0x1e1ea3[_0x22ebe9(0x110)])console['error'](_0x52c8ac['sBXKa'],_0x1e1ea3['error']),console[_0x22ebe9(0x111)]('\x0aYou\x20can\x20install\x20manually\x20with:'),console[_0x22ebe9(0x111)](_0x22ebe9(0x13b)+_0x242a1a);else{console['log']('✓\x20Claude\x20Code\x20plugin\x20installed\x20successfully');const _0x3fdf94=['plugin',_0x22ebe9(0x130),'ranger@trailhead'];_0x52c8ac['qLlqK'](_0x242a1a,_0x22ebe9(0x119))&&_0x3fdf94['push'](_0x52c8ac[_0x22ebe9(0x12d)],'project');const _0x4d991f=await _0x52c8ac[_0x22ebe9(0x11e)](runClaudeCommand,_0x3fdf94,{'captureOutput':!![]}),_0x257622=_0x4d991f['output']?.[_0x22ebe9(0x141)](_0x22ebe9(0x126));!_0x4d991f[_0x22ebe9(0x110)]&&!_0x257622?console[_0x22ebe9(0x13a)]('⚠\x20Failed\x20to\x20enable\x20plugin:',_0x4d991f['error']):console['log'](_0x52c8ac[_0x22ebe9(0x142)]);}}return!![];}export async function ensureClaudeSkills(_0x5e3d43){const _0x17a314=_0x452c,_0x33b372={'xvaVB':function(_0x2d9cd5,_0x50cbd9){return _0x2d9cd5(_0x50cbd9);},'HGhFU':function(_0x452170,_0x244dfa,_0x229002,_0x353f6c){return _0x452170(_0x244dfa,_0x229002,_0x353f6c);},'nhTPd':'user','PdfXH':_0x17a314(0x12c),'LewRS':_0x17a314(0x119),'pVWSL':function(_0x23cafd,_0x426a9e){return _0x23cafd||_0x426a9e;},'yOXKd':function(_0x2bab3c){return _0x2bab3c();},'lvEVg':function(_0x208f5f,_0x104088){return _0x208f5f(_0x104088);},'PXqqr':function(_0x4b11e1,_0x1422e4){return _0x4b11e1(_0x1422e4);},'rKfrU':_0x17a314(0x121)},_0x474eed=_0x33b372[_0x17a314(0x117)](existsSync,_0x33b372['HGhFU'](join,_0x33b372[_0x17a314(0x117)](getSkillsDir,_0x33b372[_0x17a314(0x128)]),'ranger',_0x33b372[_0x17a314(0x137)])),_0x47d3d2=existsSync(join(getSkillsDir(_0x33b372[_0x17a314(0x13e)]),_0x17a314(0x13f),_0x17a314(0x12c)));if(_0x33b372['pVWSL'](_0x474eed,_0x47d3d2))return console[_0x17a314(0x111)](_0x17a314(0x124)),![];const _0x2501d4=existsSync(join(_0x33b372[_0x17a314(0x10e)](getProjectRoot),'.claude'));let _0x274608=!![];if(_0x5e3d43)await _0x33b372[_0x17a314(0x12a)](skillup,{'autoInstall':_0x5e3d43,'suppressUsage':!![]});else{if(_0x2501d4)await _0x33b372['PXqqr'](skillup,{'autoInstall':_0x17a314(0x119),'suppressUsage':!![]});else{const _0x34725e=await _0x20a374['prompt']([{'type':_0x33b372[_0x17a314(0x132)],'name':_0x17a314(0x115),'message':'Would\x20you\x20like\x20to\x20install\x20skills?','default':!![]}]);_0x274608=_0x34725e[_0x17a314(0x115)],_0x274608&&await skillup({'suppressUsage':!![]});}}return _0x274608;}function _0x138e(){const _0xa2af47=['1005IJbyLI','23928xxQJRL','PdfXH','QfvCF','Where\x20should\x20the\x20plugin\x20be\x20installed?','error','\x20\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20','1884FgizeB','trailhead','LewRS','ranger','❌\x20Failed\x20to\x20install\x20plugin:','includes','gioya','plugin','FVHKA','3902490wNMgoB','yOXKd','user','success','log','6eclQEQ','\x0aYou\x20can\x20install\x20manually\x20with:','rZLvx','wantsSkillup','37048WcnJrb','xvaVB','prompt','project','Poscu','\x20\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','✓\x20Marketplace\x20already\x20added','2899134yrNJPB','kEgfH','✓\x20Claude\x20Code\x20plugin\x20already\x20installed','\x20level)...\x0a','confirm','18498uUverY','Project\x20(shared\x20with\x20team\x20via\x20git)','✓\x20Ranger\x20skills\x20already\x20installed','MLiAx','already\x20enabled','1162uSRjak','nhTPd','marketplace','lvEVg','lLHxv','SKILL.md','ToHxJ','170874tTJygA','LjnOL','enable','5370McVvff','rKfrU','\x0aInstalling\x20Claude\x20Code\x20plugin\x20(','pluginScope'];_0x138e=function(){return _0xa2af47;};return _0x138e();}
@@ -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(_0x96e577,_0x5899d7){const _0x460408=_0x232c,_0x126584=_0x96e577();while(!![]){try{const _0x27dbc0=-parseInt(_0x460408(0x85))/0x1*(parseInt(_0x460408(0x70))/0x2)+-parseInt(_0x460408(0x82))/0x3*(parseInt(_0x460408(0x6b))/0x4)+parseInt(_0x460408(0x76))/0x5+-parseInt(_0x460408(0x71))/0x6+parseInt(_0x460408(0x86))/0x7*(parseInt(_0x460408(0x6a))/0x8)+parseInt(_0x460408(0x75))/0x9+-parseInt(_0x460408(0x87))/0xa*(-parseInt(_0x460408(0x6d))/0xb);if(_0x27dbc0===_0x5899d7)break;else _0x126584['push'](_0x126584['shift']());}catch(_0x1ae069){_0x126584['push'](_0x126584['shift']());}}}(_0x7199,0x6c84a));import{join}from'path';import{existsSync}from'fs';import{mkdir,readFile,writeFile}from'fs/promises';function _0x7199(){const _0x4f8df4=['14202221MGqfYJ','log','user','468332ewAKsy','2935350yHmaUW','$schema','cnZKQ','prompt','2448891GXvmpt','1304330wENxwq','\x0a📦\x20OpenCode\x20Plugin\x0a','CUhos','⚠\x20Failed\x20to\x20read\x20opencode.json.\x20Please\x20add\x20the\x20plugin\x20manually.','odCqE','list','✓\x20OpenCode\x20plugin\x20already\x20configured','project','https://opencode.ai/config.json','MEfYr','pluginScope','opencode.json','2391IUlqjp','stringify','@ranger-testing/opencode-plugin','1jadazy','252fVbMUt','10gOvmuw','plugin','User\x20(available\x20in\x20all\x20your\x20projects)','42448KZDWoc','4252VaxjyE','Project\x20(shared\x20with\x20team\x20via\x20git)'];_0x7199=function(){return _0x4f8df4;};return _0x7199();}import _0x53ca31 from'inquirer';import{getOpencodeConfigDir}from'../utils/opencodeConfig.js';function _0x232c(_0x5bf7bd,_0x1571a5){_0x5bf7bd=_0x5bf7bd-0x68;const _0x719963=_0x7199();let _0x232ceb=_0x719963[_0x5bf7bd];return _0x232ceb;}export async function ensureOpencodePluginConfig(_0x30ce6d){const _0x21b39b=_0x232c,_0x2e4883={'cnZKQ':function(_0x2c7832,_0x278193){return _0x2c7832(_0x278193);},'CUhos':function(_0x3a58e7,_0x2bcaf4){return _0x3a58e7(_0x2bcaf4);},'UkeSn':'project','YGpZO':_0x21b39b(0x77),'wLSLn':_0x21b39b(0x7b),'odCqE':'Where\x20should\x20the\x20plugin\x20be\x20installed?','RCVHA':_0x21b39b(0x6f),'sYzli':_0x21b39b(0x84),'MEfYr':function(_0x513918,_0x2a73d1,_0x6283bd){return _0x513918(_0x2a73d1,_0x6283bd);},'cQbZj':'utf-8','keuXO':_0x21b39b(0x79)},_0x12cdeb=_0x2e4883[_0x21b39b(0x73)](existsSync,join(_0x2e4883[_0x21b39b(0x78)](getOpencodeConfigDir,_0x2e4883['UkeSn']),_0x21b39b(0x81)));let _0x4bc3ec;if(_0x30ce6d)_0x4bc3ec=_0x30ce6d;else{if(_0x12cdeb)_0x4bc3ec=_0x21b39b(0x7d);else{console[_0x21b39b(0x6e)](_0x2e4883['YGpZO']);const _0x2b5e75=await _0x53ca31[_0x21b39b(0x74)]([{'type':_0x2e4883['wLSLn'],'name':_0x21b39b(0x80),'message':_0x2e4883[_0x21b39b(0x7a)],'choices':[{'name':_0x21b39b(0x69),'value':'user'},{'name':_0x21b39b(0x6c),'value':_0x2e4883['UkeSn']}],'default':_0x2e4883['RCVHA']}]);_0x4bc3ec=_0x2b5e75['pluginScope'];}}const _0x4dd7bc=join(_0x2e4883['CUhos'](getOpencodeConfigDir,_0x4bc3ec),_0x21b39b(0x81)),_0x3ca800=_0x2e4883['sYzli'],_0x238c83=_0x21b39b(0x7e);let _0x380b2e={};if(existsSync(_0x4dd7bc))try{const _0x3a0a06=await _0x2e4883[_0x21b39b(0x7f)](readFile,_0x4dd7bc,_0x2e4883['cQbZj']);_0x380b2e=JSON['parse'](_0x3a0a06);}catch(_0x41d26f){return console['error'](_0x2e4883['keuXO']),{'configured':![],'scope':_0x4bc3ec,'error':'Failed\x20to\x20read\x20opencode.json','details':_0x41d26f};}const _0x26d458=Array['isArray'](_0x380b2e['plugin'])?_0x380b2e['plugin']:[];if(_0x26d458['includes'](_0x3ca800))return console[_0x21b39b(0x6e)](_0x21b39b(0x7c)),{'configured':![],'scope':_0x4bc3ec};return _0x380b2e[_0x21b39b(0x72)]=_0x380b2e[_0x21b39b(0x72)]||_0x238c83,_0x380b2e[_0x21b39b(0x68)]=[..._0x26d458,_0x3ca800],await mkdir(getOpencodeConfigDir(_0x4bc3ec),{'recursive':!![]}),await _0x2e4883[_0x21b39b(0x7f)](writeFile,_0x4dd7bc,JSON[_0x21b39b(0x83)](_0x380b2e,null,0x2)+'\x0a'),console['log']('✓\x20OpenCode\x20plugin\x20configured'),{'configured':!![],'scope':_0x4bc3ec};}
@@ -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(_0x4569f6,_0x296eb6){const _0x3ad01d=_0x42c5,_0x32561b=_0x4569f6();while(!![]){try{const _0x3a157a=-parseInt(_0x3ad01d(0x191))/0x1+parseInt(_0x3ad01d(0x176))/0x2+-parseInt(_0x3ad01d(0x16c))/0x3*(parseInt(_0x3ad01d(0x199))/0x4)+parseInt(_0x3ad01d(0x18e))/0x5+parseInt(_0x3ad01d(0x169))/0x6*(parseInt(_0x3ad01d(0x16b))/0x7)+-parseInt(_0x3ad01d(0x195))/0x8*(-parseInt(_0x3ad01d(0x197))/0x9)+parseInt(_0x3ad01d(0x196))/0xa*(-parseInt(_0x3ad01d(0x198))/0xb);if(_0x3a157a===_0x296eb6)break;else _0x32561b['push'](_0x32561b['shift']());}catch(_0x3a5a3a){_0x32561b['push'](_0x32561b['shift']());}}}(_0x25b2,0x5f2df));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 _0x25b2(){const _0x225d53=['45GMLhBV','64295ejmTUh','28nyiDJL','\x0a🔧\x20Ranger\x20CI\x20Setup\x0a','path','MeyGi','tnqgX','isDirectory','baseUrl','trackPhaseEnd','profile','\x20\x20No\x20auth\x20state\x20found\x20(app\x20may\x20not\x20require\x20authentication)','project','AfsgQ','MpqSr','174JgCyKo','fEdGj','123746lXOkoZ','260757MihyCC','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20install\x20ranger@trailhead\x20--scope\x20project','trackPhaseStart','qFEPJ','filter','KCOuN','plugin','error','oLrYl','ZMNcU','420430WZukHA','Multiple\x20CI\x20profiles\x20found:\x20','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','✓\x20Claude\x20Code\x20plugin\x20installed','No\x20CI\x20profiles\x20found\x20in\x20.ranger/ci/.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','Zpzty','auth.json.enc','Installing\x20Claude\x20Code\x20plugin\x20(project\x20level)...','log','wKkCP','lrzgd','OEhTu','tnWmq','dir_setup','wJQFv','Failed\x20to\x20verify\x20encrypted\x20auth\x20for\x20profile\x20\x22','length','name','chromium','You\x20can\x20install\x20manually:\x20claude\x20plugin\x20marketplace\x20add\x20ranger-testing/trailhead','skills','.\x20Use\x20--profile\x20to\x20specify\x20which\x20one.','Failed\x20to\x20add\x20marketplace:','oycsM','3535050NOAaFY','ranger@trailhead','VMHjq','288319AzROCP','profile_activate','✓\x20Marketplace\x20already\x20added','HVBmD','154184dZfmIa','410xILHeu'];_0x25b2=function(){return _0x225d53;};return _0x25b2();}import{getToken}from'./utils/keychain.js';import{runClaudeCommand,isMarketplaceAdded,isPluginInstalled}from'./utils/claudePlugin.js';async function findCiProfile(_0x139eea){const _0x383042=_0x42c5,_0x364fc0={'AfsgQ':function(_0x3fab50,_0xa97a40,_0x1602c4){return _0x3fab50(_0xa97a40,_0x1602c4);},'Zpzty':function(_0x1c61a0,_0x3e700d,_0x5f4fa4){return _0x1c61a0(_0x3e700d,_0x5f4fa4);},'MeyGi':function(_0x144a4a,_0x30d451){return _0x144a4a(_0x30d451);},'tnWmq':'No\x20CI\x20profiles\x20found.\x20Create\x20one\x20first\x20with:\x20ranger\x20profile\x20add\x20<name>\x20--ci\x0a','bckgu':function(_0x27f329,_0xcf3426){return _0x27f329+_0xcf3426;},'HVBmD':function(_0x159a6a,_0x15a36b){return _0x159a6a===_0x15a36b;},'buycT':function(_0xfb52f4,_0x690f2,_0x301e24){return _0xfb52f4(_0x690f2,_0x301e24);}},_0x5903a0=getRangerDir(),_0x17ad5c=_0x364fc0[_0x383042(0x1a4)](join,_0x5903a0,'ci');if(_0x139eea){const _0x573655=_0x364fc0[_0x383042(0x17b)](join,_0x17ad5c,_0x139eea);return{'name':_0x139eea,'path':_0x573655};}if(!_0x364fc0[_0x383042(0x19c)](existsSync,_0x17ad5c))throw new Error(_0x364fc0[_0x383042(0x182)]+'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.');const _0x1a0c31=await readdir(_0x17ad5c,{'withFileTypes':!![]}),_0x449e3c=_0x1a0c31[_0x383042(0x170)](_0x4d2e01=>_0x4d2e01[_0x383042(0x19e)]())['map'](_0xd02684=>_0xd02684['name']);if(_0x449e3c[_0x383042(0x186)]===0x0)throw new Error(_0x364fc0['bckgu'](_0x383042(0x17a),'Or\x20specify\x20a\x20profile\x20name\x20with\x20--profile\x20and\x20--base-url\x20to\x20create\x20one.'));if(_0x364fc0[_0x383042(0x194)](_0x449e3c[_0x383042(0x186)],0x1)){const _0x12d0ea=_0x449e3c[0x0];return console['log']('Auto-detected\x20CI\x20profile:\x20'+_0x12d0ea),{'name':_0x12d0ea,'path':_0x364fc0['buycT'](join,_0x17ad5c,_0x12d0ea)};}throw new Error(_0x383042(0x177)+_0x449e3c['join'](',\x20')+_0x383042(0x18b));}function _0x42c5(_0x30f5fc,_0x2dd80d){_0x30f5fc=_0x30f5fc-0x168;const _0x25b23f=_0x25b2();let _0x42c57a=_0x25b23f[_0x30f5fc];return _0x42c57a;}async function installPluginNonInteractive(){const _0x1a575f=_0x42c5,_0x48e5d8={'xWtuC':function(_0x10ad00,_0x43c566){return _0x10ad00(_0x43c566);},'OIMlQ':'✓\x20Claude\x20Code\x20plugin\x20already\x20installed','ISLjD':_0x1a575f(0x193),'WuHBK':_0x1a575f(0x172),'RUBnC':'add','lJOkE':'ranger-testing/trailhead','RJuad':_0x1a575f(0x189),'KCOuN':'install','EEGsm':'ranger@trailhead','lrzgd':'--scope','wJQFv':_0x1a575f(0x179)},_0x55f80d=await _0x48e5d8['xWtuC'](isPluginInstalled,_0x1a575f(0x18f));if(_0x55f80d)return console[_0x1a575f(0x17e)](_0x48e5d8['OIMlQ']),![];console[_0x1a575f(0x17e)](_0x1a575f(0x17d));const _0x1cdf55=await isMarketplaceAdded('trailhead');let _0x5eee1c=_0x1cdf55;if(_0x1cdf55)console[_0x1a575f(0x17e)](_0x48e5d8['ISLjD']);else{const _0x17689e=await runClaudeCommand([_0x48e5d8['WuHBK'],'marketplace',_0x48e5d8['RUBnC'],_0x48e5d8['lJOkE']]);!_0x17689e['success']?(console[_0x1a575f(0x173)](_0x1a575f(0x18c),_0x17689e['error']),console[_0x1a575f(0x17e)](_0x48e5d8['RJuad'])):_0x5eee1c=!![];}if(_0x5eee1c){const _0x413bc2=await runClaudeCommand(['plugin',_0x48e5d8[_0x1a575f(0x171)],_0x48e5d8['EEGsm'],_0x48e5d8[_0x1a575f(0x180)],'project']);!_0x413bc2['success']?(console[_0x1a575f(0x173)]('Failed\x20to\x20install\x20plugin:',_0x413bc2['error']),console[_0x1a575f(0x17e)](_0x1a575f(0x16d))):console[_0x1a575f(0x17e)](_0x48e5d8[_0x1a575f(0x184)]);}return!![];}export async function setupCi(_0x2f8bc4,_0x48c0cd,_0x39c5e6){const _0x473f3a=_0x42c5,_0x4a994c={'oLrYl':'auth','fEdGj':function(_0x902262,_0xa48dbd){return _0x902262(_0xa48dbd);},'tnqgX':_0x473f3a(0x183),'VMHjq':function(_0xede7a2,_0x176a99,_0x3411b9){return _0xede7a2(_0x176a99,_0x3411b9);},'Aomaa':function(_0x32e98a){return _0x32e98a();},'wUdjN':'chromium','ZMNcU':function(_0x36cdad,_0x3dd7c1,_0x2ec68a){return _0x36cdad(_0x3dd7c1,_0x2ec68a);},'OEhTu':'settings.json','gseCw':'auth.json','oycsM':function(_0x2d4407,_0x348dc8,_0x137acc){return _0x2d4407(_0x348dc8,_0x137acc);},'qFEPJ':_0x473f3a(0x17c),'iouqs':function(_0x75b9ea){return _0x75b9ea();},'MpqSr':'No\x20API\x20token\x20available\x20for\x20decryption','PvDcg':'✓\x20Encrypted\x20auth\x20verified\x20(will\x20decrypt\x20at\x20runtime)','kgiqP':_0x473f3a(0x1a2),'wKkCP':_0x473f3a(0x192),'FuAiE':_0x473f3a(0x172)};console[_0x473f3a(0x17e)](_0x473f3a(0x19a)),_0x39c5e6?.['trackPhaseStart'](_0x4a994c[_0x473f3a(0x174)]),await _0x4a994c[_0x473f3a(0x16a)](authenticate,_0x2f8bc4),_0x39c5e6?.[_0x473f3a(0x1a0)](_0x4a994c['oLrYl']),_0x39c5e6?.[_0x473f3a(0x16e)](_0x4a994c[_0x473f3a(0x19d)]);const {path:_0x3541a,installed:_0x21b3b9}=await ensureRangerDir();await _0x4a994c[_0x473f3a(0x16a)](writeRangerGitignore,_0x3541a);const _0x3b5e29=_0x4a994c[_0x473f3a(0x190)](join,_0x3541a,'sessions');!existsSync(_0x3b5e29)&&await mkdir(_0x3b5e29,{'recursive':!![]});_0x39c5e6?.[_0x473f3a(0x1a0)]('dir_setup',{'installed':_0x21b3b9}),_0x39c5e6?.['trackPhaseStart'](_0x473f3a(0x188));let _0x15b94d=![];_0x48c0cd?.['skipChromium']?console['log'](_0x473f3a(0x178)):_0x15b94d=await _0x4a994c['Aomaa'](ensureChromium);_0x39c5e6?.['trackPhaseEnd'](_0x4a994c['wUdjN'],{'installed':_0x15b94d,'skipped':!!_0x48c0cd?.['skipChromium']}),_0x39c5e6?.[_0x473f3a(0x16e)](_0x473f3a(0x192));const _0x4a4e76=await findCiProfile(_0x48c0cd?.[_0x473f3a(0x1a1)]);let _0x469ab1=![];_0x48c0cd?.[_0x473f3a(0x19f)]&&(await _0x4a994c[_0x473f3a(0x175)](mkdir,_0x4a4e76[_0x473f3a(0x19b)],{'recursive':!![]}),await saveSettings(_0x4a4e76['name'],{'baseUrl':_0x48c0cd['baseUrl'],'headless':!![]}),console[_0x473f3a(0x17e)]('✓\x20Created\x20profile\x20settings:\x20baseUrl='+_0x48c0cd['baseUrl']),_0x469ab1=!![]);const _0x361d07=_0x4a994c['VMHjq'](join,_0x4a4e76['path'],_0x4a994c[_0x473f3a(0x181)]);if(!_0x4a994c['fEdGj'](existsSync,_0x361d07)&&!_0x469ab1)throw new Error('CI\x20profile\x20\x22'+_0x4a4e76['name']+'\x22\x20has\x20no\x20settings.json.\x20Use\x20--base-url\x20to\x20configure\x20it.');const _0x3b70bb=_0x4a994c['ZMNcU'](join,_0x4a4e76['path'],_0x4a994c['gseCw']),_0x517975=_0x4a994c['oycsM'](join,_0x4a4e76['path'],_0x4a994c[_0x473f3a(0x16f)]),_0x4a8c23=existsSync(_0x3b70bb),_0x12b2ce=existsSync(_0x517975);if(_0x12b2ce)try{const _0x575cb9=await _0x4a994c['iouqs'](getToken);if(!_0x575cb9)throw new Error(_0x4a994c[_0x473f3a(0x168)]);const _0x1aa5b0=await readFile(_0x517975);_0x4a994c[_0x473f3a(0x18d)](decrypt,_0x1aa5b0,_0x575cb9),console[_0x473f3a(0x17e)](_0x4a994c['PvDcg']);}catch(_0x49d8d3){const _0x5e1286=_0x49d8d3 instanceof Error?_0x49d8d3['message']:String(_0x49d8d3);throw new Error(_0x473f3a(0x185)+_0x4a4e76[_0x473f3a(0x187)]+'\x22:\x20'+_0x5e1286);}else _0x4a8c23?console['log']('✓\x20Auth\x20state\x20found'):console[_0x473f3a(0x17e)](_0x4a994c['kgiqP']);await _0x4a994c['fEdGj'](writeActiveProfileName,_0x4a4e76['name']),console['log']('✓\x20Active\x20profile:\x20'+_0x4a4e76['name']),_0x39c5e6?.['trackPhaseEnd'](_0x4a994c[_0x473f3a(0x17f)],{'profileName':_0x4a4e76['name'],'hasAuth':_0x4a8c23,'hasEncryptedAuth':_0x12b2ce,'createdSettings':_0x469ab1}),_0x39c5e6?.['trackPhaseStart'](_0x473f3a(0x172));const _0x185dcb=await installPluginNonInteractive();_0x39c5e6?.['trackPhaseEnd'](_0x4a994c['FuAiE'],{'installed':_0x185dcb}),_0x39c5e6?.[_0x473f3a(0x16e)](_0x473f3a(0x18a)),await skillup({'autoInstall':_0x473f3a(0x1a3)}),_0x39c5e6?.['trackPhaseEnd'](_0x473f3a(0x18a)),console['log']('\x0a✅\x20Ranger\x20CI\x20setup\x20complete!\x0a');}
@@ -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(_0x555760,_0xae5af4){const _0x55b20b=_0x3646,_0x29df01=_0x555760();while(!![]){try{const _0x41d4d1=parseInt(_0x55b20b(0x18a))/0x1+parseInt(_0x55b20b(0x1b0))/0x2+-parseInt(_0x55b20b(0x192))/0x3*(parseInt(_0x55b20b(0x195))/0x4)+-parseInt(_0x55b20b(0x1a9))/0x5*(parseInt(_0x55b20b(0x1a4))/0x6)+-parseInt(_0x55b20b(0x19a))/0x7+-parseInt(_0x55b20b(0x1aa))/0x8*(-parseInt(_0x55b20b(0x196))/0x9)+parseInt(_0x55b20b(0x1a0))/0xa;if(_0x41d4d1===_0xae5af4)break;else _0x29df01['push'](_0x29df01['shift']());}catch(_0x4bc337){_0x29df01['push'](_0x29df01['shift']());}}}(_0x11e1,0x27906));function _0x3646(_0x43d3f9,_0x480a73){_0x43d3f9=_0x43d3f9-0x185;const _0x11e18e=_0x11e1();let _0x36467f=_0x11e18e[_0x43d3f9];return _0x36467f;}import{basename}from'path';import _0x62e0c3 from'inquirer';import{getToken}from'./utils/keychain.js';function _0x11e1(){const _0x416c80=['844wRjMSR','236538gIoePe','\x20\x20-\x20Start\x20OpenCode\x20and\x20run\x20the\x20`ranger_enable`\x20tool\x20to\x20enable\x20hooks.','2|5|1|0|3|4','ranger','1500226rXpDta','\x0a🎯\x20Ranger\x20Skill\x20Setup\x0a','installLevel','isTTY','To\x20use:','/.claude/skills/','4718200zOrsft','opencode','\x20\x203.\x20Run:\x20ranger\x20skillup','fTkUe','2184tbqUBx','\x20--opencode','\x0a📦\x20Installing\x20skills...\x0a','lxPCT','GBkNB','3200VmMELo','16ALjKmy','autoInstall','JOfqB','kiLSx','stdin','log','151004ZrWRzU','platform','\x0a✅\x20Installed\x20','\x0a⚠️\x20\x20No\x20skills\x20were\x20installed.\x0a','warn','OJPOY','All\x20projects\x20(','\x20skill','266233wAjtRx','\x20\x202.\x20Run:\x20ranger\x20setup','zggOg','claude','\x20\x20Failed\x20to\x20install\x20ranger\x20skill:','suppressUsage','prompt','dcjOU','3651yRLTjp','uaFWh','/skills/'];_0x11e1=function(){return _0x416c80;};return _0x11e1();}import{installSkill}from'./utils/skills.js';import{getCurrentVersion}from'./utils/version.js';import{getClaudeConfigDir,getProjectRoot}from'./utils/claudeConfig.js';import{getOpencodeConfigDir}from'./utils/opencodeConfig.js';export async function skillup(_0x1aa5ed={}){const _0x42c92d=_0x3646,_0x1482b4={'OJPOY':function(_0x377483){return _0x377483();},'pRuZE':function(_0x1770ae,_0x40d056){return _0x1770ae===_0x40d056;},'zggOg':'opencode','MBExm':'\x20--opencode','oviMG':'To\x20get\x20started:','uaFWh':'user','dcjOU':'installLevel','JOfqB':'project','kiLSx':function(_0x8e18e7,_0x48e095,_0x333b12){return _0x8e18e7(_0x48e095,_0x333b12);},'GBkNB':_0x42c92d(0x199),'neJKY':function(_0x67358e,_0x78c327){return _0x67358e instanceof _0x78c327;},'lxPCT':function(_0x4892df,_0x4a7171){return _0x4892df>_0x4a7171;},'fdWEs':function(_0xe2d2bb,_0x35382c){return _0xe2d2bb>_0x35382c;},'goAfb':_0x42c92d(0x19e),'fTkUe':_0x42c92d(0x197),'CkBFB':'\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!','Myydc':_0x42c92d(0x185)};console[_0x42c92d(0x1af)](_0x42c92d(0x19b));const _0x13996a=_0x1aa5ed[_0x42c92d(0x1b1)]??_0x42c92d(0x18d),_0x200c89=await _0x1482b4[_0x42c92d(0x187)](getToken);if(!_0x200c89){const _0x143a01=_0x42c92d(0x198)['split']('|');let _0x19cc72=0x0;while(!![]){switch(_0x143a01[_0x19cc72++]){case'0':console[_0x42c92d(0x1af)](_0x42c92d(0x18b)+(_0x1482b4['pRuZE'](_0x13996a,_0x1482b4[_0x42c92d(0x18c)])?_0x1482b4['MBExm']:'')+'\x20<your-api-token>');continue;case'1':console[_0x42c92d(0x1af)]('\x20\x201.\x20Get\x20your\x20API\x20token\x20from\x20https://dashboard.ranger.net/cli');continue;case'2':console['log']('❌\x20No\x20Ranger\x20API\x20token\x20found.\x0a');continue;case'3':console['log'](_0x42c92d(0x1a2)+(_0x13996a===_0x1482b4['zggOg']?_0x42c92d(0x1a5):'')+'\x0a');continue;case'4':return;case'5':console['log'](_0x1482b4['oviMG']);continue;}break;}}console[_0x42c92d(0x1af)]('✓\x20Found\x20API\x20token');const _0x434c22=_0x1482b4[_0x42c92d(0x187)](getProjectRoot),_0x27b670=basename(_0x434c22),_0x5dcc1a=_0x13996a===_0x1482b4['zggOg']?getOpencodeConfigDir(_0x1482b4[_0x42c92d(0x193)])+'/skills/':getClaudeConfigDir()+_0x42c92d(0x194),_0x567fd4=_0x13996a==='opencode'?_0x434c22+'/.opencode/skills/':_0x434c22+_0x42c92d(0x19f),_0x59d744=process[_0x42c92d(0x1ae)][_0x42c92d(0x19d)]&&process['stdout'][_0x42c92d(0x19d)];let _0x516b72;if(_0x1aa5ed['autoInstall'])_0x516b72=_0x1aa5ed[_0x42c92d(0x1ab)];else{if(_0x59d744){const _0x58a6ab=await _0x62e0c3[_0x42c92d(0x190)]([{'type':'list','name':_0x1482b4[_0x42c92d(0x191)],'message':'Where\x20should\x20skills\x20be\x20installed?','choices':[{'name':_0x42c92d(0x188)+_0x5dcc1a+')','value':_0x1482b4[_0x42c92d(0x193)]},{'name':'This\x20project\x20only\x20('+_0x567fd4+')','value':_0x1482b4[_0x42c92d(0x1ac)]}]}]);_0x516b72=_0x58a6ab[_0x42c92d(0x19c)];}else _0x516b72=_0x1482b4['JOfqB'],console[_0x42c92d(0x1af)]('Non-interactive\x20mode:\x20Installing\x20skills\x20at\x20project\x20level\x20('+_0x567fd4+')');}let _0xed6581=0x0;const _0x43d91=getCurrentVersion();console[_0x42c92d(0x1af)](_0x42c92d(0x1a6));try{const _0x299620=await _0x1482b4[_0x42c92d(0x1ad)](installSkill,_0x1482b4[_0x42c92d(0x1a8)],{'cliVersion':_0x43d91,'level':_0x516b72,'platform':_0x13996a});_0x299620&&_0xed6581++;}catch(_0x1cc86a){console[_0x42c92d(0x186)](_0x42c92d(0x18e),_0x1482b4['neJKY'](_0x1cc86a,Error)?_0x1cc86a['message']:_0x1cc86a);}if(_0x1482b4[_0x42c92d(0x1a7)](_0xed6581,0x0)){const _0x3dc573=_0x516b72==='user'?'user-level':'project-level';console['log'](_0x42c92d(0x1b2)+_0xed6581+'\x20'+_0x3dc573+_0x42c92d(0x189)+(_0x1482b4['fdWEs'](_0xed6581,0x1)?'s':'')+'\x20successfully!\x0a'),!_0x1aa5ed[_0x42c92d(0x18f)]&&(console['log'](_0x1482b4['goAfb']),_0x13996a===_0x42c92d(0x1a1)?console[_0x42c92d(0x1af)](_0x1482b4[_0x42c92d(0x1a3)]):console[_0x42c92d(0x1af)](_0x1482b4['CkBFB']));}else console[_0x42c92d(0x1af)](_0x1482b4['Myydc']);}
@@ -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 _0x5cec03=_0x17d0;(function(_0x1e416a,_0x25b5f6){const _0x3fc3ee=_0x17d0,_0x52fd1d=_0x1e416a();while(!![]){try{const _0x28ab11=-parseInt(_0x3fc3ee(0x1c9))/0x1*(-parseInt(_0x3fc3ee(0x1ac))/0x2)+-parseInt(_0x3fc3ee(0x205))/0x3*(parseInt(_0x3fc3ee(0x1ee))/0x4)+parseInt(_0x3fc3ee(0x1de))/0x5*(-parseInt(_0x3fc3ee(0x217))/0x6)+-parseInt(_0x3fc3ee(0x1ef))/0x7*(-parseInt(_0x3fc3ee(0x1ae))/0x8)+-parseInt(_0x3fc3ee(0x207))/0x9*(-parseInt(_0x3fc3ee(0x1d2))/0xa)+-parseInt(_0x3fc3ee(0x1e0))/0xb+parseInt(_0x3fc3ee(0x1ce))/0xc;if(_0x28ab11===_0x25b5f6)break;else _0x52fd1d['push'](_0x52fd1d['shift']());}catch(_0x3033bb){_0x52fd1d['push'](_0x52fd1d['shift']());}}}(_0x14a2,0x37350));import{mkdir,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{createRequire}from'module';import{spawn}from'child_process';import _0x2cfe02 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';function _0x14a2(){const _0x488365=['error','zOxsX','scope','You\x27ll\x20need\x20the\x20app\x20to\x20be\x20running\x20to\x20set\x20up\x20the\x20profile.','VXGrv','uqRel','log','\x0aIn\x20OpenCode,\x20enable\x20Ranger\x20hooks\x20(run\x20the\x20`ranger_enable`\x20tool)','156HfVYek','skipped','232137NyBnGu','\x1b[1m','✓\x20Playwright\x20Chromium\x20browser\x20found','AuVMJ','✓\x20.ranger/\x20directory\x20already\x20exists','\x0aA\x20profile\x20gives\x20Ranger\x27s\x20browser\x20agent\x20information\x20about\x20how','✓\x20Already\x20authenticated\x20to\x20','method','HIWgU','ranger\x20profile\x20add\x20local','Authentication\x20failed:\x20','✓\x20Stored\x20credentials\x20locally','sUHGk','\x0a✅\x20You\x27re\x20ready\x20to\x20start\x20using\x20Ranger\x20Feature\x20Review.','skipChromium','stdin','33990kWVJvz','vmuMH','trackPhaseEnd','zMKgj','plugin','opencode','✓\x20Authenticated\x20to\x20','GITHUB_ENV','XuNxr','MoDCZ','\x0aIn\x20Claude\x20Code,\x20run\x20','VuucO','install','DFOgk','bIzkP','99934fOZEvB','resolve','1354168uKOSae','organizationName','to\x20access\x20your\x20app.\x20If\x20the\x20part\x20of\x20your\x20app\x20you\x20want\x20to\x20test\x20is\x20behind','warn','.\x20Please\x20check\x20your\x20API\x20token\x20and\x20try\x20again.','mwoCZ','url','playwright@','success','✓\x20Skipping\x20Chromium\x20check\x20(--skip-chromium)','You\x20will\x20need\x20to\x20install\x20it\x20before\x20using\x20Ranger:','EDRQG','Vgddx','oNZtc','GoFsN','\x0aNon-interactive\x20mode:\x20Auto-installing\x20Playwright\x20Chromium\x20','user','QnZag','ready','close','\x0a❌\x20Failed\x20to\x20install\x20Chromium:','\x0a🚀\x20Ranger\x20Setup\x0a','\x1b[0m','trackPhaseError','existing_token','You\x20can\x20install\x20it\x20manually\x20by\x20running:','/ranger:enable','4sxzvlV','1.58.2','git_check','\x20install\x20chromium','local','3519684ZqURbo','stdout','sQUdz','XupoP','30xoThRm','allowInsecureLocalhost','\x20and\x20prompt\x20the\x20coding','QaPZD','message','ONdWC','ranger','.ranger','\x20\x20Failed\x20to\x20install\x20OpenCode\x20skill:','bJrYy','Installation\x20failed\x20with\x20exit\x20code\x20','HGPqZ','40fdtqhV',')\x20of\x20the\x20Playwright\x20Chromium\x20browser\x20is\x20not\x20installed.\x20Install\x20it\x20now?','193479kpMBep','✓\x20Local\x20profile\x20already\x20exists','npx','mlqpV','mOxmW','iYsrZ','prompt','Non-interactive\x20mode:\x20Skipping\x20profile\x20setup.\x20To\x20set\x20up\x20a\x20profile,\x20pass\x20--url\x20or\x20run\x20later:','xPTOC','The\x20required\x20version\x20(','chromium','isTTY','FzlnA','\x0aIn\x20order\x20for\x20Ranger\x20to\x20verify\x20your\x20work,\x20you\x27ll\x20need\x20to\x20set\x20up\x20a\x20profile\x20later\x20with:','34676IpGcES','7vPwUtd','use\x20until\x20the\x20session\x20expires.\x0a','ZDdVC','\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','No\x20git\x20repository\x20found','confirm','Ozale','trackPhaseStart','skills','tJYZy','eWSFq','status','wantsProfile','Failed\x20to\x20validate\x20provisioned\x20API\x20key:\x20'];_0x14a2=function(){return _0x488365;};return _0x14a2();}import{ensureOpencodePluginConfig}from'./setup/opencode.js';import{installSkill}from'./utils/skills.js';function _0x17d0(_0x5c6a62,_0x2d7abf){_0x5c6a62=_0x5c6a62-0x1a2;const _0x14a2e9=_0x14a2();let _0x17d0fe=_0x14a2e9[_0x5c6a62];return _0x17d0fe;}const require=createRequire(import.meta.url),PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION=_0x5cec03(0x1ca),bold=_0x5d6828=>_0x5cec03(0x208)+_0x5d6828+_0x5cec03(0x1c4);function getPlaywrightVersion(){const _0x3f20ab=_0x5cec03,_0x304da1={'Ozale':'playwright/package.json'};try{const _0x15aa9d=require[_0x3f20ab(0x1ad)](_0x304da1[_0x3f20ab(0x1f5)]),_0x20ec9f=require(_0x15aa9d);return _0x20ec9f['version'];}catch{return null;}}function installChromiumBinary(_0x1db977){const _0xdb4aa2=_0x5cec03,_0x41e54b={'qVmUg':function(_0x3636ad){return _0x3636ad();},'BPxup':function(_0xa18e16,_0x1a40b8){return _0xa18e16(_0x1a40b8);},'JXXaa':_0xdb4aa2(0x1ea),'nSOTZ':function(_0x654a49,_0x516fc3){return _0x654a49===_0x516fc3;},'ZDdVC':_0xdb4aa2(0x1c1),'AuVMJ':'error'};return new Promise((_0x428e02,_0x282be6)=>{const _0x4a3149=_0xdb4aa2,_0x17b47f=[_0x4a3149(0x1b5)+_0x1db977,_0x4a3149(0x1a9),_0x41e54b['JXXaa']],_0x15ba15=spawn(_0x4a3149(0x1e2),_0x17b47f,{'stdio':'inherit','shell':_0x41e54b['nSOTZ'](process['platform'],'win32')});_0x15ba15['on'](_0x41e54b[_0x4a3149(0x1f1)],_0x17b4c6=>{const _0x522e0a=_0x4a3149;_0x17b4c6===0x0?_0x41e54b['qVmUg'](_0x428e02):_0x41e54b['BPxup'](_0x282be6,new Error(_0x522e0a(0x1dc)+_0x17b4c6));}),_0x15ba15['on'](_0x41e54b[_0x4a3149(0x20a)],_0x48e543=>{_0x282be6(_0x48e543);});});}export async function authenticate(_0x9875c4){const _0x2372c2=_0x5cec03,_0x564cea={'bJrYy':function(_0x513e06,_0x6ee777){return _0x513e06(_0x6ee777);},'CRiMy':_0x2372c2(0x1c6),'vmuMH':function(_0x5b350b,_0x14f0f7){return _0x5b350b instanceof _0x14f0f7;},'zgRYB':function(_0x17a49a,_0x3dbea1){return _0x17a49a(_0x3dbea1);},'ZLTua':'Validating\x20API\x20token...','QaPZD':'provided_token'};if(!_0x9875c4){const _0x80792c=await getToken();if(_0x80792c){const _0x32552f=await _0x564cea[_0x2372c2(0x1db)](getCurrentUser,_0x80792c);if(_0x32552f[_0x2372c2(0x1b6)])return console[_0x2372c2(0x203)](_0x2372c2(0x20d)+_0x32552f['user']['organizationName']),{'token':_0x80792c,'method':_0x564cea['CRiMy']};}try{_0x9875c4=await runDeviceAuthFlow();}catch(_0x220ec7){throw new Error('Authentication\x20failed:\x20'+(_0x564cea[_0x2372c2(0x218)](_0x220ec7,Error)?_0x220ec7[_0x2372c2(0x1d6)]:_0x220ec7));}const _0x2b2ef4=await _0x564cea['zgRYB'](getCurrentUser,_0x9875c4);if(!_0x2b2ef4[_0x2372c2(0x1b6)])throw new Error(_0x2372c2(0x1fc)+_0x2b2ef4['error']);return console['log']('✓\x20Authenticated\x20to\x20'+_0x2b2ef4['user']['organizationName']),{'token':_0x9875c4,'method':'device_auth'};}console['log'](_0x564cea['ZLTua']);const _0x31ea82=await getCurrentUser(_0x9875c4);if(!_0x31ea82[_0x2372c2(0x1b6)]){if(_0x31ea82[_0x2372c2(0x1fa)])throw new Error(_0x2372c2(0x211)+_0x31ea82[_0x2372c2(0x1fd)]+_0x2372c2(0x1b2));else throw new Error('Failed\x20to\x20connect\x20to\x20MCP\x20server:\x20'+_0x31ea82['error']+'.\x20Please\x20check\x20your\x20network\x20connection\x20and\x20server\x20URL.');}return console['log'](_0x2372c2(0x1a3)+_0x31ea82[_0x2372c2(0x1be)][_0x2372c2(0x1af)]),await storeToken(_0x9875c4),console['log'](process['env'][_0x2372c2(0x1a4)]?'✓\x20Exported\x20credentials\x20for\x20CI':_0x2372c2(0x212)),{'token':_0x9875c4,'method':_0x564cea[_0x2372c2(0x1d5)]};}export async function ensureRangerDir(){const _0x118209=_0x5cec03,_0x52bdfd={'VKoyt':function(_0x9daed8){return _0x9daed8();},'iYsrZ':function(_0x3707dc,_0x74dffa,_0x12afe2){return _0x3707dc(_0x74dffa,_0x12afe2);},'mgugM':_0x118209(0x1d9),'gPLRa':function(_0x32fd13,_0x152ee3){return _0x32fd13(_0x152ee3);},'mlqpV':_0x118209(0x20b)},_0xf4279c=_0x52bdfd['VKoyt'](findGitRoot),_0x110da6=_0xf4279c?_0x52bdfd[_0x118209(0x1e5)](join,_0xf4279c,_0x52bdfd['mgugM']):getRangerDir();return!_0x52bdfd['gPLRa'](existsSync,_0x110da6)?(await mkdir(_0x110da6,{'recursive':!![]}),console[_0x118209(0x203)]('✓\x20Created\x20.ranger/\x20directory'),{'path':_0x110da6,'installed':!![]}):(console['log'](_0x52bdfd[_0x118209(0x1e3)]),{'path':_0x110da6,'installed':![]});}export async function ensureChromium(){const _0x2d8541=_0x5cec03,_0x260152={'zMKgj':_0x2d8541(0x209),'UEWgq':function(_0x457a1e,_0x304de1){return _0x457a1e??_0x304de1;},'Vgddx':_0x2d8541(0x1f4),'ONdWC':'install','dJYTC':'\x20(fallback\x20version)','HGPqZ':_0x2d8541(0x1c2),'mwoCZ':function(_0x1a9976,_0x59edf7){return _0x1a9976 instanceof _0x59edf7;},'NVywV':'\x0a⚠\x20Skipping\x20Chromium\x20installation.','eWSFq':_0x2d8541(0x1b8)};let _0x2c5e0d=![];try{const _0x1562b5=chromium['executablePath']();_0x2c5e0d=existsSync(_0x1562b5);}catch{_0x2c5e0d=![];}if(_0x2c5e0d)return console['log'](_0x260152[_0x2d8541(0x21a)]),![];const _0x4f4775=getPlaywrightVersion(),_0x5ef401=_0x260152['UEWgq'](_0x4f4775,PLAYWRIGHT_CHROMIUM_INSTALL_FALLBACK_VERSION),_0x1fcda4=!_0x4f4775,_0x9ae5b=process['stdin'][_0x2d8541(0x1eb)]&&process['stdout'][_0x2d8541(0x1eb)];let _0x4f3cd9=!![];if(_0x9ae5b){const {install:_0x5efa16}=await _0x2cfe02[_0x2d8541(0x1e6)]([{'type':_0x260152[_0x2d8541(0x1ba)],'name':_0x260152[_0x2d8541(0x1d7)],'message':_0x1fcda4?'Could\x20not\x20determine\x20local\x20Playwright\x20version.\x20Install\x20Playwright\x20Chromium\x20using\x20fallback\x20version\x20'+_0x5ef401+'\x20now?':_0x2d8541(0x1e9)+_0x5ef401+_0x2d8541(0x1df),'default':!![]}]);_0x4f3cd9=_0x5efa16;}else console[_0x2d8541(0x203)](_0x2d8541(0x1bd)+_0x5ef401+(_0x1fcda4?_0x260152['dJYTC']:'')+'...');if(_0x4f3cd9){console['log']('\x0aInstalling\x20Chromium\x20browser...\x0a');try{await installChromiumBinary(_0x5ef401),console[_0x2d8541(0x203)]('\x0a✓\x20Playwright\x20Chromium\x20installed\x20successfully');}catch(_0x46d151){console['error'](_0x260152[_0x2d8541(0x1dd)],_0x260152[_0x2d8541(0x1b3)](_0x46d151,Error)?_0x46d151['message']:_0x46d151),console['log'](_0x2d8541(0x1c7)),console[_0x2d8541(0x203)]('\x20\x20npx\x20playwright@'+_0x5ef401+_0x2d8541(0x1cc));}}else console['log'](_0x260152['NVywV']),console[_0x2d8541(0x203)](_0x260152[_0x2d8541(0x1f9)]),console['log']('\x20\x20npx\x20playwright@'+_0x5ef401+'\x20install\x20chromium');return!![];}export async function writeRangerGitignore(_0x462032){const _0x13ef4d=_0x5cec03,_0x3d8b63={'EAEzJ':function(_0x46879a,_0x5f46eb,_0x51d085){return _0x46879a(_0x5f46eb,_0x51d085);},'GoFsN':'✓\x20Created\x20.ranger/.gitignore'},_0x3a9ab6=join(_0x462032,'.gitignore'),_0x2d3a85=_0x13ef4d(0x1f2);await _0x3d8b63['EAEzJ'](writeFile,_0x3a9ab6,_0x2d3a85),console['log'](_0x3d8b63[_0x13ef4d(0x1bc)]);}function printProfileSetupLaterInstructions(){const _0x1ad03e=_0x5cec03,_0x48eacf={'ndlOx':_0x1ad03e(0x1ed),'XuNxr':function(_0x374867,_0x4ff6f2){return _0x374867(_0x4ff6f2);},'FzlnA':_0x1ad03e(0x210),'sQUdz':'Make\x20sure\x20your\x20app\x20is\x20running\x20before\x20you\x20start.\x0a'};console[_0x1ad03e(0x203)](_0x48eacf['ndlOx']),console['log']('\x20\x20'+_0x48eacf[_0x1ad03e(0x1a5)](bold,_0x48eacf[_0x1ad03e(0x1ec)])),console[_0x1ad03e(0x203)](_0x48eacf[_0x1ad03e(0x1d0)]);}async function ensureLocalEnv(_0x1f2868,_0x2b1b6f){const _0x2920f1=_0x5cec03,_0x392688={'fgLTx':'⚠\x20No\x20git\x20repository\x20found.\x20Run\x20`ranger\x20profile\x20add\x20local`\x20from\x20your\x20project\x20directory.','EDRQG':function(_0x1fcd98,_0x4ca09d,_0x8f2b3b){return _0x1fcd98(_0x4ca09d,_0x8f2b3b);},'oNZtc':_0x2920f1(0x1cd),'VXGrv':_0x2920f1(0x1e1),'rNaXL':_0x2920f1(0x20c),'zOxsX':_0x2920f1(0x1f0),'MoDCZ':_0x2920f1(0x1f4),'XupoP':'Would\x20you\x20like\x20to\x20set\x20up\x20the\x20profile\x20now?','uqRel':function(_0x29d568,_0xee83aa,_0x11238a,_0x4b5d79){return _0x29d568(_0xee83aa,_0x11238a,_0x4b5d79);},'CaLDY':'\x0a❌\x20Profile\x20setup\x20failed:','LaPTN':function(_0x1a9794,_0xad460d){return _0x1a9794 instanceof _0xad460d;},'qAGUU':function(_0x1188b6){return _0x1188b6();}};if(!findGitRoot())return console[_0x2920f1(0x203)](_0x392688['fgLTx']),{'ready':![],'skipped':!![]};if(_0x392688[_0x2920f1(0x1b9)](findExistingEnv,_0x392688[_0x2920f1(0x1bb)],{'locations':[_0x2920f1(0x1cd)]}))return console['log'](_0x392688[_0x2920f1(0x201)]),{'ready':!![],'skipped':![]};const _0x488c2f=process['stdin'][_0x2920f1(0x1eb)]&&process['stdout']['isTTY'];if(_0x488c2f&&!_0x1f2868?.[_0x2920f1(0x1b4)]){console['log'](_0x392688['rNaXL']),console['log'](_0x2920f1(0x1b0)),console[_0x2920f1(0x203)]('auth,\x20you\x20can\x20log\x20in\x20and\x20we\x27ll\x20save\x20the\x20session\x20state\x20for\x20Ranger\x20to'),console['log'](_0x392688[_0x2920f1(0x1fe)]),console['log'](_0x2920f1(0x200));const {wantsProfile:_0x240b1e}=await _0x2cfe02['prompt']([{'type':_0x392688[_0x2920f1(0x1a6)],'name':_0x2920f1(0x1fb),'message':_0x392688[_0x2920f1(0x1d1)],'default':!![]}]);if(!_0x240b1e)return printProfileSetupLaterInstructions(),{'ready':![],'skipped':!![]};}try{return await _0x392688[_0x2920f1(0x202)](addEnv,_0x392688[_0x2920f1(0x1bb)],{'url':_0x1f2868?.[_0x2920f1(0x1b4)],'force':_0x1f2868?.['force'],'allowInsecureLocalhost':_0x1f2868?.['allowInsecureLocalhost']},_0x2b1b6f),{'ready':!![],'skipped':![]};}catch(_0x23852b){return console['error'](_0x392688['CaLDY'],_0x392688['LaPTN'](_0x23852b,Error)?_0x23852b['message']:_0x23852b),_0x392688['qAGUU'](printProfileSetupLaterInstructions),{'ready':![],'skipped':![]};}}export async function start(_0x39fa3c,_0x44c9d3,_0xae14ed){const _0x2e8538=_0x5cec03,_0x4d099={'HIWgU':_0x2e8538(0x1c3),'Rkqub':function(_0x2a28b4){return _0x2a28b4();},'cgGVk':_0x2e8538(0x1f3),'IZWXt':_0x2e8538(0x1cb),'mOxmW':'auth','xPTOC':_0x2e8538(0x1ea),'ekQHu':_0x2e8538(0x1b7),'bIzkP':function(_0x38e48d,_0x1a92c2){return _0x38e48d(_0x1a92c2);},'ZNiiz':'\x0a✅\x20Ranger\x20setup\x20complete!\x0a','sUHGk':'plugin','NrMEo':function(_0x426eed,_0x5182df){return _0x426eed&&_0x5182df;},'DFOgk':function(_0xa2e494,_0x28210f,_0x28c86e){return _0xa2e494(_0x28210f,_0x28c86e);},'VuucO':_0x2e8538(0x1d8),'jzqki':_0x2e8538(0x1f7),'Ytsyx':_0x2e8538(0x1da),'NMYWG':function(_0x572983,_0x18883c){return _0x572983 instanceof _0x18883c;},'QnZag':'profile','tJYZy':_0x2e8538(0x204),'sWWls':'and\x20prompt\x20the\x20agent\x20like\x20usual.\x20Ranger\x20will\x20create\x20a\x20feature\x20review','vIbbp':_0x2e8538(0x1c8),'FRzyb':function(_0x22d1e7,_0xe7b748){return _0x22d1e7+_0xe7b748;}};console[_0x2e8538(0x203)](_0x4d099[_0x2e8538(0x20f)]);const _0x2dca94=process[_0x2e8538(0x216)]['isTTY']&&process[_0x2e8538(0x1cf)][_0x2e8538(0x1eb)];!_0x2dca94&&!_0x44c9d3?.['scope']&&(console[_0x2e8538(0x203)]('Non-interactive\x20mode:\x20No\x20--scope\x20provided,\x20defaulting\x20to\x20user.'),_0x44c9d3={..._0x44c9d3,'scope':'user'});_0xae14ed?.[_0x2e8538(0x1f6)](_0x2e8538(0x1cb));if(!_0x4d099['Rkqub'](findGitRoot)){await _0xae14ed?.[_0x2e8538(0x1c5)](_0x2e8538(0x1cb),new Error(_0x4d099['cgGVk']));throw new Error('No\x20git\x20repository\x20found.\x20Please\x20run\x20`ranger\x20setup`\x20from\x20inside\x20your\x20project\x20directory.');}_0xae14ed?.[_0x2e8538(0x219)](_0x4d099['IZWXt']);const _0x3ad717=!existsSync(getRangerDir()),{path:_0x15377b}=await ensureRangerDir();_0xae14ed?.['trackPhaseStart'](_0x4d099[_0x2e8538(0x1e4)]);const _0x354e87=await authenticate(_0x39fa3c);_0xae14ed?.[_0x2e8538(0x219)]('auth',{'isFirstRun':_0x3ad717,'method':_0x354e87[_0x2e8538(0x20e)]}),_0xae14ed?.[_0x2e8538(0x1f6)](_0x4d099['xPTOC']);_0x44c9d3?.[_0x2e8538(0x215)]?console['log'](_0x4d099['ekQHu']):await ensureChromium();_0xae14ed?.['trackPhaseEnd'](_0x4d099[_0x2e8538(0x1e8)],{'isFirstRun':_0x3ad717,'skipped':!!_0x44c9d3?.[_0x2e8538(0x215)]}),await _0x4d099[_0x2e8538(0x1ab)](writeRangerGitignore,_0x15377b),console[_0x2e8538(0x203)](_0x4d099['ZNiiz']);const _0xd8ad52=_0x44c9d3?.[_0x2e8538(0x1ff)],_0x500efc=_0x44c9d3?.[_0x2e8538(0x1a2)]??![];let _0x4abde7=null;_0x500efc?(_0xae14ed?.['trackPhaseStart'](_0x4d099[_0x2e8538(0x213)]),_0x4abde7=await ensureOpencodePluginConfig(_0xd8ad52),_0xae14ed?.['trackPhaseEnd'](_0x2e8538(0x21b),{'isFirstRun':_0x3ad717,'opencode':!![]})):(_0xae14ed?.[_0x2e8538(0x1f6)](_0x2e8538(0x21b)),await ensureClaudePlugin(_0xd8ad52),_0xae14ed?.[_0x2e8538(0x219)](_0x4d099['sUHGk'],{'isFirstRun':_0x3ad717}));if(_0x4d099['NrMEo'](_0x500efc,_0x4abde7)){_0xae14ed?.['trackPhaseStart']('skills');try{await _0x4d099['DFOgk'](installSkill,_0x4d099[_0x2e8538(0x1a8)],{'level':_0x4abde7[_0x2e8538(0x1ff)],'cliVersion':getCurrentVersion(),'platform':'opencode'}),_0xae14ed?.['trackPhaseEnd'](_0x4d099['jzqki'],{'isFirstRun':_0x3ad717,'opencode':!![]});}catch(_0x3bb93a){console[_0x2e8538(0x1b1)](_0x4d099['Ytsyx'],_0x4d099['NMYWG'](_0x3bb93a,Error)?_0x3bb93a['message']:_0x3bb93a),_0xae14ed?.['trackPhaseEnd'](_0x2e8538(0x1f7),{'isFirstRun':_0x3ad717,'opencode':!![],'failed':!![]});}}else _0xae14ed?.[_0x2e8538(0x1f6)](_0x4d099['jzqki']),await ensureClaudeSkills(_0xd8ad52),_0xae14ed?.['trackPhaseEnd'](_0x2e8538(0x1f7),{'isFirstRun':_0x3ad717});if(!_0x2dca94&&!_0x44c9d3?.[_0x2e8538(0x1b4)])console['log'](_0x2e8538(0x1e7)),console[_0x2e8538(0x203)]('\x20\x20'+bold('ranger\x20profile\x20add\x20local')+'\x0a');else{_0xae14ed?.[_0x2e8538(0x1f6)](_0x4d099['QnZag']);const _0x36f79a=await _0x4d099[_0x2e8538(0x1aa)](ensureLocalEnv,{'url':_0x44c9d3?.['url'],'force':_0x44c9d3?.['force'],'allowInsecureLocalhost':_0x44c9d3?.[_0x2e8538(0x1d3)]},_0xae14ed);_0xae14ed?.['trackPhaseEnd'](_0x4d099[_0x2e8538(0x1bf)],{'isFirstRun':_0x3ad717,'profileReady':_0x36f79a[_0x2e8538(0x1c0)],'userSkipped':_0x36f79a[_0x2e8538(0x206)]}),_0x36f79a[_0x2e8538(0x1c0)]&&console[_0x2e8538(0x203)](_0x2e8538(0x214));}if(_0x500efc)console[_0x2e8538(0x203)](_0x4d099[_0x2e8538(0x1f8)]),console['log'](_0x4d099['sWWls']),console['log']('with\x20scenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser'),console['log']('verification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.');else{const _0x54ded0=_0x4d099[_0x2e8538(0x1ab)](bold,_0x4d099['vIbbp']);console[_0x2e8538(0x203)](_0x4d099['FRzyb'](_0x4d099['FRzyb'](_0x2e8538(0x1a7)+_0x54ded0+_0x2e8538(0x1d4),'\x0aagent\x20like\x20usual.\x20Claude\x20will\x20create\x20a\x20feature\x20review\x20with')+'\x0ascenarios\x20describing\x20what\x20to\x20verify\x20and\x20then\x20run\x20browser','\x0averification\x20to\x20check\x20its\x20work\x20as\x20it\x20builds.'));}}
@@ -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 _0x495b31=_0x4d7d;(function(_0x4d0833,_0x19de57){const _0x16402c=_0x4d7d,_0x214b86=_0x4d0833();while(!![]){try{const _0x4d9fb2=parseInt(_0x16402c(0xd4))/0x1*(parseInt(_0x16402c(0xe8))/0x2)+-parseInt(_0x16402c(0xab))/0x3*(-parseInt(_0x16402c(0xf5))/0x4)+parseInt(_0x16402c(0xbc))/0x5*(-parseInt(_0x16402c(0xcb))/0x6)+-parseInt(_0x16402c(0x9a))/0x7+-parseInt(_0x16402c(0xdf))/0x8+-parseInt(_0x16402c(0xe3))/0x9+parseInt(_0x16402c(0xcd))/0xa;if(_0x4d9fb2===_0x19de57)break;else _0x214b86['push'](_0x214b86['shift']());}catch(_0x3e6efa){_0x214b86['push'](_0x214b86['shift']());}}}(_0x3c73,0x1f2a9));function _0x3c73(){const _0x350c9c=['API\x20Token:\x20✓\x20Found\x20but\x20invalid\x20or\x20expired','auth.json','data','\x20\x20Run:\x20ranger\x20setup\x20[token]','piRRb','project','disabled',':\x20configured','\x20plugin(s)\x20configured','pipe','KctFD','15666fzMaSR','\x20\x20OpenCode\x20not\x20installed\x20or\x20not\x20available','1591200lKByRN','utf-8','tPUEh','ranger@trailhead','plaintext','map','push','2CTtcMx','Version:\x20','wxrpw','not_installed','dCTvJ','woHBb','isDirectory','auth.json.enc','cTnCX','\x20\x20Run:\x20ranger\x20profile\x20use\x20<profile-name>\x20\x20(available:\x20','No\x20skills\x20installed','546880JoNgCU','displayName','env','trim','1410831MRVZqN','\x0a---\x20OpenCode\x20Plugin\x20---','SlCog','\x1b[1m','No\x20profiles\x20configured','190574JDlcYV','\x20(active)','isArray','details','\x20\x20Run:\x20ranger\x20profile\x20add\x20<profile-name>','settings.json','length','\x20\x20Run:\x20ranger\x20setup\x20[token]\x0a','includes','Root:\x20','configured','FqjoL','string','32716UcJHCp','API\x20Environment:\x20','\x20\x20Not\x20installed','enabled','Organization:\x20','opencode-plugin','YuodG','\x20\x20\x20\x20Auth:\x20','bVkfA','UjHjt','GXlNS','\x20\x20Run:\x20ranger\x20skillup','all','cxlIZ','ejJKp','YvTjK','927283QZOFzI','DLemq','log','NyPnk','\x0a---\x20Claude\x20Code\x20Plugin\x20---','status','kaDpy','hasEncryptedAuth','\x20\x20Run:\x20ranger\x20setup\x20--opencode','OCLfq','user','\x20\x20Run:\x20ranger\x20setup\x20[token]\x20\x20(includes\x20plugin\x20installation)','\x20\x20\x20\x20','DEBUG','JgKMx','@ranger-testing/opencode-plugin','match','66lFqbTu','ApTda','debug','filter','cNWgv','version',':\x20installed\x20(','eViBe','\x0a---\x20Skills\x20---','API\x20URL:\x20','config','GCpPL','ZcQfs','\x20\x20Run:\x20ranger\x20update','settingsPath','jriAU','name','85BPvvJn','success','\x1b]8;;\x07','(not\x20found)'];_0x3c73=function(){return _0x350c9c;};return _0x3c73();}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=_0x1a9b3c=>_0x495b31(0xe6)+_0x1a9b3c+'\x1b[0m',link=(_0x531778,_0x31846d)=>'\x1b]8;;file://'+_0x531778+'\x07'+(_0x31846d||_0x531778)+_0x495b31(0xbe);function _0x4d7d(_0x4b3e0a,_0x54d003){_0x4b3e0a=_0x4b3e0a-0x8c;const _0x3c7324=_0x3c73();let _0x4d7d03=_0x3c7324[_0x4b3e0a];return _0x4d7d03;}async function getOpencodePluginStatus(){const _0x3870d8=_0x495b31,_0x511bf7={'eViBe':_0x3870d8(0xd7),'cTnCX':function(_0x3c6b83,_0x334b70){return _0x3c6b83!==_0x334b70;},'ejJKp':_0x3870d8(0xa9),'Ymhhr':_0x3870d8(0x8f),'kaDpy':function(_0x315cfd,_0x1a10e6){return _0x315cfd(_0x1a10e6);},'kWNwa':'not_configured','cCJuO':_0x3870d8(0xad),'woHBb':_0x3870d8(0xb5),'wxrpw':'pipe','NyPnk':'data','tPUEh':'close'};return new Promise(_0x2c05a4=>{const _0x5063a4=_0x3870d8,_0x38ff00=spawn('opencode',[_0x511bf7['cCJuO'],_0x511bf7[_0x5063a4(0xd9)]],{'stdio':['ignore',_0x5063a4(0xc9),_0x511bf7[_0x5063a4(0xd6)]]});let _0x544142='';_0x38ff00['stdout']?.['on'](_0x511bf7[_0x5063a4(0x9d)],_0x48812f=>{_0x544142+=_0x48812f['toString']();}),_0x38ff00['stderr']?.['on'](_0x5063a4(0xc2),_0x5d553b=>{_0x544142+=_0x5d553b['toString']();}),_0x38ff00['on']('error',()=>{const _0x4cb15f=_0x5063a4;_0x2c05a4({'status':_0x511bf7[_0x4cb15f(0xb2)]});}),_0x38ff00['on'](_0x511bf7[_0x5063a4(0xcf)],_0x149337=>{const _0x6d77a8=_0x5063a4,_0x4fa3e8={'kDOWP':function(_0x530272,_0x332209){return _0x511bf7['cTnCX'](_0x530272,_0x332209);},'ZgEJr':_0x511bf7[_0x6d77a8(0x98)],'YuodG':_0x511bf7['Ymhhr']};if(_0x511bf7[_0x6d77a8(0xdc)](_0x149337,0x0)){_0x2c05a4({'status':_0x511bf7[_0x6d77a8(0xb2)]});return;}const _0x463013=_0x544142[_0x6d77a8(0xe2)]();let _0x5106a3=null;if(_0x463013)try{_0x5106a3=JSON['parse'](_0x463013);}catch{const _0x528e9a=_0x463013[_0x6d77a8(0xaa)](/\{[\s\S]*\}$/);if(_0x528e9a)try{_0x5106a3=JSON['parse'](_0x528e9a[0x0]);}catch{_0x5106a3=null;}}const _0x401162=Array[_0x6d77a8(0xea)](_0x5106a3?.['plugin'])?_0x5106a3?.['plugin']:[],_0x306979=_0x401162['some'](_0x3d2b3f=>{const _0x2dd623=_0x6d77a8;if(_0x4fa3e8['kDOWP'](typeof _0x3d2b3f,_0x2dd623(0xf4)))return![];return _0x3d2b3f['includes'](_0x4fa3e8['ZgEJr'])||_0x3d2b3f[_0x2dd623(0xf0)](_0x4fa3e8[_0x2dd623(0x90)]);});if(_0x306979){_0x2c05a4({'status':_0x6d77a8(0xf2),'details':_0x401162['length']>0x0?_0x401162[_0x6d77a8(0xee)]+_0x6d77a8(0xc8):undefined});return;}if(_0x401162[_0x6d77a8(0xee)]>0x0){_0x511bf7[_0x6d77a8(0xa0)](_0x2c05a4,{'status':_0x511bf7['kWNwa'],'details':_0x401162[_0x6d77a8(0xee)]+_0x6d77a8(0xc8)});return;}_0x2c05a4({'status':_0x511bf7['kWNwa']});});});}async function getSkillsFromDir(_0x1fcef5,_0x52727e){const _0x168864=_0x495b31,_0x1dcddd={'LurZK':function(_0x50282a,_0x356b20){return _0x50282a(_0x356b20);},'OCLfq':'SKILL.md'};if(!_0x1dcddd['LurZK'](existsSync,_0x1fcef5))return[];const _0x26a0c3=[];try{const _0x5d6eca=await readdir(_0x1fcef5,{'withFileTypes':!![]});for(const _0x830f71 of _0x5d6eca){if(_0x830f71[_0x168864(0xda)]()){const _0x15fc84=join(_0x1fcef5,_0x830f71['name'],_0x1dcddd[_0x168864(0xa3)]);if(existsSync(_0x15fc84)){let _0x17ecda=_0x830f71[_0x168864(0xbb)];try{const _0x16e996=await readFile(_0x15fc84,_0x168864(0xce)),_0x2a519f=_0x16e996['match'](/name:\s*(.+)/);_0x2a519f&&(_0x17ecda=_0x2a519f[0x1]['trim']());}catch{}_0x26a0c3[_0x168864(0xd3)]({'name':_0x830f71['name'],'displayName':_0x17ecda,'path':_0x15fc84,'level':_0x52727e});}}}}catch{return[];}return _0x26a0c3;}async function getInstalledSkills(){const _0x5b51cc=_0x495b31,_0x2cc3da={'HJScz':function(_0x3eacf7){return _0x3eacf7();}},[_0x474a11,_0x4d972a]=await Promise[_0x5b51cc(0x96)]([getSkillsFromDir(_0x2cc3da['HJScz'](getProjectSkillsDir),_0x5b51cc(0xc5)),getSkillsFromDir(getUserSkillsDir(),_0x5b51cc(0xa4))]);return{'project':_0x474a11,'user':_0x4d972a};}async function getEnvironments(){const _0x4ce223=_0x495b31,_0x3ffd1c={'ZcQfs':function(_0x205538,_0x235487,_0x4ff01c){return _0x205538(_0x235487,_0x4ff01c);},'yJQkV':_0x4ce223(0xed),'Nrsgq':_0x4ce223(0xc1),'DLemq':function(_0x562a08,_0x3af6f9,_0x2fd749){return _0x562a08(_0x3af6f9,_0x2fd749);},'piRRb':function(_0x32445a,_0xd7406c){return _0x32445a(_0xd7406c);},'UjHjt':_0x4ce223(0xbf),'FqjoL':function(_0x3a8bfc,_0x25730e){return _0x3a8bfc===_0x25730e;},'KctFD':function(_0xdc4a9b){return _0xdc4a9b();}},{envNames:_0x4e9e50,activeEnv:_0x16b2ef}=await getEnvNames(),_0x48a4ea=_0x3ffd1c[_0x4ce223(0xca)](getRangerDir);if(!_0x3ffd1c[_0x4ce223(0xc4)](existsSync,_0x48a4ea))return{'envs':[],'activeEnv':null};const _0x5be0e1=_0x4e9e50[_0x4ce223(0xd2)](_0x515db2=>{const _0x5d5bc1=_0x4ce223,_0x4f10e3=getEnvDir(_0x515db2),_0x8e7fb0=_0x3ffd1c[_0x5d5bc1(0xb7)](join,_0x4f10e3,_0x3ffd1c['yJQkV']),_0xb194db=_0x3ffd1c[_0x5d5bc1(0xb7)](join,_0x4f10e3,_0x3ffd1c['Nrsgq']),_0xc749ab=_0x3ffd1c[_0x5d5bc1(0x9b)](join,_0x4f10e3,_0x5d5bc1(0xdb));return{'name':_0x515db2,'settingsPath':_0x3ffd1c['piRRb'](existsSync,_0x8e7fb0)?_0x8e7fb0:_0x3ffd1c[_0x5d5bc1(0x93)],'hasPlaintextAuth':existsSync(_0xb194db),'hasEncryptedAuth':_0x3ffd1c[_0x5d5bc1(0xc4)](existsSync,_0xc749ab),'isActive':_0x3ffd1c[_0x5d5bc1(0xf3)](_0x515db2,_0x16b2ef)};});return{'envs':_0x5be0e1,'activeEnv':_0x16b2ef};}export async function status(){const _0x2443df=_0x495b31,_0x226098={'ApTda':'\x0a📊\x20Ranger\x20Status\x0a','SlCog':function(_0x2d314e){return _0x2d314e();},'dCTvJ':function(_0x161ffe,_0x581107,_0x512628){return _0x161ffe(_0x581107,_0x512628);},'YvTjK':function(_0x14fdf4,_0x42a44c){return _0x14fdf4(_0x42a44c);},'jriAU':function(_0x14dd37,_0x359a81,_0x4abb0e){return _0x14dd37(_0x359a81,_0x4abb0e);},'ZZASA':function(_0x4f0dc3,_0x4b0cf7){return _0x4f0dc3(_0x4b0cf7);},'GCpPL':function(_0x148f97,_0x14e27e){return _0x148f97(_0x14e27e);},'bVkfA':_0x2443df(0xf2),'jIIQH':function(_0x3daee1,_0x539785){return _0x3daee1===_0x539785;},'kpELu':'ranger@trailhead','gEwop':'unknown','amzgn':_0x2443df(0x8d),'GXlNS':function(_0x5024ff,_0x4ea536){return _0x5024ff===_0x4ea536;},'cNWgv':_0x2443df(0xde),'JgKMx':'\x0a---\x20Profiles\x20---','GpzzN':function(_0x3840b9){return _0x3840b9();},'CmEpN':_0x2443df(0xe9),'cxlIZ':function(_0x253e1c,_0x53f3b8,_0x4af312){return _0x253e1c(_0x53f3b8,_0x4af312);}};console['log'](_0x226098[_0x2443df(0xac)]);const _0x16f187=process['cwd'](),_0x5d2a9a=_0x226098[_0x2443df(0xe5)](getRangerDir);if(!existsSync(_0x5d2a9a)){console[_0x2443df(0x9c)](_0x2443df(0xf1)+_0x226098[_0x2443df(0xd8)](link,_0x16f187,_0x226098['YvTjK'](bold,basename(_0x16f187)))),console[_0x2443df(0x9c)]('\x0aRanger\x20has\x20not\x20been\x20initialized\x20in\x20this\x20directory.'),console['log'](_0x2443df(0xef));return;}console[_0x2443df(0x9c)](_0x2443df(0xf1)+_0x226098['jriAU'](link,_0x16f187,_0x226098['ZZASA'](bold,_0x226098[_0x2443df(0xb6)](basename,_0x16f187))));const _0x1a1f6e=_0x226098['SlCog'](getCurrentVersion),_0x11ea32=getLatestVersion();if(_0x11ea32[_0x2443df(0xb0)]&&_0x11ea32['version']!==_0x1a1f6e)console[_0x2443df(0x9c)](_0x2443df(0xd5)+_0x1a1f6e+'\x20(latest:\x20'+_0x11ea32[_0x2443df(0xb0)]+')'),console[_0x2443df(0x9c)](_0x2443df(0xb8));else _0x11ea32['version']?console[_0x2443df(0x9c)](_0x2443df(0xd5)+_0x1a1f6e+'\x20(up\x20to\x20date)'):console[_0x2443df(0x9c)]('Version:\x20'+_0x1a1f6e);const _0x4c860c=await getToken();if(_0x4c860c){const _0x57926b=await getCurrentUser(_0x4c860c);_0x57926b[_0x2443df(0xbd)]?console['log'](_0x2443df(0x8e)+_0x226098[_0x2443df(0x99)](bold,_0x57926b['user']['organizationName'])):(console[_0x2443df(0x9c)](_0x2443df(0xc0)),console['log'](_0x2443df(0xc3)));}else console['log']('API\x20Token:\x20✗\x20Not\x20found'),console[_0x2443df(0x9c)]('\x20\x20Run:\x20ranger\x20setup\x20[token]');process[_0x2443df(0xe1)][_0x2443df(0xa7)]&&(console['log'](_0x2443df(0xf6)+getCurrentEnvironment()),console['log'](_0x2443df(0xb4)+_0x226098[_0x2443df(0xe5)](getApiBaseUrl)));console[_0x2443df(0x9c)](_0x2443df(0xe4));const _0x19a918=await _0x226098[_0x2443df(0xe5)](getOpencodePluginStatus);if(_0x19a918['status']===_0x226098[_0x2443df(0x92)])console[_0x2443df(0x9c)]('\x20\x20'+bold(_0x2443df(0xa9))+_0x2443df(0xc7)),_0x19a918['details']&&console[_0x2443df(0x9c)]('\x20\x20'+_0x19a918['details']);else _0x226098['jIIQH'](_0x19a918[_0x2443df(0x9f)],'not_configured')?(console['log']('\x20\x20Not\x20configured'),_0x19a918[_0x2443df(0xeb)]&&console['log']('\x20\x20'+_0x19a918[_0x2443df(0xeb)]),console['log'](_0x2443df(0xa2))):console[_0x2443df(0x9c)](_0x2443df(0xcc));console['log'](_0x2443df(0x9e));const _0x261169=await getPluginInfo(_0x226098['kpELu']);if(_0x261169){const _0x44844c=_0x261169['scope']||_0x226098['gEwop'],_0x25ed6d=_0x261169[_0x2443df(0x8d)]?_0x226098['amzgn']:_0x2443df(0xc6);console[_0x2443df(0x9c)]('\x20\x20'+bold(_0x2443df(0xd0))+_0x2443df(0xb1)+_0x44844c+',\x20'+_0x25ed6d+')');}else console['log'](_0x2443df(0x8c)),console[_0x2443df(0x9c)](_0x2443df(0xa5));console[_0x2443df(0x9c)](_0x2443df(0xb3));const {project:_0x176a6e,user:_0x38addb}=await _0x226098['SlCog'](getInstalledSkills),_0x1a3a4a=_0x176a6e['filter'](_0x13a289=>RANGER_MANAGED_SKILLS['includes'](_0x13a289['name'])),_0x400724=_0x38addb[_0x2443df(0xae)](_0x567646=>RANGER_MANAGED_SKILLS['includes'](_0x567646['name'])),_0x199cfc=_0x1a3a4a[_0x2443df(0xee)]+_0x400724[_0x2443df(0xee)];if(_0x226098[_0x2443df(0x94)](_0x199cfc,0x0))console['log'](_0x226098[_0x2443df(0xaf)]),console['log'](_0x2443df(0x95));else{if(_0x1a3a4a[_0x2443df(0xee)]>0x0){console['log']('\x20\x20Project-level:');for(const _0x22b080 of _0x1a3a4a){console['log'](_0x2443df(0xa6)+bold(_0x22b080['displayName'])+':\x20'+_0x226098[_0x2443df(0xba)](link,_0x22b080['path'],_0x226098[_0x2443df(0xb6)](basename,_0x22b080['path'])));}}if(_0x400724[_0x2443df(0xee)]>0x0){console['log']('\x20\x20User-level:');for(const _0x156d60 of _0x400724){console[_0x2443df(0x9c)]('\x20\x20\x20\x20'+_0x226098['ZZASA'](bold,_0x156d60[_0x2443df(0xe0)])+':\x20'+_0x226098['dCTvJ'](link,_0x156d60['path'],basename(_0x156d60['path'])));}}}console[_0x2443df(0x9c)](_0x226098[_0x2443df(0xa8)]);const {envs:_0x307674,activeEnv:_0x1a917e}=await _0x226098['GpzzN'](getEnvironments);if(_0x307674['length']===0x0)console[_0x2443df(0x9c)](_0x2443df(0xe7)),console['log'](_0x2443df(0xec));else{for(const _0x3214ee of _0x307674){const _0x4f8fe0=_0x3214ee['isActive']?_0x226098['CmEpN']:'',_0x1aa1ee=_0x3214ee[_0x2443df(0xa1)]?'encrypted':_0x3214ee['hasPlaintextAuth']?_0x2443df(0xd1):'none';console[_0x2443df(0x9c)]('\x20\x20'+_0x226098['ZZASA'](bold,_0x3214ee[_0x2443df(0xbb)])+_0x4f8fe0),console['log'](_0x2443df(0x91)+_0x1aa1ee),_0x3214ee[_0x2443df(0xb9)]!=='(not\x20found)'&&console['log']('\x20\x20\x20\x20Settings:\x20'+_0x226098[_0x2443df(0x97)](link,_0x3214ee['settingsPath'],basename(_0x3214ee[_0x2443df(0xb9)])));}!_0x1a917e&&(console['log']('\x0a\x20\x20No\x20active\x20profile\x20set'),console['log'](_0x2443df(0xdd)+_0x307674[_0x2443df(0xd2)](_0x42010d=>_0x42010d['name'])['join'](',\x20')+')'));}console[_0x2443df(0x9c)]('');}