Spaces:
Paused
Paused
File size: 1,611 Bytes
4f2665c 4a940a5 4f2665c 4a940a5 4f2665c 4ebb914 4a940a5 85a4cbd | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | export interface AccountQuotaWindow {
used_percent?: number | null;
limit_reached?: boolean;
reset_at?: number | null;
limit_window_seconds?: number | null;
}
export interface AccountQuota {
rate_limit?: AccountQuotaWindow;
secondary_rate_limit?: AccountQuotaWindow | null;
}
export interface QuotaWarning {
accountId: string;
email: string | null;
window: "primary" | "secondary";
level: "warning" | "critical";
usedPercent: number;
resetAt: number | null;
}
export interface Account {
id: string;
email: string;
status: string;
planType?: string;
usage?: {
request_count?: number;
input_tokens?: number;
output_tokens?: number;
window_request_count?: number;
window_input_tokens?: number;
window_output_tokens?: number;
};
quota?: AccountQuota;
quotaFetchedAt?: string | null;
proxyId?: string;
proxyName?: string;
}
export interface ProxyHealthInfo {
exitIp: string | null;
latencyMs: number;
lastChecked: string;
error: string | null;
}
export interface ProxyEntry {
id: string;
name: string;
url: string;
status: "active" | "unreachable" | "disabled";
health: ProxyHealthInfo | null;
addedAt: string;
}
export interface ProxyAssignment {
accountId: string;
proxyId: string;
}
export type DiagnosticStatus = "pass" | "fail" | "skip";
export interface DiagnosticCheck {
name: string;
status: DiagnosticStatus;
latencyMs: number;
detail: string | null;
error: string | null;
}
export interface TestConnectionResult {
checks: DiagnosticCheck[];
overall: DiagnosticStatus;
timestamp: string;
}
|