feat(auth-files): add AI Studio and Gemini CLI with filename masking

This commit is contained in:
hkfires
2025-11-07 21:46:46 +08:00
parent 3a2d96725f
commit 61e75eee97
3 changed files with 26 additions and 2 deletions

18
app.js
View File

@@ -3398,6 +3398,12 @@ class CLIProxyManager {
possibleSources.push(maskedPersonalId);
}
// 规则3AI Studio 特殊处理 - 对完整文件名脱敏
if (nameWithoutExt.startsWith('aistudio-')) {
const maskedFullName = this.maskApiKey(nameWithoutExt);
possibleSources.push(maskedFullName);
}
// 查找第一个有统计数据的匹配
for (const source of possibleSources) {
if (stats[source] && (stats[source].success > 0 || stats[source].failure > 0)) {
@@ -3418,6 +3424,12 @@ class CLIProxyManager {
case 'gemini':
typeDisplayKey = 'auth_files.type_gemini';
break;
case 'gemini-cli':
typeDisplayKey = 'auth_files.type_gemini-cli';
break;
case 'aistudio':
typeDisplayKey = 'auth_files.type_aistudio';
break;
case 'claude':
typeDisplayKey = 'auth_files.type_claude';
break;
@@ -3487,6 +3499,8 @@ class CLIProxyManager {
{ type: 'all', labelKey: 'auth_files.filter_all' },
{ type: 'qwen', labelKey: 'auth_files.filter_qwen' },
{ type: 'gemini', labelKey: 'auth_files.filter_gemini' },
{ type: 'gemini-cli', labelKey: 'auth_files.filter_gemini-cli' },
{ type: 'aistudio', labelKey: 'auth_files.filter_aistudio' },
{ type: 'claude', labelKey: 'auth_files.filter_claude' },
{ type: 'codex', labelKey: 'auth_files.filter_codex' },
{ type: 'iflow', labelKey: 'auth_files.filter_iflow' },
@@ -4648,7 +4662,7 @@ class CLIProxyManager {
try {
const response = await this.makeRequest('/usage');
const usage = response?.usage || null;
if (!usage) {
return {};
}
@@ -4665,7 +4679,7 @@ class CLIProxyManager {
details.forEach(detail => {
const source = detail.source;
if (!source) return;
if (!sourceStats[source]) {
sourceStats[source] = {
success: 0,