from praisonaiagents import set_approval_callback, require_approval
from praisonaiagents.approval import ApprovalDecision
from rich.console import Console
from rich.prompt import Confirm
console = Console()
def rich_approval_handler(func_name, args, risk_level):
"""Custom approval handler with Rich UI."""
console.print(f"\n[bold yellow]⚠️ Approval Required[/bold yellow]")
console.print(f"Function: [cyan]{func_name}[/cyan]")
console.print(f"Risk Level: [red]{risk_level}[/red]")
console.print(f"Arguments: {args}")
approved = Confirm.ask("Do you approve this action?")
return ApprovalDecision(
approved=approved,
reason="User approved" if approved else "User denied"
)
set_approval_callback(rich_approval_handler)
@require_approval(risk_level="high")
def send_email(to: str, subject: str, body: str):
"""Send an email - requires approval."""
# Email sending logic
return f"Email sent to {to}"