package anthropic import ( "encoding/json" "fmt" "io" "net/http" ) // flusherOf extracts the http.Flusher when the writer supports it. func flusherOf(w http.ResponseWriter) http.Flusher { if f, ok := w.(http.Flusher); ok { return f } return nil } // writeEvent emits one Server-Sent Event in Anthropic's format: // "event: \ndata: \n\n". func writeEvent(w io.Writer, f http.Flusher, name string, data any) error { payload, err := json.Marshal(data) if err != nil { return err } if _, err := fmt.Fprintf(w, "event: %s\ndata: %s\n\n", name, payload); err != nil { return err } if f != nil { f.Flush() } return nil }