@apexops/renderers 0.10.0-next.4 → 0.11.0-next.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.
@@ -0,0 +1,11 @@
1
+ import type { ArchitectureV1, CostEstimateV1 } from "@apexops/contracts";
2
+ export interface DiagramSource {
3
+ readonly svg: string;
4
+ readonly python: string;
5
+ }
6
+ export declare function renderArchitectureDiagram(architecture: ArchitectureV1): DiagramSource;
7
+ export declare function renderWafAssessmentDiagram(architecture: ArchitectureV1): DiagramSource;
8
+ export declare function renderCostBreakdownDiagram(cost: CostEstimateV1): DiagramSource;
9
+ export declare function renderCostUncertaintyDiagram(cost: CostEstimateV1): DiagramSource;
10
+ export { rasterizeDiagram } from "./rasterizer.js";
11
+ //# sourceMappingURL=diagrams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagrams.d.ts","sourceRoot":"","sources":["../src/diagrams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AA0FD,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,cAAc,GAAG,aAAa,CAyCrF;AAED,wBAAgB,0BAA0B,CAAC,YAAY,EAAE,cAAc,GAAG,aAAa,CAyBtF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,CAyB9E;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,CAuBhF;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,173 @@
1
+ import { stableJson } from "./markdown.js";
2
+ const WIDTH = 960;
3
+ const BACKGROUND = "#f8fafc";
4
+ const INK = "#172033";
5
+ const MUTED = "#526173";
6
+ const ACCENT = "#0078d4";
7
+ const STATUS_COLORS = {
8
+ aligned: "#107c10",
9
+ concern: "#ca5010",
10
+ blocker: "#a4262c",
11
+ "not-applicable": "#69797e",
12
+ };
13
+ const MAX_DIAGRAM_ROWS = 100;
14
+ function compare(left, right) {
15
+ return left < right ? -1 : left > right ? 1 : 0;
16
+ }
17
+ function xml(value) {
18
+ return String(value)
19
+ .replace(/[\u0000-\u001f\u007f]/gu, " ")
20
+ .replaceAll("&", "&amp;")
21
+ .replaceAll("<", "&lt;")
22
+ .replaceAll(">", "&gt;")
23
+ .replaceAll('"', "&quot;")
24
+ .replaceAll("'", "&apos;");
25
+ }
26
+ function short(value, length = 64) {
27
+ const normalized = value.replace(/\s+/gu, " ").trim();
28
+ return normalized.length <= length ? normalized : `${normalized.slice(0, length - 3)}...`;
29
+ }
30
+ function document(title, height, body, description) {
31
+ return [
32
+ `<svg xmlns="http://www.w3.org/2000/svg" width="${WIDTH}" height="${height}" viewBox="0 0 ${WIDTH} ${height}" role="img" aria-labelledby="title description">`,
33
+ `<title id="title">${xml(title)}</title>`,
34
+ `<desc id="description">${xml(description)}</desc>`,
35
+ `<rect width="${WIDTH}" height="${height}" fill="${BACKGROUND}"/>`,
36
+ `<text x="40" y="48" fill="${INK}" font-family="Arial, sans-serif" font-size="24" font-weight="700">${xml(title)}</text>`,
37
+ body,
38
+ `</svg>`,
39
+ ].join("\n");
40
+ }
41
+ function pythonSource(spec) {
42
+ const encoded = Buffer.from(stableJson(spec), "utf8").toString("base64");
43
+ return `#!/usr/bin/env python3
44
+ """Editable source for an APEX-generated documentation diagram."""
45
+ import base64
46
+ import json
47
+ import matplotlib.pyplot as plt
48
+
49
+ SPEC = json.loads(base64.b64decode("${encoded}"))
50
+
51
+ fig, ax = plt.subplots(figsize=(12, max(4, len(SPEC["rows"]) * 0.7)))
52
+ labels = [row["label"] for row in SPEC["rows"]]
53
+ values = [row.get("value", 1) for row in SPEC["rows"]]
54
+ ax.barh(labels, values, color="#0078d4")
55
+ ax.set_title(SPEC["title"])
56
+ ax.invert_yaxis()
57
+ fig.tight_layout()
58
+ fig.savefig(SPEC["kind"] + ".png", dpi=150)
59
+ `;
60
+ }
61
+ function source(spec, svg) {
62
+ if (spec.rows.length > MAX_DIAGRAM_ROWS)
63
+ throw new Error(`Diagram exceeds ${MAX_DIAGRAM_ROWS} rows`);
64
+ return { svg, python: pythonSource(spec) };
65
+ }
66
+ export function renderArchitectureDiagram(architecture) {
67
+ const rows = architecture.components
68
+ .map(({ id, service, purpose }) => ({ id, label: `${id}: ${service}`, detail: purpose }))
69
+ .sort((left, right) => compare(left.id, right.id));
70
+ const edges = architecture.components
71
+ .flatMap(({ id, dependsOn }) => dependsOn.map((dependency) => ({ from: dependency, to: id })))
72
+ .sort((left, right) => compare(`${left.from}\0${left.to}`, `${right.from}\0${right.to}`));
73
+ const columns = Math.min(3, Math.max(1, rows.length));
74
+ const nodeWidth = 250;
75
+ const nodeHeight = 82;
76
+ const columnGap = 42;
77
+ const rowGap = 52;
78
+ const positions = new Map(rows.map((row, index) => [
79
+ row.id,
80
+ {
81
+ x: 64 + (index % columns) * (nodeWidth + columnGap),
82
+ y: 88 + Math.floor(index / columns) * (nodeHeight + rowGap),
83
+ },
84
+ ]));
85
+ const height = Math.max(260, 130 + Math.ceil(rows.length / columns) * (nodeHeight + rowGap));
86
+ const edgeSvg = edges
87
+ .map(({ from, to }) => {
88
+ const start = positions.get(from);
89
+ const end = positions.get(to);
90
+ if (start === undefined || end === undefined)
91
+ return "";
92
+ return `<line x1="${start.x + nodeWidth / 2}" y1="${start.y + nodeHeight / 2}" x2="${end.x + nodeWidth / 2}" y2="${end.y + nodeHeight / 2}" stroke="#8a9bad" stroke-width="2"/>`;
93
+ })
94
+ .join("\n");
95
+ const nodeSvg = rows
96
+ .map((row) => {
97
+ const position = positions.get(row.id);
98
+ return `<g><rect x="${position.x}" y="${position.y}" width="${nodeWidth}" height="${nodeHeight}" rx="6" fill="#ffffff" stroke="${ACCENT}" stroke-width="2"/><text x="${position.x + 14}" y="${position.y + 30}" fill="${INK}" font-family="Arial, sans-serif" font-size="15" font-weight="700">${xml(short(row.label, 34))}</text><text x="${position.x + 14}" y="${position.y + 56}" fill="${MUTED}" font-family="Arial, sans-serif" font-size="12">${xml(short(row.detail ?? "", 38))}</text></g>`;
99
+ })
100
+ .join("\n");
101
+ const spec = { kind: "architecture", title: architecture.title, rows, edges };
102
+ return source(spec, document(architecture.title, height, `${edgeSvg}\n${nodeSvg}`, "Accepted architecture components and dependencies"));
103
+ }
104
+ export function renderWafAssessmentDiagram(architecture) {
105
+ const assessment = architecture.wellArchitectedAssessment;
106
+ if (assessment === undefined)
107
+ throw new Error("Well-Architected assessment is unavailable");
108
+ const order = new Map([
109
+ ["security", 0],
110
+ ["reliability", 1],
111
+ ["performance-efficiency", 2],
112
+ ["cost-optimization", 3],
113
+ ["operational-excellence", 4],
114
+ ]);
115
+ const rows = assessment.pillars
116
+ .map(({ pillar, status, assessment: detail }) => ({ id: pillar, label: pillar, status, detail }))
117
+ .sort((left, right) => (order.get(left.id) ?? 99) - (order.get(right.id) ?? 99));
118
+ const body = rows
119
+ .map((row, index) => {
120
+ const y = 86 + index * 74;
121
+ const color = STATUS_COLORS[row.status ?? ""] ?? MUTED;
122
+ return `<g><rect x="40" y="${y}" width="880" height="56" rx="6" fill="#ffffff" stroke="#d7e0e8"/><rect x="40" y="${y}" width="12" height="56" rx="6" fill="${color}"/><text x="70" y="${y + 23}" fill="${INK}" font-family="Arial, sans-serif" font-size="15" font-weight="700">${xml(row.label.replaceAll("-", " "))}</text><text x="260" y="${y + 23}" fill="${color}" font-family="Arial, sans-serif" font-size="13" font-weight="700">${xml(row.status)}</text><text x="70" y="${y + 44}" fill="${MUTED}" font-family="Arial, sans-serif" font-size="12">${xml(short(row.detail ?? "", 110))}</text></g>`;
123
+ })
124
+ .join("\n");
125
+ const spec = { kind: "waf", title: "Azure Well-Architected Assessment", rows };
126
+ return source(spec, document(spec.title, 480, body, "Qualitative status for the five Azure Well-Architected pillars"));
127
+ }
128
+ export function renderCostBreakdownDiagram(cost) {
129
+ const rows = cost.lineItems
130
+ .map(({ id, service, sku, monthlyCost }) => ({ id, label: `${service} / ${sku}`, value: monthlyCost }))
131
+ .sort((left, right) => compare(left.id, right.id));
132
+ const maximum = Math.max(1, ...rows.map(({ value }) => value ?? 0));
133
+ const notes = (cost.unpricedItems ?? []).map(({ service, sku }) => `Unpriced: ${service} / ${sku}`).sort(compare);
134
+ const height = Math.max(260, 120 + rows.length * 52 + notes.length * 20);
135
+ const bars = rows
136
+ .map((row, index) => {
137
+ const y = 88 + index * 52;
138
+ const width = ((row.value ?? 0) / maximum) * 520;
139
+ return `<g><text x="40" y="${y + 16}" fill="${INK}" font-family="Arial, sans-serif" font-size="13">${xml(short(row.label, 42))}</text><rect x="350" y="${y}" width="${width.toFixed(2)}" height="22" fill="${ACCENT}"/><text x="${Math.min(880, 360 + width)}" y="${y + 16}" fill="${INK}" font-family="Arial, sans-serif" font-size="12">${xml(`${(row.value ?? 0).toFixed(2)} ${cost.currency}`)}</text></g>`;
140
+ })
141
+ .join("\n");
142
+ const noteSvg = notes
143
+ .map((note, index) => `<text x="40" y="${112 + rows.length * 52 + index * 20}" fill="#a4262c" font-family="Arial, sans-serif" font-size="12">${xml(note)}</text>`)
144
+ .join("\n");
145
+ const spec = { kind: "cost-breakdown", title: "Monthly Cost Breakdown", rows, notes };
146
+ return source(spec, document(spec.title, height, `${bars}\n${noteSvg}`, "Priced monthly costs; unpriced items are excluded"));
147
+ }
148
+ export function renderCostUncertaintyDiagram(cost) {
149
+ const rows = cost.lineItems
150
+ .map(({ id, service, sku, monthlyCost, uncertainty }) => ({
151
+ id,
152
+ label: `${service} / ${sku}`,
153
+ value: monthlyCost,
154
+ lower: uncertainty.lowerMonthlyCost,
155
+ upper: uncertainty.upperMonthlyCost,
156
+ }))
157
+ .sort((left, right) => compare(left.id, right.id));
158
+ const maximum = Math.max(1, ...rows.map(({ upper }) => upper));
159
+ const height = Math.max(260, 120 + rows.length * 58);
160
+ const ranges = rows
161
+ .map((row, index) => {
162
+ const y = 96 + index * 58;
163
+ const lower = 350 + (row.lower / maximum) * 500;
164
+ const upper = 350 + (row.upper / maximum) * 500;
165
+ const base = 350 + ((row.value ?? 0) / maximum) * 500;
166
+ return `<g><text x="40" y="${y + 5}" fill="${INK}" font-family="Arial, sans-serif" font-size="13">${xml(short(row.label, 42))}</text><line x1="${lower.toFixed(2)}" y1="${y}" x2="${upper.toFixed(2)}" y2="${y}" stroke="#8a9bad" stroke-width="8" stroke-linecap="round"/><circle cx="${base.toFixed(2)}" cy="${y}" r="7" fill="${ACCENT}"/><text x="350" y="${y + 24}" fill="${MUTED}" font-family="Arial, sans-serif" font-size="11">${xml(`${row.lower.toFixed(2)} / ${(row.value ?? 0).toFixed(2)} / ${row.upper.toFixed(2)} ${cost.currency}`)}</text></g>`;
167
+ })
168
+ .join("\n");
169
+ const spec = { kind: "cost-uncertainty", title: "Monthly Cost Uncertainty", rows };
170
+ return source(spec, document(spec.title, height, ranges, "Lower, base, and upper monthly cost by priced line item"));
171
+ }
172
+ export { rasterizeDiagram } from "./rasterizer.js";
173
+ //# sourceMappingURL=diagrams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagrams.js","sourceRoot":"","sources":["../src/diagrams.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"document-registry.d.ts","sourceRoot":"","sources":["../src/document-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,eAAO,MAAM,2BAA2B,YACtC,UAAU,EACV,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,CACd,CAAC;AAIX,KAAK,oBAAoB,GAAG,WAAW,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAE3E,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;IAClD,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,gBAAgB,CAAC;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;KACnC,CAAC;CACH;AAED,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CA0E1E,CAAC;AAiBF,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,cAAc,EAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CA8CR"}
1
+ {"version":3,"file":"document-registry.d.ts","sourceRoot":"","sources":["../src/document-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,eAAO,MAAM,2BAA2B,YACtC,UAAU,EACV,eAAe,EACf,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,WAAW,EACX,+BAA+B,EAC/B,uBAAuB,EACvB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,sBAAsB,CACd,CAAC;AAIX,KAAK,oBAAoB,GAAG,WAAW,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAE3E,UAAU,kBAAkB;IAC1B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,kBAAkB,EAAE,oBAAoB,CAAC;IAClD,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,GAAG,gBAAgB,CAAC;IACvE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;KACnC,CAAC;CACH;AAED,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAyF1E,CAAC;AAiBF,wBAAgB,0BAA0B,CACxC,YAAY,EAAE,cAAc,EAC5B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,GACnB,MAAM,CA8CR"}
@@ -53,15 +53,21 @@ export const DOCUMENT_REGISTRY = {
53
53
  },
54
54
  "architecture-assessment": {
55
55
  sourceArtifactKind: "architecture",
56
- sourceAvailability: "unavailable",
56
+ sourceAvailability: "available",
57
57
  templateAvailability: "reference-only",
58
- renderer: "unavailable",
58
+ renderer: "architecture-assessment-v1",
59
59
  },
60
60
  "cost-estimate": {
61
61
  sourceArtifactKind: "cost-estimate",
62
- sourceAvailability: "unavailable",
62
+ sourceAvailability: "available",
63
63
  templateAvailability: "reference-only",
64
- renderer: "unavailable",
64
+ renderer: "cost-estimate-v1",
65
+ },
66
+ "architecture-decisions": {
67
+ sourceArtifactKind: "architecture",
68
+ sourceAvailability: "available",
69
+ templateAvailability: "not-applicable",
70
+ renderer: "architecture-decisions-v1",
65
71
  },
66
72
  "governance-constraints": {
67
73
  sourceArtifactKind: "governance-constraints",
@@ -70,19 +76,28 @@ export const DOCUMENT_REGISTRY = {
70
76
  renderer: "unavailable",
71
77
  },
72
78
  "implementation-plan": {
73
- sourceAvailability: "unavailable",
79
+ sourceArtifactKind: "implementation-intent",
80
+ sourceAvailability: "available",
74
81
  templateAvailability: "reference-only",
75
- renderer: "unavailable",
82
+ renderer: "implementation-plan-v1",
76
83
  },
77
84
  "deployment-summary": {
78
- sourceAvailability: "unavailable",
79
- templateAvailability: "reference-only",
80
- renderer: "unavailable",
85
+ sourceArtifactKind: "operation-record",
86
+ sourceAvailability: "available",
87
+ templateAvailability: "not-applicable",
88
+ renderer: "deployment-summary-v1",
89
+ },
90
+ "deployment-guide": {
91
+ sourceArtifactKind: "implementation-intent",
92
+ sourceAvailability: "available",
93
+ templateAvailability: "not-applicable",
94
+ renderer: "deployment-guide-v1",
81
95
  },
82
96
  "operations-runbook": {
83
- sourceAvailability: "unavailable",
84
- templateAvailability: "reference-only",
85
- renderer: "unavailable",
97
+ sourceArtifactKind: "diagnosis",
98
+ sourceAvailability: "available",
99
+ templateAvailability: "not-applicable",
100
+ renderer: "operations-runbook-v1",
86
101
  },
87
102
  "resource-inventory-template": {
88
103
  sourceArtifactKind: "resource-inventory",
@@ -1 +1 @@
1
- {"version":3,"file":"document-registry.js","sourceRoot":"","sources":["../src/document-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"document-registry.js","sourceRoot":"","sources":["../src/document-registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9D,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,UAAU;IACV,eAAe;IACf,eAAe;IACf,aAAa;IACb,iBAAiB;IACjB,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,WAAW;IACX,+BAA+B;IAC/B,uBAAuB;IACvB,sBAAsB;IACtB,kBAAkB;IAClB,eAAe;IACf,sBAAsB;CACd,CAAC;AAiBX,MAAM,CAAC,MAAM,iBAAiB,GAAiD;IAC7E,YAAY,EAAE;QACZ,kBAAkB,EAAE,cAAc;QAClC,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,WAAW;QACjC,QAAQ,EAAE,0BAA0B;QACpC,QAAQ,EAAE;YACR,SAAS,EAAE,yDAAyD;YACpE,KAAK,EAAE,2BAA2B;SACnC;KACF;IACD,MAAM,EAAE;QACN,kBAAkB,EAAE,YAAY;QAChC,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,eAAe;KAC1B;IACD,OAAO,EAAE;QACP,kBAAkB,EAAE,oBAAoB;QACxC,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,uBAAuB;KAClC;IACD,QAAQ,EAAE;QACR,kBAAkB,EAAE,mBAAmB;QACvC,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,sBAAsB;KACjC;IACD,SAAS,EAAE;QACT,kBAAkB,EAAE,oBAAoB;QACxC,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,uBAAuB;KAClC;IACD,yBAAyB,EAAE;QACzB,kBAAkB,EAAE,cAAc;QAClC,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,4BAA4B;KACvC;IACD,eAAe,EAAE;QACf,kBAAkB,EAAE,eAAe;QACnC,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,kBAAkB;KAC7B;IACD,wBAAwB,EAAE;QACxB,kBAAkB,EAAE,cAAc;QAClC,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,2BAA2B;KACtC;IACD,wBAAwB,EAAE;QACxB,kBAAkB,EAAE,wBAAwB;QAC5C,kBAAkB,EAAE,aAAa;QACjC,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,aAAa;KACxB;IACD,qBAAqB,EAAE;QACrB,kBAAkB,EAAE,uBAAuB;QAC3C,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,wBAAwB;KACnC;IACD,oBAAoB,EAAE;QACpB,kBAAkB,EAAE,kBAAkB;QACtC,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,uBAAuB;KAClC;IACD,kBAAkB,EAAE;QAClB,kBAAkB,EAAE,uBAAuB;QAC3C,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,qBAAqB;KAChC;IACD,oBAAoB,EAAE;QACpB,kBAAkB,EAAE,WAAW;QAC/B,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,uBAAuB;KAClC;IACD,6BAA6B,EAAE;QAC7B,kBAAkB,EAAE,oBAAoB;QACxC,kBAAkB,EAAE,WAAW;QAC/B,oBAAoB,EAAE,gBAAgB;QACtC,QAAQ,EAAE,aAAa;KACxB;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,QAAgB,EAAE,aAAgC;IAC1E,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;IACvF,IACE,KAAK,CAAC,MAAM,KAAK,aAAa,CAAC,MAAM;QACrC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,aAAa,CAAC,MAAM;QAC5C,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EACnD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;AACH,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,OAAO,kDAAkD,KAAK,GAAG,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,YAA4B,EAC5B,QAAgB,EAChB,YAAoB,EACpB,YAAoB;IAEpB,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,YAAY,EAAE,QAAQ,CAAC;IACpE,IAAI,kBAAkB,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IAC1G,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAErD,MAAM,gBAAgB,GAAG,CAAC,GAAG,YAAY,CAAC,YAAY,CAAC;SACpD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACtD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,CAAC,KAAwB,EAAU,EAAE,CAChD,KAAK,CAAC,MAAM,KAAK,CAAC;QAChB,CAAC,CAAC,OAAO;QACT,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aACP,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aAChD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;aAC1C,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,MAAM,YAAY,GAA6C;QAC7D,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC,QAAQ,CAAC;QAC/C,eAAe,EAAE,YAAY;QAC7B,eAAe,EAAE,YAAY;QAC7B,WAAW,EAAE,cAAc,CAAC,YAAY,CAAC,WAAW,CAAC;QACrD,iBAAiB,EAAE,UAAU;QAC7B,kBAAkB,EAAE,cAAc,CAAC,YAAY,CAAC,eAAe,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACnG,kBAAkB,EAAE,cAAc,CAAC,YAAY,CAAC,eAAe,IAAI,WAAW,CAAC,kBAAkB,CAAC,CAAC;QACnG,oBAAoB,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC1G,WAAW,EAAE,cAAc,CACzB,YAAY,CAAC,yBAAyB,IAAI,WAAW,CAAC,4CAA4C,CAAC,CACpG;QACD,+BAA+B,EAAE,cAAc,CAC7C,YAAY,CAAC,qBAAqB,IAAI,WAAW,CAAC,wCAAwC,CAAC,CAC5F;QACD,uBAAuB,EAAE,cAAc,CACrC,YAAY,CAAC,mBAAmB,IAAI,WAAW,CAAC,2BAA2B,CAAC,CAC7E;QACD,sBAAsB,EAAE,cAAc,CACpC,YAAY,CAAC,mBAAmB,IAAI,WAAW,CAAC,mCAAmC,CAAC,CACrF;QACD,kBAAkB,EAAE,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC;QAClD,eAAe,EAAE,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;QAC5C,sBAAsB,EAAE,cAAc,CACpC,YAAY,CAAC,mBAAmB,IAAI,yEAAyE,CAC9G;KACF,CAAC;IACF,OAAO,2BAA2B,CAAC,MAAM,CACvC,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAC9E,QAAQ,CACT,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -3,4 +3,5 @@ export * from "./document-registry.js";
3
3
  export * from "./renderers.js";
4
4
  export * from "./scorecard.js";
5
5
  export * from "./semantic-diff.js";
6
+ export * from "./diagrams.js";
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -3,4 +3,5 @@ export * from "./document-registry.js";
3
3
  export * from "./renderers.js";
4
4
  export * from "./scorecard.js";
5
5
  export * from "./semantic-diff.js";
6
+ export * from "./diagrams.js";
6
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,40 @@
1
+ /** The part of @resvg/resvg-js and its native binding that diagram rasterization uses. */
2
+ export interface ResvgBinding {
3
+ readonly Resvg: new (svg: string) => {
4
+ render(): {
5
+ asPng(): Uint8Array;
6
+ };
7
+ };
8
+ }
9
+ export interface BundledRasterizerBinary {
10
+ /** Path of the `.node` file relative to `root`. */
11
+ readonly file: string;
12
+ readonly sha256: string;
13
+ /** Set for Linux binaries that need the GNU C library; musl hosts fall back to SVG output. */
14
+ readonly libc?: "glibc";
15
+ }
16
+ /**
17
+ * The native rasterizer table the plugin build inlines into the MCP bundle as the JSON string `__APEX_PLUGIN_NATIVE__`. Keys are
18
+ * `${process.platform}-${process.arch}`. Pinning the hashes in the bundle means the binaries beside it cannot be
19
+ * swapped without changing the bundle, which the plugin tree hash covers.
20
+ */
21
+ export interface BundledRasterizerManifest {
22
+ readonly package: string;
23
+ readonly version: string;
24
+ /** Directory URL of the binaries, relative to the bundle file. */
25
+ readonly root: string;
26
+ readonly binaries: Readonly<Record<string, BundledRasterizerBinary>>;
27
+ }
28
+ export interface RasterizerHost {
29
+ readonly platform: string;
30
+ readonly arch: string;
31
+ readonly glibc: boolean;
32
+ readonly dlopen: (path: string) => unknown;
33
+ }
34
+ /**
35
+ * Loads the native binding the plugin ships for this host. The binary is hashed before it is loaded; a missing,
36
+ * replaced or unsupported binary throws so the caller writes SVG only and reports PNG as unavailable.
37
+ */
38
+ export declare function loadBundledRasterizer(manifest: BundledRasterizerManifest, base: string | URL, host?: RasterizerHost): ResvgBinding;
39
+ export declare function rasterizeDiagram(svg: string): Uint8Array;
40
+ //# sourceMappingURL=rasterizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rasterizer.d.ts","sourceRoot":"","sources":["../src/rasterizer.ts"],"names":[],"mappings":"AAKA,0FAA0F;AAC1F,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK;QAAE,MAAM,IAAI;YAAE,KAAK,IAAI,UAAU,CAAA;SAAE,CAAA;KAAE,CAAC;CAC5E;AAED,MAAM,WAAW,uBAAuB;IACtC,mDAAmD;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8FAA8F;IAC9F,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC,CAAC;CACtE;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C;AA2BD;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,yBAAyB,EACnC,IAAI,EAAE,MAAM,GAAG,GAAG,EAClB,IAAI,GAAE,cAA8B,GACnC,YAAY,CAiCd;AAuBD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAExD"}
@@ -0,0 +1,85 @@
1
+ import { createHash } from "node:crypto";
2
+ import { readFileSync } from "node:fs";
3
+ import { createRequire } from "node:module";
4
+ import { fileURLToPath } from "node:url";
5
+ const unavailable = "SVG output is available";
6
+ function glibcRuntime() {
7
+ if (process.platform !== "linux")
8
+ return false;
9
+ const report = process.report?.getReport();
10
+ return typeof report?.header?.glibcVersionRuntime === "string";
11
+ }
12
+ function currentHost() {
13
+ return {
14
+ platform: process.platform,
15
+ arch: process.arch,
16
+ get glibc() {
17
+ return glibcRuntime();
18
+ },
19
+ dlopen: (path) => {
20
+ const module = { exports: {} };
21
+ process.dlopen(module, path);
22
+ return module.exports;
23
+ },
24
+ };
25
+ }
26
+ /**
27
+ * Loads the native binding the plugin ships for this host. The binary is hashed before it is loaded; a missing,
28
+ * replaced or unsupported binary throws so the caller writes SVG only and reports PNG as unavailable.
29
+ */
30
+ export function loadBundledRasterizer(manifest, base, host = currentHost()) {
31
+ const target = `${host.platform}-${host.arch}`;
32
+ const binary = Object.hasOwn(manifest.binaries, target) ? manifest.binaries[target] : undefined;
33
+ if (binary === undefined)
34
+ throw new Error(`PNG rasterizer ${manifest.package} is not bundled for ${target}; ${unavailable}`);
35
+ if (binary.libc === "glibc" && !host.glibc)
36
+ throw new Error(`PNG rasterizer ${manifest.package} for ${target} needs glibc; ${unavailable}`);
37
+ const path = fileURLToPath(new URL(`${manifest.root}${binary.file}`, base));
38
+ let bytes;
39
+ try {
40
+ bytes = readFileSync(path);
41
+ }
42
+ catch (error) {
43
+ throw new Error(`PNG rasterizer ${manifest.package} binary for ${target} is missing; ${unavailable}`, {
44
+ cause: error,
45
+ });
46
+ }
47
+ if (createHash("sha256").update(bytes).digest("hex") !== binary.sha256)
48
+ throw new Error(`PNG rasterizer ${manifest.package} binary for ${target} failed its integrity check; ${unavailable}`);
49
+ let binding;
50
+ try {
51
+ binding = host.dlopen(path);
52
+ }
53
+ catch (error) {
54
+ const reason = error instanceof Error ? error.message : String(error);
55
+ throw new Error(`PNG rasterizer ${manifest.package} binary for ${target} could not be loaded (${reason}); ${unavailable}`, { cause: error });
56
+ }
57
+ if (typeof binding?.Resvg !== "function")
58
+ throw new Error(`PNG rasterizer ${manifest.package} binary for ${target} has no Resvg export; ${unavailable}`);
59
+ return binding;
60
+ }
61
+ const requireModule = createRequire(import.meta.url);
62
+ let resvg;
63
+ // The npm CLI resolves @resvg/resvg-js and its platform package from node_modules. The plugin's single-file MCP bundle
64
+ // has no node_modules, so the plugin build ships the binaries beside it and inlines their table into the bundle.
65
+ function loadResvg() {
66
+ if (resvg !== undefined)
67
+ return resvg;
68
+ if (typeof __APEX_PLUGIN_NATIVE__ !== "undefined") {
69
+ resvg = loadBundledRasterizer(JSON.parse(__APEX_PLUGIN_NATIVE__), import.meta.url);
70
+ return resvg;
71
+ }
72
+ try {
73
+ resvg = requireModule("@resvg/resvg-js");
74
+ return resvg;
75
+ }
76
+ catch (error) {
77
+ if (error.code === "MODULE_NOT_FOUND")
78
+ throw new Error(`PNG rasterizer @resvg/resvg-js is not installed; ${unavailable}`);
79
+ throw error;
80
+ }
81
+ }
82
+ export function rasterizeDiagram(svg) {
83
+ return new (loadResvg().Resvg)(svg).render().asPng();
84
+ }
85
+ //# sourceMappingURL=rasterizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rasterizer.js","sourceRoot":"","sources":["../src/rasterizer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,31 @@
1
- import type { ApprovalEvidenceV1, DeploymentPreviewV1, RequirementsV1, ResourceInventoryV1, RunConfigV1 } from "@apexops/contracts";
1
+ import type { ApprovalEvidenceV1, ArchitectureV1, DeploymentPreviewV1, DiagnosisV1, EnvironmentInputsV1, IacBindingV1, ImplementationIntentV1, OperationRecordV1, PolicyPropertyMapV1, RequirementsV1, ResourceInventoryV1, RunConfigV1 } from "@apexops/contracts";
2
2
  export declare function renderRequirements(requirements: RequirementsV1): string;
3
+ export declare function renderImplementationPlan(intent: ImplementationIntentV1, intentHash: string): string;
4
+ export declare function renderDeploymentGuide(input: {
5
+ run: RunConfigV1;
6
+ intent: ImplementationIntentV1;
7
+ binding: IacBindingV1;
8
+ inputs: EnvironmentInputsV1;
9
+ hashes: {
10
+ intent: string;
11
+ binding: string;
12
+ inputs: string;
13
+ };
14
+ }): string;
3
15
  export declare function renderRunStatus(run: RunConfigV1): string;
4
16
  export declare function renderDeploymentPreview(preview: DeploymentPreviewV1): string;
5
17
  export declare function renderApprovalEvidence(approval: ApprovalEvidenceV1): string;
18
+ export declare function renderArchitectureDecisionRecords(architecture: ArchitectureV1, architectureHash: string): string;
19
+ export declare function renderPolicyMappingMatrix(policy: PolicyPropertyMapV1, policyHash: string): string;
20
+ export declare function renderOperationsRunbook(diagnosis: DiagnosisV1, diagnosisHash: string): string;
21
+ export declare function renderDeploymentSummary(input: {
22
+ operation: OperationRecordV1;
23
+ inventory: ResourceInventoryV1;
24
+ approval: ApprovalEvidenceV1;
25
+ operationHash: string;
26
+ inventoryHash: string;
27
+ provider: "fake" | "bicep" | "terraform";
28
+ evidenceMode: "simulated" | "native";
29
+ }): string;
6
30
  export declare function renderResourceInventory(inventory: ResourceInventoryV1): string;
7
31
  //# sourceMappingURL=renderers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../src/renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAS5B,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,cAAc,GAAG,MAAM,CA2BvE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CA6BxD;AAMD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAwC5E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAqB3E;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM,CA4B9E"}
1
+ {"version":3,"file":"renderers.d.ts","sourceRoot":"","sources":["../src/renderers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAS5B,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,cAAc,GAAG,MAAM,CA2BvE;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CA2CnG;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C,GAAG,EAAE,WAAW,CAAC;IACjB,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7D,GAAG,MAAM,CAoGT;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CA6BxD;AAMD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAwC5E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAqB3E;AAED,wBAAgB,iCAAiC,CAAC,YAAY,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAoEhH;AAED,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAkDjG;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAkF7F;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,SAAS,EAAE,iBAAiB,CAAC;IAC7B,SAAS,EAAE,mBAAmB,CAAC;IAC/B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;IACzC,YAAY,EAAE,WAAW,GAAG,QAAQ,CAAC;CACtC,GAAG,MAAM,CAwDT;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,MAAM,CA4B9E"}