refactor: split config.py into the beaver_agent package (vault, prompts, skills, policy, hands, agents, frontends, texts, memory, jobs)
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
"""Окна: личка с ботом для мастера и веток, файлы vault для глубоких, API и админка."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from datetime import date
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
from beaver_gateway.frontends.admin import AdminFrontend
|
||||
from beaver_gateway.frontends.anthropic import AnthropicMessagesFrontend
|
||||
from beaver_gateway.frontends.api import ApiFrontend
|
||||
from beaver_gateway.frontends.markdown import MarkdownFrontend
|
||||
from beaver_gateway.frontends.mcp_server import McpServerFrontend
|
||||
from beaver_gateway.frontends.telegram import Attachments, TelegramFrontend
|
||||
from beaver_gateway.frontends.turn_record import slugify
|
||||
|
||||
from beaver_agent import texts
|
||||
from beaver_agent.vault import ATTACHMENTS, BEAVER, CHATS, TZ
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pathlib import Path
|
||||
|
||||
from beaver_gateway.frontends.base import Frontend
|
||||
|
||||
DISPATCHER = "beaver-dispatcher"
|
||||
DEEP = "beaver-opus-high"
|
||||
|
||||
|
||||
def chat_path(title: str, agent: str, vault: Path) -> Path: # noqa: ARG001
|
||||
"""Файл глубокого чата: помесячная папка, дата и тема."""
|
||||
today = date.today()
|
||||
return (
|
||||
vault / f"{today:%Y-%m}" / f"{today:%Y-%m-%d} - {slugify(title, maxlen=60)}.md"
|
||||
)
|
||||
|
||||
|
||||
telegram = (
|
||||
TelegramFrontend(
|
||||
token=os.environ["TELEGRAM_BOT_TOKEN"],
|
||||
user_id=int(os.environ["TELEGRAM_USER_ID"]),
|
||||
master_agent=DISPATCHER,
|
||||
branch_agent=DISPATCHER,
|
||||
attachments=Attachments(mode="vault", dir=ATTACHMENTS, keep_days=30, tz=TZ),
|
||||
texts=texts.TELEGRAM,
|
||||
)
|
||||
if os.environ.get("TELEGRAM_BOT_TOKEN")
|
||||
else None
|
||||
)
|
||||
"""Вложения - входящая папка по дням в зоне агента; нужное он переносит сам."""
|
||||
|
||||
frontends: list[Frontend] = [
|
||||
*([telegram] if telegram is not None else []),
|
||||
AnthropicMessagesFrontend(),
|
||||
McpServerFrontend(),
|
||||
AdminFrontend(),
|
||||
ApiFrontend(master_agent=DISPATCHER, branch_agent=DISPATCHER, memory_root=BEAVER),
|
||||
MarkdownFrontend(
|
||||
vault_path=CHATS, default_agent=DEEP, log_all_chats=True, chat_path=chat_path
|
||||
),
|
||||
]
|
||||
Reference in New Issue
Block a user