"""Built-in handler catalog for Yagra.

Provides the canonical list of built-in handlers with their metadata
and parameter schemas. Consumed by the CLI ``yagra handlers`` command
and the MCP ``list_handlers`` tool.
"""

from typing import Any

from yagra.handlers.llm_handler import LLM_HANDLER_PARAMS_SCHEMA
from yagra.handlers.streaming_llm_handler import STREAMING_LLM_HANDLER_PARAMS_SCHEMA
from yagra.handlers.structured_llm_handler import STRUCTURED_LLM_HANDLER_PARAMS_SCHEMA

BUILTIN_HANDLERS_INFO: list[dict[str, Any]] = [
    {
        "name": "llm",
        "description": "LLM text output handler. Generated by create_llm_handler()",
        "params_schema": LLM_HANDLER_PARAMS_SCHEMA,
    },
    {
        "name": "structured_llm",
        "description": "Pydantic structured output handler. Generated by create_structured_llm_handler()",
        "params_schema": STRUCTURED_LLM_HANDLER_PARAMS_SCHEMA,
    },
    {
        "name": "streaming_llm",
        "description": "Streaming output handler. Generated by create_streaming_llm_handler()",
        "params_schema": STREAMING_LLM_HANDLER_PARAMS_SCHEMA,
    },
]
