Files
gnoma/internal/session/snapshot.go

27 lines
797 B
Go

package session
import (
"time"
"somegit.dev/Owlibou/gnoma/internal/message"
)
// Metadata holds session summary information persisted alongside messages.
type Metadata struct {
ID string `json:"id"`
Provider string `json:"provider"`
Model string `json:"model"`
TurnCount int `json:"turn_count"`
Usage message.Usage `json:"usage"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
MessageCount int `json:"message_count"`
}
// Snapshot is a complete serialisable representation of a session at a point in time.
type Snapshot struct {
ID string `json:"id"`
Metadata Metadata `json:"metadata"`
Messages []message.Message `json:"messages"`
}