aihezu 2.4.0 → 2.5.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.
package/bin/aihezu.js CHANGED
@@ -23,7 +23,13 @@ function showHelp() {
23
23
  console.log('\n命令:');
24
24
  console.log(' install <service> 配置服务 (API Key, URL, 网络设置)');
25
25
  console.log(' clear <service> 清理缓存并刷新网络设置');
26
- console.log(' usage 查看所有已配置服务的用量统计');
26
+ console.log(' usage [service] 查看用量统计');
27
+ console.log('');
28
+ console.log('usage 命令可选参数:');
29
+ console.log(' aihezu usage 显示所有已配置服务的用量');
30
+ console.log(' aihezu usage cc 只显示 Claude Code 用量');
31
+ console.log(' aihezu usage codex 只显示 Codex 用量');
32
+ console.log(' aihezu usage gemini 只显示 Google Gemini 用量');
27
33
  console.log('\n服务:');
28
34
  console.log(' claude Claude Code');
29
35
  console.log(' codex Codex');
@@ -41,9 +47,10 @@ function showHelp() {
41
47
  console.log('\n示例:');
42
48
  console.log(' aihezu install claude');
43
49
  console.log(' aihezu clear codex');
44
- console.log(' aihezu usage (查看所有服务用量)');
45
- console.log(' aihezu install (交互式安装)');
46
- console.log(' aihezu help (显示帮助信息)');
50
+ console.log(' aihezu usage (查看所有服务用量)');
51
+ console.log(' aihezu usage cc (只查看 Claude Code 用量)');
52
+ console.log(' aihezu install (交互式安装)');
53
+ console.log(' aihezu help (显示帮助信息)');
47
54
  }
48
55
 
49
56
  async function askQuestion(rl, question) {
package/commands/usage.js CHANGED
@@ -364,16 +364,26 @@ function displayUsageStats(stats, origin, source) {
364
364
  }
365
365
 
366
366
  function showUsageHelp() {
367
- console.log('用法: aihezu usage [--json]');
367
+ console.log('用法: aihezu usage [service] [--json]');
368
368
  console.log('');
369
369
  console.log('说明:');
370
370
  console.log(' - 自动检测 Claude Code、Codex、Google Gemini 的配置');
371
371
  console.log(' - 从环境变量和配置文件读取配置');
372
372
  console.log(' - 如果两者都存在且不同,将分别查询两个账号的用量');
373
373
  console.log('');
374
+ console.log('可选服务参数:');
375
+ console.log(' cc, claude 只显示 Claude Code 用量');
376
+ console.log(' codex 只显示 Codex 用量');
377
+ console.log(' gemini 只显示 Google Gemini 用量');
378
+ console.log(' (不指定) 显示所有已配置服务的用量');
379
+ console.log('');
374
380
  console.log('示例:');
375
- console.log(' npx aihezu usage');
376
- console.log(' npx aihezu usage --json');
381
+ console.log(' npx aihezu usage # 显示所有服务');
382
+ console.log(' npx aihezu usage cc # 只显示 Claude Code');
383
+ console.log(' npx aihezu usage codex # 只显示 Codex');
384
+ console.log(' npx aihezu usage gemini # 只显示 Gemini');
385
+ console.log(' npx aihezu usage --json # JSON 格式输出所有服务');
386
+ console.log(' npx aihezu usage cc --json # JSON 格式输出 Claude Code');
377
387
  }
378
388
 
379
389
  async function usageCommand(args = []) {
@@ -385,13 +395,44 @@ async function usageCommand(args = []) {
385
395
 
386
396
  const outputJson = args.includes('--json');
387
397
 
398
+ // 提取服务过滤参数(第一个非选项参数)
399
+ const serviceFilter = args.find(arg => !arg.startsWith('-'));
400
+
401
+ // 服务别名映射
402
+ const serviceAliases = {
403
+ 'cc': 'Claude Code',
404
+ 'claude': 'Claude Code',
405
+ 'codex': 'Codex',
406
+ 'gemini': 'Google Gemini'
407
+ };
408
+
409
+ let filterServiceName = null;
410
+ if (serviceFilter) {
411
+ const normalizedFilter = serviceFilter.toLowerCase();
412
+ filterServiceName = serviceAliases[normalizedFilter];
413
+
414
+ if (!filterServiceName) {
415
+ console.error(`[错误] 未知的服务: ${serviceFilter}`);
416
+ console.error('');
417
+ console.error('可用服务: cc, claude, codex, gemini');
418
+ console.error('');
419
+ console.error('使用 "aihezu usage --help" 查看帮助');
420
+ process.exit(1);
421
+ }
422
+ }
423
+
388
424
  // 收集所有服务的配置
389
- const services = [
425
+ const allServices = [
390
426
  { name: 'Claude Code', configs: readClaudeConfig() },
391
427
  { name: 'Codex', configs: readCodexConfig() },
392
428
  { name: 'Google Gemini', configs: readGeminiConfig() }
393
429
  ];
394
430
 
431
+ // 根据过滤参数筛选服务
432
+ const services = filterServiceName
433
+ ? allServices.filter(s => s.name === filterServiceName)
434
+ : allServices;
435
+
395
436
  let hasAnyConfig = false;
396
437
  const allResults = {};
397
438
 
@@ -434,7 +475,11 @@ async function usageCommand(args = []) {
434
475
 
435
476
  if (!hasAnyConfig) {
436
477
  console.log('');
437
- console.log('[提示] 未找到任何已配置的服务。');
478
+ if (filterServiceName) {
479
+ console.log(`[提示] ${filterServiceName} 未配置。`);
480
+ } else {
481
+ console.log('[提示] 未找到任何已配置的服务。');
482
+ }
438
483
  console.log('');
439
484
  console.log('请先运行以下命令进行配置:');
440
485
  console.log(' npx aihezu install claude # 配置 Claude Code');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aihezu",
3
- "version": "2.4.0",
3
+ "version": "2.5.0",
4
4
  "description": "AI 开发环境配置工具 - 支持 Claude Code, Codex, Google Gemini 的本地化配置、代理设置与缓存清理",
5
5
  "main": "bin/aihezu.js",
6
6
  "bin": {