feat(config): chat_path hook and default agents per kind
This commit is contained in:
@@ -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.conversations import ConversationTexts, SeedContext
|
||||||
from beaver_gateway.core.prompt import assemble
|
from beaver_gateway.core.prompt import assemble
|
||||||
from beaver_gateway.core.registry import Gateway
|
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.admin import AdminFrontend
|
||||||
from beaver_gateway.frontends.anthropic import AnthropicMessagesFrontend
|
from beaver_gateway.frontends.anthropic import AnthropicMessagesFrontend
|
||||||
from beaver_gateway.frontends.api import ApiFrontend
|
from beaver_gateway.frontends.api import ApiFrontend
|
||||||
@@ -89,15 +89,12 @@ DEEP_SKILLS = (SKILLS / "общие", SKILLS / "vault")
|
|||||||
DISPATCHER_SKILLS = (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()
|
today = date.today()
|
||||||
topic = slugify(record.first_user_text, maxlen=60)
|
return (
|
||||||
rel = (
|
vault / f"{today:%Y-%m}" / f"{today:%Y-%m-%d} - {slugify(title, maxlen=60)}.md"
|
||||||
CHATS_DIR.relative_to(vault)
|
|
||||||
/ f"{today:%Y-%m}"
|
|
||||||
/ f"{today:%Y-%m-%d} - {topic}.md"
|
|
||||||
)
|
)
|
||||||
return vault / rel
|
|
||||||
|
|
||||||
|
|
||||||
def _calendar_mcps() -> list[HttpMcp]:
|
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")),
|
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")),
|
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(
|
MarkdownFrontend(
|
||||||
host="0.0.0.0",
|
host="0.0.0.0",
|
||||||
port=62993,
|
port=62993,
|
||||||
vault_path=CHATS_DIR,
|
vault_path=CHATS_DIR,
|
||||||
default_agent="beaver-opus-high",
|
default_agent="beaver-opus-high",
|
||||||
log_all_chats=True,
|
log_all_chats=True,
|
||||||
log_path=chat_log_path,
|
chat_path=chat_path,
|
||||||
public_base_url=_public("/md"),
|
public_base_url=_public("/md"),
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
|
|||||||
Reference in New Issue
Block a user