UNPKG

claude-usage-tracker

Version:

Advanced analytics for Claude Code usage with cost optimization, conversation length analysis, and rate limit tracking

94 lines 3.05 kB
import type { UsageEntry } from "./types.js"; export interface ConversationCluster { id: string; type: "coding" | "analysis" | "writing" | "debugging" | "other"; conversations: Array<{ conversationId: string; cost: number; tokens: number; duration: number; efficiency: number; }>; avgCost: number; avgTokens: number; avgEfficiency: number; optimizationPotential: number; recommendations: string[]; } export interface BatchProcessingOpportunity { conversationId: string; currentCost: number; batchCost: number; savings: number; eligibilityScore: number; reasoning: string; timeToProcess: number; } export interface ModelSwitchingRecommendation { conversationId: string; currentModel: string; recommendedModel: string; currentCost: number; projectedCost: number; savings: number; confidence: number; riskLevel: "low" | "medium" | "high"; reasoning: string; } export interface OptimizationSummary { totalPotentialSavings: number; batchProcessingSavings: number; modelSwitchingSavings: number; efficiencyImprovements: number; recommendations: Array<{ type: "batch" | "model_switch" | "efficiency"; description: string; savings: number; effort: "low" | "medium" | "high"; }>; } export declare class OptimizationAnalyzer { private readonly BATCH_API_DISCOUNT; private readonly MIN_BATCH_COST; clusterConversations(entries: UsageEntry[]): ConversationCluster[]; identifyBatchProcessingOpportunities(entries: UsageEntry[]): { opportunities: BatchProcessingOpportunity[]; totalPotentialSavings: number; }; generateModelSwitchingRecommendations(entries: UsageEntry[]): { recommendations: ModelSwitchingRecommendation[]; totalPotentialSavings: number; }; generateOptimizationSummary(entries: UsageEntry[]): OptimizationSummary; private groupByConversation; private classifyConversationType; private calculateConversationDuration; private calculateClusterStats; private generateClusterRecommendations; private calculateBatchEligibility; private calculateAvgTimeBetweenMessages; private getBatchEligibilityReasoning; private estimateBatchProcessingTime; private analyzeModelSwitch; private assessConversationComplexity; private detectCodeContext; analyzeConversationClusters(entries: UsageEntry[]): { clusters: { conversationIds: string[]; characteristics: { avgTokens: number; avgCost: number; complexity: number; }; optimization: { potentialSavings: number; recommendation: string; }; }[]; totalConversations: number; avgClusterSize: number; }; private removeBatchOverlaps; private calculateComplexityScore; } //# sourceMappingURL=optimization-analytics.d.ts.map