@omnizap-system/omnizap 2.6.1 → 2.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/.env.example +54 -9
  2. package/.github/workflows/ci.yml +3 -3
  3. package/.github/workflows/security-runner-hardening.yml +1 -1
  4. package/.github/workflows/security-zap-full-scan.yml +1 -0
  5. package/app/config/index.js +2 -0
  6. package/app/configParts/adminIdentity.js +5 -5
  7. package/app/configParts/baileysConfig.js +226 -55
  8. package/app/configParts/groupUtils.js +5 -0
  9. package/app/configParts/messagePersistenceService.js +143 -3
  10. package/app/configParts/sessionConfig.js +157 -0
  11. package/app/connection/baileysCompatibility.test.js +1 -1
  12. package/app/connection/groupOwnerWriteStateResolver.js +109 -0
  13. package/app/connection/socketController.js +625 -124
  14. package/app/connection/socketController.multiSession.test.js +108 -0
  15. package/app/controllers/messageController.js +1 -1
  16. package/app/controllers/messagePipeline/commandMiddleware.js +12 -10
  17. package/app/controllers/messagePipeline/conversationMiddleware.js +2 -1
  18. package/app/controllers/messagePipeline/messagePipelineMiddlewares.test.js +104 -0
  19. package/app/controllers/messagePipeline/preProcessingMiddlewares.js +80 -2
  20. package/app/controllers/messageProcessingPipeline.js +88 -9
  21. package/app/controllers/messageProcessingPipeline.test.js +200 -0
  22. package/app/modules/adminModule/AGENT.md +1 -1
  23. package/app/modules/adminModule/commandConfig.json +3318 -1347
  24. package/app/modules/adminModule/groupCommandHandlers.js +856 -14
  25. package/app/modules/adminModule/groupCommandHandlers.test.js +375 -9
  26. package/app/modules/adminModule/groupWarningRepository.js +152 -0
  27. package/app/modules/aiModule/AGENT.md +47 -30
  28. package/app/modules/aiModule/aiConfigRuntime.js +1 -0
  29. package/app/modules/aiModule/catCommand.js +132 -25
  30. package/app/modules/aiModule/commandConfig.json +114 -28
  31. package/app/modules/analyticsModule/messageAnalysisEventRepository.js +54 -6
  32. package/app/modules/gameModule/AGENT.md +1 -1
  33. package/app/modules/gameModule/commandConfig.json +29 -0
  34. package/app/modules/menuModule/AGENT.md +1 -1
  35. package/app/modules/menuModule/commandConfig.json +45 -10
  36. package/app/modules/menuModule/menuCatalogService.js +190 -0
  37. package/app/modules/menuModule/menuCommandUsageRepository.js +109 -0
  38. package/app/modules/menuModule/menuDynamicService.js +511 -0
  39. package/app/modules/menuModule/menuDynamicService.test.js +141 -0
  40. package/app/modules/menuModule/menus.js +36 -5
  41. package/app/modules/playModule/AGENT.md +10 -5
  42. package/app/modules/playModule/commandConfig.json +74 -16
  43. package/app/modules/playModule/playCommandConstants.js +13 -7
  44. package/app/modules/playModule/playCommandCore.js +4 -6
  45. package/app/modules/playModule/{playCommandYtDlpClient.js → playCommandMediaClient.js} +684 -332
  46. package/app/modules/playModule/playConfigRuntime.js +5 -6
  47. package/app/modules/playModule/playModuleCriticalFlows.test.js +44 -59
  48. package/app/modules/quoteModule/AGENT.md +1 -1
  49. package/app/modules/quoteModule/commandConfig.json +29 -0
  50. package/app/modules/rpgPokemonModule/AGENT.md +1 -1
  51. package/app/modules/rpgPokemonModule/commandConfig.json +29 -0
  52. package/app/modules/statsModule/AGENT.md +1 -1
  53. package/app/modules/statsModule/commandConfig.json +58 -0
  54. package/app/modules/stickerModule/AGENT.md +1 -1
  55. package/app/modules/stickerModule/commandConfig.json +145 -0
  56. package/app/modules/stickerPackModule/AGENT.md +1 -1
  57. package/app/modules/stickerPackModule/autoPackCollectorService.js +5 -1
  58. package/app/modules/stickerPackModule/commandConfig.json +29 -0
  59. package/app/modules/stickerPackModule/stickerAutoPackByTagsRuntime.js +1 -1
  60. package/app/modules/stickerPackModule/stickerPackCommandHandlers.js +78 -57
  61. package/app/modules/stickerPackModule/stickerPackService.js +13 -6
  62. package/app/modules/systemMetricsModule/AGENT.md +1 -1
  63. package/app/modules/systemMetricsModule/commandConfig.json +29 -0
  64. package/app/modules/tiktokModule/AGENT.md +1 -1
  65. package/app/modules/tiktokModule/commandConfig.json +29 -0
  66. package/app/modules/userModule/AGENT.md +1 -1
  67. package/app/modules/userModule/commandConfig.json +29 -0
  68. package/app/modules/waifuPicsModule/AGENT.md +57 -27
  69. package/app/modules/waifuPicsModule/commandConfig.json +87 -0
  70. package/app/observability/metrics.js +136 -0
  71. package/app/services/ai/commandConfigEnrichmentService.js +229 -47
  72. package/app/services/ai/geminiService.js +131 -7
  73. package/app/services/ai/geminiService.test.js +59 -2
  74. package/app/services/ai/moduleAiHelpCoreService.js +33 -4
  75. package/app/services/group/groupMetadataService.js +24 -1
  76. package/app/services/infra/dbWriteQueue.js +51 -21
  77. package/app/services/messaging/newsBroadcastService.js +843 -27
  78. package/app/services/multiSession/assignmentBalancerService.js +457 -0
  79. package/app/services/multiSession/groupOwnershipRepository.js +381 -0
  80. package/app/services/multiSession/groupOwnershipService.js +890 -0
  81. package/app/services/multiSession/groupOwnershipService.test.js +309 -0
  82. package/app/services/multiSession/sessionRegistryService.js +293 -0
  83. package/app/store/aiPromptStore.js +36 -19
  84. package/app/store/groupConfigStore.js +41 -5
  85. package/app/store/premiumUserStore.js +21 -7
  86. package/app/utils/antiLink/antiLinkModule.js +352 -16
  87. package/app/workers/aiHelperContinuousLearningWorker.js +512 -0
  88. package/database/index.js +6 -0
  89. package/database/migrations/20260307_d0_hardening_down.sql +1 -1
  90. package/database/migrations/20260314_d7_canonical_sender_down.sql +1 -1
  91. package/database/migrations/20260406_d30_security_analytics_down.sql +1 -1
  92. package/database/migrations/20260411_d35_group_community_metadata_down.sql +59 -0
  93. package/database/migrations/20260411_d35_group_community_metadata_up.sql +62 -0
  94. package/database/migrations/20260412_d36_system_config_tables_down.sql +32 -0
  95. package/database/migrations/20260412_d36_system_config_tables_up.sql +66 -0
  96. package/database/migrations/20260413_d37_group_user_warnings_down.sql +11 -0
  97. package/database/migrations/20260413_d37_group_user_warnings_up.sql +24 -0
  98. package/database/migrations/20260414_d38_multi_session_foundation_down.sql +72 -0
  99. package/database/migrations/20260414_d38_multi_session_foundation_up.sql +125 -0
  100. package/database/migrations/20260414_d39_multi_session_cutover_down.sql +103 -0
  101. package/database/migrations/20260414_d39_multi_session_cutover_up.sql +83 -0
  102. package/database/schema.sql +102 -1
  103. package/docker-compose.yml +4 -1
  104. package/docs/compliance/acceptable-use-policy-2026-03-07.md +1 -1
  105. package/docs/compliance/privacy-policy-2026-03-07.md +2 -2
  106. package/docs/security/dsar-lgpd-runbook-2026-03-07.md +1 -1
  107. package/docs/security/network-hardening-runbook-2026-03-07.md +53 -0
  108. package/docs/security/omnizap-static-security-headers.conf +25 -0
  109. package/ecosystem.prod.config.cjs +31 -11
  110. package/index.js +52 -18
  111. package/observability/alert-rules.yml +20 -0
  112. package/observability/grafana/dashboards/omnizap-system-admin.json +229 -0
  113. package/observability/mysql-setup.sql +4 -4
  114. package/observability/system-admin-observability.md +26 -0
  115. package/package.json +12 -5
  116. package/public/comandos/commands-catalog.json +2253 -78
  117. package/public/js/apps/commandsReactApp.js +267 -87
  118. package/public/js/apps/createPackApp.js +3 -3
  119. package/public/js/apps/stickersApp.js +255 -103
  120. package/public/js/apps/termsReactApp.js +57 -8
  121. package/public/js/apps/userPasswordResetReactApp.js +406 -0
  122. package/public/js/apps/userReactApp.js +96 -47
  123. package/public/js/apps/userSystemAdmReactApp.js +1506 -0
  124. package/public/pages/politica-de-privacidade.html +1 -1
  125. package/public/pages/stickers.html +5 -5
  126. package/public/pages/termos-de-uso-texto-integral.html +1 -1
  127. package/public/pages/termos-de-uso.html +1 -1
  128. package/public/pages/user-password-reset.html +3 -4
  129. package/public/pages/user-systemadm.html +8 -462
  130. package/public/pages/user.html +1 -1
  131. package/scripts/clear-whatsapp-session.sh +123 -0
  132. package/scripts/core-ai-mode.mjs +163 -0
  133. package/scripts/deploy.sh +10 -0
  134. package/scripts/enrich-command-config-ux-openai.mjs +492 -0
  135. package/scripts/generate-commands-catalog.mjs +155 -0
  136. package/scripts/new-whatsapp-session.sh +317 -0
  137. package/scripts/security-web-surface-check.mjs +218 -0
  138. package/server/controllers/admin/adminPanelHandlers.js +253 -3
  139. package/server/controllers/admin/systemAdminController.js +267 -0
  140. package/server/controllers/sticker/stickerCatalogController.js +9 -23
  141. package/server/controllers/system/contactController.js +9 -17
  142. package/server/controllers/system/stickerCatalogSystemContext.js +27 -6
  143. package/server/controllers/system/systemController.js +254 -1
  144. package/server/controllers/userController.js +6 -0
  145. package/server/email/emailTemplateService.js +3 -2
  146. package/server/http/httpServer.js +8 -4
  147. package/server/middleware/securityHeaders.js +20 -1
  148. package/server/routes/admin/systemAdminRouter.js +6 -0
  149. package/server/routes/indexRouter.js +30 -6
  150. package/server/routes/observability/grafanaProxyRouter.js +254 -0
  151. package/server/routes/static/staticPageRouter.js +27 -1
  152. package/server/utils/publicContact.js +31 -0
  153. package/utils/whatsapp/contactEnv.js +39 -0
  154. package/vite.config.mjs +2 -1
  155. package/app/modules/playModule/local/installYtDlp.js +0 -25
  156. package/app/modules/playModule/local/ytDlpInstaller.js +0 -28
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "schema_version": "3.0.0",
3
- "generated_at": "2026-03-16T05:08:42.798Z",
3
+ "generated_at": "2026-03-23T01:52:25.085Z",
4
4
  "totals": {
5
5
  "modules": 14,
6
6
  "categories": 10,
7
- "commands": 55
7
+ "commands": 62
8
8
  },
9
9
  "modules": [
10
10
  {
@@ -12,7 +12,7 @@
12
12
  "label": "adminModule",
13
13
  "source_file": "app/modules/adminModule/commandConfig.json",
14
14
  "enabled": true,
15
- "command_count": 32
15
+ "command_count": 39
16
16
  },
17
17
  {
18
18
  "key": "stickerModule",
@@ -111,7 +111,7 @@
111
111
  "key": "admin",
112
112
  "label": "Moderação e Admin",
113
113
  "icon": "🛡️",
114
- "command_count": 32,
114
+ "command_count": 39,
115
115
  "modules": ["adminModule"],
116
116
  "commands": [
117
117
  {
@@ -142,6 +142,27 @@
142
142
  "mensagens_uso": {
143
143
  "missing_targets": ["/adicionar @participante1 @participante2 ...", "Também é possível informar os JIDs dos participantes."]
144
144
  },
145
+ "resumo_usuario": "Adiciona participantes ao grupo atual.",
146
+ "quando_usar": ["Quando você precisa incluir novos membros rapidamente.", "Quando você tem as menções/JIDs prontos para adicionar de uma vez.", "Quando o grupo precisa atualizar a lista de participantes com várias pessoas de uma só vez."],
147
+ "exemplos_reais": [
148
+ {
149
+ "situacao": "Adicionar dois participantes de uma vez.",
150
+ "comando": "/adicionar @joao @maria",
151
+ "resposta_esperada": "Comando executado com sucesso.",
152
+ "variacao": "Incluir várias pessoas com um único comando."
153
+ },
154
+ {
155
+ "situacao": "Tentar adicionar sem permissão de admin.",
156
+ "comando": "/adicionar @carla",
157
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
158
+ "variacao": "Usuário não é admin do grupo."
159
+ }
160
+ ],
161
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
162
+ "erros_comuns_usuario": ["Esquecer de mencionar os participantes ou usar o formato errado de menção (@nome).", "Usar o comando sem ser admin do grupo ou sem permissão necessária.", "Formato de uso incorreto, por exemplo, <prefix>adicionar sem mencionar participantes."],
163
+ "passos_se_der_erro": ["Verifique se você é admin do grupo e tem permissão para adicionar membros.", "Confira o formato: use @participante((s)) após <prefix>adicionar, sem espaços estranhos.", "Inclua pelo menos um participante na lista de membros.", "Tente novamente com o comando correto: <prefix>adicionar @participante1 @participante2 ...", "Caso persista, peça suporte com o registro da tentativa e o nome do grupo."],
164
+ "resumo_usuario_origem": "auto_ia_assistida",
165
+ "resumo_usuario_revisao_pendente": true,
145
166
  "arguments": [
146
167
  {
147
168
  "name": "participantes",
@@ -225,6 +246,33 @@
225
246
  "add": ["/antilink add <dominio>"],
226
247
  "remove": ["/antilink remove <dominio>"]
227
248
  },
249
+ "resumo_usuario": "Gerencia o bloqueio de links no grupo: liga/desliga o filtro, lista itens, e adiciona redes ou domínios permitidos.",
250
+ "quando_usar": ["Quando alguém posta um link que você não quer permitido no grupo.", "Para ativar ou desativar o filtro de links.", "Para ver quais redes ou domínios estão permitidos.", "Para adicionar um domínio ou rede confiável."],
251
+ "exemplos_reais": [
252
+ {
253
+ "situacao": "Ativar o filtro pela primeira vez.",
254
+ "comando": "/antilink on",
255
+ "resposta_esperada": "Comando executado com sucesso.",
256
+ "variacao": "iniciando o filtro no grupo atual."
257
+ },
258
+ {
259
+ "situacao": "Desativar o filtro temporariamente.",
260
+ "comando": "/antilink off",
261
+ "resposta_esperada": "Comando executado com sucesso.",
262
+ "variacao": "desativar o filtro sem remover a configuração."
263
+ },
264
+ {
265
+ "situacao": "Permitir uma rede específica.",
266
+ "comando": "/antilink allow <rede>",
267
+ "resposta_esperada": "Comando executado com sucesso.",
268
+ "variacao": "permitindo 'example.net'."
269
+ }
270
+ ],
271
+ "resposta_esperada": ["Comando executado com sucesso."],
272
+ "erros_comuns_usuario": ["Você não é admin do grupo.", "Formato de uso inválido. Use <prefix>antilink <subcomando> com os argumentos corretos.", "Rede ou domínio não informado após o subcomando allow/disallow/add.", "O grupo não permite esse comando por restrições de configuração."],
273
+ "passos_se_der_erro": ["Verifique se você está como admin do grupo.", "Confira o subcomando e os argumentos, usando <prefix>antilink list para confirmar o formato.", "Tente novamente com o prefix correto e, se necessário, remova ou adicione redes/domínios.", "Se o problema continuar, peça suporte ao admin do grupo ou contate o suporte do bot."],
274
+ "resumo_usuario_origem": "auto_ia_assistida",
275
+ "resumo_usuario_revisao_pendente": true,
228
276
  "arguments": [
229
277
  {
230
278
  "name": "subcomando",
@@ -312,6 +360,33 @@
312
360
  "mensagens_uso": {
313
361
  "default": ["/assunto <novo_assunto>"]
314
362
  },
363
+ "resumo_usuario": "Altera o assunto do grupo. Você precisa ser admin do grupo e o grupo deve permitir mudanças no assunto.",
364
+ "quando_usar": ["Quando o tema do grupo estiver desatualizado ou não refletir a conversa", "Quando houver necessidade de esclarecer o foco do grupo para novos participantes", "Você é admin do grupo e quer deixar o assunto visível para todos", "Após receber orientação para mudar o assunto do grupo"],
365
+ "exemplos_reais": [
366
+ {
367
+ "situacao": "Alterar para um novo tema claro.",
368
+ "comando": "/assunto Novo tema do grupo",
369
+ "resposta_esperada": "Comando executado com sucesso.",
370
+ "variacao": "Uso comum com a primeira letra maiúscula no assunto."
371
+ },
372
+ {
373
+ "situacao": "Usuário não é admin.",
374
+ "comando": "/assunto Novo tema",
375
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
376
+ "variacao": "Usuario não é admin."
377
+ },
378
+ {
379
+ "situacao": "Formato inválido (faltando o texto do assunto).",
380
+ "comando": "/assunto",
381
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
382
+ "variacao": "Faltando o texto do assunto."
383
+ }
384
+ ],
385
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
386
+ "erros_comuns_usuario": ["Não ser admin do grupo", "Não estar no grupo", "Assunto vazio ou apenas espaços", "Usar prefixo incorreto ao comando", "Digitar o comando sem o formato correto (<prefix>assunto <novo assunto>)"],
387
+ "passos_se_der_erro": ["1. Confirme que você está no grupo.", "2. Verifique se você é admin do grupo.", "3. Use o formato correto: <prefix>assunto <novo assunto>.", "4. Garanta que o assunto não está vazio.", "5. Tente novamente. Se o erro persistir, peça ajuda ao administrador do grupo."],
388
+ "resumo_usuario_origem": "auto_ia_assistida",
389
+ "resumo_usuario_revisao_pendente": true,
315
390
  "arguments": [
316
391
  {
317
392
  "name": "assunto",
@@ -391,6 +466,33 @@
391
466
  "invalid_action": ["/atualizarsolicitacoes <approve|reject> @participante1 ..."],
392
467
  "missing_targets": ["/atualizarsolicitacoes <approve|reject> @participante1 ...", "Mencione os usuários que devem ser aprovados ou rejeitados."]
393
468
  },
469
+ "resumo_usuario": "Aprova ou rejeita solicitações de entrada de participantes no grupo. Pode ser usado em planos comuns e premium.",
470
+ "quando_usar": ["Quando houver novas solicitações de entrada que precisam de aprovação.", "Se você é admin do grupo e tem permissão para gerenciar membros.", "Ao revisar várias solicitações de uma vez."],
471
+ "exemplos_reais": [
472
+ {
473
+ "situacao": "Aprovar a entrada de João e Maria que pediram entrada no grupo.",
474
+ "comando": "/atualizarsolicitacoes approve @joao @maria",
475
+ "resposta_esperada": "Comando executado com sucesso.",
476
+ "variacao": "approve com múltiplos participantes."
477
+ },
478
+ {
479
+ "situacao": "Rejeitar a entrada de Carlos.",
480
+ "comando": "/atualizarsolicitacoes reject @carlos",
481
+ "resposta_esperada": "Comando executado com sucesso.",
482
+ "variacao": "reject de um participante."
483
+ },
484
+ {
485
+ "situacao": "Formato incorreto ou erro de digitação no comando.",
486
+ "comando": "/atualizarsolicitacoes aprov @joao",
487
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
488
+ "variacao": "erro de digitar a palavra correta."
489
+ }
490
+ ],
491
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
492
+ "erros_comuns_usuario": ["Não mencionar participantes ao chamar o comando.", "Usar uma ação diferente de approve ou reject.", "Não ter permissão de admin ou gerenciar o grupo.", "Usar o comando em contextos ou grupos não permitidos.", "Esquecer do prefixo opcional <prefix> quando necessário."],
493
+ "passos_se_der_erro": ["Verifique se você é admin do grupo e tem permissão para gerenciar membros.", "Confirme o formato: <prefix>atualizarsolicitacoes <approve|reject> @participante1 [@participante2 ...]).", "Tente novamente com um único participante para isolar o problema.", "Se o erro persistir, peça ajuda ao admin do grupo ou verifique as políticas do bot.", "Certifique-se de que o grupo permite solicitações de entrada"],
494
+ "resumo_usuario_origem": "auto_ia_assistida",
495
+ "resumo_usuario_revisao_pendente": true,
394
496
  "arguments": [
395
497
  {
396
498
  "name": "acao",
@@ -477,6 +579,33 @@
477
579
  "subcomandos": ["on", "off", "status"],
478
580
  "metodos_de_uso": ["/autofigurinha on", "/autofigurinha off", "/autofigurinha status"],
479
581
  "mensagens_uso": {},
582
+ "resumo_usuario": "Ativa ou desativa a geração automática de figurinhas no grupo, facilitando a criação de figurinhas a partir das mensagens. Funcionalidade disponível para planos comuns e premium.",
583
+ "quando_usar": ["Você é admin do grupo e quer ativar a geração automática de figurinhas.", "Você precisa desativar a geração automática para evitar figurinhas indesejadas.", "Quer verificar rapidamente se a função está ligada ou desligada no grupo."],
584
+ "exemplos_reais": [
585
+ {
586
+ "situacao": "Você é admin e quer ativar a função no grupo.",
587
+ "comando": "/autofigurinha on",
588
+ "resposta_esperada": "Comando executado com sucesso.",
589
+ "variacao": "Também pode usar <prefix>autosticker on."
590
+ },
591
+ {
592
+ "situacao": "Você quer desativar a função.",
593
+ "comando": "/autofigurinha off",
594
+ "resposta_esperada": "Comando executado com sucesso.",
595
+ "variacao": "ou <prefix>autosticker off."
596
+ },
597
+ {
598
+ "situacao": "Checar o status atual da função.",
599
+ "comando": "/autofigurinha status",
600
+ "resposta_esperada": "Status atual: ligado.",
601
+ "variacao": "ou <prefix>autosticker status."
602
+ }
603
+ ],
604
+ "resposta_esperada": ["Comando executado com sucesso."],
605
+ "erros_comuns_usuario": ["Esqueceu de informar o argumento on/off/status.", "O usuário não é admin ou o bot não tem permissão no grupo.", "Formato do comando está incorreto. Use <prefix>autofigurinha on|off|status.", "Tente usar em um grupo onde a função é permitida.", "Esqueceu de considerar o alias <prefix>autosticker na hora do uso."],
606
+ "passos_se_der_erro": ["1) Confirme que você está em um grupo e tem permissão de admin.", "2) Verifique o formato do comando: <prefix>autofigurinha on|off|status.", "3) Tente novamente após alguns segundos.", "4) Se o erro persistir, verifique se o bot está ativo no grupo e tente novamente ou procure suporte."],
607
+ "resumo_usuario_origem": "auto_ia_assistida",
608
+ "resumo_usuario_revisao_pendente": true,
480
609
  "arguments": [
481
610
  {
482
611
  "name": "acao",
@@ -554,6 +683,33 @@
554
683
  "subcomandos": ["on", "off", "status"],
555
684
  "metodos_de_uso": ["/autosolicitacoes on", "/autosolicitacoes off", "/autosolicitacoes status"],
556
685
  "mensagens_uso": {},
686
+ "resumo_usuario": "Permite ativar, desativar ou checar a veracidade da aprovação automática de solicitações no grupo.",
687
+ "quando_usar": ["Ativar a aprovação automática para agilizar solicitações de membros.", "Desativar a aprovação automática quando você quiser revisar cada solicitação.", "Verificar o estado atual (ligado/desligado) da auto aprovação."],
688
+ "exemplos_reais": [
689
+ {
690
+ "situacao": "Administrador quer ativar a aprovação automática no grupo.",
691
+ "comando": "/autosolicitacoes on",
692
+ "resposta_esperada": "Comando executado com sucesso.",
693
+ "variacao": "<prefix>autorequests on."
694
+ },
695
+ {
696
+ "situacao": "Administrador desativa a aprovação automática.",
697
+ "comando": "/autosolicitacoes off",
698
+ "resposta_esperada": "Comando executado com sucesso.",
699
+ "variacao": "<prefix>autorequests off."
700
+ },
701
+ {
702
+ "situacao": "Administrador quer verificar o estado atual.",
703
+ "comando": "/autosolicitacoes status",
704
+ "resposta_esperada": "Estado atual: on/off (conforme estado real).",
705
+ "variacao": "<prefix>autorequests status."
706
+ }
707
+ ],
708
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
709
+ "erros_comuns_usuario": ["Nao eh admin do grupo ou nao possui permissao.", "Esqueceu de usar o prefixo <prefix> na chamada.", "Uso incorreto: informe on, off ou status."],
710
+ "passos_se_der_erro": ["Confirme que voce eh admin do grupo.", "Use o prefix correto: <prefix>autosolicitacoes on/off/status.", "Verifique se o bot tem permissoes para ler e enviar mensagens no grupo.", "Tente novamente; se persistir, peça suporte com a captura de tela."],
711
+ "resumo_usuario_origem": "auto_ia_assistida",
712
+ "resumo_usuario_revisao_pendente": true,
557
713
  "arguments": [
558
714
  {
559
715
  "name": "acao",
@@ -633,6 +789,33 @@
633
789
  "mensagens_uso": {
634
790
  "missing_targets": ["/banir @participante1 @participante2 ...", "Também é possível responder à mensagem do participante desejado."]
635
791
  },
792
+ "resumo_usuario": "Remover participantes do grupo atual via comando. Requer ser admin do grupo.",
793
+ "quando_usar": ["Quando alguém viola regras (spam, assédio, links indesejados) ou precisa sair do grupo.", "Antes de banir, confirme que o alvo não é admin/owner e que você tem permissão para remover.", "Observação: não há restrição de Premium; funciona para planos comum e premium."],
794
+ "exemplos_reais": [
795
+ {
796
+ "situacao": "Participante está enviando spam constante.",
797
+ "comando": "/banir @usuario1",
798
+ "resposta_esperada": "Comando executado com sucesso.",
799
+ "variacao": "banir um único participante."
800
+ },
801
+ {
802
+ "situacao": "Tentativa de banir sem mencionar nenhum participante.",
803
+ "comando": "/banir",
804
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
805
+ "variacao": "faltou argumento."
806
+ },
807
+ {
808
+ "situacao": "Usuário sem permissão tenta banir.",
809
+ "comando": "/banir @usuario2",
810
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
811
+ "variacao": "sem ser admin."
812
+ }
813
+ ],
814
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
815
+ "erros_comuns_usuario": ["Não é admin do grupo.", "Tentar banir sem mencionar participantes.", "Tentar banir administradores/owner do grupo.", "Bot não tem permissão para remover membros no grupo.", "Esquecer de usar o prefixo correto ou deixar de mencionar."],
816
+ "passos_se_der_erro": ["Verifique se você é admin do grupo e se o bot tem permissão para remover membros.", "Garanta que pelo menos um participante seja mencionado com @ e que o comando use o prefix correto.", "Se o erro persistir, tente com apenas um participante e confirme se o alvo não é admin.", "Não banir administradores sem a autorização necessária; se o problema continuar, tente novamente mais tarde ou peça suporte."],
817
+ "resumo_usuario_origem": "auto_ia_assistida",
818
+ "resumo_usuario_revisao_pendente": true,
636
819
  "arguments": [
637
820
  {
638
821
  "name": "participantes",
@@ -713,6 +896,33 @@
713
896
  "mensagens_uso": {
714
897
  "missing_content": ["/boasvindas set <mensagem ou caminho da midia>", "Também é possível enviar uma mídia junto ao comando."]
715
898
  },
899
+ "resumo_usuario": "Configura mensagens/midia de boas-vindas no grupo. Ativa, desativa ou define a mensagem que será enviada aos novos membros.",
900
+ "quando_usar": ["Quero ativar a mensagem de boas-vindas ao entrar no grupo.", "Preciso desativar a saudação automática temporariamente.", "Quero definir ou atualizar o texto/mídia que os novos membros verão ao entrar."],
901
+ "exemplos_reais": [
902
+ {
903
+ "situacao": "Ativar as boas-vindas no grupo.",
904
+ "comando": "/boasvindas on",
905
+ "resposta_esperada": "Comando executado com sucesso.",
906
+ "variacao": "<prefix> boasvindas on."
907
+ },
908
+ {
909
+ "situacao": "Desativar as boas-vindas.",
910
+ "comando": "/boasvindas off",
911
+ "resposta_esperada": "Comando executado com sucesso.",
912
+ "variacao": "<prefix>boasvindas off."
913
+ },
914
+ {
915
+ "situacao": "Definir a mensagem de boas-vindas com texto.",
916
+ "comando": "/boasvindas set Olá, bem-vindos ao grupo! Por favor, leia as regras.",
917
+ "resposta_esperada": "Comando executado com sucesso.",
918
+ "variacao": "<prefix>boasvindas set Olá, bem-vindos ao grupo!"
919
+ }
920
+ ],
921
+ "resposta_esperada": ["Comando executado com sucesso."],
922
+ "erros_comuns_usuario": ["Não está em um grupo ou você não é admin.", "Uso incorreto do formato (on|off|set).", "Ao usar set, não foi informado texto ou mídia após o comando.", "Prefixo não incluído ou incorreto."],
923
+ "passos_se_der_erro": ["Verifique se está em grupo e se você é admin do grupo.", "Confirme o formato do comando: on, off ou set.", "Se usar set, inclua a mensagem/texto ou a mídia após o set.", "Tente novamente com o prefix correto. Se o problema persistir, consulte o suporte."],
924
+ "resumo_usuario_origem": "auto_ia_assistida",
925
+ "resumo_usuario_revisao_pendente": true,
716
926
  "arguments": [
717
927
  {
718
928
  "name": "acao",
@@ -799,6 +1009,33 @@
799
1009
  "subcomandos": ["on", "off", "status"],
800
1010
  "metodos_de_uso": ["/captcha on", "/captcha off", "/captcha status"],
801
1011
  "mensagens_uso": {},
1012
+ "resumo_usuario": "Permite ativar, desativar ou checar o status do captcha para novos membros em um grupo.",
1013
+ "quando_usar": ["Você é admin e quer exigir captcha para novos membros.", "Você precisa verificar se o captcha está ativo no grupo atual.", "Precisa confirmar o estado atual do recurso."],
1014
+ "exemplos_reais": [
1015
+ {
1016
+ "situacao": "Ativar captcha em um grupo onde ele está desativado.",
1017
+ "comando": "/captcha on",
1018
+ "resposta_esperada": "Comando executado com sucesso.",
1019
+ "variacao": "<prefix>captcha on (sem espaço extra)."
1020
+ },
1021
+ {
1022
+ "situacao": "Desativar captcha quando não é mais necessário.",
1023
+ "comando": "/captcha off",
1024
+ "resposta_esperada": "Comando executado com sucesso.",
1025
+ "variacao": "<prefix>captcha off (sem espaços)."
1026
+ },
1027
+ {
1028
+ "situacao": "Ver o status atual do captcha.",
1029
+ "comando": "/captcha status",
1030
+ "resposta_esperada": "Status atual: on/off (exibição pelo bot).",
1031
+ "variacao": "<prefix>captcha status."
1032
+ }
1033
+ ],
1034
+ "resposta_esperada": ["Comando executado com sucesso.", "Status atual do captcha exibido pelo bot (on/off)."],
1035
+ "erros_comuns_usuario": ["Formato de uso inválido. Use <prefix>captcha on|off|status.", "Você não é admin do grupo ou não possui permissão para alterar as configurações.", "O comando não funciona em chats sem o contexto de grupo ou sem autenticação Google.", "Tente usar o comando exatamente como informado, sem caracteres extras."],
1036
+ "passos_se_der_erro": ["Confirme que você está no grupo correto e é admin.", "Digite exatamente: <prefix>captcha on|off|status.", "Se o erro persistir, tente novamente mais tarde ou peça a outro admin para testar.", "Se houver mensagem de permissão, revise as permissões do bot no grupo."],
1037
+ "resumo_usuario_origem": "auto_ia_assistida",
1038
+ "resumo_usuario_revisao_pendente": true,
802
1039
  "arguments": [
803
1040
  {
804
1041
  "name": "acao",
@@ -850,6 +1087,119 @@
850
1087
  "priority": 100
851
1088
  }
852
1089
  },
1090
+ {
1091
+ "key": "adminModule:clearwarn",
1092
+ "name": "clearwarn",
1093
+ "id": "admin.clearwarn",
1094
+ "aliases": ["limparwarn", "resetwarn"],
1095
+ "module": "adminModule",
1096
+ "module_label": "adminModule",
1097
+ "category": "admin",
1098
+ "category_label": "Moderação e Admin",
1099
+ "descricao": "Remove advertências de um participante no grupo (todas ou quantidade).",
1100
+ "requirements": {
1101
+ "group": true,
1102
+ "admin": true,
1103
+ "owner": false,
1104
+ "google_login": true,
1105
+ "nsfw": false,
1106
+ "media": false,
1107
+ "reply": false
1108
+ },
1109
+ "premium": false,
1110
+ "allowed_plans": ["comum", "premium"],
1111
+ "rate_limit": null,
1112
+ "local_de_uso": ["grupo"],
1113
+ "subcomandos": [],
1114
+ "metodos_de_uso": ["/clearwarn @usuario", "/clearwarn @usuario all", "/clearwarn @usuario <qtd>"],
1115
+ "mensagens_uso": {
1116
+ "missing_targets": ["/clearwarn @usuario [all|qtd]", "Também é possível responder a mensagem do usuário alvo."],
1117
+ "invalid_amount": ["/clearwarn @usuario all", "/clearwarn @usuario <qtd> (qtd precisa ser número positivo)"]
1118
+ },
1119
+ "resumo_usuario": "Remove advertências de um participante no grupo (todas ou quantidade).",
1120
+ "quando_usar": ["Use quando você precisa desta ação: Remove advertências de um participante no grupo (todas ou quantidade).", "Funciona dentro de grupos.", "Você precisa ser admin para executar.", "É necessário estar logado no sistema para usar."],
1121
+ "exemplos_reais": [
1122
+ {
1123
+ "situacao": "Cenário comum: Remove advertências de um participante no grupo (todas ou quantidade).",
1124
+ "comando": "/clearwarn @usuario",
1125
+ "resposta_esperada": "Comando executado com sucesso.",
1126
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
1127
+ },
1128
+ {
1129
+ "situacao": "Variação 2 de uso do comando no mesmo contexto.",
1130
+ "comando": "/clearwarn @usuario all",
1131
+ "resposta_esperada": "Comando executado com sucesso.",
1132
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
1133
+ },
1134
+ {
1135
+ "situacao": "Variação 3 de uso do comando no mesmo contexto.",
1136
+ "comando": "/clearwarn @usuario <qtd>",
1137
+ "resposta_esperada": "Comando executado com sucesso.",
1138
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
1139
+ }
1140
+ ],
1141
+ "resposta_esperada": ["Sucesso: Comando executado com sucesso.", "Uso incorreto: Formato de uso inválido. Consulte metodos_de_uso.", "Permissão: Permissão insuficiente para executar este comando."],
1142
+ "erros_comuns_usuario": ["Digitar o comando fora do formato esperado.", "Tentar executar fora de um grupo.", "Tentar executar sem ser admin.", "Tentar usar sem estar logado no sistema."],
1143
+ "passos_se_der_erro": ["Copie e teste um exemplo pronto desta página.", "Confira se você está no local certo (grupo/privado) e com a permissão necessária.", "Se ainda falhar, fale com o admin do sistema no privado."],
1144
+ "resumo_usuario_origem": "auto_ia_assistida",
1145
+ "resumo_usuario_revisao_pendente": true,
1146
+ "arguments": [
1147
+ {
1148
+ "name": "participante",
1149
+ "type": "string",
1150
+ "required": true,
1151
+ "description": "menção, resposta ou JID válido",
1152
+ "default": null,
1153
+ "validation": "menção, resposta ou JID válido"
1154
+ },
1155
+ {
1156
+ "name": "escopo",
1157
+ "type": "string",
1158
+ "required": false,
1159
+ "description": "all para limpar tudo ou número para remover parcialmente",
1160
+ "default": "1",
1161
+ "validation": "all|qtd positiva"
1162
+ }
1163
+ ],
1164
+ "responses": {
1165
+ "success": "Comando executado com sucesso.",
1166
+ "usage_error": "Formato de uso inválido. Consulte metodos_de_uso.",
1167
+ "permission_error": "Permissão insuficiente para executar este comando."
1168
+ },
1169
+ "technical": {
1170
+ "collected_data": ["chat_identifier", "sender_identifier", "command_content", "target_identifier", "moderation_reason", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "identificador do participante alvo", "motivo e contagem de advertencias por participante no grupo"],
1171
+ "dependencies": ["API do WhatsApp (ações de grupo)", "stores/configuração interna", "banco relacional (group_user_warnings)"],
1172
+ "side_effects": ["consulta e altera histórico de advertências no grupo", "envia mensagens administrativas"],
1173
+ "behavior": {
1174
+ "type": "action_target",
1175
+ "target_type": "participant",
1176
+ "action": "clearwarn",
1177
+ "requires_targets": true
1178
+ },
1179
+ "handler": {
1180
+ "file": "groupCommandHandlers.js",
1181
+ "method": "handleAdminCommand",
1182
+ "command_case": "clearwarn"
1183
+ },
1184
+ "risk_level": "medium",
1185
+ "stability": "stable",
1186
+ "version": "1.0.0"
1187
+ },
1188
+ "observability": {
1189
+ "event_name": "command.executed",
1190
+ "analytics_event": null,
1191
+ "tags": ["whatsapp", "command", "adminModule", "moderation"]
1192
+ },
1193
+ "privacy": {
1194
+ "retention": "standard_app_logs",
1195
+ "legal_basis": "service_execution_and_legitimate_interest"
1196
+ },
1197
+ "discovery": {
1198
+ "keywords": [],
1199
+ "user_phrasings": ["quero advertir um usuario", "listar warnings de um usuario", "limpar warnings do usuario"],
1200
+ "priority": 120
1201
+ }
1202
+ },
853
1203
  {
854
1204
  "key": "adminModule:configgrupo",
855
1205
  "name": "configgrupo",
@@ -878,6 +1228,33 @@
878
1228
  "mensagens_uso": {
879
1229
  "default": ["/configgrupo <announcement|not_announcement|locked|unlocked>"]
880
1230
  },
1231
+ "resumo_usuario": "Ajuda prática para alterar o estado do grupo com o comando <prefix>configgrupo [modo]. Requer ser admin, estar no grupo e login Google.",
1232
+ "quando_usar": ["Quando você precisa mudar o modo do grupo (anuncio, not_announcement, locked, unlocked).", "Quando você é admin do grupo e tem login Google ativo."],
1233
+ "exemplos_reais": [
1234
+ {
1235
+ "situacao": "Alterar o grupo para anúncio.",
1236
+ "comando": "/configgrupo announcement",
1237
+ "resposta_esperada": "Comando executado com sucesso.",
1238
+ "variacao": "configurar o grupo como anúncio."
1239
+ },
1240
+ {
1241
+ "situacao": "Desbloquear o grupo para permitir mensagens.",
1242
+ "comando": "/configgrupo unlocked",
1243
+ "resposta_esperada": "Comando executado com sucesso.",
1244
+ "variacao": "desbloquear o grupo."
1245
+ },
1246
+ {
1247
+ "situacao": "Tentar alterar sem ser admin.",
1248
+ "comando": "/configgrupo locked",
1249
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
1250
+ "variacao": "tentativa sem permissão de admin."
1251
+ }
1252
+ ],
1253
+ "resposta_esperada": ["Comando executado com sucesso.", "Permissão insuficiente para executar este comando.", "Formato de uso inválido. Consulte metodos_de_uso."],
1254
+ "erros_comuns_usuario": ["Não é admin do grupo ao tentar usar o comando.", "Tentar usar o comando fora de um grupo.", "Usar um modo inválido ou incorreto (ex.: not_announcement com erro de digitação).", "Não estar logado com Google ou não ter acesso ao grupo."],
1255
+ "passos_se_der_erro": ["1) Confirme que você é admin do grupo.", "2) Verifique que está no chat do grupo correto.", "3) Valide o modo informado: 'announcement', 'not_announcement', 'locked', 'unlocked'.", "4) Refaça o comando com o formato correto: <prefix>configgrupo <modo>.", "5) Se o erro persistir, peça suporte com captura de tela e descrição do problema."],
1256
+ "resumo_usuario_origem": "auto_ia_assistida",
1257
+ "resumo_usuario_revisao_pendente": true,
881
1258
  "arguments": [
882
1259
  {
883
1260
  "name": "modo",
@@ -955,6 +1332,33 @@
955
1332
  "subcomandos": [],
956
1333
  "metodos_de_uso": ["/convite"],
957
1334
  "mensagens_uso": {},
1335
+ "resumo_usuario": "Mostra o código de convite atual do grupo. Disponível para planos comum ou premium.",
1336
+ "quando_usar": ["Quando precisar compartilhar o código de convite com novos membros.", "Antes de convidar, pegue o código atual para garantir que está ativo.", "Se o código do grupo mudou, use este comando novamente para obter o novo código."],
1337
+ "exemplos_reais": [
1338
+ {
1339
+ "situacao": "Convidar novo membro que está fora do grupo.",
1340
+ "comando": "/convite",
1341
+ "resposta_esperada": "Código de convite atual exibido: https://chat.whatsapp.com/EXEMPLO.",
1342
+ "variacao": "com link de convite."
1343
+ },
1344
+ {
1345
+ "situacao": "Usuario nao admin tentando ver o codigo.",
1346
+ "comando": "/convite",
1347
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
1348
+ "variacao": "sem privilégios de admin."
1349
+ },
1350
+ {
1351
+ "situacao": "Formato de uso incorreto.",
1352
+ "comando": "/convite agora",
1353
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
1354
+ "variacao": "erro de formatacao."
1355
+ }
1356
+ ],
1357
+ "resposta_esperada": ["Código de convite atual do grupo é exibido, por exemplo, um link de convite.", "Se o usuário não tem permissão, aparece a mensagem de permissão insuficiente."],
1358
+ "erros_comuns_usuario": ["Nao ser admin do grupo", "Tentar usar o comando fora do grupo", "Esquecer de usar o prefixo correto (<prefix>)", "Formato de uso incorreto (usou argumentos ou texto adicional)"],
1359
+ "passos_se_der_erro": ["Verifique se voce é admin do grupo", "Confirme que voce está no grupo correto e use <prefix>convite", "Use o comando exatamente sem argumentos adicionais", "Se o problema continuar, consulte o administrador do grupo ou suporte do bot"],
1360
+ "resumo_usuario_origem": "auto_ia_assistida",
1361
+ "resumo_usuario_revisao_pendente": true,
958
1362
  "arguments": [],
959
1363
  "responses": {
960
1364
  "success": "Comando executado com sucesso.",
@@ -1024,6 +1428,33 @@
1024
1428
  "mensagens_uso": {
1025
1429
  "default": ["/descricao <nova_descricao>"]
1026
1430
  },
1431
+ "resumo_usuario": "Permite ao(a) admin do grupo alterar a descrição do grupo. O novo texto precisa ser não vazio. Disponível para planos comum e premium. Requer grupo, admin e login Google.",
1432
+ "quando_usar": ["Quando o administrador quiser atualizar a descrição para refletir o tema atual do grupo.", "Antes de eventos ou mudanças, para manter a descrição atualizada.", "Ao corrigir informações desatualizadas ou ambíguas na descrição."],
1433
+ "exemplos_reais": [
1434
+ {
1435
+ "situacao": "Atualizar a descrição para refletir o tema do grupo.",
1436
+ "comando": "/descricao Grupo de estudo sobre bots WhatsApp",
1437
+ "resposta_esperada": "Comando executado com sucesso.",
1438
+ "variacao": "uso simples."
1439
+ },
1440
+ {
1441
+ "situacao": "Usar o alias setdesc.",
1442
+ "comando": "/setdesc Grupo de estudo sobre bots",
1443
+ "resposta_esperada": "Comando executado com sucesso.",
1444
+ "variacao": "usa alias."
1445
+ },
1446
+ {
1447
+ "situacao": "Descrição vazia.",
1448
+ "comando": "/descricao",
1449
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
1450
+ "variacao": "descricao vazia."
1451
+ }
1452
+ ],
1453
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
1454
+ "erros_comuns_usuario": ["Nao estar em um grupo", "Nao ser admin do grupo", "Descricao vazia ou apenas espaços", "Formato incorreto: esquecer o <prefix>", "Tentar alterar sem possuir permissao"],
1455
+ "passos_se_der_erro": ["Verifique se você está no grupo correto e se o bot pode agir nele", "Confirme que você tem permissão de admin", "Envie o comando com uma descricao não vazia: <prefix>descricao Nova descricao", "Se aparecer erro de permissão, peça ajuda ao administrator do grupo", "Se o problema persistir, tente novamente mais tarde ou contate o suporte"],
1456
+ "resumo_usuario_origem": "auto_ia_assistida",
1457
+ "resumo_usuario_revisao_pendente": true,
1027
1458
  "arguments": [
1028
1459
  {
1029
1460
  "name": "descricao",
@@ -1102,6 +1533,33 @@
1102
1533
  "mensagens_uso": {
1103
1534
  "missing_content": ["/despedida set <mensagem ou caminho da midia>", "Também é possível enviar uma mídia junto ao comando."]
1104
1535
  },
1536
+ "resumo_usuario": "Configura mensagens/midia de despedida no grupo. Ativa, desativa ou define a mensagem que aparece quando alguém sai do grupo.",
1537
+ "quando_usar": ["Ativar a despedida no grupo.", "Desativar a despedida no grupo.", "Definir ou atualizar a mensagem/midia de despedida (texto, caminho local ou mídia anexada)."],
1538
+ "exemplos_reais": [
1539
+ {
1540
+ "situacao": "Ativar a despedida no grupo.",
1541
+ "comando": "/despedida on",
1542
+ "resposta_esperada": "Comando executado com sucesso.",
1543
+ "variacao": "<prefix>despedida on (ativar)."
1544
+ },
1545
+ {
1546
+ "situacao": "Desativar a despedida no grupo.",
1547
+ "comando": "/despedida off",
1548
+ "resposta_esperada": "Comando executado com sucesso.",
1549
+ "variacao": "<prefix>despedida off (desativar)."
1550
+ },
1551
+ {
1552
+ "situacao": "Definir mensagem de despedida com texto.",
1553
+ "comando": "/despedida set Boa viagem a todos!",
1554
+ "resposta_esperada": "Comando executado com sucesso.",
1555
+ "variacao": "<prefix>despedida set Obrigado por participar! :)."
1556
+ }
1557
+ ],
1558
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
1559
+ "erros_comuns_usuario": ["Você não é admin do grupo.", "Formato incorreto ao usar o modo set (inclua a mensagem/midia).", "Tentativa de uso em grupo sem estar com login permitido ou sem permissão de admin."],
1560
+ "passos_se_der_erro": ["Verifique se você é admin do grupo.", "Confirme o formato: use on, off ou set e, se for set, inclua a mensagem ou o caminho da mídia.", "Garanta que o grupo está associado à conta com Google Login ativo.", "Tente novamente; se o problema persistir, procure suporte com a mensagem de erro recebida."],
1561
+ "resumo_usuario_origem": "auto_ia_assistida",
1562
+ "resumo_usuario_revisao_pendente": true,
1105
1563
  "arguments": [
1106
1564
  {
1107
1565
  "name": "acao",
@@ -1188,6 +1646,33 @@
1188
1646
  "subcomandos": [],
1189
1647
  "metodos_de_uso": ["/entrar <codigo_de_convite>"],
1190
1648
  "mensagens_uso": {},
1649
+ "resumo_usuario": "Use este comando para fazer o bot entrar em um grupo usando um código de convite. Requer login com Google.",
1650
+ "quando_usar": ["Você recebeu um código de convite de grupo e quer que o bot entre automaticamente.", "Precisa que o bot participe de um grupo para ajudar com mensagens ou automações.", "O código de convite foi fornecido por quem administra o grupo e você quer testar a entrada do bot."],
1651
+ "exemplos_reais": [
1652
+ {
1653
+ "situacao": "Entrar com um código válido.",
1654
+ "comando": "/entrar <codigo_de_convite>",
1655
+ "resposta_esperada": "Comando executado com sucesso.",
1656
+ "variacao": "codigo_de_convite válido."
1657
+ },
1658
+ {
1659
+ "situacao": "Código de convite ausente.",
1660
+ "comando": "/entrar",
1661
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
1662
+ "variacao": "falta o código."
1663
+ },
1664
+ {
1665
+ "situacao": "Login Google não realizado.",
1666
+ "comando": "/entrar <codigo_de_convite>",
1667
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
1668
+ "variacao": "sem autenticação no Google."
1669
+ }
1670
+ ],
1671
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
1672
+ "erros_comuns_usuario": ["Esquecer de fornecer o código de convite.", "Digitar o código com caracteres errados ou espaços.", "Não estar logado com Google ao tentar usar o comando.", "Tentar usar o comando em situação onde o código não é permitido."],
1673
+ "passos_se_der_erro": ["Verifique o código de convite: confirme se está correto e ativo.", "Execute o comando no formato correto: <prefix>entrar <codigo_de_convite>.", "Faça login com a conta Google associada, se necessário.", "Se o grupo exigir permissões adicionais, confirme com o admin.", "Caso o erro persista, peça suporte técnico com o código recebido."],
1674
+ "resumo_usuario_origem": "auto_ia_assistida",
1675
+ "resumo_usuario_revisao_pendente": true,
1191
1676
  "arguments": [
1192
1677
  {
1193
1678
  "name": "codigo_convite",
@@ -1238,6 +1723,85 @@
1238
1723
  "priority": 100
1239
1724
  }
1240
1725
  },
1726
+ {
1727
+ "key": "adminModule:grupoaudit",
1728
+ "name": "grupoaudit",
1729
+ "id": "admin.grupoaudit",
1730
+ "aliases": ["groupaudit", "auditgrupo", "statusgrupo"],
1731
+ "module": "adminModule",
1732
+ "module_label": "adminModule",
1733
+ "category": "admin",
1734
+ "category_label": "Moderação e Admin",
1735
+ "descricao": "Mostra um resumo consolidado das configurações administrativas ativas no grupo.",
1736
+ "requirements": {
1737
+ "group": true,
1738
+ "admin": true,
1739
+ "owner": false,
1740
+ "google_login": true,
1741
+ "nsfw": false,
1742
+ "media": false,
1743
+ "reply": false
1744
+ },
1745
+ "premium": false,
1746
+ "allowed_plans": ["comum", "premium"],
1747
+ "rate_limit": null,
1748
+ "local_de_uso": ["grupo"],
1749
+ "subcomandos": [],
1750
+ "metodos_de_uso": ["/grupoaudit"],
1751
+ "mensagens_uso": {},
1752
+ "resumo_usuario": "Mostra um resumo consolidado das configurações administrativas ativas no grupo.",
1753
+ "quando_usar": ["Use quando você precisa desta ação: Mostra um resumo consolidado das configurações administrativas ativas no grupo.", "Funciona dentro de grupos.", "Você precisa ser admin para executar.", "É necessário estar logado no sistema para usar."],
1754
+ "exemplos_reais": [
1755
+ {
1756
+ "situacao": "Cenário comum: Mostra um resumo consolidado das configurações administrativas ativas no grupo.",
1757
+ "comando": "/grupoaudit",
1758
+ "resposta_esperada": "Comando executado com sucesso.",
1759
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
1760
+ }
1761
+ ],
1762
+ "resposta_esperada": ["Sucesso: Comando executado com sucesso.", "Uso incorreto: Formato de uso inválido. Consulte metodos_de_uso.", "Permissão: Permissão insuficiente para executar este comando."],
1763
+ "erros_comuns_usuario": ["Digitar o comando fora do formato esperado.", "Tentar executar fora de um grupo.", "Tentar executar sem ser admin.", "Tentar usar sem estar logado no sistema."],
1764
+ "passos_se_der_erro": ["Copie e teste um exemplo pronto desta página.", "Confira se você está no local certo (grupo/privado) e com a permissão necessária.", "Se ainda falhar, fale com o admin do sistema no privado."],
1765
+ "resumo_usuario_origem": "auto_ia_assistida",
1766
+ "resumo_usuario_revisao_pendente": true,
1767
+ "arguments": [],
1768
+ "responses": {
1769
+ "success": "Comando executado com sucesso.",
1770
+ "usage_error": "Formato de uso inválido. Consulte metodos_de_uso.",
1771
+ "permission_error": "Permissão insuficiente para executar este comando."
1772
+ },
1773
+ "technical": {
1774
+ "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "configuracoes do grupo no store"],
1775
+ "dependencies": ["API do WhatsApp (ações de grupo)", "stores/configuração interna"],
1776
+ "side_effects": ["altera configurações de grupo e permissões", "envia mensagens administrativas"],
1777
+ "behavior": {
1778
+ "type": "inspection",
1779
+ "action_argument": null
1780
+ },
1781
+ "handler": {
1782
+ "file": "groupCommandHandlers.js",
1783
+ "method": "handleAdminCommand",
1784
+ "command_case": "grupoaudit"
1785
+ },
1786
+ "risk_level": "low",
1787
+ "stability": "stable",
1788
+ "version": "1.0.0"
1789
+ },
1790
+ "observability": {
1791
+ "event_name": "command.executed",
1792
+ "analytics_event": "whatsapp_command_grupoaudit",
1793
+ "tags": ["whatsapp", "command", "adminModule", "grupoaudit"]
1794
+ },
1795
+ "privacy": {
1796
+ "retention": "standard_app_logs",
1797
+ "legal_basis": "service_execution_and_legitimate_interest"
1798
+ },
1799
+ "discovery": {
1800
+ "keywords": ["grupoaudit", "grupo", "audit", "status"],
1801
+ "user_phrasings": ["quero usar grupoaudit", "me ajuda com grupoaudit"],
1802
+ "priority": 100
1803
+ }
1804
+ },
1241
1805
  {
1242
1806
  "key": "adminModule:infoconvite",
1243
1807
  "name": "infoconvite",
@@ -1264,6 +1828,27 @@
1264
1828
  "subcomandos": [],
1265
1829
  "metodos_de_uso": ["/infoconvite <codigo_de_convite>"],
1266
1830
  "mensagens_uso": {},
1831
+ "resumo_usuario": "Permite ver informações do grupo associado a um código de convite. Requer login com Google. Disponível para planos comuns e premium.",
1832
+ "quando_usar": ["Você recebeu um código de convite e quer confirmar a que grupo ele pertence e ver informações rápidas antes de entrar.", "Precisa checar detalhes do grupo sem ser membro ou sem exigir permissões administrativas."],
1833
+ "exemplos_reais": [
1834
+ {
1835
+ "situacao": "Ver dados de um grupo antes de participar usando código válido.",
1836
+ "comando": "/infoconvite AB12Cd34",
1837
+ "resposta_esperada": "O bot exibe dados do grupo associado ao código de convite, como nome do grupo, uma descrição breve e informações básicas de participação (quando permitido).",
1838
+ "variacao": "Outra forma: <prefix>infofrominvite AB12Cd34."
1839
+ },
1840
+ {
1841
+ "situacao": "Código de convite inválido ou expirado.",
1842
+ "comando": "/infoconvite 9999invalid",
1843
+ "resposta_esperada": "Mensagem de erro indicando que o código é inválido ou expirado, com instruções para obter um código válido.",
1844
+ "variacao": "Alias: <prefix>infofrominvite 9999invalid."
1845
+ }
1846
+ ],
1847
+ "resposta_esperada": ["Retorna dados do grupo vinculado ao código de convite.", "Caso o código seja inválido ou expirado, exibe uma mensagem de erro com instruções para obter um código válido."],
1848
+ "erros_comuns_usuario": ["Não informar o código de convite.", "Código informado com espaços extras ou caracteres incorretos.", "Código de convite expirado ou revogado.", "Usuário não está logado com a conta Google.", "Usar o comando em formato diferente do esperado (sem <prefix> ou sem o espaço)."],
1849
+ "passos_se_der_erro": ["Confirme que você está conectado com uma conta Google válida.", "Copie o código de convite exatamente como fornecido e cole após o prefixo.", "Execute o comando novamente com <prefix>infoconvite <codigo_de_convite>.", "Se o erro persistir, peça ao emissor do código uma nova versão ou confirme se o código ainda é válido.", "Verifique se o código não foi digitado com espaços extras ou caracteres trocados."],
1850
+ "resumo_usuario_origem": "auto_ia_assistida",
1851
+ "resumo_usuario_revisao_pendente": true,
1267
1852
  "arguments": [
1268
1853
  {
1269
1854
  "name": "codigo_convite",
@@ -1340,6 +1925,33 @@
1340
1925
  "subcomandos": ["on", "off", "status"],
1341
1926
  "metodos_de_uso": ["/janelachat on", "/janelachat off", "/janelachat status", "/janelachat on 15"],
1342
1927
  "mensagens_uso": {},
1928
+ "resumo_usuario": "Abre/fecha uma janela temporária de chat para enviar stickers, sem sair da tela. Requer ser admin em grupo e login Google. Não é exclusivo de premium; disponível para planos comum e premium.",
1929
+ "quando_usar": ["Quando você precisa de um chat rápido em modo sticker sem sair da conversa atual.", "Para fechar a janela temporária quando terminar.", "Para verificar se a janela está ativa e, se houver, por quanto tempo resta."],
1930
+ "exemplos_reais": [
1931
+ {
1932
+ "situacao": "Abrir a janela para uso rápido de stickers em um grupo.",
1933
+ "comando": "/janelachat on",
1934
+ "resposta_esperada": "Comando executado com sucesso.",
1935
+ "variacao": "Pode abrir também com minutos: <prefix>janelachat on 15."
1936
+ },
1937
+ {
1938
+ "situacao": "Fechar a janela de chat temporária.",
1939
+ "comando": "/janelachat off",
1940
+ "resposta_esperada": "Comando executado com sucesso.",
1941
+ "variacao": "Se já estiver fechada, a mensagem pode indicar que já está fechada."
1942
+ },
1943
+ {
1944
+ "situacao": "Ver status da janela.",
1945
+ "comando": "/janelachat status",
1946
+ "resposta_esperada": "Comando executado com sucesso.",
1947
+ "variacao": "O status pode indicar: ativo, inativo, tempo restante."
1948
+ }
1949
+ ],
1950
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
1951
+ "erros_comuns_usuario": ["Não ter permissões de administrador no grupo.", "Esquecer de incluir o <prefix> ao digitar o comando.", "Usar o subcomando errado (ex.: janelachat onsem números).", "Usar on sem definir minutos quando é necessário (minutos obrigatórios em alguns casos).", "Tentar usar fora de um grupo ou sem login Google."],
1952
+ "passos_se_der_erro": ["Verifique se você é admin do grupo e se o login Google está ativo.", "Confirme o prefixo correto (<prefix>) e o formato: <prefix>janelachat on|off|status [minutos].", "Tente o comando novamente após 5 segundos.", "Caso o erro persista, peça a outro admin para tentar ou acionar suporte.", "Se o erro for de formato, leia o aviso de uso: formato inválido."],
1953
+ "resumo_usuario_origem": "auto_ia_assistida",
1954
+ "resumo_usuario_revisao_pendente": true,
1343
1955
  "arguments": [
1344
1956
  {
1345
1957
  "name": "acao",
@@ -1425,6 +2037,33 @@
1425
2037
  "subcomandos": ["<minutos>", "status", "reset"],
1426
2038
  "metodos_de_uso": ["/limitefigurinha 5", "/limitefigurinha status", "/limitefigurinha reset"],
1427
2039
  "mensagens_uso": {},
2040
+ "resumo_usuario": "Define e gerencia o limite de mensagens por usuário no modo sticker. Você pode definir o tempo em minutos entre envios, consultar o status atual ou resetar. Requer ser admin em grupo. Não é necessário premium.",
2041
+ "quando_usar": ["Reduzir spam de figurinhas por usuário.", "Ajustar o tempo entre envios no modo sticker definindo minutos.", "Checar o status atual do limite.", "Resetar o limite para o valor padrão."],
2042
+ "exemplos_reais": [
2043
+ {
2044
+ "situacao": "Definir limite de 5 minutos por usuário.",
2045
+ "comando": "/limitefigurinha 5",
2046
+ "resposta_esperada": "Comando executado com sucesso.",
2047
+ "variacao": "Limite definido para 5 minutos por usuário no modo sticker."
2048
+ },
2049
+ {
2050
+ "situacao": "Verificar o status atual do limite.",
2051
+ "comando": "/limitefigurinha status",
2052
+ "resposta_esperada": "Status atual: limite de 5 minutos ativo entre envios de figurinhas.",
2053
+ "variacao": "<prefix>limitefigurinha status."
2054
+ },
2055
+ {
2056
+ "situacao": "Resetar o limite.",
2057
+ "comando": "/limitefigurinha reset",
2058
+ "resposta_esperada": "Comando executado com sucesso.",
2059
+ "variacao": "Limite resetado para o padrão."
2060
+ }
2061
+ ],
2062
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
2063
+ "erros_comuns_usuario": ["Não é admin do grupo ou o bot não tem permissão para operar no grupo.", "Uso fora do formato esperado (não usar números quando é para minutos) — use <prefix>limitefigurinha 5, <prefix>limitefigurinha status ou <prefix>limitefigurinha reset.", "Esquecer de incluir o <prefix> quando necessário (ex.: usar limitefigurinha em um grupo onde o prefixo não é necessário).", "Tentar executar sem estar no modo grupo ou sem autorização de admin."],
2064
+ "passos_se_der_erro": ["Verifique se você é admin do grupo e se o bot tem permissão para ler mensagens no grupo.", "Use o formato correto: <prefix>limitefigurinha <valor> (um número de minutos) ou <prefix>limitefigurinha status ou <prefix>limitefigurinha reset.", "Se aparecer \"Formato de uso inválido\", corrija o comando para uma das opções aceitas.", "Se aparecer \"Permissão insuficiente...\", peça a um admin para conceder permissões ao bot.", "Se o problema persistir, tente novamente mais tarde ou em outro grupo e, se necessário, peça suporte ao responsável pelo bot."],
2065
+ "resumo_usuario_origem": "auto_ia_assistida",
2066
+ "resumo_usuario_revisao_pendente": true,
1428
2067
  "arguments": [
1429
2068
  {
1430
2069
  "name": "valor",
@@ -1506,6 +2145,33 @@
1506
2145
  "help": ["/menuadmin ajuda <comando>"],
1507
2146
  "ask": ["/menuadmin perguntar <pergunta>"]
1508
2147
  },
2148
+ "resumo_usuario": "Exibe o menu administrativo do bot para o grupo, mostrando opções disponíveis para gerenciar a conversa. Não requer premium; disponível para planos comum e premium.",
2149
+ "quando_usar": ["Quero ver quais comandos de administração o bot oferece no grupo.", "Preciso confirmar privilégios e opções de administração sem lembrar de cada comando.", "Estou em um grupo e quero navegar rapidamente pelas opções de admin."],
2150
+ "exemplos_reais": [
2151
+ {
2152
+ "situacao": "Você está em um grupo e quer ver todas as opções administrativas disponíveis.",
2153
+ "comando": "/menuadmin",
2154
+ "resposta_esperada": "O menu administrativo é exibido com opções como gerenciar membros, avisos, regras do grupo e outras ações de moderação.",
2155
+ "variacao": "<prefix>adm | <prefix>menuadm."
2156
+ },
2157
+ {
2158
+ "situacao": "Você quer ajuda para entender um comando específico do menu admin.",
2159
+ "comando": "/menuadmin ajuda banir",
2160
+ "resposta_esperada": "Instruções de como banir usuários ou usar um comando relacionado.",
2161
+ "variacao": "<prefix>menuadmin ajuda banir / <prefix>menuadmin perguntar banir."
2162
+ },
2163
+ {
2164
+ "situacao": "Você quer ver perguntas frequentes sobre o menu admin.",
2165
+ "comando": "/menuadmin faq",
2166
+ "resposta_esperada": "Lista de perguntas frequentes e respostas sobre o menu administrativo.",
2167
+ "variacao": "<prefix>menuadmin FAQ."
2168
+ }
2169
+ ],
2170
+ "resposta_esperada": ["Menu administrativo exibido com as opções disponíveis para admin no grupo."],
2171
+ "erros_comuns_usuario": ["Não ter privilégios de admin no grupo.", "Tentar usar o comando fora de grupo (em privado).", "Esquecer de colocar o prefix correto ao digitar o comando.", "Solicitar opções sem estar logado ou autorizado (googleLogin) se aplicável."],
2172
+ "passos_se_der_erro": ["Se houver erro de permissão, confirme que você é admin do grupo e tente novamente.", "Se o formato estiver incorreto, utilize um dos modos de uso: <prefix>menuadmin, <prefix>menuadmin ajuda <comando>, <prefix>menuadmin faq, <prefix>menuadmin perguntar <pergunta>.", "Se ocorrer erro genérico, aguarde alguns segundos e tente novamente."],
2173
+ "resumo_usuario_origem": "auto_ia_assistida",
2174
+ "resumo_usuario_revisao_pendente": true,
1509
2175
  "arguments": [],
1510
2176
  "responses": {
1511
2177
  "success": "Comando executado com sucesso.",
@@ -1574,6 +2240,27 @@
1574
2240
  "subcomandos": [],
1575
2241
  "metodos_de_uso": ["/metadados", "/metadados <group_jid>"],
1576
2242
  "mensagens_uso": {},
2243
+ "resumo_usuario": "Mostra metadados de um grupo informado ou do grupo atual.",
2244
+ "quando_usar": ["Precisa verificar informações básicas do grupo, como nome, descrição, membros, etc.", "Quiser confirmar dados do grupo atual sem especificar JID.", "Quiser checar metadados de um grupo específico usando o JID."],
2245
+ "exemplos_reais": [
2246
+ {
2247
+ "situacao": "Ver metadados do grupo atual.",
2248
+ "comando": "/metadados",
2249
+ "resposta_esperada": "Comando executado com sucesso.",
2250
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
2251
+ },
2252
+ {
2253
+ "situacao": "Ver metadados de um grupo específico usando o JID.",
2254
+ "comando": "/metadados <group_jid>",
2255
+ "resposta_esperada": "Comando executado com sucesso.",
2256
+ "variacao": "<group_jid> deve ser substituído pelo JID real do grupo."
2257
+ }
2258
+ ],
2259
+ "resposta_esperada": ["Comando executado com sucesso."],
2260
+ "erros_comuns_usuario": ["Formato de uso inválido. Use <prefix>metadados ou <prefix>metadados <group_jid>.", "Você não tem permissão de admin nesse grupo.", "JID do grupo informado é inválido ou não existente.", "O bot não está presente no grupo ou não pode acessar os metadados.", "Tente novamente mais tarde se o serviço estiver indisponível."],
2261
+ "passos_se_der_erro": ["Verifique se você é admin do grupo onde executa o comando.", "Confirme se está usando a sintaxe correta: <prefix>metadados ou <prefix>metadados <group_jid>.", "Caso use <group_jid>, confirme que o JID é válido.", "Certifique-se de que o bot tenha permissão para ler metadados do grupo.", "Se o problema persistir, reinicie o bot ou entre em contato com o suporte."],
2262
+ "resumo_usuario_origem": "auto_ia_assistida",
2263
+ "resumo_usuario_revisao_pendente": true,
1577
2264
  "arguments": [
1578
2265
  {
1579
2266
  "name": "group_id",
@@ -1650,6 +2337,33 @@
1650
2337
  "subcomandos": [],
1651
2338
  "metodos_de_uso": ["/modoadicao all_member_add", "/modoadicao admin_add"],
1652
2339
  "mensagens_uso": {},
2340
+ "resumo_usuario": "Defina quem pode adicionar participantes no grupo: todos os membros ou apenas admins.",
2341
+ "quando_usar": ["Você quer controlar quem pode convidar novas pessoas para o grupo.", "Observou convites indesejados e quer restringir quem pode convidar.", "Antes de gerenciar um grupo grande, estabeleça regras claras de convite.", "Alterou a forma de gerenciar convites e precisa aplicar imediatamente."],
2342
+ "exemplos_reais": [
2343
+ {
2344
+ "situacao": "Quero que qualquer membro possa adicionar participantes.",
2345
+ "comando": "/modoadicao all_member_add",
2346
+ "resposta_esperada": "Comando executado com sucesso.",
2347
+ "variacao": "Para reverter, use <prefix>modoadicao admin_add."
2348
+ },
2349
+ {
2350
+ "situacao": "Quero que apenas admins possam adicionar participantes.",
2351
+ "comando": "/modoadicao admin_add",
2352
+ "resposta_esperada": "Comando executado com sucesso.",
2353
+ "variacao": "Se quiser permitir a todos depois, use <prefix>modoadicao all_member_add."
2354
+ },
2355
+ {
2356
+ "situacao": "Esqueci de colocar o modo e tentei usar o comando.",
2357
+ "comando": "/modoadicao",
2358
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
2359
+ "variacao": "Tente <prefix>modoadicao all_member_add."
2360
+ }
2361
+ ],
2362
+ "resposta_esperada": ["O comando aplica quem pode adicionar participantes (todos ou apenas admins). Em caso de sucesso, a resposta é: Comando executado com sucesso."],
2363
+ "erros_comuns_usuario": ["Não informar o modo (usar apenas <prefix>modoadicao).", "Tentar executar sem ter permissão de admin.", "Usar o modo errado para a situação (por exemplo, usar admin_add quando quer permitir a todos).", "Não estar em um grupo ou o bot não ter permissão para gerenciar membros (requisitos não atendidos)."],
2364
+ "passos_se_der_erro": ["Verifique se você é admin ou proprietário do grupo.", "Verifique o comando correto: <prefix>modoadicao all_member_add ou <prefix>modoadicao admin_add.", "Certifique-se de que o bot tem permissão para gerenciar participantes no grupo.", "Se o erro persistir, peça ajuda a outro admin ou procure suporte com a mensagem de erro recebida."],
2365
+ "resumo_usuario_origem": "auto_ia_assistida",
2366
+ "resumo_usuario_revisao_pendente": true,
1653
2367
  "arguments": [
1654
2368
  {
1655
2369
  "name": "modo",
@@ -1726,10 +2440,37 @@
1726
2440
  "subcomandos": ["on", "off", "status"],
1727
2441
  "metodos_de_uso": ["/modofigurinha on", "/modofigurinha off", "/modofigurinha status"],
1728
2442
  "mensagens_uso": {},
1729
- "arguments": [
2443
+ "resumo_usuario": "Controle o foco de figurinhas no grupo: ative, desative ou verifique o status. Requer que o usuário seja admin do grupo.",
2444
+ "quando_usar": ["Quando quiser ativar o foco em figurinhas para reduzir ruído no grupo.", "Quando já não for mais necessário o foco e desejar voltar ao envio normal de figurinhas.", "Para checar rapidamente o status atual do modo figurinha."],
2445
+ "exemplos_reais": [
1730
2446
  {
1731
- "name": "acao",
1732
- "type": "string",
2447
+ "situacao": "Você é admin e quer ativar o foco em figurinhas no grupo.",
2448
+ "comando": "/modofigurinha on",
2449
+ "resposta_esperada": "Modo figurinha ativado. Status atual: ativo.",
2450
+ "variacao": "<prefix>modofigurinha on."
2451
+ },
2452
+ {
2453
+ "situacao": "Você quer desativar o modo e permitir figurinhas novamente.",
2454
+ "comando": "/modofigurinha off",
2455
+ "resposta_esperada": "Modo figurinha desativado. Status atual: desativado.",
2456
+ "variacao": "<prefix>modofigurinha off."
2457
+ },
2458
+ {
2459
+ "situacao": "Você quer confirmar o estado atual do modo.",
2460
+ "comando": "/modofigurinha status",
2461
+ "resposta_esperada": "Status atual: ativo/desativado (conforme o grupo).",
2462
+ "variacao": "<prefix>modofigurinha status."
2463
+ }
2464
+ ],
2465
+ "resposta_esperada": ["Comando executado com sucesso.", "Status informado com precisão (ativo ou desativado) conforme a consulta."],
2466
+ "erros_comuns_usuario": ["Não é admin do grupo ao tentar ativar/desativar.", "Esquecer de usar o prefixo correto ao digitar o comando.", "Tentar usar em chats privados (não é permitido).", "Tentar ativar com parâmetros ausentes ou inválidos."],
2467
+ "passos_se_der_erro": ["Verifique se você é admin do grupo.", "Confirme o prefixo correto e o formato do comando (on, off, status).", "Tente novamente com <prefix>modofigurinha on/off/status.", "Se o problema persistir, peça ajuda ao administrador do grupo ou entre em contato com o suporte."],
2468
+ "resumo_usuario_origem": "auto_ia_assistida",
2469
+ "resumo_usuario_revisao_pendente": true,
2470
+ "arguments": [
2471
+ {
2472
+ "name": "acao",
2473
+ "type": "string",
1733
2474
  "required": true,
1734
2475
  "description": "on|off|status",
1735
2476
  "default": null,
@@ -1803,6 +2544,33 @@
1803
2544
  "subcomandos": ["on", "off", "status"],
1804
2545
  "metodos_de_uso": ["/noticias on", "/noticias off", "/noticias status", "/news status"],
1805
2546
  "mensagens_uso": {},
2547
+ "resumo_usuario": "Comando para ativar, desativar ou checar o envio automático de notícias no grupo.",
2548
+ "quando_usar": ["Para ligar o envio automático de notícias no grupo.", "Para desativar o envio automático de notícias no grupo.", "Para verificar o status atual do envio de notícias."],
2549
+ "exemplos_reais": [
2550
+ {
2551
+ "situacao": "Você quer ativar o envio automático de notícias no grupo.",
2552
+ "comando": "/noticias on",
2553
+ "resposta_esperada": "Comando executado com sucesso.",
2554
+ "variacao": "ativar/ligar."
2555
+ },
2556
+ {
2557
+ "situacao": "Você quer desativar o envio automático de notícias no grupo.",
2558
+ "comando": "/noticias off",
2559
+ "resposta_esperada": "Comando executado com sucesso.",
2560
+ "variacao": "desativar/desligar."
2561
+ },
2562
+ {
2563
+ "situacao": "Você quer checar o status atual do envio de notícias.",
2564
+ "comando": "/noticias status",
2565
+ "resposta_esperada": "Status atual: ativo ou desativado.",
2566
+ "variacao": "status."
2567
+ }
2568
+ ],
2569
+ "resposta_esperada": ["Comando executado com sucesso.", "Status atual: ativo", "Status atual: desativado"],
2570
+ "erros_comuns_usuario": ["Esquecer de colocar o prefixo antes do comando.", "Tentar usar em grupo sem que o bot tenha sido adicionado ao grupo.", "Não possuir permissões de admin no grupo.", "Utilizar formato incorreto do comando (ex.: noticias on sem o prefix).", "Confundir a palavra on/off com status."],
2571
+ "passos_se_der_erro": ["Confirme que você é admin do grupo e que o bot está no grupo.", "Verifique se o bot tem permissões suficientes para ler mensagens.", "Use o prefix correto (ex.: <prefix>noticias on).", "Tente novamente após confirmar que o grupo aceita mensagens com o bot.", "Se o erro persistir, peça ajuda com o ID do grupo e o comando utilizado."],
2572
+ "resumo_usuario_origem": "auto_ia_assistida",
2573
+ "resumo_usuario_revisao_pendente": true,
1806
2574
  "arguments": [
1807
2575
  {
1808
2576
  "name": "acao",
@@ -1854,6 +2622,123 @@
1854
2622
  "priority": 100
1855
2623
  }
1856
2624
  },
2625
+ {
2626
+ "key": "adminModule:noticiasfiltro",
2627
+ "name": "noticiasfiltro",
2628
+ "id": "admin.noticiasfiltro",
2629
+ "aliases": ["newsfilter", "filtronoticias"],
2630
+ "module": "adminModule",
2631
+ "module_label": "adminModule",
2632
+ "category": "admin",
2633
+ "category_label": "Moderação e Admin",
2634
+ "descricao": "Gerencia filtros de envio de notícias por source, franchise, tag/entity e tendência.",
2635
+ "requirements": {
2636
+ "group": true,
2637
+ "admin": true,
2638
+ "owner": false,
2639
+ "google_login": true,
2640
+ "nsfw": false,
2641
+ "media": false,
2642
+ "reply": false
2643
+ },
2644
+ "premium": false,
2645
+ "allowed_plans": ["comum", "premium"],
2646
+ "rate_limit": null,
2647
+ "local_de_uso": ["grupo"],
2648
+ "subcomandos": [],
2649
+ "metodos_de_uso": ["/noticiasfiltro status", "/noticiasfiltro source <add|remove|list|clear> <valor...>", "/noticiasfiltro franchise <add|remove|list|clear> <valor...>", "/noticiasfiltro tag <add|remove|list|clear> <valor...>", "/noticiasfiltro trending <on|off|status>", "/noticiasfiltro reset"],
2650
+ "mensagens_uso": {},
2651
+ "resumo_usuario": "Gerencia filtros de envio de notícias por source, franchise, tag/entity e tendência.",
2652
+ "quando_usar": ["Use quando você precisa desta ação: Gerencia filtros de envio de notícias por source, franchise, tag/entity e tendência.", "Funciona dentro de grupos.", "Você precisa ser admin para executar.", "É necessário estar logado no sistema para usar."],
2653
+ "exemplos_reais": [
2654
+ {
2655
+ "situacao": "Cenário comum: Gerencia filtros de envio de notícias por source, franchise, tag/entity e tendência.",
2656
+ "comando": "/noticiasfiltro status",
2657
+ "resposta_esperada": "Comando executado com sucesso.",
2658
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
2659
+ },
2660
+ {
2661
+ "situacao": "Variação 2 de uso do comando no mesmo contexto.",
2662
+ "comando": "/noticiasfiltro source <add|remove|list|clear> <valor...>",
2663
+ "resposta_esperada": "Comando executado com sucesso.",
2664
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
2665
+ },
2666
+ {
2667
+ "situacao": "Variação 3 de uso do comando no mesmo contexto.",
2668
+ "comando": "/noticiasfiltro franchise <add|remove|list|clear> <valor...>",
2669
+ "resposta_esperada": "Comando executado com sucesso.",
2670
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
2671
+ }
2672
+ ],
2673
+ "resposta_esperada": ["Sucesso: Comando executado com sucesso.", "Uso incorreto: Formato de uso inválido. Consulte metodos_de_uso.", "Permissão: Permissão insuficiente para executar este comando."],
2674
+ "erros_comuns_usuario": ["Digitar o comando fora do formato esperado.", "Tentar executar fora de um grupo.", "Tentar executar sem ser admin.", "Tentar usar sem estar logado no sistema."],
2675
+ "passos_se_der_erro": ["Copie e teste um exemplo pronto desta página.", "Confira se você está no local certo (grupo/privado) e com a permissão necessária.", "Se ainda falhar, fale com o admin do sistema no privado."],
2676
+ "resumo_usuario_origem": "auto_ia_assistida",
2677
+ "resumo_usuario_revisao_pendente": true,
2678
+ "arguments": [
2679
+ {
2680
+ "name": "escopo",
2681
+ "type": "string",
2682
+ "required": false,
2683
+ "description": "status|reset|source|franchise|tag|entity|trending",
2684
+ "default": null,
2685
+ "validation": "status|reset|source|franchise|tag|entity|trending"
2686
+ },
2687
+ {
2688
+ "name": "acao",
2689
+ "type": "string",
2690
+ "required": false,
2691
+ "description": "add|remove|list|clear|on|off|status",
2692
+ "default": null,
2693
+ "validation": "add|remove|list|clear|on|off|status"
2694
+ },
2695
+ {
2696
+ "name": "valores",
2697
+ "type": "array",
2698
+ "required": false,
2699
+ "description": "lista de slugs/ids",
2700
+ "default": [],
2701
+ "validation": "lista de slugs/ids"
2702
+ }
2703
+ ],
2704
+ "responses": {
2705
+ "success": "Comando executado com sucesso.",
2706
+ "usage_error": "Formato de uso inválido. Consulte metodos_de_uso.",
2707
+ "permission_error": "Permissão insuficiente para executar este comando."
2708
+ },
2709
+ "technical": {
2710
+ "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "configuracoes do grupo no store"],
2711
+ "dependencies": ["API do WhatsApp (ações de grupo)", "stores/configuração interna"],
2712
+ "side_effects": ["altera configurações de grupo e permissões", "envia mensagens administrativas"],
2713
+ "behavior": {
2714
+ "type": "subcommand",
2715
+ "allowed_actions": ["status", "reset", "source", "franchise", "tag", "entity", "trending"],
2716
+ "action_argument": "escopo"
2717
+ },
2718
+ "handler": {
2719
+ "file": "groupCommandHandlers.js",
2720
+ "method": "handleAdminCommand",
2721
+ "command_case": "noticiasfiltro"
2722
+ },
2723
+ "risk_level": "low",
2724
+ "stability": "stable",
2725
+ "version": "1.0.0"
2726
+ },
2727
+ "observability": {
2728
+ "event_name": "command.executed",
2729
+ "analytics_event": "whatsapp_command_noticiasfiltro",
2730
+ "tags": ["whatsapp", "command", "adminModule", "noticiasfiltro"]
2731
+ },
2732
+ "privacy": {
2733
+ "retention": "standard_app_logs",
2734
+ "legal_basis": "service_execution_and_legitimate_interest"
2735
+ },
2736
+ "discovery": {
2737
+ "keywords": ["noticiasfiltro", "noticias", "filtro", "news"],
2738
+ "user_phrasings": ["quero usar noticiasfiltro", "me ajuda com noticiasfiltro"],
2739
+ "priority": 100
2740
+ }
2741
+ },
1857
2742
  {
1858
2743
  "key": "adminModule:novogrupo",
1859
2744
  "name": "novogrupo",
@@ -1880,6 +2765,33 @@
1880
2765
  "subcomandos": [],
1881
2766
  "metodos_de_uso": ["/novogrupo <titulo> <participante1> <participante2>"],
1882
2767
  "mensagens_uso": {},
2768
+ "resumo_usuario": "Cria um novo grupo com um título e lista de participantes usando seu login Google. Não é necessário ser admin ou proprietário do grupo.",
2769
+ "quando_usar": ["Iniciar uma nova conversa em grupo com várias pessoas", "Organizar estudos, viagens, projetos ou equipes em um único espaço", "Adicionar rapidamente um conjunto de contatos a um novo grupo com objetivo específico"],
2770
+ "exemplos_reais": [
2771
+ {
2772
+ "situacao": "Criar grupo de estudo com colegas.",
2773
+ "comando": "/novogrupo Estudo2026 @joao @maria",
2774
+ "resposta_esperada": "Comando executado com sucesso.",
2775
+ "variacao": "Pode adicionar mais participantes após a criação."
2776
+ },
2777
+ {
2778
+ "situacao": "Organizar viagem com amigos.",
2779
+ "comando": "/novogrupo Viagem2026 @ana @fernando @lucas",
2780
+ "resposta_esperada": "Comando executado com sucesso.",
2781
+ "variacao": "Quantidade variável de participantes."
2782
+ },
2783
+ {
2784
+ "situacao": "Grupo de leitura.",
2785
+ "comando": "/novogrupo LeituraClube @beatriz",
2786
+ "resposta_esperada": "Comando executado com sucesso.",
2787
+ "variacao": "Pode iniciar com 1 participante."
2788
+ }
2789
+ ],
2790
+ "resposta_esperada": ["Comando executado com sucesso."],
2791
+ "erros_comuns_usuario": ["Esquecer de incluir o título", "Não informar ao menos um participante", "Usar formato do comando sem o prefixo correto", "Título em branco ou apenas espaços", "Não estar logado com Google ao tentar criar o grupo"],
2792
+ "passos_se_der_erro": ["1) Verifique o formato: <prefix>novogrupo <titulo> <participante1> [participante2 ...]", "2) Confirme que está logado com Google", "3) Garanta que pelo menos um participante seja informado", "4) Tente novamente com um título e participantes válidos", "5) Se o erro persistir, tente novamente mais tarde ou entre em contato com o suporte"],
2793
+ "resumo_usuario_origem": "auto_ia_assistida",
2794
+ "resumo_usuario_revisao_pendente": true,
1883
2795
  "arguments": [
1884
2796
  {
1885
2797
  "name": "titulo",
@@ -1964,6 +2876,33 @@
1964
2876
  "subcomandos": ["on", "off", "status"],
1965
2877
  "metodos_de_uso": ["/nsfw on", "/nsfw off", "/nsfw status"],
1966
2878
  "mensagens_uso": {},
2879
+ "resumo_usuario": "Ativa, desativa ou verifica o status do NSFW no grupo. Recurso Premium; funciona apenas para admins em grupos.",
2880
+ "quando_usar": ["Você é admin do grupo e quer controlar NSFW.", "Para ativar NSFW: use <prefix>nsfw on.", "Para desativar NSFW: use <prefix>nsfw off.", "Para ver o status atual: use <prefix>nsfw status.", "Lembre-se: é recurso Premium e exige plano ativo."],
2881
+ "exemplos_reais": [
2882
+ {
2883
+ "situacao": "Administrador quer ativar NSFW em um grupo Premium.",
2884
+ "comando": "/nsfw on",
2885
+ "resposta_esperada": "Comando executado com sucesso.",
2886
+ "variacao": "ativacao."
2887
+ },
2888
+ {
2889
+ "situacao": "Administrador verifica o status do NSFW.",
2890
+ "comando": "/nsfw status",
2891
+ "resposta_esperada": "NSFW está ativo no grupo.",
2892
+ "variacao": "status_ativo."
2893
+ },
2894
+ {
2895
+ "situacao": "Usuário sem permissão tenta ativar NSFW.",
2896
+ "comando": "/nsfw on",
2897
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
2898
+ "variacao": "sem_permissao."
2899
+ }
2900
+ ],
2901
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
2902
+ "erros_comuns_usuario": ["Não é admin do grupo", "Tentar usar o comando sem ter o plano Premium ativo", "Usar o comando fora de um grupo", "Esquecer de fornecer o parâmetro da ação (on|off|status)"],
2903
+ "passos_se_der_erro": ["Verifique se você é admin do grupo", "Confirme que o grupo tem assinatura Premium ativa", "Garanta o uso correto: <prefix>nsfw on|off|status", "Tente novamente", "Se o problema persistir, peça suporte"],
2904
+ "resumo_usuario_origem": "auto_ia_assistida",
2905
+ "resumo_usuario_revisao_pendente": true,
1967
2906
  "arguments": [
1968
2907
  {
1969
2908
  "name": "acao",
@@ -2041,6 +2980,33 @@
2041
2980
  "subcomandos": ["<novo_prefixo>", "status", "reset"],
2042
2981
  "metodos_de_uso": ["<prefixo>prefixo <novo_prefixo>", "<prefixo>prefixo status", "<prefixo>prefixo reset"],
2043
2982
  "mensagens_uso": {},
2983
+ "resumo_usuario": "Gerencia o prefixo de comandos do bot no grupo: definir, checar e restaurar o prefixo atual.",
2984
+ "quando_usar": ["Quando você quer personalizar o prefixo de comandos do bot no grupo.", "Quando quiser saber qual é o prefixo atual.", "Quando precisar resetar para o prefixo padrão."],
2985
+ "exemplos_reais": [
2986
+ {
2987
+ "situacao": "Administrador quer definir o prefixo para ! no grupo.",
2988
+ "comando": "<prefixo>prefixo !",
2989
+ "resposta_esperada": "Comando executado com sucesso.",
2990
+ "variacao": "Prefixo alterado para !."
2991
+ },
2992
+ {
2993
+ "situacao": "Verificar qual é o prefixo atual.",
2994
+ "comando": "<prefixo>prefixo status",
2995
+ "resposta_esperada": "O prefixo atual é '<prefixo>'.",
2996
+ "variacao": "Consulta de status no grupo."
2997
+ },
2998
+ {
2999
+ "situacao": "Restaurar o prefixo ao padrão.",
3000
+ "comando": "<prefixo>prefixo reset",
3001
+ "resposta_esperada": "Comando executado com sucesso.",
3002
+ "variacao": "Restaurando para o prefixo original."
3003
+ }
3004
+ ],
3005
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando.", "O prefixo atual é '<prefixo>'."],
3006
+ "erros_comuns_usuario": ["Não é admin do grupo", "Não fornecer o argumento obrigatório após <prefixo>prefixo", "Tentar usar o comando sem estar no grupo", "Formato de uso incorreto ou desconhecido", "Tentar definir prefixo com caracteres inválidos"],
3007
+ "passos_se_der_erro": ["1) Confirme se você é admin do grupo.", "2) Verifique se incluiu o argumento obrigatório após <prefixo>prefixo (novo_prefixo, status ou reset).", "3) Se é erro de permissão, peça ao dono ou admin do grupo para conceder permissões ao bot.", "4) Reexecute o comando com um dos formatos válidos: <prefixo>prefixo <novo_prefixo>, <prefixo>prefixo status ou <prefixo>prefixo reset.", "5) Se o problema persistir, registre o grupo e procure suporte com as informações de uso."],
3008
+ "resumo_usuario_origem": "auto_ia_assistida",
3009
+ "resumo_usuario_revisao_pendente": true,
2044
3010
  "arguments": [
2045
3011
  {
2046
3012
  "name": "valor",
@@ -2121,6 +3087,33 @@
2121
3087
  "invalid_action": ["/premium <add|remove|list> @usuario1 @usuario2 ..."],
2122
3088
  "missing_targets": ["/premium <add|remove> @usuario1 @usuario2 ...", "Também é possível responder à mensagem do usuário desejado."]
2123
3089
  },
3090
+ "resumo_usuario": "Gerencia usuários premium: listar, adicionar ou remover privilégios. Acesso disponível apenas ao proprietário do bot. Não depende do plano do usuário que recebe o privilégio.",
3091
+ "quando_usar": ["Ver quem tem premium no sistema.", "Conceder premium a novos usuários.", "Remover o privilégio de alguém.", "Confirmar configuração antes de mudanças (somente o proprietário)."],
3092
+ "exemplos_reais": [
3093
+ {
3094
+ "situacao": "Listar usuários premium atuais.",
3095
+ "comando": "/premium list",
3096
+ "resposta_esperada": "Comando executado com sucesso.",
3097
+ "variacao": "Pode usar <prefix>vip list como sinônimo."
3098
+ },
3099
+ {
3100
+ "situacao": "Adicionar usuário ao premium.",
3101
+ "comando": "/premium add @usuario",
3102
+ "resposta_esperada": "Comando executado com sucesso.",
3103
+ "variacao": "Ex.: <prefix>premium add @joao."
3104
+ },
3105
+ {
3106
+ "situacao": "Remover usuário do premium.",
3107
+ "comando": "/premium remove @usuario",
3108
+ "resposta_esperada": "Comando executado com sucesso.",
3109
+ "variacao": "Ex.: <prefix>premium remove @joao."
3110
+ }
3111
+ ],
3112
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
3113
+ "erros_comuns_usuario": ["O acao (add|remove|list) não foi especificado.", "Nenhum usuário foi mencionado ao adicionar/remover.", "Tentar adicionar um usuário que já é premium.", "Tentar remover um usuário que não é premium.", "Tentar executar sem ser o proprietário."],
3114
+ "passos_se_der_erro": ["Verifique se você é o proprietário do bot.", "Confirme o formato: <prefix>premium [add|remove|list] [@usuario].", "Para add/remove, tenha pelo menos uma menção/JID válida.", "Se o erro persistir, tente novamente após verificar permissões e formato.", "Se necessário, contate o suporte técnico do sistema."],
3115
+ "resumo_usuario_origem": "auto_ia_assistida",
3116
+ "resumo_usuario_revisao_pendente": true,
2124
3117
  "arguments": [
2125
3118
  {
2126
3119
  "name": "acao",
@@ -2208,6 +3201,33 @@
2208
3201
  "mensagens_uso": {
2209
3202
  "missing_targets": ["/promover @participante1 @participante2 ...", "Também é possível informar os JIDs dos participantes."]
2210
3203
  },
3204
+ "resumo_usuario": "Promove participantes do grupo a administradores. Requer que você seja admin do grupo e que o login esteja ativo. Pode ser usado por planos comum ou premium.",
3205
+ "quando_usar": ["Quando quiser delegar poderes de moderação a membros confiáveis.", "Para conceder privilégios administrativos a participantes que ajudam na gestão do grupo.", "Antes de usar, confirme que o participante é do grupo e será confiável como admin."],
3206
+ "exemplos_reais": [
3207
+ {
3208
+ "situacao": "Promover um único participante.",
3209
+ "comando": "/promover @Ana",
3210
+ "resposta_esperada": "Comando executado com sucesso.",
3211
+ "variacao": "ou <prefix>up @Ana."
3212
+ },
3213
+ {
3214
+ "situacao": "Promover dois participantes.",
3215
+ "comando": "/promover @Ana @Bruno",
3216
+ "resposta_esperada": "Comando executado com sucesso.",
3217
+ "variacao": "ou <prefix>up @Ana @Bruno."
3218
+ },
3219
+ {
3220
+ "situacao": "Formato de uso incorreto.",
3221
+ "comando": "/promover",
3222
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
3223
+ "variacao": "tente <prefix>promover @participante."
3224
+ }
3225
+ ],
3226
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
3227
+ "erros_comuns_usuario": ["Nao tem permissão de admin no grupo.", "Nao houve menção de participantes valida(s).", "Tentar promover fora de um grupo ou sem estar logado.", "Tentar promover alguém que já é administrador."],
3228
+ "passos_se_der_erro": ["Verifique se você está no grupo e é admin do grupo.", "Certifique-se de mencionar pelo menos um participante válido com @nome ou JID.", "Tente novamente com <prefix>promover @participante.", "Se o erro persistir, verifique as mensagens de permissão ou contate o suporte."],
3229
+ "resumo_usuario_origem": "auto_ia_assistida",
3230
+ "resumo_usuario_revisao_pendente": true,
2211
3231
  "arguments": [
2212
3232
  {
2213
3233
  "name": "participantes",
@@ -2288,6 +3308,33 @@
2288
3308
  "mensagens_uso": {
2289
3309
  "missing_targets": ["/rebaixar @participante1 @participante2 ...", "Também é possível informar os JIDs dos participantes."]
2290
3310
  },
3311
+ "resumo_usuario": "Rebaixa administradores para membros comuns dentro do grupo. Disponível para usuários dos planos comum e premium; não é restrito apenas a premium.",
3312
+ "quando_usar": ["Quando um admin não precisa mais de privilégios", "Para alinhar as funções de moderadores ao nível de membro", "Para corrigir atribuição de permissões incorretas"],
3313
+ "exemplos_reais": [
3314
+ {
3315
+ "situacao": "Você acidentalmente concedeu privilégios de admin a alguém e precisa rebaixá-lo.",
3316
+ "comando": "/rebaixar @Joao",
3317
+ "resposta_esperada": "Comando executado com sucesso.",
3318
+ "variacao": "Uso simples com um participante."
3319
+ },
3320
+ {
3321
+ "situacao": "Rebaixar vários administradores de uma vez.",
3322
+ "comando": "/rebaixar @Ana @Carlos",
3323
+ "resposta_esperada": "Comando executado com sucesso.",
3324
+ "variacao": "Uso com múltiplos participantes."
3325
+ },
3326
+ {
3327
+ "situacao": "Usuário sem permissão tenta usar o comando.",
3328
+ "comando": "/rebaixar @Maria",
3329
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
3330
+ "variacao": "Sem privilégios de admin."
3331
+ }
3332
+ ],
3333
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
3334
+ "erros_comuns_usuario": ["Esquecer de mencionar o participante", "Tentar rebaixar alguém que não é admin", "Executar o comando fora de um grupo", "Não possuir privilégios de admin/owner", "Usar o comando com o prefix incorreto"],
3335
+ "passos_se_der_erro": ["Verifique que você está em um grupo e tem privilégios de admin/owner", "Mencione o participante correto (ex.: @Nome)", "Use o formato correto: <prefix>rebaixar @participante", "Aguarde a confirmação de que o cargo foi altered", "Se aparecer formato inválido, confira o formato e consulte metodos_de_uso"],
3336
+ "resumo_usuario_origem": "auto_ia_assistida",
3337
+ "resumo_usuario_revisao_pendente": true,
2291
3338
  "arguments": [
2292
3339
  {
2293
3340
  "name": "participantes",
@@ -2366,6 +3413,33 @@
2366
3413
  "subcomandos": [],
2367
3414
  "metodos_de_uso": ["/revogarconvite"],
2368
3415
  "mensagens_uso": {},
3416
+ "resumo_usuario": "Revoga o código de convite atual do grupo e gera um novo código, mantendo o controle de quem pode entrar no grupo.",
3417
+ "quando_usar": ["Quando o link de convite foi exposto ou há suspeita de uso indevido.", "Ao renovar as regras de acesso do grupo e exigir um novo código de convite.", "Quando você é admin do grupo e precisa atualizar o código de convite sem intervir nos membros atuais."],
3418
+ "exemplos_reais": [
3419
+ {
3420
+ "situacao": "Administrador do grupo quer cancelar o link antigo após suspeita de uso indevido.",
3421
+ "comando": "/revogarconvite",
3422
+ "resposta_esperada": "Comando executado com sucesso.",
3423
+ "variacao": "<prefix>revoke."
3424
+ },
3425
+ {
3426
+ "situacao": "Usuário sem privilégios tenta revogar o convite.",
3427
+ "comando": "/revogarconvite",
3428
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
3429
+ "variacao": "<prefix>revogarconvite (sem privilégios)."
3430
+ },
3431
+ {
3432
+ "situacao": "Formato de uso incorreto.",
3433
+ "comando": "/revogarconvite",
3434
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
3435
+ "variacao": "<prefix>revogarconvite hoje."
3436
+ }
3437
+ ],
3438
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
3439
+ "erros_comuns_usuario": ["Assegurar que você está no grupo certo e tem privilêgios de admin.", "Usar o comando fora do contexto de um grupo ou sem estar logado como admin.", "Digitar o prefix errado ou esquecer o prefixo ao digitar o comando.", "Tentar usar o comando com argumentos ou formato não suportado."],
3440
+ "passos_se_der_erro": ["Verifique se você é admin do grupo atual e está no grupo correto.", "Digite exatamente o comando com o prefixo correto: <prefix>revogarconvite", "Se o erro for de formato, consulte metodos_de_uso para o formato correto e tente novamente.", "Se o problema persistir, peça suporte com o ID do grupo e a mensagem de erro para orientação adicional."],
3441
+ "resumo_usuario_origem": "auto_ia_assistida",
3442
+ "resumo_usuario_revisao_pendente": true,
2369
3443
  "arguments": [],
2370
3444
  "responses": {
2371
3445
  "success": "Comando executado com sucesso.",
@@ -2433,6 +3507,33 @@
2433
3507
  "subcomandos": [],
2434
3508
  "metodos_de_uso": ["/sair"],
2435
3509
  "mensagens_uso": {},
3510
+ "resumo_usuario": "Faz o bot sair do grupo quando solicitado por um admin.",
3511
+ "quando_usar": ["Quando o grupo não precisa mais do bot.", "Quando um admin decide que o bot não deve ficar no grupo.", "Se o bot entrou por engano e precisa sair."],
3512
+ "exemplos_reais": [
3513
+ {
3514
+ "situacao": "Você é admin do grupo e quer que o bot saia.",
3515
+ "comando": "/sair",
3516
+ "resposta_esperada": "Comando executado com sucesso.",
3517
+ "variacao": "<prefix>leave."
3518
+ },
3519
+ {
3520
+ "situacao": "Usuário tenta usar sem permissão de admin.",
3521
+ "comando": "/sair",
3522
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
3523
+ "variacao": "<prefix>leave."
3524
+ },
3525
+ {
3526
+ "situacao": "Formato de uso inválido (ex.: adicionar parâmetro extra).",
3527
+ "comando": "/sair extra",
3528
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
3529
+ "variacao": "<prefix>sair."
3530
+ }
3531
+ ],
3532
+ "resposta_esperada": ["Comando executado com sucesso.", "Permissão insuficiente para executar este comando.", "Formato de uso inválido. Consulte metodos_de_uso."],
3533
+ "erros_comuns_usuario": ["Tentar usar o comando sem ser admin do grupo.", "Usar parâmetros extras ou comandos adicionais.", "Esquecer de usar o prefix correto.", "Tentar usar o comando fora de um grupo.", "Tentar usar o comando sem entender que o bot exige permissão de admin."],
3534
+ "passos_se_der_erro": ["1) Confirme que você é admin do grupo.", "2) Verifique se o bot está no grupo e se você tem permissão para emitir comandos.", "3) Use apenas o comando de acordo com o uso: <prefix>sair (sem parâmetros).", "4) Tente novamente após confirmar as permissões.", "5) Se o erro persistir, registre a mensagem de erro e peça ajuda ao suporte."],
3535
+ "resumo_usuario_origem": "auto_ia_assistida",
3536
+ "resumo_usuario_revisao_pendente": true,
2436
3537
  "arguments": [],
2437
3538
  "responses": {
2438
3539
  "success": "Comando executado com sucesso.",
@@ -2453,37 +3554,441 @@
2453
3554
  "handler": {
2454
3555
  "file": "groupCommandHandlers.js",
2455
3556
  "method": "handleAdminCommand",
2456
- "command_case": "leave"
3557
+ "command_case": "leave"
3558
+ },
3559
+ "risk_level": "high",
3560
+ "stability": "stable",
3561
+ "version": "1.0.0"
3562
+ },
3563
+ "observability": {
3564
+ "event_name": "command.executed",
3565
+ "analytics_event": "whatsapp_command_leave",
3566
+ "tags": ["whatsapp", "command", "adminModule", "leave"]
3567
+ },
3568
+ "privacy": {
3569
+ "retention": "standard_app_logs",
3570
+ "legal_basis": "service_execution_and_legitimate_interest"
3571
+ },
3572
+ "discovery": {
3573
+ "keywords": ["sair", "admin", "grupo"],
3574
+ "user_phrasings": ["quero usar sair", "me ajuda com sair", "faz o bot sair"],
3575
+ "priority": 100
3576
+ }
3577
+ },
3578
+ {
3579
+ "key": "adminModule:solicitacoes",
3580
+ "name": "solicitacoes",
3581
+ "id": "admin.solicitacoes",
3582
+ "aliases": ["requests"],
3583
+ "module": "adminModule",
3584
+ "module_label": "adminModule",
3585
+ "category": "admin",
3586
+ "category_label": "Moderação e Admin",
3587
+ "descricao": "Lista solicitacoes pendentes para entrar no grupo.",
3588
+ "requirements": {
3589
+ "group": true,
3590
+ "admin": true,
3591
+ "owner": false,
3592
+ "google_login": true,
3593
+ "nsfw": false,
3594
+ "media": false,
3595
+ "reply": false
3596
+ },
3597
+ "premium": false,
3598
+ "allowed_plans": ["comum", "premium"],
3599
+ "rate_limit": null,
3600
+ "local_de_uso": ["grupo"],
3601
+ "subcomandos": [],
3602
+ "metodos_de_uso": ["/solicitacoes"],
3603
+ "mensagens_uso": {},
3604
+ "resumo_usuario": "Exibe as solicitações pendentes para entrar no grupo, para que o admin possa aprovar ou rejeitar.",
3605
+ "quando_usar": ["Quando você é admin e precisa ver quem pediu para entrar no grupo.", "Ao verificar novas solicitações pendentes e decidir quem aprovar.", "Para confirmar se há solicitações que precisam de ação."],
3606
+ "exemplos_reais": [
3607
+ {
3608
+ "situacao": "Você é admin e quer ver quem pediu para entrar no grupo.",
3609
+ "comando": "/solicitacoes",
3610
+ "resposta_esperada": "Aqui estão as solicitações pendentes: João pediu para entrar; Maria pediu para entrar.",
3611
+ "variacao": "lista simples com poucos pedidos."
3612
+ },
3613
+ {
3614
+ "situacao": "Há mais de 5 solicitações pendentes e você quer visualizar tudo.",
3615
+ "comando": "/solicitacoes",
3616
+ "resposta_esperada": "Aqui estão as solicitações pendentes: João, Maria, Carlos, Ana, Pedro.",
3617
+ "variacao": "lista com várias entradas."
3618
+ },
3619
+ {
3620
+ "situacao": "Você não tem permissão de admin e tenta usar o comando.",
3621
+ "comando": "/solicitacoes",
3622
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
3623
+ "variacao": "sem permissão de admin."
3624
+ }
3625
+ ],
3626
+ "resposta_esperada": ["Lista de solicitações pendentes para o grupo, com opções de aprovação ou rejeição.", "Exibir mensagem quando não houver pendentes.", "Mensagens de erro claras quando o usuário não tem permissão ou usa o formato errado."],
3627
+ "erros_comuns_usuario": ["Esquecer o prefixo ou digitar <prefix> solicitacoes com espaço", "Tentar usar o comando sem ter permissão de admin", "Usar o comando em outro chat/grupo", "Não haver solicitações pendentes e esperar uma lista"],
3628
+ "passos_se_der_erro": ["1) Confirme que você está no grupo certo e tem papel de admin.", "2) Use exatamente o formato: <prefix>solicitacoes (sem espaços extras).", "3) Se receber formato de uso inválido, corrija a sintaxe e tente novamente.", "4) Se não houver pendentes, esperar a próxima solicitação ou avisar que não há itens.", "5) Se o bot não responder, verifique a conexão e tente novamente após alguns segundos."],
3629
+ "resumo_usuario_origem": "auto_ia_assistida",
3630
+ "resumo_usuario_revisao_pendente": true,
3631
+ "arguments": [],
3632
+ "responses": {
3633
+ "success": "Comando executado com sucesso.",
3634
+ "usage_error": "Formato de uso inválido. Consulte metodos_de_uso.",
3635
+ "permission_error": "Permissão insuficiente para executar este comando.",
3636
+ "sucesso": "Comando executado com sucesso.",
3637
+ "erro_uso": "Formato de uso inválido. Consulte metodos_de_uso.",
3638
+ "erro_permissao": "Permissão insuficiente para executar este comando."
3639
+ },
3640
+ "technical": {
3641
+ "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "lista de solicitacoes pendentes de entrada no grupo"],
3642
+ "dependencies": ["API do WhatsApp (ações de grupo)", "stores/configuração interna"],
3643
+ "side_effects": ["altera configurações de grupo e permissões", "envia mensagens administrativas"],
3644
+ "behavior": {
3645
+ "type": "single_action",
3646
+ "argument_count": 0
3647
+ },
3648
+ "handler": {
3649
+ "file": "groupCommandHandlers.js",
3650
+ "method": "handleAdminCommand",
3651
+ "command_case": "requests"
3652
+ },
3653
+ "risk_level": "low",
3654
+ "stability": "stable",
3655
+ "version": "1.0.0"
3656
+ },
3657
+ "observability": {
3658
+ "event_name": "command.executed",
3659
+ "analytics_event": "whatsapp_command_requests",
3660
+ "tags": ["whatsapp", "command", "adminModule", "requests"]
3661
+ },
3662
+ "privacy": {
3663
+ "retention": "standard_app_logs",
3664
+ "legal_basis": "service_execution_and_legitimate_interest"
3665
+ },
3666
+ "discovery": {
3667
+ "keywords": ["solicitacoes", "admin", "grupo"],
3668
+ "user_phrasings": ["quero usar solicitacoes", "me ajuda com solicitacoes", "lista solicitacoes pendentes para"],
3669
+ "priority": 100
3670
+ }
3671
+ },
3672
+ {
3673
+ "key": "adminModule:stickerallowance",
3674
+ "name": "stickerallowance",
3675
+ "id": "admin.stickerallowance",
3676
+ "aliases": ["limiteqtdfigurinha", "allowancefigurinha"],
3677
+ "module": "adminModule",
3678
+ "module_label": "adminModule",
3679
+ "category": "admin",
3680
+ "category_label": "Moderação e Admin",
3681
+ "descricao": "Configura quantas mensagens cada usuário pode enviar no modo sticker durante a janela de cooldown.",
3682
+ "requirements": {
3683
+ "group": true,
3684
+ "admin": true,
3685
+ "owner": false,
3686
+ "google_login": true,
3687
+ "nsfw": false,
3688
+ "media": false,
3689
+ "reply": false
3690
+ },
3691
+ "premium": false,
3692
+ "allowed_plans": ["comum", "premium"],
3693
+ "rate_limit": null,
3694
+ "local_de_uso": ["grupo"],
3695
+ "subcomandos": [],
3696
+ "metodos_de_uso": ["/stickerallowance status", "/stickerallowance <quantidade>", "/stickerallowance reset"],
3697
+ "mensagens_uso": {},
3698
+ "resumo_usuario": "Configura quantas mensagens cada usuário pode enviar no modo sticker durante a janela de cooldown.",
3699
+ "quando_usar": ["Use quando você precisa desta ação: Configura quantas mensagens cada usuário pode enviar no modo sticker durante a janela de cooldown.", "Funciona dentro de grupos.", "Você precisa ser admin para executar.", "É necessário estar logado no sistema para usar."],
3700
+ "exemplos_reais": [
3701
+ {
3702
+ "situacao": "Cenário comum: Configura quantas mensagens cada usuário pode enviar no modo sticker durante a janela de cooldown.",
3703
+ "comando": "/stickerallowance status",
3704
+ "resposta_esperada": "Comando executado com sucesso.",
3705
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
3706
+ },
3707
+ {
3708
+ "situacao": "Variação 2 de uso do comando no mesmo contexto.",
3709
+ "comando": "/stickerallowance <quantidade>",
3710
+ "resposta_esperada": "Comando executado com sucesso.",
3711
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
3712
+ },
3713
+ {
3714
+ "situacao": "Variação 3 de uso do comando no mesmo contexto.",
3715
+ "comando": "/stickerallowance reset",
3716
+ "resposta_esperada": "Comando executado com sucesso.",
3717
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
3718
+ }
3719
+ ],
3720
+ "resposta_esperada": ["Sucesso: Comando executado com sucesso.", "Uso incorreto: Formato de uso inválido. Consulte metodos_de_uso.", "Permissão: Permissão insuficiente para executar este comando."],
3721
+ "erros_comuns_usuario": ["Digitar o comando fora do formato esperado.", "Tentar executar fora de um grupo.", "Tentar executar sem ser admin.", "Tentar usar sem estar logado no sistema."],
3722
+ "passos_se_der_erro": ["Copie e teste um exemplo pronto desta página.", "Confira se você está no local certo (grupo/privado) e com a permissão necessária.", "Se ainda falhar, fale com o admin do sistema no privado."],
3723
+ "resumo_usuario_origem": "auto_ia_assistida",
3724
+ "resumo_usuario_revisao_pendente": true,
3725
+ "arguments": [
3726
+ {
3727
+ "name": "valor",
3728
+ "type": "string",
3729
+ "required": false,
3730
+ "description": "status|reset|<1-10>",
3731
+ "default": null,
3732
+ "validation": "status|reset|<1-10>"
3733
+ }
3734
+ ],
3735
+ "responses": {
3736
+ "success": "Comando executado com sucesso.",
3737
+ "usage_error": "Formato de uso inválido. Consulte metodos_de_uso.",
3738
+ "permission_error": "Permissão insuficiente para executar este comando."
3739
+ },
3740
+ "technical": {
3741
+ "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "configuracoes do grupo no store"],
3742
+ "dependencies": ["API do WhatsApp (ações de grupo)", "stores/configuração interna"],
3743
+ "side_effects": ["altera configurações de grupo e permissões", "envia mensagens administrativas"],
3744
+ "behavior": {
3745
+ "type": "configuration_window",
3746
+ "allowed_actions": ["status", "reset", "set"],
3747
+ "action_argument": "valor"
3748
+ },
3749
+ "handler": {
3750
+ "file": "groupCommandHandlers.js",
3751
+ "method": "handleAdminCommand",
3752
+ "command_case": "stickerallowance"
3753
+ },
3754
+ "risk_level": "medium",
3755
+ "stability": "stable",
3756
+ "version": "1.0.0"
3757
+ },
3758
+ "observability": {
3759
+ "event_name": "command.executed",
3760
+ "analytics_event": "whatsapp_command_stickerallowance",
3761
+ "tags": ["whatsapp", "command", "adminModule", "stickerallowance"]
3762
+ },
3763
+ "privacy": {
3764
+ "retention": "standard_app_logs",
3765
+ "legal_basis": "service_execution_and_legitimate_interest"
3766
+ },
3767
+ "discovery": {
3768
+ "keywords": ["stickerallowance", "sticker", "allowance", "limite"],
3769
+ "user_phrasings": ["quero usar stickerallowance", "me ajuda com stickerallowance"],
3770
+ "priority": 100
3771
+ }
3772
+ },
3773
+ {
3774
+ "key": "adminModule:temporarias",
3775
+ "name": "temporarias",
3776
+ "id": "admin.temporarias",
3777
+ "aliases": ["temp"],
3778
+ "module": "adminModule",
3779
+ "module_label": "adminModule",
3780
+ "category": "admin",
3781
+ "category_label": "Moderação e Admin",
3782
+ "descricao": "Define tempo de mensagens temporarias (ephemeral) no grupo.",
3783
+ "requirements": {
3784
+ "group": true,
3785
+ "admin": true,
3786
+ "owner": false,
3787
+ "google_login": true,
3788
+ "nsfw": false,
3789
+ "media": false,
3790
+ "reply": false
3791
+ },
3792
+ "premium": false,
3793
+ "allowed_plans": ["comum", "premium"],
3794
+ "rate_limit": null,
3795
+ "local_de_uso": ["grupo"],
3796
+ "subcomandos": [],
3797
+ "metodos_de_uso": ["/temporarias <duracao_em_segundos>"],
3798
+ "mensagens_uso": {},
3799
+ "resumo_usuario": "Define o tempo de expiração das mensagens no grupo (ephemeral). As mensagens passam a desaparecer automaticamente após o tempo informado.",
3800
+ "quando_usar": ["Quando você quer reduzir ruído mantendo o grupo limpo após um período de tempo.", "Para conversas com informações sensíveis que não devem ficar salvas no histórico do grupo.", "Ao testar respostas ou fluxos que devem sumir rápido para manter o foco no tema."],
3801
+ "exemplos_reais": [
3802
+ {
3803
+ "situacao": "Grupo de projeto onde as tarefas não devem permanecer no chat por muito tempo.",
3804
+ "comando": "/temporarias 60",
3805
+ "resposta_esperada": "Comando executado com sucesso.",
3806
+ "variacao": "uso padrão com duração de 60 segundos."
3807
+ },
3808
+ {
3809
+ "situacao": "Usuario não é admin tentando configurar.",
3810
+ "comando": "/temporarias 60",
3811
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
3812
+ "variacao": "usuario sem permissão de admin."
3813
+ },
3814
+ {
3815
+ "situacao": "Formato de duração inválido.",
3816
+ "comando": "/temporarias abc",
3817
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
3818
+ "variacao": "valor não inteiro."
3819
+ }
3820
+ ],
3821
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
3822
+ "erros_comuns_usuario": ["Não é admin do grupo", "Tentar usar em conversa privada (não no grupo)", "Duração menor que 1 ou valor não numérico", "Esquecer de incluir o <prefix> ou usar o alias incorreto"],
3823
+ "passos_se_der_erro": ["Verifique se você é admin do grupo.", "Confirme que está executando no grupo e não em chat privado.", "Verifique a sintaxe: <prefix>temporarias <duracao_em_segundos> ou <prefix>temp <duracao_em_segundos>.", "Informe uma duração positiva (ex.: 60).", "Se o problema persistir, peça suporte ao administrador do grupo ou verifique as permissões do bot no grupo."],
3824
+ "resumo_usuario_origem": "auto_ia_assistida",
3825
+ "resumo_usuario_revisao_pendente": true,
3826
+ "arguments": [
3827
+ {
3828
+ "name": "duracao_segundos",
3829
+ "type": "integer",
3830
+ "required": true,
3831
+ "description": "inteiro positivo",
3832
+ "default": null,
3833
+ "validation": "inteiro positivo"
3834
+ }
3835
+ ],
3836
+ "responses": {
3837
+ "success": "Comando executado com sucesso.",
3838
+ "usage_error": "Formato de uso inválido. Consulte metodos_de_uso.",
3839
+ "permission_error": "Permissão insuficiente para executar este comando.",
3840
+ "sucesso": "Comando executado com sucesso.",
3841
+ "erro_uso": "Formato de uso inválido. Consulte metodos_de_uso.",
3842
+ "erro_permissao": "Permissão insuficiente para executar este comando."
3843
+ },
3844
+ "technical": {
3845
+ "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "duracao em segundos para mensagens temporarias"],
3846
+ "dependencies": ["API do WhatsApp (ações de grupo)", "stores/configuração interna"],
3847
+ "side_effects": ["altera configurações de grupo e permissões", "envia mensagens administrativas"],
3848
+ "behavior": {
3849
+ "type": "argument_driven",
3850
+ "argument_count": 1
3851
+ },
3852
+ "handler": {
3853
+ "file": "groupCommandHandlers.js",
3854
+ "method": "handleAdminCommand",
3855
+ "command_case": "temp"
3856
+ },
3857
+ "risk_level": "low",
3858
+ "stability": "stable",
3859
+ "version": "1.0.0"
3860
+ },
3861
+ "observability": {
3862
+ "event_name": "command.executed",
3863
+ "analytics_event": "whatsapp_command_temp",
3864
+ "tags": ["whatsapp", "command", "adminModule", "temp"]
3865
+ },
3866
+ "privacy": {
3867
+ "retention": "standard_app_logs",
3868
+ "legal_basis": "service_execution_and_legitimate_interest"
3869
+ },
3870
+ "discovery": {
3871
+ "keywords": ["temporarias", "admin", "grupo"],
3872
+ "user_phrasings": ["quero usar temporarias", "me ajuda com temporarias", "define tempo de mensagens"],
3873
+ "priority": 100
3874
+ }
3875
+ },
3876
+ {
3877
+ "key": "adminModule:warn",
3878
+ "name": "warn",
3879
+ "id": "admin.warn",
3880
+ "aliases": ["advertir"],
3881
+ "module": "adminModule",
3882
+ "module_label": "adminModule",
3883
+ "category": "admin",
3884
+ "category_label": "Moderação e Admin",
3885
+ "descricao": "Registra uma advertência para um participante no grupo.",
3886
+ "requirements": {
3887
+ "group": true,
3888
+ "admin": true,
3889
+ "owner": false,
3890
+ "google_login": true,
3891
+ "nsfw": false,
3892
+ "media": false,
3893
+ "reply": false
3894
+ },
3895
+ "premium": false,
3896
+ "allowed_plans": ["comum", "premium"],
3897
+ "rate_limit": null,
3898
+ "local_de_uso": ["grupo"],
3899
+ "subcomandos": [],
3900
+ "metodos_de_uso": ["/warn @usuario [motivo]", "/warn 5511999999999@s.whatsapp.net [motivo]"],
3901
+ "mensagens_uso": {
3902
+ "missing_targets": ["/warn @usuario [motivo]", "Também é possível responder a mensagem do usuário alvo."]
3903
+ },
3904
+ "resumo_usuario": "Registra uma advertência para um participante no grupo.",
3905
+ "quando_usar": ["Use quando você precisa desta ação: Registra uma advertência para um participante no grupo.", "Funciona dentro de grupos.", "Você precisa ser admin para executar.", "É necessário estar logado no sistema para usar."],
3906
+ "exemplos_reais": [
3907
+ {
3908
+ "situacao": "Cenário comum: Registra uma advertência para um participante no grupo.",
3909
+ "comando": "/warn @usuario [motivo]",
3910
+ "resposta_esperada": "Comando executado com sucesso.",
3911
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
3912
+ },
3913
+ {
3914
+ "situacao": "Variação 2 de uso do comando no mesmo contexto.",
3915
+ "comando": "/warn 5511999999999@s.whatsapp.net [motivo]",
3916
+ "resposta_esperada": "Comando executado com sucesso.",
3917
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
3918
+ }
3919
+ ],
3920
+ "resposta_esperada": ["Sucesso: Comando executado com sucesso.", "Uso incorreto: Formato de uso inválido. Consulte metodos_de_uso.", "Permissão: Permissão insuficiente para executar este comando."],
3921
+ "erros_comuns_usuario": ["Digitar o comando fora do formato esperado.", "Tentar executar fora de um grupo.", "Tentar executar sem ser admin.", "Tentar usar sem estar logado no sistema."],
3922
+ "passos_se_der_erro": ["Copie e teste um exemplo pronto desta página.", "Confira se você está no local certo (grupo/privado) e com a permissão necessária.", "Se ainda falhar, fale com o admin do sistema no privado."],
3923
+ "resumo_usuario_origem": "auto_ia_assistida",
3924
+ "resumo_usuario_revisao_pendente": true,
3925
+ "arguments": [
3926
+ {
3927
+ "name": "participante",
3928
+ "type": "string",
3929
+ "required": true,
3930
+ "description": "menção, resposta ou JID válido",
3931
+ "default": null,
3932
+ "validation": "menção, resposta ou JID válido"
3933
+ },
3934
+ {
3935
+ "name": "motivo",
3936
+ "type": "string",
3937
+ "required": false,
3938
+ "description": "texto do motivo da advertência",
3939
+ "default": null,
3940
+ "validation": "texto livre (até 500 chars)"
3941
+ }
3942
+ ],
3943
+ "responses": {
3944
+ "success": "Comando executado com sucesso.",
3945
+ "usage_error": "Formato de uso inválido. Consulte metodos_de_uso.",
3946
+ "permission_error": "Permissão insuficiente para executar este comando."
3947
+ },
3948
+ "technical": {
3949
+ "collected_data": ["chat_identifier", "sender_identifier", "command_content", "target_identifier", "moderation_reason", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "identificador do participante alvo", "motivo e contagem de advertencias por participante no grupo"],
3950
+ "dependencies": ["API do WhatsApp (ações de grupo)", "stores/configuração interna", "banco relacional (group_user_warnings)"],
3951
+ "side_effects": ["consulta e altera histórico de advertências no grupo", "envia mensagens administrativas"],
3952
+ "behavior": {
3953
+ "type": "action_target",
3954
+ "target_type": "participant",
3955
+ "action": "warn",
3956
+ "requires_targets": true
3957
+ },
3958
+ "handler": {
3959
+ "file": "groupCommandHandlers.js",
3960
+ "method": "handleAdminCommand",
3961
+ "command_case": "warn"
2457
3962
  },
2458
- "risk_level": "high",
3963
+ "risk_level": "medium",
2459
3964
  "stability": "stable",
2460
3965
  "version": "1.0.0"
2461
3966
  },
2462
3967
  "observability": {
2463
3968
  "event_name": "command.executed",
2464
- "analytics_event": "whatsapp_command_leave",
2465
- "tags": ["whatsapp", "command", "adminModule", "leave"]
3969
+ "analytics_event": null,
3970
+ "tags": ["whatsapp", "command", "adminModule", "moderation"]
2466
3971
  },
2467
3972
  "privacy": {
2468
3973
  "retention": "standard_app_logs",
2469
3974
  "legal_basis": "service_execution_and_legitimate_interest"
2470
3975
  },
2471
3976
  "discovery": {
2472
- "keywords": ["sair", "admin", "grupo"],
2473
- "user_phrasings": ["quero usar sair", "me ajuda com sair", "faz o bot sair"],
2474
- "priority": 100
3977
+ "keywords": [],
3978
+ "user_phrasings": ["quero advertir um usuario", "listar warnings de um usuario", "limpar warnings do usuario"],
3979
+ "priority": 120
2475
3980
  }
2476
3981
  },
2477
3982
  {
2478
- "key": "adminModule:solicitacoes",
2479
- "name": "solicitacoes",
2480
- "id": "admin.solicitacoes",
2481
- "aliases": ["requests"],
3983
+ "key": "adminModule:warnings",
3984
+ "name": "warnings",
3985
+ "id": "admin.warnings",
3986
+ "aliases": ["advertencias", "warnlist"],
2482
3987
  "module": "adminModule",
2483
3988
  "module_label": "adminModule",
2484
3989
  "category": "admin",
2485
3990
  "category_label": "Moderação e Admin",
2486
- "descricao": "Lista solicitacoes pendentes para entrar no grupo.",
3991
+ "descricao": "Mostra o histórico de advertências de um participante no grupo.",
2487
3992
  "requirements": {
2488
3993
  "group": true,
2489
3994
  "admin": true,
@@ -2498,59 +4003,90 @@
2498
4003
  "rate_limit": null,
2499
4004
  "local_de_uso": ["grupo"],
2500
4005
  "subcomandos": [],
2501
- "metodos_de_uso": ["/solicitacoes"],
2502
- "mensagens_uso": {},
2503
- "arguments": [],
4006
+ "metodos_de_uso": ["/warnings @usuario", "/warnings 5511999999999@s.whatsapp.net"],
4007
+ "mensagens_uso": {
4008
+ "missing_targets": ["/warnings @usuario", "Também é possível responder a mensagem do usuário alvo."]
4009
+ },
4010
+ "resumo_usuario": "Mostra o histórico de advertências de um participante no grupo.",
4011
+ "quando_usar": ["Use quando você precisa desta ação: Mostra o histórico de advertências de um participante no grupo.", "Funciona dentro de grupos.", "Você precisa ser admin para executar.", "É necessário estar logado no sistema para usar."],
4012
+ "exemplos_reais": [
4013
+ {
4014
+ "situacao": "Cenário comum: Mostra o histórico de advertências de um participante no grupo.",
4015
+ "comando": "/warnings @usuario",
4016
+ "resposta_esperada": "Comando executado com sucesso.",
4017
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
4018
+ },
4019
+ {
4020
+ "situacao": "Variação 2 de uso do comando no mesmo contexto.",
4021
+ "comando": "/warnings 5511999999999@s.whatsapp.net",
4022
+ "resposta_esperada": "Comando executado com sucesso.",
4023
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
4024
+ }
4025
+ ],
4026
+ "resposta_esperada": ["Sucesso: Comando executado com sucesso.", "Uso incorreto: Formato de uso inválido. Consulte metodos_de_uso.", "Permissão: Permissão insuficiente para executar este comando."],
4027
+ "erros_comuns_usuario": ["Digitar o comando fora do formato esperado.", "Tentar executar fora de um grupo.", "Tentar executar sem ser admin.", "Tentar usar sem estar logado no sistema."],
4028
+ "passos_se_der_erro": ["Copie e teste um exemplo pronto desta página.", "Confira se você está no local certo (grupo/privado) e com a permissão necessária.", "Se ainda falhar, fale com o admin do sistema no privado."],
4029
+ "resumo_usuario_origem": "auto_ia_assistida",
4030
+ "resumo_usuario_revisao_pendente": true,
4031
+ "arguments": [
4032
+ {
4033
+ "name": "participante",
4034
+ "type": "string",
4035
+ "required": true,
4036
+ "description": "menção, resposta ou JID válido",
4037
+ "default": null,
4038
+ "validation": "menção, resposta ou JID válido"
4039
+ }
4040
+ ],
2504
4041
  "responses": {
2505
4042
  "success": "Comando executado com sucesso.",
2506
4043
  "usage_error": "Formato de uso inválido. Consulte metodos_de_uso.",
2507
- "permission_error": "Permissão insuficiente para executar este comando.",
2508
- "sucesso": "Comando executado com sucesso.",
2509
- "erro_uso": "Formato de uso inválido. Consulte metodos_de_uso.",
2510
- "erro_permissao": "Permissão insuficiente para executar este comando."
4044
+ "permission_error": "Permissão insuficiente para executar este comando."
2511
4045
  },
2512
4046
  "technical": {
2513
- "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "lista de solicitacoes pendentes de entrada no grupo"],
2514
- "dependencies": ["API do WhatsApp (ações de grupo)", "stores/configuração interna"],
2515
- "side_effects": ["altera configurações de grupo e permissões", "envia mensagens administrativas"],
4047
+ "collected_data": ["chat_identifier", "sender_identifier", "command_content", "target_identifier", "moderation_reason", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "identificador do participante alvo", "motivo e contagem de advertencias por participante no grupo"],
4048
+ "dependencies": ["API do WhatsApp (ações de grupo)", "stores/configuração interna", "banco relacional (group_user_warnings)"],
4049
+ "side_effects": ["consulta e altera histórico de advertências no grupo", "envia mensagens administrativas"],
2516
4050
  "behavior": {
2517
- "type": "single_action",
2518
- "argument_count": 0
4051
+ "type": "query_target",
4052
+ "target_type": "participant",
4053
+ "action": "warnings",
4054
+ "requires_targets": true
2519
4055
  },
2520
4056
  "handler": {
2521
4057
  "file": "groupCommandHandlers.js",
2522
4058
  "method": "handleAdminCommand",
2523
- "command_case": "requests"
4059
+ "command_case": "warnings"
2524
4060
  },
2525
- "risk_level": "low",
4061
+ "risk_level": "medium",
2526
4062
  "stability": "stable",
2527
4063
  "version": "1.0.0"
2528
4064
  },
2529
4065
  "observability": {
2530
4066
  "event_name": "command.executed",
2531
- "analytics_event": "whatsapp_command_requests",
2532
- "tags": ["whatsapp", "command", "adminModule", "requests"]
4067
+ "analytics_event": null,
4068
+ "tags": ["whatsapp", "command", "adminModule", "moderation"]
2533
4069
  },
2534
4070
  "privacy": {
2535
4071
  "retention": "standard_app_logs",
2536
4072
  "legal_basis": "service_execution_and_legitimate_interest"
2537
4073
  },
2538
4074
  "discovery": {
2539
- "keywords": ["solicitacoes", "admin", "grupo"],
2540
- "user_phrasings": ["quero usar solicitacoes", "me ajuda com solicitacoes", "lista solicitacoes pendentes para"],
2541
- "priority": 100
4075
+ "keywords": [],
4076
+ "user_phrasings": ["quero advertir um usuario", "listar warnings de um usuario", "limpar warnings do usuario"],
4077
+ "priority": 120
2542
4078
  }
2543
4079
  },
2544
4080
  {
2545
- "key": "adminModule:temporarias",
2546
- "name": "temporarias",
2547
- "id": "admin.temporarias",
2548
- "aliases": ["temp"],
4081
+ "key": "adminModule:warnlimit",
4082
+ "name": "warnlimit",
4083
+ "id": "admin.warnlimit",
4084
+ "aliases": ["limitewarn", "warnban"],
2549
4085
  "module": "adminModule",
2550
4086
  "module_label": "adminModule",
2551
4087
  "category": "admin",
2552
4088
  "category_label": "Moderação e Admin",
2553
- "descricao": "Define tempo de mensagens temporarias (ephemeral) no grupo.",
4089
+ "descricao": "Configura o limite de advertências para auto-ban no grupo (padrão 3).",
2554
4090
  "requirements": {
2555
4091
  "group": true,
2556
4092
  "admin": true,
@@ -2565,56 +4101,83 @@
2565
4101
  "rate_limit": null,
2566
4102
  "local_de_uso": ["grupo"],
2567
4103
  "subcomandos": [],
2568
- "metodos_de_uso": ["/temporarias <duracao_em_segundos>"],
2569
- "mensagens_uso": {},
4104
+ "metodos_de_uso": ["/warnlimit status", "/warnlimit <qtd>", "/warnlimit reset"],
4105
+ "mensagens_uso": {
4106
+ "invalid_value": ["/warnlimit <qtd> (qtd precisa ser número inteiro positivo)", "/warnlimit status", "/warnlimit reset"]
4107
+ },
4108
+ "resumo_usuario": "Configura o limite de advertências para auto-ban no grupo (padrão 3).",
4109
+ "quando_usar": ["Use quando você precisa desta ação: Configura o limite de advertências para auto-ban no grupo (padrão 3).", "Funciona dentro de grupos.", "Você precisa ser admin para executar.", "É necessário estar logado no sistema para usar."],
4110
+ "exemplos_reais": [
4111
+ {
4112
+ "situacao": "Cenário comum: Configura o limite de advertências para auto-ban no grupo (padrão 3).",
4113
+ "comando": "/warnlimit status",
4114
+ "resposta_esperada": "Comando executado com sucesso.",
4115
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
4116
+ },
4117
+ {
4118
+ "situacao": "Variação 2 de uso do comando no mesmo contexto.",
4119
+ "comando": "/warnlimit <qtd>",
4120
+ "resposta_esperada": "Comando executado com sucesso.",
4121
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
4122
+ },
4123
+ {
4124
+ "situacao": "Variação 3 de uso do comando no mesmo contexto.",
4125
+ "comando": "/warnlimit reset",
4126
+ "resposta_esperada": "Comando executado com sucesso.",
4127
+ "variacao": "Formato de uso inválido. Consulte metodos_de_uso."
4128
+ }
4129
+ ],
4130
+ "resposta_esperada": ["Sucesso: Comando executado com sucesso.", "Uso incorreto: Formato de uso inválido. Consulte metodos_de_uso.", "Permissão: Permissão insuficiente para executar este comando."],
4131
+ "erros_comuns_usuario": ["Digitar o comando fora do formato esperado.", "Tentar executar fora de um grupo.", "Tentar executar sem ser admin.", "Tentar usar sem estar logado no sistema."],
4132
+ "passos_se_der_erro": ["Copie e teste um exemplo pronto desta página.", "Confira se você está no local certo (grupo/privado) e com a permissão necessária.", "Se ainda falhar, fale com o admin do sistema no privado."],
4133
+ "resumo_usuario_origem": "auto_ia_assistida",
4134
+ "resumo_usuario_revisao_pendente": true,
2570
4135
  "arguments": [
2571
4136
  {
2572
- "name": "duracao_segundos",
2573
- "type": "integer",
2574
- "required": true,
2575
- "description": "inteiro positivo",
2576
- "default": null,
2577
- "validation": "inteiro positivo"
4137
+ "name": "valor",
4138
+ "type": "string",
4139
+ "required": false,
4140
+ "description": "status|reset|qtd positiva",
4141
+ "default": "status",
4142
+ "validation": "status|reset|qtd positiva"
2578
4143
  }
2579
4144
  ],
2580
4145
  "responses": {
2581
4146
  "success": "Comando executado com sucesso.",
2582
4147
  "usage_error": "Formato de uso inválido. Consulte metodos_de_uso.",
2583
- "permission_error": "Permissão insuficiente para executar este comando.",
2584
- "sucesso": "Comando executado com sucesso.",
2585
- "erro_uso": "Formato de uso inválido. Consulte metodos_de_uso.",
2586
- "erro_permissao": "Permissão insuficiente para executar este comando."
4148
+ "permission_error": "Permissão insuficiente para executar este comando."
2587
4149
  },
2588
4150
  "technical": {
2589
- "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "duracao em segundos para mensagens temporarias"],
4151
+ "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "configuração atual de warnAutoBanThreshold no grupo"],
2590
4152
  "dependencies": ["API do WhatsApp (ações de grupo)", "stores/configuração interna"],
2591
- "side_effects": ["altera configurações de grupo e permissões", "envia mensagens administrativas"],
4153
+ "side_effects": ["altera configuração de auto-ban por advertências do grupo", "envia mensagens administrativas"],
2592
4154
  "behavior": {
2593
- "type": "argument_driven",
2594
- "argument_count": 1
4155
+ "type": "set_status_reset",
4156
+ "action_argument": "valor",
4157
+ "allowed_actions": ["status", "reset"]
2595
4158
  },
2596
4159
  "handler": {
2597
4160
  "file": "groupCommandHandlers.js",
2598
4161
  "method": "handleAdminCommand",
2599
- "command_case": "temp"
4162
+ "command_case": "warnlimit"
2600
4163
  },
2601
- "risk_level": "low",
4164
+ "risk_level": "medium",
2602
4165
  "stability": "stable",
2603
4166
  "version": "1.0.0"
2604
4167
  },
2605
4168
  "observability": {
2606
4169
  "event_name": "command.executed",
2607
- "analytics_event": "whatsapp_command_temp",
2608
- "tags": ["whatsapp", "command", "adminModule", "temp"]
4170
+ "analytics_event": null,
4171
+ "tags": ["whatsapp", "command", "adminModule", "moderation"]
2609
4172
  },
2610
4173
  "privacy": {
2611
4174
  "retention": "standard_app_logs",
2612
4175
  "legal_basis": "service_execution_and_legitimate_interest"
2613
4176
  },
2614
4177
  "discovery": {
2615
- "keywords": ["temporarias", "admin", "grupo"],
2616
- "user_phrasings": ["quero usar temporarias", "me ajuda com temporarias", "define tempo de mensagens"],
2617
- "priority": 100
4178
+ "keywords": [],
4179
+ "user_phrasings": ["quero mudar o limite de warn", "ajustar auto ban de advertencia", "ver limite de warns"],
4180
+ "priority": 120
2618
4181
  }
2619
4182
  }
2620
4183
  ]
@@ -2654,6 +4217,33 @@
2654
4217
  "mensagens_uso": {
2655
4218
  "default": ["📌 Use: /figurinha (ou /s) respondendo a uma imagem, vídeo ou figurinha."]
2656
4219
  },
4220
+ "resumo_usuario": "Converte imagem ou vídeo enviado em figurinha para o WhatsApp. Requer login Google e mídia. Disponível para planos comum e premium.",
4221
+ "quando_usar": ["Quando você quer transformar uma foto ou vídeo enviada em uma figurinha para compartilhar no chat.", "Quando desejar adicionar texto opcional à figurinha com o texto após o comando.", "Quando usar o atalho <prefix>s para criar rapidamente a figurinha a partir da mídia recebida."],
4222
+ "exemplos_reais": [
4223
+ {
4224
+ "situacao": "Transformar imagem recebida em figurinha (sem texto).",
4225
+ "comando": "/figurinha",
4226
+ "resposta_esperada": "Comando executado com sucesso.",
4227
+ "variacao": "com imagem anexada."
4228
+ },
4229
+ {
4230
+ "situacao": "Criar figurinha com texto personalizado.",
4231
+ "comando": "/figurinha Olá amigos",
4232
+ "resposta_esperada": "Comando executado com sucesso.",
4233
+ "variacao": "texto_extra fornecido."
4234
+ },
4235
+ {
4236
+ "situacao": "Usar atalho para vídeo e gerar figurinha.",
4237
+ "comando": "/s",
4238
+ "resposta_esperada": "Comando executado com sucesso.",
4239
+ "variacao": "vídeo anexado."
4240
+ }
4241
+ ],
4242
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
4243
+ "erros_comuns_usuario": ["Não há mídia anexada para transformar em figurinha.", "Formato de uso inválido. Use <prefix>figurinha ou <prefix>s.", "Não é possível converter conteúdo NSFW ou não aprovado.", "Você não está logado no Google ou a autenticação falhou."],
4244
+ "passos_se_der_erro": ["Verifique se você enviou uma imagem ou vídeo junto ao comando.", "Tente novamente com <prefix>figurinha ou <prefix>s.", "Certifique-se de estar conectado com sua conta Google e que o login esteja ativo."],
4245
+ "resumo_usuario_origem": "auto_ia_assistida",
4246
+ "resumo_usuario_revisao_pendente": true,
2657
4247
  "arguments": [
2658
4248
  {
2659
4249
  "name": "texto_extra",
@@ -2732,6 +4322,33 @@
2732
4322
  "mensagens_uso": {
2733
4323
  "default": ["📌 Use: /figurinhatexto seu texto", "💡 Exemplo: /st bom dia seus lindos"]
2734
4324
  },
4325
+ "resumo_usuario": "Gera figurinha com texto em tema escuro. Digite o texto (até 80 caracteres, até 4 linhas) e a figurinha é criada.",
4326
+ "quando_usar": ["Quando quiser transformar uma frase curta em uma figurinha para compartilhar no chat.", "Para destacar mensagens com estilo visual sem sair do chat."],
4327
+ "exemplos_reais": [
4328
+ {
4329
+ "situacao": "Criar uma figurinha com uma frase curta para cumprimentar.",
4330
+ "comando": "/figurinhatexto Olá, tudo bem?",
4331
+ "resposta_esperada": "Figura gerada com o texto: 'Olá, tudo bem?'.",
4332
+ "variacao": "<prefix>st Olá, tudo bem?"
4333
+ },
4334
+ {
4335
+ "situacao": "Texto com várias linhas (até 4 linhas).",
4336
+ "comando": "/figurinhatexto Linha 1\\nLinha 2\\nLinha 3\\nLinha 4",
4337
+ "resposta_esperada": "Figura criada com o texto: 'Linha 1\\nLinha 2\\nLinha 3\\nLinha 4'.",
4338
+ "variacao": "<prefix>st Linha 1\\nLinha 2\\nLinha 3\\nLinha 4."
4339
+ },
4340
+ {
4341
+ "situacao": "Uso rápido com alias.",
4342
+ "comando": "/st Bom dia a todos",
4343
+ "resposta_esperada": "Figura gerada com o texto: 'Bom dia a todos'.",
4344
+ "variacao": "<prefix>figurinhatexto Bom dia a todos."
4345
+ }
4346
+ ],
4347
+ "resposta_esperada": ["Figura criada com sucesso e pronta para enviar no chat.", "Texto da figurinha incorporado ao sticker.", "Comando executado com sucesso."],
4348
+ "erros_comuns_usuario": ["Texto com mais de 80 caracteres.", "Não informar o texto após <prefix>figurinhatexto ou <prefix>st.", "Formato de uso inválido (faltou o texto ou usou caractere não suportado).", "Usar mais de 4 linhas."],
4349
+ "passos_se_der_erro": ["Verifique o texto informado: até 80 caracteres e até 4 linhas.", "Repita o comando correto, por exemplo: <prefix>figurinhatexto Seu texto aqui.", "Certifique-se de estar conectado com a conta Google, se necessário.", "Se o problema persistir, aguarde alguns minutos e tente novamente ou procure suporte."],
4350
+ "resumo_usuario_origem": "auto_ia_assistida",
4351
+ "resumo_usuario_revisao_pendente": true,
2735
4352
  "arguments": [
2736
4353
  {
2737
4354
  "name": "texto",
@@ -2810,6 +4427,33 @@
2810
4427
  "mensagens_uso": {
2811
4428
  "default": ["📌 Use: /figurinhatextobranco seu texto", "💡 Exemplo: /stw bom dia seus lindos"]
2812
4429
  },
4430
+ "resumo_usuario": "Crie figurinha com texto em branco em tema claro usando <prefix>figurinhatextobranco ou <prefix>stw.",
4431
+ "quando_usar": ["Quer compartilhar uma mensagem rápida como imagem no chat.", "Precisa de até 80 caracteres, em até 4 linhas.", "Não precisa de opções adicionais ou ajustes de estilo.", "Prefere um atalho curto com <prefix>stw."],
4432
+ "exemplos_reais": [
4433
+ {
4434
+ "situacao": "Frase motivacional.",
4435
+ "comando": "/figurinhatextobranco Acredite em si mesmo!",
4436
+ "resposta_esperada": "Figurinha criada com o texto 'Acredite em si mesmo!' em tema claro.",
4437
+ "variacao": "<prefix>stw Acredite em si mesmo!"
4438
+ },
4439
+ {
4440
+ "situacao": "Bom dia.",
4441
+ "comando": "/figurinhatextobranco Bom dia, equipe!",
4442
+ "resposta_esperada": "Figurinha criada com o texto 'Bom dia, equipe!' em tema claro.",
4443
+ "variacao": "<prefix>stw Bom dia, equipe!"
4444
+ },
4445
+ {
4446
+ "situacao": "Quatro linhas.",
4447
+ "comando": "/figurinhatextobranco Linha 1 Linha 2 Linha 3 Linha 4",
4448
+ "resposta_esperada": "Figurinha criada com o texto em quatro linhas.",
4449
+ "variacao": "<prefix>stw Linha 1 Linha 2 Linha 3 Linha 4."
4450
+ }
4451
+ ],
4452
+ "resposta_esperada": ["Comando executado com sucesso."],
4453
+ "erros_comuns_usuario": ["Texto não informado após o comando.", "Texto excede 80 caracteres ou ultrapassa 4 linhas.", "Formato de uso incorreto ou sem o prefixo correto.", "Tentar usar caracteres não suportados."],
4454
+ "passos_se_der_erro": ["Certifique-se de incluir o texto após o comando, ex.: <prefix>figurinhatextobranco Seu texto.", "Verifique o tamanho: até 80 caracteres e até 4 linhas.", "Use o formato correto: <prefix>figurinhatextobranco ou <prefix>stw.", "Tente novamente. Se o erro persistir, copie o comando usado e peça ajuda."],
4455
+ "resumo_usuario_origem": "auto_ia_assistida",
4456
+ "resumo_usuario_revisao_pendente": true,
2813
4457
  "arguments": [
2814
4458
  {
2815
4459
  "name": "texto",
@@ -2888,6 +4532,33 @@
2888
4532
  "mensagens_uso": {
2889
4533
  "default": ["📌 Use: /figurinhatextopisca seu texto", "💡 Exemplo: /stb bom dia seus lindos -verde"]
2890
4534
  },
4535
+ "resumo_usuario": "Gera figurinha animada de texto piscante com até 80 caracteres (máx. 4 linhas), usando <prefix>figurinhatextopisca ou <prefix>stb.",
4536
+ "quando_usar": ["Destacar mensagens com texto piscante em chats", "Promover ofertas rápidas ou lembretes", "Saudar ou chamar atenção com uma frase curta", "Transformar seu texto pronto em figurinha para envio rápido"],
4537
+ "exemplos_reais": [
4538
+ {
4539
+ "situacao": "Promoção rápida com destaque.",
4540
+ "comando": "/figurinhatextopisca Promoção de 50% hoje!",
4541
+ "resposta_esperada": "Figura criada com sucesso.",
4542
+ "variacao": "<prefix>stb Promoção de 50% hoje!"
4543
+ },
4544
+ {
4545
+ "situacao": "Saudação breve.",
4546
+ "comando": "/figurinhatextopisca Olá, bom dia!",
4547
+ "resposta_esperada": "Figura criada com sucesso.",
4548
+ "variacao": "<prefix>stb Olá, bom dia!"
4549
+ },
4550
+ {
4551
+ "situacao": "Lembrete com até 4 linhas.",
4552
+ "comando": "/figurinhatextopisca Lembrete: entrega hoje Confira novidades",
4553
+ "resposta_esperada": "Figura criada com sucesso.",
4554
+ "variacao": "<prefix>stb Lembrete: entrega hoje Confira novidades."
4555
+ }
4556
+ ],
4557
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
4558
+ "erros_comuns_usuario": ["Texto excede 80 caracteres", "Mais de 4 linhas", "Não usar nenhum <prefix> no comando", "Texto vazio", "Texto com caracteres especiais não suportados"],
4559
+ "passos_se_der_erro": ["Verifique o tamanho do texto (≤ 80 caracteres) e o número de linhas (≤ 4).", "Tente novamente usando um dos comandos válidos com o mesmo texto.", "Confirme que você está logado via Google, conforme necessário.", "Se o erro continuar, tente novamente mais tarde ou procure suporte."],
4560
+ "resumo_usuario_origem": "auto_ia_assistida",
4561
+ "resumo_usuario_revisao_pendente": true,
2891
4562
  "arguments": [
2892
4563
  {
2893
4564
  "name": "texto",
@@ -2970,6 +4641,33 @@
2970
4641
  "mensagens_uso": {
2971
4642
  "default": ["/pacote help", "/pacote create meupack", "/pacote list", "/pacote add <pacote>", "/pacote send <pacote>"]
2972
4643
  },
4644
+ "resumo_usuario": "Gerencie packs de figurinhas: criar, listar, adicionar figurinhas e enviar packs para contatos.",
4645
+ "quando_usar": ["Criar um novo pack de figurinhas.", "Ver a lista de packs existentes.", "Adicionar figurinhas a um pack existente.", "Enviar um pack para alguém."],
4646
+ "exemplos_reais": [
4647
+ {
4648
+ "situacao": "Criar um pack de figurinhas.",
4649
+ "comando": "/pacote create meupack",
4650
+ "resposta_esperada": "Pack criado com sucesso.",
4651
+ "variacao": "Use nomes simples, sem aspas. Ex.: meupack."
4652
+ },
4653
+ {
4654
+ "situacao": "Listar todos os packs.",
4655
+ "comando": "/pacote list",
4656
+ "resposta_esperada": "Listagem exibida com todos os packs.",
4657
+ "variacao": "Pode retornar vários nomes; observe a lista completa."
4658
+ },
4659
+ {
4660
+ "situacao": "Adicionar figurinhas a um pack existente.",
4661
+ "comando": "/pacote add meupack",
4662
+ "resposta_esperada": "Figurinhas adicionadas ao pack 'meupack'.",
4663
+ "variacao": "Se houver figurinhas disponíveis, elas são incluídas."
4664
+ }
4665
+ ],
4666
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
4667
+ "erros_comuns_usuario": ["Esquecer de usar o prefixo correto no início do comando.", "Digitar o subcomando errado ou sem o parâmetro necessário.", "Tentar adicionar figurinhas sem indicar o pack ou sem estar logado.", "Tentar enviar sem ter criado ou sem selecionar um pack existente.", "Não estar logado com Google quando o comando exigir login."],
4668
+ "passos_se_der_erro": ["Use <prefix>pacote help para confirmar a sintaxe correta.", "Verifique se o subcomando está entre create, list, add ou send e inclua os parâmetros necessários.", "Confirme que você está logado com Google, conforme exigido.", "Tente novamente após ajustar o comando. Se o erro persistir, copie a mensagem de erro e tente novamente mais tarde.", "Se não resolver, aguarde alguns minutos e procure ajuda com os detalhes do comando executado."],
4669
+ "resumo_usuario_origem": "auto_ia_assistida",
4670
+ "resumo_usuario_revisao_pendente": true,
2973
4671
  "arguments": [
2974
4672
  {
2975
4673
  "name": "subcomando",
@@ -3057,6 +4755,33 @@
3057
4755
  "mensagens_uso": {
3058
4756
  "default": ["📌 Use: /paraimagem (ou /tovideo / /tovid) respondendo a uma figurinha."]
3059
4757
  },
4758
+ "resumo_usuario": "Converte figurinha (sticker) para imagem ou vídeo, para você salvar/usar fora do WhatsApp. Disponível para planos comum e premium.",
4759
+ "quando_usar": ["Quando você recebeu uma figurinha e quer salvá-la como imagem.", "Quando precisa de um vídeo a partir de uma figurinha (quando suportado).", "Quando quer reutilizar a figurinha em outros lugares ou projetos."],
4760
+ "exemplos_reais": [
4761
+ {
4762
+ "situacao": "Você recebeu uma figurinha e quer salvar como imagem.",
4763
+ "comando": "/paraimagem",
4764
+ "resposta_esperada": "A imagem da figurinha é gerada e enviada de volta para você.",
4765
+ "variacao": "paraimagem."
4766
+ },
4767
+ {
4768
+ "situacao": "Precisa de um vídeo da figurinha (quando suportado).",
4769
+ "comando": "/tovideo",
4770
+ "resposta_esperada": "Vídeo da figurinha gerado e enviado.",
4771
+ "variacao": "tovideo."
4772
+ },
4773
+ {
4774
+ "situacao": "Erro ao enviar comando com formato errado.",
4775
+ "comando": "/paraimagem extra",
4776
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
4777
+ "variacao": "erro de formatação."
4778
+ }
4779
+ ],
4780
+ "resposta_esperada": ["Imagem ou vídeo gerado a partir da figurinha enviada (quando disponível).", "Mensagens claras de erro se houver problemas de formato, permissão ou conteúdo."],
4781
+ "erros_comuns_usuario": ["Formato de comando inválido ou sem figurinha na mensagem.", "Não há figurinha na mensagem para converter.", "Falha de login ou permissão inadequada (Google Login necessário).", "Tentativa de usar o comando sem indicar uma figurinha compatível."],
4782
+ "passos_se_der_erro": ["Confirme que você está logado com Google.", "Envie uma figurinha válida e tente novamente com <prefix>paraimagem, <prefix>tovideo ou <prefix>tovid.", "Verifique se o prefixo do bot está correto.", "Se o problema persistir, peça suporte com print da tela e da mensagem recebida."],
4783
+ "resumo_usuario_origem": "auto_ia_assistida",
4784
+ "resumo_usuario_revisao_pendente": true,
3060
4785
  "arguments": [],
3061
4786
  "responses": {
3062
4787
  "success": "Comando executado com sucesso.",
@@ -3138,6 +4863,33 @@
3138
4863
  "mensagens_uso": {
3139
4864
  "default": ["🎬 *Baixartiktok Downloader*", "Uso: */baixartiktok <link1> [link2 ...]*", "Exemplo: */baixartiktok https://www.baixartiktok.com/@usuario/video/123*"]
3140
4865
  },
4866
+ "resumo_usuario": "Baixe vídeos do TikTok sem marca d'água a partir de URLs, direto no chat.",
4867
+ "quando_usar": ["Quero salvar vídeos do TikTok sem a marca d’água para assistir offline.", "Preciso baixar até 5 vídeos de uma vez.", "Uso rápido: baixar rapidamente sem complicações."],
4868
+ "exemplos_reais": [
4869
+ {
4870
+ "situacao": "Baixar um único vídeo.",
4871
+ "comando": "/baixartiktok https://www.tiktok.com/@usuario/video/12345",
4872
+ "resposta_esperada": "Comando executado com sucesso.",
4873
+ "variacao": "<prefix>tt https://tiktok.com/@usuario/video/12345."
4874
+ },
4875
+ {
4876
+ "situacao": "Baixar até 5 vídeos de uma vez.",
4877
+ "comando": "/tt https://www.tiktok.com/@a/video/1 https://www.tiktok.com/@b/video/2",
4878
+ "resposta_esperada": "Comando executado com sucesso.",
4879
+ "variacao": "<prefix>baixartiktok https://tiktok.com/@a/video/1 https://tiktok.com/@b/video/2."
4880
+ },
4881
+ {
4882
+ "situacao": "Formato de uso inválido.",
4883
+ "comando": "/baixartiktok",
4884
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
4885
+ "variacao": "<prefix>tt <url> <url> extra."
4886
+ }
4887
+ ],
4888
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
4889
+ "erros_comuns_usuario": ["Não incluir URL(s) ou incluir mais de 5 URLs.", "Usar URLs que não são do TikTok.", "Esquecer de colocar o prefixo correto do comando.", "Tentar usar sem conexão estável."],
4890
+ "passos_se_der_erro": ["Confira se inseriu entre 1 e 5 URLs válidas do TikTok.", "Use o formato correto: <prefix>baixartiktok <url> ou <prefix>tt <url1> <url2> ...", "Verifique a sua conexão com a internet.", "Se o erro persistir, tente novamente mais tarde ou contate o suporte."],
4891
+ "resumo_usuario_origem": "auto_ia_assistida",
4892
+ "resumo_usuario_revisao_pendente": true,
3141
4893
  "arguments": [
3142
4894
  {
3143
4895
  "name": "urls",
@@ -3216,6 +4968,33 @@
3216
4968
  "mensagens_uso": {
3217
4969
  "default": ["🖼️ *Citar*", "Use assim:", "*/citar* sua mensagem", "Ou responda uma mensagem com:", "*/citar*"]
3218
4970
  },
4971
+ "resumo_usuario": "Converta texto em uma figurinha no estilo quote para compartilhar citações.",
4972
+ "quando_usar": ["Quando quiser transformar um texto ou mensagem citada em uma figurinha com o estilo 'quote' para compartilhar na conversa.", "Para criar citações rápidas sem digitar outros detalhes, basta digitar o comando com o texto desejado."],
4973
+ "exemplos_reais": [
4974
+ {
4975
+ "situacao": "Criar uma quote simples a partir de um texto próprio.",
4976
+ "comando": "/citar seu texto",
4977
+ "resposta_esperada": "Figura citada criada com sucesso.",
4978
+ "variacao": "Aparece a figurinha com o seu texto formatado como quote."
4979
+ },
4980
+ {
4981
+ "situacao": "Citar uma frase de outro usuário mencionando-o.",
4982
+ "comando": "/qc @usuário a frase citada",
4983
+ "resposta_esperada": "Figura citada criada com sucesso.",
4984
+ "variacao": "A citação é gerada a partir da mensagem citada."
4985
+ },
4986
+ {
4987
+ "situacao": "Erro de formato ao não informar o texto.",
4988
+ "comando": "/citar",
4989
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
4990
+ "variacao": "O sistema pede para incluir o texto após o comando."
4991
+ }
4992
+ ],
4993
+ "resposta_esperada": ["Figura citada criada com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
4994
+ "erros_comuns_usuario": ["Esquecer de informar o texto após o comando <prefix>citar.", "Usar o comando <prefix>qc sem a estrutura correta (falta @usuario ou texto).", "Texto muito longo ou com caracteres não suportados pela figurinha.", "Não estar logado quando o sistema exigir login Google."],
4995
+ "passos_se_der_erro": ["Verifique se você incluiu o texto após o comando.", "Se usar <prefix>qc, confirme a menção @usuário e o conteúdo a citar.", "Garanta que você está conectado com o Google (login requerido) e tente novamente.", "Se o problema persistir, tente novamente após atualizar a página ou contate o suporte."],
4996
+ "resumo_usuario_origem": "auto_ia_assistida",
4997
+ "resumo_usuario_revisao_pendente": true,
3219
4998
  "arguments": [
3220
4999
  {
3221
5000
  "name": "texto",
@@ -3294,6 +5073,33 @@
3294
5073
  "mensagens_uso": {
3295
5074
  "default": ["🎵 Uso: /tocar <link do YouTube ou termo de busca>"]
3296
5075
  },
5076
+ "resumo_usuario": "Tocar reproduz/gera áudio a partir de um link do YouTube ou de um termo de busca. Disponível para todos (não requer premium).",
5077
+ "quando_usar": ["Quando quiser ouvir o áudio de um vídeo do YouTube sem abrir o navegador.", "Quando você tem um link do YouTube e quer ouvir rapidamente no chat.", "Quando prefere buscar por um termo e ouvir o áudio resultante."],
5078
+ "exemplos_reais": [
5079
+ {
5080
+ "situacao": "Usuário tem o link de um vídeo e quer ouvir o áudio.",
5081
+ "comando": "/tocar https://youtube.com/watch?v=EXEMPLO",
5082
+ "resposta_esperada": "Comando executado com sucesso.",
5083
+ "variacao": "<prefix>tocar https://youtu.be/EXEMPLO."
5084
+ },
5085
+ {
5086
+ "situacao": "Usuário quer ouvir áudio a partir de um termo de busca.",
5087
+ "comando": "/tocar melhor trilha sonora de cinema",
5088
+ "resposta_esperada": "Comando executado com sucesso.",
5089
+ "variacao": "<prefix>tocar <termo de busca>."
5090
+ },
5091
+ {
5092
+ "situacao": "Usuário envia o comando sem argumento ou com formato incorreto.",
5093
+ "comando": "/tocar",
5094
+ "resposta_esperada": "Formato de uso inválido. Consulte metodos_de_uso.",
5095
+ "variacao": "<prefix>tocar <link>."
5096
+ }
5097
+ ],
5098
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
5099
+ "erros_comuns_usuario": ["Não fornecer argumento (link ou termo de busca).", "Link não é de vídeo YouTube válido.", "Formato do comando não segue <prefix>tocar <link> ou <prefix>tocar <termo>.", "Não estar logado com a conta Google quando solicitado.", "Conectividade ruim ou serviço temporariamente indisponível."],
5100
+ "passos_se_der_erro": ["Verifique se o comando usa <prefix>tocar <link> ou <prefix>tocar <termo>.", "Copie o link direto do YouTube ou revise o termo de busca.", "Tente novamente em instantes.", "Caso persista, confirme que a conta Google está disponível e tente novamente.", "Se ainda falhar, informe o contexto (link ou termo usado) para suporte."],
5101
+ "resumo_usuario_origem": "auto_ia_assistida",
5102
+ "resumo_usuario_revisao_pendente": true,
3297
5103
  "arguments": [
3298
5104
  {
3299
5105
  "name": "consulta",
@@ -3313,8 +5119,8 @@
3313
5119
  "erro_permissao": "Permissão insuficiente para executar este comando."
3314
5120
  },
3315
5121
  "technical": {
3316
- "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "link ou termo de busca enviado no comando", "metadados de busca/download retornados pelo yt-dlp local", "informacoes de tamanho do arquivo para validacao de limite"],
3317
- "dependencies": ["yt-dlp local (binario gerenciado pelo modulo)", "ffmpeg", "ffprobe"],
5122
+ "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "link ou termo de busca enviado no comando", "metadados de busca/download retornados pelo provedor de midia", "informacoes de tamanho do arquivo para validacao de limite"],
5123
+ "dependencies": ["provedor de midia local (ytmp3 via API)", "ffmpeg", "ffprobe"],
3318
5124
  "side_effects": ["baixa mídia temporária", "envia áudio no chat"],
3319
5125
  "behavior": {
3320
5126
  "type": "argument_driven",
@@ -3372,6 +5178,33 @@
3372
5178
  "mensagens_uso": {
3373
5179
  "default": ["🎬 Uso: /tocarvideo <link do YouTube ou termo de busca>"]
3374
5180
  },
5181
+ "resumo_usuario": "Baixe ou reproduza vídeos do YouTube a partir de um link ou de termos de busca. Requer login Google e assinatura Premium. O conteúdo fica disponível no chat.",
5182
+ "quando_usar": ["Quando você tem um link do YouTube que quer baixar para assistir no chat.", "Quando prefere buscar um vídeo pelo título/termo de busca em vez de colar o link.", "Antes de usar, confirme que você tem acesso à assinatura Premium."],
5183
+ "exemplos_reais": [
5184
+ {
5185
+ "situacao": "Baixar vídeo a partir de um link do YouTube.",
5186
+ "comando": "/tocarvideo https://www.youtube.com/watch?v=dQw4w9WgXcQ",
5187
+ "resposta_esperada": "Comando executado com sucesso.",
5188
+ "variacao": "uso com link direto (alias: playvid)."
5189
+ },
5190
+ {
5191
+ "situacao": "Buscar vídeo pelo termo de busca.",
5192
+ "comando": "/tocarvideo melhor tutorial de edição de fotos",
5193
+ "resposta_esperada": "Comando executado com sucesso.",
5194
+ "variacao": "uso com termo de busca."
5195
+ },
5196
+ {
5197
+ "situacao": "Tentar usar sem Premium.",
5198
+ "comando": "/tocarvideo https://www.youtube.com/watch?v=dQw4w9WgXcQ",
5199
+ "resposta_esperada": "Permissão insuficiente para executar este comando.",
5200
+ "variacao": "sem assinatura Premium."
5201
+ }
5202
+ ],
5203
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
5204
+ "erros_comuns_usuario": ["Esquecer de incluir o link ou termo de busca.", "Enviar link que não é do YouTube.", "Não estar logado com uma conta Google.", "Tentar usar o recurso sem a assinatura Premium."],
5205
+ "passos_se_der_erro": ["Verifique se você está usando o formato correto: <prefix>tocarvideo <link_do_youtube> ou <prefix>tocarvideo <termo>.", "Certifique-se de estar logado com uma conta Google válida.", "Confirme que você possui assinatura Premium ativa para este comando.", "Se o erro persistir, tente novamente após confirmar as informações ou entre em contato com o suporte com a captura de tela do erro."],
5206
+ "resumo_usuario_origem": "auto_ia_assistida",
5207
+ "resumo_usuario_revisao_pendente": true,
3375
5208
  "arguments": [
3376
5209
  {
3377
5210
  "name": "consulta",
@@ -3391,8 +5224,8 @@
3391
5224
  "erro_permissao": "Permissão insuficiente para executar este comando."
3392
5225
  },
3393
5226
  "technical": {
3394
- "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "link ou termo de busca enviado no comando", "metadados de busca/download retornados pelo yt-dlp local", "informacoes de tamanho e formato de video para validacao"],
3395
- "dependencies": ["yt-dlp local (binario gerenciado pelo modulo)", "ffmpeg", "ffprobe"],
5227
+ "collected_data": ["chat_identifier", "sender_identifier", "command_content", "identificador do chat (remoteJid)", "identificador do remetente (senderJid)", "texto do comando e argumentos", "contexto da mensagem (citacao e mencoes, quando existir)", "link ou termo de busca enviado no comando", "metadados de busca/download retornados pelo provedor de midia", "informacoes de tamanho e formato de video para validacao"],
5228
+ "dependencies": ["provedor de midia local (ytmp3 via API)", "ffmpeg", "ffprobe"],
3396
5229
  "side_effects": ["baixa mídia temporária", "envia vídeo no chat"],
3397
5230
  "behavior": {
3398
5231
  "type": "argument_driven",
@@ -3450,8 +5283,8 @@
3450
5283
  "media": false,
3451
5284
  "reply": false
3452
5285
  },
3453
- "premium": false,
3454
- "allowed_plans": ["comum", "premium"],
5286
+ "premium": true,
5287
+ "allowed_plans": ["premium"],
3455
5288
  "rate_limit": null,
3456
5289
  "local_de_uso": ["privado", "grupo"],
3457
5290
  "subcomandos": [],
@@ -3459,6 +5292,21 @@
3459
5292
  "mensagens_uso": {
3460
5293
  "default": ["*/ia* [--audio] sua pergunta", "*/ia* (responda ou envie uma imagem com legenda)", "Opções:", "--audio | --texto", "--detail low | high | auto", "Exemplo:", "*/ia* Explique como funciona a fotossíntese.", "*/ia* --audio Resuma a imagem."]
3461
5294
  },
5295
+ "resumo_usuario": "Permite fazer perguntas à IA diretamente pelo chat, com opção de ouvir a resposta em áudio. Ideal para respostas rápidas, explicações simples ou conteúdos curtos.",
5296
+ "quando_usar": ["Quando quiser uma resposta direta da IA para uma pergunta simples.", "Quando desejar a resposta em áudio (opção disponível).", "Quando houver contexto com mídia para a IA considerar na resposta."],
5297
+ "exemplos_reais": [
5298
+ {
5299
+ "situacao": "Pergunta rápida sobre fato.",
5300
+ "comando": "/ia qual é a capital da França",
5301
+ "resposta_esperada": "Paris.",
5302
+ "variacao": "variante com áudio: <prefix>ia --audio qual é a capital da França; variante com alias: <prefix>cat qual é a capital da França."
5303
+ }
5304
+ ],
5305
+ "resposta_esperada": ["Resposta direta da IA conforme a pergunta; se áudio foi solicitado, exibe também o áudio correspondente."],
5306
+ "erros_comuns_usuario": ["Esquecer de usar o prefixo correto (<prefix>).", "Usar o formato de uso errado ou ignorar os métodos de uso.", "Tentar usar o recurso de áudio sem ter acesso necessário (premium).", "Fazer perguntas vagas ou sem contexto suficiente.", "Não especificar claramente o que precisa na pergunta."],
5307
+ "passos_se_der_erro": ["Verifique se o comando está no formato certo: <prefix>ia sua pergunta.", "Se pedir áudio, confirme que o seu plano permite áudio (premium).", "Corrija o texto da pergunta e tente novamente: <prefix>ia sua pergunta", "Caso o erro persista, tente a versão com alias: <prefix>cat sua pergunta", "Se precisar, procure ajuda para confirmar detalhes da sua assinatura ou suporte do serviço"],
5308
+ "resumo_usuario_origem": "auto_ia_assistida",
5309
+ "resumo_usuario_revisao_pendente": true,
3462
5310
  "arguments": [
3463
5311
  {
3464
5312
  "name": "prompt",
@@ -3545,6 +5393,33 @@
3545
5393
  "mensagens_uso": {
3546
5394
  "default": ["*/iaimagem* seu prompt", "*/iaimagem* (responda uma imagem com legenda para editar)", "Opções:", "--size 1024x1024 | 1024x1536 | 1536x1024 | auto", "--quality low | medium | high | auto", "--format png | jpeg | webp", "--background transparent | opaque | auto", "--compression 0-100", "Exemplo:", "*/iaimagem* --size 1536x1024 Um gato astronauta em aquarela."]
3547
5395
  },
5396
+ "resumo_usuario": "Gerar ou editar imagens com IA a partir de um prompt via <prefix>iaimagem. Você pode ajustar o tamanho com --size, escolher qualidade e formato. Algumas funções são Premium.",
5397
+ "quando_usar": ["Quero criar uma imagem a partir de uma descrição simples.", "Quero definir o tamanho da imagem (por exemplo, 1024x1024 ou 1536x1024).", "Quero escolher qualidade ou formato de saída (png, jpeg, webp).", "Preciso de recursos avançados que exigem assinatura Premium."],
5398
+ "exemplos_reais": [
5399
+ {
5400
+ "situacao": "Gerar imagem simples a partir do prompt.",
5401
+ "comando": "/iaimagem pôr do sol sobre o mar",
5402
+ "resposta_esperada": "Imagem gerada com sucesso.",
5403
+ "variacao": "sem --size para usar o tamanho padrão."
5404
+ },
5405
+ {
5406
+ "situacao": "Gerar imagem com tamanho específico.",
5407
+ "comando": "/iaimagem --size 1536x1024 cidade futurista ao entardecer",
5408
+ "resposta_esperada": "Imagem gerada com sucesso.",
5409
+ "variacao": "inclui --size 1536x1024."
5410
+ },
5411
+ {
5412
+ "situacao": "Gerar imagem com qualidade alta (Premium).",
5413
+ "comando": "/iaimagem --size 1024x1024 --quality high retrato iluminado",
5414
+ "resposta_esperada": "Imagem gerada com sucesso.",
5415
+ "variacao": "requer assinatura Premium."
5416
+ }
5417
+ ],
5418
+ "resposta_esperada": ["Imagem gerada com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
5419
+ "erros_comuns_usuario": ["Esquecer de fornecer um prompt descritivo", "Usar tamanho ou formato não suportado", "Não ter acesso Premium quando o recurso exigir assinatura", "Não estar logado (Google Login necessário quando requerido)"],
5420
+ "passos_se_der_erro": ["Copie o comando com o <prefix> correto e tente novamente", "Inclua um prompt claro que descreva a imagem desejada", "Se usar --size, escolha entre 1024x1024, 1024x1536 ou 1536x1024", "Defina --format (png|jpeg|webp) e --quality (auto|low|medium|high) se necessário", "Verifique se você tem a assinatura Premium para recursos avançados"],
5421
+ "resumo_usuario_origem": "auto_ia_assistida",
5422
+ "resumo_usuario_revisao_pendente": true,
3548
5423
  "arguments": [
3549
5424
  {
3550
5425
  "name": "prompt",
@@ -3647,6 +5522,33 @@
3647
5522
  "mensagens_uso": {
3648
5523
  "default": ["*/pergunteia* seu novo prompt", "Para voltar ao padrão:", "*/pergunteia reset*"]
3649
5524
  },
5525
+ "resumo_usuario": "Defina ou redefina o seu prompt personalizado da IA. Envie o conteúdo desejado ou use reset para voltar ao padrão. Após o envio, a IA responderá conforme o prompt configurado.",
5526
+ "quando_usar": ["Quero orientar a IA para um estilo específico de respostas (tom, foco, formato).", "Preciso que as respostas sigam um conjunto de instruções definidas (ex.: curto, passo a passo, com exemplos).", "Quero limpar o prompt atual e voltar ao comportamento padrão da IA."],
5527
+ "exemplos_reais": [
5528
+ {
5529
+ "situacao": "Definir respostas objetivas para estudo em ciências.",
5530
+ "comando": "/pergunteia novo prompt Responda resumidamente com 3 fatos-chave sobre cada tema.",
5531
+ "resposta_esperada": "Comando executado com sucesso.",
5532
+ "variacao": "Tom direto, menos detalhes, foco no essencial."
5533
+ },
5534
+ {
5535
+ "situacao": "Resetar o prompt para o comportamento padrão.",
5536
+ "comando": "/pergunteia reset",
5537
+ "resposta_esperada": "Comando executado com sucesso.",
5538
+ "variacao": "Limpeza completa do prompt atual."
5539
+ },
5540
+ {
5541
+ "situacao": "Configurar tom formal para atendimento.",
5542
+ "comando": "/pergunteia novo prompt Responda de forma formal, com passos práticos e exemplos quando apropriado.",
5543
+ "resposta_esperada": "Comando executado com sucesso.",
5544
+ "variacao": "Tom profissional, orientado a ações."
5545
+ }
5546
+ ],
5547
+ "resposta_esperada": ["Ao executar um comando válido, a IA atualiza o prompt conforme informado e responde de acordo com o novo prompt. Em caso de sucesso, costuma aparecer: 'Comando executado com sucesso.'"],
5548
+ "erros_comuns_usuario": ["Esquecer de incluir o texto do prompt após o comando <prefix>pergunteia novo prompt.", "Não fechar aspas ou usar formatação inadequada no conteúdo do prompt.", "Não usar o prefix correto ou digitar o comando em lugar errado.", "Tentar usar o reset sem entender o impacto (volta ao comportamento padrão).", "Definir um prompt vago ou ambíguo que não orienta a IA de forma clara."],
5549
+ "passos_se_der_erro": ["Verifique se o comando segue o formato: '<prefix>pergunteia novo prompt <texto>' ou '<prefix>pergunteia reset'.", "Confirme que você está logado com Google Login, conforme exigido.", "Tente novamente com um prompt simples para confirmar funcionamento.", "Se retornar 'Formato de uso inválido', ajuste o comando para o formato correto e tente novamente.", "Se aparecer 'Permissão insuficiente', confirme se você tem acesso necessário ou peça ao admin para liberar."],
5550
+ "resumo_usuario_origem": "auto_ia_assistida",
5551
+ "resumo_usuario_revisao_pendente": true,
3650
5552
  "arguments": [
3651
5553
  {
3652
5554
  "name": "conteudo",
@@ -3734,6 +5636,33 @@
3734
5636
  "mensagens_uso": {
3735
5637
  "default": ["Formato de uso:", "/dado", "/dado <lados (2-1000)>", "/dice <lados (2-1000)>"]
3736
5638
  },
5639
+ "resumo_usuario": "Rola um dado com número de lados opcional. Se não informar, usa 6. Use <prefix>dado, <prefix>dado <lados> ou <prefix>dice <lados> para obter um resultado entre 1 e o número de lados (até 1000).",
5640
+ "quando_usar": ["Precisa de um número aleatório para jogos de tabuleiro, RPG ou simulações.", "Quero um dado específico de lados para um desafio ou teste.", "Vou jogar com dados com mais de 6 lados (até 1000)."],
5641
+ "exemplos_reais": [
5642
+ {
5643
+ "situacao": "Rolar dado padrão (6 lados).",
5644
+ "comando": "/dado",
5645
+ "resposta_esperada": "Você rolou um dado de 6 lados: 4.",
5646
+ "variacao": "Pode também usar <prefix>dado para o mesmo resultado."
5647
+ },
5648
+ {
5649
+ "situacao": "Rolar dado de 20 lados.",
5650
+ "comando": "<prefix)dado 20",
5651
+ "resposta_esperada": "Você rolou um dado de 20 lados: 13.",
5652
+ "variacao": "ou <prefix>dice 20."
5653
+ },
5654
+ {
5655
+ "situacao": "Rolar dado de 100 lados.",
5656
+ "comando": "/dice 100",
5657
+ "resposta_esperada": "Você rolou um dado de 100 lados: 87.",
5658
+ "variacao": "ou <prefix>dado 100."
5659
+ }
5660
+ ],
5661
+ "resposta_esperada": ["Resultado do dado: <valor>", "Você rolou um dado de <lados> lados: <valor>"],
5662
+ "erros_comuns_usuario": ["Formato de uso inválido. Use um dos formatos: <prefix>dado, <prefix>dado <lados> ou <prefix>dice <lados>.", "O número de lados precisa estar entre 2 e 1000.", "Informar um valor não numérico ou caracteres.", "Esquecer de incluir o <prefix> ao digitar o comando."],
5663
+ "passos_se_der_erro": ["Leia a mensagem de erro com atenção e ajuste o comando para um formato válido.", "Verifique se o valor de lados está entre 2 e 1000 quando informado.", "Use exatamente um dos formatos: <prefix>dado, <prefix>dado <lados> ou <prefix>dice <lados>.", "Se o problema persistir, confirme que você está logado com Google e tente novamente.", "Se ainda assim não funcionar, peça ajuda ao suporte."],
5664
+ "resumo_usuario_origem": "auto_ia_assistida",
5665
+ "resumo_usuario_revisao_pendente": true,
3737
5666
  "arguments": [
3738
5667
  {
3739
5668
  "name": "lados",
@@ -3812,6 +5741,33 @@
3812
5741
  "mensagens_uso": {
3813
5742
  "default": ["/pokemon help", "/pokemon start", "/pokemon explorar", "/pokemon atacar 1"]
3814
5743
  },
5744
+ "resumo_usuario": "Comando principal do RPG Pokemon, usado para explorar, batalhar, comprar itens e socializar dentro do jogo pelo chat.",
5745
+ "quando_usar": ["Iniciar a aventura: <prefix>pokemon start.", "Explorar o mapa: <prefix>pokemon explorar.", "Batalhar contra inimigos: <prefix>pokemon atacar <id>.", "Obter ajuda ou ver os métodos de uso: <prefix>pokemon help."],
5746
+ "exemplos_reais": [
5747
+ {
5748
+ "situacao": "Novo jogador quer começar a aventura.",
5749
+ "comando": "/pokemon start",
5750
+ "resposta_esperada": "Comando executado com sucesso.",
5751
+ "variacao": "Prefixo pode variar (ex.: ! ou /)."
5752
+ },
5753
+ {
5754
+ "situacao": "Explorar o mapa atual.",
5755
+ "comando": "/pokemon explorar",
5756
+ "resposta_esperada": "Comando executado com sucesso.",
5757
+ "variacao": "Se houver área bloqueada, o jogo mostrará informações da área atual."
5758
+ },
5759
+ {
5760
+ "situacao": "Iniciar batalha contra o oponente 1.",
5761
+ "comando": "/pokemon atacar 1",
5762
+ "resposta_esperada": "Comando executado com sucesso.",
5763
+ "variacao": "O número pode variar conforme os oponentes disponíveis."
5764
+ }
5765
+ ],
5766
+ "resposta_esperada": ["Comando executado com sucesso.", "Formato de uso inválido. Consulte metodos_de_uso.", "Permissão insuficiente para executar este comando."],
5767
+ "erros_comuns_usuario": ["Esquecer de informar o subcomando obrigatório (ação).", "Usar um subcomando que não existe ou está incorreto.", "Não estar logado com Google antes de usar o comando.", "Formato incorreto ao enviar parâmetros (ex.: <prefix>pokemon atacar sem o id).", "Tentar usar comandos antes de iniciar o jogo com <prefix>pokemon start."],
5768
+ "passos_se_der_erro": ["Leia a mensagem de erro e verifique se o uso está correto consultando <prefix>pokemon help.", "Confira se o subcomando digitado é válido e se o <prefix> está correto.", "Tente novamente com o formato correto, por exemplo <prefix>pokemon start.", "Certifique-se de estar logado com Google, já que é exigido.", "Se o problema continuar, reporte o contexto do erro para o suporte."],
5769
+ "resumo_usuario_origem": "auto_ia_assistida",
5770
+ "resumo_usuario_revisao_pendente": true,
3815
5771
  "arguments": [
3816
5772
  {
3817
5773
  "name": "acao",
@@ -3907,6 +5863,33 @@
3907
5863
  "mensagens_uso": {
3908
5864
  "default": ["/classificacao", "/rank", "/top5"]
3909
5865
  },
5866
+ "resumo_usuario": "Mostra os 5 membros mais ativos do grupo. Não requer Premium.",
5867
+ "quando_usar": ["Quando quiser ver quem participa mais no grupo.", "Antes de uma discussão ou decisão, para identificar os participantes mais ativos.", "Para comparar participação entre diferentes períodos."],
5868
+ "exemplos_reais": [
5869
+ {
5870
+ "situacao": "Quero ver quem são os 5 membros mais ativos no grupo agora.",
5871
+ "comando": "/classificacao",
5872
+ "resposta_esperada": "Top 5 ativos no grupo: 1) @usuario1, 2) @usuario2, 3) @usuario3, 4) @usuario4, 5) @usuario5.",
5873
+ "variacao": "<prefix>rank."
5874
+ },
5875
+ {
5876
+ "situacao": "Quero o mesmo resultado usando outro atalho.",
5877
+ "comando": "/rank",
5878
+ "resposta_esperada": "Top 5 ativos no grupo: 1) @usuario1, 2) @usuario2, 3) @usuario3, 4) @usuario4, 5) @usuario5.",
5879
+ "variacao": "<prefix>classificacao."
5880
+ },
5881
+ {
5882
+ "situacao": "Outra forma rápida de ver o top 5.",
5883
+ "comando": "/top5",
5884
+ "resposta_esperada": "Top 5 ativos no grupo: 1) @usuario1, 2) @usuario2, 3) @usuario3, 4) @usuario4, 5) @usuario5.",
5885
+ "variacao": "<prefix>classificacao."
5886
+ }
5887
+ ],
5888
+ "resposta_esperada": ["A lista com os 5 membros mais ativos no grupo é exibida."],
5889
+ "erros_comuns_usuario": ["Não está em um grupo ao enviar o comando.", "Ainda não fez login com Google no app.", "Formato do comando incorreto; use um dos métodos de uso: <prefix>classificacao, <prefix>rank, <prefix>top5.", "O grupo não possui participantes ativos suficientes."],
5890
+ "passos_se_der_erro": ["Confira se você está dentro de um grupo.", "Verifique se você está logado com Google.", "Envie o comando correto: <prefix>classificacao, <prefix>rank ou <prefix>top5.", "Tente novamente em poucos segundos.", "Se o erro persistir, peça para o admin revisar as permissões."],
5891
+ "resumo_usuario_origem": "auto_ia_assistida",
5892
+ "resumo_usuario_revisao_pendente": true,
3910
5893
  "arguments": [],
3911
5894
  "responses": {
3912
5895
  "success": "Comando executado com sucesso.",
@@ -3976,6 +5959,33 @@
3976
5959
  "mensagens_uso": {
3977
5960
  "default": ["/classificacaoglobal", "/globalrank"]
3978
5961
  },
5962
+ "resumo_usuario": "Mostra o top 5 global de atividade. Use para ver quem lidera a atividade mundial e comparar com seu desempenho.",
5963
+ "quando_usar": ["Quero saber quem está no topo da atividade global agora.", "Quero comparar meu desempenho com o ranking global.", "Preciso de uma visão rápida do ranking mundial sem dados locais."],
5964
+ "exemplos_reais": [
5965
+ {
5966
+ "situacao": "Quero ver o ranking global rapidamente.",
5967
+ "comando": "/classificacaoglobal",
5968
+ "resposta_esperada": "Top 5 global de atividade exibidos com nomes e pontos. Ex.: 1) Nome - 980 pts, 2) Nome2 - 950 pts, ...",
5969
+ "variacao": "<prefix>globalrank."
5970
+ },
5971
+ {
5972
+ "situacao": "Quero usar a outra forma de comando para o ranking.",
5973
+ "comando": "/globalrank",
5974
+ "resposta_esperada": "Top 5 global de atividade exibidos com nomes e pontos.",
5975
+ "variacao": "<prefix>classificacaoglobal."
5976
+ },
5977
+ {
5978
+ "situacao": "Não estou logado com Google e tento ver o ranking.",
5979
+ "comando": "/classificacaoglobal",
5980
+ "resposta_esperada": "Você precisa estar logado com sua conta Google para ver o ranking global.",
5981
+ "variacao": "Sem login Google."
5982
+ }
5983
+ ],
5984
+ "resposta_esperada": ["Top 5 global de atividade exibidos com nomes e pontos.", "Se não houver dados, será exibida mensagem informando a ausência de resultados para o ranking global."],
5985
+ "erros_comuns_usuario": ["Esquecer o prefixo no início do comando.", "Digitar o comando com espaços extras ou caracteres não reconhecidos.", "Tentar usar sem estar logado com Google (googleLogin requerido).", "Usar uma forma de comando incorreta ou digitá-lo com erro de grafia."],
5986
+ "passos_se_der_erro": ["Confira se está logado com a conta Google ligada.", "Digite novamente um dos comandos válidos: <prefix>classificacaoglobal ou <prefix>globalrank.", "Verifique se não há espaço extra ou caracteres estranhos no comando.", "Se o problema persistir, peça ajuda e informe a mensagem de erro e o comando utilizado."],
5987
+ "resumo_usuario_origem": "auto_ia_assistida",
5988
+ "resumo_usuario_revisao_pendente": true,
3979
5989
  "arguments": [],
3980
5990
  "responses": {
3981
5991
  "success": "Comando executado com sucesso.",
@@ -4054,6 +6064,33 @@
4054
6064
  "mensagens_uso": {
4055
6065
  "default": ["/waifu <categoria>", "/wp neko"]
4056
6066
  },
6067
+ "resumo_usuario": "Guia rápido para usar o comando waifu e receber uma imagem de anime (SFW) da categoria escolhida.",
6068
+ "quando_usar": ["Quando você quer uma imagem de anime específica (ex.: neko, waifu) sem enviar outras perguntas."],
6069
+ "exemplos_reais": [
6070
+ {
6071
+ "situacao": "Quero uma imagem de neko.",
6072
+ "comando": "/waifu neko",
6073
+ "resposta_esperada": "✅ Imagem enviada com sucesso! Exemplo de próximo pedido: <prefix>waifu hug.",
6074
+ "variacao": "Usando alias: <prefix>wp neko."
6075
+ },
6076
+ {
6077
+ "situacao": "Não informei a categoria.",
6078
+ "comando": "/waifu",
6079
+ "resposta_esperada": "❗ Categoria inválida ou ausente. Exemplos: <prefix>waifu neko | <prefix>wp waifu Veja a lista completa em <prefix>waifuajuda.",
6080
+ "variacao": "Tente: <prefix>waifu neko."
6081
+ },
6082
+ {
6083
+ "situacao": "Categoria não suportada.",
6084
+ "comando": "/waifu dragon",
6085
+ "resposta_esperada": "❗ Categoria inválida ou ausente. Exemplos: <prefix>waifu neko | <prefix>wp waifu Veja a lista completa em <prefix>waifuajuda.",
6086
+ "variacao": "Tente uma categoria comum como neko ou waifu."
6087
+ }
6088
+ ],
6089
+ "resposta_esperada": ["O bot envia uma imagem de anime da categoria solicitada (SFW)."],
6090
+ "erros_comuns_usuario": ["Esquecer de indicar a categoria", "Usar uma categoria não suportada", "Usar o comando sem o prefixo quando necessário", "Erro de conexão temporário"],
6091
+ "passos_se_der_erro": ["1. Verifique se digitou a categoria corretamente. 2. Use o formato com prefixo: <prefix>waifu <categoria> ou <prefix>wp <categoria>. 3. Se receber erro de categoria, peça a lista de categorias com <prefix>waifuajuda e es"],
6092
+ "resumo_usuario_origem": "auto_ia_assistida",
6093
+ "resumo_usuario_revisao_pendente": true,
4057
6094
  "arguments": [
4058
6095
  {
4059
6096
  "name": "categoria",
@@ -4132,6 +6169,33 @@
4132
6169
  "mensagens_uso": {
4133
6170
  "default": ["/waifuajuda"]
4134
6171
  },
6172
+ "resumo_usuario": "Guia rápido das categorias de fotos anime que posso enviar. Mostra todas as opções disponíveis e como usar o comando. Não é necessário Premium; funciona para planos comum e premium.",
6173
+ "quando_usar": ["Quando você quer conhecer todas as categorias de fotos disponíveis sem digitar argumentos", "Quando precisa confirmar que o comando não aceita parâmetros", "Quando desejar usar o alias wppicshelp para abrir o guia rapidamente"],
6174
+ "exemplos_reais": [
6175
+ {
6176
+ "situacao": "Usuário quer abrir o guia rapidamente com o prefix.",
6177
+ "comando": "/waifuajuda",
6178
+ "resposta_esperada": "Guia de categorias exibido. Exemplo: <prefix>waifu neko.",
6179
+ "variacao": "uso direto com <prefix>."
6180
+ },
6181
+ {
6182
+ "situacao": "Usuário prefere usar o alias.",
6183
+ "comando": "wppicshelp",
6184
+ "resposta_esperada": "Guia de categorias exibido. Observação: você pode usar <prefix>waifu neko para abrir uma categoria específica.",
6185
+ "variacao": "alias."
6186
+ },
6187
+ {
6188
+ "situacao": "Usuário está em contexto privado ou grupo permitido.",
6189
+ "comando": "/waifuajuda",
6190
+ "resposta_esperada": "Guia pronto. Veja as categorias disponíveis e escolha uma: neko, shinobu, etc.",
6191
+ "variacao": "contexto privado ou grupo permitido."
6192
+ }
6193
+ ],
6194
+ "resposta_esperada": ["Guia de categorias exibido com sucesso. Use <prefix>waifu neko para ver fotos de uma categoria específica."],
6195
+ "erros_comuns_usuario": ["Tentar usar o comando com argumentos, quando ele não exige nenhum.", "Esquecer de incluir o prefixo, por exemplo usar 'waifuajuda' sem o prefixo.", "Tentar usar em contexto onde o guia não pode ser exibido (contextos não suportados)."],
6196
+ "passos_se_der_erro": ["Verifique se o comando está sendo usado em um contexto permitido (privado ou grupo permitido).", "Tente novamente com o prefix correto: <prefix>waifuajuda.", "Se o guia não aparecer, tente novamente mais tarde ou entre em contato com o suporte."],
6197
+ "resumo_usuario_origem": "auto_ia_assistida",
6198
+ "resumo_usuario_revisao_pendente": true,
4135
6199
  "arguments": [],
4136
6200
  "responses": {
4137
6201
  "success": "✅ Pedido recebido! Aqui vai sua imagem.\nDica: você pode pedir outra categoria no próximo comando (ex.: <prefix>waifu neko).",
@@ -4201,6 +6265,33 @@
4201
6265
  "mensagens_uso": {
4202
6266
  "default": ["/waifunsfw <categoria>", "/wpnsfw waifu"]
4203
6267
  },
6268
+ "resumo_usuario": "Envie imagens NSFW de waifus em grupos autorizados. Requer Premium e NSFW ativo. Use <prefix>waifunsfw <categoria> ou <prefix>wpnsfw <waifu>.",
6269
+ "quando_usar": ["Quando o grupo tiver NSFW ativo e você for assinante Premium.", "Para solicitar uma imagem NSFW de uma categoria válida (ex.: neko, waifu, etc.).", "Para confirmar qual variedade de conteúdo NSFW está disponível no momento."],
6270
+ "exemplos_reais": [
6271
+ {
6272
+ "situacao": "Grupo com NSFW ativo e usuário Premium solicita neko.",
6273
+ "comando": "/waifunsfw neko",
6274
+ "resposta_esperada": "🔞 Imagem NSFW enviada. Exemplo de próximo pedido: <prefix>waifunsfw neko.",
6275
+ "variacao": "neko."
6276
+ },
6277
+ {
6278
+ "situacao": "Grupo sem Premium ou NSFW ativo.",
6279
+ "comando": "/waifunsfw neko",
6280
+ "resposta_esperada": "🔒 Este comando NSFW exige acesso Premium. Em grupos, também é preciso NSFW ativo com <prefix>nsfw on.",
6281
+ "variacao": "premium_required."
6282
+ },
6283
+ {
6284
+ "situacao": "Categoria NSFW inválida.",
6285
+ "comando": "/waifunsfw manga",
6286
+ "resposta_esperada": "❗ Categoria NSFW inválida ou ausente. Exemplos: <prefix>waifunsfw waifu | <prefix>wpnsfw neko Veja opções em <prefix>waifuajuda.",
6287
+ "variacao": "categoria_invalida."
6288
+ }
6289
+ ],
6290
+ "resposta_esperada": ["🔞 Imagem NSFW enviada. Exemplo de próximo pedido: <prefix>waifunsfw neko", "❗ Categoria NSFW inválida ou ausente. Exemplos: <prefix>waifunsfw waifu | <prefix>wpnsfw neko Veja opções em <prefix>waifuajuda.", "🔒 Este comando NSFW exige acesso Premium. Em grupos, também é preciso NSFW ativo com <prefix>nsfw on."],
6291
+ "erros_comuns_usuario": ["Não informar a categoria NSFW", "Categoria informada não é suportada", "NSFW não está ativo no grupo", "Usuário não possui assinatura Premium"],
6292
+ "passos_se_der_erro": ["Verifique se o NSFW está ativo no grupo com <prefix>nsfw on e peça ao admin para ativar, se necessário.", "Confirme que você possui uma assinatura Premium válida para usar o comando.", "Certifique-se de digitar uma categoria NSFW suportada, por exemplo neko, waifu, etc.", "Tente novamente com uma categoria diferente ou em outro momento; se o problema persistir, peça ajuda ao administrador do grupo."],
6293
+ "resumo_usuario_origem": "auto_ia_assistida",
6294
+ "resumo_usuario_revisao_pendente": true,
4204
6295
  "arguments": [
4205
6296
  {
4206
6297
  "name": "categoria",
@@ -4288,6 +6379,33 @@
4288
6379
  "mensagens_uso": {
4289
6380
  "default": ["Formato de uso:", "/perfil perfil <id|telefone>", "Dica:", "• Você pode mencionar alguém.", "• Ou responder a mensagem do usuário desejado."]
4290
6381
  },
6382
+ "resumo_usuario": "Consulta o perfil e estatísticas de um usuário. Exibe dados básicos como nome, bio, foto e métricas rápidas.",
6383
+ "quando_usar": ["Precisa ver informações de alguém no chat.", "Quer confirmar dados de um usuário pelo id, telefone ou menção.", "Antes de agir com base no perfil, verifique as informações obtidas."],
6384
+ "exemplos_reais": [
6385
+ {
6386
+ "situacao": "Ver o próprio perfil.",
6387
+ "comando": "/perfil perfil",
6388
+ "resposta_esperada": "Perfil exibido com dados básicos do seu usuário.",
6389
+ "variacao": "perfil."
6390
+ },
6391
+ {
6392
+ "situacao": "Consultar perfil por ID.",
6393
+ "comando": "/perfil perfil 12345",
6394
+ "resposta_esperada": "Perfil do usuário 12345 exibido.",
6395
+ "variacao": "<prefix>perfil perfil 12345."
6396
+ },
6397
+ {
6398
+ "situacao": "Consultar perfil por @contato.",
6399
+ "comando": "/usuario perfil @joana",
6400
+ "resposta_esperada": "Perfil do contato exibido.",
6401
+ "variacao": "<prefix>usuario perfil @joana."
6402
+ }
6403
+ ],
6404
+ "resposta_esperada": ["Perfil exibido com sucesso com informações básicas e estatísticas.", "Erro: usuário não encontrado ou alvo inválido."],
6405
+ "erros_comuns_usuario": ["Formato de uso inválido. Use <prefix>perfil perfil [alvo].", "Alvo ausente ou inválido (id, telefone ou menção).", "Não autorizado: verifique se está logado com sua conta Google."],
6406
+ "passos_se_der_erro": ["Conferir formato do comando: <prefix>perfil perfil [alvo].", "Verificar o alvo informado (id, telefone ou menção).", "Garantir login com conta Google.", "Se o erro persistir, tente novamente mais tarde ou contate o suporte com o comando utilizado."],
6407
+ "resumo_usuario_origem": "auto_ia_assistida",
6408
+ "resumo_usuario_revisao_pendente": true,
4291
6409
  "arguments": [
4292
6410
  {
4293
6411
  "name": "subcomando",
@@ -4364,7 +6482,7 @@
4364
6482
  "module_label": "menuModule",
4365
6483
  "category": "menu",
4366
6484
  "category_label": "Menu e Navegação",
4367
- "descricao": "Exibe o menu principal ou um menu por categoria.",
6485
+ "descricao": "Exibe o menu dinâmico de comandos (com destaques por uso), categorias e atalhos para catálogo completo.",
4368
6486
  "requirements": {
4369
6487
  "group": false,
4370
6488
  "admin": false,
@@ -4378,11 +6496,41 @@
4378
6496
  "allowed_plans": ["comum", "premium"],
4379
6497
  "rate_limit": null,
4380
6498
  "local_de_uso": ["privado", "grupo"],
4381
- "subcomandos": ["figurinhas", "sticker", "stickers", "midia", "media", "quote", "quotes", "ia", "ai", "stats", "estatisticas", "anime"],
4382
- "metodos_de_uso": ["/menu", "/menu anime", "/menu stats"],
6499
+ "subcomandos": ["top", "todos", "categoria", "figurinhas", "sticker", "stickers", "midia", "media", "quote", "quotes", "ia", "ai", "stats", "estatisticas", "anime"],
6500
+ "metodos_de_uso": ["/menu", "/menu top", "/menu categoria <nome>", "/menu todos", "/menu anime", "/menu stats"],
4383
6501
  "mensagens_uso": {
4384
- "default": ["/menu", "/menu anime", "/menu stats"]
4385
- },
6502
+ "default": ["/menu", "/menu top", "/menu categoria <nome>", "/menu todos", "/menu anime", "/menu stats"],
6503
+ "category": ["/menu categoria <nome>"],
6504
+ "top": ["/menu top"],
6505
+ "all": ["/menu todos"]
6506
+ },
6507
+ "resumo_usuario": "Exibe um menu dinâmico com comandos em destaque por uso, navegação por categoria e acesso ao catálogo completo do site.",
6508
+ "quando_usar": ["Quando quiser descobrir os comandos mais usados sem receber uma lista gigante.", "Quando precisar navegar por comandos de uma categoria específica.", "Quando quiser abrir rapidamente o catálogo completo no site."],
6509
+ "exemplos_reais": [
6510
+ {
6511
+ "situacao": "Usuário quer ver os comandos mais usados.",
6512
+ "comando": "/menu top",
6513
+ "resposta_esperada": "Lista com comandos em destaque por uso recente.",
6514
+ "variacao": "ranking por uso."
6515
+ },
6516
+ {
6517
+ "situacao": "Usuário quer comandos da categoria admin.",
6518
+ "comando": "/menu categoria admin",
6519
+ "resposta_esperada": "Lista de comandos da categoria solicitada.",
6520
+ "variacao": "filtro por categoria."
6521
+ },
6522
+ {
6523
+ "situacao": "Usuário quer ver o catálogo completo.",
6524
+ "comando": "/menu todos",
6525
+ "resposta_esperada": "Visão completa dos comandos por categoria e link do site.",
6526
+ "variacao": "catálogo completo."
6527
+ }
6528
+ ],
6529
+ "resposta_esperada": ["Menu carregado com as opções disponíveis.", "Menu da categoria exibido com opções correspondentes.", "Menu de estatísticas exibido com opções relevantes."],
6530
+ "erros_comuns_usuario": ["Formato de uso incorreto. Use <prefix>menu ou <prefix>menu <categoria>.", "Categoria digitada não existe ou está incorreta.", "Não estar logado com Google quando o comando exigir autenticação.", "Digitar espaços extras ou caracteres não suportados na sintaxe do comando."],
6531
+ "passos_se_der_erro": ["Verifique o formato: <prefix>menu ou <prefix>menu <categoria>.", "Confirme se a categoria informada existe entre as opções válidas.", "Assegure-se de estar logado com Google, se necessário.", "Tente novamente; se persistir, envie uma captura de tela do erro para apoio."],
6532
+ "resumo_usuario_origem": "auto_ia_assistida",
6533
+ "resumo_usuario_revisao_pendente": true,
4386
6534
  "arguments": [
4387
6535
  {
4388
6536
  "name": "categoria",
@@ -4407,7 +6555,7 @@
4407
6555
  "side_effects": ["envia menu no chat"],
4408
6556
  "behavior": {
4409
6557
  "type": "subcommand",
4410
- "allowed_actions": ["figurinhas", "sticker", "stickers", "midia", "media", "quote", "quotes", "ia", "ai", "stats", "estatisticas", "anime"]
6558
+ "allowed_actions": ["top", "todos", "categoria", "figurinhas", "sticker", "stickers", "midia", "media", "quote", "quotes", "ia", "ai", "stats", "estatisticas", "anime"]
4411
6559
  },
4412
6560
  "handler": {
4413
6561
  "file": "menus.js",
@@ -4470,6 +6618,33 @@
4470
6618
  "mensagens_uso": {
4471
6619
  "default": ["/statusbot"]
4472
6620
  },
6621
+ "resumo_usuario": "Exibe latência e estado de saúde do servidor com um comando simples. Não requer Premium.",
6622
+ "quando_usar": ["Antes de iniciar tarefas importantes, para confirmar se o servidor está respondendo.", "Após perceber lentidão ou instabilidade, para checar o status rapidamente.", "Durante monitoramento rápido para verificar se tudo está estável ao longo do dia."],
6623
+ "exemplos_reais": [
6624
+ {
6625
+ "situacao": "Checagem rápida antes de iniciar uma tarefa.",
6626
+ "comando": "/statusbot",
6627
+ "resposta_esperada": "Latência atual: 42 ms | Status: OK.",
6628
+ "variacao": "ou <prefix>ping."
6629
+ },
6630
+ {
6631
+ "situacao": "Lentidão percebida durante pico de tráfego.",
6632
+ "comando": "/statusbot",
6633
+ "resposta_esperada": "Latência atual: 320 ms | Status: Atenção - possíveis lentidões. Verifique sua rede.",
6634
+ "variacao": "Se o problema persistir, tente novamente em alguns minutos."
6635
+ },
6636
+ {
6637
+ "situacao": "Verificando disponibilidade após manutenção.",
6638
+ "comando": "/statusbot",
6639
+ "resposta_esperada": "Latência atual: 15 ms | Status: OK.",
6640
+ "variacao": "Se retornar erro, espere e tente novamente."
6641
+ }
6642
+ ],
6643
+ "resposta_esperada": ["Latência atual: <valor> ms | Status: OK.", "Latência atual: <valor> ms | Status: Atenção - verifique rede.", "Latência atual: <valor> ms | Status: ERRO - serviço indisponível."],
6644
+ "erros_comuns_usuario": ["Esquecer de incluir o prefixo <prefix> ao digitar o comando.", "Executar sem estar conectado à internet ou com a rede instável.", "Esperar uma resposta com muitos detalhes além da latência e do status simples.", "Não estar logado com Google quando a autenticação for necessária.", "Tentar usar o comando em horários de manutenção sem observar a latência."],
6645
+ "passos_se_der_erro": ["Verifique a sua conexão com a internet e tente novamente.", "Aguarde alguns segundos e execute novamente o comando: <prefix>statusbot.", "Confira se há mensagens de erro específicas (ex.: permissionError) e corrija as permissões se necessário.", "Se o problema persistir, tente em outro momento ou contate o suporte, descrevendo o que aconteceu."],
6646
+ "resumo_usuario_origem": "auto_ia_assistida",
6647
+ "resumo_usuario_revisao_pendente": true,
4473
6648
  "arguments": [],
4474
6649
  "responses": {
4475
6650
  "success": "Comando executado com sucesso.",