@ranger-testing/ranger-cli 1.0.10 → 1.0.12

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 (66) hide show
  1. package/README.md +111 -0
  2. package/build/cli.js +230 -8
  3. package/build/cli.js.map +1 -1
  4. package/build/commands/addEnv.js +1 -1
  5. package/build/commands/addEnv.js.map +1 -1
  6. package/build/commands/clean.js +1 -1
  7. package/build/commands/clean.js.map +1 -1
  8. package/build/commands/dataMcpServer.js +1 -1
  9. package/build/commands/dataMcpServer.js.map +1 -1
  10. package/build/commands/env.js +46 -0
  11. package/build/commands/env.js.map +1 -0
  12. package/build/commands/feature.js +494 -0
  13. package/build/commands/feature.js.map +1 -0
  14. package/build/commands/index.js +1 -0
  15. package/build/commands/index.js.map +1 -1
  16. package/build/commands/skillup.js +65 -16
  17. package/build/commands/skillup.js.map +1 -1
  18. package/build/commands/start.js +1 -1
  19. package/build/commands/start.js.map +1 -1
  20. package/build/commands/status.js +42 -11
  21. package/build/commands/status.js.map +1 -1
  22. package/build/commands/update.js +29 -16
  23. package/build/commands/update.js.map +1 -1
  24. package/build/commands/updateEnv.js +1 -1
  25. package/build/commands/updateEnv.js.map +1 -1
  26. package/build/commands/useEnv.js +1 -1
  27. package/build/commands/useEnv.js.map +1 -1
  28. package/build/commands/utils/browserSessionsApi.js +1 -1
  29. package/build/commands/utils/browserSessionsApi.js.map +1 -1
  30. package/build/commands/utils/claudeConfig.js +73 -0
  31. package/build/commands/utils/claudeConfig.js.map +1 -0
  32. package/build/commands/utils/cliSecret.js +1 -1
  33. package/build/commands/utils/environment.js +69 -0
  34. package/build/commands/utils/environment.js.map +1 -0
  35. package/build/commands/utils/featureApi.js +190 -0
  36. package/build/commands/utils/featureApi.js.map +1 -0
  37. package/build/commands/utils/featureReportGenerator.js +170 -0
  38. package/build/commands/utils/featureReportGenerator.js.map +1 -0
  39. package/build/commands/utils/keychain.js +1 -1
  40. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  41. package/build/commands/utils/localAgentInstallationsApi.js.map +1 -1
  42. package/build/commands/utils/mcpConfig.js +1 -1
  43. package/build/commands/utils/settings.js +2 -2
  44. package/build/commands/utils/settings.js.map +1 -1
  45. package/build/commands/utils/skills.js +1 -1
  46. package/build/commands/utils/skills.js.map +1 -1
  47. package/build/commands/verifyFeature.js +451 -0
  48. package/build/commands/verifyFeature.js.map +1 -0
  49. package/build/commands/verifyInBrowser.js +1 -1
  50. package/build/commands/verifyInBrowser.js.map +1 -1
  51. package/build/skills/feature-tracker/SKILL.md +185 -0
  52. package/build/skills/feature-tracker/create.md +105 -0
  53. package/build/skills/feature-tracker/manage.md +145 -0
  54. package/build/skills/feature-tracker/report.md +159 -0
  55. package/build/skills/feature-tracker/start.md +93 -0
  56. package/build/skills/feature-tracker/verify.md +143 -0
  57. package/package.json +23 -20
  58. package/build/agents/bug-basher.md +0 -259
  59. package/build/agents/e2e-test-recommender.md +0 -164
  60. package/build/agents/quality-advocate.md +0 -164
  61. package/build/agents/ui-verifier.md +0 -100
  62. package/build/commands/addApp.js +0 -21
  63. package/build/commands/initAgents.js +0 -84
  64. package/build/commands/utils/agents.js +0 -45
  65. package/build/index.js +0 -436
  66. package/build/test-auth.js +0 -13
@@ -1 +1 @@
1
- function _0x4177(_0x6378ff,_0x4c1970){_0x6378ff=_0x6378ff-0x1d6;const _0x5b064e=_0x173b();let _0x223518=_0x5b064e[_0x6378ff];if(_0x4177['FkwOHA']===undefined){var _0x3b406d=function(_0x39fad6){const _0x3ff1ba='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x206ccd='',_0xeb3876='',_0x54b7ec=_0x206ccd+_0x3b406d;for(let _0x2f659e=0x0,_0x241c98,_0x4595e2,_0x52e216=0x0;_0x4595e2=_0x39fad6['charAt'](_0x52e216++);~_0x4595e2&&(_0x241c98=_0x2f659e%0x4?_0x241c98*0x40+_0x4595e2:_0x4595e2,_0x2f659e++%0x4)?_0x206ccd+=_0x54b7ec['charCodeAt'](_0x52e216+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x241c98>>(-0x2*_0x2f659e&0x6)):_0x2f659e:0x0){_0x4595e2=_0x3ff1ba['indexOf'](_0x4595e2);}for(let _0x42d080=0x0,_0x1e0ec1=_0x206ccd['length'];_0x42d080<_0x1e0ec1;_0x42d080++){_0xeb3876+='%'+('00'+_0x206ccd['charCodeAt'](_0x42d080)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0xeb3876);};_0x4177['iCNmhx']=_0x3b406d,_0x4177['JjmWln']={},_0x4177['FkwOHA']=!![];}const _0x173bb8=_0x5b064e[0x0],_0x417740=_0x6378ff+_0x173bb8,_0x44d752=_0x4177['JjmWln'][_0x417740];if(!_0x44d752){const _0x575f31=function(_0x495a6b){this['dYvLDh']=_0x495a6b,this['zyFccE']=[0x1,0x0,0x0],this['eVUMpV']=function(){return'newState';},this['lDxeXc']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['oOFsWW']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x575f31['prototype']['ZKbzXq']=function(){const _0x2ebcb0=new RegExp(this['lDxeXc']+this['oOFsWW']),_0x5141b5=_0x2ebcb0['test'](this['eVUMpV']['toString']())?--this['zyFccE'][0x1]:--this['zyFccE'][0x0];return this['ZnEmEW'](_0x5141b5);},_0x575f31['prototype']['ZnEmEW']=function(_0x35d46d){if(!Boolean(~_0x35d46d))return _0x35d46d;return this['JCdHjo'](this['dYvLDh']);},_0x575f31['prototype']['JCdHjo']=function(_0x227ad9){for(let _0x2f087a=0x0,_0x4c28f6=this['zyFccE']['length'];_0x2f087a<_0x4c28f6;_0x2f087a++){this['zyFccE']['push'](Math['round'](Math['random']())),_0x4c28f6=this['zyFccE']['length'];}return _0x227ad9(this['zyFccE'][0x0]);},new _0x575f31(_0x4177)['ZKbzXq'](),_0x223518=_0x4177['iCNmhx'](_0x223518),_0x4177['JjmWln'][_0x417740]=_0x223518;}else _0x223518=_0x44d752;return _0x223518;}function _0x173b(){const _0xe19607=['l21JCa','CgrJu0e','mtuZEwTbAxvV','wNzbuLC','CM5Wz1e','C3rYAw5NAwz5','zgvJB2rL','tgX6sNG','DhjPBq','CNPUzNy','mZKZndruEMvUuwq','CMTqsvu','Aw5JBhvKzxm','Cg9W','yxbWBgLJyxrPB24VANnVBIWGDgv4Dc9LDMvUDc1ZDhjLyw0','z2v0uMvHzgvY','BNLMqK8','C3rKB3v0','BgLUzq','Dg9tDhjPBMC','sM1wt20','mtG3otG3nw1WCfDSva','C3rHDhvZvgv4Da','ufDfs0e','uhHgrwK','AgvHzgvYCW','uwfztee','kcGOlISPkYKRksSK','ANnVBG','nJnmqMzLDMO','tM8GqvbjihrVA2vUigzVDw5KigLUieTLEwnOywLUlIbsDw46ihjHBMDLCIbZDgfYDca8Dg9Rzw4+','C3rHCNrZv2L0Aa','C3bSAxq','y29UC3rYDwn0B3i','ntK2ohzNyKroAq','wwDiD0C','BvrJtwu','yxbWBhK','zfLxBhO','C2XPy2u','uezyzvi','mJy5ntm1menIBLPnuW','mJa0mtaYy2Tjrhz6','otuYotLLsufVu1u','AvD3DKK','sg9cB0K','zxHPDa','mI4W','ELD4v3m','BwvZC2fNzq','yxbWBgLJyxrPB24VANnVBG','ue9tva','Dgv4Dc9LDMvUDc1ZDhjLyw0','v2fTExm','nLDrAfHIqG','DuPfwg8','wwXlzxe','CMvHza','zfL4sg0','CgfYC2u','qMvHCMvYia','vNbUyKi','C2vHCMnO','Bfvivgy','zgf0ytOG','ALHVA0i','B2ndALO','sfruucbLCNjVCJOG','vw5RBM93BIbLCNjVCG','odK3nde1wKTss2Dh','Bg9N','qunsqK0'];_0x173b=function(){return _0xe19607;};return _0x173b();}(function(_0x30e785,_0x5c50b7){const _0x2d99ab=_0x4177,_0x5e7372=_0x30e785();while(!![]){try{const _0xb0e953=parseInt(_0x2d99ab(0x1fe))/0x1+-parseInt(_0x2d99ab(0x1fd))/0x2+parseInt(_0x2d99ab(0x21d))/0x3*(-parseInt(_0x2d99ab(0x1f5))/0x4)+-parseInt(_0x2d99ab(0x218))/0x5*(-parseInt(_0x2d99ab(0x209))/0x6)+-parseInt(_0x2d99ab(0x1f0))/0x7*(parseInt(_0x2d99ab(0x1dd))/0x8)+-parseInt(_0x2d99ab(0x1e8))/0x9+parseInt(_0x2d99ab(0x1fc))/0xa;if(_0xb0e953===_0x5c50b7)break;else _0x5e7372['push'](_0x5e7372['shift']());}catch(_0xf58cab){_0x5e7372['push'](_0x5e7372['shift']());}}}(_0x173b,0x1b98d));const _0x3b406d=(function(){const _0x381133={'pdcSA':function(_0x24f28f,_0x264284){return _0x24f28f===_0x264284;}};let _0xdd3816=!![];return function(_0x2bbf64,_0x867693){const _0x2d36b2=_0xdd3816?function(){const _0x5e7628=_0x4177;if(_0x867693){if(_0x381133[_0x5e7628(0x21c)](_0x5e7628(0x20b),_0x5e7628(0x215))){if(_0x82b81b){const _0x434446=_0x3c0619[_0x5e7628(0x1f8)](_0x5375ff,arguments);return _0x217d01=null,_0x434446;}}else{const _0x1ee634=_0x867693[_0x5e7628(0x1f8)](_0x2bbf64,arguments);return _0x867693=null,_0x1ee634;}}}:function(){};return _0xdd3816=![],_0x2d36b2;};}()),_0x223518=_0x3b406d(this,function(){const _0x18fa81=_0x4177,_0x4aded8={'dYWlz':_0x18fa81(0x1ee)};return _0x223518['toString']()[_0x18fa81(0x211)](_0x18fa81(0x1ee))[_0x18fa81(0x1e6)]()[_0x18fa81(0x1f4)](_0x223518)[_0x18fa81(0x211)](_0x4aded8[_0x18fa81(0x1f9)]);});_0x223518();import*as _0x477aad from'readline';import{getToken,getServerUrl}from'./utils/keychain.js';export async function dataMcpServer(){const _0x2eb5b9=_0x4177,_0x167783={'dYxHm':_0x2eb5b9(0x202),'YgHwG':'No\x20server\x20URL\x20found\x20in\x20Keychain.\x20Run:\x20ranger\x20start\x20<token>','egywF':function(_0x48f688,_0x293256){return _0x48f688 instanceof _0x293256;},'LlzJx':function(_0x550470,_0x553353){return _0x550470===_0x553353;},'Wamys':_0x2eb5b9(0x1e7),'PxFEi':_0x2eb5b9(0x206),'lUHTf':'content-type','PFXeR':_0x2eb5b9(0x207),'lPkih':function(_0x18a2ab,_0x1d6ea5){return _0x18a2ab!==_0x1d6ea5;},'PWEKA':_0x2eb5b9(0x213),'QaYLA':_0x2eb5b9(0x1d7),'jXokB':'jSbhO','iWwvI':function(_0x123acd,_0x3858bc){return _0x123acd===_0x3858bc;},'ACRBM':'KbrDY','VpnbB':_0x2eb5b9(0x203),'rznfv':function(_0x27b436){return _0x27b436();},'HoBoI':function(_0x2a3784){return _0x2a3784();},'rkPIU':_0x2eb5b9(0x1f1),'ZvARW':_0x2eb5b9(0x1e5)},_0x5439d4=await _0x167783[_0x2eb5b9(0x1dc)](getToken),_0x1dae40=await _0x167783[_0x2eb5b9(0x200)](getServerUrl);if(!_0x5439d4){const _0x43fb47={'jsonrpc':_0x2eb5b9(0x202),'id':null,'error':{'code':-0x7f5b,'message':_0x167783[_0x2eb5b9(0x1de)]}};console[_0x2eb5b9(0x219)](JSON[_0x2eb5b9(0x1d8)](_0x43fb47)),process[_0x2eb5b9(0x201)](0x1);}if(!_0x1dae40){const _0x413457={'jsonrpc':_0x167783[_0x2eb5b9(0x20d)],'id':null,'error':{'code':-0x7f5b,'message':_0x167783[_0x2eb5b9(0x1f6)]}};console['log'](JSON[_0x2eb5b9(0x1d8)](_0x413457)),process['exit'](0x1);}const _0x20b7fc=_0x1dae40+_0x2eb5b9(0x21b),_0xd97089=_0x477aad['createInterface']({'input':process['stdin'],'output':process[_0x2eb5b9(0x1e4)],'terminal':![]});_0xd97089['on'](_0x167783[_0x2eb5b9(0x1d6)],async _0x35ba94=>{const _0x31beb1=_0x2eb5b9,_0x3974f2={'bGyMa':_0x167783[_0x31beb1(0x20d)],'mTcMe':function(_0x17433b,_0xcae022){return _0x167783['egywF'](_0x17433b,_0xcae022);}};if(!_0x35ba94[_0x31beb1(0x1db)]())return;try{if(_0x167783[_0x31beb1(0x1da)](_0x31beb1(0x20a),_0x167783[_0x31beb1(0x208)])){const _0x347291=_0x575f31?function(){const _0x13c630=_0x31beb1;if(_0x2f087a){const _0x31e5ea=_0x2d8706[_0x13c630(0x1f8)](_0x4ea9ea,arguments);return _0x54cd3e=null,_0x31e5ea;}}:function(){};return _0x227ad9=![],_0x347291;}else{const _0x349483=JSON[_0x31beb1(0x20e)](_0x35ba94),_0x3666a7=await fetch(_0x20b7fc,{'method':_0x167783[_0x31beb1(0x1eb)],'headers':{'Content-Type':_0x31beb1(0x205),'Accept':_0x31beb1(0x1e1),'Authorization':_0x31beb1(0x20f)+_0x5439d4},'body':JSON[_0x31beb1(0x1d8)](_0x349483)});if(!_0x3666a7['ok']){const _0x4eaeaf={'jsonrpc':_0x167783['dYxHm'],'id':_0x349483['id']??null,'error':{'code':-0x7f5b,'message':_0x31beb1(0x216)+_0x3666a7['status']+'\x20'+_0x3666a7[_0x31beb1(0x1e9)]}};console[_0x31beb1(0x219)](JSON[_0x31beb1(0x1d8)](_0x4eaeaf));return;}const _0x44c38b=_0x3666a7[_0x31beb1(0x1ec)]['get'](_0x167783[_0x31beb1(0x212)])||'';if(_0x44c38b[_0x31beb1(0x1df)](_0x167783[_0x31beb1(0x1fb)])){const _0x5c3150=_0x3666a7['body']?.[_0x31beb1(0x1e2)]();if(!_0x5c3150)return;const _0x59e1ad=new TextDecoder();let _0x1bd487='';while(!![]){const {done:_0x1ed3c4,value:_0x46b454}=await _0x5c3150[_0x31beb1(0x20c)]();if(_0x1ed3c4)break;_0x1bd487+=_0x59e1ad[_0x31beb1(0x1d9)](_0x46b454,{'stream':!![]});const _0x3f7a23=_0x1bd487[_0x31beb1(0x1f3)]('\x0a\x0a');_0x1bd487=_0x3f7a23[_0x31beb1(0x1e0)]()||'';for(const _0x3ba140 of _0x3f7a23){if(!_0x3ba140[_0x31beb1(0x1db)]())continue;const _0x22d9e7=_0x3ba140[_0x31beb1(0x1f3)]('\x0a');for(const _0x4a081f of _0x22d9e7){if(_0x167783['lPkih']('bqETy',_0x31beb1(0x1e3))){if(_0x4a081f['startsWith'](_0x167783[_0x31beb1(0x1ea)])){const _0x407ed3=_0x4a081f[_0x31beb1(0x1fa)](0x6);if(_0x407ed3['trim']()){if(_0x167783[_0x31beb1(0x1ed)]!==_0x31beb1(0x1d7)){const _0x5a3f06={'jsonrpc':_0x3974f2['bGyMa'],'id':null,'error':{'code':-0x7f5b,'message':_0x3974f2[_0x31beb1(0x1f7)](_0x44b09d,_0x7c9667)?_0x3e41e2['message']:'Unknown\x20error'}};_0x5a9b96[_0x31beb1(0x219)](_0x20cf33[_0x31beb1(0x1d8)](_0x5a3f06));}else console[_0x31beb1(0x219)](_0x407ed3);}}}else{const _0x5882cc={'jsonrpc':_0x167783[_0x31beb1(0x20d)],'id':null,'error':{'code':-0x7f5b,'message':_0x167783[_0x31beb1(0x1f6)]}};_0x3fcf66[_0x31beb1(0x219)](_0x24aa66[_0x31beb1(0x1d8)](_0x5882cc)),_0x3cf3e6[_0x31beb1(0x201)](0x1);}}}}}else{const _0x46e7e7=await _0x3666a7[_0x31beb1(0x1ef)]();console['log'](JSON[_0x31beb1(0x1d8)](_0x46e7e7));}}}catch(_0x267c8e){if(_0x167783['lPkih'](_0x167783[_0x31beb1(0x214)],_0x167783[_0x31beb1(0x214)]))_0x5985f5['exit'](0x0);else{const _0x39ca6d={'jsonrpc':'2.0','id':null,'error':{'code':-0x7f5b,'message':_0x267c8e instanceof Error?_0x267c8e[_0x31beb1(0x204)]:_0x31beb1(0x217)}};console[_0x31beb1(0x219)](JSON[_0x31beb1(0x1d8)](_0x39ca6d));}}}),_0xd97089['on']('close',()=>{const _0x33fc22=_0x2eb5b9;if(_0x167783[_0x33fc22(0x1ff)](_0x167783[_0x33fc22(0x21a)],_0x167783[_0x33fc22(0x210)])){if(_0xc1afed[_0x33fc22(0x1f2)](_0x33fc22(0x213))){const _0x4a74b7=_0x4e2b32['slice'](0x6);_0x4a74b7[_0x33fc22(0x1db)]()&&_0x2d2ef9[_0x33fc22(0x219)](_0x4a74b7);}}else process[_0x33fc22(0x201)](0x0);});}
1
+ (function(_0x27c324,_0x43294f){const _0x3f7229=_0x33e9,_0x1c7d3d=_0x27c324();while(!![]){try{const _0x149fc9=parseInt(_0x3f7229(0x138))/0x1*(-parseInt(_0x3f7229(0x114))/0x2)+parseInt(_0x3f7229(0x14f))/0x3*(-parseInt(_0x3f7229(0x109))/0x4)+-parseInt(_0x3f7229(0x14e))/0x5*(parseInt(_0x3f7229(0x129))/0x6)+parseInt(_0x3f7229(0x130))/0x7+-parseInt(_0x3f7229(0x132))/0x8+-parseInt(_0x3f7229(0x137))/0x9+-parseInt(_0x3f7229(0x12d))/0xa*(-parseInt(_0x3f7229(0x11a))/0xb);if(_0x149fc9===_0x43294f)break;else _0x1c7d3d['push'](_0x1c7d3d['shift']());}catch(_0x4a049f){_0x1c7d3d['push'](_0x1c7d3d['shift']());}}}(_0x1ccd,0x638b7));const _0x1b01dd=(function(){const _0x1d8ba4=_0x33e9,_0xcce209={'NiUfq':'2.0','nTRNU':_0x1d8ba4(0x156),'aTZEf':function(_0x1f10f4,_0x25b40a){return _0x1f10f4===_0x25b40a;},'sujDG':_0x1d8ba4(0x136),'NvPQQ':function(_0x2e8449,_0xf75440){return _0x2e8449===_0xf75440;},'bECcR':_0x1d8ba4(0x126)};let _0x530885=!![];return function(_0x177eee,_0x38a7a6){const _0x180063=_0x1d8ba4,_0xe49364={'nNsNt':_0xcce209[_0x180063(0x15a)],'HeMIu':_0xcce209['nTRNU'],'EvRqB':function(_0x19c835,_0x461a41){const _0x2d85d1=_0x180063;return _0xcce209[_0x2d85d1(0x11b)](_0x19c835,_0x461a41);},'QUCDB':_0xcce209['sujDG']};if(_0xcce209[_0x180063(0x152)](_0xcce209['bECcR'],_0xcce209['bECcR'])){const _0x1767d1=_0x530885?function(){const _0x4af6f8=_0x180063;if(_0xe49364[_0x4af6f8(0x108)](_0xe49364[_0x4af6f8(0x135)],_0x4af6f8(0x12b))){const _0xeba390={'jsonrpc':_0xe49364[_0x4af6f8(0x13c)],'id':null,'error':{'code':-0x7f5b,'message':_0x5d1603 instanceof _0x24d3e2?_0x1cca71['message']:_0xe49364[_0x4af6f8(0x133)]}};_0x281f47[_0x4af6f8(0x15b)](_0x58e91c['stringify'](_0xeba390));}else{if(_0x38a7a6){const _0x391405=_0x38a7a6[_0x4af6f8(0x11c)](_0x177eee,arguments);return _0x38a7a6=null,_0x391405;}}}:function(){};return _0x530885=![],_0x1767d1;}else{const _0x1bf194={'jsonrpc':_0xe49364[_0x180063(0x13c)],'id':_0x26f915['id']??null,'error':{'code':-0x7f5b,'message':_0x180063(0x10b)+_0x15fef6['status']+'\x20'+_0x26d907[_0x180063(0x148)]}};_0x45792e[_0x180063(0x15b)](_0x1980d4[_0x180063(0x159)](_0x1bf194));return;}};}()),_0x50626c=_0x1b01dd(this,function(){const _0x9b0e04=_0x33e9,_0x582062={'UTtzr':_0x9b0e04(0x15d)};return _0x50626c[_0x9b0e04(0x150)]()[_0x9b0e04(0x11d)](_0x582062['UTtzr'])[_0x9b0e04(0x150)]()[_0x9b0e04(0x139)](_0x50626c)[_0x9b0e04(0x11d)](_0x582062[_0x9b0e04(0x117)]);});function _0x33e9(_0x4c9e77,_0x2b1397){_0x4c9e77=_0x4c9e77-0x108;const _0x8fe049=_0x1ccd();let _0x50626c=_0x8fe049[_0x4c9e77];if(_0x33e9['KsRNMF']===undefined){var _0x1b01dd=function(_0xa4f75f){const _0x3e8b49='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2d76e5='',_0x362c71='',_0x5a38cc=_0x2d76e5+_0x1b01dd;for(let _0x5b735d=0x0,_0x3a5423,_0x4e0b2f,_0x53bc27=0x0;_0x4e0b2f=_0xa4f75f['charAt'](_0x53bc27++);~_0x4e0b2f&&(_0x3a5423=_0x5b735d%0x4?_0x3a5423*0x40+_0x4e0b2f:_0x4e0b2f,_0x5b735d++%0x4)?_0x2d76e5+=_0x5a38cc['charCodeAt'](_0x53bc27+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x3a5423>>(-0x2*_0x5b735d&0x6)):_0x5b735d:0x0){_0x4e0b2f=_0x3e8b49['indexOf'](_0x4e0b2f);}for(let _0x2f8714=0x0,_0x3af8c0=_0x2d76e5['length'];_0x2f8714<_0x3af8c0;_0x2f8714++){_0x362c71+='%'+('00'+_0x2d76e5['charCodeAt'](_0x2f8714)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x362c71);};_0x33e9['OfRXGF']=_0x1b01dd,_0x33e9['bxVrVT']={},_0x33e9['KsRNMF']=!![];}const _0x1ccd4c=_0x8fe049[0x0],_0x33e915=_0x4c9e77+_0x1ccd4c,_0xe914ba=_0x33e9['bxVrVT'][_0x33e915];if(!_0xe914ba){const _0x178f83=function(_0x1eb184){this['HnIqHO']=_0x1eb184,this['lNZnVR']=[0x1,0x0,0x0],this['JfPnYU']=function(){return'newState';},this['kpnIdQ']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['mKXNNi']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x178f83['prototype']['AJwHJl']=function(){const _0x2cf869=new RegExp(this['kpnIdQ']+this['mKXNNi']),_0x6073=_0x2cf869['test'](this['JfPnYU']['toString']())?--this['lNZnVR'][0x1]:--this['lNZnVR'][0x0];return this['dIiMuW'](_0x6073);},_0x178f83['prototype']['dIiMuW']=function(_0x42dffb){if(!Boolean(~_0x42dffb))return _0x42dffb;return this['PFNSDY'](this['HnIqHO']);},_0x178f83['prototype']['PFNSDY']=function(_0x555869){for(let _0x38f0e2=0x0,_0x101cba=this['lNZnVR']['length'];_0x38f0e2<_0x101cba;_0x38f0e2++){this['lNZnVR']['push'](Math['round'](Math['random']())),_0x101cba=this['lNZnVR']['length'];}return _0x555869(this['lNZnVR'][0x0]);},new _0x178f83(_0x33e9)['AJwHJl'](),_0x50626c=_0x33e9['OfRXGF'](_0x50626c),_0x33e9['bxVrVT'][_0x33e915]=_0x50626c;}else _0x50626c=_0xe914ba;return _0x50626c;}_0x50626c();function _0x1ccd(){const _0x378c3e=['mte3ntvVtLrYu0u','ovjUq1zZta','Dg9tDhjPBMC','BwvZC2fNzq','tNzquve','wxLesMy','y2rVte8','DhjPBq','vw5RBM93BIbLCNjVCG','tvztywu','BgLUzq','C3rYAw5NAwz5','tMLvzNe','Bg9N','rw5uEgi','kcGOlISPkYKRksSK','rxzsCui','mtGYndrwCePgDK4','l21JCa','sfruucbLCNjVCJOG','yM9KEq','B29ZvM0','z2v0uMvHzgvY','yxbWBgLJyxrPB24VANnVBIWGDgv4Dc9LDMvUDc1ZDhjLyw0','wu1Yz00','uNjysKq','qMvHCMvYia','AgvHzgvYCW','mtu5mdCXnMXdEM54tq','DKzgvKe','CMvHza','vvr0ENi','Cuzvrwi','vxf6vMu','mtu5otK1sKHSwhjJ','yvrArwy','yxbWBhK','C2vHCMnO','q2L4Chi','mI4W','C3rKB3v0','sMzQseu','vfHUr3K','uLrhuuS','C2XPy2u','q0LJz3a','AxvLExO','ue9tva','uNz4weK','mtu5me16C05iDa','y29UDgvUDc10ExbL','wvLPz1i','wu9Xs1i','mty5mfDwC2vNvW','sKPvEKy','Agj3uvq','mZi3nJqXm3LiyvHPDq','z2v0','nJe0mJy0mfHpyuzwAq','sgvnsxu','C3rHCNrZv2L0Aa','uvvdrei','AM5oyxG','mJG2nJG4n2XjvNDuqW','mw9lvMPJBq','y29UC3rYDwn0B3i','zgvJB2rL','tLfirwe','BK5ZtNq','AgXSC1G','z0LHCuq','BvP4rg8','yuvMwey','C3bSAxq','tM8GqvbjihrVA2vUigzVDw5KigLUieTLEwnOywLUlIbsDw46ihjHBMDLCIbZDgfYDca8Dg9Rzw4+','C3rHDhvZ','yxbWBgLJyxrPB24VANnVBG','rNfJveq','Dgv4Dc9LDMvUDc1ZDhjLyw0','D1H3t00','C3rHDhvZvgv4Da','Aw5JBhvKzxm','v3PKwha','CgfYC2u','Cg9W','zxHPDa'];_0x1ccd=function(){return _0x378c3e;};return _0x1ccd();}import*as _0x15897b from'readline';import{getToken}from'./utils/keychain.js';import{getMcpServerUrl}from'./utils/environment.js';export async function dataMcpServer(){const _0x45ab50=_0x33e9,_0x8eeb36={'FqcTD':_0x45ab50(0x11f),'WzdXp':'data:\x20','gIaqD':function(_0x4aef3b,_0x24d6ae){return _0x4aef3b!==_0x24d6ae;},'RrXJD':_0x45ab50(0x125),'hbwQT':_0x45ab50(0x13d),'YyDJf':function(_0x406dff,_0x289a78,_0x4589dc){return _0x406dff(_0x289a78,_0x4589dc);},'TXnGy':_0x45ab50(0x144),'mZxDo':function(_0x2aa7ba,_0xe1e27c){return _0x2aa7ba===_0xe1e27c;},'cdoLO':_0x45ab50(0x12e),'MVSae':_0x45ab50(0x146),'oosVm':_0x45ab50(0x115),'aEfXF':_0x45ab50(0x128),'qFUEb':_0x45ab50(0x119),'PkjmC':_0x45ab50(0x12c),'JfjHE':'fcNmF','omYJS':_0x45ab50(0x15c),'NQHEa':function(_0x490fee,_0x3e1334){return _0x490fee instanceof _0x3e1334;},'puDNr':_0x45ab50(0x110),'GFWye':_0x45ab50(0x147),'Cykea':function(_0x5cb8cc){return _0x5cb8cc();},'RTGQK':'close'},_0x4dfb16=await getToken();if(!_0x4dfb16){const _0xef120f={'jsonrpc':_0x8eeb36[_0x45ab50(0x145)],'id':null,'error':{'code':-0x7f5b,'message':_0x45ab50(0x142)}};console[_0x45ab50(0x15b)](JSON[_0x45ab50(0x159)](_0xef120f)),process['exit'](0x1);}const _0x3cd053=_0x8eeb36['Cykea'](getMcpServerUrl),_0x119acc=_0x3cd053+_0x45ab50(0x10a),_0xff4c34=_0x15897b['createInterface']({'input':process['stdin'],'output':process[_0x45ab50(0x120)],'terminal':![]});_0xff4c34['on'](_0x45ab50(0x158),async _0x3123cc=>{const _0x1c66cb=_0x45ab50,_0x502de9={'szQQy':_0x8eeb36[_0x1c66cb(0x145)],'Cixpr':'No\x20API\x20token\x20found\x20in\x20Keychain.\x20Run:\x20ranger\x20start\x20<token>','SvPAP':_0x8eeb36[_0x1c66cb(0x14a)]};if(!_0x3123cc['trim']())return;try{if(_0x8eeb36[_0x1c66cb(0x13e)](_0x8eeb36[_0x1c66cb(0x111)],_0x8eeb36[_0x1c66cb(0x12f)])){const _0x81fa19=JSON[_0x1c66cb(0x14b)](_0x3123cc),_0x35f734=await _0x8eeb36[_0x1c66cb(0x153)](fetch,_0x119acc,{'method':_0x1c66cb(0x127),'headers':{'Content-Type':_0x8eeb36[_0x1c66cb(0x122)],'Accept':_0x1c66cb(0x10f),'Authorization':_0x1c66cb(0x112)+_0x4dfb16},'body':JSON[_0x1c66cb(0x159)](_0x81fa19)});if(!_0x35f734['ok']){if(_0x8eeb36[_0x1c66cb(0x13f)](_0x8eeb36[_0x1c66cb(0x154)],_0x8eeb36['cdoLO'])){const _0x2e7c5d={'jsonrpc':_0x8eeb36[_0x1c66cb(0x145)],'id':_0x81fa19['id']??null,'error':{'code':-0x7f5b,'message':_0x1c66cb(0x10b)+_0x35f734[_0x1c66cb(0x143)]+'\x20'+_0x35f734[_0x1c66cb(0x148)]}};console[_0x1c66cb(0x15b)](JSON[_0x1c66cb(0x159)](_0x2e7c5d));return;}else _0x4c2732[_0x1c66cb(0x15b)](_0x47d50c);}const _0x3fb3ff=_0x35f734[_0x1c66cb(0x113)][_0x1c66cb(0x131)](_0x1c66cb(0x12a))||'';if(_0x3fb3ff[_0x1c66cb(0x149)](_0x8eeb36[_0x1c66cb(0x157)])){const _0xb8887b=_0x35f734[_0x1c66cb(0x10c)]?.[_0x1c66cb(0x10e)]();if(!_0xb8887b)return;const _0xfcce69=new TextDecoder();let _0x56586f='';while(!![]){if(_0x8eeb36[_0x1c66cb(0x10d)]===_0x8eeb36[_0x1c66cb(0x140)]){const _0xcd9195={'jsonrpc':_0x502de9['szQQy'],'id':null,'error':{'code':-0x7f5b,'message':_0x502de9[_0x1c66cb(0x11e)]}};_0x212c06[_0x1c66cb(0x15b)](_0x16ebfa[_0x1c66cb(0x159)](_0xcd9195)),_0x2936a4[_0x1c66cb(0x14d)](0x1);}else{const {done:_0x483e7c,value:_0x571e19}=await _0xb8887b[_0x1c66cb(0x116)]();if(_0x483e7c)break;_0x56586f+=_0xfcce69[_0x1c66cb(0x13a)](_0x571e19,{'stream':!![]});const _0x350801=_0x56586f['split']('\x0a\x0a');_0x56586f=_0x350801[_0x1c66cb(0x14c)]()||'';for(const _0x53fdca of _0x350801){if(_0x8eeb36[_0x1c66cb(0x13e)](_0x8eeb36[_0x1c66cb(0x118)],_0x8eeb36['qFUEb'])){if(_0x229a99['startsWith'](_0x502de9['SvPAP'])){const _0x5867b3=_0x309238[_0x1c66cb(0x124)](0x6);_0x5867b3[_0x1c66cb(0x155)]()&&_0x2cb12c['log'](_0x5867b3);}}else{if(!_0x53fdca[_0x1c66cb(0x155)]())continue;const _0x3eb965=_0x53fdca[_0x1c66cb(0x141)]('\x0a');for(const _0x376bae of _0x3eb965){if(_0x376bae[_0x1c66cb(0x134)](_0x8eeb36[_0x1c66cb(0x14a)])){if(_0x8eeb36[_0x1c66cb(0x13f)](_0x8eeb36['PkjmC'],_0x8eeb36[_0x1c66cb(0x121)])){if(_0x1bb412){const _0x5bc089=_0x3ebb27['apply'](_0x5bab6b,arguments);return _0x2608ef=null,_0x5bc089;}}else{const _0x5b19e3=_0x376bae['slice'](0x6);_0x5b19e3[_0x1c66cb(0x155)]()&&console[_0x1c66cb(0x15b)](_0x5b19e3);}}}}}}}}else{if(_0x8eeb36[_0x1c66cb(0x13e)]('EnTxb',_0x8eeb36['omYJS']))_0x505ae3[_0x1c66cb(0x14d)](0x0);else{const _0x362661=await _0x35f734['json']();console[_0x1c66cb(0x15b)](JSON[_0x1c66cb(0x159)](_0x362661));}}}else{const _0x56fa10=_0x3bd6bd[_0x1c66cb(0x124)](0x6);_0x56fa10[_0x1c66cb(0x155)]()&&_0x4d0e03[_0x1c66cb(0x15b)](_0x56fa10);}}catch(_0x1f1a0c){const _0x82f8ec={'jsonrpc':_0x1c66cb(0x11f),'id':null,'error':{'code':-0x7f5b,'message':_0x8eeb36[_0x1c66cb(0x13b)](_0x1f1a0c,Error)?_0x1f1a0c[_0x1c66cb(0x151)]:'Unknown\x20error'}};console[_0x1c66cb(0x15b)](JSON['stringify'](_0x82f8ec));}}),_0xff4c34['on'](_0x8eeb36[_0x45ab50(0x123)],()=>{const _0x1903a7=_0x45ab50;if(_0x8eeb36[_0x1903a7(0x13f)](_0x8eeb36['puDNr'],_0x8eeb36['GFWye'])){const _0x353896=_0x178f83?function(){if(_0x38f0e2){const _0x1fc9e7=_0x328e2e['apply'](_0x5341f4,arguments);return _0x41423e=null,_0x1fc9e7;}}:function(){};return _0x555869=![],_0x353896;}else process[_0x1903a7(0x14d)](0x0);});}
@@ -1 +1 @@
1
- {"version":3,"file":"dataMcpServer.js","sourceRoot":"","sources":["../../src/commands/dataMcpServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataMcpServer.js","sourceRoot":"","sources":["../../src/commands/dataMcpServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { readdir, readFile, stat } from 'fs/promises';
2
+ import { join } from 'path';
3
+ import { existsSync } from 'fs';
4
+ // Directories that are not environments
5
+ const NON_ENV_DIRS = ['sessions', 'bug-bashes'];
6
+ export async function envList() {
7
+ const rangerDir = join(process.cwd(), '.ranger');
8
+ if (!existsSync(rangerDir)) {
9
+ console.log('\nNo environments found.');
10
+ console.log('Run: ranger add env <env-name>');
11
+ return;
12
+ }
13
+ // Get active environment
14
+ const activeEnvPath = join(rangerDir, 'active-env.txt');
15
+ let activeEnv = null;
16
+ if (existsSync(activeEnvPath)) {
17
+ activeEnv = await readFile(activeEnvPath, 'utf-8').then((s) => s.trim());
18
+ }
19
+ // List all directories in .ranger
20
+ const entries = await readdir(rangerDir);
21
+ const envs = [];
22
+ for (const entry of entries) {
23
+ // Skip non-environment directories and files
24
+ if (NON_ENV_DIRS.includes(entry))
25
+ continue;
26
+ const entryPath = join(rangerDir, entry);
27
+ const entryStat = await stat(entryPath);
28
+ if (entryStat.isDirectory()) {
29
+ envs.push(entry);
30
+ }
31
+ }
32
+ if (envs.length === 0) {
33
+ console.log('\nNo environments found.');
34
+ console.log('Run: ranger add env <env-name>');
35
+ return;
36
+ }
37
+ console.log('\nEnvironments:');
38
+ for (const env of envs.sort()) {
39
+ const isActive = env === activeEnv;
40
+ console.log(` ${isActive ? '* ' : ' '}${env}`);
41
+ }
42
+ if (activeEnv) {
43
+ console.log(`\n* = active environment`);
44
+ }
45
+ }
46
+ //# sourceMappingURL=env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/commands/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEhC,wCAAwC;AACxC,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAEhD,MAAM,CAAC,KAAK,UAAU,OAAO;IACzB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;IAEjD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO;IACX,CAAC;IAED,yBAAyB;IACzB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC;IACxD,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAC5B,SAAS,GAAG,MAAM,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1D,CAAC,CAAC,IAAI,EAAE,CACX,CAAC;IACN,CAAC;IAED,kCAAkC;IAClC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC1B,6CAA6C;QAC7C,IAAI,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,SAAS;QAE3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;QAExC,IAAI,SAAS,CAAC,WAAW,EAAE,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;IACL,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QAC9C,OAAO;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,GAAG,KAAK,SAAS,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,GAAG,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IAC5C,CAAC;AACL,CAAC"}
@@ -0,0 +1,494 @@
1
+ import { readFile, writeFile, mkdir } from 'fs/promises';
2
+ import { join } from 'path';
3
+ import { existsSync } from 'fs';
4
+ import { execSync } from 'child_process';
5
+ import inquirer from 'inquirer';
6
+ import { createFeature, listFeatures, getFeature, updateFeature, addChecklistItem, updateChecklistItem, getFeatureReport, } from './utils/featureApi.js';
7
+ import { generateFeatureReport } from './utils/featureReportGenerator.js';
8
+ // Active feature file path
9
+ const ACTIVE_FEATURE_FILE = '.ranger/active-feature.txt';
10
+ /**
11
+ * Get the current git remote URL
12
+ */
13
+ function getGitRepoUrl() {
14
+ try {
15
+ const remote = execSync('git remote get-url origin', {
16
+ encoding: 'utf-8',
17
+ stdio: ['pipe', 'pipe', 'pipe'],
18
+ }).trim();
19
+ // Normalize git URL (remove .git suffix, convert ssh to https format)
20
+ return remote
21
+ .replace(/\.git$/, '')
22
+ .replace(/^git@github\.com:/, 'github.com/')
23
+ .replace(/^https?:\/\//, '');
24
+ }
25
+ catch {
26
+ return undefined;
27
+ }
28
+ }
29
+ /**
30
+ * Get the current git branch
31
+ */
32
+ function getGitBranch() {
33
+ try {
34
+ return execSync('git rev-parse --abbrev-ref HEAD', {
35
+ encoding: 'utf-8',
36
+ stdio: ['pipe', 'pipe', 'pipe'],
37
+ }).trim();
38
+ }
39
+ catch {
40
+ return undefined;
41
+ }
42
+ }
43
+ /**
44
+ * Get the active feature ID from the local file
45
+ */
46
+ export async function getActiveFeatureId() {
47
+ const filePath = join(process.cwd(), ACTIVE_FEATURE_FILE);
48
+ if (!existsSync(filePath)) {
49
+ return null;
50
+ }
51
+ try {
52
+ const content = await readFile(filePath, 'utf-8');
53
+ return content.trim() || null;
54
+ }
55
+ catch {
56
+ return null;
57
+ }
58
+ }
59
+ /**
60
+ * Set the active feature ID
61
+ */
62
+ async function setActiveFeatureId(featureId) {
63
+ const filePath = join(process.cwd(), ACTIVE_FEATURE_FILE);
64
+ const dir = join(process.cwd(), '.ranger');
65
+ if (!existsSync(dir)) {
66
+ await mkdir(dir, { recursive: true });
67
+ }
68
+ await writeFile(filePath, featureId, 'utf-8');
69
+ }
70
+ /**
71
+ * Display a feature with its checklist
72
+ */
73
+ function displayFeature(feature, checklistItems) {
74
+ const statusEmoji = feature.status === 'completed'
75
+ ? '\u2705'
76
+ : feature.status === 'blocked'
77
+ ? '\ud83d\uded1'
78
+ : '\ud83d\udd04';
79
+ console.log(`\n${statusEmoji} ${feature.name} (${feature.id})`);
80
+ console.log(` Status: ${feature.status}`);
81
+ if (feature.description) {
82
+ console.log(` Description: ${feature.description}`);
83
+ }
84
+ if (feature.gitRepoUrl) {
85
+ console.log(` Repository: ${feature.gitRepoUrl}`);
86
+ }
87
+ if (feature.gitBranch) {
88
+ console.log(` Branch: ${feature.gitBranch}`);
89
+ }
90
+ console.log(` Created: ${new Date(feature.createdAt).toLocaleString()}`);
91
+ if (feature.completedAt) {
92
+ console.log(` Completed: ${new Date(feature.completedAt).toLocaleString()}`);
93
+ }
94
+ if (checklistItems && checklistItems.length > 0) {
95
+ console.log('\n Checklist:');
96
+ for (let i = 0; i < checklistItems.length; i++) {
97
+ const item = checklistItems[i];
98
+ const itemEmoji = item.status === 'verified'
99
+ ? '\u2705'
100
+ : item.status === 'blocked'
101
+ ? '\ud83d\uded1'
102
+ : item.status === 'canceled'
103
+ ? '\u26d4'
104
+ : '\u2b1c'; // white square for pending
105
+ console.log(` ${i + 1}. ${itemEmoji} ${item.description}`);
106
+ if (item.status === 'blocked' && item.blockedReason) {
107
+ console.log(` Blocked: ${item.blockedReason}`);
108
+ }
109
+ if (item.status === 'canceled' && item.canceledReason) {
110
+ console.log(` Canceled: ${item.canceledReason}`);
111
+ }
112
+ }
113
+ }
114
+ }
115
+ /**
116
+ * Create a new feature
117
+ */
118
+ export async function featureCreate(name, options) {
119
+ // Parse checklist from comma-separated string
120
+ const checklistItems = options.checklist
121
+ ? options.checklist.split(',').map((s) => s.trim())
122
+ : [];
123
+ // Auto-detect git context
124
+ const gitRepoUrl = getGitRepoUrl();
125
+ const gitBranch = getGitBranch();
126
+ console.log('\nCreating feature...');
127
+ const feature = await createFeature({
128
+ name,
129
+ description: options.description,
130
+ checklist: checklistItems,
131
+ gitRepoUrl,
132
+ gitBranch,
133
+ });
134
+ // Set as active feature
135
+ await setActiveFeatureId(feature.id);
136
+ console.log(`\n\u2705 Feature created: ${feature.id}`);
137
+ displayFeature(feature, feature.checklistItems);
138
+ console.log(`\n\u27a1\ufe0f Set as active feature`);
139
+ }
140
+ /**
141
+ * List features
142
+ */
143
+ export async function featureList(options) {
144
+ const filters = {};
145
+ if (options.status) {
146
+ filters.status = options.status;
147
+ }
148
+ if (options.currentBranch) {
149
+ filters.gitRepoUrl = getGitRepoUrl();
150
+ filters.gitBranch = getGitBranch();
151
+ }
152
+ const result = await listFeatures(filters);
153
+ if (result.items.length === 0) {
154
+ console.log('\nNo features found.');
155
+ return;
156
+ }
157
+ console.log(`\n${result.items.length} feature(s) found:\n`);
158
+ for (const feature of result.items) {
159
+ const statusEmoji = feature.status === 'completed'
160
+ ? '\u2705'
161
+ : feature.status === 'blocked'
162
+ ? '\ud83d\uded1'
163
+ : '\ud83d\udd04';
164
+ console.log(`${statusEmoji} ${feature.name}`);
165
+ console.log(` ID: ${feature.id}`);
166
+ console.log(` Status: ${feature.status}`);
167
+ if (feature.gitBranch) {
168
+ console.log(` Branch: ${feature.gitBranch}`);
169
+ }
170
+ console.log('');
171
+ }
172
+ }
173
+ /**
174
+ * Show feature details
175
+ */
176
+ export async function featureShow(id) {
177
+ const featureId = id || (await getActiveFeatureId());
178
+ if (!featureId) {
179
+ console.error('\n\u274c No feature ID provided and no active feature set.');
180
+ console.error('Run: ranger feature use <id> to set an active feature');
181
+ process.exit(1);
182
+ }
183
+ const feature = await getFeature(featureId);
184
+ displayFeature(feature, feature.checklistItems);
185
+ }
186
+ /**
187
+ * Set active feature
188
+ */
189
+ export async function featureUse(id) {
190
+ // Verify the feature exists
191
+ const feature = await getFeature(id);
192
+ await setActiveFeatureId(feature.id);
193
+ console.log(`\n\u2705 Active feature set to: ${feature.name} (${feature.id})`);
194
+ }
195
+ /**
196
+ * Resume feature matching current git context
197
+ */
198
+ export async function featureResume() {
199
+ const gitRepoUrl = getGitRepoUrl();
200
+ const gitBranch = getGitBranch();
201
+ if (!gitRepoUrl && !gitBranch) {
202
+ console.error('\n\u274c Not in a git repository.');
203
+ process.exit(1);
204
+ }
205
+ console.log(`\nSearching for features matching: ${gitRepoUrl || 'any'} / ${gitBranch || 'any'}...`);
206
+ const result = await listFeatures({
207
+ status: 'in_progress',
208
+ gitRepoUrl,
209
+ gitBranch,
210
+ });
211
+ if (result.items.length === 0) {
212
+ console.log('\nNo matching in-progress features found.');
213
+ console.log('Run: ranger feature create "<name>" to create a new feature');
214
+ return;
215
+ }
216
+ let selectedFeature;
217
+ if (result.items.length === 1) {
218
+ selectedFeature = result.items[0];
219
+ }
220
+ else {
221
+ // Multiple matches - prompt user to select
222
+ const { selected } = await inquirer.prompt([
223
+ {
224
+ type: 'list',
225
+ name: 'selected',
226
+ message: 'Multiple features found. Select one:',
227
+ choices: result.items.map((f) => ({
228
+ name: `${f.name} (${f.id})`,
229
+ value: f.id,
230
+ })),
231
+ },
232
+ ]);
233
+ selectedFeature = result.items.find((f) => f.id === selected);
234
+ }
235
+ await setActiveFeatureId(selectedFeature.id);
236
+ console.log(`\n\u2705 Resumed feature: ${selectedFeature.name} (${selectedFeature.id})`);
237
+ // Show current status
238
+ const fullFeature = await getFeature(selectedFeature.id);
239
+ displayFeature(fullFeature, fullFeature.checklistItems);
240
+ }
241
+ /**
242
+ * Block a feature
243
+ */
244
+ export async function featureBlock(id, options) {
245
+ const featureId = id || (await getActiveFeatureId());
246
+ if (!featureId) {
247
+ console.error('\n\u274c No feature ID provided and no active feature set.');
248
+ process.exit(1);
249
+ }
250
+ const feature = await updateFeature(featureId, { status: 'blocked' });
251
+ console.log(`\n\ud83d\uded1 Feature blocked: ${feature.name} (${feature.id})`);
252
+ console.log(` Reason: ${options.reason}`);
253
+ }
254
+ /**
255
+ * Helper to get item by index (1-based)
256
+ */
257
+ function getItemByIndex(items, index) {
258
+ const itemIndex = index - 1; // Convert to 0-based
259
+ if (itemIndex < 0 || itemIndex >= items.length) {
260
+ throw new Error(`Invalid item index: ${index}. Feature has ${items.length} items.`);
261
+ }
262
+ return items[itemIndex];
263
+ }
264
+ /**
265
+ * Manage checklist items (interactive or with flags)
266
+ */
267
+ export async function featureManage(options = {}) {
268
+ const featureId = await getActiveFeatureId();
269
+ if (!featureId) {
270
+ console.error('\n\u274c No active feature set.');
271
+ console.error('Run: ranger feature use <id> to set an active feature');
272
+ process.exit(1);
273
+ }
274
+ const feature = await getFeature(featureId);
275
+ // Check if any non-interactive flag is provided
276
+ const hasNonInteractiveFlag = options.add !== undefined ||
277
+ options.edit !== undefined ||
278
+ options.block !== undefined ||
279
+ options.cancel !== undefined ||
280
+ options.reset !== undefined;
281
+ // Non-interactive mode: handle flags directly
282
+ if (hasNonInteractiveFlag) {
283
+ // --add: Add a new item
284
+ if (options.add) {
285
+ const item = await addChecklistItem(featureId, {
286
+ description: options.add.trim(),
287
+ });
288
+ console.log(`\u2705 Added: ${item.description}`);
289
+ return;
290
+ }
291
+ // --edit: Edit item description
292
+ if (options.edit !== undefined) {
293
+ if (!options.description) {
294
+ console.error('\u274c --description is required when using --edit');
295
+ process.exit(1);
296
+ }
297
+ const item = getItemByIndex(feature.checklistItems, options.edit);
298
+ await updateChecklistItem(featureId, item.id, {
299
+ description: options.description.trim(),
300
+ });
301
+ console.log(`\u270f\ufe0f Item ${options.edit} updated: ${options.description.trim()}`);
302
+ return;
303
+ }
304
+ // --block: Block an item
305
+ if (options.block !== undefined) {
306
+ const item = getItemByIndex(feature.checklistItems, options.block);
307
+ await updateChecklistItem(featureId, item.id, {
308
+ status: 'blocked',
309
+ blockedReason: options.reason || undefined,
310
+ });
311
+ console.log(`\ud83d\uded1 Item ${options.block} blocked: ${item.description}`);
312
+ return;
313
+ }
314
+ // --cancel: Cancel an item
315
+ if (options.cancel !== undefined) {
316
+ const item = getItemByIndex(feature.checklistItems, options.cancel);
317
+ await updateChecklistItem(featureId, item.id, {
318
+ status: 'canceled',
319
+ canceledReason: options.reason || undefined,
320
+ });
321
+ console.log(`\u26d4 Item ${options.cancel} canceled: ${item.description}`);
322
+ return;
323
+ }
324
+ // --reset: Reset item to pending
325
+ if (options.reset !== undefined) {
326
+ const item = getItemByIndex(feature.checklistItems, options.reset);
327
+ await updateChecklistItem(featureId, item.id, {
328
+ status: 'pending',
329
+ });
330
+ console.log(`\u2b1c Item ${options.reset} reset to pending: ${item.description}`);
331
+ return;
332
+ }
333
+ }
334
+ // Interactive mode: show prompts
335
+ console.log(`\nManaging: ${feature.name} (${feature.id})\n`);
336
+ // Show current checklist
337
+ if (feature.checklistItems.length > 0) {
338
+ console.log('Current checklist:');
339
+ for (let i = 0; i < feature.checklistItems.length; i++) {
340
+ const item = feature.checklistItems[i];
341
+ const itemEmoji = item.status === 'verified'
342
+ ? '\u2705'
343
+ : item.status === 'blocked'
344
+ ? '\ud83d\uded1'
345
+ : item.status === 'canceled'
346
+ ? '\u26d4'
347
+ : '\u2b1c';
348
+ console.log(`${i + 1}. ${itemEmoji} ${item.description}`);
349
+ }
350
+ console.log('');
351
+ }
352
+ else {
353
+ console.log('No checklist items yet.\n');
354
+ }
355
+ // Prompt for action
356
+ const { action } = await inquirer.prompt([
357
+ {
358
+ type: 'list',
359
+ name: 'action',
360
+ message: 'What would you like to do?',
361
+ choices: [
362
+ { name: 'Add new item', value: 'add' },
363
+ { name: 'Update existing item', value: 'update' },
364
+ { name: 'Cancel', value: 'cancel' },
365
+ ],
366
+ },
367
+ ]);
368
+ if (action === 'cancel') {
369
+ return;
370
+ }
371
+ if (action === 'add') {
372
+ const { description } = await inquirer.prompt([
373
+ {
374
+ type: 'input',
375
+ name: 'description',
376
+ message: 'Enter item description:',
377
+ validate: (input) => input.trim() ? true : 'Description is required',
378
+ },
379
+ ]);
380
+ const item = await addChecklistItem(featureId, {
381
+ description: description.trim(),
382
+ });
383
+ console.log(`\n\u2705 Added: ${item.description}`);
384
+ return;
385
+ }
386
+ if (action === 'update') {
387
+ if (feature.checklistItems.length === 0) {
388
+ console.log('\nNo items to update.');
389
+ return;
390
+ }
391
+ const { itemIndex } = await inquirer.prompt([
392
+ {
393
+ type: 'list',
394
+ name: 'itemIndex',
395
+ message: 'Select item to update:',
396
+ choices: feature.checklistItems.map((item, i) => ({
397
+ name: `${i + 1}. ${item.description}`,
398
+ value: i,
399
+ })),
400
+ },
401
+ ]);
402
+ const selectedItem = feature.checklistItems[itemIndex];
403
+ const { updateAction } = await inquirer.prompt([
404
+ {
405
+ type: 'list',
406
+ name: 'updateAction',
407
+ message: 'What would you like to do with this item?',
408
+ choices: [
409
+ { name: 'Edit description', value: 'edit' },
410
+ { name: 'Mark as blocked', value: 'block' },
411
+ { name: 'Cancel item', value: 'cancel' },
412
+ { name: 'Reset to pending', value: 'pending' },
413
+ { name: 'Go back', value: 'back' },
414
+ ],
415
+ },
416
+ ]);
417
+ if (updateAction === 'back') {
418
+ return;
419
+ }
420
+ if (updateAction === 'edit') {
421
+ const { newDescription } = await inquirer.prompt([
422
+ {
423
+ type: 'input',
424
+ name: 'newDescription',
425
+ message: 'Enter new description:',
426
+ default: selectedItem.description,
427
+ validate: (input) => input.trim() ? true : 'Description is required',
428
+ },
429
+ ]);
430
+ await updateChecklistItem(featureId, selectedItem.id, {
431
+ description: newDescription.trim(),
432
+ });
433
+ console.log(`\n\u270f\ufe0f Item updated: ${newDescription.trim()}`);
434
+ }
435
+ else if (updateAction === 'block') {
436
+ const { reason } = await inquirer.prompt([
437
+ {
438
+ type: 'input',
439
+ name: 'reason',
440
+ message: 'Enter blocking reason:',
441
+ },
442
+ ]);
443
+ await updateChecklistItem(featureId, selectedItem.id, {
444
+ status: 'blocked',
445
+ blockedReason: reason || undefined,
446
+ });
447
+ console.log(`\n\ud83d\uded1 Item blocked: ${selectedItem.description}`);
448
+ }
449
+ else if (updateAction === 'cancel') {
450
+ const { reason } = await inquirer.prompt([
451
+ {
452
+ type: 'input',
453
+ name: 'reason',
454
+ message: 'Enter cancellation reason:',
455
+ },
456
+ ]);
457
+ await updateChecklistItem(featureId, selectedItem.id, {
458
+ status: 'canceled',
459
+ canceledReason: reason || undefined,
460
+ });
461
+ console.log(`\n\u26d4 Item canceled: ${selectedItem.description}`);
462
+ }
463
+ else if (updateAction === 'pending') {
464
+ await updateChecklistItem(featureId, selectedItem.id, {
465
+ status: 'pending',
466
+ });
467
+ console.log(`\n\u2b1c Item reset to pending: ${selectedItem.description}`);
468
+ }
469
+ }
470
+ }
471
+ /**
472
+ * Generate feature report
473
+ */
474
+ export async function featureReport(id, options) {
475
+ const featureId = id || (await getActiveFeatureId());
476
+ if (!featureId) {
477
+ console.error('\n\u274c No feature ID provided and no active feature set.');
478
+ process.exit(1);
479
+ }
480
+ console.log('\nGenerating report...');
481
+ const reportData = await getFeatureReport(featureId);
482
+ const markdown = generateFeatureReport(reportData);
483
+ // Determine output path
484
+ const outputPath = options.output ||
485
+ join(process.cwd(), '.ranger', 'reports', `${featureId}.md`);
486
+ // Ensure directory exists
487
+ const outputDir = join(outputPath, '..');
488
+ if (!existsSync(outputDir)) {
489
+ await mkdir(outputDir, { recursive: true });
490
+ }
491
+ await writeFile(outputPath, markdown, 'utf-8');
492
+ console.log(`\n\u2705 Report generated: ${outputPath}`);
493
+ }
494
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature.js","sourceRoot":"","sources":["../../src/commands/feature.ts"],"names":[],"mappings":"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"}
@@ -7,4 +7,5 @@ export { updateEnv } from './updateEnv.js';
7
7
  export { verifyInBrowser } from './verifyInBrowser.js';
8
8
  export { update } from './update.js';
9
9
  export { skillup } from './skillup.js';
10
+ export { envList } from './env.js';
10
11
  //# sourceMappingURL=index.js.map