Simplify code found by simplicity audit of d6be98f
This commit is contained in:
+17
-45
@@ -943,42 +943,38 @@ func participants(ctx context.Context, q querier, taskID string) ([]api.Particip
|
||||
|
||||
const eventColumns = `seq, kind, project_id, task_id, agent_session_id, owner, actor, payload, created_at`
|
||||
|
||||
func (s *Store) EventsAfter(ctx context.Context, viewer string, after int64, limit int) ([]api.Event, error) {
|
||||
rows, err := s.db.QueryContext(ctx, `
|
||||
SELECT `+eventColumns+`
|
||||
FROM events WHERE seq > ? AND (owner IS NULL OR owner = ?) ORDER BY seq LIMIT ?
|
||||
`, after, viewer, limit)
|
||||
func (s *Store) queryEvents(ctx context.Context, query string, args ...any) ([]api.Event, error) {
|
||||
rows, err := s.db.QueryContext(ctx, query, args...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return scanEvents(rows)
|
||||
}
|
||||
|
||||
func (s *Store) EventsAfter(ctx context.Context, viewer string, after int64, limit int) ([]api.Event, error) {
|
||||
return s.queryEvents(ctx, `
|
||||
SELECT `+eventColumns+`
|
||||
FROM events WHERE seq > ? AND (owner IS NULL OR owner = ?) ORDER BY seq LIMIT ?
|
||||
`, after, viewer, limit)
|
||||
}
|
||||
|
||||
func (s *Store) TaskEvents(ctx context.Context, taskID string, after int64, limit int) ([]api.Event, error) {
|
||||
rows, err := s.db.QueryContext(ctx, `
|
||||
return s.queryEvents(ctx, `
|
||||
SELECT `+eventColumns+`
|
||||
FROM events WHERE task_id = ? AND seq > ? ORDER BY seq LIMIT ?
|
||||
`, taskID, after, limit)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return scanEvents(rows)
|
||||
}
|
||||
|
||||
// ForkEvents returns only the payload fields needed to find a safe conversation boundary.
|
||||
// Tool results can contain large captures that would otherwise be decoded just to discard them.
|
||||
func (s *Store) ForkEvents(ctx context.Context, taskID, sessionID string) ([]api.Event, error) {
|
||||
rows, err := s.db.QueryContext(ctx, `
|
||||
return s.queryEvents(ctx, `
|
||||
SELECT seq, kind, project_id, task_id, agent_session_id, owner, actor,
|
||||
json_object('vendor_uuid', json_extract(payload, '$.vendor_uuid'),
|
||||
'id', json_extract(payload, '$.id'), 'tool_use_id', json_extract(payload, '$.tool_use_id')),
|
||||
created_at
|
||||
FROM events WHERE task_id = ? AND agent_session_id = ? ORDER BY seq
|
||||
`, taskID, sessionID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return scanEvents(rows)
|
||||
}
|
||||
|
||||
func (s *Store) TranscriptEvents(ctx context.Context, taskID string, after int64, limit int) ([]api.Event, error) {
|
||||
@@ -1007,11 +1003,7 @@ func (s *Store) TranscriptEvents(ctx context.Context, taskID string, after int64
|
||||
id = from
|
||||
}
|
||||
// Merge the indexed ranges in sequence order instead of sorting the remaining history for every page.
|
||||
rows, err := s.db.QueryContext(ctx, query+" ORDER BY seq LIMIT ?", append(args, limit)...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return scanEvents(rows)
|
||||
return s.queryEvents(ctx, query+" ORDER BY seq LIMIT ?", append(args, limit)...)
|
||||
}
|
||||
|
||||
func (s *Store) FirstPrompt(ctx context.Context, taskID string) (string, error) {
|
||||
@@ -1024,14 +1016,10 @@ func (s *Store) FirstPrompt(ctx context.Context, taskID string) (string, error)
|
||||
}
|
||||
|
||||
func (s *Store) LastMessage(ctx context.Context, sessionID string) (api.Event, bool, error) {
|
||||
rows, err := s.db.QueryContext(ctx, `
|
||||
evs, err := s.queryEvents(ctx, `
|
||||
SELECT `+eventColumns+`
|
||||
FROM events WHERE agent_session_id = ? AND kind = 'user.message' ORDER BY seq DESC LIMIT 1
|
||||
`, sessionID)
|
||||
if err != nil {
|
||||
return api.Event{}, false, err
|
||||
}
|
||||
evs, err := scanEvents(rows)
|
||||
if err != nil || len(evs) == 0 {
|
||||
return api.Event{}, false, err
|
||||
}
|
||||
@@ -1039,24 +1027,16 @@ func (s *Store) LastMessage(ctx context.Context, sessionID string) (api.Event, b
|
||||
}
|
||||
|
||||
func (s *Store) BoardPosts(ctx context.Context, taskID string, after int64) ([]api.Event, error) {
|
||||
rows, err := s.db.QueryContext(ctx, `
|
||||
return s.queryEvents(ctx, `
|
||||
SELECT `+eventColumns+`
|
||||
FROM events WHERE task_id = ? AND kind = 'board.posted' AND seq > ? ORDER BY seq
|
||||
`, taskID, after)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return scanEvents(rows)
|
||||
}
|
||||
|
||||
func (s *Store) TaskEventsTail(ctx context.Context, taskID string, limit int) ([]api.Event, error) {
|
||||
rows, err := s.db.QueryContext(ctx, `
|
||||
return s.queryEvents(ctx, `
|
||||
SELECT * FROM (SELECT `+eventColumns+` FROM events WHERE task_id = ? ORDER BY seq DESC LIMIT ?) ORDER BY seq
|
||||
`, taskID, limit)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return scanEvents(rows)
|
||||
}
|
||||
|
||||
type Handoff struct {
|
||||
@@ -1116,14 +1096,10 @@ func sessionStopped(ctx context.Context, q querier, taskID, sessionID string) (b
|
||||
}
|
||||
|
||||
func (s *Store) LeadEvents(ctx context.Context, owner string, after int64, limit int) ([]api.Event, error) {
|
||||
rows, err := s.db.QueryContext(ctx, `
|
||||
return s.queryEvents(ctx, `
|
||||
SELECT `+eventColumns+`
|
||||
FROM events WHERE owner = ? AND agent_session_id IS NOT NULL AND seq > ? ORDER BY seq LIMIT ?
|
||||
`, owner, after, limit)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return scanEvents(rows)
|
||||
}
|
||||
|
||||
func (s *Store) LeadEventsPage(ctx context.Context, owner string, before int64, turns int) (api.EventPage, error) {
|
||||
@@ -1139,17 +1115,13 @@ func (s *Store) LeadEventsPage(ctx context.Context, owner string, before int64,
|
||||
return api.EventPage{}, err
|
||||
}
|
||||
|
||||
rows, err := s.db.QueryContext(ctx, `
|
||||
events, err := s.queryEvents(ctx, `
|
||||
SELECT `+eventColumns+`
|
||||
FROM events WHERE owner = ? AND agent_session_id IS NOT NULL AND seq > ? AND seq < ? ORDER BY seq
|
||||
`, owner, from, before)
|
||||
if err != nil {
|
||||
return api.EventPage{}, err
|
||||
}
|
||||
events, err := scanEvents(rows)
|
||||
if err != nil {
|
||||
return api.EventPage{}, err
|
||||
}
|
||||
return api.EventPage{Events: events, More: more}, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -260,15 +260,11 @@ func (s *Store) RunTasks(ctx context.Context, run string) ([]api.Task, error) {
|
||||
}
|
||||
|
||||
func (s *Store) RunEvents(ctx context.Context, run string) ([]api.Event, error) {
|
||||
rows, err := s.db.QueryContext(ctx, `
|
||||
return s.queryEvents(ctx, `
|
||||
SELECT `+eventColumns+` FROM events
|
||||
WHERE task_id IN (SELECT id FROM tasks WHERE parent_task_id = ?1 AND workflow_stage != '') AND kind IN ('task.workflow_stage', 'task.discarded')
|
||||
ORDER BY seq
|
||||
`, run)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return scanEvents(rows)
|
||||
}
|
||||
|
||||
func (s *Store) RecordStage(ctx context.Context, taskID, output, commit string) error {
|
||||
|
||||
Reference in New Issue
Block a user