import asyncio import webbrowser from typing import Dict, Any async def open_url(args: Dict[str, Any]) -> Dict[str, Any]: """ Opens a website in the default browser on Windows. Args: args: Dictionary containing 'url' (string) of the website to open. Returns: Dictionary with status message and input arguments. Raises: OSError: If opening the website fails. """ try: # Get URL from args url = args.get('url') if not url: raise ValueError("URL must be provided in args") # Ensure URL has a scheme (http:// or https://) if not url.startswith(('http://', 'https://')): url = 'https://' + url # Open website in default browser success = await asyncio.to_thread(webbrowser.open, url) if not success: raise OSError("Failed to open the website") return { "message": f"Website {url} opened successfully", "args": args } except Exception as e: raise OSError(f"Error while opening website: {str(e)}")