living-documentation 7.40.0 → 7.42.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.
@@ -8,6 +8,57 @@ exports.toolReadDiagram = toolReadDiagram;
8
8
  exports.toolCreateDiagram = toolCreateDiagram;
9
9
  const fs_1 = __importDefault(require("fs"));
10
10
  const path_1 = __importDefault(require("path"));
11
+ const VALID_PORTS = new Set(['N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW']);
12
+ const VALID_ARROW_DIRS = new Set(['to', 'from', 'both', 'none']);
13
+ const KIND_DEFAULTS = {
14
+ person: { renderAs: 'actor', color: 'c-gray', labelType: 'Person' },
15
+ software_system: { renderAs: 'box', color: 'c-blue', labelType: 'Software System' },
16
+ external_system: { renderAs: 'box', color: 'c-slate', labelType: 'External System' },
17
+ container: { renderAs: 'box', color: 'c-sky', labelType: 'Container' },
18
+ component: { renderAs: 'box', color: 'c-indigo', labelType: 'Component' },
19
+ database: { renderAs: 'database', color: 'c-teal', labelType: 'Database' },
20
+ object_storage: { renderAs: 'database', color: 'c-teal', labelType: 'Object Storage' },
21
+ queue: { renderAs: 'ellipse', color: 'c-amber', labelType: 'Queue' },
22
+ device: { renderAs: 'box', color: 'c-sky', labelType: 'Device' },
23
+ api: { renderAs: 'box', color: 'c-cyan', labelType: 'API' },
24
+ cloud_service: { renderAs: 'box', color: 'c-slate', labelType: 'Cloud Service' },
25
+ browser_app: { renderAs: 'box', color: 'c-sky', labelType: 'Browser App' },
26
+ mobile_app: { renderAs: 'box', color: 'c-sky', labelType: 'Mobile App' },
27
+ backend_service: { renderAs: 'box', color: 'c-sky', labelType: 'Backend Service' },
28
+ job: { renderAs: 'box', color: 'c-amber', labelType: 'Job' },
29
+ unknown: { renderAs: 'box', color: 'c-gray', labelType: 'Unknown' },
30
+ };
31
+ const NODE_STYLE_KEYS = [
32
+ 'kind',
33
+ 'renderAs',
34
+ 'description',
35
+ 'evidence',
36
+ 'fontSize',
37
+ 'textAlign',
38
+ 'textValign',
39
+ 'bgOpacity',
40
+ 'rotation',
41
+ 'labelRotation',
42
+ 'imageSrc',
43
+ 'groupId',
44
+ 'nodeLink',
45
+ 'locked',
46
+ ];
47
+ const EDGE_STYLE_KEYS = [
48
+ 'arrowDir',
49
+ 'dashes',
50
+ 'fontSize',
51
+ 'labelRotation',
52
+ 'edgeLabelOffsetX',
53
+ 'edgeLabelOffsetY',
54
+ 'fromPort',
55
+ 'toPort',
56
+ 'edgeColor',
57
+ 'edgeWidth',
58
+ 'edgeLocked',
59
+ 'edgeLabelWidth',
60
+ 'evidence',
61
+ ];
11
62
  // Estimates node dimensions from label content (font ~13px, lineH ~17px, pad 16px).
12
63
  // Used to size MCP-created nodes so multiline labels are not clipped.
13
64
  function estimateNodeSize(label, shapeType) {
@@ -32,6 +83,222 @@ function estimateNodeSize(label, shapeType) {
32
83
  const nodeHeight = Math.round(rawHFinal / 8) * 8;
33
84
  return { nodeWidth, nodeHeight };
34
85
  }
86
+ function estimateEdgeLabelWidth(label) {
87
+ if (label.length <= 24)
88
+ return 80;
89
+ if (label.length <= 36)
90
+ return 95;
91
+ return 105;
92
+ }
93
+ function estimateEdgeFontSize(label) {
94
+ return label.length > 36 ? 11 : 12;
95
+ }
96
+ function normalizeArrowDir(raw) {
97
+ if (!raw)
98
+ return 'to';
99
+ const dir = raw.toLowerCase();
100
+ if (!VALID_ARROW_DIRS.has(dir)) {
101
+ throw new Error(`Invalid arrowDir "${raw}". Allowed: to, from, both, none.`);
102
+ }
103
+ return dir;
104
+ }
105
+ function normalizePort(raw, fieldName) {
106
+ if (raw === null)
107
+ return null;
108
+ if (raw === undefined)
109
+ return undefined;
110
+ const port = raw.toUpperCase();
111
+ if (!VALID_PORTS.has(port)) {
112
+ throw new Error(`Invalid ${fieldName} "${raw}". Allowed: ${Array.from(VALID_PORTS).join(', ')}.`);
113
+ }
114
+ return port;
115
+ }
116
+ function numberOrNull(value, fallback) {
117
+ return typeof value === 'number' && Number.isFinite(value) ? value : fallback;
118
+ }
119
+ function stringOrNull(value) {
120
+ return typeof value === 'string' ? value : null;
121
+ }
122
+ function normalizeEvidence(raw) {
123
+ if (raw === undefined)
124
+ return null;
125
+ if (!Array.isArray(raw))
126
+ throw new Error('evidence must be an array when provided.');
127
+ return raw
128
+ .map((item, index) => {
129
+ if (!item || typeof item !== 'object') {
130
+ throw new Error(`evidence[${index}] must be an object.`);
131
+ }
132
+ if (typeof item.documentId !== 'string' || !item.documentId.trim()) {
133
+ throw new Error(`evidence[${index}].documentId is required and must be a non-empty string.`);
134
+ }
135
+ return {
136
+ documentId: item.documentId,
137
+ section: typeof item.section === 'string' && item.section.trim() ? item.section : null,
138
+ summary: typeof item.summary === 'string' && item.summary.trim() ? item.summary : null,
139
+ };
140
+ });
141
+ }
142
+ function hasEvidence(items) {
143
+ return items.some(item => Array.isArray(item.evidence) && item.evidence.length > 0);
144
+ }
145
+ function resolveNodeLink(n) {
146
+ if (n.linkedDiagramId)
147
+ return { type: 'diagram', value: n.linkedDiagramId };
148
+ if (n.nodeLink &&
149
+ typeof n.nodeLink.type === 'string' &&
150
+ typeof n.nodeLink.value === 'string') {
151
+ return { type: n.nodeLink.type, value: n.nodeLink.value };
152
+ }
153
+ return null;
154
+ }
155
+ function inferPorts(fromNode, toNode) {
156
+ if (!toNode)
157
+ return { fromPort: 'E', toPort: null };
158
+ const fromX = typeof fromNode.x === 'number' ? fromNode.x : undefined;
159
+ const fromY = typeof fromNode.y === 'number' ? fromNode.y : undefined;
160
+ const toX = typeof toNode.x === 'number' ? toNode.x : undefined;
161
+ const toY = typeof toNode.y === 'number' ? toNode.y : undefined;
162
+ if (fromX === undefined || fromY === undefined || toX === undefined || toY === undefined) {
163
+ return { fromPort: 'E', toPort: 'W' };
164
+ }
165
+ const dx = toX - fromX;
166
+ const dy = toY - fromY;
167
+ if (Math.abs(dx) >= Math.abs(dy) && dx !== 0) {
168
+ return dx > 0 ? { fromPort: 'E', toPort: 'W' } : { fromPort: 'W', toPort: 'E' };
169
+ }
170
+ if (dy !== 0) {
171
+ return dy > 0 ? { fromPort: 'S', toPort: 'N' } : { fromPort: 'N', toPort: 'S' };
172
+ }
173
+ return { fromPort: 'E', toPort: 'W' };
174
+ }
175
+ function normalizeAlignedExternalSystemWidths(nodes) {
176
+ const columns = new Map();
177
+ for (const node of nodes) {
178
+ const isExternalSystem = node.shapeType === 'box' && /\[External System\]/i.test(node.label);
179
+ if (!isExternalSystem || typeof node.x !== 'number')
180
+ continue;
181
+ const column = columns.get(node.x) ?? [];
182
+ column.push(node);
183
+ columns.set(node.x, column);
184
+ }
185
+ for (const column of columns.values()) {
186
+ if (column.length < 2)
187
+ continue;
188
+ const maxWidth = Math.max(...column.map(n => Number(n.nodeWidth) || 0));
189
+ for (const node of column)
190
+ node.nodeWidth = maxWidth;
191
+ }
192
+ }
193
+ function nodeKind(node) {
194
+ return typeof node.kind === 'string' ? node.kind : '';
195
+ }
196
+ function nodeLabel(node) {
197
+ return typeof node.label === 'string' ? node.label : '';
198
+ }
199
+ function isActorNode(node) {
200
+ return node.shapeType === 'actor' || nodeKind(node) === 'person';
201
+ }
202
+ function isDatabaseNode(node) {
203
+ return node.shapeType === 'database' || ['database', 'object_storage'].includes(nodeKind(node));
204
+ }
205
+ function isCentralSystemNode(node) {
206
+ const kind = nodeKind(node);
207
+ return ['software_system', 'container', 'component', 'api', 'backend_service'].includes(kind);
208
+ }
209
+ function isExternalSystemNode(node) {
210
+ const kind = nodeKind(node);
211
+ return kind === 'external_system' || /\[External System\]/i.test(nodeLabel(node));
212
+ }
213
+ function hasPosition(node) {
214
+ return typeof node.x === 'number' && typeof node.y === 'number';
215
+ }
216
+ function spreadAtX(nodes, x, step = 280, centerY = 0) {
217
+ const startY = centerY - ((nodes.length - 1) * step) / 2;
218
+ nodes.forEach((node, index) => {
219
+ if (!hasPosition(node)) {
220
+ node.x = x;
221
+ node.y = Math.round((startY + index * step) / 40) * 40;
222
+ }
223
+ });
224
+ }
225
+ function gridPlace(nodes, columns, startX, startY, stepX, stepY) {
226
+ nodes.forEach((node, index) => {
227
+ if (hasPosition(node))
228
+ return;
229
+ node.x = startX + (index % columns) * stepX;
230
+ node.y = startY + Math.floor(index / columns) * stepY;
231
+ });
232
+ }
233
+ function applyContextLayout(nodes) {
234
+ const unpositioned = nodes.filter(node => !hasPosition(node));
235
+ if (!unpositioned.length)
236
+ return;
237
+ const actors = unpositioned.filter(isActorNode);
238
+ const stores = unpositioned.filter(isDatabaseNode);
239
+ const externals = unpositioned.filter(node => isExternalSystemNode(node) && !isDatabaseNode(node));
240
+ const centralCandidates = unpositioned.filter(node => isCentralSystemNode(node) &&
241
+ !isActorNode(node) &&
242
+ !isDatabaseNode(node) &&
243
+ !isExternalSystemNode(node));
244
+ const central = centralCandidates.slice(0, Math.max(1, Math.min(centralCandidates.length, 2)));
245
+ const centralSet = new Set(central);
246
+ const remaining = unpositioned.filter(node => !actors.includes(node) &&
247
+ !stores.includes(node) &&
248
+ !externals.includes(node) &&
249
+ !centralSet.has(node));
250
+ spreadAtX(actors, -880, 280);
251
+ spreadAtX(central, -280, 280);
252
+ spreadAtX(remaining, 360, 280);
253
+ const rightColumn = [...externals, ...stores];
254
+ if (rightColumn.length <= 3) {
255
+ spreadAtX(rightColumn, 920, 280);
256
+ }
257
+ else {
258
+ gridPlace(rightColumn, 2, 760, -280, 360, 280);
259
+ }
260
+ }
261
+ function applyFlowLayout(nodes) {
262
+ const unpositioned = nodes.filter(node => !hasPosition(node));
263
+ if (!unpositioned.length)
264
+ return;
265
+ const stepX = 320;
266
+ const startX = -Math.round(((unpositioned.length - 1) * stepX) / 2 / 40) * 40;
267
+ unpositioned.forEach((node, index) => {
268
+ node.x = startX + index * stepX;
269
+ node.y = 0;
270
+ });
271
+ }
272
+ function applyGridLayout(nodes) {
273
+ const unpositioned = nodes.filter(node => !hasPosition(node));
274
+ if (!unpositioned.length)
275
+ return;
276
+ const columns = Math.min(3, Math.max(1, Math.ceil(Math.sqrt(unpositioned.length))));
277
+ const startX = -Math.round(((columns - 1) * 360) / 2 / 40) * 40;
278
+ gridPlace(unpositioned, columns, startX, -240, 360, 240);
279
+ }
280
+ function applyDeterministicLayout(diagramType, nodes) {
281
+ if (!nodes.some(node => !hasPosition(node)))
282
+ return;
283
+ if (diagramType === 'screen-guide')
284
+ return;
285
+ if (diagramType === 'context') {
286
+ applyContextLayout(nodes);
287
+ return;
288
+ }
289
+ if (diagramType === 'flow') {
290
+ applyFlowLayout(nodes);
291
+ return;
292
+ }
293
+ applyGridLayout(nodes);
294
+ }
295
+ function copyExistingFields(source, target, keys) {
296
+ for (const key of keys) {
297
+ if (Object.prototype.hasOwnProperty.call(source, key))
298
+ target[key] = source[key];
299
+ }
300
+ return target;
301
+ }
35
302
  // Maps semantic type names → vis-network shape properties.
36
303
  // All shapes are rendered via the frontend's ctxRenderer (shape: 'custom'),
37
304
  // but we keep `shape` here for backward compatibility with older stored diagrams.
@@ -79,6 +346,29 @@ function resolveColor(raw) {
79
346
  return key;
80
347
  return COLOR_ALIASES[key] ?? 'c-blue';
81
348
  }
349
+ function normalizeKind(raw) {
350
+ if (!raw)
351
+ return null;
352
+ const kind = raw.toLowerCase();
353
+ if (!KIND_DEFAULTS[kind]) {
354
+ throw new Error(`Invalid kind "${raw}". Allowed: ${Object.keys(KIND_DEFAULTS).join(', ')}.`);
355
+ }
356
+ return kind;
357
+ }
358
+ function resolveRenderAs(n, kind) {
359
+ return n.renderAs ?? (kind ? KIND_DEFAULTS[kind].renderAs : n.type ?? 'box');
360
+ }
361
+ function resolveNodeColor(n, kind) {
362
+ return resolveColor(n.color ?? (kind ? KIND_DEFAULTS[kind].color : undefined));
363
+ }
364
+ function buildNodeLabel(n, kind) {
365
+ if (!kind || n.name.includes('\n'))
366
+ return n.name;
367
+ const lines = [n.name, `[${KIND_DEFAULTS[kind].labelType}]`];
368
+ if (n.description && n.description.trim())
369
+ lines.push(n.description.trim());
370
+ return lines.join('\n');
371
+ }
82
372
  function diagramsFilePath(docsPath) {
83
373
  return path_1.default.join(docsPath, '.diagrams.json');
84
374
  }
@@ -110,22 +400,32 @@ function toolReadDiagram(docsPath, args) {
110
400
  const idToLabel = {};
111
401
  for (const n of diagram.nodes)
112
402
  idToLabel[n.id] = n.label;
113
- const nodes = diagram.nodes.map(n => ({
403
+ const nodes = diagram.nodes.map(n => copyExistingFields(n, {
114
404
  name: n.label,
115
405
  type: n.shapeType,
116
406
  color: n.colorKey,
117
407
  ...(n.x !== undefined ? { x: n.x } : {}),
118
408
  ...(n.y !== undefined ? { y: n.y } : {}),
119
- }));
120
- const edges = diagram.edges.map(e => ({
409
+ ...(n.nodeWidth !== undefined ? { width: n.nodeWidth } : {}),
410
+ ...(n.nodeHeight !== undefined ? { height: n.nodeHeight } : {}),
411
+ }, NODE_STYLE_KEYS));
412
+ const edges = diagram.edges.map(e => copyExistingFields(e, {
121
413
  from: idToLabel[e.from] ?? e.from,
122
414
  ...(e.to !== undefined ? { to: idToLabel[e.to] ?? e.to } : {}),
123
- ...(e.label ? { label: e.label } : {}),
124
- }));
415
+ ...(e.label !== undefined ? { label: e.label } : {}),
416
+ }, EDGE_STYLE_KEYS));
125
417
  return {
126
418
  content: [{
127
419
  type: 'text',
128
- text: JSON.stringify({ id: diagram.id, title: diagram.title, nodes, edges }, null, 2),
420
+ text: JSON.stringify({
421
+ id: diagram.id,
422
+ title: diagram.title,
423
+ ...(diagram.edgesStraight !== undefined ? { edgesStraight: diagram.edgesStraight } : {}),
424
+ ...(diagram.gridEnabled !== undefined ? { gridEnabled: diagram.gridEnabled } : {}),
425
+ ...(diagram.alignGuides !== undefined ? { alignGuides: diagram.alignGuides } : {}),
426
+ nodes,
427
+ edges,
428
+ }, null, 2),
129
429
  }],
130
430
  };
131
431
  }
@@ -152,59 +452,103 @@ function toolCreateDiagram(docsPath, args) {
152
452
  const nameToId = {};
153
453
  const nodes = args.nodes.map((n, i) => {
154
454
  const nodeId = `n${i + 1}`;
455
+ const kind = normalizeKind(n.kind);
456
+ const renderAs = resolveRenderAs(n, kind);
457
+ const label = buildNodeLabel(n, kind);
155
458
  nameToId[n.name] = nodeId;
156
- const shapeInfo = SHAPE_MAP[n.type.toLowerCase()] ?? { shape: 'box', shapeType: 'box' };
459
+ nameToId[label] = nodeId;
460
+ const shapeInfo = SHAPE_MAP[renderAs.toLowerCase()] ?? { shape: 'box', shapeType: 'box' };
157
461
  if (shapeInfo.shapeType === 'image' && !n.imageSrc) {
158
462
  throw new Error(`Node "${n.name || `#${i + 1}`}" uses type "image" but is missing \`imageSrc\`. ` +
159
463
  `Upload the image via POST /api/images/upload and pass the returned URL (e.g. "/images/foo.png").`);
160
464
  }
161
- const estimated = estimateNodeSize(n.name, shapeInfo.shapeType);
465
+ const estimated = estimateNodeSize(label, shapeInfo.shapeType);
162
466
  const nodeWidth = n.width ?? estimated.nodeWidth;
163
467
  const nodeHeight = n.height ?? estimated.nodeHeight;
164
468
  const node = {
165
469
  id: nodeId,
166
- label: n.name,
470
+ label,
167
471
  shape: shapeInfo.shape,
168
472
  shapeType: shapeInfo.shapeType,
169
- colorKey: resolveColor(n.color),
473
+ kind,
474
+ renderAs: shapeInfo.shapeType,
475
+ description: stringOrNull(n.description),
476
+ evidence: normalizeEvidence(n.evidence),
477
+ colorKey: resolveNodeColor(n, kind),
170
478
  nodeWidth,
171
479
  nodeHeight,
480
+ fontSize: numberOrNull(n.fontSize, null),
481
+ textAlign: stringOrNull(n.textAlign),
482
+ textValign: stringOrNull(n.textValign),
483
+ bgOpacity: numberOrNull(n.bgOpacity, null),
484
+ rotation: numberOrNull(n.rotation, 0),
485
+ labelRotation: numberOrNull(n.labelRotation, 0),
486
+ imageSrc: stringOrNull(n.imageSrc),
487
+ groupId: stringOrNull(n.groupId),
488
+ nodeLink: resolveNodeLink(n),
489
+ locked: n.locked === true,
172
490
  };
173
491
  if (n.x !== undefined)
174
492
  node.x = n.x;
175
493
  if (n.y !== undefined)
176
494
  node.y = n.y;
177
- if (n.bgOpacity !== undefined)
178
- node.bgOpacity = n.bgOpacity;
179
- if (n.locked !== undefined)
180
- node.locked = n.locked;
181
- if (n.linkedDiagramId)
182
- node.nodeLink = { type: 'diagram', value: n.linkedDiagramId };
183
- if (n.imageSrc)
184
- node.imageSrc = n.imageSrc;
185
495
  return node;
186
496
  });
497
+ normalizeAlignedExternalSystemWidths(nodes);
498
+ applyDeterministicLayout(diagramType, nodes);
499
+ normalizeAlignedExternalSystemWidths(nodes);
187
500
  const edges = args.edges.map((e, i) => {
188
501
  const fromId = nameToId[e.from];
189
502
  if (!fromId)
190
503
  throw new Error(`Edge references unknown node: "${e.from}"`);
191
- const edge = { id: `e${i + 1}`, from: fromId, to: '' };
504
+ const fromNode = nodes.find(n => n.id === fromId);
505
+ if (!fromNode)
506
+ throw new Error(`Edge references unknown node: "${e.from}"`);
507
+ const label = e.label ?? '';
508
+ const edge = {
509
+ id: `e${i + 1}`,
510
+ from: fromId,
511
+ to: '',
512
+ label,
513
+ arrowDir: normalizeArrowDir(e.arrowDir),
514
+ dashes: e.dashes === true,
515
+ fontSize: numberOrNull(e.fontSize, estimateEdgeFontSize(label)),
516
+ labelRotation: numberOrNull(e.labelRotation, 0),
517
+ edgeLabelOffsetX: numberOrNull(e.edgeLabelOffsetX, 0),
518
+ edgeLabelOffsetY: numberOrNull(e.edgeLabelOffsetY, 0),
519
+ edgeColor: stringOrNull(e.edgeColor),
520
+ edgeWidth: numberOrNull(e.edgeWidth, null),
521
+ edgeLocked: e.edgeLocked === true,
522
+ edgeLabelWidth: numberOrNull(e.edgeLabelWidth, estimateEdgeLabelWidth(label)),
523
+ evidence: normalizeEvidence(e.evidence),
524
+ };
525
+ let toNode;
192
526
  if (e.to !== undefined && e.to !== '') {
193
527
  const toId = nameToId[e.to];
194
528
  if (!toId)
195
529
  throw new Error(`Edge references unknown node: "${e.to}"`);
196
530
  edge.to = toId;
531
+ toNode = nodes.find(n => n.id === toId);
197
532
  }
198
533
  else {
199
534
  delete edge.to;
200
535
  }
201
- if (e.label) {
202
- edge.label = e.label;
203
- edge.edgeLabelWidth = 80;
204
- }
536
+ const inferredPorts = inferPorts(fromNode, toNode);
537
+ const fromPort = normalizePort(e.fromPort, 'fromPort') ?? inferredPorts.fromPort;
538
+ const toPort = normalizePort(e.toPort, 'toPort') ?? inferredPorts.toPort;
539
+ edge.fromPort = fromPort;
540
+ edge.toPort = toPort;
205
541
  return edge;
206
542
  });
207
- const diagram = { id, title: args.title, nodes, edges };
543
+ const diagram = {
544
+ id,
545
+ title: args.title,
546
+ nodes,
547
+ edges,
548
+ edgesStraight: args.edgesStraight ?? false,
549
+ gridEnabled: args.gridEnabled ?? false,
550
+ alignGuides: args.alignGuides ?? true,
551
+ };
208
552
  const all = loadDiagrams(docsPath);
209
553
  const existingIndex = all.findIndex(d => d.id === id);
210
554
  if (existingIndex !== -1) {
@@ -226,6 +570,11 @@ function toolCreateDiagram(docsPath, args) {
226
570
  warnings.push(`Context diagram has ${nodes.length} nodes — keep it ≤ ${CONTEXT_NODE_SOFT_LIMIT} for readability. ` +
227
571
  `If the system is too large, create a container diagram for the detailed view instead.`);
228
572
  }
573
+ if (['context', 'container', 'component', 'uml'].includes(diagramType) &&
574
+ !hasEvidence(nodes) &&
575
+ !hasEvidence(edges)) {
576
+ warnings.push('Diagram has no evidence metadata. Consider adding document references for auditability.');
577
+ }
229
578
  return {
230
579
  content: [{
231
580
  type: 'text',
@@ -1 +1 @@
1
- {"version":3,"file":"diagrams.js","sourceRoot":"","sources":["../../../../src/mcp/tools/diagrams.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"diagrams.js","sourceRoot":"","sources":["../../../../src/mcp/tools/diagrams.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "living-documentation",
3
- "version": "7.40.0",
3
+ "version": "7.42.0",
4
4
  "description": "A CLI tool that serves a local Markdown documentation viewer",
5
5
  "main": "dist/src/server.js",
6
6
  "bin": {