def download_paper(self, paper_id: str, output_dir: str = "./") -> Dict[str, Any]:
        """
        Download a paper's PDF by its arXiv ID.
        
        Args:
            paper_id: The arXiv ID of the paper (e.g., '2106.09685')
            output_dir: Directory to save the PDF (default: current directory)
            
        Returns:
            Dictionary containing download information
        """
        import arxiv
        import os
        import requests
        
        # Create client
        client = arxiv.Client()
        
        # Search for the specific paper
        search = arxiv.Search(id_list=[paper_id])
        
        # Get the paper
        results = list(client.results(search))
        
        if not results:
            return {"error": f"Paper with ID {paper_id} not found"}
        
        paper = results[0]
        
        # Create output directory if it doesn't exist
        os.makedirs(output_dir, exist_ok=True)
        
        # Generate filename
        filename = f"{paper_id.replace('/', '_')}.pdf"
        filepath = os.path.join(output_dir, filename)
        
        # Download the PDF
        try:
            response = requests.get(paper.pdf_url)
            response.raise_for_status()
            
            with open(filepath, 'wb') as f:
                f.write(response.content)
            
            return {
                "success": True,
                "paper_id": paper_id,
                "title": paper.title,
                "filepath": filepath,
                "pdf_url": paper.pdf_url
            }
        except Exception as e:
            return {
                "success": False,
                "paper_id": paper_id,
                "error": str(e),
                "pdf_url": paper.pdf_url
            }

        Download a paper's PDF by its arXiv ID.
        
        Args:
            paper_id: The arXiv ID of the paper (e.g., '2106.09685')
            output_dir: Directory to save the PDF (default: current directory)
            
        Returns:
            Dictionary containing download information
        
src/upsonic/tools.py