@bendyline/docblocks-cli 2.0.0 → 2.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.
Files changed (114) hide show
  1. package/README.md +5 -16
  2. package/dist/index.d.ts +2 -2
  3. package/dist/index.js +7183 -18
  4. package/dist/index.js.map +1 -1
  5. package/package.json +9 -9
  6. package/dist/commands/build.d.ts +0 -14
  7. package/dist/commands/build.d.ts.map +0 -1
  8. package/dist/commands/build.js +0 -74
  9. package/dist/commands/build.js.map +0 -1
  10. package/dist/commands/convert.d.ts +0 -42
  11. package/dist/commands/convert.d.ts.map +0 -1
  12. package/dist/commands/convert.js +0 -339
  13. package/dist/commands/convert.js.map +0 -1
  14. package/dist/commands/init.d.ts +0 -3
  15. package/dist/commands/init.d.ts.map +0 -1
  16. package/dist/commands/init.js +0 -23
  17. package/dist/commands/init.js.map +0 -1
  18. package/dist/commands/mcp.d.ts +0 -12
  19. package/dist/commands/mcp.d.ts.map +0 -1
  20. package/dist/commands/mcp.js +0 -106
  21. package/dist/commands/mcp.js.map +0 -1
  22. package/dist/commands/parse.d.ts +0 -6
  23. package/dist/commands/parse.d.ts.map +0 -1
  24. package/dist/commands/parse.js +0 -38
  25. package/dist/commands/parse.js.map +0 -1
  26. package/dist/commands/serve.d.ts +0 -36
  27. package/dist/commands/serve.d.ts.map +0 -1
  28. package/dist/commands/serve.js +0 -347
  29. package/dist/commands/serve.js.map +0 -1
  30. package/dist/commands/themes.d.ts +0 -6
  31. package/dist/commands/themes.d.ts.map +0 -1
  32. package/dist/commands/themes.js +0 -15
  33. package/dist/commands/themes.js.map +0 -1
  34. package/dist/commands/transforms.d.ts +0 -6
  35. package/dist/commands/transforms.d.ts.map +0 -1
  36. package/dist/commands/transforms.js +0 -15
  37. package/dist/commands/transforms.js.map +0 -1
  38. package/dist/commands/video.d.ts +0 -38
  39. package/dist/commands/video.d.ts.map +0 -1
  40. package/dist/commands/video.js +0 -136
  41. package/dist/commands/video.js.map +0 -1
  42. package/dist/contained-file.d.ts +0 -8
  43. package/dist/contained-file.d.ts.map +0 -1
  44. package/dist/contained-file.js +0 -77
  45. package/dist/contained-file.js.map +0 -1
  46. package/dist/index.d.ts.map +0 -1
  47. package/dist/mcp/agentic-tools.d.ts +0 -16
  48. package/dist/mcp/agentic-tools.d.ts.map +0 -1
  49. package/dist/mcp/agentic-tools.js +0 -967
  50. package/dist/mcp/agentic-tools.js.map +0 -1
  51. package/dist/mcp/artifact-store.d.ts +0 -98
  52. package/dist/mcp/artifact-store.d.ts.map +0 -1
  53. package/dist/mcp/artifact-store.js +0 -542
  54. package/dist/mcp/artifact-store.js.map +0 -1
  55. package/dist/mcp/authority.d.ts +0 -53
  56. package/dist/mcp/authority.d.ts.map +0 -1
  57. package/dist/mcp/authority.js +0 -433
  58. package/dist/mcp/authority.js.map +0 -1
  59. package/dist/mcp/conversion-service.d.ts +0 -111
  60. package/dist/mcp/conversion-service.d.ts.map +0 -1
  61. package/dist/mcp/conversion-service.js +0 -512
  62. package/dist/mcp/conversion-service.js.map +0 -1
  63. package/dist/mcp/discovery-tools.d.ts +0 -4
  64. package/dist/mcp/discovery-tools.d.ts.map +0 -1
  65. package/dist/mcp/discovery-tools.js +0 -114
  66. package/dist/mcp/discovery-tools.js.map +0 -1
  67. package/dist/mcp/document-service.d.ts +0 -47
  68. package/dist/mcp/document-service.d.ts.map +0 -1
  69. package/dist/mcp/document-service.js +0 -424
  70. package/dist/mcp/document-service.js.map +0 -1
  71. package/dist/mcp/error-result.d.ts +0 -17
  72. package/dist/mcp/error-result.d.ts.map +0 -1
  73. package/dist/mcp/error-result.js +0 -82
  74. package/dist/mcp/error-result.js.map +0 -1
  75. package/dist/mcp/intelligence.d.ts +0 -15
  76. package/dist/mcp/intelligence.d.ts.map +0 -1
  77. package/dist/mcp/intelligence.js +0 -855
  78. package/dist/mcp/intelligence.js.map +0 -1
  79. package/dist/mcp/output-bounds.d.ts +0 -13
  80. package/dist/mcp/output-bounds.d.ts.map +0 -1
  81. package/dist/mcp/output-bounds.js +0 -61
  82. package/dist/mcp/output-bounds.js.map +0 -1
  83. package/dist/mcp/preview-service.d.ts +0 -54
  84. package/dist/mcp/preview-service.d.ts.map +0 -1
  85. package/dist/mcp/preview-service.js +0 -454
  86. package/dist/mcp/preview-service.js.map +0 -1
  87. package/dist/mcp/progress.d.ts +0 -18
  88. package/dist/mcp/progress.d.ts.map +0 -1
  89. package/dist/mcp/progress.js +0 -28
  90. package/dist/mcp/progress.js.map +0 -1
  91. package/dist/mcp/prompts.d.ts +0 -4
  92. package/dist/mcp/prompts.d.ts.map +0 -1
  93. package/dist/mcp/prompts.js +0 -124
  94. package/dist/mcp/prompts.js.map +0 -1
  95. package/dist/mcp/rendered-conversion.d.ts +0 -34
  96. package/dist/mcp/rendered-conversion.d.ts.map +0 -1
  97. package/dist/mcp/rendered-conversion.js +0 -364
  98. package/dist/mcp/rendered-conversion.js.map +0 -1
  99. package/dist/mcp/server.d.ts +0 -69
  100. package/dist/mcp/server.d.ts.map +0 -1
  101. package/dist/mcp/server.js +0 -249
  102. package/dist/mcp/server.js.map +0 -1
  103. package/dist/preview-policy.d.ts +0 -8
  104. package/dist/preview-policy.d.ts.map +0 -1
  105. package/dist/preview-policy.js +0 -85
  106. package/dist/preview-policy.js.map +0 -1
  107. package/dist/render-html.d.ts +0 -17
  108. package/dist/render-html.d.ts.map +0 -1
  109. package/dist/render-html.js +0 -85
  110. package/dist/render-html.js.map +0 -1
  111. package/dist/version.d.ts +0 -6
  112. package/dist/version.d.ts.map +0 -1
  113. package/dist/version.js +0 -104
  114. package/dist/version.js.map +0 -1
@@ -1,454 +0,0 @@
1
- import { mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
2
- import { tmpdir } from 'node:os';
3
- import { basename, extname, join } from 'node:path';
4
- import { DOCBLOCKS_MCP_WIRE_VERSION } from '@bendyline/docblocks/mcp';
5
- import { getDependencyRuntimeVersion, getPackageVersion } from '../version.js';
6
- import { throwIfAborted } from './document-service.js';
7
- import { boundDiagnostics } from './intelligence.js';
8
- const DEFAULT_WIDTH = 1280;
9
- const DEFAULT_HEIGHT = 720;
10
- const DEFAULT_MAX_ITEMS = 8;
11
- const MAX_ITEMS = 20;
12
- const MAX_RENDERED_ITEMS = 100;
13
- export const MCP_PREVIEW_CAPTURE_LIMITS = Object.freeze({
14
- maximumAggregatePixels: 120000000,
15
- maximumCapturedBytes: 64 * 1024 * 1024,
16
- });
17
- /** Capture every visual item for rendered-fidelity conversion without publishing intermediates. */
18
- export async function capturePreparedDocumentFrames(prepared, options = {}, signal, progress) {
19
- const normalized = normalizeOptions({
20
- startIndex: 0,
21
- maxItems: MAX_ITEMS,
22
- width: options.width ?? 1200,
23
- height: options.height ?? 900,
24
- });
25
- const { flattenBlocks } = await import('@bendyline/squisq/doc');
26
- const totalItems = flattenBlocks(prepared.doc.blocks).length;
27
- if (totalItems > MAX_RENDERED_ITEMS) {
28
- throw new Error(`Rendered-fidelity conversion supports at most ${MAX_RENDERED_ITEMS} visual items`);
29
- }
30
- const rendered = await captureWithPlaywright(prepared.doc, prepared.container, { ...normalized, maxItems: Math.max(1, totalItems) }, signal, progress);
31
- if (rendered.captures.length !== totalItems) {
32
- throw new Error('Rendered-fidelity capture did not produce every visual item');
33
- }
34
- assertCapturedPreviewBudget(rendered.captures);
35
- return rendered.captures;
36
- }
37
- /** Render bounded Squisq visual previews into immutable PNG artifacts. */
38
- export async function previewPreparedDocument(artifacts, prepared, request, signal, progress, capture = captureWithPlaywright, maximumCapturedBytes = MCP_PREVIEW_CAPTURE_LIMITS.maximumCapturedBytes) {
39
- const options = normalizeOptions(request);
40
- throwIfAborted(signal);
41
- const rendered = await capture(prepared.doc, prepared.container, options, signal, progress);
42
- assertCapturedPreviewBudget(rendered.captures, maximumCapturedBytes);
43
- const previewBasis = prepared.sourceFormat === 'md' || prepared.sourceFormat === 'dbk'
44
- ? 'source-render'
45
- : 'reconstructed-import';
46
- const itemKind = previewItemKind(prepared.sourceFormat);
47
- const items = [];
48
- const createdArtifactUris = [];
49
- try {
50
- for (const captured of rendered.captures) {
51
- throwIfAborted(signal);
52
- const artifact = await artifacts.put({
53
- bytes: captured.bytes,
54
- format: 'png',
55
- mimeType: 'image/png',
56
- sourceFormat: prepared.sourceFormat,
57
- sourceSha256: prepared.sourceSha256,
58
- suggestedFilename: `${prepared.baseName}-preview-${String(captured.index + 1).padStart(3, '0')}.png`,
59
- appliedOptions: [
60
- { name: 'width', value: captured.width },
61
- { name: 'height', value: captured.height },
62
- { name: 'itemIndex', value: captured.index },
63
- ],
64
- engineVersions: [
65
- { name: 'docblocks', version: getPackageVersion() },
66
- {
67
- name: '@bendyline/squisq-cli',
68
- version: getDependencyRuntimeVersion('@bendyline/squisq-cli', '@bendyline/squisq-cli/api'),
69
- },
70
- ],
71
- }, signal);
72
- createdArtifactUris.push(artifact.uri);
73
- items.push({
74
- kind: itemKind,
75
- index: captured.index,
76
- label: captured.label,
77
- artifact,
78
- width: captured.width,
79
- height: captured.height,
80
- });
81
- }
82
- throwIfAborted(signal);
83
- }
84
- catch (caught) {
85
- await Promise.allSettled(createdArtifactUris.map((uri) => artifacts.discard(uri)));
86
- throw caught;
87
- }
88
- return {
89
- version: DOCBLOCKS_MCP_WIRE_VERSION,
90
- kind: 'preview',
91
- sourceFormat: prepared.sourceFormat,
92
- previewBasis,
93
- totalItems: rendered.totalItems,
94
- items,
95
- truncated: options.startIndex > 0 || options.startIndex + items.length < rendered.totalItems,
96
- diagnostics: boundDiagnostics([
97
- ...prepared.diagnostics,
98
- ...(rendered.diagnostics ?? []),
99
- ...(previewBasis === 'reconstructed-import'
100
- ? [reconstructedPreviewDiagnostic(prepared.sourceFormat)]
101
- : []),
102
- ], 'render'),
103
- };
104
- }
105
- /** Extract one bounded first-frame JPEG from an existing MP4 or GIF source. */
106
- export async function previewVideoSource(artifacts, source, request, signal, progress, extract) {
107
- const options = normalizeOptions(request);
108
- const sourceFormat = source.format.toLowerCase().replace(/^\./u, '');
109
- if (sourceFormat !== 'mp4' && sourceFormat !== 'gif') {
110
- throw new Error('Rendered-media thumbnail preview requires an MP4 or GIF source');
111
- }
112
- if (options.startIndex > 0) {
113
- throw new Error('Preview startIndex is beyond the available items');
114
- }
115
- throwIfAborted(signal);
116
- const directory = await mkdtemp(join(tmpdir(), 'docblocks-mcp-video-preview-'));
117
- const inputPath = join(directory, `source.${sourceFormat}`);
118
- const slug = 'first-frame';
119
- const outputPath = join(directory, `${slug}-${options.width}x${options.height}.jpg`);
120
- let thumbnail;
121
- try {
122
- await progress?.(0, 3, 'Staging video preview');
123
- await writeFile(inputPath, source.bytes, { signal });
124
- throwIfAborted(signal);
125
- const extractor = extract ?? (await import('@bendyline/squisq-cli/api')).extractThumbnails;
126
- await progress?.(1, 3, 'Extracting first video frame');
127
- await extractor({
128
- videoPath: inputPath,
129
- outputDir: directory,
130
- slug,
131
- sizes: [
132
- {
133
- name: 'preview',
134
- width: options.width,
135
- height: options.height,
136
- filter: thumbnailFilter(options.width, options.height),
137
- },
138
- ],
139
- force: true,
140
- signal,
141
- });
142
- throwIfAborted(signal);
143
- thumbnail = await readFile(outputPath, { signal });
144
- throwIfAborted(signal);
145
- await progress?.(2, 3, 'Publishing video preview');
146
- }
147
- finally {
148
- await rm(directory, { recursive: true, force: true });
149
- }
150
- throwIfAborted(signal);
151
- const baseName = baseNameFromFilename(source.filename);
152
- let artifact = null;
153
- try {
154
- artifact = await artifacts.put({
155
- bytes: thumbnail,
156
- format: 'jpg',
157
- mimeType: 'image/jpeg',
158
- sourceFormat,
159
- sourceSha256: source.sha256,
160
- suggestedFilename: `${baseName}-preview-001.jpg`,
161
- appliedOptions: [
162
- { name: 'width', value: options.width },
163
- { name: 'height', value: options.height },
164
- { name: 'itemIndex', value: 0 },
165
- ],
166
- engineVersions: [
167
- { name: 'docblocks', version: getPackageVersion() },
168
- {
169
- name: '@bendyline/squisq-cli',
170
- version: getDependencyRuntimeVersion('@bendyline/squisq-cli', '@bendyline/squisq-cli/api'),
171
- },
172
- ],
173
- }, signal);
174
- throwIfAborted(signal);
175
- await progress?.(3, 3, 'Video preview complete');
176
- throwIfAborted(signal);
177
- }
178
- catch (caught) {
179
- if (artifact)
180
- await artifacts.discard(artifact.uri).catch(() => undefined);
181
- throw caught;
182
- }
183
- if (!artifact)
184
- throw new Error('Video preview artifact publication failed');
185
- return {
186
- version: DOCBLOCKS_MCP_WIRE_VERSION,
187
- kind: 'preview',
188
- sourceFormat,
189
- previewBasis: 'native-extracted',
190
- totalItems: 1,
191
- items: [
192
- {
193
- kind: 'frame',
194
- index: 0,
195
- label: 'First frame',
196
- artifact,
197
- width: options.width,
198
- height: options.height,
199
- },
200
- ],
201
- truncated: false,
202
- diagnostics: [],
203
- };
204
- }
205
- function reconstructedPreviewDiagnostic(format) {
206
- return {
207
- code: 'preview-reconstructed',
208
- severity: 'warning',
209
- stage: 'render',
210
- format,
211
- count: 1,
212
- message: 'Preview images render the normalized imported document and may differ from the native application pixels.',
213
- remediation: 'Use the preview for structural review; open the saved artifact in its native application for exact target-pixel verification.',
214
- retryable: false,
215
- location: null,
216
- };
217
- }
218
- function normalizeOptions(request) {
219
- const options = {
220
- startIndex: request.startIndex ?? 0,
221
- maxItems: request.maxItems ?? DEFAULT_MAX_ITEMS,
222
- width: request.width ?? DEFAULT_WIDTH,
223
- height: request.height ?? DEFAULT_HEIGHT,
224
- };
225
- if (!Number.isSafeInteger(options.startIndex) || options.startIndex < 0) {
226
- throw new Error('Preview startIndex must be a non-negative integer');
227
- }
228
- if (!Number.isSafeInteger(options.maxItems) ||
229
- options.maxItems < 1 ||
230
- options.maxItems > MAX_ITEMS) {
231
- throw new Error(`Preview maxItems must be between 1 and ${MAX_ITEMS}`);
232
- }
233
- if (!Number.isSafeInteger(options.width) || options.width < 160 || options.width > 1920) {
234
- throw new Error('Preview width must be between 160 and 1920 pixels');
235
- }
236
- if (!Number.isSafeInteger(options.height) || options.height < 90 || options.height > 1920) {
237
- throw new Error('Preview height must be between 90 and 1920 pixels');
238
- }
239
- if (options.width * options.height > 2073600) {
240
- throw new Error('Preview pixel area must not exceed 1920x1080');
241
- }
242
- return options;
243
- }
244
- function thumbnailFilter(width, height) {
245
- return `scale=${width}:${height}:force_original_aspect_ratio=decrease,pad=${width}:${height}:(ow-iw)/2:(oh-ih)/2`;
246
- }
247
- function baseNameFromFilename(filename) {
248
- const leaf = basename(filename.replace(/\\/gu, '/')) || 'video';
249
- const extension = extname(leaf);
250
- return (extension ? leaf.slice(0, -extension.length) : leaf) || 'video';
251
- }
252
- export async function captureWithPlaywright(doc, container, options, signal, progress, launchBrowser) {
253
- throwIfAborted(signal);
254
- const { flattenBlocks } = await import('@bendyline/squisq/doc');
255
- const blocks = flattenBlocks(doc.blocks);
256
- const selected = blocks.slice(options.startIndex, options.startIndex + options.maxItems);
257
- if (selected.length === 0 && blocks.length > 0) {
258
- throw new Error('Preview startIndex is beyond the available items');
259
- }
260
- if (blocks.length === 0)
261
- return { captures: [], totalItems: 0 };
262
- const aggregatePixels = options.width * options.height * selected.length;
263
- if (aggregatePixels > MCP_PREVIEW_CAPTURE_LIMITS.maximumAggregatePixels) {
264
- throw new Error(`Preview capture exceeds the ${MCP_PREVIEW_CAPTURE_LIMITS.maximumAggregatePixels} aggregate-pixel budget`);
265
- }
266
- await progress?.(0, selected.length + 2, 'Collecting preview media');
267
- const { images, audio } = await collectMedia(container, signal);
268
- const [{ generateRenderHtml }, { PLAYER_BUNDLE }] = await Promise.all([
269
- import('@bendyline/squisq-video'),
270
- import('@bendyline/squisq-react/standalone-source'),
271
- ]);
272
- const html = generateRenderHtml(doc, {
273
- playerScript: PLAYER_BUNDLE,
274
- images,
275
- audio: audio.size > 0 ? audio : undefined,
276
- width: options.width,
277
- height: options.height,
278
- animationsEnabled: false,
279
- });
280
- throwIfAborted(signal);
281
- await progress?.(1, selected.length + 2, 'Launching preview renderer');
282
- const browser = launchBrowser
283
- ? await launchBrowser()
284
- : await import('playwright-core').then(({ chromium }) => chromium.launch({ headless: true }));
285
- if (signal?.aborted) {
286
- await browser.close().catch(() => undefined);
287
- throwIfAborted(signal);
288
- }
289
- const handleAbort = () => {
290
- void browser.close().catch(() => undefined);
291
- };
292
- signal?.addEventListener('abort', handleAbort, { once: true });
293
- let renderApi = null;
294
- try {
295
- const page = await browser.newPage({
296
- viewport: { width: options.width, height: options.height },
297
- });
298
- await page.setContent(html, { waitUntil: 'load' });
299
- await page.waitForFunction(() => {
300
- const root = document.getElementById('squisq-root');
301
- const player = window.SquisqPlayer;
302
- return root ? player?.getHandle(root)?.getRenderAPI() != null : false;
303
- }, { timeout: 15000 });
304
- renderApi = await page.evaluateHandle(() => {
305
- const root = document.getElementById('squisq-root');
306
- const player = window.SquisqPlayer;
307
- const api = root ? player?.getHandle(root)?.getRenderAPI() : null;
308
- if (!api)
309
- throw new Error('Squisq preview render API did not initialize');
310
- return api;
311
- });
312
- const captures = [];
313
- const diagnostics = [];
314
- for (let offset = 0; offset < selected.length; offset += 1) {
315
- throwIfAborted(signal);
316
- const block = selected[offset];
317
- const time = block.startTime + Math.min(0.1, Math.max(0, block.duration / 4));
318
- await renderApi.evaluate((api, value) => api.seekTo(value), time);
319
- const layoutAudit = await page.evaluate(() => {
320
- const root = document.getElementById('squisq-root');
321
- if (!root)
322
- return { overflowCount: 0, missingFonts: [] };
323
- let overflowCount = 0;
324
- const missingFonts = new Set();
325
- for (const element of root.querySelectorAll('*')) {
326
- if (element.clientWidth <= 0 || element.clientHeight <= 0)
327
- continue;
328
- const style = getComputedStyle(element);
329
- const clipsX = style.overflowX === 'hidden' || style.overflowX === 'clip';
330
- const clipsY = style.overflowY === 'hidden' || style.overflowY === 'clip';
331
- if ((clipsX && element.scrollWidth > element.clientWidth + 2) ||
332
- (clipsY && element.scrollHeight > element.clientHeight + 2)) {
333
- overflowCount += 1;
334
- }
335
- if (element.textContent?.trim() && document.fonts && style.fontFamily) {
336
- try {
337
- if (!document.fonts.check(`12px ${style.fontFamily}`)) {
338
- missingFonts.add(style.fontFamily.slice(0, 256));
339
- }
340
- }
341
- catch {
342
- missingFonts.add(style.fontFamily.slice(0, 256));
343
- }
344
- }
345
- }
346
- return { overflowCount, missingFonts: [...missingFonts].slice(0, 20) };
347
- });
348
- const bytes = await page.screenshot({ type: 'png', animations: 'disabled' });
349
- const index = options.startIndex + offset;
350
- captures.push({
351
- bytes,
352
- index,
353
- label: block.title ?? block.id ?? null,
354
- width: options.width,
355
- height: options.height,
356
- });
357
- assertCapturedPreviewBudget(captures);
358
- if (layoutAudit.overflowCount > 0) {
359
- diagnostics.push({
360
- code: 'rendered-overflow',
361
- severity: 'warning',
362
- stage: 'render',
363
- format: 'png',
364
- count: layoutAudit.overflowCount,
365
- message: `Preview item ${index + 1} contains clipped rendered content.`,
366
- remediation: 'Reduce content density, shorten text, or choose a roomier template.',
367
- retryable: false,
368
- location: { kind: 'item', itemKind: 'frame', index },
369
- });
370
- }
371
- if (layoutAudit.missingFonts.length > 0) {
372
- diagnostics.push({
373
- code: 'font-unavailable',
374
- severity: 'warning',
375
- stage: 'render',
376
- format: 'png',
377
- count: layoutAudit.missingFonts.length,
378
- message: `Preview item ${index + 1} could not confirm these fonts: ${layoutAudit.missingFonts.join(', ')}.`,
379
- remediation: 'Embed or install the fonts, or choose a theme with available font families.',
380
- retryable: false,
381
- location: { kind: 'item', itemKind: 'frame', index },
382
- });
383
- }
384
- await progress?.(offset + 2, selected.length + 2, `Rendered preview ${index + 1}`);
385
- }
386
- await progress?.(selected.length + 2, selected.length + 2, 'Preview complete');
387
- return { captures, totalItems: blocks.length, diagnostics };
388
- }
389
- finally {
390
- signal?.removeEventListener('abort', handleAbort);
391
- await renderApi?.dispose().catch(() => undefined);
392
- await browser.close().catch(() => undefined);
393
- }
394
- }
395
- export function assertCapturedPreviewBudget(captures, maximumBytes = MCP_PREVIEW_CAPTURE_LIMITS.maximumCapturedBytes) {
396
- if (!Number.isSafeInteger(maximumBytes) || maximumBytes < 1) {
397
- throw new Error('Preview capture byte budget must be a positive integer');
398
- }
399
- let totalBytes = 0;
400
- for (const capture of captures) {
401
- totalBytes += capture.bytes.byteLength;
402
- if (!Number.isSafeInteger(totalBytes) || totalBytes > maximumBytes) {
403
- throw new Error(`Preview capture exceeds the ${maximumBytes}-byte aggregate budget`);
404
- }
405
- }
406
- }
407
- async function collectMedia(container, signal) {
408
- const images = new Map();
409
- const audio = new Map();
410
- for (const entry of await container.listFiles()) {
411
- throwIfAborted(signal);
412
- const bytes = await container.readFile(entry.path);
413
- if (!bytes)
414
- continue;
415
- if (/\.(?:mp3|m4a|aac|wav|ogg|oga|webm)$/iu.test(entry.path)) {
416
- audio.set(entry.path, bytes);
417
- }
418
- else if (/\.(?:avif|bmp|gif|jpe?g|png|svg|webp|mp4|mov|m4v)$/iu.test(entry.path)) {
419
- images.set(entry.path, bytes);
420
- const leaf = entry.path.split('/').pop();
421
- if (leaf)
422
- images.set(leaf, bytes);
423
- }
424
- }
425
- return { images, audio };
426
- }
427
- function previewItemKind(format) {
428
- switch (format.toLowerCase()) {
429
- case 'pptx':
430
- return 'slide';
431
- case 'xlsx':
432
- case 'csv':
433
- return 'sheet';
434
- case 'mp4':
435
- case 'gif':
436
- return 'frame';
437
- default:
438
- return 'page';
439
- }
440
- }
441
- export function previewFailureDiagnostic(message) {
442
- return {
443
- code: 'preview-failed',
444
- severity: 'error',
445
- stage: 'render',
446
- format: 'png',
447
- count: 1,
448
- message,
449
- remediation: 'Install Playwright Chromium and retry with fewer or smaller preview items.',
450
- retryable: true,
451
- location: null,
452
- };
453
- }
454
- //# sourceMappingURL=preview-service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preview-service.js","sourceRoot":"","sources":["../../src/mcp/preview-service.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- interface ProgressExtra {
2
- readonly _meta?: {
3
- readonly progressToken?: string | number;
4
- };
5
- sendNotification(notification: {
6
- method: 'notifications/progress';
7
- params: {
8
- progressToken: string | number;
9
- progress: number;
10
- total: number;
11
- message: string;
12
- };
13
- }): Promise<void>;
14
- }
15
- /** Serialize request progress and project every producer onto one monotonic 0..100 scale. */
16
- export declare function reportMcpProgress(extra: ProgressExtra, progress: number, total: number, message: string): Promise<void>;
17
- export {};
18
- //# sourceMappingURL=progress.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/mcp/progress.ts"],"names":[],"mappings":"AAAA,UAAU,aAAa;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE;QAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;IAC9D,gBAAgB,CAAC,YAAY,EAAE;QAC7B,MAAM,EAAE,wBAAwB,CAAC;QACjC,MAAM,EAAE;YACN,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;YAC/B,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,EAAE,MAAM,CAAC;YACd,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnB;AAUD,6FAA6F;AAC7F,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAwBf"}
@@ -1,28 +0,0 @@
1
- const states = new WeakMap();
2
- /** Serialize request progress and project every producer onto one monotonic 0..100 scale. */
3
- export function reportMcpProgress(extra, progress, total, message) {
4
- const progressToken = extra._meta?.progressToken;
5
- if (progressToken === undefined)
6
- return Promise.resolve();
7
- const safeTotal = Number.isFinite(total) && total > 0 ? total : 1;
8
- const safeProgress = Number.isFinite(progress) ? progress : 0;
9
- const percent = Math.max(0, Math.min(100, (safeProgress / safeTotal) * 100));
10
- let state = states.get(extra);
11
- if (!state) {
12
- state = { lastPercent: -1, lastMessage: null, tail: Promise.resolve() };
13
- states.set(extra, state);
14
- }
15
- const monotonic = Math.max(state.lastPercent, percent);
16
- if (monotonic === state.lastPercent && message === state.lastMessage)
17
- return state.tail;
18
- state.lastPercent = monotonic;
19
- state.lastMessage = message;
20
- state.tail = state.tail
21
- .then(() => extra.sendNotification({
22
- method: 'notifications/progress',
23
- params: { progressToken, progress: monotonic, total: 100, message },
24
- }))
25
- .catch(() => undefined);
26
- return state.tail;
27
- }
28
- //# sourceMappingURL=progress.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/mcp/progress.ts"],"names":[],"mappings":"AAmBA,MAAM,MAAM,GAAG,IAAI,OAAO,EAAyB,CAAC;AAEpD,6FAA6F;AAC7F,MAAM,UAAU,iBAAiB,CAC/B,KAAoB,EACpB,QAAgB,EAChB,KAAa,EACb,OAAe;IAEf,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,EAAE,aAAa,CAAC;IACjD,IAAI,aAAa,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1D,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,MAAM,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IAC7E,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;QACxE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAC3B,CAAC;IACD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACvD,IAAI,SAAS,KAAK,KAAK,CAAC,WAAW,IAAI,OAAO,KAAK,KAAK,CAAC,WAAW;QAAE,OAAO,KAAK,CAAC,IAAI,CAAC;IACxF,KAAK,CAAC,WAAW,GAAG,SAAS,CAAC;IAC9B,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC;IAC5B,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI;SACpB,IAAI,CAAC,GAAG,EAAE,CACT,KAAK,CAAC,gBAAgB,CAAC;QACrB,MAAM,EAAE,wBAAwB;QAChC,MAAM,EAAE,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE;KACpE,CAAC,CACH;SACA,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC1B,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
2
- /** Artifact-first authoring prompts whose named calls are all current MCP tools. */
3
- export declare function registerAuthoringPrompts(server: McpServer): void;
4
- //# sourceMappingURL=prompts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/mcp/prompts.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE,oFAAoF;AACpF,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA0GhE"}