1// Code generated by sqlc. DO NOT EDIT.
13const getAverageResponseTime = `-- name: GetAverageResponseTime :one
15 CAST(COALESCE(AVG(finished_at - created_at), 0) AS INTEGER) as avg_response_seconds
17WHERE role = 'assistant'
18 AND finished_at IS NOT NULL
19 AND finished_at > created_at
22func (q *Queries) GetAverageResponseTime(ctx context.Context) (int64, error) {
23 row := q.queryRow(ctx, q.getAverageResponseTimeStmt, getAverageResponseTime)
24 var avg_response_seconds int64
25 err := row.Scan(&avg_response_seconds)
26 return avg_response_seconds, err
29const getHourDayHeatmap = `-- name: GetHourDayHeatmap :many
31 CAST(strftime('%w', created_at, 'unixepoch') AS INTEGER) as day_of_week,
32 CAST(strftime('%H', created_at, 'unixepoch') AS INTEGER) as hour,
33 COUNT(*) as session_count
35WHERE parent_session_id IS NULL
36GROUP BY day_of_week, hour
37ORDER BY day_of_week, hour
40type GetHourDayHeatmapRow struct {
41 DayOfWeek int64 `json:"day_of_week"`
42 Hour int64 `json:"hour"`
43 SessionCount int64 `json:"session_count"`
46func (q *Queries) GetHourDayHeatmap(ctx context.Context) ([]GetHourDayHeatmapRow, error) {
47 rows, err := q.query(ctx, q.getHourDayHeatmapStmt, getHourDayHeatmap)
52 items := []GetHourDayHeatmapRow{}
54 var i GetHourDayHeatmapRow
55 if err := rows.Scan(&i.DayOfWeek, &i.Hour, &i.SessionCount); err != nil {
58 items = append(items, i)
60 if err := rows.Close(); err != nil {
63 if err := rows.Err(); err != nil {
69const getRecentActivity = `-- name: GetRecentActivity :many
71 date(created_at, 'unixepoch') as day,
72 COUNT(*) as session_count,
73 SUM(prompt_tokens + completion_tokens) as total_tokens,
76WHERE parent_session_id IS NULL
77 AND created_at >= strftime('%s', 'now', '-30 days')
78GROUP BY date(created_at, 'unixepoch')
82type GetRecentActivityRow struct {
83 Day interface{} `json:"day"`
84 SessionCount int64 `json:"session_count"`
85 TotalTokens sql.NullFloat64 `json:"total_tokens"`
86 Cost sql.NullFloat64 `json:"cost"`
89func (q *Queries) GetRecentActivity(ctx context.Context) ([]GetRecentActivityRow, error) {
90 rows, err := q.query(ctx, q.getRecentActivityStmt, getRecentActivity)
95 items := []GetRecentActivityRow{}
97 var i GetRecentActivityRow
106 items = append(items, i)
108 if err := rows.Close(); err != nil {
111 if err := rows.Err(); err != nil {
117const getToolUsage = `-- name: GetToolUsage :many
119 json_extract(value, '$.data.name') as tool_name,
120 COUNT(*) as call_count
121FROM messages, json_each(parts)
122WHERE json_extract(value, '$.type') = 'tool_call'
123 AND json_extract(value, '$.data.name') IS NOT NULL
125ORDER BY call_count DESC
128type GetToolUsageRow struct {
129 ToolName interface{} `json:"tool_name"`
130 CallCount int64 `json:"call_count"`
133func (q *Queries) GetToolUsage(ctx context.Context) ([]GetToolUsageRow, error) {
134 rows, err := q.query(ctx, q.getToolUsageStmt, getToolUsage)
139 items := []GetToolUsageRow{}
141 var i GetToolUsageRow
142 if err := rows.Scan(&i.ToolName, &i.CallCount); err != nil {
145 items = append(items, i)
147 if err := rows.Close(); err != nil {
150 if err := rows.Err(); err != nil {
156const getTotalStats = `-- name: GetTotalStats :one
158 COUNT(*) as total_sessions,
159 COALESCE(SUM(prompt_tokens), 0) as total_prompt_tokens,
160 COALESCE(SUM(completion_tokens), 0) as total_completion_tokens,
161 COALESCE(SUM(cost), 0) as total_cost,
162 COALESCE(SUM(message_count), 0) as total_messages,
163 COALESCE(AVG(prompt_tokens + completion_tokens), 0) as avg_tokens_per_session,
164 COALESCE(AVG(message_count), 0) as avg_messages_per_session
166WHERE parent_session_id IS NULL
169type GetTotalStatsRow struct {
170 TotalSessions int64 `json:"total_sessions"`
171 TotalPromptTokens interface{} `json:"total_prompt_tokens"`
172 TotalCompletionTokens interface{} `json:"total_completion_tokens"`
173 TotalCost interface{} `json:"total_cost"`
174 TotalMessages interface{} `json:"total_messages"`
175 AvgTokensPerSession interface{} `json:"avg_tokens_per_session"`
176 AvgMessagesPerSession interface{} `json:"avg_messages_per_session"`
179func (q *Queries) GetTotalStats(ctx context.Context) (GetTotalStatsRow, error) {
180 row := q.queryRow(ctx, q.getTotalStatsStmt, getTotalStats)
181 var i GetTotalStatsRow
184 &i.TotalPromptTokens,
185 &i.TotalCompletionTokens,
188 &i.AvgTokensPerSession,
189 &i.AvgMessagesPerSession,
194const getUsageByDay = `-- name: GetUsageByDay :many
196 date(created_at, 'unixepoch') as day,
197 SUM(prompt_tokens) as prompt_tokens,
198 SUM(completion_tokens) as completion_tokens,
200 COUNT(*) as session_count
202WHERE parent_session_id IS NULL
203GROUP BY date(created_at, 'unixepoch')
207type GetUsageByDayRow struct {
208 Day interface{} `json:"day"`
209 PromptTokens sql.NullFloat64 `json:"prompt_tokens"`
210 CompletionTokens sql.NullFloat64 `json:"completion_tokens"`
211 Cost sql.NullFloat64 `json:"cost"`
212 SessionCount int64 `json:"session_count"`
215func (q *Queries) GetUsageByDay(ctx context.Context) ([]GetUsageByDayRow, error) {
216 rows, err := q.query(ctx, q.getUsageByDayStmt, getUsageByDay)
221 items := []GetUsageByDayRow{}
223 var i GetUsageByDayRow
233 items = append(items, i)
235 if err := rows.Close(); err != nil {
238 if err := rows.Err(); err != nil {
244const getUsageByDayOfWeek = `-- name: GetUsageByDayOfWeek :many
246 CAST(strftime('%w', created_at, 'unixepoch') AS INTEGER) as day_of_week,
247 COUNT(*) as session_count,
248 SUM(prompt_tokens) as prompt_tokens,
249 SUM(completion_tokens) as completion_tokens
251WHERE parent_session_id IS NULL
256type GetUsageByDayOfWeekRow struct {
257 DayOfWeek int64 `json:"day_of_week"`
258 SessionCount int64 `json:"session_count"`
259 PromptTokens sql.NullFloat64 `json:"prompt_tokens"`
260 CompletionTokens sql.NullFloat64 `json:"completion_tokens"`
263func (q *Queries) GetUsageByDayOfWeek(ctx context.Context) ([]GetUsageByDayOfWeekRow, error) {
264 rows, err := q.query(ctx, q.getUsageByDayOfWeekStmt, getUsageByDayOfWeek)
269 items := []GetUsageByDayOfWeekRow{}
271 var i GetUsageByDayOfWeekRow
280 items = append(items, i)
282 if err := rows.Close(); err != nil {
285 if err := rows.Err(); err != nil {
291const getUsageByHour = `-- name: GetUsageByHour :many
293 CAST(strftime('%H', created_at, 'unixepoch') AS INTEGER) as hour,
294 COUNT(*) as session_count
296WHERE parent_session_id IS NULL
301type GetUsageByHourRow struct {
302 Hour int64 `json:"hour"`
303 SessionCount int64 `json:"session_count"`
306func (q *Queries) GetUsageByHour(ctx context.Context) ([]GetUsageByHourRow, error) {
307 rows, err := q.query(ctx, q.getUsageByHourStmt, getUsageByHour)
312 items := []GetUsageByHourRow{}
314 var i GetUsageByHourRow
315 if err := rows.Scan(&i.Hour, &i.SessionCount); err != nil {
318 items = append(items, i)
320 if err := rows.Close(); err != nil {
323 if err := rows.Err(); err != nil {
329const getUsageByModel = `-- name: GetUsageByModel :many
331 COALESCE(model, 'unknown') as model,
332 COALESCE(provider, 'unknown') as provider,
333 COUNT(*) as message_count
335WHERE role = 'assistant'
336GROUP BY model, provider
337ORDER BY message_count DESC
340type GetUsageByModelRow struct {
341 Model string `json:"model"`
342 Provider string `json:"provider"`
343 MessageCount int64 `json:"message_count"`
346func (q *Queries) GetUsageByModel(ctx context.Context) ([]GetUsageByModelRow, error) {
347 rows, err := q.query(ctx, q.getUsageByModelStmt, getUsageByModel)
352 items := []GetUsageByModelRow{}
354 var i GetUsageByModelRow
355 if err := rows.Scan(&i.Model, &i.Provider, &i.MessageCount); err != nil {
358 items = append(items, i)
360 if err := rows.Close(); err != nil {
363 if err := rows.Err(); err != nil {
keysesc to close
- j k
- move down, up
- enter
- open
- esc
- back, or up a level
- 1 2 3 4
- readme, files, commits, refs
- /
- filter
- y
- copy the clone command
- c
- compare the chosen commit with another (or shift-click both)
- ?
- show or hide this list