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.
- package/.agents/AGENT_WORKFLOW.md +528 -0
- package/.agents/AI_COMPATIBILITY.md +332 -0
- package/.agents/CLI.md +222 -0
- package/.agents/README.md +130 -0
- package/.agents/cli.js +389 -0
- package/.agents/code-auditor-agent.ts +333 -0
- package/.agents/config.ts +145 -0
- package/.agents/context-loader.ts +300 -0
- package/.agents/core/agent-parallelizer.test.ts +94 -0
- package/.agents/core/agent-parallelizer.ts +108 -0
- package/.agents/core/architecture-agent.ts +237 -0
- package/.agents/core/base-agent.ts +311 -0
- package/.agents/core/cache-manager.test.ts +147 -0
- package/.agents/core/cache-manager.ts +184 -0
- package/.agents/core/documentation-agent.ts +183 -0
- package/.agents/core/feedback-collector.ts +207 -0
- package/.agents/core/frontend-agent.ts +210 -0
- package/.agents/core/inventory-agent.ts +582 -0
- package/.agents/core/memory-system.ts +397 -0
- package/.agents/core/quality-agent.ts +268 -0
- package/.agents/core/retry-utility.test.ts +165 -0
- package/.agents/core/retry-utility.ts +140 -0
- package/.agents/core/security-agent.ts +217 -0
- package/.agents/core/workflow-validator.test.ts +171 -0
- package/.agents/core/workflow-validator.ts +158 -0
- package/.agents/domains/README.md +53 -0
- package/.agents/domains/logistics/route-agent.ts +177 -0
- package/.agents/domains/news/cms-agent.ts +158 -0
- package/.agents/domains/news/seo-agent.ts +170 -0
- package/.agents/domains/production/production-control-agent.ts +169 -0
- package/.agents/example-learning-system.js +118 -0
- package/.agents/init.ts +164 -0
- package/.agents/memory/architecture-agent/failures.json +1 -0
- package/.agents/memory/architecture-agent/learnings.json +1 -0
- package/.agents/memory/architecture-agent/specialty.md +31 -0
- package/.agents/memory/architecture-agent/successes.json +16 -0
- package/.agents/memory/cms-agent/failures.json +1 -0
- package/.agents/memory/cms-agent/learnings.json +1 -0
- package/.agents/memory/cms-agent/specialty.md +30 -0
- package/.agents/memory/cms-agent/successes.json +16 -0
- package/.agents/memory/documentation-agent/failures.json +1 -0
- package/.agents/memory/documentation-agent/learnings.json +1 -0
- package/.agents/memory/documentation-agent/specialty.md +33 -0
- package/.agents/memory/documentation-agent/successes.json +16 -0
- package/.agents/memory/frontend-agent/failures.json +1 -0
- package/.agents/memory/frontend-agent/learnings.json +1 -0
- package/.agents/memory/frontend-agent/specialty.md +30 -0
- package/.agents/memory/frontend-agent/successes.json +16 -0
- package/.agents/memory/inventory-agent/failures.json +1 -0
- package/.agents/memory/inventory-agent/inventory/index.json +8 -0
- package/.agents/memory/inventory-agent/inventory/types.json +77716 -0
- package/.agents/memory/inventory-agent/inventory/variables.json +405 -0
- package/.agents/memory/inventory-agent/learnings.json +1 -0
- package/.agents/memory/inventory-agent/specialty.md +129 -0
- package/.agents/memory/inventory-agent/successes.json +30 -0
- package/.agents/memory/production-control-agent/failures.json +1 -0
- package/.agents/memory/production-control-agent/learnings.json +1 -0
- package/.agents/memory/production-control-agent/specialty.md +29 -0
- package/.agents/memory/production-control-agent/successes.json +16 -0
- package/.agents/memory/quality-agent/failures.json +16 -0
- package/.agents/memory/quality-agent/learnings.json +1 -0
- package/.agents/memory/quality-agent/specialty.md +31 -0
- package/.agents/memory/quality-agent/successes.json +1 -0
- package/.agents/memory/reference-repositories.json +271 -0
- package/.agents/memory/route-agent/failures.json +1 -0
- package/.agents/memory/route-agent/learnings.json +1 -0
- package/.agents/memory/route-agent/specialty.md +29 -0
- package/.agents/memory/route-agent/successes.json +16 -0
- package/.agents/memory/security-agent/failures.json +1 -0
- package/.agents/memory/security-agent/learnings.json +1 -0
- package/.agents/memory/security-agent/specialty.md +31 -0
- package/.agents/memory/security-agent/successes.json +16 -0
- package/.agents/memory/seo-agent/failures.json +1 -0
- package/.agents/memory/seo-agent/learnings.json +1 -0
- package/.agents/memory/seo-agent/specialty.md +31 -0
- package/.agents/memory/seo-agent/successes.json +16 -0
- package/.agents/orchestrator.ts +438 -0
- package/.agents/project-discovery-agent.ts +342 -0
- package/.agents/security/pentesting-agent.py +387 -0
- package/.agents/security/python-bridge.ts +193 -0
- package/.agents/security/vulnerability-db.json +201 -0
- package/.agents/task-analyzer-agent.ts +346 -0
- package/.agents/test-init-context.js +67 -0
- package/INSTALL.md +300 -0
- package/LICENSE +21 -0
- package/README.md +315 -0
- package/docs/AGENT_RULES.md +292 -0
- package/docs/BUILD_HISTORY.md +65 -0
- package/docs/DESIGN_SYSTEM.md +256 -0
- package/docs/LEARNING_SYSTEM.md +326 -0
- package/docs/SYMBOLS_TREE.md +182 -0
- package/docs/VERSION.md +6 -0
- package/docs/architecture.md +111 -0
- package/package.json +60 -0
|
@@ -0,0 +1,326 @@
|
|
|
1
|
+
# Sistema de Agentes com Aprendizado Contínuo
|
|
2
|
+
|
|
3
|
+
## 🎯 Visão Geral
|
|
4
|
+
|
|
5
|
+
Sistema inteligente onde cada agente possui memória persistente, aprende com sucessos e falhas, e o orquestrador seleciona os melhores agentes baseado em histórico de performance.
|
|
6
|
+
|
|
7
|
+
## 🚀 Início Rápido
|
|
8
|
+
|
|
9
|
+
### 1. Instalação
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# Já incluído no sistema de agentes
|
|
13
|
+
cd seu-projeto
|
|
14
|
+
node .agents/test-init-context.js
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### 2. Uso Básico
|
|
18
|
+
|
|
19
|
+
```javascript
|
|
20
|
+
const { IntelligentOrchestrator } = require('./.agents/orchestrator');
|
|
21
|
+
const { ContextLoader } = require('./.agents/context-loader');
|
|
22
|
+
|
|
23
|
+
// Carregar contexto
|
|
24
|
+
const contextLoader = new ContextLoader();
|
|
25
|
+
const context = await contextLoader.loadContext();
|
|
26
|
+
|
|
27
|
+
// Criar orquestrador
|
|
28
|
+
const orchestrator = new IntelligentOrchestrator(context);
|
|
29
|
+
|
|
30
|
+
// Executar tarefa
|
|
31
|
+
const result = await orchestrator.orchestrateTask(
|
|
32
|
+
'Criar componente de login com validação'
|
|
33
|
+
);
|
|
34
|
+
|
|
35
|
+
// Fornecer feedback
|
|
36
|
+
await orchestrator.provideFeedback(result.taskId, 'frontend-agent', {
|
|
37
|
+
satisfied: true,
|
|
38
|
+
likes: ['Validação implementada', 'Acessibilidade OK'],
|
|
39
|
+
dislikes: [],
|
|
40
|
+
suggestions: ['Adicionar animações']
|
|
41
|
+
});
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## 📁 Estrutura de Memória
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
.agents/memory/
|
|
48
|
+
├── frontend-agent/
|
|
49
|
+
│ ├── specialty.md # Especialidade e responsabilidades
|
|
50
|
+
│ ├── successes.json # Histórico de sucessos
|
|
51
|
+
│ ├── failures.json # Histórico de falhas
|
|
52
|
+
│ └── learnings.json # Padrões aprendidos
|
|
53
|
+
├── security-agent/
|
|
54
|
+
│ └── ...
|
|
55
|
+
└── ...
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## 🧠 Como Funciona o Aprendizado
|
|
59
|
+
|
|
60
|
+
### 1. Registro Automático
|
|
61
|
+
|
|
62
|
+
Cada vez que um agente executa uma tarefa:
|
|
63
|
+
- ✅ **Sucesso**: Registrado em `successes.json`
|
|
64
|
+
- ❌ **Falha**: Registrado em `failures.json`
|
|
65
|
+
|
|
66
|
+
### 2. Feedback do Usuário
|
|
67
|
+
|
|
68
|
+
Após cada tarefa, você pode fornecer feedback:
|
|
69
|
+
|
|
70
|
+
```javascript
|
|
71
|
+
await orchestrator.provideFeedback(taskId, agentName, {
|
|
72
|
+
satisfied: true,
|
|
73
|
+
likes: ['Feature X', 'Implementação Y'],
|
|
74
|
+
dislikes: ['Problema Z'],
|
|
75
|
+
suggestions: ['Melhorar W']
|
|
76
|
+
});
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### 3. Geração de Aprendizados
|
|
80
|
+
|
|
81
|
+
O sistema analisa feedback e gera aprendizados:
|
|
82
|
+
- **Padrões positivos**: "Repetir: Feature X"
|
|
83
|
+
- **Padrões negativos**: "Evitar: Problema Z"
|
|
84
|
+
- **Sugestões**: "Considerar: Melhorar W"
|
|
85
|
+
|
|
86
|
+
### 4. Aplicação em Tarefas Futuras
|
|
87
|
+
|
|
88
|
+
Em tarefas similares, agentes:
|
|
89
|
+
- 🔍 Consultam memória para casos parecidos
|
|
90
|
+
- 💡 Aplicam recomendações aprendidas
|
|
91
|
+
- ⚠️ Alertam sobre padrões problemáticos
|
|
92
|
+
|
|
93
|
+
## 🎯 Orquestrador Inteligente
|
|
94
|
+
|
|
95
|
+
### Seleção Baseada em Performance
|
|
96
|
+
|
|
97
|
+
O orquestrador analisa histórico de cada agente:
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
📊 frontend-agent:
|
|
101
|
+
Taxa de sucesso: 85.5%
|
|
102
|
+
Total de tarefas: 23
|
|
103
|
+
✅ Selecionado (alta confiança)
|
|
104
|
+
|
|
105
|
+
📊 security-agent:
|
|
106
|
+
Taxa de sucesso: 92.1%
|
|
107
|
+
Total de tarefas: 38
|
|
108
|
+
✅ Selecionado (alta confiança)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Escalação Inteligente
|
|
112
|
+
|
|
113
|
+
1. **Análise da Tarefa**: Identifica áreas envolvidas
|
|
114
|
+
2. **Seleção de Agentes**: Escolhe melhores baseado em histórico
|
|
115
|
+
3. **Distribuição**: Atribui subtarefas específicas
|
|
116
|
+
4. **Execução**: Agentes trabalham com memória
|
|
117
|
+
5. **Feedback**: Coleta resultados e aprende
|
|
118
|
+
|
|
119
|
+
## 📊 Exemplos de Uso
|
|
120
|
+
|
|
121
|
+
### Exemplo 1: Componente com Validação
|
|
122
|
+
|
|
123
|
+
```javascript
|
|
124
|
+
const result = await orchestrator.orchestrateTask(
|
|
125
|
+
'Criar componente de formulário com validação Zod e estados de loading/error'
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
// Agentes selecionados:
|
|
129
|
+
// - frontend-agent: Validar UI/UX e estados
|
|
130
|
+
// - security-agent: Verificar validação de inputs
|
|
131
|
+
// - architecture-agent: Garantir estrutura < 500 linhas
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### Exemplo 2: Feedback Positivo
|
|
135
|
+
|
|
136
|
+
```javascript
|
|
137
|
+
await orchestrator.provideFeedback(result.taskId, 'frontend-agent', {
|
|
138
|
+
satisfied: true,
|
|
139
|
+
likes: [
|
|
140
|
+
'Estados de loading/error implementados',
|
|
141
|
+
'Validação com Zod',
|
|
142
|
+
'Acessibilidade com aria-labels'
|
|
143
|
+
],
|
|
144
|
+
dislikes: [],
|
|
145
|
+
suggestions: ['Adicionar testes unitários']
|
|
146
|
+
});
|
|
147
|
+
|
|
148
|
+
// Aprendizados gerados:
|
|
149
|
+
// ✅ "Repetir: Estados de loading/error implementados"
|
|
150
|
+
// ✅ "Repetir: Validação com Zod"
|
|
151
|
+
// ✅ "Repetir: Acessibilidade com aria-labels"
|
|
152
|
+
// 💡 "Sugestão: Adicionar testes unitários"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
### Exemplo 3: Feedback Negativo
|
|
156
|
+
|
|
157
|
+
```javascript
|
|
158
|
+
await orchestrator.provideFeedback(result.taskId, 'security-agent', {
|
|
159
|
+
satisfied: false,
|
|
160
|
+
likes: [],
|
|
161
|
+
dislikes: [
|
|
162
|
+
'Não detectou falta de sanitização',
|
|
163
|
+
'Permitiu uso de dangerouslySetInnerHTML'
|
|
164
|
+
],
|
|
165
|
+
suggestions: ['Adicionar verificação de DOMPurify']
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
// Aprendizados gerados:
|
|
169
|
+
// ❌ "Evitar: Não detectou falta de sanitização"
|
|
170
|
+
// ❌ "Evitar: Permitiu uso de dangerouslySetInnerHTML"
|
|
171
|
+
// 💡 "Sugestão: Adicionar verificação de DOMPurify"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
## 🔧 Configuração
|
|
175
|
+
|
|
176
|
+
### Habilitar/Desabilitar Memória
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
// .agents/config.ts
|
|
180
|
+
export const DEFAULT_CONFIG: AgentConfig = {
|
|
181
|
+
// ...
|
|
182
|
+
memoryEnabled: true, // Habilitar sistema de memória
|
|
183
|
+
memoryPath: '.agents/memory', // Caminho da memória
|
|
184
|
+
feedbackEnabled: true, // Habilitar coleta de feedback
|
|
185
|
+
autoLearn: false, // Requerer aprovação manual
|
|
186
|
+
maxMemoryEntries: 1000, // Limite de entradas
|
|
187
|
+
};
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Aprendizado Automático vs Manual
|
|
191
|
+
|
|
192
|
+
- **Manual** (`autoLearn: false`): Requer aprovação para cada aprendizado
|
|
193
|
+
- **Automático** (`autoLearn: true`): Aprende automaticamente com feedback
|
|
194
|
+
|
|
195
|
+
## 📈 Relatórios
|
|
196
|
+
|
|
197
|
+
### Ver Feedback de um Agente
|
|
198
|
+
|
|
199
|
+
```javascript
|
|
200
|
+
const report = orchestrator.getFeedbackReport('frontend-agent');
|
|
201
|
+
console.log(report);
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Saída:
|
|
205
|
+
```
|
|
206
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
207
|
+
📊 RELATÓRIO DE FEEDBACK - frontend-agent
|
|
208
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
209
|
+
|
|
210
|
+
📈 Estatísticas:
|
|
211
|
+
Total de tarefas: 23
|
|
212
|
+
Taxa de sucesso: 85.5%
|
|
213
|
+
|
|
214
|
+
👍 O que os usuários mais gostam:
|
|
215
|
+
1. Estados de loading/error implementados
|
|
216
|
+
2. Validação com Zod
|
|
217
|
+
3. Acessibilidade com aria-labels
|
|
218
|
+
|
|
219
|
+
👎 O que os usuários não gostam:
|
|
220
|
+
1. Falta de testes unitários
|
|
221
|
+
2. Componentes muito grandes
|
|
222
|
+
|
|
223
|
+
💡 Sugestões recorrentes:
|
|
224
|
+
1. Adicionar testes unitários
|
|
225
|
+
2. Dividir componentes grandes
|
|
226
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## 🎓 Melhores Práticas
|
|
230
|
+
|
|
231
|
+
### 1. Forneça Feedback Específico
|
|
232
|
+
|
|
233
|
+
❌ **Ruim**:
|
|
234
|
+
```javascript
|
|
235
|
+
likes: ['Bom trabalho']
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
✅ **Bom**:
|
|
239
|
+
```javascript
|
|
240
|
+
likes: [
|
|
241
|
+
'Validação de email com regex correto',
|
|
242
|
+
'Estados de loading implementados',
|
|
243
|
+
'Acessibilidade com ARIA'
|
|
244
|
+
]
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### 2. Seja Consistente
|
|
248
|
+
|
|
249
|
+
- Forneça feedback para todas as tarefas importantes
|
|
250
|
+
- Use terminologia consistente
|
|
251
|
+
- Seja específico sobre o que gostou/não gostou
|
|
252
|
+
|
|
253
|
+
### 3. Monitore Aprendizados
|
|
254
|
+
|
|
255
|
+
```javascript
|
|
256
|
+
// Ver aprendizados periodicamente
|
|
257
|
+
const report = orchestrator.getFeedbackReport('frontend-agent');
|
|
258
|
+
console.log(report);
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
### 4. Limpe Memória Antiga
|
|
262
|
+
|
|
263
|
+
```javascript
|
|
264
|
+
// Memória é limitada a maxMemoryEntries (padrão: 1000)
|
|
265
|
+
// Entradas mais antigas são removidas automaticamente
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
## 🚨 Troubleshooting
|
|
269
|
+
|
|
270
|
+
### Memória não está sendo salva
|
|
271
|
+
|
|
272
|
+
1. Verificar permissões da pasta `.agents/memory/`
|
|
273
|
+
2. Verificar se `memoryEnabled: true` em config
|
|
274
|
+
3. Verificar logs de erro
|
|
275
|
+
|
|
276
|
+
### Agentes não estão aprendendo
|
|
277
|
+
|
|
278
|
+
1. Verificar se está fornecendo feedback
|
|
279
|
+
2. Verificar se `feedbackEnabled: true`
|
|
280
|
+
3. Ver arquivos `learnings.json` para confirmar
|
|
281
|
+
|
|
282
|
+
### Performance lenta
|
|
283
|
+
|
|
284
|
+
1. Reduzir `maxMemoryEntries` em config
|
|
285
|
+
2. Limpar memória antiga manualmente
|
|
286
|
+
3. Desabilitar memória para tarefas simples
|
|
287
|
+
|
|
288
|
+
## 📚 Arquivos de Especialidade
|
|
289
|
+
|
|
290
|
+
Cada agente tem um arquivo `specialty.md` que define:
|
|
291
|
+
- Responsabilidades
|
|
292
|
+
- Expertise
|
|
293
|
+
- Regras
|
|
294
|
+
- Tarefas típicas
|
|
295
|
+
|
|
296
|
+
Exemplo: `.agents/memory/frontend-agent/specialty.md`
|
|
297
|
+
|
|
298
|
+
## 🔄 Fluxo Completo
|
|
299
|
+
|
|
300
|
+
```
|
|
301
|
+
1. Usuário solicita tarefa
|
|
302
|
+
↓
|
|
303
|
+
2. Orquestrador analisa tarefa
|
|
304
|
+
↓
|
|
305
|
+
3. Seleciona melhores agentes (baseado em histórico)
|
|
306
|
+
↓
|
|
307
|
+
4. Agentes consultam memória
|
|
308
|
+
↓
|
|
309
|
+
5. Agentes executam com recomendações
|
|
310
|
+
↓
|
|
311
|
+
6. Resultados são registrados
|
|
312
|
+
↓
|
|
313
|
+
7. Usuário fornece feedback
|
|
314
|
+
↓
|
|
315
|
+
8. Sistema gera aprendizados
|
|
316
|
+
↓
|
|
317
|
+
9. Próxima tarefa usa aprendizados
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
## 🎉 Benefícios
|
|
321
|
+
|
|
322
|
+
- ✅ **Aprendizado Contínuo**: Agentes melhoram com o tempo
|
|
323
|
+
- ✅ **Seleção Inteligente**: Melhores agentes para cada tarefa
|
|
324
|
+
- ✅ **Evita Erros**: Aprende com falhas passadas
|
|
325
|
+
- ✅ **Personalização**: Adapta-se ao seu estilo
|
|
326
|
+
- ✅ **Transparência**: Histórico completo de decisões
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Árvore de Símbolos do Projeto
|
|
2
|
+
|
|
3
|
+
**Última atualização**: 2026-01-20 10:10
|
|
4
|
+
**Versão**: 1.0.0
|
|
5
|
+
|
|
6
|
+
Esta árvore mapeia a estrutura hierárquica de componentes, hooks, tipos e serviços do projeto.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 📁 Estrutura de Diretórios
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
app/
|
|
14
|
+
├── (auth)/
|
|
15
|
+
│ ├── login/
|
|
16
|
+
│ │ └── page.tsx → LoginPage
|
|
17
|
+
│ └── layout.tsx → AuthLayout
|
|
18
|
+
├── (dashboard)/
|
|
19
|
+
│ ├── page.tsx → DashboardPage
|
|
20
|
+
│ ├── production/
|
|
21
|
+
│ │ └── page.tsx → ProductionPage
|
|
22
|
+
│ ├── orders/
|
|
23
|
+
│ │ └── page.tsx → OrdersPage
|
|
24
|
+
│ ├── weighing/
|
|
25
|
+
│ │ └── page.tsx → WeighingPage
|
|
26
|
+
│ ├── financial/
|
|
27
|
+
│ │ └── page.tsx → FinancialPage
|
|
28
|
+
│ └── layout.tsx → DashboardLayout
|
|
29
|
+
└── layout.tsx → RootLayout
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 🧩 Componentes
|
|
35
|
+
|
|
36
|
+
### UI Primitives (`components/ui/`)
|
|
37
|
+
Componentes base do shadcn/ui:
|
|
38
|
+
- `Button` - Botão com variantes (default, outline, ghost, destructive, link)
|
|
39
|
+
- `Input` - Campo de entrada de texto
|
|
40
|
+
- `Card`, `CardHeader`, `CardContent`, `CardFooter` - Container de conteúdo
|
|
41
|
+
- `Dialog`, `DialogTrigger`, `DialogContent` - Modal/Dialog
|
|
42
|
+
- `Label` - Label para inputs
|
|
43
|
+
- `Table`, `TableHeader`, `TableBody`, `TableRow`, `TableCell` - Tabela
|
|
44
|
+
- `Select`, `SelectTrigger`, `SelectContent`, `SelectItem` - Dropdown
|
|
45
|
+
- `Tabs`, `TabsList`, `TabsTrigger`, `TabsContent` - Abas
|
|
46
|
+
|
|
47
|
+
### Common Components (`components/common/`)
|
|
48
|
+
Componentes reutilizáveis globais:
|
|
49
|
+
- `Header` - Cabeçalho do dashboard
|
|
50
|
+
- `Footer` - Rodapé (se existir)
|
|
51
|
+
- `Sidebar` - Menu lateral de navegação
|
|
52
|
+
- `LoadingSpinner` - Indicador de loading
|
|
53
|
+
- `ErrorBoundary` - Tratamento de erros React
|
|
54
|
+
|
|
55
|
+
### Page Components (`components/pages/`)
|
|
56
|
+
Componentes específicos de páginas:
|
|
57
|
+
- `DashboardView` - Visão geral do dashboard
|
|
58
|
+
- `ProductionView` - Gestão de produção
|
|
59
|
+
- `OrdersView` - Gestão de pedidos
|
|
60
|
+
- `WeighingView` - Sistema de pesagem
|
|
61
|
+
- `FinancialView` - Gestão financeira
|
|
62
|
+
|
|
63
|
+
### Feature Components
|
|
64
|
+
Componentes específicos por funcionalidade:
|
|
65
|
+
- **Production** (`components/production/`)
|
|
66
|
+
- `ProductionEventForm` - Formulário de eventos de produção
|
|
67
|
+
- `ProductionEventTable` - Tabela de eventos
|
|
68
|
+
- `PlantProductionCard` - Card de produção da planta
|
|
69
|
+
|
|
70
|
+
- **Orders** (`components/orders/`)
|
|
71
|
+
- `OrderForm` - Formulário de pedidos
|
|
72
|
+
- `OrderTable` - Tabela de pedidos
|
|
73
|
+
- `OrderDetailsModal` - Modal de detalhes
|
|
74
|
+
|
|
75
|
+
- **Weighing** (`components/weighing/`)
|
|
76
|
+
- `WeighingForm` - Formulário de pesagem
|
|
77
|
+
- `WeighingHistory` - Histórico de pesagens
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 🪝 Hooks Customizados
|
|
82
|
+
|
|
83
|
+
### Global Hooks (`hooks/`)
|
|
84
|
+
- `useAppCrud` - CRUD genérico para qualquer tabela Supabase
|
|
85
|
+
- **Funções**: `handleAdd`, `handleUpdate`, `handleDelete`
|
|
86
|
+
- **Estados**: `loading`, `error`
|
|
87
|
+
|
|
88
|
+
- `useAuth` - Gerenciamento de autenticação
|
|
89
|
+
- **Funções**: `signIn`, `signOut`, `signUp`
|
|
90
|
+
- **Estados**: `user`, `session`, `loading`
|
|
91
|
+
|
|
92
|
+
- `useAppLogic` - Lógica de negócio principal
|
|
93
|
+
- **Dados**: `orders`, `productionEvents`, `miningCycles`, `plantLogs`
|
|
94
|
+
- **Refreshers**: `refreshOrders`, `refreshProductionEvents`, etc.
|
|
95
|
+
|
|
96
|
+
### Feature Hooks
|
|
97
|
+
- `usePlantProduction` (`hooks/usePlantProduction.ts`) - Lógica de produção da planta
|
|
98
|
+
- `useOrderManagement` - Lógica de gestão de pedidos
|
|
99
|
+
- `useWeighing` - Lógica de pesagem
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 🛠 Services & APIs
|
|
104
|
+
|
|
105
|
+
### Supabase (`utils/supabase/`)
|
|
106
|
+
- `client.ts` - Cliente Supabase (browser)
|
|
107
|
+
- `server.ts` - Cliente Supabase (server-side)
|
|
108
|
+
|
|
109
|
+
### API Clients (`services/`)
|
|
110
|
+
- `orders.ts` - Funções de API para pedidos
|
|
111
|
+
- `production.ts` - Funções de API para produção
|
|
112
|
+
- `weighing.ts` - Funções de API para pesagem
|
|
113
|
+
- `financial.ts` - Funções de API para financeiro
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 📊 Types & Interfaces
|
|
118
|
+
|
|
119
|
+
### Database Types (`types/database.ts`)
|
|
120
|
+
Tipos gerados do Supabase:
|
|
121
|
+
- Todas as tabelas do banco de dados
|
|
122
|
+
|
|
123
|
+
### Domain Types (`types/`)
|
|
124
|
+
- `Order` - Pedido
|
|
125
|
+
- `ProductionEvent` - Evento de produção
|
|
126
|
+
- `MiningCycle` - Ciclo de mineração
|
|
127
|
+
- `PlantLog` - Log da planta
|
|
128
|
+
- `WeighingRecord` - Registro de pesagem
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
## 🔧 Utilitários
|
|
133
|
+
|
|
134
|
+
### Helpers (`lib/`)
|
|
135
|
+
- `utils.ts` - Funções utilitárias gerais (ex: `cn()` para classes)
|
|
136
|
+
- `format.ts` - Formatação de datas, números, moeda
|
|
137
|
+
- `validation.ts` - Schemas de validação Zod
|
|
138
|
+
|
|
139
|
+
### Constants (`constants/`)
|
|
140
|
+
- `TABLE_NAMES` - Nomes das tabelas do Supabase
|
|
141
|
+
```ts
|
|
142
|
+
{
|
|
143
|
+
orders: 'orders',
|
|
144
|
+
production_events: 'production_events',
|
|
145
|
+
mining_cycles: 'mining_cycles',
|
|
146
|
+
plant_logs: 'plant_logs'
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
- `ROLES` - Papéis de usuários
|
|
150
|
+
- `STATUS` - Status de pedidos, produção, etc.
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 🗃 Schemas Supabase
|
|
155
|
+
|
|
156
|
+
### Tabelas Principais
|
|
157
|
+
- `orders` - Pedidos expedidos
|
|
158
|
+
- `production_events` - Eventos de produção
|
|
159
|
+
- `mining_cycles` - Ciclos de mineração
|
|
160
|
+
- `plant_logs` - Logs da planta
|
|
161
|
+
- `weighing_records` - Registros de pesagem
|
|
162
|
+
- `users` - Usuários do sistema
|
|
163
|
+
- `profiles` - Perfis de usuários
|
|
164
|
+
|
|
165
|
+
### Views
|
|
166
|
+
- (Se houver views, listar aqui)
|
|
167
|
+
|
|
168
|
+
### Functions
|
|
169
|
+
- (Se houver functions, listar aqui)
|
|
170
|
+
|
|
171
|
+
---
|
|
172
|
+
|
|
173
|
+
## 📝 Notas
|
|
174
|
+
|
|
175
|
+
- Esta árvore é atualizada automaticamente pelo **Agente de Documentação**
|
|
176
|
+
- Ao adicionar novos componentes/hooks/services, eles devem ser registrados aqui
|
|
177
|
+
- Manter sincronizado com a estrutura real do código
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
**Gerado por**: Documentation Agent
|
|
182
|
+
**Próxima atualização**: Após próximo build
|
package/docs/VERSION.md
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# Version History
|
|
2
|
+
|
|
3
|
+
| Version | Date | Build | Description | Author |
|
|
4
|
+
|:---:|:---:|:---:|:---|:---:|
|
|
5
|
+
| 0.0.1 | 2026-01-09 | 2 | Fix Orders View "Green Screen" crash by adding safety guards to property accesses. | AI Agent |
|
|
6
|
+
| 0.0.0 | 2026-01-08 | 1 | Initial audit and global rules implementation start. | AI Agent |
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# Architecture: Triunfo Mineração - KP Fértil
|
|
2
|
+
|
|
3
|
+
> [!IMPORTANT]
|
|
4
|
+
> This document is the **Source of Truth (SOT)** for the application's architecture. Any major changes to hooks, services, pages, or database tables must be reflected here.
|
|
5
|
+
|
|
6
|
+
## Navigation & Routes
|
|
7
|
+
|
|
8
|
+
| View | Component | Description |
|
|
9
|
+
| :--- | :--- | :--- |
|
|
10
|
+
| `HOME` | `HomeView` | Welcome screen with quick access modules. |
|
|
11
|
+
| `DASHBOARD` | `Dashboard` | Admin control panel, metrics, and data management. |
|
|
12
|
+
| `CLIENTS` | `ClientsView` | Customer list and location management. |
|
|
13
|
+
| `ORDERS` | `OrdersView` | **(Current Focus)** Order management and tracking. |
|
|
14
|
+
| `WEIGHING` | `WeighingView` | Balance records and dispatch control. |
|
|
15
|
+
| `SCHEDULING` | `SchedulingView` | Loading schedules and logistics. |
|
|
16
|
+
| `GATE` | `GateView` | Security/Gate control for truck entry. |
|
|
17
|
+
| `FINANCIAL` | `FinancialView` | Billing and accounting integration. |
|
|
18
|
+
| `MY_ACCOUNT` | `MyAccountView` | User profile and preferences. |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Current Architecture (Monolith)
|
|
23
|
+
|
|
24
|
+
The application currently operates as a feature-rich monolith where `App.tsx` manages the majority of the global state and logic, distributing it via props to lazy-loaded views.
|
|
25
|
+
|
|
26
|
+
```mermaid
|
|
27
|
+
graph TD
|
|
28
|
+
App[App.tsx (God Component)]
|
|
29
|
+
App -->|Props: products, users...| Dashboard
|
|
30
|
+
App -->|Props: clients, orders...| ClientsView
|
|
31
|
+
App -->|Props: orders...| OrdersView
|
|
32
|
+
App -->|Props: records...| WeighingView
|
|
33
|
+
|
|
34
|
+
App --Owns--> State[Global State (All Data)]
|
|
35
|
+
App --Owns--> Logic[Business Logic & Handlers]
|
|
36
|
+
App --Owns--> Fetch[useSupabaseTable (Internal Hook)]
|
|
37
|
+
|
|
38
|
+
subgraph Services
|
|
39
|
+
Supabase[Supabase Client]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
App --> Supabase
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Target Architecture (Modular)
|
|
46
|
+
|
|
47
|
+
Transitioning towards a context-based and hook-driven architecture to improve maintainability and performance.
|
|
48
|
+
|
|
49
|
+
```mermaid
|
|
50
|
+
graph TD
|
|
51
|
+
Root[App.tsx (Router/Layout)]
|
|
52
|
+
|
|
53
|
+
subgraph Contexts
|
|
54
|
+
AuthCtx[AuthContext]
|
|
55
|
+
DataCtx[DataContext]
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
subgraph Hooks
|
|
59
|
+
useAuth
|
|
60
|
+
useSupabaseTable
|
|
61
|
+
useOrders
|
|
62
|
+
useClients
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
Root --> AuthCtx
|
|
66
|
+
Root --> DataCtx
|
|
67
|
+
|
|
68
|
+
DataCtx --> useSupabaseTable
|
|
69
|
+
|
|
70
|
+
Dashboard --> useOrders
|
|
71
|
+
ClientsView --> useClients
|
|
72
|
+
|
|
73
|
+
subgraph Dashboard_Module
|
|
74
|
+
Dashboard[Dashboard (Main)]
|
|
75
|
+
|
|
76
|
+
subgraph Dashboard_Hooks
|
|
77
|
+
useRegistration
|
|
78
|
+
useReports
|
|
79
|
+
useInvoices
|
|
80
|
+
useMaintenance
|
|
81
|
+
useLinkMapping
|
|
82
|
+
useHistory
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
Dashboard --> useRegistration
|
|
86
|
+
Dashboard --> useReports
|
|
87
|
+
Dashboard --> useInvoices
|
|
88
|
+
Dashboard --> useMaintenance
|
|
89
|
+
Dashboard --> useLinkMapping
|
|
90
|
+
Dashboard --> useHistory
|
|
91
|
+
|
|
92
|
+
Dashboard --> AnalyticsTab[AnalyticsTab]
|
|
93
|
+
Dashboard --> ReportsTab[ReportsTab]
|
|
94
|
+
Dashboard --> SettingsTab[SettingsTab]
|
|
95
|
+
|
|
96
|
+
Dashboard --> RegistrationTabs[Registration Tabs (Products, Users, etc.)]
|
|
97
|
+
RegistrationTabs --> GenericRegistrationTab
|
|
98
|
+
|
|
99
|
+
AnalyticsTab --> AnalyticsCards[cards/AnalyticsCards]
|
|
100
|
+
AnalyticsTab --> AnalyticsCharts[charts/AnalyticsCharts]
|
|
101
|
+
AnalyticsTab --> SalespersonTable[analytics/SalespersonTable]
|
|
102
|
+
end
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Database & Sync
|
|
108
|
+
|
|
109
|
+
- **Service**: Supabase (PostgreSQL).
|
|
110
|
+
- **Sync**: `useSyncQueue` handles offline operations and synchronization.
|
|
111
|
+
- **Policies**: Row Level Security (RLS) is applied to all sensitive tables.
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "wegho-agentes",
|
|
3
|
+
"version": "4.0.1",
|
|
4
|
+
"description": "Sistema de agentes especializados para Next.js + Supabase com validação automática de qualidade, segurança e arquitetura",
|
|
5
|
+
"main": ".agents/cli.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"wegho-agentes": ".agents/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"init": "npx tsx .agents/init.ts",
|
|
11
|
+
"install-agents": "node .agents/install.js",
|
|
12
|
+
"test": "jest",
|
|
13
|
+
"test:watch": "jest --watch",
|
|
14
|
+
"test:coverage": "jest --coverage",
|
|
15
|
+
"agent": "node .agents/cli.js"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"agents",
|
|
19
|
+
"nextjs",
|
|
20
|
+
"supabase",
|
|
21
|
+
"typescript",
|
|
22
|
+
"validation",
|
|
23
|
+
"security",
|
|
24
|
+
"architecture",
|
|
25
|
+
"quality",
|
|
26
|
+
"code-quality",
|
|
27
|
+
"automation"
|
|
28
|
+
],
|
|
29
|
+
"author": "Caleb Cordeirinho <cordeirinhocaleb@gmail.com>",
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+https://github.com/cordeirinhocaleb/wegho-agentes.git"
|
|
34
|
+
},
|
|
35
|
+
"engines": {
|
|
36
|
+
"node": ">=18.0.0"
|
|
37
|
+
},
|
|
38
|
+
"peerDependencies": {
|
|
39
|
+
"typescript": "^5.0.0"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/jest": "^30.0.0",
|
|
43
|
+
"@types/node": "^25.0.10",
|
|
44
|
+
"jest": "^30.2.0",
|
|
45
|
+
"ts-jest": "^29.4.6"
|
|
46
|
+
},
|
|
47
|
+
"files": [
|
|
48
|
+
".agents/**/*",
|
|
49
|
+
"docs/**/*",
|
|
50
|
+
"README.md",
|
|
51
|
+
"INSTALL.md",
|
|
52
|
+
"LICENSE"
|
|
53
|
+
],
|
|
54
|
+
"publishConfig": {
|
|
55
|
+
"access": "public"
|
|
56
|
+
},
|
|
57
|
+
"dependencies": {
|
|
58
|
+
"glob": "^13.0.0"
|
|
59
|
+
}
|
|
60
|
+
}
|