from droidrun.agent.droid import DroidAgent
# Create and run agent
agent = DroidAgent(goal="Open Gmail and check inbox", config=config)
handler = agent.run()
# Stream events in real-time
async for event in handler.stream_events():
if isinstance(event, ManagerPlanDetailsEvent):
print(f"📋 Plan: {event.plan}")
print(f"🎯 Current subgoal: {event.current_subgoal}")
elif isinstance(event, ExecutorActionEvent):
print(f"⚡ Action: {event.description}")
print(f"💭 Thought: {event.thought}")
elif isinstance(event, ScreenshotEvent):
save_screenshot(event.screenshot, f"step_{event.step}.png")
elif isinstance(event, CodeGenerationEvent):
print(f"🐍 Generated code (step {event.step_number}):")
print(event.code)
# Wait for final result
result = await handler
print(f"✅ Success: {result.success}")
print(f"📝 Reason: {result.reason}")