"""
Authentication tools
"""

from mcp.types import Tool


def get_auth_tools():
    """Return tools for authentication."""
    return [
        Tool(
            name="login_form",
            description="Login through web form (maintains session cookies)",
            inputSchema={
                "type": "object",
                "properties": {
                    "login_url": {
                        "type": "string",
                        "description": "URL of the login page"
                    },
                    "username": {
                        "type": "string",
                        "description": "Username or email"
                    },
                    "password": {
                        "type": "string",
                        "description": "Password"
                    },
                    "username_field": {
                        "type": "string",
                        "description": "Name of username field (default: auto-detect)",
                        "default": None
                    },
                    "password_field": {
                        "type": "string",
                        "description": "Name of password field (default: auto-detect)",
                        "default": None
                    },
                    "additional_fields": {
                        "type": "object",
                        "description": "Additional form fields (e.g. CSRF tokens)",
                        "default": {}
                    },
                    "submit_url": {
                        "type": "string",
                        "description": "URL to submit form to (default: auto-detect from form action)",
                        "default": None
                    },
                    "verbose": {
                        "type": "boolean",
                        "description": "Enable detailed login diagnostics",
                        "default": True
                    },
                    "retry_strategies": {
                        "type": "array",
                        "description": "Retry strategies if login fails",
                        "default": []
                    },
                    "debug": {
                        "type": "boolean",
                        "description": "Enable debug mode",
                        "default": False
                    }
                },
                "required": ["login_url", "username", "password"]
            }
        ),

        Tool(
            name="browser_login",
            description="Smart browser login with automatic form filling or manual interaction",
            inputSchema={
                "type": "object",
                "properties": {
                    "url": {
                        "type": "string",
                        "description": "Login page URL"
                    },
                    "username": {
                        "type": "string", 
                        "description": "Username/email for automatic login (if provided, will auto-fill form)"
                    },
                    "password": {
                        "type": "string",
                        "description": "Password for automatic login (if provided, will auto-fill form)"
                    },
                    "headless": {
                        "type": "boolean",
                        "description": "Run browser in headless mode (default: false for interactive)",
                        "default": False
                    },
                    "wait_for_user": {
                        "type": "boolean",
                        "description": "Wait for user to complete login manually (ignored if username/password provided)",
                        "default": True
                    },
                    "timeout": {
                        "type": "number",
                        "description": "Maximum time to wait for login completion (seconds)",
                        "default": 300
                    },
                    "success_indicator": {
                        "type": "string",
                        "description": "CSS selector indicating successful login"
                    },
                    "username_selector": {
                        "type": "string",
                        "description": "CSS selector for username field (auto-detected if not provided)"
                    },
                    "password_selector": {
                        "type": "string", 
                        "description": "CSS selector for password field (auto-detected if not provided)"
                    },
                    "submit_selector": {
                        "type": "string",
                        "description": "CSS selector for login button (auto-detected if not provided)"
                    },
                    "verbose": {
                        "type": "boolean",
                        "description": "Enable detailed logging and progress feedback",
                        "default": True
                    },
                    "auto_screenshot_on_error": {
                        "type": "boolean",
                        "description": "Automatically take screenshots on errors",
                        "default": True
                    }
                },
                "required": ["url"]
            }
        )
    ]
