mirror of
https://github.com/router-for-me/Cli-Proxy-API-Management-Center.git
synced 2026-02-03 11:20:50 +08:00
37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
/**
|
|
* Validation and type checking functions for quota management.
|
|
*/
|
|
|
|
import type { AuthFileItem } from '@/types';
|
|
import { GEMINI_CLI_IGNORED_MODEL_PREFIXES } from './constants';
|
|
|
|
export function resolveAuthProvider(file: AuthFileItem): string {
|
|
const raw = file.provider ?? file.type ?? '';
|
|
return String(raw).trim().toLowerCase();
|
|
}
|
|
|
|
export function isAntigravityFile(file: AuthFileItem): boolean {
|
|
return resolveAuthProvider(file) === 'antigravity';
|
|
}
|
|
|
|
export function isCodexFile(file: AuthFileItem): boolean {
|
|
return resolveAuthProvider(file) === 'codex';
|
|
}
|
|
|
|
export function isGeminiCliFile(file: AuthFileItem): boolean {
|
|
return resolveAuthProvider(file) === 'gemini-cli';
|
|
}
|
|
|
|
export function isRuntimeOnlyAuthFile(file: AuthFileItem): boolean {
|
|
const raw = file['runtime_only'] ?? file.runtimeOnly;
|
|
if (typeof raw === 'boolean') return raw;
|
|
if (typeof raw === 'string') return raw.trim().toLowerCase() === 'true';
|
|
return false;
|
|
}
|
|
|
|
export function isIgnoredGeminiCliModel(modelId: string): boolean {
|
|
return GEMINI_CLI_IGNORED_MODEL_PREFIXES.some(
|
|
(prefix) => modelId === prefix || modelId.startsWith(`${prefix}-`)
|
|
);
|
|
}
|