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
@@ -0,0 +1,210 @@
1
+ /**
2
+ * Front-End Agent (com Memória)
3
+ *
4
+ * Responsabilidades:
5
+ * - Garantir qualidade de UI/UX
6
+ * - Validar conformidade com DESIGN_SYSTEM.md
7
+ * - Implementar estados (loading, empty, error)
8
+ * - Garantir acessibilidade (ARIA, contraste, teclado)
9
+ * - Otimizar performance (lazy loading, code splitting)
10
+ * - Aplicar regra de 500 linhas em componentes
11
+ * - Aprender com sucessos e falhas
12
+ */
13
+
14
+ import * as fs from 'fs';
15
+ import { BaseAgent, TaskContext, TaskResult } from './base-agent';
16
+ import { validateFileLines } from '../config';
17
+
18
+ export interface FrontEndCheckResult extends TaskResult {
19
+ passed: boolean;
20
+ }
21
+
22
+ export class FrontEndAgent extends BaseAgent {
23
+ constructor(memoryBasePath: string = '.agents/memory') {
24
+ super('frontend-agent', memoryBasePath);
25
+ }
26
+
27
+ /**
28
+ * Implementação da validação de componente
29
+ */
30
+ async executeTask(taskDescription: string, context: TaskContext): Promise<TaskResult> {
31
+ const issues: string[] = [];
32
+ const warnings: string[] = [];
33
+ const recommendations: string[] = [];
34
+
35
+ // Validar cada arquivo no contexto
36
+ for (const filePath of context.files) {
37
+ // 1. Verificar limite de linhas
38
+ const lineCheck = validateFileLines(filePath, 500);
39
+ if (!lineCheck.valid) {
40
+ issues.push(lineCheck.message || 'Arquivo excede 500 linhas');
41
+ }
42
+
43
+ // 2. Ler conteúdo do arquivo
44
+ if (!fs.existsSync(filePath)) {
45
+ issues.push(`Arquivo não encontrado: ${filePath}`);
46
+ continue;
47
+ }
48
+
49
+ const content = fs.readFileSync(filePath, 'utf-8');
50
+
51
+ // 3. Verificar uso de 'any' em componentes
52
+ if (content.match(/:\s*any(?!\w)/g)) {
53
+ warnings.push(`[${filePath}] Uso de "any" detectado - considere usar tipos específicos`);
54
+ }
55
+
56
+ // 4. Verificar estados de loading/error/empty
57
+ const hasUseState = content.includes('useState');
58
+ const hasLoading = content.match(/loading|isLoading|isPending/i);
59
+ const hasError = content.match(/error|isError/i);
60
+
61
+ if (hasUseState && !hasLoading) {
62
+ recommendations.push(`[${filePath}] Considere adicionar estado de loading`);
63
+ }
64
+ if (hasUseState && !hasError) {
65
+ recommendations.push(`[${filePath}] Considere adicionar tratamento de erro`);
66
+ }
67
+
68
+ // 5. Verificar acessibilidade básica
69
+ if (content.includes('<button') && !content.match(/aria-label|aria-labelledby/)) {
70
+ warnings.push(`[${filePath}] Botões sem aria-label detectados - verifique acessibilidade`);
71
+ }
72
+
73
+ // 6. Verificar uso de next/image
74
+ if (content.includes('<img') && !content.includes('next/image')) {
75
+ recommendations.push(`[${filePath}] Considere usar next/image para otimização automática`);
76
+ }
77
+
78
+ // 7. Verificar dangerouslySetInnerHTML sem sanitização
79
+ if (content.includes('dangerouslySetInnerHTML') && !content.includes('DOMPurify')) {
80
+ issues.push(`[${filePath}] dangerouslySetInnerHTML sem sanitização (DOMPurify) detectado!`);
81
+ }
82
+ }
83
+
84
+ const success = issues.length === 0;
85
+ const details = this.formatDetails(issues, warnings, recommendations);
86
+
87
+ return {
88
+ success,
89
+ details,
90
+ issues,
91
+ warnings,
92
+ recommendations,
93
+ };
94
+ }
95
+
96
+ /**
97
+ * Valida componente (método de conveniência)
98
+ */
99
+ async validateComponent(filePath: string): Promise<FrontEndCheckResult> {
100
+ const context: TaskContext = {
101
+ files: [filePath],
102
+ areas: ['frontend'],
103
+ complexity: 'low',
104
+ };
105
+
106
+ const result = await this.executeWithMemory(
107
+ `Validar componente: ${filePath}`,
108
+ context
109
+ );
110
+
111
+ return {
112
+ ...result,
113
+ passed: result.success,
114
+ };
115
+ }
116
+
117
+ /**
118
+ * Gera relatório de front-end
119
+ */
120
+ generateReport(results: FrontEndCheckResult[]): string {
121
+ const allIssues = results.flatMap(r => r.issues || []);
122
+ const allWarnings = results.flatMap(r => r.warnings || []);
123
+ const allRecommendations = results.flatMap(r => r.recommendations || []);
124
+
125
+ let report = '[FRONT-END IMPLEMENTATION REPORT]\n\n';
126
+
127
+ if (allIssues.length > 0) {
128
+ report += '❌ ISSUES (Bloqueadores):\n';
129
+ allIssues.forEach(issue => report += ` - ${issue}\n`);
130
+ report += '\n';
131
+ }
132
+
133
+ if (allWarnings.length > 0) {
134
+ report += '⚠️ WARNINGS:\n';
135
+ allWarnings.forEach(warning => report += ` - ${warning}\n`);
136
+ report += '\n';
137
+ }
138
+
139
+ if (allRecommendations.length > 0) {
140
+ report += '💡 RECOMENDAÇÕES:\n';
141
+ allRecommendations.forEach(rec => report += ` - ${rec}\n`);
142
+ report += '\n';
143
+ }
144
+
145
+ if (allIssues.length === 0 && allWarnings.length === 0) {
146
+ report += '✅ Todos os checks passaram!\n\n';
147
+ }
148
+
149
+ report += '---\n';
150
+ report += '[x] Regra 2 implementada (Front-End)\n';
151
+
152
+ return report;
153
+ }
154
+
155
+ /**
156
+ * Formata detalhes do resultado
157
+ */
158
+ private formatDetails(issues: string[], warnings: string[], recommendations: string[]): string {
159
+ let details = '';
160
+
161
+ if (issues.length > 0) {
162
+ details += `Issues: ${issues.length}\n`;
163
+ }
164
+ if (warnings.length > 0) {
165
+ details += `Warnings: ${warnings.length}\n`;
166
+ }
167
+ if (recommendations.length > 0) {
168
+ details += `Recommendations: ${recommendations.length}\n`;
169
+ }
170
+
171
+ return details || 'Validação concluída sem problemas';
172
+ }
173
+
174
+ /**
175
+ * Especialidade padrão do Front-End Agent
176
+ */
177
+ protected getDefaultSpecialty(): string {
178
+ return `# Front-End Agent - Especialidade
179
+
180
+ ## Responsabilidades
181
+ - Validar componentes React/Next.js
182
+ - Garantir acessibilidade (WCAG 2.1)
183
+ - Otimizar performance (Core Web Vitals)
184
+ - Aplicar design system
185
+ - Implementar estados: loading, error, empty
186
+
187
+ ## Expertise
188
+ - React, Next.js, TypeScript
189
+ - CSS, Tailwind, Design Systems
190
+ - Acessibilidade (ARIA, semântica)
191
+ - Performance (lazy loading, code splitting)
192
+ - Server Components vs Client Components
193
+
194
+ ## Regras
195
+ - Componentes < 500 linhas
196
+ - Sempre incluir estados: loading, error, empty
197
+ - Usar next/image para imagens
198
+ - Sanitizar HTML com DOMPurify
199
+ - Evitar uso de 'any'
200
+ - Adicionar aria-labels em botões
201
+
202
+ ## Tarefas Típicas
203
+ - Criar/validar componentes UI
204
+ - Implementar páginas responsivas
205
+ - Otimizar performance de renderização
206
+ - Garantir acessibilidade
207
+ - Aplicar design system
208
+ `;
209
+ }
210
+ }