archdraw-mcp-server 1.0.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 (109) hide show
  1. package/dist/index.d.ts +3 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +757 -0
  4. package/dist/index.js.map +1 -0
  5. package/dist/lib/__tests__/constants.test.d.ts +2 -0
  6. package/dist/lib/__tests__/constants.test.d.ts.map +1 -0
  7. package/dist/lib/__tests__/constants.test.js +47 -0
  8. package/dist/lib/__tests__/constants.test.js.map +1 -0
  9. package/dist/lib/__tests__/diagram-state.test.d.ts +2 -0
  10. package/dist/lib/__tests__/diagram-state.test.d.ts.map +1 -0
  11. package/dist/lib/__tests__/diagram-state.test.js +75 -0
  12. package/dist/lib/__tests__/diagram-state.test.js.map +1 -0
  13. package/dist/lib/__tests__/elk-runner.test.d.ts +2 -0
  14. package/dist/lib/__tests__/elk-runner.test.d.ts.map +1 -0
  15. package/dist/lib/__tests__/elk-runner.test.js +87 -0
  16. package/dist/lib/__tests__/elk-runner.test.js.map +1 -0
  17. package/dist/lib/checkpoints.d.ts +48 -0
  18. package/dist/lib/checkpoints.d.ts.map +1 -0
  19. package/dist/lib/checkpoints.js +58 -0
  20. package/dist/lib/checkpoints.js.map +1 -0
  21. package/dist/lib/constants.d.ts +29 -0
  22. package/dist/lib/constants.d.ts.map +1 -0
  23. package/dist/lib/constants.js +62 -0
  24. package/dist/lib/constants.js.map +1 -0
  25. package/dist/lib/diagram-state.d.ts +18 -0
  26. package/dist/lib/diagram-state.d.ts.map +1 -0
  27. package/dist/lib/diagram-state.js +55 -0
  28. package/dist/lib/diagram-state.js.map +1 -0
  29. package/dist/lib/elk-runner.d.ts +29 -0
  30. package/dist/lib/elk-runner.d.ts.map +1 -0
  31. package/dist/lib/elk-runner.js +532 -0
  32. package/dist/lib/elk-runner.js.map +1 -0
  33. package/dist/lib/http.d.ts +3 -0
  34. package/dist/lib/http.d.ts.map +1 -0
  35. package/dist/lib/http.js +13 -0
  36. package/dist/lib/http.js.map +1 -0
  37. package/dist/lib/node-catalog.d.ts +10 -0
  38. package/dist/lib/node-catalog.d.ts.map +1 -0
  39. package/dist/lib/node-catalog.js +122 -0
  40. package/dist/lib/node-catalog.js.map +1 -0
  41. package/dist/lib/parse-prompt.d.ts +26 -0
  42. package/dist/lib/parse-prompt.d.ts.map +1 -0
  43. package/dist/lib/parse-prompt.js +289 -0
  44. package/dist/lib/parse-prompt.js.map +1 -0
  45. package/dist/lib/prompt-builder.d.ts +14 -0
  46. package/dist/lib/prompt-builder.d.ts.map +1 -0
  47. package/dist/lib/prompt-builder.js +133 -0
  48. package/dist/lib/prompt-builder.js.map +1 -0
  49. package/dist/lib/schema.d.ts +1231 -0
  50. package/dist/lib/schema.d.ts.map +1 -0
  51. package/dist/lib/schema.js +258 -0
  52. package/dist/lib/schema.js.map +1 -0
  53. package/dist/server.d.ts +36 -0
  54. package/dist/server.d.ts.map +1 -0
  55. package/dist/server.js +287 -0
  56. package/dist/server.js.map +1 -0
  57. package/dist/tools/__tests__/export-diagram.test.d.ts +2 -0
  58. package/dist/tools/__tests__/export-diagram.test.d.ts.map +1 -0
  59. package/dist/tools/__tests__/export-diagram.test.js +40 -0
  60. package/dist/tools/__tests__/export-diagram.test.js.map +1 -0
  61. package/dist/tools/__tests__/update-diagram.test.d.ts +2 -0
  62. package/dist/tools/__tests__/update-diagram.test.d.ts.map +1 -0
  63. package/dist/tools/__tests__/update-diagram.test.js +90 -0
  64. package/dist/tools/__tests__/update-diagram.test.js.map +1 -0
  65. package/dist/tools/apply-template.d.ts +28 -0
  66. package/dist/tools/apply-template.d.ts.map +1 -0
  67. package/dist/tools/apply-template.js +388 -0
  68. package/dist/tools/apply-template.js.map +1 -0
  69. package/dist/tools/export-diagram.d.ts +36 -0
  70. package/dist/tools/export-diagram.d.ts.map +1 -0
  71. package/dist/tools/export-diagram.js +65 -0
  72. package/dist/tools/export-diagram.js.map +1 -0
  73. package/dist/tools/fix-layout.d.ts +19 -0
  74. package/dist/tools/fix-layout.d.ts.map +1 -0
  75. package/dist/tools/fix-layout.js +100 -0
  76. package/dist/tools/fix-layout.js.map +1 -0
  77. package/dist/tools/generate-diagram.d.ts +31 -0
  78. package/dist/tools/generate-diagram.d.ts.map +1 -0
  79. package/dist/tools/generate-diagram.js +385 -0
  80. package/dist/tools/generate-diagram.js.map +1 -0
  81. package/dist/tools/list-nodes.d.ts +18 -0
  82. package/dist/tools/list-nodes.d.ts.map +1 -0
  83. package/dist/tools/list-nodes.js +48 -0
  84. package/dist/tools/list-nodes.js.map +1 -0
  85. package/dist/tools/load-checkpoint.d.ts +18 -0
  86. package/dist/tools/load-checkpoint.d.ts.map +1 -0
  87. package/dist/tools/load-checkpoint.js +24 -0
  88. package/dist/tools/load-checkpoint.js.map +1 -0
  89. package/dist/tools/read-me.d.ts +2 -0
  90. package/dist/tools/read-me.d.ts.map +1 -0
  91. package/dist/tools/read-me.js +326 -0
  92. package/dist/tools/read-me.js.map +1 -0
  93. package/dist/tools/save-checkpoint.d.ts +11 -0
  94. package/dist/tools/save-checkpoint.d.ts.map +1 -0
  95. package/dist/tools/save-checkpoint.js +17 -0
  96. package/dist/tools/save-checkpoint.js.map +1 -0
  97. package/dist/tools/update-diagram.d.ts +20 -0
  98. package/dist/tools/update-diagram.d.ts.map +1 -0
  99. package/dist/tools/update-diagram.js +189 -0
  100. package/dist/tools/update-diagram.js.map +1 -0
  101. package/dist/tools/validate-diagram.d.ts +14 -0
  102. package/dist/tools/validate-diagram.d.ts.map +1 -0
  103. package/dist/tools/validate-diagram.js +181 -0
  104. package/dist/tools/validate-diagram.js.map +1 -0
  105. package/dist/types/index.d.ts +218 -0
  106. package/dist/types/index.d.ts.map +1 -0
  107. package/dist/types/index.js +2 -0
  108. package/dist/types/index.js.map +1 -0
  109. package/package.json +50 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-diagram.js","sourceRoot":"","sources":["../../src/tools/generate-diagram.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { ListNodeTypesInput } from '../lib/schema.js';
2
+ interface SearchResult {
3
+ id: string;
4
+ label: string;
5
+ icon: string;
6
+ description: string;
7
+ }
8
+ interface CategoryResult {
9
+ name: string;
10
+ count: number;
11
+ nodes: SearchResult[];
12
+ }
13
+ export declare function listNodeTypes(input: ListNodeTypesInput): Promise<{
14
+ categories: CategoryResult[];
15
+ totalCount: number;
16
+ }>;
17
+ export {};
18
+ //# sourceMappingURL=list-nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-nodes.d.ts","sourceRoot":"","sources":["../../src/tools/list-nodes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAI3D,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC;IACtE,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAwDD"}
@@ -0,0 +1,48 @@
1
+ import { getComponentsByCategory, searchComponents } from '../lib/node-catalog.js';
2
+ export async function listNodeTypes(input) {
3
+ const { category, search, limit } = input;
4
+ if (search && search.trim()) {
5
+ const results = searchComponents(search, limit);
6
+ const categoryMap = new Map();
7
+ for (const component of results) {
8
+ if (!categoryMap.has(component.category)) {
9
+ categoryMap.set(component.category, []);
10
+ }
11
+ categoryMap.get(component.category).push(component);
12
+ }
13
+ const categories = Array.from(categoryMap.entries())
14
+ .map(([name, comps]) => ({
15
+ name,
16
+ count: comps.length,
17
+ nodes: comps.map((n) => ({
18
+ id: n.id,
19
+ label: n.label,
20
+ icon: n.icon,
21
+ description: n.description,
22
+ })),
23
+ }))
24
+ .sort((a, b) => a.name.localeCompare(b.name));
25
+ return {
26
+ categories,
27
+ totalCount: results.length,
28
+ };
29
+ }
30
+ if (category && category.trim()) {
31
+ const summary = getComponentsByCategory();
32
+ const filteredCategories = summary.categories.filter(c => c.name.toLowerCase().includes(category.toLowerCase()));
33
+ return {
34
+ categories: filteredCategories,
35
+ totalCount: filteredCategories.reduce((sum, c) => sum + c.count, 0),
36
+ };
37
+ }
38
+ const summary = getComponentsByCategory();
39
+ const limitedCategories = summary.categories.map((cat) => ({
40
+ ...cat,
41
+ nodes: cat.nodes.slice(0, Math.ceil(limit / summary.categories.length)),
42
+ }));
43
+ return {
44
+ categories: limitedCategories,
45
+ totalCount: summary.totalCount,
46
+ };
47
+ }
48
+ //# sourceMappingURL=list-nodes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list-nodes.js","sourceRoot":"","sources":["../../src/tools/list-nodes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAgBnF,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAyB;IAI3D,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAE1C,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,gBAAgB,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAEhD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiC,CAAC;QAC7D,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;YAChC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvD,CAAC;QAED,MAAM,UAAU,GAAqB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;aACnE,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;YACvB,IAAI;YACJ,KAAK,EAAE,KAAK,CAAC,MAAM;YACnB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC;gBAC5C,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;aAC3B,CAAC,CAAC;SACJ,CAAC,CAAC;aACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAEhD,OAAO;YACL,UAAU;YACV,UAAU,EAAE,OAAO,CAAC,MAAM;SAC3B,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;QAC1C,MAAM,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACvD,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CACtD,CAAC;QAEF,OAAO;YACL,UAAU,EAAE,kBAAkB;YAC9B,UAAU,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,CAAiB,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;SAC5F,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,uBAAuB,EAAE,CAAC;IAE1C,MAAM,iBAAiB,GAAqB,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAmB,EAAE,EAAE,CAAC,CAAC;QAC3F,GAAG,GAAG;QACN,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;KACxE,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,UAAU,EAAE,iBAAiB;QAC7B,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { LoadCheckpointInput } from '../lib/schema.js';
2
+ export declare function loadCheckpoint(input: LoadCheckpointInput): Promise<{
3
+ success: boolean;
4
+ name?: string;
5
+ restoredAt?: string;
6
+ nodeCount?: number;
7
+ edgeCount?: number;
8
+ message?: string;
9
+ availableCheckpoints?: Array<{
10
+ name: string;
11
+ description?: string;
12
+ savedAt: string;
13
+ nodeCount: number;
14
+ edgeCount: number;
15
+ }>;
16
+ error?: string;
17
+ }>;
18
+ //# sourceMappingURL=load-checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-checkpoint.d.ts","sourceRoot":"","sources":["../../src/tools/load-checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI5D,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5H,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAwBD"}
@@ -0,0 +1,24 @@
1
+ import { loadCheckpoint as loadCheckpointFromStore, getCheckpointState, listCheckpoints } from '../lib/checkpoints.js';
2
+ import { setDiagramState } from '../lib/diagram-state.js';
3
+ export async function loadCheckpoint(input) {
4
+ if (input.listAvailable) {
5
+ const checkpoints = listCheckpoints();
6
+ return {
7
+ success: true,
8
+ availableCheckpoints: checkpoints,
9
+ message: checkpoints.length === 0
10
+ ? 'No checkpoints saved yet.'
11
+ : `Found ${checkpoints.length} checkpoint(s).`,
12
+ };
13
+ }
14
+ const result = loadCheckpointFromStore(input.name);
15
+ if (!result.success) {
16
+ return result;
17
+ }
18
+ const state = getCheckpointState(input.name);
19
+ if (state) {
20
+ setDiagramState(state);
21
+ }
22
+ return result;
23
+ }
24
+ //# sourceMappingURL=load-checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"load-checkpoint.js","sourceRoot":"","sources":["../../src/tools/load-checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,IAAI,uBAAuB,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACvH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAA0B;IAU7D,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,MAAM,WAAW,GAAG,eAAe,EAAE,CAAC;QACtC,OAAO;YACL,OAAO,EAAE,IAAI;YACb,oBAAoB,EAAE,WAAW;YACjC,OAAO,EAAE,WAAW,CAAC,MAAM,KAAK,CAAC;gBAC/B,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,iBAAiB;SACjD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7C,IAAI,KAAK,EAAE,CAAC;QACV,eAAe,CAAC,KAAY,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function getReadMe(): string;
2
+ //# sourceMappingURL=read-me.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-me.d.ts","sourceRoot":"","sources":["../../src/tools/read-me.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,MAAM,CAoUlC"}
@@ -0,0 +1,326 @@
1
+ export function getReadMe() {
2
+ return `# ArchDraw MCP Reference Guide
3
+
4
+ ## âš¡ DIAGRAM GENERATION RULES (MANDATORY - ALWAYS FOLLOW THESE)
5
+
6
+ 1. **LAYOUT ALGORITHM**: ALWAYS use a ranked/layered layout (Dagre, ELK, or Graphviz dot engine). Direction: LEFT TO RIGHT (rankdir=LR) or TOP TO BOTTOM (rankdir=TB). Never place nodes with random/arbitrary x,y coordinates. Minimum rank separation: 120px between tiers. Minimum node separation: 60px within same tier.
7
+ 2. **NODE SIZING — NO TRUNCATION EVER**: Node width = auto-fit to longest text line + 40px padding on each side. Node height = auto-fit to number of text lines + 20px padding top/bottom. NEVER hardcode a fixed width smaller than the label. If subtitle exists, calculate width based on whichever line is longer. Minimum node width: 180px. No maximum.
8
+ 3. **TIERED STRUCTURE — MANDATORY**: Group all nodes into explicit tiers before rendering: Tier 1 → Entry points (Client, Browser, Mobile). Tier 2 → Infrastructure (Load Balancer, CDN, API Gateway). Tier 3 → Services (Auth, Business Logic, Workers). Tier 4 → Data Layer (Databases, Cache, Queue). Nodes in the same tier must be vertically aligned. No node from Tier N should visually overlap with Tier N+1.
9
+ 4. **EDGE ROUTING — NO CROSSING OR OVERLAPPING**: Use orthogonal (right-angle) or curved (bezier) routing — never straight diagonal lines that cross nodes. Edges must never pass through a node bounding box. If two edges share a path, offset them by at least 8px. Sync connections (REST, HTTPS, SQL, gRPC) → solid lines. Async connections (AMQP, Kafka, Queue, Pub/Sub) → dashed lines. Always label edges with protocol name (REST, HTTPS, SQL, AMQP, etc.). Arrow direction must clearly show data/request flow.
10
+ 5. **COLLISION DETECTION — NO OVERLAPPING NODES**: After placing all nodes, run a bounding box collision check. If any two nodes overlap, increase node separation and re-layout. Nodes must have a minimum margin of 40px between each other on all sides. If a tier has too many nodes, split into sub-tiers or increase canvas height.
11
+ 6. **COLOR & VISUAL GROUPING**: Color-code nodes by category, not randomly: Infrastructure → Gray (#6B7280). Auth/Security → Purple (#7C3AED). Services → Blue (#2563EB). Async/Queue → Orange (#D97706). Databases → Green (#059669). Cache → Teal (#0891B2). Use same color for border and icon; light tint for fill (10% opacity). Group related nodes inside a labeled bounding box/container (isGroup).
12
+ 7. **TYPOGRAPHY**: Primary label: Bold, 13-14px, full name (NO ellipsis, NO truncation). Subtitle: Regular, 11px, tech stack (e.g., "MySQL, PostgreSQL"). Edge labels: 10px, italic, placed at midpoint of edge. Font: Inter, Roboto, or any clean sans-serif.
13
+ 8. **CANVAS & OUTPUT**: Auto-size the canvas to fit all nodes + 80px padding on all sides. Never clip any node or label at canvas boundary. Export/render at minimum 1400px wide for complex diagrams. Background: White (#FFFFFF) or Off-white (#F9FAFB).
14
+
15
+ ---
16
+
17
+ ## 🚨 CRITICAL ARCHITECTURE RULES (SYSTEMATIC FIXES — DO NOT SKIP)
18
+
19
+ ### RULE A — AUTH SERVICE TOPOLOGY
20
+ **The Auth Service receives arrows ONLY from login and token refresh endpoints. NO other arrows from the gateway into Auth Service are permitted.**
21
+
22
+ - CORRECT: Client → API Gateway → Auth Service (label: "POST /login" or "POST /token/refresh" ONLY)
23
+ - CORRECT: Client → API Gateway → Order Service (gateway validates JWT internally — no Auth hop needed)
24
+ - WRONG: API Gateway → Auth Service → Order Service (Auth as per-request proxy hop)
25
+ - WRONG: Any arrow from gateway to Auth Service labeled with a business operation
26
+
27
+ BEFORE FINALIZING: Audit every edge whose target is the Auth Service. If the source is API Gateway and the edge label is not login/register/token-refresh — DELETE that edge.
28
+
29
+ ### RULE B — OBJECT STORAGE IS MANDATORY FOR MEDIA DOMAINS
30
+ **Drawing a CDN without an origin storage, or a Transcoding Worker without a destination, is architecturally invalid.**
31
+
32
+ Mandatory when domain involves: video streaming, image sharing, audio streaming, file storage, document management, or any CDN node.
33
+
34
+ Required pipeline for video platforms:
35
+ \`Upload → Object Storage (raw) → Transcoding Worker → Object Storage (output) → CDN → Client\`
36
+
37
+ Never omit object storage if a CDN or Transcoding Worker is present in the diagram.
38
+
39
+ ### RULE C — ANALYTICS EVENT STREAM IS CORE INFRASTRUCTURE
40
+ **For engagement-loop platforms, the analytics event stream is NOT optional telemetry — it is the product's primary feedback loop.**
41
+
42
+ Mandatory when domain involves: video/audio streaming, social media, e-commerce, gaming.
43
+
44
+ Required pattern:
45
+ \`Client → (play/click/view event) → Event Stream (Kafka/Kinesis) → Analytics Processor → Recommendation Engine\`
46
+
47
+ Watch history, play events, and engagement signals are the INPUT to recommendation engines — without this stream, the recommendation engine has no data source.
48
+
49
+ ### RULE D — SECURITY SERVICES MUST NOT BYPASS THE GATEWAY
50
+ **DRM, Auth, and License Servers must NEVER connect directly to client-tier nodes.**
51
+
52
+ - CORRECT: Client → API Gateway → DRM License Service (gateway verifies subscription before issuing license)
53
+ - WRONG: Client → DRM License Service (unauthenticated clients could request licenses)
54
+
55
+ BEFORE FINALIZING: Audit every edge where source is \`client\` tier and target is a security/DRM/auth node. If API Gateway is not in the path — re-route through the gateway.
56
+
57
+ ### RULE E — EDGE DIRECTION: LEFT→RIGHT ONLY, NO STAR TOPOLOGY
58
+ **This is the most common generation error. Edges MUST flow from lower tier → higher tier, never backward.**
59
+
60
+ CORRECT tier flow (mandatory for every diagram):
61
+ \`\`\`
62
+ client (0) → edge (1) → compute (2) → async (3) → data (4) → external (5)
63
+ \`\`\`
64
+
65
+ Client nodes (Web App, Mobile App) are SOURCES — edges go FROM them, not TO them:
66
+ - CORRECT: Web App → API Gateway → Auth Service → PostgreSQL
67
+ - WRONG: Auth Service → Web App (backward edge)
68
+ - WRONG: PostgreSQL → Web App (data to client — forbidden)
69
+ - WRONG: All nodes → Web App (star/hub anti-pattern)
70
+
71
+ Web Client is NOT a hub. NEVER connect multiple backend nodes back to the client.
72
+
73
+ If a backend needs to push data to the client, use:
74
+ - A WebSocket Gateway node (tier: edge) with a \`stream\` edge
75
+ - A Push Notification Service node (tier: compute) with a \`stream\` edge to client
76
+
77
+ Diagrams with star topology (>45% of all edges pointing to one node) will be rejected by the validator.
78
+
79
+ ---
80
+
81
+ ## TIER SYSTEM
82
+ 7 layers in order (left→right in LR layout, top→bottom in DOWN layout):
83
+
84
+ | Tier | Color | Hex | What belongs here |
85
+ |------|-------|-----|-------------------|
86
+ | client | slate | #64748b | Browser, Mobile App, Web Client, CLI |
87
+ | edge | indigo | #6366f1 | CDN, Load Balancer, API Gateway, WAF, Nginx |
88
+ | compute | teal | #0d9488 | API Server, Auth Service, Business Logic, Workers |
89
+ | async | amber | #d97706 | Message Queue, Event Bus, Task Queue, Kafka, SQS |
90
+ | data | blue | #3b82f6 | PostgreSQL, Redis, MongoDB, S3, Elasticsearch |
91
+ | external | violet | #8b5cf6 | Stripe, Twilio, SendGrid, Maps API, OAuth providers |
92
+ | observe | gray | #6b7280 | Prometheus, Grafana, Jaeger, Datadog, ELK Stack |
93
+
94
+ ---
95
+
96
+ ## DOMAIN COMPLETENESS CHECKLIST
97
+ Before generating any diagram, identify the domain and verify these required nodes are included:
98
+
99
+ | Domain | Required Nodes (cannot be omitted) |
100
+ |--------|-------------------------------------|
101
+ | Video Streaming | Object Storage (raw + output), Transcoding Worker, CDN, DRM (via gateway), Analytics Event Stream, Recommendation Engine |
102
+ | Social Media | Object Storage (media), CDN, Engagement Event Stream, Feed Ranking Service, Notification Service |
103
+ | E-Commerce | Payment Gateway, Order Queue, Inventory Service, Notification Service |
104
+ | Ride-sharing | Real-time Location Service, Matching Engine, Payment Gateway, Push Notification |
105
+ | SaaS / B2B | Auth Service (login only), Billing Service, Audit Log, Webhook Delivery |
106
+ | Chat / Messaging | WebSocket Gateway, Message Queue, Notification Service, Media Storage |
107
+ | Audio Streaming | Object Storage, CDN, Transcoding Worker, Recommendation Engine, Analytics Stream |
108
+
109
+ ---
110
+
111
+ ## GROUPS (REQUIRED)
112
+ Groups are visual containers that cluster related nodes. **Every diagram must have at least one.**
113
+
114
+ ### Group node fields:
115
+ \`\`\`json
116
+ {
117
+ "id": "backend_group",
118
+ "label": "Backend Services",
119
+ "tier": "compute",
120
+ "subtitle": "Core application API layer",
121
+ "isGroup": true,
122
+ "groupColor": "#0f172a",
123
+ "width": 560,
124
+ "height": 300,
125
+ "icon": "layers"
126
+ }
127
+ \`\`\`
128
+
129
+ ### Child node (placed inside a group):
130
+ \`\`\`json
131
+ {
132
+ "id": "user_api",
133
+ "label": "User API",
134
+ "tier": "compute",
135
+ "subtitle": "CRUD for user accounts",
136
+ "parentId": "backend_group",
137
+ "icon": "user",
138
+ "accentColor": "#0d9488"
139
+ }
140
+ \`\`\`
141
+
142
+ ### Group sizing guide:
143
+ - 2 children → 400×200
144
+ - 3-4 children → 550×280
145
+ - 5-6 children → 700×350
146
+ - Groups do NOT connect to edges — only leaf nodes do
147
+
148
+ ---
149
+
150
+ ## NODE PROPERTIES (full reference)
151
+
152
+ | Field | Required | Description |
153
+ |-------|----------|-------------|
154
+ | id | YES | Snake_case unique identifier |
155
+ | label | YES | 1-3 word display name |
156
+ | tier | YES | One of 7 tier values |
157
+ | subtitle | YES | Specific description (e.g. "PostgreSQL 15, handles orders table") |
158
+ | isGroup | when grouping | true = renders as swimlane container |
159
+ | parentId | when child | ID of parent group node |
160
+ | groupColor | for groups | Background tint hex (e.g. "#0f172a") |
161
+ | icon | recommended | Lucide icon name (use list_node_types) |
162
+ | accentColor | optional | Override color for visual diff within same tier |
163
+ | status | optional | healthy / warning / error / unknown |
164
+ | width/height | for groups | Set larger than content |
165
+
166
+ **Available accentColors**: #3b82f6 #0ea5e9 #06b6d4 #14b8a6 #22c55e #f59e0b #f97316 #ef4444 #ec4899 #6b7280 #f43f5e #a855f7 #84cc16 #fb923c #0ea5e9
167
+
168
+ ---
169
+
170
+ ## COMMUNICATION TYPES
171
+
172
+ | Type | Use Case | Visual |
173
+ |------|----------|--------|
174
+ | sync | REST, gRPC, HTTP request-response | Solid slate gray |
175
+ | async | Kafka, SQS, background jobs | Dashed amber, animated |
176
+ | stream | WebSocket, SSE, real-time feeds | Dashed green, animated |
177
+ | event | Pub/sub, domain events | Dashed pink, animated |
178
+ | dep | Build-time / config dependency | Dotted gray |
179
+
180
+ **Edge label rules:**
181
+ - sync: label optional (e.g. "GET /users", "JWT auth")
182
+ - async/event/stream: label REQUIRED (e.g. "order.created", "payment.processed")
183
+ - dep: label optional (e.g. "config", "env vars")
184
+
185
+ ---
186
+
187
+ ## LAYOUT DIRECTION
188
+ - **RIGHT** (default): Left-to-right tiers. Best for microservices, API architectures
189
+ - **DOWN**: Top-to-bottom. Best for pipelines, mobile-first, CI/CD flows
190
+
191
+ ---
192
+
193
+ ## BEST PRACTICES
194
+ 1. Client tier: 1-2 nodes max
195
+ 2. Data tier NEVER connects directly to client tier
196
+ 3. Observability nodes use \`dep\` edges FROM them (not TO them)
197
+ 4. Use \`accentColor\` to differentiate services within the same compute tier
198
+ 5. Add \`status: "warning"\` or \`"error"\` to highlight problem areas
199
+ 6. Groups should use their tier's color as \`groupColor\` tinted darker
200
+ 7. External tier only for third-party services (not your own microservices)
201
+ 8. Prefer \`pathType: "Smoothstep"\` for most edges; \`"step"\` for right-angle flows
202
+ 9. Auth Service: only receives edges labeled login/register/token-refresh from the gateway
203
+ 10. Object storage is mandatory in any diagram with a CDN or media processing
204
+ 11. Analytics event stream is mandatory in any diagram with a recommendation engine
205
+ 12. **EDGE DIRECTION**: Every edge must point from a LOWER tier to a HIGHER tier (client→edge→compute→async→data)
206
+ 13. **NO STAR TOPOLOGY**: Never use Web Client as a hub. If you have 10 services, none of them connect TO the web client.
207
+ 14. **BACKWARD EDGE CHECK**: Before calling generate_diagram, scan every edge -- if the target is a client tier node and source is not also client tier -- DELETE that edge.
208
+
209
+ ---
210
+
211
+ ## CANONICAL FULL EXAMPLE
212
+ A well-structured 12-node diagram with groups:
213
+
214
+ \`\`\`json
215
+ {
216
+ "label": "E-Commerce Platform",
217
+ "direction": "RIGHT",
218
+ "nodes": [
219
+ { "id": "web_client", "label": "Web App", "tier": "client", "subtitle": "React SPA, Next.js", "icon": "globe" },
220
+ { "id": "mobile_client", "label": "Mobile App", "tier": "client", "subtitle": "React Native iOS/Android", "icon": "smartphone" },
221
+ { "id": "api_gateway", "label": "API Gateway", "tier": "edge", "subtitle": "Rate limiting, auth routing, SSL termination", "icon": "shield" },
222
+
223
+ { "id": "backend_group", "label": "Core Services", "tier": "compute", "subtitle": "Business logic layer", "isGroup": true, "groupColor": "#042f2e", "width": 600, "height": 320 },
224
+ { "id": "order_svc", "label": "Order Service", "tier": "compute", "subtitle": "Create & manage orders, inventory check", "parentId": "backend_group", "icon": "shopping-cart", "accentColor": "#0d9488" },
225
+ { "id": "user_svc", "label": "User Service", "tier": "compute", "subtitle": "Auth, profiles, sessions", "parentId": "backend_group", "icon": "user", "accentColor": "#6366f1" },
226
+ { "id": "payment_svc", "label": "Payment Service", "tier": "compute", "subtitle": "Stripe integration, refund logic", "parentId": "backend_group", "icon": "credit-card", "accentColor": "#8b5cf6" },
227
+
228
+ { "id": "order_queue", "label": "Order Queue", "tier": "async", "subtitle": "Kafka topic: orders.created", "icon": "zap" },
229
+
230
+ { "id": "data_group", "label": "Data Layer", "tier": "data", "subtitle": "Persistent storage", "isGroup": true, "groupColor": "#0c1a2e", "width": 440, "height": 240 },
231
+ { "id": "postgres", "label": "PostgreSQL", "tier": "data", "subtitle": "Primary DB — users, orders, products", "parentId": "data_group", "icon": "database" },
232
+ { "id": "redis", "label": "Redis Cache", "tier": "data", "subtitle": "Session store, rate limit counters", "parentId": "data_group", "icon": "zap" },
233
+
234
+ { "id": "stripe", "label": "Stripe", "tier": "external", "subtitle": "Payment gateway, webhooks", "icon": "credit-card" },
235
+ { "id": "monitoring", "label": "Grafana", "tier": "observe", "subtitle": "Metrics, dashboards, alerting", "icon": "activity" }
236
+ ],
237
+ "edges": [
238
+ { "id": "e1", "source": "web_client", "target": "api_gateway", "communicationType": "sync", "label": "HTTPS" },
239
+ { "id": "e2", "source": "mobile_client", "target": "api_gateway", "communicationType": "sync", "label": "REST API" },
240
+ { "id": "e3", "source": "api_gateway", "target": "order_svc", "communicationType": "sync", "label": "POST /orders" },
241
+ { "id": "e4", "source": "api_gateway", "target": "user_svc", "communicationType": "sync", "label": "GET /users" },
242
+ { "id": "e5", "source": "order_svc", "target": "order_queue", "communicationType": "async", "label": "order.created" },
243
+ { "id": "e6", "source": "order_queue", "target": "payment_svc", "communicationType": "async", "label": "process payment" },
244
+ { "id": "e7", "source": "payment_svc", "target": "stripe", "communicationType": "sync", "label": "charge API" },
245
+ { "id": "e8", "source": "order_svc", "target": "postgres", "communicationType": "sync" },
246
+ { "id": "e9", "source": "user_svc", "target": "redis", "communicationType": "sync", "label": "session cache" },
247
+ { "id": "e10", "source": "monitoring", "target": "order_svc", "communicationType": "dep" },
248
+ { "id": "e11", "source": "monitoring", "target": "postgres", "communicationType": "dep" }
249
+ ]
250
+ }
251
+ \`\`\`
252
+
253
+ ---
254
+
255
+ ## 💡 MERMAID CODE GENERATION FEW-SHOT EXAMPLES
256
+
257
+ ### Example 1: 3-Tier Web App
258
+ * **User Prompt**: "Create a 3-tier Web App with a React client, Express API, and PostgreSQL database."
259
+ * **Mermaid Output**:
260
+ \`\`\`mermaid
261
+ graph LR
262
+ subgraph Client["Client Tier"]
263
+ ReactClient["React Client App<br>[React]"]
264
+ end
265
+ subgraph Compute["Compute Tier"]
266
+ ExpressAPI["Express API<br>[Express.js]"]
267
+ end
268
+ subgraph Data["Data Tier"]
269
+ PostgreSQLDB[("PostgreSQL DB<br>[PostgreSQL]")]
270
+ end
271
+ ReactClient -->|"HTTPS REST"| ExpressAPI
272
+ ExpressAPI -->|"SQL query"| PostgreSQLDB
273
+ \`\`\`
274
+
275
+ ### Example 2: E-Commerce Queue
276
+ * **User Prompt**: "Draw an e-commerce backend with an Order Service publishing order events to Kafka and a Payment Service consuming them."
277
+ * **Mermaid Output**:
278
+ \`\`\`mermaid
279
+ graph LR
280
+ subgraph Compute["Compute Tier"]
281
+ OrderService["Order Service<br>[Go]"]
282
+ PaymentService["Payment Service<br>[Node.js]"]
283
+ end
284
+ subgraph Async["Async Tier"]
285
+ KafkaBroker["Kafka Message Bus<br>[Kafka]"]
286
+ end
287
+ OrderService -.->|"publish order.created"| KafkaBroker
288
+ KafkaBroker -.->|"consume event"| PaymentService
289
+ \`\`\`
290
+
291
+ ### Example 3: VOD Video Streaming
292
+ * **User Prompt**: "Create a video transcoder where raw uploads to S3 trigger an FFmpeg worker which writes HLS output to an output S3 bucket."
293
+ * **Mermaid Output**:
294
+ \`\`\`mermaid
295
+ graph LR
296
+ subgraph Compute["Compute Tier"]
297
+ Transcoder["Transcoder Worker<br>[FFmpeg]"]
298
+ end
299
+ subgraph Data["Data Tier"]
300
+ RawBucket[("S3 Upload Bucket<br>[S3]")]
301
+ OutputBucket[("S3 Output Bucket<br>[S3]")]
302
+ end
303
+ RawBucket -.->|"S3 event notification"| Transcoder
304
+ Transcoder -->|"write HLS streams"| OutputBucket
305
+ \`\`\`
306
+
307
+ ### Example 4: Real-time Live Chat
308
+ * **User Prompt**: "Design a live chat where client connects to WebSocket gateway which forwards chat messages to a Chat Service to store in MongoDB."
309
+ * **Mermaid Output**:
310
+ \`\`\`mermaid
311
+ graph LR
312
+ subgraph Edge["Edge Tier"]
313
+ WSGateway["WebSocket Gateway<br>[Node.js]"]
314
+ end
315
+ subgraph Compute["Compute Tier"]
316
+ ChatService["Chat Service<br>[Go]"]
317
+ end
318
+ subgraph Data["Data Tier"]
319
+ MongoDB[("MongoDB Chat Store<br>[MongoDB]")]
320
+ end
321
+ WSGateway -.->|"WebSocket forward"| ChatService
322
+ ChatService -->|"NoSQL write"| MongoDB
323
+ \`\`\`
324
+ `;
325
+ }
326
+ //# sourceMappingURL=read-me.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read-me.js","sourceRoot":"","sources":["../../src/tools/read-me.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;IACvB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkUR,CAAC;AACF,CAAC"}
@@ -0,0 +1,11 @@
1
+ import type { SaveCheckpointInput } from '../lib/schema.js';
2
+ export declare function saveCheckpoint(input: SaveCheckpointInput): Promise<{
3
+ success: boolean;
4
+ name: string;
5
+ savedAt: string;
6
+ nodeCount: number;
7
+ edgeCount: number;
8
+ overwritten?: boolean;
9
+ error?: string;
10
+ }>;
11
+ //# sourceMappingURL=save-checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-checkpoint.d.ts","sourceRoot":"","sources":["../../src/tools/save-checkpoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAI5D,wBAAsB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC;IACxE,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAcD"}
@@ -0,0 +1,17 @@
1
+ import { getDiagramState, hasDiagramState } from '../lib/diagram-state.js';
2
+ import { saveCheckpoint as saveCheckpointToStore } from '../lib/checkpoints.js';
3
+ export async function saveCheckpoint(input) {
4
+ if (!hasDiagramState()) {
5
+ return {
6
+ success: false,
7
+ name: input.name,
8
+ savedAt: '',
9
+ nodeCount: 0,
10
+ edgeCount: 0,
11
+ error: 'No diagram to save. Call generate_diagram or apply_template first.',
12
+ };
13
+ }
14
+ const state = getDiagramState();
15
+ return saveCheckpointToStore(input.name, input.description, state);
16
+ }
17
+ //# sourceMappingURL=save-checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save-checkpoint.js","sourceRoot":"","sources":["../../src/tools/save-checkpoint.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,cAAc,IAAI,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEhF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,KAA0B;IAS7D,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACvB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,CAAC;YACZ,KAAK,EAAE,oEAAoE;SAC5E,CAAC;IACJ,CAAC;IAED,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,OAAO,qBAAqB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { ReactFlowNode, ReactFlowEdge } from '../types/index.js';
2
+ import type { UpdateDiagramInput } from '../lib/schema.js';
3
+ export declare function updateDiagram(input: UpdateDiagramInput): Promise<{
4
+ success: boolean;
5
+ nodes: ReactFlowNode[];
6
+ edges: ReactFlowEdge[];
7
+ message: string;
8
+ changes: {
9
+ nodesAdded: number;
10
+ nodesRemoved: number;
11
+ nodesUpdated: number;
12
+ edgesAdded: number;
13
+ edgesRemoved: number;
14
+ nodesRepositioned: number;
15
+ };
16
+ sessionId?: string;
17
+ diagramUrl?: string;
18
+ error?: string;
19
+ }>;
20
+ //# sourceMappingURL=update-diagram.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-diagram.d.ts","sourceRoot":"","sources":["../../src/tools/update-diagram.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAsE3D,wBAAsB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC;IACtE,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE;QACP,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC,CAmJD"}