"""
Session management and authentication setup tools
"""

from mcp.types import Tool


def get_session_tools():
    """Return tools for session management and authentication setup."""
    return [
        Tool(
            name="get_session_info",
            description="Get current session information (cookies, auth status)",
            inputSchema={
                "type": "object",
                "properties": {},
                "required": []
            }
        ),

        Tool(
            name="clear_session",
            description="Clear authentication session and cookies from all tools",
            inputSchema={
                "type": "object",
                "properties": {
                    "confirmation": {
                        "type": "boolean",
                        "description": "Confirm session clearing (default: true)",
                        "default": True
                    },
                    "clear_cache": {
                        "type": "boolean", 
                        "description": "Also clear memory cache (default: false)",
                        "default": False
                    },
                    "verbose": {
                        "type": "boolean",
                        "description": "Show detailed clearing information",
                        "default": True
                    }
                },
                "required": []
            }
        ),

        Tool(
            name="set_basic_auth",
            description="Set HTTP Basic Authentication for all subsequent requests",
            inputSchema={
                "type": "object",
                "properties": {
                    "username": {
                        "type": "string",
                        "description": "Username for basic auth"
                    },
                    "password": {
                        "type": "string",
                        "description": "Password for basic auth"
                    }
                },
                "required": ["username", "password"]
            }
        ),

        Tool(
            name="set_oauth_token",
            description="Set OAuth/JWT token for API authentication",
            inputSchema={
                "type": "object",
                "properties": {
                    "token": {
                        "type": "string",
                        "description": "OAuth access token or JWT token"
                    },
                    "token_type": {
                        "type": "string",
                        "description": "Type of token: 'Bearer', 'JWT', 'OAuth'",
                        "default": "Bearer"
                    },
                    "header_name": {
                        "type": "string",
                        "description": "Header name for token (default: 'Authorization')",
                        "default": "Authorization"
                    },
                    "provider": {
                        "type": "string",
                        "description": "OAuth provider: 'google', 'github', 'microsoft', 'custom'"
                    }
                },
                "required": ["token"]
            }
        ),

        Tool(
            name="import_browser_cookies",
            description="Import cookies from browser for authentication",
            inputSchema={
                "type": "object",
                "properties": {
                    "browser": {
                        "type": "string",
                        "description": "Browser to import from: 'chrome', 'firefox', 'edge', 'safari'",
                        "enum": ["chrome", "firefox", "edge", "safari"]
                    },
                    "domain": {
                        "type": "string",
                        "description": "Domain to import cookies for (optional, imports all if not specified)"
                    },
                    "verbose": {
                        "type": "boolean",
                        "description": "Enable detailed diagnostics",
                        "default": True
                    }
                },
                "required": ["browser"]
            }
        )
    ]
