@pinepaper.studio/mcp-server 1.6.13 → 1.6.15
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 +6 -1
- package/README.es.md +6 -1
- package/README.fr.md +6 -1
- package/README.hi.md +6 -1
- package/README.ja.md +6 -1
- package/README.ko.md +6 -1
- package/README.md +245 -6
- package/README.pt-BR.md +6 -1
- package/README.zh-CN.md +6 -1
- package/assets/brand/pinepaper-lockup-horizontal-white.svg +1 -0
- package/assets/brand/pinepaper-lockup-horizontal.svg +1 -0
- package/assets/edit-whenever.svg +1 -1
- package/dist/browser/puppeteer-controller.js +2 -2
- package/dist/browser/puppeteer-controller.js.map +1 -1
- package/dist/build-info.json +5 -0
- package/dist/design/design-systems.js +1 -1
- package/dist/design/design-systems.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/ontology/upstream-vocabulary.d.ts +23 -0
- package/dist/ontology/upstream-vocabulary.d.ts.map +1 -0
- package/dist/ontology/upstream-vocabulary.js +1172 -0
- package/dist/ontology/upstream-vocabulary.js.map +1 -0
- package/dist/ontology/vocabulary.d.ts.map +1 -1
- package/dist/ontology/vocabulary.js +19 -0
- package/dist/ontology/vocabulary.js.map +1 -1
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +264 -70
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/engine-methods.d.ts.map +1 -1
- package/dist/tools/engine-methods.js +24 -2
- 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 +37 -10
- package/dist/tools/engine-surface.js.map +1 -1
- package/dist/tools/handlers/camera.d.ts.map +1 -1
- package/dist/tools/handlers/camera.js +17 -2
- package/dist/tools/handlers/camera.js.map +1 -1
- package/dist/tools/handlers/font.d.ts.map +1 -1
- package/dist/tools/handlers/font.js +48 -3
- package/dist/tools/handlers/font.js.map +1 -1
- package/dist/tools/handlers/maps.d.ts.map +1 -1
- package/dist/tools/handlers/maps.js +16 -0
- package/dist/tools/handlers/maps.js.map +1 -1
- package/dist/tools/handlers.d.ts +11 -1
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +426 -14
- package/dist/tools/handlers.js.map +1 -1
- package/dist/tools/minimal-descriptions.d.ts.map +1 -1
- package/dist/tools/minimal-descriptions.js +2 -0
- package/dist/tools/minimal-descriptions.js.map +1 -1
- package/dist/tools/shape-params.d.ts +13 -2
- package/dist/tools/shape-params.d.ts.map +1 -1
- package/dist/tools/shape-params.js +98 -3
- 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 +2 -0
- package/dist/tools/toolkits.js.map +1 -1
- package/dist/types/code-generator.d.ts +27 -1
- package/dist/types/code-generator.d.ts.map +1 -1
- package/dist/types/code-generator.js +2506 -273
- package/dist/types/code-generator.js.map +1 -1
- package/dist/types/schemas.d.ts +1483 -239
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +259 -26
- package/dist/types/schemas.js.map +1 -1
- package/dist/utils/a11y.d.ts +67 -0
- package/dist/utils/a11y.d.ts.map +1 -0
- package/dist/utils/a11y.js +117 -0
- package/dist/utils/a11y.js.map +1 -0
- package/dist/utils/ad-package.d.ts +44 -0
- package/dist/utils/ad-package.d.ts.map +1 -0
- package/dist/utils/ad-package.js +121 -0
- package/dist/utils/ad-package.js.map +1 -0
- package/dist/utils/scc.d.ts +41 -0
- package/dist/utils/scc.d.ts.map +1 -0
- package/dist/utils/scc.js +185 -0
- package/dist/utils/scc.js.map +1 -0
- package/dist/utils/zip.d.ts +7 -0
- package/dist/utils/zip.d.ts.map +1 -0
- package/dist/utils/zip.js +82 -0
- package/dist/utils/zip.js.map +1 -0
- package/dist/version.d.ts +3 -0
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +31 -1
- package/dist/version.js.map +1 -1
- package/icon.png +0 -0
- package/icon.svg +1 -0
- package/manifest.json +11 -2
- package/package.json +8 -4
package/README.de.md
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Español](README.es.md) · [Português (BR)](README.pt-BR.md) · [Français](README.fr.md) · **Deutsch** · [हिन्दी](README.hi.md)
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<picture>
|
|
9
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/pinepaper-lockup-horizontal-white.svg">
|
|
10
|
+
<img src="assets/brand/pinepaper-lockup-horizontal.svg" alt="PinePaper" width="360">
|
|
11
|
+
</picture>
|
|
12
|
+
<br>
|
|
8
13
|
<img src="assets/hero.svg" alt="PinePaper MCP — animierte Grafiken aus Tool-Aufrufen" width="840">
|
|
9
14
|
</p>
|
|
10
15
|
|
|
@@ -14,7 +19,7 @@
|
|
|
14
19
|
|
|
15
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.).
|
|
16
21
|
|
|
17
|
-
Der Server bietet **
|
|
22
|
+
Der Server bietet **154 Tools**: Zeichnen, Animation, Diagramme, Karten, Typografie, Physik, Bildbearbeitung, Datenvisualisierung und Export:
|
|
18
23
|
|
|
19
24
|
- Text, Formen, Geometrie und komplexe Grafiken erstellen
|
|
20
25
|
- Mit deklarativen **Relationen** animieren statt mit Keyframes
|
package/README.es.md
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · **Español** · [Português (BR)](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [हिन्दी](README.hi.md)
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<picture>
|
|
9
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/pinepaper-lockup-horizontal-white.svg">
|
|
10
|
+
<img src="assets/brand/pinepaper-lockup-horizontal.svg" alt="PinePaper" width="360">
|
|
11
|
+
</picture>
|
|
12
|
+
<br>
|
|
8
13
|
<img src="assets/hero.svg" alt="PinePaper MCP — gráficos animados hechos con llamadas a herramientas" width="840">
|
|
9
14
|
</p>
|
|
10
15
|
|
|
@@ -14,7 +19,7 @@
|
|
|
14
19
|
|
|
15
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.).
|
|
16
21
|
|
|
17
|
-
Expone **
|
|
22
|
+
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
23
|
|
|
19
24
|
- Crear texto, formas, geometría y gráficos complejos
|
|
20
25
|
- Animar con **relaciones** declarativas en lugar de fotogramas clave
|
package/README.fr.md
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Español](README.es.md) · [Português (BR)](README.pt-BR.md) · **Français** · [Deutsch](README.de.md) · [हिन्दी](README.hi.md)
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<picture>
|
|
9
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/pinepaper-lockup-horizontal-white.svg">
|
|
10
|
+
<img src="assets/brand/pinepaper-lockup-horizontal.svg" alt="PinePaper" width="360">
|
|
11
|
+
</picture>
|
|
12
|
+
<br>
|
|
8
13
|
<img src="assets/hero.svg" alt="PinePaper MCP — graphiques animés créés par appels d'outils" width="840">
|
|
9
14
|
</p>
|
|
10
15
|
|
|
@@ -14,7 +19,7 @@
|
|
|
14
19
|
|
|
15
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.).
|
|
16
21
|
|
|
17
|
-
Il expose **
|
|
22
|
+
Il expose **154 outils** : dessin, animation, diagrammes, cartes, typographie, physique, retouche d'image, visualisation de données et export :
|
|
18
23
|
|
|
19
24
|
- Créer du texte, des formes, de la géométrie et des graphiques complexes
|
|
20
25
|
- Animer avec des **relations** déclaratives plutôt que des images clés
|
package/README.hi.md
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Español](README.es.md) · [Português (BR)](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · **हिन्दी**
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<picture>
|
|
9
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/pinepaper-lockup-horizontal-white.svg">
|
|
10
|
+
<img src="assets/brand/pinepaper-lockup-horizontal.svg" alt="PinePaper" width="360">
|
|
11
|
+
</picture>
|
|
12
|
+
<br>
|
|
8
13
|
<img src="assets/hero.svg" alt="PinePaper MCP — टूल कॉल से बने एनिमेटेड ग्राफ़िक्स" width="840">
|
|
9
14
|
</p>
|
|
10
15
|
|
|
@@ -14,7 +19,7 @@
|
|
|
14
19
|
|
|
15
20
|
PinePaper MCP सर्वर AI असिस्टेंट्स को Model Context Protocol के ज़रिए [PinePaper Studio](https://pinepaper.studio) में ग्राफ़िक्स बनाने और एनिमेट करने देता है। MCP टूल कॉलिंग वाले किसी भी AI (Claude, GPT, Gemini, लोकल मॉडल आदि) के साथ काम करता है।
|
|
16
21
|
|
|
17
|
-
सर्वर **
|
|
22
|
+
सर्वर **154 टूल** देता है — ड्रॉइंग, एनिमेशन, डायग्राम, नक्शे, टाइपोग्राफ़ी, फिज़िक्स, इमेज एडिटिंग, डेटा विज़ुअलाइज़ेशन और एक्सपोर्ट:
|
|
18
23
|
|
|
19
24
|
- टेक्स्ट, आकृतियाँ, ज्यामिति और जटिल ग्राफ़िक्स बनाना
|
|
20
25
|
- कीफ़्रेम की जगह व्यवहार बताने वाले **रिलेशन** से एनिमेशन
|
package/README.ja.md
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
[English](README.md) · [简体中文](README.zh-CN.md) · **日本語** · [한국어](README.ko.md) · [Español](README.es.md) · [Português (BR)](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [हिन्दी](README.hi.md)
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<picture>
|
|
9
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/pinepaper-lockup-horizontal-white.svg">
|
|
10
|
+
<img src="assets/brand/pinepaper-lockup-horizontal.svg" alt="PinePaper" width="360">
|
|
11
|
+
</picture>
|
|
12
|
+
<br>
|
|
8
13
|
<img src="assets/hero.svg" alt="PinePaper MCP — ツールコールから生まれるアニメーション" width="840">
|
|
9
14
|
</p>
|
|
10
15
|
|
|
@@ -14,7 +19,7 @@
|
|
|
14
19
|
|
|
15
20
|
PinePaper MCP サーバーは、MCP 経由で AI アシスタントが [PinePaper Studio](https://pinepaper.studio) 上にグラフィックを作成・アニメーションさせるためのサーバーです。MCP ツールコールに対応した AI(Claude、GPT、Gemini、ローカルモデルなど)で動作します。
|
|
16
21
|
|
|
17
|
-
**
|
|
22
|
+
**154 個のツール**を提供 — 描画・アニメーション・図・地図・タイポグラフィ・物理・画像編集・データ可視化・エクスポート:
|
|
18
23
|
|
|
19
24
|
- テキスト、図形、ジオメトリ、複雑なグラフィックの作成
|
|
20
25
|
- キーフレームではなく、ふるまいを宣言する**リレーション**でアニメーション
|
package/README.ko.md
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja.md) · **한국어** · [Español](README.es.md) · [Português (BR)](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [हिन्दी](README.hi.md)
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<picture>
|
|
9
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/pinepaper-lockup-horizontal-white.svg">
|
|
10
|
+
<img src="assets/brand/pinepaper-lockup-horizontal.svg" alt="PinePaper" width="360">
|
|
11
|
+
</picture>
|
|
12
|
+
<br>
|
|
8
13
|
<img src="assets/hero.svg" alt="PinePaper MCP — 툴 콜로 만든 애니메이션" width="840">
|
|
9
14
|
</p>
|
|
10
15
|
|
|
@@ -14,7 +19,7 @@
|
|
|
14
19
|
|
|
15
20
|
PinePaper MCP 서버는 AI 어시스턴트가 MCP를 통해 [PinePaper Studio](https://pinepaper.studio)에서 그래픽을 만들고 애니메이션하게 해줍니다. MCP 툴 콜을 지원하는 모든 AI(Claude, GPT, Gemini, 로컬 모델 등)와 호환됩니다.
|
|
16
21
|
|
|
17
|
-
**
|
|
22
|
+
**154개의 툴** 제공 — 드로잉, 애니메이션, 다이어그램, 지도, 타이포그래피, 물리, 이미지 편집, 데이터 시각화, 내보내기:
|
|
18
23
|
|
|
19
24
|
- 텍스트·도형·기하·복잡한 그래픽 생성
|
|
20
25
|
- 키프레임 대신 행동을 선언하는 **릴레이션**으로 애니메이션
|
package/README.md
CHANGED
|
@@ -8,6 +8,11 @@
|
|
|
8
8
|
**English** · [简体中文](README.zh-CN.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Español](README.es.md) · [Português (BR)](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [हिन्दी](README.hi.md)
|
|
9
9
|
|
|
10
10
|
<p align="center">
|
|
11
|
+
<picture>
|
|
12
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/pinepaper-lockup-horizontal-white.svg">
|
|
13
|
+
<img src="assets/brand/pinepaper-lockup-horizontal.svg" alt="PinePaper" width="360">
|
|
14
|
+
</picture>
|
|
15
|
+
<br>
|
|
11
16
|
<img src="assets/edit-whenever.svg" alt="Generate once. Edit whenever. — animated PinePaper poster: the headline assembles from scatter, a color wave runs through every letter, and 'generate twice / thrice' get struck out before 'once' is highlighted" width="720">
|
|
12
17
|
</p>
|
|
13
18
|
|
|
@@ -25,7 +30,7 @@
|
|
|
25
30
|
|
|
26
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.).
|
|
27
32
|
|
|
28
|
-
The server exposes **
|
|
33
|
+
The server exposes **154 tools** across drawing, animation, diagrams, maps, typography, physics, image editing, data visualization, and export. Using natural language, you can:
|
|
29
34
|
|
|
30
35
|
- Create geometric shapes, text collages, diagrams, and data charts
|
|
31
36
|
- Apply 37+ character-level text effects and 28+ vertex deformation presets
|
|
@@ -36,7 +41,7 @@ The server exposes **152 tools** across drawing, animation, diagrams, maps, typo
|
|
|
36
41
|
|
|
37
42
|
## Running it: local or hosted
|
|
38
43
|
|
|
39
|
-
**Local is free and complete.** Every one of the
|
|
44
|
+
**Local is free and complete.** Every one of the 154 tools works when you run
|
|
40
45
|
this server yourself. There is no reduced tier and nothing held back.
|
|
41
46
|
|
|
42
47
|
What it needs:
|
|
@@ -44,7 +49,7 @@ What it needs:
|
|
|
44
49
|
| | |
|
|
45
50
|
|---|---|
|
|
46
51
|
| Node | 18 or newer |
|
|
47
|
-
| Disk | Puppeteer
|
|
52
|
+
| Disk | With Puppeteer (below), Chrome is downloaded on install — roughly **320 MB** per version |
|
|
48
53
|
| Memory | a Chrome process plus the Studio canvas, so budget ~1 GB while a job runs |
|
|
49
54
|
|
|
50
55
|
That is fine on a laptop and awkward on a small VPS, a locked-down work machine,
|
|
@@ -73,6 +78,30 @@ question you can answer yourself rather than take on trust: a benchmark runs one
|
|
|
73
78
|
prompt across several models and puts the results side by side, any run
|
|
74
79
|
shareable. It is in invite-only beta.
|
|
75
80
|
|
|
81
|
+
### Quick start
|
|
82
|
+
|
|
83
|
+
Puppeteer is an **optional** install, so a plain `npx @pinepaper.studio/mcp-server`
|
|
84
|
+
has no browser: every tool then returns the code it would run instead of running
|
|
85
|
+
it (the result says so). To execute in a real browser, install Puppeteer **in the
|
|
86
|
+
same `npx` call** — a separate `npm i puppeteer` in your project is not visible to
|
|
87
|
+
`npx`'s copy of the server:
|
|
88
|
+
|
|
89
|
+
```json
|
|
90
|
+
{
|
|
91
|
+
"mcpServers": {
|
|
92
|
+
"pinepaper": {
|
|
93
|
+
"command": "npx",
|
|
94
|
+
"args": ["-y", "-p", "puppeteer", "-p", "@pinepaper.studio/mcp-server", "pinepaper-mcp"]
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
For code-only use (no Chrome, no 320 MB download), use
|
|
101
|
+
`"args": ["-y", "@pinepaper.studio/mcp-server"]` and set
|
|
102
|
+
`"env": { "PINEPAPER_EXECUTION_MODE": "code" }`. A global install works too:
|
|
103
|
+
`npm i -g @pinepaper.studio/mcp-server puppeteer`, then `"command": "pinepaper-mcp"`.
|
|
104
|
+
|
|
76
105
|
## Made with tool calls
|
|
77
106
|
|
|
78
107
|
<p align="center"><img src="assets/hero.svg" width="720" alt="Animated vector graphics, made by tool calls — a tool call on the left runs and becomes a curve drawing itself on the right, composed with PinePaper Studio"></p>
|
|
@@ -153,7 +182,7 @@ The same graph drives visuals, keyboard access, and screen-reader roles (WCAG 2.
|
|
|
153
182
|
|
|
154
183
|
The snippets above are MCP tool-call arguments — they execute when an AI agent invokes the tool. Three ways to make that happen:
|
|
155
184
|
|
|
156
|
-
**1 · Ask your agent (any MCP client).** With this server [configured](#
|
|
185
|
+
**1 · Ask your agent (any MCP client).** With this server [configured](#quick-start), paste a prompt like:
|
|
157
186
|
|
|
158
187
|
> Create a blue circle and make it ride a diamond-shaped path with easeInOut, looping. Add an orange rotating square beside it. Then export the scene as animated SVG.
|
|
159
188
|
|
|
@@ -217,6 +246,214 @@ If you do not want an agent executing anything, `code` mode is a first-class pat
|
|
|
217
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.
|
|
218
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.
|
|
219
248
|
|
|
249
|
+
## What's new in 1.6.15
|
|
250
|
+
|
|
251
|
+
### New: the PinePaper mark
|
|
252
|
+
|
|
253
|
+
The "origami pine" is the new PinePaper mark. The package now ships it as its
|
|
254
|
+
icon (`icon.svg`, `icon.png`), and MCP bundle hosts that read `manifest.json`
|
|
255
|
+
show it.
|
|
256
|
+
|
|
257
|
+
### New: transparent WebM
|
|
258
|
+
|
|
259
|
+
`pinepaper_agent_export` with `format: "webm"` takes `transparent: true` (and
|
|
260
|
+
`alphaQuantizer`, 0–63) for a video with a real alpha channel, where the studio
|
|
261
|
+
supports it. The result confirms the alpha stream; if none was written, the
|
|
262
|
+
result says so instead of handing back an opaque file.
|
|
263
|
+
|
|
264
|
+
### New: fonts in multi-page PDFs
|
|
265
|
+
|
|
266
|
+
A PDF deck (`pdf.pages`) embeds the scene's fonts for its searchable text layer
|
|
267
|
+
and reports them in `result.pdf.fonts`. On studios that support it, each page
|
|
268
|
+
gets its own scene's fonts. Text hidden at the moment of rendering (outside its
|
|
269
|
+
`bornAt` / `ttl` window, or invisible) is named in the result, since it is in
|
|
270
|
+
neither the picture nor the text layer.
|
|
271
|
+
|
|
272
|
+
### Fixed: `npx` setups could never execute in a browser
|
|
273
|
+
|
|
274
|
+
Puppeteer is an optional install, and under `npx` a separate `npm i puppeteer`
|
|
275
|
+
is not visible to the server. The README's new **Quick start** gives the `npx`
|
|
276
|
+
configuration that includes it; the error message leads with the same
|
|
277
|
+
advice.
|
|
278
|
+
|
|
279
|
+
### Fixed: text-only properties on shapes
|
|
280
|
+
|
|
281
|
+
`fontWeight`, `strokePosition` and other text-only properties passed to a
|
|
282
|
+
non-text item are reported as not applied again.
|
|
283
|
+
|
|
284
|
+
## What's new in 1.6.14
|
|
285
|
+
|
|
286
|
+
Many of the features below rely on newer studio capabilities. Where a studio
|
|
287
|
+
lacks one, the result says so — the call never quietly claims what it could
|
|
288
|
+
not do.
|
|
289
|
+
|
|
290
|
+
### New: ads, variants and broadcast deliverables
|
|
291
|
+
|
|
292
|
+
- **`html5-ad`** export: a display-network zip (`index.html` with the
|
|
293
|
+
`ad.size` meta and a `clickTag` click target — the whole ad or a CTA's box)
|
|
294
|
+
plus a backup PNG beside it. The result checks the zip against a size budget
|
|
295
|
+
(`ad.maxBytes`, default 150 KB) and lists any external requests.
|
|
296
|
+
- **`playable`** export: a single-file MRAID playable whose CTA
|
|
297
|
+
(`ad.ctaItemId`) opens the store link through `mraid.open`, leaving the rest
|
|
298
|
+
of the ad interactive.
|
|
299
|
+
- **`pinepaper_render_batch`**: one creative per row of data — each row's item
|
|
300
|
+
changes or template params, then an export — with per-row files, warnings and
|
|
301
|
+
failures.
|
|
302
|
+
- **`scc`** captions: CEA-608 (broadcast) from the same timed text as SRT / VTT,
|
|
303
|
+
with notes on anything cut, dropped or timed late.
|
|
304
|
+
- **`pinepaper_accessibility_check`**: text contrast (WCAG AA) and flashing
|
|
305
|
+
(more than three flashes a second) as a quick screen before delivery.
|
|
306
|
+
|
|
307
|
+
### New: text that fits its box
|
|
308
|
+
|
|
309
|
+
- **`fit`** on text (`create_item`, `modify_item`, batch):
|
|
310
|
+
`{maxWidth, maxHeight?, minFontSize?, maxFontSize?, wrap?, hold?}` sizes the
|
|
311
|
+
text to the box, and later content changes refit it — the variant /
|
|
312
|
+
translation workflow. It holds the anchored edge (`top-*` holds the top);
|
|
313
|
+
`fit: null` stops fitting. The result's `textFit` gives the size, line count
|
|
314
|
+
and whether it fits.
|
|
315
|
+
- **Overflow in every export.** `fidelity` lists `text_overflow` for text past
|
|
316
|
+
its box or off the frame — the check to run before rendering a batch.
|
|
317
|
+
- **`direction`** (`auto` | `ltr` | `rtl`) for Arabic, Hebrew and other RTL
|
|
318
|
+
paragraphs; `auto` is reported with the way it resolved.
|
|
319
|
+
- **`tabularFigures`** for counters and prices that should not jitter, and
|
|
320
|
+
**`strokePosition: 'outside'`** for thick caption outlines that keep the
|
|
321
|
+
letterform.
|
|
322
|
+
- Weight, italic, line spacing, and fonts from the catalogue or Google Fonts
|
|
323
|
+
(`pinepaper_font` gained a `load` action) now reach the text, loaded before
|
|
324
|
+
it is drawn.
|
|
325
|
+
|
|
326
|
+
### New: export formats and controls
|
|
327
|
+
|
|
328
|
+
- **`apng`** — animation with full transparency, for overlays and stickers.
|
|
329
|
+
- **`jpg` / `webp`** stills for byte-budgeted ad specs; **`srt` / `vtt`**
|
|
330
|
+
captions from the scene's timed text; **multi-page PDF**, one page per saved
|
|
331
|
+
scene, with a searchable text layer and print options (paper
|
|
332
|
+
size, orientation, bleed, trim marks, dpi).
|
|
333
|
+
- **`region`** exports a part of the canvas — carousel slices, sheets of cards.
|
|
334
|
+
A cell leaves out a neighbour's overflowing items and names the items that
|
|
335
|
+
cross its edge.
|
|
336
|
+
- **`time`** renders a still at a chosen moment rather than wherever the
|
|
337
|
+
playhead is.
|
|
338
|
+
- **GIF** `loop` play count and a `maxBytes` budget (re-encoded smaller, with
|
|
339
|
+
each attempt reported).
|
|
340
|
+
- **Broadcast MP4** — `broadcast: true` (BT.709, limited range, constant
|
|
341
|
+
bitrate), `bitrate` / `minBitrate`, and `broadcastHeadroom`. The result
|
|
342
|
+
reports the achieved bitrate and the measured luma; when the file would fail
|
|
343
|
+
broadcast QC, `fidelity` says so and gives the command that fixes it.
|
|
344
|
+
- **NTSC rates** (29.97, 59.94, …) with a note when a duration overruns at
|
|
345
|
+
them, and a warning when H.264 rounds an odd side up by a pixel.
|
|
346
|
+
- New platform presets `print-a4-landscape` and `print-letter-landscape`.
|
|
347
|
+
|
|
348
|
+
### New: tools and parameters
|
|
349
|
+
|
|
350
|
+
- **`pinepaper_lasso`** gained `cut`: cut a subject out along a polygon, no custom code.
|
|
351
|
+
- **Generator regions** can be shaped (rounded rect, ellipse, circle, polygon,
|
|
352
|
+
star, or an existing path) and named with `region.id`; the same generator in
|
|
353
|
+
several boxes gives several instances.
|
|
354
|
+
- **`modify_item`** takes `skewX` / `skewY` and an affine `matrix` (mockups).
|
|
355
|
+
- **Pixel-art rasters** (`smoothing: 'off'`), a **globe `disable`** action,
|
|
356
|
+
**keyed audio gain**, and **widget HTML** `lang`, `dir` and `alt`.
|
|
357
|
+
- `bornAt` / `ttl` now work as a visibility window in local renders, so shots
|
|
358
|
+
hand over cleanly on the boundary.
|
|
359
|
+
- `serverInfo.version` names the exact build (`1.6.14+<sha>`).
|
|
360
|
+
|
|
361
|
+
### Fixed: properties that were silently ignored
|
|
362
|
+
|
|
363
|
+
`create_item` and `modify_item` now name any property they could not act on,
|
|
364
|
+
with a suggestion for common misspellings. Beyond that, these used to be
|
|
365
|
+
dropped and now work: no-fill (`null` / `'transparent'` / `'none'`), dashes,
|
|
366
|
+
caps and joins on every shape, `color` on closed paths, a top-level `anchor`,
|
|
367
|
+
path coordinates kept when no position is given, mesh colour on 3D shapes,
|
|
368
|
+
`template_params` naming undeclared params, chart data in the documented
|
|
369
|
+
shape, and gradients that cannot be read (now refused, not drawn as nothing).
|
|
370
|
+
|
|
371
|
+
### Fixed: tools that reported success for the wrong thing
|
|
372
|
+
|
|
373
|
+
- Batch create / modify / execute now behave exactly like their single-item
|
|
374
|
+
tools, with one undo step per batch.
|
|
375
|
+
- `moves_along_path` follows the path you name (or refuses); relations to an
|
|
376
|
+
id not on the canvas are refused.
|
|
377
|
+
- Uploaded media: the id you are given is the one other tools accept, audio
|
|
378
|
+
levels reach the mix, `data:` and server-side URLs upload in production,
|
|
379
|
+
and clearing the canvas removes uploaded media too.
|
|
380
|
+
- A platform preset no longer stretches a canvas of another aspect ratio.
|
|
381
|
+
- `camera_animate` no longer claims pitch / yaw as 3D perspective, and its
|
|
382
|
+
`duration` is optional.
|
|
383
|
+
- Nine tools' published schemas disagreed with what they accepted; a guard
|
|
384
|
+
now keeps them in step.
|
|
385
|
+
|
|
386
|
+
### New: a whole music bed in one call
|
|
387
|
+
|
|
388
|
+
`pinepaper_sound` gained a `sequence` action taking `[{t, spec|preset, note?,
|
|
389
|
+
duration?}]`. Every cue used to be its own call — a 112-cue bed cost 112 round
|
|
390
|
+
trips — and nothing about the work needed one each. Failures come back by
|
|
391
|
+
index, because a bed where three of a hundred cues didn't sound is neither a
|
|
392
|
+
success nor a failure.
|
|
393
|
+
|
|
394
|
+
### Fixed: create_scene drew the wrong shape for six of its ten types
|
|
395
|
+
|
|
396
|
+
It built shapes itself instead of asking the engine — a hand-written branch per
|
|
397
|
+
type covering circle, rectangle, star and text, and **a 30px circle for
|
|
398
|
+
everything else**. So `ellipse`, `triangle`, `polygon`, `path`, `line` and
|
|
399
|
+
`arc` silently came out as a small blue circle, and any property that branch
|
|
400
|
+
didn't name was dropped (which is why an ellipse ignored `width`/`height` while
|
|
401
|
+
the same values worked through `agent_batch_execute`).
|
|
402
|
+
|
|
403
|
+
It now creates items the same way every other tool does, so all 28 item types
|
|
404
|
+
work, along with every property they accept. Two related corrections: scene
|
|
405
|
+
relations accepted 8 types while the catalogue documented ~90 — following the
|
|
406
|
+
documentation failed validation — and scene animations gained `startTime`, so a
|
|
407
|
+
scene can be staggered instead of everything moving from frame zero.
|
|
408
|
+
|
|
409
|
+
### Fixed: layered-character import described the wrong manifest
|
|
410
|
+
|
|
411
|
+
The docs implied a `layers[]` array; the engine reads `info.parts` keyed by tag.
|
|
412
|
+
An array imports nothing. The description also implied `pinepaper_animate`
|
|
413
|
+
could blink — only an `expresses` relation drives blink/smile/talk, and asking
|
|
414
|
+
`animate` for it is a silent no-op.
|
|
415
|
+
|
|
416
|
+
### Fixed: PDF export failed on every scene
|
|
417
|
+
|
|
418
|
+
`pinepaper_agent_export` with `format: "pdf"` died with "parameter 1 is not of
|
|
419
|
+
type 'Blob'" — an error naming `FileReader` and nothing about PDFs. The engine
|
|
420
|
+
resolves a record `{blob, width, height, format}` and this passed the whole
|
|
421
|
+
record where a `Blob` was expected. It now accepts either shape, reports the
|
|
422
|
+
page geometry the record carries, and when something really is not a file it
|
|
423
|
+
says so about the PDF rather than about `FileReader`.
|
|
424
|
+
|
|
425
|
+
### Fixed: the validator's own findings were being swallowed
|
|
426
|
+
|
|
427
|
+
`pinepaper_validate` answers `{success: true, ok: false, diagnostics: [...]}` —
|
|
428
|
+
the call worked and the *scene* has problems, which is the whole point of the
|
|
429
|
+
tool. An internal guard treated `ok: false` as a tool failure, so the result
|
|
430
|
+
became "the studio reported failure without naming a reason" and the
|
|
431
|
+
diagnostics were discarded. A refusal that carries diagnostics now names them.
|
|
432
|
+
|
|
433
|
+
### Changed: export fidelity is always reported
|
|
434
|
+
|
|
435
|
+
It used to appear only when there was something to lose, so that an empty list
|
|
436
|
+
could not be misread as "this format is lossless". That traded one misreading
|
|
437
|
+
for a worse one — you could not tell "checked, nothing lost" from "never
|
|
438
|
+
checked". All three states are explicit now, and the caveat lives in a note
|
|
439
|
+
rather than in the absence.
|
|
440
|
+
|
|
441
|
+
`pinepaper_agent_export` also points at `pinepaper_capture_frames` as the cheap
|
|
442
|
+
way to confirm a scene is actually moving **before** committing to a render.
|
|
443
|
+
|
|
444
|
+
### Fixed: documentation that described the wrong contract
|
|
445
|
+
|
|
446
|
+
- **`solveOde` state variables are positional** — `t`, `y0`, `y1`, `y2` …
|
|
447
|
+
matching `initialState`. There is no `x` or `y`, so the natural way to write
|
|
448
|
+
a Lorenz system failed with "Undefined symbol y". The working form is now in
|
|
449
|
+
the description.
|
|
450
|
+
- **`moves_along_path` with `params.equation`** only works on the relation's
|
|
451
|
+
signal path. Easing `bounce` is piecewise and leaves that path, which
|
|
452
|
+
silently discards the equation and leaves the item where it started.
|
|
453
|
+
- **`grid.blocked` in `pathfind`** is a **mask**, one entry per cell, not a
|
|
454
|
+
list of blocked indices. Both are arrays of numbers, so the wrong one used to
|
|
455
|
+
produce a plausible "no path" instead of an error; the length is now checked.
|
|
456
|
+
|
|
220
457
|
## What's new in 1.6.13
|
|
221
458
|
|
|
222
459
|
### Fixed: WebGL was switched off, so every shader feature silently did nothing
|
|
@@ -934,7 +1171,7 @@ Fourteen new tools (121 → 135) and new actions across the surface — the rele
|
|
|
934
1171
|
|
|
935
1172
|
## Toolkits & Token Budget
|
|
936
1173
|
|
|
937
|
-
|
|
1174
|
+
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.
|
|
938
1175
|
|
|
939
1176
|
**Toolkit profiles** (`PINEPAPER_TOOLKIT`):
|
|
940
1177
|
|
|
@@ -1139,7 +1376,7 @@ Generate instruction/code pairs for LLM fine-tuning:
|
|
|
1139
1376
|
|
|
1140
1377
|
## Tools Reference
|
|
1141
1378
|
|
|
1142
|
-
All
|
|
1379
|
+
All 154 tools, grouped by the tag used for toolkit filtering.
|
|
1143
1380
|
|
|
1144
1381
|
### Canvas (`canvas`)
|
|
1145
1382
|
| Tool | Description |
|
|
@@ -1260,6 +1497,7 @@ All 152 tools, grouped by the tag used for toolkit filtering.
|
|
|
1260
1497
|
| `pinepaper_scene_diff` | What changed between two scene states |
|
|
1261
1498
|
| `pinepaper_audio_beats` | Detect beats; bake an item's animation onto them |
|
|
1262
1499
|
| `pinepaper_template_params` | Templates with typed, coerced inputs |
|
|
1500
|
+
| `pinepaper_render_batch` | One creative per data row: apply the row, export it |
|
|
1263
1501
|
|
|
1264
1502
|
### Image Processing (`image_processing`)
|
|
1265
1503
|
| Tool | Description |
|
|
@@ -1357,6 +1595,7 @@ All 152 tools, grouped by the tag used for toolkit filtering.
|
|
|
1357
1595
|
| `pinepaper_analyze_design` | Analyze design quality |
|
|
1358
1596
|
| `pinepaper_validate_design` | Validate against design rules |
|
|
1359
1597
|
| `pinepaper_validate` | General validation |
|
|
1598
|
+
| `pinepaper_accessibility_check` | Text contrast and flashing (WCAG), as a heuristic screen |
|
|
1360
1599
|
| `pinepaper_validate_scene` | Validate scene integrity |
|
|
1361
1600
|
| `pinepaper_instantiate_ontology` | Compile a pp: design graph into a scene |
|
|
1362
1601
|
| `pinepaper_lint_scene` | Relational-density audit + structural-relation suggestions |
|
package/README.pt-BR.md
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
[English](README.md) · [简体中文](README.zh-CN.md) · [日本語](README.ja.md) · [한국어](README.ko.md) · [Español](README.es.md) · **Português (BR)** · [Français](README.fr.md) · [Deutsch](README.de.md) · [हिन्दी](README.hi.md)
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<picture>
|
|
9
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/pinepaper-lockup-horizontal-white.svg">
|
|
10
|
+
<img src="assets/brand/pinepaper-lockup-horizontal.svg" alt="PinePaper" width="360">
|
|
11
|
+
</picture>
|
|
12
|
+
<br>
|
|
8
13
|
<img src="assets/hero.svg" alt="PinePaper MCP — gráficos animados feitos por chamadas de ferramenta" width="840">
|
|
9
14
|
</p>
|
|
10
15
|
|
|
@@ -14,7 +19,7 @@
|
|
|
14
19
|
|
|
15
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.).
|
|
16
21
|
|
|
17
|
-
São **
|
|
22
|
+
São **154 ferramentas**: desenho, animação, diagramas, mapas, tipografia, física, edição de imagens, visualização de dados e exportação:
|
|
18
23
|
|
|
19
24
|
- Criar texto, formas, geometria e gráficos complexos
|
|
20
25
|
- Animar com **relações** declarativas em vez de keyframes
|
package/README.zh-CN.md
CHANGED
|
@@ -5,6 +5,11 @@
|
|
|
5
5
|
[English](README.md) · **简体中文** · [日本語](README.ja.md) · [한국어](README.ko.md) · [Español](README.es.md) · [Português (BR)](README.pt-BR.md) · [Français](README.fr.md) · [Deutsch](README.de.md) · [हिन्दी](README.hi.md)
|
|
6
6
|
|
|
7
7
|
<p align="center">
|
|
8
|
+
<picture>
|
|
9
|
+
<source media="(prefers-color-scheme: dark)" srcset="assets/brand/pinepaper-lockup-horizontal-white.svg">
|
|
10
|
+
<img src="assets/brand/pinepaper-lockup-horizontal.svg" alt="PinePaper" width="360">
|
|
11
|
+
</picture>
|
|
12
|
+
<br>
|
|
8
13
|
<img src="assets/hero.svg" alt="PinePaper MCP — 由工具调用生成的矢量动画" width="840">
|
|
9
14
|
</p>
|
|
10
15
|
|
|
@@ -14,7 +19,7 @@
|
|
|
14
19
|
|
|
15
20
|
PinePaper MCP 服务器让 AI 助手通过 MCP 协议在 [PinePaper Studio](https://pinepaper.studio) 中创建和驱动图形动画。兼容任何支持 MCP 工具调用的 AI(Claude、GPT、Gemini、本地模型等)。
|
|
16
21
|
|
|
17
|
-
服务器提供 **
|
|
22
|
+
服务器提供 **154 个工具**,覆盖绘图、动画、图表、地图、排版、物理、图像编辑、数据可视化与导出:
|
|
18
23
|
|
|
19
24
|
- 创建文本、形状、几何图形与复杂图稿
|
|
20
25
|
- 用行为驱动的**关系(relations)**做动画,而不是逐帧关键帧
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2156.7 512" width="2156.7" height="512" role="img" aria-label="PinePaper"><title>PinePaper</title><defs><linearGradient id="pplh-bg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#6366f1"/><stop offset="1" stop-color="#8b5cf6"/></linearGradient><linearGradient id="pplh-tr" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#f97316"/><stop offset="1" stop-color="#fbbf24"/></linearGradient></defs><rect x="0" y="0" width="512" height="512" rx="112" fill="url(#pplh-bg)"/><rect x="232" y="378" width="48" height="56" rx="6" fill="url(#pplh-tr)"/><path fill="#ffffff" d="M257 78 L172.8 182 L224 182 L147.2 278 L211.2 278 L121.6 390 L257 390 Z"/><path fill="#dfe3ff" d="M256 78 L339.2 182 L288 182 L364.8 278 L300.8 278 L390.4 390 L256 390 Z"/><path fill="#ffffff" d="M709.8 280.75H674.7V361.15H632.7V151.75H709.8Q734.1 151.75 751.2 160.15Q768.3 168.55 776.85 183.25Q785.4 197.95 785.4 216.55Q785.4 233.35 777.45 248.05Q769.5 262.75 752.55 271.75Q735.6 280.75 709.8 280.75ZM742.2 216.55Q742.2 185.95 708 185.95H674.7V246.85H708Q725.4 246.85 733.8 238.9Q742.2 230.95 742.2 216.55ZM810.6 150.55Q810.6 140.05 817.95 133Q825.3 125.95 836.4 125.95Q847.5 125.95 854.85 133Q862.2 140.05 862.2 150.55Q862.2 161.05 854.85 168.1Q847.5 175.15 836.4 175.15Q825.3 175.15 817.95 168.1Q810.6 161.05 810.6 150.55ZM857.1 194.95V361.15H815.1V194.95ZM1056.9 263.65V361.15H1014.9V269.35Q1014.9 249.55 1005 238.9Q995.1 228.25 978 228.25Q960.6 228.25 950.55 238.9Q940.5 249.55 940.5 269.35V361.15H898.5V194.95H940.5V215.65Q948.9 204.85 961.95 198.7Q975 192.55 990.6 192.55Q1020.3 192.55 1038.6 211.3Q1056.9 230.05 1056.9 263.65ZM1250.1 290.65H1128.6Q1130.1 308.65 1141.2 318.85Q1152.3 329.05 1168.5 329.05Q1191.9 329.05 1201.8 308.95H1247.1Q1239.9 332.95 1219.5 348.4Q1199.1 363.85 1169.4 363.85Q1145.4 363.85 1126.35 353.2Q1107.3 342.55 1096.65 323.05Q1086 303.55 1086 278.05Q1086 252.25 1096.5 232.75Q1107 213.25 1125.9 202.75Q1144.8 192.25 1169.4 192.25Q1193.1 192.25 1211.85 202.45Q1230.6 212.65 1240.95 231.4Q1251.3 250.15 1251.3 274.45Q1251.3 283.45 1250.1 290.65ZM1207.8 262.45Q1207.5 246.25 1196.1 236.5Q1184.7 226.75 1168.2 226.75Q1152.6 226.75 1141.95 236.2Q1131.3 245.65 1128.9 262.45ZM1359 280.75H1323.9V361.15H1281.9V151.75H1359Q1383.3 151.75 1400.4 160.15Q1417.5 168.55 1426.05 183.25Q1434.6 197.95 1434.6 216.55Q1434.6 233.35 1426.65 248.05Q1418.7 262.75 1401.75 271.75Q1384.8 280.75 1359 280.75ZM1391.4 216.55Q1391.4 185.95 1357.2 185.95H1323.9V246.85H1357.2Q1374.6 246.85 1383 238.9Q1391.4 230.95 1391.4 216.55ZM1529.4 192.25Q1548 192.25 1561.95 199.75Q1575.9 207.25 1584.3 218.65V194.95H1626.6V361.15H1584.3V336.85Q1576.2 348.55 1561.95 356.2Q1547.7 363.85 1529.1 363.85Q1508.1 363.85 1490.85 353.05Q1473.6 342.25 1463.55 322.6Q1453.5 302.95 1453.5 277.45Q1453.5 252.25 1463.55 232.75Q1473.6 213.25 1490.85 202.75Q1508.1 192.25 1529.4 192.25ZM1540.2 229.15Q1528.5 229.15 1518.6 234.85Q1508.7 240.55 1502.55 251.5Q1496.4 262.45 1496.4 277.45Q1496.4 292.45 1502.55 303.7Q1508.7 314.95 1518.75 320.95Q1528.8 326.95 1540.2 326.95Q1551.9 326.95 1562.1 321.1Q1572.3 315.25 1578.3 304.3Q1584.3 293.35 1584.3 278.05Q1584.3 262.75 1578.3 251.8Q1572.3 240.85 1562.1 235Q1551.9 229.15 1540.2 229.15ZM1764.6 192.25Q1785.9 192.25 1803.15 202.75Q1820.4 213.25 1830.45 232.6Q1840.5 251.95 1840.5 277.45Q1840.5 302.95 1830.45 322.6Q1820.4 342.25 1803.15 353.05Q1785.9 363.85 1764.6 363.85Q1746.3 363.85 1732.35 356.35Q1718.4 348.85 1709.7 337.45V440.35H1667.7V194.95H1709.7V218.95Q1717.8 207.55 1732.05 199.9Q1746.3 192.25 1764.6 192.25ZM1753.5 229.15Q1742.1 229.15 1732.05 235Q1722 240.85 1715.85 251.95Q1709.7 263.05 1709.7 278.05Q1709.7 293.05 1715.85 304.15Q1722 315.25 1732.05 321.1Q1742.1 326.95 1753.5 326.95Q1765.2 326.95 1775.25 320.95Q1785.3 314.95 1791.45 303.85Q1797.6 292.75 1797.6 277.45Q1797.6 262.45 1791.45 251.5Q1785.3 240.55 1775.25 234.85Q1765.2 229.15 1753.5 229.15ZM2024.4 290.65H1902.9Q1904.4 308.65 1915.5 318.85Q1926.6 329.05 1942.8 329.05Q1966.2 329.05 1976.1 308.95H2021.4Q2014.2 332.95 1993.8 348.4Q1973.4 363.85 1943.7 363.85Q1919.7 363.85 1900.65 353.2Q1881.6 342.55 1870.95 323.05Q1860.3 303.55 1860.3 278.05Q1860.3 252.25 1870.8 232.75Q1881.3 213.25 1900.2 202.75Q1919.1 192.25 1943.7 192.25Q1967.4 192.25 1986.15 202.45Q2004.9 212.65 2015.25 231.4Q2025.6 250.15 2025.6 274.45Q2025.6 283.45 2024.4 290.65ZM1982.1 262.45Q1981.8 246.25 1970.4 236.5Q1959 226.75 1942.5 226.75Q1926.9 226.75 1916.25 236.2Q1905.6 245.65 1903.2 262.45ZM2149.2 192.55V236.65H2138.1Q2118.3 236.65 2108.25 245.95Q2098.2 255.25 2098.2 278.35V361.15H2056.2V194.95H2098.2V220.75Q2106.3 207.55 2119.35 200.05Q2132.4 192.55 2149.2 192.55Z"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 2156.7 512" width="2156.7" height="512" role="img" aria-label="PinePaper"><title>PinePaper</title><defs><linearGradient id="pplh-bg" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#6366f1"/><stop offset="1" stop-color="#8b5cf6"/></linearGradient><linearGradient id="pplh-tr" x1="0" y1="0" x2="1" y2="1"><stop offset="0" stop-color="#f97316"/><stop offset="1" stop-color="#fbbf24"/></linearGradient></defs><rect x="0" y="0" width="512" height="512" rx="112" fill="url(#pplh-bg)"/><rect x="232" y="378" width="48" height="56" rx="6" fill="url(#pplh-tr)"/><path fill="#ffffff" d="M257 78 L172.8 182 L224 182 L147.2 278 L211.2 278 L121.6 390 L257 390 Z"/><path fill="#dfe3ff" d="M256 78 L339.2 182 L288 182 L364.8 278 L300.8 278 L390.4 390 L256 390 Z"/><path fill="#1f2937" d="M709.8 280.75H674.7V361.15H632.7V151.75H709.8Q734.1 151.75 751.2 160.15Q768.3 168.55 776.85 183.25Q785.4 197.95 785.4 216.55Q785.4 233.35 777.45 248.05Q769.5 262.75 752.55 271.75Q735.6 280.75 709.8 280.75ZM742.2 216.55Q742.2 185.95 708 185.95H674.7V246.85H708Q725.4 246.85 733.8 238.9Q742.2 230.95 742.2 216.55ZM810.6 150.55Q810.6 140.05 817.95 133Q825.3 125.95 836.4 125.95Q847.5 125.95 854.85 133Q862.2 140.05 862.2 150.55Q862.2 161.05 854.85 168.1Q847.5 175.15 836.4 175.15Q825.3 175.15 817.95 168.1Q810.6 161.05 810.6 150.55ZM857.1 194.95V361.15H815.1V194.95ZM1056.9 263.65V361.15H1014.9V269.35Q1014.9 249.55 1005 238.9Q995.1 228.25 978 228.25Q960.6 228.25 950.55 238.9Q940.5 249.55 940.5 269.35V361.15H898.5V194.95H940.5V215.65Q948.9 204.85 961.95 198.7Q975 192.55 990.6 192.55Q1020.3 192.55 1038.6 211.3Q1056.9 230.05 1056.9 263.65ZM1250.1 290.65H1128.6Q1130.1 308.65 1141.2 318.85Q1152.3 329.05 1168.5 329.05Q1191.9 329.05 1201.8 308.95H1247.1Q1239.9 332.95 1219.5 348.4Q1199.1 363.85 1169.4 363.85Q1145.4 363.85 1126.35 353.2Q1107.3 342.55 1096.65 323.05Q1086 303.55 1086 278.05Q1086 252.25 1096.5 232.75Q1107 213.25 1125.9 202.75Q1144.8 192.25 1169.4 192.25Q1193.1 192.25 1211.85 202.45Q1230.6 212.65 1240.95 231.4Q1251.3 250.15 1251.3 274.45Q1251.3 283.45 1250.1 290.65ZM1207.8 262.45Q1207.5 246.25 1196.1 236.5Q1184.7 226.75 1168.2 226.75Q1152.6 226.75 1141.95 236.2Q1131.3 245.65 1128.9 262.45ZM1359 280.75H1323.9V361.15H1281.9V151.75H1359Q1383.3 151.75 1400.4 160.15Q1417.5 168.55 1426.05 183.25Q1434.6 197.95 1434.6 216.55Q1434.6 233.35 1426.65 248.05Q1418.7 262.75 1401.75 271.75Q1384.8 280.75 1359 280.75ZM1391.4 216.55Q1391.4 185.95 1357.2 185.95H1323.9V246.85H1357.2Q1374.6 246.85 1383 238.9Q1391.4 230.95 1391.4 216.55ZM1529.4 192.25Q1548 192.25 1561.95 199.75Q1575.9 207.25 1584.3 218.65V194.95H1626.6V361.15H1584.3V336.85Q1576.2 348.55 1561.95 356.2Q1547.7 363.85 1529.1 363.85Q1508.1 363.85 1490.85 353.05Q1473.6 342.25 1463.55 322.6Q1453.5 302.95 1453.5 277.45Q1453.5 252.25 1463.55 232.75Q1473.6 213.25 1490.85 202.75Q1508.1 192.25 1529.4 192.25ZM1540.2 229.15Q1528.5 229.15 1518.6 234.85Q1508.7 240.55 1502.55 251.5Q1496.4 262.45 1496.4 277.45Q1496.4 292.45 1502.55 303.7Q1508.7 314.95 1518.75 320.95Q1528.8 326.95 1540.2 326.95Q1551.9 326.95 1562.1 321.1Q1572.3 315.25 1578.3 304.3Q1584.3 293.35 1584.3 278.05Q1584.3 262.75 1578.3 251.8Q1572.3 240.85 1562.1 235Q1551.9 229.15 1540.2 229.15ZM1764.6 192.25Q1785.9 192.25 1803.15 202.75Q1820.4 213.25 1830.45 232.6Q1840.5 251.95 1840.5 277.45Q1840.5 302.95 1830.45 322.6Q1820.4 342.25 1803.15 353.05Q1785.9 363.85 1764.6 363.85Q1746.3 363.85 1732.35 356.35Q1718.4 348.85 1709.7 337.45V440.35H1667.7V194.95H1709.7V218.95Q1717.8 207.55 1732.05 199.9Q1746.3 192.25 1764.6 192.25ZM1753.5 229.15Q1742.1 229.15 1732.05 235Q1722 240.85 1715.85 251.95Q1709.7 263.05 1709.7 278.05Q1709.7 293.05 1715.85 304.15Q1722 315.25 1732.05 321.1Q1742.1 326.95 1753.5 326.95Q1765.2 326.95 1775.25 320.95Q1785.3 314.95 1791.45 303.85Q1797.6 292.75 1797.6 277.45Q1797.6 262.45 1791.45 251.5Q1785.3 240.55 1775.25 234.85Q1765.2 229.15 1753.5 229.15ZM2024.4 290.65H1902.9Q1904.4 308.65 1915.5 318.85Q1926.6 329.05 1942.8 329.05Q1966.2 329.05 1976.1 308.95H2021.4Q2014.2 332.95 1993.8 348.4Q1973.4 363.85 1943.7 363.85Q1919.7 363.85 1900.65 353.2Q1881.6 342.55 1870.95 323.05Q1860.3 303.55 1860.3 278.05Q1860.3 252.25 1870.8 232.75Q1881.3 213.25 1900.2 202.75Q1919.1 192.25 1943.7 192.25Q1967.4 192.25 1986.15 202.45Q2004.9 212.65 2015.25 231.4Q2025.6 250.15 2025.6 274.45Q2025.6 283.45 2024.4 290.65ZM1982.1 262.45Q1981.8 246.25 1970.4 236.5Q1959 226.75 1942.5 226.75Q1926.9 226.75 1916.25 236.2Q1905.6 245.65 1903.2 262.45ZM2149.2 192.55V236.65H2138.1Q2118.3 236.65 2108.25 245.95Q2098.2 255.25 2098.2 278.35V361.15H2056.2V194.95H2098.2V220.75Q2106.3 207.55 2119.35 200.05Q2132.4 192.55 2149.2 192.55Z"/></svg>
|
package/assets/edit-whenever.svg
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Effects showcased: print (kicker), scattered (headline assembly), colorwave (per-letter
|
|
4
4
|
fill), wipe (underline bar), orbit (dot around period), pulse (period), fireworks,
|
|
5
5
|
rings, swarm. Pure SMIL, no scripts. -->
|
|
6
|
-
<rect width="800" height="600" fill="#
|
|
6
|
+
<rect width="800" height="600" fill="#0f172a"/>
|
|
7
7
|
<!-- rings -->
|
|
8
8
|
<g stroke="#22c55e" fill="none" stroke-width="2">
|
|
9
9
|
<circle cx="132" cy="140" r="4"><animate attributeName="r" values="4;48" dur="3s" begin="0s" repeatCount="indefinite"/><animate attributeName="opacity" values=".7;0" dur="3s" begin="0s" repeatCount="indefinite"/></circle>
|
|
@@ -241,7 +241,7 @@ export class PinePaperBrowserController {
|
|
|
241
241
|
puppeteer = await import('puppeteer');
|
|
242
242
|
}
|
|
243
243
|
catch {
|
|
244
|
-
throw new Error('The browser tools need puppeteer, which is an optional install
|
|
244
|
+
throw new Error('The browser tools need puppeteer, which is an optional install. Under npx, add it to the same call — args ["-y", "-p", "puppeteer", "-p", "@pinepaper.studio/mcp-server", "pinepaper-mcp"] — since a separate `npm i puppeteer` is not visible to npx\'s copy. Installed globally: `npm i -g puppeteer`; in a project: `npm i puppeteer`. Then retry. It is kept out of the default dependency tree for supply-chain hygiene.');
|
|
245
245
|
}
|
|
246
246
|
console.error('[PinePaper] Launching browser...');
|
|
247
247
|
this.browser = await puppeteer.default.launch(this.launchOptions(this.config.headless, this.launchArgs(this.config.viewportWidth, this.config.viewportHeight)));
|
|
@@ -722,7 +722,7 @@ export class PinePaperBrowserController {
|
|
|
722
722
|
puppeteer = await import('puppeteer');
|
|
723
723
|
}
|
|
724
724
|
catch {
|
|
725
|
-
throw new Error('The browser tools need puppeteer, which is an optional install
|
|
725
|
+
throw new Error('The browser tools need puppeteer, which is an optional install. Under npx, add it to the same call — args ["-y", "-p", "puppeteer", "-p", "@pinepaper.studio/mcp-server", "pinepaper-mcp"] — since a separate `npm i puppeteer` is not visible to npx\'s copy. Installed globally: `npm i -g puppeteer`; in a project: `npm i puppeteer`. Then retry. It is kept out of the default dependency tree for supply-chain hygiene.');
|
|
726
726
|
}
|
|
727
727
|
// Agent mode defaults to visible browser so user can see PinePaper Studio
|
|
728
728
|
const useHeadless = options.headless ?? this.config.headless;
|