2026-07-17 15:45:25 +08:00
|
|
|
|
export interface ActiveSessionEntry {
|
|
|
|
|
|
session_id: string;
|
|
|
|
|
|
pid?: number;
|
|
|
|
|
|
cwd?: string;
|
|
|
|
|
|
opened_at?: string;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface SessionSignals {
|
|
|
|
|
|
contextWindowUsage?: number;
|
|
|
|
|
|
contextTokensUsed?: number;
|
|
|
|
|
|
contextWindowTokens?: number;
|
|
|
|
|
|
turnCount?: number;
|
|
|
|
|
|
toolCallCount?: number;
|
|
|
|
|
|
toolFailureCount?: number;
|
|
|
|
|
|
errorCount?: number;
|
|
|
|
|
|
userMessageCount?: number;
|
|
|
|
|
|
assistantMessageCount?: number;
|
|
|
|
|
|
toolsUsed?: string[];
|
|
|
|
|
|
modelsUsed?: string[];
|
|
|
|
|
|
primaryModelId?: string;
|
|
|
|
|
|
sessionDurationSeconds?: number;
|
|
|
|
|
|
agentLinesAdded?: number;
|
|
|
|
|
|
agentLinesRemoved?: number;
|
|
|
|
|
|
compactionCount?: number;
|
|
|
|
|
|
avgTimeToFirstTokenMs?: number;
|
|
|
|
|
|
[key: string]: unknown;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface SessionSummary {
|
|
|
|
|
|
info?: { id?: string; cwd?: string };
|
|
|
|
|
|
session_summary?: string;
|
|
|
|
|
|
generated_title?: string;
|
|
|
|
|
|
current_model_id?: string;
|
|
|
|
|
|
head_branch?: string;
|
|
|
|
|
|
git_root_dir?: string;
|
|
|
|
|
|
last_active_at?: string;
|
|
|
|
|
|
updated_at?: string;
|
|
|
|
|
|
created_at?: string;
|
|
|
|
|
|
agent_name?: string;
|
|
|
|
|
|
reasoning_effort?: string;
|
|
|
|
|
|
sandbox_profile?: string;
|
|
|
|
|
|
[key: string]: unknown;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface ToolActivityItem {
|
|
|
|
|
|
id: string;
|
|
|
|
|
|
name: string;
|
|
|
|
|
|
status: "running" | "completed" | "failed" | "unknown";
|
|
|
|
|
|
detail?: string;
|
|
|
|
|
|
count?: number;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface AgentActivityItem {
|
|
|
|
|
|
id?: string;
|
|
|
|
|
|
title?: string;
|
|
|
|
|
|
status?: string;
|
|
|
|
|
|
detail?: string;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface TodoItem {
|
|
|
|
|
|
content: string;
|
|
|
|
|
|
status: "pending" | "in_progress" | "completed" | "cancelled" | string;
|
|
|
|
|
|
id?: string;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-07-17 16:27:35 +08:00
|
|
|
|
/** Per-turn or session-sum token usage from turn_completed events. */
|
|
|
|
|
|
export interface TokenBreakdown {
|
|
|
|
|
|
inputTokens: number;
|
|
|
|
|
|
outputTokens: number;
|
|
|
|
|
|
cachedReadTokens: number;
|
|
|
|
|
|
reasoningTokens: number;
|
|
|
|
|
|
totalTokens: number;
|
|
|
|
|
|
modelCalls: number;
|
|
|
|
|
|
/** cachedRead / input * 100 (0–100). */
|
|
|
|
|
|
cacheHitPct: number;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-07-17 15:45:25 +08:00
|
|
|
|
export interface SessionSnapshot {
|
|
|
|
|
|
sessionId: string;
|
|
|
|
|
|
sessionDir: string;
|
|
|
|
|
|
cwd: string;
|
|
|
|
|
|
model: string;
|
|
|
|
|
|
title?: string;
|
|
|
|
|
|
branch?: string;
|
|
|
|
|
|
gitDirty?: boolean;
|
|
|
|
|
|
gitAhead?: number;
|
|
|
|
|
|
gitBehind?: number;
|
|
|
|
|
|
live: boolean;
|
|
|
|
|
|
pid?: number;
|
|
|
|
|
|
contextPercent: number;
|
|
|
|
|
|
contextTokensUsed: number;
|
|
|
|
|
|
contextWindowTokens: number;
|
|
|
|
|
|
turnCount: number;
|
|
|
|
|
|
userMessageCount: number;
|
|
|
|
|
|
toolCallCount: number;
|
|
|
|
|
|
toolFailureCount: number;
|
|
|
|
|
|
errorCount: number;
|
|
|
|
|
|
durationSeconds: number;
|
|
|
|
|
|
agentLinesAdded: number;
|
|
|
|
|
|
agentLinesRemoved: number;
|
|
|
|
|
|
compactionCount: number;
|
|
|
|
|
|
avgTtftMs: number;
|
|
|
|
|
|
agentName?: string;
|
|
|
|
|
|
reasoningEffort?: string;
|
2026-07-17 16:27:35 +08:00
|
|
|
|
/** Last completed turn's input/output/cache (exact counts). */
|
|
|
|
|
|
lastTurnTokens?: TokenBreakdown | null;
|
|
|
|
|
|
/** Sum of turn_completed usage over the session. */
|
|
|
|
|
|
sessionTokens?: TokenBreakdown | null;
|
2026-07-17 15:45:25 +08:00
|
|
|
|
tools: ToolActivityItem[];
|
|
|
|
|
|
agents: AgentActivityItem[];
|
|
|
|
|
|
todos: TodoItem[];
|
|
|
|
|
|
signals: SessionSignals;
|
|
|
|
|
|
summary?: SessionSummary;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface UsageSnapshot {
|
|
|
|
|
|
available: boolean;
|
|
|
|
|
|
percent?: number;
|
|
|
|
|
|
used?: number;
|
|
|
|
|
|
limit?: number;
|
|
|
|
|
|
period?: string;
|
|
|
|
|
|
resetsIn?: string;
|
|
|
|
|
|
message?: string;
|
|
|
|
|
|
source?: string;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface RenderOptions {
|
|
|
|
|
|
color: boolean;
|
|
|
|
|
|
tmux: boolean;
|
|
|
|
|
|
compact: boolean;
|
|
|
|
|
|
pathLevels: number;
|
|
|
|
|
|
warningThreshold: number;
|
|
|
|
|
|
criticalThreshold: number;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export interface HudConfig {
|
|
|
|
|
|
pathLevels: number;
|
|
|
|
|
|
refreshMs: number;
|
|
|
|
|
|
warningThreshold: number;
|
|
|
|
|
|
criticalThreshold: number;
|
|
|
|
|
|
showUsage: boolean;
|
|
|
|
|
|
usageCacheTtlMs: number;
|
|
|
|
|
|
}
|