UNPKG

claude-sesh

Version:

Session explorer for Claude Code - find, search, and resume all your past sessions

258 lines 6.1 kB
export interface ClaudeMessage { type: 'user' | 'assistant' | 'summary' | 'file-history-snapshot'; uuid: string; parentUuid: string | null; timestamp: string; sessionId: string; cwd: string; gitBranch?: string; version?: string; message?: { role: 'user' | 'assistant'; content: string | ContentBlock[]; model?: string; id?: string; usage?: TokenUsage; }; summary?: string; leafUuid?: string; toolUseResult?: string; todos?: TodoItem[]; } export interface ContentBlock { type: 'text' | 'tool_use' | 'tool_result' | 'thinking'; text?: string; thinking?: string; name?: string; input?: Record<string, unknown>; content?: string; is_error?: boolean; tool_use_id?: string; } export interface TokenUsage { input_tokens: number; output_tokens: number; cache_creation_input_tokens?: number; cache_read_input_tokens?: number; } export interface TodoItem { content: string; status: 'pending' | 'in_progress' | 'completed'; } export interface ParsedSession { id: string; projectPath: string; projectName: string; startedAt: Date; endedAt: Date | null; durationSeconds: number; gitBranch: string | null; inputTokens: number; outputTokens: number; totalTokens: number; estimatedCostUsd: number; summaries: string[]; messageCount: number; userMessageCount: number; assistantMessageCount: number; toolCalls: ToolCall[]; toolCallCount: number; filesRead: string[]; filesWritten: string[]; filesEdited: string[]; errors: SessionError[]; model: string; } export interface ToolCall { name: string; timestamp: string; input: Record<string, unknown>; result?: string; isError: boolean; durationMs?: number; } export interface SessionError { timestamp: string; message: string; toolName?: string; context?: string; } export interface SessionListItem { id: string; projectName: string; projectPath: string; startedAt: Date; duration: string; summary: string; totalTokens: number; cost: string; model: string; messageCount: number; toolCallCount: number; } export interface SessionStats { totalSessions: number; totalTokens: number; totalCost: number; totalDuration: number; averageSessionDuration: number; sessionsToday: number; tokensToday: number; projectBreakdown: { project: string; sessions: number; tokens: number; }[]; modelBreakdown: { model: string; sessions: number; tokens: number; }[]; dailyActivity: { date: string; sessions: number; tokens: number; messages: number; }[]; } export interface ResumeContext { session: ParsedSession; lastSummary: string; recentFiles: string[]; openTodos: TodoItem[]; lastUserMessage: string; resumePrompt: string; } export interface DailyActivity { date: string; messageCount: number; sessionCount: number; toolCallCount: number; tokenCount?: number; costUsd?: number; } export interface StatsCache { version: number; lastComputedDate: string; dailyActivity: DailyActivity[]; } export interface HourlyActivityMap { [dayOfWeek: number]: { [hour: number]: number; }; } export interface HeatmapData { cells: HeatmapCell[]; maxValue: number; totalDays: number; weekStart: Date; weekEnd: Date; } export interface HeatmapCell { date: string; dayOfWeek: number; week: number; value: number; sessions?: number; messages?: number; tools?: number; tokens?: number; } export interface CommandHistoryEntry { display: string; timestamp: number; project: string; pastedContents?: Record<string, unknown>; } export interface PlanFile { name: string; path: string; content: string; createdAt: Date; modifiedAt: Date; size: number; } export interface LeaderboardEntry { rank: number; name: string; value: number; secondaryValue?: number; trend?: 'up' | 'down' | 'same'; metadata?: Record<string, unknown>; } export interface Leaderboard { type: 'projects' | 'models' | 'tools' | 'days' | 'sessions'; title: string; entries: LeaderboardEntry[]; metric: string; secondaryMetric?: string; } export interface TimelineEvent { id: string; type: 'session_start' | 'session_end' | 'message' | 'tool_call' | 'error'; timestamp: Date; sessionId: string; projectName: string; details?: { tool?: string; message?: string; tokens?: number; isError?: boolean; }; } export interface TimelineData { events: TimelineEvent[]; sessions: { id: string; projectName: string; startedAt: Date; endedAt: Date | null; durationSeconds: number; model: string; tokens: number; }[]; dateRange: { start: Date; end: Date; }; } export interface EnrichedSession { sessionId: string; enrichedAt: Date; summary: string; decisions: string[]; problems: { issue: string; solution: string; }[]; knowledge: string[]; tags: string[]; sentiment: 'productive' | 'challenging' | 'exploratory' | 'maintenance'; } export interface KnowledgeSearchResult { sessionId: string; projectName: string; date: Date; matchType: 'summary' | 'file' | 'error' | 'tool' | 'enriched'; snippet: string; relevanceScore: number; } export interface TrackedIssue { id: string; pattern: string; errorMessage: string; occurrences: { sessionId: string; timestamp: Date; context?: string; }[]; firstSeen: Date; lastSeen: Date; status: 'open' | 'resolved' | 'recurring'; resolution?: { sessionId: string; timestamp: Date; description?: string; }; } //# sourceMappingURL=index.d.ts.map