import logging

log = logging.getLogger(__name__)


class AgentNotifier:
    """Agent 通知接口基类。

    当 pending.json 有新消息时，Client 会调用 notify()。
    每个 Agent 可以继承此类实现自己的通知方式。
    """

    async def notify(self, count: int, from_contacts: list[str]):
        raise NotImplementedError


class ConsoleNotifier(AgentNotifier):
    """默认实现：打印到控制台。"""

    async def notify(self, count: int, from_contacts: list[str]):
        sources = ", ".join(from_contacts)
        log.info(f"[IM 通知] 你有 {count} 条新消息，来自: {sources}")
