-
Notifications
You must be signed in to change notification settings - Fork 2
Comandos
Esta página resume como o runtime de comandos do Zyra funciona em produção e como os comandos se comportam do ponto de vista operacional. Para a referência completa dos comandos registrados atualmente, veja Comandos - Referência. Para detalhes profundos da arquitetura interna, veja docs/README-COMMANDS.md.
O Zyra usa um runtime modular de comandos baseado em:
-
src/commands/*.tspara implementação dos comandos -
src/commands/index.tspara registro central -
src/core/command-runtime/context.tspara oCommandContext -
src/core/command-runtime/processor.tspara parsing, regras transversais e execução -
src/router/index.tspara enfileiramento por chat
- Um evento
messages.upsertchega ao sistema. - O handler central encaminha mensagens
notifypara o router. - O router enfileira o processamento por
connectionId:chatId. - O processor normaliza a mensagem, detecta prefixo e identifica o comando.
- Antes da execução, regras automáticas de runtime podem ser aplicadas.
- O comando recebe um
CommandContextestável e desacoplado do socket bruto. - O resultado é registrado nos logs e, quando aplicável, também na persistência SQL.
O runtime protege o processo com duas regras importantes:
- fila por chat/conexão: mantém a ordem por conversa sem travar toda a instância
- limite de pendências por fila: protege memória quando há saturação
- timeout de comando: impede que handlers travados bloqueiem o chat indefinidamente
Variáveis relacionadas:
WA_ROUTER_MAX_PENDING_PER_QUEUEWA_COMMAND_TIMEOUT_MS
Os comandos recebem um contexto com dados e helpers estáveis, incluindo:
- dados de mensagem e chat:
chatId,sender,isGroup,text,args - resposta e envio:
reply,send,react, helpers de mídia - ações administrativas de grupo
- utilidades para stickers, quoted message e persistência associada
Isso reduz acoplamento com o socket bruto e centraliza comportamento transversal no runtime.
O antilink merece destaque porque ele existe em dois níveis.
O comando !antilink permite:
- ativar ou desativar o recurso no grupo
- gerenciar whitelist de domínios
- controlar a exceção para o link do próprio grupo
Quando ativo para um grupo, o runtime pode:
- detectar links em mensagens
- ignorar domínios permitidos
- permitir o link do próprio grupo quando configurado
- tratar admins de forma diferente de membros comuns
- remover participantes infratores
- apagar mensagens recentes do remetente
- tentar cascata de remoção em grupos vinculados à mesma comunidade
Ou seja: antilink não é apenas um comando de configuração; ele é uma regra operacional aplicada pelo processor em mensagens de grupo.
A fonte de verdade dos comandos ativos é src/commands/index.ts.
Isso significa que:
- a lista exibida por
!menué dinâmica - aliases como
!se!stdependem do registry atual - a documentação de referência deve ser mantida alinhada ao índice central
- validar contexto cedo (
isGroup, permissões, mídia disponível) - manter feedback curto e claro para o usuário
- delegar regras transversais ao runtime e ao store
- não depender de efeitos colaterais fora do contrato do comando
- validar o comportamento com testes próximos ao subsistema afetado
Zyra Wiki • Última atualização: 17/05/2026
Zyra Wiki • Última atualização: 17/05/2026
Home | Configuração | Comandos | Banco-de-Dados | Produção | Troubleshooting