package server import ( "net/http" "g.fc.run/ai/byre/internal/api" "g.fc.run/ai/byre/internal/store" ) func (s *Server) ListInbox(w http.ResponseWriter, r *http.Request, params api.ListInboxParams) { f := store.InboxFilter{State: api.Open} if params.ProjectId != nil { f.ProjectID = *params.ProjectId } if params.TaskId != nil { f.TaskID = *params.TaskId } if params.State != nil { f.State = *params.State } items, err := s.store.ListInbox(r.Context(), f) if err != nil { writeStoreError(w, err) return } writeJSON(w, http.StatusOK, items) } func (s *Server) GetInboxItem(w http.ResponseWriter, r *http.Request, itemID string) { item, err := s.store.GetInboxItem(r.Context(), itemID) if err != nil { writeStoreError(w, err) return } writeJSON(w, http.StatusOK, item) } func (s *Server) DismissInbox(w http.ResponseWriter, r *http.Request, itemID string) { item, err := s.agents.Dismiss(r.Context(), actor(r), itemID) if err != nil { writeAgentError(w, err) return } writeJSON(w, http.StatusOK, item) } func (s *Server) RespondInbox(w http.ResponseWriter, r *http.Request) { req := api.InboxRespond{} if !readJSON(w, r, &req) { return } for _, c := range req.Responses { _, ok := s.images(w, r, c.Images) if !ok { return } } items, err := s.agents.Respond(r.Context(), actor(r), req.Responses) if err != nil { writeAgentError(w, err) return } writeJSON(w, http.StatusOK, items) }