Files
byre/internal/server/inbox.go
T

58 lines
1.2 KiB
Go
Raw Normal View History

package server
import (
"net/http"
2026-10-18 15:32:07 -07:00
"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) 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)
}