@cyanheads/pixoo-mcp-server 1.2.2 → 1.3.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 (49) hide show
  1. package/AGENTS.md +13 -9
  2. package/CLAUDE.md +13 -9
  3. package/Dockerfile +63 -46
  4. package/README.md +7 -7
  5. package/changelog/1.3.x/1.3.0.md +35 -0
  6. package/dist/config/server-config.d.ts +1 -1
  7. package/dist/config/server-config.d.ts.map +1 -1
  8. package/dist/config/server-config.js +6 -1
  9. package/dist/config/server-config.js.map +1 -1
  10. package/dist/mcp-server/resources/definitions/pixoo-design-guide.resource.js +1 -1
  11. package/dist/mcp-server/tools/asset-source-schema.d.ts +13 -0
  12. package/dist/mcp-server/tools/asset-source-schema.d.ts.map +1 -0
  13. package/dist/mcp-server/tools/asset-source-schema.js +25 -0
  14. package/dist/mcp-server/tools/asset-source-schema.js.map +1 -0
  15. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.d.ts +43 -53
  16. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.d.ts.map +1 -1
  17. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.js +102 -74
  18. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.js.map +1 -1
  19. package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.js +1 -1
  20. package/dist/mcp-server/tools/definitions/pixoo-discover-devices.tool.d.ts +1 -1
  21. package/dist/mcp-server/tools/definitions/pixoo-discover-devices.tool.js +1 -1
  22. package/dist/mcp-server/tools/definitions/pixoo-discover-devices.tool.js.map +1 -1
  23. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.d.ts +6 -9
  24. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.d.ts.map +1 -1
  25. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.js +26 -20
  26. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.js.map +1 -1
  27. package/dist/mcp-server/tools/definitions/pixoo-overlay-text.tool.d.ts.map +1 -1
  28. package/dist/mcp-server/tools/definitions/pixoo-overlay-text.tool.js +1 -3
  29. package/dist/mcp-server/tools/definitions/pixoo-overlay-text.tool.js.map +1 -1
  30. package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.d.ts.map +1 -1
  31. package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.js +5 -6
  32. package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.js.map +1 -1
  33. package/dist/renderer/remote-image.d.ts +1 -1
  34. package/dist/renderer/remote-image.d.ts.map +1 -1
  35. package/dist/renderer/remote-image.js +6 -6
  36. package/dist/renderer/remote-image.js.map +1 -1
  37. package/dist/renderer/scene-renderer.d.ts +14 -8
  38. package/dist/renderer/scene-renderer.d.ts.map +1 -1
  39. package/dist/renderer/scene-renderer.js +17 -17
  40. package/dist/renderer/scene-renderer.js.map +1 -1
  41. package/dist/renderer/text-engine.d.ts +22 -12
  42. package/dist/renderer/text-engine.d.ts.map +1 -1
  43. package/dist/renderer/text-engine.js +38 -26
  44. package/dist/renderer/text-engine.js.map +1 -1
  45. package/dist/services/pixoo/pixoo-service.d.ts.map +1 -1
  46. package/dist/services/pixoo/pixoo-service.js +9 -33
  47. package/dist/services/pixoo/pixoo-service.js.map +1 -1
  48. package/package.json +2 -2
  49. package/server.json +3 -3
@@ -7,17 +7,22 @@ import { tool, z } from '@cyanheads/mcp-ts-core';
7
7
  import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
8
8
  import { Canvas, NAMED_COLORS, savePng } from '@cyanheads/pixoo-toolkit';
9
9
  import { getServerConfig } from '../../../config/server-config.js';
10
+ import { ImageSourceSchema, SpritePathSchema } from '../asset-source-schema.js';
10
11
  import { pushKeepingPreview, visibilityNotice } from '../device-push.js';
11
12
  import { FinishSchema } from '../finish-schema.js';
12
13
  import { ICONS } from '../../../renderer/icons.js';
13
14
  import { numericValue } from '../../../renderer/keyframes.js';
14
15
  import { autoSavePreview, buildContactSheet, saveGifPreview, savePngPreview, } from '../../../renderer/preview.js';
15
16
  import { renderScene } from '../../../renderer/scene-renderer.js';
16
- import { describeMissingNumerals, FONT_VARIANTS, missingNumeralGlyphs, } from '../../../renderer/text-engine.js';
17
+ import { describeMissingNumerals, FONT_FACES, FONT_VARIANTS, fallbackGlyphNotice, missingGlyphs, } from '../../../renderer/text-engine.js';
17
18
  import { getPixooService } from '../../../services/pixoo/pixoo-service.js';
18
19
  // --- Shared sub-schemas ---
20
+ /*
21
+ * Every input object is a z.strictObject: an unknown key fails validation by its full
22
+ * path, naming the keys that object accepts, instead of being dropped.
23
+ */
19
24
  const EffectSchema = z
20
- .object({
25
+ .strictObject({
21
26
  name: z
22
27
  .enum([
23
28
  'float',
@@ -58,14 +63,16 @@ const NumericKeyframeValue = z
58
63
  .refine((value) => numericValue(value) !== undefined, NUMERIC_KEYFRAME_ERROR)
59
64
  .describe('Value at this frame: a number, or a numeric string such as "40" read as that number.');
60
65
  const AnimateSchema = z
61
- .object({
66
+ .strictObject({
62
67
  dx: keyframeTrack(NumericKeyframeValue, 'X offset keyframes in pixels, added to dx and interpolated between keyframes.').optional(),
63
68
  dy: keyframeTrack(NumericKeyframeValue, 'Y offset keyframes in pixels, added to dy and interpolated between keyframes.').optional(),
64
69
  opacity: keyframeTrack(NumericKeyframeValue, 'Opacity keyframes 0–100, interpolated between keyframes.').optional(),
65
70
  visible: keyframeTrack(z.boolean().describe('Whether the element shows at this frame.'), 'Visibility keyframes: true or false, switching at the midpoint between keyframes.').optional(),
66
- color: keyframeTrack(z.union([z.number(), z.string(), z.boolean()]).describe('Color at this frame.'), 'Color keyframes (hex or named), interpolated through RGB. Drives any element with a color field.').optional(),
71
+ color: keyframeTrack(z.union([z.number(), z.string(), z.boolean()]).describe('Color at this frame.'), "Color keyframes (hex or named), interpolated through RGB; each frame's value stands in for the element's color (on pixels, every point's color).").optional(),
67
72
  })
68
73
  .describe('Raw keyframe tracks by property: { dx | dy | opacity | visible | color: [[frame, value], ...] }.');
74
+ /** Keyframe tracks for an element with no color field: bitmap, progress, image, sprite. */
75
+ const ColorlessAnimateSchema = AnimateSchema.omit({ color: true }).describe('Raw keyframe tracks by property: { dx | dy | opacity | visible: [[frame, value], ...] }. This element has no color field, so there is no color track.');
69
76
  const BaseElementProps = {
70
77
  visible: z.boolean().optional().describe('Whether the element is visible (default: true).'),
71
78
  opacity: z.number().int().min(0).max(100).optional().describe('Opacity 0–100 (default: 100).'),
@@ -75,8 +82,17 @@ const BaseElementProps = {
75
82
  .describe('How the element combines with what lies beneath it (default: normal, drawn over it). add sums the light of both, clamped at full brightness — for glows and light beams; screen brightens more gently; multiply darkens.'),
76
83
  dx: z.number().int().optional().describe('X offset nudge in pixels.'),
77
84
  dy: z.number().int().optional().describe('Y offset nudge in pixels.'),
78
- effect: EffectSchema.optional().describe('Named animation preset for this element.'),
79
- animate: AnimateSchema.optional().describe('Raw keyframe animation map for this element.'),
85
+ effect: EffectSchema.optional().describe('Named animation preset for this element. Set either effect or animate, not both.'),
86
+ };
87
+ /** Shared props, spread last, for an element whose color an animate track can drive. */
88
+ const ColoredElementProps = {
89
+ ...BaseElementProps,
90
+ animate: AnimateSchema.optional().describe('Raw keyframe animation map for this element. Set either effect or animate, not both.'),
91
+ };
92
+ /** Shared props, spread last, for an element with no color field. */
93
+ const ColorlessElementProps = {
94
+ ...BaseElementProps,
95
+ animate: ColorlessAnimateSchema.optional().describe('Raw keyframe animation map for this element (no color track). Set either effect or animate, not both.'),
80
96
  };
81
97
  const XPosSchema = z
82
98
  .union([
@@ -91,14 +107,14 @@ const YPosSchema = z
91
107
  ])
92
108
  .describe('Y position: integer pixel or semantic alignment.');
93
109
  const StyleSchema = z
94
- .object({
110
+ .strictObject({
95
111
  palette: z
96
112
  .union([
97
113
  z
98
114
  .enum(['ember', 'ice', 'neon', 'fire', 'lavender', 'claude', 'mono'])
99
115
  .describe('Named built-in color palette for the vertical ramp.'),
100
116
  z
101
- .object({
117
+ .strictObject({
102
118
  from: z.string().describe('Top color.'),
103
119
  to: z.string().describe('Bottom color.'),
104
120
  })
@@ -114,7 +130,7 @@ const StyleSchema = z
114
130
  .describe('Text style options.');
115
131
  // --- Element schemas ---
116
132
  const TextElementSchema = z
117
- .object({
133
+ .strictObject({
118
134
  type: z.literal('text').describe('Text element type.'),
119
135
  text: z.string().describe('Text content to render.'),
120
136
  x: XPosSchema.optional().describe('X position (default: 0).'),
@@ -125,12 +141,12 @@ const TextElementSchema = z
125
141
  .optional()
126
142
  .describe('Font variant (default: standard): 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 — put units and labels in a separate standard or compact text element.'),
127
143
  style: StyleSchema.optional().describe('Text style options.'),
128
- ...BaseElementProps,
144
+ ...ColoredElementProps,
129
145
  })
130
146
  .superRefine((el, ctx) => {
131
147
  if (el.font !== 'numerals')
132
148
  return;
133
- const missing = missingNumeralGlyphs(el.text);
149
+ const missing = missingGlyphs(el.text, FONT_FACES.numerals);
134
150
  if (missing.length === 0)
135
151
  return;
136
152
  ctx.addIssue({
@@ -139,7 +155,7 @@ const TextElementSchema = z
139
155
  message: `${describeMissingNumerals(missing)} Put units and labels in a separate text element in the standard or compact font.`,
140
156
  });
141
157
  });
142
- const IconElementSchema = z.object({
158
+ const IconElementSchema = z.strictObject({
143
159
  type: z.literal('icon').describe('Icon element type.'),
144
160
  name: z.string().optional().describe('Built-in icon name (see pixoo://reference/icons).'),
145
161
  d: z.string().optional().describe('Custom SVG path d attribute.'),
@@ -153,10 +169,10 @@ const IconElementSchema = z.object({
153
169
  .enum(['ember', 'ice', 'neon', 'fire', 'lavender', 'claude', 'mono'])
154
170
  .optional()
155
171
  .describe("Named palette painted as a top-to-bottom color ramp from the icon's top row to its bottom row. Takes precedence over color."),
156
- ...BaseElementProps,
172
+ ...ColoredElementProps,
157
173
  });
158
174
  const RectElementSchema = z
159
- .object({
175
+ .strictObject({
160
176
  type: z.literal('rect').describe('Rectangle element type.'),
161
177
  x: z.number().int().describe('X coordinate.'),
162
178
  y: z.number().int().describe('Y coordinate.'),
@@ -164,7 +180,7 @@ const RectElementSchema = z
164
180
  h: z.number().int().min(1).describe('Height in pixels.'),
165
181
  color: z.string().optional().describe('Fill color.'),
166
182
  gradient: z
167
- .object({
183
+ .strictObject({
168
184
  type: z.enum(['v', 'h']).describe('v = vertical, h = horizontal.'),
169
185
  from: z.string().describe('Start color.'),
170
186
  to: z.string().describe('End color.'),
@@ -181,7 +197,7 @@ const RectElementSchema = z
181
197
  .min(1)
182
198
  .optional()
183
199
  .describe('Border thickness in whole pixels, growing inward from the rect edge (default: 1). Requires borderColor.'),
184
- ...BaseElementProps,
200
+ ...ColoredElementProps,
185
201
  })
186
202
  .refine((el) => el.strokeWidth === undefined || Boolean(el.borderColor), {
187
203
  error: 'strokeWidth sets the thickness of the borderColor border; set borderColor, or drop strokeWidth.',
@@ -190,7 +206,7 @@ const RectElementSchema = z
190
206
  /** The error for a stroke field on a circle that fills, which draws no outline. */
191
207
  const filledCircleError = (field) => `${field} applies to an outline circle only; set fill: false, or drop ${field}.`;
192
208
  const CircleElementSchema = z
193
- .object({
209
+ .strictObject({
194
210
  type: z.literal('circle').describe('Circle element type.'),
195
211
  cx: z.number().int().describe('Center X coordinate.'),
196
212
  cy: z.number().int().describe('Center Y coordinate.'),
@@ -207,7 +223,7 @@ const CircleElementSchema = z
207
223
  .boolean()
208
224
  .optional()
209
225
  .describe('Shade each outline pixel by how much of it the ring covers, for a smooth curve (default: false, hard pixel edges). Outline circles only (fill: false).'),
210
- ...BaseElementProps,
226
+ ...ColoredElementProps,
211
227
  })
212
228
  .refine((el) => el.fill === false || el.strokeWidth === undefined, {
213
229
  error: filledCircleError('strokeWidth'),
@@ -217,7 +233,7 @@ const CircleElementSchema = z
217
233
  error: filledCircleError('antialias'),
218
234
  path: ['antialias'],
219
235
  });
220
- const LineElementSchema = z.object({
236
+ const LineElementSchema = z.strictObject({
221
237
  type: z.literal('line').describe('Line element type.'),
222
238
  x0: z.number().int().describe('Start X coordinate.'),
223
239
  y0: z.number().int().describe('Start Y coordinate.'),
@@ -234,9 +250,9 @@ const LineElementSchema = z.object({
234
250
  .boolean()
235
251
  .optional()
236
252
  .describe('Shade each pixel by how much of it the line covers, for smooth diagonals (default: false, hard pixel edges).'),
237
- ...BaseElementProps,
253
+ ...ColoredElementProps,
238
254
  });
239
- const ProgressElementSchema = z.object({
255
+ const ProgressElementSchema = z.strictObject({
240
256
  type: z.literal('progress').describe('Progress bar widget type.'),
241
257
  x: z.number().int().describe('X coordinate.'),
242
258
  y: z.number().int().describe('Y coordinate.'),
@@ -250,9 +266,9 @@ const ProgressElementSchema = z.object({
250
266
  .describe('Named palette for gradient fill.'),
251
267
  trackColor: z.string().optional().describe('Background track color.'),
252
268
  label: z.string().optional().describe('Optional label rendered on the bar.'),
253
- ...BaseElementProps,
269
+ ...ColorlessElementProps,
254
270
  });
255
- const SparklineElementSchema = z.object({
271
+ const SparklineElementSchema = z.strictObject({
256
272
  type: z.literal('sparkline').describe('Sparkline chart widget type.'),
257
273
  x: z.number().int().describe('X coordinate.'),
258
274
  y: z.number().int().describe('Y coordinate.'),
@@ -261,9 +277,9 @@ const SparklineElementSchema = z.object({
261
277
  data: z.array(z.number()).min(2).describe('Data points for the chart.'),
262
278
  color: z.string().optional().describe('Line or bar color.'),
263
279
  kind: z.enum(['line', 'bar']).optional().describe('Chart style (default: line).'),
264
- ...BaseElementProps,
280
+ ...ColoredElementProps,
265
281
  });
266
- const BitmapElementSchema = z.object({
282
+ const BitmapElementSchema = z.strictObject({
267
283
  type: z.literal('bitmap').describe('Bitmap element using palette indices.'),
268
284
  x: z.number().int().describe('X coordinate.'),
269
285
  y: z.number().int().describe('Y coordinate.'),
@@ -271,24 +287,24 @@ const BitmapElementSchema = z.object({
271
287
  .array(z.string())
272
288
  .describe('Row strings of hex palette indices (0-F, space = transparent).'),
273
289
  palette: z.array(z.string()).describe('Color palette: array of hex colors indexed 0-F.'),
274
- ...BaseElementProps,
290
+ ...ColorlessElementProps,
275
291
  });
276
- const PixelsElementSchema = z.object({
292
+ const PixelsElementSchema = z.strictObject({
277
293
  type: z.literal('pixels').describe('Sparse pixel dots element.'),
278
294
  data: z
279
295
  .array(z
280
- .object({
296
+ .strictObject({
281
297
  x: z.number().int().describe('Pixel X coordinate.'),
282
298
  y: z.number().int().describe('Pixel Y coordinate.'),
283
299
  color: z.string().describe('Pixel color.'),
284
300
  })
285
301
  .describe('A single pixel: position and color.'))
286
302
  .describe('Array of pixel positions and colors.'),
287
- ...BaseElementProps,
303
+ ...ColoredElementProps,
288
304
  });
289
- const ImageElementSchema = z.object({
290
- type: z.literal('image').describe('Image element (local path or https URL).'),
291
- source: z.string().describe('Absolute local file path or https (not http) URL.'),
305
+ const ImageElementSchema = z.strictObject({
306
+ type: z.literal('image').describe('Image element (absolute local path or https URL).'),
307
+ source: ImageSourceSchema.describe('Absolute local file path or https (not http) URL; a relative path is rejected.'),
292
308
  x: z.number().int().optional().describe('X offset on canvas (default: 0).'),
293
309
  y: z.number().int().optional().describe('Y offset on canvas (default: 0).'),
294
310
  w: z.number().int().min(1).max(256).optional().describe('Target width (default: canvas width).'),
@@ -308,11 +324,11 @@ const ImageElementSchema = z.object({
308
324
  .optional()
309
325
  .describe('Resize kernel: nearest for pixel art, lanczos3 for photos (default: nearest).'),
310
326
  finish: FinishSchema.optional(),
311
- ...BaseElementProps,
327
+ ...ColorlessElementProps,
312
328
  });
313
- const SpriteElementSchema = z.object({
329
+ const SpriteElementSchema = z.strictObject({
314
330
  type: z.literal('sprite').describe('Sprite sheet element.'),
315
- path: z.string().describe('Absolute local path to the sprite sheet image.'),
331
+ path: SpritePathSchema.describe('Absolute local path to the sprite sheet image; a relative path is rejected.'),
316
332
  cols: z.number().int().min(1).max(64).describe('Number of columns in the sprite grid.'),
317
333
  rows: z.number().int().min(1).max(64).describe('Number of rows in the sprite grid.'),
318
334
  x: XPosSchema.optional().describe('X position (default: center).'),
@@ -326,7 +342,7 @@ const SpriteElementSchema = z.object({
326
342
  .describe('Pixel scale factor: each sprite cell renders as a scale × scale block.'),
327
343
  bodyColor: z.string().optional().describe('Override body color.'),
328
344
  darkColor: z.string().optional().describe('Override dark/eye color.'),
329
- ...BaseElementProps,
345
+ ...ColorlessElementProps,
330
346
  });
331
347
  const ElementSchema = z
332
348
  .discriminatedUnion('type', [
@@ -339,18 +355,23 @@ const ElementSchema = z
339
355
  SparklineElementSchema.describe('Sparkline chart widget (line or bar).'),
340
356
  BitmapElementSchema.describe('Bitmap element using explicit palette indices.'),
341
357
  PixelsElementSchema.describe('Sparse scatter of individually colored pixels.'),
342
- ImageElementSchema.describe('External image element (local path or https URL).'),
358
+ ImageElementSchema.describe('External image element (absolute local path or https URL).'),
343
359
  SpriteElementSchema.describe('Sprite sheet element for character or tile art.'),
344
360
  ])
361
+ .superRefine((el, ctx) => {
362
+ // The renderer compiles effect only when animate is absent, so both would drop the effect.
363
+ if (el.effect === undefined || el.animate === undefined)
364
+ return;
365
+ ctx.addIssue({
366
+ code: 'custom',
367
+ path: ['effect'],
368
+ message: 'Set either effect or animate on an element, not both: effect is a named preset, animate holds raw keyframe tracks. Drop one.',
369
+ });
370
+ })
345
371
  .describe('A scene element.');
346
372
  const LayoutEntrySchema = z
347
373
  .object({
348
- element: z
349
- .union([
350
- z.number().describe('Zero-based index of the element in the input array.'),
351
- z.literal('background'),
352
- ])
353
- .describe('Element index or "background" for the background layer.'),
374
+ element: z.number().describe('Zero-based index of the element in the input array.'),
354
375
  type: z.string().describe('Element type.'),
355
376
  box: z
356
377
  .object({
@@ -362,8 +383,8 @@ const LayoutEntrySchema = z
362
383
  .describe('Resolved bounding box after layout.'),
363
384
  fits: z.boolean().describe('Whether the element fits in the canvas.'),
364
385
  action: z
365
- .enum(['none', 'shrunk-to-compact', 'scrolling', 'wrapped', 'truncated', 'clipped'])
366
- .describe('Overflow action taken by the renderer.'),
386
+ .enum(['none'])
387
+ .describe('Always none: scene elements are placed as given and never refit, shrunk, or scrolled. Read fits to learn whether an element runs off the panel.'),
367
388
  font: z.enum(FONT_VARIANTS).optional().describe('Font variant used (text only).'),
368
389
  scale: z.number().optional().describe('Scale factor applied (text only).'),
369
390
  })
@@ -376,30 +397,35 @@ export const pixooComposeScene = tool('pixoo_compose_scene', {
376
397
  background: z
377
398
  .union([
378
399
  z.string().describe('Solid CSS hex color.'),
400
+ /*
401
+ * One object rather than a union of two, so an unknown key fails by its path
402
+ * (background.gradeint) and a call naming both keys fails instead of dropping one.
403
+ */
379
404
  z
380
- .object({
405
+ .strictObject({
381
406
  gradient: z
382
- .object({
407
+ .strictObject({
383
408
  type: z.enum(['v', 'h', 'r']).describe('v = vertical, h = horizontal, r = radial.'),
384
409
  from: z.string().describe('Gradient start color.'),
385
410
  to: z.string().describe('Gradient end color.'),
386
411
  })
387
- .describe('Gradient background.'),
388
- })
389
- .describe('Gradient background: specify type and two colors.'),
390
- z
391
- .object({
412
+ .optional()
413
+ .describe('Gradient background: type and two colors.'),
392
414
  theme: z
393
415
  .enum(['midnight', 'ember', 'claude', 'ice', 'neon', 'forest', 'mono'])
394
- .describe('Named theme.'),
416
+ .optional()
417
+ .describe("Named theme: uses the theme's preset background."),
395
418
  })
396
- .describe("Named theme background: uses the theme's preset gradient."),
419
+ .refine((bg) => (bg.gradient === undefined) !== (bg.theme === undefined), {
420
+ error: 'Set exactly one of gradient or theme.',
421
+ })
422
+ .describe('Gradient or named-theme background: set exactly one of gradient or theme.'),
397
423
  ])
398
- .describe('Scene background: solid color, gradient, or named theme.'),
424
+ .describe('Scene background: a solid color string, or an object holding exactly one of gradient or theme.'),
399
425
  elements: z
400
426
  .array(ElementSchema)
401
427
  .max(50)
402
- .describe("Scene elements rendered back-to-front. Up to 50 elements. An element's animate keyframes can drive dx, dy, and opacity (numbers or numeric strings, interpolated), visible (true or false, switching at the midpoint between keyframes), and color on any element with a color field (interpolated through RGB)."),
428
+ .describe("Scene elements rendered back-to-front. Up to 50 elements. Each element takes either effect or animate, not both. An element's animate keyframes can drive dx, dy, and opacity (numbers or numeric strings, interpolated), visible (true or false, switching at the midpoint between keyframes), and color on any element with a color field (interpolated through RGB)."),
403
429
  frames: z
404
430
  .number()
405
431
  .int()
@@ -524,17 +550,6 @@ export const pixooComposeScene = tool('pixoo_compose_scene', {
524
550
  async handler(input, ctx) {
525
551
  const cfg = getServerConfig();
526
552
  const size = cfg.pixooSize;
527
- // Resolve background
528
- let bg;
529
- if (typeof input.background === 'string') {
530
- bg = input.background;
531
- }
532
- else if ('gradient' in input.background) {
533
- bg = { gradient: input.background.gradient };
534
- }
535
- else {
536
- bg = { theme: input.background.theme };
537
- }
538
553
  // Validate the requested output path before rendering: a bad path must not
539
554
  // cost a full render, an emitted content block, and a PIXOO_OUTPUT_DIR write
540
555
  // before it is reported. The string is checked as given — path.resolve()
@@ -542,7 +557,7 @@ export const pixooComposeScene = tool('pixoo_compose_scene', {
542
557
  // collapse traversal segments, passing everything.
543
558
  if (input.output &&
544
559
  (!path.isAbsolute(input.output) || path.normalize(input.output) !== input.output)) {
545
- throw ctx.fail('invalid_output_path', `Invalid output path: "${input.output}". Must be an absolute path with no traversal segments.`, ctx.recoveryFor('invalid_output_path'));
560
+ throw ctx.fail('invalid_output_path', `Invalid output path: "${input.output}". Must be an absolute path with no traversal segments.`);
546
561
  }
547
562
  ctx.log.info('Rendering scene', {
548
563
  elements: input.elements.length,
@@ -555,16 +570,16 @@ export const pixooComposeScene = tool('pixoo_compose_scene', {
555
570
  let renderedFrames;
556
571
  let layoutEntries;
557
572
  try {
558
- ({ frames: renderedFrames, layoutEntries } = await renderScene(bg,
573
+ ({ frames: renderedFrames, layoutEntries } = await renderScene(input.background,
559
574
  // biome-ignore lint: elements are validated by zod discriminated union
560
575
  input.elements, input.frames, ctx, size));
561
576
  }
562
577
  catch (err) {
563
578
  if (err instanceof Error && err.message.includes('Unknown color')) {
564
- throw ctx.fail('invalid_color', `${err.message}. Valid named colors: ${validColorNames}.`, ctx.recoveryFor('invalid_color'));
579
+ throw ctx.fail('invalid_color', `${err.message}. Valid named colors: ${validColorNames}.`);
565
580
  }
566
581
  if (err instanceof McpError && err.data?.['reason'] === 'unknown_icon') {
567
- throw ctx.fail('unknown_icon', `${err.message} Valid icons: ${validIconNames}.`, ctx.recoveryFor('unknown_icon'));
582
+ throw ctx.fail('unknown_icon', `${err.message} Valid icons: ${validIconNames}.`);
568
583
  }
569
584
  throw err;
570
585
  }
@@ -587,6 +602,16 @@ export const pixooComposeScene = tool('pixoo_compose_scene', {
587
602
  else {
588
603
  outputFiles = await autoSavePreview(writePreview);
589
604
  }
605
+ const notices = [];
606
+ const fallback = fallbackGlyphNotice(input.elements.flatMap((el, element) => {
607
+ if (el.type === 'text')
608
+ return [{ element, text: el.text }];
609
+ if (el.type === 'progress' && el.label !== undefined)
610
+ return [{ element, text: el.label }];
611
+ return [];
612
+ }));
613
+ if (fallback)
614
+ notices.push(fallback);
590
615
  let pushed = false;
591
616
  let deviceState;
592
617
  if (input.push) {
@@ -595,10 +620,13 @@ export const pixooComposeScene = tool('pixoo_compose_scene', {
595
620
  ? svc.pushAnimation(renderedFrames, input.speed, ctx)
596
621
  : svc.pushFrame(firstFrame, ctx), outputFiles, writePreview);
597
622
  pushed = true;
598
- const notice = visibilityNotice(deviceState);
599
- if (notice)
600
- ctx.enrich.notice(notice);
623
+ const visibility = visibilityNotice(deviceState);
624
+ if (visibility)
625
+ notices.push(visibility);
601
626
  }
627
+ // ctx.enrich.notice is last-wins, so every notice for this call lands as one string.
628
+ if (notices.length > 0)
629
+ ctx.enrich.notice(notices.join(' '));
602
630
  return {
603
631
  pushed,
604
632
  frames: renderedFrames.length,
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-compose-scene.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-compose-scene.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pixoo-compose-scene.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-compose-scene.tool.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ const CRAFT_CONTENT = {
13
13
 
14
14
  **Legibility floors:** At 64px viewing distance, 1px features vanish. Minimum eye size: 1–2px. Minimum limb gaps: 2 rows. Use standard font (5×7) as the default; compact font (3×5) only when standard doesn't fit.
15
15
 
16
- **Symbols:** standard and compact draw printable ASCII plus \`° ← ↑ → ↓ ▲ ▼ ♥ · …\`, so \`72°F\`, \`▲3 ▼2\`, and \`← BACK\` print as written.
16
+ **Symbols:** standard and compact draw printable ASCII plus \`° ← ↑ → ↓ ▲ ▼ ♥ · …\`, so \`72°F\`, \`▲3 ▼2\`, and \`← BACK\` print as written. Any other character draws as \`?\` — \`€\`, \`×\`, typographic quotes and dashes (\`’ —\`), a newline inside one string, and the invisible U+FE0F that often follows \`♥\` — and the response notice names each one with its code point and element index. Spell them in ASCII (\`EUR\`, \`x\`, \`'\`, \`-\`), and pass multi-line text as an array of lines.
17
17
 
18
18
  **Numerals:** \`font: "numerals"\` is an 11×18 face for clocks and big readouts. It draws 0–9, space, and \`: . - + / % ° ?\` only, every digit on one 13px advance so a changing time keeps its width; text holding any other character is rejected. \`12:45\` is 58×18 at scale 1, and at scale 2 (116px) it overflows a 64px panel. Auto-fit never picks numerals — set it explicitly, and put units and labels in a standard or compact text element beside it with pixoo_compose_scene.
19
19
 
@@ -19,7 +19,7 @@ export declare const pixooDiscoverDevices: import("@cyanheads/mcp-ts-core").Tool
19
19
  readonly code: JsonRpcErrorCode.ServiceUnavailable;
20
20
  readonly when: "Divoom cloud discovery endpoint is unreachable.";
21
21
  readonly retryable: true;
22
- readonly recovery: "Ensure this server has internet access. If the device is on a different subnet, set PIXOO_IP manually.";
22
+ readonly recovery: "Ensure this server has internet access for the Divoom discovery endpoint, or set PIXOO_IP manually.";
23
23
  readonly thrownBy: "service";
24
24
  }], {
25
25
  readonly notice: z.ZodOptional<z.ZodString>;
@@ -51,7 +51,7 @@ export const pixooDiscoverDevices = tool('pixoo_discover_devices', {
51
51
  code: JsonRpcErrorCode.ServiceUnavailable,
52
52
  when: 'Divoom cloud discovery endpoint is unreachable.',
53
53
  retryable: true,
54
- recovery: 'Ensure this server has internet access. If the device is on a different subnet, set PIXOO_IP manually.',
54
+ recovery: 'Ensure this server has internet access for the Divoom discovery endpoint, or set PIXOO_IP manually.',
55
55
  thrownBy: 'service',
56
56
  },
57
57
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-discover-devices.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-discover-devices.tool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pixoo-discover-devices.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-discover-devices.tool.ts"],"names":[],"mappings":"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"}