feat: compact command with auto-compact

This commit is contained in:
adamdottv
2025-05-02 09:24:24 -05:00
committed by Adam
parent 364cf5b429
commit 49423da081
16 changed files with 507 additions and 73 deletions

View File

@@ -1,6 +1,6 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.27.0
// sqlc v1.29.0
// source: sessions.sql
package db
@@ -19,6 +19,8 @@ INSERT INTO sessions (
prompt_tokens,
completion_tokens,
cost,
summary,
summarized_at,
updated_at,
created_at
) VALUES (
@@ -29,9 +31,11 @@ INSERT INTO sessions (
?,
?,
?,
?,
?,
strftime('%s', 'now'),
strftime('%s', 'now')
) RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at
) RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary, summarized_at
`
type CreateSessionParams struct {
@@ -42,6 +46,8 @@ type CreateSessionParams struct {
PromptTokens int64 `json:"prompt_tokens"`
CompletionTokens int64 `json:"completion_tokens"`
Cost float64 `json:"cost"`
Summary sql.NullString `json:"summary"`
SummarizedAt sql.NullInt64 `json:"summarized_at"`
}
func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (Session, error) {
@@ -53,6 +59,8 @@ func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (S
arg.PromptTokens,
arg.CompletionTokens,
arg.Cost,
arg.Summary,
arg.SummarizedAt,
)
var i Session
err := row.Scan(
@@ -65,6 +73,8 @@ func (q *Queries) CreateSession(ctx context.Context, arg CreateSessionParams) (S
&i.Cost,
&i.UpdatedAt,
&i.CreatedAt,
&i.Summary,
&i.SummarizedAt,
)
return i, err
}
@@ -80,7 +90,7 @@ func (q *Queries) DeleteSession(ctx context.Context, id string) error {
}
const getSessionByID = `-- name: GetSessionByID :one
SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at
SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary, summarized_at
FROM sessions
WHERE id = ? LIMIT 1
`
@@ -98,12 +108,14 @@ func (q *Queries) GetSessionByID(ctx context.Context, id string) (Session, error
&i.Cost,
&i.UpdatedAt,
&i.CreatedAt,
&i.Summary,
&i.SummarizedAt,
)
return i, err
}
const listSessions = `-- name: ListSessions :many
SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at
SELECT id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary, summarized_at
FROM sessions
WHERE parent_session_id is NULL
ORDER BY created_at DESC
@@ -128,6 +140,8 @@ func (q *Queries) ListSessions(ctx context.Context) ([]Session, error) {
&i.Cost,
&i.UpdatedAt,
&i.CreatedAt,
&i.Summary,
&i.SummarizedAt,
); err != nil {
return nil, err
}
@@ -148,17 +162,21 @@ SET
title = ?,
prompt_tokens = ?,
completion_tokens = ?,
cost = ?
cost = ?,
summary = ?,
summarized_at = ?
WHERE id = ?
RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at
RETURNING id, parent_session_id, title, message_count, prompt_tokens, completion_tokens, cost, updated_at, created_at, summary, summarized_at
`
type UpdateSessionParams struct {
Title string `json:"title"`
PromptTokens int64 `json:"prompt_tokens"`
CompletionTokens int64 `json:"completion_tokens"`
Cost float64 `json:"cost"`
ID string `json:"id"`
Title string `json:"title"`
PromptTokens int64 `json:"prompt_tokens"`
CompletionTokens int64 `json:"completion_tokens"`
Cost float64 `json:"cost"`
Summary sql.NullString `json:"summary"`
SummarizedAt sql.NullInt64 `json:"summarized_at"`
ID string `json:"id"`
}
func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) (Session, error) {
@@ -167,6 +185,8 @@ func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) (S
arg.PromptTokens,
arg.CompletionTokens,
arg.Cost,
arg.Summary,
arg.SummarizedAt,
arg.ID,
)
var i Session
@@ -180,6 +200,8 @@ func (q *Queries) UpdateSession(ctx context.Context, arg UpdateSessionParams) (S
&i.Cost,
&i.UpdatedAt,
&i.CreatedAt,
&i.Summary,
&i.SummarizedAt,
)
return i, err
}