"""Tatasteel Postgres data agent — pydantic-ai agent definition.

Connects to the Tatasteel construction project database using credentials
from environment variables. The agent reads a schema definition to understand
the DB structure, generates accurate SQL queries, and executes them safely
(SELECT-only) to answer user questions.

Required env vars:
    TATASTEEL_DB_HOST     — database host (default: localhost)
    TATASTEEL_DB_PORT     — database port (default: 5432)
    TATASTEEL_DB_NAME     — database name
    TATASTEEL_DB_USER     — database user
    TATASTEEL_DB_PASSWORD — database password
    TATASTEEL_SCHEMA_PATH — path to the schema file
                            (default: backend/chanakya/tatasteel/schema.sql)

The ASGI app, HTTP handler, and lifecycle hooks live in
``backend.chanakya.tatasteel.server``.
"""
import os
from pathlib import Path

from backend.chanakya.base import EnterpriseAgent
from backend.chanakya.nl2sql_core import NL2SQLDeps, register_nl2sql_tools
from backend.chanakya.schemas import TatasteelAgentOutput
from backend.chanakya.tatasteel.prompt import make_tatasteel_instructions

_DEFAULT_SCHEMA_PATH = Path(__file__).parent / "schema.sql"

# ---------------------------------------------------------------------------
# Agent
# ---------------------------------------------------------------------------
tatasteel_agent = EnterpriseAgent(
    deps_type=NL2SQLDeps,
    output_type=TatasteelAgentOutput,
    api_base=os.environ["LITELLM_PROVIDER_BASE_URL"],
    instructions=make_tatasteel_instructions(),
    logfire_env="chanakya-alpha",
    service_name="tatasteel",
)

register_nl2sql_tools(
    tatasteel_agent,
    schema_path_env="TATASTEEL_SCHEMA_PATH",
    db_env_prefix="TATASTEEL_DB",
    default_schema_path=_DEFAULT_SCHEMA_PATH,
    register_get_schema=False,
    register_format_response=False,
)
