init
This commit is contained in:
96
src/types.ts
Normal file
96
src/types.ts
Normal file
@@ -0,0 +1,96 @@
|
||||
export type RateLimitBucket = {
|
||||
limitId: string;
|
||||
limitName: string | null;
|
||||
usedPercent: number;
|
||||
windowDurationMins: number | null;
|
||||
resetsAt: number | null;
|
||||
secondaryUsedPercent: number | null;
|
||||
secondaryResetsAt: number | null;
|
||||
reachedType: string | null;
|
||||
};
|
||||
|
||||
export type LiveStatus = {
|
||||
state: "online" | "fallback" | "offline" | string;
|
||||
detail: string | null;
|
||||
};
|
||||
|
||||
export type TokenBreakdown = {
|
||||
input: number;
|
||||
output: number;
|
||||
cached: number;
|
||||
reasoning: number;
|
||||
tool: number;
|
||||
responses: number;
|
||||
};
|
||||
|
||||
export type ThreadUsage = {
|
||||
id: string;
|
||||
title: string;
|
||||
tokensUsed: number;
|
||||
model: string | null;
|
||||
reasoningEffort: string | null;
|
||||
updatedAt: number;
|
||||
cwd: string | null;
|
||||
};
|
||||
|
||||
export type ModelUsage = {
|
||||
model: string;
|
||||
tokens: number;
|
||||
threads: number;
|
||||
};
|
||||
|
||||
export type UsageSummary = {
|
||||
totalTokens: number;
|
||||
todayTokens: number;
|
||||
weekTokens: number;
|
||||
threadCount: number;
|
||||
todayThreadCount: number;
|
||||
weekThreadCount: number;
|
||||
currentThread: ThreadUsage | null;
|
||||
recentThreads: ThreadUsage[];
|
||||
modelBreakdown: ModelUsage[];
|
||||
tokenBreakdown: TokenBreakdown;
|
||||
sourcePath: string | null;
|
||||
error: string | null;
|
||||
};
|
||||
|
||||
export type MonitorSnapshot = {
|
||||
source: string;
|
||||
fetchedAt: number;
|
||||
liveStatus: LiveStatus;
|
||||
buckets: RateLimitBucket[];
|
||||
usageSummary: UsageSummary;
|
||||
currentThread: ThreadUsage | null;
|
||||
message: string | null;
|
||||
};
|
||||
|
||||
export type UsagePoint = {
|
||||
label: string;
|
||||
tokens: number;
|
||||
threads: number;
|
||||
};
|
||||
|
||||
export type UsageHistory = {
|
||||
range: string;
|
||||
points: UsagePoint[];
|
||||
};
|
||||
|
||||
export type BadgePosition = {
|
||||
x: number;
|
||||
y: number;
|
||||
};
|
||||
|
||||
export type AppSettings = {
|
||||
codexExecutable: string | null;
|
||||
codexHome: string;
|
||||
refreshIntervalSecs: number;
|
||||
badgeVisible: boolean;
|
||||
badgePosition: BadgePosition;
|
||||
privacyMode: boolean;
|
||||
thresholds: {
|
||||
warning: number;
|
||||
critical: number;
|
||||
exhausted: number;
|
||||
};
|
||||
notificationsMutedUntil: number | null;
|
||||
};
|
||||
Reference in New Issue
Block a user