async def crawl(self, url: str) -> Dict[str, Any]:
        """
        Crawl a website and extract its content using Crawl4AI.
        
        Args:
            url: The URL to crawl
            browser_config: Optional browser configuration parameters
            run_config: Optional crawler run configuration parameters
            
        Returns:
            Dictionary containing the crawled content and metadata
        """
        try:
            from crawl4ai import AsyncWebCrawler
          
            
            
            async with AsyncWebCrawler() as crawler:
                result = await crawler.arun(url=url)
                return {
                    "raw_markdown": result.markdown.raw_markdown,
                    "media": result.media,
                    "links": result.links,
                }
            
        except Exception as e:
            return {"error": f"Error crawling website: {str(e)}"}

        Crawl a website and extract its content using Crawl4AI.
        
        Args:
            url: The URL to crawl
            browser_config: Optional browser configuration parameters
            run_config: Optional crawler run configuration parameters
            
        Returns:
            Dictionary containing the crawled content and metadata
        
src/upsonic/tools.py