@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.
- package/AGENTS.md +10 -7
- package/CLAUDE.md +10 -7
- package/Dockerfile +30 -10
- package/README.md +65 -86
- package/changelog/1.2.x/1.2.1.md +35 -0
- package/changelog/1.2.x/1.2.2.md +40 -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 +4 -1
- 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 +173 -13
- 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 +129 -28
- package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.js.map +1 -1
- 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 +15 -7
- 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 +2 -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 +27 -12
- package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.js.map +1 -1
- package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.d.ts +30 -1
- 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 +105 -26
- package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.js.map +1 -1
- package/dist/mcp-server/tools/finish-schema.d.ts +28 -0
- package/dist/mcp-server/tools/finish-schema.d.ts.map +1 -0
- package/dist/mcp-server/tools/finish-schema.js +42 -0
- package/dist/mcp-server/tools/finish-schema.js.map +1 -0
- package/dist/renderer/finish.d.ts +34 -0
- package/dist/renderer/finish.d.ts.map +1 -0
- package/dist/renderer/finish.js +62 -0
- package/dist/renderer/finish.js.map +1 -0
- package/dist/renderer/icons.d.ts +14 -4
- package/dist/renderer/icons.d.ts.map +1 -1
- package/dist/renderer/icons.js +30 -22
- package/dist/renderer/icons.js.map +1 -1
- package/dist/renderer/keyframes.d.ts +40 -4
- package/dist/renderer/keyframes.d.ts.map +1 -1
- package/dist/renderer/keyframes.js +100 -53
- package/dist/renderer/keyframes.js.map +1 -1
- package/dist/renderer/remote-image.d.ts +13 -7
- package/dist/renderer/remote-image.d.ts.map +1 -1
- package/dist/renderer/remote-image.js +17 -21
- package/dist/renderer/remote-image.js.map +1 -1
- package/dist/renderer/scene-renderer.d.ts +45 -6
- package/dist/renderer/scene-renderer.d.ts.map +1 -1
- package/dist/renderer/scene-renderer.js +328 -159
- package/dist/renderer/scene-renderer.js.map +1 -1
- package/dist/renderer/text-engine.d.ts +24 -5
- package/dist/renderer/text-engine.d.ts.map +1 -1
- package/dist/renderer/text-engine.js +51 -28
- package/dist/renderer/text-engine.js.map +1 -1
- package/package.json +7 -6
- 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,
|
|
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
|
|
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(
|
|
122
|
+
.enum(FONT_VARIANTS)
|
|
122
123
|
.optional()
|
|
123
|
-
.describe('Font variant: standard (5×7) or compact (3×5),
|
|
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(
|
|
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.
|
|
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
|
|
333
|
-
const font = fontVariant
|
|
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
|
|
359
|
-
fits:
|
|
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":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EACL,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,YAAY,GAEb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACzF,OAAO,EACL,eAAe,EACf,iBAAiB,EAEjB,cAAc,EACd,cAAc,GACf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,eAAe,EAEf,WAAW,GAEZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,cAAc,EAGd,iBAAiB,EACjB,QAAQ,EACR,WAAW,GAEZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAkB,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAA4B,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAE9F,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAE/B,kDAAkD;AAClD,MAAM,aAAa,GAAG,EAAE,CAAC;AAWzB,kEAAkE;AAClE,SAAS,WAAW,CAAC,KAAkC,EAAE,MAAc,EAAE,KAAa;IACpF,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,CAAC,CAAC;IAC/B,IAAI,KAAK,KAAK,OAAO;QAAE,OAAO,MAAM,GAAG,KAAK,CAAC;IAC7C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,4FAA4F;AAC5F,MAAM,SAAS,GAAe,EAAE,MAAM,EAAE,IAAI,GAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC;AAExE,oFAAoF;AACpF,SAAS,YAAY,CACnB,UAA2B,EAC3B,KAAgB,EAChB,EAAkB,EAClB,IAAe;IAEf,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IACpE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,QAAQ,GAAkB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrD,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI;YAC/B,CAAC,EAAE,CAAC,CAAC,CAAC;YACN,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK;SACN,CAAC,CAAC,CAAC;QACJ,OAAO,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC;IACtE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,8FAA8F;AAC9F,SAAS,YAAY,CACnB,UAA2B,EAC3B,KAAgB,EAChB,EAAkB,EAClB,IAAe,EACf,IAAuB;IAEvB,MAAM,QAAQ,GAAkB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK;QACL,MAAM,EAAE,EAAE,IAAI,EAAE;KACjB,CAAC,CAAC,CAAC;IACJ,OAAO,KAAK,CAAC,IAAI,CACf,EAAE,MAAM,EAAE,aAAa,EAAE,EACzB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,MAAM,CAC9E,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,CAAC;KAClB,MAAM,CAAC;IACN,OAAO,EAAE,CAAC;SACP,KAAK,CAAC;QACL,CAAC;aACE,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;aACpE,QAAQ,CAAC,qDAAqD,CAAC;QAClE,CAAC;aACE,MAAM,CAAC;YACN,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6BAA6B,CAAC;YACxD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;SACxD,CAAC;aACD,QAAQ,CAAC,+DAA+D,CAAC;KAC7E,CAAC;SACD,QAAQ,EAAE;SACV,QAAQ,CAAC,gEAAgE,CAAC;IAC7E,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;IACvE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;IACnF,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,wEAAwE,CAAC;IACrF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;CAC9E,CAAC;KACD,QAAQ,CAAC,qBAAqB,CAAC,CAAC;AAEnC,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAC,oBAAoB,EAAE;IACzD,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,8aAA8a;IAChb,WAAW,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE;IAE7D,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC;aACJ,KAAK,CAAC;YACL,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;YACxD,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC;SAC/C,CAAC;aACD,QAAQ,CAAC,4CAA4C,CAAC;QACzD,KAAK,EAAE,CAAC;aACL,IAAI,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;aACtE,QAAQ,EAAE;aACV,QAAQ,CAAC,wEAAwE,CAAC;QACrF,UAAU,EAAE,CAAC;aACV,KAAK,CAAC;YACL,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sBAAsB,CAAC;YAC3C,CAAC;iBACE,MAAM,CAAC;gBACN,QAAQ,EAAE,CAAC;qBACR,MAAM,CAAC;oBACN,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,+BAA+B,CAAC;oBAClE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;oBAClD,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;iBAC/C,CAAC;qBACD,QAAQ,CAAC,oCAAoC,CAAC;aAClD,CAAC;iBACD,QAAQ,CAAC,6BAA6B,CAAC;SAC3C,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CAAC,oEAAoE,CAAC;QACjF,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;QACtF,IAAI,EAAE,CAAC;aACJ,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;aAC7B,QAAQ,EAAE;aACV,QAAQ,CACP,sPAAsP,CACvP;QACH,QAAQ,EAAE,CAAC;aACR,MAAM,CAAC;YACN,CAAC,EAAE,CAAC;iBACD,KAAK,CAAC;gBACL,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;gBACnE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,gCAAgC,CAAC;aAC/E,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,4CAA4C,CAAC;YACzD,CAAC,EAAE,CAAC;iBACD,KAAK,CAAC;gBACL,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;gBAClE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;aAC7E,CAAC;iBACD,QAAQ,EAAE;iBACV,QAAQ,CAAC,4CAA4C,CAAC;SAC1D,CAAC;aACD,QAAQ,EAAE;aACV,QAAQ,CAAC,+BAA+B,CAAC;QAC5C,KAAK,EAAE,CAAC;aACL,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aACjC,QAAQ,EAAE;aACV,QAAQ,CACP,oJAAoJ,CACrJ;QACH,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;aAClD,QAAQ,EAAE;aACV,QAAQ,CACP,gVAAgV,CACjV;QACH,IAAI,EAAE,CAAC;aACJ,OAAO,EAAE;aACT,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,CAAC,wDAAwD,CAAC;QACrE,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,GAAG,EAAE;aACL,GAAG,CAAC,CAAC,CAAC;aACN,GAAG,CAAC,GAAG,CAAC;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,gFAAgF,CAAC;KAC9F,CAAC;IAEF,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACf,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC3E,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,CAAC,gFAAgF,CAAC;QAC7F,MAAM,EAAE,CAAC;aACN,KAAK,CACJ,CAAC;aACE,MAAM,CAAC;YACN,OAAO,EAAE,CAAC;iBACP,KAAK,CAAC;gBACL,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;gBAC1E,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;aACxB,CAAC;iBACD,QAAQ,CAAC,yDAAyD,CAAC;YACtE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YAC1C,GAAG,EAAE,CAAC;iBACH,MAAM,CAAC;gBACN,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;gBACvD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;gBACvD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;gBAChD,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;aAClD,CAAC;iBACD,QAAQ,CAAC,wBAAwB,CAAC;YACrC,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;YACrE,MAAM,EAAE,CAAC;iBACN,IAAI,CAAC,CAAC,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;iBACnF,QAAQ,CAAC,wCAAwC,CAAC;YACrD,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;YAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;SAC/D,CAAC;aACD,QAAQ,CAAC,sCAAsC,CAAC,CACpD;aACA,QAAQ,CAAC,sDAAsD,CAAC;QACnE,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,yIAAyI,CAC1I;KACJ,CAAC;IAEF,UAAU,EAAE;QACV,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,4DAA4D,CAAC;KAC1E;IAED,MAAM,EAAE;QACN;YACE,MAAM,EAAE,oBAAoB;YAC5B,IAAI,EAAE,gBAAgB,CAAC,kBAAkB;YACzC,IAAI,EAAE,2CAA2C;YACjD,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,eAAe;YACvB,IAAI,EAAE,gBAAgB,CAAC,aAAa;YACpC,IAAI,EAAE,sCAAsC;YAC5C,QAAQ,EACN,+KAA+K;SAClL;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,qBAAqB;QACrB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpE,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAErC,qBAAqB;QACrB,IAAI,EAAkB,CAAC;QACvB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,OAAO,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBACzC,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YACvB,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAkB,EAAE,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,EAAE,GAAG,SAAS,CAAC;QACjB,CAAC;QAED,gBAAgB;QAChB,MAAM,cAAc,GAAG,KAAK,CAAC,KAAK;YAChC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAkB,CAAC,EAAE,WAAW,IAAI,SAAS,CAAC;YAC9D,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAkB,CAAC,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEhG,MAAM,KAAK,GAAc;YACvB,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,IAAI,aAAa;SAC7C,CAAC;QACF,IAAI,KAAK,CAAC,KAAK,EAAE,OAAO,KAAK,SAAS;YAAE,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC;QAC5E,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;QACtE,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK,SAAS;YAAE,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;QACtE,MAAM,eAAe,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,IAAI,cAAc,CAAC;QAC/D,IAAI,eAAe,KAAK,SAAS;YAAE,KAAK,CAAC,OAAO,GAAG,eAAe,CAAC;QAEnE,wEAAwE;QACxE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,gFAAgF;QAChF,+EAA+E;QAC/E,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,aAAa,GAAkB,EAAE,CAAC;QACxC,MAAM,UAAU,GAAoB,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YAE5B,+CAA+C;YAC/C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,KAAK,GAAG,iBAAiB,CAC7B,MAAM,EACN,YAAY,EACZ,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,QAAQ,EAC7B,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,QAAQ,EAC7B,CAAC,EACD,CAAC,EACD,KAAK,EACL,MAAM,EACN,CAAC,EACD,CAAC,EACD,CAAC,EACD,KAAK,CAAC,IAAI,CACX,CAAC;gBACF,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,UAAU,CAAC;gBAEtC,+EAA+E;gBAC/E,8EAA8E;gBAC9E,iDAAiD;gBACjD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACjC,eAAe,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;oBAC5B,cAAc,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gBACpE,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,YAAY;oBAClB,CAAC,EAAE,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACjD,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;oBACd,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,qCAAqC;gBACrC,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;gBACtE,MAAM,IAAI,GAAG,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;gBAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;gBAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC;gBACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpC,MAAM,MAAM,GACV,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,KAAK;oBACzB,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,QAAQ;wBAC9B,CAAC,CAAC,IAAI,GAAG,MAAM;wBACf,CAAC,CAAC,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,KAAK,QAAQ;4BACrC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;4BAClB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAE1C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;gBACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAExE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC;oBACzC,MAAM,QAAQ,GAAG,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;oBACjC,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;wBACvB,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC;wBAClD,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC5D,MAAM,KAAK,GAAG,MAAM,GAAG,EAAE,GAAG,KAAK,CAAC;oBAClC,cAAc,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC;oBACnE,aAAa,CAAC,IAAI,CAAC;wBACjB,OAAO,EAAE,EAAE;wBACX,IAAI,EAAE,MAAM;wBACZ,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,KAAK,EAAE;wBAC7D,IAAI,EAAE,KAAK,GAAG,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,GAAG,KAAK,IAAI,IAAI;wBAClE,MAAM,EAAE,MAAM;wBACd,IAAI,EAAE,WAAW;wBACjB,KAAK;qBACN,CAAC,CAAC;oBACH,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;gBACvF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;gBAClE,MAAM,GAAG,CAAC,IAAI,CACZ,eAAe,EACf,GAAG,GAAG,CAAC,OAAO,yBAAyB,eAAe,GAAG,EACzD,GAAG,CAAC,WAAW,CAAC,eAAe,CAAC,CACjC,CAAC;YACJ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,MAAM,OAAO,GACX,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QAC/F,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;QACtB,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACnD,KAAK,MAAM,KAAK,IAAI,aAAa;gBAAE,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;QAChE,CAAC;aAAM,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YAChE,MAAM,GAAG,YAAY,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnC,gFAAgF;QAChF,iFAAiF;QACjF,6EAA6E;QAC7E,qBAAqB;QACrB,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAEvE,MAAM,QAAQ,GAAG,gBAAgB,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QAC9C,MAAM,YAAY,GAAkB,CAAC,GAAG,EAAE,EAAE,CAC1C,QAAQ;YACN,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,QAAQ,CAAC;YAC3D,CAAC,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,YAAY,CAAC,CAAC;QAExD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,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,KAAK,IAAI,EAAE;gBACT,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBACnC,MAAM,gBAAgB,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBACxE,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC;wBACzB,OAAO,CAAC,IAAI,CACV,qBAAqB,KAAK,CAAC,UAAU,YAAY,gBAAgB,CAAC,IAAI,MAAM,gBAAgB,CAAC,OAAO,kCAAkC,CACvI,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE;oBAC7C,UAAU,EAAE,YAAY,CAAC,MAAM;oBAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;iBACtB,CAAC,CAAC;gBACH,OAAO,QAAQ;oBACb,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,kBAAkB,EAAE,GAAG,CAAC;oBACpD,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;YACjC,CAAC,EACD,WAAW,EACX,YAAY,CACb,CAAC;YACF,MAAM,GAAG,IAAI,CAAC;YACd,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;YACjD,IAAI,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QACD,qFAAqF;QACrF,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;YAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7D,OAAO;YACL,MAAM;YACN,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,MAAM,EAAE,aAAa;YACrB,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,kBAAkB,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QAEzF,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,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC5B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzD,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3E,KAAK,CAAC,IAAI,CACR,MAAM,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE;gBAClG,SAAS,KAAK,CAAC,IAAI,WAAW,KAAK,CAAC,MAAM,GAAG,QAAQ,GAAG,SAAS,EAAE,CACtE,CAAC;QACJ,CAAC;QAED,IAAI,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,gBAAgB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,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-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: "
|
|
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;
|
|
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 {
|
|
12
|
-
import {
|
|
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
|
|
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: '
|
|
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
|
-
//
|
|
105
|
-
|
|
106
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
//
|
|
132
|
-
//
|
|
133
|
-
ctx.content.
|
|
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) =>
|
|
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(
|
|
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
|
-
|
|
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,
|
|
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"}
|