feat(quota): add zustand store for quota state caching

This commit is contained in:
Supra4E8C
2025-12-30 18:29:28 +08:00
parent 49b9259452
commit 23fb88e5fd
5 changed files with 186 additions and 72 deletions

View File

@@ -12,3 +12,4 @@ export * from './authFile';
export * from './oauth';
export * from './usage';
export * from './log';
export * from './quota';

49
src/types/quota.ts Normal file
View File

@@ -0,0 +1,49 @@
/**
* Quota management types.
*/
export interface AntigravityQuotaGroup {
id: string;
label: string;
models: string[];
remainingFraction: number;
resetTime?: string;
}
export interface AntigravityQuotaState {
status: 'idle' | 'loading' | 'success' | 'error';
groups: AntigravityQuotaGroup[];
error?: string;
errorStatus?: number;
}
export interface GeminiCliQuotaBucketState {
id: string;
label: string;
remainingFraction: number | null;
remainingAmount: number | null;
resetTime: string | undefined;
tokenType: string | null;
}
export interface GeminiCliQuotaState {
status: 'idle' | 'loading' | 'success' | 'error';
buckets: GeminiCliQuotaBucketState[];
error?: string;
errorStatus?: number;
}
export interface CodexQuotaWindow {
id: string;
label: string;
usedPercent: number | null;
resetLabel: string;
}
export interface CodexQuotaState {
status: 'idle' | 'loading' | 'success' | 'error';
windows: CodexQuotaWindow[];
planType?: string | null;
error?: string;
errorStatus?: number;
}