@ranger-testing/ranger-cli 1.0.14 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/README.md +57 -131
  2. package/build/cli.js +60 -62
  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/feature.js +91 -34
  10. package/build/commands/feature.js.map +1 -1
  11. package/build/commands/hook.js +27 -0
  12. package/build/commands/hook.js.map +1 -0
  13. package/build/commands/hooks/disable.js +25 -0
  14. package/build/commands/hooks/disable.js.map +1 -0
  15. package/build/commands/hooks/enable.js +44 -0
  16. package/build/commands/hooks/enable.js.map +1 -0
  17. package/build/commands/hooks/exitPlanMode.js +35 -0
  18. package/build/commands/hooks/exitPlanMode.js.map +1 -0
  19. package/build/commands/hooks/index.js +10 -0
  20. package/build/commands/hooks/index.js.map +1 -0
  21. package/build/commands/hooks/output.js +53 -0
  22. package/build/commands/hooks/output.js.map +1 -0
  23. package/build/commands/hooks/planReminder.js +46 -0
  24. package/build/commands/hooks/planReminder.js.map +1 -0
  25. package/build/commands/hooks/planStart.js +30 -0
  26. package/build/commands/hooks/planStart.js.map +1 -0
  27. package/build/commands/hooks/postEdit.js +41 -0
  28. package/build/commands/hooks/postEdit.js.map +1 -0
  29. package/build/commands/hooks/preCompact.js +30 -0
  30. package/build/commands/hooks/preCompact.js.map +1 -0
  31. package/build/commands/hooks/sessionStart.js +35 -0
  32. package/build/commands/hooks/sessionStart.js.map +1 -0
  33. package/build/commands/hooks/stopHook.js +54 -0
  34. package/build/commands/hooks/stopHook.js.map +1 -0
  35. package/build/commands/index.js +1 -3
  36. package/build/commands/index.js.map +1 -1
  37. package/build/commands/skillup.js +36 -69
  38. package/build/commands/skillup.js.map +1 -1
  39. package/build/commands/start.js +1 -1
  40. package/build/commands/start.js.map +1 -1
  41. package/build/commands/status.js +17 -21
  42. package/build/commands/status.js.map +1 -1
  43. package/build/commands/updateEnv.js +1 -1
  44. package/build/commands/updateEnv.js.map +1 -1
  45. package/build/commands/useEnv.js +1 -1
  46. package/build/commands/utils/browserSessionsApi.js +1 -1
  47. package/build/commands/utils/claudePlugin.js +85 -0
  48. package/build/commands/utils/claudePlugin.js.map +1 -0
  49. package/build/commands/utils/cliSecret.js +1 -1
  50. package/build/commands/utils/featureApi.js +23 -0
  51. package/build/commands/utils/featureApi.js.map +1 -1
  52. package/build/commands/utils/git.js +44 -0
  53. package/build/commands/utils/git.js.map +1 -0
  54. package/build/commands/utils/keychain.js +1 -1
  55. package/build/commands/utils/localAgentInstallationsApi.js +1 -1
  56. package/build/commands/utils/sessionCache.js +133 -0
  57. package/build/commands/utils/sessionCache.js.map +1 -0
  58. package/build/commands/utils/skillContent.js +3 -3
  59. package/build/commands/utils/skillContent.js.map +1 -1
  60. package/build/commands/utils/skills.js +1 -1
  61. package/build/commands/utils/skills.js.map +1 -1
  62. package/build/commands/verifyFeature.js +22 -2
  63. package/build/commands/verifyFeature.js.map +1 -1
  64. package/build/commands/verifyInBrowser.js +1 -1
  65. package/build/skills/ranger/SKILL.md +164 -0
  66. package/build/skills/ranger/create.md +151 -0
  67. package/build/skills/ranger/start.md +122 -0
  68. package/build/skills/{feature-tracker → ranger}/verify.md +33 -3
  69. package/package.json +1 -1
  70. package/build/commands/postEditHook.js +0 -25
  71. package/build/commands/postEditHook.js.map +0 -1
  72. package/build/commands/preCompactHook.js +0 -85
  73. package/build/commands/preCompactHook.js.map +0 -1
  74. package/build/commands/sessionStartHook.js +0 -64
  75. package/build/commands/sessionStartHook.js.map +0 -1
  76. package/build/commands/utils/mcpConfig.js +0 -1
  77. package/build/commands/utils/mcpConfig.js.map +0 -1
  78. package/build/skills/feature-tracker/SKILL.md +0 -163
  79. package/build/skills/feature-tracker/create.md +0 -114
  80. package/build/skills/feature-tracker/report.md +0 -159
  81. package/build/skills/feature-tracker/start.md +0 -93
@@ -1 +1 @@
1
- function _0x2526(){const _0x12b175=['EPEgS','plcnn','272gxUNZM','utf-8','HfBab','✓\x20Removed\x20user\x20skill:\x20','log','✓\x20Removed\x20.ranger/\x20directory','ranger-browser','stringify','2468FDINkI','ISyTW','307960DrQfar','keys','177686nJnBlF','813tPMysh','✓\x20Removed\x20credentials\x20from\x20OS\x20Keychain','1936700KUOTEO','\x0a✅\x20Cleanup\x20complete!\x0a','zSFsA','KHOLr','56457veAEZK','ranger','12vylueT','Nothing\x20to\x20clean\x20up.\x0a','HCPtk','ssyle','89187unJQMS','aNkSf','mcpServers','pCYcA','970410umOesc','✓\x20Removed\x20.mcp.json','ZKhXm'];_0x2526=function(){return _0x12b175;};return _0x2526();}(function(_0xedb440,_0x228ae3){const _0x30c930=_0x5ec7,_0x4df352=_0xedb440();while(!![]){try{const _0x5dcbc9=parseInt(_0x30c930(0xeb))/0x1+-parseInt(_0x30c930(0x100))/0x2+parseInt(_0x30c930(0x101))/0x3*(-parseInt(_0x30c930(0xfc))/0x4)+-parseInt(_0x30c930(0xfe))/0x5*(-parseInt(_0x30c930(0xe7))/0x6)+parseInt(_0x30c930(0xef))/0x7+parseInt(_0x30c930(0xf4))/0x8*(parseInt(_0x30c930(0xe5))/0x9)+-parseInt(_0x30c930(0x103))/0xa;if(_0x5dcbc9===_0x228ae3)break;else _0x4df352['push'](_0x4df352['shift']());}catch(_0x32f4cc){_0x4df352['push'](_0x4df352['shift']());}}}(_0x2526,0x1bf83));function _0x5ec7(_0x492ac6,_0x4a7c11){_0x492ac6=_0x492ac6-0xe4;const _0x252618=_0x2526();let _0x5ec7a6=_0x252618[_0x492ac6];return _0x5ec7a6;}import{rm,readFile,writeFile}from'fs/promises';import{join}from'path';import{existsSync}from'fs';import{deleteAllCredentials}from'./utils/keychain.js';import{getProjectSkillsDir,getUserSkillsDir,loadClaudeSettings,saveClaudeSettings,getSettingsPath}from'./utils/claudeConfig.js';import{getRangerDir}from'./utils/rangerRoot.js';export async function clean(){const _0x3e3f90=_0x5ec7,_0x58b349={'KHOLr':'\x0a🧹\x20Cleaning\x20up\x20Ranger\x20artifacts...\x0a','zSFsA':function(_0x3a195c){return _0x3a195c();},'piPfn':function(_0x3137ea,_0x30d274,_0x3269db){return _0x3137ea(_0x30d274,_0x3269db);},'ZKhXm':function(_0x4c5fbd,_0x536db3,_0x407562){return _0x4c5fbd(_0x536db3,_0x407562);},'HfBab':function(_0x2aade8,_0x4cfa39){return _0x2aade8(_0x4cfa39);},'ISyTW':function(_0x325e79){return _0x325e79();},'crQVU':'.mcp.json','tbZfi':function(_0x248679,_0x1844c6){return _0x248679(_0x1844c6);},'EPEgS':function(_0x4a134a,_0x1bf5c1,_0x256d0f){return _0x4a134a(_0x1bf5c1,_0x256d0f);},'HCPtk':_0x3e3f90(0xf5),'OBZrs':_0x3e3f90(0xfa),'VohUM':function(_0x2c8887,_0x36bbe8,_0x5dabf4){return _0x2c8887(_0x36bbe8,_0x5dabf4);},'pCYcA':'✓\x20Removed\x20Ranger\x20entries\x20from\x20.mcp.json','ssyle':function(_0x2ec275,_0x55d5ca){return _0x2ec275(_0x55d5ca);},'aNkSf':_0x3e3f90(0xf0),'plcnn':_0x3e3f90(0xe8)};console['log'](_0x58b349[_0x3e3f90(0xe4)]);let _0x1cdc63=![];try{await _0x58b349[_0x3e3f90(0x105)](deleteAllCredentials),console[_0x3e3f90(0xf8)](_0x3e3f90(0x102)),_0x1cdc63=!![];}catch{}const _0x419423=getRangerDir();existsSync(_0x419423)&&(await _0x58b349['piPfn'](rm,_0x419423,{'recursive':!![]}),console['log'](_0x3e3f90(0xf9)),_0x1cdc63=!![]);const _0x33be68=['bug-bash','e2e-test-recommender'],_0x2b3a90=getProjectSkillsDir();for(const _0x16ac0b of _0x33be68){const _0x3bcd07=join(_0x2b3a90,_0x16ac0b);existsSync(_0x3bcd07)&&(await _0x58b349[_0x3e3f90(0xf1)](rm,_0x3bcd07,{'recursive':!![]}),console[_0x3e3f90(0xf8)]('✓\x20Removed\x20project\x20skill:\x20'+_0x16ac0b),_0x1cdc63=!![]);}const _0x588c9f=getUserSkillsDir();for(const _0xbf73e1 of _0x33be68){const _0x52c8d2=_0x58b349['piPfn'](join,_0x588c9f,_0xbf73e1);_0x58b349[_0x3e3f90(0xf6)](existsSync,_0x52c8d2)&&(await _0x58b349['ZKhXm'](rm,_0x52c8d2,{'recursive':!![]}),console[_0x3e3f90(0xf8)](_0x3e3f90(0xf7)+_0xbf73e1),_0x1cdc63=!![]);}try{const _0x48bf55=await _0x58b349[_0x3e3f90(0xfd)](loadClaudeSettings);_0x48bf55[_0x3e3f90(0xed)]?.['ranger']&&(delete _0x48bf55['mcpServers']['ranger'],await _0x58b349[_0x3e3f90(0xf6)](saveClaudeSettings,_0x48bf55),console['log']('✓\x20Removed\x20Ranger\x20from\x20'+getSettingsPath()),_0x1cdc63=!![]);}catch{}const _0xbdb55a=join(process['cwd'](),_0x58b349['crQVU']);if(_0x58b349['tbZfi'](existsSync,_0xbdb55a))try{const _0x45a182=await _0x58b349[_0x3e3f90(0xf2)](readFile,_0xbdb55a,_0x58b349[_0x3e3f90(0xe9)]),_0x16afd7=JSON['parse'](_0x45a182);let _0x348658=![];_0x16afd7['mcpServers']?.[_0x3e3f90(0xe6)]&&(delete _0x16afd7[_0x3e3f90(0xed)]['ranger'],_0x348658=!![]);_0x16afd7['mcpServers']?.[_0x3e3f90(0xfa)]&&(delete _0x16afd7[_0x3e3f90(0xed)][_0x58b349['OBZrs']],_0x348658=!![]);if(Object['keys'](_0x16afd7['mcpServers']||{})['length']===0x0&&Object[_0x3e3f90(0xff)](_0x16afd7)['length']===0x1)await rm(_0xbdb55a),console['log']('✓\x20Removed\x20.mcp.json\x20(was\x20empty)');else _0x348658&&(await _0x58b349['VohUM'](writeFile,_0xbdb55a,JSON[_0x3e3f90(0xfb)](_0x16afd7,null,0x2)),console[_0x3e3f90(0xf8)](_0x58b349[_0x3e3f90(0xee)]));_0x1cdc63=!![];}catch{await _0x58b349[_0x3e3f90(0xea)](rm,_0xbdb55a),console[_0x3e3f90(0xf8)](_0x58b349[_0x3e3f90(0xec)]),_0x1cdc63=!![];}_0x1cdc63?console['log'](_0x3e3f90(0x104)):console['log'](_0x58b349[_0x3e3f90(0xf3)]);}
1
+ function _0x37fd(_0x3abf0d,_0x37872f){_0x3abf0d=_0x3abf0d-0xc6;const _0x117fe1=_0x117f();let _0x37fd01=_0x117fe1[_0x3abf0d];return _0x37fd01;}(function(_0x26307e,_0x18c716){const _0x56ec59=_0x37fd,_0x30c476=_0x26307e();while(!![]){try{const _0x353488=parseInt(_0x56ec59(0xcc))/0x1+parseInt(_0x56ec59(0xe0))/0x2+-parseInt(_0x56ec59(0xd9))/0x3*(-parseInt(_0x56ec59(0xcd))/0x4)+parseInt(_0x56ec59(0xd6))/0x5*(parseInt(_0x56ec59(0xc6))/0x6)+parseInt(_0x56ec59(0xd4))/0x7*(parseInt(_0x56ec59(0xd8))/0x8)+parseInt(_0x56ec59(0xd0))/0x9*(-parseInt(_0x56ec59(0xd3))/0xa)+-parseInt(_0x56ec59(0xcb))/0xb*(parseInt(_0x56ec59(0xd7))/0xc);if(_0x353488===_0x18c716)break;else _0x30c476['push'](_0x30c476['shift']());}catch(_0x43f1c9){_0x30c476['push'](_0x30c476['shift']());}}}(_0x117f,0x94833));import{rm}from'fs/promises';function _0x117f(){const _0x407a57=['3110UlQgRt','3372047jkfHyq','log','10kypIqL','21396zBEJrs','8VHHSDC','114bZBKZs','TNaJp','✓\x20Removed\x20user\x20skill:\x20','bug-bash','LQuOf','e2e-test-recommender','✓\x20Removed\x20project\x20skill:\x20','954794qHzchC','kvVCI','2539578VZFyde','\x0a✅\x20Cleanup\x20complete!\x0a','ranger','bmyVY','ESKHL','8129NTbcvW','208243rMuowP','51928pbTShP','XsMib','cegLP','16821SQSqil','✓\x20Removed\x20.ranger/\x20directory','\x0a🧹\x20Cleaning\x20up\x20Ranger\x20artifacts...\x0a'];_0x117f=function(){return _0x407a57;};return _0x117f();}import{join}from'path';import{existsSync}from'fs';import{deleteAllCredentials}from'./utils/keychain.js';import{getProjectSkillsDir,getUserSkillsDir}from'./utils/claudeConfig.js';import{getRangerDir}from'./utils/rangerRoot.js';import{getCacheFile}from'./utils/sessionCache.js';export async function clean(){const _0xcc25fd=_0x37fd,_0x3aafd1={'JBygq':_0xcc25fd(0xd2),'kvVCI':function(_0x182e9d,_0x328a75){return _0x182e9d(_0x328a75);},'cegLP':function(_0x104061){return _0x104061();},'IKIvB':function(_0x317fd5,_0x18cf55,_0x20a92b){return _0x317fd5(_0x18cf55,_0x20a92b);},'bmyVY':_0xcc25fd(0xd1),'ESKHL':'feature-tracker','TNaJp':function(_0xa7ae31,_0x233a65,_0x2ff448){return _0xa7ae31(_0x233a65,_0x2ff448);},'XsMib':function(_0x591aa4,_0x2d78f6){return _0x591aa4(_0x2d78f6);},'Aaysq':function(_0x493df2,_0xac6c04,_0x2a623e){return _0x493df2(_0xac6c04,_0x2a623e);},'LQuOf':_0xcc25fd(0xc7)};console['log'](_0x3aafd1['JBygq']);let _0x1fd6aa=![];try{await deleteAllCredentials(),console['log']('✓\x20Removed\x20credentials\x20from\x20OS\x20Keychain'),_0x1fd6aa=!![];}catch{}const _0x2b6c42=getCacheFile();existsSync(_0x2b6c42)&&(await _0x3aafd1[_0xcc25fd(0xe1)](rm,_0x2b6c42),_0x1fd6aa=!![]);const _0x486a67=_0x3aafd1['cegLP'](getRangerDir);existsSync(_0x486a67)&&(await _0x3aafd1['IKIvB'](rm,_0x486a67,{'recursive':!![]}),console['log'](_0x3aafd1[_0xcc25fd(0xc9)]),_0x1fd6aa=!![]);const _0x53fc06=[_0xcc25fd(0xc8),_0x3aafd1[_0xcc25fd(0xca)],_0xcc25fd(0xdc),_0xcc25fd(0xde)],_0x5ec0f1=_0x3aafd1[_0xcc25fd(0xcf)](getProjectSkillsDir);for(const _0x125499 of _0x53fc06){const _0x54ad97=_0x3aafd1[_0xcc25fd(0xda)](join,_0x5ec0f1,_0x125499);_0x3aafd1[_0xcc25fd(0xce)](existsSync,_0x54ad97)&&(await rm(_0x54ad97,{'recursive':!![]}),console['log'](_0xcc25fd(0xdf)+_0x125499),_0x1fd6aa=!![]);}const _0x48ff39=getUserSkillsDir();for(const _0x59ed39 of _0x53fc06){const _0x136ce1=_0x3aafd1['IKIvB'](join,_0x48ff39,_0x59ed39);existsSync(_0x136ce1)&&(await _0x3aafd1['Aaysq'](rm,_0x136ce1,{'recursive':!![]}),console[_0xcc25fd(0xd5)](_0xcc25fd(0xdb)+_0x59ed39),_0x1fd6aa=!![]);}_0x1fd6aa?console[_0xcc25fd(0xd5)](_0x3aafd1[_0xcc25fd(0xdd)]):console['log']('Nothing\x20to\x20clean\x20up.\x0a');}
@@ -1 +1 @@
1
- {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/commands/clean.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,KAAK;IACvB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,sCAAsC;IACtC,IAAI,CAAC;QACD,MAAM,oBAAoB,EAAE,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;QACtD,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACL,yCAAyC;IAC7C,CAAC;IAED,2BAA2B;IAC3B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC;QACpB,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,4BAA4B;IAC5B,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,0DAA0D;IAC1D,MAAM,cAAc,GAAG;QACnB,QAAQ;QACR,iBAAiB;QACjB,UAAU;QACV,sBAAsB;KACzB,CAAC;IACF,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAC/C,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAC/C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,EAAE,CAAC,CAAC;YACjD,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;IACL,CAAC;IAED,wDAAwD;IACxD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACvB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;YAC9C,OAAO,GAAG,IAAI,CAAC;QACnB,CAAC;IACL,CAAC;IAED,IAAI,OAAO,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC1C,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- (function(_0x581435,_0x1e751d){const _0x17a560=_0x47b2,_0x3af2b3=_0x581435();while(!![]){try{const _0x5174fa=parseInt(_0x17a560(0x1df))/0x1*(parseInt(_0x17a560(0x1f7))/0x2)+parseInt(_0x17a560(0x1d4))/0x3+parseInt(_0x17a560(0x1c3))/0x4*(parseInt(_0x17a560(0x1b9))/0x5)+-parseInt(_0x17a560(0x1a8))/0x6*(-parseInt(_0x17a560(0x1e8))/0x7)+parseInt(_0x17a560(0x1ae))/0x8+parseInt(_0x17a560(0x1e5))/0x9*(-parseInt(_0x17a560(0x1c4))/0xa)+parseInt(_0x17a560(0x1af))/0xb*(-parseInt(_0x17a560(0x1ad))/0xc);if(_0x5174fa===_0x1e751d)break;else _0x3af2b3['push'](_0x3af2b3['shift']());}catch(_0x34566d){_0x3af2b3['push'](_0x3af2b3['shift']());}}}(_0x58d7,0xa79da));const _0x36d2de=(function(){const _0x13fd38={'eyMRB':function(_0x5dfb1d,_0x459b72,_0x4ab5ab,_0x5b7fd8){return _0x5dfb1d(_0x459b72,_0x4ab5ab,_0x5b7fd8);},'MikKx':'owdGV'};let _0x4105c5=!![];return function(_0x9dea0a,_0x398653){const _0x1bc2e5=_0x47b2,_0x4e0d62={'ACLNw':function(_0x4852fc,_0x629836,_0x1ae39a,_0x39951b){const _0x105606=_0x47b2;return _0x13fd38[_0x105606(0x1f4)](_0x4852fc,_0x629836,_0x1ae39a,_0x39951b);},'YZzWP':function(_0x55364e,_0x480596){return _0x55364e!==_0x480596;},'ZUbCR':_0x13fd38[_0x1bc2e5(0x1c9)]},_0x259288=_0x4105c5?function(){const _0x50e8f6=_0x1bc2e5,_0x47263f={'SlUOv':function(_0x59ff35,_0x45f5dd,_0x573a17,_0x3e5e24){return _0x4e0d62['ACLNw'](_0x59ff35,_0x45f5dd,_0x573a17,_0x3e5e24);},'MXTvM':_0x50e8f6(0x1c7)};if(_0x398653){if(_0x4e0d62[_0x50e8f6(0x1b5)](_0x4e0d62[_0x50e8f6(0x1a6)],_0x50e8f6(0x1cc)))_0x47263f[_0x50e8f6(0x1bd)](_0x39df5e,_0x10eb49['id']??null,_0x5a675a[_0x50e8f6(0x1ac)],_0x47263f['MXTvM']);else{const _0x43315d=_0x398653['apply'](_0x9dea0a,arguments);return _0x398653=null,_0x43315d;}}}:function(){};return _0x4105c5=![],_0x259288;};}()),_0x391425=_0x36d2de(this,function(){const _0x1641dc=_0x47b2,_0x754217={'fSzJu':_0x1641dc(0x1ec)};return _0x391425['toString']()[_0x1641dc(0x1b8)](_0x1641dc(0x1ec))['toString']()[_0x1641dc(0x1c0)](_0x391425)['search'](_0x754217['fSzJu']);});function _0x58d7(){const _0x28b3e2=['ngTVq25Jwa','mJy3nZC1mePzq3PeDq','zKrUEwO','BLjiu0u','uMfUz2vYihnLCNzLCIb1BMf2ywLSywjSzs4GugXLyxnLihrYEsbHz2fPBIbSyxrLCI4','ue9tva','twLRs3G','EfbgteC','Bg9N','B3DKr1y','C3rKB3v0','z2v0uMvHzgvY','AfLcBhG','C2XPy2u','C3rYAw5NAwz5','D0rIB2u','mI4W','mtCYmJC1oxLnCfjwyG','CgfYC2u','Duzwq3O','su5urvjoquXFrvjst1i','D1fPzNO','uNHfz3O','sfruucbLCNjVCJOG','C3rKAw4','zxHPDa','tK9Fve9lru4','rg15DeK','mti2mda1nhzUqKXyCa','t25XCwi','CuTNzKy','vg5qDhe','C3rHDhvZvgv4Da','wfDqwwS','ndv6z1LREha','D2zhuey','t2zLtuq','ntzvufnVz0u','yxbWBgLJyxrPB24VANnVBIWGDgv4Dc9LDMvUDc1ZDhjLyw0','AgvHzgvYCW','wwzUwM8','kcGOlISPkYKRksSK','rwD3vMu','z3LjDhu','r2v0ihLVDxiGDg9Rzw4GyxqGAhr0Chm6lY9KyxnOyM9HCMqUCMfUz2vYlM5LDc9JBgK','sgDiEgG','C3bSAxq','Dgv4Dc9LDMvUDc1ZDhjLyw0','v0Ltrvu','zxLnuKi','uwXJDNy','uLrUrhK','mLHct3f3tW','sw52ywXPzcbVCIbLEhbPCMvKiefqssb0B2TLBI4GuNvUigbYyw5NzxiGC3rHCNqGpg5LDY10B2TLBJ5GihrVihjLlwf1DgHLBNrPy2f0zs4','DhjPBq','yxbWBgLJyxrPB24VANnVBG','l21JCa','y2XVC2u','C3rHDhvZ','tfjoqvK','wLvIq1i','qNjzEKy','mJC3mJa2r2HpvMDI','CMvHza','B2TTuNi','y3jLyxrLsw50zxjMywnL','u0vsvKvsx1voqvzbsuXbqKXf','mtmXoti5mM51rvjWBq','nJi1mdiWmezyteTHCa','mtiXwfryquT4','zgf0ytOG','yxbWBhK','BwvZC2fNzq','BeLVA0y','C3rHCNrZv2L0Aa','wvP6v1a','ANnVBG','Aw5JBhvKzxm','C2vHCMnO','mti0nZK1mhnNvxnvCW','CuLgB2G','DerOrg4','Cg5nB2O','u2Xvt3y','BgLUzq','qMvHCMvYia','y29UC3rYDwn0B3i','su5wquXjrf9ut0TftG','qundrvntx0rftKLfra'];_0x58d7=function(){return _0x28b3e2;};return _0x58d7();}_0x391425();import*as _0x157a6f from'readline';import{getToken}from'./utils/keychain.js';import{getMcpServerUrl}from'./utils/environment.js';const ERROR_CODES={'NO_TOKEN':-0x7d01,'INVALID_TOKEN':-0x7d02,'ACCESS_DENIED':-0x7d03,'SERVER_UNAVAILABLE':-0x7d04,'INTERNAL_ERROR':-0x7f5b};function _0x47b2(_0x4d14cf,_0xde8931){_0x4d14cf=_0x4d14cf-0x1a0;const _0x113afd=_0x58d7();let _0x391425=_0x113afd[_0x4d14cf];if(_0x47b2['MtGdsa']===undefined){var _0x36d2de=function(_0x5bb1e6){const _0x2c6694='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x63a57a='',_0x1859ef='',_0x5d6cf3=_0x63a57a+_0x36d2de;for(let _0x23e4e9=0x0,_0x3d5dd0,_0x58f0b1,_0x475114=0x0;_0x58f0b1=_0x5bb1e6['charAt'](_0x475114++);~_0x58f0b1&&(_0x3d5dd0=_0x23e4e9%0x4?_0x3d5dd0*0x40+_0x58f0b1:_0x58f0b1,_0x23e4e9++%0x4)?_0x63a57a+=_0x5d6cf3['charCodeAt'](_0x475114+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0x3d5dd0>>(-0x2*_0x23e4e9&0x6)):_0x23e4e9:0x0){_0x58f0b1=_0x2c6694['indexOf'](_0x58f0b1);}for(let _0x1340bc=0x0,_0x3a4c22=_0x63a57a['length'];_0x1340bc<_0x3a4c22;_0x1340bc++){_0x1859ef+='%'+('00'+_0x63a57a['charCodeAt'](_0x1340bc)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1859ef);};_0x47b2['FqUftt']=_0x36d2de,_0x47b2['aAIxrk']={},_0x47b2['MtGdsa']=!![];}const _0x58d7d7=_0x113afd[0x0],_0x47b242=_0x4d14cf+_0x58d7d7,_0x3a32dd=_0x47b2['aAIxrk'][_0x47b242];if(!_0x3a32dd){const _0x104fd9=function(_0x576422){this['VULlld']=_0x576422,this['xGThos']=[0x1,0x0,0x0],this['VBfknJ']=function(){return'newState';},this['iOYCpX']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['zEmUPh']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x104fd9['prototype']['BVXxFF']=function(){const _0x5b969a=new RegExp(this['iOYCpX']+this['zEmUPh']),_0x3e1703=_0x5b969a['test'](this['VBfknJ']['toString']())?--this['xGThos'][0x1]:--this['xGThos'][0x0];return this['TExCzB'](_0x3e1703);},_0x104fd9['prototype']['TExCzB']=function(_0x465abe){if(!Boolean(~_0x465abe))return _0x465abe;return this['KjzZju'](this['VULlld']);},_0x104fd9['prototype']['KjzZju']=function(_0x2a5d3c){for(let _0x81937d=0x0,_0x386bf5=this['xGThos']['length'];_0x81937d<_0x386bf5;_0x81937d++){this['xGThos']['push'](Math['round'](Math['random']())),_0x386bf5=this['xGThos']['length'];}return _0x2a5d3c(this['xGThos'][0x0]);},new _0x104fd9(_0x47b2)['BVXxFF'](),_0x391425=_0x47b2['FqUftt'](_0x391425),_0x47b2['aAIxrk'][_0x47b242]=_0x391425;}else _0x391425=_0x3a32dd;return _0x391425;}function jsonRpcError(_0x2fd68f,_0x3af337,_0x3edf3b){const _0xce3cb5=_0x47b2;console[_0xce3cb5(0x1cb)](JSON['stringify']({'jsonrpc':_0xce3cb5(0x1d3),'id':_0x2fd68f,'error':{'code':_0x3af337,'message':_0x3edf3b}}));}export async function dataMcpServer(){const _0x276fed=_0x47b2,_0xa85a6f={'pnMoj':function(_0x3acb01,_0x169eac,_0x5d1590,_0x58a664){return _0x3acb01(_0x169eac,_0x5d1590,_0x58a664);},'XWPYk':'Invalid\x20or\x20expired\x20API\x20token.\x20Run\x20`ranger\x20start\x20<new-token>`\x20to\x20re-authenticate.','gyItu':_0x276fed(0x1d3),'qKgfF':function(_0x55472b,_0x2169a5,_0x2ab253,_0x22fb96){return _0x55472b(_0x2169a5,_0x2ab253,_0x22fb96);},'LRNAY':'Unknown\x20error','TnPtq':function(_0x4e668d,_0x6ad431){return _0x4e668d!==_0x6ad431;},'nRHSE':'BzqFV','wQifz':function(_0xb50cd9,_0x3bf74d,_0x5cd56a){return _0xb50cd9(_0x3bf74d,_0x5cd56a);},'lIokF':_0x276fed(0x1a1),'zGnYq':_0x276fed(0x1e9),'tDhDn':function(_0x4f0db6,_0x388b1d){return _0x4f0db6===_0x388b1d;},'fDnyj':function(_0x1053e5,_0x49252a){return _0x1053e5===_0x49252a;},'Qlcvv':_0x276fed(0x1e0),'wfGPF':_0x276fed(0x1ca),'gdjFZ':function(_0x5b741d,_0x3d4860,_0xa41d43,_0x59a602){return _0x5b741d(_0x3d4860,_0xa41d43,_0x59a602);},'OfeMD':function(_0x16c16b,_0x25cd89){return _0x16c16b===_0x25cd89;},'qIFoh':_0x276fed(0x1c7),'uFVCz':_0x276fed(0x1f0),'RTnDy':'content-type','DmytI':_0x276fed(0x1f2),'rpeHX':_0x276fed(0x1b0),'BrYzF':_0x276fed(0x1f3),'okmRr':function(_0x4316e5){return _0x4316e5();},'MYAFL':function(_0xee92a4,_0x205717){return _0xee92a4+_0x205717;},'YfnZo':_0x276fed(0x1ef),'hBjnv':function(_0x5378c1){return _0x5378c1();},'hYBlx':_0x276fed(0x1a3)},_0x5b53db=await _0xa85a6f[_0x276fed(0x1aa)](getToken);!_0x5b53db&&(_0xa85a6f[_0x276fed(0x1e1)](jsonRpcError,null,ERROR_CODES[_0x276fed(0x1dd)],_0xa85a6f['MYAFL']('Ranger\x20not\x20configured.\x20Run\x20`ranger\x20start\x20<token>`\x20in\x20a\x20terminal.\x20',_0xa85a6f[_0x276fed(0x1eb)])),process[_0x276fed(0x1dc)](0x1));const _0x5492c5=_0xa85a6f['hBjnv'](getMcpServerUrl),_0x5178f6=_0x5492c5+_0x276fed(0x1a2),_0x308617=_0x157a6f[_0x276fed(0x1ab)]({'input':process[_0x276fed(0x1db)],'output':process[_0x276fed(0x1cd)],'terminal':![]});_0x308617['on'](_0x276fed(0x1be),async _0x520306=>{const _0x2ad09d=_0x276fed,_0x4eb201={'EgwVe':function(_0x68c5e3,_0x180a0a,_0x327487,_0x4354de){const _0x5c5b1a=_0x47b2;return _0xa85a6f[_0x5c5b1a(0x1e1)](_0x68c5e3,_0x180a0a,_0x327487,_0x4354de);},'HYXON':function(_0x2f5a0f,_0x94c219){return _0x2f5a0f instanceof _0x94c219;},'RxEgz':_0xa85a6f[_0x2ad09d(0x1a5)]};if(!_0x520306[_0x2ad09d(0x1a0)]())return;try{if(_0xa85a6f[_0x2ad09d(0x1e2)](_0xa85a6f[_0x2ad09d(0x1c6)],_0xa85a6f[_0x2ad09d(0x1c6)]))_0xa85a6f[_0x2ad09d(0x1bc)](_0x5c0e38,_0x132121['id']??null,_0x31acff[_0x2ad09d(0x1c1)],_0xa85a6f[_0x2ad09d(0x1e4)]);else{const _0x1bdd69=JSON[_0x2ad09d(0x1d5)](_0x520306),_0x41c734=await _0xa85a6f[_0x2ad09d(0x1d8)](fetch,_0x5178f6,{'method':_0x2ad09d(0x1c8),'headers':{'Content-Type':_0xa85a6f[_0x2ad09d(0x1b3)],'Accept':_0xa85a6f['zGnYq'],'Authorization':_0x2ad09d(0x1bf)+_0x5b53db},'body':JSON['stringify'](_0x1bdd69)});if(!_0x41c734['ok']){if(_0xa85a6f[_0x2ad09d(0x1bb)](_0x41c734[_0x2ad09d(0x1a4)],0x191))_0xa85a6f[_0x2ad09d(0x1c5)](_0xa85a6f[_0x2ad09d(0x1f5)],_0xa85a6f[_0x2ad09d(0x1e6)])?_0x4eb201[_0x2ad09d(0x1ed)](_0x5d2b54,null,_0x56d472[_0x2ad09d(0x1d7)],_0x4eb201['HYXON'](_0x3c4450,_0x1d6b56)?_0x21250f[_0x2ad09d(0x1b2)]:_0x4eb201[_0x2ad09d(0x1d9)]):_0xa85a6f['gdjFZ'](jsonRpcError,_0x1bdd69['id']??null,ERROR_CODES[_0x2ad09d(0x1c1)],_0x2ad09d(0x1f8));else{if(_0xa85a6f[_0x2ad09d(0x1e7)](_0x41c734['status'],0x193))_0xa85a6f[_0x2ad09d(0x1bc)](jsonRpcError,_0x1bdd69['id']??null,ERROR_CODES[_0x2ad09d(0x1c2)],'Access\x20denied.\x20Your\x20token\x20may\x20not\x20have\x20MCP\x20permissions.');else _0x41c734[_0x2ad09d(0x1a4)]>=0x1f4?_0xa85a6f['qKgfF'](jsonRpcError,_0x1bdd69['id']??null,ERROR_CODES[_0x2ad09d(0x1ac)],_0xa85a6f[_0x2ad09d(0x1ba)]):_0xa85a6f[_0x2ad09d(0x1e2)](_0x2ad09d(0x1d2),_0xa85a6f[_0x2ad09d(0x1d6)])?jsonRpcError(_0x1bdd69['id']??null,ERROR_CODES['INTERNAL_ERROR'],_0x2ad09d(0x1da)+_0x41c734['status']+'\x20'+_0x41c734[_0x2ad09d(0x1e3)]):_0x81901b[_0x2ad09d(0x1cb)](_0xf96bff[_0x2ad09d(0x1d1)]({'jsonrpc':_0xa85a6f[_0x2ad09d(0x1ee)],'id':_0x20a803,'error':{'code':_0x1f72ea,'message':_0x403789}}));}return;}const _0x44275b=_0x41c734[_0x2ad09d(0x1ea)]['get'](_0xa85a6f[_0x2ad09d(0x1f6)])||'';if(_0x44275b[_0x2ad09d(0x1b7)](_0xa85a6f[_0x2ad09d(0x1de)])){const _0x358e98=_0x41c734['body']?.[_0x2ad09d(0x1ce)]();if(!_0x358e98)return;const _0x1f9c5f=new TextDecoder();let _0x283404='';while(!![]){const {done:_0x2ffb77,value:_0x447bea}=await _0x358e98[_0x2ad09d(0x1a9)]();if(_0x2ffb77)break;_0x283404+=_0x1f9c5f['decode'](_0x447bea,{'stream':!![]});const _0xaf1f46=_0x283404[_0x2ad09d(0x1f1)]('\x0a\x0a');_0x283404=_0xaf1f46['pop']()||'';for(const _0x457d6b of _0xaf1f46){if(!_0x457d6b[_0x2ad09d(0x1a0)]())continue;const _0x15c25b=_0x457d6b[_0x2ad09d(0x1f1)]('\x0a');for(const _0x2f0369 of _0x15c25b){if(_0x2f0369[_0x2ad09d(0x1b4)](_0xa85a6f['rpeHX'])){if(_0xa85a6f['OfeMD'](_0x2ad09d(0x1f3),_0xa85a6f[_0x2ad09d(0x1a7)])){const _0x34f332=_0x2f0369[_0x2ad09d(0x1d0)](0x6);_0x34f332[_0x2ad09d(0x1a0)]()&&console[_0x2ad09d(0x1cb)](_0x34f332);}else{const _0x155401=_0x104fd9?function(){const _0x5f1d0c=_0x2ad09d;if(_0x81937d){const _0xb82fa6=_0x1d33dd[_0x5f1d0c(0x1b1)](_0x17d176,arguments);return _0x50b132=null,_0xb82fa6;}}:function(){};return _0x2a5d3c=![],_0x155401;}}}}}}else{const _0x419d7b=await _0x41c734[_0x2ad09d(0x1b6)]();console[_0x2ad09d(0x1cb)](JSON['stringify'](_0x419d7b));}}}catch(_0x56c089){_0xa85a6f[_0x2ad09d(0x1e1)](jsonRpcError,null,ERROR_CODES[_0x2ad09d(0x1d7)],_0x56c089 instanceof Error?_0x56c089[_0x2ad09d(0x1b2)]:'Unknown\x20error');}}),_0x308617['on'](_0xa85a6f[_0x276fed(0x1cf)],()=>{const _0x394343=_0x276fed;process[_0x394343(0x1dc)](0x0);});}
1
+ (function(_0x530b8b,_0x1ba649){const _0x51e88c=_0x3033,_0x4c7281=_0x530b8b();while(!![]){try{const _0x525700=parseInt(_0x51e88c(0x135))/0x1+-parseInt(_0x51e88c(0x123))/0x2*(-parseInt(_0x51e88c(0x11f))/0x3)+-parseInt(_0x51e88c(0x148))/0x4*(parseInt(_0x51e88c(0x131))/0x5)+parseInt(_0x51e88c(0x155))/0x6+parseInt(_0x51e88c(0x134))/0x7*(parseInt(_0x51e88c(0x16d))/0x8)+parseInt(_0x51e88c(0x12d))/0x9*(-parseInt(_0x51e88c(0x114))/0xa)+-parseInt(_0x51e88c(0x165))/0xb;if(_0x525700===_0x1ba649)break;else _0x4c7281['push'](_0x4c7281['shift']());}catch(_0x53cecf){_0x4c7281['push'](_0x4c7281['shift']());}}}(_0x4d71,0x18f8d));const _0x5d2142=(function(){const _0x3037ae=_0x3033,_0x337312={'AsXaL':'data:\x20','NVJLP':function(_0x11721f,_0x542b8a){return _0x11721f instanceof _0x542b8a;},'mvsuD':function(_0x519181,_0x68e666){return _0x519181!==_0x68e666;},'gvOfE':function(_0x4b0933,_0x5efee2){return _0x4b0933===_0x5efee2;},'mbLqd':_0x3037ae(0x162),'dIpXo':_0x3037ae(0x133)};let _0x464c53=!![];return function(_0x29a38e,_0x45df01){const _0x56ec04=_0x3037ae,_0x525653={'qwTYi':_0x337312['AsXaL'],'ZlrjB':function(_0x3c1e23,_0x4e6240,_0x2c2313,_0x38fa70){return _0x3c1e23(_0x4e6240,_0x2c2313,_0x38fa70);},'gmWKp':function(_0xf3b39b,_0x282ba8){return _0x337312['NVJLP'](_0xf3b39b,_0x282ba8);},'jxztC':function(_0x51a2db,_0x370a9a){const _0x553443=_0x3033;return _0x337312[_0x553443(0x153)](_0x51a2db,_0x370a9a);},'sybwH':'xYZuJ'};if(_0x337312[_0x56ec04(0x16b)](_0x337312[_0x56ec04(0x145)],_0x337312[_0x56ec04(0x13b)])){if(_0x562fd1[_0x56ec04(0x12b)](_0x525653[_0x56ec04(0x11e)])){const _0x4e44b7=_0x102543[_0x56ec04(0x13f)](0x6);_0x4e44b7['trim']()&&_0x35f949[_0x56ec04(0x161)](_0x4e44b7);}}else{const _0x1d18ef=_0x464c53?function(){const _0x14d76f=_0x56ec04;if(_0x45df01){if(_0x525653[_0x14d76f(0x14b)](_0x525653[_0x14d76f(0x120)],_0x525653[_0x14d76f(0x120)]))_0x525653[_0x14d76f(0x15f)](_0x5e3ae3,null,_0x467e4e['INTERNAL_ERROR'],_0x525653[_0x14d76f(0x14d)](_0x27bf58,_0x2bc2c4)?_0x1be2ae[_0x14d76f(0x13a)]:_0x14d76f(0x141));else{const _0x1d96f2=_0x45df01['apply'](_0x29a38e,arguments);return _0x45df01=null,_0x1d96f2;}}}:function(){};return _0x464c53=![],_0x1d18ef;}};}()),_0x4999d1=_0x5d2142(this,function(){const _0x5e914f=_0x3033,_0x3a2527={'YABIj':_0x5e914f(0x138)};return _0x4999d1[_0x5e914f(0x11a)]()[_0x5e914f(0x152)](_0x5e914f(0x138))[_0x5e914f(0x11a)]()[_0x5e914f(0x15c)](_0x4999d1)[_0x5e914f(0x152)](_0x3a2527['YABIj']);});_0x4999d1();import*as _0x2206fe from'readline';function _0x3033(_0x189a8c,_0x2bdae2){_0x189a8c=_0x189a8c-0x110;const _0xa4577=_0x4d71();let _0x4999d1=_0xa4577[_0x189a8c];if(_0x3033['DvMHox']===undefined){var _0x5d2142=function(_0x32e0cb){const _0x57bbd='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x1cef1e='',_0x9bcd33='',_0x27dd14=_0x1cef1e+_0x5d2142;for(let _0x42ea39=0x0,_0xec07df,_0x3ca643,_0x1f2467=0x0;_0x3ca643=_0x32e0cb['charAt'](_0x1f2467++);~_0x3ca643&&(_0xec07df=_0x42ea39%0x4?_0xec07df*0x40+_0x3ca643:_0x3ca643,_0x42ea39++%0x4)?_0x1cef1e+=_0x27dd14['charCodeAt'](_0x1f2467+0xa)-0xa!==0x0?String['fromCharCode'](0xff&_0xec07df>>(-0x2*_0x42ea39&0x6)):_0x42ea39:0x0){_0x3ca643=_0x57bbd['indexOf'](_0x3ca643);}for(let _0x2dd2e7=0x0,_0x382db9=_0x1cef1e['length'];_0x2dd2e7<_0x382db9;_0x2dd2e7++){_0x9bcd33+='%'+('00'+_0x1cef1e['charCodeAt'](_0x2dd2e7)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x9bcd33);};_0x3033['vVxhvj']=_0x5d2142,_0x3033['nSDQuE']={},_0x3033['DvMHox']=!![];}const _0x4d715d=_0xa4577[0x0],_0x3033bd=_0x189a8c+_0x4d715d,_0x4a7f16=_0x3033['nSDQuE'][_0x3033bd];if(!_0x4a7f16){const _0x4942b1=function(_0xa47097){this['fqYvDw']=_0xa47097,this['BLugQg']=[0x1,0x0,0x0],this['XaujZS']=function(){return'newState';},this['sYsLVq']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['pOmeRH']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x4942b1['prototype']['NboSYT']=function(){const _0x3522f4=new RegExp(this['sYsLVq']+this['pOmeRH']),_0x2aa872=_0x3522f4['test'](this['XaujZS']['toString']())?--this['BLugQg'][0x1]:--this['BLugQg'][0x0];return this['DYhsOc'](_0x2aa872);},_0x4942b1['prototype']['DYhsOc']=function(_0x30a7de){if(!Boolean(~_0x30a7de))return _0x30a7de;return this['RAlfwe'](this['fqYvDw']);},_0x4942b1['prototype']['RAlfwe']=function(_0x2f1423){for(let _0x1f46f8=0x0,_0x383bf8=this['BLugQg']['length'];_0x1f46f8<_0x383bf8;_0x1f46f8++){this['BLugQg']['push'](Math['round'](Math['random']())),_0x383bf8=this['BLugQg']['length'];}return _0x2f1423(this['BLugQg'][0x0]);},new _0x4942b1(_0x3033)['NboSYT'](),_0x4999d1=_0x3033['vVxhvj'](_0x4999d1),_0x3033['nSDQuE'][_0x3033bd]=_0x4999d1;}else _0x4999d1=_0x4a7f16;return _0x4999d1;}import{getToken}from'./utils/keychain.js';import{getMcpServerUrl}from'./utils/environment.js';const ERROR_CODES={'NO_TOKEN':-0x7d01,'INVALID_TOKEN':-0x7d02,'ACCESS_DENIED':-0x7d03,'SERVER_UNAVAILABLE':-0x7d04,'INTERNAL_ERROR':-0x7f5b};function jsonRpcError(_0x373f8e,_0x2f2709,_0x5d3c1d){const _0x502825=_0x3033,_0xf4df69={'SkUup':'2.0'};console['log'](JSON[_0x502825(0x115)]({'jsonrpc':_0xf4df69[_0x502825(0x15e)],'id':_0x373f8e,'error':{'code':_0x2f2709,'message':_0x5d3c1d}}));}function _0x4d71(){const _0x5353fe=['wKvutuK','A2rnDee','mZq2nty4vwzeq3rk','DhjPBq','qundrvntx0rftKLfra','ANH6Dem','sg9UzhK','z21xs3a','rfzzCxO','BfvTqwm','yuHLD0e','ANnVBG','C2vHCMnO','BxzZDuq','tK90sui','mta4ntqZnNzzwufNCG','AwHSDee','yxbWBgLJyxrPB24VANnVBG','rxztCMS','sw52ywXPzcbVCIbLEhbPCMvKiefqssb0B2TLBI4GuNvUigbYyw5NzxiGC3rHCNqGpg5LDY10B2TLBJ5GihrVihjLlwf1DgHLBNrPy2f0zs4','v1Dvzuq','AK92ufG','y29UC3rYDwn0B3i','Cu9tv3u','u2TvDxa','wMXYAKi','rvnICMq','Bg9N','rfjHr2q','y3jLyxrLsw50zxjMywnL','Cg9W','nteXntiYt1zNALHf','uMfUz2vYihnLCNzLCIb1BMf2ywLSywjSzs4GugXLyxnLihrYEsbHz2fPBIbSyxrLCI4','Aw5JBhvKzxm','C3bSAxq','r2v0ihLVDxiGDg9Rzw4GyxqGAhr0Chm6lY9KyxnOyM9HCMqUCMfUz2vYlM5LDc9JBgK','BgLUzq','z3zpzKu','Du5irfa','mJu2mJe2zgTQAuHk','EvzZBuW','EvfrtKu','zxHPDa','l21JCa','qwnJzxnZigrLBMLLzc4Gww91CIb0B2TLBIbTyxKGBM90igHHDMuGtunqihbLCM1PC3nPB25ZlG','mtmWtKXHCeji','C3rYAw5NAwz5','EvnUv3O','C3rKAw4','wNDZyMK','CMvHza','Dg9tDhjPBMC','CMPnvhi','sfruucbLCNjVCJOG','uhr4A0e','CxDuwwK','m21UAenOyW','C3LID0G','s2HRs20','A0rizhy','mtK5nZK2uMHMtuvN','zwv3rMi','yxbWBhK','DfH5svq','C3rHDhvZvgv4Da','zgvJB2rL','u3rICLy','uMfUz2vYig5VDcbJB25MAwD1CMvKlIbsDw4GyhjHBMDLCIbZDgfYDca8Dg9Rzw4+ycbPBIbHihrLCM1PBMfSlIa','C3rHCNrZv2L0Aa','q21UyNu','mJq4nJDzywfTDLy','BLnqB00','AwfdsfO','y2XVC2u','mtbPAfDevxy','C3rHDhvZ','rerQz1u','n0nxwhPWyq','nduXntLnsg1UBeS','EM5twgK','z2v0uMvHzgvY','kcGOlISPkYKRksSK','su5wquXjrf9ut0TftG','BwvZC2fNzq','zeLWwg8','ENfmAvy','qvbZqNC','su5urvjoquXFrvjst1i','C2XPy2u','t0HMshK','vw5RBM93BIbLCNjVCG','DLzus3q','qMvHCMvYia','Dgv4Dc9LDMvUDc1ZDhjLyw0','BwjmCwq'];_0x4d71=function(){return _0x5353fe;};return _0x4d71();}export async function dataMcpServer(){const _0xfbdab6=_0x3033,_0x209ff6={'Zwsbi':_0xfbdab6(0x138),'StbrV':_0xfbdab6(0x166),'iaCHZ':function(_0x2a888e,_0x5dd46d,_0x43f4ff,_0x33eb8c){return _0x2a888e(_0x5dd46d,_0x43f4ff,_0x33eb8c);},'kdMtA':function(_0x517241,_0x5c1657,_0x1945c1,_0x5848af){return _0x517241(_0x5c1657,_0x1945c1,_0x5848af);},'lUmAc':'RGwOI','EvSrk':function(_0x1893ce,_0x3b7952){return _0x1893ce===_0x3b7952;},'wrtvM':_0xfbdab6(0x13c),'DVYqz':function(_0x5e6f87,_0x3fcb2e,_0x4e7242){return _0x5e6f87(_0x3fcb2e,_0x4e7242);},'yVsmL':_0xfbdab6(0x157),'eewFb':'application/json,\x20text/event-stream','yrMFt':'jOvPX','Hondy':_0xfbdab6(0x159),'vVTKt':function(_0x99d4bc,_0x2d1256){return _0x99d4bc===_0x2d1256;},'yjCPX':function(_0x154e18,_0x530c7c){return _0x154e18===_0x530c7c;},'WWUeD':_0xfbdab6(0x136),'FtPqO':function(_0x30fd60,_0x57f0e6,_0x5d3f35,_0x22f0b1){return _0x30fd60(_0x57f0e6,_0x5d3f35,_0x22f0b1);},'yQQNE':_0xfbdab6(0x113),'KhkKm':function(_0x4b02b1,_0xf3d60e){return _0x4b02b1>=_0xf3d60e;},'ySnWz':'content-type','DWUSz':function(_0x4fd1e8,_0x1e3c3c){return _0x4fd1e8===_0x1e3c3c;},'rjMTr':_0xfbdab6(0x146),'APsBw':'yNFgg','tXyIT':_0xfbdab6(0x16c),'NOtIB':'data:\x20','PtxkA':function(_0x29160b,_0x473f41){return _0x29160b instanceof _0x473f41;},'KGsni':_0xfbdab6(0x12c),'ESbrd':_0xfbdab6(0x122),'aHewA':function(_0x8e8cc6,_0x49ff4e,_0x3473cc,_0x217b05){return _0x8e8cc6(_0x49ff4e,_0x3473cc,_0x217b05);},'OHfHy':function(_0x50d53f,_0x23b993){return _0x50d53f+_0x23b993;},'uJBWu':_0xfbdab6(0x169),'YuVVS':_0xfbdab6(0x16a),'ihltA':_0xfbdab6(0x130)},_0x1d357b=await getToken();!_0x1d357b&&(_0x209ff6['KGsni']!==_0x209ff6[_0xfbdab6(0x160)]?(_0x209ff6[_0xfbdab6(0x150)](jsonRpcError,null,ERROR_CODES['NO_TOKEN'],_0x209ff6[_0xfbdab6(0x140)](_0xfbdab6(0x12a),_0x209ff6['uJBWu'])),process[_0xfbdab6(0x111)](0x1)):_0x4d12cc(_0x595d7a['id']??null,_0x27a640['INVALID_TOKEN'],_0xfbdab6(0x159)));const _0x6ceaee=getMcpServerUrl(),_0x35a981=_0x6ceaee+_0xfbdab6(0x112),_0x4d2a90=_0x2206fe[_0xfbdab6(0x163)]({'input':process[_0xfbdab6(0x117)],'output':process['stdout'],'terminal':![]});_0x4d2a90['on'](_0x209ff6['YuVVS'],async _0x17be75=>{const _0x47ce17=_0xfbdab6,_0x899d26={'sEcRC':function(_0x26dfd1,_0x45ef20,_0x50dbca,_0x33c562){const _0x58071c=_0x3033;return _0x209ff6[_0x58071c(0x12f)](_0x26dfd1,_0x45ef20,_0x50dbca,_0x33c562);},'qOSWu':function(_0x481fa8,_0x502191,_0x1eb84c,_0x475c16){const _0xb8c653=_0x3033;return _0x209ff6[_0xb8c653(0x147)](_0x481fa8,_0x502191,_0x1eb84c,_0x475c16);}};if(_0x209ff6[_0x47ce17(0x14f)]===_0x209ff6[_0x47ce17(0x14f)]){if(!_0x17be75[_0x47ce17(0x149)]())return;try{if(_0x209ff6[_0x47ce17(0x158)](_0x209ff6['wrtvM'],_0x47ce17(0x12e)))_0x899d26['sEcRC'](_0x292f98,_0x529a5a['id']??null,_0x2504af[_0x47ce17(0x14a)],_0x47ce17(0x113));else{const _0x41c658=JSON['parse'](_0x17be75),_0x23f209=await _0x209ff6[_0x47ce17(0x14e)](fetch,_0x35a981,{'method':'POST','headers':{'Content-Type':_0x209ff6[_0x47ce17(0x16e)],'Accept':_0x209ff6[_0x47ce17(0x124)],'Authorization':_0x47ce17(0x143)+_0x1d357b},'body':JSON['stringify'](_0x41c658)});if(!_0x23f209['ok']){if(_0x47ce17(0x15b)===_0x209ff6['yrMFt']){if(_0x209ff6['EvSrk'](_0x23f209['status'],0x191))jsonRpcError(_0x41c658['id']??null,ERROR_CODES[_0x47ce17(0x139)],_0x209ff6[_0x47ce17(0x14c)]);else{if(_0x209ff6[_0x47ce17(0x142)](_0x23f209[_0x47ce17(0x132)],0x193)){if(_0x209ff6['yjCPX'](_0x209ff6[_0x47ce17(0x15a)],_0x209ff6['WWUeD']))_0x209ff6['FtPqO'](jsonRpcError,_0x41c658['id']??null,ERROR_CODES['ACCESS_DENIED'],_0x209ff6[_0x47ce17(0x110)]);else return _0xc093cd[_0x47ce17(0x11a)]()['search'](LuAVUD[_0x47ce17(0x118)])[_0x47ce17(0x11a)]()['constructor'](_0x4dd2db)[_0x47ce17(0x152)](LuAVUD[_0x47ce17(0x118)]);}else _0x209ff6[_0x47ce17(0x121)](_0x23f209['status'],0x1f4)?jsonRpcError(_0x41c658['id']??null,ERROR_CODES['SERVER_UNAVAILABLE'],_0x209ff6[_0x47ce17(0x129)]):_0x209ff6['iaCHZ'](jsonRpcError,_0x41c658['id']??null,ERROR_CODES[_0x47ce17(0x13e)],'HTTP\x20error:\x20'+_0x23f209[_0x47ce17(0x132)]+'\x20'+_0x23f209[_0x47ce17(0x127)]);}return;}else{const _0x46b8dd=_0x4942b1?function(){const _0x5615a4=_0x47ce17;if(_0x1f46f8){const _0x45808a=_0x85a3c7[_0x5615a4(0x125)](_0xc50bcd,arguments);return _0x297ac3=null,_0x45808a;}}:function(){};return _0x2f1423=![],_0x46b8dd;}}const _0x5abe06=_0x23f209['headers']['get'](_0x209ff6[_0x47ce17(0x116)])||'';if(_0x5abe06[_0x47ce17(0x167)](_0x47ce17(0x144))){if(_0x209ff6['DWUSz'](_0x209ff6[_0x47ce17(0x11b)],_0x209ff6['rjMTr'])){const _0x120f9c=_0x23f209['body']?.[_0x47ce17(0x137)]();if(!_0x120f9c)return;const _0x25970b=new TextDecoder();let _0xa5284='';while(!![]){const {done:_0xccc98d,value:_0x58cada}=await _0x120f9c[_0x47ce17(0x119)]();if(_0xccc98d)break;_0xa5284+=_0x25970b[_0x47ce17(0x128)](_0x58cada,{'stream':!![]});const _0x4ce58c=_0xa5284[_0x47ce17(0x168)]('\x0a\x0a');_0xa5284=_0x4ce58c[_0x47ce17(0x164)]()||'';for(const _0x1f75aa of _0x4ce58c){if(!_0x1f75aa[_0x47ce17(0x149)]())continue;const _0x116ee5=_0x1f75aa[_0x47ce17(0x168)]('\x0a');for(const _0x5dd068 of _0x116ee5){if(_0x209ff6[_0x47ce17(0x142)](_0x209ff6[_0x47ce17(0x13d)],_0x209ff6[_0x47ce17(0x126)])){const _0x7bf60c=_0x4a74c9[_0x47ce17(0x125)](_0x30ba2b,arguments);return _0x157f7b=null,_0x7bf60c;}else{if(_0x5dd068[_0x47ce17(0x12b)](_0x209ff6[_0x47ce17(0x154)])){const _0xbfe0b4=_0x5dd068[_0x47ce17(0x13f)](0x6);_0xbfe0b4[_0x47ce17(0x149)]()&&console[_0x47ce17(0x161)](_0xbfe0b4);}}}}}}else _0x899d26[_0x47ce17(0x15d)](_0x364afe,_0x1644b1['id']??null,_0x11aa0a[_0x47ce17(0x13e)],_0x47ce17(0x11c)+_0x404552['status']+'\x20'+_0x46e5c4['statusText']);}else{const _0x519525=await _0x23f209[_0x47ce17(0x151)]();console[_0x47ce17(0x161)](JSON[_0x47ce17(0x115)](_0x519525));}}}catch(_0x2dc9d7){_0x209ff6[_0x47ce17(0x12f)](jsonRpcError,null,ERROR_CODES[_0x47ce17(0x13e)],_0x209ff6[_0x47ce17(0x11d)](_0x2dc9d7,Error)?_0x2dc9d7[_0x47ce17(0x13a)]:_0x47ce17(0x141));}}else _0xee9d53(_0x3e001d['id']??null,_0x10517a['SERVER_UNAVAILABLE'],_0x209ff6[_0x47ce17(0x129)]);}),_0x4d2a90['on'](_0x209ff6[_0xfbdab6(0x156)],()=>{const _0x181dd8=_0xfbdab6;process[_0x181dd8(0x111)](0x0);});}
@@ -3,8 +3,9 @@ import { join } from 'path';
3
3
  import { existsSync } from 'fs';
4
4
  import { execSync } from 'child_process';
5
5
  import inquirer from 'inquirer';
6
- import { createFeature, listFeatures, getFeature, getFeatureReportMarkdown, listFeatureSessions, startSession, concludeSession, } from './utils/featureApi.js';
6
+ import { createFeature, listFeatures, getFeature, updateFeature, getFeatureReportMarkdown, listFeatureSessions, startSession, concludeSession, createChecklistItem, } from './utils/featureApi.js';
7
7
  import { getRangerDir } from './utils/rangerRoot.js';
8
+ import { registerSession } from './utils/sessionCache.js';
8
9
  // Active feature file name (relative to .ranger dir)
9
10
  const ACTIVE_FEATURE_FILE = 'active-feature.txt';
10
11
  /**
@@ -118,19 +119,11 @@ function getReviewStatusDisplay(feature) {
118
119
  function displayFeature(feature, checklistItems) {
119
120
  const devStatus = getDevStatusDisplay(feature);
120
121
  const reviewStatus = getReviewStatusDisplay(feature);
121
- console.log(`\n${devStatus.emoji} ${feature.name} (${feature.id})`);
122
+ console.log(`\n${devStatus.emoji} ${feature.name} (${feature.dashboardUrl})`);
122
123
  console.log(` Dev Status: ${devStatus.label}`);
123
124
  if (reviewStatus) {
124
125
  console.log(` Review Status: ${reviewStatus.emoji} ${reviewStatus.label}`);
125
126
  }
126
- if (feature.stats) {
127
- const { verifiedItems, totalItems, blockedItems } = feature.stats;
128
- let progressStr = ` Progress: ${verifiedItems}/${totalItems}`;
129
- if (blockedItems > 0) {
130
- progressStr += ` (${blockedItems} blocked)`;
131
- }
132
- console.log(progressStr);
133
- }
134
127
  if (feature.description) {
135
128
  console.log(` Description: ${feature.description}`);
136
129
  }
@@ -196,6 +189,11 @@ export async function featureCreate(name, options) {
196
189
  await setActiveFeatureId(feature.id);
197
190
  // Start the session immediately so it's in_progress
198
191
  await tryStartCurrentSession(feature.id);
192
+ // Register Claude session if provided via env var
193
+ const claudeSessionId = process.env.CLAUDE_SESSION_ID;
194
+ if (claudeSessionId) {
195
+ registerSession(claudeSessionId, feature.id);
196
+ }
199
197
  console.log(`\n\u2705 Feature created: ${feature.id}`);
200
198
  displayFeature(feature, feature.checklistItems);
201
199
  console.log(`\n\u27a1\ufe0f Set as active feature`);
@@ -204,7 +202,10 @@ export async function featureCreate(name, options) {
204
202
  * List features
205
203
  */
206
204
  export async function featureList(options) {
207
- const filters = {};
205
+ const filters = {
206
+ limit: options.limit ?? 10,
207
+ offset: options.offset ?? 0,
208
+ };
208
209
  if (options.currentBranch) {
209
210
  filters.gitRepoUrl = getGitRepoUrl();
210
211
  filters.gitBranch = getGitBranch();
@@ -214,7 +215,10 @@ export async function featureList(options) {
214
215
  console.log('\nNo features found.');
215
216
  return;
216
217
  }
217
- console.log(`\n${result.items.length} feature(s) found:\n`);
218
+ const showing = result.totalCount > result.items.length
219
+ ? `Showing ${result.items.length} of ${result.totalCount}`
220
+ : `${result.totalCount} feature(s) found`;
221
+ console.log(`\n${showing}:\n`);
218
222
  for (const feature of result.items) {
219
223
  const devStatus = getDevStatusDisplay(feature);
220
224
  const reviewStatus = getReviewStatusDisplay(feature);
@@ -224,19 +228,19 @@ export async function featureList(options) {
224
228
  if (reviewStatus) {
225
229
  console.log(` Review Status: ${reviewStatus.emoji} ${reviewStatus.label}`);
226
230
  }
227
- if (feature.stats) {
228
- const { verifiedItems, totalItems, blockedItems } = feature.stats;
229
- let progressStr = ` Progress: ${verifiedItems}/${totalItems}`;
230
- if (blockedItems > 0) {
231
- progressStr += ` (${blockedItems} blocked)`;
232
- }
233
- console.log(progressStr);
234
- }
235
231
  if (feature.gitBranch) {
236
232
  console.log(` Branch: ${feature.gitBranch}`);
237
233
  }
238
234
  console.log('');
239
235
  }
236
+ // Show next page command if there are more items
237
+ const currentLimit = filters.limit ?? 10;
238
+ const nextOffset = (filters.offset ?? 0) + result.items.length;
239
+ if (nextOffset < result.totalCount) {
240
+ const limitFlag = currentLimit !== 10 ? ` --limit ${currentLimit}` : '';
241
+ const branchFlag = options.currentBranch ? ' --current-branch' : '';
242
+ console.log(`Next page: ranger feature list --offset ${nextOffset}${limitFlag}${branchFlag}`);
243
+ }
240
244
  }
241
245
  /**
242
246
  * Show feature details
@@ -245,33 +249,35 @@ export async function featureShow(id) {
245
249
  const featureId = id || (await getActiveFeatureId());
246
250
  if (!featureId) {
247
251
  console.error('\n\u274c No feature ID provided and no active feature set.');
248
- console.error('Run: ranger feature use <id> to set an active feature');
252
+ console.error('Run: ranger feature resume <id> to set an active feature');
249
253
  process.exit(1);
250
254
  }
251
255
  const feature = await getFeature(featureId);
252
256
  displayFeature(feature, feature.checklistItems);
253
257
  }
254
- /**
255
- * Set active feature
256
- */
257
- export async function featureUse(id) {
258
- // Verify the feature exists
259
- const feature = await getFeature(id);
260
- await setActiveFeatureId(feature.id);
261
- console.log(`\n\u2705 Active feature set to: ${feature.name} (${feature.id})`);
262
- }
263
258
  /**
264
259
  * Resume feature matching current git context
265
260
  * @param id Optional feature ID to resume directly (bypasses search/prompt)
266
261
  */
267
262
  export async function featureResume(id) {
268
- // If ID provided, use it directly (like featureUse)
263
+ // If ID provided, set it as the active feature directly
269
264
  if (id) {
270
265
  const feature = await getFeature(id);
271
266
  await setActiveFeatureId(feature.id);
267
+ // Update the feature's gitBranch to the current branch
268
+ const currentBranch = getGitBranch();
269
+ if (currentBranch && currentBranch !== feature.gitBranch) {
270
+ await updateFeature(feature.id, { gitBranch: currentBranch });
271
+ console.log(` Updated branch to: ${currentBranch}`);
272
+ }
272
273
  console.log(`\n\u2705 Resumed feature: ${feature.name} (${feature.id})`);
273
274
  // Start the current session if it's ready
274
275
  await tryStartCurrentSession(feature.id);
276
+ // Register Claude session if provided via env var
277
+ const claudeSessionId = process.env.CLAUDE_SESSION_ID;
278
+ if (claudeSessionId) {
279
+ registerSession(claudeSessionId, feature.id);
280
+ }
275
281
  displayFeature(feature, feature.checklistItems);
276
282
  return;
277
283
  }
@@ -298,7 +304,23 @@ export async function featureResume(id) {
298
304
  selectedFeature = activeFeatures[0];
299
305
  }
300
306
  else {
301
- // Multiple matches - prompt user to select
307
+ // Multiple matches - check if we're in interactive mode
308
+ const isInteractive = process.stdin.isTTY && process.stdout.isTTY;
309
+ if (!isInteractive) {
310
+ // Non-interactive mode: list features and require explicit ID
311
+ console.log('\nNon-interactive mode detected. Multiple features found:');
312
+ for (const f of activeFeatures) {
313
+ const devStatus = getDevStatusDisplay(f);
314
+ console.log(` ${devStatus.emoji} ${f.name}`);
315
+ console.log(` ID: ${f.id}`);
316
+ if (f.gitBranch) {
317
+ console.log(` Branch: ${f.gitBranch}`);
318
+ }
319
+ }
320
+ console.error('\nPlease specify the feature ID: ranger feature resume <id>');
321
+ process.exit(1);
322
+ }
323
+ // Interactive mode: prompt user to select
302
324
  const { selected } = await inquirer.prompt([
303
325
  {
304
326
  type: 'list',
@@ -313,11 +335,21 @@ export async function featureResume(id) {
313
335
  selectedFeature = activeFeatures.find((f) => f.id === selected);
314
336
  }
315
337
  await setActiveFeatureId(selectedFeature.id);
338
+ // Update the feature's gitBranch to the current branch
339
+ if (gitBranch && gitBranch !== selectedFeature.gitBranch) {
340
+ await updateFeature(selectedFeature.id, { gitBranch });
341
+ console.log(` Updated branch to: ${gitBranch}`);
342
+ }
316
343
  console.log(`\n\u2705 Resumed feature: ${selectedFeature.name} (${selectedFeature.id})`);
317
344
  // Start the current session if it's ready
318
345
  await tryStartCurrentSession(selectedFeature.id);
319
- // Show current status
346
+ // Register Claude session if provided via env var
320
347
  const fullFeature = await getFeature(selectedFeature.id);
348
+ const claudeSessionId = process.env.CLAUDE_SESSION_ID;
349
+ if (claudeSessionId) {
350
+ registerSession(claudeSessionId, fullFeature.id);
351
+ }
352
+ // Show current status
321
353
  displayFeature(fullFeature, fullFeature.checklistItems);
322
354
  }
323
355
  /**
@@ -368,7 +400,7 @@ export async function featureConcludeSession(id) {
368
400
  const featureId = id || (await getActiveFeatureId());
369
401
  if (!featureId) {
370
402
  console.error('\n\u274c No feature ID provided and no active feature set.');
371
- console.error('Run: ranger feature use <id> to set an active feature');
403
+ console.error('Run: ranger feature resume <id> to set an active feature');
372
404
  process.exit(1);
373
405
  }
374
406
  const feature = await getFeature(featureId);
@@ -426,4 +458,29 @@ export async function featureSessions(id) {
426
458
  console.log('');
427
459
  }
428
460
  }
461
+ /**
462
+ * Add a checklist item to the active feature
463
+ */
464
+ export async function featureAddChecklistItem(description, id) {
465
+ const featureId = id || (await getActiveFeatureId());
466
+ if (!featureId) {
467
+ console.error('\n\u274c No feature ID provided and no active feature set.');
468
+ console.error('Run: ranger feature resume <id> to set an active feature');
469
+ process.exit(1);
470
+ }
471
+ const feature = await getFeature(featureId);
472
+ // Check if there's an active (non-submitted) review
473
+ if (feature.latestReview && !feature.latestReview.submittedAt) {
474
+ console.error('\n\u274c Cannot add checklist item: feature has an active review.');
475
+ console.error('Please finish your review first:');
476
+ console.error(` ${feature.dashboardUrl}`);
477
+ process.exit(1);
478
+ }
479
+ // Create the checklist item
480
+ await createChecklistItem(featureId, description);
481
+ // Refetch and display the updated feature
482
+ const updatedFeature = await getFeature(featureId);
483
+ console.log(`\n\u2705 Checklist item added`);
484
+ displayFeature(updatedFeature, updatedFeature.checklistItems);
485
+ }
429
486
  //# sourceMappingURL=feature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature.js","sourceRoot":"","sources":["../../src/commands/feature.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature.js","sourceRoot":"","sources":["../../src/commands/feature.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { sessionStart, preCompact, postEdit, planStart, planReminder, exitPlanMode, stopHook, enable, disable, } from './hooks/index.js';
2
+ const HOOKS = {
3
+ 'session-start': sessionStart,
4
+ 'pre-compact': preCompact,
5
+ 'post-edit': postEdit,
6
+ 'plan-start': planStart,
7
+ 'plan-reminder': planReminder,
8
+ 'exit-plan-mode': exitPlanMode,
9
+ stop: stopHook,
10
+ enable: enable,
11
+ disable: disable,
12
+ };
13
+ /**
14
+ * Unified hook command handler for Claude Code plugin.
15
+ * Routes to the appropriate hook based on the --name parameter.
16
+ */
17
+ export async function hook(name) {
18
+ const hookFn = HOOKS[name];
19
+ if (!hookFn) {
20
+ const validNames = Object.keys(HOOKS).join(', ');
21
+ console.error(`Unknown hook: ${name}`);
22
+ console.error(`Valid hooks: ${validNames}`);
23
+ process.exit(1);
24
+ }
25
+ await hookFn();
26
+ }
27
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook.js","sourceRoot":"","sources":["../../src/commands/hook.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,OAAO,GACV,MAAM,kBAAkB,CAAC;AAa1B,MAAM,KAAK,GAA0C;IACjD,eAAe,EAAE,YAAY;IAC7B,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,QAAQ;IACrB,YAAY,EAAE,SAAS;IACvB,eAAe,EAAE,YAAY;IAC7B,gBAAgB,EAAE,YAAY;IAC9B,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,MAAM;IACd,OAAO,EAAE,OAAO;CACnB,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAY;IACnC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAgB,CAAC,CAAC;IAEvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;QACvC,OAAO,CAAC,KAAK,CAAC,gBAAgB,UAAU,EAAE,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,MAAM,EAAE,CAAC;AACnB,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { disableSession } from '../utils/sessionCache.js';
2
+ import { printBlock } from './output.js';
3
+ /**
4
+ * Disable hook - disables Ranger hooks for this Claude session
5
+ */
6
+ export async function disable() {
7
+ const sessionId = process.env.CLAUDE_SESSION_ID || '';
8
+ if (!sessionId) {
9
+ console.error('Error: CLAUDE_SESSION_ID not found in environment.');
10
+ process.exit(1);
11
+ }
12
+ // Disable hooks for this session
13
+ disableSession(sessionId);
14
+ printBlock(`# RANGER DISABLED
15
+
16
+ The user has expressly disabled Ranger hooks for this session.
17
+
18
+ **IMPORTANT INSTRUCTIONS:**
19
+ - Do NOT use the /ranger skill
20
+ - Do NOT use any \`ranger\` CLI commands
21
+ - Proceed with your task without tracking features using the Ranger CLI
22
+
23
+ To re-enable Ranger, run \`/ranger:enable\`.`);
24
+ }
25
+ //# sourceMappingURL=disable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disable.js","sourceRoot":"","sources":["../../../src/commands/hooks/disable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO;IACzB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAEtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACpE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,iCAAiC;IACjC,cAAc,CAAC,SAAS,CAAC,CAAC;IAE1B,UAAU,CAAC;;;;;;;;;6CAS8B,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { enableSession } from '../utils/sessionCache.js';
2
+ import { getToken } from '../utils/keychain.js';
3
+ import { getRangerSkillContent } from '../utils/skillContent.js';
4
+ import { printBlock } from './output.js';
5
+ /**
6
+ * Enable hook - enables Ranger hooks for this Claude session
7
+ */
8
+ export async function enable() {
9
+ const sessionId = process.env.CLAUDE_SESSION_ID || '';
10
+ if (!sessionId) {
11
+ console.error('Error: CLAUDE_SESSION_ID not found in environment.');
12
+ console.error('Make sure Ranger hooks are properly configured.');
13
+ process.exit(1);
14
+ }
15
+ // Check if CLI is configured (has token)
16
+ const token = await getToken();
17
+ if (!token) {
18
+ printBlock(`# RANGER SETUP REQUIRED
19
+
20
+ The Ranger CLI is not configured. To get started:
21
+
22
+ 1. Install: \`npm install -g @ranger-testing/ranger-cli\`
23
+ 2. Get token: https://dashboard.ranger.net/cli
24
+ 3. Initialize: \`ranger start <your-token>\`
25
+
26
+ Restart your Claude Code session after setup.`);
27
+ return;
28
+ }
29
+ // Enable hooks for this session
30
+ enableSession(sessionId);
31
+ // Output the skill prompt
32
+ const skillContent = getRangerSkillContent();
33
+ printBlock(`# RANGER ENABLED
34
+
35
+ **For ANY UI work, you MUST use the /ranger skill.**
36
+
37
+ ${skillContent}
38
+
39
+ ## Quick Reference
40
+
41
+ **In plan mode:** Include Ranger Feature Specification at end of plan.
42
+ **Not in plan mode:** Run \`ranger feature create\` FIRST, then verify with \`ranger verify-feature\`.`);
43
+ }
44
+ //# sourceMappingURL=enable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enable.js","sourceRoot":"","sources":["../../../src/commands/hooks/enable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM;IACxB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAEtD,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,yCAAyC;IACzC,MAAM,KAAK,GAAG,MAAM,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;QACT,UAAU,CAAC;;;;;;;;8CAQ2B,CAAC,CAAC;QACxC,OAAO;IACX,CAAC;IAED,gCAAgC;IAChC,aAAa,CAAC,SAAS,CAAC,CAAC;IAEzB,0BAA0B;IAC1B,MAAM,YAAY,GAAG,qBAAqB,EAAE,CAAC;IAE7C,UAAU,CAAC;;;;EAIb,YAAY;;;;;uGAKyF,CAAC,CAAC;AACzG,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { printBlock, getEnabledSessionId } from './output.js';
2
+ /**
3
+ * PermissionRequest hook handler for ExitPlanMode
4
+ *
5
+ * This command is invoked when Claude requests permission to exit plan mode.
6
+ * It reminds Claude to create a Ranger feature to track the work.
7
+ */
8
+ export async function exitPlanMode() {
9
+ const sessionId = await getEnabledSessionId();
10
+ if (!sessionId) {
11
+ return;
12
+ }
13
+ printBlock(`=== RANGER: CREATE FEATURE NOW ===
14
+
15
+ You are about to exit plan mode. If your plan includes UI changes:
16
+
17
+ **ACTION REQUIRED:** Create the Ranger feature using items from your Ranger Feature Specification:
18
+
19
+ \`\`\`
20
+ ranger feature create "<Feature Name from plan>" \\
21
+ -d "<Description from plan>" \\
22
+ -c "<Checklist item 1 from plan>" \\
23
+ -c "<Checklist item 2 from plan>"
24
+ \`\`\`
25
+
26
+ **REMINDER:** Checklist items must be E2E user flows, NOT implementation tasks.
27
+
28
+ **Good:** "User can log in with valid credentials and see dashboard"
29
+ **Bad:** "Add form validation" or "API returns 200"
30
+
31
+ If you did NOT include a Ranger Feature Specification in your plan, go back and add one before proceeding. See /ranger and create.md for guidance.
32
+
33
+ === END ===`);
34
+ }
35
+ //# sourceMappingURL=exitPlanMode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exitPlanMode.js","sourceRoot":"","sources":["../../../src/commands/hooks/exitPlanMode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAE9D;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAC9B,MAAM,SAAS,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;QACb,OAAO;IACX,CAAC;IAED,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;YAoBH,CAAC,CAAC;AACd,CAAC"}
@@ -0,0 +1,10 @@
1
+ export { sessionStart } from './sessionStart.js';
2
+ export { preCompact } from './preCompact.js';
3
+ export { postEdit } from './postEdit.js';
4
+ export { planStart } from './planStart.js';
5
+ export { planReminder } from './planReminder.js';
6
+ export { exitPlanMode } from './exitPlanMode.js';
7
+ export { stopHook } from './stopHook.js';
8
+ export { enable } from './enable.js';
9
+ export { disable } from './disable.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC"}