@pinepaper.studio/mcp-server 1.6.17 → 1.6.19
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/README.de.md +1 -1
- package/README.es.md +1 -1
- package/README.fr.md +1 -1
- package/README.hi.md +1 -1
- package/README.ja.md +1 -1
- package/README.ko.md +1 -1
- package/README.md +189 -10
- package/README.pt-BR.md +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/agent/export-manager.js +2 -2
- package/dist/agent/session-manager.d.ts +8 -0
- package/dist/agent/session-manager.d.ts.map +1 -1
- package/dist/agent/session-manager.js +17 -2
- package/dist/agent/session-manager.js.map +1 -1
- package/dist/assets/asset-manager.d.ts +28 -1
- package/dist/assets/asset-manager.d.ts.map +1 -1
- package/dist/assets/asset-manager.js +65 -25
- package/dist/assets/asset-manager.js.map +1 -1
- package/dist/assets/index.d.ts +1 -3
- package/dist/assets/index.d.ts.map +1 -1
- package/dist/assets/index.js +1 -3
- package/dist/assets/index.js.map +1 -1
- package/dist/assets/repositories/iconify.js +1 -1
- package/dist/assets/repositories/iconify.js.map +1 -1
- package/dist/assets/repositories/openclipart.js +1 -1
- package/dist/assets/repositories/openclipart.js.map +1 -1
- package/dist/assets/repositories/svgrepo.js +2 -2
- package/dist/assets/repositories/svgrepo.js.map +1 -1
- package/dist/assets/types.d.ts +2 -2
- package/dist/assets/types.d.ts.map +1 -1
- package/dist/browser/puppeteer-controller.d.ts +86 -1
- package/dist/browser/puppeteer-controller.d.ts.map +1 -1
- package/dist/browser/puppeteer-controller.js +274 -6
- package/dist/browser/puppeteer-controller.js.map +1 -1
- package/dist/build-info.json +2 -2
- package/dist/cli.js +4 -2
- package/dist/cli.js.map +1 -1
- package/dist/design/design-systems.d.ts +2 -0
- package/dist/design/design-systems.d.ts.map +1 -1
- package/dist/design/design-systems.js +2 -0
- package/dist/design/design-systems.js.map +1 -1
- package/dist/execution/canvas-state.d.ts.map +1 -1
- package/dist/execution/canvas-state.js +19 -43
- package/dist/execution/canvas-state.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +94 -16
- package/dist/index.js.map +1 -1
- package/dist/ontology/design-graph.js +2 -2
- package/dist/ontology/design-graph.js.map +1 -1
- package/dist/ontology/ontology-validator.d.ts.map +1 -1
- package/dist/ontology/ontology-validator.js +9 -5
- package/dist/ontology/ontology-validator.js.map +1 -1
- package/dist/ontology/upstream-vocabulary.d.ts +2 -2
- package/dist/ontology/upstream-vocabulary.js +2 -2
- package/dist/ontology/validator.js +1 -1
- package/dist/ontology/validator.js.map +1 -1
- package/dist/tools/compact-descriptions.d.ts.map +1 -1
- package/dist/tools/compact-descriptions.js +15 -14
- package/dist/tools/compact-descriptions.js.map +1 -1
- package/dist/tools/definitions.d.ts +1 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +556 -157
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/engine-lists.d.ts +35 -0
- package/dist/tools/engine-lists.d.ts.map +1 -0
- package/dist/tools/engine-lists.js +186 -0
- package/dist/tools/engine-lists.js.map +1 -0
- package/dist/tools/engine-methods.d.ts.map +1 -1
- package/dist/tools/engine-methods.js +18 -1
- package/dist/tools/engine-methods.js.map +1 -1
- package/dist/tools/engine-surface.d.ts +1 -1
- package/dist/tools/engine-surface.d.ts.map +1 -1
- package/dist/tools/engine-surface.js +66 -9
- package/dist/tools/engine-surface.js.map +1 -1
- package/dist/tools/handlers/brand-intake.d.ts +95 -0
- package/dist/tools/handlers/brand-intake.d.ts.map +1 -0
- package/dist/tools/handlers/brand-intake.js +242 -0
- package/dist/tools/handlers/brand-intake.js.map +1 -0
- package/dist/tools/handlers/camera.js +8 -8
- package/dist/tools/handlers/camera.js.map +1 -1
- package/dist/tools/handlers/export.d.ts.map +1 -1
- package/dist/tools/handlers/export.js +77 -5
- package/dist/tools/handlers/export.js.map +1 -1
- package/dist/tools/handlers/font.js +10 -10
- package/dist/tools/handlers/font.js.map +1 -1
- package/dist/tools/handlers/generate.d.ts +12 -12
- package/dist/tools/handlers/maps.d.ts.map +1 -1
- package/dist/tools/handlers/maps.js +23 -3
- package/dist/tools/handlers/maps.js.map +1 -1
- package/dist/tools/handlers.d.ts +44 -11
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +462 -43
- package/dist/tools/handlers.js.map +1 -1
- package/dist/tools/minimal-descriptions.d.ts.map +1 -1
- package/dist/tools/minimal-descriptions.js +36 -29
- package/dist/tools/minimal-descriptions.js.map +1 -1
- package/dist/tools/shape-params.d.ts +2 -2
- package/dist/tools/shape-params.d.ts.map +1 -1
- package/dist/tools/shape-params.js +5 -2
- package/dist/tools/shape-params.js.map +1 -1
- package/dist/tools/stick-vocabulary.d.ts +1 -1
- package/dist/tools/stick-vocabulary.js +1 -1
- package/dist/tools/toolkits.d.ts.map +1 -1
- package/dist/tools/toolkits.js +5 -0
- package/dist/tools/toolkits.js.map +1 -1
- package/dist/types/code-generator.d.ts +96 -4
- package/dist/types/code-generator.d.ts.map +1 -1
- package/dist/types/code-generator.js +1265 -277
- package/dist/types/code-generator.js.map +1 -1
- package/dist/types/schemas.d.ts +4181 -1757
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +378 -84
- package/dist/types/schemas.js.map +1 -1
- package/dist/utils/mcp-log.d.ts +16 -0
- package/dist/utils/mcp-log.d.ts.map +1 -0
- package/dist/utils/mcp-log.js +10 -0
- package/dist/utils/mcp-log.js.map +1 -0
- package/dist/utils/progress.d.ts +28 -0
- package/dist/utils/progress.d.ts.map +1 -0
- package/dist/utils/progress.js +24 -0
- package/dist/utils/progress.js.map +1 -0
- package/dist/vendor/design/design-style.js +1 -1
- package/manifest.json +22 -2
- package/package.json +7 -4
package/README.de.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
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.).
|
|
21
21
|
|
|
22
|
-
Der Server bietet **
|
|
22
|
+
Der Server bietet **164 Tools**: Zeichnen, Animation, Diagramme, Karten, Typografie, Physik, Bildbearbeitung, Datenvisualisierung und Export:
|
|
23
23
|
|
|
24
24
|
- Text, Formen, Geometrie und komplexe Grafiken erstellen
|
|
25
25
|
- Mit deklarativen **Relationen** animieren statt mit Keyframes
|
package/README.es.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
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.).
|
|
21
21
|
|
|
22
|
-
Expone **
|
|
22
|
+
Expone **164 herramientas**: dibujo, animación, diagramas, mapas, tipografía, física, edición de imágenes, visualización de datos y exportación:
|
|
23
23
|
|
|
24
24
|
- Crear texto, formas, geometría y gráficos complejos
|
|
25
25
|
- Animar con **relaciones** declarativas en lugar de fotogramas clave
|
package/README.fr.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
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.).
|
|
21
21
|
|
|
22
|
-
Il expose **
|
|
22
|
+
Il expose **164 outils** : dessin, animation, diagrammes, cartes, typographie, physique, retouche d'image, visualisation de données et export :
|
|
23
23
|
|
|
24
24
|
- Créer du texte, des formes, de la géométrie et des graphiques complexes
|
|
25
25
|
- Animer avec des **relations** déclaratives plutôt que des images clés
|
package/README.hi.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
PinePaper MCP सर्वर AI असिस्टेंट्स को Model Context Protocol के ज़रिए [PinePaper Studio](https://pinepaper.studio) में ग्राफ़िक्स बनाने और एनिमेट करने देता है। MCP टूल कॉलिंग वाले किसी भी AI (Claude, GPT, Gemini, लोकल मॉडल आदि) के साथ काम करता है।
|
|
21
21
|
|
|
22
|
-
सर्वर **
|
|
22
|
+
सर्वर **164 टूल** देता है — ड्रॉइंग, एनिमेशन, डायग्राम, नक्शे, टाइपोग्राफ़ी, फिज़िक्स, इमेज एडिटिंग, डेटा विज़ुअलाइज़ेशन और एक्सपोर्ट:
|
|
23
23
|
|
|
24
24
|
- टेक्स्ट, आकृतियाँ, ज्यामिति और जटिल ग्राफ़िक्स बनाना
|
|
25
25
|
- कीफ़्रेम की जगह व्यवहार बताने वाले **रिलेशन** से एनिमेशन
|
package/README.ja.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
PinePaper MCP サーバーは、MCP 経由で AI アシスタントが [PinePaper Studio](https://pinepaper.studio) 上にグラフィックを作成・アニメーションさせるためのサーバーです。MCP ツールコールに対応した AI(Claude、GPT、Gemini、ローカルモデルなど)で動作します。
|
|
21
21
|
|
|
22
|
-
**
|
|
22
|
+
**164 個のツール**を提供 — 描画・アニメーション・図・地図・タイポグラフィ・物理・画像編集・データ可視化・エクスポート:
|
|
23
23
|
|
|
24
24
|
- テキスト、図形、ジオメトリ、複雑なグラフィックの作成
|
|
25
25
|
- キーフレームではなく、ふるまいを宣言する**リレーション**でアニメーション
|
package/README.ko.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
PinePaper MCP 서버는 AI 어시스턴트가 MCP를 통해 [PinePaper Studio](https://pinepaper.studio)에서 그래픽을 만들고 애니메이션하게 해줍니다. MCP 툴 콜을 지원하는 모든 AI(Claude, GPT, Gemini, 로컬 모델 등)와 호환됩니다.
|
|
21
21
|
|
|
22
|
-
**
|
|
22
|
+
**164개의 툴** 제공 — 드로잉, 애니메이션, 다이어그램, 지도, 타이포그래피, 물리, 이미지 편집, 데이터 시각화, 내보내기:
|
|
23
23
|
|
|
24
24
|
- 텍스트·도형·기하·복잡한 그래픽 생성
|
|
25
25
|
- 키프레임 대신 행동을 선언하는 **릴레이션**으로 애니메이션
|
package/README.md
CHANGED
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
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.).
|
|
32
32
|
|
|
33
|
-
The server exposes **
|
|
33
|
+
The server exposes **164 tools** across drawing, animation, diagrams, maps, typography, physics, image editing, data visualization, and export. Using natural language, you can:
|
|
34
34
|
|
|
35
35
|
- Create geometric shapes, text collages, diagrams, and data charts
|
|
36
36
|
- Apply 37+ character-level text effects and 28+ vertex deformation presets
|
|
@@ -41,7 +41,7 @@ The server exposes **159 tools** across drawing, animation, diagrams, maps, typo
|
|
|
41
41
|
|
|
42
42
|
## Running it: local or hosted
|
|
43
43
|
|
|
44
|
-
**Local is free and complete.** Every one of the
|
|
44
|
+
**Local is free and complete.** Every one of the 164 tools works when you run
|
|
45
45
|
this server yourself. There is no reduced tier and nothing held back.
|
|
46
46
|
|
|
47
47
|
What it needs:
|
|
@@ -246,6 +246,182 @@ If you do not want an agent executing anything, `code` mode is a first-class pat
|
|
|
246
246
|
- 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.
|
|
247
247
|
- 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.
|
|
248
248
|
|
|
249
|
+
## What's new in 1.6.19
|
|
250
|
+
|
|
251
|
+
### New: save a scene and restore it
|
|
252
|
+
|
|
253
|
+
`pinepaper_export_scene` takes `full: true`: it saves a restorable project
|
|
254
|
+
file (animation, relations, rigging, scene chains) and returns its path.
|
|
255
|
+
`pinepaper_import_scene` restores it. Both report counts of items, animated
|
|
256
|
+
items, keyframes and relations, so you can check nothing was lost. Without
|
|
257
|
+
`full`, `pinepaper_export_scene` returns a summary for inspection, and now
|
|
258
|
+
says that it cannot be restored.
|
|
259
|
+
|
|
260
|
+
### New: put your UI on a screen in a photo
|
|
261
|
+
|
|
262
|
+
`pinepaper_place_on_surface` places a design onto a phone, monitor or
|
|
263
|
+
billboard in a photo: fitted to the screen's perspective, with a hand in front
|
|
264
|
+
of the screen kept in front, and a little glare and light spill. It finds the
|
|
265
|
+
screen itself, or takes its four corners. The result becomes part of the photo,
|
|
266
|
+
so zooms and camera moves carry it.
|
|
267
|
+
|
|
268
|
+
### New: one scene, six styles
|
|
269
|
+
|
|
270
|
+
`pinepaper_styled_scene` draws a whole animated scene in one call: paper
|
|
271
|
+
cut-out, ink, watercolour, 1-bit dither, flowing contours or ASCII broadcast.
|
|
272
|
+
The composition can be changed (sky, hills, river, camera, colours), and
|
|
273
|
+
calling it again with another style redraws the same scene in the new look.
|
|
274
|
+
Export it for the length the result reports.
|
|
275
|
+
|
|
276
|
+
### Changed: for services that run the steps later
|
|
277
|
+
|
|
278
|
+
A host that records each canvas step and runs it at render time can pass
|
|
279
|
+
`deferred: true`: the agent is then told the step was recorded, rather than
|
|
280
|
+
handed a script to paste. Whenever the server hands back code instead of
|
|
281
|
+
running it (deferred, or `--mode code`), the code travels in
|
|
282
|
+
`_meta["pinepaper.studio/code"]` for the host to record.
|
|
283
|
+
|
|
284
|
+
### Changed: tool results report where their time went
|
|
285
|
+
|
|
286
|
+
Every result carries `_meta["pinepaper.studio/timing"]`: the whole call, and
|
|
287
|
+
the studio's share of it, for tracing slow requests.
|
|
288
|
+
|
|
289
|
+
### New: light the 3D world, brush strokes, shader graphs
|
|
290
|
+
|
|
291
|
+
`pinepaper_relight` lights the 3D world layer with up to eight point and
|
|
292
|
+
directional lights. The lighting shows in the preview and in PNG, PDF, MP4
|
|
293
|
+
and WebM exports, and the reply says how much time it adds to an export.
|
|
294
|
+
`pinepaper_shader_graph` runs node graphs (relighting, depth of field, bloom)
|
|
295
|
+
over an item or the whole scene. `pinepaper_design_medium` gains
|
|
296
|
+
`sdf_stroke`, a smooth pressure-sensitive brush stroke from a list of points.
|
|
297
|
+
|
|
298
|
+
### New: handwriting that writes itself on
|
|
299
|
+
|
|
300
|
+
`pinepaper_text_style` cursive takes `animate: true` and writes the words on
|
|
301
|
+
over `duration` seconds, with no keyframes to add. A `nib` chooses the pen:
|
|
302
|
+
`'broad'` for calligraphic thick and thin strokes, `'monoline'` for one even
|
|
303
|
+
line. Unknown cursive options are now refused rather than ignored.
|
|
304
|
+
|
|
305
|
+
### New: ink and charcoal on what you already drew
|
|
306
|
+
|
|
307
|
+
`pinepaper_design_medium` `apply` with `medium: 'ink'` or `'charcoal'`
|
|
308
|
+
restyles an existing stroke, title or group in place, with a hand-drawn line
|
|
309
|
+
that boils. The item keeps its id, animation and relations.
|
|
310
|
+
|
|
311
|
+
### Changed: asset search uses Iconify and Font Awesome
|
|
312
|
+
|
|
313
|
+
`pinepaper_search_assets` no longer searches SVGRepo or OpenClipart. Neither
|
|
314
|
+
answers automated searches any more, so they returned nothing. Asking for
|
|
315
|
+
either by name, or importing one of their asset ids, says so.
|
|
316
|
+
|
|
317
|
+
### Fixed
|
|
318
|
+
|
|
319
|
+
- `pinepaper_add_filter` offers every filter the studio has, including dither,
|
|
320
|
+
CMYK and dot halftones, edge detection, HSL and colour tint, each with its
|
|
321
|
+
parameter ranges.
|
|
322
|
+
- Maps: a highlight takes the colour you give it, and `opacity` tints the
|
|
323
|
+
land. Highlight, colouring and `get_highlighted` report the regions that
|
|
324
|
+
were actually coloured and name any that are not on the map;
|
|
325
|
+
`get_at_point` returns the region under a point; `add_marker` adds the
|
|
326
|
+
marker it reports.
|
|
327
|
+
- `pinepaper_agent_start_job` fixes an unbounded canvas at the size it
|
|
328
|
+
reports, so a PNG export is the full canvas rather than a crop of the
|
|
329
|
+
artwork.
|
|
330
|
+
- Tool descriptions at every level quote counts and action lists that match
|
|
331
|
+
the tools.
|
|
332
|
+
|
|
333
|
+
## What's new in 1.6.18
|
|
334
|
+
|
|
335
|
+
### New: spring easings, the standard easing set, and custom curves
|
|
336
|
+
|
|
337
|
+
Keyframes take three spring easings: `spring` (settles with no overshoot),
|
|
338
|
+
`springSnappy` (quick, one small overshoot) and `springPlayful` (bouncy, a few
|
|
339
|
+
visible wobbles).
|
|
340
|
+
|
|
341
|
+
The standard easings are here too: sine, quad, cubic, quart, quint, expo,
|
|
342
|
+
circ and back as `easeIn…`, `easeOut…` and `easeInOut…` (for example
|
|
343
|
+
`easeOutExpo`, `easeInOutQuart`), plus in and out bounce and elastic.
|
|
344
|
+
`pinepaper_get_available_easings` lists every name.
|
|
345
|
+
|
|
346
|
+
`pinepaper_keyframe_animate` and `pinepaper_camera_animate` also take a custom
|
|
347
|
+
cubic-bezier `[x1, y1, x2, y2]`: x within 0..1, y may go outside it for
|
|
348
|
+
overshoot.
|
|
349
|
+
|
|
350
|
+
Every easing renders exactly in video, GIF and APNG. Lottie and CSS get the
|
|
351
|
+
closest single curve, so `springPlayful` loses its wobble there and the in-out
|
|
352
|
+
quart, quint, expo and circ curves are within a few percent.
|
|
353
|
+
|
|
354
|
+
### New: look at your own animation
|
|
355
|
+
|
|
356
|
+
`pinepaper_capture_frames` takes `sheet`: many frames tiled into one small
|
|
357
|
+
image, saved to a file, with a rubric to score it against (hook, phone
|
|
358
|
+
readability, motion, variety, composition, brand, sound sync). Choose the
|
|
359
|
+
frames by time, every N seconds, a strip around a moment, or the loop's last
|
|
360
|
+
frame beside its first. Tiles are 360 px wide by default, the width of a
|
|
361
|
+
phone.
|
|
362
|
+
|
|
363
|
+
### New: make one like this
|
|
364
|
+
|
|
365
|
+
`pinepaper_media` takes `analyze_reference`: give it an uploaded reference
|
|
366
|
+
video and it measures the format: where it cuts, how long each shot runs,
|
|
367
|
+
each shot's colours, how fast it opens, and its beat. `remake_from_reference`
|
|
368
|
+
then builds a new piece on that structure in your own words. Nothing of the
|
|
369
|
+
reference's footage, words or sound is copied.
|
|
370
|
+
|
|
371
|
+
### New: start from the real brand
|
|
372
|
+
|
|
373
|
+
`pinepaper_brand_kit` takes `from_url`: give it a product's site and it saves
|
|
374
|
+
screenshots and the logo, and proposes a brand kit from the colours and fonts
|
|
375
|
+
the site actually uses, ready to review and apply. The site is read in a
|
|
376
|
+
separate browser context; your canvas is not touched.
|
|
377
|
+
|
|
378
|
+
### New: watercolour, oil paint and cut paper
|
|
379
|
+
|
|
380
|
+
`pinepaper_design_medium` takes `apply`: render any shape in watercolour, oil
|
|
381
|
+
paint, cut paper, thread or hatching, with that medium's own options. A medium
|
|
382
|
+
the studio cannot make, or one that is a brush rather than a fill, is refused
|
|
383
|
+
with the reason.
|
|
384
|
+
|
|
385
|
+
### New: motion blur
|
|
386
|
+
|
|
387
|
+
`pinepaper_agent_export` takes `motionBlur` for MP4 and WebM: each frame is
|
|
388
|
+
rendered several times across the shutter and averaged, so fast movement
|
|
389
|
+
smears the way it does on camera instead of strobing. It multiplies render
|
|
390
|
+
time; `estimateOnly` reports by how much before you commit to it.
|
|
391
|
+
|
|
392
|
+
### Changed: plan generations before paying for them
|
|
393
|
+
|
|
394
|
+
`pinepaper_generate` and `pinepaper_generate_estimate` now tell agents to plan
|
|
395
|
+
the whole timeline and price the whole plan before the first paid call, to
|
|
396
|
+
reuse images already generated, and to pick video lengths the model supports
|
|
397
|
+
rather than generating long and cropping. `pinepaper_beat_cuts` treats a
|
|
398
|
+
generated song as the backbone of the edit, used whole.
|
|
399
|
+
|
|
400
|
+
### Fixed
|
|
401
|
+
|
|
402
|
+
- The scene validator no longer flags valid easings as unknown.
|
|
403
|
+
- `pinepaper_agent_export` always saves PNG, JPG and WebP to a file and
|
|
404
|
+
returns its path. Small images used to come back inline as base64, which
|
|
405
|
+
could exceed a client's response limit.
|
|
406
|
+
- `pinepaper_execute_custom_code`: when the code fails part-way, the items it
|
|
407
|
+
created are removed, so the scene is not left half-built. The error says
|
|
408
|
+
what was removed. Edits to items that already existed are not reverted. The
|
|
409
|
+
4-second loop limit is this tool's, per call: split long work across several
|
|
410
|
+
calls.
|
|
411
|
+
- `pinepaper_design_medium` `apply_thread`: the spine points format is
|
|
412
|
+
documented (`{x, y}` or `[x, y]`).
|
|
413
|
+
- `pinepaper_world3d`: colours take hex (`"#03050c"`) everywhere: the world's
|
|
414
|
+
sky, fog, light and ground colours, and material and light colours. A
|
|
415
|
+
refused `configure` now says why, naming the key. `ground_height` takes
|
|
416
|
+
`{x, z}`. `create` lists the configurable parameters by name.
|
|
417
|
+
- A browser session lost while idle recovers by itself: `pinepaper_refresh_page`
|
|
418
|
+
and every other tool relaunch the browser when no page answers, restore the
|
|
419
|
+
canvas size, and say in the result that the canvas was reset.
|
|
420
|
+
- `pinepaper_world3d` `extrude_path` takes `upright` (stand a drawing up, like
|
|
421
|
+
a sign) and `placement` (`centered`, the default, stands the mesh on the
|
|
422
|
+
ground at the point you give). JPG and WebP stills of a 3D world scene show
|
|
423
|
+
the world rather than a white frame.
|
|
424
|
+
|
|
249
425
|
## What's new in 1.6.17
|
|
250
426
|
|
|
251
427
|
### New: tell an agent "at 4 s, make it orange"
|
|
@@ -1270,14 +1446,14 @@ Fourteen new tools (121 → 135) and new actions across the surface — the rele
|
|
|
1270
1446
|
|
|
1271
1447
|
## Toolkits & Token Budget
|
|
1272
1448
|
|
|
1273
|
-
|
|
1449
|
+
164 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.
|
|
1274
1450
|
|
|
1275
1451
|
**Toolkit profiles** (`PINEPAPER_TOOLKIT`):
|
|
1276
1452
|
|
|
1277
1453
|
| Profile | Contents |
|
|
1278
1454
|
|---------|----------|
|
|
1279
|
-
| `full` | Every tool, no filtering
|
|
1280
|
-
| `agent` |
|
|
1455
|
+
| `full` | Every tool, no filtering |
|
|
1456
|
+
| `agent` | Every tool except the diagnostics (`pinepaper_get_performance_metrics`, `pinepaper_diagnostic_report`) and `pinepaper_register_item`. The default for a client not listed below |
|
|
1281
1457
|
| `diagram` | Canvas + diagram + query/export |
|
|
1282
1458
|
| `map` | Canvas + map + query/export |
|
|
1283
1459
|
| `font` | Canvas + font + letter collage + export |
|
|
@@ -1438,10 +1614,8 @@ Choropleths, region styling, and data-driven map animation via `pinepaper_map`,
|
|
|
1438
1614
|
|
|
1439
1615
|
### 🔍 Asset Search & Import
|
|
1440
1616
|
|
|
1441
|
-
Search and import free SVG
|
|
1617
|
+
Search and import free SVG icons:
|
|
1442
1618
|
|
|
1443
|
-
- **SVGRepo**: 500,000+ icons with various licenses
|
|
1444
|
-
- **OpenClipart**: 151,000+ public domain clipart (CC0)
|
|
1445
1619
|
- **Iconify**: 200,000+ icons from multiple icon sets
|
|
1446
1620
|
- **Font Awesome**: 2,000+ free icons (CC BY 4.0)
|
|
1447
1621
|
|
|
@@ -1475,7 +1649,7 @@ Generate instruction/code pairs for LLM fine-tuning:
|
|
|
1475
1649
|
|
|
1476
1650
|
## Tools Reference
|
|
1477
1651
|
|
|
1478
|
-
All
|
|
1652
|
+
All 164 tools, grouped by the tag used for toolkit filtering.
|
|
1479
1653
|
|
|
1480
1654
|
### Canvas (`canvas`)
|
|
1481
1655
|
| Tool | Description |
|
|
@@ -1579,9 +1753,12 @@ All 159 tools, grouped by the tag used for toolkit filtering.
|
|
|
1579
1753
|
| `pinepaper_generate` | AI image generation in the PinePaper cloud (charged; beta, per organisation) |
|
|
1580
1754
|
| `pinepaper_generate_estimate` | Free price check, and the model list |
|
|
1581
1755
|
| `pinepaper_generate_status` | Collect a generation that outlived its timeout |
|
|
1756
|
+
| `pinepaper_styled_scene` | One composition drawn in a built-in style |
|
|
1582
1757
|
| `pinepaper_apply_effect` | Apply sparkle, blast, and other effects |
|
|
1583
1758
|
| `pinepaper_text_effect` | 37 character-level text animations; replaces the text with one keyframed item per character |
|
|
1584
1759
|
| `pinepaper_add_filter` | Add an image filter |
|
|
1760
|
+
| `pinepaper_relight` | Light the 3D world with point and directional lights |
|
|
1761
|
+
| `pinepaper_shader_graph` | Pixel graphs (relight, depth of field, bloom) over an item or the scene |
|
|
1585
1762
|
|
|
1586
1763
|
### Editing (`selection`, `transform`, `history`)
|
|
1587
1764
|
| Tool | Description |
|
|
@@ -1708,7 +1885,9 @@ All 159 tools, grouped by the tag used for toolkit filtering.
|
|
|
1708
1885
|
| Tool | Description |
|
|
1709
1886
|
|------|-------------|
|
|
1710
1887
|
| `pinepaper_export_svg` | Export animated SVG |
|
|
1711
|
-
| `pinepaper_export_scene` | Export the scene |
|
|
1888
|
+
| `pinepaper_export_scene` | Export the scene: a summary, or a restorable project file (`full: true`) |
|
|
1889
|
+
| `pinepaper_import_scene` | Restore a scene from a full export file |
|
|
1890
|
+
| `pinepaper_place_on_surface` | Put a UI onto a screen in a photo |
|
|
1712
1891
|
| `pinepaper_export_training_data` | Export LLM training pairs |
|
|
1713
1892
|
| `pinepaper_export_widget` | Export an embeddable widget |
|
|
1714
1893
|
| `pinepaper_export_widget_html` | Export widget HTML |
|
package/README.pt-BR.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
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.).
|
|
21
21
|
|
|
22
|
-
São **
|
|
22
|
+
São **164 ferramentas**: desenho, animação, diagramas, mapas, tipografia, física, edição de imagens, visualização de dados e exportação:
|
|
23
23
|
|
|
24
24
|
- Criar texto, formas, geometria e gráficos complexos
|
|
25
25
|
- Animar com **relações** declarativas em vez de keyframes
|
package/README.zh-CN.md
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
PinePaper MCP 服务器让 AI 助手通过 MCP 协议在 [PinePaper Studio](https://pinepaper.studio) 中创建和驱动图形动画。兼容任何支持 MCP 工具调用的 AI(Claude、GPT、Gemini、本地模型等)。
|
|
21
21
|
|
|
22
|
-
服务器提供 **
|
|
22
|
+
服务器提供 **164 个工具**,覆盖绘图、动画、图表、地图、排版、物理、图像编辑、数据可视化与导出:
|
|
23
23
|
|
|
24
24
|
- 创建文本、形状、几何图形与复杂图稿
|
|
25
25
|
- 用行为驱动的**关系(relations)**做动画,而不是逐帧关键帧
|
|
@@ -86,8 +86,8 @@ export class SmartExportManager {
|
|
|
86
86
|
analysis.hasImages = true;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
// Check for animations
|
|
90
|
-
if (data.animationType) {
|
|
89
|
+
// Check for animations ('none' is a still item, gate C5)
|
|
90
|
+
if (data.animationType && data.animationType !== 'none') {
|
|
91
91
|
analysis.hasAnimations = true;
|
|
92
92
|
animationSet.add(data.animationType);
|
|
93
93
|
}
|
|
@@ -57,6 +57,14 @@ export declare class AgentSessionManager {
|
|
|
57
57
|
* Get queue size
|
|
58
58
|
*/
|
|
59
59
|
getQueueSize(): number;
|
|
60
|
+
/**
|
|
61
|
+
* Items created by calls the server ran, counted from the governor's own
|
|
62
|
+
* report (report.items.created). registerItem() below was never called by
|
|
63
|
+
* anything, so these stats read 0 with items on the canvas (gate H3).
|
|
64
|
+
*/
|
|
65
|
+
private createdOutsideIds;
|
|
66
|
+
private createdInJobCount;
|
|
67
|
+
noteItemsCreated(count: number): void;
|
|
60
68
|
/**
|
|
61
69
|
* Register an item created during the job
|
|
62
70
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/agent/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAWpB;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,UAAU,CAAmB;IAErC;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC;;OAEG;IACH,QAAQ,CAAC,OAAO,GAAE,UAAe,GAAG,UAAU;
|
|
1
|
+
{"version":3,"file":"session-manager.d.ts","sourceRoot":"","sources":["../../src/agent/session-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,SAAS,EACT,YAAY,EACZ,gBAAgB,EACjB,MAAM,YAAY,CAAC;AAWpB;;;;;;;;GAQG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,UAAU,CAAmB;IAErC;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,aAAa,IAAI,UAAU,GAAG,IAAI;IAIlC;;OAEG;IACH,QAAQ,CAAC,OAAO,GAAE,UAAe,GAAG,UAAU;IA6B9C;;OAEG;IACH,MAAM,IAAI,SAAS,GAAG,IAAI;IA4B1B;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAS7B;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAU1B;;OAEG;IACH,eAAe,IAAI,MAAM;IAwCzB;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,iBAAiB,CAAK;IAC9B,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMrC;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMlC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAM1C;;OAEG;IACH,mBAAmB,IAAI,gBAAgB;IAIvC;;OAEG;IACH,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO;IAexE;;OAEG;IACH,iBAAiB,CAAC,OAAO,GAAE,YAAiB,GAAG,MAAM;IAwDrD;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAI5B;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAClC,iBAAiB,EAAE,MAAM,CAAC;QAC1B,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;KAC3B;CAcF;AAQD;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,mBAAmB,CAKvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAQ1C"}
|
|
@@ -45,6 +45,7 @@ export class AgentSessionManager {
|
|
|
45
45
|
* Start a new agent job
|
|
46
46
|
*/
|
|
47
47
|
startJob(options = {}) {
|
|
48
|
+
this.createdInJobCount = 0;
|
|
48
49
|
// End any existing job first
|
|
49
50
|
if (this.currentJob) {
|
|
50
51
|
console.warn('[AgentSession] Ending previous job before starting new one');
|
|
@@ -163,6 +164,20 @@ ${queue.map((code, i) => `
|
|
|
163
164
|
getQueueSize() {
|
|
164
165
|
return this.currentJob?.codeQueue.length ?? 0;
|
|
165
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Items created by calls the server ran, counted from the governor's own
|
|
169
|
+
* report (report.items.created). registerItem() below was never called by
|
|
170
|
+
* anything, so these stats read 0 with items on the canvas (gate H3).
|
|
171
|
+
*/
|
|
172
|
+
createdOutsideIds = 0;
|
|
173
|
+
createdInJobCount = 0;
|
|
174
|
+
noteItemsCreated(count) {
|
|
175
|
+
if (!(count > 0))
|
|
176
|
+
return;
|
|
177
|
+
this.createdOutsideIds += count;
|
|
178
|
+
if (this.currentJob)
|
|
179
|
+
this.createdInJobCount += count;
|
|
180
|
+
}
|
|
166
181
|
/**
|
|
167
182
|
* Register an item created during the job
|
|
168
183
|
*/
|
|
@@ -276,10 +291,10 @@ if (app.historyManager) {
|
|
|
276
291
|
activeJob: this.hasActiveJob(),
|
|
277
292
|
currentJobId: this.currentJob?.jobId ?? null,
|
|
278
293
|
currentJobDuration: this.currentJob ? Date.now() - this.currentJob.startTime : null,
|
|
279
|
-
itemsInCurrentJob: this.currentJob?.itemsCreated.length ?? 0,
|
|
294
|
+
itemsInCurrentJob: Math.max(this.currentJob?.itemsCreated.length ?? 0, this.currentJob ? this.createdInJobCount : 0),
|
|
280
295
|
codeQueueSize: this.getQueueSize(),
|
|
281
296
|
completedJobs,
|
|
282
|
-
totalItemsCreated: totalItemsCreated + (this.currentJob?.itemsCreated.length ?? 0),
|
|
297
|
+
totalItemsCreated: Math.max(totalItemsCreated + (this.currentJob?.itemsCreated.length ?? 0), this.createdOutsideIds),
|
|
283
298
|
};
|
|
284
299
|
}
|
|
285
300
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/agent/session-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session-manager.js","sourceRoot":"","sources":["../../src/agent/session-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
* Coordinates asset searching, downloading, and caching across multiple repositories.
|
|
5
5
|
*/
|
|
6
6
|
import { AssetRepository, AssetResult, AssetMetadata, AssetCacheEntry } from './types.js';
|
|
7
|
+
/**
|
|
8
|
+
* How one repository's search ended. 'timeout' and 'error' sources are
|
|
9
|
+
* reported by name rather than silently contributing zero results.
|
|
10
|
+
*/
|
|
11
|
+
export type AssetSourceStatus = 'ok' | 'timeout' | 'error';
|
|
7
12
|
/**
|
|
8
13
|
* Asset Manager configuration
|
|
9
14
|
*/
|
|
@@ -15,13 +20,20 @@ export interface AssetManagerConfig {
|
|
|
15
20
|
/** Maximum cache size in MB (default: 100) */
|
|
16
21
|
maxCacheSizeMB?: number;
|
|
17
22
|
/** Repositories to enable (default: all) */
|
|
18
|
-
repositories?: ('
|
|
23
|
+
repositories?: ('iconify' | 'fontawesome')[];
|
|
19
24
|
}
|
|
20
25
|
/**
|
|
21
26
|
* Asset Manager
|
|
22
27
|
*
|
|
23
28
|
* Provides unified interface for searching and downloading assets from multiple repositories.
|
|
24
29
|
*/
|
|
30
|
+
/**
|
|
31
|
+
* Removed in 1.6.19. SVGRepo answered every request 429 (it blocks automated
|
|
32
|
+
* clients) and OpenClipart's search/json endpoint stopped answering, so both
|
|
33
|
+
* returned nothing; until 25ece7c they did it silently, as "0 results".
|
|
34
|
+
*/
|
|
35
|
+
export declare const REMOVED_REPOSITORIES: readonly string[];
|
|
36
|
+
export declare const REMOVED_REPOSITORY_REASON = "SVGRepo and OpenClipart were removed in 1.6.19 because neither answers automated searches any more.";
|
|
25
37
|
export declare class AssetManager {
|
|
26
38
|
private repositories;
|
|
27
39
|
private cache;
|
|
@@ -39,6 +51,21 @@ export declare class AssetManager {
|
|
|
39
51
|
* @param limit Maximum results per repository
|
|
40
52
|
*/
|
|
41
53
|
search(query: string, repository?: string, limit?: number): Promise<AssetResult[]>;
|
|
54
|
+
/**
|
|
55
|
+
* Search, and say how each queried repository ended.
|
|
56
|
+
*
|
|
57
|
+
* Repositories are queried in parallel, each bounded by SOURCE_TIMEOUT_MS;
|
|
58
|
+
* the results of the ones that answered in time are returned. A single
|
|
59
|
+
* named repository that times out or fails throws, as before.
|
|
60
|
+
*/
|
|
61
|
+
searchWithStatus(query: string, repository?: string, limit?: number): Promise<{
|
|
62
|
+
results: AssetResult[];
|
|
63
|
+
sources: Record<string, AssetSourceStatus>;
|
|
64
|
+
}>;
|
|
65
|
+
/**
|
|
66
|
+
* One repository's search, bounded by SOURCE_TIMEOUT_MS. Never throws.
|
|
67
|
+
*/
|
|
68
|
+
private searchOne;
|
|
42
69
|
/**
|
|
43
70
|
* Download asset SVG content
|
|
44
71
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asset-manager.d.ts","sourceRoot":"","sources":["../../src/assets/asset-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"asset-manager.d.ts","sourceRoot":"","sources":["../../src/assets/asset-manager.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI1F;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC;AAS3D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,qCAAqC;IACrC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,4CAA4C;IAC5C,YAAY,CAAC,EAAE,CAAC,SAAS,GAAG,aAAa,CAAC,EAAE,CAAC;CAC9C;AAED;;;;GAIG;AACH;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,EAAE,SAAS,MAAM,EAA+B,CAAC;AAClF,eAAO,MAAM,yBAAyB,wGAAwG,CAAC;AAE/I,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAA2C;IAC/D,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,GAAE,kBAAuB;IAiB3C;;OAEG;IACH,kBAAkB,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI;IAIrD;;;;;;OAMG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,MAAc,EAC1B,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,WAAW,EAAE,CAAC;IAIzB;;;;;;OAMG;IACG,gBAAgB,CACpB,KAAK,EAAE,MAAM,EACb,UAAU,GAAE,MAAc,EAC1B,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAA;KAAE,CAAC;IA8BlF;;OAEG;YACW,SAAS;IAyBvB;;;;OAIG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,aAAa,CAAA;KAAE,CAAC;IAwClF;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI;IAIlD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,aAAa,IAAI;QACf,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB;CAMF;AAKD;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,CAAC,EAAE,kBAAkB,GAAG,YAAY,CAKzE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
|