@maestro-ai/mcp-server 2.6.2 → 5.1.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/iniciar-projeto.d.ts +1 -0
- package/dist/tools/iniciar-projeto.d.ts.map +1 -1
- package/dist/tools/iniciar-projeto.js +109 -38
- 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 +235 -0
- package/dist/tools/maestro-tool.js.map +1 -0
- package/dist/tools/prd-writer.d.ts.map +1 -1
- package/dist/tools/prd-writer.js +13 -0
- 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 +8 -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
|
@@ -0,0 +1,63 @@
|
|
|
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 { parsearEstado } from "../state/storage.js";
|
|
12
|
+
import { ContentResolverService } from "../services/content-resolver.service.js";
|
|
13
|
+
import { SkillLoaderService } from "../services/skill-loader.service.js";
|
|
14
|
+
import { getSkillParaFase } from "../utils/prompt-mapper.js";
|
|
15
|
+
import { getFaseComStitch } from "../flows/types.js";
|
|
16
|
+
export function withSkillInjection(handler) {
|
|
17
|
+
return async (args) => {
|
|
18
|
+
const result = await handler(args);
|
|
19
|
+
// Se deu erro ou não tem diretório, não injetar
|
|
20
|
+
const diretorio = args.diretorio;
|
|
21
|
+
if (result.isError || !diretorio) {
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
// Se a resposta já contém contexto de especialista (proximo.ts já injetou), pular
|
|
25
|
+
const responseText = result.content?.[0]?.text || "";
|
|
26
|
+
if (responseText.includes("🧠 Contexto do Especialista")) {
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
// Se tem next_action apontando para uma fase que precisa de skill,
|
|
30
|
+
// e a resposta não tem contexto injetado, adicionar
|
|
31
|
+
if (result.next_action && result.estado_atualizado) {
|
|
32
|
+
try {
|
|
33
|
+
const estado = parsearEstado(result.estado_atualizado);
|
|
34
|
+
if (!estado)
|
|
35
|
+
return result;
|
|
36
|
+
const faseInfo = getFaseComStitch(estado.nivel, estado.fase_atual, estado.usar_stitch);
|
|
37
|
+
if (!faseInfo)
|
|
38
|
+
return result;
|
|
39
|
+
const skillName = getSkillParaFase(faseInfo.nome);
|
|
40
|
+
if (!skillName)
|
|
41
|
+
return result;
|
|
42
|
+
// Verificar se a próxima ação é gerar entregável (não injetar em status, etc.)
|
|
43
|
+
const actionsThatNeedSkill = ["proximo", "avancar", "validar_gate", "validar"];
|
|
44
|
+
if (!actionsThatNeedSkill.includes(result.next_action.tool)) {
|
|
45
|
+
return result;
|
|
46
|
+
}
|
|
47
|
+
const mode = (estado.config?.mode || "balanced");
|
|
48
|
+
const contentResolver = new ContentResolverService(diretorio);
|
|
49
|
+
const skillLoader = new SkillLoaderService(contentResolver);
|
|
50
|
+
const contextPkg = await skillLoader.loadForPhase(faseInfo.nome, "economy");
|
|
51
|
+
if (contextPkg && result.content?.[0]) {
|
|
52
|
+
// Append contexto resumido à resposta
|
|
53
|
+
result.content[0].text += `\n\n---\n\n## 🧠 Contexto do Especialista (${faseInfo.nome})\n\n${skillLoader.formatAsMarkdown(contextPkg)}`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
console.warn("[withSkillInjection] Falha ao injetar skill:", error);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return result;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=skill-injection.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-injection.middleware.js","sourceRoot":"","sources":["../../src/middleware/skill-injection.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAKrD,MAAM,UAAU,kBAAkB,CAAC,OAAoB;IACnD,OAAO,KAAK,EAAE,IAA6B,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnC,gDAAgD;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,IAAI,MAAM,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,kFAAkF;QAClF,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;QACrD,IAAI,YAAY,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;YACvD,OAAO,MAAM,CAAC;QAClB,CAAC;QAED,mEAAmE;QACnE,oDAAoD;QACpD,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACjD,IAAI,CAAC;gBACD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACvD,IAAI,CAAC,MAAM;oBAAE,OAAO,MAAM,CAAC;gBAE3B,MAAM,QAAQ,GAAG,gBAAgB,CAC7B,MAAM,CAAC,KAAY,EACnB,MAAM,CAAC,UAAU,EACjB,MAAM,CAAC,WAAW,CACrB,CAAC;gBACF,IAAI,CAAC,QAAQ;oBAAE,OAAO,MAAM,CAAC;gBAE7B,MAAM,SAAS,GAAG,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAClD,IAAI,CAAC,SAAS;oBAAE,OAAO,MAAM,CAAC;gBAE9B,+EAA+E;gBAC/E,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;gBAC/E,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC1D,OAAO,MAAM,CAAC;gBAClB,CAAC;gBAED,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,IAAI,UAAU,CAAuC,CAAC;gBACvF,MAAM,eAAe,GAAG,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAC9D,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC;gBAC5D,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAE5E,IAAI,UAAU,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpC,sCAAsC;oBACtC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,8CAA8C,QAAQ,CAAC,IAAI,QAAQ,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5I,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,IAAI,CAAC,8CAA8C,EAAE,KAAK,CAAC,CAAC;YACxE,CAAC;QACL,CAAC;QAED,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware: withStateLoad
|
|
3
|
+
*
|
|
4
|
+
* Intercepta chamada de tool e auto-carrega estado do filesystem
|
|
5
|
+
* quando estado_json não é fornecido mas diretorio está disponível.
|
|
6
|
+
*
|
|
7
|
+
* Torna estado_json OPCIONAL para todas as tools.
|
|
8
|
+
*/
|
|
9
|
+
import type { ToolResult } from "../types/index.js";
|
|
10
|
+
type ToolHandler = (args: Record<string, unknown>) => Promise<ToolResult>;
|
|
11
|
+
export declare function withStateLoad(handler: ToolHandler): ToolHandler;
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=state-loader.middleware.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-loader.middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/state-loader.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;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,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,CAyB/D"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Middleware: withStateLoad
|
|
3
|
+
*
|
|
4
|
+
* Intercepta chamada de tool e auto-carrega estado do filesystem
|
|
5
|
+
* quando estado_json não é fornecido mas diretorio está disponível.
|
|
6
|
+
*
|
|
7
|
+
* Torna estado_json OPCIONAL para todas as tools.
|
|
8
|
+
*/
|
|
9
|
+
import { createStateService } from "../services/state.service.js";
|
|
10
|
+
import { serializarEstado } from "../state/storage.js";
|
|
11
|
+
export function withStateLoad(handler) {
|
|
12
|
+
return async (args) => {
|
|
13
|
+
// Se já tem estado_json, não interferir
|
|
14
|
+
if (args.estado_json) {
|
|
15
|
+
return handler(args);
|
|
16
|
+
}
|
|
17
|
+
// Se tem diretório, tentar carregar estado automaticamente
|
|
18
|
+
const diretorio = args.diretorio;
|
|
19
|
+
if (diretorio) {
|
|
20
|
+
try {
|
|
21
|
+
const stateService = createStateService(diretorio);
|
|
22
|
+
const estado = await stateService.load();
|
|
23
|
+
if (estado) {
|
|
24
|
+
const serialized = serializarEstado(estado);
|
|
25
|
+
args.estado_json = serialized.content;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
// Falha silenciosa — a tool decidirá o que fazer sem estado
|
|
30
|
+
console.warn("[withStateLoad] Falha ao carregar estado:", error);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return handler(args);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=state-loader.middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-loader.middleware.js","sourceRoot":"","sources":["../../src/middleware/state-loader.middleware.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAKvD,MAAM,UAAU,aAAa,CAAC,OAAoB;IAC9C,OAAO,KAAK,EAAE,IAA6B,EAAE,EAAE;QAC3C,wCAAwC;QACxC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAED,2DAA2D;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,SAA+B,CAAC;QACvD,IAAI,SAAS,EAAE,CAAC;YACZ,IAAI,CAAC;gBACD,MAAM,YAAY,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;gBACnD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;gBACzC,IAAI,MAAM,EAAE,CAAC;oBACT,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAC5C,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,OAAO,CAAC;gBAC1C,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,4DAA4D;gBAC5D,OAAO,CAAC,IAAI,CAAC,2CAA2C,EAAE,KAAK,CAAC,CAAC;YACrE,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC;AACN,CAAC"}
|
package/dist/router.d.ts
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Router Centralizado do Maestro MCP v5
|
|
3
|
+
*
|
|
4
|
+
* Ponto ÚNICO de roteamento para todas as tools.
|
|
5
|
+
* Ambos entry points (stdio.ts e index.ts) usam este router.
|
|
6
|
+
*
|
|
7
|
+
* v5: Separação PUBLIC (8 tools) vs LEGACY (37+ tools).
|
|
8
|
+
* - getRegisteredTools() retorna apenas PUBLIC tools
|
|
9
|
+
* - routeToolCall() aceita AMBAS (backward compatible)
|
|
10
|
+
* - Middlewares aplicados automaticamente
|
|
11
|
+
*/
|
|
12
|
+
import type { ToolResult } from "./types/index.js";
|
|
13
|
+
/**
|
|
14
|
+
* Executa uma tool pelo nome com os argumentos fornecidos.
|
|
15
|
+
* Ponto ÚNICO de execução - usado por stdio.ts e index.ts.
|
|
16
|
+
* Aceita TODAS as tools (public + legacy) para backward compatibility.
|
|
17
|
+
*/
|
|
18
|
+
export declare function routeToolCall(name: string, rawArgs: Record<string, unknown>): Promise<ToolResult>;
|
|
19
|
+
/**
|
|
20
|
+
* Retorna lista de tools PÚBLICAS no formato MCP.
|
|
21
|
+
* v5: Apenas 8 tools consolidadas (reduz superfície cognitiva).
|
|
22
|
+
* Ponto ÚNICO de listagem - usado por stdio.ts e index.ts.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getRegisteredTools(): Array<{
|
|
25
|
+
name: string;
|
|
26
|
+
description: string;
|
|
27
|
+
inputSchema: Record<string, unknown>;
|
|
28
|
+
}>;
|
|
29
|
+
/**
|
|
30
|
+
* Retorna lista de TODAS as tools (public + legacy) no formato MCP.
|
|
31
|
+
* Útil para diagnóstico e testes.
|
|
32
|
+
*/
|
|
33
|
+
export declare function getAllTools(): Array<{
|
|
34
|
+
name: string;
|
|
35
|
+
description: string;
|
|
36
|
+
inputSchema: Record<string, unknown>;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Retorna quantidade de tools públicas.
|
|
40
|
+
*/
|
|
41
|
+
export declare function getToolCount(): number;
|
|
42
|
+
/**
|
|
43
|
+
* Retorna quantidade total de tools (public + legacy).
|
|
44
|
+
*/
|
|
45
|
+
export declare function getTotalToolCount(): number;
|
|
46
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAgbnD;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,CAiBvG;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAMvH;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,CAMhH;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C"}
|
package/dist/router.js
ADDED
|
@@ -0,0 +1,441 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Router Centralizado do Maestro MCP v5
|
|
3
|
+
*
|
|
4
|
+
* Ponto ÚNICO de roteamento para todas as tools.
|
|
5
|
+
* Ambos entry points (stdio.ts e index.ts) usam este router.
|
|
6
|
+
*
|
|
7
|
+
* v5: Separação PUBLIC (8 tools) vs LEGACY (37+ tools).
|
|
8
|
+
* - getRegisteredTools() retorna apenas PUBLIC tools
|
|
9
|
+
* - routeToolCall() aceita AMBAS (backward compatible)
|
|
10
|
+
* - Middlewares aplicados automaticamente
|
|
11
|
+
*/
|
|
12
|
+
import { applyMiddlewares, applyLightMiddlewares, applyPersistenceMiddlewares } from "./middleware/index.js";
|
|
13
|
+
// === IMPORTS DE TOOLS ===
|
|
14
|
+
// Core
|
|
15
|
+
import { iniciarProjeto, iniciarProjetoSchema, confirmarProjeto, confirmarProjetoSchema } from "./tools/iniciar-projeto.js";
|
|
16
|
+
import { confirmarStitch, confirmarStitchSchema } from "./tools/confirmar-stitch.js";
|
|
17
|
+
import { carregarProjeto, carregarProjetoSchema } from "./tools/carregar-projeto.js";
|
|
18
|
+
import { proximo, proximoSchema } from "./tools/proximo.js";
|
|
19
|
+
import { status, statusSchema } from "./tools/status.js";
|
|
20
|
+
import { validarGate, validarGateSchema } from "./tools/validar-gate.js";
|
|
21
|
+
import { setupInicial, setupInicialSchema } from "./tools/setup-inicial.js";
|
|
22
|
+
// V1.0
|
|
23
|
+
import { classificar, classificarSchema } from "./tools/classificar.js";
|
|
24
|
+
import { contexto, contextoSchema } from "./tools/contexto.js";
|
|
25
|
+
import { salvar, salvarSchema } from "./tools/salvar.js";
|
|
26
|
+
import { implementarHistoria, implementarHistoriaSchema } from "./tools/implementar-historia.js";
|
|
27
|
+
// Fluxos alternativos
|
|
28
|
+
import { novaFeature, novaFeatureSchema, corrigirBug, corrigirBugSchema, refatorar, refatorarSchema } from "./tools/fluxos-alternativos.js";
|
|
29
|
+
// Análise
|
|
30
|
+
import { analisarSeguranca, analisarSegurancaSchema } from "./tools/analise/seguranca.js";
|
|
31
|
+
import { analisarQualidade, analisarQualidadeSchema } from "./tools/analise/qualidade.js";
|
|
32
|
+
import { analisarPerformance, analisarPerformanceSchema } from "./tools/analise/performance.js";
|
|
33
|
+
import { gerarRelatorio, gerarRelatorioSchema } from "./tools/analise/relatorio.js";
|
|
34
|
+
// Memória
|
|
35
|
+
import { atualizarCodebase, atualizarCodebaseSchema } from "./tools/atualizar-codebase.js";
|
|
36
|
+
// Qualidade
|
|
37
|
+
import { avaliarEntregavel, avaliarEntregavelSchema } from "./tools/avaliar-entregavel.js";
|
|
38
|
+
// Injeção de conteúdo
|
|
39
|
+
import { injetar_conteudo, injetarConteudoSchema } from "./tools/injetar-conteudo.js";
|
|
40
|
+
// Discovery
|
|
41
|
+
import { discovery, discoverySchema } from "./tools/discovery.js";
|
|
42
|
+
// Onboarding otimizado
|
|
43
|
+
import { onboardingOrchestrator, onboardingOrchestratorSchema } from "./flows/onboarding-orchestrator.js";
|
|
44
|
+
import { brainstorm, brainstormSchema } from "./tools/brainstorm.js";
|
|
45
|
+
import { prdWriter, prdWriterSchema } from "./tools/prd-writer.js";
|
|
46
|
+
import { nextStepsDashboard, nextStepsDashboardSchema } from "./tools/next-steps-dashboard.js";
|
|
47
|
+
// Gate e classificação
|
|
48
|
+
import { aprovarGate } from "./tools/aprovar-gate.js";
|
|
49
|
+
import { confirmarClassificacao } from "./tools/confirmar-classificacao.js";
|
|
50
|
+
// Fase 1: Knowledge Base
|
|
51
|
+
import { recordADR, recordADRSchema, recordPattern, recordPatternSchema, getContext, getContextSchema, searchKnowledge, searchKnowledgeSchema, } from "./tools/fase1/knowledge.tools.js";
|
|
52
|
+
// Fase 1: Checkpoint
|
|
53
|
+
import { createCheckpoint, createCheckpointSchema, rollbackTotal, rollbackTotalSchema, rollbackPartial, rollbackPartialSchema, listCheckpoints, listCheckpointsSchema, } from "./tools/fase1/checkpoint.tools.js";
|
|
54
|
+
// Fase 1: Validation
|
|
55
|
+
import { validateDependencies, validateDependenciesSchema, validateSecurity, validateSecuritySchema, checkCompliance, checkComplianceSchema, } from "./tools/fase1/validation.tools.js";
|
|
56
|
+
// Fase 1: Risk, AutoFix, Discovery
|
|
57
|
+
import { evaluateRisk, evaluateRiskSchema, autoFix, autoFixSchema, discoverCodebase, discoverCodebaseSchema, } from "./tools/fase1/misc.tools.js";
|
|
58
|
+
// Entry point inteligente
|
|
59
|
+
import { maestroTool, maestroToolSchema } from "./tools/maestro-tool.js";
|
|
60
|
+
// v5: Tools consolidadas
|
|
61
|
+
import { avancar, avancarSchema } from "./tools/consolidated/avancar.js";
|
|
62
|
+
import { validar, validarSchema } from "./tools/consolidated/validar.js";
|
|
63
|
+
import { checkpoint, checkpointSchema } from "./tools/consolidated/checkpoint-tool.js";
|
|
64
|
+
import { analisar, analisarSchema } from "./tools/consolidated/analisar.js";
|
|
65
|
+
// ============================================================
|
|
66
|
+
// PUBLIC TOOLS — Expostas para a IA (superfície reduzida)
|
|
67
|
+
// ============================================================
|
|
68
|
+
const publicTools = [
|
|
69
|
+
{
|
|
70
|
+
name: "maestro",
|
|
71
|
+
description: "🎯 Entry point inteligente do Maestro. Detecta contexto do projeto automaticamente e guia o próximo passo. Use esta tool quando não souber qual tool usar.",
|
|
72
|
+
inputSchema: maestroToolSchema,
|
|
73
|
+
handler: applyLightMiddlewares("maestro", (a) => maestroTool(a)),
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: "avancar",
|
|
77
|
+
description: "⏭️ Avança no fluxo do projeto. Em onboarding: processa próximo bloco. Em desenvolvimento: submete entregável e avança fase. Detecta contexto automaticamente.",
|
|
78
|
+
inputSchema: avancarSchema,
|
|
79
|
+
handler: applyLightMiddlewares("avancar", (a) => avancar(a)),
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: "status",
|
|
83
|
+
description: "📊 Retorna status completo do projeto com progresso, fase atual e próximos passos.",
|
|
84
|
+
inputSchema: statusSchema,
|
|
85
|
+
handler: applyMiddlewares("status", (a) => status(a)),
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
name: "validar",
|
|
89
|
+
description: "✅ Valida gate, entregável ou compliance. Tipo auto-detectado ou especificado via parâmetro 'tipo'.",
|
|
90
|
+
inputSchema: validarSchema,
|
|
91
|
+
handler: applyMiddlewares("validar", (a) => validar(a)),
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: "contexto",
|
|
95
|
+
description: "🧠 Retorna contexto acumulado do projeto (ADRs, padrões, decisões, knowledge base).",
|
|
96
|
+
inputSchema: contextoSchema,
|
|
97
|
+
handler: applyMiddlewares("contexto", (a) => contexto(a)),
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
name: "salvar",
|
|
101
|
+
description: "💾 Salva conteúdo (rascunho, anexo ou entregável) sem avançar de fase.",
|
|
102
|
+
inputSchema: salvarSchema,
|
|
103
|
+
handler: applyPersistenceMiddlewares("salvar", (a) => salvar(a)),
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
name: "checkpoint",
|
|
107
|
+
description: "🔒 Gerencia checkpoints: criar, rollback total/parcial ou listar. Usa parâmetro 'acao'.",
|
|
108
|
+
inputSchema: checkpointSchema,
|
|
109
|
+
handler: applyPersistenceMiddlewares("checkpoint", (a) => checkpoint(a)),
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: "analisar",
|
|
113
|
+
description: "🔍 Analisa código: segurança, qualidade, performance, dependências ou relatório completo. Usa parâmetro 'tipo'.",
|
|
114
|
+
inputSchema: analisarSchema,
|
|
115
|
+
handler: applyMiddlewares("analisar", (a) => analisar(a)),
|
|
116
|
+
},
|
|
117
|
+
];
|
|
118
|
+
// ============================================================
|
|
119
|
+
// LEGACY TOOLS — Aceitas no routeToolCall mas NÃO listadas
|
|
120
|
+
// Backward compatible com v4 e anteriores
|
|
121
|
+
// ============================================================
|
|
122
|
+
const legacyTools = [
|
|
123
|
+
// ──── CORE LEGACY ────
|
|
124
|
+
{
|
|
125
|
+
name: "setup_inicial",
|
|
126
|
+
description: "[Interno] Salva configuração global. Use 'maestro' como entry point.",
|
|
127
|
+
inputSchema: setupInicialSchema,
|
|
128
|
+
handler: (a) => setupInicial(a),
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
name: "iniciar_projeto",
|
|
132
|
+
description: "[Interno] Inicia novo projeto. Use 'maestro' como entry point.",
|
|
133
|
+
inputSchema: iniciarProjetoSchema,
|
|
134
|
+
handler: (a) => iniciarProjeto(a),
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: "confirmar_projeto",
|
|
138
|
+
description: "[Interno] Confirma criação do projeto.",
|
|
139
|
+
inputSchema: confirmarProjetoSchema,
|
|
140
|
+
handler: (a) => confirmarProjeto(a),
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
name: "confirmar_stitch",
|
|
144
|
+
description: "[Interno] Confirma uso de prototipagem Stitch.",
|
|
145
|
+
inputSchema: confirmarStitchSchema,
|
|
146
|
+
handler: (a) => confirmarStitch(a),
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
name: "carregar_projeto",
|
|
150
|
+
description: "[Interno] Carrega projeto existente. Use 'maestro' como entry point.",
|
|
151
|
+
inputSchema: carregarProjetoSchema,
|
|
152
|
+
handler: (a) => carregarProjeto(a),
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: "proximo",
|
|
156
|
+
description: "[Interno] Avança fase. Use 'avancar' como alternativa consolidada.",
|
|
157
|
+
inputSchema: proximoSchema,
|
|
158
|
+
handler: applyLightMiddlewares("proximo", (a) => proximo(a)),
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
name: "validar_gate",
|
|
162
|
+
description: "[Interno] Valida gate. Use 'validar' como alternativa consolidada.",
|
|
163
|
+
inputSchema: validarGateSchema,
|
|
164
|
+
handler: (a) => validarGate(a),
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: "aprovar_gate",
|
|
168
|
+
description: "EXCLUSIVO DO USUÁRIO. Aprova ou rejeita avanço com pendências. IA NÃO deve chamar automaticamente.",
|
|
169
|
+
inputSchema: { type: "object", properties: { acao: { type: "string", enum: ["aprovar", "rejeitar"] }, estado_json: { type: "string" }, diretorio: { type: "string" } }, required: ["acao", "estado_json", "diretorio"] },
|
|
170
|
+
handler: (a) => aprovarGate(a),
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
name: "classificar",
|
|
174
|
+
description: "[Interno] Reclassifica complexidade.",
|
|
175
|
+
inputSchema: classificarSchema,
|
|
176
|
+
handler: (a) => classificar(a),
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
name: "confirmar_classificacao",
|
|
180
|
+
description: "[Interno] Confirma reclassificação após PRD.",
|
|
181
|
+
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"] },
|
|
182
|
+
handler: (a) => confirmarClassificacao(a),
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
name: "implementar_historia",
|
|
186
|
+
description: "[Interno] Implementação Frontend First.",
|
|
187
|
+
inputSchema: implementarHistoriaSchema,
|
|
188
|
+
handler: (a) => implementarHistoria(a),
|
|
189
|
+
},
|
|
190
|
+
// ──── FLUXOS ALTERNATIVOS ────
|
|
191
|
+
{
|
|
192
|
+
name: "nova_feature",
|
|
193
|
+
description: "[Interno] Fluxo de nova feature.",
|
|
194
|
+
inputSchema: novaFeatureSchema,
|
|
195
|
+
handler: (a) => novaFeature(a),
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
name: "corrigir_bug",
|
|
199
|
+
description: "[Interno] Fluxo de correção de bug.",
|
|
200
|
+
inputSchema: corrigirBugSchema,
|
|
201
|
+
handler: (a) => corrigirBug(a),
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
name: "refatorar",
|
|
205
|
+
description: "[Interno] Fluxo de refatoração.",
|
|
206
|
+
inputSchema: refatorarSchema,
|
|
207
|
+
handler: (a) => refatorar(a),
|
|
208
|
+
},
|
|
209
|
+
// ──── ANÁLISE LEGACY ────
|
|
210
|
+
{
|
|
211
|
+
name: "analisar_seguranca",
|
|
212
|
+
description: "[Interno] Use 'analisar' com tipo='seguranca'.",
|
|
213
|
+
inputSchema: analisarSegurancaSchema,
|
|
214
|
+
handler: (a) => analisarSeguranca(a),
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
name: "analisar_qualidade",
|
|
218
|
+
description: "[Interno] Use 'analisar' com tipo='qualidade'.",
|
|
219
|
+
inputSchema: analisarQualidadeSchema,
|
|
220
|
+
handler: (a) => analisarQualidade(a),
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
name: "analisar_performance",
|
|
224
|
+
description: "[Interno] Use 'analisar' com tipo='performance'.",
|
|
225
|
+
inputSchema: analisarPerformanceSchema,
|
|
226
|
+
handler: (a) => analisarPerformance(a),
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
name: "gerar_relatorio",
|
|
230
|
+
description: "[Interno] Use 'analisar' com tipo='completo'.",
|
|
231
|
+
inputSchema: gerarRelatorioSchema,
|
|
232
|
+
handler: (a) => gerarRelatorio(a),
|
|
233
|
+
},
|
|
234
|
+
// ──── MEMÓRIA ────
|
|
235
|
+
{
|
|
236
|
+
name: "atualizar_codebase",
|
|
237
|
+
description: "[Interno] Atualiza informações do codebase.",
|
|
238
|
+
inputSchema: atualizarCodebaseSchema,
|
|
239
|
+
handler: (a) => atualizarCodebase(a),
|
|
240
|
+
},
|
|
241
|
+
// ──── QUALIDADE ────
|
|
242
|
+
{
|
|
243
|
+
name: "avaliar_entregavel",
|
|
244
|
+
description: "[Interno] Use 'validar' com tipo='entregavel'.",
|
|
245
|
+
inputSchema: avaliarEntregavelSchema,
|
|
246
|
+
handler: (a) => avaliarEntregavel(a),
|
|
247
|
+
},
|
|
248
|
+
// ──── INJEÇÃO DE CONTEÚDO ────
|
|
249
|
+
{
|
|
250
|
+
name: "injetar_conteudo",
|
|
251
|
+
description: "Injeta conteúdo base (especialistas, templates, guias) no projeto. Use force:true para sobrescrever.",
|
|
252
|
+
inputSchema: injetarConteudoSchema,
|
|
253
|
+
handler: (a) => injetar_conteudo(a),
|
|
254
|
+
},
|
|
255
|
+
// ──── DISCOVERY ────
|
|
256
|
+
{
|
|
257
|
+
name: "discovery",
|
|
258
|
+
description: "[Interno] Use 'avancar' para fluxo de onboarding.",
|
|
259
|
+
inputSchema: discoverySchema,
|
|
260
|
+
handler: (a) => discovery(a),
|
|
261
|
+
},
|
|
262
|
+
// ──── ONBOARDING OTIMIZADO ────
|
|
263
|
+
{
|
|
264
|
+
name: "onboarding_orchestrator",
|
|
265
|
+
description: "[Interno] Use 'avancar' para fluxo de onboarding.",
|
|
266
|
+
inputSchema: onboardingOrchestratorSchema,
|
|
267
|
+
handler: (a) => onboardingOrchestrator(a),
|
|
268
|
+
},
|
|
269
|
+
{
|
|
270
|
+
name: "brainstorm",
|
|
271
|
+
description: "[Interno] Use 'avancar' para brainstorm.",
|
|
272
|
+
inputSchema: brainstormSchema,
|
|
273
|
+
handler: (a) => brainstorm(a),
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
name: "prd_writer",
|
|
277
|
+
description: "[Interno] Use 'avancar' para geração de PRD.",
|
|
278
|
+
inputSchema: prdWriterSchema,
|
|
279
|
+
handler: (a) => prdWriter(a),
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
name: "next_steps_dashboard",
|
|
283
|
+
description: "[Interno] Use 'maestro' para dashboard.",
|
|
284
|
+
inputSchema: nextStepsDashboardSchema,
|
|
285
|
+
handler: (a) => nextStepsDashboard(a),
|
|
286
|
+
},
|
|
287
|
+
// ──── KNOWLEDGE BASE ────
|
|
288
|
+
{
|
|
289
|
+
name: "record_adr",
|
|
290
|
+
description: "Registra Architecture Decision Record.",
|
|
291
|
+
inputSchema: recordADRSchema,
|
|
292
|
+
handler: (a) => recordADR(a),
|
|
293
|
+
},
|
|
294
|
+
{
|
|
295
|
+
name: "record_pattern",
|
|
296
|
+
description: "Registra padrão identificado.",
|
|
297
|
+
inputSchema: recordPatternSchema,
|
|
298
|
+
handler: (a) => recordPattern(a),
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
name: "get_context",
|
|
302
|
+
description: "[Interno] Use 'contexto' como alternativa consolidada.",
|
|
303
|
+
inputSchema: getContextSchema,
|
|
304
|
+
handler: (a) => getContext(a),
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
name: "search_knowledge",
|
|
308
|
+
description: "Busca na base de conhecimento.",
|
|
309
|
+
inputSchema: searchKnowledgeSchema,
|
|
310
|
+
handler: (a) => searchKnowledge(a),
|
|
311
|
+
},
|
|
312
|
+
// ──── CHECKPOINT LEGACY ────
|
|
313
|
+
{
|
|
314
|
+
name: "create_checkpoint",
|
|
315
|
+
description: "[Interno] Use 'checkpoint' com acao='criar'.",
|
|
316
|
+
inputSchema: createCheckpointSchema,
|
|
317
|
+
handler: (a) => createCheckpoint(a),
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
name: "rollback_total",
|
|
321
|
+
description: "[Interno] Use 'checkpoint' com acao='rollback'.",
|
|
322
|
+
inputSchema: rollbackTotalSchema,
|
|
323
|
+
handler: (a) => rollbackTotal(a),
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
name: "rollback_partial",
|
|
327
|
+
description: "[Interno] Use 'checkpoint' com acao='rollback_parcial'.",
|
|
328
|
+
inputSchema: rollbackPartialSchema,
|
|
329
|
+
handler: (a) => rollbackPartial(a),
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
name: "list_checkpoints",
|
|
333
|
+
description: "[Interno] Use 'checkpoint' com acao='listar'.",
|
|
334
|
+
inputSchema: listCheckpointsSchema,
|
|
335
|
+
handler: (a) => listCheckpoints(a),
|
|
336
|
+
},
|
|
337
|
+
// ──── VALIDATION LEGACY ────
|
|
338
|
+
{
|
|
339
|
+
name: "validate_dependencies",
|
|
340
|
+
description: "[Interno] Use 'analisar' com tipo='dependencias'.",
|
|
341
|
+
inputSchema: validateDependenciesSchema,
|
|
342
|
+
handler: (a) => validateDependencies(a),
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
name: "validate_security",
|
|
346
|
+
description: "[Interno] Use 'analisar' com tipo='seguranca'.",
|
|
347
|
+
inputSchema: validateSecuritySchema,
|
|
348
|
+
handler: (a) => validateSecurity(a),
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
name: "check_compliance",
|
|
352
|
+
description: "[Interno] Use 'validar' com tipo='compliance'.",
|
|
353
|
+
inputSchema: checkComplianceSchema,
|
|
354
|
+
handler: (a) => checkCompliance(a),
|
|
355
|
+
},
|
|
356
|
+
// ──── MISC LEGACY ────
|
|
357
|
+
{
|
|
358
|
+
name: "evaluate_risk",
|
|
359
|
+
description: "Avalia risco de uma operação.",
|
|
360
|
+
inputSchema: evaluateRiskSchema,
|
|
361
|
+
handler: (a) => evaluateRisk(a),
|
|
362
|
+
},
|
|
363
|
+
{
|
|
364
|
+
name: "auto_fix",
|
|
365
|
+
description: "Tenta corrigir automaticamente erros de código.",
|
|
366
|
+
inputSchema: autoFixSchema,
|
|
367
|
+
handler: (a) => autoFix(a),
|
|
368
|
+
},
|
|
369
|
+
{
|
|
370
|
+
name: "discover_codebase",
|
|
371
|
+
description: "Analisa codebase e detecta arquitetura/stack.",
|
|
372
|
+
inputSchema: discoverCodebaseSchema,
|
|
373
|
+
handler: (a) => discoverCodebase(a),
|
|
374
|
+
},
|
|
375
|
+
];
|
|
376
|
+
// Mapa completo para lookup rápido (public + legacy)
|
|
377
|
+
const allToolsMap = new Map();
|
|
378
|
+
for (const tool of publicTools)
|
|
379
|
+
allToolsMap.set(tool.name, tool);
|
|
380
|
+
for (const tool of legacyTools)
|
|
381
|
+
allToolsMap.set(tool.name, tool);
|
|
382
|
+
// === API PÚBLICA ===
|
|
383
|
+
/**
|
|
384
|
+
* Executa uma tool pelo nome com os argumentos fornecidos.
|
|
385
|
+
* Ponto ÚNICO de execução - usado por stdio.ts e index.ts.
|
|
386
|
+
* Aceita TODAS as tools (public + legacy) para backward compatibility.
|
|
387
|
+
*/
|
|
388
|
+
export async function routeToolCall(name, rawArgs) {
|
|
389
|
+
const tool = allToolsMap.get(name);
|
|
390
|
+
if (!tool) {
|
|
391
|
+
return {
|
|
392
|
+
content: [{ type: "text", text: `❌ Tool não encontrada: ${name}\n\nTools disponíveis: ${publicTools.map(t => t.name).join(", ")}` }],
|
|
393
|
+
isError: true,
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
try {
|
|
397
|
+
return await tool.handler(rawArgs);
|
|
398
|
+
}
|
|
399
|
+
catch (error) {
|
|
400
|
+
return {
|
|
401
|
+
content: [{ type: "text", text: `❌ Erro ao executar ${name}: ${String(error)}` }],
|
|
402
|
+
isError: true,
|
|
403
|
+
};
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Retorna lista de tools PÚBLICAS no formato MCP.
|
|
408
|
+
* v5: Apenas 8 tools consolidadas (reduz superfície cognitiva).
|
|
409
|
+
* Ponto ÚNICO de listagem - usado por stdio.ts e index.ts.
|
|
410
|
+
*/
|
|
411
|
+
export function getRegisteredTools() {
|
|
412
|
+
return publicTools.map(t => ({
|
|
413
|
+
name: t.name,
|
|
414
|
+
description: t.description,
|
|
415
|
+
inputSchema: t.inputSchema,
|
|
416
|
+
}));
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Retorna lista de TODAS as tools (public + legacy) no formato MCP.
|
|
420
|
+
* Útil para diagnóstico e testes.
|
|
421
|
+
*/
|
|
422
|
+
export function getAllTools() {
|
|
423
|
+
return [...publicTools, ...legacyTools].map(t => ({
|
|
424
|
+
name: t.name,
|
|
425
|
+
description: t.description,
|
|
426
|
+
inputSchema: t.inputSchema,
|
|
427
|
+
}));
|
|
428
|
+
}
|
|
429
|
+
/**
|
|
430
|
+
* Retorna quantidade de tools públicas.
|
|
431
|
+
*/
|
|
432
|
+
export function getToolCount() {
|
|
433
|
+
return publicTools.length;
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* Retorna quantidade total de tools (public + legacy).
|
|
437
|
+
*/
|
|
438
|
+
export function getTotalToolCount() {
|
|
439
|
+
return allToolsMap.size;
|
|
440
|
+
}
|
|
441
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|