claude-usage-tracker
Version:
Advanced analytics for Claude Code usage with cost optimization, conversation length analysis, and rate limit tracking
103 lines • 2.75 kB
TypeScript
import { z } from "zod";
export declare const usageEntrySchema: z.ZodObject<{
timestamp: z.ZodString;
conversationId: z.ZodString;
instanceId: z.ZodOptional<z.ZodString>;
model: z.ZodString;
requestId: z.ZodString;
prompt_tokens: z.ZodNumber;
completion_tokens: z.ZodNumber;
total_tokens: z.ZodNumber;
cache_creation_input_tokens: z.ZodOptional<z.ZodNumber>;
cache_read_input_tokens: z.ZodOptional<z.ZodNumber>;
cost: z.ZodOptional<z.ZodNumber>;
costUSD: z.ZodOptional<z.ZodNumber>;
isBatchAPI: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
model: string;
timestamp: string;
conversationId: string;
requestId: string;
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
instanceId?: string | undefined;
cache_creation_input_tokens?: number | undefined;
cache_read_input_tokens?: number | undefined;
cost?: number | undefined;
costUSD?: number | undefined;
isBatchAPI?: boolean | undefined;
}, {
model: string;
timestamp: string;
conversationId: string;
requestId: string;
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
instanceId?: string | undefined;
cache_creation_input_tokens?: number | undefined;
cache_read_input_tokens?: number | undefined;
cost?: number | undefined;
costUSD?: number | undefined;
isBatchAPI?: boolean | undefined;
}>;
export type UsageEntry = z.infer<typeof usageEntrySchema>;
export interface DailyUsage {
date: string;
totalTokens: number;
promptTokens: number;
completionTokens: number;
cacheCreationTokens: number;
cacheReadTokens: number;
cost: number;
conversationCount: number;
models: Set<string>;
}
export interface WeeklyUsage {
startDate: string;
endDate: string;
totalTokens: number;
promptTokens: number;
completionTokens: number;
cacheCreationTokens: number;
cacheReadTokens: number;
cost: number;
conversationCount: number;
models: Set<string>;
estimatedHours: {
sonnet4: {
min: number;
max: number;
};
opus4: {
min: number;
max: number;
};
};
}
export interface RateLimitInfo {
plan: string;
weeklyLimits: {
sonnet4: {
min: number;
max: number;
};
opus4: {
min: number;
max: number;
};
};
currentUsage: WeeklyUsage;
percentUsed: {
sonnet4: {
min: number;
max: number;
};
opus4: {
min: number;
max: number;
};
};
}
//# sourceMappingURL=types.d.ts.map