specky-sdd 3.4.0 → 3.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 (114) hide show
  1. package/.apm/hooks/scripts/ears-validator.sh +56 -17
  2. package/.apm/prompts/specky-api.prompt.md +1 -1
  3. package/.apm/prompts/specky-research.prompt.md +2 -2
  4. package/.apm/skills/research-analyst/SKILL.md +2 -2
  5. package/.apm/skills/specky-onboarding/SKILL.md +6 -4
  6. package/CHANGELOG.md +58 -0
  7. package/README.md +39 -10
  8. package/SECURITY.md +15 -8
  9. package/apm.yml +1 -1
  10. package/config.yml +1 -1
  11. package/dist/cli/commands/serve.d.ts.map +1 -1
  12. package/dist/cli/commands/serve.js +3 -2
  13. package/dist/cli/commands/serve.js.map +1 -1
  14. package/dist/cli/index.js +3 -1
  15. package/dist/cli/index.js.map +1 -1
  16. package/dist/config.d.ts +24 -1
  17. package/dist/config.d.ts.map +1 -1
  18. package/dist/config.js +92 -6
  19. package/dist/config.js.map +1 -1
  20. package/dist/index.js +63 -14
  21. package/dist/index.js.map +1 -1
  22. package/dist/services/audit-logger.d.ts +54 -5
  23. package/dist/services/audit-logger.d.ts.map +1 -1
  24. package/dist/services/audit-logger.js +121 -9
  25. package/dist/services/audit-logger.js.map +1 -1
  26. package/dist/services/diagram-generator.d.ts +53 -4
  27. package/dist/services/diagram-generator.d.ts.map +1 -1
  28. package/dist/services/diagram-generator.js +565 -178
  29. package/dist/services/diagram-generator.js.map +1 -1
  30. package/dist/services/doc-generator.d.ts +44 -0
  31. package/dist/services/doc-generator.d.ts.map +1 -1
  32. package/dist/services/doc-generator.js +352 -50
  33. package/dist/services/doc-generator.js.map +1 -1
  34. package/dist/services/document-converter.d.ts +10 -7
  35. package/dist/services/document-converter.d.ts.map +1 -1
  36. package/dist/services/document-converter.js +113 -38
  37. package/dist/services/document-converter.js.map +1 -1
  38. package/dist/services/file-manager.d.ts.map +1 -1
  39. package/dist/services/file-manager.js +9 -3
  40. package/dist/services/file-manager.js.map +1 -1
  41. package/dist/services/iac-generator.d.ts +31 -3
  42. package/dist/services/iac-generator.d.ts.map +1 -1
  43. package/dist/services/iac-generator.js +509 -41
  44. package/dist/services/iac-generator.js.map +1 -1
  45. package/dist/services/pbt-generator.d.ts +12 -0
  46. package/dist/services/pbt-generator.d.ts.map +1 -1
  47. package/dist/services/pbt-generator.js +296 -145
  48. package/dist/services/pbt-generator.js.map +1 -1
  49. package/dist/services/state-machine.d.ts +15 -1
  50. package/dist/services/state-machine.d.ts.map +1 -1
  51. package/dist/services/state-machine.js +21 -3
  52. package/dist/services/state-machine.js.map +1 -1
  53. package/dist/services/test-generator.d.ts +8 -0
  54. package/dist/services/test-generator.d.ts.map +1 -1
  55. package/dist/services/test-generator.js +134 -33
  56. package/dist/services/test-generator.js.map +1 -1
  57. package/dist/services/test-traceability-mapper.d.ts.map +1 -1
  58. package/dist/services/test-traceability-mapper.js +8 -3
  59. package/dist/services/test-traceability-mapper.js.map +1 -1
  60. package/dist/services/work-item-exporter.d.ts +70 -9
  61. package/dist/services/work-item-exporter.d.ts.map +1 -1
  62. package/dist/services/work-item-exporter.js +115 -53
  63. package/dist/services/work-item-exporter.js.map +1 -1
  64. package/dist/templates/checklist.md +2 -3
  65. package/dist/templates/cross-analysis.md +2 -4
  66. package/dist/tools/audit.js +1 -1
  67. package/dist/tools/audit.js.map +1 -1
  68. package/dist/tools/documentation.d.ts.map +1 -1
  69. package/dist/tools/documentation.js +9 -3
  70. package/dist/tools/documentation.js.map +1 -1
  71. package/dist/tools/environment.d.ts.map +1 -1
  72. package/dist/tools/environment.js +75 -12
  73. package/dist/tools/environment.js.map +1 -1
  74. package/dist/tools/infrastructure.d.ts.map +1 -1
  75. package/dist/tools/infrastructure.js +7 -39
  76. package/dist/tools/infrastructure.js.map +1 -1
  77. package/dist/tools/input.js +4 -4
  78. package/dist/tools/input.js.map +1 -1
  79. package/dist/tools/integration.js +4 -4
  80. package/dist/tools/integration.js.map +1 -1
  81. package/dist/tools/pipeline.d.ts.map +1 -1
  82. package/dist/tools/pipeline.js +42 -4
  83. package/dist/tools/pipeline.js.map +1 -1
  84. package/dist/tools/quality.d.ts.map +1 -1
  85. package/dist/tools/quality.js +36 -9
  86. package/dist/tools/quality.js.map +1 -1
  87. package/dist/tools/rbac.d.ts.map +1 -1
  88. package/dist/tools/rbac.js +18 -11
  89. package/dist/tools/rbac.js.map +1 -1
  90. package/dist/tools/testing.d.ts +10 -0
  91. package/dist/tools/testing.d.ts.map +1 -1
  92. package/dist/tools/testing.js +66 -13
  93. package/dist/tools/testing.js.map +1 -1
  94. package/dist/tools/tool-enforcement.d.ts +15 -1
  95. package/dist/tools/tool-enforcement.d.ts.map +1 -1
  96. package/dist/tools/tool-enforcement.js +70 -9
  97. package/dist/tools/tool-enforcement.js.map +1 -1
  98. package/dist/tools/transcript.d.ts.map +1 -1
  99. package/dist/tools/transcript.js +66 -41
  100. package/dist/tools/transcript.js.map +1 -1
  101. package/dist/tools/utility.d.ts.map +1 -1
  102. package/dist/tools/utility.js +22 -12
  103. package/dist/tools/utility.js.map +1 -1
  104. package/dist/tools/visualization.d.ts +21 -0
  105. package/dist/tools/visualization.d.ts.map +1 -1
  106. package/dist/tools/visualization.js +130 -29
  107. package/dist/tools/visualization.js.map +1 -1
  108. package/dist/utils/token-table.d.ts +41 -0
  109. package/dist/utils/token-table.d.ts.map +1 -0
  110. package/dist/utils/token-table.js +103 -0
  111. package/dist/utils/token-table.js.map +1 -0
  112. package/package.json +1 -1
  113. package/templates/checklist.md +2 -3
  114. package/templates/cross-analysis.md +2 -4
@@ -2,6 +2,12 @@
2
2
  * DocumentConverter — Converts PDF, DOCX, PPTX, TXT, MD to Markdown.
3
3
  * MVP implementation uses built-in parsing. Enhanced conversion with
4
4
  * mammoth/pdfjs-dist available when those dependencies are installed.
5
+ *
6
+ * HONESTY CONTRACT: the built-in extractor only handles uncompressed
7
+ * (stored) Office zips and uncompressed PDF text streams. Compressed
8
+ * content — which is what Word/PowerPoint/PDF exporters actually
9
+ * produce — FAILS with an actionable error instead of returning
10
+ * gibberish or empty text presented as success.
5
11
  */
6
12
  import { extname, basename } from "node:path";
7
13
  /** Strip XML/HTML tags iteratively until none remain (CodeQL-safe) */
@@ -14,6 +20,61 @@ function stripXmlTags(input) {
14
20
  }
15
21
  return result;
16
22
  }
23
+ /** Decode the five predefined XML entities. */
24
+ function decodeXmlEntities(input) {
25
+ return input
26
+ .replace(/&lt;/g, "<")
27
+ .replace(/&gt;/g, ">")
28
+ .replace(/&quot;/g, '"')
29
+ .replace(/&apos;/g, "'")
30
+ .replace(/&amp;/g, "&");
31
+ }
32
+ /** Actionable failure for compressed content the built-in extractor cannot read. */
33
+ function unsupportedCompressedError(format) {
34
+ return new Error(`compressed ${format} not supported natively — convert to md/txt or use the MarkItDown MCP integration (add to MCP settings: uvx markitdown-mcp). ` +
35
+ `Specky's built-in extractor only reads uncompressed (stored) ${format} content; real-world ${format} files from Office/PDF exporters are compressed and would otherwise yield garbage.`);
36
+ }
37
+ const ZIP_LOCAL_HEADER_SIGNATURE = Buffer.from([0x50, 0x4b, 0x03, 0x04]);
38
+ /**
39
+ * Parse zip local file headers without decompressing anything.
40
+ * Enough structure to (a) locate an entry by exact name, (b) know whether
41
+ * its data is stored or compressed, and (c) slice the stored bytes.
42
+ */
43
+ function parseZipEntries(zipBuffer) {
44
+ const entries = [];
45
+ let offset = zipBuffer.indexOf(ZIP_LOCAL_HEADER_SIGNATURE);
46
+ while (offset !== -1 && offset + 30 <= zipBuffer.length) {
47
+ const compressionMethod = zipBuffer.readUInt16LE(offset + 8);
48
+ let compressedSize = zipBuffer.readUInt32LE(offset + 18);
49
+ const nameLength = zipBuffer.readUInt16LE(offset + 26);
50
+ const extraLength = zipBuffer.readUInt16LE(offset + 28);
51
+ const dataStart = offset + 30 + nameLength + extraLength;
52
+ if (dataStart > zipBuffer.length)
53
+ break;
54
+ const name = zipBuffer.toString("utf8", offset + 30, offset + 30 + nameLength);
55
+ if (compressedSize === 0) {
56
+ // Data-descriptor entries record sizes after the data; scan to the next header.
57
+ const next = zipBuffer.indexOf(ZIP_LOCAL_HEADER_SIGNATURE, dataStart);
58
+ compressedSize = (next === -1 ? zipBuffer.length : next) - dataStart;
59
+ }
60
+ const dataEnd = Math.min(dataStart + compressedSize, zipBuffer.length);
61
+ entries.push({ name, compressionMethod, data: zipBuffer.subarray(dataStart, dataEnd) });
62
+ offset = zipBuffer.indexOf(ZIP_LOCAL_HEADER_SIGNATURE, dataEnd);
63
+ }
64
+ return entries;
65
+ }
66
+ /** Extract the joined text of all `<tag …>text</tag>` runs from OOXML. */
67
+ function extractXmlRunText(xml, tag) {
68
+ const escaped = tag.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
69
+ const runRegex = new RegExp(`<${escaped}(?:\\s[^>]*)?>([^<]*)</${escaped}>`, "g");
70
+ const parts = [];
71
+ let match;
72
+ while ((match = runRegex.exec(xml)) !== null) {
73
+ if (match[1])
74
+ parts.push(decodeXmlEntities(match[1]));
75
+ }
76
+ return parts.join(" ").replace(/\s+/g, " ").trim();
77
+ }
17
78
  export class DocumentConverter {
18
79
  fileManager;
19
80
  constructor(fileManager) {
@@ -101,7 +162,8 @@ export class DocumentConverter {
101
162
  }
102
163
  /**
103
164
  * DOCX → Markdown via XML extraction from zip.
104
- * MVP: extracts paragraph text from document.xml.
165
+ * Built-in extraction only handles uncompressed (stored) zips — compressed
166
+ * DOCX (what Word writes) fails honestly instead of returning gibberish.
105
167
  * Enhanced: use mammoth when available.
106
168
  */
107
169
  async convertDocx(filePath) {
@@ -121,9 +183,21 @@ export class DocumentConverter {
121
183
  }
122
184
  }
123
185
  catch { /* fall through to basic extraction */ }
124
- // Basic extraction: read as buffer, find text patterns
186
+ // Basic extraction: parse the zip's local headers and read the stored document body
125
187
  const content = await this.fileManager.readProjectFileBuffer(filePath);
126
- const text = this.extractTextFromXmlZip(content, "word/document.xml");
188
+ const entry = parseZipEntries(content).find((e) => e.name === "word/document.xml");
189
+ if (!entry) {
190
+ throw new Error(`No word/document.xml found in '${filePath}' — this is not a readable DOCX file. Convert it to md/txt or use the MarkItDown MCP integration (uvx markitdown-mcp).`);
191
+ }
192
+ if (entry.compressionMethod !== 0) {
193
+ throw unsupportedCompressedError("docx");
194
+ }
195
+ const xml = entry.data.toString("utf8");
196
+ const runText = extractXmlRunText(xml, "w:t");
197
+ const text = runText || stripXmlTags(xml).replace(/\s+/g, " ").trim();
198
+ if (!text) {
199
+ throw new Error(`No readable text extracted from '${filePath}'. The document body is empty or uses features the built-in extractor cannot handle — use the MarkItDown MCP integration (uvx markitdown-mcp).`);
200
+ }
127
201
  const title = basename(filePath, ".docx");
128
202
  const markdown = `# ${title}\n\n${text}`;
129
203
  return {
@@ -167,9 +241,18 @@ export class DocumentConverter {
167
241
  }
168
242
  }
169
243
  catch { /* fall through */ }
170
- // Fallback: basic text extraction from PDF bytes
244
+ // Fallback: basic text extraction from PDF bytes.
245
+ // Fails honestly when nothing can be extracted — a compressed or image-only
246
+ // PDF must not become an empty "success".
171
247
  const buffer = await this.fileManager.readProjectFileBuffer(filePath);
172
248
  const text = this.extractTextFromPdfBuffer(buffer);
249
+ if (!text) {
250
+ const binary = buffer.toString("binary");
251
+ if (/\/(?:Flate|LZW|DCT|RunLength|CCITTFax|JBIG2|JPX)Decode/.test(binary)) {
252
+ throw unsupportedCompressedError("pdf");
253
+ }
254
+ throw new Error(`No extractable text found in '${filePath}'. The PDF has no uncompressed text layer (it may be scanned or image-only) — convert it to md/txt or use the MarkItDown MCP integration (uvx markitdown-mcp).`);
255
+ }
173
256
  const title = basename(filePath, ".pdf");
174
257
  const markdown = `# ${title}\n\n${text}\n\n> Note: Basic PDF text extraction. Install pdfjs-dist for enhanced conversion.`;
175
258
  return {
@@ -181,17 +264,35 @@ export class DocumentConverter {
181
264
  }
182
265
  /**
183
266
  * PPTX → Markdown via XML extraction from zip.
184
- * MVP: extracts text from slide XML files.
267
+ * Built-in extraction only handles uncompressed (stored) zips — compressed
268
+ * PPTX (what PowerPoint writes) fails honestly instead of returning gibberish.
185
269
  */
186
270
  async convertPptx(filePath) {
187
271
  const content = await this.fileManager.readProjectFileBuffer(filePath);
188
- const slides = [];
189
272
  // PPTX is a zip with ppt/slides/slide1.xml, slide2.xml, etc.
190
- for (let i = 1; i <= 100; i++) {
191
- const slideText = this.extractTextFromXmlZip(content, `ppt/slides/slide${i}.xml`);
192
- if (!slideText)
193
- break;
194
- slides.push(`## Slide ${i}\n\n${slideText}`);
273
+ const slideEntries = parseZipEntries(content)
274
+ .map((entry) => {
275
+ const match = entry.name.match(/^ppt\/slides\/slide(\d+)\.xml$/);
276
+ return match ? { entry, index: Number(match[1]) } : null;
277
+ })
278
+ .filter((s) => s !== null)
279
+ .sort((a, b) => a.index - b.index);
280
+ if (slideEntries.length === 0) {
281
+ throw new Error(`No slides found in '${filePath}' — this is not a readable PPTX file. Convert it to md/txt or use the MarkItDown MCP integration (uvx markitdown-mcp).`);
282
+ }
283
+ if (slideEntries.some((s) => s.entry.compressionMethod !== 0)) {
284
+ throw unsupportedCompressedError("pptx");
285
+ }
286
+ const slides = [];
287
+ for (const { entry, index } of slideEntries) {
288
+ const xml = entry.data.toString("utf8");
289
+ const runText = extractXmlRunText(xml, "a:t");
290
+ const slideText = runText || stripXmlTags(xml).replace(/\s+/g, " ").trim();
291
+ if (slideText)
292
+ slides.push(`## Slide ${index}\n\n${slideText}`);
293
+ }
294
+ if (slides.length === 0) {
295
+ throw new Error(`No readable slide text extracted from '${filePath}'. The slides are empty or use features the built-in extractor cannot handle — use the MarkItDown MCP integration (uvx markitdown-mcp).`);
195
296
  }
196
297
  const title = basename(filePath, ".pptx");
197
298
  const markdown = `# ${title}\n\n${slides.join("\n\n---\n\n")}`;
@@ -199,7 +300,7 @@ export class DocumentConverter {
199
300
  format: "pptx",
200
301
  markdown,
201
302
  metadata: { title, sections: slides.map((_, i) => `Slide ${i + 1}`), source_file: filePath },
202
- page_count: slides.length,
303
+ page_count: slideEntries.length,
203
304
  word_count: this.countWords(markdown),
204
305
  };
205
306
  }
@@ -236,32 +337,6 @@ export class DocumentConverter {
236
337
  word_count: this.countWords(text),
237
338
  };
238
339
  }
239
- /**
240
- * Extract text from an XML file inside a zip buffer.
241
- * Used for DOCX (word/document.xml) and PPTX (ppt/slides/slideN.xml).
242
- */
243
- extractTextFromXmlZip(zipBuffer, xmlPath) {
244
- // Simple zip parsing: find the XML file by name in the zip central directory
245
- const bufStr = zipBuffer.toString("binary");
246
- const pathIndex = bufStr.indexOf(xmlPath);
247
- if (pathIndex === -1)
248
- return "";
249
- // Find the local file header for this entry
250
- // Look backwards from the central directory entry to find the actual data
251
- // For MVP, extract all text between XML tags using regex
252
- const escapedPath = xmlPath.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
253
- const xmlMatch = bufStr.match(new RegExp(`${escapedPath}.*?PK`, "s"));
254
- if (!xmlMatch)
255
- return "";
256
- // Extract text content from XML tags (strip all tags iteratively)
257
- const xmlContent = xmlMatch[0];
258
- const textContent = stripXmlTags(xmlContent)
259
- .replace(/\s+/g, " ")
260
- .replace(/PK$/, "")
261
- .trim();
262
- // Clean up non-printable characters
263
- return textContent.replace(/[^\x20-\x7E\n\r\t]/g, "").trim();
264
- }
265
340
  /**
266
341
  * Basic text extraction from PDF buffer.
267
342
  * Looks for text streams between BT and ET markers.
@@ -1 +1 @@
1
- {"version":3,"file":"document-converter.js","sourceRoot":"","sources":["../../src/services/document-converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-converter.js","sourceRoot":"","sources":["../../src/services/document-converter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-manager.d.ts","sourceRoot":"","sources":["../../src/services/file-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9D,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,aAAa,EAAE,MAAM;IAIjC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;OAGG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAc1C;;OAEG;IACG,aAAa,CAAC,OAAO,GAAE,MAAyB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMxE;;;;OAIG;IACG,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,MAAM,CAAC;IAiClB;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzE;;OAEG;IACG,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU1D;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,MAAyB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA6B9E;;OAEG;IACG,aAAa,CACjB,GAAG,GAAE,MAAY,EACjB,KAAK,GAAE,MAA2B,EAClC,OAAO,GAAE,SAAS,MAAM,EAA6B,GACpD,OAAO,CAAC,aAAa,CAAC;IAMzB;;OAEG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5D;;OAEG;IACG,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlE;;OAEG;IACG,oBAAoB,CACxB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;YAsBN,UAAU;YASV,aAAa;CAoC5B"}
1
+ {"version":3,"file":"file-manager.d.ts","sourceRoot":"","sources":["../../src/services/file-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9D,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;gBAElB,aAAa,EAAE,MAAM;IAIjC,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;OAGG;IACH,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAsB1C;;OAEG;IACG,aAAa,CAAC,OAAO,GAAE,MAAyB,GAAG,OAAO,CAAC,MAAM,CAAC;IAMxE;;;;OAIG;IACG,aAAa,CACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,OAAe,GACrB,OAAO,CAAC,MAAM,CAAC;IAiClB;;OAEG;IACG,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzE;;OAEG;IACG,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD;;OAEG;IACG,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAU1D;;OAEG;IACG,YAAY,CAAC,OAAO,GAAE,MAAyB,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IA6B9E;;OAEG;IACG,aAAa,CACjB,GAAG,GAAE,MAAY,EACjB,KAAK,GAAE,MAA2B,EAClC,OAAO,GAAE,SAAS,MAAM,EAA6B,GACpD,OAAO,CAAC,aAAa,CAAC;IAMzB;;OAEG;IACG,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5D;;OAEG;IACG,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlE;;OAEG;IACG,oBAAoB,CACxB,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,SAAS,MAAM,EAAE,GAC5B,OAAO,CAAC,MAAM,EAAE,CAAC;YAsBN,UAAU;YASV,aAAa;CAoC5B"}
@@ -3,7 +3,7 @@
3
3
  * Path sanitization, atomic writes, directory scanning.
4
4
  */
5
5
  import { mkdir, readFile, writeFile, readdir, stat, rename, access, unlink } from "node:fs/promises";
6
- import { join, resolve, relative, basename, dirname } from "node:path";
6
+ import { join, resolve, relative, basename, dirname, sep } from "node:path";
7
7
  import { randomUUID } from "node:crypto";
8
8
  import { DEFAULT_SPEC_DIR, DEFAULT_EXCLUDE_PATTERNS, DEFAULT_SCAN_DEPTH, MAX_SCAN_DEPTH } from "../constants.js";
9
9
  export class FileManager {
@@ -19,14 +19,20 @@ export class FileManager {
19
19
  * Returns resolved absolute path within workspace.
20
20
  */
21
21
  sanitizePath(relativePath) {
22
- if (relativePath.startsWith("/") || relativePath.startsWith("\\")) {
22
+ // Reject absolute paths on every OS: POSIX ("/…"), UNC/Windows-separator
23
+ // ("\…"), and Windows drive-absolute ("C:\…"). The drive-letter form is not
24
+ // caught by a "/" or "\" prefix check and slips through on POSIX runtimes
25
+ // too, so guard it explicitly — mirrors the Zod specDirSchema guard.
26
+ if (relativePath.startsWith("/") ||
27
+ relativePath.startsWith("\\") ||
28
+ /^[a-zA-Z]:/.test(relativePath)) {
23
29
  throw new Error(`Absolute paths are not allowed: ${relativePath}`);
24
30
  }
25
31
  if (relativePath.includes("..")) {
26
32
  throw new Error(`Path traversal is not allowed: ${relativePath}`);
27
33
  }
28
34
  const resolved = resolve(this.root, relativePath);
29
- if (!resolved.startsWith(this.root)) {
35
+ if (resolved !== this.root && !resolved.startsWith(this.root + sep)) {
30
36
  throw new Error(`Path escapes workspace root: ${relativePath}`);
31
37
  }
32
38
  return resolved;
@@ -1 +1 @@
1
- {"version":3,"file":"file-manager.js","sourceRoot":"","sources":["../../src/services/file-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-manager.js","sourceRoot":"","sources":["../../src/services/file-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACrG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjH,MAAM,OAAO,WAAW;IACL,IAAI,CAAS;IAE9B,YAAY,aAAqB;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,YAAoB;QAC/B,yEAAyE;QACzE,4EAA4E;QAC5E,0EAA0E;QAC1E,qEAAqE;QACrE,IACE,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;YAC5B,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC;YAC7B,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,EAC/B,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,YAAY,EAAE,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;QAClD,IAAI,QAAQ,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACpE,MAAM,IAAI,KAAK,CAAC,gCAAgC,YAAY,EAAE,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,UAAkB,gBAAgB;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CACjB,UAAkB,EAClB,QAAgB,EAChB,OAAe,EACf,QAAiB,KAAK;QAEtB,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE9D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CACb,wBAAwB,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,iCAAiC,CACtF,CAAC;YACJ,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnD,2CAA2C;QAC3C,MAAM,QAAQ,GAAG,GAAG,OAAO,IAAI,UAAU,EAAE,MAAM,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;YAC5C,MAAM,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,gCAAgC;YAChC,IAAI,CAAC;gBACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,QAAgB;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9D,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,YAAoB;QACnC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAChD,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC1D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,UAAkB,gBAAgB;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAChF,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;oBACjD,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;wBACnD,QAAQ,CAAC,IAAI,CAAC;4BACZ,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;4BAChB,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;4BACd,SAAS,EAAE,UAAU;4BACrB,KAAK;yBACN,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,6BAA6B;QAC/B,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CACjB,MAAc,GAAG,EACjB,QAAgB,kBAAkB,EAClC,UAA6B,wBAAwB;QAErD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,YAAoB;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,YAAoB;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAChD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,oBAAoB,CACxB,GAAW,EACX,UAA6B;QAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAChE,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YAChF,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACnB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACvC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBAClD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,0BAA0B;IAElB,KAAK,CAAC,UAAU,CAAC,OAAe;QACtC,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC;YACtB,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,OAAe,EACf,IAAY,EACZ,KAAa,EACb,OAA0B;QAE1B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;QACrC,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAoB,EAAE,CAAC;QAErC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/D,SAAS;YACX,CAAC;YACD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAC5C,QAAQ,CAAC,IAAI,CACX,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,OAAO,CAAC,CACpE,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI;gBAAE,OAAO,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;IAC/C,CAAC;CACF"}
@@ -4,6 +4,23 @@
4
4
  */
5
5
  import type { FileManager } from "./file-manager.js";
6
6
  import type { IacResult, IacValidationResult, DevEnvironmentResult, IacProvider, CloudProvider } from "../types.js";
7
+ /** Tech stack named in DESIGN.md prose (as opposed to detected from code manifests). */
8
+ export interface DesignTechStack {
9
+ language: string;
10
+ framework?: string;
11
+ runtime: string;
12
+ }
13
+ /**
14
+ * Detect the tech stack named in DESIGN.md prose. Returns undefined when the
15
+ * design names no recognizable language/runtime so callers can pick their own
16
+ * fallback (codebase scan result, generic image, TypeScript default, ...).
17
+ */
18
+ export declare function detectTechStackFromDesign(designContent: string): DesignTechStack | undefined;
19
+ /**
20
+ * Detect docker-compose sidecar services from DESIGN.md prose and package.json
21
+ * dependencies (dependencies + devDependencies). Deterministic keyword scan.
22
+ */
23
+ export declare function detectServicesFromDesign(designContent: string, packageJsonContent?: string): string[];
7
24
  export declare class IacGenerator {
8
25
  private fileManager;
9
26
  constructor(fileManager: FileManager);
@@ -13,13 +30,24 @@ export declare class IacGenerator {
13
30
  language: string;
14
31
  framework?: string;
15
32
  runtime: string;
16
- }, includeCompose: boolean, multiStage: boolean): DevEnvironmentResult;
33
+ }, includeCompose: boolean, multiStage: boolean, services?: string[]): DevEnvironmentResult;
17
34
  generateDevcontainer(techStack: {
18
35
  language: string;
19
36
  framework?: string;
20
37
  }, features?: string[], extensions?: string[]): DevEnvironmentResult;
21
- private detectModules;
22
- private generateMainTf;
38
+ private generateCompose;
39
+ /**
40
+ * Detect concrete infrastructure components from DESIGN.md. Each component
41
+ * carries its module/category AND the specific service flavor named in the
42
+ * design (postgres vs mysql, container vs kubernetes, ...), so the emitted
43
+ * Terraform contains real resource blocks for what the design describes.
44
+ */
45
+ private detectComponents;
46
+ private renderCloud;
47
+ private componentResources;
48
+ private azureComponent;
49
+ private awsComponent;
50
+ private gcpComponent;
23
51
  private generateVariables;
24
52
  private generateVariablesTf;
25
53
  private generateOutputsTf;
@@ -1 +1 @@
1
- {"version":3,"file":"iac-generator.d.ts","sourceRoot":"","sources":["../../src/services/iac-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAwB,mBAAmB,EAAE,oBAAoB,EAAuB,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/J,qBAAa,YAAY;IACX,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAEtC,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IA+BzG,yBAAyB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAY5G,kBAAkB,CAAC,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,cAAc,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,oBAAoB;IAkC5J,oBAAoB,CAAC,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,oBAAoB;IAwC3I,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,mBAAmB;IAI3B,OAAO,CAAC,iBAAiB;CAG1B"}
1
+ {"version":3,"file":"iac-generator.d.ts","sourceRoot":"","sources":["../../src/services/iac-generator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,SAAS,EAAwB,mBAAmB,EAAE,oBAAoB,EAAuB,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE/J,wFAAwF;AACxF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CA0C5F;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBrG;AAsDD,qBAAa,YAAY;IACX,OAAO,CAAC,WAAW;gBAAX,WAAW,EAAE,WAAW;IAEtC,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC;IA+BzG,yBAAyB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB;IAY5G,kBAAkB,CAChB,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EACpE,cAAc,EAAE,OAAO,EACvB,UAAU,EAAE,OAAO,EACnB,QAAQ,GAAE,MAAM,EAAO,GACtB,oBAAoB;IAuCvB,oBAAoB,CAAC,SAAS,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,oBAAoB;IA8C3I,OAAO,CAAC,eAAe;IA8CvB;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,cAAc;IAwEtB,OAAO,CAAC,YAAY;IAwEpB,OAAO,CAAC,YAAY;IAqEpB,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,mBAAmB;IAS3B,OAAO,CAAC,iBAAiB;CAM1B"}