feat(config): chat_path hook and default agents per kind

This commit is contained in:
hh
2026-08-28 03:50:40 +02:00
parent 03774c54e3
commit 03ed732f7a
+14 -10
View File
@@ -8,7 +8,7 @@ from beaver_gateway.agents.raycast import RaycastAgent, RemoteTool, UserPreferen
from beaver_gateway.core.conversations import ConversationTexts, SeedContext
from beaver_gateway.core.prompt import assemble
from beaver_gateway.core.registry import Gateway
from beaver_gateway.core.turn_record import TurnRecord, slugify
from beaver_gateway.core.turn_record import slugify
from beaver_gateway.frontends.admin import AdminFrontend
from beaver_gateway.frontends.anthropic import AnthropicMessagesFrontend
from beaver_gateway.frontends.api import ApiFrontend
@@ -89,15 +89,12 @@ DEEP_SKILLS = (SKILLS / "общие", SKILLS / "vault")
DISPATCHER_SKILLS = (SKILLS / "общие", SKILLS / "диспетчер", SKILLS / "vault")
def chat_log_path(record: TurnRecord, vault: Path) -> Path:
def chat_path(title: str, agent: str, vault: Path) -> Path: # noqa: ARG001
"""Новый файл чата в `💬 чаты/`: помесячная папка, дата и тема."""
today = date.today()
topic = slugify(record.first_user_text, maxlen=60)
rel = (
CHATS_DIR.relative_to(vault)
/ f"{today:%Y-%m}"
/ f"{today:%Y-%m-%d} - {topic}.md"
return (
vault / f"{today:%Y-%m}" / f"{today:%Y-%m-%d} - {slugify(title, maxlen=60)}.md"
)
return vault / rel
def _calendar_mcps() -> list[HttpMcp]:
@@ -241,14 +238,21 @@ frontends: list[Frontend] = [
),
McpServerFrontend(host="0.0.0.0", port=62991, public_base_url=_public("/mcp")),
AdminFrontend(host="0.0.0.0", port=62992, public_base_url=_public("/admin")),
ApiFrontend(host="0.0.0.0", port=62994, public_base_url=_public("/api")),
# §3.9: /api показывает всё; домашний фронтенд мастера/ветки до S5 - он же,
# поэтому дефолтный агент на master/branch живёт здесь, deep - у markdown.
ApiFrontend(
host="0.0.0.0",
port=62994,
public_base_url=_public("/api"),
default_agents={"master": "beaver-dispatcher", "branch": "beaver-dispatcher"},
),
MarkdownFrontend(
host="0.0.0.0",
port=62993,
vault_path=CHATS_DIR,
default_agent="beaver-opus-high",
log_all_chats=True,
log_path=chat_log_path,
chat_path=chat_path,
public_base_url=_public("/md"),
),
]