"""会话工具与系统提示解析。"""

from __future__ import annotations

from typing import Any

from app.services.agent_registry import DEFAULT_AGENTS, agent_tool_ids
from app.services.langchain_tools import build_langchain_tools


def resolve_chat_tools(thread: dict | None) -> list[Any]:
    aid = str((thread or {}).get("agent_id") or "default")
    return build_langchain_tools(agent_tool_ids(aid))


def resolve_base_system_prompt(thread: dict | None, agent_system_prompt: str) -> str:
    prompt = (agent_system_prompt or "").strip()
    if prompt:
        return prompt
    default = next((a for a in DEFAULT_AGENTS if a.get("id") == "default"), None)
    return str((default or {}).get("system_prompt") or "")


def resolve_effective_system_prompt(thread: dict | None, agent_system_prompt: str) -> str:
    base = resolve_base_system_prompt(thread, agent_system_prompt)
    return (
        base
        + "\n\n【工具】知识库 kb_*;终端 terminal_run(沙箱 data/terminal_workspace);"
        "联网 bing_search/web_fetch;多步页面操作用 browser(Playwright);重要结论 kb_create。"
    )