@maestro-ai/mcp-server 2.4.2 → 2.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.
Files changed (122) hide show
  1. package/dist/flows/onboarding-orchestrator.d.ts +41 -0
  2. package/dist/flows/onboarding-orchestrator.d.ts.map +1 -0
  3. package/dist/flows/onboarding-orchestrator.js +399 -0
  4. package/dist/flows/onboarding-orchestrator.js.map +1 -0
  5. package/dist/flows/types.d.ts.map +1 -1
  6. package/dist/flows/types.js +7 -0
  7. package/dist/flows/types.js.map +1 -1
  8. package/dist/gates/adaptive-scoring.d.ts +133 -0
  9. package/dist/gates/adaptive-scoring.d.ts.map +1 -0
  10. package/dist/gates/adaptive-scoring.js +404 -0
  11. package/dist/gates/adaptive-scoring.js.map +1 -0
  12. package/dist/gates/compatibility-wrapper.d.ts +139 -0
  13. package/dist/gates/compatibility-wrapper.d.ts.map +1 -0
  14. package/dist/gates/compatibility-wrapper.js +362 -0
  15. package/dist/gates/compatibility-wrapper.js.map +1 -0
  16. package/dist/gates/contextual-recommender.d.ts +128 -0
  17. package/dist/gates/contextual-recommender.d.ts.map +1 -0
  18. package/dist/gates/contextual-recommender.js +446 -0
  19. package/dist/gates/contextual-recommender.js.map +1 -0
  20. package/dist/gates/intelligent-gate-engine.d.ts +158 -0
  21. package/dist/gates/intelligent-gate-engine.d.ts.map +1 -0
  22. package/dist/gates/intelligent-gate-engine.js +429 -0
  23. package/dist/gates/intelligent-gate-engine.js.map +1 -0
  24. package/dist/gates/intelligent-validator.d.ts +164 -0
  25. package/dist/gates/intelligent-validator.d.ts.map +1 -0
  26. package/dist/gates/intelligent-validator.js +347 -0
  27. package/dist/gates/intelligent-validator.js.map +1 -0
  28. package/dist/gates/maturity-levels.d.ts +119 -0
  29. package/dist/gates/maturity-levels.d.ts.map +1 -0
  30. package/dist/gates/maturity-levels.js +455 -0
  31. package/dist/gates/maturity-levels.js.map +1 -0
  32. package/dist/state/storage.d.ts.map +1 -1
  33. package/dist/state/storage.js +1 -0
  34. package/dist/state/storage.js.map +1 -1
  35. package/dist/tests/brainstorm-prd.test.d.ts +5 -0
  36. package/dist/tests/brainstorm-prd.test.d.ts.map +1 -0
  37. package/dist/tests/brainstorm-prd.test.js +291 -0
  38. package/dist/tests/brainstorm-prd.test.js.map +1 -0
  39. package/dist/tests/migracao-skills.test.d.ts +2 -0
  40. package/dist/tests/migracao-skills.test.d.ts.map +1 -0
  41. package/dist/tests/migracao-skills.test.js +208 -0
  42. package/dist/tests/migracao-skills.test.js.map +1 -0
  43. package/dist/tests/onboarding-flow.test.d.ts +5 -0
  44. package/dist/tests/onboarding-flow.test.d.ts.map +1 -0
  45. package/dist/tests/onboarding-flow.test.js +231 -0
  46. package/dist/tests/onboarding-flow.test.js.map +1 -0
  47. package/dist/tests/readiness-dashboard.test.d.ts +5 -0
  48. package/dist/tests/readiness-dashboard.test.d.ts.map +1 -0
  49. package/dist/tests/readiness-dashboard.test.js +252 -0
  50. package/dist/tests/readiness-dashboard.test.js.map +1 -0
  51. package/dist/tools/brainstorm.d.ts +41 -0
  52. package/dist/tools/brainstorm.d.ts.map +1 -0
  53. package/dist/tools/brainstorm.js +429 -0
  54. package/dist/tools/brainstorm.js.map +1 -0
  55. package/dist/tools/carregar-projeto.js +1 -1
  56. package/dist/tools/carregar-projeto.js.map +1 -1
  57. package/dist/tools/confirmar-stitch.js +1 -1
  58. package/dist/tools/confirmar-stitch.js.map +1 -1
  59. package/dist/tools/index.d.ts.map +1 -1
  60. package/dist/tools/index.js +65 -0
  61. package/dist/tools/index.js.map +1 -1
  62. package/dist/tools/iniciar-projeto.d.ts +2 -2
  63. package/dist/tools/iniciar-projeto.d.ts.map +1 -1
  64. package/dist/tools/iniciar-projeto.js +53 -96
  65. package/dist/tools/iniciar-projeto.js.map +1 -1
  66. package/dist/tools/next-steps-dashboard.d.ts +30 -0
  67. package/dist/tools/next-steps-dashboard.d.ts.map +1 -0
  68. package/dist/tools/next-steps-dashboard.js +248 -0
  69. package/dist/tools/next-steps-dashboard.js.map +1 -0
  70. package/dist/tools/prd-writer.d.ts +36 -0
  71. package/dist/tools/prd-writer.d.ts.map +1 -0
  72. package/dist/tools/prd-writer.js +377 -0
  73. package/dist/tools/prd-writer.js.map +1 -0
  74. package/dist/tools/proximo.d.ts.map +1 -1
  75. package/dist/tools/proximo.js +147 -22
  76. package/dist/tools/proximo.js.map +1 -1
  77. package/dist/tools/setup-inicial.d.ts +48 -0
  78. package/dist/tools/setup-inicial.d.ts.map +1 -0
  79. package/dist/tools/setup-inicial.js +84 -0
  80. package/dist/tools/setup-inicial.js.map +1 -0
  81. package/dist/tools/validar-gate.d.ts.map +1 -1
  82. package/dist/tools/validar-gate.js +28 -28
  83. package/dist/tools/validar-gate.js.map +1 -1
  84. package/dist/types/index.d.ts +24 -0
  85. package/dist/types/index.d.ts.map +1 -1
  86. package/dist/types/index.js.map +1 -1
  87. package/dist/types/onboarding.d.ts +124 -0
  88. package/dist/types/onboarding.d.ts.map +1 -0
  89. package/dist/types/onboarding.js +5 -0
  90. package/dist/types/onboarding.js.map +1 -0
  91. package/dist/utils/config.d.ts +16 -0
  92. package/dist/utils/config.d.ts.map +1 -0
  93. package/dist/utils/config.js +26 -0
  94. package/dist/utils/config.js.map +1 -0
  95. package/dist/utils/content-injector.d.ts +1 -0
  96. package/dist/utils/content-injector.d.ts.map +1 -1
  97. package/dist/utils/content-injector.js +5 -0
  98. package/dist/utils/content-injector.js.map +1 -1
  99. package/dist/utils/discovery-adapter.d.ts +33 -0
  100. package/dist/utils/discovery-adapter.d.ts.map +1 -0
  101. package/dist/utils/discovery-adapter.js +392 -0
  102. package/dist/utils/discovery-adapter.js.map +1 -0
  103. package/dist/utils/files.d.ts +1 -0
  104. package/dist/utils/files.d.ts.map +1 -1
  105. package/dist/utils/files.js +97 -7
  106. package/dist/utils/files.js.map +1 -1
  107. package/dist/utils/ide-paths.d.ts.map +1 -1
  108. package/dist/utils/ide-paths.js +7 -8
  109. package/dist/utils/ide-paths.js.map +1 -1
  110. package/dist/utils/inferencia-contextual.d.ts +3 -0
  111. package/dist/utils/inferencia-contextual.d.ts.map +1 -0
  112. package/dist/utils/inferencia-contextual.js +93 -0
  113. package/dist/utils/inferencia-contextual.js.map +1 -0
  114. package/dist/utils/instructions.d.ts +8 -3
  115. package/dist/utils/instructions.d.ts.map +1 -1
  116. package/dist/utils/instructions.js +72 -25
  117. package/dist/utils/instructions.js.map +1 -1
  118. package/dist/utils/readiness-checker.d.ts +27 -0
  119. package/dist/utils/readiness-checker.d.ts.map +1 -0
  120. package/dist/utils/readiness-checker.js +226 -0
  121. package/dist/utils/readiness-checker.js.map +1 -0
  122. package/package.json +1 -1
@@ -0,0 +1,446 @@
1
+ /**
2
+ * Sistema de Recomendações Contextuais - Sugestões inteligentes e acionáveis
3
+ *
4
+ * Features principais:
5
+ * - Recomendações priorizadas por impacto e esforço
6
+ * - Auto-fixes quando tecnicamente viável
7
+ * - Sugestões contextuais baseadas no tipo de projeto
8
+ * - Exemplos práticos e específicos
9
+ *
10
+ * @version 3.0.0
11
+ */
12
+ /**
13
+ * Gerador inteligente de recomendações contextuais
14
+ */
15
+ export class ContextualRecommender {
16
+ templates;
17
+ userProfiles;
18
+ phasePatterns;
19
+ constructor() {
20
+ this.templates = new Map();
21
+ this.userProfiles = new Map();
22
+ this.phasePatterns = new Map();
23
+ this.initializeTemplates();
24
+ this.initializePhasePatterns();
25
+ }
26
+ /**
27
+ * Gera recomendações inteligentes priorizadas
28
+ */
29
+ generateSmartRecommendations(semanticMatches, completeness, quality, adaptiveScore, context, userProfile, config) {
30
+ const defaultConfig = {
31
+ maxRecommendations: 8,
32
+ priorityThreshold: 0.3,
33
+ includeOptional: true,
34
+ includeAutoFixes: true
35
+ };
36
+ const finalConfig = { ...defaultConfig, ...config };
37
+ const recommendations = [];
38
+ // 1. Recomendações para problemas semânticos
39
+ recommendations.push(...this.generateSemanticRecommendations(semanticMatches, context, userProfile));
40
+ // 2. Recomendações para completude
41
+ recommendations.push(...this.generateCompletenessRecommendations(completeness, context, userProfile));
42
+ // 3. Recomendações para qualidade
43
+ recommendations.push(...this.generateQualityRecommendations(quality, context, userProfile));
44
+ // 4. Recomendações baseadas no score adaptativo
45
+ recommendations.push(...this.generateScoreBasedRecommendations(adaptiveScore, context, userProfile));
46
+ // 5. Recomendações contextuais específicas da fase
47
+ recommendations.push(...this.generatePhaseSpecificRecommendations(context, semanticMatches, completeness, userProfile));
48
+ // 6. Prioriza, filtra e limita
49
+ return this.prioritizeAndFilter(recommendations, finalConfig, userProfile);
50
+ }
51
+ /**
52
+ * Gera auto-fixes quando tecnicamente viável
53
+ */
54
+ generateAutoFixes(content, recommendations, context) {
55
+ const autoFixableRecommendations = [];
56
+ for (const recommendation of recommendations) {
57
+ if (!recommendation.autofix)
58
+ continue;
59
+ const autofix = this.generateAutoFixAction(content, recommendation, context);
60
+ if (autofix && autofix.confidence > 0.7) {
61
+ autoFixableRecommendations.push({
62
+ ...recommendation,
63
+ autofix,
64
+ type: 'critical', // Auto-fixes são sempre críticos
65
+ effort: 'quick' // Auto-fixes são sempre rápidos
66
+ });
67
+ }
68
+ }
69
+ return autoFixableRecommendations;
70
+ }
71
+ /**
72
+ * Atualiza perfil do usuário baseado em feedback
73
+ */
74
+ updateUserProfile(userId, feedback) {
75
+ let profile = this.userProfiles.get(userId);
76
+ if (!profile) {
77
+ profile = this.createDefaultProfile();
78
+ }
79
+ // Atualiza histórico de feedback
80
+ profile.feedbackHistory.push(...feedback);
81
+ // Aprende padrões baseado no feedback
82
+ this.learnFromFeedback(profile, feedback);
83
+ this.userProfiles.set(userId, profile);
84
+ }
85
+ /**
86
+ * Gera recomendações para problemas semânticos
87
+ */
88
+ generateSemanticRecommendations(semanticMatches, context, userProfile) {
89
+ const recommendations = [];
90
+ for (const match of semanticMatches) {
91
+ if (match.found)
92
+ continue; // Só recomenda para conceitos não encontrados
93
+ const template = this.findBestTemplate(context.phase.nome, 'semantic', match.concept);
94
+ if (template) {
95
+ recommendations.push({
96
+ id: `semantic_${match.concept}_${Date.now()}`,
97
+ type: 'critical',
98
+ priority: this.calculatePriority(match.concept, context),
99
+ impact: template.impact,
100
+ effort: template.effort,
101
+ title: template.title.replace('[CONCEPT]', match.concept),
102
+ description: this.personalizeDescription(template.description, context, userProfile),
103
+ examples: this.personalizeExamples(template.examples, context, userProfile),
104
+ estimatedTimeMinutes: this.estimateTimeMinutes(template.effort),
105
+ autofix: template.autofix ? this.convertToAutofix(template.autofix) : undefined
106
+ });
107
+ }
108
+ }
109
+ return recommendations;
110
+ }
111
+ /**
112
+ * Gera recomendações para completude
113
+ */
114
+ generateCompletenessRecommendations(completeness, context, userProfile) {
115
+ const recommendations = [];
116
+ // Recomendações para elementos críticos faltando
117
+ for (const missing of completeness.missingCritical) {
118
+ const template = this.findBestTemplate(context.phase.nome, 'completeness', missing);
119
+ if (template) {
120
+ recommendations.push({
121
+ id: `critical_missing_${missing}_${Date.now()}`,
122
+ type: 'critical',
123
+ priority: 0.9,
124
+ impact: 'high',
125
+ effort: template.effort,
126
+ title: `Adicionar ${missing}`,
127
+ description: this.personalizeDescription(template.description, context, userProfile),
128
+ examples: this.getExamplesForMissingElement(missing, context),
129
+ estimatedTimeMinutes: this.estimateTimeMinutes(template.effort),
130
+ autofix: this.generateStructuralAutofix(missing, context)
131
+ });
132
+ }
133
+ }
134
+ // Recomendações para elementos opcionais
135
+ for (const missing of completeness.missingOptional) {
136
+ if (recommendations.length >= 6)
137
+ break; // Limita recomendações opcionais
138
+ recommendations.push({
139
+ id: `optional_missing_${missing}_${Date.now()}`,
140
+ type: 'enhancement',
141
+ priority: 0.4,
142
+ impact: 'medium',
143
+ effort: 'moderate',
144
+ title: `Considerar adicionar ${missing}`,
145
+ description: `Adicionar ${missing} pode melhorar a qualidade do entregável`,
146
+ examples: this.getExamplesForMissingElement(missing, context),
147
+ estimatedTimeMinutes: 15
148
+ });
149
+ }
150
+ return recommendations;
151
+ }
152
+ /**
153
+ * Gera recomendações para qualidade
154
+ */
155
+ generateQualityRecommendations(quality, context, userProfile) {
156
+ const recommendations = [];
157
+ const threshold = 70; // Threshold para recomendar melhorias
158
+ if (quality.clarity < threshold) {
159
+ recommendations.push({
160
+ id: `quality_clarity_${Date.now()}`,
161
+ type: 'improvement',
162
+ priority: 0.7,
163
+ impact: 'high',
164
+ effort: 'moderate',
165
+ title: 'Melhorar clareza do conteúdo',
166
+ description: 'O conteúdo pode ser mais claro e direto',
167
+ examples: this.getClarityExamples(context),
168
+ estimatedTimeMinutes: 20,
169
+ autofix: this.generateClarityAutofix()
170
+ });
171
+ }
172
+ if (quality.depth < threshold) {
173
+ recommendations.push({
174
+ id: `quality_depth_${Date.now()}`,
175
+ type: 'improvement',
176
+ priority: 0.6,
177
+ impact: 'medium',
178
+ effort: 'moderate',
179
+ title: 'Aumentar profundidade da análise',
180
+ description: 'Adicione mais detalhes e contexto às seções',
181
+ examples: this.getDepthExamples(context),
182
+ estimatedTimeMinutes: 25
183
+ });
184
+ }
185
+ if (quality.practicality < threshold) {
186
+ recommendations.push({
187
+ id: `quality_practicality_${Date.now()}`,
188
+ type: 'improvement',
189
+ priority: 0.6,
190
+ impact: 'high',
191
+ effort: 'quick',
192
+ title: 'Tornar mais prático e aplicável',
193
+ description: 'Inclua exemplos concretos e passos acionáveis',
194
+ examples: this.getPracticalityExamples(context),
195
+ estimatedTimeMinutes: 15
196
+ });
197
+ }
198
+ return recommendations;
199
+ }
200
+ /**
201
+ * Gera recomendações baseadas no score adaptativo
202
+ */
203
+ generateScoreBasedRecommendations(adaptiveScore, context, userProfile) {
204
+ const recommendations = [];
205
+ // Identifica os componentes com menor score para focar melhorias
206
+ const components = [
207
+ { name: 'semantic', score: adaptiveScore.components.semantic, weight: adaptiveScore.weights.semantic },
208
+ { name: 'completeness', score: adaptiveScore.components.completeness, weight: adaptiveScore.weights.completeness },
209
+ { name: 'quality', score: adaptiveScore.components.quality, weight: adaptiveScore.weights.quality },
210
+ { name: 'structure', score: adaptiveScore.components.structure, weight: adaptiveScore.weights.structure },
211
+ { name: 'consistency', score: adaptiveScore.components.consistency, weight: adaptiveScore.weights.consistency }
212
+ ].sort((a, b) => (a.score * a.weight) - (b.score * b.weight));
213
+ // Recomenda melhorias para os 2 componentes mais fracos
214
+ for (let i = 0; i < Math.min(2, components.length); i++) {
215
+ const component = components[i];
216
+ if (component.score < 60) { // Só recomenda se score baixo
217
+ recommendations.push({
218
+ id: `score_${component.name}_${Date.now()}`,
219
+ type: 'improvement',
220
+ priority: 0.8 - (i * 0.2), // Primeira prioridade é maior
221
+ impact: component.weight > 0.3 ? 'high' : 'medium',
222
+ effort: this.getEffortForComponent(component.name),
223
+ title: this.getTitleForComponent(component.name),
224
+ description: this.getDescriptionForComponent(component.name, context),
225
+ examples: this.getExamplesForComponent(component.name, context),
226
+ estimatedTimeMinutes: this.getTimeForComponent(component.name)
227
+ });
228
+ }
229
+ }
230
+ return recommendations;
231
+ }
232
+ /**
233
+ * Gera recomendações específicas da fase
234
+ */
235
+ generatePhaseSpecificRecommendations(context, semanticMatches, completeness, userProfile) {
236
+ const templates = this.templates.get(context.phase.nome) || [];
237
+ const recommendations = [];
238
+ for (const template of templates) {
239
+ // Verifica se a recomendação é aplicável no contexto atual
240
+ if (this.isTemplateApplicable(template, semanticMatches, completeness, context)) {
241
+ recommendations.push({
242
+ id: `phase_${template.id}_${Date.now()}`,
243
+ type: 'enhancement',
244
+ priority: 0.5,
245
+ impact: template.impact,
246
+ effort: template.effort,
247
+ title: template.title,
248
+ description: this.personalizeDescription(template.description, context, userProfile),
249
+ examples: this.personalizeExamples(template.examples, context, userProfile),
250
+ estimatedTimeMinutes: this.estimateTimeMinutes(template.effort),
251
+ autofix: template.autofix ? this.convertToAutofix(template.autofix) : undefined
252
+ });
253
+ }
254
+ }
255
+ return recommendations;
256
+ }
257
+ /**
258
+ * Prioriza, filtra e limita recomendações
259
+ */
260
+ prioritizeAndFilter(recommendations, config, userProfile) {
261
+ let filtered = recommendations;
262
+ // 1. Filtra por threshold de prioridade
263
+ filtered = filtered.filter(r => r.priority >= config.priorityThreshold);
264
+ // 2. Remove opcionais se configurado
265
+ if (!config.includeOptional) {
266
+ filtered = filtered.filter(r => r.type !== 'optional');
267
+ }
268
+ // 3. Remove auto-fixes se configurado
269
+ if (!config.includeAutoFixes) {
270
+ filtered = filtered.filter(r => !r.autofix);
271
+ }
272
+ // 4. Ordena por prioridade e impacto
273
+ filtered.sort((a, b) => {
274
+ const scoreA = this.calculateRecommendationScore(a, userProfile);
275
+ const scoreB = this.calculateRecommendationScore(b, userProfile);
276
+ return scoreB - scoreA;
277
+ });
278
+ // 5. Limita quantidade
279
+ return filtered.slice(0, config.maxRecommendations);
280
+ }
281
+ /**
282
+ * Inicializa templates de recomendações
283
+ */
284
+ initializeTemplates() {
285
+ // Templates para fase Produto
286
+ this.templates.set('Produto', [
287
+ {
288
+ id: 'produto_problema',
289
+ phase: 'Produto',
290
+ trigger: 'missing_problema',
291
+ title: 'Definir problema claramente',
292
+ description: 'Adicione uma descrição clara do problema que o produto resolve',
293
+ examples: [
294
+ 'Usuários perdem 30 minutos por dia procurando informações dispersas em diferentes sistemas',
295
+ 'Empresas gastam R$ 10.000/mês em licenças desnecessárias por falta de visibilidade'
296
+ ],
297
+ effort: 'quick',
298
+ impact: 'high',
299
+ autofix: {
300
+ type: 'append',
301
+ pattern: '## Problema',
302
+ replacement: '## Problema\n\n[Descreva claramente qual problema está sendo resolvido]\n\n**Impacto atual:**\n- [Quantifique o impacto do problema]\n- [Adicione dados específicos]\n\n**Por que resolver agora:**\n- [Justifique a urgência]\n',
303
+ confidence: 0.8
304
+ }
305
+ },
306
+ {
307
+ id: 'produto_personas',
308
+ phase: 'Produto',
309
+ trigger: 'missing_persona',
310
+ title: 'Definir personas principais',
311
+ description: 'Identifique quem são os usuários primários do produto',
312
+ examples: [
313
+ 'Gerentes de projeto (30-45 anos) que coordenam equipes remotas',
314
+ 'Desenvolvedores sênior que precisam de visibilidade sobre dependências'
315
+ ],
316
+ effort: 'moderate',
317
+ impact: 'high'
318
+ }
319
+ ]);
320
+ // Templates para fase Requisitos
321
+ this.templates.set('Requisitos', [
322
+ {
323
+ id: 'requisitos_funcionais',
324
+ phase: 'Requisitos',
325
+ trigger: 'missing_requisitos_funcionais',
326
+ title: 'Adicionar requisitos funcionais com IDs',
327
+ description: 'Liste os requisitos funcionais com identificadores únicos',
328
+ examples: [
329
+ 'RF001 - O sistema deve permitir login com email e senha',
330
+ 'RF002 - O usuário deve poder visualizar dashboard personalizado'
331
+ ],
332
+ effort: 'moderate',
333
+ impact: 'high',
334
+ autofix: {
335
+ type: 'append',
336
+ pattern: '## Requisitos Funcionais',
337
+ replacement: '## Requisitos Funcionais\n\n**RF001** - [Descreva o primeiro requisito funcional]\n\n**RF002** - [Descreva o segundo requisito funcional]\n\n**RF003** - [Descreva o terceiro requisito funcional]\n',
338
+ confidence: 0.9
339
+ }
340
+ }
341
+ ]);
342
+ // Adiciona mais templates para outras fases...
343
+ }
344
+ /**
345
+ * Inicializa padrões por fase
346
+ */
347
+ initializePhasePatterns() {
348
+ this.phasePatterns.set('Produto', [
349
+ 'problema', 'solução', 'usuário', 'valor', 'métrica', 'objetivo'
350
+ ]);
351
+ this.phasePatterns.set('Requisitos', [
352
+ 'funcional', 'não-funcional', 'critério', 'aceite', 'performance', 'segurança'
353
+ ]);
354
+ this.phasePatterns.set('UX Design', [
355
+ 'wireframe', 'protótipo', 'jornada', 'fluxo', 'usabilidade', 'acessibilidade'
356
+ ]);
357
+ }
358
+ // Métodos auxiliares (implementação simplificada)
359
+ findBestTemplate(phase, category, concept) {
360
+ const templates = this.templates.get(phase) || [];
361
+ return templates.find(t => t.trigger.includes(concept)) || null;
362
+ }
363
+ calculatePriority(concept, context) {
364
+ const criticalConcepts = ['problema', 'usuário', 'requisitos_funcionais'];
365
+ return criticalConcepts.includes(concept) ? 0.9 : 0.6;
366
+ }
367
+ personalizeDescription(description, context, userProfile) {
368
+ let personalized = description;
369
+ // Personaliza baseado no tipo de projeto
370
+ if (context.projectType === 'poc') {
371
+ personalized = personalized.replace('completo', 'básico');
372
+ }
373
+ // Personaliza baseado na experiência
374
+ if (userProfile?.experienceLevel === 'junior') {
375
+ personalized += '\n\n💡 **Dica:** ' + this.getJuniorTip(description);
376
+ }
377
+ return personalized;
378
+ }
379
+ personalizeExamples(examples, context, userProfile) {
380
+ // Filtra exemplos baseado no contexto
381
+ let relevantExamples = examples;
382
+ if (context.projectType === 'poc') {
383
+ relevantExamples = examples.filter(ex => !ex.includes('complexo') && !ex.includes('avançado'));
384
+ }
385
+ return relevantExamples.slice(0, 3); // Limita a 3 exemplos
386
+ }
387
+ estimateTimeMinutes(effort) {
388
+ const timeMap = { quick: 10, moderate: 20, complex: 45 };
389
+ return timeMap[effort];
390
+ }
391
+ convertToAutofix(template) {
392
+ return {
393
+ type: template.type,
394
+ target: template.pattern,
395
+ content: template.replacement,
396
+ confidence: template.confidence
397
+ };
398
+ }
399
+ generateAutoFixAction(content, recommendation, context) {
400
+ if (!recommendation.autofix)
401
+ return null;
402
+ // Verifica se o auto-fix é aplicável no contexto atual
403
+ const isApplicable = this.isAutoFixApplicable(content, recommendation.autofix, context);
404
+ return isApplicable ? recommendation.autofix : null;
405
+ }
406
+ createDefaultProfile() {
407
+ return {
408
+ experienceLevel: 'mid',
409
+ preferredStyle: 'detailed',
410
+ commonPatterns: [],
411
+ recentProjects: [],
412
+ feedbackHistory: []
413
+ };
414
+ }
415
+ learnFromFeedback(profile, feedback) {
416
+ // Aprende padrões baseado no feedback positivo
417
+ const positiveFeedback = feedback.filter(f => f.wasUseful);
418
+ // Implementação de aprendizado simples
419
+ }
420
+ calculateRecommendationScore(recommendation, userProfile) {
421
+ let score = recommendation.priority * 100;
422
+ // Ajusta baseado no impacto
423
+ const impactMultiplier = { high: 1.2, medium: 1.0, low: 0.8 };
424
+ score *= impactMultiplier[recommendation.impact];
425
+ // Ajusta baseado no esforço (menos esforço = maior score)
426
+ const effortMultiplier = { quick: 1.2, moderate: 1.0, complex: 0.8 };
427
+ score *= effortMultiplier[recommendation.effort];
428
+ return score;
429
+ }
430
+ // Métodos auxiliares placeholder (implementação completa seria mais complexa)
431
+ getExamplesForMissingElement(missing, context) { return [`Exemplo para ${missing}`]; }
432
+ generateStructuralAutofix(missing, context) { return undefined; }
433
+ getClarityExamples(context) { return ['Use linguagem direta', 'Evite jargão técnico']; }
434
+ generateClarityAutofix() { return undefined; }
435
+ getDepthExamples(context) { return ['Adicione contexto', 'Inclua justificativas']; }
436
+ getPracticalityExamples(context) { return ['Inclua exemplos práticos', 'Adicione passos específicos']; }
437
+ getEffortForComponent(component) { return 'moderate'; }
438
+ getTitleForComponent(component) { return `Melhorar ${component}`; }
439
+ getDescriptionForComponent(component, context) { return `Melhore a ${component} do entregável`; }
440
+ getExamplesForComponent(component, context) { return [`Exemplo para ${component}`]; }
441
+ getTimeForComponent(component) { return 20; }
442
+ isTemplateApplicable(template, semanticMatches, completeness, context) { return true; }
443
+ isAutoFixApplicable(content, autofix, context) { return autofix.confidence > 0.7; }
444
+ getJuniorTip(description) { return 'Comece com uma versão simples e vá refinando'; }
445
+ }
446
+ //# sourceMappingURL=contextual-recommender.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextual-recommender.js","sourceRoot":"","sources":["../../src/gates/contextual-recommender.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Motor Principal de Gates Inteligentes - Orquestra todos os componentes
3
+ *
4
+ * Este é o ponto de entrada principal que coordena:
5
+ * - IntelligentValidator: Validação contextual semântica
6
+ * - AdaptiveScoring: Scoring dinâmico baseado em contexto
7
+ * - ContextualRecommender: Sugestões inteligentes e acionáveis
8
+ * - MaturityLevelAssessor: Sistema de 5 níveis de maturidade
9
+ *
10
+ * @version 3.0.0
11
+ */
12
+ import { type ValidationContext, type IntelligentValidationResult } from "./intelligent-validator.js";
13
+ import { type AdaptiveScore, type ProjectHistory } from "./adaptive-scoring.js";
14
+ import { type UserProfile } from "./contextual-recommender.js";
15
+ import { type MaturityAssessment, type MaturityLevel } from "./maturity-levels.js";
16
+ import type { Fase, TierGate } from "../types/index.js";
17
+ export interface GateEngineConfig {
18
+ enableIntelligentValidation: boolean;
19
+ enableAdaptiveScoring: boolean;
20
+ enableContextualRecommendations: boolean;
21
+ enableMaturityLevels: boolean;
22
+ fallbackToLegacy: boolean;
23
+ maxRecommendations: number;
24
+ userProfile?: UserProfile;
25
+ projectHistory?: ProjectHistory;
26
+ }
27
+ export interface IntelligentGateResult {
28
+ canAdvance: boolean;
29
+ maturityLevel: MaturityLevel;
30
+ overallScore: number;
31
+ validationResult: IntelligentValidationResult;
32
+ adaptiveScore: AdaptiveScore;
33
+ maturityAssessment: MaturityAssessment;
34
+ summary: GateResultSummary;
35
+ userFeedback: UserFeedbackOptions;
36
+ engineVersion: string;
37
+ processingTimeMs: number;
38
+ confidenceLevel: number;
39
+ }
40
+ export interface GateResultSummary {
41
+ title: string;
42
+ status: 'approved' | 'conditionally_approved' | 'needs_improvement' | 'blocked';
43
+ statusIcon: string;
44
+ statusColor: 'green' | 'yellow' | 'orange' | 'red';
45
+ mainMessage: string;
46
+ keyStrengths: string[];
47
+ priorityActions: string[];
48
+ nextSteps: string[];
49
+ estimatedEffortHours: number;
50
+ }
51
+ export interface UserFeedbackOptions {
52
+ quickActions: QuickAction[];
53
+ detailsAvailable: boolean;
54
+ canForceAdvance: boolean;
55
+ canRequestHumanReview: boolean;
56
+ feedbackPrompts: FeedbackPrompt[];
57
+ }
58
+ export interface QuickAction {
59
+ id: string;
60
+ label: string;
61
+ type: 'advance' | 'iterate' | 'autofix' | 'consult' | 'skip';
62
+ estimatedMinutes: number;
63
+ confidence: number;
64
+ consequences?: string;
65
+ }
66
+ export interface FeedbackPrompt {
67
+ question: string;
68
+ options: string[];
69
+ purpose: string;
70
+ }
71
+ /**
72
+ * Motor principal que orquestra todo o sistema de validação inteligente
73
+ */
74
+ export declare class IntelligentGateEngine {
75
+ private validator;
76
+ private scoring;
77
+ private recommender;
78
+ private maturityAssessor;
79
+ private defaultConfig;
80
+ constructor();
81
+ /**
82
+ * Método principal - valida entregável usando todo o sistema inteligente
83
+ */
84
+ validateDeliverable(content: string, phase: Fase, tier?: TierGate, projectType?: 'poc' | 'internal' | 'product' | 'critical', config?: Partial<GateEngineConfig>): Promise<IntelligentGateResult>;
85
+ /**
86
+ * Valida com feedback em tempo real (streaming)
87
+ */
88
+ validateWithRealTimeFeedback(content: string, context: ValidationContext, onProgress: (update: ValidationProgressUpdate) => void): Promise<IntelligentGateResult>;
89
+ /**
90
+ * Executa apenas análise rápida (para preview)
91
+ */
92
+ quickAnalysis(content: string, phase: Fase, tier?: TierGate): {
93
+ estimatedLevel: MaturityLevel;
94
+ quickScore: number;
95
+ canLikelyAdvance: boolean;
96
+ majorIssues: string[];
97
+ quickWins: string[];
98
+ };
99
+ /**
100
+ * Registra feedback do usuário para aprendizado
101
+ */
102
+ recordUserFeedback(resultId: string, userAccepted: boolean, actualTimeSpent?: number, userComments?: string, recommendationsUsed?: string[]): void;
103
+ /**
104
+ * Constrói contexto de validação
105
+ */
106
+ private buildValidationContext;
107
+ /**
108
+ * Executa validação inteligente
109
+ */
110
+ private executeIntelligentValidation;
111
+ /**
112
+ * Calcula score adaptativo
113
+ */
114
+ private calculateAdaptiveScore;
115
+ /**
116
+ * Avalia nível de maturidade
117
+ */
118
+ private assessMaturityLevel;
119
+ /**
120
+ * Gera recomendações aprimoradas
121
+ */
122
+ private generateEnhancedRecommendations;
123
+ /**
124
+ * Compila resultado final inteligente
125
+ */
126
+ private compileIntelligentResult;
127
+ /**
128
+ * Gera resumo do resultado para apresentação
129
+ */
130
+ private generateResultSummary;
131
+ /**
132
+ * Gera opções de feedback para o usuário
133
+ */
134
+ private generateUserFeedbackOptions;
135
+ /**
136
+ * Gera prompts de feedback para aprendizado
137
+ */
138
+ private generateFeedbackPrompts;
139
+ private fallbackToLegacySystem;
140
+ private inferTeamExperience;
141
+ private inferTimeConstraints;
142
+ private mapProjectTypeToCriticality;
143
+ private getExpectedConcepts;
144
+ private calculateQuickScore;
145
+ private estimateMaturityLevel;
146
+ private identifyMajorIssues;
147
+ private identifyQuickWins;
148
+ private createBasicValidationResult;
149
+ private createBasicScore;
150
+ private createBasicMaturityAssessment;
151
+ private recordForLearning;
152
+ }
153
+ export interface ValidationProgressUpdate {
154
+ stage: 'initializing' | 'semantic_analysis' | 'adaptive_scoring' | 'maturity_assessment' | 'recommendations' | 'finalizing';
155
+ progress: number;
156
+ message: string;
157
+ }
158
+ //# sourceMappingURL=intelligent-gate-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"intelligent-gate-engine.d.ts","sourceRoot":"","sources":["../../src/gates/intelligent-gate-engine.ts"],"names":[],"mappings":"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"}