@maestro-ai/mcp-server 5.0.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/constants.d.ts +16 -0
  2. package/dist/constants.d.ts.map +1 -0
  3. package/dist/constants.js +16 -0
  4. package/dist/constants.js.map +1 -0
  5. package/dist/handlers/shared-prompt-handler.d.ts +41 -0
  6. package/dist/handlers/shared-prompt-handler.d.ts.map +1 -0
  7. package/dist/handlers/shared-prompt-handler.js +289 -0
  8. package/dist/handlers/shared-prompt-handler.js.map +1 -0
  9. package/dist/handlers/shared-resource-handler.d.ts +54 -0
  10. package/dist/handlers/shared-resource-handler.d.ts.map +1 -0
  11. package/dist/handlers/shared-resource-handler.js +131 -0
  12. package/dist/handlers/shared-resource-handler.js.map +1 -0
  13. package/dist/index.js +34 -146
  14. package/dist/index.js.map +1 -1
  15. package/dist/middleware/index.d.ts +6 -0
  16. package/dist/middleware/index.d.ts.map +1 -1
  17. package/dist/middleware/index.js +8 -0
  18. package/dist/middleware/index.js.map +1 -1
  19. package/dist/resources/index.d.ts +5 -3
  20. package/dist/resources/index.d.ts.map +1 -1
  21. package/dist/resources/index.js +1 -165
  22. package/dist/resources/index.js.map +1 -1
  23. package/dist/router.d.ts +1 -5
  24. package/dist/router.d.ts.map +1 -1
  25. package/dist/router.js +116 -28
  26. package/dist/router.js.map +1 -1
  27. package/dist/server.d.ts +4 -3
  28. package/dist/server.d.ts.map +1 -1
  29. package/dist/server.js +1 -26
  30. package/dist/server.js.map +1 -1
  31. package/dist/services/annotations-fallback.service.d.ts +64 -0
  32. package/dist/services/annotations-fallback.service.d.ts.map +1 -0
  33. package/dist/services/annotations-fallback.service.js +64 -0
  34. package/dist/services/annotations-fallback.service.js.map +1 -0
  35. package/dist/services/client-capabilities.service.d.ts +46 -0
  36. package/dist/services/client-capabilities.service.d.ts.map +1 -0
  37. package/dist/services/client-capabilities.service.js +96 -0
  38. package/dist/services/client-capabilities.service.js.map +1 -0
  39. package/dist/services/elicitation-fallback.service.d.ts +37 -0
  40. package/dist/services/elicitation-fallback.service.d.ts.map +1 -0
  41. package/dist/services/elicitation-fallback.service.js +90 -0
  42. package/dist/services/elicitation-fallback.service.js.map +1 -0
  43. package/dist/services/sampling-fallback.service.d.ts +33 -0
  44. package/dist/services/sampling-fallback.service.d.ts.map +1 -0
  45. package/dist/services/sampling-fallback.service.js +71 -0
  46. package/dist/services/sampling-fallback.service.js.map +1 -0
  47. package/dist/services/skill-cache.service.d.ts +28 -0
  48. package/dist/services/skill-cache.service.d.ts.map +1 -0
  49. package/dist/services/skill-cache.service.js +49 -0
  50. package/dist/services/skill-cache.service.js.map +1 -0
  51. package/dist/services/skill-loader.service.d.ts.map +1 -1
  52. package/dist/services/skill-loader.service.js +16 -1
  53. package/dist/services/skill-loader.service.js.map +1 -1
  54. package/dist/services/structured-content.service.d.ts +38 -0
  55. package/dist/services/structured-content.service.d.ts.map +1 -0
  56. package/dist/services/structured-content.service.js +44 -0
  57. package/dist/services/structured-content.service.js.map +1 -0
  58. package/dist/services/system-prompt.service.d.ts +17 -0
  59. package/dist/services/system-prompt.service.d.ts.map +1 -0
  60. package/dist/services/system-prompt.service.js +72 -0
  61. package/dist/services/system-prompt.service.js.map +1 -0
  62. package/dist/stdio.js +26 -381
  63. package/dist/stdio.js.map +1 -1
  64. package/dist/tests/skill-loader.test.js +2 -0
  65. package/dist/tests/skill-loader.test.js.map +1 -1
  66. package/dist/tests/v52-integration.test.d.ts +14 -0
  67. package/dist/tests/v52-integration.test.d.ts.map +1 -0
  68. package/dist/tests/v52-integration.test.js +223 -0
  69. package/dist/tests/v52-integration.test.js.map +1 -0
  70. package/dist/tools/consolidated/analisar.d.ts.map +1 -1
  71. package/dist/tools/consolidated/analisar.js +21 -5
  72. package/dist/tools/consolidated/analisar.js.map +1 -1
  73. package/dist/tools/consolidated/avancar.d.ts.map +1 -1
  74. package/dist/tools/consolidated/avancar.js +13 -18
  75. package/dist/tools/consolidated/avancar.js.map +1 -1
  76. package/dist/tools/consolidated/checkpoint-tool.d.ts.map +1 -1
  77. package/dist/tools/consolidated/checkpoint-tool.js +4 -12
  78. package/dist/tools/consolidated/checkpoint-tool.js.map +1 -1
  79. package/dist/tools/consolidated/executar.d.ts +119 -0
  80. package/dist/tools/consolidated/executar.d.ts.map +1 -0
  81. package/dist/tools/consolidated/executar.js +155 -0
  82. package/dist/tools/consolidated/executar.js.map +1 -0
  83. package/dist/tools/consolidated/validar.d.ts.map +1 -1
  84. package/dist/tools/consolidated/validar.js +2 -4
  85. package/dist/tools/consolidated/validar.js.map +1 -1
  86. package/dist/tools/contexto.d.ts.map +1 -1
  87. package/dist/tools/contexto.js +22 -33
  88. package/dist/tools/contexto.js.map +1 -1
  89. package/dist/tools/discovery.d.ts.map +1 -1
  90. package/dist/tools/discovery.js +26 -5
  91. package/dist/tools/discovery.js.map +1 -1
  92. package/dist/tools/index.d.ts +4 -3
  93. package/dist/tools/index.d.ts.map +1 -1
  94. package/dist/tools/index.js +1 -369
  95. package/dist/tools/index.js.map +1 -1
  96. package/dist/tools/maestro-tool.d.ts.map +1 -1
  97. package/dist/tools/maestro-tool.js +95 -77
  98. package/dist/tools/maestro-tool.js.map +1 -1
  99. package/dist/tools/salvar.d.ts.map +1 -1
  100. package/dist/tools/salvar.js +16 -38
  101. package/dist/tools/salvar.js.map +1 -1
  102. package/dist/tools/status.d.ts.map +1 -1
  103. package/dist/tools/status.js +27 -32
  104. package/dist/tools/status.js.map +1 -1
  105. package/dist/types/index.d.ts +11 -5
  106. package/dist/types/index.d.ts.map +1 -1
  107. package/dist/types/index.js.map +1 -1
  108. package/dist/utils/resource-links.d.ts +44 -0
  109. package/dist/utils/resource-links.d.ts.map +1 -0
  110. package/dist/utils/resource-links.js +84 -0
  111. package/dist/utils/resource-links.js.map +1 -0
  112. package/dist/utils/response-formatter.d.ts +113 -0
  113. package/dist/utils/response-formatter.d.ts.map +1 -0
  114. package/dist/utils/response-formatter.js +185 -0
  115. package/dist/utils/response-formatter.js.map +1 -0
  116. package/package.json +1 -1
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Fallback de Elicitation para clients que não suportam o primitivo nativo.
3
+ *
4
+ * Quando o client MCP não suporta `elicitation`, gera blocos de texto
5
+ * estruturado que pedem input do usuário de forma clara para a IA.
6
+ *
7
+ * @since v5.1.0 — Task 3.1 do Roadmap de Melhorias MCP
8
+ */
9
+ export interface ElicitationField {
10
+ name: string;
11
+ label: string;
12
+ type: "text" | "select" | "boolean" | "number";
13
+ options?: string[];
14
+ default?: string;
15
+ required?: boolean;
16
+ description?: string;
17
+ }
18
+ export interface ElicitationRequest {
19
+ title: string;
20
+ description: string;
21
+ fields: ElicitationField[];
22
+ }
23
+ /**
24
+ * Gera bloco de elicitation.
25
+ * Se o client suporta elicitation nativa, retorna formato MCP.
26
+ * Senão, retorna Markdown estruturado para a IA interpretar.
27
+ */
28
+ export declare function buildElicitation(request: ElicitationRequest): {
29
+ useNative: boolean;
30
+ nativePayload?: Record<string, unknown>;
31
+ markdownFallback: string;
32
+ };
33
+ /**
34
+ * Gera bloco de discovery (perguntas para o usuário) como fallback de elicitation.
35
+ */
36
+ export declare function buildDiscoveryFallback(questions: string[]): string;
37
+ //# sourceMappingURL=elicitation-fallback.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elicitation-fallback.service.d.ts","sourceRoot":"","sources":["../../src/services/elicitation-fallback.service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,gBAAgB;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC/C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,GAAG;IAC3D,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC;CAC5B,CAiEA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,CAQlE"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Fallback de Elicitation para clients que não suportam o primitivo nativo.
3
+ *
4
+ * Quando o client MCP não suporta `elicitation`, gera blocos de texto
5
+ * estruturado que pedem input do usuário de forma clara para a IA.
6
+ *
7
+ * @since v5.1.0 — Task 3.1 do Roadmap de Melhorias MCP
8
+ */
9
+ import { clientSupports } from "./client-capabilities.service.js";
10
+ /**
11
+ * Gera bloco de elicitation.
12
+ * Se o client suporta elicitation nativa, retorna formato MCP.
13
+ * Senão, retorna Markdown estruturado para a IA interpretar.
14
+ */
15
+ export function buildElicitation(request) {
16
+ const useNative = clientSupports("hasElicitation");
17
+ if (useNative) {
18
+ return {
19
+ useNative: true,
20
+ nativePayload: {
21
+ message: request.description,
22
+ requestedSchema: {
23
+ type: "object",
24
+ properties: Object.fromEntries(request.fields.map(f => [f.name, {
25
+ type: f.type === "select" ? "string" : f.type === "boolean" ? "boolean" : f.type === "number" ? "number" : "string",
26
+ description: f.label,
27
+ ...(f.options ? { enum: f.options } : {}),
28
+ ...(f.default ? { default: f.default } : {}),
29
+ }])),
30
+ required: request.fields.filter(f => f.required).map(f => f.name),
31
+ },
32
+ },
33
+ markdownFallback: "",
34
+ };
35
+ }
36
+ // Fallback: Markdown estruturado
37
+ let md = `## ❓ ${request.title}\n\n${request.description}\n\n`;
38
+ md += `**Responda os campos abaixo:**\n\n`;
39
+ for (const field of request.fields) {
40
+ const required = field.required ? " *(obrigatório)*" : " *(opcional)*";
41
+ switch (field.type) {
42
+ case "select":
43
+ md += `### ${field.label}${required}\n`;
44
+ md += `Opções: ${field.options?.map(o => `\`${o}\``).join(" | ") || "N/A"}\n`;
45
+ if (field.default)
46
+ md += `Padrão: \`${field.default}\`\n`;
47
+ md += `\n`;
48
+ break;
49
+ case "boolean":
50
+ md += `### ${field.label}${required}\n`;
51
+ md += `Responda: \`sim\` ou \`não\`\n`;
52
+ if (field.default)
53
+ md += `Padrão: \`${field.default}\`\n`;
54
+ md += `\n`;
55
+ break;
56
+ case "number":
57
+ md += `### ${field.label}${required}\n`;
58
+ md += `Informe um número.\n`;
59
+ if (field.default)
60
+ md += `Padrão: \`${field.default}\`\n`;
61
+ md += `\n`;
62
+ break;
63
+ default:
64
+ md += `### ${field.label}${required}\n`;
65
+ if (field.description)
66
+ md += `${field.description}\n`;
67
+ if (field.default)
68
+ md += `Padrão: \`${field.default}\`\n`;
69
+ md += `\n`;
70
+ }
71
+ }
72
+ md += `> 👤 **Aguardando resposta do usuário.** A IA deve apresentar estas perguntas ao usuário e coletar as respostas antes de prosseguir.\n`;
73
+ return {
74
+ useNative: false,
75
+ markdownFallback: md,
76
+ };
77
+ }
78
+ /**
79
+ * Gera bloco de discovery (perguntas para o usuário) como fallback de elicitation.
80
+ */
81
+ export function buildDiscoveryFallback(questions) {
82
+ let md = `## 🔍 Discovery — Perguntas para o Usuário\n\n`;
83
+ md += `Antes de prosseguir, responda:\n\n`;
84
+ questions.forEach((q, i) => {
85
+ md += `${i + 1}. ${q}\n`;
86
+ });
87
+ md += `\n> 👤 **Aguardando respostas.** Passe as respostas no campo \`respostas\` da próxima chamada.\n`;
88
+ return md;
89
+ }
90
+ //# sourceMappingURL=elicitation-fallback.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elicitation-fallback.service.js","sourceRoot":"","sources":["../../src/services/elicitation-fallback.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Fallback de Sampling para clients que não suportam o primitivo nativo.
3
+ *
4
+ * Quando o client MCP não suporta `sampling`, gera instruções estruturadas
5
+ * para a IA realizar a análise ela mesma (self-analysis).
6
+ *
7
+ * @since v5.1.0 — Task 3.2 do Roadmap de Melhorias MCP
8
+ */
9
+ export interface SamplingRequest {
10
+ /** Descrição do que deve ser analisado */
11
+ task: string;
12
+ /** Contexto para a análise */
13
+ context: string;
14
+ /** Formato esperado da resposta */
15
+ expectedFormat?: string;
16
+ /** Model hint (para sampling nativo) */
17
+ modelHint?: string;
18
+ }
19
+ /**
20
+ * Gera bloco de sampling (análise LLM-to-LLM).
21
+ * Se o client suporta sampling nativa, retorna formato MCP.
22
+ * Senão, retorna instruções para self-analysis.
23
+ */
24
+ export declare function buildSamplingRequest(request: SamplingRequest): {
25
+ useNative: boolean;
26
+ nativePayload?: Record<string, unknown>;
27
+ selfAnalysisFallback: string;
28
+ };
29
+ /**
30
+ * Gera fallback de análise de código quando sampling não está disponível.
31
+ */
32
+ export declare function buildCodeAnalysisFallback(code: string, analysisType: string): string;
33
+ //# sourceMappingURL=sampling-fallback.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampling-fallback.service.d.ts","sourceRoot":"","sources":["../../src/services/sampling-fallback.service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,WAAW,eAAe;IAC5B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,eAAe,GAAG;IAC5D,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,oBAAoB,EAAE,MAAM,CAAC;CAChC,CA0CA;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAcpF"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Fallback de Sampling para clients que não suportam o primitivo nativo.
3
+ *
4
+ * Quando o client MCP não suporta `sampling`, gera instruções estruturadas
5
+ * para a IA realizar a análise ela mesma (self-analysis).
6
+ *
7
+ * @since v5.1.0 — Task 3.2 do Roadmap de Melhorias MCP
8
+ */
9
+ import { clientSupports } from "./client-capabilities.service.js";
10
+ /**
11
+ * Gera bloco de sampling (análise LLM-to-LLM).
12
+ * Se o client suporta sampling nativa, retorna formato MCP.
13
+ * Senão, retorna instruções para self-analysis.
14
+ */
15
+ export function buildSamplingRequest(request) {
16
+ const useNative = clientSupports("hasSampling");
17
+ if (useNative) {
18
+ return {
19
+ useNative: true,
20
+ nativePayload: {
21
+ messages: [
22
+ {
23
+ role: "user",
24
+ content: {
25
+ type: "text",
26
+ text: `${request.task}\n\nContexto:\n${request.context}`,
27
+ },
28
+ },
29
+ ],
30
+ modelPreferences: request.modelHint ? {
31
+ hints: [{ name: request.modelHint }],
32
+ } : undefined,
33
+ maxTokens: 4096,
34
+ },
35
+ selfAnalysisFallback: "",
36
+ };
37
+ }
38
+ // Fallback: Instruções para self-analysis
39
+ let md = `## 🔍 Análise Requerida\n\n`;
40
+ md += `**Tarefa:** ${request.task}\n\n`;
41
+ md += `### Contexto\n\n${request.context}\n\n`;
42
+ if (request.expectedFormat) {
43
+ md += `### Formato Esperado\n\n${request.expectedFormat}\n\n`;
44
+ }
45
+ md += `> 🤖 **Instruções para a IA:** Realize esta análise diretamente. `;
46
+ md += `Avalie o contexto acima e produza a resposta no formato solicitado. `;
47
+ md += `Não é necessário chamar ferramentas externas para esta análise.\n`;
48
+ return {
49
+ useNative: false,
50
+ selfAnalysisFallback: md,
51
+ };
52
+ }
53
+ /**
54
+ * Gera fallback de análise de código quando sampling não está disponível.
55
+ */
56
+ export function buildCodeAnalysisFallback(code, analysisType) {
57
+ return `## 🔍 Análise de Código — ${analysisType}
58
+
59
+ \`\`\`
60
+ ${code.slice(0, 2000)}${code.length > 2000 ? "\n// ... truncado" : ""}
61
+ \`\`\`
62
+
63
+ > 🤖 **Instruções para a IA:** Analise o código acima considerando:
64
+ > - **Segurança:** vulnerabilidades OWASP Top 10
65
+ > - **Qualidade:** code smells, complexidade ciclomática, DRY/SOLID
66
+ > - **Performance:** anti-patterns, N+1, memory leaks
67
+ >
68
+ > Produza um relatório estruturado com severidade (crítico/alto/médio/baixo) para cada achado.
69
+ `;
70
+ }
71
+ //# sourceMappingURL=sampling-fallback.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sampling-fallback.service.js","sourceRoot":"","sources":["../../src/services/sampling-fallback.service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAalE;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAwB;IAKzD,MAAM,SAAS,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAEhD,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO;YACH,SAAS,EAAE,IAAI;YACf,aAAa,EAAE;gBACX,QAAQ,EAAE;oBACN;wBACI,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE;4BACL,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,kBAAkB,OAAO,CAAC,OAAO,EAAE;yBAC3D;qBACJ;iBACJ;gBACD,gBAAgB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;oBAClC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;iBACvC,CAAC,CAAC,CAAC,SAAS;gBACb,SAAS,EAAE,IAAI;aAClB;YACD,oBAAoB,EAAE,EAAE;SAC3B,CAAC;IACN,CAAC;IAED,0CAA0C;IAC1C,IAAI,EAAE,GAAG,6BAA6B,CAAC;IACvC,EAAE,IAAI,eAAe,OAAO,CAAC,IAAI,MAAM,CAAC;IACxC,EAAE,IAAI,mBAAmB,OAAO,CAAC,OAAO,MAAM,CAAC;IAE/C,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QACzB,EAAE,IAAI,2BAA2B,OAAO,CAAC,cAAc,MAAM,CAAC;IAClE,CAAC;IAED,EAAE,IAAI,mEAAmE,CAAC;IAC1E,EAAE,IAAI,sEAAsE,CAAC;IAC7E,EAAE,IAAI,mEAAmE,CAAC;IAE1E,OAAO;QACH,SAAS,EAAE,KAAK;QAChB,oBAAoB,EAAE,EAAE;KAC3B,CAAC;AACN,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAAY,EAAE,YAAoB;IACxE,OAAO,6BAA6B,YAAY;;;EAGlD,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,EAAE;;;;;;;;;CASpE,CAAC;AACF,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Cache de skills em memória para evitar re-leitura do filesystem.
3
+ *
4
+ * TTL de 1 hora. Invalidação manual disponível.
5
+ *
6
+ * @since v5.1.0 — Task 2.4 do Roadmap de Melhorias MCP
7
+ */
8
+ /**
9
+ * Busca item no cache. Retorna null se não encontrado ou expirado.
10
+ */
11
+ export declare function getCached(key: string, ttl?: number): string | null;
12
+ /**
13
+ * Armazena item no cache.
14
+ */
15
+ export declare function setCache(key: string, content: string): void;
16
+ /**
17
+ * Invalida entradas do cache que contenham o pattern.
18
+ * Sem pattern = limpa tudo.
19
+ */
20
+ export declare function invalidateCache(pattern?: string): void;
21
+ /**
22
+ * Retorna estatísticas do cache.
23
+ */
24
+ export declare function getCacheStats(): {
25
+ size: number;
26
+ keys: string[];
27
+ };
28
+ //# sourceMappingURL=skill-cache.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-cache.service.d.ts","sourceRoot":"","sources":["../../src/services/skill-cache.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAoB,GAAG,MAAM,GAAG,IAAI,CAQ/E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAQtD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,CAEhE"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Cache de skills em memória para evitar re-leitura do filesystem.
3
+ *
4
+ * TTL de 1 hora. Invalidação manual disponível.
5
+ *
6
+ * @since v5.1.0 — Task 2.4 do Roadmap de Melhorias MCP
7
+ */
8
+ const cache = new Map();
9
+ const DEFAULT_TTL = 60 * 60 * 1000; // 1 hora
10
+ /**
11
+ * Busca item no cache. Retorna null se não encontrado ou expirado.
12
+ */
13
+ export function getCached(key, ttl = DEFAULT_TTL) {
14
+ const entry = cache.get(key);
15
+ if (!entry)
16
+ return null;
17
+ if (Date.now() - entry.loadedAt > ttl) {
18
+ cache.delete(key);
19
+ return null;
20
+ }
21
+ return entry.content;
22
+ }
23
+ /**
24
+ * Armazena item no cache.
25
+ */
26
+ export function setCache(key, content) {
27
+ cache.set(key, { content, loadedAt: Date.now() });
28
+ }
29
+ /**
30
+ * Invalida entradas do cache que contenham o pattern.
31
+ * Sem pattern = limpa tudo.
32
+ */
33
+ export function invalidateCache(pattern) {
34
+ if (!pattern) {
35
+ cache.clear();
36
+ return;
37
+ }
38
+ for (const key of cache.keys()) {
39
+ if (key.includes(pattern))
40
+ cache.delete(key);
41
+ }
42
+ }
43
+ /**
44
+ * Retorna estatísticas do cache.
45
+ */
46
+ export function getCacheStats() {
47
+ return { size: cache.size, keys: [...cache.keys()] };
48
+ }
49
+ //# sourceMappingURL=skill-cache.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-cache.service.js","sourceRoot":"","sources":["../../src/services/skill-cache.service.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,MAAM,KAAK,GAAG,IAAI,GAAG,EAAsB,CAAC;AAC5C,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAE7C;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,GAAW,EAAE,MAAc,WAAW;IAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,QAAQ,GAAG,GAAG,EAAE,CAAC;QACpC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC,OAAO,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAW,EAAE,OAAe;IACjD,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgB;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,OAAO;IACX,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjD,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IACzB,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;AACzD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-loader.service.d.ts","sourceRoot":"","sources":["../../src/services/skill-loader.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;CACzC;AAsDD,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,eAAe,CAAyB;gBAEpC,eAAe,EAAE,sBAAsB;IAInD;;;OAGG;IACG,YAAY,CACd,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,SAAS,GAAG,UAAU,GAAG,SAAsB,GACtD,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA6DjC;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAM7D;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAM5D;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM;IAgD7C;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAwD3B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4C7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAYhC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,sBAAsB,GAAG,kBAAkB,CAE7F"}
1
+ {"version":3,"file":"skill-loader.service.d.ts","sourceRoot":"","sources":["../../src/services/skill-loader.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAIvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;CACzC;AAsDD,qBAAa,kBAAkB;IAC3B,OAAO,CAAC,eAAe,CAAyB;gBAEpC,eAAe,EAAE,sBAAsB;IAInD;;;OAGG;IACG,YAAY,CACd,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,SAAS,GAAG,UAAU,GAAG,SAAsB,GACtD,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IA6EjC;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAM7D;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAM5D;;OAEG;IACH,gBAAgB,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM;IAgD7C;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IAwD3B;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4C7B;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAYhC;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,sBAAsB,GAAG,kBAAkB,CAE7F"}
@@ -9,6 +9,7 @@
9
9
  */
10
10
  import { getSkillParaFase } from "../utils/prompt-mapper.js";
11
11
  import { getSpecialistPersona } from "./specialist.service.js";
12
+ import { getCached, setCache } from "./skill-cache.service.js";
12
13
  /**
13
14
  * Budgets de tokens por modo
14
15
  */
@@ -59,6 +60,17 @@ export class SkillLoaderService {
59
60
  const skillName = getSkillParaFase(faseNome);
60
61
  if (!skillName)
61
62
  return null;
63
+ // v5.2: Verificar cache antes de ler filesystem
64
+ const cacheKey = `skill:${skillName}:${mode}`;
65
+ const cached = getCached(cacheKey);
66
+ if (cached) {
67
+ try {
68
+ return JSON.parse(cached);
69
+ }
70
+ catch {
71
+ // Cache corrompido, continuar com leitura normal
72
+ }
73
+ }
62
74
  const budget = TOKEN_BUDGETS[mode];
63
75
  const specialist = getSpecialistPersona(faseNome);
64
76
  // Carregar conteúdos em paralelo
@@ -93,7 +105,7 @@ export class SkillLoaderService {
93
105
  this.estimateTokens(templateContent) +
94
106
  this.estimateTokens(checklistContent);
95
107
  const resultMode = mode === "economy" ? "summary" : mode === "balanced" ? "summary" : "full";
96
- return {
108
+ const result = {
97
109
  skillName,
98
110
  specialist,
99
111
  skillContent,
@@ -103,6 +115,9 @@ export class SkillLoaderService {
103
115
  tokenEstimate: totalTokens,
104
116
  mode: resultMode,
105
117
  };
118
+ // v5.2: Armazenar no cache para evitar re-leitura do filesystem
119
+ setCache(cacheKey, JSON.stringify(result));
120
+ return result;
106
121
  }
107
122
  /**
108
123
  * Carrega apenas o checklist de gate de uma fase.
@@ -1 +1 @@
1
- {"version":3,"file":"skill-loader.service.js","sourceRoot":"","sources":["../../src/services/skill-loader.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-loader.service.js","sourceRoot":"","sources":["../../src/services/skill-loader.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Structured Content com fallback para clients que não suportam o primitivo nativo.
3
+ *
4
+ * MCP structuredContent (protocol ≥ 2025-06-18) permite retornar JSON tipado
5
+ * junto com content textual. Para clients mais antigos, embute o JSON como
6
+ * bloco de código dentro do Markdown.
7
+ *
8
+ * @since v5.1.0 — Task 4.1 do Roadmap de Melhorias MCP
9
+ */
10
+ /**
11
+ * Gera resposta com structured content.
12
+ * Se client suporta, retorna structuredContent separado.
13
+ * Senão, embute JSON formatado dentro do content textual.
14
+ */
15
+ export declare function withStructuredContent<T extends Record<string, unknown>>(textContent: Array<{
16
+ type: "text";
17
+ text: string;
18
+ }>, structuredData: T, jsonLabel?: string): {
19
+ content: Array<{
20
+ type: "text";
21
+ text: string;
22
+ }>;
23
+ structuredContent?: {
24
+ type: "json";
25
+ json: T;
26
+ };
27
+ };
28
+ /**
29
+ * Extrai dados estruturados de um ToolResult (para uso em pipelines).
30
+ * Útil quando um middleware precisa acessar dados tipados do resultado.
31
+ */
32
+ export declare function extractStructuredData<T>(result: {
33
+ structuredContent?: {
34
+ type: string;
35
+ json: T;
36
+ };
37
+ }): T | null;
38
+ //# sourceMappingURL=structured-content.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-content.service.d.ts","sourceRoot":"","sources":["../../src/services/structured-content.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,WAAW,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,EAClD,cAAc,EAAE,CAAC,EACjB,SAAS,CAAC,EAAE,MAAM,GACnB;IACC,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,iBAAiB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAC;CACjD,CAoBA;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,EACnC,MAAM,EAAE;IAAE,iBAAiB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,CAAA;CAAE,GAC1D,CAAC,GAAG,IAAI,CAKV"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Structured Content com fallback para clients que não suportam o primitivo nativo.
3
+ *
4
+ * MCP structuredContent (protocol ≥ 2025-06-18) permite retornar JSON tipado
5
+ * junto com content textual. Para clients mais antigos, embute o JSON como
6
+ * bloco de código dentro do Markdown.
7
+ *
8
+ * @since v5.1.0 — Task 4.1 do Roadmap de Melhorias MCP
9
+ */
10
+ import { clientSupports } from "./client-capabilities.service.js";
11
+ /**
12
+ * Gera resposta com structured content.
13
+ * Se client suporta, retorna structuredContent separado.
14
+ * Senão, embute JSON formatado dentro do content textual.
15
+ */
16
+ export function withStructuredContent(textContent, structuredData, jsonLabel) {
17
+ const useNative = clientSupports("hasStructuredContent");
18
+ if (useNative) {
19
+ return {
20
+ content: textContent,
21
+ structuredContent: { type: "json", json: structuredData },
22
+ };
23
+ }
24
+ // Fallback: embute JSON como bloco de código no final
25
+ const label = jsonLabel || "Dados Estruturados";
26
+ const jsonBlock = {
27
+ type: "text",
28
+ text: `## 📦 ${label}\n\n\`\`\`json\n${JSON.stringify(structuredData, null, 2)}\n\`\`\``,
29
+ };
30
+ return {
31
+ content: [...textContent, jsonBlock],
32
+ };
33
+ }
34
+ /**
35
+ * Extrai dados estruturados de um ToolResult (para uso em pipelines).
36
+ * Útil quando um middleware precisa acessar dados tipados do resultado.
37
+ */
38
+ export function extractStructuredData(result) {
39
+ if (result.structuredContent?.type === "json") {
40
+ return result.structuredContent.json;
41
+ }
42
+ return null;
43
+ }
44
+ //# sourceMappingURL=structured-content.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structured-content.service.js","sourceRoot":"","sources":["../../src/services/structured-content.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAElE;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CACjC,WAAkD,EAClD,cAAiB,EACjB,SAAkB;IAKlB,MAAM,SAAS,GAAG,cAAc,CAAC,sBAAsB,CAAC,CAAC;IAEzD,IAAI,SAAS,EAAE,CAAC;QACZ,OAAO;YACH,OAAO,EAAE,WAAW;YACpB,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE;SAC5D,CAAC;IACN,CAAC;IAED,sDAAsD;IACtD,MAAM,KAAK,GAAG,SAAS,IAAI,oBAAoB,CAAC;IAChD,MAAM,SAAS,GAAmC;QAC9C,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,SAAS,KAAK,mBAAmB,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU;KAC3F,CAAC;IAEF,OAAO;QACH,OAAO,EAAE,CAAC,GAAG,WAAW,EAAE,SAAS,CAAC;KACvC,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CACjC,MAAyD;IAEzD,IAAI,MAAM,CAAC,iBAAiB,EAAE,IAAI,KAAK,MAAM,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * System Prompt Dinâmico para o Maestro MCP.
3
+ *
4
+ * Gera system prompt adaptado ao client, capabilities e contexto do projeto.
5
+ * Substitui o system prompt estático do resources/index.ts.
6
+ *
7
+ * @since v5.1.0 — Task 2.5 do Roadmap de Melhorias MCP
8
+ */
9
+ /**
10
+ * Gera system prompt dinâmico baseado no contexto.
11
+ */
12
+ export declare function buildSystemPrompt(opts?: {
13
+ projectName?: string;
14
+ currentPhase?: string;
15
+ specialistName?: string;
16
+ }): string;
17
+ //# sourceMappingURL=system-prompt.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-prompt.service.d.ts","sourceRoot":"","sources":["../../src/services/system-prompt.service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE;IACrC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,MAAM,CA4DT"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * System Prompt Dinâmico para o Maestro MCP.
3
+ *
4
+ * Gera system prompt adaptado ao client, capabilities e contexto do projeto.
5
+ * Substitui o system prompt estático do resources/index.ts.
6
+ *
7
+ * @since v5.1.0 — Task 2.5 do Roadmap de Melhorias MCP
8
+ */
9
+ import { MAESTRO_VERSION } from "../constants.js";
10
+ import { getClientCapabilities, getClientType } from "./client-capabilities.service.js";
11
+ import { getRegisteredTools } from "../router.js";
12
+ /**
13
+ * Gera system prompt dinâmico baseado no contexto.
14
+ */
15
+ export function buildSystemPrompt(opts) {
16
+ const caps = getClientCapabilities();
17
+ const clientType = getClientType();
18
+ const tools = getRegisteredTools();
19
+ let prompt = `# Maestro v${MAESTRO_VERSION} — Orquestrador de Desenvolvimento
20
+
21
+ Você é uma IA assistente integrada ao **Maestro MCP**, um orquestrador de desenvolvimento de software.
22
+
23
+ ## Regras Obrigatórias
24
+
25
+ 1. **Sempre use as tools do Maestro** para interagir com o projeto
26
+ 2. **Nunca invente dados** — use \`maestro()\` para detectar contexto
27
+ 3. **Siga o fluxo de fases** — não pule etapas
28
+ 4. **Salve arquivos** quando a tool retornar instruções de salvamento
29
+ 5. **Respeite o especialista** da fase atual
30
+
31
+ ## Tools Disponíveis (${tools.length})
32
+
33
+ `;
34
+ for (const tool of tools) {
35
+ prompt += `- **${tool.name}** — ${tool.description}\n`;
36
+ }
37
+ prompt += `\n## Fluxo Recomendado\n\n`;
38
+ prompt += `1. \`maestro(diretorio)\` — Detectar contexto\n`;
39
+ prompt += `2. Seguir instrução do próximo passo\n`;
40
+ prompt += `3. \`avancar(diretorio, entregavel)\` — Avançar fase\n`;
41
+ prompt += `4. \`validar(diretorio)\` — Validar gate\n`;
42
+ prompt += `5. Repetir até conclusão\n`;
43
+ // Adaptar ao client
44
+ if (clientType === "windsurf") {
45
+ prompt += `\n## Notas para Windsurf/Cascade\n\n`;
46
+ prompt += `- Use \`write_to_file\` para salvar arquivos retornados pelas tools\n`;
47
+ prompt += `- Resources estão disponíveis via \`@mcp:maestro:\`\n`;
48
+ prompt += `- Prompts disponíveis via seletor de prompts\n`;
49
+ }
50
+ else if (clientType === "cursor") {
51
+ prompt += `\n## Notas para Cursor\n\n`;
52
+ prompt += `- Tools MCP acessíveis diretamente\n`;
53
+ prompt += `- Use Composer para executar tools em sequência\n`;
54
+ }
55
+ // Contexto do projeto (se fornecido)
56
+ if (opts?.projectName) {
57
+ prompt += `\n## Projeto Atual: ${opts.projectName}\n\n`;
58
+ if (opts.currentPhase)
59
+ prompt += `**Fase:** ${opts.currentPhase}\n`;
60
+ if (opts.specialistName)
61
+ prompt += `**Especialista:** ${opts.specialistName}\n`;
62
+ }
63
+ // Capabilities awareness
64
+ if (!caps.hasElicitation) {
65
+ prompt += `\n> ℹ️ Client sem suporte a elicitation — perguntas serão feitas via texto.\n`;
66
+ }
67
+ if (!caps.hasSampling) {
68
+ prompt += `> ℹ️ Client sem suporte a sampling — análises serão feitas inline.\n`;
69
+ }
70
+ return prompt;
71
+ }
72
+ //# sourceMappingURL=system-prompt.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"system-prompt.service.js","sourceRoot":"","sources":["../../src/services/system-prompt.service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACxF,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAIjC;IACG,MAAM,IAAI,GAAG,qBAAqB,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,kBAAkB,EAAE,CAAC;IAEnC,IAAI,MAAM,GAAG,cAAc,eAAe;;;;;;;;;;;;wBAYtB,KAAK,CAAC,MAAM;;CAEnC,CAAC;IAEE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,OAAO,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,WAAW,IAAI,CAAC;IAC3D,CAAC;IAED,MAAM,IAAI,4BAA4B,CAAC;IACvC,MAAM,IAAI,iDAAiD,CAAC;IAC5D,MAAM,IAAI,wCAAwC,CAAC;IACnD,MAAM,IAAI,wDAAwD,CAAC;IACnE,MAAM,IAAI,4CAA4C,CAAC;IACvD,MAAM,IAAI,4BAA4B,CAAC;IAEvC,oBAAoB;IACpB,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,sCAAsC,CAAC;QACjD,MAAM,IAAI,uEAAuE,CAAC;QAClF,MAAM,IAAI,uDAAuD,CAAC;QAClE,MAAM,IAAI,gDAAgD,CAAC;IAC/D,CAAC;SAAM,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QACjC,MAAM,IAAI,4BAA4B,CAAC;QACvC,MAAM,IAAI,sCAAsC,CAAC;QACjD,MAAM,IAAI,mDAAmD,CAAC;IAClE,CAAC;IAED,qCAAqC;IACrC,IAAI,IAAI,EAAE,WAAW,EAAE,CAAC;QACpB,MAAM,IAAI,uBAAuB,IAAI,CAAC,WAAW,MAAM,CAAC;QACxD,IAAI,IAAI,CAAC,YAAY;YAAE,MAAM,IAAI,aAAa,IAAI,CAAC,YAAY,IAAI,CAAC;QACpE,IAAI,IAAI,CAAC,cAAc;YAAE,MAAM,IAAI,qBAAqB,IAAI,CAAC,cAAc,IAAI,CAAC;IACpF,CAAC;IAED,yBAAyB;IACzB,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC;QACvB,MAAM,IAAI,+EAA+E,CAAC;IAC9F,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,MAAM,IAAI,sEAAsE,CAAC;IACrF,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC"}