@hiabhee/archdraw-mcp-server 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +128 -57
- package/dist/index.js.map +1 -1
- package/dist/lib/preview-links.d.ts +20 -0
- package/dist/lib/preview-links.d.ts.map +1 -0
- package/dist/lib/preview-links.js +22 -0
- package/dist/lib/preview-links.js.map +1 -0
- package/dist/lib/schema.js +2 -2
- package/dist/lib/schema.js.map +1 -1
- package/dist/tools/__tests__/preview-links.test.d.ts +2 -0
- package/dist/tools/__tests__/preview-links.test.d.ts.map +1 -0
- package/dist/tools/__tests__/preview-links.test.js +74 -0
- package/dist/tools/__tests__/preview-links.test.js.map +1 -0
- package/dist/tools/apply-template.d.ts +1 -0
- package/dist/tools/apply-template.d.ts.map +1 -1
- package/dist/tools/apply-template.js +14 -6
- package/dist/tools/apply-template.js.map +1 -1
- package/dist/tools/generate-diagram.d.ts +2 -0
- package/dist/tools/generate-diagram.d.ts.map +1 -1
- package/dist/tools/generate-diagram.js +27 -209
- package/dist/tools/generate-diagram.js.map +1 -1
- package/dist/tools/read-me.js +1 -1
- package/dist/tools/update-diagram.d.ts +1 -0
- package/dist/tools/update-diagram.d.ts.map +1 -1
- package/dist/tools/update-diagram.js +3 -2
- package/dist/tools/update-diagram.js.map +1 -1
- package/dist/types/index.d.ts +0 -31
- package/dist/types/index.d.ts.map +1 -1
- package/dist/ui/diagram-widget.d.ts +3 -0
- package/dist/ui/diagram-widget.d.ts.map +1 -0
- package/dist/ui/diagram-widget.html +282 -0
- package/dist/ui/diagram-widget.js +4 -0
- package/dist/ui/diagram-widget.js.map +1 -0
- package/package.json +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-widget.d.ts","sourceRoot":"","sources":["../../src/ui/diagram-widget.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,kBAAkB,kCAAkC,CAAC;AAClE,eAAO,MAAM,mBAAmB,QAA0E,CAAC"}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>ArchDraw diagram</title>
|
|
7
|
+
<style>
|
|
8
|
+
:root { color-scheme: light dark; font-family: var(--font-sans, ui-sans-serif, system-ui, sans-serif); color: var(--color-text-primary, #20242c); background: var(--color-background-primary, #fff); }
|
|
9
|
+
* { box-sizing: border-box; }
|
|
10
|
+
body { margin: 0; padding: 14px; }
|
|
11
|
+
.card { overflow: hidden; border: 1px solid var(--color-border-primary, #d9dde5); border-radius: 14px; background: var(--color-background-primary, #fff); }
|
|
12
|
+
header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-bottom: 1px solid var(--color-border-primary, #d9dde5); }
|
|
13
|
+
.brand { display: flex; align-items: center; gap: 9px; min-width: 0; }
|
|
14
|
+
.brand-link { display: flex; align-items: center; gap: 9px; min-width: 0; color: inherit; text-decoration: none; }
|
|
15
|
+
.brand-link:hover h1 { color: #1167b1; }
|
|
16
|
+
.mark { display: grid; width: 27px; height: 27px; place-items: center; border-radius: 8px; background: #edf6ff; color: #1167b1; font-weight: 800; font-size: 15px; }
|
|
17
|
+
h1 { overflow: hidden; margin: 0; font-size: 14px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
|
|
18
|
+
.counts { margin-top: 2px; color: var(--color-text-secondary, #687080); font-size: 11px; }
|
|
19
|
+
.open { display: inline-flex; flex: 0 0 auto; align-items: center; gap: 5px; color: #1167b1; font-size: 12px; font-weight: 600; text-decoration: none; }
|
|
20
|
+
.open:hover { text-decoration: underline; }
|
|
21
|
+
a:focus-visible, button:focus-visible, textarea:focus-visible, input:focus-visible { outline: 2px solid #1e90ff; outline-offset: 2px; }
|
|
22
|
+
.canvas { min-height: 190px; max-height: 440px; overflow: auto; background: var(--color-background-secondary, #f8fafc); }
|
|
23
|
+
svg { display: block; width: 100%; min-width: 360px; height: auto; max-height: 440px; }
|
|
24
|
+
.empty { display: grid; min-height: 190px; place-items: center; padding: 24px; color: var(--color-text-secondary, #687080); font-size: 13px; text-align: center; }
|
|
25
|
+
.warnings { padding: 8px 14px; border-top: 1px solid var(--color-border-primary, #d9dde5); color: #96610a; font-size: 11px; }
|
|
26
|
+
.actions { padding: 12px 14px 14px; border-top: 1px solid var(--color-border-primary, #d9dde5); }
|
|
27
|
+
.actions label { display: block; margin-bottom: 6px; font-size: 12px; font-weight: 600; }
|
|
28
|
+
textarea { display: block; width: 100%; min-height: 66px; resize: vertical; padding: 9px 10px; border: 1px solid var(--color-border-primary, #cbd1dc); border-radius: 9px; background: var(--color-background-primary, #fff); color: var(--color-text-primary, #20242c); font: inherit; font-size: 12px; }
|
|
29
|
+
.action-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 9px; }
|
|
30
|
+
.publish { display: flex; align-items: flex-start; gap: 7px; max-width: 67%; color: var(--color-text-secondary, #687080); font-size: 10px; line-height: 1.35; }
|
|
31
|
+
.publish input { margin: 1px 0 0; accent-color: #1769d2; }
|
|
32
|
+
button { flex: 0 0 auto; padding: 8px 11px; border: 0; border-radius: 8px; background: #1769d2; color: #fff; font: inherit; font-size: 11px; font-weight: 650; cursor: pointer; }
|
|
33
|
+
button:disabled { opacity: .55; cursor: wait; }
|
|
34
|
+
.status { min-height: 14px; margin: 7px 0 0; color: var(--color-text-secondary, #687080); font-size: 10px; }
|
|
35
|
+
.edge { fill: none; stroke: #1e90ff; stroke-width: 1.5; }
|
|
36
|
+
.edge-label { fill: var(--color-text-secondary, #687080); font-size: 10px; }
|
|
37
|
+
.group-label { fill: var(--color-text-secondary, #687080); font-size: 12px; font-weight: 650; }
|
|
38
|
+
.node-title { fill: #192333; font-size: 12px; font-weight: 650; }
|
|
39
|
+
.node-subtitle { fill: #596579; font-size: 9px; }
|
|
40
|
+
@media (prefers-color-scheme: dark) {
|
|
41
|
+
.mark { background: #172f52; color: #9cc5ff; }
|
|
42
|
+
.node-title { fill: #f4f6fa; }
|
|
43
|
+
.node-subtitle { fill: #c2cad6; }
|
|
44
|
+
.edge { stroke: #8492a6; }
|
|
45
|
+
.open { color: #8dbdff; }
|
|
46
|
+
button { background: #246fc8; }
|
|
47
|
+
}
|
|
48
|
+
</style>
|
|
49
|
+
</head>
|
|
50
|
+
<body>
|
|
51
|
+
<section class="card" aria-label="ArchDraw diagram preview">
|
|
52
|
+
<header>
|
|
53
|
+
<div class="brand">
|
|
54
|
+
<a class="brand-link" href="https://archdraw.hiabhee.online" target="_blank" rel="noopener noreferrer" aria-label="Open ArchDraw">
|
|
55
|
+
<span class="mark" aria-hidden="true">A</span>
|
|
56
|
+
<div><h1 id="title">ArchDraw diagram</h1><div class="counts" id="counts">Preparing preview…</div></div>
|
|
57
|
+
</a>
|
|
58
|
+
</div>
|
|
59
|
+
<a class="open" id="open-link" hidden target="_blank" rel="noopener noreferrer"><span id="open-label">Open in ArchDraw</span><svg width="13" height="13" viewBox="0 0 16 16" aria-hidden="true"><path d="M5 3h8v8M13 3 6 10M12 9v4H3V4h4" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/></svg></a>
|
|
60
|
+
</header>
|
|
61
|
+
<main class="canvas" id="canvas"><div class="empty" id="empty">Loading the diagram preview…</div></main>
|
|
62
|
+
<div class="warnings" id="warnings" hidden></div>
|
|
63
|
+
<form class="actions" id="generate-form">
|
|
64
|
+
<label for="prompt">Create another diagram in this chat</label>
|
|
65
|
+
<textarea id="prompt" maxlength="2000" placeholder="Describe a system, for example: a video streaming platform with uploads, transcoding, and playback"></textarea>
|
|
66
|
+
<div class="action-row">
|
|
67
|
+
<label class="publish"><input id="publish" type="checkbox" checked><span>Create a preview link (anyone with the link can view it; expires in 7 days).</span></label>
|
|
68
|
+
<button id="generate" type="submit">Generate</button>
|
|
69
|
+
</div>
|
|
70
|
+
<p class="status" id="status" role="status" aria-live="polite"></p>
|
|
71
|
+
</form>
|
|
72
|
+
</section>
|
|
73
|
+
<script>
|
|
74
|
+
(() => {
|
|
75
|
+
const pending = new Map();
|
|
76
|
+
let requestId = 0;
|
|
77
|
+
let latestInput = {};
|
|
78
|
+
const $ = (id) => document.getElementById(id);
|
|
79
|
+
const canvas = $('canvas');
|
|
80
|
+
const escapeText = (value) => String(value ?? '');
|
|
81
|
+
const svgElement = (tag, attrs = {}, text) => {
|
|
82
|
+
const element = document.createElementNS('http://www.w3.org/2000/svg', tag);
|
|
83
|
+
for (const [key, value] of Object.entries(attrs)) element.setAttribute(key, String(value));
|
|
84
|
+
if (text !== undefined) element.textContent = text;
|
|
85
|
+
return element;
|
|
86
|
+
};
|
|
87
|
+
const safeColor = (value, fallback) => /^#[0-9a-f]{3,8}$/i.test(value || '') ? value : fallback;
|
|
88
|
+
|
|
89
|
+
function request(method, params) {
|
|
90
|
+
const id = ++requestId;
|
|
91
|
+
return new Promise((resolve, reject) => {
|
|
92
|
+
const timeout = setTimeout(() => { pending.delete(id); reject(new Error('The chat did not respond.')); }, 10000);
|
|
93
|
+
pending.set(id, { resolve, reject, timeout });
|
|
94
|
+
window.parent.postMessage({ jsonrpc: '2.0', id, method, params }, '*');
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
function notify(method, params) {
|
|
99
|
+
window.parent.postMessage({ jsonrpc: '2.0', method, params }, '*');
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
function absPositions(nodes) {
|
|
103
|
+
const byId = new Map(nodes.map((node) => [node.id, node]));
|
|
104
|
+
const positions = new Map();
|
|
105
|
+
function resolve(node, visiting = new Set()) {
|
|
106
|
+
if (positions.has(node.id)) return positions.get(node.id);
|
|
107
|
+
const own = node.position || { x: 0, y: 0 };
|
|
108
|
+
const parentId = node.parentNode || node.data?.parentId;
|
|
109
|
+
if (!parentId || !byId.has(parentId) || visiting.has(node.id)) {
|
|
110
|
+
positions.set(node.id, own);
|
|
111
|
+
return own;
|
|
112
|
+
}
|
|
113
|
+
const nextVisiting = new Set(visiting);
|
|
114
|
+
nextVisiting.add(node.id);
|
|
115
|
+
const parent = resolve(byId.get(parentId), nextVisiting);
|
|
116
|
+
const absolute = { x: parent.x + own.x, y: parent.y + own.y };
|
|
117
|
+
positions.set(node.id, absolute);
|
|
118
|
+
return absolute;
|
|
119
|
+
}
|
|
120
|
+
for (const node of nodes) resolve(node);
|
|
121
|
+
return positions;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
function render(graph) {
|
|
125
|
+
if (!graph || !Array.isArray(graph.nodes) || !Array.isArray(graph.edges)) return;
|
|
126
|
+
$('title').textContent = escapeText(graph.label || latestInput.label || 'ArchDraw diagram');
|
|
127
|
+
const nodes = graph.nodes;
|
|
128
|
+
const edges = graph.edges;
|
|
129
|
+
const positions = absPositions(nodes);
|
|
130
|
+
const boxes = nodes.map((node) => {
|
|
131
|
+
const position = positions.get(node.id) || { x: 0, y: 0 };
|
|
132
|
+
const width = Number(node.width || node.style?.width || 180);
|
|
133
|
+
const height = Number(node.height || node.style?.height || (node.data?.isGroup ? 220 : 72));
|
|
134
|
+
return { node, x: position.x, y: position.y, width, height };
|
|
135
|
+
});
|
|
136
|
+
if (!boxes.length) {
|
|
137
|
+
canvas.replaceChildren(Object.assign(document.createElement('div'), { className: 'empty', textContent: 'ArchDraw returned no nodes for this diagram.' }));
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const minX = Math.min(0, ...boxes.map((box) => box.x)) - 28;
|
|
141
|
+
const minY = Math.min(0, ...boxes.map((box) => box.y)) - 28;
|
|
142
|
+
const maxX = Math.max(...boxes.map((box) => box.x + box.width)) + 28;
|
|
143
|
+
const maxY = Math.max(...boxes.map((box) => box.y + box.height)) + 28;
|
|
144
|
+
const svg = svgElement('svg', { viewBox: `${minX} ${minY} ${Math.max(320, maxX - minX)} ${Math.max(180, maxY - minY)}`, role: 'img', 'aria-label': 'Generated architecture diagram' });
|
|
145
|
+
const defs = svgElement('defs');
|
|
146
|
+
const marker = svgElement('marker', { id: 'arrow', viewBox: '0 0 10 10', refX: 9, refY: 5, markerWidth: 6, markerHeight: 6, orient: 'auto-start-reverse' });
|
|
147
|
+
marker.append(svgElement('path', { d: 'M 0 0 L 10 5 L 0 10 z', fill: '#1e90ff' }));
|
|
148
|
+
defs.append(marker);
|
|
149
|
+
svg.append(defs);
|
|
150
|
+
const boxById = new Map(boxes.map((box) => [box.node.id, box]));
|
|
151
|
+
|
|
152
|
+
for (const box of boxes.filter(({ node }) => node.data?.isGroup)) {
|
|
153
|
+
const group = svgElement('g');
|
|
154
|
+
group.append(svgElement('rect', { x: box.x, y: box.y, width: box.width, height: box.height, rx: 12, fill: safeColor(box.node.data?.groupColor, '#edf2f8'), 'fill-opacity': 0.58, stroke: '#c8d1de', 'stroke-dasharray': '5 4' }));
|
|
155
|
+
group.append(svgElement('text', { x: box.x + 12, y: box.y + 20, class: 'group-label' }, escapeText(box.node.data?.groupLabel || box.node.data?.label || 'Group'));
|
|
156
|
+
svg.append(group);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
for (const edge of edges) {
|
|
160
|
+
const source = boxById.get(edge.source);
|
|
161
|
+
const target = boxById.get(edge.target);
|
|
162
|
+
if (!source || !target) continue;
|
|
163
|
+
const direction = String(graph.metadata?.direction || '').toUpperCase();
|
|
164
|
+
const sourceSide = String(edge.sourceHandle || '').split('-').pop();
|
|
165
|
+
const targetSide = String(edge.targetHandle || '').split('-').pop();
|
|
166
|
+
let sx, sy, tx, ty, d;
|
|
167
|
+
if (sourceSide === 'top' || sourceSide === 'bottom' || targetSide === 'top' || targetSide === 'bottom' || direction === 'DOWN' || direction === 'UP') {
|
|
168
|
+
const down = direction !== 'UP';
|
|
169
|
+
sy = source.y + (sourceSide === 'top' ? 0 : sourceSide === 'bottom' ? source.height : down ? source.height : 0);
|
|
170
|
+
sx = source.x + source.width / 2;
|
|
171
|
+
ty = target.y + (targetSide === 'top' ? 0 : targetSide === 'bottom' ? target.height : down ? 0 : target.height);
|
|
172
|
+
tx = target.x + target.width / 2;
|
|
173
|
+
const mid = (sy + ty) / 2;
|
|
174
|
+
d = `M ${sx} ${sy} C ${sx} ${mid}, ${tx} ${mid}, ${tx} ${ty}`;
|
|
175
|
+
} else {
|
|
176
|
+
sx = source.x + (sourceSide === 'left' ? 0 : sourceSide === 'right' ? source.width : source.width);
|
|
177
|
+
sy = source.y + source.height / 2;
|
|
178
|
+
tx = target.x + (targetSide === 'left' ? 0 : targetSide === 'right' ? target.width : 0);
|
|
179
|
+
ty = target.y + target.height / 2;
|
|
180
|
+
const mid = (sx + tx) / 2;
|
|
181
|
+
d = `M ${sx} ${sy} C ${mid} ${sy}, ${mid} ${ty}, ${tx} ${ty}`;
|
|
182
|
+
}
|
|
183
|
+
svg.append(svgElement('path', { d, class: 'edge', 'marker-end': 'url(#arrow)', stroke: /^#[0-9a-f]{3,8}$/i.test(edge.style?.stroke || '') ? edge.style.stroke : '#1e90ff', 'stroke-dasharray': edge.style?.strokeDasharray || undefined }));
|
|
184
|
+
const label = edge.data?.label || edge.label;
|
|
185
|
+
if (label) svg.append(svgElement('text', { x: (sx + tx) / 2, y: (sy + ty) / 2 - 5, class: 'edge-label', 'text-anchor': 'middle' }, escapeText(label).slice(0, 32)));
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
for (const box of boxes.filter(({ node }) => !node.data?.isGroup)) {
|
|
189
|
+
const node = box.node;
|
|
190
|
+
const data = node.data || {};
|
|
191
|
+
const shape = String(data.shape || '');
|
|
192
|
+
const tier = String(data.tier || data.layer || '').toLowerCase();
|
|
193
|
+
const tierStroke = ({ client: '#475569', edge: '#475569', compute: '#0f766e', async: '#c2410c', data: '#334155', external: '#57534e', observe: '#475569' })[tier] || '#0f766e';
|
|
194
|
+
const stroke = safeColor(data.tierColor || data.accentColor, tierStroke);
|
|
195
|
+
const fill = 'var(--color-background-primary, #fff)';
|
|
196
|
+
const group = svgElement('g');
|
|
197
|
+
if (shape === 'diamond') {
|
|
198
|
+
group.append(svgElement('polygon', { points: `${box.x + box.width / 2},${box.y} ${box.x + box.width},${box.y + box.height / 2} ${box.x + box.width / 2},${box.y + box.height} ${box.x},${box.y + box.height / 2}`, fill, stroke, 'stroke-width': 1.4 }));
|
|
199
|
+
} else if (shape === 'ellipse' || shape === 'circle' || shape === 'actor') {
|
|
200
|
+
group.append(svgElement('ellipse', { cx: box.x + box.width / 2, cy: box.y + box.height / 2, rx: box.width / 2, ry: box.height / 2, fill, stroke, 'stroke-width': 1.4 }));
|
|
201
|
+
} else {
|
|
202
|
+
group.append(svgElement('rect', { x: box.x, y: box.y, width: box.width, height: box.height, rx: shape === 'cylinder' ? 16 : 9, fill, stroke, 'stroke-width': 1.4 }));
|
|
203
|
+
}
|
|
204
|
+
const maxChars = Math.max(10, Math.floor((box.width - 24) / 7));
|
|
205
|
+
const title = escapeText(data.label || node.id);
|
|
206
|
+
const subtitle = escapeText(data.subtitle || '');
|
|
207
|
+
group.append(svgElement('text', { x: box.x + box.width / 2, y: box.y + box.height / 2 - (subtitle ? 4 : -4), class: 'node-title', 'text-anchor': 'middle' }, title.length > maxChars ? `${title.slice(0, maxChars - 1)}…` : title));
|
|
208
|
+
if (subtitle) group.append(svgElement('text', { x: box.x + box.width / 2, y: box.y + box.height / 2 + 13, class: 'node-subtitle', 'text-anchor': 'middle' }, subtitle.length > maxChars + 10 ? `${subtitle.slice(0, maxChars + 9)}…` : subtitle));
|
|
209
|
+
svg.append(group);
|
|
210
|
+
}
|
|
211
|
+
canvas.replaceChildren(svg);
|
|
212
|
+
const visible = nodes.filter((node) => !node.data?.isGroup).length;
|
|
213
|
+
const groups = nodes.length - visible;
|
|
214
|
+
$('counts').textContent = `${visible} component${visible === 1 ? '' : 's'} · ${edges.length} connection${edges.length === 1 ? '' : 's'}${groups ? ` · ${groups} group${groups === 1 ? '' : 's'}` : ''}`;
|
|
215
|
+
const openUrl = graph.diagramUrl || graph.shareUrl;
|
|
216
|
+
const openLink = $('open-link');
|
|
217
|
+
if (openUrl && /^https:\/\//.test(openUrl)) {
|
|
218
|
+
openLink.href = openUrl;
|
|
219
|
+
openLink.hidden = false;
|
|
220
|
+
$('open-label').textContent = graph.shareUrl ? 'Open in ArchDraw' : 'Open diagram';
|
|
221
|
+
} else {
|
|
222
|
+
openLink.hidden = true;
|
|
223
|
+
}
|
|
224
|
+
const warnings = (graph.errors || []).filter((item) => typeof item === 'string');
|
|
225
|
+
$('warnings').hidden = warnings.length === 0;
|
|
226
|
+
$('warnings').textContent = warnings.slice(0, 3).join(' · ');
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
window.addEventListener('message', (event) => {
|
|
230
|
+
if (event.source !== window.parent || !event.data || typeof event.data !== 'object') return;
|
|
231
|
+
const message = event.data;
|
|
232
|
+
if (message.id && pending.has(message.id)) {
|
|
233
|
+
const waiter = pending.get(message.id);
|
|
234
|
+
clearTimeout(waiter.timeout);
|
|
235
|
+
pending.delete(message.id);
|
|
236
|
+
if (message.error) waiter.reject(new Error(message.error.message || 'The chat rejected the request.'));
|
|
237
|
+
else waiter.resolve(message.result || {});
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
if (message.method === 'ui/notifications/tool-input') latestInput = message.params?.arguments || {};
|
|
241
|
+
if (message.method === 'ui/notifications/tool-result') {
|
|
242
|
+
const result = message.params?.structuredContent || message.params?.structured_content;
|
|
243
|
+
if (result) render(result);
|
|
244
|
+
}
|
|
245
|
+
if (message.method === 'ui/notifications/tool-cancelled') $('counts').textContent = 'Generation cancelled';
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
$('generate-form').addEventListener('submit', async (event) => {
|
|
249
|
+
event.preventDefault();
|
|
250
|
+
const description = $('prompt').value.trim();
|
|
251
|
+
if (!description) { $('status').textContent = 'Describe the diagram you want first.'; return; }
|
|
252
|
+
const button = $('generate');
|
|
253
|
+
button.disabled = true;
|
|
254
|
+
$('status').textContent = 'Sending your request to the chat…';
|
|
255
|
+
const publish = $('publish').checked;
|
|
256
|
+
const instruction = [
|
|
257
|
+
'Create an architecture diagram in ArchDraw for the description below. Use the ArchDraw generate_diagram tool with Mermaid input and include the generated inline diagram in the response.',
|
|
258
|
+
publish ? 'Include both the ArchDraw preview (share) URL and editor URL from the result in your reply.' : 'Set publish:false — the user chose to keep it private, so no link is created.',
|
|
259
|
+
`Description: ${description}`,
|
|
260
|
+
].join('\n\n');
|
|
261
|
+
try {
|
|
262
|
+
await request('ui/message', { role: 'user', content: { type: 'text', text: instruction } });
|
|
263
|
+
$('status').textContent = 'Request added to the chat. ArchDraw will show the generated preview there.';
|
|
264
|
+
$('prompt').value = '';
|
|
265
|
+
} catch (error) {
|
|
266
|
+
$('status').textContent = error instanceof Error ? error.message : 'Could not send the request. Use the chat composer instead.';
|
|
267
|
+
} finally {
|
|
268
|
+
button.disabled = false;
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
request('ui/initialize', {
|
|
273
|
+
appInfo: { name: 'ArchDraw diagram preview', version: '1.0.0' },
|
|
274
|
+
appCapabilities: { availableDisplayModes: ['inline', 'fullscreen'] },
|
|
275
|
+
protocolVersion: '2026-01-26',
|
|
276
|
+
}).then(() => notify('ui/notifications/initialized', {})).catch(() => {
|
|
277
|
+
$('status').textContent = 'Use the chat composer to ask ArchDraw for another diagram.';
|
|
278
|
+
});
|
|
279
|
+
})();
|
|
280
|
+
</script>
|
|
281
|
+
</body>
|
|
282
|
+
</html>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-widget.js","sourceRoot":"","sources":["../../src/ui/diagram-widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,CAAC,MAAM,kBAAkB,GAAG,+BAA+B,CAAC;AAClE,MAAM,CAAC,MAAM,mBAAmB,GAAG,YAAY,CAAC,IAAI,GAAG,CAAC,uBAAuB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hiabhee/archdraw-mcp-server",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "MCP server for ArchDraw architecture diagramming tool",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"access": "public"
|
|
15
15
|
},
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build": "tsc",
|
|
17
|
+
"build": "tsc && node scripts/copy-widget.mjs",
|
|
18
18
|
"dev": "tsx src/index.ts",
|
|
19
19
|
"start": "node dist/index.js",
|
|
20
20
|
"test": "vitest run",
|
|
@@ -22,7 +22,6 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@modelcontextprotocol/sdk": "^1.0.8",
|
|
25
|
-
"elkjs": "^0.11.1",
|
|
26
25
|
"zod": "^3.23.8"
|
|
27
26
|
},
|
|
28
27
|
"devDependencies": {
|
|
@@ -34,6 +33,9 @@
|
|
|
34
33
|
"engines": {
|
|
35
34
|
"node": ">=18.0.0"
|
|
36
35
|
},
|
|
36
|
+
"overrides": {
|
|
37
|
+
"esbuild": "^0.28.2"
|
|
38
|
+
},
|
|
37
39
|
"keywords": [
|
|
38
40
|
"mcp",
|
|
39
41
|
"model-context-protocol",
|