@cyanheads/pixoo-mcp-server 1.1.3 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +19 -13
- package/CLAUDE.md +19 -13
- package/README.md +16 -14
- package/changelog/1.1.x/1.1.4.md +22 -0
- package/changelog/1.2.x/1.2.0.md +28 -0
- package/dist/mcp-server/resources/definitions/pixoo-design-guide.resource.d.ts.map +1 -1
- package/dist/mcp-server/resources/definitions/pixoo-design-guide.resource.js +1 -0
- package/dist/mcp-server/resources/definitions/pixoo-design-guide.resource.js.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.d.ts +6 -0
- package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.js +32 -41
- package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-control-device.tool.d.ts +3 -1
- package/dist/mcp-server/tools/definitions/pixoo-control-device.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-control-device.tool.js +20 -20
- package/dist/mcp-server/tools/definitions/pixoo-control-device.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.d.ts +3 -3
- package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.js +56 -44
- package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.d.ts +7 -0
- package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.js +128 -32
- package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-overlay-text.tool.d.ts +5 -0
- package/dist/mcp-server/tools/definitions/pixoo-overlay-text.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-overlay-text.tool.js +38 -13
- package/dist/mcp-server/tools/definitions/pixoo-overlay-text.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.d.ts +6 -0
- package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.d.ts.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.js +16 -8
- package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.js.map +1 -1
- package/dist/mcp-server/tools/device-push.d.ts +24 -0
- package/dist/mcp-server/tools/device-push.d.ts.map +1 -0
- package/dist/mcp-server/tools/device-push.js +50 -0
- package/dist/mcp-server/tools/device-push.js.map +1 -0
- package/dist/renderer/preview.d.ts +17 -19
- package/dist/renderer/preview.d.ts.map +1 -1
- package/dist/renderer/preview.js +55 -34
- package/dist/renderer/preview.js.map +1 -1
- package/dist/renderer/remote-image.d.ts +6 -2
- package/dist/renderer/remote-image.d.ts.map +1 -1
- package/dist/renderer/remote-image.js +31 -7
- package/dist/renderer/remote-image.js.map +1 -1
- package/dist/renderer/scene-renderer.d.ts +14 -9
- package/dist/renderer/scene-renderer.d.ts.map +1 -1
- package/dist/renderer/scene-renderer.js +51 -30
- package/dist/renderer/scene-renderer.js.map +1 -1
- package/dist/renderer/text-engine.d.ts +14 -1
- package/dist/renderer/text-engine.d.ts.map +1 -1
- package/dist/renderer/text-engine.js +22 -4
- package/dist/renderer/text-engine.js.map +1 -1
- package/dist/services/pixoo/pixoo-service.d.ts +14 -1
- package/dist/services/pixoo/pixoo-service.d.ts.map +1 -1
- package/dist/services/pixoo/pixoo-service.js +39 -16
- package/dist/services/pixoo/pixoo-service.js.map +1 -1
- package/package.json +1 -1
- package/server.json +3 -3
|
@@ -6,11 +6,56 @@ import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
|
6
6
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
7
7
|
import { Canvas, FONT_3x5, FONT_5x7, measureText, NAMED_COLORS, } from '@cyanheads/pixoo-toolkit';
|
|
8
8
|
import { getServerConfig } from '../../../config/server-config.js';
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
9
|
+
import { pushKeepingPreview, visibilityNotice } from '../device-push.js';
|
|
10
|
+
import { autoSavePreview, buildContactSheet, saveGifPreview, savePngPreview, } from '../../../renderer/preview.js';
|
|
11
|
+
import { applyBackground, renderFrame, } from '../../../renderer/scene-renderer.js';
|
|
12
|
+
import { drawStyledText, renderAutoFitText, resolveX, scrollCycle, } from '../../../renderer/text-engine.js';
|
|
12
13
|
import { THEMES } from '../../../renderer/themes.js';
|
|
13
14
|
import { getPixooService } from '../../../services/pixoo/pixoo-service.js';
|
|
15
|
+
/** Frame delay for effect animations — the pixoo_compose_scene default. */
|
|
16
|
+
const ANIMATION_SPEED_MS = 150;
|
|
17
|
+
/** Length of a float or pulse loop, in frames. */
|
|
18
|
+
const EFFECT_FRAMES = 20;
|
|
19
|
+
/** Offset of a line `lineW` wide within a block `blockW` wide. */
|
|
20
|
+
function alignOffset(align, blockW, lineW) {
|
|
21
|
+
if (align === 'left')
|
|
22
|
+
return 0;
|
|
23
|
+
if (align === 'right')
|
|
24
|
+
return blockW - lineW;
|
|
25
|
+
return Math.floor((blockW - lineW) / 2);
|
|
26
|
+
}
|
|
27
|
+
/** Text elements load no images or sprites, so every frame renders against empty caches. */
|
|
28
|
+
const NO_ASSETS = { images: new Map(), sprites: new Map() };
|
|
29
|
+
/** One scroll cycle: the lines move left together from just past the right edge. */
|
|
30
|
+
function scrollFrames(placements, style, bg, size) {
|
|
31
|
+
const left = Math.min(...placements.map((p) => p.x));
|
|
32
|
+
const blockW = Math.max(...placements.map((p) => p.x + p.w)) - left;
|
|
33
|
+
const { frames, step } = scrollCycle(blockW, size);
|
|
34
|
+
return Array.from({ length: frames }, (_, i) => {
|
|
35
|
+
const elements = placements.map((p) => ({
|
|
36
|
+
type: 'text',
|
|
37
|
+
text: p.text,
|
|
38
|
+
x: size - i * step + p.x - left,
|
|
39
|
+
y: p.y,
|
|
40
|
+
font: p.font,
|
|
41
|
+
style,
|
|
42
|
+
}));
|
|
43
|
+
return renderFrame(i, frames, bg, elements, NO_ASSETS, size).canvas;
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
/** A float or pulse loop: the effect compiles to keyframes, as it does on a scene element. */
|
|
47
|
+
function effectFrames(placements, style, bg, size, name) {
|
|
48
|
+
const elements = placements.map((p) => ({
|
|
49
|
+
type: 'text',
|
|
50
|
+
text: p.text,
|
|
51
|
+
x: p.x,
|
|
52
|
+
y: p.y,
|
|
53
|
+
font: p.font,
|
|
54
|
+
style,
|
|
55
|
+
effect: { name },
|
|
56
|
+
}));
|
|
57
|
+
return Array.from({ length: EFFECT_FRAMES }, (_, i) => renderFrame(i, EFFECT_FRAMES, bg, elements, NO_ASSETS, size).canvas);
|
|
58
|
+
}
|
|
14
59
|
const StyleSchema = z
|
|
15
60
|
.object({
|
|
16
61
|
palette: z
|
|
@@ -41,7 +86,7 @@ const StyleSchema = z
|
|
|
41
86
|
.describe('Text style options.');
|
|
42
87
|
export const pixooDisplayText = tool('pixoo_display_text', {
|
|
43
88
|
title: 'pixoo_display_text',
|
|
44
|
-
description: 'Render styled text (theme, gradient, shadow, outline, auto-fit) onto the Pixoo display and push it. Returns the
|
|
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.',
|
|
45
90
|
annotations: { idempotentHint: true, destructiveHint: false },
|
|
46
91
|
input: z.object({
|
|
47
92
|
text: z
|
|
@@ -75,7 +120,7 @@ export const pixooDisplayText = tool('pixoo_display_text', {
|
|
|
75
120
|
font: z
|
|
76
121
|
.enum(['standard', 'compact'])
|
|
77
122
|
.optional()
|
|
78
|
-
.describe('Font variant: standard (5×7) or compact (3×5).
|
|
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.'),
|
|
79
124
|
position: z
|
|
80
125
|
.object({
|
|
81
126
|
x: z
|
|
@@ -98,11 +143,11 @@ export const pixooDisplayText = tool('pixoo_display_text', {
|
|
|
98
143
|
align: z
|
|
99
144
|
.enum(['left', 'center', 'right'])
|
|
100
145
|
.optional()
|
|
101
|
-
.describe('Multi-line text
|
|
146
|
+
.describe('Multi-line text: align every line within the widest line, then place that block with position.x. Omit to place each line by position.x on its own.'),
|
|
102
147
|
effect: z
|
|
103
148
|
.enum(['none', 'auto', 'scroll', 'float', 'pulse'])
|
|
104
149
|
.optional()
|
|
105
|
-
.describe('Animation effect. auto
|
|
150
|
+
.describe('Animation effect. scroll runs the text across the display once, in up to 40 frames; auto scrolls only when the text is too wide to fit; float (gentle bob) and pulse (breathing brightness) loop over 20 frames. An animated result is pushed as an animation and previewed as a grid of its frames. none or omitted renders one static frame.'),
|
|
106
151
|
push: z
|
|
107
152
|
.boolean()
|
|
108
153
|
.default(true)
|
|
@@ -117,6 +162,9 @@ export const pixooDisplayText = tool('pixoo_display_text', {
|
|
|
117
162
|
}),
|
|
118
163
|
output: z.object({
|
|
119
164
|
pushed: z.boolean().describe('True when the device acknowledged the push.'),
|
|
165
|
+
frames: z
|
|
166
|
+
.number()
|
|
167
|
+
.describe('Number of frames rendered: 1 for static text, 2–40 when an effect animates it.'),
|
|
120
168
|
layout: z
|
|
121
169
|
.array(z
|
|
122
170
|
.object({
|
|
@@ -166,7 +214,7 @@ export const pixooDisplayText = tool('pixoo_display_text', {
|
|
|
166
214
|
outputFiles: z
|
|
167
215
|
.array(z.string())
|
|
168
216
|
.optional()
|
|
169
|
-
.describe('Absolute paths to saved PNG
|
|
217
|
+
.describe('Absolute paths to saved preview files (PNG, or GIF when an effect animates the text). Present only when PIXOO_OUTPUT_DIR is configured.'),
|
|
170
218
|
}),
|
|
171
219
|
enrichment: {
|
|
172
220
|
notice: z
|
|
@@ -183,6 +231,13 @@ export const pixooDisplayText = tool('pixoo_display_text', {
|
|
|
183
231
|
recovery: 'Check the device is powered on and on the same network. Retry in a few seconds.',
|
|
184
232
|
thrownBy: 'service',
|
|
185
233
|
},
|
|
234
|
+
{
|
|
235
|
+
reason: 'device_http_error',
|
|
236
|
+
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
237
|
+
when: 'The device answered with a non-2xx HTTP status (retryable for 408, 429, 500, and 502–504).',
|
|
238
|
+
recovery: 'The device may be busy or rebooting; wait a few seconds and retry. If it persists, run pixoo_discover_devices to confirm PIXOO_IP points at the Pixoo.',
|
|
239
|
+
thrownBy: 'service',
|
|
240
|
+
},
|
|
186
241
|
{
|
|
187
242
|
reason: 'device_rejected',
|
|
188
243
|
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
@@ -245,21 +300,32 @@ export const pixooDisplayText = tool('pixoo_display_text', {
|
|
|
245
300
|
style.palette = resolvedPalette;
|
|
246
301
|
// Build canvas — catch resolveColor throws from background/style colors
|
|
247
302
|
const validColorNames = Object.keys(NAMED_COLORS).join(', ');
|
|
303
|
+
// The static render: one frame, and where each line sits in it. Effects animate
|
|
304
|
+
// from these placements, so an effect never changes the layout it starts from.
|
|
248
305
|
const canvas = new Canvas(size);
|
|
249
306
|
const layoutEntries = [];
|
|
307
|
+
const placements = [];
|
|
250
308
|
try {
|
|
251
309
|
applyBackground(canvas, bg);
|
|
252
310
|
// Render text — support multi-line by stacking
|
|
253
311
|
if (lines.length === 1) {
|
|
254
|
-
const entry = renderAutoFitText(canvas, combinedText, input.position?.x ?? 'center', input.position?.y ?? 'center', 0, 0, style, 'auto', 0, 0, 1);
|
|
312
|
+
const entry = renderAutoFitText(canvas, combinedText, input.position?.x ?? 'center', input.position?.y ?? 'center', 0, 0, style, 'auto', 0, 0, 1, input.font);
|
|
255
313
|
layoutEntries.push(entry);
|
|
314
|
+
const font = entry.font ?? 'standard';
|
|
256
315
|
// When the text overflows and scrolls, frame 0 renders at x=size (off-canvas),
|
|
257
316
|
// producing a solid-background preview. Re-render the preview canvas with the
|
|
258
317
|
// text at x=0 so the preview shows legible text.
|
|
259
318
|
if (entry.action === 'scrolling') {
|
|
260
319
|
applyBackground(canvas, bg);
|
|
261
|
-
drawStyledText(canvas, combinedText, 0, entry.box.y, style,
|
|
320
|
+
drawStyledText(canvas, combinedText, 0, entry.box.y, style, font);
|
|
262
321
|
}
|
|
322
|
+
placements.push({
|
|
323
|
+
text: combinedText,
|
|
324
|
+
x: entry.action === 'scrolling' ? 0 : entry.box.x,
|
|
325
|
+
y: entry.box.y,
|
|
326
|
+
w: entry.box.w,
|
|
327
|
+
font,
|
|
328
|
+
});
|
|
263
329
|
}
|
|
264
330
|
else {
|
|
265
331
|
// Multi-line: stack lines vertically
|
|
@@ -275,10 +341,15 @@ export const pixooDisplayText = tool('pixoo_display_text', {
|
|
|
275
341
|
: typeof input.position?.y === 'number'
|
|
276
342
|
? input.position.y
|
|
277
343
|
: Math.floor((size - totalH) / 2);
|
|
344
|
+
const widths = lines.map((line) => measureText(line, { font, scale }));
|
|
345
|
+
const blockW = Math.max(...widths);
|
|
346
|
+
const blockX = resolveX(input.position?.x ?? 'center', blockW, size, 0);
|
|
278
347
|
for (let li = 0; li < lines.length; li++) {
|
|
279
348
|
const lineText = lines[li] ?? '';
|
|
280
|
-
const lineW =
|
|
281
|
-
const lineX =
|
|
349
|
+
const lineW = widths[li] ?? 0;
|
|
350
|
+
const lineX = input.align
|
|
351
|
+
? blockX + alignOffset(input.align, blockW, lineW)
|
|
352
|
+
: resolveX(input.position?.x ?? 'center', lineW, size, 0);
|
|
282
353
|
const lineY = startY + li * lineH;
|
|
283
354
|
drawStyledText(canvas, lineText, lineX, lineY, style, fontVariant);
|
|
284
355
|
layoutEntries.push({
|
|
@@ -290,6 +361,7 @@ export const pixooDisplayText = tool('pixoo_display_text', {
|
|
|
290
361
|
font: fontVariant,
|
|
291
362
|
scale,
|
|
292
363
|
});
|
|
364
|
+
placements.push({ text: lineText, x: lineX, y: lineY, w: lineW, font: fontVariant });
|
|
293
365
|
}
|
|
294
366
|
}
|
|
295
367
|
}
|
|
@@ -299,34 +371,58 @@ export const pixooDisplayText = tool('pixoo_display_text', {
|
|
|
299
371
|
}
|
|
300
372
|
throw err;
|
|
301
373
|
}
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
const savedPath = await savePngPreview(canvas, `display-text-${Date.now()}`);
|
|
309
|
-
if (savedPath)
|
|
310
|
-
outputFiles.push(savedPath);
|
|
311
|
-
// Handle brightness
|
|
312
|
-
if (input.push && input.brightness !== undefined && input.brightness !== null) {
|
|
313
|
-
const svc = getPixooService();
|
|
314
|
-
const brightnessResult = await svc.setBrightness(input.brightness, ctx);
|
|
315
|
-
if (!brightnessResult.ok) {
|
|
316
|
-
ctx.enrich.notice(`Brightness set to ${input.brightness} failed (${brightnessResult.kind}): ${brightnessResult.message}. Render and push will continue.`);
|
|
317
|
-
}
|
|
374
|
+
const scrolls = input.effect === 'scroll' || (input.effect === 'auto' && placements.some((p) => p.w > size));
|
|
375
|
+
let frames = [canvas];
|
|
376
|
+
if (scrolls) {
|
|
377
|
+
frames = scrollFrames(placements, style, bg, size);
|
|
378
|
+
for (const entry of layoutEntries)
|
|
379
|
+
entry.action = 'scrolling';
|
|
318
380
|
}
|
|
319
|
-
|
|
381
|
+
else if (input.effect === 'float' || input.effect === 'pulse') {
|
|
382
|
+
frames = effectFrames(placements, style, bg, size, input.effect);
|
|
383
|
+
}
|
|
384
|
+
const animated = frames.length > 1;
|
|
385
|
+
// The render rides content[] as an image block — the frame itself, or a grid of
|
|
386
|
+
// every frame when animated. It is deliberately absent from `output`: routing it
|
|
387
|
+
// through ctx.content carries the base64 once instead of duplicating it into
|
|
388
|
+
// structuredContent.
|
|
389
|
+
ctx.content.image((await buildContactSheet(frames)).data, 'image/png');
|
|
390
|
+
const baseName = `display-text-${Date.now()}`;
|
|
391
|
+
const writePreview = (dir) => animated
|
|
392
|
+
? saveGifPreview(frames, ANIMATION_SPEED_MS, dir, baseName)
|
|
393
|
+
: savePngPreview(canvas, dir, baseName);
|
|
394
|
+
const outputFiles = await autoSavePreview(writePreview);
|
|
395
|
+
const notices = [];
|
|
320
396
|
let pushed = false;
|
|
321
397
|
let deviceState;
|
|
322
398
|
if (input.push) {
|
|
323
399
|
const svc = getPixooService();
|
|
324
|
-
|
|
325
|
-
|
|
400
|
+
deviceState = await pushKeepingPreview(async () => {
|
|
401
|
+
if (input.brightness !== undefined) {
|
|
402
|
+
const brightnessResult = await svc.setBrightness(input.brightness, ctx);
|
|
403
|
+
if (!brightnessResult.ok) {
|
|
404
|
+
notices.push(`Brightness set to ${input.brightness} failed (${brightnessResult.kind}): ${brightnessResult.message}. Render and push will continue.`);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
ctx.log.info('Pushing display_text to device', {
|
|
408
|
+
textLength: combinedText.length,
|
|
409
|
+
frames: frames.length,
|
|
410
|
+
});
|
|
411
|
+
return animated
|
|
412
|
+
? svc.pushAnimation(frames, ANIMATION_SPEED_MS, ctx)
|
|
413
|
+
: svc.pushFrame(canvas, ctx);
|
|
414
|
+
}, outputFiles, writePreview);
|
|
326
415
|
pushed = true;
|
|
416
|
+
const visibility = visibilityNotice(deviceState);
|
|
417
|
+
if (visibility)
|
|
418
|
+
notices.push(visibility);
|
|
327
419
|
}
|
|
420
|
+
// ctx.enrich.notice is last-wins, so every notice for this call lands as one string.
|
|
421
|
+
if (notices.length > 0)
|
|
422
|
+
ctx.enrich.notice(notices.join(' '));
|
|
328
423
|
return {
|
|
329
424
|
pushed,
|
|
425
|
+
frames: frames.length,
|
|
330
426
|
layout: layoutEntries,
|
|
331
427
|
deviceState,
|
|
332
428
|
outputFiles: outputFiles.length > 0 ? outputFiles : undefined,
|
|
@@ -334,7 +430,7 @@ export const pixooDisplayText = tool('pixoo_display_text', {
|
|
|
334
430
|
},
|
|
335
431
|
format: (result) => {
|
|
336
432
|
const lines = [];
|
|
337
|
-
lines.push(`**Pushed:** ${result.pushed ? 'Yes' : 'No'}`);
|
|
433
|
+
lines.push(`**Pushed:** ${result.pushed ? 'Yes' : 'No'} | **Frames:** ${result.frames}`);
|
|
338
434
|
if (result.deviceState) {
|
|
339
435
|
const ds = result.deviceState;
|
|
340
436
|
lines.push(`**Device:** ${ds.reachable ? 'Reachable' : 'Unreachable'}` +
|
|
@@ -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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"}
|
|
@@ -36,6 +36,11 @@ export declare const pixooOverlayText: import("@cyanheads/mcp-ts-core").ToolDefi
|
|
|
36
36
|
readonly when: "Device is not reachable.";
|
|
37
37
|
readonly retryable: true;
|
|
38
38
|
readonly recovery: "Check the device is powered on and on the same network. Retry in a few seconds.";
|
|
39
|
+
}, {
|
|
40
|
+
readonly reason: "device_http_error";
|
|
41
|
+
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
42
|
+
readonly when: "The device answered with a non-2xx HTTP status (retryable for 408, 429, 500, and 502–504).";
|
|
43
|
+
readonly recovery: "The device may be busy or rebooting; wait a few seconds and retry. If it persists, run pixoo_discover_devices to confirm PIXOO_IP points at the Pixoo.";
|
|
39
44
|
}, {
|
|
40
45
|
readonly reason: "device_rejected";
|
|
41
46
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixoo-overlay-text.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-overlay-text.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"pixoo-overlay-text.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-overlay-text.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,+BAA+B,CAAC;AAKlF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA8M3B,CAAC"}
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
6
6
|
import { JsonRpcErrorCode, validationError } from '@cyanheads/mcp-ts-core/errors';
|
|
7
7
|
import { resolveColor } from '@cyanheads/pixoo-toolkit';
|
|
8
|
-
import {
|
|
8
|
+
import { getServerConfig } from '../../../config/server-config.js';
|
|
9
|
+
import { classifyDeviceFailure, getPixooService } from '../../../services/pixoo/pixoo-service.js';
|
|
9
10
|
export const pixooOverlayText = tool('pixoo_overlay_text', {
|
|
10
11
|
title: 'pixoo_overlay_text',
|
|
11
12
|
description: 'Set or clear a device-native scrolling text overlay. Use mode "set" to add or update an overlay on a slot (0–19); use mode "clear" to remove it. Overlays use device-rendered fonts (115 font IDs, 0–114) and persist across channel switches until explicitly cleared with mode "clear". Not previewable — rendering happens on-device. Best for persistent tickers over pushed scenes; for styled, previewable text use pixoo_display_text instead.',
|
|
@@ -25,14 +26,14 @@ export const pixooOverlayText = tool('pixoo_overlay_text', {
|
|
|
25
26
|
.min(0)
|
|
26
27
|
.max(64)
|
|
27
28
|
.default(0)
|
|
28
|
-
.describe('X start position on display
|
|
29
|
+
.describe('X start position, 0 to display size − 1 (63 on a 64px display; default: 0).'),
|
|
29
30
|
y: z
|
|
30
31
|
.number()
|
|
31
32
|
.int()
|
|
32
33
|
.min(0)
|
|
33
34
|
.max(64)
|
|
34
35
|
.default(0)
|
|
35
|
-
.describe('Y start position on display
|
|
36
|
+
.describe('Y start position, 0 to display size − 1 (63 on a 64px display; default: 0).'),
|
|
36
37
|
font: z
|
|
37
38
|
.number()
|
|
38
39
|
.int()
|
|
@@ -40,7 +41,10 @@ export const pixooOverlayText = tool('pixoo_overlay_text', {
|
|
|
40
41
|
.max(114)
|
|
41
42
|
.default(0)
|
|
42
43
|
.describe('Device font ID (0–114). 0 = default, 18 = arrows, 20 = °C/°F. Device-rendered; no preview.'),
|
|
43
|
-
color: z
|
|
44
|
+
color: z
|
|
45
|
+
.string()
|
|
46
|
+
.default('#ffffff')
|
|
47
|
+
.describe('Text color: hex (#RRGGBB or #RGB) or a named color such as orange (default: white).'),
|
|
44
48
|
speed: z
|
|
45
49
|
.number()
|
|
46
50
|
.int()
|
|
@@ -61,7 +65,7 @@ export const pixooOverlayText = tool('pixoo_overlay_text', {
|
|
|
61
65
|
.int()
|
|
62
66
|
.min(0)
|
|
63
67
|
.optional()
|
|
64
|
-
.describe('Text region width in pixels (
|
|
68
|
+
.describe('Text region width in pixels, 0 to display size (64 on a 64px display; defaults to display width).'),
|
|
65
69
|
}),
|
|
66
70
|
output: z.object({
|
|
67
71
|
acknowledged: z
|
|
@@ -80,6 +84,12 @@ export const pixooOverlayText = tool('pixoo_overlay_text', {
|
|
|
80
84
|
retryable: true,
|
|
81
85
|
recovery: 'Check the device is powered on and on the same network. Retry in a few seconds.',
|
|
82
86
|
},
|
|
87
|
+
{
|
|
88
|
+
reason: 'device_http_error',
|
|
89
|
+
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
90
|
+
when: 'The device answered with a non-2xx HTTP status (retryable for 408, 429, 500, and 502–504).',
|
|
91
|
+
recovery: 'The device may be busy or rebooting; wait a few seconds and retry. If it persists, run pixoo_discover_devices to confirm PIXOO_IP points at the Pixoo.',
|
|
92
|
+
},
|
|
83
93
|
{
|
|
84
94
|
reason: 'device_rejected',
|
|
85
95
|
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
@@ -109,10 +119,11 @@ export const pixooOverlayText = tool('pixoo_overlay_text', {
|
|
|
109
119
|
ctx.log.info('Clearing text overlay', { id: input.id });
|
|
110
120
|
const result = await svc.clearText(input.id, ctx);
|
|
111
121
|
if (!result.ok) {
|
|
112
|
-
const reason
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
122
|
+
const { reason, retryable } = classifyDeviceFailure(result);
|
|
123
|
+
throw ctx.fail(reason, `Clear overlay failed (${result.kind}): ${result.message}`, {
|
|
124
|
+
...ctx.recoveryFor(reason),
|
|
125
|
+
...(retryable !== undefined && { retryable }),
|
|
126
|
+
});
|
|
116
127
|
}
|
|
117
128
|
return { acknowledged: true, mode: 'clear', id: input.id };
|
|
118
129
|
}
|
|
@@ -120,6 +131,19 @@ export const pixooOverlayText = tool('pixoo_overlay_text', {
|
|
|
120
131
|
if (!input.text) {
|
|
121
132
|
throw validationError('text is required when mode is "set".');
|
|
122
133
|
}
|
|
134
|
+
// The schema's ceiling is fixed at import; the configured display sets the real edge.
|
|
135
|
+
const size = getServerConfig().pixooSize;
|
|
136
|
+
for (const [axis, value] of [
|
|
137
|
+
['x', input.x],
|
|
138
|
+
['y', input.y],
|
|
139
|
+
]) {
|
|
140
|
+
if (value >= size) {
|
|
141
|
+
throw validationError(`${axis} must be 0–${size - 1} on a ${size}px display (PIXOO_SIZE=${size}); received ${value}.`, { [axis]: value, max: size - 1 });
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (input.width !== undefined && input.width > size) {
|
|
145
|
+
throw validationError(`width must be 0–${size} on a ${size}px display (PIXOO_SIZE=${size}); received ${input.width}.`, { width: input.width, max: size });
|
|
146
|
+
}
|
|
123
147
|
ctx.log.info('Setting text overlay', { id: input.id, textLength: input.text.length });
|
|
124
148
|
let color;
|
|
125
149
|
try {
|
|
@@ -143,10 +167,11 @@ export const pixooOverlayText = tool('pixoo_overlay_text', {
|
|
|
143
167
|
sendOpts.width = input.width;
|
|
144
168
|
const result = await svc.sendText(sendOpts, ctx);
|
|
145
169
|
if (!result.ok) {
|
|
146
|
-
const reason
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
170
|
+
const { reason, retryable } = classifyDeviceFailure(result);
|
|
171
|
+
throw ctx.fail(reason, `Set overlay failed (${result.kind}): ${result.message}`, {
|
|
172
|
+
...ctx.recoveryFor(reason),
|
|
173
|
+
...(retryable !== undefined && { retryable }),
|
|
174
|
+
});
|
|
150
175
|
}
|
|
151
176
|
return { acknowledged: true, mode: 'set', id: input.id };
|
|
152
177
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pixoo-overlay-text.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-overlay-text.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"pixoo-overlay-text.tool.js","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-overlay-text.tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,12 @@ export declare const pixooPushImage: import("@cyanheads/mcp-ts-core").ToolDefini
|
|
|
34
34
|
readonly retryable: true;
|
|
35
35
|
readonly recovery: "Check the device is powered on and on the same network. Retry in a few seconds.";
|
|
36
36
|
readonly thrownBy: "service";
|
|
37
|
+
}, {
|
|
38
|
+
readonly reason: "device_http_error";
|
|
39
|
+
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
40
|
+
readonly when: "The device answered with a non-2xx HTTP status (retryable for 408, 429, 500, and 502–504).";
|
|
41
|
+
readonly recovery: "The device may be busy or rebooting; wait a few seconds and retry. If it persists, run pixoo_discover_devices to confirm PIXOO_IP points at the Pixoo.";
|
|
42
|
+
readonly thrownBy: "service";
|
|
37
43
|
}, {
|
|
38
44
|
readonly reason: "device_rejected";
|
|
39
45
|
readonly code: JsonRpcErrorCode.ServiceUnavailable;
|
|
@@ -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;
|
|
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"}
|
|
@@ -7,7 +7,8 @@ import { tool, z } from '@cyanheads/mcp-ts-core';
|
|
|
7
7
|
import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
|
|
8
8
|
import { loadImage } from '@cyanheads/pixoo-toolkit';
|
|
9
9
|
import { getServerConfig } from '../../../config/server-config.js';
|
|
10
|
-
import {
|
|
10
|
+
import { pushKeepingPreview, visibilityNotice } from '../device-push.js';
|
|
11
|
+
import { autoSavePreview, encodePreviewBlock, savePngPreview, } from '../../../renderer/preview.js';
|
|
11
12
|
import { fetchRemoteImageToTempPng, isRemoteSource } from '../../../renderer/remote-image.js';
|
|
12
13
|
import { getPixooService } from '../../../services/pixoo/pixoo-service.js';
|
|
13
14
|
export const pixooPushImage = tool('pixoo_push_image', {
|
|
@@ -69,6 +70,13 @@ export const pixooPushImage = tool('pixoo_push_image', {
|
|
|
69
70
|
recovery: 'Check the device is powered on and on the same network. Retry in a few seconds.',
|
|
70
71
|
thrownBy: 'service',
|
|
71
72
|
},
|
|
73
|
+
{
|
|
74
|
+
reason: 'device_http_error',
|
|
75
|
+
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
76
|
+
when: 'The device answered with a non-2xx HTTP status (retryable for 408, 429, 500, and 502–504).',
|
|
77
|
+
recovery: 'The device may be busy or rebooting; wait a few seconds and retry. If it persists, run pixoo_discover_devices to confirm PIXOO_IP points at the Pixoo.',
|
|
78
|
+
thrownBy: 'service',
|
|
79
|
+
},
|
|
72
80
|
{
|
|
73
81
|
reason: 'device_rejected',
|
|
74
82
|
code: JsonRpcErrorCode.ServiceUnavailable,
|
|
@@ -123,18 +131,18 @@ export const pixooPushImage = tool('pixoo_push_image', {
|
|
|
123
131
|
// absent from `output` — routing it through ctx.content carries the base64 once
|
|
124
132
|
// instead of duplicating it into structuredContent.
|
|
125
133
|
ctx.content.image(encodePreviewBlock(canvas).data, 'image/png');
|
|
126
|
-
|
|
127
|
-
const
|
|
128
|
-
const
|
|
129
|
-
if (savedPath)
|
|
130
|
-
outputFiles.push(savedPath);
|
|
131
|
-
// Push
|
|
134
|
+
const baseName = `push-image-${Date.now()}`;
|
|
135
|
+
const writePreview = (dir) => savePngPreview(canvas, dir, baseName);
|
|
136
|
+
const outputFiles = await autoSavePreview(writePreview);
|
|
132
137
|
let pushed = false;
|
|
133
138
|
let deviceState;
|
|
134
139
|
if (input.push) {
|
|
135
140
|
const svc = getPixooService();
|
|
136
|
-
deviceState = await svc.pushFrame(canvas, ctx);
|
|
141
|
+
deviceState = await pushKeepingPreview(() => svc.pushFrame(canvas, ctx), outputFiles, writePreview);
|
|
137
142
|
pushed = true;
|
|
143
|
+
const notice = visibilityNotice(deviceState);
|
|
144
|
+
if (notice)
|
|
145
|
+
ctx.enrich.notice(notice);
|
|
138
146
|
}
|
|
139
147
|
return {
|
|
140
148
|
pushed,
|
|
@@ -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,
|
|
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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"}
|