mcp-lab-agent 2.1.3 → 2.1.6
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/README.md +187 -227
- package/dist/index.js +447 -19
- package/dist/index.js.map +1 -1
- package/learning-hub/README.md +66 -0
- package/learning-hub/package.json +17 -0
- package/learning-hub/src/dashboard.html +73 -0
- package/learning-hub/src/server.js +129 -0
- package/learning-hub/src/store.js +114 -0
- package/package.json +7 -3
- package/slack-bot/.env.example +17 -2
- package/slack-bot/CREDENTIALS.md +23 -0
- package/slack-bot/README.md +87 -16
- package/slack-bot/TROUBLESHOOTING.md +73 -0
- package/slack-bot/check-config.js +117 -0
- package/slack-bot/package.json +2 -1
- package/slack-bot/setup.js +14 -8
- package/slack-bot/src/config.js +25 -9
- package/slack-bot/src/index.js +46 -12
- package/slack-bot/src/workers/qa-job.js +17 -10
package/README.md
CHANGED
|
@@ -4,321 +4,285 @@
|
|
|
4
4
|
[](https://nodejs.org)
|
|
5
5
|
[](LICENSE)
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**Sistema de inteligência em qualidade de software.** Executa testes, analisa causas de falha, corrige automaticamente e aprende padrões que melhoram as próximas gerações. Não é ferramenta de QA — é um sistema que entende qualidade. Integra ao Cursor, Cline, Windsurf ou Slack.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
|
|
12
|
-
- **Prevê:** "checkout vai ficar flaky"
|
|
13
|
-
- **Recomenda:** "faça isso agora: 1, 2, 3"
|
|
14
|
-
- **Aprende:** Taxa de sucesso aumenta com o tempo
|
|
9
|
+
```bash
|
|
10
|
+
npx mcp-lab-agent auto "login flow" --max-retries 5
|
|
11
|
+
```
|
|
15
12
|
|
|
16
13
|
**1 comando. Análise completa.**
|
|
17
14
|
|
|
15
|
+
> Testes falham e você não sabe por quê? Executores rodam mas não aprendem. O mcp-lab-agent analisa causas, corrige e acumula conhecimento.
|
|
16
|
+
|
|
18
17
|
---
|
|
19
18
|
|
|
20
|
-
## O
|
|
19
|
+
## O que é
|
|
21
20
|
|
|
22
|
-
|
|
23
|
-
|-------------------|-------------------|
|
|
24
|
-
| Só executam | **Executa + Analisa + Recomenda** |
|
|
25
|
-
| "teste falhou" | **"login falha 30% das vezes (timing)"** |
|
|
26
|
-
| Sem contexto | **"src/payment/ sem testes (RISCO ALTO)"** |
|
|
27
|
-
| Você decide o que fazer | **"Faça isso agora: 1, 2, 3"** |
|
|
28
|
-
| Sem aprendizado | **Taxa de sucesso aumenta com o tempo** |
|
|
21
|
+
O **mcp-lab-agent** é um sistema de inteligência em qualidade de software — não uma ferramenta de teste isolada. Ele entende o seu projeto, identifica frameworks (Cypress, Playwright, Jest, Appium, Robot, pytest e outros), gera testes com base em contexto e memória, executa, analisa falhas e aplica correções automaticamente. O valor central está no **learning**: cada correção bem-sucedida é salva e usada nas próximas gerações, aumentando a taxa de sucesso na primeira tentativa.
|
|
29
22
|
|
|
30
|
-
**
|
|
23
|
+
Com o **Learning Hub**, os aprendizados são centralizados e agregados entre projetos e — em deploy compartilhado — entre times e empresas, formando uma base de conhecimento em qualidade que escala além do repositório.
|
|
31
24
|
|
|
32
|
-
|
|
33
|
-
npx mcp-lab-agent auto "login flow" --max-retries 5
|
|
34
|
-
```
|
|
25
|
+
---
|
|
35
26
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
27
|
+
## Para quem
|
|
28
|
+
|
|
29
|
+
| Perfil | Benefício |
|
|
30
|
+
|--------|-----------|
|
|
31
|
+
| **QAs e SDETs** | Geração assistida de testes, análise de falhas com sugestões de correção, detecção de flakiness |
|
|
32
|
+
| **Desenvolvedores** | "Por que falhou?", análise de arquivos e métodos, integração direta no IDE |
|
|
33
|
+
| **Tech leads** | Visão de risco por área, métricas de estabilidade, relatórios para decisão |
|
|
34
|
+
| **Empresas** | Learning Hub centralizado, escala entre squads e organizações, CI/CD, Ollama (offline), Slack para QA via chat |
|
|
35
|
+
|
|
36
|
+
---
|
|
42
37
|
|
|
43
|
-
|
|
38
|
+
## Comparação
|
|
39
|
+
|
|
40
|
+
| Outras ferramentas | mcp-lab-agent |
|
|
41
|
+
|--------------------|---------------|
|
|
42
|
+
| Só executam testes | Executa, analisa causa da falha e sugere correção |
|
|
43
|
+
| Saída genérica "teste falhou" | Diagnóstico: "login falha 30% das vezes (timing)" |
|
|
44
|
+
| Sem visão de risco | Identifica áreas sem testes e classifica risco (alto/médio/baixo) |
|
|
45
|
+
| Sem memória entre execuções | Learning system: cada padrão de falha vira correção aplicada nas próximas gerações |
|
|
46
|
+
| Uma ferramenta por tarefa | Sistema de inteligência: geração, execução, análise, relatórios, predição, learning |
|
|
44
47
|
|
|
45
48
|
---
|
|
46
49
|
|
|
47
|
-
##
|
|
50
|
+
## Learning System
|
|
51
|
+
|
|
52
|
+
**Como aprende:** O agente detecta o padrão de falha em cada execução (regex + contexto) e armazena a correção aplicada na memória. Nas próximas gerações, esses aprendizados são injetados no prompt do LLM e nas práticas obrigatórias.
|
|
48
53
|
|
|
49
|
-
**
|
|
54
|
+
**Baseado em quê:** Tipo de erro (classificado automaticamente), framework, trecho de correção e resultado (passou ou não).
|
|
55
|
+
|
|
56
|
+
**Melhora quanto:** Taxa de sucesso na primeira tentativa (%), rastreável em `mcp-lab-agent stats` e `get_learning_report`. Quanto mais correções bem-sucedidas, maior a tendência de os próximos testes passarem de primeira.
|
|
57
|
+
|
|
58
|
+
**Exemplos de padrões aprendidos:**
|
|
59
|
+
|
|
60
|
+
| Padrão detectado | Correção aplicada |
|
|
61
|
+
|------------------|-------------------|
|
|
62
|
+
| `element_not_visible` | `waitForDisplayed()`, `should('be.visible')` antes de interagir |
|
|
63
|
+
| `element_not_rendered` | `waitForSelector`, `waitFor({ state: 'attached' })` |
|
|
64
|
+
| `selector` instável | Sugestão de `data-testid`, `role`, seletores acessíveis |
|
|
65
|
+
| `timing` | Retry automático, waits explícitos, timeout ajustado |
|
|
66
|
+
| `element_stale` | Re-localizar elemento antes de cada ação |
|
|
67
|
+
| `mobile_mapping_invisible` | Mapeamento visível no topo do spec (Page Object) |
|
|
68
|
+
|
|
69
|
+
Cada correção bem-sucedida aumenta a taxa de sucesso futura.
|
|
50
70
|
|
|
51
71
|
---
|
|
52
72
|
|
|
53
73
|
## Quick Start
|
|
54
74
|
|
|
55
|
-
### Análise
|
|
75
|
+
### CLI — Análise completa
|
|
56
76
|
|
|
57
77
|
```bash
|
|
58
|
-
# Análise completa: executa, analisa, prevê e recomenda
|
|
78
|
+
# Análise completa: executa testes, analisa estabilidade, prevê riscos e recomenda ações
|
|
59
79
|
npx mcp-lab-agent analyze
|
|
60
80
|
|
|
61
|
-
# Modo autônomo: gera, roda, corrige e aprende
|
|
81
|
+
# Modo autônomo: gera, roda, corrige e aprende (até passar ou max_retries)
|
|
62
82
|
npx mcp-lab-agent auto "login flow" --max-retries 5
|
|
63
83
|
|
|
64
|
-
#
|
|
84
|
+
# Métricas de aprendizado e taxa de sucesso
|
|
65
85
|
npx mcp-lab-agent stats
|
|
86
|
+
|
|
87
|
+
# Relatório de evolução com recomendações para aprimorar o código
|
|
88
|
+
npx mcp-lab-agent report --full
|
|
66
89
|
```
|
|
67
90
|
|
|
68
|
-
###
|
|
91
|
+
### IDE — Cursor, Cline, Windsurf
|
|
69
92
|
|
|
70
|
-
|
|
93
|
+
Adicione ao `~/.cursor/mcp.json`:
|
|
71
94
|
|
|
72
95
|
```json
|
|
73
96
|
{
|
|
74
97
|
"mcpServers": {
|
|
75
98
|
"qa-lab-agent": {
|
|
76
99
|
"command": "npx",
|
|
77
|
-
"args": ["-y", "mcp-lab-agent"],
|
|
100
|
+
"args": ["-y", "mcp-lab-agent@latest"],
|
|
78
101
|
"cwd": "${workspaceFolder}"
|
|
79
102
|
}
|
|
80
103
|
}
|
|
81
104
|
}
|
|
82
105
|
```
|
|
83
106
|
|
|
84
|
-
|
|
107
|
+
Use no chat: *"Detecte a estrutura do meu projeto"*, *"Gere teste para login"*, *"Por que o teste falhou?"*, *"Avalie http://localhost:3000 no browser"*.
|
|
85
108
|
|
|
109
|
+
### Slack Bot
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
npx mcp-lab-agent slack-bot
|
|
86
113
|
```
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
114
|
+
|
|
115
|
+
Funciona em ambiente corporativo (Socket Mode, sem URL pública). Configure `botToken` e `appToken` em `~/.cursor/mcp.json`. Onde obter: [slack-bot/CREDENTIALS.md](slack-bot/CREDENTIALS.md). Detalhes: [slack-bot/README.md](slack-bot/README.md).
|
|
116
|
+
|
|
117
|
+
### Learning Hub — Inteligência centralizada
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
npx mcp-lab-agent learning-hub
|
|
93
121
|
```
|
|
94
122
|
|
|
95
|
-
|
|
123
|
+
API e Dashboard em `http://localhost:3847`. Configure no `.env` do projeto:
|
|
96
124
|
|
|
97
|
-
|
|
125
|
+
```
|
|
126
|
+
LEARNING_HUB_URL=http://localhost:3847
|
|
127
|
+
LEARNING_HUB_PROJECT_ID=meu-projeto
|
|
128
|
+
```
|
|
98
129
|
|
|
99
|
-
O
|
|
130
|
+
O agente envia learnings automaticamente. O Hub agrega padrões e fornece recomendações. Detalhes: [learning-hub/README.md](learning-hub/README.md).
|
|
100
131
|
|
|
101
|
-
|
|
102
|
-
flowchart TB
|
|
103
|
-
subgraph IDE["🖥️ IDE (Cursor, Cline, Windsurf)"]
|
|
104
|
-
Chat[Chat do usuário]
|
|
105
|
-
end
|
|
132
|
+
---
|
|
106
133
|
|
|
107
|
-
|
|
108
|
-
Auto["mcp-lab-agent auto"]
|
|
109
|
-
Stats["mcp-lab-agent stats"]
|
|
110
|
-
end
|
|
134
|
+
## Arquitetura
|
|
111
135
|
|
|
112
|
-
|
|
113
|
-
|
|
136
|
+
```mermaid
|
|
137
|
+
flowchart TB
|
|
138
|
+
subgraph Input["Entrada"]
|
|
139
|
+
CLI[CLI: auto, stats, report]
|
|
140
|
+
IDE[IDE: Cursor, Cline, Windsurf]
|
|
141
|
+
Slack[Slack Bot]
|
|
114
142
|
end
|
|
115
143
|
|
|
116
144
|
subgraph Agent["mcp-lab-agent"]
|
|
117
145
|
Router[qa_route_task]
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
G[generation<br/>generate_tests, write_test]
|
|
124
|
-
A[analysis<br/>analyze_failures, por_que_falhou, suggest_selector_fix]
|
|
125
|
-
B[browser<br/>web_eval_browser]
|
|
126
|
-
R[reporting<br/>create_bug_report, get_business_metrics]
|
|
127
|
-
L[learning<br/>qa_learning_stats]
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
subgraph Brain["🧠 Núcleo Inteligente"]
|
|
131
|
-
MR[Model Router<br/>simples → Groq/Flash | complexo → 70B/Pro]
|
|
132
|
-
PM[Project Memory<br/>.qa-lab-memory.json]
|
|
133
|
-
FD[Flaky Detection<br/>timing, selector, network]
|
|
134
|
-
LS[Learning System<br/>salva correções bem-sucedidas]
|
|
135
|
-
end
|
|
146
|
+
Auto[qa_auto]
|
|
147
|
+
MR[Model Router]
|
|
148
|
+
FD[Flaky Detection]
|
|
149
|
+
PM[Project Memory]
|
|
150
|
+
LS[Learning System]
|
|
136
151
|
end
|
|
137
152
|
|
|
138
|
-
subgraph
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
153
|
+
subgraph Tools["Ferramentas"]
|
|
154
|
+
D[detect_project, list_test_files]
|
|
155
|
+
G[generate_tests, write_test, map_mobile_elements]
|
|
156
|
+
E[run_tests, get_test_coverage]
|
|
157
|
+
A[analyze_failures, suggest_fix, por_que_falhou]
|
|
158
|
+
R[create_bug_report, get_learning_report]
|
|
142
159
|
end
|
|
143
160
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
Auto --> AutoTool
|
|
150
|
-
Stats --> L
|
|
151
|
-
|
|
152
|
-
AutoTool --> G
|
|
153
|
-
AutoTool --> E
|
|
154
|
-
AutoTool --> A
|
|
155
|
-
AutoTool --> LS
|
|
156
|
-
|
|
157
|
-
D & E & G & A & R --> Proj
|
|
158
|
-
B --> PW
|
|
159
|
-
B --> Proj
|
|
160
|
-
|
|
161
|
-
G & A --> MR
|
|
162
|
-
MR --> LLM
|
|
163
|
-
G & A & AutoTool --> PM
|
|
164
|
-
A & AutoTool --> FD
|
|
165
|
-
AutoTool --> LS
|
|
166
|
-
LS --> PM
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
**Fluxo autônomo (qa_auto):**
|
|
170
|
-
1. **Detecta** projeto (frameworks, pastas, fluxos)
|
|
171
|
-
2. **Gera** teste usando LLM + memória de aprendizados
|
|
172
|
-
3. **Executa** o teste
|
|
173
|
-
4. **Se falhar:** analisa (flaky detection), corrige e tenta de novo
|
|
174
|
-
5. **Aprende:** salva correções bem-sucedidas na memória
|
|
175
|
-
6. **Repete** até passar ou atingir max_retries
|
|
176
|
-
|
|
177
|
-
**Fluxo resumido (IDE):**
|
|
178
|
-
1. **Usuário** fala no chat do IDE
|
|
179
|
-
2. **MCP** entrega a mensagem ao `mcp-lab-agent`
|
|
180
|
-
3. **qa_route_task** sugere o agente certo (detection, execution, generation, etc.)
|
|
181
|
-
4. **Ferramentas** executam no projeto (detectar, rodar, gerar, analisar)
|
|
182
|
-
5. **Model Router** escolhe o modelo: tarefas simples → barato; complexas → mais capaz
|
|
183
|
-
6. **Project Memory** guarda padrões e fluxos para próximas gerações
|
|
184
|
-
7. **Flaky Detection** identifica testes intermitentes e sugere correções
|
|
161
|
+
subgraph Ext["Externo"]
|
|
162
|
+
LLM[LLM: Groq, Gemini, OpenAI, Ollama]
|
|
163
|
+
Hub[Learning Hub]
|
|
164
|
+
end
|
|
185
165
|
|
|
186
|
-
|
|
166
|
+
Input --> Router
|
|
167
|
+
Router --> Auto
|
|
168
|
+
Auto --> G & E & A
|
|
169
|
+
G & A --> MR --> LLM
|
|
170
|
+
A --> FD
|
|
171
|
+
Auto --> LS --> PM
|
|
172
|
+
PM -.-> Hub
|
|
173
|
+
Router --> D & G & E & A & R
|
|
174
|
+
```
|
|
187
175
|
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
| **Execução** | run_tests, watch, coverage (Jest/Vitest) |
|
|
196
|
-
| **Geração** | Testes via LLM (Groq, Gemini, OpenAI), templates |
|
|
197
|
-
| **Análise** | analyze_failures, por_que_falhou, suggest_fix, suggest_selector_fix |
|
|
198
|
-
| **Browser** | web_eval_browser — screenshots, network, console (Playwright opcional) |
|
|
199
|
-
| **Relatórios** | Bug reports em Markdown, métricas de negócio |
|
|
200
|
-
| **Flaky-aware** | Detecta timing, selector, network; sugere retries |
|
|
201
|
-
| **Model routing** | Tarefas simples → modelo barato; complexas → modelo forte |
|
|
202
|
-
| **Memória** | Cache em .qa-lab-memory.json, qa-lab-flows.json |
|
|
176
|
+
**Fluxo `qa_auto`:**
|
|
177
|
+
1. Detecta projeto (frameworks, pastas, fluxos)
|
|
178
|
+
2. Gera teste com LLM + memória de aprendizados
|
|
179
|
+
3. Executa o teste
|
|
180
|
+
4. Se falhar: analisa (flaky detection), corrige e tenta novamente
|
|
181
|
+
5. Aprende e salva correções na memória
|
|
182
|
+
6. Repete até passar ou atingir `max_retries`
|
|
203
183
|
|
|
204
184
|
---
|
|
205
185
|
|
|
206
|
-
##
|
|
186
|
+
## Capacidades
|
|
207
187
|
|
|
208
|
-
|
|
209
|
-
mcp-lab-agent [comando]
|
|
210
|
-
```
|
|
188
|
+
### Automação e geração
|
|
211
189
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
| `stats` | **[NOVO]** Mostra estatísticas de aprendizado (taxa de sucesso, correções, etc.) |
|
|
217
|
-
| `detect [--json]` | Detecta frameworks e estrutura do projeto |
|
|
218
|
-
| `route <tarefa>` | Sugere qual ferramenta usar |
|
|
219
|
-
| `list` | Lista agentes e ferramentas disponíveis |
|
|
220
|
-
| `--help` | Mostra ajuda |
|
|
221
|
-
|
|
222
|
-
**Exemplos:**
|
|
223
|
-
```bash
|
|
224
|
-
mcp-lab-agent auto "login flow" --max-retries 5
|
|
225
|
-
mcp-lab-agent stats
|
|
226
|
-
mcp-lab-agent detect
|
|
227
|
-
mcp-lab-agent route "rodar os testes"
|
|
228
|
-
mcp-lab-agent list
|
|
229
|
-
```
|
|
190
|
+
- **Modo autônomo** (`qa_auto`): gera, executa, analisa, corrige e aprende em loop
|
|
191
|
+
- **Geração com LLM**: Groq, Gemini, OpenAI ou Ollama (100% offline)
|
|
192
|
+
- **Mapeamento mobile** (`map_mobile_elements`): elementos em Appium/Detox
|
|
193
|
+
- **Templates**: waits inteligentes e assert final obrigatório em todo teste gerado
|
|
230
194
|
|
|
231
|
-
|
|
195
|
+
### Análise e diagnóstico
|
|
232
196
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
197
|
+
- **Detecção de falhas**: timing, selector, element_not_rendered, element_not_visible, element_stale, mobile_mapping_invisible
|
|
198
|
+
- **Mensagens contextualizadas**: cada tipo de erro tem explicação e sugestão específica
|
|
199
|
+
- **Análise de estabilidade**: taxa de falha por teste, identificação de flaky
|
|
200
|
+
- **Predição de flakiness** (`qa_predict_flaky`): risco antes de o problema aparecer
|
|
201
|
+
- **Análise de métodos** (`analyze_file_methods`): varredura por método do arquivo
|
|
236
202
|
|
|
237
|
-
###
|
|
203
|
+
### Relatórios e métricas
|
|
238
204
|
|
|
239
|
-
**
|
|
240
|
-
-
|
|
241
|
-
-
|
|
242
|
-
-
|
|
205
|
+
- **Bug reports** em Markdown
|
|
206
|
+
- **Métricas de negócio** (se `qa-lab-flows.json` configurado)
|
|
207
|
+
- **Relatório de evolução** (`get_learning_report`): padrões por tipo, recomendações
|
|
208
|
+
- **Benchmark** (`qa_compare_with_industry`): comparação com padrões do mercado
|
|
243
209
|
|
|
244
|
-
|
|
245
|
-
```yaml
|
|
246
|
-
# .github/workflows/qa.yml
|
|
247
|
-
- run: npx mcp-lab-agent auto "smoke tests" --max-retries 2
|
|
248
|
-
- run: npx mcp-lab-agent stats
|
|
249
|
-
```
|
|
210
|
+
### Memória e Learning Hub
|
|
250
211
|
|
|
251
|
-
**
|
|
252
|
-
-
|
|
253
|
-
- `stats` retorna JSON estruturado
|
|
254
|
-
- Integração com Grafana/DataDog via script
|
|
212
|
+
- **Memória local**: `.qa-lab-memory.json` por projeto
|
|
213
|
+
- **Learning Hub**: API central (`POST /learning`, `GET /patterns`), Dashboard, sync automático entre projetos
|
|
255
214
|
|
|
256
|
-
|
|
257
|
-
- Exportar/importar memórias entre projetos
|
|
258
|
-
- Central de aprendizados da empresa
|
|
259
|
-
- Padrões globais + overrides locais
|
|
215
|
+
### Frameworks suportados
|
|
260
216
|
|
|
261
|
-
|
|
262
|
-
- `qa-lab-flows.json` para fluxos de negócio específicos
|
|
263
|
-
- Variáveis de ambiente para modelos customizados
|
|
264
|
-
- Extensível via MCP tools
|
|
217
|
+
11+ frameworks: Cypress, Playwright, WebdriverIO, Jest, Vitest, Mocha, Robot Framework, pytest, Behave, Appium, Detox.
|
|
265
218
|
|
|
266
219
|
---
|
|
267
220
|
|
|
268
|
-
##
|
|
221
|
+
## CLI
|
|
269
222
|
|
|
270
|
-
|
|
223
|
+
| Comando | Descrição |
|
|
224
|
+
|---------|-----------|
|
|
225
|
+
| *(sem args)* | Inicia servidor MCP (modo IDE) |
|
|
226
|
+
| `learning-hub` | API + Dashboard (porta 3847) |
|
|
227
|
+
| `slack-bot` | Bot Slack (Socket Mode) |
|
|
228
|
+
| `analyze` | Análise completa do projeto |
|
|
229
|
+
| `auto <descrição> [--max-retries N]` | Modo autônomo (default: 3 tentativas) |
|
|
230
|
+
| `stats` | Estatísticas de aprendizado |
|
|
231
|
+
| `report [--full]` | Relatório de evolução |
|
|
232
|
+
| `detect [--json]` | Detecta frameworks e estrutura |
|
|
233
|
+
| `route <tarefa>` | Sugere ferramenta |
|
|
234
|
+
| `list` | Lista agentes e ferramentas |
|
|
271
235
|
|
|
272
236
|
```bash
|
|
273
|
-
#
|
|
274
|
-
|
|
237
|
+
# Exemplos de uso
|
|
238
|
+
mcp-lab-agent learning-hub # Inicia Hub (porta 3847)
|
|
239
|
+
mcp-lab-agent analyze # Análise completa
|
|
240
|
+
mcp-lab-agent auto "login flow" # Modo autônomo
|
|
241
|
+
mcp-lab-agent stats # Taxa de sucesso, aprendizados
|
|
242
|
+
mcp-lab-agent report --full # Relatório com recomendações
|
|
275
243
|
```
|
|
276
244
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
```bash
|
|
280
|
-
# 1. Instale o Ollama
|
|
281
|
-
brew install ollama # macOS
|
|
282
|
-
# ou: curl -fsSL https://ollama.com/install.sh | sh # Linux
|
|
283
|
-
|
|
284
|
-
# 2. Baixe o modelo
|
|
285
|
-
ollama pull llama3.1:8b
|
|
286
|
-
|
|
287
|
-
# 3. Inicie
|
|
288
|
-
ollama serve
|
|
289
|
-
|
|
290
|
-
# 4. Pronto! O agente detecta automaticamente
|
|
291
|
-
npx mcp-lab-agent auto "login flow"
|
|
292
|
-
```
|
|
245
|
+
---
|
|
293
246
|
|
|
294
|
-
|
|
247
|
+
## Escalabilidade e uso em produção
|
|
295
248
|
|
|
296
|
-
|
|
249
|
+
- **Por projeto**: memória local (`.qa-lab-memory.json`) isolada por repositório
|
|
250
|
+
- **Entre times**: Learning Hub agrega padrões por `projectId`; Dashboard compartilhado
|
|
251
|
+
- **Entre empresas**: um Hub pode servir múltiplas organizações; padrões cross-org (ex.: "Playwright + selector instável" em 15 projetos) viram recomendações globais
|
|
252
|
+
- **CI/CD**: integração em GitHub Actions, GitLab CI, Jenkins
|
|
253
|
+
- **Métricas exportáveis**: JSON estruturado para Grafana, DataDog, dashboards internos
|
|
254
|
+
- **Ollama**: 100% offline; adequado para ambientes corporativos restritivos
|
|
255
|
+
- **LLM interno**: endpoint customizado da empresa
|
|
297
256
|
|
|
298
|
-
|
|
299
|
-
# .env
|
|
300
|
-
QA_LAB_LLM_BASE_URL=https://llm-interno.empresa.com/v1
|
|
301
|
-
QA_LAB_LLM_API_KEY=sua-key-interna
|
|
302
|
-
```
|
|
257
|
+
---
|
|
303
258
|
|
|
304
|
-
|
|
259
|
+
## Configuração
|
|
305
260
|
|
|
306
|
-
### Variáveis de ambiente (
|
|
261
|
+
### Variáveis de ambiente (opcionais)
|
|
307
262
|
|
|
308
263
|
| Variável | Uso |
|
|
309
264
|
|----------|-----|
|
|
310
|
-
| `GROQ_API_KEY` | Groq
|
|
265
|
+
| `GROQ_API_KEY` | Groq |
|
|
311
266
|
| `GEMINI_API_KEY` | Google Gemini |
|
|
312
267
|
| `OPENAI_API_KEY` | OpenAI |
|
|
313
|
-
| `OLLAMA_BASE_URL` | Ollama
|
|
314
|
-
| `QA_LAB_LLM_BASE_URL` |
|
|
315
|
-
| `QA_LAB_LLM_API_KEY` | API key
|
|
268
|
+
| `OLLAMA_BASE_URL` | Ollama (default: http://localhost:11434) |
|
|
269
|
+
| `QA_LAB_LLM_BASE_URL` | LLM customizado (empresa) |
|
|
270
|
+
| `QA_LAB_LLM_API_KEY` | API key do LLM |
|
|
316
271
|
| `QA_LAB_LLM_SIMPLE` | Modelo para tarefas simples |
|
|
317
272
|
| `QA_LAB_LLM_COMPLEX` | Modelo para tarefas complexas |
|
|
273
|
+
| `LEARNING_HUB_URL` | URL do Learning Hub |
|
|
274
|
+
| `LEARNING_HUB_PROJECT_ID` | ID do projeto no Hub |
|
|
318
275
|
|
|
319
|
-
###
|
|
276
|
+
### Ollama (offline)
|
|
320
277
|
|
|
321
|
-
|
|
278
|
+
```bash
|
|
279
|
+
brew install ollama
|
|
280
|
+
ollama pull llama3.1:8b
|
|
281
|
+
ollama serve
|
|
282
|
+
npx mcp-lab-agent auto "login flow"
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### Modo browser (Playwright)
|
|
322
286
|
|
|
323
287
|
```bash
|
|
324
288
|
npm install playwright
|
|
@@ -328,13 +292,9 @@ npm install playwright
|
|
|
328
292
|
|
|
329
293
|
## Documentação
|
|
330
294
|
|
|
331
|
-
-
|
|
332
|
-
-
|
|
333
|
-
-
|
|
334
|
-
- **[CHANGELOG.md](CHANGELOG.md)** — Histórico de versões
|
|
335
|
-
- **[MIGRATION_V2.md](MIGRATION_V2.md)** — Guia de migração da v1.x
|
|
336
|
-
|
|
337
|
-
Documentação completa (local): `docs/`
|
|
295
|
+
- [CHANGELOG.md](CHANGELOG.md) — Histórico de versões
|
|
296
|
+
- [slack-bot/README.md](slack-bot/README.md) — Slack Bot
|
|
297
|
+
- [learning-hub/README.md](learning-hub/README.md) — Learning Hub
|
|
338
298
|
|
|
339
299
|
---
|
|
340
300
|
|
|
@@ -350,7 +310,7 @@ npm test
|
|
|
350
310
|
|
|
351
311
|
| Script | Descrição |
|
|
352
312
|
|--------|-----------|
|
|
353
|
-
| `npm run build` | Build
|
|
313
|
+
| `npm run build` | Build (tsup) |
|
|
354
314
|
| `npm test` | Testes (Vitest) |
|
|
355
315
|
| `npm run test:coverage` | Cobertura |
|
|
356
316
|
| `npm run dev` | Build em watch |
|