@maestro-ai/mcp-server 2.4.1 → 2.5.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 (67) hide show
  1. package/dist/gates/adaptive-scoring.d.ts +133 -0
  2. package/dist/gates/adaptive-scoring.d.ts.map +1 -0
  3. package/dist/gates/adaptive-scoring.js +404 -0
  4. package/dist/gates/adaptive-scoring.js.map +1 -0
  5. package/dist/gates/compatibility-wrapper.d.ts +139 -0
  6. package/dist/gates/compatibility-wrapper.d.ts.map +1 -0
  7. package/dist/gates/compatibility-wrapper.js +362 -0
  8. package/dist/gates/compatibility-wrapper.js.map +1 -0
  9. package/dist/gates/contextual-recommender.d.ts +128 -0
  10. package/dist/gates/contextual-recommender.d.ts.map +1 -0
  11. package/dist/gates/contextual-recommender.js +446 -0
  12. package/dist/gates/contextual-recommender.js.map +1 -0
  13. package/dist/gates/intelligent-gate-engine.d.ts +158 -0
  14. package/dist/gates/intelligent-gate-engine.d.ts.map +1 -0
  15. package/dist/gates/intelligent-gate-engine.js +429 -0
  16. package/dist/gates/intelligent-gate-engine.js.map +1 -0
  17. package/dist/gates/intelligent-validator.d.ts +164 -0
  18. package/dist/gates/intelligent-validator.d.ts.map +1 -0
  19. package/dist/gates/intelligent-validator.js +347 -0
  20. package/dist/gates/intelligent-validator.js.map +1 -0
  21. package/dist/gates/maturity-levels.d.ts +119 -0
  22. package/dist/gates/maturity-levels.d.ts.map +1 -0
  23. package/dist/gates/maturity-levels.js +455 -0
  24. package/dist/gates/maturity-levels.js.map +1 -0
  25. package/dist/state/storage.d.ts.map +1 -1
  26. package/dist/state/storage.js +1 -0
  27. package/dist/state/storage.js.map +1 -1
  28. package/dist/tools/index.d.ts.map +1 -1
  29. package/dist/tools/index.js +14 -0
  30. package/dist/tools/index.js.map +1 -1
  31. package/dist/tools/iniciar-projeto.d.ts +2 -2
  32. package/dist/tools/iniciar-projeto.d.ts.map +1 -1
  33. package/dist/tools/iniciar-projeto.js +53 -96
  34. package/dist/tools/iniciar-projeto.js.map +1 -1
  35. package/dist/tools/proximo.d.ts.map +1 -1
  36. package/dist/tools/proximo.js +116 -9
  37. package/dist/tools/proximo.js.map +1 -1
  38. package/dist/tools/setup-inicial.d.ts +48 -0
  39. package/dist/tools/setup-inicial.d.ts.map +1 -0
  40. package/dist/tools/setup-inicial.js +84 -0
  41. package/dist/tools/setup-inicial.js.map +1 -0
  42. package/dist/tools/validar-gate.d.ts.map +1 -1
  43. package/dist/tools/validar-gate.js +28 -28
  44. package/dist/tools/validar-gate.js.map +1 -1
  45. package/dist/types/index.d.ts +22 -0
  46. package/dist/types/index.d.ts.map +1 -1
  47. package/dist/types/index.js.map +1 -1
  48. package/dist/utils/config.d.ts +16 -0
  49. package/dist/utils/config.d.ts.map +1 -0
  50. package/dist/utils/config.js +26 -0
  51. package/dist/utils/config.js.map +1 -0
  52. package/dist/utils/content-injector.d.ts +1 -0
  53. package/dist/utils/content-injector.d.ts.map +1 -1
  54. package/dist/utils/content-injector.js +5 -0
  55. package/dist/utils/content-injector.js.map +1 -1
  56. package/dist/utils/files.d.ts +2 -0
  57. package/dist/utils/files.d.ts.map +1 -1
  58. package/dist/utils/files.js +41 -10
  59. package/dist/utils/files.js.map +1 -1
  60. package/dist/utils/ide-paths.d.ts.map +1 -1
  61. package/dist/utils/ide-paths.js +7 -8
  62. package/dist/utils/ide-paths.js.map +1 -1
  63. package/dist/utils/inferencia-contextual.d.ts +3 -0
  64. package/dist/utils/inferencia-contextual.d.ts.map +1 -0
  65. package/dist/utils/inferencia-contextual.js +93 -0
  66. package/dist/utils/inferencia-contextual.js.map +1 -0
  67. package/package.json +1 -1
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Sistema de Scoring Adaptativo - Substitui scores fixos por dinâmicos
3
+ *
4
+ * Features principais:
5
+ * - Pesos dinâmicos baseados em contexto
6
+ * - Thresholds adaptativos por projeto
7
+ * - Score multi-dimensional
8
+ * - Aprendizado com histórico de projetos
9
+ *
10
+ * @version 3.0.0
11
+ */
12
+ import type { ValidationContext, CompletenessAnalysis, QualityAssessment, SemanticMatch } from "./intelligent-validator.js";
13
+ import type { NivelComplexidade, TipoArtefato } from "../types/index.js";
14
+ export interface ScoringWeights {
15
+ semantic: number;
16
+ completeness: number;
17
+ quality: number;
18
+ structure: number;
19
+ consistency: number;
20
+ }
21
+ export interface ThresholdConfig {
22
+ exemplar: number;
23
+ highQuality: number;
24
+ professional: number;
25
+ basic: number;
26
+ minimal: number;
27
+ canAdvance: number;
28
+ }
29
+ export interface AdaptiveScore {
30
+ final: number;
31
+ components: {
32
+ semantic: number;
33
+ completeness: number;
34
+ quality: number;
35
+ structure: number;
36
+ consistency: number;
37
+ };
38
+ weights: ScoringWeights;
39
+ thresholds: ThresholdConfig;
40
+ adjustments: ScoreAdjustment[];
41
+ confidence: number;
42
+ }
43
+ export interface ScoreAdjustment {
44
+ type: 'context' | 'historical' | 'tier' | 'phase' | 'team';
45
+ factor: number;
46
+ reason: string;
47
+ impact: number;
48
+ }
49
+ export interface ProjectHistory {
50
+ projectId: string;
51
+ successfulAdvances: number;
52
+ totalAttempts: number;
53
+ averageQuality: number;
54
+ commonIssues: string[];
55
+ teamExperience: 'junior' | 'mid' | 'senior';
56
+ projectType: TipoArtefato;
57
+ complexity: NivelComplexidade;
58
+ }
59
+ /**
60
+ * Engine para cálculo de scores adaptativos baseados em contexto
61
+ */
62
+ export declare class AdaptiveScoring {
63
+ private contextualWeights;
64
+ private baseThresholds;
65
+ private historicalData;
66
+ private learningRate;
67
+ constructor();
68
+ /**
69
+ * Calcula pesos dinâmicos baseados no contexto do projeto
70
+ */
71
+ calculateDynamicWeights(context: ValidationContext): ScoringWeights;
72
+ /**
73
+ * Obtém thresholds adaptativos para o contexto
74
+ */
75
+ getAdaptiveThresholds(context: ValidationContext, projectHistory?: ProjectHistory): ThresholdConfig;
76
+ /**
77
+ * Calcula score multi-dimensional adaptativo
78
+ */
79
+ calculateMultiDimensionalScore(semanticMatches: SemanticMatch[], completeness: CompletenessAnalysis, quality: QualityAssessment, context: ValidationContext, projectHistory?: ProjectHistory): AdaptiveScore;
80
+ /**
81
+ * Atualiza pesos baseado em feedback do usuário
82
+ */
83
+ updateWeightsFromFeedback(context: ValidationContext, originalScore: AdaptiveScore, userAccepted: boolean, userFeedback?: string): void;
84
+ /**
85
+ * Registra histórico de projeto para aprendizado
86
+ */
87
+ recordProjectHistory(projectId: string, context: ValidationContext, wasSuccessful: boolean, finalQuality: number): void;
88
+ /**
89
+ * Inicializa pesos contextuais para diferentes tipos de projeto
90
+ */
91
+ private initializeContextualWeights;
92
+ /**
93
+ * Inicializa thresholds base por tier
94
+ */
95
+ private initializeBaseThresholds;
96
+ /**
97
+ * Gera chave de contexto para lookup
98
+ */
99
+ private getContextKey;
100
+ /**
101
+ * Aplica ajustes contextuais aos pesos
102
+ */
103
+ private applyContextualAdjustments;
104
+ /**
105
+ * Aplica aprendizado histórico aos pesos
106
+ */
107
+ private applyHistoricalLearning;
108
+ /**
109
+ * Normaliza pesos para somar 1.0
110
+ */
111
+ private normalizeWeights;
112
+ /**
113
+ * Ajusta thresholds baseado no contexto
114
+ */
115
+ private adjustThresholdsForContext;
116
+ /**
117
+ * Ajusta thresholds baseado no histórico
118
+ */
119
+ private adjustThresholdsForHistory;
120
+ /**
121
+ * Aplica ajustes finais ao score
122
+ */
123
+ private applyScoreAdjustments;
124
+ private getDefaultWeights;
125
+ private getDefaultThresholds;
126
+ private calculateSemanticScore;
127
+ private calculateConsistencyScore;
128
+ private calculateVariance;
129
+ private calculateConfidence;
130
+ private getTierMultiplier;
131
+ private getPhaseMultiplier;
132
+ }
133
+ //# sourceMappingURL=adaptive-scoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptive-scoring.d.ts","sourceRoot":"","sources":["../../src/gates/adaptive-scoring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,404 @@
1
+ /**
2
+ * Sistema de Scoring Adaptativo - Substitui scores fixos por dinâmicos
3
+ *
4
+ * Features principais:
5
+ * - Pesos dinâmicos baseados em contexto
6
+ * - Thresholds adaptativos por projeto
7
+ * - Score multi-dimensional
8
+ * - Aprendizado com histórico de projetos
9
+ *
10
+ * @version 3.0.0
11
+ */
12
+ /**
13
+ * Engine para cálculo de scores adaptativos baseados em contexto
14
+ */
15
+ export class AdaptiveScoring {
16
+ contextualWeights;
17
+ baseThresholds;
18
+ historicalData;
19
+ learningRate = 0.1;
20
+ constructor() {
21
+ this.contextualWeights = new Map();
22
+ this.baseThresholds = new Map();
23
+ this.historicalData = new Map();
24
+ this.initializeContextualWeights();
25
+ this.initializeBaseThresholds();
26
+ }
27
+ /**
28
+ * Calcula pesos dinâmicos baseados no contexto do projeto
29
+ */
30
+ calculateDynamicWeights(context) {
31
+ const baseKey = this.getContextKey(context);
32
+ let weights = this.contextualWeights.get(baseKey) || this.getDefaultWeights();
33
+ // Aplica ajustes baseados em fatores contextuais
34
+ weights = this.applyContextualAdjustments(weights, context);
35
+ // Aplica aprendizado histórico se disponível
36
+ weights = this.applyHistoricalLearning(weights, context);
37
+ return this.normalizeWeights(weights);
38
+ }
39
+ /**
40
+ * Obtém thresholds adaptativos para o contexto
41
+ */
42
+ getAdaptiveThresholds(context, projectHistory) {
43
+ const baseThresholds = this.baseThresholds.get(context.tier);
44
+ let thresholds = baseThresholds ? { ...baseThresholds } : this.getDefaultThresholds();
45
+ // Ajusta baseado no contexto do projeto
46
+ thresholds = this.adjustThresholdsForContext(thresholds, context);
47
+ // Ajusta baseado no histórico se disponível
48
+ if (projectHistory) {
49
+ thresholds = this.adjustThresholdsForHistory(thresholds, projectHistory);
50
+ }
51
+ return thresholds;
52
+ }
53
+ /**
54
+ * Calcula score multi-dimensional adaptativo
55
+ */
56
+ calculateMultiDimensionalScore(semanticMatches, completeness, quality, context, projectHistory) {
57
+ // 1. Calcula pesos dinâmicos
58
+ const weights = this.calculateDynamicWeights(context);
59
+ // 2. Obtém thresholds adaptativos
60
+ const thresholds = this.getAdaptiveThresholds(context, projectHistory);
61
+ // 3. Calcula scores dos componentes
62
+ const semanticScore = this.calculateSemanticScore(semanticMatches);
63
+ const completenessScore = completeness.completenessScore;
64
+ const qualityScore = quality.overall;
65
+ const structureScore = completeness.structuralIntegrity;
66
+ const consistencyScore = this.calculateConsistencyScore(semanticMatches, completeness, quality);
67
+ // 4. Aplica pesos para score final
68
+ const rawScore = Math.round((semanticScore * weights.semantic) +
69
+ (completenessScore * weights.completeness) +
70
+ (qualityScore * weights.quality) +
71
+ (structureScore * weights.structure) +
72
+ (consistencyScore * weights.consistency));
73
+ // 5. Aplica ajustes contextuais
74
+ const { adjustedScore, adjustments } = this.applyScoreAdjustments(rawScore, context, projectHistory);
75
+ // 6. Calcula confiança na avaliação
76
+ const confidence = this.calculateConfidence(semanticMatches, completeness, quality, context);
77
+ return {
78
+ final: Math.max(0, Math.min(100, adjustedScore)),
79
+ components: {
80
+ semantic: semanticScore,
81
+ completeness: completenessScore,
82
+ quality: qualityScore,
83
+ structure: structureScore,
84
+ consistency: consistencyScore
85
+ },
86
+ weights,
87
+ thresholds,
88
+ adjustments,
89
+ confidence
90
+ };
91
+ }
92
+ /**
93
+ * Atualiza pesos baseado em feedback do usuário
94
+ */
95
+ updateWeightsFromFeedback(context, originalScore, userAccepted, userFeedback) {
96
+ const contextKey = this.getContextKey(context);
97
+ const currentWeights = this.contextualWeights.get(contextKey);
98
+ if (!currentWeights)
99
+ return;
100
+ // Aprendizado simples: ajusta pesos baseado na aceitação
101
+ const adjustmentFactor = userAccepted ? 1 + this.learningRate : 1 - this.learningRate;
102
+ const updatedWeights = {
103
+ semantic: currentWeights.semantic * adjustmentFactor,
104
+ completeness: currentWeights.completeness * adjustmentFactor,
105
+ quality: currentWeights.quality * adjustmentFactor,
106
+ structure: currentWeights.structure * adjustmentFactor,
107
+ consistency: currentWeights.consistency * adjustmentFactor
108
+ };
109
+ this.contextualWeights.set(contextKey, this.normalizeWeights(updatedWeights));
110
+ }
111
+ /**
112
+ * Registra histórico de projeto para aprendizado
113
+ */
114
+ recordProjectHistory(projectId, context, wasSuccessful, finalQuality) {
115
+ const existing = this.historicalData.get(projectId) || {
116
+ projectId,
117
+ successfulAdvances: 0,
118
+ totalAttempts: 0,
119
+ averageQuality: 0,
120
+ commonIssues: [],
121
+ teamExperience: context.teamExperience,
122
+ projectType: context.projectType,
123
+ complexity: 'medio'
124
+ };
125
+ existing.totalAttempts += 1;
126
+ if (wasSuccessful) {
127
+ existing.successfulAdvances += 1;
128
+ }
129
+ // Atualiza média de qualidade
130
+ existing.averageQuality = ((existing.averageQuality * (existing.totalAttempts - 1)) + finalQuality) / existing.totalAttempts;
131
+ this.historicalData.set(projectId, existing);
132
+ }
133
+ /**
134
+ * Inicializa pesos contextuais para diferentes tipos de projeto
135
+ */
136
+ initializeContextualWeights() {
137
+ this.contextualWeights = new Map([
138
+ // POC - Foca mais em semantic e menos em completude formal
139
+ ['poc.junior', { semantic: 0.5, completeness: 0.2, quality: 0.15, structure: 0.1, consistency: 0.05 }],
140
+ ['poc.mid', { semantic: 0.45, completeness: 0.25, quality: 0.2, structure: 0.05, consistency: 0.05 }],
141
+ ['poc.senior', { semantic: 0.4, completeness: 0.3, quality: 0.2, structure: 0.05, consistency: 0.05 }],
142
+ // Internal - Balanceado, mais estrutura
143
+ ['internal.junior', { semantic: 0.3, completeness: 0.35, quality: 0.2, structure: 0.1, consistency: 0.05 }],
144
+ ['internal.mid', { semantic: 0.25, completeness: 0.4, quality: 0.25, structure: 0.05, consistency: 0.05 }],
145
+ ['internal.senior', { semantic: 0.2, completeness: 0.45, quality: 0.25, structure: 0.05, consistency: 0.05 }],
146
+ // Product - Maior foco em qualidade e completude
147
+ ['product.junior', { semantic: 0.2, completeness: 0.35, quality: 0.3, structure: 0.1, consistency: 0.05 }],
148
+ ['product.mid', { semantic: 0.15, completeness: 0.4, quality: 0.35, structure: 0.05, consistency: 0.05 }],
149
+ ['product.senior', { semantic: 0.1, completeness: 0.4, quality: 0.4, structure: 0.05, consistency: 0.05 }],
150
+ // Critical - Máximo rigor em qualidade e consistência
151
+ ['critical.junior', { semantic: 0.15, completeness: 0.3, quality: 0.35, structure: 0.15, consistency: 0.05 }],
152
+ ['critical.mid', { semantic: 0.1, completeness: 0.35, quality: 0.4, structure: 0.1, consistency: 0.05 }],
153
+ ['critical.senior', { semantic: 0.05, completeness: 0.35, quality: 0.45, structure: 0.1, consistency: 0.05 }]
154
+ ]);
155
+ }
156
+ /**
157
+ * Inicializa thresholds base por tier
158
+ */
159
+ initializeBaseThresholds() {
160
+ this.baseThresholds = new Map([
161
+ ['essencial', {
162
+ exemplar: 85, highQuality: 75, professional: 60, basic: 40, minimal: 25, canAdvance: 40
163
+ }],
164
+ ['base', {
165
+ exemplar: 90, highQuality: 80, professional: 70, basic: 50, minimal: 30, canAdvance: 50
166
+ }],
167
+ ['avancado', {
168
+ exemplar: 95, highQuality: 85, professional: 75, basic: 60, minimal: 40, canAdvance: 60
169
+ }]
170
+ ]);
171
+ }
172
+ /**
173
+ * Gera chave de contexto para lookup
174
+ */
175
+ getContextKey(context) {
176
+ return `${context.projectType}.${context.teamExperience}`;
177
+ }
178
+ /**
179
+ * Aplica ajustes contextuais aos pesos
180
+ */
181
+ applyContextualAdjustments(weights, context) {
182
+ const adjusted = { ...weights };
183
+ // Ajuste por restrição de tempo
184
+ if (context.timeConstraints === 'tight') {
185
+ adjusted.semantic *= 1.2; // Prioriza conteúdo sobre forma
186
+ adjusted.structure *= 0.8; // Reduz exigência de estrutura
187
+ }
188
+ else if (context.timeConstraints === 'flexible') {
189
+ adjusted.quality *= 1.2; // Aumenta exigência de qualidade
190
+ adjusted.consistency *= 1.5; // Prioriza consistência
191
+ }
192
+ // Ajuste por criticidade do negócio
193
+ if (context.businessCriticality === 'critical') {
194
+ adjusted.quality *= 1.3;
195
+ adjusted.consistency *= 1.5;
196
+ }
197
+ else if (context.businessCriticality === 'low') {
198
+ adjusted.semantic *= 1.2;
199
+ adjusted.quality *= 0.9;
200
+ }
201
+ // Ajuste por estágio de iteração
202
+ if (context.iterationStage === 'initial') {
203
+ adjusted.semantic *= 1.3; // Prioriza conceitos
204
+ adjusted.completeness *= 0.8; // Menos rigor na completude
205
+ }
206
+ else if (context.iterationStage === 'final') {
207
+ adjusted.quality *= 1.3; // Máxima qualidade
208
+ adjusted.consistency *= 1.4; // Máxima consistência
209
+ }
210
+ return adjusted;
211
+ }
212
+ /**
213
+ * Aplica aprendizado histórico aos pesos
214
+ */
215
+ applyHistoricalLearning(weights, context) {
216
+ // Implementação simplificada - pode ser expandida
217
+ const contextKey = this.getContextKey(context);
218
+ const learnedWeights = this.contextualWeights.get(contextKey);
219
+ if (learnedWeights) {
220
+ // Interpola entre pesos base e aprendidos
221
+ const alpha = 0.7; // Peso para dados aprendidos
222
+ return {
223
+ semantic: weights.semantic * (1 - alpha) + learnedWeights.semantic * alpha,
224
+ completeness: weights.completeness * (1 - alpha) + learnedWeights.completeness * alpha,
225
+ quality: weights.quality * (1 - alpha) + learnedWeights.quality * alpha,
226
+ structure: weights.structure * (1 - alpha) + learnedWeights.structure * alpha,
227
+ consistency: weights.consistency * (1 - alpha) + learnedWeights.consistency * alpha
228
+ };
229
+ }
230
+ return weights;
231
+ }
232
+ /**
233
+ * Normaliza pesos para somar 1.0
234
+ */
235
+ normalizeWeights(weights) {
236
+ const sum = weights.semantic + weights.completeness + weights.quality +
237
+ weights.structure + weights.consistency;
238
+ if (sum === 0)
239
+ return this.getDefaultWeights();
240
+ return {
241
+ semantic: weights.semantic / sum,
242
+ completeness: weights.completeness / sum,
243
+ quality: weights.quality / sum,
244
+ structure: weights.structure / sum,
245
+ consistency: weights.consistency / sum
246
+ };
247
+ }
248
+ /**
249
+ * Ajusta thresholds baseado no contexto
250
+ */
251
+ adjustThresholdsForContext(thresholds, context) {
252
+ const adjusted = { ...thresholds };
253
+ // Ajuste por experiência da equipe
254
+ if (context.teamExperience === 'junior') {
255
+ // Thresholds mais baixos para times junior
256
+ Object.keys(adjusted).forEach(key => {
257
+ adjusted[key] *= 0.9;
258
+ });
259
+ }
260
+ else if (context.teamExperience === 'senior') {
261
+ // Thresholds mais altos para times senior
262
+ Object.keys(adjusted).forEach(key => {
263
+ adjusted[key] *= 1.1;
264
+ });
265
+ }
266
+ // Ajuste por restrições de tempo
267
+ if (context.timeConstraints === 'tight') {
268
+ adjusted.canAdvance *= 0.8; // Permite avanço mais rápido
269
+ }
270
+ return adjusted;
271
+ }
272
+ /**
273
+ * Ajusta thresholds baseado no histórico
274
+ */
275
+ adjustThresholdsForHistory(thresholds, history) {
276
+ const successRate = history.totalAttempts > 0
277
+ ? history.successfulAdvances / history.totalAttempts
278
+ : 0.5;
279
+ const adjusted = { ...thresholds };
280
+ // Se taxa de sucesso é alta, pode ser mais exigente
281
+ if (successRate > 0.8) {
282
+ Object.keys(adjusted).forEach(key => {
283
+ adjusted[key] *= 1.1;
284
+ });
285
+ }
286
+ else if (successRate < 0.4) {
287
+ // Se taxa de sucesso é baixa, seja mais leniente
288
+ Object.keys(adjusted).forEach(key => {
289
+ adjusted[key] *= 0.9;
290
+ });
291
+ }
292
+ return adjusted;
293
+ }
294
+ /**
295
+ * Aplica ajustes finais ao score
296
+ */
297
+ applyScoreAdjustments(rawScore, context, projectHistory) {
298
+ let adjustedScore = rawScore;
299
+ const adjustments = [];
300
+ // Ajuste por tier
301
+ const tierMultiplier = this.getTierMultiplier(context.tier);
302
+ if (tierMultiplier !== 1.0) {
303
+ const impact = adjustedScore * (tierMultiplier - 1);
304
+ adjustedScore *= tierMultiplier;
305
+ adjustments.push({
306
+ type: 'tier',
307
+ factor: tierMultiplier,
308
+ reason: `Ajuste para tier ${context.tier}`,
309
+ impact: Math.round(impact)
310
+ });
311
+ }
312
+ // Ajuste por fase (algumas fases são naturalmente mais difíceis)
313
+ const phaseMultiplier = this.getPhaseMultiplier(context.phase.nome);
314
+ if (phaseMultiplier !== 1.0) {
315
+ const impact = adjustedScore * (phaseMultiplier - 1);
316
+ adjustedScore *= phaseMultiplier;
317
+ adjustments.push({
318
+ type: 'phase',
319
+ factor: phaseMultiplier,
320
+ reason: `Ajuste para fase ${context.phase.nome}`,
321
+ impact: Math.round(impact)
322
+ });
323
+ }
324
+ return { adjustedScore: Math.round(adjustedScore), adjustments };
325
+ }
326
+ // Métodos auxiliares
327
+ getDefaultWeights() {
328
+ return { semantic: 0.25, completeness: 0.35, quality: 0.25, structure: 0.1, consistency: 0.05 };
329
+ }
330
+ getDefaultThresholds() {
331
+ return { exemplar: 90, highQuality: 80, professional: 70, basic: 50, minimal: 30, canAdvance: 50 };
332
+ }
333
+ calculateSemanticScore(matches) {
334
+ if (matches.length === 0)
335
+ return 0;
336
+ const foundMatches = matches.filter(m => m.found);
337
+ if (foundMatches.length === 0)
338
+ return 0;
339
+ const totalConfidence = foundMatches.reduce((sum, m) => sum + m.confidence, 0);
340
+ const avgConfidence = totalConfidence / foundMatches.length;
341
+ const coverageScore = (foundMatches.length / matches.length) * 100;
342
+ return Math.round((avgConfidence * 100 * 0.7) + (coverageScore * 0.3));
343
+ }
344
+ calculateConsistencyScore(semanticMatches, completeness, quality) {
345
+ // Score de consistência baseado em coerência entre diferentes métricas
346
+ const semanticScore = this.calculateSemanticScore(semanticMatches);
347
+ const variance = this.calculateVariance([
348
+ semanticScore,
349
+ completeness.completenessScore,
350
+ quality.overall
351
+ ]);
352
+ // Menor variância = maior consistência
353
+ return Math.max(0, 100 - variance);
354
+ }
355
+ calculateVariance(scores) {
356
+ if (scores.length < 2)
357
+ return 0;
358
+ const mean = scores.reduce((sum, score) => sum + score, 0) / scores.length;
359
+ const variance = scores.reduce((sum, score) => sum + Math.pow(score - mean, 2), 0) / scores.length;
360
+ return Math.sqrt(variance);
361
+ }
362
+ calculateConfidence(semanticMatches, completeness, quality, context) {
363
+ // Confiança baseada na quantidade e qualidade dos dados disponíveis
364
+ let confidence = 50; // Base
365
+ // Aumenta confiança com mais dados semânticos
366
+ if (semanticMatches.length > 0) {
367
+ const avgConfidence = semanticMatches
368
+ .filter(m => m.found)
369
+ .reduce((sum, m) => sum + m.confidence, 0) / semanticMatches.length;
370
+ confidence += avgConfidence * 30;
371
+ }
372
+ // Aumenta confiança com alta completude
373
+ if (completeness.completenessScore > 70) {
374
+ confidence += 15;
375
+ }
376
+ // Reduz confiança se há muitos elementos críticos faltando
377
+ if (completeness.missingCritical.length > 2) {
378
+ confidence -= 20;
379
+ }
380
+ return Math.max(0, Math.min(100, Math.round(confidence)));
381
+ }
382
+ getTierMultiplier(tier) {
383
+ const multipliers = {
384
+ 'essencial': 0.95, // Mais leniente
385
+ 'base': 1.0, // Padrão
386
+ 'avancado': 1.1 // Mais rigoroso
387
+ };
388
+ return multipliers[tier] || 1.0;
389
+ }
390
+ getPhaseMultiplier(phaseName) {
391
+ // Algumas fases são naturalmente mais difíceis
392
+ const multipliers = {
393
+ 'Produto': 1.0,
394
+ 'Requisitos': 1.05,
395
+ 'UX Design': 0.95,
396
+ 'Arquitetura': 1.1,
397
+ 'Backlog': 0.95,
398
+ 'Frontend': 1.0,
399
+ 'Backend': 1.0
400
+ };
401
+ return multipliers[phaseName] || 1.0;
402
+ }
403
+ }
404
+ //# sourceMappingURL=adaptive-scoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptive-scoring.js","sourceRoot":"","sources":["../../src/gates/adaptive-scoring.ts"],"names":[],"mappings":"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"}