@efectoapp/mcp-server 0.1.19 → 0.1.22

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 CHANGED
@@ -53,6 +53,9 @@ claude mcp add efecto -- npx @efectoapp/mcp-server
53
53
 
54
54
  8. generate_url()
55
55
  → Returns shareable URL like https://efecto.app/canvas?lm=1&...
56
+
57
+ 9. render_image({ format: "png" })
58
+ → Returns the rendered image inline (base64) so you can see it
56
59
  ```
57
60
 
58
61
  ## Available Tools
@@ -90,7 +93,7 @@ Create a new poster.
90
93
 
91
94
  | Parameter | Type | Default | Description |
92
95
  |-----------|------|---------|-------------|
93
- | `aspectRatio` | string | `"16:9"` | `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"full"` |
96
+ | `aspectRatio` | string | `"9:16"` | `"16:9"`, `"9:16"`, `"1:1"`, `"4:3"`, `"full"` |
94
97
  | `backgroundColor` | string | `"#1a1a1a"` | Background color (hex) |
95
98
 
96
99
  #### `set_background`
@@ -99,9 +102,19 @@ Set the background layer (always at index 0).
99
102
 
100
103
  | Parameter | Type | Description |
101
104
  |-----------|------|-------------|
102
- | `type` | string | `"solid"` or `"image"` |
103
- | `color` | string | Hex color (for solid type) |
105
+ | `type` | string | `"solid"`, `"gradient"`, `"image"`, or `"video"` |
106
+ | `color` | string | Hex color (for solid type; writes `fill` + legacy `solidColor`) |
107
+ | `gradientStyle` | string | `"linear"` or `"radial"` (for gradient type) |
108
+ | `gradientStartColor` | string | Hex start color for gradient fill |
109
+ | `gradientEndColor` | string | Hex end color for gradient fill |
110
+ | `gradientStops` | array | Optional stop list (`2-8`) with `{ color, opacity, position }`; overrides start/end |
111
+ | `gradientAngle` | number | Linear gradient angle in degrees (linear only) |
112
+ | `gradientCenterX` | number | Radial center X, `0-1` (radial only) |
113
+ | `gradientCenterY` | number | Radial center Y, `0-1` (radial only) |
114
+ | `gradientRadius` | number | Radial radius scale (radial only) |
104
115
  | `imageUrl` | string | Image URL (for image type) |
116
+ | `videoUrl` | string | Video URL (for video type) |
117
+ | `objectFit` | string | `"cover"` or `"contain"` for image/video |
105
118
 
106
119
  #### `add_layer`
107
120
 
@@ -212,7 +225,7 @@ Returns a URL that opens in any browser with all effects applied.
212
225
 
213
226
  #### `render_image`
214
227
 
215
- Render the poster to an image (async).
228
+ Render the current poster to an image. Returns the image inline so the agent can see the rendered design. Uses local Puppeteer (headless Chrome) to capture the poster.
216
229
 
217
230
  | Parameter | Type | Default | Description |
218
231
  |-----------|------|---------|-------------|
@@ -221,7 +234,7 @@ Render the poster to an image (async).
221
234
  | `height` | number | auto | Output height |
222
235
  | `quality` | number | 90 | JPEG/WebP quality |
223
236
 
224
- Returns a job ID for polling status.
237
+ Returns the rendered image as base64-encoded inline content, plus a shareable URL.
225
238
 
226
239
  ## Development
227
240
 
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAM9D,eAAO,MAAM,cAAc,EAAE,IAAI,EAuDhC,CAAA;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACzC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAiI7D"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAoD9D,eAAO,MAAM,cAAc,EAAE,IAAI,EAmFhC,CAAA;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACzC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAoM7D"}
@@ -14,6 +14,50 @@ exports.discoveryTools = void 0;
14
14
  exports.handleDiscoveryTool = handleDiscoveryTool;
15
15
  // Base URL for Efecto API
16
16
  const API_BASE = (process.env.EFECTO_API_URL || 'https://efecto.app') + '/api/v1';
17
+ // Curated 3D models - embedded for offline access
18
+ const CURATED_3D_MODELS = [
19
+ // Basic Shapes (procedural)
20
+ { id: 'shape-torusKnot', name: 'Torus Knot', category: 'Basic', url: 'shape:torusKnot', tags: ['knot', 'twisted', 'geometric'] },
21
+ { id: 'shape-torus', name: 'Torus', category: 'Basic', url: 'shape:torus', tags: ['donut', 'ring', 'geometric'] },
22
+ { id: 'shape-sphere', name: 'Sphere', category: 'Basic', url: 'shape:sphere', tags: ['ball', 'round', 'geometric'] },
23
+ { id: 'shape-box', name: 'Box', category: 'Basic', url: 'shape:box', tags: ['cube', 'square', 'geometric'] },
24
+ { id: 'shape-cone', name: 'Cone', category: 'Basic', url: 'shape:cone', tags: ['pyramid', 'pointed', 'geometric'] },
25
+ { id: 'shape-cylinder', name: 'Cylinder', category: 'Basic', url: 'shape:cylinder', tags: ['tube', 'pillar', 'geometric'] },
26
+ { id: 'shape-icosahedron', name: 'Icosahedron', category: 'Basic', url: 'shape:icosahedron', tags: ['d20', 'polyhedron', 'geometric'] },
27
+ { id: 'shape-octahedron', name: 'Octahedron', category: 'Basic', url: 'shape:octahedron', tags: ['diamond', 'polyhedron', 'geometric'] },
28
+ { id: 'shape-tetrahedron', name: 'Tetrahedron', category: 'Basic', url: 'shape:tetrahedron', tags: ['pyramid', 'polyhedron', 'geometric'] },
29
+ { id: 'shape-dodecahedron', name: 'Dodecahedron', category: 'Basic', url: 'shape:dodecahedron', tags: ['d12', 'polyhedron', 'geometric'] },
30
+ // Characters (GLTF)
31
+ { id: 'xbot', name: 'X Bot', category: 'Characters', url: '/models/xbot.glb', tags: ['robot', 'character', 'humanoid'] },
32
+ { id: 'ybot', name: 'Y Bot', category: 'Characters', url: '/models/ybot.glb', tags: ['robot', 'character', 'humanoid'] },
33
+ ];
34
+ // Sample videos - embedded for offline access
35
+ const SAMPLE_VIDEOS = [
36
+ { name: 'Manga', url: '/assets/manga.mp4', category: 'illustration' },
37
+ { name: 'Motorcycle', url: '/assets/motorcycle.mp4', category: 'scene' },
38
+ { name: 'Panda', url: '/assets/panda.mp4', category: 'character' },
39
+ { name: 'Beach Sunset', url: '/assets/beach-sunset.mp4', category: 'nature' },
40
+ { name: 'Girl on Train', url: '/assets/girl-train.mp4', category: 'portrait' },
41
+ { name: 'Vintage Car', url: '/assets/vintage-car.mp4', category: 'scene' },
42
+ { name: 'Orange Cat', url: '/assets/orange-cat.mp4', category: 'character' },
43
+ { name: 'Cartoon Firefighter', url: '/assets/cartoon-firefighter-in-action.mp4', category: 'character' },
44
+ { name: 'Cheerful Apple Character', url: '/assets/cheerful-apple-character.mp4', category: 'character' },
45
+ { name: 'Cheerful Boy', url: '/assets/cheerful-red-haired-boy.mp4', category: 'character' },
46
+ { name: 'Teddy Bear', url: '/assets/cheerful-teddy-bear.mp4', category: 'character' },
47
+ { name: 'Mountaineer', url: '/assets/mountaineer-character.mp4', category: 'character' },
48
+ { name: 'Guitarist', url: '/assets/stylized-character-with-red-electric-guitar.mp4', category: 'character' },
49
+ { name: 'Cheerful Person', url: '/assets/stylized-illustration-of-a-cheerful-person.mp4', category: 'illustration' },
50
+ { name: 'Travel Trio', url: '/assets/stylized-travel-trio.mp4', category: 'illustration' },
51
+ { name: 'Woman with Glasses', url: '/assets/close-up-of-young-woman-with-glasses.mp4', category: 'portrait' },
52
+ { name: 'Braided Portrait', url: '/assets/serene-braided-portrait.mp4', category: 'portrait' },
53
+ { name: 'Red Attire', url: '/assets/stylish-red-attire.mp4', category: 'portrait' },
54
+ { name: 'Vibrant Art', url: '/assets/vibrant-portrait-art.mp4', category: 'portrait' },
55
+ { name: 'Profile Duo', url: '/assets/vibrant-profile-duo.mp4', category: 'portrait' },
56
+ { name: 'Beige Jumpsuit', url: '/assets/woman-in-beige-jumpsuit.mp4', category: 'portrait' },
57
+ { name: 'Thoughtful Portrait', url: '/assets/thoughtful-portrait.mp4', category: 'portrait' },
58
+ { name: 'Couple Illustration', url: '/assets/intimate-couple-illustration.mp4', category: 'illustration' },
59
+ { name: 'Stylish Portrait', url: '/assets/stylish-portrait.mp4', category: 'portrait' },
60
+ ];
17
61
  // Tool definitions for discovery
18
62
  exports.discoveryTools = [
19
63
  {
@@ -70,6 +114,34 @@ exports.discoveryTools = [
70
114
  required: [],
71
115
  },
72
116
  },
117
+ {
118
+ name: 'list_3d_models',
119
+ description: 'List all available 3D shapes and models. Includes basic shapes (sphere, torus, cube, cone, cylinder) and curated GLTF models (characters, objects). Use these with 3D layers.',
120
+ inputSchema: {
121
+ type: 'object',
122
+ properties: {
123
+ category: {
124
+ type: 'string',
125
+ description: 'Filter by category: "Basic" for shapes, or specific categories like "Characters", "Objects"',
126
+ },
127
+ },
128
+ required: [],
129
+ },
130
+ },
131
+ {
132
+ name: 'list_sample_videos',
133
+ description: 'List available sample video clips. High-quality curated videos including portraits, characters, illustrations, and scenes. Use these URLs with set_background (type: "video") or add_layer (type: "video").',
134
+ inputSchema: {
135
+ type: 'object',
136
+ properties: {
137
+ category: {
138
+ type: 'string',
139
+ description: 'Filter by type: "portrait", "character", "illustration", "nature"',
140
+ },
141
+ },
142
+ required: [],
143
+ },
144
+ },
73
145
  ];
74
146
  /**
75
147
  * Handle discovery tool calls
@@ -196,6 +268,61 @@ async function handleDiscoveryTool(name, _args) {
196
268
  };
197
269
  }
198
270
  }
271
+ case 'list_3d_models': {
272
+ const args = _args || {};
273
+ const category = args.category;
274
+ // Filter models by category if specified
275
+ let models = CURATED_3D_MODELS;
276
+ if (category) {
277
+ const categoryLower = category.toLowerCase();
278
+ models = models.filter(m => m.category.toLowerCase().includes(categoryLower));
279
+ }
280
+ // Group by category
281
+ const byCategory = {};
282
+ for (const model of models) {
283
+ if (!byCategory[model.category]) {
284
+ byCategory[model.category] = [];
285
+ }
286
+ byCategory[model.category].push(model);
287
+ }
288
+ const formatted = {
289
+ total: models.length,
290
+ categories: Object.keys(byCategory),
291
+ models: byCategory,
292
+ usage: 'For shapes, use the url directly (e.g., "shape:torusKnot"). For GLTF models, use the full path. These can be used with 3D layers.',
293
+ };
294
+ return {
295
+ content: [{ type: 'text', text: JSON.stringify(formatted, null, 2) }],
296
+ };
297
+ }
298
+ case 'list_sample_videos': {
299
+ const args = _args || {};
300
+ const category = args.category;
301
+ // Filter by category if specified
302
+ let videos = SAMPLE_VIDEOS;
303
+ if (category) {
304
+ const categoryLower = category.toLowerCase();
305
+ videos = videos.filter(v => v.category.toLowerCase().includes(categoryLower) ||
306
+ v.name.toLowerCase().includes(categoryLower));
307
+ }
308
+ // Group by category
309
+ const byCategory = {};
310
+ for (const video of videos) {
311
+ if (!byCategory[video.category]) {
312
+ byCategory[video.category] = [];
313
+ }
314
+ byCategory[video.category].push({ name: video.name, url: video.url });
315
+ }
316
+ const formatted = {
317
+ total: videos.length,
318
+ categories: [...new Set(videos.map(v => v.category))],
319
+ videos: byCategory,
320
+ usage: 'Use these URLs with set_background({ type: "video", videoUrl: "<url>" }) or add_layer({ type: "video", mediaUrl: "<url>" })',
321
+ };
322
+ return {
323
+ content: [{ type: 'text', text: JSON.stringify(formatted, null, 2) }],
324
+ };
325
+ }
199
326
  default:
200
327
  return {
201
328
  content: [{ type: 'text', text: `Unknown discovery tool: ${name}` }],
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/tools/discovery.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAM9D,eAAO,MAAM,UAAU,EAAE,IAAI,EAsC5B,CAAA;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAqH7D"}
1
+ {"version":3,"file":"images.d.ts","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAM9D,eAAO,MAAM,UAAU,EAAE,IAAI,EAoE5B,CAAA;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CA8N7D"}
@@ -48,6 +48,34 @@ exports.imageTools = [
48
48
  required: [],
49
49
  },
50
50
  },
51
+ {
52
+ name: 'search_gifs',
53
+ description: 'Search for animated GIFs from GIPHY. Returns GIF/MP4 URLs that can be used with set_background (type: "video") or add_layer (type: "video"). Use mp4Url for better WebGL performance. Great for adding motion and energy to posters.',
54
+ inputSchema: {
55
+ type: 'object',
56
+ properties: {
57
+ query: {
58
+ type: 'string',
59
+ description: 'Search query (e.g., "fire", "glitch", "abstract loop", "neon"). Leave empty for trending GIFs.',
60
+ },
61
+ trending: {
62
+ type: 'boolean',
63
+ description: 'Get trending GIFs instead of search results',
64
+ },
65
+ rating: {
66
+ type: 'string',
67
+ enum: ['g', 'pg', 'pg-13'],
68
+ description: 'Content rating filter (default: pg-13)',
69
+ },
70
+ limit: {
71
+ type: 'number',
72
+ description: 'Maximum number of GIFs to return (default: 10, max: 50)',
73
+ default: 10,
74
+ },
75
+ },
76
+ required: [],
77
+ },
78
+ },
51
79
  ];
52
80
  /**
53
81
  * Handle image tool calls
@@ -134,6 +162,80 @@ async function handleImageTool(name, args) {
134
162
  };
135
163
  }
136
164
  }
165
+ case 'search_gifs': {
166
+ const query = params.query || '';
167
+ const trending = params.trending;
168
+ const rating = params.rating || 'pg-13';
169
+ const limit = Math.min(50, Math.max(1, params.limit || 10));
170
+ try {
171
+ // Build URL with query parameters
172
+ const url = new URL(`${API_BASE_URL}/api/v1/gifs/search`);
173
+ if (query)
174
+ url.searchParams.set('q', query);
175
+ if (trending)
176
+ url.searchParams.set('trending', 'true');
177
+ url.searchParams.set('rating', rating);
178
+ url.searchParams.set('limit', limit.toString());
179
+ const response = await fetch(url.toString());
180
+ if (!response.ok) {
181
+ const errorText = await response.text();
182
+ return {
183
+ content: [
184
+ {
185
+ type: 'text',
186
+ text: JSON.stringify({
187
+ success: false,
188
+ error: `API error: ${response.status}`,
189
+ details: errorText,
190
+ }, null, 2),
191
+ },
192
+ ],
193
+ };
194
+ }
195
+ const result = (await response.json());
196
+ // Format GIFs for easy consumption
197
+ const gifs = result.gifs.map((gif) => ({
198
+ id: gif.id,
199
+ url: gif.url, // GIF URL
200
+ mp4Url: gif.mp4Url, // MP4 URL (better for WebGL) - use this!
201
+ thumbnail: gif.thumbnail,
202
+ width: gif.width,
203
+ height: gif.height,
204
+ title: gif.title,
205
+ creator: gif.creator,
206
+ }));
207
+ return {
208
+ content: [
209
+ {
210
+ type: 'text',
211
+ text: JSON.stringify({
212
+ success: true,
213
+ query: query || '(trending)',
214
+ count: gifs.length,
215
+ total: result.total,
216
+ hasMore: result.hasMore,
217
+ gifs,
218
+ usage: 'Use the "mp4Url" field (preferred) or "url" field with set_background({ type: "video", videoUrl: "<url>" }) or add_layer({ type: "video", mediaUrl: "<url>" }).',
219
+ }, null, 2),
220
+ },
221
+ ],
222
+ };
223
+ }
224
+ catch (error) {
225
+ return {
226
+ content: [
227
+ {
228
+ type: 'text',
229
+ text: JSON.stringify({
230
+ success: false,
231
+ error: 'Failed to search GIFs',
232
+ details: error instanceof Error ? error.message : String(error),
233
+ }, null, 2),
234
+ },
235
+ ],
236
+ };
237
+ }
238
+ }
137
239
  default:
138
240
  return {
139
241
  content: [{ type: 'text', text: `Unknown image tool: ${name}` }],
@@ -1 +1 @@
1
- {"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAmDH,0CAwHC;AAvKD,oEAAoE;AACpE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,oBAAoB,CAAA;AAEvE,mBAAmB;AACN,QAAA,UAAU,GAAW;IAChC;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,kOAAkO;QACpO,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0FAA0F;iBAC7F;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC;oBAC1C,WAAW,EACT,4GAA4G;iBAC/G;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC;oBACrC,WAAW,EAAE,sFAAsF;iBACpG;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;oBACnC,WAAW,EAAE,2EAA2E;iBACzF;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;oBACxE,OAAO,EAAE,EAAE;iBACZ;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;CACF,CAAA;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,IAAyC;IAEzC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAA;IAEzB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,KAAK,GAAI,MAAM,CAAC,KAAgB,IAAI,EAAE,CAAA;YAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAiC,CAAA;YAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,IAA0B,CAAA;YACnD,MAAM,SAAS,GAAG,MAAM,CAAC,SAA+B,CAAA;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAG,MAAM,CAAC,KAAgB,IAAI,EAAE,CAAC,CAAC,CAAA;YAEvE,IAAI,CAAC;gBACH,kCAAkC;gBAClC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,YAAY,uBAAuB,CAAC,CAAA;gBAC3D,IAAI,KAAK;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC3C,IAAI,WAAW;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;gBACjE,IAAI,SAAS;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;gBACtD,IAAI,SAAS;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;gBAC3D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAE/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAE5C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;oBACvC,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,OAAO,EAAE,KAAK;oCACd,KAAK,EAAE,cAAc,QAAQ,CAAC,MAAM,EAAE;oCACtC,OAAO,EAAE,SAAS;iCACnB,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;qBACF,CAAA;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAcpC,CAAA;gBAED,qCAAqC;gBACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACzC,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,oDAAoD;oBAClE,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf,CAAC,CAAC,CAAA;gBAEH,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,OAAO,EAAE,IAAI;gCACb,KAAK,EAAE,KAAK,IAAI,YAAY;gCAC5B,KAAK,EAAE,MAAM,CAAC,MAAM;gCACpB,KAAK,EAAE,MAAM,CAAC,KAAK;gCACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gCACvB,MAAM;gCACN,KAAK,EACH,qGAAqG;6BACxG,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;iBACF,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,yBAAyB;gCAChC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;6BAChE,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;iBACF,CAAA;YACH,CAAC;QACH,CAAC;QAED;YACE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,IAAI,EAAE,EAAE,CAAC;aACjE,CAAA;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"images.js","sourceRoot":"","sources":["../../src/tools/images.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAiFH,0CAiOC;AA9SD,oEAAoE;AACpE,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,oBAAoB,CAAA;AAEvE,mBAAmB;AACN,QAAA,UAAU,GAAW;IAChC;QACE,IAAI,EAAE,eAAe;QACrB,WAAW,EACT,kOAAkO;QACpO,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,0FAA0F;iBAC7F;gBACD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC;oBAC1C,WAAW,EACT,4GAA4G;iBAC/G;gBACD,IAAI,EAAE;oBACJ,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,CAAC;oBACrC,WAAW,EAAE,sFAAsF;iBACpG;gBACD,SAAS,EAAE;oBACT,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;oBACnC,WAAW,EAAE,2EAA2E;iBACzF;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,2DAA2D;oBACxE,OAAO,EAAE,EAAE;iBACZ;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;IACD;QACE,IAAI,EAAE,aAAa;QACnB,WAAW,EACT,sOAAsO;QACxO,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EACT,gGAAgG;iBACnG;gBACD,QAAQ,EAAE;oBACR,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE,6CAA6C;iBAC3D;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC;oBAC1B,WAAW,EAAE,wCAAwC;iBACtD;gBACD,KAAK,EAAE;oBACL,IAAI,EAAE,QAAQ;oBACd,WAAW,EAAE,yDAAyD;oBACtE,OAAO,EAAE,EAAE;iBACZ;aACF;YACD,QAAQ,EAAE,EAAE;SACb;KACF;CACF,CAAA;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CACnC,IAAY,EACZ,IAAyC;IAEzC,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAA;IAEzB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe,CAAC,CAAC,CAAC;YACrB,MAAM,KAAK,GAAI,MAAM,CAAC,KAAgB,IAAI,EAAE,CAAA;YAC5C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAiC,CAAA;YAC5D,MAAM,SAAS,GAAG,MAAM,CAAC,IAA0B,CAAA;YACnD,MAAM,SAAS,GAAG,MAAM,CAAC,SAA+B,CAAA;YACxD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAG,MAAM,CAAC,KAAgB,IAAI,EAAE,CAAC,CAAC,CAAA;YAEvE,IAAI,CAAC;gBACH,kCAAkC;gBAClC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,YAAY,uBAAuB,CAAC,CAAA;gBAC3D,IAAI,KAAK;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC3C,IAAI,WAAW;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAA;gBACjE,IAAI,SAAS;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAA;gBACtD,IAAI,SAAS;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;gBAC3D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAE/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAE5C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;oBACvC,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,OAAO,EAAE,KAAK;oCACd,KAAK,EAAE,cAAc,QAAQ,CAAC,MAAM,EAAE;oCACtC,OAAO,EAAE,SAAS;iCACnB,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;qBACF,CAAA;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAcpC,CAAA;gBAED,qCAAqC;gBACrC,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACzC,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,oDAAoD;oBAClE,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,GAAG,EAAE,GAAG,CAAC,GAAG;oBACZ,YAAY,EAAE,GAAG,CAAC,YAAY;oBAC9B,WAAW,EAAE,GAAG,CAAC,WAAW;oBAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;iBACf,CAAC,CAAC,CAAA;gBAEH,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,OAAO,EAAE,IAAI;gCACb,KAAK,EAAE,KAAK,IAAI,YAAY;gCAC5B,KAAK,EAAE,MAAM,CAAC,MAAM;gCACpB,KAAK,EAAE,MAAM,CAAC,KAAK;gCACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gCACvB,MAAM;gCACN,KAAK,EACH,qGAAqG;6BACxG,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;iBACF,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,yBAAyB;gCAChC,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;6BAChE,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;iBACF,CAAA;YACH,CAAC;QACH,CAAC;QAED,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,MAAM,KAAK,GAAI,MAAM,CAAC,KAAgB,IAAI,EAAE,CAAA;YAC5C,MAAM,QAAQ,GAAG,MAAM,CAAC,QAA+B,CAAA;YACvD,MAAM,MAAM,GAAI,MAAM,CAAC,MAAiB,IAAI,OAAO,CAAA;YACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAG,MAAM,CAAC,KAAgB,IAAI,EAAE,CAAC,CAAC,CAAA;YAEvE,IAAI,CAAC;gBACH,kCAAkC;gBAClC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,YAAY,qBAAqB,CAAC,CAAA;gBACzD,IAAI,KAAK;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC3C,IAAI,QAAQ;oBAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;gBACtD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;gBACtC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAE/C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAE5C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;oBACvC,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oCACE,OAAO,EAAE,KAAK;oCACd,KAAK,EAAE,cAAc,QAAQ,CAAC,MAAM,EAAE;oCACtC,OAAO,EAAE,SAAS;iCACnB,EACD,IAAI,EACJ,CAAC,CACF;6BACF;yBACF;qBACF,CAAA;gBACH,CAAC;gBAED,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAcpC,CAAA;gBAED,mCAAmC;gBACnC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;oBACrC,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,UAAU;oBACxB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,yCAAyC;oBAC7D,SAAS,EAAE,GAAG,CAAC,SAAS;oBACxB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC,CAAA;gBAEH,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,OAAO,EAAE,IAAI;gCACb,KAAK,EAAE,KAAK,IAAI,YAAY;gCAC5B,KAAK,EAAE,IAAI,CAAC,MAAM;gCAClB,KAAK,EAAE,MAAM,CAAC,KAAK;gCACnB,OAAO,EAAE,MAAM,CAAC,OAAO;gCACvB,IAAI;gCACJ,KAAK,EACH,iKAAiK;6BACpK,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;iBACF,CAAA;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,OAAO,EAAE,KAAK;gCACd,KAAK,EAAE,uBAAuB;gCAC9B,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;6BAChE,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;iBACF,CAAA;YACH,CAAC;QACH,CAAC;QAED;YACE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,IAAI,EAAE,EAAE,CAAC;aACjE,CAAA;IACL,CAAC;AACH,CAAC"}
@@ -13,9 +13,6 @@ export declare const outputTools: Tool[];
13
13
  * Handle output tool calls
14
14
  */
15
15
  export declare function handleOutputTool(name: string, args: Record<string, unknown> | undefined): Promise<{
16
- content: Array<{
17
- type: string;
18
- text: string;
19
- }>;
16
+ content: Array<Record<string, unknown>>;
20
17
  }>;
21
18
  //# sourceMappingURL=output.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/tools/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAO9D,eAAO,MAAM,WAAW,EAAE,IAAI,EA6C7B,CAAA;AA8CD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAwN7D"}
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../../src/tools/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAA;AAQ9D,eAAO,MAAM,WAAW,EAAE,IAAI,EA6C7B,CAAA;AAgDD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAAE,CAAC,CAyLtD"}
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.outputTools = void 0;
13
13
  exports.handleOutputTool = handleOutputTool;
14
14
  const state_js_1 = require("./state.js");
15
+ const render_js_1 = require("./render.js");
15
16
  // Default API base URL (can be overridden via environment variable)
16
17
  const API_BASE_URL = process.env.EFECTO_API_URL || 'https://efecto.app';
17
18
  // Tool definitions
@@ -33,7 +34,7 @@ exports.outputTools = [
33
34
  },
34
35
  {
35
36
  name: 'render_image',
36
- description: 'Render the current poster to an image. Always uses async mode and returns a job URL for polling.',
37
+ description: 'Render the current poster to an image. Returns the image inline so the agent can see the rendered design.',
37
38
  inputSchema: {
38
39
  type: 'object',
39
40
  properties: {
@@ -95,6 +96,8 @@ function getDefaultDimensions(aspectRatio) {
95
96
  return { width: 1080, height: 1080 };
96
97
  case '4:3':
97
98
  return { width: 1440, height: 1080 };
99
+ case '3:4':
100
+ return { width: 1080, height: 1440 };
98
101
  case 'full':
99
102
  default:
100
103
  return { width: 1920, height: 1080 };
@@ -105,12 +108,8 @@ function getDefaultDimensions(aspectRatio) {
105
108
  */
106
109
  async function handleOutputTool(name, args) {
107
110
  const params = args || {};
111
+ (0, state_js_1.ensurePoster)();
108
112
  const poster = (0, state_js_1.getCurrentState)();
109
- if (!poster) {
110
- return {
111
- content: [{ type: 'text', text: 'Error: No poster created. Use create_poster first.' }],
112
- };
113
- }
114
113
  switch (name) {
115
114
  case 'generate_url': {
116
115
  const baseUrl = params.baseUrl || 'https://efecto.app';
@@ -185,91 +184,79 @@ async function handleOutputTool(name, args) {
185
184
  const width = params.width || defaultDims.width;
186
185
  const height = params.height || defaultDims.height;
187
186
  const quality = params.quality || 90;
188
- const asyncMode = params.async ?? true; // Default to async for MCP
189
187
  const state = convertToLayerShareState(poster);
190
188
  if (!state) {
191
189
  return {
192
190
  content: [{ type: 'text', text: 'Error: Failed to convert poster state' }],
193
191
  };
194
192
  }
193
+ // Step 1: Generate a shareable URL (same as generate_url)
194
+ let posterUrl = null;
195
+ const baseUrl = API_BASE_URL;
195
196
  try {
196
- // Call the render API with async=true to get JSON response with job ID
197
- // Sync mode returns binary which MCP cannot handle directly
198
- const response = await fetch(`${API_BASE_URL}/api/v1/render`, {
197
+ const response = await fetch(`${API_BASE_URL}/api/v1/state/encode`, {
199
198
  method: 'POST',
200
- headers: {
201
- 'Content-Type': 'application/json',
202
- },
203
- body: JSON.stringify({
204
- state,
205
- format,
206
- width,
207
- height,
208
- quality,
209
- async: true, // Always use async for MCP to get JSON response
210
- }),
199
+ headers: { 'Content-Type': 'application/json' },
200
+ body: JSON.stringify({ state, baseUrl }),
211
201
  });
212
- if (!response.ok) {
213
- // Try to parse error as JSON first, fall back to text
214
- const contentType = response.headers.get('content-type');
215
- let errorDetails;
216
- if (contentType?.includes('application/json')) {
217
- const errorJson = await response.json();
218
- errorDetails = JSON.stringify(errorJson);
219
- }
220
- else {
221
- errorDetails = await response.text();
222
- }
223
- return {
224
- content: [
225
- {
226
- type: 'text',
227
- text: JSON.stringify({
228
- success: false,
229
- error: `API error: ${response.status}`,
230
- details: errorDetails,
231
- }, null, 2),
232
- },
233
- ],
234
- };
202
+ if (response.ok) {
203
+ const result = (await response.json());
204
+ posterUrl = result.url;
235
205
  }
236
- // Async mode returns JSON with job info
237
- const result = (await response.json());
206
+ }
207
+ catch (encodeError) {
208
+ // URL generation failed, will be handled below
209
+ console.error('URL encode failed:', encodeError);
210
+ }
211
+ if (!posterUrl) {
212
+ return {
213
+ content: [{
214
+ type: 'text',
215
+ text: JSON.stringify({
216
+ success: false,
217
+ error: 'Failed to generate poster URL for rendering',
218
+ details: 'Could not encode poster state to URL. Check that the Efecto API is reachable.',
219
+ }, null, 2),
220
+ }],
221
+ };
222
+ }
223
+ // Step 2: Render locally via Puppeteer
224
+ // Append _render=1 for clean UI-free rendering
225
+ const renderUrl = posterUrl + (posterUrl.includes('?') ? '&' : '?') + '_render=1';
226
+ try {
227
+ const result = await (0, render_js_1.renderPoster)(renderUrl, { width, height, format, quality });
238
228
  return {
239
229
  content: [
230
+ {
231
+ type: 'image',
232
+ data: result.base64,
233
+ mimeType: result.mimeType,
234
+ },
240
235
  {
241
236
  type: 'text',
242
237
  text: JSON.stringify({
243
238
  success: true,
244
- jobId: result.jobId,
245
- status: result.status || 'pending',
246
- statusUrl: `${API_BASE_URL}${result.statusUrl}`,
247
- downloadUrl: `${API_BASE_URL}${result.downloadUrl}`,
248
- message: 'Render job started. Poll the status URL to check progress, then download from downloadUrl when complete.',
239
+ url: posterUrl,
240
+ message: 'Poster rendered successfully. The image is shown above. Open the URL in a browser to view interactively.',
249
241
  renderConfig: { format, width, height, quality },
250
242
  }, null, 2),
251
243
  },
252
244
  ],
253
245
  };
254
246
  }
255
- catch (error) {
247
+ catch (renderError) {
248
+ // Graceful degradation: return URL even if rendering fails
256
249
  return {
257
- content: [
258
- {
250
+ content: [{
259
251
  type: 'text',
260
252
  text: JSON.stringify({
261
253
  success: false,
262
- error: 'Failed to call API',
263
- details: error instanceof Error ? error.message : String(error),
264
- // Fallback: provide the state for manual rendering
265
- fallback: {
266
- note: 'You can manually call the API with this configuration:',
267
- endpoint: `POST ${API_BASE_URL}/api/v1/render`,
268
- body: { state, format, width, height, quality, async: asyncMode },
269
- },
254
+ error: 'Rendering failed, but URL is available',
255
+ details: renderError instanceof Error ? renderError.message : String(renderError),
256
+ url: posterUrl,
257
+ message: 'Could not render image locally. Open the URL in a browser to see the design.',
270
258
  }, null, 2),
271
- },
272
- ],
259
+ }],
273
260
  };
274
261
  }
275
262
  }
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/tools/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../../src/tools/output.ts"],"names":[],"mappings":"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"}