pptx-viewer-mcp 2.7.2 → 2.8.2

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.
@@ -1,934 +1,26 @@
1
1
  import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- import { z } from 'zod';
2
+ import * as schemas_star from 'ooxml-core/pptx/automation/schemas';
3
3
  import { apiToolsChartFormattingTools, apiToolsChartTools, apiToolsChartUserShapeTools, apiToolsContentTools, apiToolsConversionTools, apiToolsElementTools, apiToolsExportTools, apiToolsGeometryTools, apiToolsHyperlinkTools, apiToolsJsonTools, apiToolsLayoutTools, apiToolsLockTools, apiToolsMetadataTools, apiToolsOleTools, apiToolsPresentationTools, apiToolsSectionTools, apiToolsSlideTools, apiToolsSmartartTools, apiToolsStyleTools, apiToolsTableStyleTools, apiToolsTableTools, apiToolsTemplateTools, apiToolsThemeTools, apiToolsValidationTools, apiExecution } from 'ooxml-core/pptx/automation';
4
4
  import { writeFile, readFile } from 'fs/promises';
5
5
  import { resolve, isAbsolute, sep } from 'path';
6
6
 
7
- // src/mcp/server.ts
8
- var GetSlideSchema = z.object({
9
- filePath: z.string().describe("Path to the PPTX file"),
10
- slideIndex: z.number().int().min(0).describe("Zero-based slide index")
11
- });
12
- var AddSlideSchema = z.object({
13
- filePath: z.string().describe("Path to the PPTX file"),
14
- insertAfterIndex: z.number().int().min(0).optional().describe("Insert after this slide index"),
15
- backgroundColor: z.string().optional().describe("Background color (hex)")
16
- });
17
- var DeleteSlidesSchema = z.object({
18
- filePath: z.string().describe("Path to the PPTX file"),
19
- slideIndexes: z.array(z.number().int().min(0)).min(1).describe("Slide indexes to delete")
20
- });
21
- var ReorderSlidesSchema = z.object({
22
- filePath: z.string().describe("Path to the PPTX file"),
23
- newOrder: z.array(z.number().int().min(0)).min(1).describe("New slide order as array of indexes")
24
- });
25
- var DuplicateSlideSchema = z.object({
26
- filePath: z.string().describe("Path to the PPTX file"),
27
- slideIndex: z.number().int().min(0).describe("Slide to duplicate"),
28
- targetIndex: z.number().int().min(0).optional().describe("Where to insert the duplicate")
29
- });
30
- var UpdateSlidePropertiesSchema = z.object({
31
- filePath: z.string().describe("Path to the PPTX file"),
32
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
33
- backgroundColor: z.string().optional().describe("Background color (hex)"),
34
- backgroundGradient: z.string().optional().describe("Background gradient CSS"),
35
- backgroundImage: z.string().optional().describe("Background image data URL"),
36
- notes: z.string().optional().describe("Speaker notes text"),
37
- hidden: z.boolean().optional().describe("Whether slide is hidden")
38
- });
39
- var SetSlideTransitionSchema = z.object({
40
- filePath: z.string().describe("Path to the PPTX file"),
41
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
42
- type: z.string().describe('Transition type (e.g. "fade", "wipe", "none")'),
43
- durationMs: z.number().int().min(0).optional().describe("Duration in ms"),
44
- direction: z.string().optional().describe('Direction (e.g. "left", "right")'),
45
- advanceOnClick: z.boolean().optional().describe("Advance on mouse click"),
46
- advanceAfterMs: z.number().int().min(0).optional().describe("Auto-advance after ms")
47
- });
48
- var SetCanvasSizeSchema = z.object({
49
- filePath: z.string().describe("Path to the PPTX file"),
50
- width: z.number().positive().describe("Canvas width in points"),
51
- height: z.number().positive().describe("Canvas height in points")
52
- });
53
- var ConvertToMarkdownSchema = z.object({
54
- filePath: z.string().describe("Path to the PPTX file"),
55
- outputDir: z.string().optional().describe("Output directory for markdown and media"),
56
- mediaFolderName: z.string().optional().describe("Name for extracted media folder"),
57
- includeMetadata: z.boolean().optional().describe("Include presentation metadata"),
58
- slideRange: z.object({
59
- start: z.number().int().min(0).optional(),
60
- end: z.number().int().min(0).optional()
61
- }).optional().describe("Slide range to convert"),
62
- includeSpeakerNotes: z.boolean().optional().describe("Include speaker notes"),
63
- semanticMode: z.boolean().optional().describe("Use semantic (clean) markdown mode")
64
- });
65
- var AccessibilityCheckSchema = z.object({
66
- filePath: z.string().describe("Path to the PPTX file")
67
- });
68
- var ThemeColorRefSchema = z.object({
69
- scheme: z.enum([
70
- "dk1",
71
- "lt1",
72
- "dk2",
73
- "lt2",
74
- "accent1",
75
- "accent2",
76
- "accent3",
77
- "accent4",
78
- "accent5",
79
- "accent6",
80
- "hlink",
81
- "folHlink",
82
- "bg1",
83
- "tx1",
84
- "bg2",
85
- "tx2",
86
- "phClr"
87
- ]),
88
- lumMod: z.number().optional().describe("Multiply HSL luminance (0..1)"),
89
- lumOff: z.number().optional().describe("Add to HSL luminance after lumMod (0..1)"),
90
- tint: z.number().optional().describe("Blend towards white (0..1)"),
91
- shade: z.number().optional().describe("Blend towards black (0..1)"),
92
- alpha: z.number().optional().describe("Opacity fraction, 1 = opaque")
93
- });
94
- var AddElementSchema = z.object({
95
- filePath: z.string().describe("Path to the PPTX file"),
96
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
97
- type: z.enum(["text", "shape", "image", "table", "connector"]).describe("Element type to add"),
98
- x: z.number().optional().describe("X position in points"),
99
- y: z.number().optional().describe("Y position in points"),
100
- width: z.number().optional().describe("Width in points"),
101
- height: z.number().optional().describe("Height in points"),
102
- text: z.string().optional().describe("Text content"),
103
- fontSize: z.number().optional().describe("Font size in points"),
104
- fontFamily: z.string().optional().describe("Font family name"),
105
- fontColor: z.string().optional().describe("Font color (hex)"),
106
- bold: z.boolean().optional().describe("Bold text"),
107
- italic: z.boolean().optional().describe("Italic text"),
108
- underline: z.boolean().optional().describe("Underline text"),
109
- alignment: z.enum(["left", "center", "right", "justify"]).optional().describe("Text alignment"),
110
- shapeType: z.string().optional().describe('Shape type (e.g. "rect", "ellipse")'),
111
- fillColor: z.string().optional().describe("Fill color (hex)"),
112
- strokeColor: z.string().optional().describe("Stroke color (hex)"),
113
- strokeWidth: z.number().optional().describe("Stroke width in points"),
114
- imageData: z.string().optional().describe("Image as base64 data URL"),
115
- altText: z.string().optional().describe("Alt text for accessibility"),
116
- rows: z.number().int().min(1).optional().describe("Number of table rows"),
117
- columns: z.number().int().min(1).optional().describe("Number of table columns"),
118
- cellData: z.array(z.array(z.string())).optional().describe("Table cell data as 2D array"),
119
- headerRow: z.boolean().optional().describe("Style first row as header"),
120
- startArrow: z.string().optional().describe("Start arrow type"),
121
- endArrow: z.string().optional().describe("End arrow type"),
122
- startShapeId: z.string().optional().describe("Connect start to shape ID"),
123
- endShapeId: z.string().optional().describe("Connect end to shape ID")
124
- });
125
- var UpdateElementSchema = z.object({
126
- filePath: z.string().describe("Path to the PPTX file"),
127
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
128
- elementId: z.string().describe("Element ID to update"),
129
- x: z.number().optional(),
130
- y: z.number().optional(),
131
- width: z.number().optional(),
132
- height: z.number().optional(),
133
- rotation: z.number().optional(),
134
- text: z.string().optional(),
135
- textSegments: z.array(
136
- z.object({
137
- text: z.string(),
138
- style: z.record(z.string(), z.any())
139
- }).passthrough()
140
- ).optional().describe(
141
- "Rich text segments, including paragraph and bullet metadata. Takes precedence over text."
142
- ),
143
- fontSize: z.number().optional(),
144
- fontFamily: z.string().optional(),
145
- fontColor: z.string().optional(),
146
- /**
147
- * A theme colour for the run text. Wins on save; resolves `fontColor`
148
- * immediately when `fontColor` was not also given. Passing `fontColor`
149
- * alone clears a previously-set text theme colour.
150
- */
151
- fontThemeColor: ThemeColorRefSchema.optional(),
152
- bold: z.boolean().optional(),
153
- italic: z.boolean().optional(),
154
- underline: z.boolean().optional(),
155
- alignment: z.enum(["left", "center", "right", "justify"]).optional(),
156
- fillColor: z.string().optional(),
157
- strokeColor: z.string().optional(),
158
- strokeWidth: z.number().optional(),
159
- opacity: z.number().min(0).max(1).optional(),
160
- hidden: z.boolean().optional(),
161
- flipH: z.boolean().optional(),
162
- flipV: z.boolean().optional(),
163
- altText: z.string().optional().describe(
164
- "Accessibility description (p:cNvPr/@descr) for image, picture, table, chart, smartArt, ole, media, text, shape and connector elements"
165
- ),
166
- title: z.string().optional().describe(
167
- "Accessibility title (p:cNvPr/@title) for table, chart, smartArt, ole, media, text, shape and connector elements (not pictures)"
168
- )
169
- });
170
- var RenameElementSchema = z.object({
171
- filePath: z.string().describe("Path to the PPTX file"),
172
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
173
- elementId: z.string().describe("Element ID to rename"),
174
- name: z.string().describe("New element name (empty string clears the name)")
175
- });
176
- var DeleteElementsSchema = z.object({
177
- filePath: z.string().describe("Path to the PPTX file"),
178
- slideIndex: z.number().int().min(0),
179
- elementIds: z.array(z.string()).min(1).describe("Element IDs to delete")
180
- });
181
- var ArrangeElementsSchema = z.object({
182
- filePath: z.string().describe("Path to the PPTX file"),
183
- slideIndex: z.number().int().min(0),
184
- action: z.enum(["align", "reorderLayer"]),
185
- elementIds: z.array(z.string()).optional().describe("Element IDs (for align)"),
186
- alignment: z.enum(["left", "right", "top", "bottom", "centerH", "centerV"]).optional(),
187
- elementId: z.string().optional().describe("Element ID (for reorderLayer)"),
188
- layerAction: z.enum(["bringForward", "sendBackward", "bringToFront", "sendToBack"]).optional()
189
- });
190
- var CloneElementSchema = z.object({
191
- filePath: z.string().describe("Path to the PPTX file"),
192
- slideIndex: z.number().int().min(0),
193
- elementId: z.string(),
194
- targetSlideIndexes: z.array(z.number().int().min(0)).optional(),
195
- offsetX: z.number().optional(),
196
- offsetY: z.number().optional()
197
- });
198
- var SetElementAnimationSchema = z.object({
199
- filePath: z.string().describe("Path to the PPTX file"),
200
- slideIndex: z.number().int().min(0),
201
- elementId: z.string(),
202
- entrance: z.string().optional(),
203
- exit: z.string().optional(),
204
- durationMs: z.number().optional(),
205
- delayMs: z.number().optional(),
206
- order: z.number().optional()
207
- });
208
- var GroupElementsSchema = z.object({
209
- filePath: z.string().describe("Path to the PPTX file"),
210
- slideIndex: z.number().int().min(0),
211
- elementIds: z.array(z.string()).min(2).describe("At least 2 element IDs to group")
212
- });
213
- var UngroupElementsSchema = z.object({
214
- filePath: z.string().describe("Path to the PPTX file"),
215
- slideIndex: z.number().int().min(0),
216
- groupElementId: z.string().describe("Group element ID to ungroup")
217
- });
218
- var BatchUpdateElementsSchema = z.object({
219
- filePath: z.string().describe("Path to the PPTX file"),
220
- slideIndex: z.number().int().min(0),
221
- elementIds: z.array(z.string()).min(1),
222
- x: z.number().optional(),
223
- y: z.number().optional(),
224
- width: z.number().optional(),
225
- height: z.number().optional(),
226
- rotation: z.number().optional(),
227
- opacity: z.number().min(0).max(1).optional(),
228
- hidden: z.boolean().optional()
229
- });
230
- var ThemeColorRefSchema2 = z.object({
231
- scheme: z.enum([
232
- "dk1",
233
- "lt1",
234
- "dk2",
235
- "lt2",
236
- "accent1",
237
- "accent2",
238
- "accent3",
239
- "accent4",
240
- "accent5",
241
- "accent6",
242
- "hlink",
243
- "folHlink",
244
- "bg1",
245
- "tx1",
246
- "bg2",
247
- "tx2",
248
- "phClr"
249
- ]),
250
- lumMod: z.number().optional().describe("Multiply HSL luminance (0..1)"),
251
- lumOff: z.number().optional().describe("Add to HSL luminance after lumMod (0..1)"),
252
- tint: z.number().optional().describe("Blend towards white (0..1)"),
253
- shade: z.number().optional().describe("Blend towards black (0..1)"),
254
- alpha: z.number().optional().describe("Opacity fraction, 1 = opaque")
255
- });
256
- var UpdateTableCellsSchema = z.object({
257
- filePath: z.string().describe("Path to the PPTX file"),
258
- slideIndex: z.number().int().min(0),
259
- elementId: z.string().describe("Table element ID"),
260
- cells: z.array(
261
- z.object({
262
- row: z.number().int().min(0),
263
- col: z.number().int().min(0),
264
- text: z.string()
265
- })
266
- ).min(1).describe("Cells to update")
267
- });
268
- var ManageTableStructureSchema = z.object({
269
- filePath: z.string().describe("Path to the PPTX file"),
270
- slideIndex: z.number().int().min(0),
271
- elementId: z.string().describe("Table element ID"),
272
- action: z.enum(["insertRow", "deleteRow", "insertColumn", "deleteColumn"]),
273
- position: z.number().int().min(0).optional().describe("Insertion position index"),
274
- referenceIndex: z.number().int().min(0).optional(),
275
- cellTexts: z.array(z.string()).optional()
276
- });
277
- var UpdateElementStyleSchema = z.object({
278
- filePath: z.string().describe("Path to the PPTX file"),
279
- slideIndex: z.number().int().min(0),
280
- elementId: z.string(),
281
- fillColor: z.string().optional(),
282
- /**
283
- * A theme colour for the fill (e.g. `{ scheme: 'accent1', lumMod: 0.8 }`
284
- * for "Accent 1, Lighter 80%"). When set, the shape saves as
285
- * `<a:schemeClr>` and keeps following the theme after a later theme
286
- * change, instead of freezing today's resolved hex. Setting `fillColor`
287
- * without this clears any previously-set fill theme colour.
288
- */
289
- fillThemeColor: ThemeColorRefSchema2.optional(),
290
- fillMode: z.string().optional(),
291
- fillGradientStops: z.array(
292
- z.object({
293
- color: z.string(),
294
- position: z.number(),
295
- opacity: z.number().optional()
296
- })
297
- ).optional(),
298
- fillGradientAngle: z.number().optional(),
299
- fillGradientType: z.string().optional(),
300
- fillOpacity: z.number().optional(),
301
- strokeColor: z.string().optional(),
302
- /** A theme colour for the outline; see `fillThemeColor` above. */
303
- strokeThemeColor: ThemeColorRefSchema2.optional(),
304
- strokeWidth: z.number().optional(),
305
- strokeDash: z.string().optional(),
306
- strokeOpacity: z.number().optional(),
307
- shadowColor: z.string().optional(),
308
- shadowBlur: z.number().optional(),
309
- shadowOffsetX: z.number().optional(),
310
- shadowOffsetY: z.number().optional(),
311
- shadowOpacity: z.number().optional(),
312
- glowColor: z.string().optional(),
313
- glowRadius: z.number().optional(),
314
- glowOpacity: z.number().optional(),
315
- softEdgeRadius: z.number().optional(),
316
- cropLeft: z.number().optional(),
317
- cropTop: z.number().optional(),
318
- cropRight: z.number().optional(),
319
- cropBottom: z.number().optional(),
320
- brightness: z.number().optional(),
321
- contrast: z.number().optional(),
322
- grayscale: z.boolean().optional(),
323
- altText: z.string().optional().describe(
324
- "Accessibility description (p:cNvPr/@descr) for image, picture, table, chart, smartArt, ole, media, text, shape and connector elements"
325
- ),
326
- title: z.string().optional().describe(
327
- "Accessibility title (p:cNvPr/@title) for table, chart, smartArt, ole, media, text, shape and connector elements (not pictures)"
328
- )
329
- });
330
- var FindTextSchema = z.object({
331
- filePath: z.string().describe("Path to the PPTX file"),
332
- query: z.string().describe("Text to search for"),
333
- useRegex: z.boolean().optional().describe("Treat query as regex"),
334
- caseSensitive: z.boolean().optional().describe("Case-sensitive search"),
335
- slideIndexes: z.array(z.number().int().min(0)).optional().describe("Limit search to specific slides")
336
- });
337
- var ReplaceTextSchema = z.object({
338
- filePath: z.string().describe("Path to the PPTX file"),
339
- query: z.string().describe("Text to find"),
340
- replacement: z.string().describe("Replacement text"),
341
- useRegex: z.boolean().optional(),
342
- caseSensitive: z.boolean().optional(),
343
- slideIndexes: z.array(z.number().int().min(0)).optional()
344
- });
345
- var ManageCommentsSchema = z.object({
346
- filePath: z.string().describe("Path to the PPTX file"),
347
- action: z.enum(["list", "add", "delete", "resolve"]),
348
- slideIndex: z.number().int().min(0).optional(),
349
- text: z.string().optional(),
350
- author: z.string().optional(),
351
- commentId: z.string().optional(),
352
- resolved: z.boolean().optional(),
353
- includeResolved: z.boolean().optional()
354
- });
355
- var TABLE_STYLE_SECTIONS = [
356
- "wholeTbl",
357
- "band1H",
358
- "band2H",
359
- "band1V",
360
- "band2V",
361
- "lastCol",
362
- "firstCol",
363
- "lastRow",
364
- "seCell",
365
- "swCell",
366
- "firstRow",
367
- "neCell",
368
- "nwCell"
369
- ];
370
- var TableStyleSimpleColorSchema = z.object({
371
- schemeColor: z.string().describe('Theme colour key (e.g. "accent1"), or "" for a non-scheme fill'),
372
- tint: z.number().optional().describe("0-100000"),
373
- shade: z.number().optional().describe("0-100000"),
374
- color: z.string().optional().describe('Explicit hex colour, e.g. "#FF8800"')
375
- });
376
- var TableStyleFillSchema = z.object({
377
- schemeColor: z.string(),
378
- tint: z.number().optional(),
379
- shade: z.number().optional(),
380
- color: z.string().optional(),
381
- noFill: z.boolean().optional(),
382
- gradient: z.object({
383
- type: z.enum(["linear", "radial"]),
384
- angle: z.number().optional(),
385
- stops: z.array(z.object({ position: z.number(), fill: TableStyleSimpleColorSchema }))
386
- }).optional(),
387
- pattern: z.object({
388
- preset: z.string(),
389
- foreground: TableStyleSimpleColorSchema.optional(),
390
- background: TableStyleSimpleColorSchema.optional()
391
- }).optional(),
392
- image: z.object({ path: z.string().optional(), data: z.string().optional() }).optional()
393
- });
394
- var TableStyleTextSchema = z.object({
395
- bold: z.boolean().optional(),
396
- italic: z.boolean().optional(),
397
- underline: z.boolean().optional(),
398
- fontSchemeColor: z.string().optional(),
399
- fontTint: z.number().optional(),
400
- fontShade: z.number().optional(),
401
- fontColor: z.string().optional(),
402
- fontFace: z.string().optional(),
403
- fontRefIdx: z.string().optional()
404
- });
405
- var TableStyleBorderSideSchema = z.object({
406
- width: z.number().optional(),
407
- dash: z.string().optional(),
408
- fill: TableStyleSimpleColorSchema.optional(),
409
- color: z.string().optional(),
410
- noFill: z.boolean().optional()
411
- });
412
- var TableStyleBordersSchema = z.object({
413
- left: TableStyleBorderSideSchema.optional(),
414
- right: TableStyleBorderSideSchema.optional(),
415
- top: TableStyleBorderSideSchema.optional(),
416
- bottom: TableStyleBorderSideSchema.optional(),
417
- insideH: TableStyleBorderSideSchema.optional(),
418
- insideV: TableStyleBorderSideSchema.optional(),
419
- tl2br: TableStyleBorderSideSchema.optional(),
420
- tr2bl: TableStyleBorderSideSchema.optional()
421
- });
422
- var TableStyleCell3DSchema = z.object({
423
- bevelWidth: z.number().optional(),
424
- bevelHeight: z.number().optional(),
425
- bevelPreset: z.string().optional(),
426
- material: z.string().optional(),
427
- lightRig: z.string().optional(),
428
- lightRigDirection: z.string().optional()
429
- });
430
- var SetTableStyleSectionSchema = z.object({
431
- filePath: z.string().describe("Path to the PPTX file"),
432
- styleId: z.string().describe('Table style GUID, e.g. "{5C22544A-7EE6-4342-B048-85BDC9FD1C3A}"'),
433
- section: z.enum(TABLE_STYLE_SECTIONS).describe("Which of the 13 CT_TableStyle parts to patch"),
434
- styleName: z.string().optional().describe("Rename the style"),
435
- fill: TableStyleFillSchema.optional(),
436
- text: TableStyleTextSchema.optional(),
437
- borders: TableStyleBordersSchema.optional(),
438
- cell3D: TableStyleCell3DSchema.optional()
439
- });
440
- var CreateTableStyleSchema = z.object({
441
- filePath: z.string().describe("Path to the PPTX file"),
442
- styleName: z.string().describe("Display name for the new style"),
443
- basedOnStyleId: z.string().optional().describe("Deep-clone every section from this existing style GUID as the starting point"),
444
- setAsDefault: z.boolean().optional().describe("Repoint ppt/tableStyles.xml's default style at the new one")
445
- });
446
- var DeleteTableStyleSchema = z.object({
447
- filePath: z.string().describe("Path to the PPTX file"),
448
- styleId: z.string().describe("Table style GUID to remove"),
449
- force: z.boolean().optional().describe("Delete even though a table on this deck still references the style")
450
- });
451
- var AssignTableStyleSchema = z.object({
452
- filePath: z.string().describe("Path to the PPTX file"),
453
- slideIndex: z.number().int().min(0),
454
- elementId: z.string().describe("Table element ID"),
455
- styleId: z.string().optional().describe(
456
- "Table style GUID to assign. Defaults to the presentation's current default table style when omitted."
457
- ),
458
- bandedRows: z.boolean().optional(),
459
- bandedColumns: z.boolean().optional(),
460
- firstRowHeader: z.boolean().optional(),
461
- lastRow: z.boolean().optional(),
462
- firstCol: z.boolean().optional(),
463
- lastCol: z.boolean().optional()
464
- });
465
- var GetThemeInfoSchema = z.object({
466
- filePath: z.string().describe("Path to the PPTX file")
467
- });
468
- var ApplyThemePresetSchema = z.object({
469
- filePath: z.string().describe("Path to the PPTX file"),
470
- presetName: z.string().describe(
471
- 'Theme preset name (e.g. "OFFICE", "MODERN_BLUE", "EARTH", "MONOCHROME", "VIBRANT", "CORPORATE", "MINIMAL", "DARK")'
472
- )
473
- });
474
- var UpdateThemeColorsSchema = z.object({
475
- filePath: z.string().describe("Path to the PPTX file"),
476
- dk1: z.string().optional().describe("Dark 1 color (hex)"),
477
- lt1: z.string().optional().describe("Light 1 color (hex)"),
478
- dk2: z.string().optional().describe("Dark 2 color (hex)"),
479
- lt2: z.string().optional().describe("Light 2 color (hex)"),
480
- accent1: z.string().optional().describe("Accent 1 color (hex)"),
481
- accent2: z.string().optional().describe("Accent 2 color (hex)"),
482
- accent3: z.string().optional().describe("Accent 3 color (hex)"),
483
- accent4: z.string().optional().describe("Accent 4 color (hex)"),
484
- accent5: z.string().optional().describe("Accent 5 color (hex)"),
485
- accent6: z.string().optional().describe("Accent 6 color (hex)"),
486
- hlink: z.string().optional().describe("Hyperlink color (hex)"),
487
- folHlink: z.string().optional().describe("Followed hyperlink color (hex)")
488
- });
489
- var UpdateThemeFontsSchema = z.object({
490
- filePath: z.string().describe("Path to the PPTX file"),
491
- majorFont: z.string().optional().describe("Heading (major) font family"),
492
- minorFont: z.string().optional().describe("Body (minor) font family")
493
- });
494
- var MarkerSymbolSchema = z.enum([
495
- "circle",
496
- "dash",
497
- "diamond",
498
- "dot",
499
- "none",
500
- "picture",
501
- "plus",
502
- "square",
503
- "star",
504
- "triangle",
505
- "x",
506
- "auto"
507
- ]);
508
- var DataLabelPositionSchema = z.enum([
509
- "bestFit",
510
- "b",
511
- "ctr",
512
- "inBase",
513
- "inEnd",
514
- "l",
515
- "outEnd",
516
- "r",
517
- "t"
518
- ]);
519
- var FormatChartDataPointSchema = z.object({
520
- filePath: z.string().describe("Path to the PPTX file"),
521
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
522
- elementId: z.string().describe("Chart element ID"),
523
- seriesIndex: z.number().int().min(0).describe("Zero-based series index"),
524
- pointIndex: z.number().int().min(0).describe("Zero-based data point (category) index"),
525
- fillColor: z.string().optional().describe("Fill colour (hex) for this point only"),
526
- strokeColor: z.string().optional().describe("Outline colour (hex) for this point only"),
527
- strokeWidth: z.number().optional().describe("Outline width in points"),
528
- strokeDashStyle: z.string().optional().describe("Outline dash style, e.g. solid, dash, dashDot, sysDot"),
529
- clearStyle: z.boolean().optional().describe("Remove all per-point shape formatting"),
530
- explosion: z.number().nullable().optional().describe("Pie/doughnut slice pull-out distance 0-100; null clears it"),
531
- marker: z.object({
532
- symbol: MarkerSymbolSchema.optional(),
533
- size: z.number().optional(),
534
- fillColor: z.string().optional()
535
- }).nullable().optional().describe("Per-point marker override (line/scatter/bubble); null clears it")
536
- });
537
- var FormatChartDataLabelSchema = z.object({
538
- filePath: z.string().describe("Path to the PPTX file"),
539
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
540
- elementId: z.string().describe("Chart element ID"),
541
- seriesIndex: z.number().int().min(0).describe("Zero-based series index"),
542
- pointIndex: z.number().int().min(0).describe("Zero-based data point (category) index"),
543
- remove: z.boolean().optional().describe("Remove the per-point label override entirely"),
544
- showValue: z.boolean().optional(),
545
- showCategory: z.boolean().optional(),
546
- showSeriesName: z.boolean().optional(),
547
- showPercent: z.boolean().optional(),
548
- showLegendKey: z.boolean().optional(),
549
- position: DataLabelPositionSchema.optional(),
550
- text: z.string().optional().describe("Custom label text override; '' clears it"),
551
- spPr: z.object({
552
- fillColor: z.string().optional(),
553
- strokeColor: z.string().optional(),
554
- strokeWidth: z.number().optional(),
555
- strokeDashStyle: z.string().optional()
556
- }).nullable().optional().describe("This label's own fill/line formatting; null removes it"),
557
- txPr: z.object({
558
- fontFamily: z.string().optional(),
559
- fontSize: z.number().optional(),
560
- bold: z.boolean().optional(),
561
- italic: z.boolean().optional(),
562
- color: z.string().optional()
563
- }).nullable().optional().describe("This label's own font; null removes it")
564
- });
565
- var FormatChartSeriesSchema = z.object({
566
- filePath: z.string().describe("Path to the PPTX file"),
567
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
568
- elementId: z.string().describe("Chart element ID"),
569
- seriesIndex: z.number().int().min(0).describe("Zero-based series index"),
570
- marker: z.object({
571
- symbol: MarkerSymbolSchema.optional(),
572
- size: z.number().optional(),
573
- fillColor: z.string().optional(),
574
- strokeColor: z.string().optional(),
575
- strokeWidth: z.number().optional(),
576
- strokeDashStyle: z.string().optional()
577
- }).nullable().optional().describe("Series marker (line/scatter/bubble/radar); null removes it"),
578
- trendline: z.object({
579
- trendlineType: z.enum([
580
- "linear",
581
- "exponential",
582
- "logarithmic",
583
- "polynomial",
584
- "power",
585
- "movingAvg"
586
- ]),
587
- color: z.string().optional(),
588
- lineWidth: z.number().optional().describe("Trendline width in points"),
589
- lineDashStyle: z.string().optional(),
590
- order: z.number().optional().describe("Polynomial order, 2-6"),
591
- period: z.number().optional().describe("Moving-average period"),
592
- displayEq: z.boolean().optional(),
593
- displayRSq: z.boolean().optional()
594
- }).nullable().optional().describe("Series trendline; null removes it"),
595
- errorBars: z.object({
596
- direction: z.enum(["x", "y"]),
597
- barType: z.enum(["both", "minus", "plus"]),
598
- valType: z.enum(["cust", "fixedVal", "percentage", "stdDev", "stdErr"]),
599
- val: z.number().optional(),
600
- customPlus: z.array(z.number()).optional(),
601
- customMinus: z.array(z.number()).optional(),
602
- noEndCap: z.boolean().optional(),
603
- color: z.string().optional(),
604
- width: z.number().optional().describe("Error-bar line width in points"),
605
- dashStyle: z.string().optional()
606
- }).nullable().optional().describe("Series error bars; null removes them")
607
- });
608
- var SetChartHelperLineSchema = z.object({
609
- filePath: z.string().describe("Path to the PPTX file"),
610
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
611
- elementId: z.string().describe("Chart element ID"),
612
- line: z.enum(["dropLines", "hiLowLines"]).describe("Which helper line to set"),
613
- style: z.object({
614
- color: z.string().optional(),
615
- width: z.number().optional(),
616
- dashStyle: z.string().optional()
617
- }).nullable().describe("Line colour/width/dash; {} shows the line with defaults, null removes it")
618
- });
619
- var SetChartColorMapOverrideSchema = z.object({
620
- filePath: z.string().describe("Path to the PPTX file"),
621
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
622
- elementId: z.string().describe("Chart element ID"),
623
- overrides: z.record(z.string(), z.string()).nullable().describe(
624
- 'Theme colour role remap (bg1/tx1/bg2/tx2/accent1-6/hlink/folHlink -> role), e.g. { "accent1": "accent2" }; null removes the override'
625
- )
626
- });
627
- var UpdateChartSchema = z.object({
628
- filePath: z.string().describe("Path to the PPTX file"),
629
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
630
- elementId: z.string().describe("Chart element ID"),
631
- chartType: z.string().optional().describe(
632
- 'New chart type (bar, line, pie, scatter, area, doughnut, radar, histogram, waterfall, funnel, treemap, sunburst, boxWhisker, regionMap). "pareto" is also accepted: it is authored as a histogram chart with an added cumulative-percentage line series.'
633
- ),
634
- title: z.string().optional().describe("Chart title"),
635
- grouping: z.enum(["clustered", "stacked", "percentStacked"]).optional().describe("Bar/column grouping"),
636
- legend: z.object({
637
- show: z.boolean().optional(),
638
- position: z.string().optional().describe("Legend position: b, t, l, r, tr")
639
- }).optional().describe("Legend configuration"),
640
- dataLabels: z.object({
641
- show: z.boolean().optional(),
642
- showValue: z.boolean().optional(),
643
- showCategory: z.boolean().optional(),
644
- showSeriesName: z.boolean().optional(),
645
- showPercent: z.boolean().optional()
646
- }).optional().describe("Data label configuration"),
647
- axis: z.object({
648
- type: z.string().describe("Axis type: valAx, catAx, dateAx, serAx"),
649
- edit: z.object({
650
- min: z.number().nullable().optional(),
651
- max: z.number().nullable().optional(),
652
- majorUnit: z.number().nullable().optional(),
653
- title: z.string().nullable().optional(),
654
- numberFormat: z.string().optional(),
655
- majorGridlines: z.boolean().optional(),
656
- minorGridlines: z.boolean().optional()
657
- })
658
- }).optional().describe("Axis configuration"),
659
- categories: z.array(z.string()).optional().describe("Category axis labels")
660
- });
661
- var AddChartSeriesSchema = z.object({
662
- filePath: z.string().describe("Path to the PPTX file"),
663
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
664
- elementId: z.string().describe("Chart element ID"),
665
- name: z.string().describe("Series name"),
666
- values: z.array(z.number()).describe("Data values"),
667
- color: z.string().optional().describe("Series color (hex)")
668
- });
669
- var RemoveChartSeriesSchema = z.object({
670
- filePath: z.string().describe("Path to the PPTX file"),
671
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
672
- elementId: z.string().describe("Chart element ID"),
673
- seriesIndex: z.number().int().min(0).describe("Zero-based series index to remove")
674
- });
675
- var UpdateChartSeriesDataSchema = z.object({
676
- filePath: z.string().describe("Path to the PPTX file"),
677
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
678
- elementId: z.string().describe("Chart element ID"),
679
- seriesIndex: z.number().int().min(0).describe("Zero-based series index"),
680
- values: z.array(z.number()).describe("New data values")
681
- });
682
- var CreateChartSchema = z.object({
683
- filePath: z.string().describe("Path to the PPTX file"),
684
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
685
- chartType: z.string().describe(
686
- 'Chart type (bar, line, pie, scatter, area, doughnut, radar, histogram, waterfall, funnel, treemap, sunburst, boxWhisker, regionMap). "pareto" is also accepted: it is authored as a histogram chart with an added cumulative-percentage line series.'
687
- ),
688
- x: z.number().optional().describe("X position in points"),
689
- y: z.number().optional().describe("Y position in points"),
690
- width: z.number().optional().describe("Width in points"),
691
- height: z.number().optional().describe("Height in points"),
692
- title: z.string().optional().describe("Chart title"),
693
- categories: z.array(z.string()).optional().describe("Category labels"),
694
- series: z.array(
695
- z.object({
696
- name: z.string(),
697
- values: z.array(z.number()),
698
- color: z.string().optional()
699
- })
700
- ).optional().describe("Data series"),
701
- legend: z.object({
702
- show: z.boolean(),
703
- position: z.string().optional()
704
- }).optional().describe("Legend configuration")
705
- });
706
- var PointSchema = z.object({ x: z.number(), y: z.number() });
707
- var ExtentSchema = z.object({ cx: z.number(), cy: z.number() });
708
- var ChartUserShapeInputSchema = z.object({
709
- kind: z.enum(["sp", "cxnSp"]).optional().describe('Overlay shape kind: "sp" (text/preset shape, default) or "cxnSp" (connector).'),
710
- anchor: z.enum(["rel", "abs"]).optional().describe(
711
- 'Anchor kind: "rel" (default, resizes with the chart; needs `to`) or "abs" (fixed EMU size; needs `ext`).'
712
- ),
713
- from: PointSchema.describe("Top-left corner as chart-relative fractions (0-1 each)."),
714
- to: PointSchema.optional().describe(
715
- "Bottom-right corner as chart-relative fractions; rel anchors only."
716
- ),
717
- ext: ExtentSchema.optional().describe("Width/height in EMU; abs anchors only."),
718
- prst: z.string().optional().describe('Preset geometry name (e.g. "rect", "roundRect"); default "rect".'),
719
- fill: z.string().optional().describe('Solid fill colour, hex (e.g. "#FFFF00").'),
720
- stroke: z.string().optional().describe("Line colour, hex."),
721
- strokeWidth: z.number().optional().describe("Line width in points."),
722
- text: z.string().optional().describe("Plain text content, centred in the shape.")
723
- });
724
- var ListChartUserShapesSchema = z.object({
725
- filePath: z.string().describe("Path to the PPTX file"),
726
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
727
- elementId: z.string().describe("Chart element ID")
728
- });
729
- var AddChartUserShapeSchema = z.object({
730
- filePath: z.string().describe("Path to the PPTX file"),
731
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
732
- elementId: z.string().describe("Chart element ID"),
733
- shape: ChartUserShapeInputSchema.describe("The overlay shape to add.")
734
- });
735
- var UpdateChartUserShapeSchema = z.object({
736
- filePath: z.string().describe("Path to the PPTX file"),
737
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
738
- elementId: z.string().describe("Chart element ID"),
739
- index: z.number().int().min(0).describe("Zero-based overlay-shape index (from chart_user_shape_list)"),
740
- patch: ChartUserShapeInputSchema.partial().describe(
741
- "Fields to overwrite; anything omitted is left as-is."
742
- )
743
- });
744
- var RemoveChartUserShapeSchema = z.object({
745
- filePath: z.string().describe("Path to the PPTX file"),
746
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
747
- elementId: z.string().describe("Chart element ID"),
748
- index: z.number().int().min(0).describe("Zero-based overlay-shape index to remove")
749
- });
750
- var ManageSmartArtSchema = z.object({
751
- filePath: z.string().describe("Path to the PPTX file"),
752
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
753
- elementId: z.string().describe("SmartArt element ID"),
754
- action: z.enum([
755
- "getNodes",
756
- "addNode",
757
- "removeNode",
758
- "updateNodeText",
759
- "reorderNode",
760
- "promoteNode",
761
- "demoteNode",
762
- "decompose"
763
- ]).describe("SmartArt action"),
764
- nodeId: z.string().optional().describe("Node ID (required for most actions)"),
765
- text: z.string().optional().describe("Text for addNode or updateNodeText"),
766
- afterNodeId: z.string().optional().describe("Insert after this node ID"),
767
- direction: z.number().optional().describe("Reorder direction: 1 (forward) or -1 (backward)")
768
- });
769
- var FindPlaceholdersSchema = z.object({
770
- filePath: z.string().describe("Path to the PPTX file")
771
- });
772
- var ApplyTemplateSchema = z.object({
773
- filePath: z.string().describe("Path to the PPTX file"),
774
- data: z.record(z.string(), z.unknown()).describe("Template data: keys are placeholder names, values are replacement values")
775
- });
776
- var GetMetadataSchema = z.object({
777
- filePath: z.string().describe("Path to the PPTX file")
778
- });
779
- var UpdateMetadataSchema = z.object({
780
- filePath: z.string().describe("Path to the PPTX file"),
781
- title: z.string().optional().describe("Presentation title"),
782
- subject: z.string().optional().describe("Subject"),
783
- creator: z.string().optional().describe("Creator/author name"),
784
- keywords: z.string().optional().describe("Keywords (comma-separated)"),
785
- description: z.string().optional().describe("Description/comments"),
786
- lastModifiedBy: z.string().optional().describe("Last modified by"),
787
- category: z.string().optional().describe("Category"),
788
- company: z.string().optional().describe("Company name"),
789
- manager: z.string().optional().describe("Manager name"),
790
- customProperties: z.array(
791
- z.object({
792
- name: z.string(),
793
- value: z.union([z.string(), z.number(), z.boolean()])
794
- })
795
- ).optional().describe("Custom properties to set")
796
- });
797
- var ManageSectionsSchema = z.object({
798
- filePath: z.string().describe("Path to the PPTX file"),
799
- action: z.enum(["list", "add", "remove", "reorder", "moveSlides", "getForSlide"]).describe("Section action"),
800
- name: z.string().optional().describe("Section name (for add)"),
801
- slideIndices: z.array(z.number().int().min(0)).optional().describe("Slide indices (for add, moveSlides)"),
802
- sectionId: z.string().optional().describe("Section ID (for remove, moveSlides)"),
803
- sectionIds: z.array(z.string()).optional().describe("Ordered section IDs (for reorder)"),
804
- slideIndex: z.number().int().min(0).optional().describe("Slide index (for getForSlide)")
805
- });
806
- var ExportToSvgSchema = z.object({
807
- filePath: z.string().describe("Path to the PPTX file"),
808
- slideIndices: z.array(z.number().int().min(0)).optional().describe("Specific slides to export (all if omitted)"),
809
- includeHidden: z.boolean().optional().describe("Include hidden slides"),
810
- defaultFontFamily: z.string().optional().describe("Default font family for SVG"),
811
- defaultFontSize: z.number().optional().describe("Default font size")
812
- });
813
- var ExportSlideSvgSchema = z.object({
814
- filePath: z.string().describe("Path to the PPTX file"),
815
- slideIndex: z.number().int().min(0).describe("Zero-based slide index to export"),
816
- defaultFontFamily: z.string().optional().describe("Default font family for SVG"),
817
- defaultFontSize: z.number().optional().describe("Default font size")
818
- });
819
- var ExportToJsonSchema = z.object({
820
- filePath: z.string().describe("Path to the PPTX file"),
821
- pretty: z.boolean().optional().describe("Pretty-print the JSON document with 2-space indentation (default true)")
822
- });
823
- var ImportFromJsonSchema = z.object({
824
- filePath: z.string().describe("Path to the PPTX file"),
825
- json: z.string().describe("The pptx-viewer-json document text to import (replaces the deck content)")
826
- });
827
- var ManageHyperlinksSchema = z.object({
828
- filePath: z.string().describe("Path to the PPTX file"),
829
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
830
- action: z.enum(["list", "set", "remove"]).describe("Hyperlink action"),
831
- elementId: z.string().optional().describe("Element ID (for set/remove)"),
832
- trigger: z.enum(["click", "hover"]).optional().describe("Action trigger (default: click)"),
833
- url: z.string().optional().describe("URL for the hyperlink"),
834
- tooltip: z.string().optional().describe("Tooltip text"),
835
- targetSlideIndex: z.number().int().min(0).optional().describe("Target slide index for internal links"),
836
- actionType: z.enum(["url", "slide", "nextSlide", "prevSlide", "firstSlide", "lastSlide", "endShow"]).optional().describe("Link action type")
837
- });
838
- var ReplaceGeometrySchema = z.object({
839
- filePath: z.string().describe("Path to the PPTX file"),
840
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
841
- elementId: z.string().describe("Shape element ID"),
842
- shapeType: z.string().optional().describe('Preset shape type (e.g. "roundRect", "star5", "ellipse", "diamond")'),
843
- svgPath: z.string().optional().describe("Custom SVG path data (mutually exclusive with shapeType)"),
844
- pathWidth: z.number().optional().describe("Width of SVG path coordinate space"),
845
- pathHeight: z.number().optional().describe("Height of SVG path coordinate space"),
846
- adjustments: z.record(z.string(), z.number()).optional().describe("Shape adjustment values")
847
- });
848
- var SetElementLockSchema = z.object({
849
- filePath: z.string().describe("Path to the PPTX file"),
850
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
851
- elementId: z.string().describe("Element ID to lock/unlock"),
852
- locked: z.boolean().describe("Whether the element should be locked"),
853
- noMove: z.boolean().optional().describe("Prevent moving"),
854
- noResize: z.boolean().optional().describe("Prevent resizing"),
855
- noRotation: z.boolean().optional().describe("Prevent rotation"),
856
- noSelect: z.boolean().optional().describe("Prevent selection"),
857
- noTextEdit: z.boolean().optional().describe("Prevent text editing")
858
- });
859
- var ValidatePresentationSchema = z.object({
860
- filePath: z.string().describe("Path to the PPTX file")
861
- });
862
- var RepairPresentationSchema = z.object({
863
- filePath: z.string().describe("Path to the PPTX file")
864
- });
865
- var GetPresentationPropertiesSchema = z.object({
866
- filePath: z.string().describe("Path to the PPTX file")
867
- });
868
- var UpdatePresentationPropertiesSchema = z.object({
869
- filePath: z.string().describe("Path to the PPTX file"),
870
- showType: z.enum(["presented", "browsed", "kiosk"]).optional().describe("Slideshow mode"),
871
- loopContinuously: z.boolean().optional().describe("Loop the slideshow"),
872
- showWithNarration: z.boolean().optional().describe("Play narration"),
873
- showWithAnimation: z.boolean().optional().describe("Play animations"),
874
- advanceMode: z.enum(["manual", "useTimings"]).optional().describe("Slide advance mode"),
875
- showSlidesMode: z.enum(["all", "customShow", "range"]).optional().describe("Which slides to show"),
876
- showSlidesFrom: z.number().int().min(1).optional().describe("Range start (1-based)"),
877
- showSlidesTo: z.number().int().min(1).optional().describe("Range end (1-based)"),
878
- penColor: z.string().optional().describe("Annotation pen color (hex)")
879
- });
880
- var GetLayoutsSchema = z.object({
881
- filePath: z.string().describe("Path to the PPTX file")
882
- });
883
- var ApplyLayoutSchema = z.object({
884
- filePath: z.string().describe("Path to the PPTX file"),
885
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
886
- layoutName: z.string().optional().describe("Layout name to apply"),
887
- layoutType: z.string().optional().describe("Layout type to apply (alternative to name)")
888
- });
889
- var GetOleContentSchema = z.object({
890
- filePath: z.string().describe("Path to the PPTX file"),
891
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
892
- elementId: z.string().describe("OLE element ID")
893
- });
894
- var SetOleSheetCellSchema = z.object({
895
- filePath: z.string().describe("Path to the PPTX file"),
896
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
897
- elementId: z.string().describe("OLE element ID (Excel payload: .xlsx or .xls)"),
898
- row: z.number().int().min(0).describe("Zero-based row index on the first worksheet"),
899
- col: z.number().int().min(0).describe("Zero-based column index on the first worksheet"),
900
- value: z.string().describe("New cell value")
901
- });
902
- var SetOleDocumentParagraphSchema = z.object({
903
- filePath: z.string().describe("Path to the PPTX file"),
904
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
905
- elementId: z.string().describe("OLE element ID (Word payload: .docx)"),
906
- paragraphIndex: z.number().int().min(0).describe("Zero-based paragraph index"),
907
- text: z.string().describe("New paragraph text")
908
- });
909
- var SetOleDeckSlideTitleSchema = z.object({
910
- filePath: z.string().describe("Path to the PPTX file"),
911
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
912
- elementId: z.string().describe("OLE element ID (nested-deck payload: .pptx)"),
913
- deckSlideIndex: z.number().int().min(0).describe("Zero-based slide index within the nested deck"),
914
- deckElementId: z.string().describe(
915
- "ID of the text-bearing shape to edit within the nested slide, from ole_get_content's deckSlides[n].elements[i].elementId"
916
- ),
917
- title: z.string().describe("New text for the chosen shape")
918
- });
919
- var ReplaceOleFileSchema = z.object({
920
- filePath: z.string().describe("Path to the PPTX file"),
921
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
922
- elementId: z.string().describe("OLE element ID"),
923
- fileData: z.string().describe('New payload as a base64 data URL (e.g. "data:application/pdf;base64,...")'),
924
- fileName: z.string().optional().describe("Optional new file name (also updates the resolved MIME type)")
925
- });
926
- var SetOleObjectNameSchema = z.object({
927
- filePath: z.string().describe("Path to the PPTX file"),
928
- slideIndex: z.number().int().min(0).describe("Zero-based slide index"),
929
- elementId: z.string().describe("OLE element ID"),
930
- name: z.string().describe("New Object Name (p:oleObj/@name); blank/whitespace clears it")
931
- });
7
+ var __defProp = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget);
20
+
21
+ // src/schemas/index.ts
22
+ var schemas_exports = {};
23
+ __reExport(schemas_exports, schemas_star);
932
24
  var formatChartDataPoint = apiToolsChartFormattingTools.formatChartDataPoint;
933
25
  var formatChartDataLabel = apiToolsChartFormattingTools.formatChartDataLabel;
934
26
  var formatChartSeries = apiToolsChartFormattingTools.formatChartSeries;
@@ -1076,7 +168,7 @@ function registerTools(server, options) {
1076
168
  "get_slide",
1077
169
  {
1078
170
  description: "Inspect a single slide: returns layout, notes, elements",
1079
- inputSchema: GetSlideSchema.shape
171
+ inputSchema: schemas_exports.GetSlideSchema.shape
1080
172
  },
1081
173
  async (params) => {
1082
174
  const result = await runMcpTool2(
@@ -1097,7 +189,7 @@ function registerTools(server, options) {
1097
189
  "add_slide",
1098
190
  {
1099
191
  description: "Add a new blank slide to the presentation",
1100
- inputSchema: AddSlideSchema.shape
192
+ inputSchema: schemas_exports.AddSlideSchema.shape
1101
193
  },
1102
194
  async (params) => {
1103
195
  const result = await runMcpTool2(params.filePath, (ctx) => addSlide(ctx, params));
@@ -1115,7 +207,7 @@ function registerTools(server, options) {
1115
207
  "delete_slides",
1116
208
  {
1117
209
  description: "Delete one or more slides by index",
1118
- inputSchema: DeleteSlidesSchema.shape
210
+ inputSchema: schemas_exports.DeleteSlidesSchema.shape
1119
211
  },
1120
212
  async (params) => {
1121
213
  const result = await runMcpTool2(
@@ -1138,7 +230,7 @@ function registerTools(server, options) {
1138
230
  "reorder_slides",
1139
231
  {
1140
232
  description: "Reorder slides by providing a new index array",
1141
- inputSchema: ReorderSlidesSchema.shape
233
+ inputSchema: schemas_exports.ReorderSlidesSchema.shape
1142
234
  },
1143
235
  async (params) => {
1144
236
  const result = await runMcpTool2(
@@ -1159,7 +251,7 @@ function registerTools(server, options) {
1159
251
  "duplicate_slide",
1160
252
  {
1161
253
  description: "Duplicate a slide with new element IDs",
1162
- inputSchema: DuplicateSlideSchema.shape
254
+ inputSchema: schemas_exports.DuplicateSlideSchema.shape
1163
255
  },
1164
256
  async (params) => {
1165
257
  const result = await runMcpTool2(
@@ -1180,7 +272,7 @@ function registerTools(server, options) {
1180
272
  "update_slide_properties",
1181
273
  {
1182
274
  description: "Update slide background, notes, or visibility",
1183
- inputSchema: UpdateSlidePropertiesSchema.shape
275
+ inputSchema: schemas_exports.UpdateSlidePropertiesSchema.shape
1184
276
  },
1185
277
  async (params) => {
1186
278
  const result = await runMcpTool2(
@@ -1201,7 +293,7 @@ function registerTools(server, options) {
1201
293
  "set_slide_transition",
1202
294
  {
1203
295
  description: "Set or remove a slide transition effect",
1204
- inputSchema: SetSlideTransitionSchema.shape
296
+ inputSchema: schemas_exports.SetSlideTransitionSchema.shape
1205
297
  },
1206
298
  async (params) => {
1207
299
  const result = await runMcpTool2(
@@ -1222,7 +314,7 @@ function registerTools(server, options) {
1222
314
  "set_canvas_size",
1223
315
  {
1224
316
  description: "Change the presentation canvas dimensions",
1225
- inputSchema: SetCanvasSizeSchema.shape
317
+ inputSchema: schemas_exports.SetCanvasSizeSchema.shape
1226
318
  },
1227
319
  async (params) => {
1228
320
  const result = await runMcpTool2(
@@ -1243,7 +335,7 @@ function registerTools(server, options) {
1243
335
  "add_element",
1244
336
  {
1245
337
  description: "Add a text, shape, image, table, or connector element",
1246
- inputSchema: AddElementSchema.shape
338
+ inputSchema: schemas_exports.AddElementSchema.shape
1247
339
  },
1248
340
  async (params) => {
1249
341
  const result = await runMcpTool2(
@@ -1264,7 +356,7 @@ function registerTools(server, options) {
1264
356
  "update_element",
1265
357
  {
1266
358
  description: "Update element position, size, text, or style",
1267
- inputSchema: UpdateElementSchema.shape
359
+ inputSchema: schemas_exports.UpdateElementSchema.shape
1268
360
  },
1269
361
  async (params) => {
1270
362
  const result = await runMcpTool2(
@@ -1285,7 +377,7 @@ function registerTools(server, options) {
1285
377
  "rename_element",
1286
378
  {
1287
379
  description: "Rename an element (the selection pane's display name; cNvPr/@name)",
1288
- inputSchema: RenameElementSchema.shape
380
+ inputSchema: schemas_exports.RenameElementSchema.shape
1289
381
  },
1290
382
  async (params) => {
1291
383
  const result = await runMcpTool2(
@@ -1306,7 +398,7 @@ function registerTools(server, options) {
1306
398
  "delete_elements",
1307
399
  {
1308
400
  description: "Delete one or more elements by ID",
1309
- inputSchema: DeleteElementsSchema.shape
401
+ inputSchema: schemas_exports.DeleteElementsSchema.shape
1310
402
  },
1311
403
  async (params) => {
1312
404
  const result = await runMcpTool2(
@@ -1327,7 +419,7 @@ function registerTools(server, options) {
1327
419
  "arrange_elements",
1328
420
  {
1329
421
  description: "Align elements or change z-order (layer)",
1330
- inputSchema: ArrangeElementsSchema.shape
422
+ inputSchema: schemas_exports.ArrangeElementsSchema.shape
1331
423
  },
1332
424
  async (params) => {
1333
425
  const result = await runMcpTool2(
@@ -1348,7 +440,7 @@ function registerTools(server, options) {
1348
440
  "clone_element",
1349
441
  {
1350
442
  description: "Clone an element within or across slides",
1351
- inputSchema: CloneElementSchema.shape
443
+ inputSchema: schemas_exports.CloneElementSchema.shape
1352
444
  },
1353
445
  async (params) => {
1354
446
  const result = await runMcpTool2(
@@ -1369,7 +461,7 @@ function registerTools(server, options) {
1369
461
  "set_element_animation",
1370
462
  {
1371
463
  description: "Set entrance/exit animation on an element",
1372
- inputSchema: SetElementAnimationSchema.shape
464
+ inputSchema: schemas_exports.SetElementAnimationSchema.shape
1373
465
  },
1374
466
  async (params) => {
1375
467
  const result = await runMcpTool2(
@@ -1390,7 +482,7 @@ function registerTools(server, options) {
1390
482
  "group_elements",
1391
483
  {
1392
484
  description: "Group multiple elements into a group",
1393
- inputSchema: GroupElementsSchema.shape
485
+ inputSchema: schemas_exports.GroupElementsSchema.shape
1394
486
  },
1395
487
  async (params) => {
1396
488
  const result = await runMcpTool2(
@@ -1411,7 +503,7 @@ function registerTools(server, options) {
1411
503
  "ungroup_elements",
1412
504
  {
1413
505
  description: "Ungroup a group element back to individual elements",
1414
- inputSchema: UngroupElementsSchema.shape
506
+ inputSchema: schemas_exports.UngroupElementsSchema.shape
1415
507
  },
1416
508
  async (params) => {
1417
509
  const result = await runMcpTool2(
@@ -1432,7 +524,7 @@ function registerTools(server, options) {
1432
524
  "batch_update_elements",
1433
525
  {
1434
526
  description: "Apply the same properties to multiple elements",
1435
- inputSchema: BatchUpdateElementsSchema.shape
527
+ inputSchema: schemas_exports.BatchUpdateElementsSchema.shape
1436
528
  },
1437
529
  async (params) => {
1438
530
  const result = await runMcpTool2(
@@ -1453,7 +545,7 @@ function registerTools(server, options) {
1453
545
  "update_table_cells",
1454
546
  {
1455
547
  description: "Update text content of table cells",
1456
- inputSchema: UpdateTableCellsSchema.shape
548
+ inputSchema: schemas_exports.UpdateTableCellsSchema.shape
1457
549
  },
1458
550
  async (params) => {
1459
551
  const result = await runMcpTool2(
@@ -1474,7 +566,7 @@ function registerTools(server, options) {
1474
566
  "manage_table_structure",
1475
567
  {
1476
568
  description: "Insert or delete table rows and columns",
1477
- inputSchema: ManageTableStructureSchema.shape
569
+ inputSchema: schemas_exports.ManageTableStructureSchema.shape
1478
570
  },
1479
571
  async (params) => {
1480
572
  const result = await runMcpTool2(
@@ -1495,7 +587,7 @@ function registerTools(server, options) {
1495
587
  "set_table_style_section",
1496
588
  {
1497
589
  description: "Patch the fill, text, borders, or cell3D of one section (wholeTbl, banding, first/last row/col, or a corner cell) of an existing loaded table style",
1498
- inputSchema: SetTableStyleSectionSchema.shape
590
+ inputSchema: schemas_exports.SetTableStyleSectionSchema.shape
1499
591
  },
1500
592
  async (params) => {
1501
593
  const result = await runMcpTool2(
@@ -1511,7 +603,7 @@ function registerTools(server, options) {
1511
603
  "create_table_style",
1512
604
  {
1513
605
  description: "Create a new table style (optionally cloned from an existing one) and optionally set it as the default",
1514
- inputSchema: CreateTableStyleSchema.shape
606
+ inputSchema: schemas_exports.CreateTableStyleSchema.shape
1515
607
  },
1516
608
  async (params) => {
1517
609
  const result = await runMcpTool2(
@@ -1527,7 +619,7 @@ function registerTools(server, options) {
1527
619
  "delete_table_style",
1528
620
  {
1529
621
  description: "Remove a table style from the presentation",
1530
- inputSchema: DeleteTableStyleSchema.shape
622
+ inputSchema: schemas_exports.DeleteTableStyleSchema.shape
1531
623
  },
1532
624
  async (params) => {
1533
625
  const result = await runMcpTool2(
@@ -1543,7 +635,7 @@ function registerTools(server, options) {
1543
635
  "assign_table_style",
1544
636
  {
1545
637
  description: "Assign a table style (and row/column emphasis flags) to an existing table",
1546
- inputSchema: AssignTableStyleSchema.shape
638
+ inputSchema: schemas_exports.AssignTableStyleSchema.shape
1547
639
  },
1548
640
  async (params) => {
1549
641
  const result = await runMcpTool2(
@@ -1559,7 +651,7 @@ function registerTools(server, options) {
1559
651
  "update_element_style",
1560
652
  {
1561
653
  description: "Update fill, stroke, shadow, glow, or image effects",
1562
- inputSchema: UpdateElementStyleSchema.shape
654
+ inputSchema: schemas_exports.UpdateElementStyleSchema.shape
1563
655
  },
1564
656
  async (params) => {
1565
657
  const result = await runMcpTool2(
@@ -1580,7 +672,7 @@ function registerTools(server, options) {
1580
672
  "run_accessibility_check",
1581
673
  {
1582
674
  description: "Audit the presentation for accessibility issues",
1583
- inputSchema: AccessibilityCheckSchema.shape
675
+ inputSchema: schemas_exports.AccessibilityCheckSchema.shape
1584
676
  },
1585
677
  async (params) => {
1586
678
  const result = await runMcpTool2(
@@ -1601,7 +693,7 @@ function registerTools(server, options) {
1601
693
  "find_text",
1602
694
  {
1603
695
  description: "Search for text across all slides",
1604
- inputSchema: FindTextSchema.shape
696
+ inputSchema: schemas_exports.FindTextSchema.shape
1605
697
  },
1606
698
  async (params) => {
1607
699
  const result = await runMcpTool2(params.filePath, (ctx) => findText(ctx, params));
@@ -1619,7 +711,7 @@ function registerTools(server, options) {
1619
711
  "replace_text",
1620
712
  {
1621
713
  description: "Find and replace text across slides",
1622
- inputSchema: ReplaceTextSchema.shape
714
+ inputSchema: schemas_exports.ReplaceTextSchema.shape
1623
715
  },
1624
716
  async (params) => {
1625
717
  const result = await runMcpTool2(
@@ -1640,7 +732,7 @@ function registerTools(server, options) {
1640
732
  "manage_comments",
1641
733
  {
1642
734
  description: "List, add, delete, or resolve slide comments",
1643
- inputSchema: ManageCommentsSchema.shape
735
+ inputSchema: schemas_exports.ManageCommentsSchema.shape
1644
736
  },
1645
737
  async (params) => {
1646
738
  const result = await runMcpTool2(
@@ -1661,7 +753,7 @@ function registerTools(server, options) {
1661
753
  "convert_to_markdown",
1662
754
  {
1663
755
  description: "Convert the presentation to Markdown format",
1664
- inputSchema: ConvertToMarkdownSchema.shape
756
+ inputSchema: schemas_exports.ConvertToMarkdownSchema.shape
1665
757
  },
1666
758
  async (params) => {
1667
759
  const result = await runMcpTool2(
@@ -1682,7 +774,7 @@ function registerTools(server, options) {
1682
774
  "get_theme_info",
1683
775
  {
1684
776
  description: "Get current theme information (colors, fonts, available presets)",
1685
- inputSchema: GetThemeInfoSchema.shape
777
+ inputSchema: schemas_exports.GetThemeInfoSchema.shape
1686
778
  },
1687
779
  async (params) => {
1688
780
  const result = await runMcpTool2(params.filePath, (ctx) => getThemeInfo(ctx));
@@ -1693,7 +785,7 @@ function registerTools(server, options) {
1693
785
  "apply_theme_preset",
1694
786
  {
1695
787
  description: "Apply a built-in theme preset to the presentation",
1696
- inputSchema: ApplyThemePresetSchema.shape
788
+ inputSchema: schemas_exports.ApplyThemePresetSchema.shape
1697
789
  },
1698
790
  async (params) => {
1699
791
  const result = await runMcpTool2(
@@ -1707,7 +799,7 @@ function registerTools(server, options) {
1707
799
  "update_theme_colors",
1708
800
  {
1709
801
  description: "Update individual theme colors (accent1-6, dk1/2, lt1/2, hlink, folHlink)",
1710
- inputSchema: UpdateThemeColorsSchema.shape
802
+ inputSchema: schemas_exports.UpdateThemeColorsSchema.shape
1711
803
  },
1712
804
  async (params) => {
1713
805
  const result = await runMcpTool2(
@@ -1721,7 +813,7 @@ function registerTools(server, options) {
1721
813
  "update_theme_fonts",
1722
814
  {
1723
815
  description: "Update theme heading (major) and body (minor) fonts",
1724
- inputSchema: UpdateThemeFontsSchema.shape
816
+ inputSchema: schemas_exports.UpdateThemeFontsSchema.shape
1725
817
  },
1726
818
  async (params) => {
1727
819
  const result = await runMcpTool2(
@@ -1735,7 +827,7 @@ function registerTools(server, options) {
1735
827
  "update_chart",
1736
828
  {
1737
829
  description: "Update chart type, title, legend, data labels, axis, or categories",
1738
- inputSchema: UpdateChartSchema.shape
830
+ inputSchema: schemas_exports.UpdateChartSchema.shape
1739
831
  },
1740
832
  async (params) => {
1741
833
  const result = await runMcpTool2(
@@ -1749,7 +841,7 @@ function registerTools(server, options) {
1749
841
  "add_chart_series",
1750
842
  {
1751
843
  description: "Add a data series to an existing chart",
1752
- inputSchema: AddChartSeriesSchema.shape
844
+ inputSchema: schemas_exports.AddChartSeriesSchema.shape
1753
845
  },
1754
846
  async (params) => {
1755
847
  const result = await runMcpTool2(
@@ -1763,7 +855,7 @@ function registerTools(server, options) {
1763
855
  "remove_chart_series",
1764
856
  {
1765
857
  description: "Remove a data series from a chart by index",
1766
- inputSchema: RemoveChartSeriesSchema.shape
858
+ inputSchema: schemas_exports.RemoveChartSeriesSchema.shape
1767
859
  },
1768
860
  async (params) => {
1769
861
  const result = await runMcpTool2(
@@ -1777,7 +869,7 @@ function registerTools(server, options) {
1777
869
  "update_chart_series_data",
1778
870
  {
1779
871
  description: "Update data values for a chart series",
1780
- inputSchema: UpdateChartSeriesDataSchema.shape
872
+ inputSchema: schemas_exports.UpdateChartSeriesDataSchema.shape
1781
873
  },
1782
874
  async (params) => {
1783
875
  const result = await runMcpTool2(
@@ -1791,7 +883,7 @@ function registerTools(server, options) {
1791
883
  "create_chart",
1792
884
  {
1793
885
  description: "Create a new chart element on a slide",
1794
- inputSchema: CreateChartSchema.shape
886
+ inputSchema: schemas_exports.CreateChartSchema.shape
1795
887
  },
1796
888
  async (params) => {
1797
889
  const result = await runMcpTool2(
@@ -1805,7 +897,7 @@ function registerTools(server, options) {
1805
897
  "format_chart_data_point",
1806
898
  {
1807
899
  description: "Set per-data-point chart formatting: fill/stroke colour, stroke width, dash style (c:dPt/c:spPr), explosion, and marker override",
1808
- inputSchema: FormatChartDataPointSchema.shape
900
+ inputSchema: schemas_exports.FormatChartDataPointSchema.shape
1809
901
  },
1810
902
  async (params) => {
1811
903
  const result = await runMcpTool2(
@@ -1819,7 +911,7 @@ function registerTools(server, options) {
1819
911
  "format_chart_data_label",
1820
912
  {
1821
913
  description: "Set a per-data-point data-label override (c:dLbl): show flags, position, custom text, and the label's own fill/line formatting (c:spPr) and font (c:txPr)",
1822
- inputSchema: FormatChartDataLabelSchema.shape
914
+ inputSchema: schemas_exports.FormatChartDataLabelSchema.shape
1823
915
  },
1824
916
  async (params) => {
1825
917
  const result = await runMcpTool2(
@@ -1833,7 +925,7 @@ function registerTools(server, options) {
1833
925
  "format_chart_series",
1834
926
  {
1835
927
  description: "Set a chart series marker (c:marker), trendline (c:trendline, incl. line width/dash), or error bars (c:errBars, incl. line width/dash)",
1836
- inputSchema: FormatChartSeriesSchema.shape
928
+ inputSchema: schemas_exports.FormatChartSeriesSchema.shape
1837
929
  },
1838
930
  async (params) => {
1839
931
  const result = await runMcpTool2(
@@ -1847,7 +939,7 @@ function registerTools(server, options) {
1847
939
  "set_chart_helper_line",
1848
940
  {
1849
941
  description: "Set or remove a chart-level helper line on a line/stock/combo chart: c:dropLines or c:hiLowLines",
1850
- inputSchema: SetChartHelperLineSchema.shape
942
+ inputSchema: schemas_exports.SetChartHelperLineSchema.shape
1851
943
  },
1852
944
  async (params) => {
1853
945
  const result = await runMcpTool2(
@@ -1861,7 +953,7 @@ function registerTools(server, options) {
1861
953
  "set_chart_color_map_override",
1862
954
  {
1863
955
  description: "Set or remove a chart's theme colour-map override (c:clrMapOvr), remapping theme colour roles for this chart only",
1864
- inputSchema: SetChartColorMapOverrideSchema.shape
956
+ inputSchema: schemas_exports.SetChartColorMapOverrideSchema.shape
1865
957
  },
1866
958
  async (params) => {
1867
959
  const result = await runMcpTool2(
@@ -1875,7 +967,7 @@ function registerTools(server, options) {
1875
967
  "chart_user_shape_list",
1876
968
  {
1877
969
  description: "List a chart's drawing-overlay shapes (c:userShapes)",
1878
- inputSchema: ListChartUserShapesSchema.shape
970
+ inputSchema: schemas_exports.ListChartUserShapesSchema.shape
1879
971
  },
1880
972
  async (params) => {
1881
973
  const result = await runMcpTool2(
@@ -1889,7 +981,7 @@ function registerTools(server, options) {
1889
981
  "chart_user_shape_add",
1890
982
  {
1891
983
  description: "Add a drawing-overlay shape (text box or connector) to a chart's c:userShapes",
1892
- inputSchema: AddChartUserShapeSchema.shape
984
+ inputSchema: schemas_exports.AddChartUserShapeSchema.shape
1893
985
  },
1894
986
  async (params) => {
1895
987
  const result = await runMcpTool2(
@@ -1903,7 +995,7 @@ function registerTools(server, options) {
1903
995
  "chart_user_shape_update",
1904
996
  {
1905
997
  description: "Move, resize, or restyle one of a chart's drawing-overlay shapes by index",
1906
- inputSchema: UpdateChartUserShapeSchema.shape
998
+ inputSchema: schemas_exports.UpdateChartUserShapeSchema.shape
1907
999
  },
1908
1000
  async (params) => {
1909
1001
  const result = await runMcpTool2(
@@ -1917,7 +1009,7 @@ function registerTools(server, options) {
1917
1009
  "chart_user_shape_remove",
1918
1010
  {
1919
1011
  description: "Remove one of a chart's drawing-overlay shapes by index",
1920
- inputSchema: RemoveChartUserShapeSchema.shape
1012
+ inputSchema: schemas_exports.RemoveChartUserShapeSchema.shape
1921
1013
  },
1922
1014
  async (params) => {
1923
1015
  const result = await runMcpTool2(
@@ -1931,7 +1023,7 @@ function registerTools(server, options) {
1931
1023
  "manage_smart_art",
1932
1024
  {
1933
1025
  description: "Manage SmartArt: get nodes, add/remove/reorder/promote/demote nodes, or decompose to shapes",
1934
- inputSchema: ManageSmartArtSchema.shape
1026
+ inputSchema: schemas_exports.ManageSmartArtSchema.shape
1935
1027
  },
1936
1028
  async (params) => {
1937
1029
  const result = await runMcpTool2(
@@ -1945,7 +1037,7 @@ function registerTools(server, options) {
1945
1037
  "find_placeholders",
1946
1038
  {
1947
1039
  description: "Discover all {{placeholder}} tokens in the presentation",
1948
- inputSchema: FindPlaceholdersSchema.shape
1040
+ inputSchema: schemas_exports.FindPlaceholdersSchema.shape
1949
1041
  },
1950
1042
  async (params) => {
1951
1043
  const result = await runMcpTool2(
@@ -1959,7 +1051,7 @@ function registerTools(server, options) {
1959
1051
  "apply_template",
1960
1052
  {
1961
1053
  description: "Replace {{placeholder}} tokens with provided values (mail merge)",
1962
- inputSchema: ApplyTemplateSchema.shape
1054
+ inputSchema: schemas_exports.ApplyTemplateSchema.shape
1963
1055
  },
1964
1056
  async (params) => {
1965
1057
  const result = await runMcpTool2(
@@ -1973,7 +1065,7 @@ function registerTools(server, options) {
1973
1065
  "get_metadata",
1974
1066
  {
1975
1067
  description: "Get presentation metadata (title, author, keywords, custom properties)",
1976
- inputSchema: GetMetadataSchema.shape
1068
+ inputSchema: schemas_exports.GetMetadataSchema.shape
1977
1069
  },
1978
1070
  async (params) => {
1979
1071
  const result = await runMcpTool2(params.filePath, (ctx) => getMetadata(ctx));
@@ -1984,7 +1076,7 @@ function registerTools(server, options) {
1984
1076
  "update_metadata",
1985
1077
  {
1986
1078
  description: "Update presentation metadata (title, author, company, custom properties)",
1987
- inputSchema: UpdateMetadataSchema.shape
1079
+ inputSchema: schemas_exports.UpdateMetadataSchema.shape
1988
1080
  },
1989
1081
  async (params) => {
1990
1082
  const result = await runMcpTool2(
@@ -1998,7 +1090,7 @@ function registerTools(server, options) {
1998
1090
  "manage_sections",
1999
1091
  {
2000
1092
  description: "List, add, remove, reorder sections or move slides between sections",
2001
- inputSchema: ManageSectionsSchema.shape
1093
+ inputSchema: schemas_exports.ManageSectionsSchema.shape
2002
1094
  },
2003
1095
  async (params) => {
2004
1096
  const result = await runMcpTool2(
@@ -2012,7 +1104,7 @@ function registerTools(server, options) {
2012
1104
  "export_to_svg",
2013
1105
  {
2014
1106
  description: "Export all or specific slides to SVG strings",
2015
- inputSchema: ExportToSvgSchema.shape
1107
+ inputSchema: schemas_exports.ExportToSvgSchema.shape
2016
1108
  },
2017
1109
  async (params) => {
2018
1110
  const result = await runMcpTool2(
@@ -2026,7 +1118,7 @@ function registerTools(server, options) {
2026
1118
  "export_slide_svg",
2027
1119
  {
2028
1120
  description: "Export a single slide to SVG",
2029
- inputSchema: ExportSlideSvgSchema.shape
1121
+ inputSchema: schemas_exports.ExportSlideSvgSchema.shape
2030
1122
  },
2031
1123
  async (params) => {
2032
1124
  const result = await runMcpTool2(
@@ -2040,7 +1132,7 @@ function registerTools(server, options) {
2040
1132
  "export_to_json",
2041
1133
  {
2042
1134
  description: "Export the presentation to the portable pptx-viewer-json document format (self-contained, binary assets embedded as base64)",
2043
- inputSchema: ExportToJsonSchema.shape
1135
+ inputSchema: schemas_exports.ExportToJsonSchema.shape
2044
1136
  },
2045
1137
  async (params) => {
2046
1138
  const result = await runMcpTool2(
@@ -2054,7 +1146,7 @@ function registerTools(server, options) {
2054
1146
  "import_from_json",
2055
1147
  {
2056
1148
  description: "Replace the presentation content with a deck imported from a pptx-viewer-json document",
2057
- inputSchema: ImportFromJsonSchema.shape
1149
+ inputSchema: schemas_exports.ImportFromJsonSchema.shape
2058
1150
  },
2059
1151
  async (params) => {
2060
1152
  const result = await runMcpTool2(
@@ -2068,7 +1160,7 @@ function registerTools(server, options) {
2068
1160
  "manage_hyperlinks",
2069
1161
  {
2070
1162
  description: "List, set, or remove hyperlinks/actions on elements",
2071
- inputSchema: ManageHyperlinksSchema.shape
1163
+ inputSchema: schemas_exports.ManageHyperlinksSchema.shape
2072
1164
  },
2073
1165
  async (params) => {
2074
1166
  const result = await runMcpTool2(
@@ -2082,7 +1174,7 @@ function registerTools(server, options) {
2082
1174
  "replace_geometry",
2083
1175
  {
2084
1176
  description: "Replace a shape element geometry with a preset or custom SVG path",
2085
- inputSchema: ReplaceGeometrySchema.shape
1177
+ inputSchema: schemas_exports.ReplaceGeometrySchema.shape
2086
1178
  },
2087
1179
  async (params) => {
2088
1180
  const result = await runMcpTool2(
@@ -2099,7 +1191,7 @@ function registerTools(server, options) {
2099
1191
  "set_element_lock",
2100
1192
  {
2101
1193
  description: "Lock or unlock an element (prevent move, resize, rotation, selection, text edit)",
2102
- inputSchema: SetElementLockSchema.shape
1194
+ inputSchema: schemas_exports.SetElementLockSchema.shape
2103
1195
  },
2104
1196
  async (params) => {
2105
1197
  const result = await runMcpTool2(
@@ -2113,7 +1205,7 @@ function registerTools(server, options) {
2113
1205
  "validate_presentation",
2114
1206
  {
2115
1207
  description: "Validate PPTX structural integrity (content types, relationships, XML)",
2116
- inputSchema: ValidatePresentationSchema.shape
1208
+ inputSchema: schemas_exports.ValidatePresentationSchema.shape
2117
1209
  },
2118
1210
  async (params) => {
2119
1211
  const { readFile: readFile2 } = await import('fs/promises');
@@ -2127,7 +1219,7 @@ function registerTools(server, options) {
2127
1219
  "repair_presentation",
2128
1220
  {
2129
1221
  description: "Auto-repair common PPTX structural issues",
2130
- inputSchema: RepairPresentationSchema.shape
1222
+ inputSchema: schemas_exports.RepairPresentationSchema.shape
2131
1223
  },
2132
1224
  async (params) => {
2133
1225
  const { readFile: readFile2, writeFile: writeFile2 } = await import('fs/promises');
@@ -2146,7 +1238,7 @@ function registerTools(server, options) {
2146
1238
  "get_presentation_properties",
2147
1239
  {
2148
1240
  description: "Get slideshow properties (show type, loop, advance mode, slide range)",
2149
- inputSchema: GetPresentationPropertiesSchema.shape
1241
+ inputSchema: schemas_exports.GetPresentationPropertiesSchema.shape
2150
1242
  },
2151
1243
  async (params) => {
2152
1244
  const result = await runMcpTool2(
@@ -2160,7 +1252,7 @@ function registerTools(server, options) {
2160
1252
  "update_presentation_properties",
2161
1253
  {
2162
1254
  description: "Update slideshow properties (show type, loop, advance mode, pen color)",
2163
- inputSchema: UpdatePresentationPropertiesSchema.shape
1255
+ inputSchema: schemas_exports.UpdatePresentationPropertiesSchema.shape
2164
1256
  },
2165
1257
  async (params) => {
2166
1258
  const result = await runMcpTool2(
@@ -2174,7 +1266,7 @@ function registerTools(server, options) {
2174
1266
  "get_layouts",
2175
1267
  {
2176
1268
  description: "List available slide layouts from the presentation masters",
2177
- inputSchema: GetLayoutsSchema.shape
1269
+ inputSchema: schemas_exports.GetLayoutsSchema.shape
2178
1270
  },
2179
1271
  async (params) => {
2180
1272
  const result = await runMcpTool2(params.filePath, (ctx) => getLayouts(ctx));
@@ -2185,7 +1277,7 @@ function registerTools(server, options) {
2185
1277
  "apply_layout",
2186
1278
  {
2187
1279
  description: "Apply a slide layout to a specific slide",
2188
- inputSchema: ApplyLayoutSchema.shape
1280
+ inputSchema: schemas_exports.ApplyLayoutSchema.shape
2189
1281
  },
2190
1282
  async (params) => {
2191
1283
  const result = await runMcpTool2(
@@ -2199,7 +1291,7 @@ function registerTools(server, options) {
2199
1291
  "ole_get_content",
2200
1292
  {
2201
1293
  description: "Inspect an embedded OLE object's editable content: resolved kind, plus the sheet grid, paragraph list, or nested-deck slide summaries, whichever applies",
2202
- inputSchema: GetOleContentSchema.shape
1294
+ inputSchema: schemas_exports.GetOleContentSchema.shape
2203
1295
  },
2204
1296
  async (params) => {
2205
1297
  const result = await runMcpTool2(
@@ -2213,7 +1305,7 @@ function registerTools(server, options) {
2213
1305
  "ole_set_sheet_cell",
2214
1306
  {
2215
1307
  description: "Edit one cell of an embedded Excel OLE object's first worksheet",
2216
- inputSchema: SetOleSheetCellSchema.shape
1308
+ inputSchema: schemas_exports.SetOleSheetCellSchema.shape
2217
1309
  },
2218
1310
  async (params) => {
2219
1311
  const result = await runMcpTool2(
@@ -2227,7 +1319,7 @@ function registerTools(server, options) {
2227
1319
  "ole_set_document_paragraph",
2228
1320
  {
2229
1321
  description: "Replace one paragraph's text in an embedded Word (.docx or legacy .doc) OLE object",
2230
- inputSchema: SetOleDocumentParagraphSchema.shape
1322
+ inputSchema: schemas_exports.SetOleDocumentParagraphSchema.shape
2231
1323
  },
2232
1324
  async (params) => {
2233
1325
  const result = await runMcpTool2(
@@ -2241,7 +1333,7 @@ function registerTools(server, options) {
2241
1333
  "ole_set_deck_slide_title",
2242
1334
  {
2243
1335
  description: "Edit one text-bearing shape on one slide of an embedded nested-deck (PowerPoint) OLE object, via a full load/save round-trip through the nested deck (call ole_get_content first to discover each slide's elementIds)",
2244
- inputSchema: SetOleDeckSlideTitleSchema.shape
1336
+ inputSchema: schemas_exports.SetOleDeckSlideTitleSchema.shape
2245
1337
  },
2246
1338
  async (params) => {
2247
1339
  const result = await runMcpTool2(
@@ -2255,7 +1347,7 @@ function registerTools(server, options) {
2255
1347
  "ole_replace_file",
2256
1348
  {
2257
1349
  description: `Replace an embedded OLE object's payload wholesale with an arbitrary file; works for any OLE kind, including a generic "Package" object or an unsupported format`,
2258
- inputSchema: ReplaceOleFileSchema.shape
1350
+ inputSchema: schemas_exports.ReplaceOleFileSchema.shape
2259
1351
  },
2260
1352
  async (params) => {
2261
1353
  const result = await runMcpTool2(
@@ -2269,7 +1361,7 @@ function registerTools(server, options) {
2269
1361
  "ole_set_object_name",
2270
1362
  {
2271
1363
  description: "Rename an OLE object's Object Name (p:oleObj/@name); regenerates the baked-in icon caption too when the object is displayed as an icon",
2272
- inputSchema: SetOleObjectNameSchema.shape
1364
+ inputSchema: schemas_exports.SetOleObjectNameSchema.shape
2273
1365
  },
2274
1366
  async (params) => {
2275
1367
  const result = await runMcpTool2(