import asyncio
import logging
import sys
import os
import base64

# Add root to path
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

# Mock Redis
from unittest.mock import MagicMock
sys.modules['ClawdBot.redis_client'] = MagicMock()
from ClawdBot.redis_client import redis_client

from ClawdBot.skills.screen_monitor import Skill as ScreenSkill

logging.basicConfig(level=logging.INFO)

async def test_screen():
    print("Initializing Screen Skill...")
    skill = ScreenSkill()
    
    print("Capturing primary screen...")
    await skill.execute("capture", {"monitor": 1})
    
    print("Starting stream (short)...")
    await skill.execute("start_stream", {"interval": 1})
    await asyncio.sleep(3)
    
    print("Stopping stream...")
    await skill.execute("stop_stream", {})
    
    await skill.shutdown()
    print("Test Complete.")

if __name__ == "__main__":
    asyncio.run(test_screen())
