@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.
- package/dist/content/.version.json +16 -0
- package/dist/data/project-templates.d.ts +37 -0
- package/dist/data/project-templates.d.ts.map +1 -0
- package/dist/data/project-templates.js +208 -0
- package/dist/data/project-templates.js.map +1 -0
- package/dist/errors/index.d.ts +84 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +158 -0
- package/dist/errors/index.js.map +1 -0
- package/dist/flows/onboarding-orchestrator.d.ts.map +1 -1
- package/dist/flows/onboarding-orchestrator.js +126 -91
- package/dist/flows/onboarding-orchestrator.js.map +1 -1
- package/dist/gates/validator.d.ts +2 -1
- package/dist/gates/validator.d.ts.map +1 -1
- package/dist/gates/validator.js +33 -2
- package/dist/gates/validator.js.map +1 -1
- package/dist/index.js +19 -164
- package/dist/index.js.map +1 -1
- package/dist/middleware/flow-engine.middleware.d.ts +14 -0
- package/dist/middleware/flow-engine.middleware.d.ts.map +1 -0
- package/dist/middleware/flow-engine.middleware.js +51 -0
- package/dist/middleware/flow-engine.middleware.js.map +1 -0
- package/dist/middleware/index.d.ts +36 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +45 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/persistence.middleware.d.ts +14 -0
- package/dist/middleware/persistence.middleware.d.ts.map +1 -0
- package/dist/middleware/persistence.middleware.js +55 -0
- package/dist/middleware/persistence.middleware.js.map +1 -0
- package/dist/middleware/skill-injection.middleware.d.ts +15 -0
- package/dist/middleware/skill-injection.middleware.d.ts.map +1 -0
- package/dist/middleware/skill-injection.middleware.js +63 -0
- package/dist/middleware/skill-injection.middleware.js.map +1 -0
- package/dist/middleware/state-loader.middleware.d.ts +13 -0
- package/dist/middleware/state-loader.middleware.d.ts.map +1 -0
- package/dist/middleware/state-loader.middleware.js +36 -0
- package/dist/middleware/state-loader.middleware.js.map +1 -0
- package/dist/router.d.ts +46 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +441 -0
- package/dist/router.js.map +1 -0
- package/dist/services/content-resolver.service.d.ts +96 -0
- package/dist/services/content-resolver.service.d.ts.map +1 -0
- package/dist/services/content-resolver.service.js +280 -0
- package/dist/services/content-resolver.service.js.map +1 -0
- package/dist/services/flow-engine.d.ts +82 -0
- package/dist/services/flow-engine.d.ts.map +1 -0
- package/dist/services/flow-engine.js +270 -0
- package/dist/services/flow-engine.js.map +1 -0
- package/dist/services/onboarding.service.d.ts +20 -0
- package/dist/services/onboarding.service.d.ts.map +1 -0
- package/dist/services/onboarding.service.js +49 -0
- package/dist/services/onboarding.service.js.map +1 -0
- package/dist/services/skill-loader.service.d.ts +81 -0
- package/dist/services/skill-loader.service.d.ts.map +1 -0
- package/dist/services/skill-loader.service.js +321 -0
- package/dist/services/skill-loader.service.js.map +1 -0
- package/dist/services/specialist.service.d.ts +20 -0
- package/dist/services/specialist.service.d.ts.map +1 -0
- package/dist/services/specialist.service.js +115 -0
- package/dist/services/specialist.service.js.map +1 -0
- package/dist/services/state.service.d.ts +59 -0
- package/dist/services/state.service.d.ts.map +1 -0
- package/dist/services/state.service.js +131 -0
- package/dist/services/state.service.js.map +1 -0
- package/dist/stdio.js +329 -437
- package/dist/stdio.js.map +1 -1
- package/dist/tests/content-resolver.test.d.ts +5 -0
- package/dist/tests/content-resolver.test.d.ts.map +1 -0
- package/dist/tests/content-resolver.test.js +157 -0
- package/dist/tests/content-resolver.test.js.map +1 -0
- package/dist/tests/middleware.test.d.ts +5 -0
- package/dist/tests/middleware.test.d.ts.map +1 -0
- package/dist/tests/middleware.test.js +228 -0
- package/dist/tests/middleware.test.js.map +1 -0
- package/dist/tests/skill-loader.test.d.ts +5 -0
- package/dist/tests/skill-loader.test.d.ts.map +1 -0
- package/dist/tests/skill-loader.test.js +242 -0
- package/dist/tests/skill-loader.test.js.map +1 -0
- package/dist/tools/aprovar-gate.d.ts.map +1 -1
- package/dist/tools/aprovar-gate.js +35 -0
- package/dist/tools/aprovar-gate.js.map +1 -1
- package/dist/tools/brainstorm.d.ts.map +1 -1
- package/dist/tools/brainstorm.js +90 -49
- package/dist/tools/brainstorm.js.map +1 -1
- package/dist/tools/classificar.d.ts.map +1 -1
- package/dist/tools/classificar.js +20 -1
- package/dist/tools/classificar.js.map +1 -1
- package/dist/tools/confirmar-classificacao.d.ts.map +1 -1
- package/dist/tools/confirmar-classificacao.js +20 -1
- package/dist/tools/confirmar-classificacao.js.map +1 -1
- package/dist/tools/consolidated/analisar.d.ts +56 -0
- package/dist/tools/consolidated/analisar.d.ts.map +1 -0
- package/dist/tools/consolidated/analisar.js +96 -0
- package/dist/tools/consolidated/analisar.js.map +1 -0
- package/dist/tools/consolidated/avancar.d.ts +67 -0
- package/dist/tools/consolidated/avancar.d.ts.map +1 -0
- package/dist/tools/consolidated/avancar.js +132 -0
- package/dist/tools/consolidated/avancar.js.map +1 -0
- package/dist/tools/consolidated/checkpoint-tool.d.ts +66 -0
- package/dist/tools/consolidated/checkpoint-tool.d.ts.map +1 -0
- package/dist/tools/consolidated/checkpoint-tool.js +111 -0
- package/dist/tools/consolidated/checkpoint-tool.js.map +1 -0
- package/dist/tools/consolidated/validar.d.ts +63 -0
- package/dist/tools/consolidated/validar.d.ts.map +1 -0
- package/dist/tools/consolidated/validar.js +104 -0
- package/dist/tools/consolidated/validar.js.map +1 -0
- package/dist/tools/contexto.d.ts.map +1 -1
- package/dist/tools/contexto.js +18 -0
- package/dist/tools/contexto.js.map +1 -1
- package/dist/tools/discovery.d.ts +10 -10
- package/dist/tools/discovery.d.ts.map +1 -1
- package/dist/tools/discovery.js +82 -56
- package/dist/tools/discovery.js.map +1 -1
- package/dist/tools/iniciar-projeto.d.ts +48 -0
- package/dist/tools/iniciar-projeto.d.ts.map +1 -1
- package/dist/tools/iniciar-projeto.js +234 -45
- package/dist/tools/iniciar-projeto.js.map +1 -1
- package/dist/tools/maestro-tool.d.ts +51 -0
- package/dist/tools/maestro-tool.d.ts.map +1 -0
- package/dist/tools/maestro-tool.js +224 -0
- package/dist/tools/maestro-tool.js.map +1 -0
- package/dist/tools/prd-writer.d.ts +1 -1
- package/dist/tools/prd-writer.d.ts.map +1 -1
- package/dist/tools/prd-writer.js +138 -2
- package/dist/tools/prd-writer.js.map +1 -1
- package/dist/tools/proximo.d.ts.map +1 -1
- package/dist/tools/proximo.js +22 -16
- package/dist/tools/proximo.js.map +1 -1
- package/dist/tools/salvar.d.ts.map +1 -1
- package/dist/tools/salvar.js +13 -0
- package/dist/tools/salvar.js.map +1 -1
- package/dist/tools/setup-inicial.d.ts.map +1 -1
- package/dist/tools/setup-inicial.js +12 -0
- package/dist/tools/setup-inicial.js.map +1 -1
- package/dist/tools/status.d.ts.map +1 -1
- package/dist/tools/status.js +6 -0
- package/dist/tools/status.js.map +1 -1
- package/dist/tools/validar-gate.d.ts.map +1 -1
- package/dist/tools/validar-gate.js +25 -0
- package/dist/tools/validar-gate.js.map +1 -1
- package/dist/types/index.d.ts +20 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/dist/types/response.d.ts +49 -0
- package/dist/types/response.d.ts.map +1 -1
- package/dist/types/response.js.map +1 -1
- package/dist/utils/smart-defaults.d.ts +56 -0
- package/dist/utils/smart-defaults.d.ts.map +1 -0
- package/dist/utils/smart-defaults.js +113 -0
- package/dist/utils/smart-defaults.js.map +1 -0
- 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: "
|
|
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: "
|
|
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: "
|
|
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: "
|
|
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 {
|
|
291
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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:
|
|
307
|
+
resources: tools.map((t) => ({
|
|
390
308
|
uri: `maestro://tool/${t.name}`,
|
|
391
|
-
name:
|
|
392
|
-
description: t.
|
|
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
|
-
|
|
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
|
|
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":";AACA,OAAO,OAAqB,MAAM,SAAS,CAAC;AAC5C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,MAAM,EAAE,EAAE,CAAC,CAAC;AACtD,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;AAEtB,aAAa;AACb,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AAChB,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;AASzC,wDAAwD;AACxD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAsB,CAAC;AAE/C,2CAA2C;AAC3C,WAAW,CAAC,GAAG,EAAE;IACb,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,QAAQ,EAAE,CAAC;QACnC,IAAI,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;YACtD,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC;IACL,CAAC;AACL,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;AAElB;;GAEG;AACH,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC5B,GAAG,CAAC,IAAI,CAAC;QACL,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,aAAa;QACrB,OAAO,EAAE,OAAO;QAChB,QAAQ,EAAE,QAAQ,CAAC,IAAI;KAC1B,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACtB,GAAG,CAAC,IAAI,CAAC;QACL,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,6DAA6D;QAC1E,SAAS,EAAE;YACP,MAAM,EAAE,aAAa;YACrB,GAAG,EAAE,WAAW;YAChB,SAAS,EAAE,gBAAgB;YAC3B,KAAK,EAAE,YAAY;SACtB;KACJ,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACrC,IAAI,CAAC;QACD,qBAAqB;QACrB,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,UAAU,EAAE;YAChB,MAAM,EAAE,gBAAgB;YACxB,MAAM,EAAE,EAAE;SACb,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;AACL,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IACjC,IAAI,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC;YAClC,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,UAAU,EAAE;YAChB,MAAM,EAAE,YAAY;YACpB,MAAM,EAAE,EAAE;SACb,CAAC,CAAC;QACH,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,+CAA+C;AAC/C,2CAA2C;AAC3C,+CAA+C;AAE/C;;;GAGG;AACH,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IACzB,6BAA6B;IAC7B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACxC,uCAAuC;QACvC,GAAG,CAAC,IAAI,CAAC;YACL,IAAI,EAAE,aAAa;YACnB,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,iBAAiB;YAC5B,SAAS,EAAE;gBACP,GAAG,EAAE,sCAAsC;gBAC3C,IAAI,EAAE,WAAW;aACpB;SACJ,CAAC,CAAC;QACH,OAAO;IACX,CAAC;IAED,yBAAyB;IACzB,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,mBAAmB,CAAC,CAAC;IACnD,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,wBAAwB,CAAC,CAAC;IACzD,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC1C,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,qBAAqB;IAC/D,GAAG,CAAC,SAAS,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC,CAAC,yBAAyB;IACxE,GAAG,CAAC,YAAY,EAAE,CAAC;IAEnB,eAAe;IACf,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAE/B,iFAAiF;IACjF,oDAAoD;IACpD,MAAM,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;IACjD,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAEnB,qCAAqC;IACrC,MAAM,iBAAiB,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC;YACD,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACjC,CAAC;QAAC,MAAM,CAAC;YACL,kBAAkB;YAClB,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACrC,CAAC;IACL,CAAC,EAAE,KAAK,CAAC,CAAC;IAEV,mBAAmB;IACnB,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE;QACpB,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,IAAI,IAAI,EAAE;QACtB,iBAAiB;KACpB,CAAC,CAAC;IAEH,gEAAgE;IAChE,MAAM,WAAW,GAAG,kBAAkB,SAAS,EAAE,CAAC;IAClD,GAAG,CAAC,KAAK,CAAC,0BAA0B,WAAW,MAAM,CAAC,CAAC;IAEvD,OAAO,CAAC,GAAG,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;IAEnD,gCAAgC;IAChC,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;QACjB,OAAO,CAAC,GAAG,CAAC,yBAAyB,SAAS,EAAE,CAAC,CAAC;QAClD,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACjC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;IAC5B,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAmB,CAAC;IAEhD,IAAI,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,CAAC;YACV,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACzC,IAAI,CAAC;gBACD,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACL,aAAa;YACjB,CAAC;QACL,CAAC;QACD,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACJ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACzD,CAAC;AACL,CAAC,CAAC,CAAC;AAEH;;;GAGG;AACH,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;IAChC,IAAI,CAAC;QACD,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC;QACzB,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAA+B,CAAC;QAE5D,4CAA4C;QAC5C,IAAI,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YACzC,OAAO,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC;QACpC,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAChD,MAAM,aAAa,GAAG;gBAClB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,sCAAsC,EAAE;gBACxE,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI;aACzB,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO;QACX,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAClB,MAAM,aAAa,GAAG;gBAClB,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,iCAAiC,EAAE;gBACnE,EAAE,EAAE,OAAO,CAAC,EAAE;aACjB,CAAC;YACF,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACpC,OAAO;QACX,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAE/C,yDAAyD;QACzD,IAAI,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC;YACzC,IAAI,CAAC;gBACD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClF,CAAC;YAAC,MAAM,CAAC;gBACL,mCAAmC;gBACnC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QAED,mCAAmC;QACnC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QACpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;YACjB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;YAC/C,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI;SAC3B,CAAC,CAAC;IACP,CAAC;AACL,CAAC,CAAC,CAAC;AAEH;;GAEG;AACH,KAAK,UAAU,gBAAgB,CAAC,OAK/B;IACG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAEvC,IAAI,CAAC;QACD,6CAA6C;QAC7C,8DAA8D;QAC9D,IAAI,MAAe,CAAC;QAEpB,QAAQ,MAAM,EAAE,CAAC;YACb,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACpB,MAAM,SAAS,GAAG,MAAM,gBAAgB,EAAE,CAAC;gBAC3C,MAAM,GAAG,SAAS,CAAC;gBACnB,MAAM;YACV,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACpB,MAAM,GAAG,GAAI,MAA0B,CAAC,GAAG,CAAC;gBAC5C,MAAM,GAAG,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBACvC,MAAM;YACV,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAChB,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;gBAC9B,MAAM;YACV,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAChB,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAGjC,CAAC;gBACF,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBACpC,MAAM;YACV,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAChB,MAAM,GAAG;oBACL,eAAe,EAAE,YAAY;oBAC7B,UAAU,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE;oBACrD,YAAY,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;iBAC1D,CAAC;gBACF,MAAM;YACV,CAAC;YAED;gBACI,OAAO;oBACH,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,qBAAqB,MAAM,EAAE,EAAE;oBAC/D,EAAE;iBACL,CAAC;QACV,CAAC;QAED,OAAO;YACH,OAAO,EAAE,KAAK;YACd,MAAM;YACN,EAAE;SACL,CAAC;IACN,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,OAAO;YACH,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE;YAC/C,EAAE;SACL,CAAC;IACN,CAAC;AACL,CAAC;AAED,+CAA+C;AAC/C,mDAAmD;AACnD,+CAA+C;AAE/C,OAAO,EAIH,eAAe,EACf,WAAW,EACX,OAAO,EACP,SAAS,GACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAgB,MAAM,aAAa,CAAC;AAE9E,+DAA+D;AAC/D,SAAS,oBAAoB,CAAC,QAAgB;IAC1C,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,wBAAwB,QAAQ,EAAE,CAAC;IAErD,OAAO,SAAS,IAAI,CAAC,IAAI;;EAE3B,IAAI,CAAC,WAAW;;;;CAIjB,CAAC;AACF,CAAC;AAED,KAAK,UAAU,gBAAgB;IAC3B,+EAA+E;IAC/E,uEAAuE;IACvE,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IACnC,OAAO;QACH,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACzB,GAAG,EAAE,kBAAkB,CAAC,CAAC,IAAI,EAAE;YAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,QAAQ,EAAE,eAAe;SAC5B,CAAC,CAAC;KACN,CAAC;AACN,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,GAAW;IACzC,yDAAyD;IACzD,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC;QACpD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,sEAAsE;IACtE,IAAI,GAAG,CAAC,UAAU,CAAC,yBAAyB,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,yBAAyB,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;QAC7C,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QACrC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,CAAC,mBAAmB,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,MAAM,SAAS,CAC5B,kBAAkB,CAAC,SAAS,CAAC,EAC7B,kBAAkB,CAAC,IAAI,CAAC,CAC3B,CAAC;QACF,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,IAAI,GAAG,KAAK,yBAAyB,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiFxB,CAAC;QACM,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC9E,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,4BAA4B,GAAG,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,KAAK,UAAU,YAAY;IACvB,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,IAAY,EAAE,IAA8B;IAChE,OAAO,MAAM,aAAa,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;IAClB,OAAO,CAAC,GAAG,CAAC;;;;2CAI2B,IAAI;;;;;;;;GAQ5C,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -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"}
|