@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.
Files changed (58) hide show
  1. package/AGENTS.md +19 -13
  2. package/CLAUDE.md +19 -13
  3. package/README.md +16 -14
  4. package/changelog/1.1.x/1.1.4.md +22 -0
  5. package/changelog/1.2.x/1.2.0.md +28 -0
  6. package/dist/mcp-server/resources/definitions/pixoo-design-guide.resource.d.ts.map +1 -1
  7. package/dist/mcp-server/resources/definitions/pixoo-design-guide.resource.js +1 -0
  8. package/dist/mcp-server/resources/definitions/pixoo-design-guide.resource.js.map +1 -1
  9. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.d.ts +6 -0
  10. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.d.ts.map +1 -1
  11. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.js +32 -41
  12. package/dist/mcp-server/tools/definitions/pixoo-compose-scene.tool.js.map +1 -1
  13. package/dist/mcp-server/tools/definitions/pixoo-control-device.tool.d.ts +3 -1
  14. package/dist/mcp-server/tools/definitions/pixoo-control-device.tool.d.ts.map +1 -1
  15. package/dist/mcp-server/tools/definitions/pixoo-control-device.tool.js +20 -20
  16. package/dist/mcp-server/tools/definitions/pixoo-control-device.tool.js.map +1 -1
  17. package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.d.ts +3 -3
  18. package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.d.ts.map +1 -1
  19. package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.js +56 -44
  20. package/dist/mcp-server/tools/definitions/pixoo-design-brief.tool.js.map +1 -1
  21. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.d.ts +7 -0
  22. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.d.ts.map +1 -1
  23. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.js +128 -32
  24. package/dist/mcp-server/tools/definitions/pixoo-display-text.tool.js.map +1 -1
  25. package/dist/mcp-server/tools/definitions/pixoo-overlay-text.tool.d.ts +5 -0
  26. package/dist/mcp-server/tools/definitions/pixoo-overlay-text.tool.d.ts.map +1 -1
  27. package/dist/mcp-server/tools/definitions/pixoo-overlay-text.tool.js +38 -13
  28. package/dist/mcp-server/tools/definitions/pixoo-overlay-text.tool.js.map +1 -1
  29. package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.d.ts +6 -0
  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 +16 -8
  32. package/dist/mcp-server/tools/definitions/pixoo-push-image.tool.js.map +1 -1
  33. package/dist/mcp-server/tools/device-push.d.ts +24 -0
  34. package/dist/mcp-server/tools/device-push.d.ts.map +1 -0
  35. package/dist/mcp-server/tools/device-push.js +50 -0
  36. package/dist/mcp-server/tools/device-push.js.map +1 -0
  37. package/dist/renderer/preview.d.ts +17 -19
  38. package/dist/renderer/preview.d.ts.map +1 -1
  39. package/dist/renderer/preview.js +55 -34
  40. package/dist/renderer/preview.js.map +1 -1
  41. package/dist/renderer/remote-image.d.ts +6 -2
  42. package/dist/renderer/remote-image.d.ts.map +1 -1
  43. package/dist/renderer/remote-image.js +31 -7
  44. package/dist/renderer/remote-image.js.map +1 -1
  45. package/dist/renderer/scene-renderer.d.ts +14 -9
  46. package/dist/renderer/scene-renderer.d.ts.map +1 -1
  47. package/dist/renderer/scene-renderer.js +51 -30
  48. package/dist/renderer/scene-renderer.js.map +1 -1
  49. package/dist/renderer/text-engine.d.ts +14 -1
  50. package/dist/renderer/text-engine.d.ts.map +1 -1
  51. package/dist/renderer/text-engine.js +22 -4
  52. package/dist/renderer/text-engine.js.map +1 -1
  53. package/dist/services/pixoo/pixoo-service.d.ts +14 -1
  54. package/dist/services/pixoo/pixoo-service.d.ts.map +1 -1
  55. package/dist/services/pixoo/pixoo-service.js +39 -16
  56. package/dist/services/pixoo/pixoo-service.js.map +1 -1
  57. package/package.json +1 -1
  58. package/server.json +3 -3
package/AGENTS.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** pixoo-mcp-server
4
- **Version:** 1.1.3
4
+ **Version:** 1.2.0
5
5
  **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.6`
6
6
  **Engines:** Bun ≥1.4.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/server` ^2.0.0 (protocol revision 2026-07-28 alongside the 2025 era)
@@ -180,18 +180,22 @@ Handlers throw — the framework catches, classifies, and formats.
180
180
 
181
181
  Pixoo-specific error reasons declared on tools:
182
182
 
183
- | Reason | Code | When |
184
- |:-------|:-----|:-----|
185
- | `device_unreachable` | `ServiceUnavailable` | Toolkit result kind `network`/`timeout` |
186
- | `device_http_error` | `ServiceUnavailable` | Non-2xx from the device's HTTP server |
187
- | `device_rejected` | `ServiceUnavailable` | Firmware returned non-zero `error_code` |
188
- | `no_device_configured` | `InvalidParams` | Device tool called without `PIXOO_IP` |
189
- | `asset_not_found` | `NotFound` | Image/sprite path or URL unreadable |
190
- | `invalid_color` | `InvalidParams` | `resolveColor` throw — invalid color name or format |
191
- | `unknown_icon` | `InvalidParams` | Icon name not in registry |
192
- | `discovery_failed` | `ServiceUnavailable` | Divoom cloud unreachable |
183
+ | Reason | Code | When | `retryable` |
184
+ |:-------|:-----|:-----|:------------|
185
+ | `device_unreachable` | `ServiceUnavailable` | Toolkit result kind `network`/`timeout` | `true` |
186
+ | `device_http_error` | `ServiceUnavailable` | Non-2xx from the device's HTTP server | `true` for 408, 429, 500, 502–504; `false` otherwise |
187
+ | `device_rejected` | `ServiceUnavailable` | Firmware returned non-zero `error_code` | — |
188
+ | `no_device_configured` | `InvalidParams` | Device tool called without `PIXOO_IP` | — |
189
+ | `asset_not_found` | `NotFound` | Image/sprite path or URL unreadable | — |
190
+ | `invalid_color` | `InvalidParams` | `resolveColor` throw — invalid color name or format | — |
191
+ | `unknown_icon` | `InvalidParams` | Icon name not in registry | — |
192
+ | `discovery_failed` | `ServiceUnavailable` | Divoom cloud unreachable | `true` |
193
193
 
194
- `PixooService` and `src/renderer/` raise the device, configuration, and remote-asset reasons themselves (a factory error carrying `data.reason`), so those entries carry `thrownBy: 'service'` — lint-only metadata that keeps `error-contract-unthrown` from reading them as dead. A reason the handler throws with `ctx.fail` stays unmarked, and every such site forwards its declared recovery with `ctx.recoveryFor`. A computed reason forwards the same way (`ctx.recoveryFor(reason)`); `lint:mcp` skips a definition whose `ctx.fail` reason is non-literal, so a clean lint says nothing about those sites.
194
+ `PixooService` and `src/renderer/` raise the device, configuration, and asset reasons themselves (a factory error carrying `data.reason`), so those entries carry `thrownBy: 'service'` — lint-only metadata that keeps `error-contract-unthrown` from reading them as dead. A reason the handler throws with `ctx.fail` stays unmarked, and every such site forwards its declared recovery with `ctx.recoveryFor`. A computed reason forwards the same way (`ctx.recoveryFor(reason)`); `lint:mcp` skips a definition whose `ctx.fail` reason is non-literal, so a clean lint says nothing about those sites.
195
+
196
+ A contract's `retryable` reaches the wire only through `ctx.fail`; a service throw carries it only when the service writes `data.retryable` itself. `classifyDeviceFailure` (in `pixoo-service.ts`) is the one place a failed device call becomes a reason and a retryability — `PixooService` writes both on its push-path throws, and `pixoo_overlay_text` passes the retryability into `ctx.fail` so it overrides the contract default per occurrence.
197
+
198
+ The three push tools (`pixoo_display_text`, `pixoo_compose_scene`, `pixoo_push_image`) share one post-render path in `src/mcp-server/tools/device-push.ts`. `pushKeepingPreview` rethrows a failed push's error with its code, `reason`, `retryable`, and recovery untouched, adding `data.outputFiles` (the file the call already saved, else a copy in a fresh `os.tmpdir()` directory) and naming the path in the message. The framework drops `ctx.content` blocks from error results, so the file path is how the render survives. On success, `visibilityNotice` turns the post-push `DeviceStateSnapshot` into one `ctx.enrich.notice` (screen off, brightness ≤ 10, not on the custom channel). `ctx.enrich.notice` is last-wins, so a tool with a second notice source composes them into one string.
195
199
 
196
200
  ```ts
197
201
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
@@ -231,8 +235,10 @@ src/
231
235
  scene-renderer.ts # Element vocabulary, layout resolver, frame rendering
232
236
  keyframes.ts # Keyframe interpolation + animation preset compiler
233
237
  preview.ts # PNG/contact-sheet/GIF encoding
234
- remote-image.ts # https image fetch to a temp file for the toolkit loader
238
+ remote-image.ts # https image fetch to a temp file for the toolkit loader; stops on ctx.signal
235
239
  mcp-server/
240
+ tools/
241
+ device-push.ts # Shared post-render push: preview kept on failure, visibility notice
236
242
  tools/definitions/
237
243
  pixoo-display-text.tool.ts
238
244
  pixoo-compose-scene.tool.ts
package/CLAUDE.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Developer Protocol
2
2
 
3
3
  **Server:** pixoo-mcp-server
4
- **Version:** 1.1.3
4
+ **Version:** 1.2.0
5
5
  **Framework:** [@cyanheads/mcp-ts-core](https://www.npmjs.com/package/@cyanheads/mcp-ts-core) `^0.13.6`
6
6
  **Engines:** Bun ≥1.4.0, Node ≥24.0.0
7
7
  **MCP SDK:** `@modelcontextprotocol/server` ^2.0.0 (protocol revision 2026-07-28 alongside the 2025 era)
@@ -180,18 +180,22 @@ Handlers throw — the framework catches, classifies, and formats.
180
180
 
181
181
  Pixoo-specific error reasons declared on tools:
182
182
 
183
- | Reason | Code | When |
184
- |:-------|:-----|:-----|
185
- | `device_unreachable` | `ServiceUnavailable` | Toolkit result kind `network`/`timeout` |
186
- | `device_http_error` | `ServiceUnavailable` | Non-2xx from the device's HTTP server |
187
- | `device_rejected` | `ServiceUnavailable` | Firmware returned non-zero `error_code` |
188
- | `no_device_configured` | `InvalidParams` | Device tool called without `PIXOO_IP` |
189
- | `asset_not_found` | `NotFound` | Image/sprite path or URL unreadable |
190
- | `invalid_color` | `InvalidParams` | `resolveColor` throw — invalid color name or format |
191
- | `unknown_icon` | `InvalidParams` | Icon name not in registry |
192
- | `discovery_failed` | `ServiceUnavailable` | Divoom cloud unreachable |
183
+ | Reason | Code | When | `retryable` |
184
+ |:-------|:-----|:-----|:------------|
185
+ | `device_unreachable` | `ServiceUnavailable` | Toolkit result kind `network`/`timeout` | `true` |
186
+ | `device_http_error` | `ServiceUnavailable` | Non-2xx from the device's HTTP server | `true` for 408, 429, 500, 502–504; `false` otherwise |
187
+ | `device_rejected` | `ServiceUnavailable` | Firmware returned non-zero `error_code` | — |
188
+ | `no_device_configured` | `InvalidParams` | Device tool called without `PIXOO_IP` | — |
189
+ | `asset_not_found` | `NotFound` | Image/sprite path or URL unreadable | — |
190
+ | `invalid_color` | `InvalidParams` | `resolveColor` throw — invalid color name or format | — |
191
+ | `unknown_icon` | `InvalidParams` | Icon name not in registry | — |
192
+ | `discovery_failed` | `ServiceUnavailable` | Divoom cloud unreachable | `true` |
193
193
 
194
- `PixooService` and `src/renderer/` raise the device, configuration, and remote-asset reasons themselves (a factory error carrying `data.reason`), so those entries carry `thrownBy: 'service'` — lint-only metadata that keeps `error-contract-unthrown` from reading them as dead. A reason the handler throws with `ctx.fail` stays unmarked, and every such site forwards its declared recovery with `ctx.recoveryFor`. A computed reason forwards the same way (`ctx.recoveryFor(reason)`); `lint:mcp` skips a definition whose `ctx.fail` reason is non-literal, so a clean lint says nothing about those sites.
194
+ `PixooService` and `src/renderer/` raise the device, configuration, and asset reasons themselves (a factory error carrying `data.reason`), so those entries carry `thrownBy: 'service'` — lint-only metadata that keeps `error-contract-unthrown` from reading them as dead. A reason the handler throws with `ctx.fail` stays unmarked, and every such site forwards its declared recovery with `ctx.recoveryFor`. A computed reason forwards the same way (`ctx.recoveryFor(reason)`); `lint:mcp` skips a definition whose `ctx.fail` reason is non-literal, so a clean lint says nothing about those sites.
195
+
196
+ A contract's `retryable` reaches the wire only through `ctx.fail`; a service throw carries it only when the service writes `data.retryable` itself. `classifyDeviceFailure` (in `pixoo-service.ts`) is the one place a failed device call becomes a reason and a retryability — `PixooService` writes both on its push-path throws, and `pixoo_overlay_text` passes the retryability into `ctx.fail` so it overrides the contract default per occurrence.
197
+
198
+ The three push tools (`pixoo_display_text`, `pixoo_compose_scene`, `pixoo_push_image`) share one post-render path in `src/mcp-server/tools/device-push.ts`. `pushKeepingPreview` rethrows a failed push's error with its code, `reason`, `retryable`, and recovery untouched, adding `data.outputFiles` (the file the call already saved, else a copy in a fresh `os.tmpdir()` directory) and naming the path in the message. The framework drops `ctx.content` blocks from error results, so the file path is how the render survives. On success, `visibilityNotice` turns the post-push `DeviceStateSnapshot` into one `ctx.enrich.notice` (screen off, brightness ≤ 10, not on the custom channel). `ctx.enrich.notice` is last-wins, so a tool with a second notice source composes them into one string.
195
199
 
196
200
  ```ts
197
201
  import { JsonRpcErrorCode } from '@cyanheads/mcp-ts-core/errors';
@@ -231,8 +235,10 @@ src/
231
235
  scene-renderer.ts # Element vocabulary, layout resolver, frame rendering
232
236
  keyframes.ts # Keyframe interpolation + animation preset compiler
233
237
  preview.ts # PNG/contact-sheet/GIF encoding
234
- remote-image.ts # https image fetch to a temp file for the toolkit loader
238
+ remote-image.ts # https image fetch to a temp file for the toolkit loader; stops on ctx.signal
235
239
  mcp-server/
240
+ tools/
241
+ device-push.ts # Shared post-render push: preview kept on failure, visibility notice
236
242
  tools/definitions/
237
243
  pixoo-display-text.tool.ts
238
244
  pixoo-compose-scene.tool.ts
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  <div align="center">
9
9
 
10
- [![Version](https://img.shields.io/badge/Version-1.1.3-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/pixoo-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^2.0.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/pixoo-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/pixoo-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.0-blueviolet.svg?style=flat-square)](https://bun.sh/)
10
+ [![Version](https://img.shields.io/badge/Version-1.2.0-blue.svg?style=flat-square)](./CHANGELOG.md) [![License](https://img.shields.io/badge/License-Apache%202.0-orange.svg?style=flat-square)](./LICENSE) [![Docker](https://img.shields.io/badge/Docker-ghcr.io-2496ED?style=flat-square&logo=docker&logoColor=white)](https://github.com/users/cyanheads/packages/container/package/pixoo-mcp-server) [![MCP SDK](https://img.shields.io/badge/MCP%20SDK-^2.0.0-green.svg?style=flat-square)](https://modelcontextprotocol.io/) [![npm](https://img.shields.io/npm/v/@cyanheads/pixoo-mcp-server?style=flat-square&logo=npm&logoColor=white)](https://www.npmjs.com/package/@cyanheads/pixoo-mcp-server) [![TypeScript](https://img.shields.io/badge/TypeScript-^7.0.2-3178C6.svg?style=flat-square)](https://www.typescriptlang.org/) [![Bun](https://img.shields.io/badge/Bun-v1.4.0-blueviolet.svg?style=flat-square)](https://bun.sh/)
11
11
 
12
12
  </div>
13
13
 
@@ -29,7 +29,7 @@ Divoom Pixoo LED matrix displays (Pixoo-64 primary; 16 and 32 also supported) on
29
29
 
30
30
  | Tool | Description |
31
31
  |:-----|:------------|
32
- | `pixoo_display_text` | Render styled text (theme, gradient, shadow, outline, auto-fit) onto the display and push it. Returns the rendered frame as an image. |
32
+ | `pixoo_display_text` | Render styled text (theme, gradient, shadow, outline, auto-fit) onto the display and push it, static or animated with a scroll, float, or pulse effect. Returns the render as an image. |
33
33
  | `pixoo_compose_scene` | Compose a full scene: layered elements (text, icons, widgets, shapes, bitmaps, images, sprites) with per-element effects and keyframes, static or animated. Returns the rendered scene as an image. |
34
34
  | `pixoo_push_image` | Load an image (absolute local path or https URL), resize it to the LED grid, and push it. Returns the downsampled result as an image. |
35
35
  | `pixoo_overlay_text` | Set or clear a device-native scrolling text overlay. Uses device-rendered fonts; overlays persist across channel switches until cleared. |
@@ -54,10 +54,11 @@ All resource data is also reachable via tools. `pixoo_design_brief` surfaces the
54
54
 
55
55
  - Named scene themes set background gradient and default text palette in one parameter (`midnight`, `ember`, `claude`, `ice`, `neon`, `forest`, `mono`)
56
56
  - Style block: palette ramps (`ember`, `ice`, `neon`, `fire`, `lavender`, `claude`, `mono`) or a custom gradient/flat color, optional drop shadow, 1px outline, integer scale 1–8
57
- - Semantic positioning (`x: "center"`, `y: "bottom"`) or absolute pixel coordinates; multi-line text stacks vertically with configurable alignment
58
- - Auto-fit overflow tries standard font, then compact, then scroll; every fit decision is reported in `layout[]` with an `action` (`shrunk-to-compact`, `scrolling`, `wrapped`, `truncated`, `clipped`)
57
+ - Semantic positioning (`x: "center"`, `y: "bottom"`) or absolute pixel coordinates; multi-line text stacks vertically, and `align` (`left`/`center`/`right`) lines up the lines within the block that `position.x` places
58
+ - Auto-fit overflow tries standard font, then compact, then marks the text `scrolling`; an explicit `font` is used as given, so text too wide for it scrolls in that font instead of shrinking; every fit decision is reported in `layout[]` with an `action` (`shrunk-to-compact`, `scrolling`, `wrapped`, `truncated`, `clipped`)
59
+ - `effect` animates the text: `scroll` runs it across the display once (up to 40 frames), `auto` scrolls only text too wide to fit, `float` and `pulse` loop over 20 frames; animations push as one device animation and report `frames`
59
60
  - Optional `brightness` (0–100) applied before push — a failure is a warning via an enrichment notice, not a tool error
60
- - Returns the rendered frame as an image content block; `outputFiles` is populated only when `PIXOO_OUTPUT_DIR` is configured
61
+ - Returns the rendered frame (or a grid of every animation frame) as an image content block; `outputFiles` (PNG, or GIF when animated) is populated only when `PIXOO_OUTPUT_DIR` is configured
61
62
 
62
63
  ---
63
64
 
@@ -66,15 +67,16 @@ All resource data is also reachable via tools. `pixoo_design_brief` surfaces the
66
67
  - Up to 50 layered elements rendered back-to-front: `text`, `icon`, `rect`, `circle`, `line`, `progress`, `sparkline`, `bitmap`, `pixels`, `image`, `sprite`
67
68
  - Background: solid color, gradient (vertical, horizontal, or radial), or named theme
68
69
  - Animation via named effect presets (`float`, `scroll-left`, `scroll-right`, `pulse`, `blink`, `twinkle`, `drift`, `fade-in`, `fade-out`) or raw per-property keyframe arrays — 1–40 frames at 10–2000ms per frame (default 150ms)
69
- - `image` and `sprite` elements accept an absolute local path or an https URL; a supplied `output` path must be absolute with no traversal segments
70
- - Static scenes return a PNG preview; animations return a labeled contact-sheet PNG plus a saved GIF (GIF preview is inconsistent across MCP clients)
70
+ - `image` elements accept an absolute local path or an https URL and fit the configured display size; `sprite` elements take an absolute local path; a supplied `output` path must be absolute with no traversal segments, and replaces the `PIXOO_OUTPUT_DIR` auto-save for that call
71
+ - `opacity` (0–100) blends any element, images included, over the layers beneath it
72
+ - Static scenes return a PNG preview; animations return a contact-sheet PNG tiling every frame, plus a GIF saved to `PIXOO_OUTPUT_DIR` when configured (GIF preview is inconsistent across MCP clients)
71
73
  - Typed failures for `asset_not_found`, `invalid_color`, and `unknown_icon`, alongside the shared device-error reasons
72
74
 
73
75
  ---
74
76
 
75
77
  ### `pixoo_push_image` <sub>tool</sub>
76
78
 
77
- - Accepts an absolute local file path or an https (not http) URL
79
+ - Accepts an absolute local file path or an https (not http) URL; a URL response is capped at 10 MB, enforced while the body streams, and the download stops when the call is cancelled
78
80
  - Three fit modes: `contain` (letterbox), `cover` (crop to fill), `fill` (stretch)
79
81
  - Three resize kernels: `nearest` for pixel art (default), `lanczos3` for photos, `mitchell` for a balance
80
82
  - Returns the exact resized result as an image content block before it is pushed
@@ -85,7 +87,7 @@ All resource data is also reachable via tools. `pixoo_design_brief` surfaces the
85
87
 
86
88
  - `mode: "set"` adds or updates an overlay on one of 20 independent slots (`id` 0–19); `mode: "clear"` removes it
87
89
  - 115 device-rendered font IDs (0–114); overlays persist across channel switches until explicitly cleared
88
- - Configurable `x`/`y` (0–64), scroll `direction` (`left`/`right`), `speed` (0–100), and `align`; color is `#RRGGBB` hex only — named colors aren't supported here
90
+ - Configurable `x`/`y` (0 to display size − 1, checked against `PIXOO_SIZE`), scroll `direction` (`left`/`right`), `speed` (0–100), and `align`; color accepts hex (`#RRGGBB` or `#RGB`) or a named color, the same as the render tools
89
91
  - Device-rendered, not previewable — for styled, previewable text use `pixoo_display_text`
90
92
 
91
93
  ---
@@ -93,7 +95,7 @@ All resource data is also reachable via tools. `pixoo_design_brief` surfaces the
93
95
  ### `pixoo_control_device` <sub>tool</sub>
94
96
 
95
97
  - Call with no params to read state only; supply any of `brightness` (0–100), `screen` (`on`/`off`), `channel` (`faces`/`cloud`/`visualizer`/`custom`), or `clockFaceId` to apply changes before the read-back
96
- - `applied` lists which requested settings succeeded; a failed setting is omitted from `applied` and reported via an enrichment notice instead of failing the call
98
+ - `applied` lists which requested settings succeeded; a failed setting is omitted from `applied` and reported in a `notice` instead of failing the call — every failed setting in one call, each with its failure kind and message
97
99
  - Always returns current `reachable`, `channel`, `brightness`, `screenOn`, and `clockId` (the latter three absent when the device is unreachable)
98
100
 
99
101
  ---
@@ -111,7 +113,7 @@ All resource data is also reachable via tools. `pixoo_design_brief` surfaces the
111
113
 
112
114
  - Six topics: `text`, `scene`, `dashboard`, `animation`, `pixel-art`, `troubleshooting`
113
115
  - Returns markdown craft guidance (legibility floors, palette discipline, layout zones, animation budgets) plus a live `deviceContext` snapshot
114
- - `nextToolSuggestions` are pre-filled with ready-to-use arguments tailored to the topic and current device state (e.g. suggests `pixoo_discover_devices` when the device is unreachable)
116
+ - `nextToolSuggestions` entries are `{ toolName, reason, args }`, with `args` pre-filled with ready-to-use arguments (`{}` when the tool needs none) tailored to the topic and current device state (e.g. suggests `pixoo_discover_devices` when the device is unreachable)
115
117
  - Also returns `availableThemes` and `iconCategories` for direct use in other tools
116
118
 
117
119
  ---
@@ -162,8 +164,8 @@ Agent-friendly output:
162
164
 
163
165
  - Preview-as-content — render tools return the upscaled (8×, 512px) output as an image content block, so the calling model sees exactly what was drawn, before and after push
164
166
  - Layout transparency — every silent renderer decision (font fallback, truncation, scroll engaged, element clipped) is reported in `layout[]` so agents can inspect and refine
165
- - Device truth — `pushed` reflects the device ACK; `deviceState` after a push flags visibility issues (screen off, brightness ≤ 10, wrong channel) as enrichment notices rather than failures
166
- - Graceful degradation — render succeeds and returns the preview even when the device is unreachable, so the agent keeps its work
167
+ - Device truth — `pushed` reflects the device ACK; `deviceState` after a push reports the channel, brightness, and screen state the device returned, with a `notice` naming the fix when the render won't be visible (screen off, brightness ≤ 10, device off the custom channel)
168
+ - Render without a device — `push: false` renders and returns the preview with no device reachable; a push to an unreachable device fails with a retryable `device_unreachable` error whose `outputFiles` names the saved preview (the `PIXOO_OUTPUT_DIR` copy when configured, otherwise a temp file), so the render isn't lost
167
169
 
168
170
  ## Getting started
169
171
 
@@ -271,7 +273,7 @@ All configuration is validated at startup via Zod schemas in `src/config/server-
271
273
  |:---------|:------------|:--------|
272
274
  | `PIXOO_IP` | Device IP address on the local network. **Required for device tools** (`pixoo_display_text`, `pixoo_compose_scene`, `pixoo_push_image`, `pixoo_overlay_text`, `pixoo_control_device`). Discovery and pure-render (`push: false`) work without it. | — |
273
275
  | `PIXOO_SIZE` | Display size in pixels: `16`, `32`, or `64`. | `64` |
274
- | `PIXOO_OUTPUT_DIR` | Directory for auto-saving preview PNG and GIF files. When unset, previews are returned in-response only. | — |
276
+ | `PIXOO_OUTPUT_DIR` | Directory for auto-saving preview PNG and GIF files. When unset, previews are returned in-response only (a failed push still writes its preview to a temp file). An explicit `output` on `pixoo_compose_scene` replaces it for that call. | — |
275
277
  | `PIXOO_PUSH_MIN_INTERVAL_MS` | Minimum interval between device pushes in milliseconds. Prevents device freeze from rapid-fire commands. | `1000` |
276
278
  | `MCP_TRANSPORT_TYPE` | Transport: `stdio` or `http`. | `stdio` |
277
279
  | `MCP_HTTP_PORT` | HTTP server port. | `3010` |
@@ -0,0 +1,22 @@
1
+ ---
2
+ summary: "Push-capable tools now declare device_http_error and carry retryable; pixoo_compose_scene's image opacity and missing local-asset errors are fixed; pixoo_control_device no longer drops failed-setter notices; pixoo_push_image's fetch cap now holds while the body streams."
3
+ breaking: false
4
+ security: true
5
+ ---
6
+
7
+ # 1.1.4 — 2026-09-23
8
+
9
+ ## Changed
10
+
11
+ - Entry-point session-mode test retries on a fresh port when the child exits before serving, instead of waiting out the full boot deadline.
12
+
13
+ ## Fixed
14
+
15
+ - **`pixoo_display_text`, `pixoo_compose_scene`, and `pixoo_push_image` now declare `device_http_error` and carry `data.retryable` on push failures** — `mapFailure` threw through the raw `serviceUnavailable()` factory, bypassing the tool contract ([#11](https://github.com/cyanheads/pixoo-mcp-server/issues/11)).
16
+ - **`pixoo_compose_scene`'s `image` elements honor `opacity`** — the blit went to the base canvas instead of the opacity-compositing scratch canvas, so opacity was silently dropped ([#4](https://github.com/cyanheads/pixoo-mcp-server/issues/4)).
17
+ - **A missing local `image` or `sprite` path in `pixoo_compose_scene` now fails as `asset_not_found`** instead of an unclassified `InternalError` ([#12](https://github.com/cyanheads/pixoo-mcp-server/issues/12)).
18
+ - **`pixoo_control_device` no longer drops failed-setter notices** — the tool declared no `enrichment` block, so `ctx.enrich.notice` calls were discarded; failures across multiple setters in one call now compose into a single notice ([#13](https://github.com/cyanheads/pixoo-mcp-server/issues/13)).
19
+
20
+ ## Security
21
+
22
+ - **`pixoo_push_image`'s 10 MB fetch cap now holds while the body streams** — a URL response with no `content-length` header was fully buffered before the size check fired, allowing unbounded memory use ([#7](https://github.com/cyanheads/pixoo-mcp-server/issues/7)).
@@ -0,0 +1,28 @@
1
+ ---
2
+ summary: "pixoo_display_text adds scroll/float/pulse effects, align, and an honored font; animated previews return a full frame grid; failed pushes keep their render; design_brief's suggestion shape and overlay_text's x/y/width bounds change (breaking); scene image sizing and per-source caching are fixed."
3
+ breaking: true
4
+ security: false
5
+ ---
6
+
7
+ # 1.2.0 — 2026-09-23
8
+
9
+ ## Added
10
+
11
+ - **`pixoo_display_text` gains `effect: "scroll" | "float" | "pulse"`** — animates the text and pushes it as a multi-frame animation; `effect: "auto"` scrolls only when the text overflows ([#3](https://github.com/cyanheads/pixoo-mcp-server/issues/3)).
12
+ - **`align: "left" | "center" | "right"`** on `pixoo_display_text` lines up multi-line text within the block `position.x` places ([#3](https://github.com/cyanheads/pixoo-mcp-server/issues/3)).
13
+ - **An explicit `font` on `pixoo_display_text` is honored on single-line text** instead of always starting from the 5×7 font ([#20](https://github.com/cyanheads/pixoo-mcp-server/issues/20)).
14
+ - **`pixoo_display_text` and `pixoo_compose_scene` animations return a real contact-sheet grid** tiling every frame, instead of the single middle frame ([#6](https://github.com/cyanheads/pixoo-mcp-server/issues/6)).
15
+ - **A successful push the panel won't show now carries a notice** — screen off, brightness ≤ 10, or the device off the Custom channel — naming the `pixoo_control_device` call that fixes it ([#16](https://github.com/cyanheads/pixoo-mcp-server/issues/16)).
16
+
17
+ ## Changed
18
+
19
+ - **`nextToolSuggestions` on `pixoo_design_brief` is now `{ toolName, reason, args }`**, replacing `{ tool, rationale, suggestedArgs? }`; `args` is required. Breaking ([#10](https://github.com/cyanheads/pixoo-mcp-server/issues/10)).
20
+ - **An explicit `output` on `pixoo_compose_scene` replaces the `PIXOO_OUTPUT_DIR` auto-save** for that call instead of writing both ([#9](https://github.com/cyanheads/pixoo-mcp-server/issues/9)).
21
+ - **A failed push now keeps its render** — the preview's path (the auto-save, or a fresh temp file) rides the error as `data.outputFiles` instead of being lost ([#17](https://github.com/cyanheads/pixoo-mcp-server/issues/17)).
22
+ - Remote image downloads on `pixoo_push_image` and `pixoo_compose_scene` now cancel mid-stream when the calling request is cancelled ([#18](https://github.com/cyanheads/pixoo-mcp-server/issues/18)).
23
+
24
+ ## Fixed
25
+
26
+ - **`pixoo_overlay_text` rejects `x`/`y` at or beyond the configured `PIXOO_SIZE` and `width` above it** — the schema's `.max(64)` ceiling can't see the runtime size on 16/32px devices. Breaking: `x`/`y` equal to the display size, previously accepted off-canvas, is now rejected ([#8](https://github.com/cyanheads/pixoo-mcp-server/issues/8)).
27
+ - **`pixoo_compose_scene` `image` elements fit the configured `PIXOO_SIZE`** instead of always loading onto a 64px canvas ([#15](https://github.com/cyanheads/pixoo-mcp-server/issues/15)).
28
+ - **Two `image` elements sharing a source now render independently** instead of both taking whichever element's placement loaded last ([#21](https://github.com/cyanheads/pixoo-mcp-server/issues/21)).
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-design-guide.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/pixoo-design-guide.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAY,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAuGrD,eAAO,MAAM,wBAAwB,2GAyBnC,CAAC"}
1
+ {"version":3,"file":"pixoo-design-guide.resource.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/pixoo-design-guide.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAY,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAwGrD,eAAO,MAAM,wBAAwB,2GAyBnC,CAAC"}
@@ -99,6 +99,7 @@ At typical viewing distance for a 64×64 LED display:
99
99
  ## Known Device Behaviors
100
100
 
101
101
  - **Channel must be Custom** to display pushed content. The server auto-switches when pushing.
102
+ - **A push the panel won't show** — screen off, brightness 10 or lower, or still off Custom after a failed switch — succeeds with a notice naming the pixoo_control_device call that fixes it.
102
103
  - **getConfig() omits SelectIndex** on current Pixoo-64 firmware — use getChannel() for reliable channel reads
103
104
  - **Text overlays (pixoo_overlay_text)** persist across channel switches until explicitly cleared
104
105
  - **Discovery requires internet** — Divoom cloud endpoint even for local device control
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-design-guide.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/pixoo-design-guide.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmGpB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,gCAAgC,EAAE;IACjF,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,uNAAuN;IACzN,QAAQ,EAAE,eAAe;IACzB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,qEAAqE;IACrE,SAAS,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE;IAEtD,OAAO,CAAC,OAAO,EAAE,IAAI;QACnB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACjB,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,gCAAgC;gBACrC,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,eAAe;gBACzB,WAAW,EACT,iFAAiF;aACpF;SACF;KACF,CAAC;CACH,CAAC,CAAC"}
1
+ {"version":3,"file":"pixoo-design-guide.resource.js","sourceRoot":"","sources":["../../../../src/mcp-server/resources/definitions/pixoo-design-guide.resource.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,wBAAwB,CAAC;AAErD,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoGpB,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,QAAQ,CAAC,gCAAgC,EAAE;IACjF,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,uNAAuN;IACzN,QAAQ,EAAE,eAAe;IACzB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACpB,qEAAqE;IACrE,SAAS,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE;IAEtD,OAAO,CAAC,OAAO,EAAE,IAAI;QACnB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QACjB,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,gCAAgC;gBACrC,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,eAAe;gBACzB,WAAW,EACT,iFAAiF;aACpF;SACF;KACF,CAAC;CACH,CAAC,CAAC"}
@@ -472,6 +472,12 @@ export declare const pixooComposeScene: import("@cyanheads/mcp-ts-core").ToolDef
472
472
  readonly retryable: true;
473
473
  readonly recovery: "Check the device is powered on and on the same network. Retry in a few seconds.";
474
474
  readonly thrownBy: "service";
475
+ }, {
476
+ readonly reason: "device_http_error";
477
+ readonly code: JsonRpcErrorCode.ServiceUnavailable;
478
+ readonly when: "The device answered with a non-2xx HTTP status (retryable for 408, 429, 500, and 502–504).";
479
+ 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.";
480
+ readonly thrownBy: "service";
475
481
  }, {
476
482
  readonly reason: "device_rejected";
477
483
  readonly code: JsonRpcErrorCode.ServiceUnavailable;
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-compose-scene.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-compose-scene.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAmT3E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwT5B,CAAC"}
1
+ {"version":3,"file":"pixoo-compose-scene.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-compose-scene.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAY,MAAM,+BAA+B,CAAC;AAqT3E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmT5B,CAAC"}
@@ -5,10 +5,11 @@
5
5
  import * as path from 'node:path';
6
6
  import { tool, z } from '@cyanheads/mcp-ts-core';
7
7
  import { JsonRpcErrorCode, McpError } from '@cyanheads/mcp-ts-core/errors';
8
- import { Canvas, NAMED_COLORS } from '@cyanheads/pixoo-toolkit';
8
+ import { Canvas, NAMED_COLORS, savePng } from '@cyanheads/pixoo-toolkit';
9
9
  import { getServerConfig } from '../../../config/server-config.js';
10
+ import { pushKeepingPreview, visibilityNotice } from '../device-push.js';
10
11
  import { ICONS } from '../../../renderer/icons.js';
11
- import { buildContactSheet, encodePreviewBlock, saveGifPreview, savePngPreview, } from '../../../renderer/preview.js';
12
+ import { autoSavePreview, buildContactSheet, saveGifPreview, savePngPreview, } from '../../../renderer/preview.js';
12
13
  import { renderScene } from '../../../renderer/scene-renderer.js';
13
14
  import { getPixooService } from '../../../services/pixoo/pixoo-service.js';
14
15
  // --- Shared sub-schemas ---
@@ -323,7 +324,7 @@ export const pixooComposeScene = tool('pixoo_compose_scene', {
323
324
  output: z
324
325
  .string()
325
326
  .optional()
326
- .describe('Absolute, already-normalized path to save the first frame to, in addition to the PIXOO_OUTPUT_DIR auto-save when that is configured. Both paths are reported in outputFiles.'),
327
+ .describe('Absolute, already-normalized path to save the first frame to as a PNG. Replaces the PIXOO_OUTPUT_DIR auto-save for this call, so outputFiles holds only this path.'),
327
328
  }),
328
329
  output: z.object({
329
330
  pushed: z
@@ -355,7 +356,7 @@ export const pixooComposeScene = tool('pixoo_compose_scene', {
355
356
  outputFiles: z
356
357
  .array(z.string())
357
358
  .optional()
358
- .describe('Absolute paths to saved output files (PNG for static, GIF for animations). Present only when PIXOO_OUTPUT_DIR is configured or output is set.'),
359
+ .describe('Absolute paths to saved output files: the output path when set, otherwise the PIXOO_OUTPUT_DIR auto-save (PNG for static, GIF for animations). Absent when neither applies.'),
359
360
  }),
360
361
  enrichment: {
361
362
  notice: z
@@ -372,6 +373,13 @@ export const pixooComposeScene = tool('pixoo_compose_scene', {
372
373
  recovery: 'Check the device is powered on and on the same network. Retry in a few seconds.',
373
374
  thrownBy: 'service',
374
375
  },
376
+ {
377
+ reason: 'device_http_error',
378
+ code: JsonRpcErrorCode.ServiceUnavailable,
379
+ when: 'The device answered with a non-2xx HTTP status (retryable for 408, 429, 500, and 502–504).',
380
+ 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.',
381
+ thrownBy: 'service',
382
+ },
375
383
  {
376
384
  reason: 'device_rejected',
377
385
  code: JsonRpcErrorCode.ServiceUnavailable,
@@ -459,53 +467,36 @@ export const pixooComposeScene = tool('pixoo_compose_scene', {
459
467
  }
460
468
  throw err;
461
469
  }
462
- // The rendered scene (contact sheet for animations) rides content[] as an image
463
- // block. It is deliberately absent from `output` — routing it through ctx.content
464
- // carries the base64 once instead of duplicating it into structuredContent.
470
+ // The rendered scene (a grid of every frame for animations) rides content[] as an
471
+ // image block. It is deliberately absent from `output` — routing it through
472
+ // ctx.content carries the base64 once instead of duplicating it into structuredContent.
465
473
  const isAnimation = renderedFrames.length > 1;
466
- ctx.content.image(isAnimation
467
- ? buildContactSheet(renderedFrames).data
468
- : encodePreviewBlock(renderedFrames[0] ?? new Canvas(size)).data, 'image/png');
469
- // Save files
470
- const outputFiles = [];
474
+ const firstFrame = renderedFrames[0] ?? new Canvas(size);
475
+ ctx.content.image((await buildContactSheet(renderedFrames)).data, 'image/png');
471
476
  const baseName = `scene-${Date.now()}`;
472
- if (isAnimation) {
473
- const gifPath = await saveGifPreview(renderedFrames, input.speed, baseName);
474
- if (gifPath)
475
- outputFiles.push(gifPath);
477
+ const writePreview = (dir) => isAnimation
478
+ ? saveGifPreview(renderedFrames, input.speed, dir, baseName)
479
+ : savePngPreview(firstFrame, dir, baseName);
480
+ // An explicit output path (validated at handler entry) replaces the auto-save.
481
+ let outputFiles;
482
+ if (input.output) {
483
+ await savePng(firstFrame, input.output);
484
+ outputFiles = [input.output];
476
485
  }
477
486
  else {
478
- const firstFrame = renderedFrames[0];
479
- if (firstFrame) {
480
- const pngPath = await savePngPreview(firstFrame, baseName);
481
- if (pngPath)
482
- outputFiles.push(pngPath);
483
- }
487
+ outputFiles = await autoSavePreview(writePreview);
484
488
  }
485
- // Handle explicit output path — already validated at handler entry.
486
- if (input.output) {
487
- const firstFrame = renderedFrames[0];
488
- if (firstFrame) {
489
- const { savePng } = await import('@cyanheads/pixoo-toolkit');
490
- await savePng(firstFrame, input.output);
491
- outputFiles.push(input.output);
492
- }
493
- }
494
- // Push
495
489
  let pushed = false;
496
490
  let deviceState;
497
491
  if (input.push) {
498
492
  const svc = getPixooService();
499
- if (isAnimation) {
500
- deviceState = await svc.pushAnimation(renderedFrames, input.speed, ctx);
501
- }
502
- else {
503
- const firstFrame = renderedFrames[0];
504
- if (firstFrame) {
505
- deviceState = await svc.pushFrame(firstFrame, ctx);
506
- }
507
- }
493
+ deviceState = await pushKeepingPreview(() => isAnimation
494
+ ? svc.pushAnimation(renderedFrames, input.speed, ctx)
495
+ : svc.pushFrame(firstFrame, ctx), outputFiles, writePreview);
508
496
  pushed = true;
497
+ const notice = visibilityNotice(deviceState);
498
+ if (notice)
499
+ ctx.enrich.notice(notice);
509
500
  }
510
501
  return {
511
502
  pushed,
@@ -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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"}
@@ -30,5 +30,7 @@ export declare const pixooControlDevice: import("@cyanheads/mcp-ts-core").ToolDe
30
30
  readonly when: "PIXOO_IP is not set.";
31
31
  readonly recovery: "Run pixoo_discover_devices to find the device IP, then set PIXOO_IP.";
32
32
  readonly thrownBy: "service";
33
- }], undefined>;
33
+ }], {
34
+ readonly notice: z.ZodOptional<z.ZodString>;
35
+ }>;
34
36
  //# sourceMappingURL=pixoo-control-device.tool.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pixoo-control-device.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-control-device.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;cAyH7B,CAAC"}
1
+ {"version":3,"file":"pixoo-control-device.tool.d.ts","sourceRoot":"","sources":["../../../../src/mcp-server/tools/definitions/pixoo-control-device.tool.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAQ,CAAC,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAIjE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgI7B,CAAC"}