"""
demand_grade_agent 工具包

批次选词（哪些需求词、多少个）由外部调度任务负责，agent 只处理调用方在
用户消息里显式给出的需求词，不提供“列出/分页遍历需求池”类工具。
"""
from __future__ import annotations

from collections.abc import Callable
from typing import Any

from agents.demand_grade_agent.tools.batch_save_demand_grades import batch_save_demand_grades
from agents.demand_grade_agent.tools.query_category_local_heat import query_category_local_heat
from agents.demand_grade_agent.tools.query_category_path import query_category_path
from agents.demand_grade_agent.tools.query_demand_category_and_weight import (
    query_demand_category_and_weight,
)
from agents.demand_grade_agent.tools.query_demand_popularity_by_word import (
    query_demand_popularity_by_word,
)
from agents.demand_grade_agent.tools.query_latest_biz_dt import query_latest_biz_dt
from agents.demand_grade_agent.tools.query_score_distribution import query_score_distribution
from agents.demand_grade_agent.tools.search_related_pool_demands import (
    search_related_pool_demands,
)
from supply_agent.tools.registry import ToolRegistry

ALL_TOOLS: list[Callable[..., Any]] = [
    query_latest_biz_dt,
    search_related_pool_demands,
    query_demand_category_and_weight,
    query_category_path,
    query_category_local_heat,
    query_demand_popularity_by_word,
    query_score_distribution,
    batch_save_demand_grades,
]

__all__ = [
    "ALL_TOOLS",
    "batch_save_demand_grades",
    "query_category_local_heat",
    "query_category_path",
    "query_demand_category_and_weight",
    "query_demand_popularity_by_word",
    "query_latest_biz_dt",
    "query_score_distribution",
    "register_all_tools",
    "search_related_pool_demands",
]


def register_all_tools(registry: ToolRegistry) -> ToolRegistry:
    """将 demand_grade_agent 包内的所有工具注册到 ToolRegistry。"""
    return registry.from_decorated(*ALL_TOOLS)
