#!/usr/bin/env python3
"""Mock 测试脚本 - 模拟 QQ 消息输入。"""

import asyncio
import sys
import httpx


async def send_mock_message(user_id: str, content: str):
    """发送模拟消息到 Butler-Shell。"""
    async with httpx.AsyncClient() as client:
        response = await client.post(
            "http://localhost:8000/api/inngest",
            json={
                "name": "im/message",
                "data": {
                    "user_id": user_id,
                    "content": content,
                },
            },
            headers={"Content-Type": "application/json"},
        )
        print(f"Response: {response.status_code}")
        print(f"Body: {response.text}")


async def main():
    if len(sys.argv) < 2:
        print("Usage: python mock_test.py <command> [user_id]")
        print("\nCommands:")
        print("  normal <cmd>   - 发送普通命令")
        print("  dangerous      - 发送危险命令测试")
        print("  skill          - 发送 Skill 命令")
        return

    user_id = sys.argv[2] if len(sys.argv) > 2 else "test_user_001"
    command = sys.argv[1]

    if command == "normal":
        content = sys.argv[3] if len(sys.argv) > 3 else "ls -la"
        await send_mock_message(user_id, content)
    elif command == "dangerous":
        await send_mock_message(user_id, "rm -rf /tmp/test")
    elif command == "skill":
        await send_mock_message(user_id, "/log recent 5")
    else:
        await send_mock_message(user_id, command)


if __name__ == "__main__":
    asyncio.run(main())
