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