@maestro-ai/mcp-server 2.6.1 → 5.0.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 (153) hide show
  1. package/dist/content/.version.json +16 -0
  2. package/dist/data/project-templates.d.ts +37 -0
  3. package/dist/data/project-templates.d.ts.map +1 -0
  4. package/dist/data/project-templates.js +208 -0
  5. package/dist/data/project-templates.js.map +1 -0
  6. package/dist/errors/index.d.ts +84 -0
  7. package/dist/errors/index.d.ts.map +1 -0
  8. package/dist/errors/index.js +158 -0
  9. package/dist/errors/index.js.map +1 -0
  10. package/dist/flows/onboarding-orchestrator.d.ts.map +1 -1
  11. package/dist/flows/onboarding-orchestrator.js +126 -91
  12. package/dist/flows/onboarding-orchestrator.js.map +1 -1
  13. package/dist/gates/validator.d.ts +2 -1
  14. package/dist/gates/validator.d.ts.map +1 -1
  15. package/dist/gates/validator.js +33 -2
  16. package/dist/gates/validator.js.map +1 -1
  17. package/dist/index.js +19 -164
  18. package/dist/index.js.map +1 -1
  19. package/dist/middleware/flow-engine.middleware.d.ts +14 -0
  20. package/dist/middleware/flow-engine.middleware.d.ts.map +1 -0
  21. package/dist/middleware/flow-engine.middleware.js +51 -0
  22. package/dist/middleware/flow-engine.middleware.js.map +1 -0
  23. package/dist/middleware/index.d.ts +36 -0
  24. package/dist/middleware/index.d.ts.map +1 -0
  25. package/dist/middleware/index.js +45 -0
  26. package/dist/middleware/index.js.map +1 -0
  27. package/dist/middleware/persistence.middleware.d.ts +14 -0
  28. package/dist/middleware/persistence.middleware.d.ts.map +1 -0
  29. package/dist/middleware/persistence.middleware.js +55 -0
  30. package/dist/middleware/persistence.middleware.js.map +1 -0
  31. package/dist/middleware/skill-injection.middleware.d.ts +15 -0
  32. package/dist/middleware/skill-injection.middleware.d.ts.map +1 -0
  33. package/dist/middleware/skill-injection.middleware.js +63 -0
  34. package/dist/middleware/skill-injection.middleware.js.map +1 -0
  35. package/dist/middleware/state-loader.middleware.d.ts +13 -0
  36. package/dist/middleware/state-loader.middleware.d.ts.map +1 -0
  37. package/dist/middleware/state-loader.middleware.js +36 -0
  38. package/dist/middleware/state-loader.middleware.js.map +1 -0
  39. package/dist/router.d.ts +46 -0
  40. package/dist/router.d.ts.map +1 -0
  41. package/dist/router.js +441 -0
  42. package/dist/router.js.map +1 -0
  43. package/dist/services/content-resolver.service.d.ts +96 -0
  44. package/dist/services/content-resolver.service.d.ts.map +1 -0
  45. package/dist/services/content-resolver.service.js +280 -0
  46. package/dist/services/content-resolver.service.js.map +1 -0
  47. package/dist/services/flow-engine.d.ts +82 -0
  48. package/dist/services/flow-engine.d.ts.map +1 -0
  49. package/dist/services/flow-engine.js +270 -0
  50. package/dist/services/flow-engine.js.map +1 -0
  51. package/dist/services/onboarding.service.d.ts +20 -0
  52. package/dist/services/onboarding.service.d.ts.map +1 -0
  53. package/dist/services/onboarding.service.js +49 -0
  54. package/dist/services/onboarding.service.js.map +1 -0
  55. package/dist/services/skill-loader.service.d.ts +81 -0
  56. package/dist/services/skill-loader.service.d.ts.map +1 -0
  57. package/dist/services/skill-loader.service.js +321 -0
  58. package/dist/services/skill-loader.service.js.map +1 -0
  59. package/dist/services/specialist.service.d.ts +20 -0
  60. package/dist/services/specialist.service.d.ts.map +1 -0
  61. package/dist/services/specialist.service.js +115 -0
  62. package/dist/services/specialist.service.js.map +1 -0
  63. package/dist/services/state.service.d.ts +59 -0
  64. package/dist/services/state.service.d.ts.map +1 -0
  65. package/dist/services/state.service.js +131 -0
  66. package/dist/services/state.service.js.map +1 -0
  67. package/dist/stdio.js +329 -437
  68. package/dist/stdio.js.map +1 -1
  69. package/dist/tests/content-resolver.test.d.ts +5 -0
  70. package/dist/tests/content-resolver.test.d.ts.map +1 -0
  71. package/dist/tests/content-resolver.test.js +157 -0
  72. package/dist/tests/content-resolver.test.js.map +1 -0
  73. package/dist/tests/middleware.test.d.ts +5 -0
  74. package/dist/tests/middleware.test.d.ts.map +1 -0
  75. package/dist/tests/middleware.test.js +228 -0
  76. package/dist/tests/middleware.test.js.map +1 -0
  77. package/dist/tests/skill-loader.test.d.ts +5 -0
  78. package/dist/tests/skill-loader.test.d.ts.map +1 -0
  79. package/dist/tests/skill-loader.test.js +242 -0
  80. package/dist/tests/skill-loader.test.js.map +1 -0
  81. package/dist/tools/aprovar-gate.d.ts.map +1 -1
  82. package/dist/tools/aprovar-gate.js +35 -0
  83. package/dist/tools/aprovar-gate.js.map +1 -1
  84. package/dist/tools/brainstorm.d.ts.map +1 -1
  85. package/dist/tools/brainstorm.js +90 -49
  86. package/dist/tools/brainstorm.js.map +1 -1
  87. package/dist/tools/classificar.d.ts.map +1 -1
  88. package/dist/tools/classificar.js +20 -1
  89. package/dist/tools/classificar.js.map +1 -1
  90. package/dist/tools/confirmar-classificacao.d.ts.map +1 -1
  91. package/dist/tools/confirmar-classificacao.js +20 -1
  92. package/dist/tools/confirmar-classificacao.js.map +1 -1
  93. package/dist/tools/consolidated/analisar.d.ts +56 -0
  94. package/dist/tools/consolidated/analisar.d.ts.map +1 -0
  95. package/dist/tools/consolidated/analisar.js +96 -0
  96. package/dist/tools/consolidated/analisar.js.map +1 -0
  97. package/dist/tools/consolidated/avancar.d.ts +67 -0
  98. package/dist/tools/consolidated/avancar.d.ts.map +1 -0
  99. package/dist/tools/consolidated/avancar.js +132 -0
  100. package/dist/tools/consolidated/avancar.js.map +1 -0
  101. package/dist/tools/consolidated/checkpoint-tool.d.ts +66 -0
  102. package/dist/tools/consolidated/checkpoint-tool.d.ts.map +1 -0
  103. package/dist/tools/consolidated/checkpoint-tool.js +111 -0
  104. package/dist/tools/consolidated/checkpoint-tool.js.map +1 -0
  105. package/dist/tools/consolidated/validar.d.ts +63 -0
  106. package/dist/tools/consolidated/validar.d.ts.map +1 -0
  107. package/dist/tools/consolidated/validar.js +104 -0
  108. package/dist/tools/consolidated/validar.js.map +1 -0
  109. package/dist/tools/contexto.d.ts.map +1 -1
  110. package/dist/tools/contexto.js +18 -0
  111. package/dist/tools/contexto.js.map +1 -1
  112. package/dist/tools/discovery.d.ts +10 -10
  113. package/dist/tools/discovery.d.ts.map +1 -1
  114. package/dist/tools/discovery.js +82 -56
  115. package/dist/tools/discovery.js.map +1 -1
  116. package/dist/tools/iniciar-projeto.d.ts +48 -0
  117. package/dist/tools/iniciar-projeto.d.ts.map +1 -1
  118. package/dist/tools/iniciar-projeto.js +234 -45
  119. package/dist/tools/iniciar-projeto.js.map +1 -1
  120. package/dist/tools/maestro-tool.d.ts +51 -0
  121. package/dist/tools/maestro-tool.d.ts.map +1 -0
  122. package/dist/tools/maestro-tool.js +224 -0
  123. package/dist/tools/maestro-tool.js.map +1 -0
  124. package/dist/tools/prd-writer.d.ts +1 -1
  125. package/dist/tools/prd-writer.d.ts.map +1 -1
  126. package/dist/tools/prd-writer.js +138 -2
  127. package/dist/tools/prd-writer.js.map +1 -1
  128. package/dist/tools/proximo.d.ts.map +1 -1
  129. package/dist/tools/proximo.js +22 -16
  130. package/dist/tools/proximo.js.map +1 -1
  131. package/dist/tools/salvar.d.ts.map +1 -1
  132. package/dist/tools/salvar.js +13 -0
  133. package/dist/tools/salvar.js.map +1 -1
  134. package/dist/tools/setup-inicial.d.ts.map +1 -1
  135. package/dist/tools/setup-inicial.js +12 -0
  136. package/dist/tools/setup-inicial.js.map +1 -1
  137. package/dist/tools/status.d.ts.map +1 -1
  138. package/dist/tools/status.js +6 -0
  139. package/dist/tools/status.js.map +1 -1
  140. package/dist/tools/validar-gate.d.ts.map +1 -1
  141. package/dist/tools/validar-gate.js +25 -0
  142. package/dist/tools/validar-gate.js.map +1 -1
  143. package/dist/types/index.d.ts +20 -1
  144. package/dist/types/index.d.ts.map +1 -1
  145. package/dist/types/index.js.map +1 -1
  146. package/dist/types/response.d.ts +49 -0
  147. package/dist/types/response.d.ts.map +1 -1
  148. package/dist/types/response.js.map +1 -1
  149. package/dist/utils/smart-defaults.d.ts +56 -0
  150. package/dist/utils/smart-defaults.d.ts.map +1 -0
  151. package/dist/utils/smart-defaults.js +113 -0
  152. package/dist/utils/smart-defaults.js.map +1 -0
  153. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -2,14 +2,11 @@
2
2
  import express from "express";
3
3
  import cors from "cors";
4
4
  import { randomUUID } from "crypto";
5
- import { createMcpServer } from "./server.js";
6
5
  const PORT = parseInt(process.env.PORT || "3000", 10);
7
6
  const app = express();
8
7
  // Middleware
9
8
  app.use(cors());
10
9
  app.use(express.json({ limit: "10mb" }));
11
- // Criar servidor MCP
12
- const mcpServer = createMcpServer();
13
10
  // Armazenar sessões ativas (suporta SSE e HTTP simples)
14
11
  const sessions = new Map();
15
12
  // Limpar sessões inativas a cada 5 minutos
@@ -28,7 +25,7 @@ app.get("/health", (req, res) => {
28
25
  res.json({
29
26
  status: "ok",
30
27
  server: "mcp-maestro",
31
- version: "1.0.0",
28
+ version: "3.0.0",
32
29
  sessions: sessions.size,
33
30
  });
34
31
  });
@@ -38,7 +35,7 @@ app.get("/health", (req, res) => {
38
35
  app.get("/", (req, res) => {
39
36
  res.json({
40
37
  name: "MCP Maestro",
41
- version: "1.0.0",
38
+ version: "3.0.0",
42
39
  description: "Model Context Protocol server for Maestro development guide",
43
40
  endpoints: {
44
41
  health: "GET /health",
@@ -97,7 +94,7 @@ app.get("/mcp", (req, res) => {
97
94
  // Não é SSE, retornar info do endpoint
98
95
  res.json({
99
96
  name: "MCP Maestro",
100
- version: "1.0.0",
97
+ version: "3.0.0",
101
98
  transport: "streamable-http",
102
99
  endpoints: {
103
100
  sse: "GET /mcp (Accept: text/event-stream)",
@@ -257,7 +254,7 @@ async function handleMcpRequest(request) {
257
254
  case "initialize": {
258
255
  result = {
259
256
  protocolVersion: "2024-11-05",
260
- serverInfo: { name: "mcp-maestro", version: "1.0.0" },
257
+ serverInfo: { name: "mcp-maestro", version: "4.0.0" },
261
258
  capabilities: { resources: {}, tools: {}, prompts: {} },
262
259
  };
263
260
  break;
@@ -287,109 +284,30 @@ async function handleMcpRequest(request) {
287
284
  // Implementações diretas (bypass do SDK transport)
288
285
  // ============================================
289
286
  import { lerEspecialista, lerTemplate, lerGuia, lerPrompt, } from "./utils/files.js";
290
- import { iniciarProjeto, confirmarProjeto } from "./tools/iniciar-projeto.js";
291
- import { carregarProjeto } from "./tools/carregar-projeto.js";
292
- import { proximo } from "./tools/proximo.js";
293
- import { status } from "./tools/status.js";
294
- import { validarGate } from "./tools/validar-gate.js";
295
- import { classificar } from "./tools/classificar.js";
296
- import { contexto } from "./tools/contexto.js";
297
- import { salvar } from "./tools/salvar.js";
298
- import { implementarHistoria } from "./tools/implementar-historia.js";
299
- import { novaFeature, corrigirBug, refatorar } from "./tools/fluxos-alternativos.js";
300
- import { aprovarGate } from "./tools/aprovar-gate.js";
301
- import { confirmarClassificacao } from "./tools/confirmar-classificacao.js";
302
- import { discovery } from "./tools/discovery.js";
303
- // Definição das tools para exibição como resources no seletor @mcp:maestro:
304
- const TOOLS_AS_RESOURCES = [
305
- { name: "iniciar_projeto", emoji: "🚀", desc: "Inicia novo projeto (Analisa e Sugere)", params: "nome, diretorio, [descricao]" },
306
- { name: "confirmar_projeto", emoji: "✅", desc: "Confirma criação com tipo definido", params: "nome, diretorio, tipo_artefato, nivel_complexidade" },
307
- { name: "carregar_projeto", emoji: "📂", desc: "Carrega projeto existente", params: "estado_json, diretorio" },
308
- { name: "proximo", emoji: "➡️", desc: "Salva entregável e avança fase", params: "entregavel, estado_json, diretorio" },
309
- { name: "status", emoji: "📊", desc: "Retorna status do projeto", params: "estado_json, diretorio" },
310
- { name: "validar_gate", emoji: "✅", desc: "Valida checklist de saída", params: "estado_json, diretorio, [fase], [entregavel]" },
311
- { name: "classificar", emoji: "📏", desc: "Reclassifica complexidade", params: "estado_json, diretorio, [prd], [nivel]" },
312
- { name: "contexto", emoji: "📋", desc: "Retorna contexto acumulado", params: "estado_json, diretorio" },
313
- { name: "salvar", emoji: "💾", desc: "Salva rascunhos/anexos", params: "conteudo, tipo, estado_json, diretorio" },
314
- { name: "implementar_historia", emoji: "📝", desc: "Orquestra implementação de história", params: "[historia_id], [modo]" },
315
- { name: "nova_feature", emoji: "✨", desc: "Inicia fluxo de nova feature", params: "descricao, [impacto_estimado]" },
316
- { name: "corrigir_bug", emoji: "🐛", desc: "Inicia fluxo de correção de bug", params: "descricao, [severidade], [ticket_id]" },
317
- { name: "refatorar", emoji: "♻️", desc: "Inicia fluxo de refatoração", params: "area, motivo" },
318
- { name: "aprovar_gate", emoji: "🔐", desc: "USUÁRIO: Aprova/rejeita gate pendente", params: "acao, estado_json, diretorio" },
319
- { name: "confirmar_classificacao", emoji: "🧐", desc: "Confirma reclassificação pós-PRD", params: "estado_json, diretorio, [nivel]" },
320
- ];
321
- // Gera instrução de execução para uma tool
287
+ import { routeToolCall, getRegisteredTools } from "./router.js";
288
+ // Gera documentação de uma tool a partir do registry do router
322
289
  function getToolDocumentation(toolName) {
323
- const tool = TOOLS_AS_RESOURCES.find(t => t.name === toolName);
290
+ const tools = getRegisteredTools();
291
+ const tool = tools.find(t => t.name === toolName);
324
292
  if (!tool)
325
293
  return `Tool não encontrada: ${toolName}`;
326
- // Instruções específicas por tool
327
- const instrucoes = {
328
- iniciar_projeto: `Pergunte ao usuário:
329
- 1. Nome do projeto
330
- 2. Descrição breve (opcional)
331
- 3. Diretório (padrão: diretório atual)
294
+ return `## 🎯 ${tool.name}
332
295
 
333
- Depois execute \`mcp_maestro_iniciar_projeto\` com esses dados.
334
- A tool retornará uma sugestão de classificação. Peça confirmação ao usuário.`,
335
- confirmar_projeto: `Use APÓS \`iniciar_projeto\` ter retornado uma sugestão.
336
- Execute \`mcp_maestro_confirmar_projeto\` com os dados confirmados pelo usuário (tipo e nível).
337
- Isso criará efetivamente os arquivos do projeto.`,
338
- carregar_projeto: `Procure o arquivo \`.maestro/estado.json\` no diretório atual.
339
- Se encontrar, leia o conteúdo e execute \`mcp_maestro_carregar_projeto\`.
340
- Se não encontrar, avise o usuário que não há projeto Maestro neste diretório.`,
341
- status: `Procure o arquivo \`.maestro/estado.json\` no diretório atual.
342
- Se encontrar, leia o conteúdo e execute \`mcp_maestro_status\`.
343
- Mostre: fase atual, especialista, progresso e próximos passos.`,
344
- proximo: `1. Leia o arquivo \`.maestro/estado.json\`
345
- 2. Compile o entregável da fase atual baseado na conversa
346
- 3. Execute \`mcp_maestro_proximo\` com o entregável
347
- 4. Salve o novo estado no arquivo`,
348
- validar_gate: `1. Leia o arquivo \`.maestro/estado.json\`
349
- 2. Execute \`mcp_maestro_validar_gate\`
350
- 3. Mostre o resultado do checklist`,
351
- classificar: `1. Leia o arquivo \`.maestro/estado.json\`
352
- 2. Execute \`mcp_maestro_classificar\` com o nível desejado
353
- 3. Atualize o arquivo de estado`,
354
- contexto: `1. Leia o arquivo \`.maestro/estado.json\`
355
- 2. Execute \`mcp_maestro_contexto\`
356
- 3. Mostre o contexto acumulado do projeto`,
357
- salvar: `Use quando o usuário quiser salvar um rascunho ou anexo.
358
- Execute \`mcp_maestro_salvar\` com o conteúdo e tipo.`,
359
- implementar_historia: `Use para implementar uma história do backlog.
360
- Execute \`mcp_maestro_implementar_historia\` com o ID da história.`,
361
- nova_feature: `Pergunte a descrição da feature e impacto estimado.
362
- Execute \`mcp_maestro_nova_feature\`.`,
363
- corrigir_bug: `Pergunte a descrição do bug e severidade.
364
- Execute \`mcp_maestro_corrigir_bug\`.`,
365
- refatorar: `Pergunte a área e motivo da refatoração.
366
- Execute \`mcp_maestro_refatorar\`.`,
367
- confirmar_classificacao: `Use quando o projeto estiver aguardando confirmação de classificação.
368
- Execute \`mcp_maestro_confirmar_classificacao\`.
369
- Mostre o resultado.`,
370
- };
371
- return `## 🎯 EXECUTE AGORA: ${tool.emoji} ${tool.name}
372
-
373
- ${tool.desc}
374
-
375
- ### Parâmetros
376
- \`${tool.params}\`
377
-
378
- ### Instruções
379
- ${instrucoes[toolName] || `Execute \`mcp_maestro_${toolName}\` com os parâmetros necessários.`}
296
+ ${tool.description}
380
297
 
381
298
  ---
382
- **AÇÃO REQUERIDA**: Execute a tool acima imediatamente. Se precisar de informações do usuário, pergunte primeiro.
299
+ **AÇÃO REQUERIDA**: Execute a tool acima com os parâmetros necessários.
383
300
  `;
384
301
  }
385
302
  async function getResourcesList() {
386
- // Expõe apenas as tools no seletor @mcp:maestro:
303
+ // Expõe as tools registradas no router como resources no seletor @mcp:maestro:
387
304
  // Especialistas, templates e guias continuam acessíveis via URI direta
305
+ const tools = getRegisteredTools();
388
306
  return {
389
- resources: TOOLS_AS_RESOURCES.map((t) => ({
307
+ resources: tools.map((t) => ({
390
308
  uri: `maestro://tool/${t.name}`,
391
- name: `${t.emoji} ${t.name}`,
392
- description: t.desc,
309
+ name: t.name,
310
+ description: t.description,
393
311
  mimeType: "text/markdown",
394
312
  })),
395
313
  };
@@ -511,73 +429,10 @@ Quando bloqueado:
511
429
  throw new Error(`Resource não encontrado: ${uri}`);
512
430
  }
513
431
  async function getToolsList() {
514
- return {
515
- tools: [
516
- // Core (Stateless) - requer estado_json e diretorio
517
- { name: "iniciar_projeto", description: "Analisa novo projeto e sugere classificação (stateless). NÃO CRIA ARQUIVOS.", inputSchema: { type: "object", properties: { nome: { type: "string" }, descricao: { type: "string" }, diretorio: { type: "string" }, ide: { type: "string", enum: ["windsurf", "cursor", "antigravity"] } }, required: ["nome", "diretorio"] } },
518
- { name: "confirmar_projeto", description: "Cria efetivamente o projeto com classificação confirmada.", inputSchema: { type: "object", properties: { nome: { type: "string" }, descricao: { type: "string" }, diretorio: { type: "string" }, tipo_artefato: { type: "string", enum: ["poc", "script", "internal", "product"] }, nivel_complexidade: { type: "string", enum: ["simples", "medio", "complexo"] }, ide: { type: "string", enum: ["windsurf", "cursor", "antigravity"] } }, required: ["nome", "diretorio", "tipo_artefato", "nivel_complexidade", "ide"] } },
519
- { name: "carregar_projeto", description: "Carrega projeto existente (stateless). Requer estado_json.", inputSchema: { type: "object", properties: { estado_json: { type: "string" }, diretorio: { type: "string" } }, required: ["estado_json", "diretorio"] } },
520
- { name: "proximo", description: "Salva entregável e avança fase (stateless). Use auto_flow:true para fluxo contínuo sem bloqueios.", inputSchema: { type: "object", properties: { entregavel: { type: "string" }, estado_json: { type: "string" }, diretorio: { type: "string" }, auto_flow: { type: "boolean", description: "Modo fluxo automático: auto-confirma classificação e avança sem bloqueios" } }, required: ["entregavel", "estado_json", "diretorio"] } },
521
- { name: "status", description: "Retorna status do projeto (stateless). Requer estado_json.", inputSchema: { type: "object", properties: { estado_json: { type: "string" }, diretorio: { type: "string" } }, required: ["estado_json", "diretorio"] } },
522
- { name: "validar_gate", description: "Valida checklist de saída (stateless). Requer estado_json.", inputSchema: { type: "object", properties: { fase: { type: "number" }, entregavel: { type: "string" }, estado_json: { type: "string" }, diretorio: { type: "string" } }, required: ["estado_json", "diretorio"] } },
523
- { name: "aprovar_gate", description: "🔐 EXCLUSIVO DO USUÁRIO. Aprova ou rejeita avanço com pendências. IA NÃO deve chamar automaticamente.", inputSchema: { type: "object", properties: { acao: { type: "string", enum: ["aprovar", "rejeitar"] }, estado_json: { type: "string" }, diretorio: { type: "string" } }, required: ["acao", "estado_json", "diretorio"] } },
524
- // V1.0 (Stateless)
525
- { name: "classificar", description: "Reclassifica complexidade (stateless). Requer estado_json.", inputSchema: { type: "object", properties: { prd: { type: "string" }, nivel: { type: "string", enum: ["simples", "medio", "complexo"] }, estado_json: { type: "string" }, diretorio: { type: "string" } }, required: ["estado_json", "diretorio"] } },
526
- { name: "contexto", description: "Retorna contexto do projeto (stateless). Requer estado_json.", inputSchema: { type: "object", properties: { estado_json: { type: "string" }, diretorio: { type: "string" } }, required: ["estado_json", "diretorio"] } },
527
- { name: "salvar", description: "Salva conteúdo (stateless). Requer estado_json.", inputSchema: { type: "object", properties: { conteudo: { type: "string" }, tipo: { type: "string", enum: ["rascunho", "anexo", "entregavel"] }, estado_json: { type: "string" }, diretorio: { type: "string" } }, required: ["conteudo", "tipo", "estado_json", "diretorio"] } },
528
- { name: "implementar_historia", description: "Orquestra implementação de história", inputSchema: { type: "object", properties: { historia_id: { type: "string" }, modo: { type: "string", enum: ["analisar", "iniciar", "proximo_bloco"] } } } },
529
- // Fluxos Alternativos
530
- { name: "nova_feature", description: "Inicia fluxo de nova feature", inputSchema: { type: "object", properties: { descricao: { type: "string" }, impacto_estimado: { type: "string", enum: ["baixo", "medio", "alto"] } }, required: ["descricao"] } },
531
- { name: "corrigir_bug", description: "Inicia fluxo de correção de bug", inputSchema: { type: "object", properties: { descricao: { type: "string" }, severidade: { type: "string", enum: ["critica", "alta", "media", "baixa"] }, ticket_id: { type: "string" } }, required: ["descricao"] } },
532
- { name: "refatorar", description: "Inicia fluxo de refatoração", inputSchema: { type: "object", properties: { area: { type: "string" }, motivo: { type: "string" } }, required: ["area", "motivo"] } },
533
- { name: "confirmar_classificacao", description: "Confirma e efetiva a reclassificação após PRD", inputSchema: { type: "object", properties: { estado_json: { type: "string" }, diretorio: { type: "string" }, nivel: { type: "string", enum: ["simples", "medio", "complexo"] }, tipo_artefato: { type: "string", enum: ["poc", "script", "internal", "product"] } }, required: ["estado_json", "diretorio"] } },
534
- { name: "discovery", description: "Coleta informações iniciais agrupadas para reduzir perguntas durante o projeto. Gera questionário adaptado ao modo selecionado.", inputSchema: { type: "object", properties: { estado_json: { type: "string", description: "Conteúdo do arquivo .maestro/estado.json" }, diretorio: { type: "string", description: "Diretório absoluto do projeto" }, respostas: { type: "object", description: "Respostas do questionário (opcional - se omitido, retorna o questionário)" } }, required: ["estado_json", "diretorio"] } },
535
- ],
536
- };
432
+ return { tools: getRegisteredTools() };
537
433
  }
538
434
  async function callTool(name, args) {
539
- const a = args || {};
540
- try {
541
- switch (name) {
542
- case "iniciar_projeto":
543
- return await iniciarProjeto({ nome: a.nome, descricao: a.descricao, diretorio: a.diretorio, ide: a.ide, modo: a.modo });
544
- case "confirmar_projeto":
545
- return await confirmarProjeto({ nome: a.nome, descricao: a.descricao, diretorio: a.diretorio, tipo_artefato: a.tipo_artefato, nivel_complexidade: a.nivel_complexidade, ide: a.ide, modo: a.modo });
546
- case "carregar_projeto":
547
- return await carregarProjeto({ estado_json: a.estado_json, diretorio: a.diretorio });
548
- case "proximo":
549
- return await proximo({ entregavel: a.entregavel, estado_json: a.estado_json, nome_arquivo: a.nome_arquivo, diretorio: a.diretorio, auto_flow: a.auto_flow });
550
- case "status":
551
- return await status({ estado_json: a.estado_json, diretorio: a.diretorio });
552
- case "validar_gate":
553
- return await validarGate({ fase: a.fase, entregavel: a.entregavel, estado_json: a.estado_json, diretorio: a.diretorio });
554
- case "classificar":
555
- return await classificar({ prd: a.prd, nivel: a.nivel, estado_json: a.estado_json, diretorio: a.diretorio });
556
- case "contexto":
557
- return await contexto({ estado_json: a.estado_json, diretorio: a.diretorio });
558
- case "salvar":
559
- return await salvar({ conteudo: a.conteudo, tipo: a.tipo, estado_json: a.estado_json, nome_arquivo: a.nome_arquivo, diretorio: a.diretorio });
560
- case "implementar_historia":
561
- return await implementarHistoria({ historia_id: a.historia_id, modo: a.modo });
562
- case "nova_feature":
563
- return await novaFeature({ descricao: a.descricao, impacto_estimado: a.impacto_estimado });
564
- case "corrigir_bug":
565
- return await corrigirBug({ descricao: a.descricao, severidade: a.severidade, ticket_id: a.ticket_id });
566
- case "refatorar":
567
- return await refatorar({ area: a.area, motivo: a.motivo });
568
- case "aprovar_gate":
569
- return await aprovarGate({ acao: a.acao, estado_json: a.estado_json, diretorio: a.diretorio });
570
- case "confirmar_classificacao":
571
- return await confirmarClassificacao({ estado_json: a.estado_json, diretorio: a.diretorio, nivel: a.nivel, tipo_artefato: a.tipo_artefato });
572
- case "discovery":
573
- return await discovery({ estado_json: a.estado_json, diretorio: a.diretorio, respostas: a.respostas });
574
- default:
575
- return { content: [{ type: "text", text: `Tool não encontrada: ${name}` }], isError: true };
576
- }
577
- }
578
- catch (error) {
579
- return { content: [{ type: "text", text: `Erro: ${String(error)}` }], isError: true };
580
- }
435
+ return await routeToolCall(name, args || {});
581
436
  }
582
437
  // ============================================
583
438
  // Iniciar servidor
@@ -585,7 +440,7 @@ async function callTool(name, args) {
585
440
  app.listen(PORT, () => {
586
441
  console.log(`
587
442
  ╔═══════════════════════════════════════════════════════════╗
588
- ║ MCP MAESTRO v1.0.0 ║
443
+ ║ MCP MAESTRO v3.0.0 ║
589
444
  ╠═══════════════════════════════════════════════════════════╣
590
445
  ║ 🚀 Server running on http://localhost:${PORT} ║
591
446
  ║ ║
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Middleware: withFlowEngine
3
+ *
4
+ * Após execução da tool, calcula next_action via flow engine
5
+ * de forma consistente, substituindo lógica local duplicada nas tools.
6
+ *
7
+ * Se a tool já retornou next_action, o middleware NÃO sobrescreve
8
+ * (permite que tools específicas tenham controle granular).
9
+ */
10
+ import type { ToolResult } from "../types/index.js";
11
+ type ToolHandler = (args: Record<string, unknown>) => Promise<ToolResult>;
12
+ export declare function withFlowEngine(handler: ToolHandler): ToolHandler;
13
+ export {};
14
+ //# sourceMappingURL=flow-engine.middleware.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Middleware: withFlowEngine
3
+ *
4
+ * Após execução da tool, calcula next_action via flow engine
5
+ * de forma consistente, substituindo lógica local duplicada nas tools.
6
+ *
7
+ * Se a tool já retornou next_action, o middleware NÃO sobrescreve
8
+ * (permite que tools específicas tenham controle granular).
9
+ */
10
+ import { parsearEstado } from "../state/storage.js";
11
+ import { getNextStep, getFlowProgress, flowStepToNextAction } from "../services/flow-engine.js";
12
+ export function withFlowEngine(handler) {
13
+ return async (args) => {
14
+ const result = await handler(args);
15
+ // Se deu erro, não calcular next_action
16
+ if (result.isError) {
17
+ return result;
18
+ }
19
+ const diretorio = args.diretorio;
20
+ if (!diretorio) {
21
+ return result;
22
+ }
23
+ // Usar estado atualizado da resposta, ou o estado de entrada
24
+ const estadoJson = result.estado_atualizado || args.estado_json;
25
+ if (!estadoJson) {
26
+ return result;
27
+ }
28
+ try {
29
+ const estado = parsearEstado(estadoJson);
30
+ if (!estado)
31
+ 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
+ }
39
+ }
40
+ // Sempre atualizar progress (é barato e útil)
41
+ if (!result.progress) {
42
+ result.progress = getFlowProgress(estado);
43
+ }
44
+ }
45
+ catch (error) {
46
+ console.warn("[withFlowEngine] Falha ao calcular next_action:", error);
47
+ }
48
+ return result;
49
+ };
50
+ }
51
+ //# sourceMappingURL=flow-engine.middleware.js.map
@@ -0,0 +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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Middleware Pipeline do Maestro v5
3
+ *
4
+ * Composição de middlewares para tools:
5
+ * withErrorHandling → withStateLoad → withFlowEngine → withPersistence → withSkillInjection
6
+ */
7
+ export { withStateLoad } from "./state-loader.middleware.js";
8
+ export { withPersistence } from "./persistence.middleware.js";
9
+ export { withFlowEngine } from "./flow-engine.middleware.js";
10
+ export { withSkillInjection } from "./skill-injection.middleware.js";
11
+ import type { ToolResult } from "../types/index.js";
12
+ type ToolHandler = (args: Record<string, unknown>) => Promise<ToolResult>;
13
+ /**
14
+ * Aplica pipeline completo de middlewares a um handler de tool.
15
+ *
16
+ * Ordem de execução (de fora para dentro):
17
+ * 1. withErrorHandling — captura erros e formata resposta
18
+ * 2. withStateLoad — auto-carrega estado se estado_json não fornecido
19
+ * 3. withFlowEngine — calcula next_action via flow engine
20
+ * 4. withPersistence — salva estado e files automaticamente
21
+ * 5. withSkillInjection — injeta contexto de skill na resposta
22
+ *
23
+ * O handler original executa no centro do pipeline.
24
+ */
25
+ export declare function applyMiddlewares(toolName: string, handler: ToolHandler): ToolHandler;
26
+ /**
27
+ * Aplica apenas middlewares leves (sem skill injection e sem persistence).
28
+ * Útil para tools que já fazem injeção ativa internamente (proximo, maestro).
29
+ */
30
+ export declare function applyLightMiddlewares(toolName: string, handler: ToolHandler): ToolHandler;
31
+ /**
32
+ * Aplica middlewares de persistência e estado (sem skill injection).
33
+ * Útil para tools que não precisam de injeção de skills mas precisam de persistência.
34
+ */
35
+ export declare function applyPersistenceMiddlewares(toolName: string, handler: ToolHandler): ToolHandler;
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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;AAOrE,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;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,WAAW,CAO/F"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Middleware Pipeline do Maestro v5
3
+ *
4
+ * Composição de middlewares para tools:
5
+ * withErrorHandling → withStateLoad → withFlowEngine → withPersistence → withSkillInjection
6
+ */
7
+ export { withStateLoad } from "./state-loader.middleware.js";
8
+ export { withPersistence } from "./persistence.middleware.js";
9
+ export { withFlowEngine } from "./flow-engine.middleware.js";
10
+ export { withSkillInjection } from "./skill-injection.middleware.js";
11
+ import { withStateLoad } from "./state-loader.middleware.js";
12
+ import { withPersistence } from "./persistence.middleware.js";
13
+ import { withFlowEngine } from "./flow-engine.middleware.js";
14
+ import { withSkillInjection } from "./skill-injection.middleware.js";
15
+ import { withErrorHandling } from "../errors/index.js";
16
+ /**
17
+ * Aplica pipeline completo de middlewares a um handler de tool.
18
+ *
19
+ * Ordem de execução (de fora para dentro):
20
+ * 1. withErrorHandling — captura erros e formata resposta
21
+ * 2. withStateLoad — auto-carrega estado se estado_json não fornecido
22
+ * 3. withFlowEngine — calcula next_action via flow engine
23
+ * 4. withPersistence — salva estado e files automaticamente
24
+ * 5. withSkillInjection — injeta contexto de skill na resposta
25
+ *
26
+ * O handler original executa no centro do pipeline.
27
+ */
28
+ export function applyMiddlewares(toolName, handler) {
29
+ return withErrorHandling(toolName, withStateLoad(withFlowEngine(withPersistence(withSkillInjection(handler)))));
30
+ }
31
+ /**
32
+ * Aplica apenas middlewares leves (sem skill injection e sem persistence).
33
+ * Útil para tools que já fazem injeção ativa internamente (proximo, maestro).
34
+ */
35
+ export function applyLightMiddlewares(toolName, handler) {
36
+ return withErrorHandling(toolName, withStateLoad(handler));
37
+ }
38
+ /**
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.
41
+ */
42
+ export function applyPersistenceMiddlewares(toolName, handler) {
43
+ return withErrorHandling(toolName, withStateLoad(withPersistence(handler)));
44
+ }
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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;AAErE,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;;;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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Middleware: withPersistence
3
+ *
4
+ * Após execução da tool, salva estado e arquivos automaticamente
5
+ * no filesystem via StateService.
6
+ *
7
+ * A IA não precisa mais salvar files[] manualmente — o MCP persiste diretamente.
8
+ * Fallback: continua retornando files[] se a persistência falhar.
9
+ */
10
+ import type { ToolResult } from "../types/index.js";
11
+ type ToolHandler = (args: Record<string, unknown>) => Promise<ToolResult>;
12
+ export declare function withPersistence(handler: ToolHandler): ToolHandler;
13
+ export {};
14
+ //# sourceMappingURL=persistence.middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/persistence.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,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CA+CjE"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Middleware: withPersistence
3
+ *
4
+ * Após execução da tool, salva estado e arquivos automaticamente
5
+ * no filesystem via StateService.
6
+ *
7
+ * A IA não precisa mais salvar files[] manualmente — o MCP persiste diretamente.
8
+ * Fallback: continua retornando files[] se a persistência falhar.
9
+ */
10
+ import { createStateService } from "../services/state.service.js";
11
+ import { parsearEstado } from "../state/storage.js";
12
+ export function withPersistence(handler) {
13
+ return async (args) => {
14
+ const result = await handler(args);
15
+ // Se não tem diretório ou deu erro, não persistir
16
+ const diretorio = args.diretorio;
17
+ if (!diretorio || result.isError) {
18
+ return result;
19
+ }
20
+ const stateService = createStateService(diretorio);
21
+ // 1. Persistir estado atualizado
22
+ if (result.estado_atualizado) {
23
+ try {
24
+ const estado = parsearEstado(result.estado_atualizado);
25
+ if (estado) {
26
+ const saved = await stateService.save(estado);
27
+ if (saved) {
28
+ // Marcar que estado foi salvo automaticamente
29
+ result._state_persisted = true;
30
+ }
31
+ }
32
+ }
33
+ catch (error) {
34
+ console.warn("[withPersistence] Falha ao salvar estado:", error);
35
+ }
36
+ }
37
+ // 2. Persistir arquivos retornados
38
+ if (result.files && result.files.length > 0) {
39
+ try {
40
+ const savedCount = await stateService.saveFiles(result.files.map(f => ({
41
+ path: f.path,
42
+ content: f.content,
43
+ })));
44
+ if (savedCount > 0) {
45
+ result._files_persisted = savedCount;
46
+ }
47
+ }
48
+ catch (error) {
49
+ console.warn("[withPersistence] Falha ao salvar arquivos:", error);
50
+ }
51
+ }
52
+ return result;
53
+ };
54
+ }
55
+ //# sourceMappingURL=persistence.middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.middleware.js","sourceRoot":"","sources":["../../src/middleware/persistence.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKpD,MAAM,UAAU,eAAe,CAAC,OAAoB;IAChD,OAAO,KAAK,EAAE,IAA6B,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnC,kDAAkD;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;QAEnD,iCAAiC;QACjC,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACvD,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC9C,IAAI,KAAK,EAAE,CAAC;wBACR,8CAA8C;wBAC7C,MAAc,CAAC,gBAAgB,GAAG,IAAI,CAAC;oBAC5C,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;QAED,mCAAmC;QACnC,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACD,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,SAAS,CAC3C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBACnB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;iBACrB,CAAC,CAAC,CACN,CAAC;gBACF,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;oBAChB,MAAc,CAAC,gBAAgB,GAAG,UAAU,CAAC;gBAClD,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,6CAA6C,EAAE,KAAK,CAAC,CAAC;YACvE,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Middleware: withSkillInjection
3
+ *
4
+ * Após execução da tool, se o resultado indica transição de fase,
5
+ * injeta automaticamente o conteúdo da skill da próxima fase.
6
+ *
7
+ * Este middleware é complementar ao código de injeção já existente
8
+ * em proximo.ts — serve como safety net para tools que não fazem
9
+ * injeção diretamente.
10
+ */
11
+ import type { ToolResult } from "../types/index.js";
12
+ type ToolHandler = (args: Record<string, unknown>) => Promise<ToolResult>;
13
+ export declare function withSkillInjection(handler: ToolHandler): ToolHandler;
14
+ export {};
15
+ //# sourceMappingURL=skill-injection.middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-injection.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/skill-injection.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAOH,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,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAuDpE"}