Files
beaver-agent/beaver_agent/vault.py
T

45 lines
1.5 KiB
Python

"""Где что лежит в vault и в какой зоне живёт агент."""
from __future__ import annotations
import os
from datetime import datetime
from pathlib import Path
from zoneinfo import ZoneInfo
TZ = "Europe/Warsaw"
ZONE = ZoneInfo(TZ)
LAUNCH = datetime(2026, 8, 28, tzinfo=ZONE)
"""Ночное закрытие трогает только чаты с активностью после запуска системы."""
VAULT = Path(os.environ.get("BEAVER_VAULT", "/vault"))
"""`/vault` в контейнере; `BEAVER_VAULT` - чтобы собрать конфиг на маке."""
CHATS = VAULT / "💬 чаты"
DIARY = VAULT / "📅 дни"
PEOPLE = VAULT / "👤 люди"
BOARDS = VAULT / "📆 доски"
BEAVER = VAULT / "мета" / "бобер"
"""Дом агента: всё, что он ведёт сам, лежит здесь."""
PROMPTS = BEAVER / "промпты"
GRANULES = PROMPTS / "гранулы"
SKILLS = BEAVER / "скиллы"
DAYS = BEAVER / "дни"
DIGESTS = BEAVER / "выжимки"
INDEX = BEAVER / "индекс.md"
NOTES = BEAVER / "наблюдения"
PORTRAIT = NOTES / "Бобёр - наблюдения.md"
REPLIES = BEAVER / "реплики"
CURATOR_JOURNAL = BEAVER / "куратор.md"
STATE = BEAVER / "состояние.md"
STATE_MAX_LINES = 60
ATTACHMENTS = BEAVER / "вложения"
def today() -> str:
return datetime.now(ZONE).date().isoformat()
def read(path: Path) -> str | None:
return path.read_text(encoding="utf-8").strip() if path.exists() else None