feat(voice,agents,memory): voice points get their own branch, agent and keys
This commit is contained in:
@@ -198,6 +198,8 @@ class Recall:
|
||||
tz: str = "Europe/Warsaw"
|
||||
diary_scan: int = 400
|
||||
"""Сколько последних дней дневника просматривать на упоминания."""
|
||||
mute: frozenset[str] = frozenset()
|
||||
"""Агенты, которым справку не показывают: чужие люди, чужие уши."""
|
||||
_people: People | None = field(default=None, init=False, repr=False)
|
||||
_diary_cache: dict[str, tuple[float, list[str]]] = field(
|
||||
default_factory=dict, init=False, repr=False
|
||||
@@ -211,6 +213,8 @@ class Recall:
|
||||
return self._people
|
||||
|
||||
def block(self, ctx: RecallContext) -> str | None:
|
||||
if ctx.agent in self.mute:
|
||||
return None
|
||||
today = ctx.now.astimezone(ZoneInfo(self.tz)).date()
|
||||
lines = [self.person_line(p) for p in mentions(ctx.text, self.people.all())]
|
||||
if ctx.kind == "master":
|
||||
@@ -306,8 +310,12 @@ class ReplyLog:
|
||||
dir: Path
|
||||
tz: str = "Europe/Warsaw"
|
||||
max_chars: int = 600
|
||||
mute: frozenset[str] = frozenset()
|
||||
"""Агенты, чьи разговоры в лог реплик не идут."""
|
||||
|
||||
def write(self, said: UserSaid) -> None:
|
||||
if said.agent in self.mute:
|
||||
return
|
||||
text = said.text
|
||||
if text.startswith("[сид:"):
|
||||
# спавн ветки с текстом: строка сида едет над самим сообщением
|
||||
|
||||
@@ -18,6 +18,7 @@ from beaver_agent.vault import (
|
||||
TZ,
|
||||
VAULT,
|
||||
)
|
||||
from beaver_agent.voice import AGENT as VOICE
|
||||
|
||||
watch = VaultWatch(
|
||||
VAULT,
|
||||
@@ -52,8 +53,11 @@ recall = Recall(
|
||||
diary_dir=DIARY,
|
||||
boards_dir=BOARDS,
|
||||
tz=TZ,
|
||||
mute=frozenset({VOICE}),
|
||||
)
|
||||
replies = ReplyLog(REPLIES, tz=TZ)
|
||||
"""Голосовому агенту справки нет: за колонкой может стоять кто угодно."""
|
||||
|
||||
replies = ReplyLog(REPLIES, tz=TZ, mute=frozenset({VOICE}))
|
||||
|
||||
CURATOR_WATCH = [
|
||||
Watched("хендауты", DAYS, "????-??-??.md"),
|
||||
|
||||
Reference in New Issue
Block a user