package auditsink import ( "context" "log/slog" "github.com/klarkxy/nekonest/relaycore" ) // Sink deliberately logs only event classification and error state. It never // serializes prompt, transcript, path, attachment, or approval payloads. type Sink struct{ Logger *slog.Logger } func (sink Sink) Emit(_ context.Context, event relaycore.AuditEvent) { logger := sink.Logger if logger == nil { logger = slog.Default() } arguments := []any{"component", event.Component, "event", event.Name} if event.Err != nil { arguments = append(arguments, "error", event.Err.Error()) } logger.Info("relay data-plane event", arguments...) }