pptx-viewer-mcp 1.1.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 +146 -0
- package/dist/codec/index.d.mts +26 -0
- package/dist/codec/index.d.ts +26 -0
- package/dist/codec/index.js +241 -0
- package/dist/codec/index.mjs +238 -0
- package/dist/index.d.mts +480 -0
- package/dist/index.d.ts +480 -0
- package/dist/index.js +1581 -0
- package/dist/index.mjs +1547 -0
- package/dist/mcp/index.d.mts +1 -0
- package/dist/mcp/index.d.ts +1 -0
- package/dist/mcp/index.js +2339 -0
- package/dist/mcp/index.mjs +2337 -0
- package/dist/schemas/index.d.mts +728 -0
- package/dist/schemas/index.d.ts +728 -0
- package/dist/schemas/index.js +285 -0
- package/dist/schemas/index.mjs +259 -0
- package/package.json +87 -0
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,480 @@
|
|
|
1
|
+
import { PptxData, PptxElement, PptxSlide, ShapeStyle } from 'pptx-viewer-core';
|
|
2
|
+
import { Doc } from 'yjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Platform-agnostic context passed to every tool function.
|
|
6
|
+
* No Electron, no RoomManager, no framework dependencies.
|
|
7
|
+
*/
|
|
8
|
+
interface ToolContext {
|
|
9
|
+
/** Current presentation data (parsed PptxData from pptx-viewer-core). */
|
|
10
|
+
pptxData: PptxData;
|
|
11
|
+
/** Optional: resolve external image paths to binary data. */
|
|
12
|
+
resolveImage?: (path: string) => Promise<Uint8Array>;
|
|
13
|
+
/** Optional: resolve external media paths to binary data. */
|
|
14
|
+
resolveMedia?: (path: string) => Promise<Uint8Array>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Every tool function returns this.
|
|
18
|
+
* The consumer decides what to do with the mutated pptxData.
|
|
19
|
+
*/
|
|
20
|
+
interface ToolResult<T = unknown> {
|
|
21
|
+
/** The (potentially mutated) presentation data. */
|
|
22
|
+
pptxData: PptxData;
|
|
23
|
+
/** Tool-specific return value (e.g., slide info, element ID, search results). */
|
|
24
|
+
result: T;
|
|
25
|
+
/** Whether pptxData was modified (signals need to save). */
|
|
26
|
+
dirty: boolean;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Abstraction for Y.Doc room management.
|
|
31
|
+
* fz-electron implements this with RoomManager.
|
|
32
|
+
*/
|
|
33
|
+
interface CollaborationProvider {
|
|
34
|
+
/** Get an active collaboration room for a file path, or null. */
|
|
35
|
+
getRoom(filePath: string): {
|
|
36
|
+
ydoc: Doc;
|
|
37
|
+
} | null;
|
|
38
|
+
/** Get the format codec for a file path, or null. */
|
|
39
|
+
getCodec(filePath: string): {
|
|
40
|
+
hydrate(ydoc: Doc, bytes: Uint8Array, origin?: string): Promise<void>;
|
|
41
|
+
dehydrate(ydoc: Doc): Promise<Uint8Array>;
|
|
42
|
+
} | null;
|
|
43
|
+
/** Create an agent origin tag for undo isolation. */
|
|
44
|
+
agentOrigin(name: string): string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Abstraction for file system access.
|
|
48
|
+
* fz-electron implements this with window.electron.files.
|
|
49
|
+
* MCP server implements this with node:fs.
|
|
50
|
+
*/
|
|
51
|
+
interface FileSystemProvider {
|
|
52
|
+
readFile(path: string): Promise<Uint8Array>;
|
|
53
|
+
writeFile(path: string, data: Uint8Array): Promise<void>;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Abstraction for updating an open file viewer.
|
|
57
|
+
* Only fz-electron implements this.
|
|
58
|
+
*/
|
|
59
|
+
interface ViewerProvider {
|
|
60
|
+
replaceContent(filePath: string, bytes: Uint8Array, options: {
|
|
61
|
+
markDirty: boolean;
|
|
62
|
+
mimeType?: string;
|
|
63
|
+
}): void;
|
|
64
|
+
openFile(filePath: string): Promise<void>;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Full execution context for running tools with collaboration support.
|
|
68
|
+
*/
|
|
69
|
+
interface ExecutionContext {
|
|
70
|
+
/** File system for reading/writing PPTX files. */
|
|
71
|
+
filesystem: FileSystemProvider;
|
|
72
|
+
/** Optional collaboration provider for Y.Doc routing. */
|
|
73
|
+
collaboration?: CollaborationProvider;
|
|
74
|
+
/** Optional viewer integration for live document updates. */
|
|
75
|
+
viewer?: ViewerProvider;
|
|
76
|
+
/** Agent name for collaboration origin tracking. */
|
|
77
|
+
agentName?: string;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Load PptxData from a file, checking collaboration rooms first.
|
|
82
|
+
* If a Y.Doc room is active the current in-memory state is dehydrated
|
|
83
|
+
* so that unsaved edits are included in the tool's view of the document.
|
|
84
|
+
*/
|
|
85
|
+
declare function loadPresentation(filePath: string, execCtx: ExecutionContext): Promise<{
|
|
86
|
+
pptxData: PptxData;
|
|
87
|
+
rawBytes: Uint8Array;
|
|
88
|
+
}>;
|
|
89
|
+
/**
|
|
90
|
+
* Save mutated PptxData back — routes through collaboration Y.Doc or disk.
|
|
91
|
+
*/
|
|
92
|
+
declare function savePresentation(filePath: string, pptxData: PptxData, rawBytes: Uint8Array, execCtx: ExecutionContext): Promise<{
|
|
93
|
+
savedToDisk: boolean;
|
|
94
|
+
routedThroughCollaboration: boolean;
|
|
95
|
+
}>;
|
|
96
|
+
/**
|
|
97
|
+
* Execute a pure tool function with full collaboration-aware load/save pipeline.
|
|
98
|
+
* Handles dehydrate-from-room → tool → hydrate-back-to-room routing automatically.
|
|
99
|
+
*/
|
|
100
|
+
declare function executeToolWithContext<T>(filePath: string, execCtx: ExecutionContext, toolFn: (ctx: ToolContext) => ToolResult<T> | Promise<ToolResult<T>>): Promise<T & {
|
|
101
|
+
savedToDisk?: boolean;
|
|
102
|
+
routedThroughCollaboration?: boolean;
|
|
103
|
+
}>;
|
|
104
|
+
|
|
105
|
+
interface GetSlideResult {
|
|
106
|
+
slideIndex: number;
|
|
107
|
+
slideNumber: number;
|
|
108
|
+
hidden: boolean;
|
|
109
|
+
layoutName?: string;
|
|
110
|
+
backgroundColor?: string;
|
|
111
|
+
notes: string;
|
|
112
|
+
commentCount: number;
|
|
113
|
+
elements: Record<string, unknown>[];
|
|
114
|
+
}
|
|
115
|
+
declare function getSlide(ctx: ToolContext, params: {
|
|
116
|
+
slideIndex: number;
|
|
117
|
+
}): ToolResult<GetSlideResult>;
|
|
118
|
+
interface AddSlideParams {
|
|
119
|
+
insertAfterIndex?: number;
|
|
120
|
+
backgroundColor?: string;
|
|
121
|
+
}
|
|
122
|
+
interface AddSlideResult {
|
|
123
|
+
newSlideIndex: number;
|
|
124
|
+
slideCount: number;
|
|
125
|
+
}
|
|
126
|
+
declare function addSlide(ctx: ToolContext, params: AddSlideParams): ToolResult<AddSlideResult>;
|
|
127
|
+
interface DeleteSlidesParams {
|
|
128
|
+
slideIndexes: number[];
|
|
129
|
+
}
|
|
130
|
+
interface DeleteSlidesResult {
|
|
131
|
+
deletedCount: number;
|
|
132
|
+
slideCount: number;
|
|
133
|
+
}
|
|
134
|
+
declare function deleteSlides(ctx: ToolContext, params: DeleteSlidesParams): ToolResult<DeleteSlidesResult>;
|
|
135
|
+
interface ReorderSlidesParams {
|
|
136
|
+
newOrder: number[];
|
|
137
|
+
}
|
|
138
|
+
declare function reorderSlides(ctx: ToolContext, params: ReorderSlidesParams): ToolResult<{
|
|
139
|
+
slideCount: number;
|
|
140
|
+
}>;
|
|
141
|
+
interface DuplicateSlideParams {
|
|
142
|
+
slideIndex: number;
|
|
143
|
+
targetIndex?: number;
|
|
144
|
+
}
|
|
145
|
+
declare function duplicateSlide(ctx: ToolContext, params: DuplicateSlideParams): ToolResult<{
|
|
146
|
+
newSlideIndex: number;
|
|
147
|
+
slideCount: number;
|
|
148
|
+
}>;
|
|
149
|
+
interface UpdateSlidePropertiesParams {
|
|
150
|
+
slideIndex: number;
|
|
151
|
+
backgroundColor?: string;
|
|
152
|
+
backgroundGradient?: string;
|
|
153
|
+
backgroundImage?: string;
|
|
154
|
+
notes?: string;
|
|
155
|
+
hidden?: boolean;
|
|
156
|
+
}
|
|
157
|
+
declare function updateSlideProperties(ctx: ToolContext, params: UpdateSlidePropertiesParams): ToolResult<{
|
|
158
|
+
slideIndex: number;
|
|
159
|
+
}>;
|
|
160
|
+
interface SetSlideTransitionParams {
|
|
161
|
+
slideIndex: number;
|
|
162
|
+
type: string;
|
|
163
|
+
durationMs?: number;
|
|
164
|
+
direction?: string;
|
|
165
|
+
advanceOnClick?: boolean;
|
|
166
|
+
advanceAfterMs?: number;
|
|
167
|
+
}
|
|
168
|
+
declare function setSlideTransition(ctx: ToolContext, params: SetSlideTransitionParams): ToolResult<{
|
|
169
|
+
slideIndex: number;
|
|
170
|
+
transitionType: string;
|
|
171
|
+
}>;
|
|
172
|
+
interface SetCanvasSizeParams {
|
|
173
|
+
width: number;
|
|
174
|
+
height: number;
|
|
175
|
+
}
|
|
176
|
+
declare function setCanvasSize(ctx: ToolContext, params: SetCanvasSizeParams): ToolResult<{
|
|
177
|
+
canvasWidth: number;
|
|
178
|
+
canvasHeight: number;
|
|
179
|
+
}>;
|
|
180
|
+
|
|
181
|
+
declare function generateElementId(): string;
|
|
182
|
+
declare function generateSlideId(): string;
|
|
183
|
+
/** Build a concise text representation of a slide element for tool output. */
|
|
184
|
+
declare function describeElement(el: PptxElement): Record<string, unknown>;
|
|
185
|
+
/** Extract text from a slide's elements for search purposes. */
|
|
186
|
+
declare function extractSlideText(slide: PptxSlide): string;
|
|
187
|
+
/** Validate slideIndex is within range, return error string or null. */
|
|
188
|
+
declare function validateSlideIndex(slideIndex: number, slideCount: number): string | null;
|
|
189
|
+
|
|
190
|
+
interface AddElementParams {
|
|
191
|
+
slideIndex: number;
|
|
192
|
+
type: 'text' | 'shape' | 'image' | 'table' | 'connector';
|
|
193
|
+
x?: number;
|
|
194
|
+
y?: number;
|
|
195
|
+
width?: number;
|
|
196
|
+
height?: number;
|
|
197
|
+
text?: string;
|
|
198
|
+
fontSize?: number;
|
|
199
|
+
fontFamily?: string;
|
|
200
|
+
fontColor?: string;
|
|
201
|
+
bold?: boolean;
|
|
202
|
+
italic?: boolean;
|
|
203
|
+
underline?: boolean;
|
|
204
|
+
alignment?: 'left' | 'center' | 'right' | 'justify';
|
|
205
|
+
shapeType?: string;
|
|
206
|
+
fillColor?: string;
|
|
207
|
+
strokeColor?: string;
|
|
208
|
+
strokeWidth?: number;
|
|
209
|
+
imageData?: string;
|
|
210
|
+
altText?: string;
|
|
211
|
+
rows?: number;
|
|
212
|
+
columns?: number;
|
|
213
|
+
cellData?: string[][];
|
|
214
|
+
headerRow?: boolean;
|
|
215
|
+
startArrow?: string;
|
|
216
|
+
endArrow?: string;
|
|
217
|
+
startShapeId?: string;
|
|
218
|
+
endShapeId?: string;
|
|
219
|
+
}
|
|
220
|
+
interface AddElementResult {
|
|
221
|
+
elementId: string;
|
|
222
|
+
slideIndex: number;
|
|
223
|
+
}
|
|
224
|
+
declare function addElement(ctx: ToolContext, params: AddElementParams): ToolResult<AddElementResult>;
|
|
225
|
+
interface UpdateElementParams {
|
|
226
|
+
slideIndex: number;
|
|
227
|
+
elementId: string;
|
|
228
|
+
x?: number;
|
|
229
|
+
y?: number;
|
|
230
|
+
width?: number;
|
|
231
|
+
height?: number;
|
|
232
|
+
rotation?: number;
|
|
233
|
+
text?: string;
|
|
234
|
+
fontSize?: number;
|
|
235
|
+
fontFamily?: string;
|
|
236
|
+
fontColor?: string;
|
|
237
|
+
bold?: boolean;
|
|
238
|
+
italic?: boolean;
|
|
239
|
+
underline?: boolean;
|
|
240
|
+
alignment?: 'left' | 'center' | 'right' | 'justify';
|
|
241
|
+
fillColor?: string;
|
|
242
|
+
strokeColor?: string;
|
|
243
|
+
strokeWidth?: number;
|
|
244
|
+
opacity?: number;
|
|
245
|
+
hidden?: boolean;
|
|
246
|
+
flipH?: boolean;
|
|
247
|
+
flipV?: boolean;
|
|
248
|
+
}
|
|
249
|
+
declare function updateElement(ctx: ToolContext, params: UpdateElementParams): ToolResult<{
|
|
250
|
+
elementId: string;
|
|
251
|
+
}>;
|
|
252
|
+
interface DeleteElementsParams {
|
|
253
|
+
slideIndex: number;
|
|
254
|
+
elementIds: string[];
|
|
255
|
+
}
|
|
256
|
+
declare function deleteElements(ctx: ToolContext, params: DeleteElementsParams): ToolResult<{
|
|
257
|
+
deletedCount: number;
|
|
258
|
+
}>;
|
|
259
|
+
interface ArrangeElementsParams {
|
|
260
|
+
slideIndex: number;
|
|
261
|
+
action: 'align' | 'reorderLayer';
|
|
262
|
+
elementIds?: string[];
|
|
263
|
+
alignment?: 'left' | 'right' | 'top' | 'bottom' | 'centerH' | 'centerV';
|
|
264
|
+
elementId?: string;
|
|
265
|
+
layerAction?: 'bringToFront' | 'sendToBack' | 'bringForward' | 'sendBackward';
|
|
266
|
+
}
|
|
267
|
+
declare function arrangeElements(ctx: ToolContext, params: ArrangeElementsParams): ToolResult<{
|
|
268
|
+
slideIndex: number;
|
|
269
|
+
}>;
|
|
270
|
+
interface CloneElementParams {
|
|
271
|
+
slideIndex: number;
|
|
272
|
+
elementId: string;
|
|
273
|
+
targetSlideIndexes?: number[];
|
|
274
|
+
offsetX?: number;
|
|
275
|
+
offsetY?: number;
|
|
276
|
+
}
|
|
277
|
+
interface CloneElementResult {
|
|
278
|
+
clonedIds: string[];
|
|
279
|
+
}
|
|
280
|
+
declare function cloneElement(ctx: ToolContext, params: CloneElementParams): ToolResult<CloneElementResult>;
|
|
281
|
+
interface SetElementAnimationParams {
|
|
282
|
+
slideIndex: number;
|
|
283
|
+
elementId: string;
|
|
284
|
+
entrance?: string;
|
|
285
|
+
exit?: string;
|
|
286
|
+
durationMs?: number;
|
|
287
|
+
delayMs?: number;
|
|
288
|
+
order?: number;
|
|
289
|
+
}
|
|
290
|
+
declare function setElementAnimation(ctx: ToolContext, params: SetElementAnimationParams): ToolResult<{
|
|
291
|
+
elementId: string;
|
|
292
|
+
}>;
|
|
293
|
+
interface GroupElementsParams {
|
|
294
|
+
slideIndex: number;
|
|
295
|
+
elementIds: string[];
|
|
296
|
+
}
|
|
297
|
+
interface GroupElementsResult {
|
|
298
|
+
groupId: string;
|
|
299
|
+
}
|
|
300
|
+
declare function groupElements(ctx: ToolContext, params: GroupElementsParams): ToolResult<GroupElementsResult>;
|
|
301
|
+
interface UngroupElementsParams {
|
|
302
|
+
slideIndex: number;
|
|
303
|
+
groupElementId: string;
|
|
304
|
+
}
|
|
305
|
+
interface UngroupElementsResult {
|
|
306
|
+
restoredIds: string[];
|
|
307
|
+
}
|
|
308
|
+
declare function ungroupElements(ctx: ToolContext, params: UngroupElementsParams): ToolResult<UngroupElementsResult>;
|
|
309
|
+
interface BatchUpdateElementsParams {
|
|
310
|
+
slideIndex: number;
|
|
311
|
+
elementIds: string[];
|
|
312
|
+
x?: number;
|
|
313
|
+
y?: number;
|
|
314
|
+
width?: number;
|
|
315
|
+
height?: number;
|
|
316
|
+
rotation?: number;
|
|
317
|
+
opacity?: number;
|
|
318
|
+
hidden?: boolean;
|
|
319
|
+
}
|
|
320
|
+
declare function batchUpdateElements(ctx: ToolContext, params: BatchUpdateElementsParams): ToolResult<{
|
|
321
|
+
updatedCount: number;
|
|
322
|
+
}>;
|
|
323
|
+
|
|
324
|
+
interface UpdateTableCellsParams {
|
|
325
|
+
slideIndex: number;
|
|
326
|
+
elementId: string;
|
|
327
|
+
cells: Array<{
|
|
328
|
+
row: number;
|
|
329
|
+
col: number;
|
|
330
|
+
text: string;
|
|
331
|
+
}>;
|
|
332
|
+
}
|
|
333
|
+
declare function updateTableCells(ctx: ToolContext, params: UpdateTableCellsParams): ToolResult<{
|
|
334
|
+
updatedCount: number;
|
|
335
|
+
}>;
|
|
336
|
+
interface ManageTableStructureParams {
|
|
337
|
+
slideIndex: number;
|
|
338
|
+
elementId: string;
|
|
339
|
+
action: 'insertRow' | 'deleteRow' | 'insertColumn' | 'deleteColumn';
|
|
340
|
+
position?: number;
|
|
341
|
+
referenceIndex?: number;
|
|
342
|
+
cellTexts?: string[];
|
|
343
|
+
}
|
|
344
|
+
declare function manageTableStructure(ctx: ToolContext, params: ManageTableStructureParams): ToolResult<{
|
|
345
|
+
rowCount: number;
|
|
346
|
+
columnCount: number;
|
|
347
|
+
}>;
|
|
348
|
+
|
|
349
|
+
interface UpdateElementStyleParams {
|
|
350
|
+
slideIndex: number;
|
|
351
|
+
elementId: string;
|
|
352
|
+
fillColor?: string;
|
|
353
|
+
fillMode?: ShapeStyle['fillMode'];
|
|
354
|
+
fillGradientStops?: Array<{
|
|
355
|
+
color: string;
|
|
356
|
+
position: number;
|
|
357
|
+
opacity?: number;
|
|
358
|
+
}>;
|
|
359
|
+
fillGradientAngle?: number;
|
|
360
|
+
fillGradientType?: 'linear' | 'radial';
|
|
361
|
+
fillOpacity?: number;
|
|
362
|
+
strokeColor?: string;
|
|
363
|
+
strokeWidth?: number;
|
|
364
|
+
strokeDash?: ShapeStyle['strokeDash'];
|
|
365
|
+
strokeOpacity?: number;
|
|
366
|
+
shadowColor?: string;
|
|
367
|
+
shadowBlur?: number;
|
|
368
|
+
shadowOffsetX?: number;
|
|
369
|
+
shadowOffsetY?: number;
|
|
370
|
+
shadowOpacity?: number;
|
|
371
|
+
glowColor?: string;
|
|
372
|
+
glowRadius?: number;
|
|
373
|
+
glowOpacity?: number;
|
|
374
|
+
softEdgeRadius?: number;
|
|
375
|
+
cropLeft?: number;
|
|
376
|
+
cropTop?: number;
|
|
377
|
+
cropRight?: number;
|
|
378
|
+
cropBottom?: number;
|
|
379
|
+
brightness?: number;
|
|
380
|
+
contrast?: number;
|
|
381
|
+
grayscale?: boolean;
|
|
382
|
+
altText?: string;
|
|
383
|
+
}
|
|
384
|
+
declare function updateElementStyle(ctx: ToolContext, params: UpdateElementStyleParams): ToolResult<{
|
|
385
|
+
elementId: string;
|
|
386
|
+
}>;
|
|
387
|
+
interface AccessibilityIssue {
|
|
388
|
+
slideIndex: number;
|
|
389
|
+
elementId?: string;
|
|
390
|
+
severity: 'error' | 'warning' | 'info';
|
|
391
|
+
message: string;
|
|
392
|
+
}
|
|
393
|
+
interface AccessibilityCheckResult {
|
|
394
|
+
slideCount: number;
|
|
395
|
+
totalIssues: number;
|
|
396
|
+
errorCount: number;
|
|
397
|
+
warningCount: number;
|
|
398
|
+
infoCount: number;
|
|
399
|
+
issues: AccessibilityIssue[];
|
|
400
|
+
}
|
|
401
|
+
declare function runAccessibilityCheck(ctx: ToolContext): ToolResult<AccessibilityCheckResult>;
|
|
402
|
+
|
|
403
|
+
interface FindTextParams {
|
|
404
|
+
query: string;
|
|
405
|
+
useRegex?: boolean;
|
|
406
|
+
caseSensitive?: boolean;
|
|
407
|
+
slideIndexes?: number[];
|
|
408
|
+
}
|
|
409
|
+
interface TextMatch {
|
|
410
|
+
slideIndex: number;
|
|
411
|
+
elementId: string;
|
|
412
|
+
elementType: string;
|
|
413
|
+
matchedText: string;
|
|
414
|
+
context: string;
|
|
415
|
+
}
|
|
416
|
+
interface FindTextResult {
|
|
417
|
+
query: string;
|
|
418
|
+
matchCount: number;
|
|
419
|
+
matches: TextMatch[];
|
|
420
|
+
}
|
|
421
|
+
declare function findText(ctx: ToolContext, params: FindTextParams): ToolResult<FindTextResult>;
|
|
422
|
+
interface ReplaceTextParams {
|
|
423
|
+
query: string;
|
|
424
|
+
replacement: string;
|
|
425
|
+
useRegex?: boolean;
|
|
426
|
+
caseSensitive?: boolean;
|
|
427
|
+
slideIndexes?: number[];
|
|
428
|
+
}
|
|
429
|
+
interface ReplaceTextResult {
|
|
430
|
+
query: string;
|
|
431
|
+
replacement: string;
|
|
432
|
+
replacementCount: number;
|
|
433
|
+
}
|
|
434
|
+
declare function replaceText(ctx: ToolContext, params: ReplaceTextParams): ToolResult<ReplaceTextResult>;
|
|
435
|
+
interface ManageCommentsParams {
|
|
436
|
+
action: 'list' | 'add' | 'delete' | 'resolve';
|
|
437
|
+
slideIndex?: number;
|
|
438
|
+
text?: string;
|
|
439
|
+
author?: string;
|
|
440
|
+
commentId?: string;
|
|
441
|
+
resolved?: boolean;
|
|
442
|
+
includeResolved?: boolean;
|
|
443
|
+
}
|
|
444
|
+
interface CommentInfo {
|
|
445
|
+
id: string;
|
|
446
|
+
slideIndex: number;
|
|
447
|
+
text: string;
|
|
448
|
+
author?: string;
|
|
449
|
+
createdAt?: string;
|
|
450
|
+
resolved?: boolean;
|
|
451
|
+
}
|
|
452
|
+
interface ManageCommentsResult {
|
|
453
|
+
action: string;
|
|
454
|
+
comments?: CommentInfo[];
|
|
455
|
+
commentId?: string;
|
|
456
|
+
count?: number;
|
|
457
|
+
}
|
|
458
|
+
declare function manageComments(ctx: ToolContext, params: ManageCommentsParams): ToolResult<ManageCommentsResult>;
|
|
459
|
+
|
|
460
|
+
interface ConvertToMarkdownParams {
|
|
461
|
+
outputDir?: string;
|
|
462
|
+
mediaFolderName?: string;
|
|
463
|
+
includeMetadata?: boolean;
|
|
464
|
+
slideRange?: {
|
|
465
|
+
start?: number;
|
|
466
|
+
end?: number;
|
|
467
|
+
};
|
|
468
|
+
includeSpeakerNotes?: boolean;
|
|
469
|
+
semanticMode?: boolean;
|
|
470
|
+
sourceName?: string;
|
|
471
|
+
}
|
|
472
|
+
interface ConvertToMarkdownResult {
|
|
473
|
+
markdown: string;
|
|
474
|
+
slidesConverted: number;
|
|
475
|
+
totalSlides: number;
|
|
476
|
+
imagesExtracted: number;
|
|
477
|
+
}
|
|
478
|
+
declare function convertToMarkdown(ctx: ToolContext, params: ConvertToMarkdownParams): Promise<ToolResult<ConvertToMarkdownResult>>;
|
|
479
|
+
|
|
480
|
+
export { type AccessibilityCheckResult, type AccessibilityIssue, type AddElementParams, type AddElementResult, type AddSlideParams, type AddSlideResult, type ArrangeElementsParams, type BatchUpdateElementsParams, type CloneElementParams, type CloneElementResult, type CollaborationProvider, type CommentInfo, type ConvertToMarkdownParams, type ConvertToMarkdownResult, type DeleteElementsParams, type DeleteSlidesParams, type DeleteSlidesResult, type DuplicateSlideParams, type ExecutionContext, type FileSystemProvider, type FindTextParams, type FindTextResult, type GetSlideResult, type GroupElementsParams, type GroupElementsResult, type ManageCommentsParams, type ManageCommentsResult, type ManageTableStructureParams, type ReorderSlidesParams, type ReplaceTextParams, type ReplaceTextResult, type SetCanvasSizeParams, type SetElementAnimationParams, type SetSlideTransitionParams, type TextMatch, type ToolContext, type ToolResult, type UngroupElementsParams, type UngroupElementsResult, type UpdateElementParams, type UpdateElementStyleParams, type UpdateSlidePropertiesParams, type UpdateTableCellsParams, type ViewerProvider, addElement, addSlide, arrangeElements, batchUpdateElements, cloneElement, convertToMarkdown, deleteElements, deleteSlides, describeElement, duplicateSlide, executeToolWithContext, extractSlideText, findText, generateElementId, generateSlideId, getSlide, groupElements, loadPresentation, manageComments, manageTableStructure, reorderSlides, replaceText, runAccessibilityCheck, savePresentation, setCanvasSize, setElementAnimation, setSlideTransition, ungroupElements, updateElement, updateElementStyle, updateSlideProperties, updateTableCells, validateSlideIndex };
|