package summarizer import ( "context" "time" "sojuboy/internal/store" ) type Summarizer interface { Summarize(ctx context.Context, channel string, msgs []store.Message, window time.Duration) (string, error) // SummarizeForPush creates a digest tuned for push notifications (e.g., Pushover limits). // Implementations should keep the output succinct and within ~1k characters. SummarizeForPush(ctx context.Context, channel string, msgs []store.Message, window time.Duration) (string, error) SummarizeLink(ctx context.Context, rawURL string) (string, error) }