feat: establish NekoNest Cloud control and relay
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
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...)
|
||||
}
|
||||
Reference in New Issue
Block a user