@cyanheads/pixoo-mcp-server 1.2.0 → 1.2.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.
Files changed (54) hide show
  1. package/AGENTS.md +10 -7
  2. package/CLAUDE.md +10 -7
  3. package/Dockerfile +30 -10
  4. package/README.md +65 -86
  5. package/changelog/1.2.x/1.2.1.md +35 -0
  6. package/changelog/1.2.x/1.2.2.md +40 -0
  7. package/dist/mcp-server/resources/definitions/pixoo-design-guide.resource.d.ts.map +1 -1
  8. package/dist/mcp-server/resources/definitions/pixoo-design-guide.resource.js +4 -1
  9. package/dist/mcp-server/resources/definitions/pixoo-design-guide.resource.js.map +1 -1
  10. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.d.ts +173 -13
  11. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.d.ts.map +1 -1
  12. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.js +129 -28
  13. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.js.map +1 -1
  14. package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.js +15 -7
  16. package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.js.map +1 -1
  17. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.d.ts +2 -0
  18. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.js +27 -12
  20. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.d.ts +30 -1
  22. package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.d.ts.map +1 -1
  23. package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.js +105 -26
  24. package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.js.map +1 -1
  25. package/dist/mcp-server/tools/finish-schema.d.ts +28 -0
  26. package/dist/mcp-server/tools/finish-schema.d.ts.map +1 -0
  27. package/dist/mcp-server/tools/finish-schema.js +42 -0
  28. package/dist/mcp-server/tools/finish-schema.js.map +1 -0
  29. package/dist/renderer/finish.d.ts +34 -0
  30. package/dist/renderer/finish.d.ts.map +1 -0
  31. package/dist/renderer/finish.js +62 -0
  32. package/dist/renderer/finish.js.map +1 -0
  33. package/dist/renderer/icons.d.ts +14 -4
  34. package/dist/renderer/icons.d.ts.map +1 -1
  35. package/dist/renderer/icons.js +30 -22
  36. package/dist/renderer/icons.js.map +1 -1
  37. package/dist/renderer/keyframes.d.ts +40 -4
  38. package/dist/renderer/keyframes.d.ts.map +1 -1
  39. package/dist/renderer/keyframes.js +100 -53
  40. package/dist/renderer/keyframes.js.map +1 -1
  41. package/dist/renderer/remote-image.d.ts +13 -7
  42. package/dist/renderer/remote-image.d.ts.map +1 -1
  43. package/dist/renderer/remote-image.js +17 -21
  44. package/dist/renderer/remote-image.js.map +1 -1
  45. package/dist/renderer/scene-renderer.d.ts +45 -6
  46. package/dist/renderer/scene-renderer.d.ts.map +1 -1
  47. package/dist/renderer/scene-renderer.js +328 -159
  48. package/dist/renderer/scene-renderer.js.map +1 -1
  49. package/dist/renderer/text-engine.d.ts +24 -5
  50. package/dist/renderer/text-engine.d.ts.map +1 -1
  51. package/dist/renderer/text-engine.js +51 -28
  52. package/dist/renderer/text-engine.js.map +1 -1
  53. package/package.json +7 -6
  54. package/server.json +3 -3
@@ -4,12 +4,12 @@
4
4
  */
5
5
  import { tool, z } from '@cyanheads/mcp-ts-core';
6
6
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
7
- import { Canvas, FONT_3x5, FONT_5x7, measureText, NAMED_COLORS, } from '@cyanheads/pixoo-toolkit';
7
+ import { Canvas, measureText, NAMED_COLORS } from '@cyanheads/pixoo-toolkit';
8
8
  import { getServerConfig } from '../../../config/server-config.js';
9
9
  import { pushKeepingPreview, visibilityNotice } from '../device-push.js';
10
10
  import { autoSavePreview, buildContactSheet, saveGifPreview, savePngPreview, } from '../../../renderer/preview.js';
11
11
  import { applyBackground, renderFrame, } from '../../../renderer/scene-renderer.js';
12
- import { drawStyledText, renderAutoFitText, resolveX, scrollCycle, } from '../../../renderer/text-engine.js';
12
+ import { boxFits, describeMissingNumerals, drawStyledText, FONT_FACES, FONT_VARIANTS, missingNumeralGlyphs, renderAutoFitText, resolveX, scrollCycle, } from '../../../renderer/text-engine.js';
13
13
  import { THEMES } from '../../../renderer/themes.js';
14
14
  import { getPixooService } from '../../../services/pixoo/pixoo-service.js';
15
15
  /** Frame delay for effect animations — the pixoo_compose_scene default. */
@@ -88,7 +88,8 @@ export const pixooDisplayText = tool('pixoo_display_text', {
88
88
  title: 'pixoo_display_text',
89
89
  description: 'Render styled text (theme, gradient, shadow, outline, auto-fit) onto the Pixoo display and push it, static or animated with a scroll, float, or pulse effect. Returns the render as an image content block for immediate inspection. The primary tool for text-only display — for layers, icons, widgets, or per-element motion use pixoo_compose_scene. Run pixoo_design_brief with topic "text" first for palette and legibility guidance.',
90
90
  annotations: { idempotentHint: true, destructiveHint: false },
91
- input: z.object({
91
+ input: z
92
+ .object({
92
93
  text: z
93
94
  .union([
94
95
  z.string().describe('Single string of text to display.'),
@@ -118,9 +119,9 @@ export const pixooDisplayText = tool('pixoo_display_text', {
118
119
  .describe('Background color or gradient. Overrides theme background when set.'),
119
120
  style: StyleSchema.optional().describe('Text style: palette, shadow, outline, scale.'),
120
121
  font: z
121
- .enum(['standard', 'compact'])
122
+ .enum(FONT_VARIANTS)
122
123
  .optional()
123
- .describe('Font variant: standard (5×7) or compact (3×5), used as given — text too wide for it overflows rather than switching font. Omitted, single-line text tries standard and falls back to compact when standard overflows; multi-line text uses standard.'),
124
+ .describe('Font variant, used as given — text too wide for it overflows rather than switching font: standard (5×7) or compact (3×5), each printable ASCII plus ° ← ↑ → ↓ ▲ ▼ ♥ · …; or numerals (11×18 digits for clocks and readouts), which draws only 0–9, space, and : . - + / % ° ?, so text holding any other character is rejected. Omitted, single-line text tries standard and falls back to compact when standard overflows; multi-line text uses standard.'),
124
125
  position: z
125
126
  .object({
126
127
  x: z
@@ -159,6 +160,18 @@ export const pixooDisplayText = tool('pixoo_display_text', {
159
160
  .max(100)
160
161
  .optional()
161
162
  .describe('Set device brightness before push (0–100). Failure is a warning, not an error.'),
163
+ })
164
+ .superRefine((input, ctx) => {
165
+ if (input.font !== 'numerals')
166
+ return;
167
+ const missing = missingNumeralGlyphs([input.text].flat().join(''));
168
+ if (missing.length === 0)
169
+ return;
170
+ ctx.addIssue({
171
+ code: 'custom',
172
+ path: ['text'],
173
+ message: `${describeMissingNumerals(missing)} Set units and labels in the standard or compact font, or use pixoo_compose_scene to place a numerals text element beside a standard or compact label.`,
174
+ });
162
175
  }),
163
176
  output: z.object({
164
177
  pushed: z.boolean().describe('True when the device acknowledged the push.'),
@@ -187,7 +200,7 @@ export const pixooDisplayText = tool('pixoo_display_text', {
187
200
  action: z
188
201
  .enum(['none', 'shrunk-to-compact', 'scrolling', 'wrapped', 'truncated', 'clipped'])
189
202
  .describe('Overflow action taken by the renderer.'),
190
- font: z.enum(['standard', 'compact']).optional().describe('Font variant used.'),
203
+ font: z.enum(FONT_VARIANTS).optional().describe('Font variant used.'),
191
204
  scale: z.number().optional().describe('Scale factor applied.'),
192
205
  })
193
206
  .describe('Layout report entry for one element.'))
@@ -314,14 +327,15 @@ export const pixooDisplayText = tool('pixoo_display_text', {
314
327
  const font = entry.font ?? 'standard';
315
328
  // When the text overflows and scrolls, frame 0 renders at x=size (off-canvas),
316
329
  // producing a solid-background preview. Re-render the preview canvas with the
317
- // text at x=0 so the preview shows legible text.
330
+ // text at x=0 so the preview shows legible text, and report the box it draws.
318
331
  if (entry.action === 'scrolling') {
319
332
  applyBackground(canvas, bg);
320
333
  drawStyledText(canvas, combinedText, 0, entry.box.y, style, font);
334
+ entry.box.x = 0;
321
335
  }
322
336
  placements.push({
323
337
  text: combinedText,
324
- x: entry.action === 'scrolling' ? 0 : entry.box.x,
338
+ x: entry.box.x,
325
339
  y: entry.box.y,
326
340
  w: entry.box.w,
327
341
  font,
@@ -329,8 +343,8 @@ export const pixooDisplayText = tool('pixoo_display_text', {
329
343
  }
330
344
  else {
331
345
  // Multi-line: stack lines vertically
332
- const fontVariant = input.font === 'compact' ? 'compact' : 'standard';
333
- const font = fontVariant === 'compact' ? FONT_3x5 : FONT_5x7;
346
+ const fontVariant = input.font ?? 'standard';
347
+ const font = FONT_FACES[fontVariant];
334
348
  const scale = style.scale ?? 1;
335
349
  const lineH = font.height * scale + 1;
336
350
  const totalH = lines.length * lineH;
@@ -352,11 +366,12 @@ export const pixooDisplayText = tool('pixoo_display_text', {
352
366
  : resolveX(input.position?.x ?? 'center', lineW, size, 0);
353
367
  const lineY = startY + li * lineH;
354
368
  drawStyledText(canvas, lineText, lineX, lineY, style, fontVariant);
369
+ const box = { x: lineX, y: lineY, w: lineW, h: font.height * scale };
355
370
  layoutEntries.push({
356
371
  element: li,
357
372
  type: 'text',
358
- box: { x: lineX, y: lineY, w: lineW, h: font.height * scale },
359
- fits: lineX + lineW <= size && lineY + font.height * scale <= size,
373
+ box,
374
+ fits: boxFits(box, size, size),
360
375
  action: 'none',
361
376
  font: fontVariant,
362
377
  scale,
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-display-text.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-display-text.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pixoo-display-text.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-display-text.tool.ts"],"names":[],"mappings":"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"}
@@ -16,9 +16,28 @@ export declare const pixooPushImage: import("@cyanheads/mcp-ts-core").ToolDefini
16
16
  mitchell: "mitchell";
17
17
  nearest: "nearest";
18
18
  }>>;
19
+ speed: z.ZodOptional<z.ZodNumber>;
20
+ finish: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
21
+ colors: z.ZodNumber;
22
+ dither: z.ZodDefault<z.ZodEnum<{
23
+ bayer4: "bayer4";
24
+ "floyd-steinberg": "floyd-steinberg";
25
+ none: "none";
26
+ }>>;
27
+ }, z.core.$strict>, z.ZodObject<{
28
+ palette: z.ZodArray<z.ZodString>;
29
+ dither: z.ZodDefault<z.ZodEnum<{
30
+ bayer4: "bayer4";
31
+ "floyd-steinberg": "floyd-steinberg";
32
+ none: "none";
33
+ }>>;
34
+ }, z.core.$strict>]>>;
19
35
  push: z.ZodDefault<z.ZodBoolean>;
20
36
  }, z.core.$strip>, z.ZodObject<{
21
37
  pushed: z.ZodBoolean;
38
+ frames: z.ZodNumber;
39
+ sourceFrames: z.ZodNumber;
40
+ speed: z.ZodOptional<z.ZodNumber>;
22
41
  deviceState: z.ZodOptional<z.ZodObject<{
23
42
  reachable: z.ZodBoolean;
24
43
  channel: z.ZodOptional<z.ZodString>;
@@ -56,7 +75,17 @@ export declare const pixooPushImage: import("@cyanheads/mcp-ts-core").ToolDefini
56
75
  readonly reason: "asset_not_found";
57
76
  readonly code: JsonRpcErrorCode.NotFound;
58
77
  readonly when: "Image path or URL could not be read.";
59
- readonly recovery: "Verify the file path exists and is readable, or check the URL is reachable.";
78
+ readonly recovery: "Pass an absolute path to an existing, readable image file, or a reachable https URL serving 10 MiB or less.";
79
+ }, {
80
+ readonly reason: "invalid_image";
81
+ readonly code: JsonRpcErrorCode.InvalidParams;
82
+ readonly when: "The source was read but did not decode as an image.";
83
+ readonly recovery: "The source must be a complete PNG, JPEG, GIF, WebP, AVIF, TIFF, or SVG image; a text file, an HTML page, or a truncated download will not decode.";
84
+ }, {
85
+ readonly reason: "invalid_color";
86
+ readonly code: JsonRpcErrorCode.InvalidParams;
87
+ readonly when: "A finish palette entry could not be resolved to a color.";
88
+ readonly recovery: "Use a hex color (#RRGGBB or #RGB, with or without the #) or a case-insensitive named color such as white, orange, or claude.";
60
89
  }], {
61
90
  readonly notice: z.ZodOptional<z.ZodString>;
62
91
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-push-image.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-push-image.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAajE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwLzB,CAAC"}
1
+ {"version":3,"file":"pixoo-push-image.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-push-image.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAkEjE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsPzB,CAAC"}
@@ -5,20 +5,56 @@
5
5
  import * as fs from 'node:fs/promises';
6
6
  import { tool, z } from '@cyanheads/mcp-ts-core';
7
7
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
8
- import { loadImage } from '@cyanheads/pixoo-toolkit';
8
+ import { loadAnimation, loadImage, NAMED_COLORS, tryResolveColor, } from '@cyanheads/pixoo-toolkit';
9
+ import sharp from 'sharp';
9
10
  import { getServerConfig } from '../../../config/server-config.js';
10
11
  import { pushKeepingPreview, visibilityNotice } from '../device-push.js';
11
- import { autoSavePreview, encodePreviewBlock, savePngPreview, } from '../../../renderer/preview.js';
12
- import { fetchRemoteImageToTempPng, isRemoteSource } from '../../../renderer/remote-image.js';
12
+ import { FinishSchema } from '../finish-schema.js';
13
+ import { finishFrames } from '../../../renderer/finish.js';
14
+ import { autoSavePreview, buildContactSheet, saveGifPreview, savePngPreview, } from '../../../renderer/preview.js';
15
+ import { fetchRemoteImageBytes, isRemoteSource } from '../../../renderer/remote-image.js';
16
+ import { decodeFailureMessage } from '../../../renderer/scene-renderer.js';
13
17
  import { getPixooService } from '../../../services/pixoo/pixoo-service.js';
18
+ /** Frames the device plays without turning unstable; a longer source is sampled down to this. */
19
+ const MAX_FRAMES = 40;
20
+ /** Formats the decoder reports that may hold several frames. */
21
+ const ANIMATED_FORMATS = new Set(['gif', 'webp']);
22
+ /** Per-frame speed, in ms, for an animation whose source records no delays. */
23
+ const DEFAULT_SPEED_MS = 150;
24
+ /** The per-frame speed range, in ms, an animation pushes at — as on pixoo_compose_scene. */
25
+ const MIN_SPEED_MS = 10;
26
+ const MAX_SPEED_MS = 2000;
27
+ /**
28
+ * Decode `image` into display-size frames. A source the decoder reports as GIF or WebP
29
+ * loads every frame, sampled evenly down to {@link MAX_FRAMES}; any other format loads
30
+ * as a still. The content decides, not the file extension.
31
+ */
32
+ async function loadFrames(image, placement) {
33
+ const { format } = await sharp(image).metadata();
34
+ if (ANIMATED_FORMATS.has(format)) {
35
+ return loadAnimation(image, { ...placement, maxFrames: MAX_FRAMES });
36
+ }
37
+ return { frames: [await loadImage(image, placement)], delays: [0], sourceFrames: 1 };
38
+ }
39
+ /**
40
+ * The one per-frame speed that keeps the loop's length: the delays' total over the
41
+ * frame count, rounded and clamped to the device's range. A source with no recorded
42
+ * timing plays at {@link DEFAULT_SPEED_MS}.
43
+ */
44
+ function loopSpeed(delays) {
45
+ const total = delays.reduce((sum, delay) => sum + delay, 0);
46
+ if (total === 0)
47
+ return DEFAULT_SPEED_MS;
48
+ return Math.min(MAX_SPEED_MS, Math.max(MIN_SPEED_MS, Math.round(total / delays.length)));
49
+ }
14
50
  export const pixooPushImage = tool('pixoo_push_image', {
15
51
  title: 'pixoo_push_image',
16
- description: 'Load an image (absolute local path or https URL), resize it to fit the LED grid, and optionally push it to the display. Returns the downsampled result as an image content block so you see exactly what the display received. Nearest-neighbor kernel preserves pixel art; use lanczos3 or mitchell for photos.',
52
+ description: 'Load an image (absolute local path or https URL), resize it to fit the LED grid, and optionally push it to the display. An animated GIF or WebP pushes as an animation of up to 40 frames, sampled evenly from a longer source and played at the speed that keeps its loop length. Returns the downsampled result as an image content block so you see exactly what the display received — a grid of every frame for an animation. Nearest-neighbor kernel preserves pixel art; use lanczos3 or mitchell for photos. finish reduces the result to a small or fixed palette, optionally dithered.',
17
53
  annotations: { idempotentHint: true, destructiveHint: false, openWorldHint: true },
18
54
  input: z.object({
19
55
  source: z
20
56
  .string()
21
- .describe('Absolute local file path or https (not http) URL of the image to display.'),
57
+ .describe('Absolute local file path or https (not http) URL of the image to display. An animated GIF or WebP, whatever its file name, pushes as an animation.'),
22
58
  fit: z
23
59
  .enum(['contain', 'cover', 'fill'])
24
60
  .default('contain')
@@ -27,6 +63,14 @@ export const pixooPushImage = tool('pixoo_push_image', {
27
63
  .enum(['nearest', 'lanczos3', 'mitchell'])
28
64
  .default('nearest')
29
65
  .describe('Resize kernel: nearest for pixel art, lanczos3 for photos, mitchell for a balance.'),
66
+ speed: z
67
+ .number()
68
+ .int()
69
+ .min(MIN_SPEED_MS)
70
+ .max(MAX_SPEED_MS)
71
+ .optional()
72
+ .describe("Milliseconds per frame for an animated source (10–2000). Default: the source's total duration over the pushed frame count, or 150 when it records no delays. A still ignores it."),
73
+ finish: FinishSchema.optional(),
30
74
  push: z
31
75
  .boolean()
32
76
  .default(true)
@@ -34,6 +78,16 @@ export const pixooPushImage = tool('pixoo_push_image', {
34
78
  }),
35
79
  output: z.object({
36
80
  pushed: z.boolean().describe('True when the device acknowledged the push.'),
81
+ frames: z
82
+ .number()
83
+ .describe('Frames rendered and pushed: 1 for a still, 2–40 for an animation.'),
84
+ sourceFrames: z
85
+ .number()
86
+ .describe('Frames in the source before sampling down to 40: 1 for a still.'),
87
+ speed: z
88
+ .number()
89
+ .optional()
90
+ .describe('Milliseconds per frame the animation plays at. Absent for a still.'),
37
91
  deviceState: z
38
92
  .object({
39
93
  reachable: z.boolean().describe('True if device responded.'),
@@ -56,7 +110,7 @@ export const pixooPushImage = tool('pixoo_push_image', {
56
110
  outputFiles: z
57
111
  .array(z.string())
58
112
  .optional()
59
- .describe('Absolute paths to saved PNG preview files. Present only when PIXOO_OUTPUT_DIR is configured.'),
113
+ .describe('Absolute paths to saved preview files: a PNG for a still, a GIF at the pushed speed for an animation. Present only when PIXOO_OUTPUT_DIR is configured.'),
60
114
  }),
61
115
  enrichment: {
62
116
  notice: z.string().optional().describe('Warning or informational message.'),
@@ -95,50 +149,70 @@ export const pixooPushImage = tool('pixoo_push_image', {
95
149
  reason: 'asset_not_found',
96
150
  code: JsonRpcErrorCode.NotFound,
97
151
  when: 'Image path or URL could not be read.',
98
- recovery: 'Verify the file path exists and is readable, or check the URL is reachable.',
152
+ recovery: 'Pass an absolute path to an existing, readable image file, or a reachable https URL serving 10 MiB or less.',
153
+ },
154
+ {
155
+ reason: 'invalid_image',
156
+ code: JsonRpcErrorCode.InvalidParams,
157
+ when: 'The source was read but did not decode as an image.',
158
+ recovery: 'The source must be a complete PNG, JPEG, GIF, WebP, AVIF, TIFF, or SVG image; a text file, an HTML page, or a truncated download will not decode.',
159
+ },
160
+ {
161
+ reason: 'invalid_color',
162
+ code: JsonRpcErrorCode.InvalidParams,
163
+ when: 'A finish palette entry could not be resolved to a color.',
164
+ recovery: 'Use a hex color (#RRGGBB or #RGB, with or without the #) or a case-insensitive named color such as white, orange, or claude.',
99
165
  },
100
166
  ],
101
167
  async handler(input, ctx) {
102
168
  const cfg = getServerConfig();
103
169
  const size = cfg.pixooSize;
104
- // The toolkit's loadImage reads from disk, so a remote source is staged to a
105
- // temp PNG first and unlinked once it has been read.
106
- let tmpPathToCleanup;
170
+ // Checked before the source is read: a typo in the palette must not cost a download.
171
+ const unknownColor = input.finish && 'palette' in input.finish
172
+ ? input.finish.palette.find((color) => !tryResolveColor(color))
173
+ : undefined;
174
+ if (unknownColor !== undefined) {
175
+ throw ctx.fail('invalid_color', `Unknown color in finish.palette: "${unknownColor}". Valid named colors: ${Object.keys(NAMED_COLORS).join(', ')}.`, ctx.recoveryFor('invalid_color'));
176
+ }
177
+ let image = input.source;
107
178
  if (isRemoteSource(input.source)) {
108
179
  ctx.log.info('Fetching image from URL', { url: input.source });
109
- tmpPathToCleanup = await fetchRemoteImageToTempPng(input.source, ctx);
180
+ image = await fetchRemoteImageBytes(input.source, ctx);
110
181
  }
111
182
  else {
112
183
  try {
113
- await fs.access(input.source);
184
+ await fs.access(input.source, fs.constants.R_OK);
114
185
  }
115
186
  catch {
116
- throw ctx.fail('asset_not_found', `Image file not found: "${input.source}". Verify the absolute path is correct.`, { path: input.source, ...ctx.recoveryFor('asset_not_found') });
187
+ throw ctx.fail('asset_not_found', `Image file not found or unreadable: "${input.source}". Verify the absolute path is correct and readable.`, { path: input.source, ...ctx.recoveryFor('asset_not_found') });
117
188
  }
118
189
  }
119
- const localPath = tmpPathToCleanup ?? input.source;
120
190
  ctx.log.info('Loading and resizing image', { fit: input.fit, kernel: input.kernel });
121
- // Load and resize (then clean up temp file if one was written)
122
- const canvas = await loadImage(localPath, {
191
+ const loaded = await loadFrames(image, {
123
192
  size,
124
193
  fit: input.fit,
125
194
  kernel: input.kernel,
195
+ }).catch((err) => {
196
+ throw ctx.fail('invalid_image', decodeFailureMessage('Image source', input.source, err), { source: input.source, ...ctx.recoveryFor('invalid_image') }, { cause: err });
126
197
  });
127
- if (tmpPathToCleanup) {
128
- fs.unlink(tmpPathToCleanup).catch(() => undefined);
129
- }
130
- // The downsampled result rides content[] as an image block. It is deliberately
131
- // absent from `output` — routing it through ctx.content carries the base64 once
132
- // instead of duplicating it into structuredContent.
133
- ctx.content.image(encodePreviewBlock(canvas).data, 'image/png');
198
+ const { delays, sourceFrames } = loaded;
199
+ const frames = input.finish ? finishFrames(loaded.frames, input.finish) : loaded.frames;
200
+ const [first] = frames;
201
+ const speed = frames.length > 1 ? (input.speed ?? loopSpeed(delays)) : undefined;
202
+ // The downsampled result (a grid of every frame for an animation) rides content[] as
203
+ // an image block. It is deliberately absent from `output` — routing it through
204
+ // ctx.content carries the base64 once instead of duplicating it into structuredContent.
205
+ ctx.content.image((await buildContactSheet(frames)).data, 'image/png');
134
206
  const baseName = `push-image-${Date.now()}`;
135
- const writePreview = (dir) => savePngPreview(canvas, dir, baseName);
207
+ const writePreview = (dir) => speed === undefined
208
+ ? savePngPreview(first, dir, baseName)
209
+ : saveGifPreview(frames, speed, dir, baseName);
136
210
  const outputFiles = await autoSavePreview(writePreview);
137
211
  let pushed = false;
138
212
  let deviceState;
139
213
  if (input.push) {
140
214
  const svc = getPixooService();
141
- deviceState = await pushKeepingPreview(() => svc.pushFrame(canvas, ctx), outputFiles, writePreview);
215
+ deviceState = await pushKeepingPreview(() => speed === undefined ? svc.pushFrame(first, ctx) : svc.pushAnimation(frames, speed, ctx), outputFiles, writePreview);
142
216
  pushed = true;
143
217
  const notice = visibilityNotice(deviceState);
144
218
  if (notice)
@@ -146,13 +220,18 @@ export const pixooPushImage = tool('pixoo_push_image', {
146
220
  }
147
221
  return {
148
222
  pushed,
223
+ frames: frames.length,
224
+ sourceFrames,
225
+ ...(speed !== undefined && { speed }),
149
226
  deviceState,
150
227
  outputFiles: outputFiles.length > 0 ? outputFiles : undefined,
151
228
  };
152
229
  },
153
230
  format: (result) => {
154
231
  const lines = [];
155
- lines.push(`**Pushed:** ${result.pushed ? 'Yes' : 'No'}`);
232
+ const frames = `**Frames:** ${result.frames} of ${result.sourceFrames} source frame${result.sourceFrames === 1 ? '' : 's'}`;
233
+ const speed = result.speed !== undefined ? ` | **Speed:** ${result.speed} ms per frame` : '';
234
+ lines.push(`**Pushed:** ${result.pushed ? 'Yes' : 'No'} | ${frames}${speed}`);
156
235
  if (result.deviceState) {
157
236
  const ds = result.deviceState;
158
237
  lines.push(`**Device:** ${ds.reachable ? 'Reachable' : 'Unreachable'}` +
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-push-image.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-push-image.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAkB,MAAM,0BAA0B,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,EACL,eAAe,EACf,kBAAkB,EAElB,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACvF,OAAO,EAA4B,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAE9F,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,EAAE;IACrD,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,kTAAkT;IACpT,WAAW,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE;IAElF,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,CAAC,2EAA2E,CAAC;QACxF,GAAG,EAAE,CAAC;aACH,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;aAClC,OAAO,CAAC,SAAS,CAAC;aAClB,QAAQ,CAAC,6EAA6E,CAAC;QAC1F,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;aACzC,OAAO,CAAC,SAAS,CAAC;aAClB,QAAQ,CACP,oFAAoF,CACrF;QACH,IAAI,EAAE,CAAC;aACJ,OAAO,EAAE;aACT,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,CAAC,uDAAuD,CAAC;KACrE,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC3E,WAAW,EAAE,CAAC;aACX,MAAM,CAAC;YACN,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC5D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAChE,UAAU,EAAE,CAAC;iBACV,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,sEAAsE,CAAC;YACnF,QAAQ,EAAE,CAAC;iBACR,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,0DAA0D,CAAC;YACvE,OAAO,EAAE,CAAC;iBACP,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,uEAAuE,CAAC;SACrF,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CAAC,uDAAuD,CAAC;QACpE,WAAW,EAAE,CAAC;aACX,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;aACjB,QAAQ,EAAE;aACV,QAAQ,CACP,8FAA8F,CAC/F;KACJ,CAAC;IAEF,UAAU,EAAE;QACV,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;KAC5E;IAED,MAAM,EAAE;QACN;YACE,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,0BAA0B;YAChC,SAAS,EAAE,IAAI;YACf,QAAQ,EAAE,iFAAiF;YAC3F,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,mBAAmB;YAC3B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,4FAA4F;YAClG,QAAQ,EACN,wJAAwJ;YAC1J,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,iBAAiB;YACzB,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,iDAAiD;YACvD,QAAQ,EAAE,+DAA+D;YACzE,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,sBAAsB;YAC9B,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,sBAAsB;YAC5B,QAAQ,EAAE,sEAAsE;YAChF,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,MAAM,EAAE,iBAAiB;YACzB,IAAI,EAAE,gBAAgB,CAAC,QAAQ;YAC/B,IAAI,EAAE,sCAAsC;YAC5C,QAAQ,EAAE,6EAA6E;SACxF;KACF;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG;QACtB,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;QAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,SAAsB,CAAC;QAExC,6EAA6E;QAC7E,qDAAqD;QACrD,IAAI,gBAAoC,CAAC;QACzC,IAAI,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/D,gBAAgB,GAAG,MAAM,yBAAyB,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,MAAM,GAAG,CAAC,IAAI,CACZ,iBAAiB,EACjB,0BAA0B,KAAK,CAAC,MAAM,yCAAyC,EAC/E,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,WAAW,CAAC,iBAAiB,CAAC,EAAE,CAC9D,CAAC;YACJ,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,gBAAgB,IAAI,KAAK,CAAC,MAAM,CAAC;QAEnD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;QAErF,+DAA+D;QAC/D,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,SAAS,EAAE;YACxC,IAAI;YACJ,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC,CAAC;QACH,IAAI,gBAAgB,EAAE,CAAC;YACrB,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;QACrD,CAAC;QAED,+EAA+E;QAC/E,gFAAgF;QAChF,oDAAoD;QACpD,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC5C,MAAM,YAAY,GAAkB,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QACnF,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;QAExD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,WAA4C,CAAC;QACjD,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;YAC9B,WAAW,GAAG,MAAM,kBAAkB,CACpC,GAAG,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,EAChC,WAAW,EACX,YAAY,CACb,CAAC;YACF,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,MAAM,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;YAC7C,IAAI,MAAM;gBAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACxC,CAAC;QAED,OAAO;YACL,MAAM;YACN,WAAW;YACX,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;SAC9D,CAAC;IACJ,CAAC;IAED,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;QACjB,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAE1D,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;YAC9B,KAAK,CAAC,IAAI,CACR,eAAe,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,EAAE;gBACzD,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC/C,CAAC,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACtE,CAAC,EAAE,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7E,CAAC,EAAE,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC9D,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,cAAc,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"pixoo-push-image.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-push-image.tool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview The `finish` input shared by tools that render an image: reduce it to a
3
+ * palette, with optional dithering, before it reaches the panel. Applied by
4
+ * `renderer/finish`.
5
+ * @module mcp-server/tools/finish-schema
6
+ */
7
+ import { z } from '@cyanheads/mcp-ts-core';
8
+ /**
9
+ * Exactly one of `colors` or `palette`, plus `dither` — a union of two closed objects,
10
+ * so each branch advertises its own required field and a call naming both, or neither,
11
+ * fails validation.
12
+ */
13
+ export declare const FinishSchema: z.ZodUnion<readonly [z.ZodObject<{
14
+ colors: z.ZodNumber;
15
+ dither: z.ZodDefault<z.ZodEnum<{
16
+ bayer4: "bayer4";
17
+ "floyd-steinberg": "floyd-steinberg";
18
+ none: "none";
19
+ }>>;
20
+ }, z.core.$strict>, z.ZodObject<{
21
+ palette: z.ZodArray<z.ZodString>;
22
+ dither: z.ZodDefault<z.ZodEnum<{
23
+ bayer4: "bayer4";
24
+ "floyd-steinberg": "floyd-steinberg";
25
+ none: "none";
26
+ }>>;
27
+ }, z.core.$strict>]>;
28
+ //# sourceMappingURL=finish-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finish-schema.d.ts","sourceRoot":"","sources":["../../../src/mcp-server/tools/finish-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAS3C;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;oBA0BtB,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @fileoverview The `finish` input shared by tools that render an image: reduce it to a
3
+ * palette, with optional dithering, before it reaches the panel. Applied by
4
+ * `renderer/finish`.
5
+ * @module mcp-server/tools/finish-schema
6
+ */
7
+ import { z } from '@cyanheads/mcp-ts-core';
8
+ const DitherSchema = z
9
+ .enum(['none', 'bayer4', 'floyd-steinberg'])
10
+ .default('none')
11
+ .describe('How palette colors are placed: none maps each pixel to its nearest color; bayer4 mixes the two nearest in an ordered 4×4 pattern; floyd-steinberg diffuses the difference to neighboring pixels, smoothest on photos.');
12
+ /**
13
+ * Exactly one of `colors` or `palette`, plus `dither` — a union of two closed objects,
14
+ * so each branch advertises its own required field and a call naming both, or neither,
15
+ * fails validation.
16
+ */
17
+ export const FinishSchema = z
18
+ .union([
19
+ z
20
+ .strictObject({
21
+ colors: z
22
+ .number()
23
+ .int()
24
+ .min(2)
25
+ .max(256)
26
+ .describe('Build a palette of at most this many colors (2–256) from the image itself.'),
27
+ dither: DitherSchema,
28
+ })
29
+ .describe('Reduce to a palette built from the image.'),
30
+ z
31
+ .strictObject({
32
+ palette: z
33
+ .array(z.string().describe('Hex color (#RRGGBB or #RGB) or a named color.'))
34
+ .min(1)
35
+ .max(256)
36
+ .describe('Map every pixel to these colors (1–256 entries).'),
37
+ dither: DitherSchema,
38
+ })
39
+ .describe('Reduce to a fixed palette.'),
40
+ ])
41
+ .describe('Reduce the image to a palette before it reaches the panel: exactly one of colors (2–256, built from the image) or palette (1–256 hex or named colors), plus dither. Transparent pixels stay unlit and are not counted. The preview shows the finished frame.');
42
+ //# sourceMappingURL=finish-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finish-schema.js","sourceRoot":"","sources":["../../../src/mcp-server/tools/finish-schema.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAE3C,MAAM,YAAY,GAAG,CAAC;KACnB,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;KAC3C,OAAO,CAAC,MAAM,CAAC;KACf,QAAQ,CACP,uNAAuN,CACxN,CAAC;AAEJ;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,KAAK,CAAC;IACL,CAAC;SACE,YAAY,CAAC;QACZ,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,CAAC,4EAA4E,CAAC;QACzF,MAAM,EAAE,YAAY;KACrB,CAAC;SACD,QAAQ,CAAC,2CAA2C,CAAC;IACxD,CAAC;SACE,YAAY,CAAC;QACZ,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CAAC;aAC3E,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,CAAC,kDAAkD,CAAC;QAC/D,MAAM,EAAE,YAAY;KACrB,CAAC;SACD,QAAQ,CAAC,4BAA4B,CAAC;CAC1C,CAAC;KACD,QAAQ,CACP,8PAA8P,CAC/P,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @fileoverview Palette finishing — reduce a rendered canvas, or every frame of an
3
+ * animation, to a palette with optional dithering through the toolkit's `quantize`.
4
+ * Tool-agnostic: any render path applies a caller's `finish` here, after the load and
5
+ * before the preview, so the preview is exactly the frame the device receives.
6
+ * @module renderer/finish
7
+ */
8
+ import { Canvas, type QuantizeOptions } from '@cyanheads/pixoo-toolkit';
9
+ /**
10
+ * A palette finish: exactly one of `colors` (build a palette of at most that many colors
11
+ * from the image) or `palette` (map to these colors), plus `dither`. Transparent pixels
12
+ * stay unlit and don't count toward `colors`.
13
+ */
14
+ export type Finish = QuantizeOptions;
15
+ /**
16
+ * Apply `finish` to one canvas.
17
+ *
18
+ * @returns A new canvas; the input is never mutated.
19
+ * @throws {Error} The toolkit's `Unknown color` error for an unresolvable palette entry.
20
+ */
21
+ export declare function finishFrame(canvas: Canvas, finish: Finish): Canvas;
22
+ /**
23
+ * Apply `finish` to every frame of an animation. `colors` builds one palette from all
24
+ * the frames' visible pixels together, so the whole loop holds at most that many colors;
25
+ * `palette` and `dither` apply to each frame on its own, so dither error never crosses
26
+ * from one frame into the next.
27
+ *
28
+ * @param frames - Frames of one size, up to 4096 stacked rows in all (64 frames of a
29
+ * 64-pixel panel).
30
+ * @returns New canvases, one per frame; the inputs are never mutated.
31
+ * @throws {Error} The toolkit's `Unknown color` error for an unresolvable palette entry.
32
+ */
33
+ export declare function finishFrames(frames: readonly Canvas[], finish: Finish): Canvas[];
34
+ //# sourceMappingURL=finish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"finish.d.ts","sourceRoot":"","sources":["../../src/renderer/finish.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,EAAE,KAAK,eAAe,EAAsB,MAAM,0BAA0B,CAAC;AAE5F;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG,eAAe,CAAC;AAErC;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAQhF"}