@maestro-ai/mcp-server 5.5.3 → 5.6.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 (150) hide show
  1. package/dist/constants.d.ts +1 -1
  2. package/dist/constants.js +1 -1
  3. package/dist/errors/index.js +2 -2
  4. package/dist/errors/index.js.map +1 -1
  5. package/dist/flows/onboarding-orchestrator.js +1 -1
  6. package/dist/flows/onboarding-orchestrator.js.map +1 -1
  7. package/dist/handlers/field-normalizer.d.ts +31 -0
  8. package/dist/handlers/field-normalizer.d.ts.map +1 -0
  9. package/dist/handlers/field-normalizer.js +70 -0
  10. package/dist/handlers/field-normalizer.js.map +1 -0
  11. package/dist/handlers/prd-scorer.d.ts +60 -0
  12. package/dist/handlers/prd-scorer.d.ts.map +1 -0
  13. package/dist/handlers/prd-scorer.js +157 -0
  14. package/dist/handlers/prd-scorer.js.map +1 -0
  15. package/dist/handlers/prototype-phase-handler.js.map +1 -1
  16. package/dist/handlers/shared-prompt-handler.js.map +1 -1
  17. package/dist/handlers/specialist-formatters.d.ts +42 -0
  18. package/dist/handlers/specialist-formatters.d.ts.map +1 -0
  19. package/dist/handlers/specialist-formatters.js +272 -0
  20. package/dist/handlers/specialist-formatters.js.map +1 -0
  21. package/dist/handlers/specialist-phase-handler.d.ts +1 -10
  22. package/dist/handlers/specialist-phase-handler.d.ts.map +1 -1
  23. package/dist/handlers/specialist-phase-handler.js +11 -501
  24. package/dist/handlers/specialist-phase-handler.js.map +1 -1
  25. package/dist/legacy-tools.d.ts +21 -0
  26. package/dist/legacy-tools.d.ts.map +1 -0
  27. package/dist/legacy-tools.js +377 -0
  28. package/dist/legacy-tools.js.map +1 -0
  29. package/dist/router.d.ts +2 -2
  30. package/dist/router.d.ts.map +1 -1
  31. package/dist/router.js +6 -378
  32. package/dist/router.js.map +1 -1
  33. package/dist/server.d.ts +18 -4
  34. package/dist/server.d.ts.map +1 -1
  35. package/dist/server.js +70 -1
  36. package/dist/server.js.map +1 -1
  37. package/dist/services/flow-engine.d.ts.map +1 -1
  38. package/dist/services/flow-engine.js +1 -2
  39. package/dist/services/flow-engine.js.map +1 -1
  40. package/dist/services/onboarding.service.js.map +1 -1
  41. package/dist/services/scoring-config.d.ts +47 -0
  42. package/dist/services/scoring-config.d.ts.map +1 -0
  43. package/dist/services/scoring-config.js +88 -0
  44. package/dist/services/scoring-config.js.map +1 -0
  45. package/dist/services/state.service.d.ts.map +1 -1
  46. package/dist/services/state.service.js +3 -9
  47. package/dist/services/state.service.js.map +1 -1
  48. package/dist/services/static-validator.service.d.ts +28 -0
  49. package/dist/services/static-validator.service.d.ts.map +1 -0
  50. package/dist/services/static-validator.service.js +55 -0
  51. package/dist/services/static-validator.service.js.map +1 -0
  52. package/dist/services/task-decomposer.service.d.ts +59 -0
  53. package/dist/services/task-decomposer.service.d.ts.map +1 -0
  54. package/dist/services/task-decomposer.service.js +162 -0
  55. package/dist/services/task-decomposer.service.js.map +1 -0
  56. package/dist/services/test-stub-generator.service.d.ts +32 -0
  57. package/dist/services/test-stub-generator.service.d.ts.map +1 -0
  58. package/dist/services/test-stub-generator.service.js +71 -0
  59. package/dist/services/test-stub-generator.service.js.map +1 -0
  60. package/dist/stdio.js +7 -71
  61. package/dist/stdio.js.map +1 -1
  62. package/dist/tools/brainstorm.js.map +1 -1
  63. package/dist/tools/consolidated/avancar.d.ts.map +1 -1
  64. package/dist/tools/consolidated/avancar.js +27 -19
  65. package/dist/tools/consolidated/avancar.js.map +1 -1
  66. package/dist/tools/discovery.js.map +1 -1
  67. package/dist/tools/iniciar-projeto.js.map +1 -1
  68. package/dist/tools/maestro-tool.d.ts.map +1 -1
  69. package/dist/tools/maestro-tool.js +23 -14
  70. package/dist/tools/maestro-tool.js.map +1 -1
  71. package/dist/tools/next-steps-dashboard.js.map +1 -1
  72. package/dist/tools/prd-writer.js.map +1 -1
  73. package/dist/tools/proximo.d.ts.map +1 -1
  74. package/dist/tools/proximo.js +26 -6
  75. package/dist/tools/proximo.js.map +1 -1
  76. package/dist/types/index.d.ts +1 -1
  77. package/dist/types/index.d.ts.map +1 -1
  78. package/package.json +3 -2
  79. package/dist/gates/tiers.test.d.ts +0 -2
  80. package/dist/gates/tiers.test.d.ts.map +0 -1
  81. package/dist/gates/tiers.test.js +0 -86
  82. package/dist/gates/tiers.test.js.map +0 -1
  83. package/dist/index.d.ts +0 -3
  84. package/dist/index.d.ts.map +0 -1
  85. package/dist/index.js +0 -343
  86. package/dist/index.js.map +0 -1
  87. package/dist/tests/aprovar-gate.test.d.ts +0 -2
  88. package/dist/tests/aprovar-gate.test.d.ts.map +0 -1
  89. package/dist/tests/aprovar-gate.test.js +0 -113
  90. package/dist/tests/aprovar-gate.test.js.map +0 -1
  91. package/dist/tests/brainstorm-prd.test.d.ts +0 -5
  92. package/dist/tests/brainstorm-prd.test.d.ts.map +0 -1
  93. package/dist/tests/brainstorm-prd.test.js +0 -291
  94. package/dist/tests/brainstorm-prd.test.js.map +0 -1
  95. package/dist/tests/classificacao-progressiva.test.d.ts +0 -5
  96. package/dist/tests/classificacao-progressiva.test.d.ts.map +0 -1
  97. package/dist/tests/classificacao-progressiva.test.js +0 -372
  98. package/dist/tests/classificacao-progressiva.test.js.map +0 -1
  99. package/dist/tests/content-resolver.test.d.ts +0 -5
  100. package/dist/tests/content-resolver.test.d.ts.map +0 -1
  101. package/dist/tests/content-resolver.test.js +0 -157
  102. package/dist/tests/content-resolver.test.js.map +0 -1
  103. package/dist/tests/deliverable-validator.test.d.ts +0 -12
  104. package/dist/tests/deliverable-validator.test.d.ts.map +0 -1
  105. package/dist/tests/deliverable-validator.test.js +0 -214
  106. package/dist/tests/deliverable-validator.test.js.map +0 -1
  107. package/dist/tests/flow-engine.test.d.ts +0 -2
  108. package/dist/tests/flow-engine.test.d.ts.map +0 -1
  109. package/dist/tests/flow-engine.test.js +0 -85
  110. package/dist/tests/flow-engine.test.js.map +0 -1
  111. package/dist/tests/gate-orientation.test.d.ts +0 -2
  112. package/dist/tests/gate-orientation.test.d.ts.map +0 -1
  113. package/dist/tests/gate-orientation.test.js +0 -59
  114. package/dist/tests/gate-orientation.test.js.map +0 -1
  115. package/dist/tests/middleware.test.d.ts +0 -5
  116. package/dist/tests/middleware.test.d.ts.map +0 -1
  117. package/dist/tests/middleware.test.js +0 -254
  118. package/dist/tests/middleware.test.js.map +0 -1
  119. package/dist/tests/migracao-skills.test.d.ts +0 -2
  120. package/dist/tests/migracao-skills.test.d.ts.map +0 -1
  121. package/dist/tests/migracao-skills.test.js +0 -208
  122. package/dist/tests/migracao-skills.test.js.map +0 -1
  123. package/dist/tests/onboarding-flow.test.d.ts +0 -5
  124. package/dist/tests/onboarding-flow.test.d.ts.map +0 -1
  125. package/dist/tests/onboarding-flow.test.js +0 -231
  126. package/dist/tests/onboarding-flow.test.js.map +0 -1
  127. package/dist/tests/prd-validation.test.d.ts +0 -6
  128. package/dist/tests/prd-validation.test.d.ts.map +0 -1
  129. package/dist/tests/prd-validation.test.js +0 -164
  130. package/dist/tests/prd-validation.test.js.map +0 -1
  131. package/dist/tests/readiness-dashboard.test.d.ts +0 -5
  132. package/dist/tests/readiness-dashboard.test.d.ts.map +0 -1
  133. package/dist/tests/readiness-dashboard.test.js +0 -252
  134. package/dist/tests/readiness-dashboard.test.js.map +0 -1
  135. package/dist/tests/skill-loader.test.d.ts +0 -5
  136. package/dist/tests/skill-loader.test.d.ts.map +0 -1
  137. package/dist/tests/skill-loader.test.js +0 -244
  138. package/dist/tests/skill-loader.test.js.map +0 -1
  139. package/dist/tests/v52-integration.test.d.ts +0 -14
  140. package/dist/tests/v52-integration.test.d.ts.map +0 -1
  141. package/dist/tests/v52-integration.test.js +0 -225
  142. package/dist/tests/v52-integration.test.js.map +0 -1
  143. package/dist/tests/watcher.service.test.d.ts +0 -2
  144. package/dist/tests/watcher.service.test.d.ts.map +0 -1
  145. package/dist/tests/watcher.service.test.js +0 -119
  146. package/dist/tests/watcher.service.test.js.map +0 -1
  147. package/dist/utils/__tests__/prompt-mapper.test.d.ts +0 -2
  148. package/dist/utils/__tests__/prompt-mapper.test.d.ts.map +0 -1
  149. package/dist/utils/__tests__/prompt-mapper.test.js +0 -184
  150. package/dist/utils/__tests__/prompt-mapper.test.js.map +0 -1
package/dist/index.js DELETED
@@ -1,343 +0,0 @@
1
- #!/usr/bin/env node
2
- import express from "express";
3
- import cors from "cors";
4
- import { randomUUID } from "crypto";
5
- const PORT = parseInt(process.env.PORT || "3000", 10);
6
- const app = express();
7
- // Middleware
8
- app.use(cors());
9
- app.use(express.json({ limit: "10mb" }));
10
- // Armazenar sessões ativas (suporta SSE e HTTP simples)
11
- const sessions = new Map();
12
- // Limpar sessões inativas a cada 5 minutos
13
- setInterval(() => {
14
- const now = Date.now();
15
- for (const [id, session] of sessions) {
16
- if (now - session.lastAccess.getTime() > 30 * 60 * 1000) {
17
- sessions.delete(id);
18
- }
19
- }
20
- }, 5 * 60 * 1000);
21
- /**
22
- * Health check endpoint
23
- */
24
- app.get("/health", (req, res) => {
25
- res.json({
26
- status: "ok",
27
- server: "mcp-maestro",
28
- version: MAESTRO_VERSION,
29
- sessions: sessions.size,
30
- });
31
- });
32
- /**
33
- * Info endpoint
34
- */
35
- app.get("/", (req, res) => {
36
- res.json({
37
- name: "MCP Maestro",
38
- version: MAESTRO_VERSION,
39
- description: "Model Context Protocol server for Maestro development guide",
40
- endpoints: {
41
- health: "GET /health",
42
- mcp: "POST /mcp",
43
- resources: "GET /resources",
44
- tools: "GET /tools",
45
- },
46
- });
47
- });
48
- /**
49
- * Lista resources disponíveis (HTTP helper)
50
- */
51
- app.get("/resources", async (req, res) => {
52
- try {
53
- // Simula chamada MCP
54
- const result = await handleMcpRequest({
55
- jsonrpc: "2.0",
56
- id: randomUUID(),
57
- method: "resources/list",
58
- params: {},
59
- });
60
- res.json(result);
61
- }
62
- catch (error) {
63
- res.status(500).json({ error: String(error) });
64
- }
65
- });
66
- /**
67
- * Lista tools disponíveis (HTTP helper)
68
- */
69
- app.get("/tools", async (req, res) => {
70
- try {
71
- const result = await handleMcpRequest({
72
- jsonrpc: "2.0",
73
- id: randomUUID(),
74
- method: "tools/list",
75
- params: {},
76
- });
77
- res.json(result);
78
- }
79
- catch (error) {
80
- res.status(500).json({ error: String(error) });
81
- }
82
- });
83
- // ============================================
84
- // SSE Transport para MCP (Streamable HTTP)
85
- // ============================================
86
- /**
87
- * SSE Endpoint - Estabelece conexão Server-Sent Events
88
- * Clientes como Gemini/Antigravity usam este endpoint
89
- */
90
- app.get("/mcp", (req, res) => {
91
- // Verificar se é request SSE
92
- const accept = req.headers.accept || "";
93
- if (!accept.includes("text/event-stream")) {
94
- // Não é SSE, retornar info do endpoint
95
- res.json({
96
- name: "MCP Maestro",
97
- version: MAESTRO_VERSION,
98
- transport: "streamable-http",
99
- endpoints: {
100
- sse: "GET /mcp (Accept: text/event-stream)",
101
- post: "POST /mcp",
102
- },
103
- });
104
- return;
105
- }
106
- // Configurar headers SSE
107
- res.setHeader("Content-Type", "text/event-stream");
108
- res.setHeader("Cache-Control", "no-cache, no-transform");
109
- res.setHeader("Connection", "keep-alive");
110
- res.setHeader("X-Accel-Buffering", "no"); // Para Nginx/proxies
111
- res.setHeader("Transfer-Encoding", "chunked"); // Força chunked encoding
112
- res.flushHeaders();
113
- // Criar sessão
114
- const sessionId = randomUUID();
115
- // Enviar padding inicial para forçar flush através de proxies (Cloudflare, etc.)
116
- // Alguns proxies bufferam até receber ~1KB de dados
117
- const padding = ": " + "x".repeat(2048) + "\n\n";
118
- res.write(padding);
119
- // Heartbeat para manter conexão viva
120
- const heartbeatInterval = setInterval(() => {
121
- try {
122
- res.write(": heartbeat\n\n");
123
- }
124
- catch {
125
- // Conexão fechada
126
- clearInterval(heartbeatInterval);
127
- }
128
- }, 25000);
129
- // Armazenar sessão
130
- sessions.set(sessionId, {
131
- response: res,
132
- lastAccess: new Date(),
133
- heartbeatInterval,
134
- });
135
- // Enviar evento endpoint (obrigatório para MCP Streamable HTTP)
136
- const endpointUrl = `/mcp?sessionId=${sessionId}`;
137
- res.write(`event: endpoint\ndata: ${endpointUrl}\n\n`);
138
- console.log(`[SSE] Session created: ${sessionId}`);
139
- // Cleanup quando conexão fechar
140
- req.on("close", () => {
141
- console.log(`[SSE] Session closed: ${sessionId}`);
142
- clearInterval(heartbeatInterval);
143
- sessions.delete(sessionId);
144
- });
145
- });
146
- /**
147
- * DELETE /mcp - Encerra sessão SSE
148
- */
149
- app.delete("/mcp", (req, res) => {
150
- const sessionId = req.query.sessionId;
151
- if (sessionId && sessions.has(sessionId)) {
152
- const session = sessions.get(sessionId);
153
- if (session) {
154
- clearInterval(session.heartbeatInterval);
155
- try {
156
- session.response.end();
157
- }
158
- catch {
159
- // Já fechada
160
- }
161
- }
162
- sessions.delete(sessionId);
163
- res.json({ success: true, message: "Session terminated" });
164
- }
165
- else {
166
- res.status(404).json({ error: "Session not found" });
167
- }
168
- });
169
- /**
170
- * Endpoint principal MCP (JSON-RPC)
171
- * Suporta tanto HTTP direto quanto SSE via sessionId
172
- */
173
- app.post("/mcp", async (req, res) => {
174
- try {
175
- const request = req.body;
176
- const sessionId = req.query.sessionId;
177
- // Atualizar lastAccess da sessão se existir
178
- if (sessionId && sessions.has(sessionId)) {
179
- const session = sessions.get(sessionId);
180
- session.lastAccess = new Date();
181
- }
182
- // Validar request JSON-RPC
183
- if (!request.jsonrpc || request.jsonrpc !== "2.0") {
184
- const errorResponse = {
185
- jsonrpc: "2.0",
186
- error: { code: -32600, message: "Invalid Request: missing jsonrpc 2.0" },
187
- id: request.id || null,
188
- };
189
- res.status(400).json(errorResponse);
190
- return;
191
- }
192
- if (!request.method) {
193
- const errorResponse = {
194
- jsonrpc: "2.0",
195
- error: { code: -32600, message: "Invalid Request: missing method" },
196
- id: request.id,
197
- };
198
- res.status(400).json(errorResponse);
199
- return;
200
- }
201
- const result = await handleMcpRequest(request);
202
- // Se tem sessão SSE ativa, enviar resposta por lá também
203
- if (sessionId && sessions.has(sessionId)) {
204
- const session = sessions.get(sessionId);
205
- try {
206
- session.response.write(`event: message\ndata: ${JSON.stringify(result)}\n\n`);
207
- }
208
- catch {
209
- // Sessão SSE pode ter sido fechada
210
- sessions.delete(sessionId);
211
- }
212
- }
213
- // Sempre responder via HTTP também
214
- res.json(result);
215
- }
216
- catch (error) {
217
- console.error("[MCP Error]", error);
218
- res.status(500).json({
219
- jsonrpc: "2.0",
220
- error: { code: -32603, message: String(error) },
221
- id: req.body?.id || null,
222
- });
223
- }
224
- });
225
- /**
226
- * Processa request MCP
227
- */
228
- async function handleMcpRequest(request) {
229
- const { method, params, id } = request;
230
- try {
231
- // Simular chamada ao handler do servidor MCP
232
- // O SDK normalmente usa streams, mas aqui fazemos diretamente
233
- let result;
234
- switch (method) {
235
- case "resources/list": {
236
- const resources = await getResourcesList();
237
- result = resources;
238
- break;
239
- }
240
- case "resources/read": {
241
- const uri = params.uri;
242
- result = await getResourceContent(uri);
243
- break;
244
- }
245
- case "tools/list": {
246
- result = await getToolsList();
247
- break;
248
- }
249
- case "tools/call": {
250
- const { name, arguments: args } = params;
251
- result = await callTool(name, args);
252
- break;
253
- }
254
- case "initialize": {
255
- // Capturar capabilities do client
256
- if (params) {
257
- captureClientCapabilities(params);
258
- }
259
- result = {
260
- protocolVersion: SUPPORTED_PROTOCOL_VERSION,
261
- serverInfo: { name: MAESTRO_NAME, version: MAESTRO_VERSION },
262
- capabilities: { resources: {}, tools: {}, prompts: {} },
263
- };
264
- break;
265
- }
266
- case "prompts/list": {
267
- result = await getPromptsList();
268
- break;
269
- }
270
- case "prompts/get": {
271
- const { name: promptName, arguments: promptArgs } = params;
272
- result = await getPromptContent(promptName, promptArgs);
273
- break;
274
- }
275
- default:
276
- return {
277
- jsonrpc: "2.0",
278
- error: { code: -32601, message: `Method not found: ${method}` },
279
- id,
280
- };
281
- }
282
- return {
283
- jsonrpc: "2.0",
284
- result,
285
- id,
286
- };
287
- }
288
- catch (error) {
289
- return {
290
- jsonrpc: "2.0",
291
- error: { code: -32603, message: String(error) },
292
- id,
293
- };
294
- }
295
- }
296
- // ============================================
297
- // Implementações diretas (bypass do SDK transport)
298
- // ============================================
299
- import { MAESTRO_NAME, MAESTRO_VERSION, SUPPORTED_PROTOCOL_VERSION } from "./constants.js";
300
- import { captureClientCapabilities } from "./services/client-capabilities.service.js";
301
- import { routeToolCall, getRegisteredTools } from "./router.js";
302
- import { listResources as sharedListResources, readResource as sharedReadResource } from "./handlers/shared-resource-handler.js";
303
- import { listPrompts as sharedListPrompts, getPrompt as sharedGetPrompt } from "./handlers/shared-prompt-handler.js";
304
- // v5.2: Usa handler compartilhado para resources (elimina duplicação)
305
- async function getResourcesList() {
306
- return await sharedListResources();
307
- }
308
- async function getResourceContent(uri) {
309
- return await sharedReadResource(uri);
310
- }
311
- async function getToolsList() {
312
- return { tools: getRegisteredTools() };
313
- }
314
- async function callTool(name, args) {
315
- return await routeToolCall(name, args || {});
316
- }
317
- // v5.2: Usa handler compartilhado para prompts (elimina duplicação)
318
- async function getPromptsList() {
319
- return sharedListPrompts();
320
- }
321
- async function getPromptContent(name, args) {
322
- const diretorio = args?.diretorio || process.cwd();
323
- return await sharedGetPrompt(name, diretorio);
324
- }
325
- // ============================================
326
- // Iniciar servidor
327
- // ============================================
328
- app.listen(PORT, () => {
329
- console.log(`
330
- ╔═══════════════════════════════════════════════════════════╗
331
- ║ MCP MAESTRO v${MAESTRO_VERSION} ║
332
- ╠═══════════════════════════════════════════════════════════╣
333
- ║ 🚀 Server running on http://localhost:${PORT} ║
334
- ║ ║
335
- ║ Endpoints: ║
336
- ║ POST /mcp - MCP JSON-RPC endpoint ║
337
- ║ GET /health - Health check ║
338
- ║ GET /resources - List resources ║
339
- ║ GET /tools - List tools ║
340
- ╚═══════════════════════════════════════════════════════════╝
341
- `);
342
- });
343
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=aprovar-gate.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aprovar-gate.test.d.ts","sourceRoot":"","sources":["../../src/tests/aprovar-gate.test.ts"],"names":[],"mappings":""}
@@ -1,113 +0,0 @@
1
- import { vi, describe, it, expect, beforeEach } from 'vitest';
2
- import { aprovarGate } from '../tools/aprovar-gate.js';
3
- import * as storage from '../state/storage.js';
4
- // Mocks
5
- vi.mock('../state/storage.js', () => ({
6
- parsearEstado: vi.fn(),
7
- serializarEstado: vi.fn()
8
- }));
9
- vi.mock('../state/context.js', () => ({
10
- setCurrentDirectory: vi.fn()
11
- }));
12
- vi.mock('../utils/files.js', () => ({
13
- resolveProjectPath: vi.fn((p) => p),
14
- normalizeProjectPath: vi.fn((p) => p)
15
- }));
16
- vi.mock('../utils/history.js', () => ({
17
- logEvent: vi.fn(),
18
- EventTypes: {}
19
- }));
20
- vi.mock('../flows/types.js', () => ({
21
- getFaseComStitch: vi.fn().mockReturnValue({ nome: 'Fase de Teste', entregavel_esperado: 'Doc de Teste' })
22
- }));
23
- vi.mock('../services/specialist.service.js', () => ({
24
- getSpecialistPersona: vi.fn().mockReturnValue('Persona de Teste')
25
- }));
26
- describe('AprovarGate Tool', () => {
27
- beforeEach(() => {
28
- vi.clearAllMocks();
29
- });
30
- it('deve retornar erro se nao informar estado_json', async () => {
31
- const result = await aprovarGate({
32
- acao: 'aprovar',
33
- estado_json: '',
34
- diretorio: '/test'
35
- });
36
- expect(result.content[0].text).toContain('uso EXCLUSIVO do usuário');
37
- expect(result.isError).toBeUndefined(); // Por design, o texto instrucional não tem isError = true
38
- });
39
- it('deve retornar mensagem informacional se o estado não estiver aguardando aprovação', async () => {
40
- const estadoFalso = { aguardando_aprovacao: false, fase_atual: 1, total_fases: 10, nivel: 'simples' };
41
- vi.mocked(storage.parsearEstado).mockReturnValue(estadoFalso);
42
- const result = await aprovarGate({
43
- acao: 'aprovar',
44
- estado_json: JSON.stringify(estadoFalso),
45
- diretorio: '/test'
46
- });
47
- expect(result.content[0].text).toContain('Nenhuma Aprovação Pendente');
48
- });
49
- it('deve retornar erro se acao for aprovar mas não houver score bloqueado', async () => {
50
- const estadoAguardando = { aguardando_aprovacao: true, score_bloqueado: undefined, fase_atual: 1 };
51
- vi.mocked(storage.parsearEstado).mockReturnValue(estadoAguardando);
52
- const result = await aprovarGate({
53
- acao: 'aprovar',
54
- estado_json: JSON.stringify(estadoAguardando),
55
- diretorio: '/test'
56
- });
57
- expect(result.isError).toBe(true);
58
- expect(result.content[0].text).toContain('Aprovação Inválida');
59
- });
60
- it('deve aprovar o gate com sucesso, removendo flag compulsória e retornando next_action proximo', async () => {
61
- const estadoValido = {
62
- aguardando_aprovacao: true,
63
- score_bloqueado: 60,
64
- fase_atual: 1,
65
- total_fases: 10,
66
- gates_validados: [],
67
- em_estado_compulsorio: true, // v6 compulsório
68
- motivo_bloqueio: 'Faltam coisas'
69
- };
70
- vi.mocked(storage.parsearEstado).mockReturnValue(estadoValido);
71
- vi.mocked(storage.serializarEstado).mockReturnValue({ content: '{"mock":true}', path: 'estado.json' });
72
- const result = await aprovarGate({
73
- acao: 'aprovar',
74
- estado_json: JSON.stringify(estadoValido),
75
- diretorio: '/test'
76
- });
77
- // Verificações de mutação de estado
78
- expect(estadoValido.aguardando_aprovacao).toBe(false);
79
- expect(estadoValido.score_bloqueado).toBeUndefined();
80
- expect(estadoValido.motivo_bloqueio).toBeUndefined();
81
- expect(estadoValido.em_estado_compulsorio).toBe(false);
82
- expect(storage.serializarEstado).toHaveBeenCalledWith(estadoValido);
83
- expect(result.next_action?.tool).toBe('proximo');
84
- expect(result.content[0].text).toContain('Gate Aprovado pelo Usuário');
85
- });
86
- it('deve rejeitar o gate com sucesso e retornar next_action validar_gate', async () => {
87
- const estadoValido = {
88
- aguardando_aprovacao: true,
89
- score_bloqueado: 60,
90
- fase_atual: 1,
91
- total_fases: 10,
92
- gates_validados: [],
93
- em_estado_compulsorio: true,
94
- motivo_bloqueio: 'Faltam coisas'
95
- };
96
- vi.mocked(storage.parsearEstado).mockReturnValue(estadoValido);
97
- vi.mocked(storage.serializarEstado).mockReturnValue({ content: '{"mock":true}', path: 'estado.json' });
98
- const result = await aprovarGate({
99
- acao: 'rejeitar',
100
- estado_json: JSON.stringify(estadoValido),
101
- diretorio: '/test'
102
- });
103
- // Verificações de mutação de estado
104
- expect(estadoValido.aguardando_aprovacao).toBe(false);
105
- expect(estadoValido.score_bloqueado).toBeUndefined();
106
- expect(estadoValido.motivo_bloqueio).toBeUndefined();
107
- expect(estadoValido.em_estado_compulsorio).toBe(false);
108
- expect(storage.serializarEstado).toHaveBeenCalledWith(estadoValido);
109
- expect(result.next_action?.tool).toBe('validar_gate');
110
- expect(result.content[0].text).toContain('Gate Rejeitado pelo Usuário');
111
- });
112
- });
113
- //# sourceMappingURL=aprovar-gate.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"aprovar-gate.test.js","sourceRoot":"","sources":["../../src/tests/aprovar-gate.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * Testes para brainstorm e PRD writer
3
- */
4
- export {};
5
- //# sourceMappingURL=brainstorm-prd.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"brainstorm-prd.test.d.ts","sourceRoot":"","sources":["../../src/tests/brainstorm-prd.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}