from pathlib import Path
from crewai import Agent
from crews.agromatrix_crew.llm_factory import make_llm

_PROMPT_PATH = Path(__file__).parent.parent / "stepan_system_prompt_v2.txt"


def _load_system_prompt() -> str:
    try:
        return _PROMPT_PATH.read_text(encoding="utf-8")
    except Exception:
        return (
            "Ти — Степан, операційний агент AgroMatrix. "
            "Говориш коротко, по ділу, живою українською мовою. "
            "Не пишеш сервісних повідомлень. Відповідаєш прямо."
        )


def build_stepan(style_prefix: str = "") -> Agent:
    """
    Будує агента Степана.
    style_prefix — персоналізований prefix від style_adapter.build_style_prefix().
    Якщо не передано — використовується базовий системний промпт.
    """
    backstory = _load_system_prompt()
    if style_prefix:
        backstory = style_prefix.strip() + "\n\n" + backstory
    return Agent(
        role="Stepan (AgroMatrix Operational Agent)",
        goal=(
            "Відповідати на запити точно і людяно. "
            "Делегувати під-агентам лише якщо без них неможливо. "
            "Повертати консолідовану відповідь без технічного сміття."
        ),
        backstory=backstory,
        llm=make_llm(),
        allow_delegation=True,
        verbose=False,
    )
