@documonster/mcp 0.13.1 → 0.14.0-canary.sha.fa35d09c
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/tools/diagram-markdown.d.ts +34 -2
- package/dist/tools/diagram-markdown.d.ts.map +1 -1
- package/dist/tools/diagram-markdown.js +219 -30
- package/dist/tools/diagram-markdown.js.map +1 -1
- package/dist/tools/diagram-slice.d.ts +45 -0
- package/dist/tools/diagram-slice.d.ts.map +1 -0
- package/dist/tools/diagram-slice.js +225 -0
- package/dist/tools/diagram-slice.js.map +1 -0
- package/dist/tools/diagram.js +1 -1
- package/dist/tools/doc-convert.js +1 -1
- package/dist/tools/doc-convert.js.map +1 -1
- package/dist/tools/doc-write.js +1 -1
- package/dist/tools/doc-write.js.map +1 -1
- package/package.json +5 -5
|
@@ -18,8 +18,19 @@
|
|
|
18
18
|
* edge of the paper. Fitting to the text width is the difference between a
|
|
19
19
|
* document and a broken one.
|
|
20
20
|
*/
|
|
21
|
+
import { type DrawList } from "documonster/draw";
|
|
22
|
+
import type { MermaidRenderOptions } from "documonster/mermaid";
|
|
21
23
|
import type { MarkdownImportOptions } from "documonster/word/markdown";
|
|
22
24
|
import { type DiagramStyleArgs } from "./diagram.js";
|
|
25
|
+
/**
|
|
26
|
+
* Tallest a single embedded piece may be, in points: the page less its margins, less a little.
|
|
27
|
+
*
|
|
28
|
+
* The slack is not decoration. An image exactly as tall as the text area cannot share a page
|
|
29
|
+
* with *anything* — not even the heading it belongs to — so Word pushes it alone onto the next
|
|
30
|
+
* page and leaves the heading stranded at the bottom of the previous one, which is how a
|
|
31
|
+
* document grew a near-empty page before every large diagram.
|
|
32
|
+
*/
|
|
33
|
+
export declare const MAX_EMBED_HEIGHT_POINTS = 550;
|
|
23
34
|
export interface PreparedMarkdown {
|
|
24
35
|
/** The Markdown with every mermaid fence replaced by an image reference. */
|
|
25
36
|
readonly markdown: string;
|
|
@@ -28,11 +39,32 @@ export interface PreparedMarkdown {
|
|
|
28
39
|
* fence was rendered, so the no-diagram path behaves exactly as before.
|
|
29
40
|
*/
|
|
30
41
|
readonly resolveImage?: MarkdownImportOptions["resolveImage"];
|
|
31
|
-
/** How many diagrams were rendered. */
|
|
32
|
-
readonly count: number;
|
|
33
42
|
/** Lines worth reporting to the caller. */
|
|
34
43
|
readonly notes: readonly string[];
|
|
35
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* The narrowest layout of a diagram that the text column can show legibly.
|
|
47
|
+
*
|
|
48
|
+
* Walks {@link FIT_LADDER} and stops at the first rung whose text clears
|
|
49
|
+
* {@link MIN_EMBED_FONT_POINTS} — first, not best, because the ladder is ordered by what each
|
|
50
|
+
* concession costs a reader, so the earliest rung that works is the least damage. Height is
|
|
51
|
+
* not a constraint here: a diagram taller than a page is cut across pages instead of being
|
|
52
|
+
* shrunk back into one, which would give away the legibility the narrowing just bought.
|
|
53
|
+
*
|
|
54
|
+
* If no rung clears the bar — a rank with nine nodes in it is wide however hard the labels
|
|
55
|
+
* wrap — the narrowest attempt is used and the caller is told, because a diagram nobody can
|
|
56
|
+
* read is worth a line of output rather than silence.
|
|
57
|
+
*
|
|
58
|
+
* A caller who set any of the layout numbers themselves is left alone: they have said what the
|
|
59
|
+
* layout should be, and second-guessing an explicit argument is worse than a small image.
|
|
60
|
+
*/
|
|
61
|
+
export declare function fitToColumn(source: string, options: MermaidRenderOptions & {
|
|
62
|
+
readonly background: string;
|
|
63
|
+
}, tune: boolean): {
|
|
64
|
+
list: DrawList;
|
|
65
|
+
fit: number;
|
|
66
|
+
short: boolean;
|
|
67
|
+
};
|
|
36
68
|
/**
|
|
37
69
|
* Render every mermaid fence in `markdown` and rewrite it as an inline image.
|
|
38
70
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-markdown.d.ts","sourceRoot":"","sources":["../../src/tools/diagram-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"diagram-markdown.d.ts","sourceRoot":"","sources":["../../src/tools/diagram-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAA8B,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,KAAK,EAAqB,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAI1F,OAAO,EAML,KAAK,gBAAgB,EACtB,MAAM,cAAc,CAAC;AAWtB;;;;;;;GAOG;AAIH,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAyE3C,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,YAAY,CAAC,EAAE,qBAAqB,CAAC,cAAc,CAAC,CAAC;IAC9D,2CAA2C;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,oBAAoB,GAAG;IAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;CAAE,EAC/D,IAAI,EAAE,OAAO,GACZ;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAwBjD;AAKD;;;;;;;GAOG;AACH,wBAAsB,uBAAuB,CAC3C,QAAQ,EAAE,MAAM,EAChB,KAAK,GAAE,gBAAqB,GAC3B,OAAO,CAAC,gBAAgB,CAAC,CAqJ3B"}
|
|
@@ -18,8 +18,11 @@
|
|
|
18
18
|
* edge of the paper. Fitting to the text width is the difference between a
|
|
19
19
|
* document and a broken one.
|
|
20
20
|
*/
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
21
|
+
import { encodePng } from "documonster/archive";
|
|
22
|
+
import { rasterizeToRgba, translate } from "documonster/draw";
|
|
23
|
+
import { McpToolError, toolError } from "../errors.js";
|
|
24
|
+
import { planSlices } from "./diagram-slice.js";
|
|
25
|
+
import { EMU_PER_POINT, buildDrawList, findMermaidFences, parseDiagram, toRenderOptions } from "./diagram.js";
|
|
23
26
|
import { newImageBudget } from "./image.js";
|
|
24
27
|
/**
|
|
25
28
|
* Widest an embedded diagram may be, in points.
|
|
@@ -28,8 +31,74 @@ import { newImageBudget } from "./image.js";
|
|
|
28
31
|
* of text column. A wider image is not clipped by Word, it overflows the page.
|
|
29
32
|
*/
|
|
30
33
|
const MAX_EMBED_WIDTH_POINTS = 468;
|
|
31
|
-
/**
|
|
32
|
-
|
|
34
|
+
/**
|
|
35
|
+
* Tallest a single embedded piece may be, in points: the page less its margins, less a little.
|
|
36
|
+
*
|
|
37
|
+
* The slack is not decoration. An image exactly as tall as the text area cannot share a page
|
|
38
|
+
* with *anything* — not even the heading it belongs to — so Word pushes it alone onto the next
|
|
39
|
+
* page and leaves the heading stranded at the bottom of the previous one, which is how a
|
|
40
|
+
* document grew a near-empty page before every large diagram.
|
|
41
|
+
*/
|
|
42
|
+
// Leaves room on the first slice's page for an H2 heading and the image
|
|
43
|
+
// paragraph's own spacing. At 600pt both individually fit a 648pt text area,
|
|
44
|
+
// but not together, which stranded the heading on the preceding page.
|
|
45
|
+
export const MAX_EMBED_HEIGHT_POINTS = 550;
|
|
46
|
+
/**
|
|
47
|
+
* Smallest body text an embedded diagram may end up with on the page, in points.
|
|
48
|
+
*
|
|
49
|
+
* Scaling a diagram to the column is necessary but not sufficient, and treating it as
|
|
50
|
+
* sufficient is what made these documents unreadable: a 1941-point flowchart fitted to a
|
|
51
|
+
* 468-point column is drawn at 24%, so its 14-point labels arrive at 3.4pt — present in the
|
|
52
|
+
* file, legible to nobody. Eleven of sixteen diagrams in one real document came out under
|
|
53
|
+
* 8pt, and the two worst were the ones a reader complained about.
|
|
54
|
+
*
|
|
55
|
+
* 8pt is the floor because it is roughly the smallest footnote a printed page uses.
|
|
56
|
+
*/
|
|
57
|
+
const MIN_EMBED_FONT_POINTS = 8;
|
|
58
|
+
/**
|
|
59
|
+
* Successively tighter layouts to try when a diagram will not fit the column legibly.
|
|
60
|
+
*
|
|
61
|
+
* Scaling is the wrong lever and there is only one right one: make the diagram *intrinsically*
|
|
62
|
+
* narrower and let it grow downwards, where a page is free to continue onto the next one.
|
|
63
|
+
*
|
|
64
|
+
* **Ordered by what it costs the reader, not by how much width it saves.** That ordering is
|
|
65
|
+
* the whole design, and having it wrong produced a diagram nobody wanted to look at: the gaps
|
|
66
|
+
* cost nothing at all to tighten, an edge label is loose text in the space between ranks and
|
|
67
|
+
* reads perfectly well over three short lines, but a node's text is the thing its box is drawn
|
|
68
|
+
* around. One number governed all three, so narrowing a chart to fit wrapped a ten-word node
|
|
69
|
+
* label at seventy points — a column two words wide and ten lines deep, in a diagram that was
|
|
70
|
+
* then nine inches tall and mostly empty box. The same chart, with only its edge labels
|
|
71
|
+
* narrowed, is 6.5 × 5.4 inches with every node on four readable lines.
|
|
72
|
+
*
|
|
73
|
+
* Note what does *not* work, since it looks like it should: rendering with a smaller
|
|
74
|
+
* `fontSize`. The whole diagram shrinks with it, so the fit rises by exactly the factor the
|
|
75
|
+
* text falls and the size on the page is unchanged.
|
|
76
|
+
*/
|
|
77
|
+
const FIT_LADDER = [
|
|
78
|
+
// Gaps first: invisible to a reader, and worth about a tenth of the width.
|
|
79
|
+
{ nodeGap: 26, rankGap: 40 },
|
|
80
|
+
{ nodeGap: 22, rankGap: 32 },
|
|
81
|
+
// Then edge labels.
|
|
82
|
+
{ nodeGap: 22, rankGap: 32, maxEdgeLabelWidth: 140 },
|
|
83
|
+
{ nodeGap: 22, rankGap: 32, maxEdgeLabelWidth: 100 },
|
|
84
|
+
{ nodeGap: 20, rankGap: 30, maxEdgeLabelWidth: 70 },
|
|
85
|
+
// Only then the node text, and gently.
|
|
86
|
+
{ nodeGap: 20, rankGap: 30, maxEdgeLabelWidth: 70, maxLabelWidth: 190 },
|
|
87
|
+
{ nodeGap: 20, rankGap: 30, maxEdgeLabelWidth: 70, maxLabelWidth: 160 },
|
|
88
|
+
{ nodeGap: 20, rankGap: 30, maxEdgeLabelWidth: 70, maxLabelWidth: 140 },
|
|
89
|
+
{ nodeGap: 18, rankGap: 44, maxEdgeLabelWidth: 60, maxLabelWidth: 120 },
|
|
90
|
+
{ nodeGap: 18, rankGap: 44, maxEdgeLabelWidth: 60, maxLabelWidth: 100 }
|
|
91
|
+
];
|
|
92
|
+
/**
|
|
93
|
+
* Pixels per point for an embedded diagram — 216 DPI.
|
|
94
|
+
*
|
|
95
|
+
* PDF and DOCX embed byte-for-byte equivalent pixels, but Preview applies a
|
|
96
|
+
* better downsampling filter than Word. At 144 DPI Word made one- and two-pixel
|
|
97
|
+
* connector strokes look kinked or misaligned even though the geometry was
|
|
98
|
+
* identical. A third sample per point gives its renderer enough coverage while
|
|
99
|
+
* costing materially less than 288 DPI.
|
|
100
|
+
*/
|
|
101
|
+
const EMBED_SCALE = 3;
|
|
33
102
|
/** URL scheme the rewritten fences use. Deliberately not a real one. */
|
|
34
103
|
const DIAGRAM_URL_PREFIX = "documonster-diagram:";
|
|
35
104
|
/** Fences one document may carry, so a pathological input cannot exhaust memory. */
|
|
@@ -37,6 +106,50 @@ const MAX_EMBEDDED_DIAGRAMS = 20;
|
|
|
37
106
|
/** Aggregate rendering budget for one document's fences. */
|
|
38
107
|
const MAX_EMBED_TOTAL_BYTES = 64 * 1024 * 1024;
|
|
39
108
|
const MAX_EMBED_TOTAL_PIXELS = 80_000_000;
|
|
109
|
+
/** Aggregate image relationships after tall diagrams are split. */
|
|
110
|
+
const MAX_EMBEDDED_PIECES = 60;
|
|
111
|
+
/**
|
|
112
|
+
* The narrowest layout of a diagram that the text column can show legibly.
|
|
113
|
+
*
|
|
114
|
+
* Walks {@link FIT_LADDER} and stops at the first rung whose text clears
|
|
115
|
+
* {@link MIN_EMBED_FONT_POINTS} — first, not best, because the ladder is ordered by what each
|
|
116
|
+
* concession costs a reader, so the earliest rung that works is the least damage. Height is
|
|
117
|
+
* not a constraint here: a diagram taller than a page is cut across pages instead of being
|
|
118
|
+
* shrunk back into one, which would give away the legibility the narrowing just bought.
|
|
119
|
+
*
|
|
120
|
+
* If no rung clears the bar — a rank with nine nodes in it is wide however hard the labels
|
|
121
|
+
* wrap — the narrowest attempt is used and the caller is told, because a diagram nobody can
|
|
122
|
+
* read is worth a line of output rather than silence.
|
|
123
|
+
*
|
|
124
|
+
* A caller who set any of the layout numbers themselves is left alone: they have said what the
|
|
125
|
+
* layout should be, and second-guessing an explicit argument is worse than a small image.
|
|
126
|
+
*/
|
|
127
|
+
export function fitToColumn(source, options, tune) {
|
|
128
|
+
const measure = (list) => {
|
|
129
|
+
const fit = Math.min(1, MAX_EMBED_WIDTH_POINTS / list.width);
|
|
130
|
+
// The floor applies to the diagram's body text. Edge labels are authored a
|
|
131
|
+
// step smaller on purpose; forcing the smallest label to 8pt over-wraps
|
|
132
|
+
// every node, turning a balanced one-page chart into a tall two-page strip.
|
|
133
|
+
const size = (options.fontSize ?? DEFAULT_DIAGRAM_FONT_POINTS) * fit;
|
|
134
|
+
return { list, fit, short: size < MIN_EMBED_FONT_POINTS };
|
|
135
|
+
};
|
|
136
|
+
let best = measure(buildDrawList(source, options));
|
|
137
|
+
if (!best.short || !tune) {
|
|
138
|
+
return best;
|
|
139
|
+
}
|
|
140
|
+
for (const step of FIT_LADDER) {
|
|
141
|
+
const attempt = measure(buildDrawList(source, { ...options, ...step }));
|
|
142
|
+
if (attempt.list.width < best.list.width) {
|
|
143
|
+
best = attempt;
|
|
144
|
+
}
|
|
145
|
+
if (!attempt.short) {
|
|
146
|
+
return attempt;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
return best;
|
|
150
|
+
}
|
|
151
|
+
/** The layout's own default, which `toRenderOptions` leaves unset when the caller does. */
|
|
152
|
+
const DEFAULT_DIAGRAM_FONT_POINTS = 14;
|
|
40
153
|
/**
|
|
41
154
|
* Render every mermaid fence in `markdown` and rewrite it as an inline image.
|
|
42
155
|
*
|
|
@@ -48,59 +161,133 @@ const MAX_EMBED_TOTAL_PIXELS = 80_000_000;
|
|
|
48
161
|
export async function prepareMarkdownDiagrams(markdown, style = {}) {
|
|
49
162
|
const fences = findMermaidFences(markdown);
|
|
50
163
|
if (fences.length === 0) {
|
|
51
|
-
return { markdown,
|
|
164
|
+
return { markdown, notes: [] };
|
|
52
165
|
}
|
|
53
166
|
if (fences.length > MAX_EMBEDDED_DIAGRAMS) {
|
|
54
167
|
throw toolError.tooLarge(`this document has ${fences.length} mermaid fences, over the ${MAX_EMBEDDED_DIAGRAMS} limit for one call`, "Every diagram is rendered and held in memory until the document is written. Split the document, or pass diagrams: false and render the ones you need with diagram_render.");
|
|
55
168
|
}
|
|
56
169
|
const options = toRenderOptions(style);
|
|
170
|
+
// Only tune a layout the caller has not spoken about.
|
|
171
|
+
const tune = style.maxLabelWidth === undefined && style.nodeGap === undefined && style.rankGap === undefined;
|
|
57
172
|
const images = new Map();
|
|
58
173
|
const failures = [];
|
|
174
|
+
const cramped = [];
|
|
175
|
+
const split = [];
|
|
176
|
+
const forced = [];
|
|
59
177
|
// One budget across every fence: ten diagrams each just under the rasteriser's
|
|
60
178
|
// own per-image cap is gigabytes, and each is held until the document is written.
|
|
61
179
|
const budget = newImageBudget();
|
|
180
|
+
let drawn = 0;
|
|
62
181
|
let rewritten = markdown;
|
|
63
182
|
// Back to front, so each splice leaves the earlier fences' offsets valid.
|
|
64
183
|
for (const fence of [...fences].reverse()) {
|
|
65
|
-
let
|
|
66
|
-
let alt;
|
|
184
|
+
let references;
|
|
67
185
|
try {
|
|
68
186
|
const diagram = parseDiagram(fence.source);
|
|
69
|
-
const list =
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
};
|
|
187
|
+
const { list, fit, short } = fitToColumn(fence.source, options, tune);
|
|
188
|
+
if (short) {
|
|
189
|
+
cramped.push(fence.line);
|
|
190
|
+
}
|
|
191
|
+
const alt = diagram.title ?? `${diagram.kind} diagram`;
|
|
192
|
+
const cuts = planSlices(list, fit, MAX_EMBED_HEIGHT_POINTS);
|
|
193
|
+
if (cuts.some(cut => cut.forced)) {
|
|
194
|
+
forced.push(fence.line);
|
|
195
|
+
}
|
|
196
|
+
if (cuts.length > 1) {
|
|
197
|
+
split.push({ line: fence.line, pieces: cuts.length });
|
|
198
|
+
}
|
|
199
|
+
const parts = [];
|
|
200
|
+
const pending = [];
|
|
201
|
+
const fenceBudget = { ...budget };
|
|
202
|
+
cuts.forEach((cut, index) => {
|
|
203
|
+
// Paint this viewport, not the whole diagram then crop it. A diagram
|
|
204
|
+
// taller than the rasteriser's pixel limit is exactly the case slicing
|
|
205
|
+
// is meant to make possible; allocating it first defeats that contract.
|
|
206
|
+
const sliceHeight = (cut.bottom - cut.top) / fit;
|
|
207
|
+
const slice = {
|
|
208
|
+
...list,
|
|
209
|
+
height: sliceHeight,
|
|
210
|
+
children: [
|
|
211
|
+
{
|
|
212
|
+
kind: "group",
|
|
213
|
+
transform: translate(0, -cut.top / fit),
|
|
214
|
+
children: list.children
|
|
215
|
+
}
|
|
216
|
+
]
|
|
217
|
+
};
|
|
218
|
+
const piece = rasterizeToRgba(slice, { scale: EMBED_SCALE * fit });
|
|
219
|
+
const encoded = {
|
|
220
|
+
bytes: encodePng(piece.data, piece.width, piece.height, {
|
|
221
|
+
// Pixels and the OOXML extent have both already been reduced by
|
|
222
|
+
// `fit`, so their ratio remains 2 px/pt = 144 DPI. Multiplying by
|
|
223
|
+
// fit again made a 50%-fitted PNG falsely claim 72 DPI.
|
|
224
|
+
dpi: 72 * EMBED_SCALE
|
|
225
|
+
}),
|
|
226
|
+
width: piece.width,
|
|
227
|
+
height: piece.height
|
|
228
|
+
};
|
|
229
|
+
spendEmbedBudget(fenceBudget, encoded, fence.line);
|
|
230
|
+
const url = cuts.length === 1
|
|
231
|
+
? `${DIAGRAM_URL_PREFIX}${fence.ordinal}`
|
|
232
|
+
: `${DIAGRAM_URL_PREFIX}${fence.ordinal}.${index + 1}`;
|
|
233
|
+
pending.push({
|
|
234
|
+
url,
|
|
235
|
+
image: {
|
|
236
|
+
data: encoded.bytes,
|
|
237
|
+
mediaType: "png",
|
|
238
|
+
width: Math.round(list.width * fit * EMU_PER_POINT),
|
|
239
|
+
height: Math.round((cut.bottom - cut.top) * EMU_PER_POINT)
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
// Each piece names its place in the sequence, so a reader who meets the second half
|
|
243
|
+
// three pages later knows it is the second half.
|
|
244
|
+
const label = cuts.length === 1 ? alt : `${alt} (${index + 1} of ${cuts.length})`;
|
|
245
|
+
parts.push(``);
|
|
246
|
+
});
|
|
247
|
+
// Commit one fence atomically. A later slice can exhaust the aggregate
|
|
248
|
+
// budget; registering earlier slices first leaves unreachable image data
|
|
249
|
+
// retained after the fence falls back to a code block.
|
|
250
|
+
for (const pendingImage of pending) {
|
|
251
|
+
images.set(pendingImage.url, pendingImage.image);
|
|
252
|
+
}
|
|
253
|
+
Object.assign(budget, fenceBudget);
|
|
254
|
+
drawn++;
|
|
255
|
+
references = parts.join("\n\n");
|
|
84
256
|
}
|
|
85
257
|
catch (cause) {
|
|
258
|
+
// A budget is a hard execution boundary, not a per-diagram rendering
|
|
259
|
+
// failure. Continuing would keep spending the resource that ran out.
|
|
260
|
+
if (cause instanceof McpToolError && cause.code === "too_large") {
|
|
261
|
+
throw cause;
|
|
262
|
+
}
|
|
86
263
|
failures.push(`- **diagram at line ${fence.line} left as a code block**: ${cause instanceof Error ? cause.message : String(cause)}`);
|
|
87
264
|
continue;
|
|
88
265
|
}
|
|
89
|
-
const url = `${DIAGRAM_URL_PREFIX}${fence.ordinal}`;
|
|
90
|
-
images.set(url, image);
|
|
91
266
|
// A blank line either side: an image reference that lands against a
|
|
92
267
|
// neighbouring line is parsed as part of that paragraph.
|
|
93
|
-
rewritten = `${rewritten.slice(0, fence.start)}\n
|
|
268
|
+
rewritten = `${rewritten.slice(0, fence.start)}\n${references}\n${rewritten.slice(fence.end)}`;
|
|
94
269
|
}
|
|
95
270
|
const notes = images.size === 0
|
|
96
271
|
? failures
|
|
97
272
|
: [
|
|
98
|
-
`- ${
|
|
273
|
+
`- ${drawn} mermaid diagram(s) rendered and embedded as PNG, fitted to the text column`,
|
|
274
|
+
...[...split]
|
|
275
|
+
.reverse()
|
|
276
|
+
.map(entry => `- diagram at line ${entry.line} is taller than one page: cut into ${entry.pieces} pieces at rows that cross no box or label`),
|
|
277
|
+
...(forced.length === 0
|
|
278
|
+
? []
|
|
279
|
+
: [
|
|
280
|
+
`- diagram(s) at line ${[...forced].reverse().join(", ")} contain a box taller than a page, so a cut had to pass through it`
|
|
281
|
+
]),
|
|
282
|
+
...(cramped.length === 0
|
|
283
|
+
? []
|
|
284
|
+
: [
|
|
285
|
+
`- diagram(s) at line ${[...cramped].reverse().join(", ")} are wider than the text column allows: their text lands under ${MIN_EMBED_FONT_POINTS}pt even at the tightest layout. Split the widest rank, or render them separately with diagram_render.`
|
|
286
|
+
]),
|
|
99
287
|
...failures
|
|
100
288
|
];
|
|
101
289
|
return {
|
|
102
290
|
markdown: rewritten,
|
|
103
|
-
count: images.size,
|
|
104
291
|
...(images.size === 0 ? {} : { resolveImage: (url) => images.get(url) }),
|
|
105
292
|
notes
|
|
106
293
|
};
|
|
@@ -116,12 +303,14 @@ function spendEmbedBudget(budget, rendered, line) {
|
|
|
116
303
|
budget.count += 1;
|
|
117
304
|
budget.bytes += rendered.bytes.length;
|
|
118
305
|
budget.pixels += rendered.width * rendered.height;
|
|
119
|
-
if (budget.
|
|
306
|
+
if (budget.count > MAX_EMBEDDED_PIECES ||
|
|
307
|
+
budget.bytes > MAX_EMBED_TOTAL_BYTES ||
|
|
308
|
+
budget.pixels > MAX_EMBED_TOTAL_PIXELS) {
|
|
120
309
|
throw toolError.tooLarge(`the diagrams in this document exceed the per-call rendering budget (reached at the fence on line ${line})`, "Split the document, or pass diagrams: false and render the large ones separately with diagram_render.");
|
|
121
310
|
}
|
|
122
311
|
}
|
|
123
|
-
/**
|
|
312
|
+
/** Escape image-alt delimiters without deleting part of the accessible name. */
|
|
124
313
|
function escapeAlt(text) {
|
|
125
|
-
return text.replace(/[[\]]/g, "");
|
|
314
|
+
return text.replace(/\\/g, "\\\\").replace(/\r?\n/g, " ").replace(/[[\]]/g, "\\$&");
|
|
126
315
|
}
|
|
127
316
|
//# sourceMappingURL=diagram-markdown.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"diagram-markdown.js","sourceRoot":"","sources":["../../src/tools/diagram-markdown.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"diagram-markdown.js","sourceRoot":"","sources":["../../src/tools/diagram-markdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cutting a tall diagram across several pages.
|
|
3
|
+
*
|
|
4
|
+
* A page has one width and a fixed height, and a diagram narrowed enough to be read at all
|
|
5
|
+
* can easily be taller than the second of those. Scaling it down again to fit is what this
|
|
6
|
+
* module exists to avoid: it trades the legibility that the narrowing just bought back, and
|
|
7
|
+
* for a deep flowchart it trades a lot of it.
|
|
8
|
+
*
|
|
9
|
+
* So the diagram is cut instead, and the whole problem is *where*. A row of pixels that is
|
|
10
|
+
* entirely background does not exist in a top-to-bottom flowchart — the links between ranks
|
|
11
|
+
* cross every gap — so "find the blank rows" finds nothing. Cutting a link is fine, though:
|
|
12
|
+
* the line continues at the top of the next page, which is how any split figure reads. What
|
|
13
|
+
* must not be cut is a **box or a piece of text**, because half a word is not readable at
|
|
14
|
+
* either end and half a node is not obviously one node.
|
|
15
|
+
*
|
|
16
|
+
* That distinction is available from the display list itself, and from nothing else: a
|
|
17
|
+
* `rect`, `ellipse`, `sector` or `text` is solid, and a `polyline` or `path` is solid exactly
|
|
18
|
+
* when it is *filled* — because `closed` does not separate a connector from a node, a rhombus,
|
|
19
|
+
* hexagon, parallelogram, stadium and cylinder all being drawn as filled polylines and paths
|
|
20
|
+
* rather than rects. So the forbidden bands are collected by walking the list with
|
|
21
|
+
* {@link renderDrawList} through a surface that measures instead of painting — which means the
|
|
22
|
+
* transforms, and therefore the geometry, are the engine's own rather than a second
|
|
23
|
+
* implementation of them, and it works for all twenty-one diagram types without knowing which
|
|
24
|
+
* one it has.
|
|
25
|
+
*/
|
|
26
|
+
import type { DrawList } from "documonster/draw";
|
|
27
|
+
export interface SliceCut {
|
|
28
|
+
/** Where the slice starts, in display points from the top. */
|
|
29
|
+
readonly top: number;
|
|
30
|
+
/** Where it ends. */
|
|
31
|
+
readonly bottom: number;
|
|
32
|
+
/** Whether this slice had to be cut through a box or a word because nothing else was free. */
|
|
33
|
+
readonly forced: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Choose the cuts that carve a diagram of `height` points into pieces of at most `limit`.
|
|
37
|
+
*
|
|
38
|
+
* Greedy from the top and deliberately so: taking the *lowest* legal cut at or above each
|
|
39
|
+
* limit uses as much of every page as it can, which is what keeps the piece count minimal.
|
|
40
|
+
*
|
|
41
|
+
* `scale` maps display points to the diagram's own units, because the bands are measured in
|
|
42
|
+
* the display list's coordinates while the page budget is in points.
|
|
43
|
+
*/
|
|
44
|
+
export declare function planSlices(list: DrawList, scale: number, limit: number, minimum?: number): readonly SliceCut[];
|
|
45
|
+
//# sourceMappingURL=diagram-slice.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-slice.d.ts","sourceRoot":"","sources":["../../src/tools/diagram-slice.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAEV,QAAQ,EAOT,MAAM,kBAAkB,CAAC;AA6I1B,MAAM,WAAW,QAAQ;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,qBAAqB;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8FAA8F;IAC9F,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,QAAQ,EACd,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,SAAK,GACX,SAAS,QAAQ,EAAE,CAuDrB"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cutting a tall diagram across several pages.
|
|
3
|
+
*
|
|
4
|
+
* A page has one width and a fixed height, and a diagram narrowed enough to be read at all
|
|
5
|
+
* can easily be taller than the second of those. Scaling it down again to fit is what this
|
|
6
|
+
* module exists to avoid: it trades the legibility that the narrowing just bought back, and
|
|
7
|
+
* for a deep flowchart it trades a lot of it.
|
|
8
|
+
*
|
|
9
|
+
* So the diagram is cut instead, and the whole problem is *where*. A row of pixels that is
|
|
10
|
+
* entirely background does not exist in a top-to-bottom flowchart — the links between ranks
|
|
11
|
+
* cross every gap — so "find the blank rows" finds nothing. Cutting a link is fine, though:
|
|
12
|
+
* the line continues at the top of the next page, which is how any split figure reads. What
|
|
13
|
+
* must not be cut is a **box or a piece of text**, because half a word is not readable at
|
|
14
|
+
* either end and half a node is not obviously one node.
|
|
15
|
+
*
|
|
16
|
+
* That distinction is available from the display list itself, and from nothing else: a
|
|
17
|
+
* `rect`, `ellipse`, `sector` or `text` is solid, and a `polyline` or `path` is solid exactly
|
|
18
|
+
* when it is *filled* — because `closed` does not separate a connector from a node, a rhombus,
|
|
19
|
+
* hexagon, parallelogram, stadium and cylinder all being drawn as filled polylines and paths
|
|
20
|
+
* rather than rects. So the forbidden bands are collected by walking the list with
|
|
21
|
+
* {@link renderDrawList} through a surface that measures instead of painting — which means the
|
|
22
|
+
* transforms, and therefore the geometry, are the engine's own rather than a second
|
|
23
|
+
* implementation of them, and it works for all twenty-one diagram types without knowing which
|
|
24
|
+
* one it has.
|
|
25
|
+
*/
|
|
26
|
+
import { measureText, renderDrawList } from "documonster/draw";
|
|
27
|
+
/**
|
|
28
|
+
* A surface that draws nothing and records where the solid marks are.
|
|
29
|
+
*
|
|
30
|
+
* Lines are deliberately ignored. They are the marks a cut may pass through, and treating
|
|
31
|
+
* them as obstacles would forbid every row of a flowchart.
|
|
32
|
+
*/
|
|
33
|
+
class BandCollector {
|
|
34
|
+
bands = [];
|
|
35
|
+
clips = [];
|
|
36
|
+
add(top, bottom) {
|
|
37
|
+
const clip = this.clips.at(-1);
|
|
38
|
+
if (clip !== undefined) {
|
|
39
|
+
top = Math.max(top, clip.y);
|
|
40
|
+
bottom = Math.min(bottom, clip.y + clip.height);
|
|
41
|
+
}
|
|
42
|
+
if (bottom > top) {
|
|
43
|
+
this.bands.push({ top, bottom });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
rect(_x, y, _width, height, _rx, _paint) {
|
|
47
|
+
this.add(y, y + height);
|
|
48
|
+
}
|
|
49
|
+
ellipse(_cx, cy, _rx, ry, _paint) {
|
|
50
|
+
this.add(cy - ry, cy + ry);
|
|
51
|
+
}
|
|
52
|
+
sector(_cx, cy, radius, _innerRadius, _startAngle, _endAngle, _paint) {
|
|
53
|
+
// The whole disc rather than the swept arc: a pie slice is a solid, and over-reserving a
|
|
54
|
+
// band can only cost a cut position, while under-reserving one cuts through the picture.
|
|
55
|
+
this.add(cy - radius, cy + radius);
|
|
56
|
+
}
|
|
57
|
+
polyline(points, _closed, paint) {
|
|
58
|
+
this.stroke(points.map(point => point.y), paint);
|
|
59
|
+
}
|
|
60
|
+
path(commands, paint) {
|
|
61
|
+
const ys = [];
|
|
62
|
+
for (const command of commands) {
|
|
63
|
+
if (command.op === "close") {
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
ys.push(command.y);
|
|
67
|
+
if (command.op === "cubic") {
|
|
68
|
+
// The control points bound the curve, so they are the conservative reading of where it
|
|
69
|
+
// might reach. A flattened curve would be tighter and is not worth the arithmetic here.
|
|
70
|
+
ys.push(command.y1, command.y2);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
this.stroke(ys, paint);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* A polyline or a path, which may be either a connector or the outline of a node.
|
|
77
|
+
*
|
|
78
|
+
* The discriminator is the fill, and it has to be: `closed` does not separate them — an
|
|
79
|
+
* arrowhead is a closed triangle and so is nothing else — while a rhombus, a hexagon, a
|
|
80
|
+
* parallelogram, a stadium and a cylinder are all drawn as filled polylines or paths rather
|
|
81
|
+
* than as rects. Ignoring every polyline let a cut fall straight through a diamond.
|
|
82
|
+
*
|
|
83
|
+
* An unfilled stroke is a line, and a line may be cut: it continues at the top of the next
|
|
84
|
+
* page, which is how any split figure reads.
|
|
85
|
+
*/
|
|
86
|
+
stroke(ys, paint) {
|
|
87
|
+
if (paint.fill === undefined || ys.length === 0) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
this.add(Math.min(...ys), Math.max(...ys));
|
|
91
|
+
}
|
|
92
|
+
text(x, y, lines, style, rotate) {
|
|
93
|
+
const angle = (rotate * Math.PI) / 180;
|
|
94
|
+
const sin = Math.sin(angle);
|
|
95
|
+
const cos = Math.cos(angle);
|
|
96
|
+
const ys = [];
|
|
97
|
+
for (const line of lines) {
|
|
98
|
+
const width = measureText(line.text, style);
|
|
99
|
+
const lineX = line.x ?? x;
|
|
100
|
+
const left = style.anchor === "middle"
|
|
101
|
+
? lineX - width / 2
|
|
102
|
+
: style.anchor === "end"
|
|
103
|
+
? lineX - width
|
|
104
|
+
: lineX;
|
|
105
|
+
const baseline = y + line.dy;
|
|
106
|
+
const corners = [
|
|
107
|
+
{ x: left, y: baseline - style.size },
|
|
108
|
+
{ x: left + width, y: baseline - style.size },
|
|
109
|
+
{ x: left, y: baseline + style.size * 0.3 },
|
|
110
|
+
{ x: left + width, y: baseline + style.size * 0.3 }
|
|
111
|
+
];
|
|
112
|
+
for (const corner of corners) {
|
|
113
|
+
const dx = corner.x - x;
|
|
114
|
+
const dy = corner.y - y;
|
|
115
|
+
ys.push(y + dx * sin + dy * cos);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (ys.length > 0) {
|
|
119
|
+
this.add(Math.min(...ys), Math.max(...ys));
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
pushClip(clip) {
|
|
123
|
+
const parent = this.clips.at(-1);
|
|
124
|
+
if (parent === undefined) {
|
|
125
|
+
this.clips.push(clip);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const top = Math.max(parent.y, clip.y);
|
|
129
|
+
const bottom = Math.min(parent.y + parent.height, clip.y + clip.height);
|
|
130
|
+
this.clips.push({ x: 0, y: top, width: 0, height: Math.max(0, bottom - top) });
|
|
131
|
+
}
|
|
132
|
+
popClip() {
|
|
133
|
+
this.clips.pop();
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Choose the cuts that carve a diagram of `height` points into pieces of at most `limit`.
|
|
138
|
+
*
|
|
139
|
+
* Greedy from the top and deliberately so: taking the *lowest* legal cut at or above each
|
|
140
|
+
* limit uses as much of every page as it can, which is what keeps the piece count minimal.
|
|
141
|
+
*
|
|
142
|
+
* `scale` maps display points to the diagram's own units, because the bands are measured in
|
|
143
|
+
* the display list's coordinates while the page budget is in points.
|
|
144
|
+
*/
|
|
145
|
+
export function planSlices(list, scale, limit, minimum = 48) {
|
|
146
|
+
const height = list.height * scale;
|
|
147
|
+
if (height <= limit) {
|
|
148
|
+
return [{ top: 0, bottom: height, forced: false }];
|
|
149
|
+
}
|
|
150
|
+
const collector = new BandCollector();
|
|
151
|
+
// Remove only a root canvas plate. Deciding from a band's height after the
|
|
152
|
+
// walk discarded any legitimate shape spanning the canvas and also lost the
|
|
153
|
+
// x/width evidence that distinguished it from a background.
|
|
154
|
+
const first = list.children[0];
|
|
155
|
+
const background = first?.kind === "rect" &&
|
|
156
|
+
first.x === 0 &&
|
|
157
|
+
first.y === 0 &&
|
|
158
|
+
first.width === list.width &&
|
|
159
|
+
first.height === list.height
|
|
160
|
+
? 0
|
|
161
|
+
: -1;
|
|
162
|
+
renderDrawList(background === -1
|
|
163
|
+
? list
|
|
164
|
+
: { ...list, children: list.children.filter((_, index) => index !== background) }, collector);
|
|
165
|
+
const raw = collector.bands.map(band => ({
|
|
166
|
+
top: band.top * scale,
|
|
167
|
+
bottom: band.bottom * scale
|
|
168
|
+
}));
|
|
169
|
+
const content = mergeBands(raw);
|
|
170
|
+
// An obstacle taller than a whole slice cannot be avoided by any choice of cut, so letting it
|
|
171
|
+
// block one only forces a worse position. It still counts for *reporting*: cutting through a
|
|
172
|
+
// node that big is a real compromise and the caller is told.
|
|
173
|
+
const blocking = content.filter(band => band.bottom - band.top < limit);
|
|
174
|
+
const inside = (row) => content.some(band => row > band.top && row < band.bottom);
|
|
175
|
+
const cuts = [];
|
|
176
|
+
let top = 0;
|
|
177
|
+
// Bounded by the piece count: each turn advances `top` by at least `minimum`.
|
|
178
|
+
while (height - top > limit) {
|
|
179
|
+
const target = top + limit;
|
|
180
|
+
// Do not leave a postage-stamp final image. If the nominal cut would leave
|
|
181
|
+
// less than `minimum`, search earlier so both pieces remain useful.
|
|
182
|
+
const latest = height - target < minimum ? height - minimum : target;
|
|
183
|
+
const free = highestFreeRowAtOrBelow(blocking, latest, top + minimum);
|
|
184
|
+
const at = free ?? target;
|
|
185
|
+
cuts.push({ top, bottom: at, forced: inside(at) });
|
|
186
|
+
top = at;
|
|
187
|
+
}
|
|
188
|
+
cuts.push({ top, bottom: height, forced: false });
|
|
189
|
+
return cuts;
|
|
190
|
+
}
|
|
191
|
+
/** Sorted, non-overlapping bands. */
|
|
192
|
+
function mergeBands(bands) {
|
|
193
|
+
const sorted = [...bands].sort((a, b) => a.top - b.top);
|
|
194
|
+
const out = [];
|
|
195
|
+
for (const band of sorted) {
|
|
196
|
+
const last = out.at(-1);
|
|
197
|
+
if (last !== undefined && band.top <= last.bottom) {
|
|
198
|
+
out[out.length - 1] = { top: last.top, bottom: Math.max(last.bottom, band.bottom) };
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
out.push({ ...band });
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return out;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* The lowest row at or below `target` that is inside no band, and not above `floor`.
|
|
208
|
+
*
|
|
209
|
+
* Searched downwards from `target` because a cut as late as possible fills the page. When
|
|
210
|
+
* `target` itself is inside a band the search continues from that band's top, since every row
|
|
211
|
+
* between them is inside it too.
|
|
212
|
+
*/
|
|
213
|
+
function highestFreeRowAtOrBelow(bands, target, floor) {
|
|
214
|
+
let row = target;
|
|
215
|
+
while (row >= floor) {
|
|
216
|
+
const hit = bands.find(band => row > band.top && row < band.bottom);
|
|
217
|
+
if (hit === undefined) {
|
|
218
|
+
return row;
|
|
219
|
+
}
|
|
220
|
+
// Just above the obstacle. A band is a closed interval, so its own top is free.
|
|
221
|
+
row = hit.top;
|
|
222
|
+
}
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=diagram-slice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diagram-slice.js","sourceRoot":"","sources":["../../src/tools/diagram-slice.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/diagram.js
CHANGED
|
@@ -205,7 +205,7 @@ async function convert(from, to, source, target, args) {
|
|
|
205
205
|
const markdown = await readFile(source, "utf8");
|
|
206
206
|
const prepared = args.renderDiagrams === true
|
|
207
207
|
? await prepareMarkdownDiagrams(markdown)
|
|
208
|
-
: { markdown,
|
|
208
|
+
: { markdown, notes: [] };
|
|
209
209
|
const doc = await markdownToDocx(prepared.markdown, {
|
|
210
210
|
...("resolveImage" in prepared && prepared.resolveImage !== undefined
|
|
211
211
|
? { resolveImage: prepared.resolveImage }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-convert.js","sourceRoot":"","sources":["../../src/tools/doc-convert.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"doc-convert.js","sourceRoot":"","sources":["../../src/tools/doc-convert.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/doc-write.js
CHANGED
|
@@ -70,7 +70,7 @@ export const docWriteTool = defineTool({
|
|
|
70
70
|
// the bytes.
|
|
71
71
|
const prepared = (args.diagrams ?? config.groups.has("diagram"))
|
|
72
72
|
? await prepareMarkdownDiagrams(args.markdown)
|
|
73
|
-
: { markdown: args.markdown,
|
|
73
|
+
: { markdown: args.markdown, notes: [] };
|
|
74
74
|
// markdownToDocx is async — verified; treating it as synchronous yields an
|
|
75
75
|
// empty object that fails much later inside the packager.
|
|
76
76
|
const doc = await markdownToDocx(prepared.markdown, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"doc-write.js","sourceRoot":"","sources":["../../src/tools/doc-write.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"doc-write.js","sourceRoot":"","sources":["../../src/tools/doc-write.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@documonster/mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0-canary.sha.fa35d09c",
|
|
4
4
|
"description": "Model Context Protocol server for documonster — lets AI assistants read, write and convert Excel, Word, PDF, CSV and ZIP documents.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
@@ -49,14 +49,14 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
52
|
+
"documonster": "0.14.0-canary.sha.fa35d09c",
|
|
53
|
+
"zod": "^4.4.3"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@types/node": "^26.
|
|
56
|
+
"@types/node": "^26.6.0",
|
|
57
57
|
"rimraf": "^6.1.3",
|
|
58
58
|
"typescript": "7.0.2",
|
|
59
|
-
"vitest": "^
|
|
59
|
+
"vitest": "^5.0.1"
|
|
60
60
|
},
|
|
61
61
|
"engines": {
|
|
62
62
|
"node": ">=22.13.0"
|