feat(voice,agents,memory): voice points get their own branch, agent and keys

This commit is contained in:
hh
2026-09-06 23:26:35 +02:00
parent b9eb95d8c0
commit 4dd199147c
14 changed files with 747 additions and 4 deletions
+8
View File
@@ -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("[сид:"):
# спавн ветки с текстом: строка сида едет над самим сообщением
+5 -1
View File
@@ -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"),