#!/usr/bin/env -S uv run --script
# /// script
# requires-python = ">=3.11"
# dependencies = [
#     "typer",
#     "httpx",
# ]
# ///
"""
Display session configuration and context.
"""

import sys
from pathlib import Path

sys.path.insert(0, str(Path(__file__).parent / "lib"))

import typer

app = typer.Typer(add_completion=False)


@app.command()
def main(
    session_name: str = typer.Argument(..., help="Name of the session"),
):
    """
    Display session configuration and context.

    Shows: agent used, project directory, session metadata

    Examples:
        ao-show-config mysession
    """
    from config import get_api_url
    from session_client import SessionClient, SessionClientError

    try:
        # Get API URL
        api_url = get_api_url()

        # Get session from API
        try:
            client = SessionClient(api_url)
            session_data = client.get_session_by_name(session_name)
        except SessionClientError as e:
            print(f"Error: Failed to connect to session manager: {e}", file=sys.stderr)
            raise typer.Exit(1)

        if not session_data:
            print(f"Error: Session '{session_name}' does not exist", file=sys.stderr)
            raise typer.Exit(1)

        # Display configuration
        print(f"Configuration for session '{session_name}':")
        print(f"  Session ID:      {session_data.get('session_id', 'unknown')}")
        print(f"  Project dir:     {session_data.get('project_dir', 'unknown')}")
        print(f"  Agent:           {session_data.get('agent_name') or 'none'}")
        print(f"  Created:         {session_data.get('created_at', 'unknown')}")
        print(f"  Last resumed:    {session_data.get('last_resumed_at', 'unknown')}")

    except Exception as e:
        # Unexpected errors
        print(f"Error: {e}", file=sys.stderr)
        raise typer.Exit(1)


if __name__ == "__main__":
    app()
