@pinepaper.studio/mcp-server 1.4.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +213 -18
- package/dist/__tests__/fixtures/mock-generators.d.ts +147 -0
- package/dist/__tests__/fixtures/mock-generators.d.ts.map +1 -1
- package/dist/__tests__/fixtures/mock-generators.js +85 -0
- package/dist/__tests__/fixtures/mock-generators.js.map +1 -1
- package/dist/agent/export-manager.d.ts +77 -0
- package/dist/agent/export-manager.d.ts.map +1 -0
- package/dist/agent/export-manager.js +455 -0
- package/dist/agent/export-manager.js.map +1 -0
- package/dist/agent/index.d.ts +9 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +12 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/session-manager.d.ts +109 -0
- package/dist/agent/session-manager.d.ts.map +1 -0
- package/dist/agent/session-manager.js +311 -0
- package/dist/agent/session-manager.js.map +1 -0
- package/dist/agent/types.d.ts +385 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +141 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/browser/index.d.ts +1 -1
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +1 -1
- package/dist/browser/puppeteer-controller.d.ts +89 -5
- package/dist/browser/puppeteer-controller.d.ts.map +1 -1
- package/dist/browser/puppeteer-controller.js +412 -11
- package/dist/browser/puppeteer-controller.js.map +1 -1
- package/dist/cli.js +3 -2
- package/dist/cli.js.map +1 -1
- package/dist/i18n/locales/ar.d.ts.map +1 -1
- package/dist/i18n/locales/ar.js +37 -0
- package/dist/i18n/locales/ar.js.map +1 -1
- package/dist/i18n/locales/base.d.ts.map +1 -1
- package/dist/i18n/locales/base.js +49 -0
- package/dist/i18n/locales/base.js.map +1 -1
- package/dist/i18n/locales/bn.d.ts.map +1 -1
- package/dist/i18n/locales/bn.js +10 -0
- package/dist/i18n/locales/bn.js.map +1 -1
- package/dist/i18n/locales/cs.d.ts.map +1 -1
- package/dist/i18n/locales/cs.js +10 -0
- package/dist/i18n/locales/cs.js.map +1 -1
- package/dist/i18n/locales/da.d.ts.map +1 -1
- package/dist/i18n/locales/da.js +10 -0
- package/dist/i18n/locales/da.js.map +1 -1
- package/dist/i18n/locales/de.d.ts.map +1 -1
- package/dist/i18n/locales/de.js +107 -0
- package/dist/i18n/locales/de.js.map +1 -1
- package/dist/i18n/locales/el.d.ts.map +1 -1
- package/dist/i18n/locales/el.js +10 -0
- package/dist/i18n/locales/el.js.map +1 -1
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/en.js +162 -0
- package/dist/i18n/locales/en.js.map +1 -1
- package/dist/i18n/locales/es.d.ts.map +1 -1
- package/dist/i18n/locales/es.js +106 -0
- package/dist/i18n/locales/es.js.map +1 -1
- package/dist/i18n/locales/fa.d.ts.map +1 -1
- package/dist/i18n/locales/fa.js +10 -0
- package/dist/i18n/locales/fa.js.map +1 -1
- package/dist/i18n/locales/fi.d.ts.map +1 -1
- package/dist/i18n/locales/fi.js +10 -0
- package/dist/i18n/locales/fi.js.map +1 -1
- package/dist/i18n/locales/fil.d.ts.map +1 -1
- package/dist/i18n/locales/fil.js +10 -0
- package/dist/i18n/locales/fil.js.map +1 -1
- package/dist/i18n/locales/fr.d.ts.map +1 -1
- package/dist/i18n/locales/fr.js +37 -0
- package/dist/i18n/locales/fr.js.map +1 -1
- package/dist/i18n/locales/gu.d.ts.map +1 -1
- package/dist/i18n/locales/gu.js +10 -0
- package/dist/i18n/locales/gu.js.map +1 -1
- package/dist/i18n/locales/he.d.ts.map +1 -1
- package/dist/i18n/locales/he.js +10 -0
- package/dist/i18n/locales/he.js.map +1 -1
- package/dist/i18n/locales/hi.d.ts.map +1 -1
- package/dist/i18n/locales/hi.js +37 -0
- package/dist/i18n/locales/hi.js.map +1 -1
- package/dist/i18n/locales/hu.d.ts.map +1 -1
- package/dist/i18n/locales/hu.js +10 -0
- package/dist/i18n/locales/hu.js.map +1 -1
- package/dist/i18n/locales/id.d.ts.map +1 -1
- package/dist/i18n/locales/id.js +108 -0
- package/dist/i18n/locales/id.js.map +1 -1
- package/dist/i18n/locales/is.d.ts.map +1 -1
- package/dist/i18n/locales/is.js +10 -0
- package/dist/i18n/locales/is.js.map +1 -1
- package/dist/i18n/locales/it.d.ts.map +1 -1
- package/dist/i18n/locales/it.js +108 -0
- package/dist/i18n/locales/it.js.map +1 -1
- package/dist/i18n/locales/ja.d.ts.map +1 -1
- package/dist/i18n/locales/ja.js +108 -0
- package/dist/i18n/locales/ja.js.map +1 -1
- package/dist/i18n/locales/kn.d.ts.map +1 -1
- package/dist/i18n/locales/kn.js +10 -0
- package/dist/i18n/locales/kn.js.map +1 -1
- package/dist/i18n/locales/ko.d.ts.map +1 -1
- package/dist/i18n/locales/ko.js +37 -0
- package/dist/i18n/locales/ko.js.map +1 -1
- package/dist/i18n/locales/ml.d.ts.map +1 -1
- package/dist/i18n/locales/ml.js +10 -0
- package/dist/i18n/locales/ml.js.map +1 -1
- package/dist/i18n/locales/mr.d.ts.map +1 -1
- package/dist/i18n/locales/mr.js +10 -0
- package/dist/i18n/locales/mr.js.map +1 -1
- package/dist/i18n/locales/ms.d.ts.map +1 -1
- package/dist/i18n/locales/ms.js +10 -0
- package/dist/i18n/locales/ms.js.map +1 -1
- package/dist/i18n/locales/nl.d.ts.map +1 -1
- package/dist/i18n/locales/nl.js +108 -0
- package/dist/i18n/locales/nl.js.map +1 -1
- package/dist/i18n/locales/no.d.ts.map +1 -1
- package/dist/i18n/locales/no.js +10 -0
- package/dist/i18n/locales/no.js.map +1 -1
- package/dist/i18n/locales/pa.d.ts.map +1 -1
- package/dist/i18n/locales/pa.js +10 -0
- package/dist/i18n/locales/pa.js.map +1 -1
- package/dist/i18n/locales/pl.d.ts.map +1 -1
- package/dist/i18n/locales/pl.js +108 -0
- package/dist/i18n/locales/pl.js.map +1 -1
- package/dist/i18n/locales/pt-BR.d.ts.map +1 -1
- package/dist/i18n/locales/pt-BR.js +108 -0
- package/dist/i18n/locales/pt-BR.js.map +1 -1
- package/dist/i18n/locales/pt.d.ts.map +1 -1
- package/dist/i18n/locales/pt.js +10 -0
- package/dist/i18n/locales/pt.js.map +1 -1
- package/dist/i18n/locales/ro.d.ts.map +1 -1
- package/dist/i18n/locales/ro.js +10 -0
- package/dist/i18n/locales/ro.js.map +1 -1
- package/dist/i18n/locales/ru.d.ts.map +1 -1
- package/dist/i18n/locales/ru.js +108 -0
- package/dist/i18n/locales/ru.js.map +1 -1
- package/dist/i18n/locales/sv.d.ts.map +1 -1
- package/dist/i18n/locales/sv.js +10 -0
- package/dist/i18n/locales/sv.js.map +1 -1
- package/dist/i18n/locales/ta.d.ts.map +1 -1
- package/dist/i18n/locales/ta.js +10 -0
- package/dist/i18n/locales/ta.js.map +1 -1
- package/dist/i18n/locales/te.d.ts.map +1 -1
- package/dist/i18n/locales/te.js +10 -0
- package/dist/i18n/locales/te.js.map +1 -1
- package/dist/i18n/locales/th.d.ts.map +1 -1
- package/dist/i18n/locales/th.js +108 -0
- package/dist/i18n/locales/th.js.map +1 -1
- package/dist/i18n/locales/tl.d.ts.map +1 -1
- package/dist/i18n/locales/tl.js +10 -0
- package/dist/i18n/locales/tl.js.map +1 -1
- package/dist/i18n/locales/tr.d.ts.map +1 -1
- package/dist/i18n/locales/tr.js +108 -0
- package/dist/i18n/locales/tr.js.map +1 -1
- package/dist/i18n/locales/uk.d.ts.map +1 -1
- package/dist/i18n/locales/uk.js +108 -0
- package/dist/i18n/locales/uk.js.map +1 -1
- package/dist/i18n/locales/ur.d.ts.map +1 -1
- package/dist/i18n/locales/ur.js +10 -0
- package/dist/i18n/locales/ur.js.map +1 -1
- package/dist/i18n/locales/vi.d.ts.map +1 -1
- package/dist/i18n/locales/vi.js +108 -0
- package/dist/i18n/locales/vi.js.map +1 -1
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -1
- package/dist/i18n/locales/zh-CN.js +108 -0
- package/dist/i18n/locales/zh-CN.js.map +1 -1
- package/dist/i18n/locales/zh-TW.d.ts.map +1 -1
- package/dist/i18n/locales/zh-TW.js +108 -0
- package/dist/i18n/locales/zh-TW.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2717 -147
- package/dist/index.js.map +1 -1
- package/dist/prompts/index.d.ts +39 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +254 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/tools/compact-descriptions.d.ts +9 -0
- package/dist/tools/compact-descriptions.d.ts.map +1 -0
- package/dist/tools/compact-descriptions.js +260 -0
- package/dist/tools/compact-descriptions.js.map +1 -0
- package/dist/tools/definitions.d.ts +12 -0
- package/dist/tools/definitions.d.ts.map +1 -1
- package/dist/tools/definitions.js +4921 -957
- package/dist/tools/definitions.js.map +1 -1
- package/dist/tools/handlers.d.ts.map +1 -1
- package/dist/tools/handlers.js +985 -17
- package/dist/tools/handlers.js.map +1 -1
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/types/code-generator.d.ts +233 -1
- package/dist/types/code-generator.d.ts.map +1 -1
- package/dist/types/code-generator.js +2578 -26
- package/dist/types/code-generator.js.map +1 -1
- package/dist/types/schemas.d.ts +5438 -805
- package/dist/types/schemas.d.ts.map +1 -1
- package/dist/types/schemas.js +1135 -4
- package/dist/types/schemas.js.map +1 -1
- package/manifest.json +106 -2
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
|
|
8
8
|
## Overview
|
|
9
9
|
|
|
10
|
-
PinePaper MCP Server enables AI assistants
|
|
10
|
+
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.). Using natural language, you can:
|
|
11
11
|
|
|
12
12
|
- Create text, shapes, and complex graphics
|
|
13
13
|
- Animate items with behavior-driven relations
|
|
@@ -26,12 +26,13 @@ npm install -g @pinepaper.studio/mcp-server
|
|
|
26
26
|
bun add -g @pinepaper.studio/mcp-server
|
|
27
27
|
```
|
|
28
28
|
|
|
29
|
-
### 2. Configure
|
|
29
|
+
### 2. Configure Your AI Client
|
|
30
30
|
|
|
31
|
-
Add to your
|
|
31
|
+
Add to your MCP client configuration. Examples:
|
|
32
32
|
|
|
33
|
-
**
|
|
34
|
-
|
|
33
|
+
**Claude Desktop** (`claude_desktop_config.json`):
|
|
34
|
+
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
35
|
+
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
35
36
|
|
|
36
37
|
```json
|
|
37
38
|
{
|
|
@@ -44,9 +45,11 @@ Add to your `claude_desktop_config.json`:
|
|
|
44
45
|
}
|
|
45
46
|
```
|
|
46
47
|
|
|
48
|
+
**Other MCP Clients**: Refer to your AI client's MCP configuration documentation.
|
|
49
|
+
|
|
47
50
|
### 3. Start Using
|
|
48
51
|
|
|
49
|
-
Open
|
|
52
|
+
Open your AI client and try:
|
|
50
53
|
|
|
51
54
|
> "Create a red pulsing text that says HELLO"
|
|
52
55
|
|
|
@@ -56,6 +59,131 @@ Open Claude Desktop and try:
|
|
|
56
59
|
|
|
57
60
|
## Features
|
|
58
61
|
|
|
62
|
+
### 🤖 Agent Flow Mode (ENFORCED in v1.5.0)
|
|
63
|
+
|
|
64
|
+
Agent mode is now **enforced by default** for optimal performance:
|
|
65
|
+
|
|
66
|
+
- **Auto-Connection**: Browser connects automatically on first tool call (headless mode)
|
|
67
|
+
- **Auto-Session**: Agent sessions start automatically - just start creating!
|
|
68
|
+
- **Batch Operations**: Execute multiple operations in one call (~10x faster)
|
|
69
|
+
- **Smart Exports**: Auto-detect optimal format for Instagram, TikTok, YouTube, etc.
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
"Create a red pulsing text that says HELLO" # Browser auto-connects
|
|
73
|
+
"Create 5 items in batch, then export for TikTok"
|
|
74
|
+
"Analyze the scene and recommend export format"
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
**No manual setup required** - just start making tool calls.
|
|
78
|
+
|
|
79
|
+
**Tools:**
|
|
80
|
+
- `pinepaper_agent_start_job` - Start a named job session (optional)
|
|
81
|
+
- `pinepaper_agent_end_job` - End job with summary and export recommendations
|
|
82
|
+
- `pinepaper_agent_reset` - Quick canvas reset
|
|
83
|
+
- `pinepaper_agent_batch_execute` - Execute multiple operations in batch
|
|
84
|
+
- `pinepaper_agent_export` - Smart export with platform auto-detection
|
|
85
|
+
- `pinepaper_agent_analyze` - Analyze content for export recommendations
|
|
86
|
+
|
|
87
|
+
### 🎯 Interactive Triggers (NEW in v1.5.0)
|
|
88
|
+
|
|
89
|
+
Add click, hover, and drag interactions to items:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
"Make the button show a panel when clicked"
|
|
93
|
+
"Add a hover effect that plays an animation"
|
|
94
|
+
"Create a drag-and-drop quiz"
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
**Event Types:**
|
|
98
|
+
- `click`, `hover_enter`, `hover_exit`
|
|
99
|
+
- `drag_start`, `drag_move`, `drag_end`
|
|
100
|
+
- `timeline`, `animation_end`
|
|
101
|
+
|
|
102
|
+
**Tools:**
|
|
103
|
+
- `pinepaper_add_trigger` - Add event triggers with actions
|
|
104
|
+
- `pinepaper_remove_trigger` - Remove triggers from items
|
|
105
|
+
- `pinepaper_query_triggers` - List all triggers
|
|
106
|
+
|
|
107
|
+
### 📝 Quiz/LMS Integration (NEW in v1.5.0)
|
|
108
|
+
|
|
109
|
+
Create interactive quizzes with SCORM/xAPI support:
|
|
110
|
+
|
|
111
|
+
```
|
|
112
|
+
"Create a multiple choice quiz about planets"
|
|
113
|
+
"Add a drag-and-drop matching exercise"
|
|
114
|
+
"Track quiz score and progress"
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Question Types:**
|
|
118
|
+
- Multiple choice, Multiple select
|
|
119
|
+
- Drag-and-drop, Matching, Sequencing
|
|
120
|
+
- Hotspot, True/False, Fill-in-blank
|
|
121
|
+
|
|
122
|
+
**Tools:**
|
|
123
|
+
- `pinepaper_create_quiz` - Create interactive quizzes
|
|
124
|
+
- `pinepaper_get_quiz_state` - Get score, progress, answers
|
|
125
|
+
- `pinepaper_reset_quiz` - Reset quiz state
|
|
126
|
+
|
|
127
|
+
### 📦 Widget Export (NEW in v1.5.0)
|
|
128
|
+
|
|
129
|
+
Export as embeddable widgets for websites and LMS:
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
"Export as a web component"
|
|
133
|
+
"Create an iframe embed code"
|
|
134
|
+
"Generate a React component"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
**Export Formats:**
|
|
138
|
+
- `web-component` - `<pinepaper-widget>` custom element
|
|
139
|
+
- `standalone-html` - Complete HTML file
|
|
140
|
+
- `iframe-embed` - Iframe embed code
|
|
141
|
+
- `react-component` - React wrapper
|
|
142
|
+
- `vue-component` - Vue wrapper
|
|
143
|
+
|
|
144
|
+
**Tool:**
|
|
145
|
+
- `pinepaper_export_widget` - Export with LMS support (SCORM/xAPI)
|
|
146
|
+
|
|
147
|
+
### 📐 Diagram Tools (NEW in v1.4.3)
|
|
148
|
+
|
|
149
|
+
Create flowcharts, UML diagrams, network diagrams, and more:
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
"Create a flowchart for user login process"
|
|
153
|
+
"Make a UML class diagram for the User class"
|
|
154
|
+
"Design a network topology with 3 servers connected to a cloud"
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**Shape Types:**
|
|
158
|
+
- **Flowchart**: process, decision, terminal, data, document, database, preparation
|
|
159
|
+
- **UML**: uml-class, uml-usecase, uml-actor
|
|
160
|
+
- **Network**: cloud, server
|
|
161
|
+
- **Basic**: rectangle, circle, triangle, star
|
|
162
|
+
|
|
163
|
+
**Connector Features:**
|
|
164
|
+
- Smart routing (orthogonal, direct, curved)
|
|
165
|
+
- Arrow styles (classic, stealth, diamond, circle, none)
|
|
166
|
+
- Animated bolt effect for data flow
|
|
167
|
+
- Labels on connectors
|
|
168
|
+
|
|
169
|
+
**Auto-Layout Algorithms:**
|
|
170
|
+
- Hierarchical (flowcharts, org charts)
|
|
171
|
+
- Force-directed (network diagrams)
|
|
172
|
+
- Tree (hierarchies)
|
|
173
|
+
- Radial (mind maps)
|
|
174
|
+
- Grid (component libraries)
|
|
175
|
+
|
|
176
|
+
**Tools:**
|
|
177
|
+
- `pinepaper_create_diagram_shape` - Create diagram shapes with ports
|
|
178
|
+
- `pinepaper_connect` - Connect items with smart connectors
|
|
179
|
+
- `pinepaper_connect_ports` - Connect specific ports
|
|
180
|
+
- `pinepaper_add_ports` - Add connection ports to items
|
|
181
|
+
- `pinepaper_auto_layout` - Automatically arrange items
|
|
182
|
+
- `pinepaper_get_diagram_shapes` - List available shapes
|
|
183
|
+
- `pinepaper_update_connector` - Update connector properties
|
|
184
|
+
- `pinepaper_remove_connector` - Remove a connector
|
|
185
|
+
- `pinepaper_diagram_mode` - Control diagram editing mode
|
|
186
|
+
|
|
59
187
|
### 🔍 Asset Search & Import (NEW in v1.3.0)
|
|
60
188
|
|
|
61
189
|
Search and import free SVG assets from multiple repositories:
|
|
@@ -78,7 +206,7 @@ Search and import free SVG assets from multiple repositories:
|
|
|
78
206
|
|
|
79
207
|
### 📊 Performance Metrics (NEW in v1.3.0)
|
|
80
208
|
|
|
81
|
-
Built-in performance tracking helps
|
|
209
|
+
Built-in performance tracking helps AI assistants optimize workflows:
|
|
82
210
|
|
|
83
211
|
- Automatic timing for all tool operations
|
|
84
212
|
- Phase breakdown (validation, code generation, execution, screenshots)
|
|
@@ -217,7 +345,49 @@ Outputs pairs like:
|
|
|
217
345
|
|------|-------------|
|
|
218
346
|
| `pinepaper_get_items` | Get canvas items |
|
|
219
347
|
| `pinepaper_get_relation_stats` | Relation statistics |
|
|
220
|
-
| `pinepaper_get_performance_metrics` | Get execution timing metrics
|
|
348
|
+
| `pinepaper_get_performance_metrics` | Get execution timing metrics |
|
|
349
|
+
|
|
350
|
+
### Diagram Tools (NEW in v1.4.3)
|
|
351
|
+
| Tool | Description |
|
|
352
|
+
|------|-------------|
|
|
353
|
+
| `pinepaper_create_diagram_shape` | Create flowchart/UML/network shapes with ports |
|
|
354
|
+
| `pinepaper_connect` | Connect items with smart connectors |
|
|
355
|
+
| `pinepaper_connect_ports` | Connect specific ports on items |
|
|
356
|
+
| `pinepaper_add_ports` | Add connection ports to items |
|
|
357
|
+
| `pinepaper_auto_layout` | Auto-arrange items using layout algorithms |
|
|
358
|
+
| `pinepaper_get_diagram_shapes` | List available diagram shapes |
|
|
359
|
+
| `pinepaper_update_connector` | Update connector style/label |
|
|
360
|
+
| `pinepaper_remove_connector` | Remove a connector |
|
|
361
|
+
| `pinepaper_diagram_mode` | Control diagram editing mode |
|
|
362
|
+
|
|
363
|
+
### Agent Flow Mode Tools (NEW in v1.5.0)
|
|
364
|
+
| Tool | Description |
|
|
365
|
+
|------|-------------|
|
|
366
|
+
| `pinepaper_agent_start_job` | Start content creation job session |
|
|
367
|
+
| `pinepaper_agent_end_job` | End job with summary and recommendations |
|
|
368
|
+
| `pinepaper_agent_reset` | Quick canvas reset without page refresh |
|
|
369
|
+
| `pinepaper_agent_batch_execute` | Execute multiple operations in batch |
|
|
370
|
+
| `pinepaper_agent_export` | Smart export with platform auto-detection |
|
|
371
|
+
| `pinepaper_agent_analyze` | Analyze content for export recommendations |
|
|
372
|
+
|
|
373
|
+
### Interactive Trigger Tools (NEW in v1.5.0)
|
|
374
|
+
| Tool | Description |
|
|
375
|
+
|------|-------------|
|
|
376
|
+
| `pinepaper_add_trigger` | Add event triggers (click, hover, drag) |
|
|
377
|
+
| `pinepaper_remove_trigger` | Remove triggers from items |
|
|
378
|
+
| `pinepaper_query_triggers` | List all triggers on canvas |
|
|
379
|
+
|
|
380
|
+
### Quiz/LMS Tools (NEW in v1.5.0)
|
|
381
|
+
| Tool | Description |
|
|
382
|
+
|------|-------------|
|
|
383
|
+
| `pinepaper_create_quiz` | Create interactive quizzes |
|
|
384
|
+
| `pinepaper_get_quiz_state` | Get quiz score, progress, answers |
|
|
385
|
+
| `pinepaper_reset_quiz` | Reset quiz to initial state |
|
|
386
|
+
|
|
387
|
+
### Widget Export Tools (NEW in v1.5.0)
|
|
388
|
+
| Tool | Description |
|
|
389
|
+
|------|-------------|
|
|
390
|
+
| `pinepaper_export_widget` | Export as embeddable widget (web-component, iframe, React, Vue) |
|
|
221
391
|
|
|
222
392
|
### Canvas Tools
|
|
223
393
|
| Tool | Description |
|
|
@@ -260,11 +430,36 @@ Outputs pairs like:
|
|
|
260
430
|
3. Add relation: label follows player with offset [0, -50]
|
|
261
431
|
```
|
|
262
432
|
|
|
433
|
+
### Flowchart Diagram (NEW)
|
|
434
|
+
|
|
435
|
+
```
|
|
436
|
+
1. Create a terminal shape with label "Start"
|
|
437
|
+
2. Create a process shape with label "Get Input"
|
|
438
|
+
3. Create a decision shape with label "Valid?"
|
|
439
|
+
4. Create a terminal shape with label "End"
|
|
440
|
+
5. Connect Start → Get Input
|
|
441
|
+
6. Connect Get Input → Valid?
|
|
442
|
+
7. Connect Valid? → End (label: "Yes")
|
|
443
|
+
8. Connect Valid? → Get Input (label: "No", routing: curved)
|
|
444
|
+
9. Apply hierarchical auto-layout
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
### Network Diagram (NEW)
|
|
448
|
+
|
|
449
|
+
```
|
|
450
|
+
1. Create a cloud shape with label "Internet"
|
|
451
|
+
2. Create 3 server shapes with labels "Web", "API", "DB"
|
|
452
|
+
3. Connect Internet → Web (label: "HTTPS")
|
|
453
|
+
4. Connect Web → API (label: "REST")
|
|
454
|
+
5. Connect API → DB (label: "SQL")
|
|
455
|
+
6. Apply force-directed auto-layout
|
|
456
|
+
```
|
|
457
|
+
|
|
263
458
|
## Architecture
|
|
264
459
|
|
|
265
460
|
```
|
|
266
461
|
┌─────────────────────────────────────────────────────────────┐
|
|
267
|
-
│
|
|
462
|
+
│ AI Client (Claude, etc.) │
|
|
268
463
|
│ │ │
|
|
269
464
|
│ MCP Protocol │
|
|
270
465
|
│ │ │
|
|
@@ -303,7 +498,7 @@ bun install
|
|
|
303
498
|
bun run build
|
|
304
499
|
```
|
|
305
500
|
|
|
306
|
-
### Test with
|
|
501
|
+
### Test with MCP Client (Local)
|
|
307
502
|
|
|
308
503
|
1. Build the server:
|
|
309
504
|
```bash
|
|
@@ -314,7 +509,7 @@ bun run build
|
|
|
314
509
|
bun run build
|
|
315
510
|
```
|
|
316
511
|
|
|
317
|
-
2. Add to Claude Desktop
|
|
512
|
+
2. Add to your MCP client config (example for Claude Desktop on macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`):
|
|
318
513
|
```json
|
|
319
514
|
{
|
|
320
515
|
"mcpServers": {
|
|
@@ -326,7 +521,7 @@ bun run build
|
|
|
326
521
|
}
|
|
327
522
|
```
|
|
328
523
|
|
|
329
|
-
3. Restart
|
|
524
|
+
3. Restart your MCP client
|
|
330
525
|
|
|
331
526
|
4. Test with: "What PinePaper tools do you have available?"
|
|
332
527
|
|
|
@@ -381,7 +576,7 @@ The i18n system provides localized:
|
|
|
381
576
|
Set the `PINEPAPER_LOCALE` environment variable:
|
|
382
577
|
|
|
383
578
|
```bash
|
|
384
|
-
# In Claude Desktop
|
|
579
|
+
# In MCP client config (example for Claude Desktop)
|
|
385
580
|
{
|
|
386
581
|
"mcpServers": {
|
|
387
582
|
"pinepaper": {
|
|
@@ -432,7 +627,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for detailed guidelines.
|
|
|
432
627
|
|
|
433
628
|
### Performance Metrics
|
|
434
629
|
|
|
435
|
-
PinePaper MCP Server includes built-in performance tracking to help
|
|
630
|
+
PinePaper MCP Server includes built-in performance tracking to help AI assistants optimize workflows by identifying bottlenecks and choosing faster alternatives.
|
|
436
631
|
|
|
437
632
|
**Key Features:**
|
|
438
633
|
- ⚡ Automatic timing for all tool operations
|
|
@@ -445,14 +640,14 @@ PinePaper MCP Server includes built-in performance tracking to help Claude optim
|
|
|
445
640
|
**Quick Example:**
|
|
446
641
|
|
|
447
642
|
```
|
|
448
|
-
|
|
643
|
+
AI: "Let me check if batch operations are faster"
|
|
449
644
|
→ pinepaper_get_performance_metrics(format: 'summary')
|
|
450
645
|
|
|
451
646
|
Result:
|
|
452
647
|
- pinepaper_create_item: avg 145ms
|
|
453
648
|
- pinepaper_batch_create (10 items): avg 298ms (~30ms per item)
|
|
454
649
|
|
|
455
|
-
|
|
650
|
+
AI: "I'll use batch_create for the next 20 items"
|
|
456
651
|
```
|
|
457
652
|
|
|
458
653
|
**Configuration:**
|
|
@@ -472,8 +667,8 @@ export PINEPAPER_METRICS_RETENTION=5000
|
|
|
472
667
|
### Guides
|
|
473
668
|
|
|
474
669
|
- **[Workflow Guide](docs/WORKFLOW_GUIDE.md)** - Decision trees, multi-step patterns, performance optimization, and troubleshooting
|
|
475
|
-
- **[Performance Metrics](docs/PERFORMANCE_METRICS.md)** - In-memory metrics system for
|
|
476
|
-
- **[PinePaper Reference](docs/
|
|
670
|
+
- **[Performance Metrics](docs/PERFORMANCE_METRICS.md)** - In-memory metrics system for AI self-optimization
|
|
671
|
+
- **[PinePaper Reference](https://pinepaper.studio/docs/)** - Complete PinePaper Studio API reference
|
|
477
672
|
|
|
478
673
|
### External Documentation
|
|
479
674
|
|
|
@@ -76,6 +76,83 @@ export declare const mockPatternGenerator: {
|
|
|
76
76
|
bgColor: string;
|
|
77
77
|
};
|
|
78
78
|
};
|
|
79
|
+
export declare const mockBokehGenerator: {
|
|
80
|
+
generatorName: "drawBokeh";
|
|
81
|
+
params: {
|
|
82
|
+
count: number;
|
|
83
|
+
colors: string[];
|
|
84
|
+
bgColor: string;
|
|
85
|
+
minRadius: number;
|
|
86
|
+
maxRadius: number;
|
|
87
|
+
shadowBlur: number;
|
|
88
|
+
distribution: "poisson";
|
|
89
|
+
driftAnimation: boolean;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
export declare const mockGradientMeshGenerator: {
|
|
93
|
+
generatorName: "drawGradientMesh";
|
|
94
|
+
params: {
|
|
95
|
+
colors: string[];
|
|
96
|
+
bgColor: string;
|
|
97
|
+
blobCount: number;
|
|
98
|
+
blendMode: string;
|
|
99
|
+
drift: boolean;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
export declare const mockGeometricAbstractGenerator: {
|
|
103
|
+
generatorName: "drawGeometricAbstract";
|
|
104
|
+
params: {
|
|
105
|
+
colors: string[];
|
|
106
|
+
bgColor: string;
|
|
107
|
+
shapeCount: number;
|
|
108
|
+
blendMode: string;
|
|
109
|
+
rotation: boolean;
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
export declare const mockWindFieldGenerator: {
|
|
113
|
+
generatorName: "drawWindField";
|
|
114
|
+
params: {
|
|
115
|
+
particleCount: number;
|
|
116
|
+
colors: string[];
|
|
117
|
+
bgColor: string;
|
|
118
|
+
direction: number;
|
|
119
|
+
turbulence: number;
|
|
120
|
+
trailLength: number;
|
|
121
|
+
speed: number;
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
export declare const mockFluidFlowGenerator: {
|
|
125
|
+
generatorName: "drawFluidFlow";
|
|
126
|
+
params: {
|
|
127
|
+
streamCount: number;
|
|
128
|
+
colors: string[];
|
|
129
|
+
bgColor: string;
|
|
130
|
+
depthLayers: number;
|
|
131
|
+
speed: number;
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
export declare const mockOrganicFlowGenerator: {
|
|
135
|
+
generatorName: "drawOrganicFlow";
|
|
136
|
+
params: {
|
|
137
|
+
layerCount: number;
|
|
138
|
+
colors: string[];
|
|
139
|
+
bgColor: string;
|
|
140
|
+
blendMode: string;
|
|
141
|
+
fillToBottom: boolean;
|
|
142
|
+
animated: boolean;
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
export declare const mockNoiseTextureGenerator: {
|
|
146
|
+
generatorName: "drawNoiseTexture";
|
|
147
|
+
params: {
|
|
148
|
+
noiseType: "perlin";
|
|
149
|
+
colors: string[];
|
|
150
|
+
bgColor: string;
|
|
151
|
+
scale: number;
|
|
152
|
+
density: number;
|
|
153
|
+
animated: boolean;
|
|
154
|
+
};
|
|
155
|
+
};
|
|
79
156
|
export declare const allMockGenerators: ({
|
|
80
157
|
generatorName: "drawSunburst";
|
|
81
158
|
params: {
|
|
@@ -143,5 +220,75 @@ export declare const allMockGenerators: ({
|
|
|
143
220
|
color: string;
|
|
144
221
|
bgColor: string;
|
|
145
222
|
};
|
|
223
|
+
} | {
|
|
224
|
+
generatorName: "drawBokeh";
|
|
225
|
+
params: {
|
|
226
|
+
count: number;
|
|
227
|
+
colors: string[];
|
|
228
|
+
bgColor: string;
|
|
229
|
+
minRadius: number;
|
|
230
|
+
maxRadius: number;
|
|
231
|
+
shadowBlur: number;
|
|
232
|
+
distribution: "poisson";
|
|
233
|
+
driftAnimation: boolean;
|
|
234
|
+
};
|
|
235
|
+
} | {
|
|
236
|
+
generatorName: "drawGradientMesh";
|
|
237
|
+
params: {
|
|
238
|
+
colors: string[];
|
|
239
|
+
bgColor: string;
|
|
240
|
+
blobCount: number;
|
|
241
|
+
blendMode: string;
|
|
242
|
+
drift: boolean;
|
|
243
|
+
};
|
|
244
|
+
} | {
|
|
245
|
+
generatorName: "drawGeometricAbstract";
|
|
246
|
+
params: {
|
|
247
|
+
colors: string[];
|
|
248
|
+
bgColor: string;
|
|
249
|
+
shapeCount: number;
|
|
250
|
+
blendMode: string;
|
|
251
|
+
rotation: boolean;
|
|
252
|
+
};
|
|
253
|
+
} | {
|
|
254
|
+
generatorName: "drawWindField";
|
|
255
|
+
params: {
|
|
256
|
+
particleCount: number;
|
|
257
|
+
colors: string[];
|
|
258
|
+
bgColor: string;
|
|
259
|
+
direction: number;
|
|
260
|
+
turbulence: number;
|
|
261
|
+
trailLength: number;
|
|
262
|
+
speed: number;
|
|
263
|
+
};
|
|
264
|
+
} | {
|
|
265
|
+
generatorName: "drawFluidFlow";
|
|
266
|
+
params: {
|
|
267
|
+
streamCount: number;
|
|
268
|
+
colors: string[];
|
|
269
|
+
bgColor: string;
|
|
270
|
+
depthLayers: number;
|
|
271
|
+
speed: number;
|
|
272
|
+
};
|
|
273
|
+
} | {
|
|
274
|
+
generatorName: "drawOrganicFlow";
|
|
275
|
+
params: {
|
|
276
|
+
layerCount: number;
|
|
277
|
+
colors: string[];
|
|
278
|
+
bgColor: string;
|
|
279
|
+
blendMode: string;
|
|
280
|
+
fillToBottom: boolean;
|
|
281
|
+
animated: boolean;
|
|
282
|
+
};
|
|
283
|
+
} | {
|
|
284
|
+
generatorName: "drawNoiseTexture";
|
|
285
|
+
params: {
|
|
286
|
+
noiseType: "perlin";
|
|
287
|
+
colors: string[];
|
|
288
|
+
bgColor: string;
|
|
289
|
+
scale: number;
|
|
290
|
+
density: number;
|
|
291
|
+
animated: boolean;
|
|
292
|
+
};
|
|
146
293
|
})[];
|
|
147
294
|
//# sourceMappingURL=mock-generators.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-generators.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/mock-generators.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;CAO/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;CAS7B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;CAU9B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;CAUhC,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;CAOvC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;CAQhC,CAAC;AAGF,eAAO,MAAM,iBAAiB
|
|
1
|
+
{"version":3,"file":"mock-generators.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/mock-generators.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;CAO/B,CAAC;AAEF,eAAO,MAAM,iBAAiB;;;;;;;;;CAS7B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAC;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;CAU9B,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;;;CAUhC,CAAC;AAEF,eAAO,MAAM,2BAA2B;;;;;;;CAOvC,CAAC;AAEF,eAAO,MAAM,oBAAoB;;;;;;;;CAQhC,CAAC;AAIF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;CAY9B,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;CASrC,CAAC;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;CAS1C,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;CAWlC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;CASlC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;;;;;;;CAUpC,CAAC;AAEF,eAAO,MAAM,yBAAyB;;;;;;;;;;CAUrC,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgB7B,CAAC"}
|
|
@@ -76,6 +76,84 @@ export const mockPatternGenerator = {
|
|
|
76
76
|
bgColor: '#1e293b',
|
|
77
77
|
},
|
|
78
78
|
};
|
|
79
|
+
// Phase 2: New generators
|
|
80
|
+
export const mockBokehGenerator = {
|
|
81
|
+
generatorName: 'drawBokeh',
|
|
82
|
+
params: {
|
|
83
|
+
count: 30,
|
|
84
|
+
colors: ['#f472b6', '#818cf8', '#34d399', '#fbbf24'],
|
|
85
|
+
bgColor: '#0f172a',
|
|
86
|
+
minRadius: 10,
|
|
87
|
+
maxRadius: 60,
|
|
88
|
+
shadowBlur: 20,
|
|
89
|
+
distribution: 'poisson',
|
|
90
|
+
driftAnimation: true,
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
export const mockGradientMeshGenerator = {
|
|
94
|
+
generatorName: 'drawGradientMesh',
|
|
95
|
+
params: {
|
|
96
|
+
colors: ['#ec4899', '#8b5cf6', '#06b6d4'],
|
|
97
|
+
bgColor: '#0f0f23',
|
|
98
|
+
blobCount: 5,
|
|
99
|
+
blendMode: 'screen',
|
|
100
|
+
drift: true,
|
|
101
|
+
},
|
|
102
|
+
};
|
|
103
|
+
export const mockGeometricAbstractGenerator = {
|
|
104
|
+
generatorName: 'drawGeometricAbstract',
|
|
105
|
+
params: {
|
|
106
|
+
colors: ['#f43f5e', '#3b82f6', '#10b981', '#f59e0b'],
|
|
107
|
+
bgColor: '#1e1b4b',
|
|
108
|
+
shapeCount: 12,
|
|
109
|
+
blendMode: 'multiply',
|
|
110
|
+
rotation: true,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
export const mockWindFieldGenerator = {
|
|
114
|
+
generatorName: 'drawWindField',
|
|
115
|
+
params: {
|
|
116
|
+
particleCount: 200,
|
|
117
|
+
colors: ['#e0f2fe', '#bae6fd', '#7dd3fc'],
|
|
118
|
+
bgColor: '#0c4a6e',
|
|
119
|
+
direction: 45,
|
|
120
|
+
turbulence: 0.5,
|
|
121
|
+
trailLength: 30,
|
|
122
|
+
speed: 1.5,
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
export const mockFluidFlowGenerator = {
|
|
126
|
+
generatorName: 'drawFluidFlow',
|
|
127
|
+
params: {
|
|
128
|
+
streamCount: 8,
|
|
129
|
+
colors: ['#67e8f9', '#a78bfa', '#f9a8d4'],
|
|
130
|
+
bgColor: '#0f172a',
|
|
131
|
+
depthLayers: 3,
|
|
132
|
+
speed: 0.8,
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
export const mockOrganicFlowGenerator = {
|
|
136
|
+
generatorName: 'drawOrganicFlow',
|
|
137
|
+
params: {
|
|
138
|
+
layerCount: 4,
|
|
139
|
+
colors: ['#34d399', '#6ee7b7', '#a7f3d0', '#d1fae5'],
|
|
140
|
+
bgColor: '#064e3b',
|
|
141
|
+
blendMode: 'screen',
|
|
142
|
+
fillToBottom: true,
|
|
143
|
+
animated: true,
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
export const mockNoiseTextureGenerator = {
|
|
147
|
+
generatorName: 'drawNoiseTexture',
|
|
148
|
+
params: {
|
|
149
|
+
noiseType: 'perlin',
|
|
150
|
+
colors: ['#94a3b8', '#64748b'],
|
|
151
|
+
bgColor: '#1e293b',
|
|
152
|
+
scale: 0.01,
|
|
153
|
+
density: 0.7,
|
|
154
|
+
animated: true,
|
|
155
|
+
},
|
|
156
|
+
};
|
|
79
157
|
// Collection of all mock generators
|
|
80
158
|
export const allMockGenerators = [
|
|
81
159
|
mockSunburstGenerator,
|
|
@@ -86,5 +164,12 @@ export const allMockGenerators = [
|
|
|
86
164
|
mockCircuitGenerator,
|
|
87
165
|
mockStackedCirclesGenerator,
|
|
88
166
|
mockPatternGenerator,
|
|
167
|
+
mockBokehGenerator,
|
|
168
|
+
mockGradientMeshGenerator,
|
|
169
|
+
mockGeometricAbstractGenerator,
|
|
170
|
+
mockWindFieldGenerator,
|
|
171
|
+
mockFluidFlowGenerator,
|
|
172
|
+
mockOrganicFlowGenerator,
|
|
173
|
+
mockNoiseTextureGenerator,
|
|
89
174
|
];
|
|
90
175
|
//# sourceMappingURL=mock-generators.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mock-generators.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/mock-generators.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,aAAa,EAAE,cAAuB;IACtC,MAAM,EAAE;QACN,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;QAC9B,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,aAAa,EAAE,iBAA0B;IACzC,MAAM,EAAE;QACN,QAAQ,EAAE,SAAS;QACnB,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QAC5C,UAAU,EAAE,CAAC;KACd;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,aAAa,EAAE,UAAmB;IAClC,MAAM,EAAE;QACN,QAAQ,EAAE,OAAgB;QAC1B,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,SAAS;QAClB,SAAS,EAAE,CAAC;KACb;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,aAAa,EAAE,UAAmB;IAClC,MAAM,EAAE;QACN,QAAQ,EAAE,MAAe;QACzB,OAAO,EAAE,EAAE;QACX,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,SAAS;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,aAAa,EAAE,WAAoB;IACnC,MAAM,EAAE;QACN,SAAS,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QAC/D,SAAS,EAAE,EAAE;QACb,SAAS,EAAE,CAAC;QACZ,OAAO,EAAE,SAAS;QAClB,QAAQ,EAAE,IAAI;KACf;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,aAAa,EAAE,aAAsB;IACrC,MAAM,EAAE;QACN,SAAS,EAAE,SAAS;QACpB,SAAS,EAAE,SAAS;QACpB,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,SAAS;KACrB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,aAAa,EAAE,oBAA6B;IAC5C,MAAM,EAAE;QACN,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;QAC1E,YAAY,EAAE,QAAiB;KAChC;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,aAAa,EAAE,aAAsB;IACrC,MAAM,EAAE;QACN,WAAW,EAAE,SAAkB;QAC/B,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,SAAS;QAChB,OAAO,EAAE,SAAS;KACnB;CACF,CAAC;AAEF,oCAAoC;AACpC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,qBAAqB;IACrB,mBAAmB;IACnB,iBAAiB;IACjB,qBAAqB;IACrB,kBAAkB;IAClB,oBAAoB;IACpB,2BAA2B;IAC3B,oBAAoB;
|
|
1
|
+
{"version":3,"file":"mock-generators.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/mock-generators.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PinePaper Smart Export Manager
|
|
3
|
+
*
|
|
4
|
+
* Provides intelligent export recommendations and platform presets.
|
|
5
|
+
* Analyzes content to suggest optimal export formats.
|
|
6
|
+
*/
|
|
7
|
+
import { Platform, ExportFormat, PlatformPreset, ContentAnalysis, ExportRecommendation } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Manages smart exports with content analysis and platform presets.
|
|
10
|
+
*
|
|
11
|
+
* Features:
|
|
12
|
+
* - Content analysis (animations, colors, complexity)
|
|
13
|
+
* - Platform preset management
|
|
14
|
+
* - Optimal format recommendations
|
|
15
|
+
* - Export code generation
|
|
16
|
+
*/
|
|
17
|
+
export declare class SmartExportManager {
|
|
18
|
+
/**
|
|
19
|
+
* Get platform preset configuration
|
|
20
|
+
*/
|
|
21
|
+
getPreset(platform: Platform): PlatformPreset;
|
|
22
|
+
/**
|
|
23
|
+
* List all available platforms
|
|
24
|
+
*/
|
|
25
|
+
listPlatforms(): Platform[];
|
|
26
|
+
/**
|
|
27
|
+
* Generate code to analyze canvas content
|
|
28
|
+
*/
|
|
29
|
+
generateAnalysisCode(): string;
|
|
30
|
+
/**
|
|
31
|
+
* Recommend export format based on content analysis
|
|
32
|
+
*/
|
|
33
|
+
recommendFormat(analysis: ContentAnalysis): ExportRecommendation[];
|
|
34
|
+
/**
|
|
35
|
+
* Recommend platforms based on content analysis
|
|
36
|
+
*/
|
|
37
|
+
recommendPlatforms(analysis: ContentAnalysis): Platform[];
|
|
38
|
+
/**
|
|
39
|
+
* Get optimal format for a specific platform based on content
|
|
40
|
+
*/
|
|
41
|
+
getOptimalFormat(platform: Platform, analysis: ContentAnalysis): ExportFormat;
|
|
42
|
+
/**
|
|
43
|
+
* Generate export code for a specific platform
|
|
44
|
+
*/
|
|
45
|
+
generateExportCode(platform: Platform, format: ExportFormat, options?: {
|
|
46
|
+
quality?: 'draft' | 'standard' | 'high';
|
|
47
|
+
}): string;
|
|
48
|
+
/**
|
|
49
|
+
* Generate SVG export code
|
|
50
|
+
*/
|
|
51
|
+
private generateSVGExportCode;
|
|
52
|
+
/**
|
|
53
|
+
* Generate PNG export code
|
|
54
|
+
*/
|
|
55
|
+
private generatePNGExportCode;
|
|
56
|
+
/**
|
|
57
|
+
* Generate GIF export code
|
|
58
|
+
*/
|
|
59
|
+
private generateGIFExportCode;
|
|
60
|
+
/**
|
|
61
|
+
* Generate video export code (MP4/WebM)
|
|
62
|
+
*/
|
|
63
|
+
private generateVideoExportCode;
|
|
64
|
+
/**
|
|
65
|
+
* Generate PDF export code
|
|
66
|
+
*/
|
|
67
|
+
private generatePDFExportCode;
|
|
68
|
+
/**
|
|
69
|
+
* Generate code to set canvas size from preset
|
|
70
|
+
*/
|
|
71
|
+
generateSetCanvasSizeCode(platform: Platform): string;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Get the singleton export manager instance
|
|
75
|
+
*/
|
|
76
|
+
export declare function getExportManager(): SmartExportManager;
|
|
77
|
+
//# sourceMappingURL=export-manager.d.ts.map
|
|
@@ -0,0 +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,EAIrB,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;IA6B7B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsC/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"}
|