@maestro-ai/mcp-server 5.5.3 → 5.6.0
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/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/errors/index.js +2 -2
- package/dist/errors/index.js.map +1 -1
- package/dist/flows/onboarding-orchestrator.js +1 -1
- package/dist/flows/onboarding-orchestrator.js.map +1 -1
- package/dist/handlers/field-normalizer.d.ts +31 -0
- package/dist/handlers/field-normalizer.d.ts.map +1 -0
- package/dist/handlers/field-normalizer.js +70 -0
- package/dist/handlers/field-normalizer.js.map +1 -0
- package/dist/handlers/prd-scorer.d.ts +60 -0
- package/dist/handlers/prd-scorer.d.ts.map +1 -0
- package/dist/handlers/prd-scorer.js +157 -0
- package/dist/handlers/prd-scorer.js.map +1 -0
- package/dist/handlers/prototype-phase-handler.js.map +1 -1
- package/dist/handlers/shared-prompt-handler.js.map +1 -1
- package/dist/handlers/specialist-formatters.d.ts +42 -0
- package/dist/handlers/specialist-formatters.d.ts.map +1 -0
- package/dist/handlers/specialist-formatters.js +272 -0
- package/dist/handlers/specialist-formatters.js.map +1 -0
- package/dist/handlers/specialist-phase-handler.d.ts +1 -10
- package/dist/handlers/specialist-phase-handler.d.ts.map +1 -1
- package/dist/handlers/specialist-phase-handler.js +11 -501
- package/dist/handlers/specialist-phase-handler.js.map +1 -1
- package/dist/legacy-tools.d.ts +21 -0
- package/dist/legacy-tools.d.ts.map +1 -0
- package/dist/legacy-tools.js +377 -0
- package/dist/legacy-tools.js.map +1 -0
- package/dist/router.d.ts +2 -2
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +6 -378
- package/dist/router.js.map +1 -1
- package/dist/server.d.ts +18 -4
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +70 -1
- package/dist/server.js.map +1 -1
- package/dist/services/flow-engine.d.ts.map +1 -1
- package/dist/services/flow-engine.js +1 -2
- package/dist/services/flow-engine.js.map +1 -1
- package/dist/services/onboarding.service.js.map +1 -1
- package/dist/services/scoring-config.d.ts +47 -0
- package/dist/services/scoring-config.d.ts.map +1 -0
- package/dist/services/scoring-config.js +88 -0
- package/dist/services/scoring-config.js.map +1 -0
- package/dist/services/state.service.d.ts.map +1 -1
- package/dist/services/state.service.js +3 -9
- package/dist/services/state.service.js.map +1 -1
- package/dist/services/static-validator.service.d.ts +28 -0
- package/dist/services/static-validator.service.d.ts.map +1 -0
- package/dist/services/static-validator.service.js +55 -0
- package/dist/services/static-validator.service.js.map +1 -0
- package/dist/services/task-decomposer.service.d.ts +59 -0
- package/dist/services/task-decomposer.service.d.ts.map +1 -0
- package/dist/services/task-decomposer.service.js +162 -0
- package/dist/services/task-decomposer.service.js.map +1 -0
- package/dist/services/test-stub-generator.service.d.ts +32 -0
- package/dist/services/test-stub-generator.service.d.ts.map +1 -0
- package/dist/services/test-stub-generator.service.js +71 -0
- package/dist/services/test-stub-generator.service.js.map +1 -0
- package/dist/stdio.js +7 -71
- package/dist/stdio.js.map +1 -1
- package/dist/tools/brainstorm.js.map +1 -1
- package/dist/tools/consolidated/avancar.d.ts.map +1 -1
- package/dist/tools/consolidated/avancar.js +27 -19
- package/dist/tools/consolidated/avancar.js.map +1 -1
- package/dist/tools/discovery.js.map +1 -1
- package/dist/tools/iniciar-projeto.js.map +1 -1
- package/dist/tools/maestro-tool.d.ts.map +1 -1
- package/dist/tools/maestro-tool.js +23 -14
- package/dist/tools/maestro-tool.js.map +1 -1
- package/dist/tools/next-steps-dashboard.js.map +1 -1
- package/dist/tools/prd-writer.js.map +1 -1
- package/dist/tools/proximo.d.ts.map +1 -1
- package/dist/tools/proximo.js +26 -6
- package/dist/tools/proximo.js.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -2
- package/dist/gates/tiers.test.d.ts +0 -2
- package/dist/gates/tiers.test.d.ts.map +0 -1
- package/dist/gates/tiers.test.js +0 -86
- package/dist/gates/tiers.test.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -343
- package/dist/index.js.map +0 -1
- package/dist/tests/aprovar-gate.test.d.ts +0 -2
- package/dist/tests/aprovar-gate.test.d.ts.map +0 -1
- package/dist/tests/aprovar-gate.test.js +0 -113
- package/dist/tests/aprovar-gate.test.js.map +0 -1
- package/dist/tests/brainstorm-prd.test.d.ts +0 -5
- package/dist/tests/brainstorm-prd.test.d.ts.map +0 -1
- package/dist/tests/brainstorm-prd.test.js +0 -291
- package/dist/tests/brainstorm-prd.test.js.map +0 -1
- package/dist/tests/classificacao-progressiva.test.d.ts +0 -5
- package/dist/tests/classificacao-progressiva.test.d.ts.map +0 -1
- package/dist/tests/classificacao-progressiva.test.js +0 -372
- package/dist/tests/classificacao-progressiva.test.js.map +0 -1
- package/dist/tests/content-resolver.test.d.ts +0 -5
- package/dist/tests/content-resolver.test.d.ts.map +0 -1
- package/dist/tests/content-resolver.test.js +0 -157
- package/dist/tests/content-resolver.test.js.map +0 -1
- package/dist/tests/deliverable-validator.test.d.ts +0 -12
- package/dist/tests/deliverable-validator.test.d.ts.map +0 -1
- package/dist/tests/deliverable-validator.test.js +0 -214
- package/dist/tests/deliverable-validator.test.js.map +0 -1
- package/dist/tests/flow-engine.test.d.ts +0 -2
- package/dist/tests/flow-engine.test.d.ts.map +0 -1
- package/dist/tests/flow-engine.test.js +0 -85
- package/dist/tests/flow-engine.test.js.map +0 -1
- package/dist/tests/gate-orientation.test.d.ts +0 -2
- package/dist/tests/gate-orientation.test.d.ts.map +0 -1
- package/dist/tests/gate-orientation.test.js +0 -59
- package/dist/tests/gate-orientation.test.js.map +0 -1
- package/dist/tests/middleware.test.d.ts +0 -5
- package/dist/tests/middleware.test.d.ts.map +0 -1
- package/dist/tests/middleware.test.js +0 -254
- package/dist/tests/middleware.test.js.map +0 -1
- package/dist/tests/migracao-skills.test.d.ts +0 -2
- package/dist/tests/migracao-skills.test.d.ts.map +0 -1
- package/dist/tests/migracao-skills.test.js +0 -208
- package/dist/tests/migracao-skills.test.js.map +0 -1
- package/dist/tests/onboarding-flow.test.d.ts +0 -5
- package/dist/tests/onboarding-flow.test.d.ts.map +0 -1
- package/dist/tests/onboarding-flow.test.js +0 -231
- package/dist/tests/onboarding-flow.test.js.map +0 -1
- package/dist/tests/prd-validation.test.d.ts +0 -6
- package/dist/tests/prd-validation.test.d.ts.map +0 -1
- package/dist/tests/prd-validation.test.js +0 -164
- package/dist/tests/prd-validation.test.js.map +0 -1
- package/dist/tests/readiness-dashboard.test.d.ts +0 -5
- package/dist/tests/readiness-dashboard.test.d.ts.map +0 -1
- package/dist/tests/readiness-dashboard.test.js +0 -252
- package/dist/tests/readiness-dashboard.test.js.map +0 -1
- package/dist/tests/skill-loader.test.d.ts +0 -5
- package/dist/tests/skill-loader.test.d.ts.map +0 -1
- package/dist/tests/skill-loader.test.js +0 -244
- package/dist/tests/skill-loader.test.js.map +0 -1
- package/dist/tests/v52-integration.test.d.ts +0 -14
- package/dist/tests/v52-integration.test.d.ts.map +0 -1
- package/dist/tests/v52-integration.test.js +0 -225
- package/dist/tests/v52-integration.test.js.map +0 -1
- package/dist/tests/watcher.service.test.d.ts +0 -2
- package/dist/tests/watcher.service.test.d.ts.map +0 -1
- package/dist/tests/watcher.service.test.js +0 -119
- package/dist/tests/watcher.service.test.js.map +0 -1
- package/dist/utils/__tests__/prompt-mapper.test.d.ts +0 -2
- package/dist/utils/__tests__/prompt-mapper.test.d.ts.map +0 -1
- package/dist/utils/__tests__/prompt-mapper.test.js +0 -184
- package/dist/utils/__tests__/prompt-mapper.test.js.map +0 -1
|
@@ -1,254 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Testes para Middleware Pipeline v5
|
|
3
|
-
*/
|
|
4
|
-
import { describe, it, expect, vi } from 'vitest';
|
|
5
|
-
import { withStateLoad } from '../middleware/state-loader.middleware.js';
|
|
6
|
-
import { withPersistence } from '../middleware/persistence.middleware.js';
|
|
7
|
-
import { withFlowEngine } from '../middleware/flow-engine.middleware.js';
|
|
8
|
-
import { withSkillInjection } from '../middleware/skill-injection.middleware.js';
|
|
9
|
-
import { applyMiddlewares, applyLightMiddlewares, applyOrchestrationPipeline } from '../middleware/index.js';
|
|
10
|
-
// Mock state service
|
|
11
|
-
vi.mock('../services/state.service.js', () => ({
|
|
12
|
-
createStateService: vi.fn((dir) => ({
|
|
13
|
-
load: vi.fn().mockResolvedValue({
|
|
14
|
-
nome: 'Test Project',
|
|
15
|
-
nivel: 'medio',
|
|
16
|
-
fase_atual: 2,
|
|
17
|
-
total_fases: 8,
|
|
18
|
-
status: 'ativo',
|
|
19
|
-
gates_validados: [1],
|
|
20
|
-
entregaveis: {},
|
|
21
|
-
usar_stitch: false,
|
|
22
|
-
}),
|
|
23
|
-
save: vi.fn().mockResolvedValue(true),
|
|
24
|
-
saveFiles: vi.fn().mockResolvedValue(1),
|
|
25
|
-
})),
|
|
26
|
-
}));
|
|
27
|
-
// Mock state storage
|
|
28
|
-
vi.mock('../state/storage.js', () => ({
|
|
29
|
-
serializarEstado: vi.fn((estado) => ({
|
|
30
|
-
path: '.maestro/estado.json',
|
|
31
|
-
content: JSON.stringify(estado),
|
|
32
|
-
})),
|
|
33
|
-
parsearEstado: vi.fn((json) => {
|
|
34
|
-
try {
|
|
35
|
-
return JSON.parse(json);
|
|
36
|
-
}
|
|
37
|
-
catch {
|
|
38
|
-
return null;
|
|
39
|
-
}
|
|
40
|
-
}),
|
|
41
|
-
}));
|
|
42
|
-
// Mock flow engine
|
|
43
|
-
vi.mock('../services/flow-engine.js', () => ({
|
|
44
|
-
getNextStep: vi.fn(() => ({
|
|
45
|
-
tool: 'proximo',
|
|
46
|
-
description: 'Avançar para próxima fase',
|
|
47
|
-
args_template: {},
|
|
48
|
-
requires_user_input: true,
|
|
49
|
-
})),
|
|
50
|
-
getFlowProgress: vi.fn(() => ({
|
|
51
|
-
current_phase: 'Requisitos',
|
|
52
|
-
total_phases: 8,
|
|
53
|
-
completed_phases: 1,
|
|
54
|
-
percentage: 12,
|
|
55
|
-
})),
|
|
56
|
-
flowStepToNextAction: vi.fn((step) => ({
|
|
57
|
-
tool: step.tool,
|
|
58
|
-
description: step.description,
|
|
59
|
-
args_template: step.args_template,
|
|
60
|
-
requires_user_input: step.requires_user_input,
|
|
61
|
-
})),
|
|
62
|
-
isInOnboarding: vi.fn(() => false),
|
|
63
|
-
}));
|
|
64
|
-
// Mock errors
|
|
65
|
-
vi.mock('../errors/index.js', () => ({
|
|
66
|
-
withErrorHandling: vi.fn((name, handler) => handler),
|
|
67
|
-
}));
|
|
68
|
-
// Mock content resolver and skill loader for skill injection
|
|
69
|
-
vi.mock('../services/content-resolver.service.js', () => ({
|
|
70
|
-
ContentResolverService: vi.fn().mockImplementation(() => ({})),
|
|
71
|
-
}));
|
|
72
|
-
vi.mock('../services/skill-loader.service.js', () => ({
|
|
73
|
-
SkillLoaderService: vi.fn().mockImplementation(() => ({
|
|
74
|
-
loadForPhase: vi.fn().mockResolvedValue(null),
|
|
75
|
-
formatAsMarkdown: vi.fn().mockReturnValue(''),
|
|
76
|
-
})),
|
|
77
|
-
}));
|
|
78
|
-
vi.mock('../utils/prompt-mapper.js', () => ({
|
|
79
|
-
getSkillParaFase: vi.fn(() => null),
|
|
80
|
-
}));
|
|
81
|
-
vi.mock('../flows/types.js', () => ({
|
|
82
|
-
getFaseComStitch: vi.fn(() => ({
|
|
83
|
-
nome: 'Requisitos',
|
|
84
|
-
especialista: 'Engenheiro de Requisitos',
|
|
85
|
-
entregavel_esperado: 'requisitos.md',
|
|
86
|
-
gate_checklist: [],
|
|
87
|
-
})),
|
|
88
|
-
}));
|
|
89
|
-
describe('Middleware: withStateLoad', () => {
|
|
90
|
-
it('deve carregar estado automaticamente quando estado_json não fornecido', async () => {
|
|
91
|
-
const handler = vi.fn().mockResolvedValue({
|
|
92
|
-
content: [{ type: 'text', text: 'ok' }],
|
|
93
|
-
});
|
|
94
|
-
const wrapped = withStateLoad(handler);
|
|
95
|
-
await wrapped({ diretorio: '/test/project' });
|
|
96
|
-
// Handler deve receber estado_json preenchido
|
|
97
|
-
expect(handler).toHaveBeenCalledWith(expect.objectContaining({
|
|
98
|
-
diretorio: '/test/project',
|
|
99
|
-
estado_json: expect.any(String),
|
|
100
|
-
}));
|
|
101
|
-
});
|
|
102
|
-
it('deve manter estado_json existente sem sobrescrever', async () => {
|
|
103
|
-
const handler = vi.fn().mockResolvedValue({
|
|
104
|
-
content: [{ type: 'text', text: 'ok' }],
|
|
105
|
-
});
|
|
106
|
-
const originalState = '{"nome":"Original"}';
|
|
107
|
-
const wrapped = withStateLoad(handler);
|
|
108
|
-
await wrapped({ diretorio: '/test/project', estado_json: originalState });
|
|
109
|
-
expect(handler).toHaveBeenCalledWith(expect.objectContaining({
|
|
110
|
-
estado_json: originalState,
|
|
111
|
-
}));
|
|
112
|
-
});
|
|
113
|
-
it('deve funcionar sem diretório (não carrega estado)', async () => {
|
|
114
|
-
const handler = vi.fn().mockResolvedValue({
|
|
115
|
-
content: [{ type: 'text', text: 'ok' }],
|
|
116
|
-
});
|
|
117
|
-
const wrapped = withStateLoad(handler);
|
|
118
|
-
await wrapped({});
|
|
119
|
-
expect(handler).toHaveBeenCalledWith({});
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
describe('Middleware: withPersistence', () => {
|
|
123
|
-
it('deve persistir estado_atualizado automaticamente', async () => {
|
|
124
|
-
const handler = vi.fn().mockResolvedValue({
|
|
125
|
-
content: [{ type: 'text', text: 'ok' }],
|
|
126
|
-
estado_atualizado: JSON.stringify({ nome: 'Test', nivel: 'medio', fase_atual: 3 }),
|
|
127
|
-
});
|
|
128
|
-
const wrapped = withPersistence(handler);
|
|
129
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
130
|
-
expect(result).toHaveProperty('_state_persisted', true);
|
|
131
|
-
});
|
|
132
|
-
it('deve persistir files retornados', async () => {
|
|
133
|
-
const handler = vi.fn().mockResolvedValue({
|
|
134
|
-
content: [{ type: 'text', text: 'ok' }],
|
|
135
|
-
estado_atualizado: JSON.stringify({ nome: 'Test' }),
|
|
136
|
-
files: [{ path: '/test/file.md', content: '# Test' }],
|
|
137
|
-
});
|
|
138
|
-
const wrapped = withPersistence(handler);
|
|
139
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
140
|
-
expect(result).toHaveProperty('_files_persisted', 1);
|
|
141
|
-
});
|
|
142
|
-
it('não deve persistir quando isError=true', async () => {
|
|
143
|
-
const handler = vi.fn().mockResolvedValue({
|
|
144
|
-
content: [{ type: 'text', text: 'erro' }],
|
|
145
|
-
isError: true,
|
|
146
|
-
estado_atualizado: '{"nome":"Test"}',
|
|
147
|
-
});
|
|
148
|
-
const wrapped = withPersistence(handler);
|
|
149
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
150
|
-
expect(result).not.toHaveProperty('_state_persisted');
|
|
151
|
-
});
|
|
152
|
-
});
|
|
153
|
-
describe('Middleware: withFlowEngine', () => {
|
|
154
|
-
it('deve calcular next_action quando não presente no resultado', async () => {
|
|
155
|
-
const handler = vi.fn().mockResolvedValue({
|
|
156
|
-
content: [{ type: 'text', text: 'ok' }],
|
|
157
|
-
estado_atualizado: JSON.stringify({ nome: 'Test', nivel: 'medio', fase_atual: 2, total_fases: 8 }),
|
|
158
|
-
});
|
|
159
|
-
const wrapped = withFlowEngine(handler);
|
|
160
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
161
|
-
expect(result.next_action).toBeDefined();
|
|
162
|
-
expect(result.next_action?.tool).toBe('proximo');
|
|
163
|
-
expect(result.progress).toBeDefined();
|
|
164
|
-
});
|
|
165
|
-
// v6.0: FlowEngine SEMPRE sobrescreve next_action (comportamento forçado)
|
|
166
|
-
it('deve SEMPRE sobrescrever next_action, mesmo quando já presente (v6.0)', async () => {
|
|
167
|
-
const existingAction = { tool: 'validar_gate', description: 'Validar', args_template: {}, requires_user_input: false };
|
|
168
|
-
const handler = vi.fn().mockResolvedValue({
|
|
169
|
-
content: [{ type: 'text', text: 'ok' }],
|
|
170
|
-
estado_atualizado: JSON.stringify({ nome: 'Test', nivel: 'medio', fase_atual: 2, total_fases: 8 }),
|
|
171
|
-
next_action: existingAction,
|
|
172
|
-
});
|
|
173
|
-
const wrapped = withFlowEngine(handler);
|
|
174
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
175
|
-
// v6.0: FlowEngine FORÇA sobrescrita — next_action deve ser do FlowEngine, não da tool
|
|
176
|
-
expect(result.next_action?.tool).toBe('proximo'); // FlowEngine define 'proximo'
|
|
177
|
-
// O next_action original ('validar_gate') deve ter sido sobrescrito
|
|
178
|
-
expect(result.next_action?.tool).not.toBe('validar_gate');
|
|
179
|
-
});
|
|
180
|
-
it('não deve calcular next_action quando isError', async () => {
|
|
181
|
-
const handler = vi.fn().mockResolvedValue({
|
|
182
|
-
content: [{ type: 'text', text: 'erro' }],
|
|
183
|
-
isError: true,
|
|
184
|
-
});
|
|
185
|
-
const wrapped = withFlowEngine(handler);
|
|
186
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
187
|
-
expect(result.next_action).toBeUndefined();
|
|
188
|
-
});
|
|
189
|
-
});
|
|
190
|
-
describe('Middleware: withSkillInjection', () => {
|
|
191
|
-
it('não deve injetar quando resposta já contém contexto do especialista', async () => {
|
|
192
|
-
const handler = vi.fn().mockResolvedValue({
|
|
193
|
-
content: [{ type: 'text', text: '# 🧠 Contexto do Especialista — Arquitetura\n\nConteúdo' }],
|
|
194
|
-
});
|
|
195
|
-
const wrapped = withSkillInjection(handler);
|
|
196
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
197
|
-
// Não deve duplicar
|
|
198
|
-
const occurrences = (result.content[0].text.match(/Contexto do Especialista/g) || []).length;
|
|
199
|
-
expect(occurrences).toBe(1);
|
|
200
|
-
});
|
|
201
|
-
it('não deve injetar quando isError', async () => {
|
|
202
|
-
const handler = vi.fn().mockResolvedValue({
|
|
203
|
-
content: [{ type: 'text', text: 'Erro' }],
|
|
204
|
-
isError: true,
|
|
205
|
-
});
|
|
206
|
-
const wrapped = withSkillInjection(handler);
|
|
207
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
208
|
-
expect(result.content[0].text).toBe('Erro');
|
|
209
|
-
});
|
|
210
|
-
});
|
|
211
|
-
describe('Pipeline: applyMiddlewares', () => {
|
|
212
|
-
it('deve compor todos os middlewares sem erro', async () => {
|
|
213
|
-
const handler = vi.fn().mockResolvedValue({
|
|
214
|
-
content: [{ type: 'text', text: 'Pipeline OK' }],
|
|
215
|
-
});
|
|
216
|
-
const wrapped = applyMiddlewares('test-tool', handler);
|
|
217
|
-
expect(typeof wrapped).toBe('function');
|
|
218
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
219
|
-
expect(result.content[0].text).toBe('Pipeline OK');
|
|
220
|
-
});
|
|
221
|
-
});
|
|
222
|
-
describe('Pipeline: applyLightMiddlewares', () => {
|
|
223
|
-
it('deve aplicar apenas error handling e state load', async () => {
|
|
224
|
-
const handler = vi.fn().mockResolvedValue({
|
|
225
|
-
content: [{ type: 'text', text: 'Light OK' }],
|
|
226
|
-
});
|
|
227
|
-
const wrapped = applyLightMiddlewares('test-tool', handler);
|
|
228
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
229
|
-
expect(result.content[0].text).toBe('Light OK');
|
|
230
|
-
});
|
|
231
|
-
});
|
|
232
|
-
describe('Pipeline: applyOrchestrationPipeline (v6.0)', () => {
|
|
233
|
-
it('deve compor todos os middlewares na ordem correta', async () => {
|
|
234
|
-
const handler = vi.fn().mockResolvedValue({
|
|
235
|
-
content: [{ type: 'text', text: 'Orchestration OK' }],
|
|
236
|
-
});
|
|
237
|
-
const wrapped = applyOrchestrationPipeline('test-tool', handler);
|
|
238
|
-
expect(typeof wrapped).toBe('function');
|
|
239
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
240
|
-
expect(result.content[0].text).toContain('Orchestration OK');
|
|
241
|
-
});
|
|
242
|
-
it('deve calcular next_action via FlowEngine', async () => {
|
|
243
|
-
const handler = vi.fn().mockResolvedValue({
|
|
244
|
-
content: [{ type: 'text', text: 'ok' }],
|
|
245
|
-
estado_atualizado: JSON.stringify({ nome: 'Test', nivel: 'medio', fase_atual: 2, total_fases: 8 }),
|
|
246
|
-
});
|
|
247
|
-
const wrapped = applyOrchestrationPipeline('test-tool', handler);
|
|
248
|
-
const result = await wrapped({ diretorio: '/test/project' });
|
|
249
|
-
// FlowEngine deve ter calculado next_action
|
|
250
|
-
expect(result.next_action).toBeDefined();
|
|
251
|
-
expect(result.next_action?.tool).toBe('proximo');
|
|
252
|
-
});
|
|
253
|
-
});
|
|
254
|
-
//# sourceMappingURL=middleware.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"middleware.test.js","sourceRoot":"","sources":["../../src/tests/middleware.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migracao-skills.test.d.ts","sourceRoot":"","sources":["../../src/tests/migracao-skills.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,208 +0,0 @@
|
|
|
1
|
-
const TEMPLATES_AVAILABLE = existsSync(join(getServerContentRoot(), "templates"));
|
|
2
|
-
const itWithTemplates = TEMPLATES_AVAILABLE ? it : it.skip;
|
|
3
|
-
/**
|
|
4
|
-
* Testes para migração de maestro:// para skills locais
|
|
5
|
-
* Valida normalização, mapeamento e fluxo completo
|
|
6
|
-
*/
|
|
7
|
-
import { describe, it, expect } from "vitest";
|
|
8
|
-
import { existsSync } from "fs";
|
|
9
|
-
import { join } from "path";
|
|
10
|
-
import { lerEspecialista, lerTemplate, getServerContentRoot } from "../utils/files.js";
|
|
11
|
-
import { getSkillParaFase, temSkillParaFase } from "../utils/prompt-mapper.js";
|
|
12
|
-
import { gerarInstrucaoRecursos, gerarInstrucaoRecursosCompacta, gerarInstrucaoProximaFase } from "../utils/instructions.js";
|
|
13
|
-
describe("Migração de maestro:// para Skills", () => {
|
|
14
|
-
describe("Normalização de nomes de especialistas", () => {
|
|
15
|
-
it("deve encontrar skill para 'Gestão de Produto'", async () => {
|
|
16
|
-
const conteudo = await lerEspecialista("Gestão de Produto");
|
|
17
|
-
expect(conteudo).toBeTruthy();
|
|
18
|
-
expect(conteudo.length).toBeGreaterThan(0);
|
|
19
|
-
});
|
|
20
|
-
it("deve encontrar skill para 'gestao-produto' (normalizado)", async () => {
|
|
21
|
-
const conteudo = await lerEspecialista("gestao-produto");
|
|
22
|
-
expect(conteudo).toBeTruthy();
|
|
23
|
-
});
|
|
24
|
-
it("deve encontrar skill para 'gestao de produto' (sem acento)", async () => {
|
|
25
|
-
const conteudo = await lerEspecialista("gestao de produto");
|
|
26
|
-
expect(conteudo).toBeTruthy();
|
|
27
|
-
});
|
|
28
|
-
it("deve encontrar skill para 'Engenharia de Requisitos'", async () => {
|
|
29
|
-
const conteudo = await lerEspecialista("Engenharia de Requisitos");
|
|
30
|
-
expect(conteudo).toBeTruthy();
|
|
31
|
-
});
|
|
32
|
-
it("deve encontrar skill para 'UX Design'", async () => {
|
|
33
|
-
const conteudo = await lerEspecialista("UX Design");
|
|
34
|
-
expect(conteudo).toBeTruthy();
|
|
35
|
-
});
|
|
36
|
-
it("deve encontrar skill para 'Arquitetura de Software'", async () => {
|
|
37
|
-
const conteudo = await lerEspecialista("Arquitetura de Software");
|
|
38
|
-
expect(conteudo).toBeTruthy();
|
|
39
|
-
});
|
|
40
|
-
it("deve lançar erro descritivo para especialista inexistente", async () => {
|
|
41
|
-
try {
|
|
42
|
-
await lerEspecialista("Especialista Inexistente");
|
|
43
|
-
expect.fail("Deveria ter lançado erro");
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
expect(error).toBeTruthy();
|
|
47
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
48
|
-
expect(message).toContain("Skill não encontrada");
|
|
49
|
-
expect(message).toContain("Skills disponíveis");
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
});
|
|
53
|
-
describe("Mapeamento de fases para skills", () => {
|
|
54
|
-
it("deve mapear fase 'Produto' para skill", () => {
|
|
55
|
-
const skill = getSkillParaFase("Produto");
|
|
56
|
-
expect(skill).toBe("specialist-gestao-produto");
|
|
57
|
-
});
|
|
58
|
-
it("deve mapear fase 'Requisitos' para skill", () => {
|
|
59
|
-
const skill = getSkillParaFase("Requisitos");
|
|
60
|
-
expect(skill).toBe("specialist-engenharia-requisitos-ia");
|
|
61
|
-
});
|
|
62
|
-
it("deve mapear fase 'UX Design' para skill", () => {
|
|
63
|
-
const skill = getSkillParaFase("UX Design");
|
|
64
|
-
expect(skill).toBe("specialist-ux-design");
|
|
65
|
-
});
|
|
66
|
-
it("deve mapear fase 'Arquitetura' para skill", () => {
|
|
67
|
-
const skill = getSkillParaFase("Arquitetura");
|
|
68
|
-
expect(skill).toBe("specialist-arquitetura-software");
|
|
69
|
-
});
|
|
70
|
-
it("deve verificar se fase tem skill associada", () => {
|
|
71
|
-
expect(temSkillParaFase("Produto")).toBe(true);
|
|
72
|
-
expect(temSkillParaFase("Requisitos")).toBe(true);
|
|
73
|
-
expect(temSkillParaFase("Fase Inexistente")).toBe(false);
|
|
74
|
-
});
|
|
75
|
-
it("deve retornar null para fase sem skill", () => {
|
|
76
|
-
const skill = getSkillParaFase("Fase Inexistente");
|
|
77
|
-
expect(skill).toBeNull();
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
describe("Geração de instruções com skills", () => {
|
|
81
|
-
it("deve gerar instrução de recursos para fase com skill", () => {
|
|
82
|
-
const instrucao = gerarInstrucaoRecursos("Produto", "AÇÃO OBRIGATÓRIA", "windsurf");
|
|
83
|
-
expect(instrucao).toContain("specialist-gestao-produto");
|
|
84
|
-
expect(instrucao).toContain("SKILL.md");
|
|
85
|
-
expect(instrucao).toContain("Templates");
|
|
86
|
-
expect(instrucao).toContain("Checklists");
|
|
87
|
-
expect(instrucao).toContain(".windsurf/skills");
|
|
88
|
-
expect(instrucao).not.toContain("maestro://");
|
|
89
|
-
});
|
|
90
|
-
it("deve gerar instrução compacta para fase com skill", () => {
|
|
91
|
-
const instrucao = gerarInstrucaoRecursosCompacta("Requisitos", "windsurf");
|
|
92
|
-
expect(instrucao).toContain("specialist-engenharia-requisitos-ia");
|
|
93
|
-
expect(instrucao).toContain("SKILL.md");
|
|
94
|
-
expect(instrucao).toContain("Templates");
|
|
95
|
-
expect(instrucao).not.toContain("maestro://");
|
|
96
|
-
});
|
|
97
|
-
it("deve gerar instrução para próxima fase", () => {
|
|
98
|
-
const instrucao = gerarInstrucaoProximaFase("UX Design", "windsurf");
|
|
99
|
-
expect(instrucao).toContain("specialist-ux-design");
|
|
100
|
-
expect(instrucao).toContain("PRÓXIMA FASE");
|
|
101
|
-
expect(instrucao).toContain("UX Design");
|
|
102
|
-
expect(instrucao).not.toContain("maestro://");
|
|
103
|
-
});
|
|
104
|
-
it("deve usar IDE correto nos caminhos (cursor)", () => {
|
|
105
|
-
const instrucao = gerarInstrucaoRecursos("Produto", "AÇÃO", "cursor");
|
|
106
|
-
expect(instrucao).toContain(".cursor/skills");
|
|
107
|
-
expect(instrucao).not.toContain(".windsurf/skills");
|
|
108
|
-
});
|
|
109
|
-
it("deve usar IDE correto nos caminhos (antigravity)", () => {
|
|
110
|
-
const instrucao = gerarInstrucaoRecursos("Produto", "AÇÃO", "antigravity");
|
|
111
|
-
expect(instrucao).toContain(".agent/skills");
|
|
112
|
-
expect(instrucao).not.toContain(".windsurf/skills");
|
|
113
|
-
});
|
|
114
|
-
it("deve informar quando fase não tem skill", () => {
|
|
115
|
-
const instrucao = gerarInstrucaoRecursos("Fase Inexistente", "AÇÃO");
|
|
116
|
-
expect(instrucao).toContain("não possui skill");
|
|
117
|
-
});
|
|
118
|
-
});
|
|
119
|
-
describe("Compatibilidade com maestro://", () => {
|
|
120
|
-
it("lerEspecialista deve funcionar com nomes do maestro://", async () => {
|
|
121
|
-
// Simula chamada via maestro://especialista/Gestão de Produto
|
|
122
|
-
const conteudo = await lerEspecialista("Gestão de Produto");
|
|
123
|
-
expect(conteudo).toBeTruthy();
|
|
124
|
-
expect(conteudo.length).toBeGreaterThan(100); // SKILL.md deve ter conteúdo
|
|
125
|
-
});
|
|
126
|
-
itWithTemplates("lerTemplate deve funcionar com nomes do maestro://", async () => {
|
|
127
|
-
// Simula chamada via maestro://template/PRD
|
|
128
|
-
const conteudo = await lerTemplate("PRD");
|
|
129
|
-
expect(conteudo).toBeTruthy();
|
|
130
|
-
expect(conteudo.length).toBeGreaterThan(100);
|
|
131
|
-
});
|
|
132
|
-
});
|
|
133
|
-
describe("Fluxo completo PRD + proximo()", () => {
|
|
134
|
-
it("mensagem de entregável inválido deve referenciar skills", () => {
|
|
135
|
-
// Simula resposta do proximo() quando entregável < 200 chars
|
|
136
|
-
// Verificar que a mensagem não contém maestro://
|
|
137
|
-
const mensagemLegada = `
|
|
138
|
-
read_resource("maestro://especialista/Gestão de Produto")
|
|
139
|
-
read_resource("maestro://template/PRD")
|
|
140
|
-
`;
|
|
141
|
-
const mensagemNova = `
|
|
142
|
-
.windsurf/skills/specialist-gestao-produto/resources/reference/SKILL.md
|
|
143
|
-
.windsurf/skills/specialist-gestao-produto/resources/templates/
|
|
144
|
-
`;
|
|
145
|
-
// A mensagem nova deve estar sendo usada
|
|
146
|
-
expect(mensagemNova).toContain("specialist-gestao-produto");
|
|
147
|
-
expect(mensagemNova).not.toContain("maestro://");
|
|
148
|
-
});
|
|
149
|
-
});
|
|
150
|
-
describe("Regressão: maestro:// ainda funciona", () => {
|
|
151
|
-
it("lerEspecialista com nome exato de especialista", async () => {
|
|
152
|
-
// Teste de compatibilidade: nomes que vêm do maestro://
|
|
153
|
-
const nomes = [
|
|
154
|
-
"Gestão de Produto",
|
|
155
|
-
"Engenharia de Requisitos",
|
|
156
|
-
"UX Design",
|
|
157
|
-
"Arquitetura de Software",
|
|
158
|
-
"Plano de Execução",
|
|
159
|
-
"Desenvolvimento Frontend",
|
|
160
|
-
"Desenvolvimento Backend",
|
|
161
|
-
];
|
|
162
|
-
for (const nome of nomes) {
|
|
163
|
-
const conteudo = await lerEspecialista(nome);
|
|
164
|
-
expect(conteudo).toBeTruthy();
|
|
165
|
-
expect(conteudo.length).toBeGreaterThan(0);
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
itWithTemplates("lerTemplate com nomes de template", async () => {
|
|
169
|
-
const nomes = [
|
|
170
|
-
"PRD",
|
|
171
|
-
"requisitos",
|
|
172
|
-
"design-doc",
|
|
173
|
-
"arquitetura",
|
|
174
|
-
"backlog",
|
|
175
|
-
];
|
|
176
|
-
for (const nome of nomes) {
|
|
177
|
-
try {
|
|
178
|
-
const conteudo = await lerTemplate(nome);
|
|
179
|
-
expect(conteudo).toBeTruthy();
|
|
180
|
-
}
|
|
181
|
-
catch (error) {
|
|
182
|
-
// Template pode não existir, mas a função deve tentar
|
|
183
|
-
expect(error).toBeTruthy();
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
});
|
|
188
|
-
});
|
|
189
|
-
describe("Casos extremos e edge cases", () => {
|
|
190
|
-
it("deve normalizar múltiplos espaços", async () => {
|
|
191
|
-
const conteudo = await lerEspecialista("Gestão de Produto");
|
|
192
|
-
expect(conteudo).toBeTruthy();
|
|
193
|
-
});
|
|
194
|
-
it("deve normalizar caracteres especiais", async () => {
|
|
195
|
-
const conteudo = await lerEspecialista("Gestão-de-Produto");
|
|
196
|
-
expect(conteudo).toBeTruthy();
|
|
197
|
-
});
|
|
198
|
-
it("deve ser case-insensitive", async () => {
|
|
199
|
-
const conteudo1 = await lerEspecialista("GESTÃO DE PRODUTO");
|
|
200
|
-
const conteudo2 = await lerEspecialista("gestão de produto");
|
|
201
|
-
expect(conteudo1).toBe(conteudo2);
|
|
202
|
-
});
|
|
203
|
-
it("deve lidar com espaços em branco nas extremidades", async () => {
|
|
204
|
-
const conteudo = await lerEspecialista(" Gestão de Produto ");
|
|
205
|
-
expect(conteudo).toBeTruthy();
|
|
206
|
-
});
|
|
207
|
-
});
|
|
208
|
-
//# sourceMappingURL=migracao-skills.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"migracao-skills.test.js","sourceRoot":"","sources":["../../src/tests/migracao-skills.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"onboarding-flow.test.d.ts","sourceRoot":"","sources":["../../src/tests/onboarding-flow.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|