package server import ( "net/http" "strconv" ) // pgListCommands returns tool executions (any tool) from the activity table. func (s *Server) pgListCommands(w http.ResponseWriter, r *http.Request) { q := r.URL.Query() page := atoiDefault(q.Get("page"), 0) size := atoiDefault(q.Get("size"), 50) keyword := q.Get("q") var expID *int64 if tv := q.Get("task"); tv != "" { if n, err := strconv.ParseInt(tv, 10, 64); err == nil { expID = &n } } records, total, err := s.m.PG().ListCommands(expID, keyword, page, size) if err != nil { writeErr(w, 500, err.Error()) return } writeJSON(w, 200, map[string]any{"commands": records, "total": total}) } // pgListLLMRecords returns paginated LLM call records. func (s *Server) pgListLLMRecords(w http.ResponseWriter, r *http.Request) { q := r.URL.Query() page := atoiDefault(q.Get("page"), 0) size := atoiDefault(q.Get("size"), 50) model := q.Get("model") session := q.Get("session") records, total, err := s.m.PG().ListLLMRecords(model, session, page, size) if err != nil { writeErr(w, 500, err.Error()) return } writeJSON(w, 200, map[string]any{"records": records, "total": total}) } // pgGetLLMRecord returns a single LLM record with full request/response bodies. func (s *Server) pgGetLLMRecord(w http.ResponseWriter, r *http.Request) { id, err := strconv.ParseInt(r.PathValue("id"), 10, 64) if err != nil { writeErr(w, 400, "invalid id") return } rec, err := s.m.PG().GetLLMRecord(id) if err != nil { writeErr(w, 404, "not found") return } writeJSON(w, 200, rec) }