import type { SessionSystemPromptReport } from "../config/sessions/types.js"; import type { CostUsageSummary, SessionCostSummary, SessionDailyLatency, SessionDailyModelUsage, SessionLatencyStats, SessionMessageCounts, SessionModelUsage, SessionToolUsage, } from "../infra/session-cost-usage.js"; export type SessionUsageEntry = { key: string; label?: string; sessionId?: string; updatedAt?: number; agentId?: string; channel?: string; chatType?: string; origin?: { label?: string; provider?: string; surface?: string; chatType?: string; from?: string; to?: string; accountId?: string; threadId?: string | number; }; modelOverride?: string; providerOverride?: string; modelProvider?: string; model?: string; usage: SessionCostSummary | null; contextWeight?: SessionSystemPromptReport | null; }; export type SessionsUsageAggregates = { messages: SessionMessageCounts; tools: SessionToolUsage; byModel: SessionModelUsage[]; byProvider: SessionModelUsage[]; byAgent: Array<{ agentId: string; totals: CostUsageSummary["totals"] }>; byChannel: Array<{ channel: string; totals: CostUsageSummary["totals"] }>; latency?: SessionLatencyStats; dailyLatency?: SessionDailyLatency[]; modelDaily?: SessionDailyModelUsage[]; daily: Array<{ date: string; tokens: number; cost: number; messages: number; toolCalls: number; errors: number; }>; }; export type SessionsUsageResult = { updatedAt: number; startDate: string; endDate: string; sessions: SessionUsageEntry[]; totals: CostUsageSummary["totals"]; aggregates: SessionsUsageAggregates; };