@maestro-ai/mcp-server 5.5.3 → 5.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (168) hide show
  1. package/dist/constants.d.ts +1 -1
  2. package/dist/constants.js +1 -1
  3. package/dist/errors/index.js +2 -2
  4. package/dist/errors/index.js.map +1 -1
  5. package/dist/flows/onboarding-orchestrator.js +1 -1
  6. package/dist/flows/onboarding-orchestrator.js.map +1 -1
  7. package/dist/handlers/field-normalizer.d.ts +31 -0
  8. package/dist/handlers/field-normalizer.d.ts.map +1 -0
  9. package/dist/handlers/field-normalizer.js +70 -0
  10. package/dist/handlers/field-normalizer.js.map +1 -0
  11. package/dist/handlers/prd-scorer.d.ts +60 -0
  12. package/dist/handlers/prd-scorer.d.ts.map +1 -0
  13. package/dist/handlers/prd-scorer.js +157 -0
  14. package/dist/handlers/prd-scorer.js.map +1 -0
  15. package/dist/handlers/prototype-phase-handler.js.map +1 -1
  16. package/dist/handlers/shared-prompt-handler.js.map +1 -1
  17. package/dist/handlers/specialist-formatters.d.ts +42 -0
  18. package/dist/handlers/specialist-formatters.d.ts.map +1 -0
  19. package/dist/handlers/specialist-formatters.js +272 -0
  20. package/dist/handlers/specialist-formatters.js.map +1 -0
  21. package/dist/handlers/specialist-phase-handler.d.ts +1 -10
  22. package/dist/handlers/specialist-phase-handler.d.ts.map +1 -1
  23. package/dist/handlers/specialist-phase-handler.js +11 -501
  24. package/dist/handlers/specialist-phase-handler.js.map +1 -1
  25. package/dist/legacy-tools.d.ts +21 -0
  26. package/dist/legacy-tools.d.ts.map +1 -0
  27. package/dist/legacy-tools.js +377 -0
  28. package/dist/legacy-tools.js.map +1 -0
  29. package/dist/router.d.ts +2 -2
  30. package/dist/router.d.ts.map +1 -1
  31. package/dist/router.js +6 -378
  32. package/dist/router.js.map +1 -1
  33. package/dist/server.d.ts +18 -4
  34. package/dist/server.d.ts.map +1 -1
  35. package/dist/server.js +70 -1
  36. package/dist/server.js.map +1 -1
  37. package/dist/services/flow-engine.d.ts.map +1 -1
  38. package/dist/services/flow-engine.js +1 -2
  39. package/dist/services/flow-engine.js.map +1 -1
  40. package/dist/services/onboarding.service.js.map +1 -1
  41. package/dist/services/scoring-config.d.ts +47 -0
  42. package/dist/services/scoring-config.d.ts.map +1 -0
  43. package/dist/services/scoring-config.js +88 -0
  44. package/dist/services/scoring-config.js.map +1 -0
  45. package/dist/services/state.service.d.ts.map +1 -1
  46. package/dist/services/state.service.js +3 -9
  47. package/dist/services/state.service.js.map +1 -1
  48. package/dist/services/static-validator.service.d.ts +28 -0
  49. package/dist/services/static-validator.service.d.ts.map +1 -0
  50. package/dist/services/static-validator.service.js +55 -0
  51. package/dist/services/static-validator.service.js.map +1 -0
  52. package/dist/services/task-decomposer.service.d.ts +59 -0
  53. package/dist/services/task-decomposer.service.d.ts.map +1 -0
  54. package/dist/services/task-decomposer.service.js +162 -0
  55. package/dist/services/task-decomposer.service.js.map +1 -0
  56. package/dist/services/test-stub-generator.service.d.ts +32 -0
  57. package/dist/services/test-stub-generator.service.d.ts.map +1 -0
  58. package/dist/services/test-stub-generator.service.js +71 -0
  59. package/dist/services/test-stub-generator.service.js.map +1 -0
  60. package/dist/stdio.js +7 -71
  61. package/dist/stdio.js.map +1 -1
  62. package/dist/tools/aprovar-gate.d.ts.map +1 -1
  63. package/dist/tools/aprovar-gate.js +4 -0
  64. package/dist/tools/aprovar-gate.js.map +1 -1
  65. package/dist/tools/brainstorm.js.map +1 -1
  66. package/dist/tools/consolidated/avancar.d.ts.map +1 -1
  67. package/dist/tools/consolidated/avancar.js +28 -20
  68. package/dist/tools/consolidated/avancar.js.map +1 -1
  69. package/dist/tools/discovery.js.map +1 -1
  70. package/dist/tools/iniciar-projeto.js.map +1 -1
  71. package/dist/tools/maestro-tool.d.ts.map +1 -1
  72. package/dist/tools/maestro-tool.js +23 -14
  73. package/dist/tools/maestro-tool.js.map +1 -1
  74. package/dist/tools/next-steps-dashboard.js.map +1 -1
  75. package/dist/tools/prd-writer.js.map +1 -1
  76. package/dist/tools/proximo.d.ts.map +1 -1
  77. package/dist/tools/proximo.js +34 -12
  78. package/dist/tools/proximo.js.map +1 -1
  79. package/dist/tools/salvar.d.ts.map +1 -1
  80. package/dist/tools/salvar.js +9 -2
  81. package/dist/tools/salvar.js.map +1 -1
  82. package/dist/types/index.d.ts +3 -1
  83. package/dist/types/index.d.ts.map +1 -1
  84. package/dist/types/index.js.map +1 -1
  85. package/dist/utils/entregavel-path.d.ts +9 -0
  86. package/dist/utils/entregavel-path.d.ts.map +1 -1
  87. package/dist/utils/entregavel-path.js +26 -10
  88. package/dist/utils/entregavel-path.js.map +1 -1
  89. package/dist/utils/gate-orientation.d.ts.map +1 -1
  90. package/dist/utils/gate-orientation.js +2 -1
  91. package/dist/utils/gate-orientation.js.map +1 -1
  92. package/dist/utils/instructions.d.ts +2 -1
  93. package/dist/utils/instructions.d.ts.map +1 -1
  94. package/dist/utils/instructions.js +20 -15
  95. package/dist/utils/instructions.js.map +1 -1
  96. package/package.json +3 -2
  97. package/dist/gates/tiers.test.d.ts +0 -2
  98. package/dist/gates/tiers.test.d.ts.map +0 -1
  99. package/dist/gates/tiers.test.js +0 -86
  100. package/dist/gates/tiers.test.js.map +0 -1
  101. package/dist/index.d.ts +0 -3
  102. package/dist/index.d.ts.map +0 -1
  103. package/dist/index.js +0 -343
  104. package/dist/index.js.map +0 -1
  105. package/dist/tests/aprovar-gate.test.d.ts +0 -2
  106. package/dist/tests/aprovar-gate.test.d.ts.map +0 -1
  107. package/dist/tests/aprovar-gate.test.js +0 -113
  108. package/dist/tests/aprovar-gate.test.js.map +0 -1
  109. package/dist/tests/brainstorm-prd.test.d.ts +0 -5
  110. package/dist/tests/brainstorm-prd.test.d.ts.map +0 -1
  111. package/dist/tests/brainstorm-prd.test.js +0 -291
  112. package/dist/tests/brainstorm-prd.test.js.map +0 -1
  113. package/dist/tests/classificacao-progressiva.test.d.ts +0 -5
  114. package/dist/tests/classificacao-progressiva.test.d.ts.map +0 -1
  115. package/dist/tests/classificacao-progressiva.test.js +0 -372
  116. package/dist/tests/classificacao-progressiva.test.js.map +0 -1
  117. package/dist/tests/content-resolver.test.d.ts +0 -5
  118. package/dist/tests/content-resolver.test.d.ts.map +0 -1
  119. package/dist/tests/content-resolver.test.js +0 -157
  120. package/dist/tests/content-resolver.test.js.map +0 -1
  121. package/dist/tests/deliverable-validator.test.d.ts +0 -12
  122. package/dist/tests/deliverable-validator.test.d.ts.map +0 -1
  123. package/dist/tests/deliverable-validator.test.js +0 -214
  124. package/dist/tests/deliverable-validator.test.js.map +0 -1
  125. package/dist/tests/flow-engine.test.d.ts +0 -2
  126. package/dist/tests/flow-engine.test.d.ts.map +0 -1
  127. package/dist/tests/flow-engine.test.js +0 -85
  128. package/dist/tests/flow-engine.test.js.map +0 -1
  129. package/dist/tests/gate-orientation.test.d.ts +0 -2
  130. package/dist/tests/gate-orientation.test.d.ts.map +0 -1
  131. package/dist/tests/gate-orientation.test.js +0 -59
  132. package/dist/tests/gate-orientation.test.js.map +0 -1
  133. package/dist/tests/middleware.test.d.ts +0 -5
  134. package/dist/tests/middleware.test.d.ts.map +0 -1
  135. package/dist/tests/middleware.test.js +0 -254
  136. package/dist/tests/middleware.test.js.map +0 -1
  137. package/dist/tests/migracao-skills.test.d.ts +0 -2
  138. package/dist/tests/migracao-skills.test.d.ts.map +0 -1
  139. package/dist/tests/migracao-skills.test.js +0 -208
  140. package/dist/tests/migracao-skills.test.js.map +0 -1
  141. package/dist/tests/onboarding-flow.test.d.ts +0 -5
  142. package/dist/tests/onboarding-flow.test.d.ts.map +0 -1
  143. package/dist/tests/onboarding-flow.test.js +0 -231
  144. package/dist/tests/onboarding-flow.test.js.map +0 -1
  145. package/dist/tests/prd-validation.test.d.ts +0 -6
  146. package/dist/tests/prd-validation.test.d.ts.map +0 -1
  147. package/dist/tests/prd-validation.test.js +0 -164
  148. package/dist/tests/prd-validation.test.js.map +0 -1
  149. package/dist/tests/readiness-dashboard.test.d.ts +0 -5
  150. package/dist/tests/readiness-dashboard.test.d.ts.map +0 -1
  151. package/dist/tests/readiness-dashboard.test.js +0 -252
  152. package/dist/tests/readiness-dashboard.test.js.map +0 -1
  153. package/dist/tests/skill-loader.test.d.ts +0 -5
  154. package/dist/tests/skill-loader.test.d.ts.map +0 -1
  155. package/dist/tests/skill-loader.test.js +0 -244
  156. package/dist/tests/skill-loader.test.js.map +0 -1
  157. package/dist/tests/v52-integration.test.d.ts +0 -14
  158. package/dist/tests/v52-integration.test.d.ts.map +0 -1
  159. package/dist/tests/v52-integration.test.js +0 -225
  160. package/dist/tests/v52-integration.test.js.map +0 -1
  161. package/dist/tests/watcher.service.test.d.ts +0 -2
  162. package/dist/tests/watcher.service.test.d.ts.map +0 -1
  163. package/dist/tests/watcher.service.test.js +0 -119
  164. package/dist/tests/watcher.service.test.js.map +0 -1
  165. package/dist/utils/__tests__/prompt-mapper.test.d.ts +0 -2
  166. package/dist/utils/__tests__/prompt-mapper.test.d.ts.map +0 -1
  167. package/dist/utils/__tests__/prompt-mapper.test.js +0 -184
  168. package/dist/utils/__tests__/prompt-mapper.test.js.map +0 -1
@@ -1,252 +0,0 @@
1
- /**
2
- * Testes para readiness checker e dashboard
3
- */
4
- import { describe, it, expect, beforeEach } from 'vitest';
5
- import { verificarProntidaoPRD, calcularTempoEstimado, gerarInsights, recomendarProximasAcoes, } from '../utils/readiness-checker.js';
6
- import { gerarBlocosDiscovery } from '../utils/discovery-adapter.js';
7
- describe('Readiness Checker', () => {
8
- let onboarding;
9
- beforeEach(() => {
10
- onboarding = {
11
- projectId: 'test-project-123',
12
- phase: 'prd_draft',
13
- discoveryStatus: 'completed',
14
- discoveryBlocks: gerarBlocosDiscovery({
15
- mode: 'balanced',
16
- skipCompletedBlocks: false,
17
- prioritizeByMode: true,
18
- allowBatchInput: true,
19
- }).map((bloco) => ({ ...bloco, status: 'completed', fields: bloco.fields.map((field) => ({ ...field, filled: true, value: field.value ?? 'valor preenchido' })) })),
20
- discoveryResponses: {
21
- nome_projeto: 'PulseTrack',
22
- problema: 'Monitorar saúde ocupacional',
23
- publico_alvo: 'Empresas e profissionais',
24
- funcionalidades_principais: ['Dashboard', 'Alertas'],
25
- cronograma: '6 meses',
26
- plataformas: ['Web'],
27
- stack_preferida: 'React + Node.js',
28
- },
29
- discoveryCompletedAt: new Date().toISOString(),
30
- brainstormStatus: 'completed',
31
- brainstormSections: [
32
- {
33
- id: 'problema-oportunidade',
34
- title: 'Problema',
35
- description: 'Defina',
36
- prompt: 'Elabore...',
37
- expectedOutput: 'Análise',
38
- status: 'completed',
39
- response: 'Resposta detalhada sobre o problema e oportunidade de mercado, incluindo métricas, referências setoriais e expectativas de crescimento para garantir que ultrapasse o limite mínimo exigido de caracteres pela validação.',
40
- order: 1,
41
- },
42
- {
43
- id: 'personas-jtbd',
44
- title: 'Personas',
45
- description: 'Defina',
46
- prompt: 'Crie...',
47
- expectedOutput: 'Personas',
48
- status: 'completed',
49
- response: 'Personas bem definidas com JTBD, detalhando motivações, dores e métricas de sucesso para cada perfil, mantendo o texto acima de cem caracteres conforme requerido.',
50
- order: 2,
51
- },
52
- {
53
- id: 'mvp-funcionalidades',
54
- title: 'MVP',
55
- description: 'Refine',
56
- prompt: 'Refine...',
57
- expectedOutput: 'Matriz RICE',
58
- status: 'completed',
59
- response: 'Matriz RICE com funcionalidades priorizadas, apresentando valores de Reach, Impact, Confidence e Effort para cada item, garantindo explicação completa e texto suficientemente longo.',
60
- order: 3,
61
- },
62
- {
63
- id: 'metricas-sucesso',
64
- title: 'Métricas',
65
- description: 'Defina',
66
- prompt: 'Defina...',
67
- expectedOutput: 'North Star',
68
- status: 'completed',
69
- response: 'North Star Metric e KPIs definidos com baseline atual, metas trimestrais e justificativa estratégica detalhada para demonstrar maturidade das métricas propostas.',
70
- order: 4,
71
- },
72
- {
73
- id: 'riscos-mitigacoes',
74
- title: 'Riscos',
75
- description: 'Identifique',
76
- prompt: 'Identifique...',
77
- expectedOutput: 'Matriz de riscos',
78
- status: 'completed',
79
- response: 'Riscos identificados com planos de mitigação específicos, cobrindo aspectos técnicos, de mercado e de equipe com descrições robustas para satisfazer a validação automática.',
80
- order: 5,
81
- },
82
- ],
83
- brainstormCompletedAt: new Date().toISOString(),
84
- prdStatus: 'draft',
85
- prdScore: 0,
86
- mode: 'balanced',
87
- totalInteractions: 0,
88
- };
89
- });
90
- describe('verificarProntidaoPRD', () => {
91
- it('deve retornar score alto quando tudo está completo', () => {
92
- const resultado = verificarProntidaoPRD(onboarding);
93
- expect(resultado.score).toBeGreaterThanOrEqual(70);
94
- expect(resultado.isReady).toBe(true);
95
- expect(resultado.missingFields.length).toBeLessThan(3);
96
- });
97
- it('deve detectar discovery incompleto', () => {
98
- onboarding.discoveryStatus = 'pending';
99
- const resultado = verificarProntidaoPRD(onboarding);
100
- expect(resultado.isReady).toBe(false);
101
- expect(resultado.missingFields).toContain('Discovery não foi concluído');
102
- });
103
- it('deve detectar brainstorm incompleto', () => {
104
- onboarding.brainstormStatus = 'pending';
105
- const resultado = verificarProntidaoPRD(onboarding);
106
- expect(resultado.isReady).toBe(false);
107
- expect(resultado.missingFields).toContain('Brainstorm não foi concluído');
108
- });
109
- it('deve detectar campos obrigatórios faltando', () => {
110
- onboarding.discoveryResponses.nome_projeto = '';
111
- const resultado = verificarProntidaoPRD(onboarding);
112
- expect(resultado.missingFields.length).toBeGreaterThan(0);
113
- expect(resultado.missingFields.some((f) => f.includes('nome_projeto'))).toBe(true);
114
- });
115
- it('deve gerar recomendações quando há lacunas', () => {
116
- onboarding.discoveryStatus = 'in_progress';
117
- const resultado = verificarProntidaoPRD(onboarding);
118
- expect(resultado.recommendations.length).toBeGreaterThan(0);
119
- expect(resultado.recommendations[0]).toContain('discovery');
120
- });
121
- it('deve gerar próximas ações', () => {
122
- const resultado = verificarProntidaoPRD(onboarding);
123
- expect(resultado.nextActions.length).toBeGreaterThan(0);
124
- expect(resultado.nextActions[0]).toBeTruthy();
125
- });
126
- });
127
- describe('calcularTempoEstimado', () => {
128
- it('deve calcular tempo para discovery incompleto', () => {
129
- onboarding.discoveryStatus = 'in_progress';
130
- onboarding.discoveryBlocks = onboarding.discoveryBlocks.map((b) => ({ ...b, status: 'pending' }));
131
- const tempo = calcularTempoEstimado(onboarding);
132
- const esperado = (onboarding.discoveryBlocks.length * 5) + 5; // +5 pela validação
133
- expect(tempo).toBe(esperado);
134
- });
135
- it('deve calcular tempo para brainstorm incompleto', () => {
136
- onboarding.brainstormStatus = 'in_progress';
137
- onboarding.brainstormSections = onboarding.brainstormSections.map((s) => ({ ...s, status: 'pending' }));
138
- const tempo = calcularTempoEstimado(onboarding);
139
- const esperado = (onboarding.brainstormSections.length * 10) + 5;
140
- expect(tempo).toBe(esperado);
141
- });
142
- it('deve retornar 0 quando tudo está completo', () => {
143
- const tempo = calcularTempoEstimado(onboarding);
144
- expect(tempo).toBe(5); // Apenas validação do PRD
145
- });
146
- it('deve calcular tempo total para fluxo completo', () => {
147
- onboarding.discoveryStatus = 'in_progress';
148
- onboarding.discoveryBlocks = onboarding.discoveryBlocks.map((b) => ({ ...b, status: 'pending' }));
149
- onboarding.brainstormStatus = 'in_progress';
150
- onboarding.brainstormSections = onboarding.brainstormSections.map((s) => ({ ...s, status: 'pending' }));
151
- onboarding.prdStatus = 'pending';
152
- const tempo = calcularTempoEstimado(onboarding);
153
- const blocosPendentes = onboarding.discoveryBlocks.filter((b) => b.status === 'pending').length;
154
- const secoesPendentes = onboarding.brainstormSections.filter((s) => s.status === 'pending').length;
155
- const tempoDiscovery = blocosPendentes * 5;
156
- const tempoBrainstorm = secoesPendentes * 10;
157
- const tempoValidacao = 5;
158
- expect(tempo).toBe(tempoDiscovery + tempoBrainstorm + tempoValidacao);
159
- });
160
- });
161
- describe('gerarInsights', () => {
162
- it('deve gerar insights quando discovery está completo', () => {
163
- const insights = gerarInsights(onboarding);
164
- expect(insights.some((i) => i.includes('Discovery'))).toBe(true);
165
- });
166
- it('deve gerar insights quando brainstorm está completo', () => {
167
- const insights = gerarInsights(onboarding);
168
- expect(insights.some((i) => i.includes('Brainstorm'))).toBe(true);
169
- expect(insights.some((i) => i.includes('seções'))).toBe(true);
170
- });
171
- it('deve gerar insights sobre stack quando disponível', () => {
172
- const insights = gerarInsights(onboarding);
173
- expect(insights.some((i) => i.includes('Stack'))).toBe(true);
174
- });
175
- it('deve gerar insights sobre timeline quando disponível', () => {
176
- const insights = gerarInsights(onboarding);
177
- expect(insights.some((i) => i.includes('Timeline'))).toBe(true);
178
- });
179
- it('deve indicar fase atual', () => {
180
- const insights = gerarInsights(onboarding);
181
- expect(insights.some((i) => i.includes('Fase atual'))).toBe(true);
182
- });
183
- });
184
- describe('recomendarProximasAcoes', () => {
185
- it('deve recomendar completar discovery quando incompleto', () => {
186
- onboarding.discoveryStatus = 'in_progress';
187
- onboarding.discoveryBlocks[0].status = 'pending';
188
- const acoes = recomendarProximasAcoes(onboarding);
189
- expect(acoes.some((a) => a.action.includes('Discovery'))).toBe(true);
190
- });
191
- it('deve recomendar brainstorm quando discovery está completo', () => {
192
- onboarding.brainstormStatus = 'in_progress';
193
- onboarding.brainstormSections[0].status = 'pending';
194
- const acoes = recomendarProximasAcoes(onboarding);
195
- expect(acoes.some((a) => a.action.includes('Brainstorm'))).toBe(true);
196
- });
197
- it('deve recomendar gerar PRD quando brainstorm está completo', () => {
198
- onboarding.prdStatus = 'pending';
199
- const acoes = recomendarProximasAcoes(onboarding);
200
- expect(acoes.some((a) => a.action.includes('PRD'))).toBe(true);
201
- });
202
- it('deve recomendar validar PRD quando draft está pronto', () => {
203
- onboarding.prdStatus = 'draft';
204
- const acoes = recomendarProximasAcoes(onboarding);
205
- expect(acoes.some((a) => a.action.includes('Validar'))).toBe(true);
206
- });
207
- it('deve priorizar ações corretamente', () => {
208
- onboarding.discoveryStatus = 'in_progress';
209
- onboarding.discoveryBlocks = onboarding.discoveryBlocks.map((b) => ({ ...b, status: 'pending' }));
210
- const acoes = recomendarProximasAcoes(onboarding);
211
- const acoesAlta = acoes.filter((a) => a.priority === 'high');
212
- expect(acoesAlta.length).toBeGreaterThan(0);
213
- expect(acoesAlta[0].action).toContain('Discovery');
214
- });
215
- it('deve estimar tempo para cada ação', () => {
216
- const acoes = recomendarProximasAcoes(onboarding);
217
- acoes.forEach((acao) => {
218
- expect(acao.estimatedTime).toBeGreaterThanOrEqual(0);
219
- });
220
- });
221
- });
222
- describe('Dashboard Integration', () => {
223
- it('deve consolidar progresso de discovery', () => {
224
- const completadas = onboarding.discoveryBlocks.filter((b) => b.status === 'completed').length;
225
- const total = onboarding.discoveryBlocks.length;
226
- const percentual = Math.round((completadas / total) * 100);
227
- expect(percentual).toBe(100);
228
- });
229
- it('deve consolidar progresso de brainstorm', () => {
230
- const completadas = onboarding.brainstormSections.filter((s) => s.status === 'completed').length;
231
- const total = onboarding.brainstormSections.length;
232
- const percentual = Math.round((completadas / total) * 100);
233
- expect(percentual).toBe(100);
234
- });
235
- it('deve consolidar prontidão do PRD', () => {
236
- const prontidao = verificarProntidaoPRD(onboarding);
237
- expect(prontidao.isReady).toBe(true);
238
- expect(prontidao.score).toBeGreaterThanOrEqual(70);
239
- });
240
- it('deve consolidar tempo estimado restante', () => {
241
- const tempo = calcularTempoEstimado(onboarding);
242
- expect(tempo).toBeGreaterThanOrEqual(0);
243
- });
244
- it('deve consolidar insights e ações', () => {
245
- const insights = gerarInsights(onboarding);
246
- const acoes = recomendarProximasAcoes(onboarding);
247
- expect(insights.length).toBeGreaterThan(0);
248
- expect(acoes.length).toBeGreaterThan(0);
249
- });
250
- });
251
- });
252
- //# sourceMappingURL=readiness-dashboard.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"readiness-dashboard.test.js","sourceRoot":"","sources":["../../src/tests/readiness-dashboard.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Testes para SkillLoaderService
3
- */
4
- export {};
5
- //# sourceMappingURL=skill-loader.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-loader.test.d.ts","sourceRoot":"","sources":["../../src/tests/skill-loader.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -1,244 +0,0 @@
1
- /**
2
- * Testes para SkillLoaderService
3
- */
4
- import { describe, it, expect, beforeEach, vi } from 'vitest';
5
- import { SkillLoaderService } from '../services/skill-loader.service.js';
6
- import { invalidateCache } from '../services/skill-cache.service.js';
7
- // Mock ContentResolverService
8
- vi.mock('../services/content-resolver.service.js');
9
- // Mock prompt-mapper
10
- vi.mock('../utils/prompt-mapper.js', () => ({
11
- getSkillParaFase: vi.fn((fase) => {
12
- const map = {
13
- 'Produto': 'specialist-gestao-produto',
14
- 'Arquitetura': 'specialist-arquitetura-software',
15
- 'Desconhecida': '',
16
- };
17
- return map[fase] || null;
18
- }),
19
- FASE_SKILL_MAP: {
20
- 'Produto': 'specialist-gestao-produto',
21
- 'Arquitetura': 'specialist-arquitetura-software',
22
- },
23
- }));
24
- // Mock specialist.service
25
- vi.mock('../services/specialist.service.js', () => ({
26
- getSpecialistPersona: vi.fn((fase) => {
27
- if (fase === 'Produto') {
28
- return {
29
- name: 'Gestão de Produto',
30
- tone: 'Estratégico',
31
- expertise: ['product discovery', 'lean startup'],
32
- instructions: 'Foque em entender o problema.',
33
- };
34
- }
35
- if (fase === 'Arquitetura') {
36
- return {
37
- name: 'Arquitetura de Software',
38
- tone: 'Técnico',
39
- expertise: ['C4', 'ADR'],
40
- instructions: 'Defina arquitetura alvo.',
41
- };
42
- }
43
- return null;
44
- }),
45
- }));
46
- const SAMPLE_SKILL_MD = `---
47
- name: specialist-gestao-produto
48
- description: PRD e gestão de produto
49
- ---
50
-
51
- # Gestão de Produto · Skill do Especialista
52
-
53
- ## Missão
54
- Definir produto com foco no usuário.
55
-
56
- ## Quando ativar
57
- - Fase 1 do projeto
58
-
59
- ## Inputs obrigatórios
60
- - Briefing do cliente
61
-
62
- ## Outputs gerados
63
- - PRD completo
64
-
65
- ## Quality Gate
66
- - PRD com escopo definido
67
- - Personas mapeadas
68
-
69
- ## 🚀 Processo Otimizado
70
-
71
- ### 1. Discovery
72
- Faça perguntas focadas.
73
-
74
- ### 2. Geração
75
- Use template estruturado.
76
-
77
- ## 📋 Recursos Disponíveis
78
-
79
- ### Templates
80
- - resources/templates/prd.md
81
-
82
- ## 🔄 Context Flow
83
- Prepare transição para requisitos.
84
-
85
- ## MCP Integration
86
- Funções descritivas.
87
-
88
- ## 📖 Documentação Completa
89
- Detalhes em README.md.
90
- `;
91
- const SAMPLE_TEMPLATE = `# Template PRD
92
-
93
- ## 1. Visão Geral
94
- [Descreva o produto]
95
-
96
- ## 2. Problema
97
- [Qual problema resolve]
98
-
99
- ## 3. Personas
100
- [Defina personas]
101
-
102
- ## 4. Escopo
103
- [Defina escopo MVP]
104
- `;
105
- const SAMPLE_CHECKLIST = `# Checklist de Validação
106
-
107
- - [ ] PRD tem visão geral
108
- - [ ] Problema definido
109
- - [ ] Pelo menos 2 personas
110
- - [ ] Escopo MVP claro
111
- `;
112
- describe('SkillLoaderService', () => {
113
- let service;
114
- let mockResolver;
115
- beforeEach(() => {
116
- vi.clearAllMocks();
117
- invalidateCache();
118
- mockResolver = {
119
- readSkillFile: vi.fn(),
120
- readFirstTemplate: vi.fn(),
121
- readFirstChecklist: vi.fn(),
122
- listSkillResources: vi.fn(),
123
- getSkillDir: vi.fn(),
124
- };
125
- service = new SkillLoaderService(mockResolver);
126
- });
127
- describe('loadForPhase', () => {
128
- it('deve retornar null para fase sem skill mapeada', async () => {
129
- const result = await service.loadForPhase('FaseInexistente', 'balanced');
130
- expect(result).toBeNull();
131
- });
132
- it('deve carregar pacote completo para fase com skill', async () => {
133
- mockResolver.readSkillFile.mockResolvedValue(SAMPLE_SKILL_MD);
134
- mockResolver.readFirstTemplate.mockResolvedValue(SAMPLE_TEMPLATE);
135
- mockResolver.readFirstChecklist.mockResolvedValue(SAMPLE_CHECKLIST);
136
- mockResolver.listSkillResources.mockResolvedValue(['prd.md']);
137
- const result = await service.loadForPhase('Produto', 'balanced');
138
- expect(result).not.toBeNull();
139
- expect(result.skillName).toBe('specialist-gestao-produto');
140
- expect(result.specialist).not.toBeNull();
141
- expect(result.specialist.name).toBe('Gestão de Produto');
142
- expect(result.skillContent.length).toBeGreaterThan(0);
143
- expect(result.templateContent.length).toBeGreaterThan(0);
144
- expect(result.checklistContent.length).toBeGreaterThan(0);
145
- expect(result.tokenEstimate).toBeGreaterThan(0);
146
- });
147
- it('deve respeitar budget em modo economy (skill menor)', async () => {
148
- mockResolver.readSkillFile.mockResolvedValue(SAMPLE_SKILL_MD);
149
- mockResolver.readFirstTemplate.mockResolvedValue(SAMPLE_TEMPLATE);
150
- mockResolver.readFirstChecklist.mockResolvedValue(SAMPLE_CHECKLIST);
151
- mockResolver.listSkillResources.mockResolvedValue([]);
152
- const economy = await service.loadForPhase('Produto', 'economy');
153
- const quality = await service.loadForPhase('Produto', 'quality');
154
- expect(economy).not.toBeNull();
155
- expect(quality).not.toBeNull();
156
- // Economy deve ter menos tokens que quality
157
- expect(economy.tokenEstimate).toBeLessThanOrEqual(quality.tokenEstimate);
158
- });
159
- it('deve incluir seções essenciais em economy mode', async () => {
160
- mockResolver.readSkillFile.mockResolvedValue(SAMPLE_SKILL_MD);
161
- mockResolver.readFirstTemplate.mockResolvedValue(null);
162
- mockResolver.readFirstChecklist.mockResolvedValue(null);
163
- mockResolver.listSkillResources.mockResolvedValue([]);
164
- const result = await service.loadForPhase('Produto', 'economy');
165
- expect(result).not.toBeNull();
166
- // Seções essenciais devem estar presentes
167
- expect(result.skillContent).toContain('Missão');
168
- expect(result.skillContent).toContain('Quality Gate');
169
- });
170
- it('deve lidar com skill sem template e checklist', async () => {
171
- mockResolver.readSkillFile.mockResolvedValue(SAMPLE_SKILL_MD);
172
- mockResolver.readFirstTemplate.mockResolvedValue(null);
173
- mockResolver.readFirstChecklist.mockResolvedValue(null);
174
- mockResolver.listSkillResources.mockResolvedValue([]);
175
- const result = await service.loadForPhase('Produto', 'balanced');
176
- expect(result).not.toBeNull();
177
- expect(result.templateContent).toBe('');
178
- expect(result.checklistContent).toBe('');
179
- });
180
- });
181
- describe('loadChecklist', () => {
182
- it('deve carregar checklist para fase válida', async () => {
183
- mockResolver.readFirstChecklist.mockResolvedValue(SAMPLE_CHECKLIST);
184
- const result = await service.loadChecklist('Produto');
185
- expect(result).toBe(SAMPLE_CHECKLIST);
186
- });
187
- it('deve retornar null para fase sem skill', async () => {
188
- const result = await service.loadChecklist('FaseInexistente');
189
- expect(result).toBeNull();
190
- });
191
- });
192
- describe('loadTemplate', () => {
193
- it('deve carregar template para fase válida', async () => {
194
- mockResolver.readFirstTemplate.mockResolvedValue(SAMPLE_TEMPLATE);
195
- const result = await service.loadTemplate('Produto');
196
- expect(result).toBe(SAMPLE_TEMPLATE);
197
- });
198
- });
199
- describe('formatAsMarkdown', () => {
200
- it('deve formatar pacote como markdown legível', () => {
201
- const pkg = {
202
- skillName: 'specialist-gestao-produto',
203
- specialist: {
204
- name: 'Gestão de Produto',
205
- tone: 'Estratégico',
206
- expertise: ['product discovery'],
207
- instructions: 'Foque no problema.',
208
- },
209
- skillContent: '## Missão\nDefinir produto.',
210
- templateContent: '# Template PRD\n## Visão',
211
- checklistContent: '- [ ] PRD completo',
212
- referenceLinks: ['maestro://skills/specialist-gestao-produto/templates/prd.md'],
213
- tokenEstimate: 500,
214
- mode: 'summary',
215
- };
216
- const md = service.formatAsMarkdown(pkg);
217
- expect(md).toContain('Gestão de Produto');
218
- expect(md).toContain('Estratégico');
219
- expect(md).toContain('Instruções do Especialista');
220
- expect(md).toContain('Template do Entregável');
221
- expect(md).toContain('Checklist de Validação');
222
- expect(md).toContain('Recursos Adicionais');
223
- expect(md).toContain('500 tokens');
224
- });
225
- it('deve omitir seções vazias', () => {
226
- const pkg = {
227
- skillName: 'test',
228
- specialist: null,
229
- skillContent: '',
230
- templateContent: '',
231
- checklistContent: '- [ ] Item',
232
- referenceLinks: [],
233
- tokenEstimate: 10,
234
- mode: 'skeleton',
235
- };
236
- const md = service.formatAsMarkdown(pkg);
237
- expect(md).not.toContain('Instruções do Especialista');
238
- expect(md).not.toContain('Template do Entregável');
239
- expect(md).toContain('Checklist de Validação');
240
- expect(md).not.toContain('Recursos Adicionais');
241
- });
242
- });
243
- });
244
- //# sourceMappingURL=skill-loader.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skill-loader.test.js","sourceRoot":"","sources":["../../src/tests/skill-loader.test.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- /**
2
- * Testes unitários para módulos integrados na v5.2
3
- *
4
- * Cobre:
5
- * - skill-cache.service (A.3)
6
- * - structured-content.service (A.8)
7
- * - annotations-fallback.service (A.7)
8
- * - response-formatter (A.6)
9
- * - client-capabilities.service (A.5)
10
- * - elicitation-fallback.service (A.7)
11
- * - sampling-fallback.service (A.7)
12
- */
13
- export {};
14
- //# sourceMappingURL=v52-integration.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"v52-integration.test.d.ts","sourceRoot":"","sources":["../../src/tests/v52-integration.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}