mcp-lab-agent 2.1.4 → 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 +190 -224
- package/dist/index.js +436 -20
- 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 +71 -16
- package/slack-bot/TROUBLESHOOTING.md +73 -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,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
|
+
---
|
|
37
|
+
|
|
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 |
|
|
47
|
+
|
|
48
|
+
---
|
|
49
|
+
|
|
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.
|
|
53
|
+
|
|
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.
|
|
42
57
|
|
|
43
|
-
**
|
|
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.
|
|
44
70
|
|
|
45
71
|
---
|
|
46
72
|
|
|
47
73
|
## Quick Start
|
|
48
74
|
|
|
49
|
-
### Análise
|
|
75
|
+
### CLI — Análise completa
|
|
50
76
|
|
|
51
77
|
```bash
|
|
52
|
-
# Análise completa: executa, analisa, prevê e recomenda
|
|
78
|
+
# Análise completa: executa testes, analisa estabilidade, prevê riscos e recomenda ações
|
|
53
79
|
npx mcp-lab-agent analyze
|
|
54
80
|
|
|
55
|
-
# Modo autônomo: gera, roda, corrige e aprende
|
|
81
|
+
# Modo autônomo: gera, roda, corrige e aprende (até passar ou max_retries)
|
|
56
82
|
npx mcp-lab-agent auto "login flow" --max-retries 5
|
|
57
83
|
|
|
58
|
-
#
|
|
84
|
+
# Métricas de aprendizado e taxa de sucesso
|
|
59
85
|
npx mcp-lab-agent stats
|
|
60
|
-
```
|
|
61
86
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
```bash
|
|
65
|
-
npx mcp-lab-agent slack-bot
|
|
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
|
-
|
|
71
|
-
|
|
72
|
-
**1. Configure o MCP** (`~/.cursor/mcp.json`):
|
|
93
|
+
Adicione ao `~/.cursor/mcp.json`:
|
|
73
94
|
|
|
74
95
|
```json
|
|
75
96
|
{
|
|
76
97
|
"mcpServers": {
|
|
77
98
|
"qa-lab-agent": {
|
|
78
99
|
"command": "npx",
|
|
79
|
-
"args": ["-y", "mcp-lab-agent"],
|
|
100
|
+
"args": ["-y", "mcp-lab-agent@latest"],
|
|
80
101
|
"cwd": "${workspaceFolder}"
|
|
81
102
|
}
|
|
82
103
|
}
|
|
83
104
|
}
|
|
84
105
|
```
|
|
85
106
|
|
|
86
|
-
|
|
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"*.
|
|
108
|
+
|
|
109
|
+
### Slack Bot
|
|
87
110
|
|
|
111
|
+
```bash
|
|
112
|
+
npx mcp-lab-agent slack-bot
|
|
88
113
|
```
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
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
|
|
95
121
|
```
|
|
96
122
|
|
|
97
|
-
|
|
123
|
+
API e Dashboard em `http://localhost:3847`. Configure no `.env` do projeto:
|
|
98
124
|
|
|
99
|
-
|
|
125
|
+
```
|
|
126
|
+
LEARNING_HUB_URL=http://localhost:3847
|
|
127
|
+
LEARNING_HUB_PROJECT_ID=meu-projeto
|
|
128
|
+
```
|
|
100
129
|
|
|
101
|
-
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).
|
|
102
131
|
|
|
103
|
-
|
|
104
|
-
flowchart TB
|
|
105
|
-
subgraph IDE["🖥️ IDE (Cursor, Cline, Windsurf)"]
|
|
106
|
-
Chat[Chat do usuário]
|
|
107
|
-
end
|
|
132
|
+
---
|
|
108
133
|
|
|
109
|
-
|
|
110
|
-
Auto["mcp-lab-agent auto"]
|
|
111
|
-
Stats["mcp-lab-agent stats"]
|
|
112
|
-
end
|
|
134
|
+
## Arquitetura
|
|
113
135
|
|
|
114
|
-
|
|
115
|
-
|
|
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]
|
|
116
142
|
end
|
|
117
143
|
|
|
118
144
|
subgraph Agent["mcp-lab-agent"]
|
|
119
145
|
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
|
|
146
|
+
Auto[qa_auto]
|
|
147
|
+
MR[Model Router]
|
|
148
|
+
FD[Flaky Detection]
|
|
149
|
+
PM[Project Memory]
|
|
150
|
+
LS[Learning System]
|
|
138
151
|
end
|
|
139
152
|
|
|
140
|
-
subgraph
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
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]
|
|
144
159
|
end
|
|
145
160
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
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
|
|
161
|
+
subgraph Ext["Externo"]
|
|
162
|
+
LLM[LLM: Groq, Gemini, OpenAI, Ollama]
|
|
163
|
+
Hub[Learning Hub]
|
|
164
|
+
end
|
|
165
|
+
|
|
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
|
|
169
174
|
```
|
|
170
175
|
|
|
171
|
-
**Fluxo
|
|
172
|
-
1.
|
|
173
|
-
2.
|
|
174
|
-
3.
|
|
175
|
-
4.
|
|
176
|
-
5.
|
|
177
|
-
6.
|
|
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
|
|
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`
|
|
187
183
|
|
|
188
184
|
---
|
|
189
185
|
|
|
190
|
-
##
|
|
191
|
-
|
|
192
|
-
| Categoria | O que faz |
|
|
193
|
-
|-----------|-----------|
|
|
194
|
-
| **🤖 Autônomo** | `qa_auto` — loop completo: gera, roda, corrige, aprende (até passar ou max_retries) |
|
|
195
|
-
| **📊 Learning** | Salva correções bem-sucedidas, taxa de sucesso na 1ª tentativa, métricas de aprendizado |
|
|
196
|
-
| **Detecção** | Cypress, Playwright, WebdriverIO, Jest, Vitest, Mocha, Robot, pytest, Behave, Appium, Detox |
|
|
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 |
|
|
186
|
+
## Capacidades
|
|
205
187
|
|
|
206
|
-
|
|
188
|
+
### Automação e geração
|
|
207
189
|
|
|
208
|
-
|
|
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
|
|
209
194
|
|
|
210
|
-
|
|
211
|
-
mcp-lab-agent [comando]
|
|
212
|
-
```
|
|
195
|
+
### Análise e diagnóstico
|
|
213
196
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
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
|
-
```
|
|
232
|
-
|
|
233
|
-
Referência completa do CLI: `mcp-lab-agent --help`
|
|
234
|
-
|
|
235
|
-
---
|
|
236
|
-
|
|
237
|
-
## Escalabilidade
|
|
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
|
|
238
202
|
|
|
239
|
-
###
|
|
203
|
+
### Relatórios e métricas
|
|
240
204
|
|
|
241
|
-
**
|
|
242
|
-
-
|
|
243
|
-
-
|
|
244
|
-
-
|
|
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
|
|
245
209
|
|
|
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
|
-
```
|
|
210
|
+
### Memória e Learning Hub
|
|
252
211
|
|
|
253
|
-
**
|
|
254
|
-
-
|
|
255
|
-
- `stats` retorna JSON estruturado
|
|
256
|
-
- 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
|
|
257
214
|
|
|
258
|
-
|
|
259
|
-
- Exportar/importar memórias entre projetos
|
|
260
|
-
- Central de aprendizados da empresa
|
|
261
|
-
- Padrões globais + overrides locais
|
|
215
|
+
### Frameworks suportados
|
|
262
216
|
|
|
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
|
|
217
|
+
11+ frameworks: Cypress, Playwright, WebdriverIO, Jest, Vitest, Mocha, Robot Framework, pytest, Behave, Appium, Detox.
|
|
267
218
|
|
|
268
219
|
---
|
|
269
220
|
|
|
270
|
-
##
|
|
221
|
+
## CLI
|
|
271
222
|
|
|
272
|
-
|
|
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 |
|
|
273
235
|
|
|
274
236
|
```bash
|
|
275
|
-
#
|
|
276
|
-
|
|
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
|
|
277
243
|
```
|
|
278
244
|
|
|
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
|
|
245
|
+
---
|
|
291
246
|
|
|
292
|
-
|
|
293
|
-
npx mcp-lab-agent auto "login flow"
|
|
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
|
-
|
|
257
|
+
---
|
|
299
258
|
|
|
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
|
-
```
|
|
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 |
|
|
275
|
+
|
|
276
|
+
### Ollama (offline)
|
|
318
277
|
|
|
319
|
-
|
|
278
|
+
```bash
|
|
279
|
+
brew install ollama
|
|
280
|
+
ollama pull llama3.1:8b
|
|
281
|
+
ollama serve
|
|
282
|
+
npx mcp-lab-agent auto "login flow"
|
|
283
|
+
```
|
|
320
284
|
|
|
321
|
-
|
|
285
|
+
### Modo browser (Playwright)
|
|
322
286
|
|
|
323
287
|
```bash
|
|
324
288
|
npm install playwright
|
|
@@ -328,7 +292,9 @@ npm install playwright
|
|
|
328
292
|
|
|
329
293
|
## Documentação
|
|
330
294
|
|
|
331
|
-
-
|
|
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
|
|
332
298
|
|
|
333
299
|
---
|
|
334
300
|
|
|
@@ -344,7 +310,7 @@ npm test
|
|
|
344
310
|
|
|
345
311
|
| Script | Descrição |
|
|
346
312
|
|--------|-----------|
|
|
347
|
-
| `npm run build` | Build
|
|
313
|
+
| `npm run build` | Build (tsup) |
|
|
348
314
|
| `npm test` | Testes (Vitest) |
|
|
349
315
|
| `npm run test:coverage` | Cobertura |
|
|
350
316
|
| `npm run dev` | Build em watch |
|