claude-usage-tracker
Version:
Advanced analytics for Claude Code usage with cost optimization, conversation length analysis, and rate limit tracking
127 lines • 3.7 kB
TypeScript
import { UsageEntry } from "./types.js";
export interface ConversationLengthInsight {
conversationId: string;
messageCount: number;
tokenCount: number;
duration: number;
project: string;
efficiency: number;
costEfficiency: number;
lengthCategory: "quick" | "medium" | "deep" | "marathon";
followUpPattern: "standalone" | "builds-on-previous" | "repeat-topic";
successIndicators: {
hasQuickFollowUp: boolean;
conversationCompleted: boolean;
topicResolved: boolean;
};
}
export interface ProjectLengthProfile {
project: string;
totalConversations: number;
avgMessageCount: number;
avgDuration: number;
avgTokens: number;
optimalRange: {
minMessages: number;
maxMessages: number;
explanation: string;
};
efficiencyByLength: {
quick: {
count: number;
avgEfficiency: number;
successRate: number;
avgCost: number;
costEfficiency: number;
};
medium: {
count: number;
avgEfficiency: number;
successRate: number;
avgCost: number;
costEfficiency: number;
};
deep: {
count: number;
avgEfficiency: number;
successRate: number;
avgCost: number;
costEfficiency: number;
};
marathon: {
count: number;
avgEfficiency: number;
successRate: number;
avgCost: number;
costEfficiency: number;
};
};
recommendations: string[];
}
export interface ConversationLengthAnalysis {
totalConversations: number;
overallOptimalRange: {
minMessages: number;
maxMessages: number;
explanation: string;
};
projectProfiles: ProjectLengthProfile[];
lengthDistribution: {
quick: number;
medium: number;
deep: number;
marathon: number;
};
costAnalysis: {
totalCost: number;
avgCostPerConversation: number;
costByLength: {
quick: {
totalCost: number;
avgCost: number;
costEfficiency: number;
};
medium: {
totalCost: number;
avgCost: number;
costEfficiency: number;
};
deep: {
totalCost: number;
avgCost: number;
costEfficiency: number;
};
marathon: {
totalCost: number;
avgCost: number;
costEfficiency: number;
};
};
mostCostEfficient: string;
};
insights: string[];
recommendations: string[];
}
export declare class ConversationLengthAnalyzer {
private conversations;
private extractProjectName;
loadConversations(entries: UsageEntry[]): void;
analyzeConversationLengths(): ConversationLengthAnalysis;
private generateConversationInsights;
private categorizeLengthByMessages;
private analyzeFollowUpPattern;
private analyzeSuccessIndicators;
private hasQuickFollowUp;
private seemsCompleted;
private generateProjectProfiles;
private generateSingleProjectProfile;
private calculateEfficiencyByLength;
private calculateProjectOptimalRange;
private generateProjectRecommendations;
private calculateOptimalRange;
private calculateLengthDistribution;
private calculateCostAnalysis;
private generateInsights;
private generateRecommendations;
}
//# sourceMappingURL=conversation-length-analytics.d.ts.map