@documonster/mcp 0.10.0 → 0.11.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.
- package/README.md +170 -51
- package/dist/capabilities.d.ts.map +1 -1
- package/dist/capabilities.js +28 -0
- package/dist/capabilities.js.map +1 -1
- package/dist/config.d.ts +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -2
- package/dist/config.js.map +1 -1
- package/dist/tools/diagram-inspect.d.ts +20 -0
- package/dist/tools/diagram-inspect.d.ts.map +1 -0
- package/dist/tools/diagram-inspect.js +91 -0
- package/dist/tools/diagram-inspect.js.map +1 -0
- package/dist/tools/diagram-markdown.d.ts +45 -0
- package/dist/tools/diagram-markdown.d.ts.map +1 -0
- package/dist/tools/diagram-markdown.js +127 -0
- package/dist/tools/diagram-markdown.js.map +1 -0
- package/dist/tools/diagram-render.d.ts +14 -0
- package/dist/tools/diagram-render.d.ts.map +1 -0
- package/dist/tools/diagram-render.js +117 -0
- package/dist/tools/diagram-render.js.map +1 -0
- package/dist/tools/diagram.d.ts +217 -0
- package/dist/tools/diagram.d.ts.map +1 -0
- package/dist/tools/diagram.js +760 -0
- package/dist/tools/diagram.js.map +1 -0
- package/dist/tools/doc-convert.d.ts.map +1 -1
- package/dist/tools/doc-convert.js +26 -4
- package/dist/tools/doc-convert.js.map +1 -1
- package/dist/tools/doc-read.d.ts.map +1 -1
- package/dist/tools/doc-read.js +32 -4
- package/dist/tools/doc-read.js.map +1 -1
- package/dist/tools/doc-write.d.ts.map +1 -1
- package/dist/tools/doc-write.js +21 -3
- package/dist/tools/doc-write.js.map +1 -1
- package/dist/tools/document.d.ts +1 -1
- package/dist/tools/document.d.ts.map +1 -1
- package/dist/tools/document.js +13 -1
- package/dist/tools/document.js.map +1 -1
- package/dist/tools/help.d.ts +263 -15
- package/dist/tools/help.d.ts.map +1 -1
- package/dist/tools/help.js +263 -15
- package/dist/tools/help.js.map +1 -1
- package/dist/tools/image.d.ts +147 -0
- package/dist/tools/image.d.ts.map +1 -0
- package/dist/tools/image.js +749 -0
- package/dist/tools/image.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/inspect.d.ts.map +1 -1
- package/dist/tools/inspect.js +98 -6
- package/dist/tools/inspect.js.map +1 -1
- package/dist/tools/pdf-edit.d.ts +13 -6
- package/dist/tools/pdf-edit.d.ts.map +1 -1
- package/dist/tools/pdf-edit.js +93 -8
- package/dist/tools/pdf-edit.js.map +1 -1
- package/dist/tools/sheet-edit.d.ts.map +1 -1
- package/dist/tools/sheet-edit.js +37 -2
- package/dist/tools/sheet-edit.js.map +1 -1
- package/dist/tools/sheet-image.d.ts +58 -0
- package/dist/tools/sheet-image.d.ts.map +1 -0
- package/dist/tools/sheet-image.js +156 -0
- package/dist/tools/sheet-image.js.map +1 -0
- package/dist/tools/sheet-read.d.ts.map +1 -1
- package/dist/tools/sheet-read.js +18 -1
- package/dist/tools/sheet-read.js.map +1 -1
- package/dist/tools/sheet-write.d.ts.map +1 -1
- package/dist/tools/sheet-write.js +41 -4
- package/dist/tools/sheet-write.js.map +1 -1
- package/dist/tools/template.d.ts +19 -0
- package/dist/tools/template.d.ts.map +1 -1
- package/dist/tools/template.js +436 -11
- package/dist/tools/template.js.map +1 -1
- package/package.json +3 -3
package/dist/tools/help.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/tools/help.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAOxC;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,QAAQ,EAAE;QACR,OAAO,EAAE,oDAAoD;QAC7D,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;0EA4BgE;KACvE;IAED,OAAO,EAAE;QACP,OAAO,EAAE,mDAAmD;QAC5D,IAAI,EAAE;;;;;;;;;;;SAWD;KACN;IAED,OAAO,EAAE;QACP,OAAO,EAAE,sCAAsC;QAC/C,IAAI,EAAE
|
|
1
|
+
{"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/tools/help.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Image sources, shared by every tool that can put a picture somewhere.
|
|
3
|
+
*
|
|
4
|
+
* There is exactly one shape for "which image", and it routes on the file
|
|
5
|
+
* extension rather than on a discriminator the caller has to get right:
|
|
6
|
+
*
|
|
7
|
+
* - `from: "logo.png"` — a `.png` / `.jpg` / `.gif` file, embedded as it is.
|
|
8
|
+
* - `from: "design.md"` — a Markdown file's ```mermaid fence, drawn server-side.
|
|
9
|
+
* - `from: "flow.mmd"` — a diagram file, drawn server-side.
|
|
10
|
+
* - `source: "flowchart LR\n A --> B"` — Mermaid text, drawn server-side.
|
|
11
|
+
*
|
|
12
|
+
* That ordering is the point. A Mermaid diagram is *one source of an image*, not a
|
|
13
|
+
* separate feature: a tool that could only place diagrams would be a
|
|
14
|
+
* mermaid-shaped hole where generic image support belongs, and a caller with a
|
|
15
|
+
* PNG on disk would have no way in. The three raster formats are the three
|
|
16
|
+
* `Image.add` accepts, which is what makes the workbook path total.
|
|
17
|
+
*
|
|
18
|
+
* The natural size of a raster file has to be *read*, because two of the three
|
|
19
|
+
* destinations need it. A worksheet anchored to a single cell needs pixels; a Word
|
|
20
|
+
* template placeholder needs EMU and has no default at all. Guessing would place a
|
|
21
|
+
* portrait photograph as a square, and the model would never see it — so the
|
|
22
|
+
* dimension readers below fail loudly on a file they cannot parse rather than
|
|
23
|
+
* returning a 1×1 placeholder.
|
|
24
|
+
*/
|
|
25
|
+
import type { MermaidDiagram } from "documonster/mermaid";
|
|
26
|
+
import { z } from "zod";
|
|
27
|
+
import type { ServerConfig } from "../config.js";
|
|
28
|
+
/** Raster formats a workbook and a Word document both accept. */
|
|
29
|
+
export type RasterMediaType = "png" | "jpeg" | "gif";
|
|
30
|
+
/**
|
|
31
|
+
* Tracks what one tool call has spent, so the aggregate caps mean something.
|
|
32
|
+
*
|
|
33
|
+
* Threaded explicitly rather than kept in module state: two calls must never share
|
|
34
|
+
* a budget, and a module-level counter is exactly how that goes wrong under
|
|
35
|
+
* concurrency.
|
|
36
|
+
*/
|
|
37
|
+
export interface ImageBudget {
|
|
38
|
+
count: number;
|
|
39
|
+
bytes: number;
|
|
40
|
+
pixels: number;
|
|
41
|
+
}
|
|
42
|
+
/** A fresh budget for one tool call. */
|
|
43
|
+
export declare function newImageBudget(): ImageBudget;
|
|
44
|
+
/**
|
|
45
|
+
* Where an image comes from and how big it should be.
|
|
46
|
+
*
|
|
47
|
+
* Spread into a tool's schema rather than nested, so the fields read as the
|
|
48
|
+
* tool's own and a caller does not have to discover an extra level of object.
|
|
49
|
+
*/
|
|
50
|
+
export declare const imageSourceShape: {
|
|
51
|
+
readonly from: z.ZodOptional<z.ZodString>;
|
|
52
|
+
readonly source: z.ZodOptional<z.ZodString>;
|
|
53
|
+
readonly index: z.ZodOptional<z.ZodNumber>;
|
|
54
|
+
readonly width: z.ZodOptional<z.ZodNumber>;
|
|
55
|
+
readonly height: z.ZodOptional<z.ZodNumber>;
|
|
56
|
+
readonly altText: z.ZodOptional<z.ZodString>;
|
|
57
|
+
readonly theme: z.ZodOptional<z.ZodEnum<{
|
|
58
|
+
dark: "dark";
|
|
59
|
+
default: "default";
|
|
60
|
+
neutral: "neutral";
|
|
61
|
+
}>>;
|
|
62
|
+
readonly background: z.ZodOptional<z.ZodString>;
|
|
63
|
+
};
|
|
64
|
+
/** The parsed form of {@link imageSourceShape}. */
|
|
65
|
+
export interface ImageSourceArgs {
|
|
66
|
+
readonly from?: string;
|
|
67
|
+
readonly source?: string;
|
|
68
|
+
readonly index?: number;
|
|
69
|
+
readonly width?: number;
|
|
70
|
+
readonly height?: number;
|
|
71
|
+
readonly altText?: string;
|
|
72
|
+
readonly theme?: "default" | "dark" | "neutral";
|
|
73
|
+
readonly background?: string;
|
|
74
|
+
}
|
|
75
|
+
export interface ResolvedImage {
|
|
76
|
+
readonly bytes: Uint8Array;
|
|
77
|
+
readonly mediaType: RasterMediaType;
|
|
78
|
+
/** Display size in points, after `width`/`height` and any cap were applied. */
|
|
79
|
+
readonly width: number;
|
|
80
|
+
readonly height: number;
|
|
81
|
+
/** Suggested `word/media` / `xl/media` file name. */
|
|
82
|
+
readonly fileName: string;
|
|
83
|
+
readonly altText: string;
|
|
84
|
+
/** How to name the source in a report. */
|
|
85
|
+
readonly origin: string;
|
|
86
|
+
/**
|
|
87
|
+
* Present when the image was drawn from Mermaid, so the tool can report what
|
|
88
|
+
* the parser recognised — the only way a model can check a picture it cannot see.
|
|
89
|
+
*/
|
|
90
|
+
readonly diagram?: MermaidDiagram;
|
|
91
|
+
}
|
|
92
|
+
export interface ResolveImageOptions {
|
|
93
|
+
/** Shrink to at most this many points wide, keeping the aspect ratio. */
|
|
94
|
+
readonly maxWidthPoints?: number;
|
|
95
|
+
/** Running total for the call, so the aggregate caps apply across images. */
|
|
96
|
+
readonly budget?: ImageBudget;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Turn an image source into bytes and a display size.
|
|
100
|
+
*
|
|
101
|
+
* @throws {McpToolError} `invalid_input` for a missing or ambiguous source, an
|
|
102
|
+
* unsupported extension, or a raster file whose header cannot be read.
|
|
103
|
+
*/
|
|
104
|
+
export declare function resolveImageSource(config: ServerConfig, args: ImageSourceArgs, options?: ResolveImageOptions): Promise<ResolvedImage>;
|
|
105
|
+
/** Display size in EMU, the unit Word measures a drawing in. */
|
|
106
|
+
export declare function toEmu(points: number): number;
|
|
107
|
+
/** Display size in CSS pixels, the unit a worksheet anchor's `ext` is in. */
|
|
108
|
+
export declare function toCssPixels(points: number): number;
|
|
109
|
+
/** What {@link tryReadImageHeader} found, including the size it would be placed at. */
|
|
110
|
+
export interface ProbedImage {
|
|
111
|
+
readonly mediaType: RasterMediaType;
|
|
112
|
+
readonly width: number;
|
|
113
|
+
readonly height: number;
|
|
114
|
+
readonly dpi?: number;
|
|
115
|
+
/** The size it would occupy when placed, in points. */
|
|
116
|
+
readonly points: {
|
|
117
|
+
readonly width: number;
|
|
118
|
+
readonly height: number;
|
|
119
|
+
};
|
|
120
|
+
/**
|
|
121
|
+
* What is wrong with the file, when anything is.
|
|
122
|
+
*
|
|
123
|
+
* Reported rather than thrown, because the two callers want opposite things from
|
|
124
|
+
* the same finding: placing must refuse a damaged file, while inspecting exists to
|
|
125
|
+
* *say* it is damaged. Leaving it out made the advice the placement tools give —
|
|
126
|
+
* "run doc_inspect on it" — lead to a report that the file was fine.
|
|
127
|
+
*/
|
|
128
|
+
readonly damage?: string;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Read a raster header without throwing, for `doc_inspect`.
|
|
132
|
+
*
|
|
133
|
+
* Identification and placement want the same parse but different failure
|
|
134
|
+
* behaviour: placing must refuse a file it cannot size, whereas inspecting exists
|
|
135
|
+
* precisely to *report* that it cannot be sized. Sharing the parsers keeps the two
|
|
136
|
+
* answers consistent — a file `doc_inspect` calls unreadable is exactly one the
|
|
137
|
+
* placement tools reject.
|
|
138
|
+
*/
|
|
139
|
+
export declare function tryReadImageHeader(bytes: Uint8Array): ProbedImage | undefined;
|
|
140
|
+
/**
|
|
141
|
+
* Describe a placed image for a tool report.
|
|
142
|
+
*
|
|
143
|
+
* The diagram line is the load-bearing part: for a Mermaid source the model has
|
|
144
|
+
* no other way to check that the picture says what it meant.
|
|
145
|
+
*/
|
|
146
|
+
export declare function describePlacedImage(image: ResolvedImage, where: string): string;
|
|
147
|
+
//# sourceMappingURL=image.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image.d.ts","sourceRoot":"","sources":["../../src/tools/image.ts"],"names":[],"mappings":"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"}
|