wegho-agentes 4.0.1

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 (94) hide show
  1. package/.agents/AGENT_WORKFLOW.md +528 -0
  2. package/.agents/AI_COMPATIBILITY.md +332 -0
  3. package/.agents/CLI.md +222 -0
  4. package/.agents/README.md +130 -0
  5. package/.agents/cli.js +389 -0
  6. package/.agents/code-auditor-agent.ts +333 -0
  7. package/.agents/config.ts +145 -0
  8. package/.agents/context-loader.ts +300 -0
  9. package/.agents/core/agent-parallelizer.test.ts +94 -0
  10. package/.agents/core/agent-parallelizer.ts +108 -0
  11. package/.agents/core/architecture-agent.ts +237 -0
  12. package/.agents/core/base-agent.ts +311 -0
  13. package/.agents/core/cache-manager.test.ts +147 -0
  14. package/.agents/core/cache-manager.ts +184 -0
  15. package/.agents/core/documentation-agent.ts +183 -0
  16. package/.agents/core/feedback-collector.ts +207 -0
  17. package/.agents/core/frontend-agent.ts +210 -0
  18. package/.agents/core/inventory-agent.ts +582 -0
  19. package/.agents/core/memory-system.ts +397 -0
  20. package/.agents/core/quality-agent.ts +268 -0
  21. package/.agents/core/retry-utility.test.ts +165 -0
  22. package/.agents/core/retry-utility.ts +140 -0
  23. package/.agents/core/security-agent.ts +217 -0
  24. package/.agents/core/workflow-validator.test.ts +171 -0
  25. package/.agents/core/workflow-validator.ts +158 -0
  26. package/.agents/domains/README.md +53 -0
  27. package/.agents/domains/logistics/route-agent.ts +177 -0
  28. package/.agents/domains/news/cms-agent.ts +158 -0
  29. package/.agents/domains/news/seo-agent.ts +170 -0
  30. package/.agents/domains/production/production-control-agent.ts +169 -0
  31. package/.agents/example-learning-system.js +118 -0
  32. package/.agents/init.ts +164 -0
  33. package/.agents/memory/architecture-agent/failures.json +1 -0
  34. package/.agents/memory/architecture-agent/learnings.json +1 -0
  35. package/.agents/memory/architecture-agent/specialty.md +31 -0
  36. package/.agents/memory/architecture-agent/successes.json +16 -0
  37. package/.agents/memory/cms-agent/failures.json +1 -0
  38. package/.agents/memory/cms-agent/learnings.json +1 -0
  39. package/.agents/memory/cms-agent/specialty.md +30 -0
  40. package/.agents/memory/cms-agent/successes.json +16 -0
  41. package/.agents/memory/documentation-agent/failures.json +1 -0
  42. package/.agents/memory/documentation-agent/learnings.json +1 -0
  43. package/.agents/memory/documentation-agent/specialty.md +33 -0
  44. package/.agents/memory/documentation-agent/successes.json +16 -0
  45. package/.agents/memory/frontend-agent/failures.json +1 -0
  46. package/.agents/memory/frontend-agent/learnings.json +1 -0
  47. package/.agents/memory/frontend-agent/specialty.md +30 -0
  48. package/.agents/memory/frontend-agent/successes.json +16 -0
  49. package/.agents/memory/inventory-agent/failures.json +1 -0
  50. package/.agents/memory/inventory-agent/inventory/index.json +8 -0
  51. package/.agents/memory/inventory-agent/inventory/types.json +77716 -0
  52. package/.agents/memory/inventory-agent/inventory/variables.json +405 -0
  53. package/.agents/memory/inventory-agent/learnings.json +1 -0
  54. package/.agents/memory/inventory-agent/specialty.md +129 -0
  55. package/.agents/memory/inventory-agent/successes.json +30 -0
  56. package/.agents/memory/production-control-agent/failures.json +1 -0
  57. package/.agents/memory/production-control-agent/learnings.json +1 -0
  58. package/.agents/memory/production-control-agent/specialty.md +29 -0
  59. package/.agents/memory/production-control-agent/successes.json +16 -0
  60. package/.agents/memory/quality-agent/failures.json +16 -0
  61. package/.agents/memory/quality-agent/learnings.json +1 -0
  62. package/.agents/memory/quality-agent/specialty.md +31 -0
  63. package/.agents/memory/quality-agent/successes.json +1 -0
  64. package/.agents/memory/reference-repositories.json +271 -0
  65. package/.agents/memory/route-agent/failures.json +1 -0
  66. package/.agents/memory/route-agent/learnings.json +1 -0
  67. package/.agents/memory/route-agent/specialty.md +29 -0
  68. package/.agents/memory/route-agent/successes.json +16 -0
  69. package/.agents/memory/security-agent/failures.json +1 -0
  70. package/.agents/memory/security-agent/learnings.json +1 -0
  71. package/.agents/memory/security-agent/specialty.md +31 -0
  72. package/.agents/memory/security-agent/successes.json +16 -0
  73. package/.agents/memory/seo-agent/failures.json +1 -0
  74. package/.agents/memory/seo-agent/learnings.json +1 -0
  75. package/.agents/memory/seo-agent/specialty.md +31 -0
  76. package/.agents/memory/seo-agent/successes.json +16 -0
  77. package/.agents/orchestrator.ts +438 -0
  78. package/.agents/project-discovery-agent.ts +342 -0
  79. package/.agents/security/pentesting-agent.py +387 -0
  80. package/.agents/security/python-bridge.ts +193 -0
  81. package/.agents/security/vulnerability-db.json +201 -0
  82. package/.agents/task-analyzer-agent.ts +346 -0
  83. package/.agents/test-init-context.js +67 -0
  84. package/INSTALL.md +300 -0
  85. package/LICENSE +21 -0
  86. package/README.md +315 -0
  87. package/docs/AGENT_RULES.md +292 -0
  88. package/docs/BUILD_HISTORY.md +65 -0
  89. package/docs/DESIGN_SYSTEM.md +256 -0
  90. package/docs/LEARNING_SYSTEM.md +326 -0
  91. package/docs/SYMBOLS_TREE.md +182 -0
  92. package/docs/VERSION.md +6 -0
  93. package/docs/architecture.md +111 -0
  94. package/package.json +60 -0
package/.agents/cli.js ADDED
@@ -0,0 +1,389 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * CLI do Sistema de Agentes
5
+ *
6
+ * Comandos disponíveis:
7
+ * - !comandos - Lista todos comandos
8
+ * - !iniciar contexto - Carrega contexto do projeto
9
+ * - !rever codigo - Executa auditoria do código
10
+ * - !rever plano - Revisa plano de implementação
11
+ * - !voltar versao - Reverte para versão anterior
12
+ * - !criar backup - Cria backup do estado atual
13
+ */
14
+
15
+ const { initializeContext } = require('./context-loader');
16
+ const { CodeAuditorAgent } = require('./code-auditor-agent');
17
+ const fs = require('fs');
18
+ const path = require('path');
19
+ const { execSync } = require('child_process');
20
+
21
+ const COMMANDS = {
22
+ '!comandos': showCommands,
23
+ '!iniciar contexto': initContext,
24
+ '!rever codigo': reviewCode,
25
+ '!rever plano': reviewPlan,
26
+ '!voltar versao': revertVersion,
27
+ '!criar backup': createBackup,
28
+ '!desinstalar': uninstall,
29
+ };
30
+
31
+ /**
32
+ * Mostra todos os comandos disponíveis
33
+ */
34
+ function showCommands() {
35
+ console.log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
36
+ console.log('🤖 COMANDOS DO SISTEMA DE AGENTES');
37
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
38
+
39
+ console.log('📋 Comandos Disponíveis:\n');
40
+
41
+ console.log(' !comandos');
42
+ console.log(' └─ Mostra esta lista de comandos\n');
43
+
44
+ console.log(' !iniciar contexto');
45
+ console.log(' └─ Carrega contexto completo do projeto');
46
+ console.log(' └─ Detecta domínio, perfil, documentação\n');
47
+
48
+ console.log(' !rever codigo');
49
+ console.log(' └─ Executa auditoria completa do código');
50
+ console.log(' └─ Gera relatório de violações (P0/P1/P2)');
51
+ console.log(' └─ Salva em docs/AUDIT_REPORT.md\n');
52
+
53
+ console.log(' !rever plano');
54
+ console.log(' └─ Revisa plano de implementação');
55
+ console.log(' └─ Valida agentes necessários');
56
+ console.log(' └─ Lista próximos passos\n');
57
+
58
+ console.log(' !voltar versao');
59
+ console.log(' └─ Reverte para versão anterior (git)');
60
+ console.log(' └─ Lista commits recentes para escolher\n');
61
+
62
+ console.log(' !criar backup');
63
+ console.log(' └─ Cria backup do estado atual');
64
+ console.log(' └─ Salva em .backups/backup-YYYYMMDD-HHmmss/\n');
65
+
66
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
67
+
68
+ console.log('💡 Uso:');
69
+ console.log(' node .agents/cli.js "!comando"\n');
70
+ console.log(' Ou adicione ao package.json:');
71
+ console.log(' "scripts": {');
72
+ console.log(' "agent": "node .agents/cli.js"');
73
+ console.log(' }\n');
74
+ console.log(' E use: npm run agent "!comando"\n');
75
+ }
76
+
77
+ /**
78
+ * Iniciar Contexto
79
+ */
80
+ async function initContext() {
81
+ console.log('\n🔄 Executando: !iniciar contexto\n');
82
+
83
+ try {
84
+ const context = await initializeContext(true);
85
+ console.log('✅ Contexto inicializado com sucesso!\n');
86
+ return context;
87
+ } catch (error) {
88
+ console.error('❌ Erro ao iniciar contexto:', error.message);
89
+ process.exit(1);
90
+ }
91
+ }
92
+
93
+ /**
94
+ * Rever Código
95
+ */
96
+ async function reviewCode() {
97
+ console.log('\n🔍 Executando: !rever codigo\n');
98
+
99
+ try {
100
+ const auditor = new CodeAuditorAgent(process.cwd());
101
+ const report = await auditor.auditProject();
102
+
103
+ console.log(report.summary);
104
+
105
+ auditor.saveReport(report);
106
+
107
+ console.log(`\n✅ Auditoria concluída!`);
108
+ console.log(`📊 ${report.totalViolations} violações encontradas`);
109
+ console.log(` 💀 P0: ${report.p0Count}`);
110
+ console.log(` ⚠️ P1: ${report.p1Count}`);
111
+ console.log(` 💡 P2: ${report.p2Count}\n`);
112
+
113
+ if (report.p0Count > 0) {
114
+ console.log('❌ ATENÇÃO: Existem violações P0 (críticas) que devem ser corrigidas!\n');
115
+ process.exit(1);
116
+ }
117
+
118
+ return report;
119
+ } catch (error) {
120
+ console.error('❌ Erro na auditoria:', error.message);
121
+ process.exit(1);
122
+ }
123
+ }
124
+
125
+ /**
126
+ * Rever Plano
127
+ */
128
+ async function reviewPlan() {
129
+ console.log('\n📋 Executando: !rever plano\n');
130
+
131
+ const planFile = 'docs/IMPLEMENTATION_PLAN.md';
132
+
133
+ if (!fs.existsSync(planFile)) {
134
+ console.log('⚠️ Nenhum plano de implementação encontrado.');
135
+ console.log('💡 Crie um plano primeiro ou use o Task Analyzer.\n');
136
+ return;
137
+ }
138
+
139
+ const plan = fs.readFileSync(planFile, 'utf-8');
140
+
141
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
142
+ console.log('📋 PLANO DE IMPLEMENTAÇÃO');
143
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
144
+ console.log(plan);
145
+ console.log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
146
+
147
+ // Verificar se há profil do projeto
148
+ if (fs.existsSync('docs/PROJECT_PROFILE.json')) {
149
+ const profile = JSON.parse(fs.readFileSync('docs/PROJECT_PROFILE.json', 'utf-8'));
150
+ console.log('🎯 Perfil do Projeto:');
151
+ console.log(` Nome: ${profile.projectName}`);
152
+ console.log(` Domínio: ${profile.domain}`);
153
+ console.log(` Complexidade estimada: ${profile.customNeeds?.length || 0} necessidades customizadas\n`);
154
+ }
155
+ }
156
+
157
+ /**
158
+ * Voltar Versão
159
+ */
160
+ function revertVersion() {
161
+ console.log('\n⏮️ Executando: !voltar versao\n');
162
+
163
+ try {
164
+ // Verificar se está em repositório git
165
+ if (!fs.existsSync('.git')) {
166
+ console.log('❌ Não é um repositório Git!');
167
+ console.log('💡 Inicialize com: git init\n');
168
+ return;
169
+ }
170
+
171
+ // Listar últimos 10 commits
172
+ console.log('📜 Últimos commits:\n');
173
+ const commits = execSync('git log --oneline -n 10', { encoding: 'utf-8' });
174
+ console.log(commits);
175
+
176
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
177
+ console.log('⚠️ Para reverter, execute manualmente:\n');
178
+ console.log(' git revert <commit-hash> # Criar commit de reversão');
179
+ console.log(' ou');
180
+ console.log(' git reset --hard <commit-hash> # Voltar diretamente (CUIDADO!)\n');
181
+ console.log('💡 Recomendado: git revert (mais seguro)\n');
182
+
183
+ } catch (error) {
184
+ console.error('❌ Erro ao listar commits:', error.message);
185
+ }
186
+ }
187
+
188
+ /**
189
+ * Criar Backup
190
+ */
191
+ function createBackup() {
192
+ console.log('\n💾 Executando: !criar backup\n');
193
+
194
+ try {
195
+ // Criar diretório de backups
196
+ const backupsDir = '.backups';
197
+ if (!fs.existsSync(backupsDir)) {
198
+ fs.mkdirSync(backupsDir, { recursive: true });
199
+ }
200
+
201
+ // Nome do backup com timestamp
202
+ const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, -5);
203
+ const backupName = `backup-${timestamp}`;
204
+ const backupPath = path.join(backupsDir, backupName);
205
+
206
+ console.log(`📦 Criando backup em: ${backupPath}\n`);
207
+
208
+ // Diretórios/arquivos para backup
209
+ const itemsToBackup = [
210
+ 'app',
211
+ 'components',
212
+ 'hooks',
213
+ 'lib',
214
+ 'utils',
215
+ 'docs',
216
+ '.agents',
217
+ 'package.json',
218
+ 'tsconfig.json',
219
+ 'next.config.js',
220
+ ];
221
+
222
+ fs.mkdirSync(backupPath, { recursive: true });
223
+
224
+ let backedUp = 0;
225
+
226
+ itemsToBackup.forEach(item => {
227
+ if (fs.existsSync(item)) {
228
+ const isDir = fs.statSync(item).isDirectory();
229
+
230
+ if (isDir) {
231
+ // Copiar diretório recursivamente
232
+ copyRecursive(item, path.join(backupPath, item));
233
+ console.log(` ✅ ${item}/`);
234
+ } else {
235
+ // Copiar arquivo
236
+ fs.copyFileSync(item, path.join(backupPath, item));
237
+ console.log(` ✅ ${item}`);
238
+ }
239
+
240
+ backedUp++;
241
+ }
242
+ });
243
+
244
+ console.log(`\n✅ Backup criado com sucesso!`);
245
+ console.log(`📂 Localização: ${backupPath}`);
246
+ console.log(`📊 ${backedUp} itens salvos\n`);
247
+
248
+ // Criar arquivo de metadata
249
+ const metadata = {
250
+ timestamp: new Date().toISOString(),
251
+ items: itemsToBackup.filter(i => fs.existsSync(i)),
252
+ git: {
253
+ branch: execSync('git branch --show-current', { encoding: 'utf-8' }).trim(),
254
+ commit: execSync('git rev-parse HEAD', { encoding: 'utf-8' }).trim(),
255
+ },
256
+ };
257
+
258
+ fs.writeFileSync(
259
+ path.join(backupPath, 'backup-info.json'),
260
+ JSON.stringify(metadata, null, 2),
261
+ 'utf-8'
262
+ );
263
+
264
+ console.log('💡 Para restaurar:');
265
+ console.log(` cp -r ${backupPath}/* .\n`);
266
+
267
+ } catch (error) {
268
+ console.error('❌ Erro ao criar backup:', error.message);
269
+ }
270
+ }
271
+
272
+ /**
273
+ * Copia diretório recursivamente
274
+ */
275
+ function copyRecursive(src, dest) {
276
+ if (!fs.existsSync(dest)) {
277
+ fs.mkdirSync(dest, { recursive: true });
278
+ }
279
+
280
+ const entries = fs.readdirSync(src, { withFileTypes: true });
281
+
282
+ for (const entry of entries) {
283
+ const srcPath = path.join(src, entry.name);
284
+ const destPath = path.join(dest, entry.name);
285
+
286
+ // Ignorar node_modules, .next, etc
287
+ if (entry.name === 'node_modules' || entry.name === '.next' || entry.name === 'dist') {
288
+ continue;
289
+ }
290
+
291
+ if (entry.isDirectory()) {
292
+ copyRecursive(srcPath, destPath);
293
+ } else {
294
+ fs.copyFileSync(srcPath, destPath);
295
+ }
296
+ }
297
+ }
298
+
299
+ /**
300
+ * Desinstala o sistema de agentes do projeto
301
+ */
302
+ async function uninstall() {
303
+ console.log('\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━');
304
+ console.log('🗑️ DESINSTALANDO SISTEMA DE AGENTES');
305
+ console.log('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n');
306
+
307
+ const readline = require('readline').createInterface({
308
+ input: process.stdin,
309
+ output: process.stdout
310
+ });
311
+
312
+ const confirm = await new Promise(resolve => {
313
+ readline.question('⚠️ Tem certeza que deseja remover o sistema de agentes e todas as documentações? (s/N): ', answer => {
314
+ resolve(answer.toLowerCase() === 's');
315
+ readline.close();
316
+ });
317
+ });
318
+
319
+ if (!confirm) {
320
+ console.log('\n❌ Desinstalação cancelada.\n');
321
+ return;
322
+ }
323
+
324
+ try {
325
+ const projectRoot = process.cwd();
326
+ const agentsDir = path.join(projectRoot, '.webgho-agents');
327
+ const legacyAgentsDir = path.join(projectRoot, '.agents');
328
+
329
+ if (fs.existsSync(agentsDir)) {
330
+ console.log(` 📁 Removendo .webgho-agents/...`);
331
+ fs.rmSync(agentsDir, { recursive: true, force: true });
332
+ }
333
+
334
+ if (fs.existsSync(legacyAgentsDir)) {
335
+ console.log(` 📁 Removendo .agents/ (legado)...`);
336
+ fs.rmSync(legacyAgentsDir, { recursive: true, force: true });
337
+ }
338
+
339
+ // Remover scripts do package.json
340
+ const packageJsonPath = path.join(projectRoot, 'package.json');
341
+ if (fs.existsSync(packageJsonPath)) {
342
+ console.log(` 📝 Limpando package.json...`);
343
+ const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
344
+ if (packageJson.scripts) {
345
+ delete packageJson.scripts['agents:init'];
346
+ delete packageJson.scripts['agent'];
347
+ fs.writeFileSync(packageJsonPath, JSON.stringify(packageJson, null, 2), 'utf-8');
348
+ }
349
+ }
350
+
351
+ console.log('\n✅ Sistema de agentes removido com sucesso!\n');
352
+ console.log('💡 Para instalar novamente: npx @webgho.com/agentes install\n');
353
+
354
+ } catch (error) {
355
+ console.error(`\n❌ Erro ao desinstalar: ${error.message}`);
356
+ }
357
+ }
358
+
359
+ /**
360
+ * Main
361
+ */
362
+ async function main() {
363
+ const command = process.argv[2];
364
+
365
+ if (!command) {
366
+ showCommands();
367
+ return;
368
+ }
369
+
370
+ const handler = COMMANDS[command.toLowerCase()];
371
+
372
+ if (!handler) {
373
+ console.log(`\n❌ Comando não encontrado: ${command}\n`);
374
+ console.log('💡 Use "!comandos" para ver a lista completa.\n');
375
+ process.exit(1);
376
+ }
377
+
378
+ await handler();
379
+ }
380
+
381
+ // Executar se chamado diretamente
382
+ if (require.main === module) {
383
+ main().catch(error => {
384
+ console.error('\n❌ Erro:', error.message);
385
+ process.exit(1);
386
+ });
387
+ }
388
+
389
+ module.exports = { COMMANDS, showCommands, initContext, reviewCode, reviewPlan, revertVersion, createBackup, uninstall };