@pinepaper.studio/mcp-server 1.6.12 → 1.6.14

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 (100) hide show
  1. package/README.de.md +1 -1
  2. package/README.es.md +1 -1
  3. package/README.fr.md +1 -1
  4. package/README.hi.md +1 -1
  5. package/README.ja.md +1 -1
  6. package/README.ko.md +1 -1
  7. package/README.md +341 -4
  8. package/README.pt-BR.md +1 -1
  9. package/README.zh-CN.md +1 -1
  10. package/dist/agent/export-manager.d.ts.map +1 -1
  11. package/dist/agent/export-manager.js +9 -7
  12. package/dist/agent/export-manager.js.map +1 -1
  13. package/dist/assets/repositories/iconify.d.ts +0 -5
  14. package/dist/assets/repositories/iconify.d.ts.map +1 -1
  15. package/dist/assets/repositories/iconify.js +17 -5
  16. package/dist/assets/repositories/iconify.js.map +1 -1
  17. package/dist/browser/puppeteer-controller.d.ts +16 -0
  18. package/dist/browser/puppeteer-controller.d.ts.map +1 -1
  19. package/dist/browser/puppeteer-controller.js +32 -2
  20. package/dist/browser/puppeteer-controller.js.map +1 -1
  21. package/dist/build-info.json +5 -0
  22. package/dist/design/design-systems.d.ts +27 -2
  23. package/dist/design/design-systems.d.ts.map +1 -1
  24. package/dist/design/design-systems.js +20 -0
  25. package/dist/design/design-systems.js.map +1 -1
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +3 -2
  28. package/dist/index.js.map +1 -1
  29. package/dist/ontology/upstream-vocabulary.d.ts +23 -0
  30. package/dist/ontology/upstream-vocabulary.d.ts.map +1 -0
  31. package/dist/ontology/upstream-vocabulary.js +1172 -0
  32. package/dist/ontology/upstream-vocabulary.js.map +1 -0
  33. package/dist/ontology/vocabulary.d.ts.map +1 -1
  34. package/dist/ontology/vocabulary.js +19 -0
  35. package/dist/ontology/vocabulary.js.map +1 -1
  36. package/dist/tools/definitions.d.ts.map +1 -1
  37. package/dist/tools/definitions.js +299 -75
  38. package/dist/tools/definitions.js.map +1 -1
  39. package/dist/tools/engine-methods.d.ts.map +1 -1
  40. package/dist/tools/engine-methods.js +28 -2
  41. package/dist/tools/engine-methods.js.map +1 -1
  42. package/dist/tools/engine-surface.d.ts +1 -1
  43. package/dist/tools/engine-surface.d.ts.map +1 -1
  44. package/dist/tools/engine-surface.js +18 -12
  45. package/dist/tools/engine-surface.js.map +1 -1
  46. package/dist/tools/handlers/camera.d.ts.map +1 -1
  47. package/dist/tools/handlers/camera.js +17 -2
  48. package/dist/tools/handlers/camera.js.map +1 -1
  49. package/dist/tools/handlers/font.d.ts.map +1 -1
  50. package/dist/tools/handlers/font.js +48 -3
  51. package/dist/tools/handlers/font.js.map +1 -1
  52. package/dist/tools/handlers/maps.d.ts.map +1 -1
  53. package/dist/tools/handlers/maps.js +16 -0
  54. package/dist/tools/handlers/maps.js.map +1 -1
  55. package/dist/tools/handlers.d.ts +24 -3
  56. package/dist/tools/handlers.d.ts.map +1 -1
  57. package/dist/tools/handlers.js +645 -27
  58. package/dist/tools/handlers.js.map +1 -1
  59. package/dist/tools/minimal-descriptions.d.ts.map +1 -1
  60. package/dist/tools/minimal-descriptions.js +2 -0
  61. package/dist/tools/minimal-descriptions.js.map +1 -1
  62. package/dist/tools/shape-params.d.ts +13 -2
  63. package/dist/tools/shape-params.d.ts.map +1 -1
  64. package/dist/tools/shape-params.js +80 -2
  65. package/dist/tools/shape-params.js.map +1 -1
  66. package/dist/tools/stick-vocabulary.d.ts +1 -1
  67. package/dist/tools/stick-vocabulary.js +1 -1
  68. package/dist/tools/toolkits.d.ts.map +1 -1
  69. package/dist/tools/toolkits.js +12 -1
  70. package/dist/tools/toolkits.js.map +1 -1
  71. package/dist/types/code-generator.d.ts +27 -1
  72. package/dist/types/code-generator.d.ts.map +1 -1
  73. package/dist/types/code-generator.js +2871 -316
  74. package/dist/types/code-generator.js.map +1 -1
  75. package/dist/types/schemas.d.ts +1595 -271
  76. package/dist/types/schemas.d.ts.map +1 -1
  77. package/dist/types/schemas.js +269 -31
  78. package/dist/types/schemas.js.map +1 -1
  79. package/dist/utils/a11y.d.ts +67 -0
  80. package/dist/utils/a11y.d.ts.map +1 -0
  81. package/dist/utils/a11y.js +117 -0
  82. package/dist/utils/a11y.js.map +1 -0
  83. package/dist/utils/ad-package.d.ts +44 -0
  84. package/dist/utils/ad-package.d.ts.map +1 -0
  85. package/dist/utils/ad-package.js +121 -0
  86. package/dist/utils/ad-package.js.map +1 -0
  87. package/dist/utils/scc.d.ts +41 -0
  88. package/dist/utils/scc.d.ts.map +1 -0
  89. package/dist/utils/scc.js +185 -0
  90. package/dist/utils/scc.js.map +1 -0
  91. package/dist/utils/zip.d.ts +7 -0
  92. package/dist/utils/zip.d.ts.map +1 -0
  93. package/dist/utils/zip.js +82 -0
  94. package/dist/utils/zip.js.map +1 -0
  95. package/dist/version.d.ts +3 -0
  96. package/dist/version.d.ts.map +1 -1
  97. package/dist/version.js +31 -1
  98. package/dist/version.js.map +1 -1
  99. package/manifest.json +9 -1
  100. package/package.json +6 -4
package/README.de.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  Der PinePaper MCP-Server lässt KI-Assistenten über das Model Context Protocol Grafiken in [PinePaper Studio](https://pinepaper.studio) erstellen und animieren. Funktioniert mit jeder KI, die MCP-Tool-Aufrufe unterstützt (Claude, GPT, Gemini, lokale Modelle usw.).
16
16
 
17
- Der Server bietet **152 Tools**: Zeichnen, Animation, Diagramme, Karten, Typografie, Physik, Bildbearbeitung, Datenvisualisierung und Export:
17
+ Der Server bietet **154 Tools**: Zeichnen, Animation, Diagramme, Karten, Typografie, Physik, Bildbearbeitung, Datenvisualisierung und Export:
18
18
 
19
19
  - Text, Formen, Geometrie und komplexe Grafiken erstellen
20
20
  - Mit deklarativen **Relationen** animieren statt mit Keyframes
package/README.es.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  El servidor MCP de PinePaper permite a los asistentes de IA crear y animar gráficos en [PinePaper Studio](https://pinepaper.studio) a través del Model Context Protocol. Funciona con cualquier IA que soporte llamadas a herramientas MCP (Claude, GPT, Gemini, modelos locales, etc.).
16
16
 
17
- Expone **152 herramientas**: dibujo, animación, diagramas, mapas, tipografía, física, edición de imágenes, visualización de datos y exportación:
17
+ Expone **154 herramientas**: dibujo, animación, diagramas, mapas, tipografía, física, edición de imágenes, visualización de datos y exportación:
18
18
 
19
19
  - Crear texto, formas, geometría y gráficos complejos
20
20
  - Animar con **relaciones** declarativas en lugar de fotogramas clave
package/README.fr.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  Le serveur MCP PinePaper permet aux assistants IA de créer et d'animer des graphiques dans [PinePaper Studio](https://pinepaper.studio) via le Model Context Protocol. Compatible avec toute IA gérant les appels d'outils MCP (Claude, GPT, Gemini, modèles locaux, etc.).
16
16
 
17
- Il expose **152 outils** : dessin, animation, diagrammes, cartes, typographie, physique, retouche d'image, visualisation de données et export :
17
+ Il expose **154 outils** : dessin, animation, diagrammes, cartes, typographie, physique, retouche d'image, visualisation de données et export :
18
18
 
19
19
  - Créer du texte, des formes, de la géométrie et des graphiques complexes
20
20
  - Animer avec des **relations** déclaratives plutôt que des images clés
package/README.hi.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  PinePaper MCP सर्वर AI असिस्टेंट्स को Model Context Protocol के ज़रिए [PinePaper Studio](https://pinepaper.studio) में ग्राफ़िक्स बनाने और एनिमेट करने देता है। MCP टूल कॉलिंग वाले किसी भी AI (Claude, GPT, Gemini, लोकल मॉडल आदि) के साथ काम करता है।
16
16
 
17
- सर्वर **152 टूल** देता है — ड्रॉइंग, एनिमेशन, डायग्राम, नक्शे, टाइपोग्राफ़ी, फिज़िक्स, इमेज एडिटिंग, डेटा विज़ुअलाइज़ेशन और एक्सपोर्ट:
17
+ सर्वर **154 टूल** देता है — ड्रॉइंग, एनिमेशन, डायग्राम, नक्शे, टाइपोग्राफ़ी, फिज़िक्स, इमेज एडिटिंग, डेटा विज़ुअलाइज़ेशन और एक्सपोर्ट:
18
18
 
19
19
  - टेक्स्ट, आकृतियाँ, ज्यामिति और जटिल ग्राफ़िक्स बनाना
20
20
  - कीफ़्रेम की जगह व्यवहार बताने वाले **रिलेशन** से एनिमेशन
package/README.ja.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  PinePaper MCP サーバーは、MCP 経由で AI アシスタントが [PinePaper Studio](https://pinepaper.studio) 上にグラフィックを作成・アニメーションさせるためのサーバーです。MCP ツールコールに対応した AI(Claude、GPT、Gemini、ローカルモデルなど)で動作します。
16
16
 
17
- **152 個のツール**を提供 — 描画・アニメーション・図・地図・タイポグラフィ・物理・画像編集・データ可視化・エクスポート:
17
+ **154 個のツール**を提供 — 描画・アニメーション・図・地図・タイポグラフィ・物理・画像編集・データ可視化・エクスポート:
18
18
 
19
19
  - テキスト、図形、ジオメトリ、複雑なグラフィックの作成
20
20
  - キーフレームではなく、ふるまいを宣言する**リレーション**でアニメーション
package/README.ko.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  PinePaper MCP 서버는 AI 어시스턴트가 MCP를 통해 [PinePaper Studio](https://pinepaper.studio)에서 그래픽을 만들고 애니메이션하게 해줍니다. MCP 툴 콜을 지원하는 모든 AI(Claude, GPT, Gemini, 로컬 모델 등)와 호환됩니다.
16
16
 
17
- **152개의 툴** 제공 — 드로잉, 애니메이션, 다이어그램, 지도, 타이포그래피, 물리, 이미지 편집, 데이터 시각화, 내보내기:
17
+ **154개의 툴** 제공 — 드로잉, 애니메이션, 다이어그램, 지도, 타이포그래피, 물리, 이미지 편집, 데이터 시각화, 내보내기:
18
18
 
19
19
  - 텍스트·도형·기하·복잡한 그래픽 생성
20
20
  - 키프레임 대신 행동을 선언하는 **릴레이션**으로 애니메이션
package/README.md CHANGED
@@ -25,7 +25,7 @@
25
25
 
26
26
  PinePaper MCP Server enables AI assistants to create and animate graphics in [PinePaper Studio](https://pinepaper.studio) via the Model Context Protocol (MCP). Works with any AI that supports MCP tool calling (Claude, GPT, Gemini, local models, etc.).
27
27
 
28
- The server exposes **152 tools** across drawing, animation, diagrams, maps, typography, physics, image editing, data visualization, and export. Using natural language, you can:
28
+ The server exposes **154 tools** across drawing, animation, diagrams, maps, typography, physics, image editing, data visualization, and export. Using natural language, you can:
29
29
 
30
30
  - Create geometric shapes, text collages, diagrams, and data charts
31
31
  - Apply 37+ character-level text effects and 28+ vertex deformation presets
@@ -36,7 +36,7 @@ The server exposes **152 tools** across drawing, animation, diagrams, maps, typo
36
36
 
37
37
  ## Running it: local or hosted
38
38
 
39
- **Local is free and complete.** Every one of the 152 tools works when you run
39
+ **Local is free and complete.** Every one of the 154 tools works when you run
40
40
  this server yourself. There is no reduced tier and nothing held back.
41
41
 
42
42
  What it needs:
@@ -217,6 +217,341 @@ If you do not want an agent executing anything, `code` mode is a first-class pat
217
217
  - Puppeteer mode launches Chrome with `--no-sandbox` and `--disable-setuid-sandbox`. That is routine for headless automation and it does weaken Chrome's own process sandbox. If that matters where you are running it, use `code` mode or put the server in a container.
218
218
  - Puppeteer itself is an **optional** peer dependency, kept out of the default tree precisely because a headless browser plus an install script is what scanners flag hardest. Install it only if you want the executing mode.
219
219
 
220
+ ## What's new in 1.6.14
221
+
222
+ Many of the features below rely on newer studio capabilities. Where a studio
223
+ lacks one, the result says so — the call never quietly claims what it could
224
+ not do.
225
+
226
+ ### New: ads, variants and broadcast deliverables
227
+
228
+ - **`html5-ad`** export: a display-network zip (`index.html` with the
229
+ `ad.size` meta and a `clickTag` click target — the whole ad or a CTA's box)
230
+ plus a backup PNG beside it. The result checks the zip against a size budget
231
+ (`ad.maxBytes`, default 150 KB) and lists any external requests.
232
+ - **`playable`** export: a single-file MRAID playable whose CTA
233
+ (`ad.ctaItemId`) opens the store link through `mraid.open`, leaving the rest
234
+ of the ad interactive.
235
+ - **`pinepaper_render_batch`**: one creative per row of data — each row's item
236
+ changes or template params, then an export — with per-row files, warnings and
237
+ failures.
238
+ - **`scc`** captions: CEA-608 (broadcast) from the same timed text as SRT / VTT,
239
+ with notes on anything cut, dropped or timed late.
240
+ - **`pinepaper_accessibility_check`**: text contrast (WCAG AA) and flashing
241
+ (more than three flashes a second) as a quick screen before delivery.
242
+
243
+ ### New: text that fits its box
244
+
245
+ - **`fit`** on text (`create_item`, `modify_item`, batch):
246
+ `{maxWidth, maxHeight?, minFontSize?, maxFontSize?, wrap?, hold?}` sizes the
247
+ text to the box, and later content changes refit it — the variant /
248
+ translation workflow. It holds the anchored edge (`top-*` holds the top);
249
+ `fit: null` stops fitting. The result's `textFit` gives the size, line count
250
+ and whether it fits.
251
+ - **Overflow in every export.** `fidelity` lists `text_overflow` for text past
252
+ its box or off the frame — the check to run before rendering a batch.
253
+ - **`direction`** (`auto` | `ltr` | `rtl`) for Arabic, Hebrew and other RTL
254
+ paragraphs; `auto` is reported with the way it resolved.
255
+ - **`tabularFigures`** for counters and prices that should not jitter, and
256
+ **`strokePosition: 'outside'`** for thick caption outlines that keep the
257
+ letterform.
258
+ - Weight, italic, line spacing, and fonts from the catalogue or Google Fonts
259
+ (`pinepaper_font` gained a `load` action) now reach the text, loaded before
260
+ it is drawn.
261
+
262
+ ### New: export formats and controls
263
+
264
+ - **`apng`** — animation with full transparency, for overlays and stickers.
265
+ - **`jpg` / `webp`** stills for byte-budgeted ad specs; **`srt` / `vtt`**
266
+ captions from the scene's timed text; **multi-page PDF**, one page per saved
267
+ scene, with a searchable text layer and print options (paper
268
+ size, orientation, bleed, trim marks, dpi).
269
+ - **`region`** exports a part of the canvas — carousel slices, sheets of cards.
270
+ A cell leaves out a neighbour's overflowing items and names the items that
271
+ cross its edge.
272
+ - **`time`** renders a still at a chosen moment rather than wherever the
273
+ playhead is.
274
+ - **GIF** `loop` play count and a `maxBytes` budget (re-encoded smaller, with
275
+ each attempt reported).
276
+ - **Broadcast MP4** — `broadcast: true` (BT.709, limited range, constant
277
+ bitrate), `bitrate` / `minBitrate`, and `broadcastHeadroom`. The result
278
+ reports the achieved bitrate and the measured luma; when the file would fail
279
+ broadcast QC, `fidelity` says so and gives the command that fixes it.
280
+ - **NTSC rates** (29.97, 59.94, …) with a note when a duration overruns at
281
+ them, and a warning when H.264 rounds an odd side up by a pixel.
282
+ - New platform presets `print-a4-landscape` and `print-letter-landscape`.
283
+
284
+ ### New: tools and parameters
285
+
286
+ - **`pinepaper_lasso`** gained `cut`: cut a subject out along a polygon, no custom code.
287
+ - **Generator regions** can be shaped (rounded rect, ellipse, circle, polygon,
288
+ star, or an existing path) and named with `region.id`; the same generator in
289
+ several boxes gives several instances.
290
+ - **`modify_item`** takes `skewX` / `skewY` and an affine `matrix` (mockups).
291
+ - **Pixel-art rasters** (`smoothing: 'off'`), a **globe `disable`** action,
292
+ **keyed audio gain**, and **widget HTML** `lang`, `dir` and `alt`.
293
+ - `bornAt` / `ttl` now work as a visibility window in local renders, so shots
294
+ hand over cleanly on the boundary.
295
+ - `serverInfo.version` names the exact build (`1.6.14+<sha>`).
296
+
297
+ ### Fixed: properties that were silently ignored
298
+
299
+ `create_item` and `modify_item` now name any property they could not act on,
300
+ with a suggestion for common misspellings. Beyond that, these used to be
301
+ dropped and now work: no-fill (`null` / `'transparent'` / `'none'`), dashes,
302
+ caps and joins on every shape, `color` on closed paths, a top-level `anchor`,
303
+ path coordinates kept when no position is given, mesh colour on 3D shapes,
304
+ `template_params` naming undeclared params, chart data in the documented
305
+ shape, and gradients that cannot be read (now refused, not drawn as nothing).
306
+
307
+ ### Fixed: tools that reported success for the wrong thing
308
+
309
+ - Batch create / modify / execute now behave exactly like their single-item
310
+ tools, with one undo step per batch.
311
+ - `moves_along_path` follows the path you name (or refuses); relations to an
312
+ id not on the canvas are refused.
313
+ - Uploaded media: the id you are given is the one other tools accept, audio
314
+ levels reach the mix, `data:` and server-side URLs upload in production,
315
+ and clearing the canvas removes uploaded media too.
316
+ - A platform preset no longer stretches a canvas of another aspect ratio.
317
+ - `camera_animate` no longer claims pitch / yaw as 3D perspective, and its
318
+ `duration` is optional.
319
+ - Nine tools' published schemas disagreed with what they accepted; a guard
320
+ now keeps them in step.
321
+
322
+ ### New: a whole music bed in one call
323
+
324
+ `pinepaper_sound` gained a `sequence` action taking `[{t, spec|preset, note?,
325
+ duration?}]`. Every cue used to be its own call — a 112-cue bed cost 112 round
326
+ trips — and nothing about the work needed one each. Failures come back by
327
+ index, because a bed where three of a hundred cues didn't sound is neither a
328
+ success nor a failure.
329
+
330
+ ### Fixed: create_scene drew the wrong shape for six of its ten types
331
+
332
+ It built shapes itself instead of asking the engine — a hand-written branch per
333
+ type covering circle, rectangle, star and text, and **a 30px circle for
334
+ everything else**. So `ellipse`, `triangle`, `polygon`, `path`, `line` and
335
+ `arc` silently came out as a small blue circle, and any property that branch
336
+ didn't name was dropped (which is why an ellipse ignored `width`/`height` while
337
+ the same values worked through `agent_batch_execute`).
338
+
339
+ It now creates items the same way every other tool does, so all 28 item types
340
+ work, along with every property they accept. Two related corrections: scene
341
+ relations accepted 8 types while the catalogue documented ~90 — following the
342
+ documentation failed validation — and scene animations gained `startTime`, so a
343
+ scene can be staggered instead of everything moving from frame zero.
344
+
345
+ ### Fixed: layered-character import described the wrong manifest
346
+
347
+ The docs implied a `layers[]` array; the engine reads `info.parts` keyed by tag.
348
+ An array imports nothing. The description also implied `pinepaper_animate`
349
+ could blink — only an `expresses` relation drives blink/smile/talk, and asking
350
+ `animate` for it is a silent no-op.
351
+
352
+ ### Fixed: PDF export failed on every scene
353
+
354
+ `pinepaper_agent_export` with `format: "pdf"` died with "parameter 1 is not of
355
+ type 'Blob'" — an error naming `FileReader` and nothing about PDFs. The engine
356
+ resolves a record `{blob, width, height, format}` and this passed the whole
357
+ record where a `Blob` was expected. It now accepts either shape, reports the
358
+ page geometry the record carries, and when something really is not a file it
359
+ says so about the PDF rather than about `FileReader`.
360
+
361
+ ### Fixed: the validator's own findings were being swallowed
362
+
363
+ `pinepaper_validate` answers `{success: true, ok: false, diagnostics: [...]}` —
364
+ the call worked and the *scene* has problems, which is the whole point of the
365
+ tool. An internal guard treated `ok: false` as a tool failure, so the result
366
+ became "the studio reported failure without naming a reason" and the
367
+ diagnostics were discarded. A refusal that carries diagnostics now names them.
368
+
369
+ ### Changed: export fidelity is always reported
370
+
371
+ It used to appear only when there was something to lose, so that an empty list
372
+ could not be misread as "this format is lossless". That traded one misreading
373
+ for a worse one — you could not tell "checked, nothing lost" from "never
374
+ checked". All three states are explicit now, and the caveat lives in a note
375
+ rather than in the absence.
376
+
377
+ `pinepaper_agent_export` also points at `pinepaper_capture_frames` as the cheap
378
+ way to confirm a scene is actually moving **before** committing to a render.
379
+
380
+ ### Fixed: documentation that described the wrong contract
381
+
382
+ - **`solveOde` state variables are positional** — `t`, `y0`, `y1`, `y2` …
383
+ matching `initialState`. There is no `x` or `y`, so the natural way to write
384
+ a Lorenz system failed with "Undefined symbol y". The working form is now in
385
+ the description.
386
+ - **`moves_along_path` with `params.equation`** only works on the relation's
387
+ signal path. Easing `bounce` is piecewise and leaves that path, which
388
+ silently discards the equation and leaves the item where it started.
389
+ - **`grid.blocked` in `pathfind`** is a **mask**, one entry per cell, not a
390
+ list of blocked indices. Both are arrays of numbers, so the wrong one used to
391
+ produce a plausible "no path" instead of an error; the length is now checked.
392
+
393
+ ## What's new in 1.6.13
394
+
395
+ ### Fixed: WebGL was switched off, so every shader feature silently did nothing
396
+
397
+ The browser was launched with `--disable-gpu`, carried in as a headless
398
+ convention. With it, `webgl1` and `webgl2` both report **false** in the page —
399
+ so `pinepaper_world3d`, `drawShaderArt`, `drawFormulaArt` and every shader aura
400
+ (`liquid_metal`, `caustics`, `heatmap`, `gem_smoke`, `electric_arc`, `vortex`)
401
+ could not run. Worse, some of them reported `success: true` and rendered
402
+ nothing.
403
+
404
+ The flag is gone, so Chrome uses the real GPU where there is one, and
405
+ `--enable-unsafe-swiftshader` covers machines without: Chrome no longer falls
406
+ back to software GL on its own, so without it a headless server gets no WebGL
407
+ at all rather than a slow one. Measured on the same machine, only the flags
408
+ differing: false/false before, WebGL 1 and 2 both available after.
409
+
410
+ ### Fixed: sixteen parameters that were accepted and then ignored
411
+
412
+ A stress-test pass across six designs found the same failure repeatedly — a
413
+ parameter the schema takes, validates, and drops before it reaches the engine.
414
+ All of them now either work or say why not:
415
+
416
+ - **Choropleth maps** rendered near-black: `colorScale: "greens"` was sent
417
+ where the engine indexes a two-stop `['#from', '#to']` ramp, so it indexed a
418
+ string. `minValue`/`maxValue`/`showLegend` weren't mapped either.
419
+ - **Region highlights** came out default blue — the colour was stripped, and
420
+ the engine reads `style.fill`.
421
+ - **`pinepaper_map load`** documented an `options` parameter the schema threw
422
+ away, so `{style: "dark"}` never arrived.
423
+ - **Mask keyframe `time`** was capped at 0–1 while the engine reads **seconds**
424
+ — a keyframe at 2.0s was a validation error.
425
+ - **Animated masks (mode 3)** passed the animation preset where the mask
426
+ *shape* goes, so the keyframes drove the wrong geometry.
427
+ - **Sound cues** needed two calls each because `visual.startTime` was stripped;
428
+ one call places a cue now.
429
+ - **`text_effect`** gained `startAt` and `hideAfter` — every effect played from
430
+ t=0, so in a multi-shot video they all fired on the opening frame.
431
+ - **`import_asset` by URL** is implemented rather than refused.
432
+ - **`drawShaderArt`** documented `fragmentSource` without mentioning that it is
433
+ ignored unless you pass `preset: "custom"`, and that the shader is GLSL ES
434
+ 3.00 (`in v_uv` / `out outColor`), not `gl_FragColor`.
435
+ - **Asset search** showed `[object Object]` as the author, and claimed
436
+ "Various Licenses" for icons whose licence it had simply failed to read.
437
+
438
+ Where the engine genuinely cannot do the thing, the tool now refuses by name
439
+ instead of accepting the parameter and ignoring it: right-to-left text has no
440
+ engine support, and a connector id you supply is dropped by the engine, so the
441
+ result tells you which id you actually got.
442
+
443
+ ### Fixed: one 3D colour broke every export in the session
444
+
445
+ `pinepaper_world3d add_object` with `color: "#ef4444"` reported success and
446
+ then made **every later MP4 export fail** with a WebGL error, because the
447
+ colour goes to a shader uniform that needs three floats. Hex is what every
448
+ other tool here takes, so the conversion happens for you now — as does
449
+ `[255, 0, 0]`, the other common form.
450
+
451
+ ### Fixed: an unknown item id reported success
452
+
453
+ `pinepaper_keyframe_animate` on an id that doesn't exist returned success and
454
+ animated nothing — the engine warns through a console this tool cannot read.
455
+ It now refuses and names the id.
456
+
457
+ ### Fixed: photos could not be imported from a URL at all
458
+
459
+ 1.6.12 stopped an imported image from tainting the canvas, and in doing so made
460
+ URL imports impossible on pinepaper.studio. The studio sends
461
+ `connect-src 'self' …`, so the page may not fetch any third-party host — the
462
+ old code got around this by *loading* the image instead, which is exactly what
463
+ tainted the canvas.
464
+
465
+ The fetch now happens in the MCP server, which has no such restriction, and the
466
+ page is handed a `data:` URL. Nothing to fetch, nothing to taint, and the
467
+ picture actually arrives. `pinepaper_import_svg` resolves its document the same
468
+ way, so embedded remote images are kept rather than dropped.
469
+
470
+ Large photos are handed over **beside** the generated code rather than inside
471
+ it. A 3000×800 image inlined as a data URL made ~630KB of JavaScript, which the
472
+ engine's code governor could not rewrite — it gave up and took the return value
473
+ with it, so the import reported success with no item id while smaller photos
474
+ worked fine.
475
+
476
+ ### Fixed: the caption system was invisible to the agents told to use it
477
+
478
+ `pinepaper_text_style` and `pinepaper_execute_custom_code` were callable but
479
+ absent from `tools/list` in the default toolkit — while `pinepaper_text_effect`,
480
+ `pinepaper_design_medium`, `pinepaper_keyframe_animate` and
481
+ `pinepaper_execute_generator` all tell an agent to use them. So the whole
482
+ 15-style caption system was reachable only by someone who already knew the name.
483
+ Profiles filter by tag, so these fell out because of the group they belong to,
484
+ not because anyone decided they were unnecessary.
485
+
486
+ The default toolkit now lists everything its own descriptions point at, and
487
+ `pinepaper_text_style` accepts `list` as well as `list_styles`, because
488
+ `pinepaper_text_effect` spells the same action `list`.
489
+
490
+ Its description also now carries what a real render found: over photographs,
491
+ pass a palette — `chrome`, `cutout` and `glitch` are off-brief at the default
492
+ and `neon` needs one on dark images — and `glitch` at 80px monospace overflows
493
+ a 1920 canvas at 36 characters.
494
+
495
+ ### Fixed: exports sized by the renderer instead of by your request
496
+
497
+ Three tools reported a pixel count that came from how the browser happened to
498
+ be rendering, not from what you asked for:
499
+
500
+ - `framing: "camera"` produced **2234×1472** whatever the canvas was — a
501
+ 1920×1080 board and a 3840×2160 board both landed there.
502
+ - `format: "png"` ignored `platform` completely: both `youtube-thumbnail`
503
+ (1280×720) and `auto` on a 1920×1080 canvas returned **3000×1688**, which is
504
+ the board scaled by 150/96 DPI.
505
+ - `pinepaper_agent_end_job` reported the canvas as 2233×1472.
506
+
507
+ None of those ratios is the device pixel ratio, so the number could not be
508
+ divided back out afterwards — which is why it forced ffmpeg and `sips`
509
+ workarounds rather than a quick correction. All three now read the canvas size
510
+ you set, and PNG reports the dimensions it actually produced.
511
+
512
+ ### Fixed: `size` on an effect is a multiplier, not pixels
513
+
514
+ Every effect scales from the item's own bounds and `size` multiplies that, so
515
+ `size: 30` asks for a disc thousands of pixels across and gets one, reporting
516
+ success. Typical values are 1.5 to 3. The parameter was not in the tool's
517
+ schema at all, so "pixels" was the only natural reading; it is documented now.
518
+
519
+ ### Fixed: cutout styles and the lasso called into nothing
520
+
521
+ `pinepaper_cutout_style` called `app.imageTools.applyCutoutStyle`, which has
522
+ never existed — so it reported success with the real error nested inside. It
523
+ now uses the engine's actual cutout API and resolves the item id first.
524
+
525
+ `pinepaper_lasso` has no headless form at all: the lasso is a mouse tool whose
526
+ extraction is driven by strokes a user draws. It now says so and points at
527
+ `pinepaper_extract_object`, instead of failing with
528
+ `undefined is not a function`.
529
+
530
+ ### Fixed: results that were too big to read
531
+
532
+ An error carried the whole generated script in its details — ~12KB of
533
+ JavaScript in front of a one-line failure. It now carries the script's size and
534
+ a switch (`PINEPAPER_ECHO_CODE=1`) to get it back.
535
+
536
+ `pinepaper_agent_end_job` returned a 263,000-character screenshot inline, which
537
+ is over the tool-result limit of the clients reading it, so an agent could not
538
+ read its own verification step. The threshold for saving to a file instead was
539
+ set against the bridge's limits rather than the caller's, and is now low enough
540
+ that this cannot happen.
541
+
542
+ ### Fixed: map tools that called into nothing
543
+
544
+ Nine tools called engine methods that have never existed on any studio —
545
+ `pan_map`, `zoom_map`, `export_map`, `add_map_labels`, `animate_map_wave`,
546
+ region-at-point, history `get_state`, `trigger_action`, and the relation lookup
547
+ used by scene analysis. The last one was the quiet one: it was guarded, so it
548
+ never threw — it just reported every scene as having **no relations**, always.
549
+
550
+ Where the engine has the same capability under another name, they now call it.
551
+ Where it has no such capability at all — there is no lat/lon pan, no numeric
552
+ zoom level, and no region hit test — the tool now says so by name and points at
553
+ what does work, instead of failing with `undefined is not a function`.
554
+
220
555
  ## What's new in 1.6.12
221
556
 
222
557
  ### Fixed: images could not be imported at all
@@ -772,7 +1107,7 @@ Fourteen new tools (121 → 135) and new actions across the surface — the rele
772
1107
 
773
1108
  ## Toolkits & Token Budget
774
1109
 
775
- 152 tools is a lot of context. The server ships a **toolkit** system that serves only the tools a given client needs, plus a **verbosity** system that controls how long each tool description is.
1110
+ 154 tools is a lot of context. The server ships a **toolkit** system that serves only the tools a given client needs, plus a **verbosity** system that controls how long each tool description is.
776
1111
 
777
1112
  **Toolkit profiles** (`PINEPAPER_TOOLKIT`):
778
1113
 
@@ -977,7 +1312,7 @@ Generate instruction/code pairs for LLM fine-tuning:
977
1312
 
978
1313
  ## Tools Reference
979
1314
 
980
- All 152 tools, grouped by the tag used for toolkit filtering.
1315
+ All 154 tools, grouped by the tag used for toolkit filtering.
981
1316
 
982
1317
  ### Canvas (`canvas`)
983
1318
  | Tool | Description |
@@ -1098,6 +1433,7 @@ All 152 tools, grouped by the tag used for toolkit filtering.
1098
1433
  | `pinepaper_scene_diff` | What changed between two scene states |
1099
1434
  | `pinepaper_audio_beats` | Detect beats; bake an item's animation onto them |
1100
1435
  | `pinepaper_template_params` | Templates with typed, coerced inputs |
1436
+ | `pinepaper_render_batch` | One creative per data row: apply the row, export it |
1101
1437
 
1102
1438
  ### Image Processing (`image_processing`)
1103
1439
  | Tool | Description |
@@ -1195,6 +1531,7 @@ All 152 tools, grouped by the tag used for toolkit filtering.
1195
1531
  | `pinepaper_analyze_design` | Analyze design quality |
1196
1532
  | `pinepaper_validate_design` | Validate against design rules |
1197
1533
  | `pinepaper_validate` | General validation |
1534
+ | `pinepaper_accessibility_check` | Text contrast and flashing (WCAG), as a heuristic screen |
1198
1535
  | `pinepaper_validate_scene` | Validate scene integrity |
1199
1536
  | `pinepaper_instantiate_ontology` | Compile a pp: design graph into a scene |
1200
1537
  | `pinepaper_lint_scene` | Relational-density audit + structural-relation suggestions |
package/README.pt-BR.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  O servidor MCP do PinePaper permite que assistentes de IA criem e animem gráficos no [PinePaper Studio](https://pinepaper.studio) via Model Context Protocol. Funciona com qualquer IA que suporte chamadas de ferramenta MCP (Claude, GPT, Gemini, modelos locais etc.).
16
16
 
17
- São **152 ferramentas**: desenho, animação, diagramas, mapas, tipografia, física, edição de imagens, visualização de dados e exportação:
17
+ São **154 ferramentas**: desenho, animação, diagramas, mapas, tipografia, física, edição de imagens, visualização de dados e exportação:
18
18
 
19
19
  - Criar texto, formas, geometria e gráficos complexos
20
20
  - Animar com **relações** declarativas em vez de keyframes
package/README.zh-CN.md CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  PinePaper MCP 服务器让 AI 助手通过 MCP 协议在 [PinePaper Studio](https://pinepaper.studio) 中创建和驱动图形动画。兼容任何支持 MCP 工具调用的 AI(Claude、GPT、Gemini、本地模型等)。
16
16
 
17
- 服务器提供 **152 个工具**,覆盖绘图、动画、图表、地图、排版、物理、图像编辑、数据可视化与导出:
17
+ 服务器提供 **154 个工具**,覆盖绘图、动画、图表、地图、排版、物理、图像编辑、数据可视化与导出:
18
18
 
19
19
  - 创建文本、形状、几何图形与复杂图稿
20
20
  - 用行为驱动的**关系(relations)**做动画,而不是逐帧关键帧
@@ -1 +1 @@
1
- {"version":3,"file":"export-manager.d.ts","sourceRoot":"","sources":["../../src/agent/export-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EAEd,eAAe,EACf,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc;IAI7C;;OAEG;IACH,aAAa,IAAI,QAAQ,EAAE;IAI3B;;OAEG;IACH,oBAAoB,IAAI,MAAM;IA4G9B;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,oBAAoB,EAAE;IAqElE;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ,EAAE;IA0BzD;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,GAAG,YAAY;IAU7E;;OAEG;IACH,kBAAkB,CAChB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;KAAO,GACxD,MAAM;IA4BT;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+B7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoC7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0C/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;CAWtD;AAQD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,CAKrD"}
1
+ {"version":3,"file":"export-manager.d.ts","sourceRoot":"","sources":["../../src/agent/export-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,QAAQ,EACR,YAAY,EACZ,cAAc,EAEd,eAAe,EACf,oBAAoB,EACrB,MAAM,YAAY,CAAC;AAMpB;;;;;;;;GAQG;AACH,qBAAa,kBAAkB;IAC7B;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc;IAI7C;;OAEG;IACH,aAAa,IAAI,QAAQ,EAAE;IAI3B;;OAEG;IACH,oBAAoB,IAAI,MAAM;IA8G9B;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,oBAAoB,EAAE;IAqElE;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,QAAQ,EAAE;IA0BzD;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,GAAG,YAAY;IAU7E;;OAEG;IACH,kBAAkB,CAChB,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,YAAY,EACpB,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;KAAO,GACxD,MAAM;IA4BT;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAkB7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+B7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAoC7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA0C/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACH,yBAAyB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;CAWtD;AAQD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,CAKrD"}
@@ -112,14 +112,16 @@ export class SmartExportManager {
112
112
 
113
113
  // Check for relations
114
114
  if (app.relationRegistry) {
115
- const relations = app.relationRegistry.getAll ? app.relationRegistry.getAll() : [];
116
- analysis.hasRelations = relations.length > 0;
117
- relations.forEach(rel => {
118
- if (rel.relationType) {
119
- relationSet.add(rel.relationType);
120
- }
121
- });
115
+ // getAll() has never existed on the registry, so this always took the
116
+ // empty fallback and every analysis reported NO relations. getStats() is
117
+ // the real accessor and answers both questions: associationsByType is
118
+ // keyed by relation type, and activeItems counts the items carrying one.
119
+ const relStats = typeof app.relationRegistry.getStats === 'function'
120
+ ? app.relationRegistry.getStats()
121
+ : null;
122
+ Object.keys((relStats && relStats.associationsByType) || {}).forEach(t => relationSet.add(t));
122
123
  analysis.relationTypes = Array.from(relationSet);
124
+ analysis.hasRelations = !!relStats && (relStats.activeItems > 0 || analysis.relationTypes.length > 0);
123
125
 
124
126
  // Relations imply animations
125
127
  if (analysis.hasRelations) {
@@ -1 +1 @@
1
- {"version":3,"file":"export-manager.js","sourceRoot":"","sources":["../../src/agent/export-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export-manager.js","sourceRoot":"","sources":["../../src/agent/export-manager.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,6 @@
5
5
  * Repository info: 200,000+ icons from various icon sets with different licenses
6
6
  */
7
7
  import { AssetRepository, AssetResult, AssetMetadata } from '../types.js';
8
- /**
9
- * Iconify adapter
10
- *
11
- * Uses the Iconify API to search and download icons from multiple icon sets
12
- */
13
8
  export declare class IconifyAdapter implements AssetRepository {
14
9
  name: string;
15
10
  private apiUrl;
@@ -1 +1 @@
1
- {"version":3,"file":"iconify.d.ts","sourceRoot":"","sources":["../../../src/assets/repositories/iconify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAC;AAsBxF;;;;GAIG;AACH,qBAAa,cAAe,YAAW,eAAe;IACpD,IAAI,SAAa;IAEjB,OAAO,CAAC,MAAM,CAAgC;IAE9C;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAoDlE;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkChD;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA6C1D;;OAEG;IACH,OAAO,CAAC,YAAY;CA+DrB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CAEtD"}
1
+ {"version":3,"file":"iconify.d.ts","sourceRoot":"","sources":["../../../src/assets/repositories/iconify.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAgB,MAAM,aAAa,CAAC;AAoCxF,qBAAa,cAAe,YAAW,eAAe;IACpD,IAAI,SAAa;IAEjB,OAAO,CAAC,MAAM,CAAgC;IAE9C;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAoDlE;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkChD;;;;OAIG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA6C1D;;OAEG;IACH,OAAO,CAAC,YAAY;CAqErB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CAEtD"}
@@ -9,6 +9,12 @@
9
9
  *
10
10
  * Uses the Iconify API to search and download icons from multiple icon sets
11
11
  */
12
+ /** Iconify gives a collection author as a string OR {name, url}. */
13
+ function authorName(author) {
14
+ if (!author)
15
+ return undefined;
16
+ return typeof author === 'string' ? author : author.name;
17
+ }
12
18
  export class IconifyAdapter {
13
19
  name = 'iconify';
14
20
  apiUrl = 'https://api.iconify.design';
@@ -51,7 +57,7 @@ export class IconifyAdapter {
51
57
  downloadUrl: `https://api.iconify.design/${iconName}.svg`,
52
58
  license,
53
59
  tags: [query, collection],
54
- author: collectionInfo?.author,
60
+ author: authorName(collectionInfo?.author),
55
61
  });
56
62
  }
57
63
  return results;
@@ -131,8 +137,8 @@ export class IconifyAdapter {
131
137
  repository: this.name,
132
138
  title: assetId.replace('iconify_', ''),
133
139
  license: {
134
- type: 'Mixed',
135
- name: 'Various Licenses (check collection)',
140
+ type: 'Unknown',
141
+ name: 'not read — check the icon set on iconify.design before relying on it',
136
142
  requiresAttribution: true,
137
143
  allowsCommercial: false,
138
144
  },
@@ -144,9 +150,15 @@ export class IconifyAdapter {
144
150
  */
145
151
  parseLicense(collectionInfo) {
146
152
  if (!collectionInfo?.license) {
153
+ // NOT KNOWING IS NOT THE SAME AS "MIXED".
154
+ //
155
+ // This reported "Various Licenses" with allowsCommercial: false for an
156
+ // icon whose collection is Apache-2.0 — two assertions about a licence
157
+ // it had simply failed to read. An unknown licence should say it is
158
+ // unknown and name where to check.
147
159
  return {
148
- type: 'Mixed',
149
- name: 'Various Licenses',
160
+ type: 'Unknown',
161
+ name: 'not read — check the icon set on iconify.design before relying on it',
150
162
  requiresAttribution: true,
151
163
  allowsCommercial: false,
152
164
  };
@@ -1 +1 @@
1
- {"version":3,"file":"iconify.js","sourceRoot":"","sources":["../../../src/assets/repositories/iconify.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"iconify.js","sourceRoot":"","sources":["../../../src/assets/repositories/iconify.ts"],"names":[],"mappings":"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"}