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 +11 -4
- package/commands/usage.js +50 -5
- package/package.json +1 -1
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
|
|
46
|
-
console.log(' aihezu
|
|
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
|
|
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
|
|
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
|
-
|
|
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');
|