@maestro-ai/mcp-server 5.4.5 → 5.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 (127) hide show
  1. package/README.md +68 -83
  2. package/dist/content/rules/RULES.md +14 -0
  3. package/dist/core/metrics/MetricsCollector.d.ts +28 -12
  4. package/dist/core/metrics/MetricsCollector.d.ts.map +1 -1
  5. package/dist/core/metrics/MetricsCollector.js +151 -12
  6. package/dist/core/metrics/MetricsCollector.js.map +1 -1
  7. package/dist/core/validation/ValidationPipeline.d.ts +24 -2
  8. package/dist/core/validation/ValidationPipeline.d.ts.map +1 -1
  9. package/dist/core/validation/ValidationPipeline.js +46 -2
  10. package/dist/core/validation/ValidationPipeline.js.map +1 -1
  11. package/dist/core/validation/layers/DeliverableValidator.d.ts +13 -0
  12. package/dist/core/validation/layers/DeliverableValidator.d.ts.map +1 -0
  13. package/dist/core/validation/layers/DeliverableValidator.js +276 -0
  14. package/dist/core/validation/layers/DeliverableValidator.js.map +1 -0
  15. package/dist/gates/contextual-recommender.d.ts.map +1 -1
  16. package/dist/gates/contextual-recommender.js +260 -1
  17. package/dist/gates/contextual-recommender.js.map +1 -1
  18. package/dist/gates/validator.d.ts +5 -6
  19. package/dist/gates/validator.d.ts.map +1 -1
  20. package/dist/gates/validator.js +9 -6
  21. package/dist/gates/validator.js.map +1 -1
  22. package/dist/middleware/adr-generation.middleware.d.ts +5 -0
  23. package/dist/middleware/adr-generation.middleware.d.ts.map +1 -0
  24. package/dist/middleware/adr-generation.middleware.js +214 -0
  25. package/dist/middleware/adr-generation.middleware.js.map +1 -0
  26. package/dist/middleware/flow-engine.middleware.d.ts +5 -3
  27. package/dist/middleware/flow-engine.middleware.d.ts.map +1 -1
  28. package/dist/middleware/flow-engine.middleware.js +18 -10
  29. package/dist/middleware/flow-engine.middleware.js.map +1 -1
  30. package/dist/middleware/index.d.ts +18 -11
  31. package/dist/middleware/index.d.ts.map +1 -1
  32. package/dist/middleware/index.js +24 -11
  33. package/dist/middleware/index.js.map +1 -1
  34. package/dist/middleware/orchestration-pipeline.middleware.d.ts +42 -0
  35. package/dist/middleware/orchestration-pipeline.middleware.d.ts.map +1 -0
  36. package/dist/middleware/orchestration-pipeline.middleware.js +57 -0
  37. package/dist/middleware/orchestration-pipeline.middleware.js.map +1 -0
  38. package/dist/middleware/skill-injection.middleware.js +1 -1
  39. package/dist/middleware/skill-injection.middleware.js.map +1 -1
  40. package/dist/middleware/validation.middleware.d.ts +11 -0
  41. package/dist/middleware/validation.middleware.d.ts.map +1 -1
  42. package/dist/middleware/validation.middleware.js +54 -0
  43. package/dist/middleware/validation.middleware.js.map +1 -1
  44. package/dist/router.d.ts.map +1 -1
  45. package/dist/router.js +20 -14
  46. package/dist/router.js.map +1 -1
  47. package/dist/services/flow-engine.d.ts +1 -0
  48. package/dist/services/flow-engine.d.ts.map +1 -1
  49. package/dist/services/flow-engine.js +14 -2
  50. package/dist/services/flow-engine.js.map +1 -1
  51. package/dist/services/watcher.service.d.ts +45 -0
  52. package/dist/services/watcher.service.d.ts.map +1 -0
  53. package/dist/services/watcher.service.js +106 -0
  54. package/dist/services/watcher.service.js.map +1 -0
  55. package/dist/state/context.d.ts +15 -4
  56. package/dist/state/context.d.ts.map +1 -1
  57. package/dist/state/context.js +36 -9
  58. package/dist/state/context.js.map +1 -1
  59. package/dist/state/storage.d.ts.map +1 -1
  60. package/dist/state/storage.js +6 -0
  61. package/dist/state/storage.js.map +1 -1
  62. package/dist/tests/aprovar-gate.test.d.ts +2 -0
  63. package/dist/tests/aprovar-gate.test.d.ts.map +1 -0
  64. package/dist/tests/aprovar-gate.test.js +113 -0
  65. package/dist/tests/aprovar-gate.test.js.map +1 -0
  66. package/dist/tests/deliverable-validator.test.d.ts +12 -0
  67. package/dist/tests/deliverable-validator.test.d.ts.map +1 -0
  68. package/dist/tests/deliverable-validator.test.js +214 -0
  69. package/dist/tests/deliverable-validator.test.js.map +1 -0
  70. package/dist/tests/flow-engine.test.d.ts +2 -0
  71. package/dist/tests/flow-engine.test.d.ts.map +1 -0
  72. package/dist/tests/flow-engine.test.js +85 -0
  73. package/dist/tests/flow-engine.test.js.map +1 -0
  74. package/dist/tests/gate-orientation.test.d.ts +2 -0
  75. package/dist/tests/gate-orientation.test.d.ts.map +1 -0
  76. package/dist/tests/gate-orientation.test.js +59 -0
  77. package/dist/tests/gate-orientation.test.js.map +1 -0
  78. package/dist/tests/middleware.test.js +30 -4
  79. package/dist/tests/middleware.test.js.map +1 -1
  80. package/dist/tests/watcher.service.test.d.ts +2 -0
  81. package/dist/tests/watcher.service.test.d.ts.map +1 -0
  82. package/dist/tests/watcher.service.test.js +119 -0
  83. package/dist/tests/watcher.service.test.js.map +1 -0
  84. package/dist/tools/aprovar-gate.d.ts.map +1 -1
  85. package/dist/tools/aprovar-gate.js +4 -0
  86. package/dist/tools/aprovar-gate.js.map +1 -1
  87. package/dist/tools/contexto.d.ts.map +1 -1
  88. package/dist/tools/contexto.js +41 -0
  89. package/dist/tools/contexto.js.map +1 -1
  90. package/dist/tools/proximo.d.ts.map +1 -1
  91. package/dist/tools/proximo.js +224 -54
  92. package/dist/tools/proximo.js.map +1 -1
  93. package/dist/tools/status.d.ts.map +1 -1
  94. package/dist/tools/status.js +27 -0
  95. package/dist/tools/status.js.map +1 -1
  96. package/dist/tools/validar-gate.d.ts +8 -1
  97. package/dist/tools/validar-gate.d.ts.map +1 -1
  98. package/dist/tools/validar-gate.js +147 -99
  99. package/dist/tools/validar-gate.js.map +1 -1
  100. package/dist/types/config.d.ts +2 -0
  101. package/dist/types/config.d.ts.map +1 -1
  102. package/dist/types/config.js +2 -0
  103. package/dist/types/config.js.map +1 -1
  104. package/dist/types/index.d.ts +6 -0
  105. package/dist/types/index.d.ts.map +1 -1
  106. package/dist/types/index.js.map +1 -1
  107. package/dist/utils/gate-orientation.d.ts +11 -0
  108. package/dist/utils/gate-orientation.d.ts.map +1 -0
  109. package/dist/utils/gate-orientation.js +64 -0
  110. package/dist/utils/gate-orientation.js.map +1 -0
  111. package/dist/utils/ide-paths.d.ts +11 -0
  112. package/dist/utils/ide-paths.d.ts.map +1 -1
  113. package/dist/utils/ide-paths.js +27 -0
  114. package/dist/utils/ide-paths.js.map +1 -1
  115. package/dist/utils/instructions.d.ts +6 -1
  116. package/dist/utils/instructions.d.ts.map +1 -1
  117. package/dist/utils/instructions.js +32 -1
  118. package/dist/utils/instructions.js.map +1 -1
  119. package/package.json +2 -1
  120. package/dist/gates/compatibility-wrapper.d.ts +0 -139
  121. package/dist/gates/compatibility-wrapper.d.ts.map +0 -1
  122. package/dist/gates/compatibility-wrapper.js +0 -362
  123. package/dist/gates/compatibility-wrapper.js.map +0 -1
  124. package/dist/gates/unified-validator.d.ts +0 -67
  125. package/dist/gates/unified-validator.d.ts.map +0 -1
  126. package/dist/gates/unified-validator.js +0 -234
  127. package/dist/gates/unified-validator.js.map +0 -1
@@ -5,12 +5,11 @@ import type { GateResultado, Fase, TierGate } from "../types/index.js";
5
5
  */
6
6
  export declare const GATE_CHECKLISTS: Record<number, string[]>;
7
7
  /**
8
- * Valida gate usando template da skill (novo sistema)
9
- * @param fase - Fase a validar
10
- * @param entregavel - Conteúdo do entregável
11
- * @param tier - Tier de validação
12
- * @param diretorioContent - Diretório base do content (ex: d:/Sistemas/Maestro/content)
13
- * @param checklistItems - Checklist opcional da skill para validação adicional
8
+ * Valida gate usando template da skill (sistema legado)
9
+ * @deprecated v6.3 Use IntelligentGateEngine.validateDeliverable() em vez disso.
10
+ * O IntelligentGateEngine unifica este sistema, o GATE_CHECKLISTS e o DeliverableValidator
11
+ * em um único motor com scoring adaptativo e 5 níveis de maturidade.
12
+ * Mantido apenas como fallback interno de validar-gate.ts.
14
13
  */
15
14
  export declare function validarGateComTemplate(fase: Fase, entregavel: string, tier?: TierGate, diretorioContent?: string, checklistItems?: string[]): {
16
15
  sucesso: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/gates/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AASvE;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CA0DpD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAClC,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,QAAiB,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,cAAc,CAAC,EAAE,MAAM,EAAE,GAC1B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAC;IAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CA+CvF;AA8BD;;;;;GAKG;AACH,wBAAgB,WAAW,CACvB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,QAAQ,GAChB,aAAa,CAyBf;AAoGD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CA6BtE"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/gates/validator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AASvE;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CA0DpD,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAClC,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,IAAI,GAAE,QAAiB,EACvB,gBAAgB,CAAC,EAAE,MAAM,EACzB,cAAc,CAAC,EAAE,MAAM,EAAE,GAC1B;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,GAAG,CAAC;IAAC,eAAe,CAAC,EAAE,aAAa,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAsDvF;AA8BD;;;;;GAKG;AACH,wBAAgB,WAAW,CACvB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,QAAQ,GAChB,aAAa,CAyBf;AAoGD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,aAAa,GAAG,MAAM,CA6BtE"}
@@ -69,14 +69,17 @@ export const GATE_CHECKLISTS = {
69
69
  ],
70
70
  };
71
71
  /**
72
- * Valida gate usando template da skill (novo sistema)
73
- * @param fase - Fase a validar
74
- * @param entregavel - Conteúdo do entregável
75
- * @param tier - Tier de validação
76
- * @param diretorioContent - Diretório base do content (ex: d:/Sistemas/Maestro/content)
77
- * @param checklistItems - Checklist opcional da skill para validação adicional
72
+ * Valida gate usando template da skill (sistema legado)
73
+ * @deprecated v6.3 Use IntelligentGateEngine.validateDeliverable() em vez disso.
74
+ * O IntelligentGateEngine unifica este sistema, o GATE_CHECKLISTS e o DeliverableValidator
75
+ * em um único motor com scoring adaptativo e 5 níveis de maturidade.
76
+ * Mantido apenas como fallback interno de validar-gate.ts.
78
77
  */
79
78
  export function validarGateComTemplate(fase, entregavel, tier = "base", diretorioContent, checklistItems) {
79
+ if (process.env.NODE_ENV !== 'production') {
80
+ console.warn(`[DEPRECATED v6.3] validarGateComTemplate() foi substituído por IntelligentGateEngine.validateDeliverable(). ` +
81
+ `Será removido na v7.0.`);
82
+ }
80
83
  const skillNome = getSkillParaFase(fase.nome);
81
84
  if (!skillNome || !diretorioContent) {
82
85
  return { sucesso: false, erro: "Skill não encontrada ou diretório não especificado" };
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/gates/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/gates/validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { ToolResult } from "../types/index.js";
2
+ type ToolHandler = (args: Record<string, unknown>) => Promise<ToolResult>;
3
+ export declare function withADRGeneration(handler: ToolHandler): ToolHandler;
4
+ export {};
5
+ //# sourceMappingURL=adr-generation.middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adr-generation.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/adr-generation.middleware.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAkC1E,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CA8DnE"}
@@ -0,0 +1,214 @@
1
+ import * as fs from 'fs/promises';
2
+ import * as path from 'path';
3
+ import { parsearEstado } from "../state/storage.js";
4
+ import { getFluxoComStitch } from "../flows/types.js";
5
+ import { KnowledgeBase } from "../core/knowledge/KnowledgeBase.js";
6
+ // v6.3 S3.1: Fases que disparam geração automática de ADR (expandido)
7
+ const FASES_ARQUITETURAIS = new Set([
8
+ 'Arquitetura',
9
+ 'Arquitetura Avançada',
10
+ 'Banco de Dados',
11
+ 'Segurança',
12
+ 'Contrato API',
13
+ 'Requisitos',
14
+ 'Modelo de Domínio',
15
+ ]);
16
+ // Padrões regex para detectar decisões arquiteturais no texto
17
+ const PADROES_DECISAO = [
18
+ /decidimos?\s+(?:usar?|utilizar?|adotar?)\s+([^.\n]+)/gi,
19
+ /escolhemos?\s+([^.\n]+?)(?:\s+por\s+[^.\n]+)?/gi,
20
+ /adotamos?\s+([^.\n]+)/gi,
21
+ /stack[:\s]+([^.\n]+)/gi,
22
+ /adr[-\s]?\d+[:\s]+([^.\n]+)/gi,
23
+ /usaremos?\s+([^.\n]+)/gi,
24
+ /optamos?\s+por\s+([^.\n]+)/gi,
25
+ ];
26
+ export function withADRGeneration(handler) {
27
+ return async (args) => {
28
+ const result = await handler(args);
29
+ // Só gerar ADR se a operação foi bem-sucedida
30
+ if (result.isError)
31
+ return result;
32
+ const diretorio = args.diretorio;
33
+ if (!diretorio)
34
+ return result;
35
+ // Ler estado — preferir estado atualizado (pós-persistência)
36
+ const estadoJson = result.estado_atualizado || args.estado_json;
37
+ // Guard: garantir que é string válida antes de parsear
38
+ if (!estadoJson || typeof estadoJson !== 'string')
39
+ return result;
40
+ try {
41
+ const estado = parsearEstado(estadoJson);
42
+ if (!estado)
43
+ return result;
44
+ // Verificar se a fase anterior (que acabou de ser concluída) é arquitetural
45
+ // A fase_atual já avançou, então a fase concluída é a anterior
46
+ const faseConcluidaNum = estado.fase_atual - 1;
47
+ if (faseConcluidaNum < 1)
48
+ return result;
49
+ // v6.2: Usar getFluxoComStitch para obter nome correto da fase
50
+ // (estado.fases não existe — o estado usa nivel + fase_atual)
51
+ const nomeFaseConcluida = args.nomeFaseConcluida ||
52
+ inferirNomeFase(estado, faseConcluidaNum);
53
+ if (!nomeFaseConcluida || !FASES_ARQUITETURAIS.has(nomeFaseConcluida))
54
+ return result;
55
+ // Extrair entregável dos args (guard: deve ser string com conteúdo)
56
+ const entregavel = args.entregavel;
57
+ if (!entregavel || typeof entregavel !== 'string' || entregavel.length < 100)
58
+ return result;
59
+ // Extrair decisões do entregável
60
+ const decisoes = extrairDecisoes(entregavel, nomeFaseConcluida);
61
+ if (decisoes.length === 0)
62
+ return result;
63
+ // Salvar ADRs no diretório do projeto (arquivos .md)
64
+ await salvarADRs(diretorio, decisoes, nomeFaseConcluida);
65
+ // v6.3 S3.2: Persistir ADRs no KnowledgeBase para consulta futura
66
+ await persistirNoKnowledgeBase(diretorio, decisoes, faseConcluidaNum);
67
+ console.log(`[ADRGeneration] ${decisoes.length} ADR(s) gerados para fase: ${nomeFaseConcluida}`);
68
+ // Adicionar nota ao resultado sobre ADRs gerados
69
+ if (result.content?.[0]?.text) {
70
+ result.content[0].text +=
71
+ `\n\n---\n\n📋 **${decisoes.length} ADR(s) gerado(s) automaticamente** em \`.maestro/adrs/\`\n` +
72
+ decisoes.map(d => `- ${d.id}: ${d.titulo}`).join('\n') +
73
+ `\n\n> 💡 Use \`contexto()\` para ver todas as decisões acumuladas do projeto.`;
74
+ }
75
+ }
76
+ catch (error) {
77
+ // ADR generation é best-effort — não bloqueia o fluxo
78
+ console.warn('[ADRGeneration] Falha ao gerar ADRs (non-blocking):', error);
79
+ }
80
+ return result;
81
+ };
82
+ }
83
+ /**
84
+ * v6.2: Infere o nome da fase usando getFluxoComStitch ao invés de estado.fases
85
+ * (que não existe no tipo EstadoProjeto)
86
+ */
87
+ function inferirNomeFase(estado, faseNum) {
88
+ try {
89
+ const nivel = estado.nivel;
90
+ const usarStitch = estado.usar_stitch;
91
+ if (!nivel)
92
+ return '';
93
+ const fluxo = getFluxoComStitch(nivel, usarStitch ?? false);
94
+ const fase = fluxo.fases.find((f) => f.numero === faseNum);
95
+ return fase?.nome || '';
96
+ }
97
+ catch {
98
+ return '';
99
+ }
100
+ }
101
+ function extrairDecisoes(entregavel, nomeFase) {
102
+ const decisoes = [];
103
+ const vistas = new Set();
104
+ for (const padrao of PADROES_DECISAO) {
105
+ padrao.lastIndex = 0; // Reset regex state
106
+ let match;
107
+ while ((match = padrao.exec(entregavel)) !== null) {
108
+ const decisaoTexto = match[1]?.trim();
109
+ if (!decisaoTexto || decisaoTexto.length < 5)
110
+ continue;
111
+ // Evitar duplicatas
112
+ const chave = decisaoTexto.toLowerCase().slice(0, 50);
113
+ if (vistas.has(chave))
114
+ continue;
115
+ vistas.add(chave);
116
+ // Extrair contexto (linha anterior à decisão)
117
+ const posicao = match.index;
118
+ const textoAntes = entregavel.slice(Math.max(0, posicao - 200), posicao);
119
+ const linhasAntes = textoAntes.split('\n');
120
+ const contexto = linhasAntes[linhasAntes.length - 2]?.trim() || '';
121
+ const id = `ADR-${String(decisoes.length + 1).padStart(3, '0')}`;
122
+ decisoes.push({
123
+ id,
124
+ titulo: decisaoTexto.slice(0, 80),
125
+ fase: nomeFase,
126
+ decisao: decisaoTexto,
127
+ contexto,
128
+ timestamp: new Date().toISOString(),
129
+ status: 'aceito'
130
+ });
131
+ // Limitar a 10 ADRs por fase para evitar ruído
132
+ if (decisoes.length >= 10)
133
+ break;
134
+ }
135
+ if (decisoes.length >= 10)
136
+ break;
137
+ }
138
+ return decisoes;
139
+ }
140
+ /**
141
+ * v6.3 S3.2: Persiste ADRs no KnowledgeBase para consulta via contexto()
142
+ */
143
+ async function persistirNoKnowledgeBase(diretorio, adrs, faseNum) {
144
+ try {
145
+ const kb = new KnowledgeBase(diretorio);
146
+ for (const adr of adrs) {
147
+ await kb.record({
148
+ id: adr.id,
149
+ type: 'adr',
150
+ content: {
151
+ decision: adr.decisao,
152
+ context: adr.contexto,
153
+ alternatives: [],
154
+ consequences: { positive: [], negative: [] },
155
+ },
156
+ metadata: {
157
+ fase: faseNum,
158
+ timestamp: adr.timestamp,
159
+ tags: [adr.fase.toLowerCase().replace(/\s+/g, '-'), 'auto-generated'],
160
+ relevance: 0.8,
161
+ },
162
+ });
163
+ }
164
+ }
165
+ catch (err) {
166
+ // KnowledgeBase é best-effort — não bloqueia o fluxo
167
+ console.warn('[ADRGeneration] Falha ao persistir no KnowledgeBase (non-blocking):', err);
168
+ }
169
+ }
170
+ async function salvarADRs(diretorio, adrs, nomeFase) {
171
+ const adrsDir = path.join(diretorio, '.maestro', 'adrs');
172
+ await fs.mkdir(adrsDir, { recursive: true });
173
+ for (const adr of adrs) {
174
+ const nomeArquivo = `${adr.id}-${nomeFase.toLowerCase().replace(/\s+/g, '-')}.md`;
175
+ const caminhoArquivo = path.join(adrsDir, nomeArquivo);
176
+ const conteudo = `# ${adr.id}: ${adr.titulo}
177
+
178
+ **Status:** ${adr.status}
179
+ **Fase:** ${adr.fase}
180
+ **Data:** ${new Date(adr.timestamp).toLocaleDateString('pt-BR')}
181
+
182
+ ## Contexto
183
+
184
+ ${adr.contexto || 'Extraído automaticamente do entregável da fase.'}
185
+
186
+ ## Decisão
187
+
188
+ ${adr.decisao}
189
+
190
+ ## Consequências
191
+
192
+ > ⚠️ Este ADR foi gerado automaticamente. Revise e complemente com consequências e alternativas consideradas.
193
+
194
+ ---
195
+ *Gerado automaticamente pelo MCP Maestro v6.1 — withADRGeneration*
196
+ `;
197
+ await fs.writeFile(caminhoArquivo, conteudo, 'utf-8');
198
+ }
199
+ // Atualizar índice de ADRs
200
+ const indiceArquivo = path.join(adrsDir, 'INDEX.md');
201
+ let indice = '# Índice de ADRs\n\n';
202
+ try {
203
+ indice = await fs.readFile(indiceArquivo, 'utf-8');
204
+ }
205
+ catch { /* arquivo não existe ainda */ }
206
+ for (const adr of adrs) {
207
+ const linha = `- [${adr.id}](${adr.id}-${nomeFase.toLowerCase().replace(/\s+/g, '-')}.md): ${adr.titulo}\n`;
208
+ if (!indice.includes(adr.id)) {
209
+ indice += linha;
210
+ }
211
+ }
212
+ await fs.writeFile(indiceArquivo, indice, 'utf-8');
213
+ }
214
+ //# sourceMappingURL=adr-generation.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adr-generation.middleware.js","sourceRoot":"","sources":["../../src/middleware/adr-generation.middleware.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * Middleware: withFlowEngine
3
3
  *
4
+ * v6.0 Sprint 4: FlowEngine FORÇADO (não sugestivo)
5
+ *
4
6
  * Após execução da tool, calcula next_action via flow engine
5
- * de forma consistente, substituindo lógica local duplicada nas tools.
7
+ * e SEMPRE sobrescreve, mesmo se a tool definiu um valor diferente.
6
8
  *
7
- * Se a tool retornou next_action, o middleware NÃO sobrescreve
8
- * (permite que tools específicas tenham controle granular).
9
+ * Isso garante que o fluxo seja controlado centralmente pelo FlowEngine,
10
+ * impedindo que tools individuais desviem do caminho correto.
9
11
  */
10
12
  import type { ToolResult } from "../types/index.js";
11
13
  type ToolHandler = (args: Record<string, unknown>) => Promise<ToolResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"flow-engine.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/flow-engine.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE1E,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CA4ChE"}
1
+ {"version":3,"file":"flow-engine.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/flow-engine.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE1E,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAsDhE"}
@@ -1,11 +1,13 @@
1
1
  /**
2
2
  * Middleware: withFlowEngine
3
3
  *
4
+ * v6.0 Sprint 4: FlowEngine FORÇADO (não sugestivo)
5
+ *
4
6
  * Após execução da tool, calcula next_action via flow engine
5
- * de forma consistente, substituindo lógica local duplicada nas tools.
7
+ * e SEMPRE sobrescreve, mesmo se a tool definiu um valor diferente.
6
8
  *
7
- * Se a tool retornou next_action, o middleware NÃO sobrescreve
8
- * (permite que tools específicas tenham controle granular).
9
+ * Isso garante que o fluxo seja controlado centralmente pelo FlowEngine,
10
+ * impedindo que tools individuais desviem do caminho correto.
9
11
  */
10
12
  import { parsearEstado } from "../state/storage.js";
11
13
  import { getNextStep, getFlowProgress, flowStepToNextAction } from "../services/flow-engine.js";
@@ -29,13 +31,19 @@ export function withFlowEngine(handler) {
29
31
  const estado = parsearEstado(estadoJson);
30
32
  if (!estado)
31
33
  return result;
32
- // Calcular next_action via flow engine (se a tool não definiu um)
33
- if (!result.next_action) {
34
- const nextStep = getNextStep(estado, diretorio);
35
- result.next_action = flowStepToNextAction(nextStep);
36
- if (nextStep.specialist) {
37
- result.specialist_persona = result.specialist_persona || nextStep.specialist;
38
- }
34
+ // v6.0: SEMPRE calcular e sobrescrever next_action (forçado)
35
+ const nextStep = getNextStep(estado, diretorio);
36
+ const commandedAction = flowStepToNextAction(nextStep);
37
+ // Logar se a tool tentou definir um next_action diferente
38
+ if (result.next_action && result.next_action.tool !== commandedAction.tool) {
39
+ console.warn(`[FlowEngine] Override detected: ` +
40
+ `tool wanted "${result.next_action.tool}", ` +
41
+ `flow commands "${commandedAction.tool}"`);
42
+ }
43
+ // SEMPRE sobrescrever (não é mais condicional)
44
+ result.next_action = commandedAction;
45
+ if (nextStep.specialist) {
46
+ result.specialist_persona = result.specialist_persona || nextStep.specialist;
39
47
  }
40
48
  // Sempre atualizar progress (é barato e útil)
41
49
  if (!result.progress) {
@@ -1 +1 @@
1
- {"version":3,"file":"flow-engine.middleware.js","sourceRoot":"","sources":["../../src/middleware/flow-engine.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAKhG,MAAM,UAAU,cAAc,CAAC,OAAoB;IAC/C,OAAO,KAAK,EAAE,IAA6B,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnC,wCAAwC;QACxC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,6DAA6D;QAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,IAAK,IAAI,CAAC,WAAkC,CAAC;QACxF,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM;gBAAE,OAAO,MAAM,CAAC;YAE3B,kEAAkE;YAClE,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBACtB,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;gBAChD,MAAM,CAAC,WAAW,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAEpD,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;oBACtB,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAAC;gBACjF,CAAC;YACL,CAAC;YAED,8CAA8C;YAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,CAAC,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"flow-engine.middleware.js","sourceRoot":"","sources":["../../src/middleware/flow-engine.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAKhG,MAAM,UAAU,cAAc,CAAC,OAAoB;IAC/C,OAAO,KAAK,EAAE,IAA6B,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnC,wCAAwC;QACxC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,6DAA6D;QAC7D,MAAM,UAAU,GAAG,MAAM,CAAC,iBAAiB,IAAK,IAAI,CAAC,WAAkC,CAAC;QACxF,IAAI,CAAC,UAAU,EAAE,CAAC;YACd,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,MAAM;gBAAE,OAAO,MAAM,CAAC;YAE3B,6DAA6D;YAC7D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;YAChD,MAAM,eAAe,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAEvD,0DAA0D;YAC1D,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC;gBACzE,OAAO,CAAC,IAAI,CACR,kCAAkC;oBAClC,gBAAgB,MAAM,CAAC,WAAW,CAAC,IAAI,KAAK;oBAC5C,kBAAkB,eAAe,CAAC,IAAI,GAAG,CAC5C,CAAC;YACN,CAAC;YAED,+CAA+C;YAC/C,MAAM,CAAC,WAAW,GAAG,eAAe,CAAC;YAErC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBACtB,MAAM,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,QAAQ,CAAC,UAAU,CAAC;YACjF,CAAC;YAED,8CAA8C;YAC9C,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnB,MAAM,CAAC,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,iDAAiD,EAAE,KAAK,CAAC,CAAC;QAC3E,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC"}
@@ -1,14 +1,18 @@
1
1
  /**
2
- * Middleware Pipeline do Maestro v5
2
+ * Middleware Pipeline do Maestro v6
3
3
  *
4
- * Composição de middlewares para tools:
5
- * withErrorHandlingwithStateLoadwithFlowEnginewithPersistencewithSkillInjection
4
+ * v6.0: Pipeline Unificada TODAS as tools usam applyOrchestrationPipeline
5
+ * Ordem fixa: Error StateFlowPersistenceSkill
6
+ *
7
+ * DEPRECATED: applyMiddlewares, applySmartMiddlewares, applyLightMiddlewares, applyPersistenceMiddlewares
8
+ * Serão removidos na v7.0
6
9
  */
10
+ export { applyOrchestrationPipeline, applyLightOrchestrationPipeline } from "./orchestration-pipeline.middleware.js";
7
11
  export { withStateLoad } from "./state-loader.middleware.js";
8
12
  export { withPersistence } from "./persistence.middleware.js";
9
13
  export { withFlowEngine } from "./flow-engine.middleware.js";
10
14
  export { withSkillInjection } from "./skill-injection.middleware.js";
11
- export { withPromptValidation, defaultValidations } from "./validation.middleware.js";
15
+ export { withPromptValidation, withCompulsoryStateGuard, defaultValidations } from "./validation.middleware.js";
12
16
  import type { ToolResult } from "../types/index.js";
13
17
  type ToolHandler = (args: Record<string, unknown>) => Promise<ToolResult>;
14
18
  /**
@@ -23,21 +27,24 @@ type ToolHandler = (args: Record<string, unknown>) => Promise<ToolResult>;
23
27
  *
24
28
  * O handler original executa no centro do pipeline.
25
29
  */
30
+ /**
31
+ * @deprecated v6.0 — Use applyOrchestrationPipeline instead
32
+ * Será removido na v7.0
33
+ */
26
34
  export declare function applyMiddlewares(toolName: string, handler: ToolHandler): ToolHandler;
27
35
  /**
28
- * Aplica apenas middlewares leves (sem skill injection e sem persistence).
29
- * Útil para tools que já fazem injeção ativa internamente (proximo, maestro).
36
+ * @deprecated v6.0 Use applyOrchestrationPipeline instead
37
+ * Será removido na v7.0
30
38
  */
31
39
  export declare function applyLightMiddlewares(toolName: string, handler: ToolHandler): ToolHandler;
32
40
  /**
33
- * Aplica middlewares inteligentes: estado + skill injection condicional.
34
- * v5.1: Injeta skill apenas quando o projeto está em fase de desenvolvimento (não onboarding).
35
- * Substitui applyLightMiddlewares para tools que se beneficiam de skill injection.
41
+ * @deprecated v6.0 Use applyOrchestrationPipeline instead
42
+ * Será removido na v7.0
36
43
  */
37
44
  export declare function applySmartMiddlewares(toolName: string, handler: ToolHandler): ToolHandler;
38
45
  /**
39
- * Aplica middlewares de persistência e estado (sem skill injection).
40
- * Útil para tools que não precisam de injeção de skills mas precisam de persistência.
46
+ * @deprecated v6.0 Use applyOrchestrationPipeline instead
47
+ * Será removido na v7.0
41
48
  */
42
49
  export declare function applyPersistenceMiddlewares(toolName: string, handler: ToolHandler): ToolHandler;
43
50
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAOtF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE1E;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CAWpF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CAKzF;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CAOzF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CAO/F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AAGrH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAOhH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE1E;;;;;;;;;;;GAWG;AACH;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CAYpF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CAMzF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CAQzF;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CAQ/F"}
@@ -1,14 +1,20 @@
1
1
  /**
2
- * Middleware Pipeline do Maestro v5
2
+ * Middleware Pipeline do Maestro v6
3
3
  *
4
- * Composição de middlewares para tools:
5
- * withErrorHandlingwithStateLoadwithFlowEnginewithPersistencewithSkillInjection
4
+ * v6.0: Pipeline Unificada TODAS as tools usam applyOrchestrationPipeline
5
+ * Ordem fixa: Error StateFlowPersistenceSkill
6
+ *
7
+ * DEPRECATED: applyMiddlewares, applySmartMiddlewares, applyLightMiddlewares, applyPersistenceMiddlewares
8
+ * Serão removidos na v7.0
6
9
  */
10
+ // v6.0: Pipeline Unificada (RECOMENDADO)
11
+ export { applyOrchestrationPipeline, applyLightOrchestrationPipeline } from "./orchestration-pipeline.middleware.js";
12
+ // Middlewares individuais (para uso avançado)
7
13
  export { withStateLoad } from "./state-loader.middleware.js";
8
14
  export { withPersistence } from "./persistence.middleware.js";
9
15
  export { withFlowEngine } from "./flow-engine.middleware.js";
10
16
  export { withSkillInjection } from "./skill-injection.middleware.js";
11
- export { withPromptValidation, defaultValidations } from "./validation.middleware.js"; // v6.0
17
+ export { withPromptValidation, withCompulsoryStateGuard, defaultValidations } from "./validation.middleware.js";
12
18
  import { withStateLoad } from "./state-loader.middleware.js";
13
19
  import { withPersistence } from "./persistence.middleware.js";
14
20
  import { withFlowEngine } from "./flow-engine.middleware.js";
@@ -26,29 +32,36 @@ import { withErrorHandling } from "../errors/index.js";
26
32
  *
27
33
  * O handler original executa no centro do pipeline.
28
34
  */
35
+ /**
36
+ * @deprecated v6.0 — Use applyOrchestrationPipeline instead
37
+ * Será removido na v7.0
38
+ */
29
39
  export function applyMiddlewares(toolName, handler) {
40
+ console.warn(`[Middleware] DEPRECATED: applyMiddlewares used for ${toolName}. Use applyOrchestrationPipeline.`);
30
41
  return withErrorHandling(toolName, withStateLoad(withFlowEngine(withPersistence(withSkillInjection(handler)))));
31
42
  }
32
43
  /**
33
- * Aplica apenas middlewares leves (sem skill injection e sem persistence).
34
- * Útil para tools que já fazem injeção ativa internamente (proximo, maestro).
44
+ * @deprecated v6.0 Use applyOrchestrationPipeline instead
45
+ * Será removido na v7.0
35
46
  */
36
47
  export function applyLightMiddlewares(toolName, handler) {
48
+ console.warn(`[Middleware] DEPRECATED: applyLightMiddlewares used for ${toolName}. Use applyOrchestrationPipeline.`);
37
49
  return withErrorHandling(toolName, withStateLoad(handler));
38
50
  }
39
51
  /**
40
- * Aplica middlewares inteligentes: estado + skill injection condicional.
41
- * v5.1: Injeta skill apenas quando o projeto está em fase de desenvolvimento (não onboarding).
42
- * Substitui applyLightMiddlewares para tools que se beneficiam de skill injection.
52
+ * @deprecated v6.0 Use applyOrchestrationPipeline instead
53
+ * Será removido na v7.0
43
54
  */
44
55
  export function applySmartMiddlewares(toolName, handler) {
56
+ console.warn(`[Middleware] DEPRECATED: applySmartMiddlewares used for ${toolName}. Use applyOrchestrationPipeline.`);
45
57
  return withErrorHandling(toolName, withStateLoad(withSkillInjection(handler)));
46
58
  }
47
59
  /**
48
- * Aplica middlewares de persistência e estado (sem skill injection).
49
- * Útil para tools que não precisam de injeção de skills mas precisam de persistência.
60
+ * @deprecated v6.0 Use applyOrchestrationPipeline instead
61
+ * Será removido na v7.0
50
62
  */
51
63
  export function applyPersistenceMiddlewares(toolName, handler) {
64
+ console.warn(`[Middleware] DEPRECATED: applyPersistenceMiddlewares used for ${toolName}. Use applyOrchestrationPipeline.`);
52
65
  return withErrorHandling(toolName, withStateLoad(withPersistence(handler)));
53
66
  }
54
67
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC,CAAC,OAAO;AAE9F,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAKvD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,OAAoB;IACnE,OAAO,iBAAiB,CACpB,QAAQ,EACR,aAAa,CACT,cAAc,CACV,eAAe,CACX,kBAAkB,CAAC,OAAO,CAAC,CAC9B,CACJ,CACJ,CACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,OAAoB;IACxE,OAAO,iBAAiB,CACpB,QAAQ,EACR,aAAa,CAAC,OAAO,CAAC,CACzB,CAAC;AACN,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,OAAoB;IACxE,OAAO,iBAAiB,CACpB,QAAQ,EACR,aAAa,CACT,kBAAkB,CAAC,OAAO,CAAC,CAC9B,CACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAAgB,EAAE,OAAoB;IAC9E,OAAO,iBAAiB,CACpB,QAAQ,EACR,aAAa,CACT,eAAe,CAAC,OAAO,CAAC,CAC3B,CACJ,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,yCAAyC;AACzC,OAAO,EAAE,0BAA0B,EAAE,+BAA+B,EAAE,MAAM,wCAAwC,CAAC;AAErH,8CAA8C;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAEhH,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAKvD;;;;;;;;;;;GAWG;AACH;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAgB,EAAE,OAAoB;IACnE,OAAO,CAAC,IAAI,CAAC,sDAAsD,QAAQ,mCAAmC,CAAC,CAAC;IAChH,OAAO,iBAAiB,CACpB,QAAQ,EACR,aAAa,CACT,cAAc,CACV,eAAe,CACX,kBAAkB,CAAC,OAAO,CAAC,CAC9B,CACJ,CACJ,CACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,OAAoB;IACxE,OAAO,CAAC,IAAI,CAAC,2DAA2D,QAAQ,mCAAmC,CAAC,CAAC;IACrH,OAAO,iBAAiB,CACpB,QAAQ,EACR,aAAa,CAAC,OAAO,CAAC,CACzB,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,OAAoB;IACxE,OAAO,CAAC,IAAI,CAAC,2DAA2D,QAAQ,mCAAmC,CAAC,CAAC;IACrH,OAAO,iBAAiB,CACpB,QAAQ,EACR,aAAa,CACT,kBAAkB,CAAC,OAAO,CAAC,CAC9B,CACJ,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,QAAgB,EAAE,OAAoB;IAC9E,OAAO,CAAC,IAAI,CAAC,iEAAiE,QAAQ,mCAAmC,CAAC,CAAC;IAC3H,OAAO,iBAAiB,CACpB,QAAQ,EACR,aAAa,CACT,eAAe,CAAC,OAAO,CAAC,CAC3B,CACJ,CAAC;AACN,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Pipeline Unificada de Orquestração v6.3
3
+ *
4
+ * Ordem fixa de execução:
5
+ * 1. Error Handling — captura erros e formata resposta
6
+ * 2. State Load — auto-carrega estado se não fornecido
7
+ * 3. [Handler executa] — tool original
8
+ * 4. Persistence — salva estado ANTES do FlowEngine
9
+ * 5. ADR Generation — extrai decisões de fases arquiteturais (best-effort)
10
+ * 6. Flow Engine — calcula next_action com estado já persistido (FORÇADO)
11
+ * 7. Skill Inject — injeta contexto do especialista (OBRIGATÓRIA)
12
+ * 8. Prompt Validation — valida uso correto das tools na resposta
13
+ *
14
+ * @since v6.0 — Sprint 1 do Roadmap de Orquestração
15
+ * @since v6.1 — Correção 3: Persistence antes de FlowEngine + Sprint 6: ADR Generation
16
+ * @since v6.2 — Sprint 2: withPromptValidation integrado
17
+ * @since v6.3 — S1.1: Corrigido withPromptValidation (era no-op — expectedTool não era passado)
18
+ */
19
+ import type { ToolResult } from "../types/index.js";
20
+ type ToolHandler = (args: Record<string, unknown>) => Promise<ToolResult>;
21
+ /**
22
+ * Aplica pipeline completo e unificado de middlewares a um handler de tool.
23
+ *
24
+ * Esta é a ÚNICA função que deve ser usada para wrappear tools públicas.
25
+ * Garante que todos os middlewares críticos sejam aplicados em ordem consistente.
26
+ *
27
+ * @param toolName - Nome da tool (para logs e error handling)
28
+ * @param handler - Handler original da tool
29
+ * @returns Handler wrapped com todos os middlewares
30
+ */
31
+ export declare function applyOrchestrationPipeline(toolName: string, handler: ToolHandler): ToolHandler;
32
+ /**
33
+ * Variante leve da pipeline (DEPRECATED — usar applyOrchestrationPipeline)
34
+ *
35
+ * Mantida apenas para compatibilidade temporária com código legado.
36
+ * Será removida na v7.0.
37
+ *
38
+ * @deprecated Use applyOrchestrationPipeline instead
39
+ */
40
+ export declare function applyLightOrchestrationPipeline(toolName: string, handler: ToolHandler): ToolHandler;
41
+ export {};
42
+ //# sourceMappingURL=orchestration-pipeline.middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestration-pipeline.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/orchestration-pipeline.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AASH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,KAAK,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAE1E;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACtC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACrB,WAAW,CAsBb;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAC3C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,WAAW,GACrB,WAAW,CAQb"}