def verificar_comandos_especiais(ctx: dict, mensagem: str) -> dict:
    """Verifica se a mensagem contém comandos especiais."""
    msg_lower = mensagem.lower().strip()
    
    # Comandos para recomeçar (inclui "inicio")
    recomecar = ["recomeçar", "recomecar", "iniciar", "menu", "voltar ao inicio", "começar de novo", "inicio", "reset"]
    if any(cmd in msg_lower for cmd in recomecar):
        return {
            "resposta": "Entendido! Vamos recomeçar o atendimento. Por favor, informe seu CPF para continuarmos.",
            "acao": "resetar_contexto"
        }
    
    # Comandos para encerrar
    encerrar = ["terminar", "encerrar", "finalizar", "sair", "tchau", "adeus", "nada mais", "obrigado", "encerrar atendimento"]
    if any(cmd in msg_lower for cmd in encerrar):
        return {
            "resposta": SAUDACAO_INICIAL if 'SAUDACAO_INICIAL' in dir() else "Obrigado por entrar em contato! Se precisar de ajuda, estarei à disposição. Tenha um {horario}!".replace("{horario}", obter_saudacao_horario()),
            "acao": "encerrar"
        }
    
    # Comandos para trocar de plano (específico do boleto, mas tratado como comando global)
    trocar_plano = ["trocar plano", "outro plano", "mudar de plano", "outro", "diferente", "trocar"]
    if any(cmd in msg_lower for cmd in trocar_plano):
        return {
            "resposta": "Ok, vamos trocar de plano.",
            "acao": "trocar_plano"
        }
    
    return None