sdd-mcp-server 1.6.2 → 1.8.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/README.md +48 -33
- package/dist/adapters/cli/SDDToolAdapter.js +23 -22
- package/dist/adapters/cli/SDDToolAdapter.js.map +1 -1
- package/dist/application/services/staticSteering.js +22 -19
- package/dist/application/services/staticSteering.js.map +1 -1
- package/dist/index.js +92 -57
- package/dist/index.js.map +1 -1
- package/dist/utils/moduleLoader.d.ts +9 -12
- package/dist/utils/moduleLoader.js +55 -52
- package/dist/utils/moduleLoader.js.map +1 -1
- package/dist/utils/specGenerator.js +228 -160
- package/dist/utils/specGenerator.js.map +1 -1
- package/package.json +2 -2
- package/dist/__tests__/legacy/setup.d.ts +0 -44
- package/dist/__tests__/legacy/setup.js +0 -178
- package/dist/__tests__/legacy/setup.js.map +0 -1
- package/dist/__tests__/legacy/test-helpers/mock-factories.d.ts +0 -26
- package/dist/__tests__/legacy/test-helpers/mock-factories.js +0 -466
- package/dist/__tests__/legacy/test-helpers/mock-factories.js.map +0 -1
- package/dist/__tests__/setup.d.ts +0 -44
- package/dist/__tests__/setup.js +0 -178
- package/dist/__tests__/setup.js.map +0 -1
- package/dist/__tests__/test-helpers/mock-factories.d.ts +0 -26
- package/dist/__tests__/test-helpers/mock-factories.js +0 -466
- package/dist/__tests__/test-helpers/mock-factories.js.map +0 -1
|
@@ -1,17 +1,46 @@
|
|
|
1
|
-
import { analyzeProject } from
|
|
1
|
+
import { analyzeProject } from "./documentGenerator.js";
|
|
2
|
+
/**
|
|
3
|
+
* Governance subtasks that must be included in every task group
|
|
4
|
+
* References steering documents for TDD and coding principles
|
|
5
|
+
*/
|
|
6
|
+
const TDD_SUBTASK = "Follow `.kiro/steering/tdd-guideline.md` (Red→Green→Refactor)";
|
|
7
|
+
const PRINCIPLES_SUBTASK = "Review `.kiro/steering/principles.md`; capture any deviations";
|
|
8
|
+
/**
|
|
9
|
+
* Enforce governance by adding TDD and principles subtasks to every task
|
|
10
|
+
* Also updates requirements field to include TDD and Principles tags
|
|
11
|
+
*
|
|
12
|
+
* @param tasks - Array of task objects with title, subtasks, and requirements
|
|
13
|
+
* @returns Modified task array with governance subtasks appended
|
|
14
|
+
*/
|
|
15
|
+
function enforceGovernance(tasks) {
|
|
16
|
+
return tasks.map((task) => {
|
|
17
|
+
// Add governance subtasks if not already present
|
|
18
|
+
if (!task.subtasks.includes(TDD_SUBTASK)) {
|
|
19
|
+
task.subtasks.push(TDD_SUBTASK);
|
|
20
|
+
}
|
|
21
|
+
if (!task.subtasks.includes(PRINCIPLES_SUBTASK)) {
|
|
22
|
+
task.subtasks.push(PRINCIPLES_SUBTASK);
|
|
23
|
+
}
|
|
24
|
+
// Add TDD and Principles tags to requirements if not present
|
|
25
|
+
if (!/TDD|Principles/.test(task.requirements)) {
|
|
26
|
+
task.requirements = `${task.requirements}, TDD, Principles`;
|
|
27
|
+
}
|
|
28
|
+
return task;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
2
31
|
export async function generateRequirementsDocument(projectPath, featureName) {
|
|
3
32
|
const analysis = await analyzeProject(projectPath);
|
|
4
|
-
const desc = analysis.description ||
|
|
33
|
+
const desc = analysis.description || "Feature requirements specification";
|
|
5
34
|
const obj = generateCoreObjective(analysis);
|
|
6
35
|
const acceptance = generateAcceptanceCriteria(analysis)
|
|
7
36
|
.map((c, i) => `${i + 1}. ${c}`)
|
|
8
|
-
.join(
|
|
37
|
+
.join("\n");
|
|
9
38
|
return `# Requirements Document
|
|
10
39
|
|
|
11
40
|
## Introduction
|
|
12
41
|
${featureName} - Requirements derived from codebase analysis.
|
|
13
42
|
|
|
14
|
-
**Project**: ${analysis.name}
|
|
43
|
+
**Project**: ${analysis.name}
|
|
15
44
|
**Description**: ${desc}
|
|
16
45
|
|
|
17
46
|
Generated on: ${new Date().toISOString()}
|
|
@@ -28,13 +57,17 @@ ${acceptance}
|
|
|
28
57
|
**Objective:** Integrate with the detected technology stack
|
|
29
58
|
|
|
30
59
|
#### Acceptance Criteria
|
|
31
|
-
${generateTechRequirements(analysis)
|
|
60
|
+
${generateTechRequirements(analysis)
|
|
61
|
+
.map((r, i) => `${i + 1}. ${r}`)
|
|
62
|
+
.join("\n")}
|
|
32
63
|
|
|
33
64
|
### FR-3: Quality Standards
|
|
34
65
|
**Objective:** Meet quality, testing, and review standards
|
|
35
66
|
|
|
36
67
|
#### Acceptance Criteria
|
|
37
|
-
${generateQualityRequirements(analysis)
|
|
68
|
+
${generateQualityRequirements(analysis)
|
|
69
|
+
.map((r, i) => `${i + 1}. ${r}`)
|
|
70
|
+
.join("\n")}
|
|
38
71
|
|
|
39
72
|
## Non-Functional Requirements
|
|
40
73
|
|
|
@@ -54,8 +87,12 @@ ${generateQualityRequirements(analysis).map((r, i) => `${i + 1}. ${r}`).join('\n
|
|
|
54
87
|
export async function generateDesignDocument(projectPath, featureName) {
|
|
55
88
|
const analysis = await analyzeProject(projectPath);
|
|
56
89
|
const arch = describeArchitecture(analysis);
|
|
57
|
-
const components = generateComponentList(analysis)
|
|
58
|
-
|
|
90
|
+
const components = generateComponentList(analysis)
|
|
91
|
+
.map((c) => `- **${c.name}**: ${c.description}`)
|
|
92
|
+
.join("\n");
|
|
93
|
+
const dataModels = generateDataModels(analysis)
|
|
94
|
+
.map((m) => `- **${m}**: Data structure definition`)
|
|
95
|
+
.join("\n");
|
|
59
96
|
const techStack = generateDetailedTechStack(analysis);
|
|
60
97
|
return `# Technical Design Document
|
|
61
98
|
|
|
@@ -103,16 +140,18 @@ ${generateBuildConfig(analysis)}
|
|
|
103
140
|
export async function generateTasksDocument(projectPath, featureName) {
|
|
104
141
|
const analysis = await analyzeProject(projectPath);
|
|
105
142
|
const tasks = generateImplementationTasks(analysis);
|
|
106
|
-
const section = (title, list) => list
|
|
107
|
-
|
|
108
|
-
-
|
|
143
|
+
const section = (title, list) => list
|
|
144
|
+
.map((task, idx) => `- [ ] ${idx + 1}. ${task.title}
|
|
145
|
+
${task.subtasks.map((s) => ` - ${s}`).join("\n")}
|
|
146
|
+
- _Requirements: ${task.requirements}_`)
|
|
147
|
+
.join("\n\n");
|
|
109
148
|
return `# Implementation Plan (TDD Approach)
|
|
110
149
|
|
|
111
150
|
## Project: ${featureName}
|
|
112
151
|
|
|
113
152
|
**Project Name:** ${analysis.name}
|
|
114
|
-
**Detected Stack:** ${[analysis.language, analysis.framework ||
|
|
115
|
-
**Test Framework:** ${analysis.testFramework ||
|
|
153
|
+
**Detected Stack:** ${[analysis.language, analysis.framework || "", analysis.buildTool || ""].filter(Boolean).join(" / ")}
|
|
154
|
+
**Test Framework:** ${analysis.testFramework || "Not detected - needs setup"}
|
|
116
155
|
|
|
117
156
|
Generated on: ${new Date().toISOString()}
|
|
118
157
|
|
|
@@ -122,19 +161,19 @@ Generated on: ${new Date().toISOString()}
|
|
|
122
161
|
|
|
123
162
|
## Phase 1: Test Setup (🔴 RED - Write Failing Tests First)
|
|
124
163
|
|
|
125
|
-
${section(
|
|
164
|
+
${section("Test Setup", tasks.testSetup)}
|
|
126
165
|
|
|
127
166
|
## Phase 2: Implementation (🟢 GREEN - Make Tests Pass)
|
|
128
167
|
|
|
129
|
-
${section(
|
|
168
|
+
${section("Implementation", tasks.implementation)}
|
|
130
169
|
|
|
131
170
|
## Phase 3: Refactoring (🔵 REFACTOR - Improve Code Quality)
|
|
132
171
|
|
|
133
|
-
${section(
|
|
172
|
+
${section("Refactoring", tasks.refactoring)}
|
|
134
173
|
|
|
135
174
|
## Phase 4: Integration & Documentation
|
|
136
175
|
|
|
137
|
-
${section(
|
|
176
|
+
${section("Integration", tasks.integration)}
|
|
138
177
|
|
|
139
178
|
---
|
|
140
179
|
|
|
@@ -144,272 +183,301 @@ Refer to \`.kiro/steering/tdd-guideline.md\` for detailed TDD guidance.
|
|
|
144
183
|
}
|
|
145
184
|
// Helpers derived from TemplateService, reduced and dependency-free
|
|
146
185
|
function generateCoreObjective(analysis) {
|
|
147
|
-
if (analysis.dependencies?.includes(
|
|
148
|
-
return
|
|
149
|
-
if (analysis.framework ===
|
|
150
|
-
return
|
|
151
|
-
if (analysis.framework ===
|
|
152
|
-
return
|
|
153
|
-
return
|
|
186
|
+
if (analysis.dependencies?.includes("@modelcontextprotocol/sdk"))
|
|
187
|
+
return "Provide MCP tools for spec-driven development workflows";
|
|
188
|
+
if (analysis.framework === "Express.js")
|
|
189
|
+
return "Expose REST endpoints and middleware for business logic";
|
|
190
|
+
if (analysis.framework === "React")
|
|
191
|
+
return "Render interactive UI components with state management";
|
|
192
|
+
return "Deliver feature-aligned functionality integrated with existing architecture";
|
|
154
193
|
}
|
|
155
194
|
function generateAcceptanceCriteria(analysis) {
|
|
156
195
|
const criteria = [
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
196
|
+
"WHEN invoked THEN it SHALL execute without runtime errors",
|
|
197
|
+
"IF input is invalid THEN it SHALL return meaningful errors",
|
|
198
|
+
"WHILE under typical load IT SHALL meet performance targets",
|
|
160
199
|
];
|
|
161
200
|
if (analysis.testFramework)
|
|
162
|
-
criteria.push(
|
|
163
|
-
if (analysis.language ===
|
|
164
|
-
criteria.push(
|
|
201
|
+
criteria.push("WHERE tests exist THEY SHALL pass with adequate coverage");
|
|
202
|
+
if (analysis.language === "typescript")
|
|
203
|
+
criteria.push("WHEN type-checking THEN no TypeScript errors SHALL occur");
|
|
165
204
|
return criteria;
|
|
166
205
|
}
|
|
167
206
|
function generateTechRequirements(analysis) {
|
|
168
|
-
const out = [
|
|
169
|
-
if (analysis.dependencies?.includes(
|
|
170
|
-
out.push(
|
|
207
|
+
const out = ["Integrate with existing build and run scripts"];
|
|
208
|
+
if (analysis.dependencies?.includes("@modelcontextprotocol/sdk"))
|
|
209
|
+
out.push("Expose MCP-compliant tools over stdio");
|
|
171
210
|
if (analysis.buildTool)
|
|
172
211
|
out.push(`Provide build artifacts using ${analysis.buildTool}`);
|
|
173
212
|
return out;
|
|
174
213
|
}
|
|
175
214
|
function generateQualityRequirements(analysis) {
|
|
176
|
-
const out = [
|
|
215
|
+
const out = [
|
|
216
|
+
"Follow project coding conventions",
|
|
217
|
+
"Apply error handling and logging",
|
|
218
|
+
];
|
|
177
219
|
if (analysis.testFramework)
|
|
178
220
|
out.push(`Include ${analysis.testFramework} tests for new code`);
|
|
179
221
|
return out;
|
|
180
222
|
}
|
|
181
223
|
function describeArchitecture(analysis) {
|
|
182
|
-
if (analysis.architecture ===
|
|
183
|
-
return
|
|
184
|
-
if (analysis.architecture.includes(
|
|
185
|
-
return
|
|
186
|
-
if (analysis.framework ===
|
|
187
|
-
return
|
|
188
|
-
return analysis.architecture ||
|
|
224
|
+
if (analysis.architecture === "Domain-Driven Design (DDD)")
|
|
225
|
+
return "Layered DDD: Domain, Application, Infrastructure, Presentation";
|
|
226
|
+
if (analysis.architecture.includes("API"))
|
|
227
|
+
return "REST API with routing, middleware, services, and data access layers";
|
|
228
|
+
if (analysis.framework === "MCP SDK")
|
|
229
|
+
return "MCP server exposing development tools via stdio protocol";
|
|
230
|
+
return (analysis.architecture ||
|
|
231
|
+
"Modular architecture with clear separation of concerns");
|
|
189
232
|
}
|
|
190
233
|
function generateComponentList(analysis) {
|
|
191
234
|
const comps = [];
|
|
192
|
-
if (analysis.framework ===
|
|
193
|
-
comps.push({
|
|
194
|
-
|
|
235
|
+
if (analysis.framework === "MCP SDK") {
|
|
236
|
+
comps.push({
|
|
237
|
+
name: "MCPServer",
|
|
238
|
+
description: "Handles stdio transport and tool registry",
|
|
239
|
+
});
|
|
240
|
+
comps.push({
|
|
241
|
+
name: "ToolHandlers",
|
|
242
|
+
description: "Implement SDD tools (init, requirements, design, tasks, etc.)",
|
|
243
|
+
});
|
|
195
244
|
}
|
|
196
|
-
if (analysis.architecture.includes(
|
|
197
|
-
comps.push({ name:
|
|
198
|
-
comps.push({
|
|
245
|
+
if (analysis.architecture.includes("API")) {
|
|
246
|
+
comps.push({ name: "Controllers", description: "HTTP route handlers" });
|
|
247
|
+
comps.push({
|
|
248
|
+
name: "Services",
|
|
249
|
+
description: "Business logic orchestration",
|
|
250
|
+
});
|
|
199
251
|
}
|
|
200
252
|
if (comps.length === 0)
|
|
201
|
-
comps.push({
|
|
253
|
+
comps.push({
|
|
254
|
+
name: "CoreModule",
|
|
255
|
+
description: "Primary feature implementation module",
|
|
256
|
+
});
|
|
202
257
|
return comps;
|
|
203
258
|
}
|
|
204
259
|
function generateDataModels(analysis) {
|
|
205
|
-
if (analysis.framework ===
|
|
206
|
-
return [
|
|
207
|
-
if (analysis.architecture.includes(
|
|
208
|
-
return [
|
|
209
|
-
return [
|
|
260
|
+
if (analysis.framework === "MCP SDK")
|
|
261
|
+
return ["Tool", "Request", "Response"];
|
|
262
|
+
if (analysis.architecture.includes("API"))
|
|
263
|
+
return ["RequestDTO", "ResponseDTO"];
|
|
264
|
+
return ["Entity", "ValueObject"];
|
|
210
265
|
}
|
|
211
266
|
function generateDetailedTechStack(analysis) {
|
|
212
267
|
const parts = [];
|
|
213
|
-
parts.push(`- Runtime: ${analysis.language ===
|
|
268
|
+
parts.push(`- Runtime: ${analysis.language === "typescript" ? "Node.js (TypeScript)" : "Node.js (JavaScript)"}`);
|
|
214
269
|
if (analysis.framework)
|
|
215
270
|
parts.push(`- Framework: ${analysis.framework}`);
|
|
216
271
|
if (analysis.buildTool)
|
|
217
272
|
parts.push(`- Build: ${analysis.buildTool}`);
|
|
218
273
|
if (analysis.testFramework)
|
|
219
274
|
parts.push(`- Testing: ${analysis.testFramework}`);
|
|
220
|
-
return parts.join(
|
|
275
|
+
return parts.join("\n");
|
|
221
276
|
}
|
|
222
277
|
function generateDependencySummary(analysis) {
|
|
223
|
-
const deps = (analysis.dependencies || [])
|
|
224
|
-
|
|
225
|
-
|
|
278
|
+
const deps = (analysis.dependencies || [])
|
|
279
|
+
.slice(0, 10)
|
|
280
|
+
.map((d) => `- ${d}`)
|
|
281
|
+
.join("\n");
|
|
282
|
+
const dev = (analysis.devDependencies || [])
|
|
283
|
+
.slice(0, 10)
|
|
284
|
+
.map((d) => `- ${d}`)
|
|
285
|
+
.join("\n");
|
|
286
|
+
return `#### Production\n${deps || "- (none)"}\n\n#### Development\n${dev || "- (none)"}`;
|
|
226
287
|
}
|
|
227
288
|
function generateModuleInterfaces(analysis) {
|
|
228
|
-
if (analysis.framework ===
|
|
289
|
+
if (analysis.framework === "MCP SDK") {
|
|
229
290
|
return `- registerTool(name: string, handler: (args) => Promise<unknown>)\n- connect(transport): Promise<void>`;
|
|
230
291
|
}
|
|
231
|
-
if (analysis.architecture.includes(
|
|
292
|
+
if (analysis.architecture.includes("API")) {
|
|
232
293
|
return `- handle(request): Response\n- service.process(input): Result`;
|
|
233
294
|
}
|
|
234
295
|
return `- execute(input): Output`;
|
|
235
296
|
}
|
|
236
297
|
function generateEnvVars(analysis) {
|
|
237
|
-
const envs = [
|
|
238
|
-
if (analysis.framework ===
|
|
239
|
-
envs.push(
|
|
240
|
-
return envs.map(e => `- ${e}`).join(
|
|
298
|
+
const envs = ["NODE_ENV", "LOG_LEVEL"];
|
|
299
|
+
if (analysis.framework === "MCP SDK")
|
|
300
|
+
envs.push("MCP_MODE");
|
|
301
|
+
return envs.map((e) => `- ${e}`).join("\n");
|
|
241
302
|
}
|
|
242
303
|
function generateBuildConfig(analysis) {
|
|
243
304
|
if (analysis.buildTool)
|
|
244
305
|
return `Use ${analysis.buildTool} to emit production artifacts`;
|
|
245
|
-
return
|
|
306
|
+
return "Use npm scripts (build/test/lint) defined in package.json";
|
|
246
307
|
}
|
|
247
308
|
function generateImplementationTasks(analysis) {
|
|
248
309
|
// Phase 1: Test Setup (RED - Write Failing Tests First)
|
|
249
310
|
const testSetup = [
|
|
250
311
|
{
|
|
251
|
-
title:
|
|
312
|
+
title: "Set up test infrastructure",
|
|
252
313
|
subtasks: [
|
|
253
|
-
`Install/configure ${analysis.testFramework ||
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
314
|
+
`Install/configure ${analysis.testFramework || "Jest/pytest/JUnit"} test framework`,
|
|
315
|
+
"Create test directory structure (__tests__, test/, spec/)",
|
|
316
|
+
"Configure test runner and coverage tools",
|
|
317
|
+
"Set up test utilities and helpers",
|
|
257
318
|
],
|
|
258
|
-
requirements:
|
|
319
|
+
requirements: "NFR-3 (Quality Standards)",
|
|
259
320
|
},
|
|
260
321
|
{
|
|
261
|
-
title:
|
|
322
|
+
title: "Write failing tests for core functionality",
|
|
262
323
|
subtasks: [
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
324
|
+
"Write unit tests for main feature components",
|
|
325
|
+
"Write integration tests for component interactions",
|
|
326
|
+
"Write edge case and error handling tests",
|
|
327
|
+
"Confirm all tests fail (RED phase) - no implementation yet",
|
|
267
328
|
],
|
|
268
|
-
requirements:
|
|
269
|
-
}
|
|
329
|
+
requirements: "FR-1 (Core Functionality)",
|
|
330
|
+
},
|
|
270
331
|
];
|
|
271
332
|
// Phase 2: Implementation (GREEN - Make Tests Pass)
|
|
272
333
|
const implementation = [
|
|
273
334
|
{
|
|
274
|
-
title:
|
|
335
|
+
title: "Set up project scaffolding",
|
|
275
336
|
subtasks: [
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
337
|
+
"Initialize directories following project structure",
|
|
338
|
+
"Configure build scripts and package.json",
|
|
339
|
+
"Set up environment configuration",
|
|
279
340
|
],
|
|
280
|
-
requirements:
|
|
341
|
+
requirements: "FR-1, NFR-3",
|
|
281
342
|
},
|
|
282
343
|
{
|
|
283
|
-
title:
|
|
344
|
+
title: "Implement minimal code to pass tests",
|
|
284
345
|
subtasks: [
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
346
|
+
"Implement core feature logic to satisfy tests",
|
|
347
|
+
"Add necessary dependencies and modules",
|
|
348
|
+
"Ensure all tests pass (GREEN phase)",
|
|
349
|
+
"Do not add extra features beyond test requirements",
|
|
289
350
|
],
|
|
290
|
-
requirements:
|
|
351
|
+
requirements: "FR-1 (Core Functionality)",
|
|
291
352
|
},
|
|
292
353
|
{
|
|
293
|
-
title:
|
|
354
|
+
title: "Verify test coverage",
|
|
294
355
|
subtasks: [
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
356
|
+
"Run coverage report (aim for 80%+ coverage)",
|
|
357
|
+
"Identify uncovered code paths",
|
|
358
|
+
"Add tests for uncovered branches",
|
|
359
|
+
"Document any intentionally untested code",
|
|
299
360
|
],
|
|
300
|
-
requirements:
|
|
301
|
-
}
|
|
361
|
+
requirements: "NFR-3 (Quality Standards)",
|
|
362
|
+
},
|
|
302
363
|
];
|
|
303
364
|
// Phase 3: Refactoring (REFACTOR - Improve Code Quality)
|
|
304
365
|
const refactoring = [
|
|
305
366
|
{
|
|
306
|
-
title:
|
|
367
|
+
title: "Refactor for code quality and maintainability",
|
|
307
368
|
subtasks: [
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
369
|
+
"Extract reusable components/functions (DRY principle)",
|
|
370
|
+
"Improve naming (variables, functions, classes)",
|
|
371
|
+
"Remove code duplication",
|
|
372
|
+
"Apply design patterns where appropriate",
|
|
373
|
+
"All tests must still pass after refactoring",
|
|
313
374
|
],
|
|
314
|
-
requirements:
|
|
375
|
+
requirements: "NFR-3 (Maintainability)",
|
|
315
376
|
},
|
|
316
377
|
{
|
|
317
|
-
title:
|
|
378
|
+
title: "Code quality validation",
|
|
318
379
|
subtasks: [
|
|
319
|
-
|
|
320
|
-
analysis.language ===
|
|
321
|
-
|
|
322
|
-
|
|
380
|
+
"Run linter and fix all issues",
|
|
381
|
+
analysis.language === "typescript"
|
|
382
|
+
? "Run type checker (tsc --noEmit)"
|
|
383
|
+
: "Run static analysis",
|
|
384
|
+
"Apply Linus-style code review principles (see linus-review.md)",
|
|
385
|
+
"Peer review or self-review checklist",
|
|
323
386
|
],
|
|
324
|
-
requirements:
|
|
325
|
-
}
|
|
387
|
+
requirements: "NFR-3 (Quality Standards)",
|
|
388
|
+
},
|
|
326
389
|
];
|
|
327
390
|
// Phase 4: Integration & Documentation
|
|
328
391
|
const integration = [
|
|
329
392
|
{
|
|
330
|
-
title:
|
|
393
|
+
title: "Integration with existing system",
|
|
331
394
|
subtasks: [
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
395
|
+
"Integrate with build system",
|
|
396
|
+
"Update configuration files",
|
|
397
|
+
"Test in development environment",
|
|
398
|
+
"Verify compatibility with existing code",
|
|
336
399
|
],
|
|
337
|
-
requirements:
|
|
400
|
+
requirements: "FR-2, NFR-2 (Technology Integration, Reliability)",
|
|
338
401
|
},
|
|
339
402
|
{
|
|
340
|
-
title:
|
|
403
|
+
title: "Documentation and deployment preparation",
|
|
341
404
|
subtasks: [
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
405
|
+
"Update API documentation",
|
|
406
|
+
"Add inline code comments for complex logic",
|
|
407
|
+
"Update README/CHANGELOG if needed",
|
|
408
|
+
"Prepare deployment configuration",
|
|
346
409
|
],
|
|
347
|
-
requirements:
|
|
348
|
-
}
|
|
410
|
+
requirements: "NFR-3 (Maintainability)",
|
|
411
|
+
},
|
|
349
412
|
];
|
|
350
413
|
// Tailor tasks based on detected framework/architecture
|
|
351
|
-
if (analysis.framework ===
|
|
414
|
+
if (analysis.framework === "MCP SDK") {
|
|
352
415
|
testSetup.push({
|
|
353
|
-
title:
|
|
416
|
+
title: "Write tests for MCP tool handlers",
|
|
354
417
|
subtasks: [
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
418
|
+
"Test tool registration and discovery",
|
|
419
|
+
"Test stdio transport communication",
|
|
420
|
+
"Test tool argument validation",
|
|
421
|
+
"Test tool response formatting",
|
|
359
422
|
],
|
|
360
|
-
requirements:
|
|
423
|
+
requirements: "FR-2 (MCP Integration)",
|
|
361
424
|
});
|
|
362
425
|
implementation.splice(1, 0, {
|
|
363
|
-
title:
|
|
426
|
+
title: "Implement MCP tool handlers to pass tests",
|
|
364
427
|
subtasks: [
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
428
|
+
"Register MCP tools with server",
|
|
429
|
+
"Handle stdio transport communication",
|
|
430
|
+
"Implement tool argument validation",
|
|
431
|
+
"Format tool responses per MCP spec",
|
|
369
432
|
],
|
|
370
|
-
requirements:
|
|
433
|
+
requirements: "FR-2 (MCP Integration)",
|
|
371
434
|
});
|
|
372
435
|
}
|
|
373
|
-
if (analysis.architecture.includes(
|
|
436
|
+
if (analysis.architecture.includes("API")) {
|
|
374
437
|
testSetup.push({
|
|
375
|
-
title:
|
|
438
|
+
title: "Write tests for HTTP endpoints",
|
|
376
439
|
subtasks: [
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
440
|
+
"Test route definitions and HTTP methods",
|
|
441
|
+
"Test request validation and error responses",
|
|
442
|
+
"Test successful response formats",
|
|
443
|
+
"Test authentication/authorization if needed",
|
|
381
444
|
],
|
|
382
|
-
requirements:
|
|
445
|
+
requirements: "FR-1, FR-2 (API Functionality)",
|
|
383
446
|
});
|
|
384
447
|
implementation.splice(1, 0, {
|
|
385
|
-
title:
|
|
448
|
+
title: "Implement HTTP endpoints to pass tests",
|
|
386
449
|
subtasks: [
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
450
|
+
"Define routes and HTTP methods",
|
|
451
|
+
"Implement request handlers",
|
|
452
|
+
"Add input validation middleware",
|
|
453
|
+
"Implement error handling middleware",
|
|
391
454
|
],
|
|
392
|
-
requirements:
|
|
455
|
+
requirements: "FR-1, FR-2 (API Functionality)",
|
|
393
456
|
});
|
|
394
457
|
}
|
|
395
458
|
// Add database tests if database framework detected
|
|
396
|
-
if (analysis.dependencies?.some((d) => [
|
|
459
|
+
if (analysis.dependencies?.some((d) => ["mongoose", "sequelize", "typeorm", "prisma"].includes(d))) {
|
|
397
460
|
testSetup.push({
|
|
398
|
-
title:
|
|
461
|
+
title: "Write tests for data persistence",
|
|
399
462
|
subtasks: [
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
463
|
+
"Set up test database or mocks",
|
|
464
|
+
"Test CRUD operations",
|
|
465
|
+
"Test data validation rules",
|
|
466
|
+
"Test error handling for DB failures",
|
|
404
467
|
],
|
|
405
|
-
requirements:
|
|
468
|
+
requirements: "FR-2, NFR-2 (Data Integration, Reliability)",
|
|
406
469
|
});
|
|
407
470
|
}
|
|
471
|
+
// Apply governance enforcement to all task arrays
|
|
472
|
+
const governedTestSetup = enforceGovernance(testSetup);
|
|
473
|
+
const governedImplementation = enforceGovernance(implementation);
|
|
474
|
+
const governedRefactoring = enforceGovernance(refactoring);
|
|
475
|
+
const governedIntegration = enforceGovernance(integration);
|
|
408
476
|
return {
|
|
409
|
-
testSetup,
|
|
410
|
-
implementation,
|
|
411
|
-
refactoring,
|
|
412
|
-
integration
|
|
477
|
+
testSetup: governedTestSetup,
|
|
478
|
+
implementation: governedImplementation,
|
|
479
|
+
refactoring: governedRefactoring,
|
|
480
|
+
integration: governedIntegration,
|
|
413
481
|
};
|
|
414
482
|
}
|
|
415
483
|
//# sourceMappingURL=specGenerator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specGenerator.js","sourceRoot":"","sources":["../../src/utils/specGenerator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAAC,WAAmB,EAAE,WAAmB;IACzF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,IAAI,oCAAoC,CAAC;IAC1E,MAAM,GAAG,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,0BAA0B,CAAC,QAAQ,CAAC;SACpD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;SAC/B,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;EAGP,WAAW;;eAEE,QAAQ,CAAC,IAAI;mBACT,IAAI;;gBAEP,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;;;iBAKvB,GAAG;;;EAGlB,UAAU;;;;;;EAMV,wBAAwB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;EAM7E,2BAA2B,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;CAejF,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,WAAmB,EAAE,WAAmB;IACnF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,UAAU,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5G,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7G,MAAM,SAAS,GAAG,yBAAyB,CAAC,QAAQ,CAAC,CAAC;IAEtD,OAAO;;cAEK,WAAW;;oBAEL,QAAQ,CAAC,IAAI;oBACb,QAAQ,CAAC,YAAY;gBACzB,QAAQ,CAAC,QAAQ;;gBAEjB,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;;;EAKtC,IAAI;;;EAGJ,UAAU;;;EAGV,UAAU;;;;;EAKV,SAAS;;;EAGT,yBAAyB,CAAC,QAAQ,CAAC;;;;;EAKnC,wBAAwB,CAAC,QAAQ,CAAC;;;;;EAKlC,eAAe,CAAC,QAAQ,CAAC;;;EAGzB,mBAAmB,CAAC,QAAQ,CAAC;CAC9B,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,WAAmB,EAAE,WAAmB;IAClF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,KAAK,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAEpD,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,IAAwE,EAAE,EAAE,CAC1G,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK;IACvD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC5B,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEtD,OAAO;;cAEK,WAAW;;oBAEL,QAAQ,CAAC,IAAI;sBACX,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,SAAS,IAAI,EAAE,EAAE,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;sBACnG,QAAQ,CAAC,aAAa,IAAI,4BAA4B;;gBAE5D,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;;;;;;EAQtC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC;;;;EAItC,OAAO,CAAC,gBAAgB,EAAE,KAAK,CAAC,cAAc,CAAC;;;;EAI/C,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC;;;;EAIzC,OAAO,CAAC,aAAa,EAAE,KAAK,CAAC,WAAW,CAAC;;;;;;CAM1C,CAAC;AACF,CAAC;AAED,oEAAoE;AACpE,SAAS,qBAAqB,CAAC,QAAa;IAC1C,IAAI,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,2BAA2B,CAAC;QAAE,OAAO,yDAAyD,CAAC;IACnI,IAAI,QAAQ,CAAC,SAAS,KAAK,YAAY;QAAE,OAAO,yDAAyD,CAAC;IAC1G,IAAI,QAAQ,CAAC,SAAS,KAAK,OAAO;QAAE,OAAO,wDAAwD,CAAC;IACpG,OAAO,6EAA6E,CAAC;AACvF,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAa;IAC/C,MAAM,QAAQ,GAAG;QACf,2DAA2D;QAC3D,4DAA4D;QAC5D,4DAA4D;KAC7D,CAAC;IACF,IAAI,QAAQ,CAAC,aAAa;QAAE,QAAQ,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IACtG,IAAI,QAAQ,CAAC,QAAQ,KAAK,YAAY;QAAE,QAAQ,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IAClH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAa;IAC7C,MAAM,GAAG,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC9D,IAAI,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,2BAA2B,CAAC;QAAE,GAAG,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACpH,IAAI,QAAQ,CAAC,SAAS;QAAE,GAAG,CAAC,IAAI,CAAC,iCAAiC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACxF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAa;IAChD,MAAM,GAAG,GAAG,CAAC,mCAAmC,EAAE,kCAAkC,CAAC,CAAC;IACtF,IAAI,QAAQ,CAAC,aAAa;QAAE,GAAG,CAAC,IAAI,CAAC,WAAW,QAAQ,CAAC,aAAa,qBAAqB,CAAC,CAAC;IAC7F,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,oBAAoB,CAAC,QAAa;IACzC,IAAI,QAAQ,CAAC,YAAY,KAAK,4BAA4B;QAAE,OAAO,gEAAgE,CAAC;IACpI,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,qEAAqE,CAAC;IACxH,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,0DAA0D,CAAC;IACxG,OAAO,QAAQ,CAAC,YAAY,IAAI,wDAAwD,CAAC;AAC3F,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAa;IAC1C,MAAM,KAAK,GAAG,EAAkD,CAAC;IACjE,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,2CAA2C,EAAE,CAAC,CAAC;QAC5F,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,+DAA+D,EAAE,CAAC,CAAC;IACrH,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,qBAAqB,EAAE,CAAC,CAAC;QACxE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,uCAAuC,EAAE,CAAC,CAAC;IACjH,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAa;IACvC,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;QAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC7E,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;IAChF,OAAO,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAa;IAC9C,MAAM,KAAK,GAAG,EAAc,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC;IACjH,IAAI,QAAQ,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACzE,IAAI,QAAQ,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;IACrE,IAAI,QAAQ,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC/E,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,yBAAyB,CAAC,QAAa;IAC9C,MAAM,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChG,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClG,OAAO,oBAAoB,IAAI,IAAI,UAAU,yBAAyB,GAAG,IAAI,UAAU,EAAE,CAAC;AAC5F,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAa;IAC7C,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,wGAAwG,CAAC;IAClH,CAAC;IACD,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,OAAO,+DAA+D,CAAC;IACzE,CAAC;IACD,OAAO,0BAA0B,CAAC;AACpC,CAAC;AAED,SAAS,eAAe,CAAC,QAAa;IACpC,MAAM,IAAI,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACvC,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;QAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAa;IACxC,IAAI,QAAQ,CAAC,SAAS;QAAE,OAAO,OAAO,QAAQ,CAAC,SAAS,+BAA+B,CAAC;IACxF,OAAO,2DAA2D,CAAC;AACrE,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAa;IAChD,wDAAwD;IACxD,MAAM,SAAS,GAAG;QAChB;YACE,KAAK,EAAE,4BAA4B;YACnC,QAAQ,EAAE;gBACR,qBAAqB,QAAQ,CAAC,aAAa,IAAI,mBAAmB,iBAAiB;gBACnF,2DAA2D;gBAC3D,0CAA0C;gBAC1C,mCAAmC;aACpC;YACD,YAAY,EAAE,2BAA2B;SAC1C;QACD;YACE,KAAK,EAAE,4CAA4C;YACnD,QAAQ,EAAE;gBACR,8CAA8C;gBAC9C,oDAAoD;gBACpD,0CAA0C;gBAC1C,4DAA4D;aAC7D;YACD,YAAY,EAAE,2BAA2B;SAC1C;KACF,CAAC;IAEF,oDAAoD;IACpD,MAAM,cAAc,GAAG;QACrB;YACE,KAAK,EAAE,4BAA4B;YACnC,QAAQ,EAAE;gBACR,oDAAoD;gBACpD,0CAA0C;gBAC1C,kCAAkC;aACnC;YACD,YAAY,EAAE,aAAa;SAC5B;QACD;YACE,KAAK,EAAE,sCAAsC;YAC7C,QAAQ,EAAE;gBACR,+CAA+C;gBAC/C,wCAAwC;gBACxC,qCAAqC;gBACrC,oDAAoD;aACrD;YACD,YAAY,EAAE,2BAA2B;SAC1C;QACD;YACE,KAAK,EAAE,sBAAsB;YAC7B,QAAQ,EAAE;gBACR,6CAA6C;gBAC7C,+BAA+B;gBAC/B,kCAAkC;gBAClC,0CAA0C;aAC3C;YACD,YAAY,EAAE,2BAA2B;SAC1C;KACF,CAAC;IAEF,yDAAyD;IACzD,MAAM,WAAW,GAAG;QAClB;YACE,KAAK,EAAE,+CAA+C;YACtD,QAAQ,EAAE;gBACR,uDAAuD;gBACvD,gDAAgD;gBAChD,yBAAyB;gBACzB,yCAAyC;gBACzC,6CAA6C;aAC9C;YACD,YAAY,EAAE,yBAAyB;SACxC;QACD;YACE,KAAK,EAAE,yBAAyB;YAChC,QAAQ,EAAE;gBACR,+BAA+B;gBAC/B,QAAQ,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,qBAAqB;gBAC9F,gEAAgE;gBAChE,sCAAsC;aACvC;YACD,YAAY,EAAE,2BAA2B;SAC1C;KACF,CAAC;IAEF,uCAAuC;IACvC,MAAM,WAAW,GAAG;QAClB;YACE,KAAK,EAAE,kCAAkC;YACzC,QAAQ,EAAE;gBACR,6BAA6B;gBAC7B,4BAA4B;gBAC5B,iCAAiC;gBACjC,yCAAyC;aAC1C;YACD,YAAY,EAAE,mDAAmD;SAClE;QACD;YACE,KAAK,EAAE,0CAA0C;YACjD,QAAQ,EAAE;gBACR,0BAA0B;gBAC1B,4CAA4C;gBAC5C,mCAAmC;gBACnC,kCAAkC;aACnC;YACD,YAAY,EAAE,yBAAyB;SACxC;KACF,CAAC;IAEF,wDAAwD;IACxD,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACrC,SAAS,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,mCAAmC;YAC1C,QAAQ,EAAE;gBACR,sCAAsC;gBACtC,oCAAoC;gBACpC,+BAA+B;gBAC/B,+BAA+B;aAChC;YACD,YAAY,EAAE,wBAAwB;SACvC,CAAC,CAAC;QAEH,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;YAC1B,KAAK,EAAE,2CAA2C;YAClD,QAAQ,EAAE;gBACR,gCAAgC;gBAChC,sCAAsC;gBACtC,oCAAoC;gBACpC,oCAAoC;aACrC;YACD,YAAY,EAAE,wBAAwB;SACvC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1C,SAAS,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,gCAAgC;YACvC,QAAQ,EAAE;gBACR,yCAAyC;gBACzC,6CAA6C;gBAC7C,kCAAkC;gBAClC,6CAA6C;aAC9C;YACD,YAAY,EAAE,gCAAgC;SAC/C,CAAC,CAAC;QAEH,cAAc,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;YAC1B,KAAK,EAAE,wCAAwC;YAC/C,QAAQ,EAAE;gBACR,gCAAgC;gBAChC,4BAA4B;gBAC5B,iCAAiC;gBACjC,qCAAqC;aACtC;YACD,YAAY,EAAE,gCAAgC;SAC/C,CAAC,CAAC;IACL,CAAC;IAED,oDAAoD;IACpD,IAAI,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3G,SAAS,CAAC,IAAI,CAAC;YACb,KAAK,EAAE,kCAAkC;YACzC,QAAQ,EAAE;gBACR,+BAA+B;gBAC/B,sBAAsB;gBACtB,4BAA4B;gBAC5B,qCAAqC;aACtC;YACD,YAAY,EAAE,6CAA6C;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,SAAS;QACT,cAAc;QACd,WAAW;QACX,WAAW;KACZ,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"specGenerator.js","sourceRoot":"","sources":["../../src/utils/specGenerator.ts"],"names":[],"mappings":"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"}
|