UNPKG

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
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