# tests/test_local.py — Simulateur de chat en terminal
# Généré par AgentKit

"""
Teste ton agent sans avoir besoin de WhatsApp.
Simule une conversation dans le terminal.
"""

import asyncio
import sys
import os

sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

from agent.brain import generar_respuesta
from agent.memory import inicializar_db, guardar_mensaje, obtener_historial, limpiar_historial

TELEFONO_TEST = "test-local-001"


async def main():
    await inicializar_db()

    print()
    print("=" * 55)
    print("   Assistant Welely — Test Local")
    print("=" * 55)
    print()
    print("  Écris des messages comme si tu étais un client.")
    print("  Commandes spéciales :")
    print("    'effacer'  — supprime l'historique")
    print("    'quitter'  — termine le test")
    print()
    print("-" * 55)
    print()

    while True:
        try:
            mensaje = input("Toi : ").strip()
        except (EOFError, KeyboardInterrupt):
            print("\n\nTest terminé.")
            break

        if not mensaje:
            continue

        if mensaje.lower() == "quitter":
            print("\nTest terminé.")
            break

        if mensaje.lower() == "effacer":
            await limpiar_historial(TELEFONO_TEST)
            print("[Historique supprimé]\n")
            continue

        # Récupérer l'historique AVANT d'enregistrer (brain.py ajoute le message actuel)
        historial = await obtener_historial(TELEFONO_TEST)

        print("\nAssistant Welely : ", end="", flush=True)
        respuesta = await generar_respuesta(mensaje, historial)
        print(respuesta)
        print()

        await guardar_mensaje(TELEFONO_TEST, "user", mensaje)
        await guardar_mensaje(TELEFONO_TEST, "assistant", respuesta)


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