@shuffll/mcp-server 1.3.0 → 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.
@@ -1,20 +1,25 @@
1
1
  import { ShufflApiClient } from "./api-client.js";
2
+ import type { UgcSceneContext } from "./types.js";
3
+ interface CompositionEntry {
4
+ type: string;
5
+ isGeneric: boolean;
6
+ }
2
7
  interface CachedDesignGroup {
3
8
  id: string;
4
9
  name: string;
5
10
  /** aspectRatio → designId */
6
11
  designs: Map<string, string>;
7
- /** composition types available in this design group (branded) */
8
- compositions: string[];
12
+ /** All composition entries (branded + generic, with classification) */
13
+ allCompositions: CompositionEntry[];
9
14
  }
10
15
  /**
11
16
  * Discovers and caches available design groups, their aspect-ratio
12
17
  * variants, and composition types from platform templates.
13
18
  * Refreshes periodically so the MCP server stays up-to-date.
14
19
  *
15
- * For UGC content, provides access to the **generic design** composition
16
- * types clean, unbranded layouts that the webserver merges into every
17
- * design automatically.
20
+ * Generic compositions are detected **adaptively** by inspecting each
21
+ * composition's layout path in the API response. If the path contains
22
+ * "generic-designs", the composition is classified as generic.
18
23
  */
19
24
  export declare class DesignRegistry {
20
25
  private apiClient;
@@ -22,43 +27,44 @@ export declare class DesignRegistry {
22
27
  private groups;
23
28
  private refreshTimer;
24
29
  private initialized;
30
+ /** Dynamically discovered generic composition types. */
31
+ private genericTypes;
25
32
  constructor(apiClient: ShufflApiClient, refreshIntervalMs?: number);
26
33
  initialize(): Promise<void>;
27
34
  dispose(): void;
28
35
  /**
29
36
  * Find a design group that supports the given aspect ratio.
30
- * Returns the first matching group's designGroupId and designId.
31
37
  */
32
38
  findDesignForAspectRatio(ratio: string): {
33
39
  designGroupId: string;
34
40
  designId: string;
35
41
  } | null;
36
42
  /**
37
- * Returns the generic design composition types for the given aspect ratio.
38
- * These are clean, unbranded layouts from the generic designs collection.
39
- * The webserver merges them into every design, so they can always be used
40
- * when calling updateSceneComposition.
43
+ * Returns all discovered generic composition type names.
44
+ * Detected adaptively from the API response new compositions
45
+ * added to the generic designs collection are picked up automatically.
41
46
  */
42
- getGenericCompositions(aspectRatio?: string): string[];
47
+ getGenericCompositions(): string[];
43
48
  /**
44
- * Check whether a composition type belongs to the generic designs
45
- * (i.e. it's a clean, unbranded layout).
49
+ * Check whether a composition type is a generic (clean, unbranded) layout.
46
50
  */
47
- isGenericComposition(compositionType: string, aspectRatio?: string): boolean;
51
+ isGenericComposition(compositionType: string): boolean;
48
52
  /**
49
- * Suggest a generic composition type for a UGC scene based on its
50
- * position in the video. All suggested types come from the generic
51
- * designs collection.
53
+ * Smart UGC composition mapping that considers scene context.
54
+ *
55
+ * Uses scene position (hook/content/CTA), composition prefix, and
56
+ * available generic types to pick the best composition for UGC.
52
57
  *
53
- * Layout strategy:
54
- * - First scene → vid_clean (hook full-screen video, no distractions)
55
- * - Last scene → vid_clean (CTA delivered via voiceover over clean video)
56
- * - Middle scenes → vid_clean (content — full-screen stock footage / AI video)
58
+ * Key constraint: post-creation composition swaps don't re-assign media
59
+ * (stock footage/images). Only swap scenes where the composition change
60
+ * adds value without losing critical content.
57
61
  *
58
- * For UGC, vid_clean is almost always the best choice since the content
59
- * is driven by the voiceover script and stock footage.
62
+ * Returns { target, reason } target is null to keep the current composition.
60
63
  */
61
- suggestUgcComposition(_sceneName: string, sceneIndex: number, totalScenes: number, aspectRatio?: string): string;
64
+ mapToGenericForUgcSmart(ctx: UgcSceneContext): {
65
+ target: string | null;
66
+ reason: string;
67
+ };
62
68
  /**
63
69
  * Returns all discovered design groups (for debugging / logging).
64
70
  */
@@ -1,6 +1,6 @@
1
1
  import { log, logError } from "./utils/logger.js";
2
2
  // ============================================================
3
- // Generic Design Compositions
3
+ // Generic Design Compositions – Adaptive Detection
4
4
  // ============================================================
5
5
  //
6
6
  // Generic designs are a separate collection in the DB – one document per
@@ -9,62 +9,25 @@ import { log, logError } from "./utils/logger.js";
9
9
  // automatically merges generic compositions into every design, so calling
10
10
  // updateSceneComposition with a generic type always works.
11
11
  //
12
- // For UGC content we SWAP scene compositions to these generic types,
13
- // giving the video a clean look with no design-specific overlays.
12
+ // Detection: The DesignResolver tags generic compositions with a
13
+ // baseDesignPath containing "generic-designs". During refresh() we look
14
+ // at each composition's layout path to classify it automatically.
15
+ // This means new compositions added to the generic designs collection
16
+ // are picked up without code changes.
14
17
  // ============================================================
15
- /** Compositions available across all three aspect ratios. */
16
- const GENERIC_COMPOSITIONS_COMMON = [
17
- "vid_clean", // Full frame video (no overlays)
18
- "smart_vid", // Full frame video (intelligent framing)
19
- "img_single_static", // Full frame single static image
20
- "img_slides", // Full frame sliding/zooming image
21
- "browser-mockup-01", // Browser mockup for image display
22
- "3-img_slides", // 3-image animated slideshow
23
- "4-img_frames_txt", // 4 framed images with titles
24
- "quote_txt", // Quote / paragraph text
25
- "vid_side-by-side", // Side-by-side split video
26
- "dynamic-title_vid_01", // Smart headline overlay on video
27
- "dynamic-title_vid_02", // Smart headline overlay (variant 2)
28
- "dynamic-title_vid_03", // Smart headline overlay (variant 3)
29
- ];
30
- /** Additional compositions available in 16/9 generic design. */
31
- const GENERIC_COMPOSITIONS_16_9_EXTRA = [
32
- "browser-mockup-02",
33
- "vid_and_right_bulleted-list",
34
- "presented-by",
35
- "vid_and_bulleted-list",
36
- "bulleted-list",
37
- "vid_shadow",
38
- "img_shadow",
39
- "quiz",
40
- "vid_pip-2",
41
- "flowchart_txt",
42
- "listings-chart_vid",
43
- "listings-side-chart_vid",
44
- "dynamic-title_vid_04",
45
- "dynamic-title_vid_05",
46
- ];
47
- /** Additional compositions available in 9/16 generic design. */
48
- const GENERIC_COMPOSITIONS_9_16_EXTRA = [
49
- "2-img_frames_txt",
50
- "3-img_frames_txt",
51
- "img_split_2_static",
52
- "img_split_3_static",
53
- "img_split_4_static",
54
- "dynamic-title_vid_04",
55
- "dynamic-title_vid_05",
56
- ];
57
- /** Additional compositions available in 1/1 generic design. */
58
- const GENERIC_COMPOSITIONS_1_1_EXTRA = [
59
- "dynamic-title_vid_04",
60
- "dynamic-title_vid_05",
61
- ];
62
- /** All generic compositions per aspect ratio. */
63
- const GENERIC_COMPOSITIONS = {
64
- "16/9": [...GENERIC_COMPOSITIONS_COMMON, ...GENERIC_COMPOSITIONS_16_9_EXTRA],
65
- "1/1": [...GENERIC_COMPOSITIONS_COMMON, ...GENERIC_COMPOSITIONS_1_1_EXTRA],
66
- "9/16": [...GENERIC_COMPOSITIONS_COMMON, ...GENERIC_COMPOSITIONS_9_16_EXTRA],
67
- };
18
+ // Fallback list only used if the API response lacks path information.
19
+ const FALLBACK_GENERIC_TYPES = new Set([
20
+ "vid_clean", "smart_vid", "img_single_static", "img_slides",
21
+ "img_shadow", "vid_shadow", "browser-mockup-01", "browser-mockup-02",
22
+ "3-img_slides", "4-img_frames_txt", "quote_txt", "vid_side-by-side",
23
+ "vid_pip-2", "vid_and_bulleted-list", "vid_and_right_bulleted-list",
24
+ "bulleted-list", "presented-by", "quiz", "flowchart_txt",
25
+ "listings-chart_vid", "listings-side-chart_vid",
26
+ "dynamic-title_vid_01", "dynamic-title_vid_02", "dynamic-title_vid_03",
27
+ "dynamic-title_vid_04", "dynamic-title_vid_05",
28
+ "2-img_frames_txt", "3-img_frames_txt",
29
+ "img_split_2_static", "img_split_3_static", "img_split_4_static",
30
+ ]);
68
31
  // ============================================================
69
32
  // DesignRegistry
70
33
  // ============================================================
@@ -73,9 +36,9 @@ const GENERIC_COMPOSITIONS = {
73
36
  * variants, and composition types from platform templates.
74
37
  * Refreshes periodically so the MCP server stays up-to-date.
75
38
  *
76
- * For UGC content, provides access to the **generic design** composition
77
- * types clean, unbranded layouts that the webserver merges into every
78
- * design automatically.
39
+ * Generic compositions are detected **adaptively** by inspecting each
40
+ * composition's layout path in the API response. If the path contains
41
+ * "generic-designs", the composition is classified as generic.
79
42
  */
80
43
  export class DesignRegistry {
81
44
  apiClient;
@@ -83,6 +46,8 @@ export class DesignRegistry {
83
46
  groups = [];
84
47
  refreshTimer = null;
85
48
  initialized = false;
49
+ /** Dynamically discovered generic composition types. */
50
+ genericTypes = new Set();
86
51
  constructor(apiClient, refreshIntervalMs = 30 * 60 * 1000) {
87
52
  this.apiClient = apiClient;
88
53
  this.refreshIntervalMs = refreshIntervalMs;
@@ -93,7 +58,6 @@ export class DesignRegistry {
93
58
  async initialize() {
94
59
  await this.refresh();
95
60
  this.initialized = true;
96
- // Periodic refresh
97
61
  this.refreshTimer = setInterval(() => {
98
62
  this.refresh().catch((err) => logError("DesignRegistry periodic refresh failed", err));
99
63
  }, this.refreshIntervalMs);
@@ -106,7 +70,6 @@ export class DesignRegistry {
106
70
  }
107
71
  /**
108
72
  * Find a design group that supports the given aspect ratio.
109
- * Returns the first matching group's designGroupId and designId.
110
73
  */
111
74
  findDesignForAspectRatio(ratio) {
112
75
  for (const group of this.groups) {
@@ -118,46 +81,79 @@ export class DesignRegistry {
118
81
  return null;
119
82
  }
120
83
  /**
121
- * Returns the generic design composition types for the given aspect ratio.
122
- * These are clean, unbranded layouts from the generic designs collection.
123
- * The webserver merges them into every design, so they can always be used
124
- * when calling updateSceneComposition.
84
+ * Returns all discovered generic composition type names.
85
+ * Detected adaptively from the API response new compositions
86
+ * added to the generic designs collection are picked up automatically.
125
87
  */
126
- getGenericCompositions(aspectRatio = "16/9") {
127
- return [...(GENERIC_COMPOSITIONS[aspectRatio] || GENERIC_COMPOSITIONS_COMMON)];
88
+ getGenericCompositions() {
89
+ return Array.from(this.genericTypes);
128
90
  }
129
91
  /**
130
- * Check whether a composition type belongs to the generic designs
131
- * (i.e. it's a clean, unbranded layout).
92
+ * Check whether a composition type is a generic (clean, unbranded) layout.
132
93
  */
133
- isGenericComposition(compositionType, aspectRatio = "16/9") {
134
- const generics = GENERIC_COMPOSITIONS[aspectRatio] || GENERIC_COMPOSITIONS_COMMON;
135
- return generics.includes(compositionType);
94
+ isGenericComposition(compositionType) {
95
+ return this.genericTypes.has(compositionType);
136
96
  }
137
97
  /**
138
- * Suggest a generic composition type for a UGC scene based on its
139
- * position in the video. All suggested types come from the generic
140
- * designs collection.
98
+ * Smart UGC composition mapping that considers scene context.
141
99
  *
142
- * Layout strategy:
143
- * - First scene → vid_clean (hook full-screen video, no distractions)
144
- * - Last scene → vid_clean (CTA delivered via voiceover over clean video)
145
- * - Middle scenes → vid_clean (content — full-screen stock footage / AI video)
100
+ * Uses scene position (hook/content/CTA), composition prefix, and
101
+ * available generic types to pick the best composition for UGC.
146
102
  *
147
- * For UGC, vid_clean is almost always the best choice since the content
148
- * is driven by the voiceover script and stock footage.
103
+ * Key constraint: post-creation composition swaps don't re-assign media
104
+ * (stock footage/images). Only swap scenes where the composition change
105
+ * adds value without losing critical content.
106
+ *
107
+ * Returns { target, reason } — target is null to keep the current composition.
149
108
  */
150
- suggestUgcComposition(_sceneName, sceneIndex, totalScenes, aspectRatio = "9/16") {
151
- const generics = GENERIC_COMPOSITIONS[aspectRatio] || GENERIC_COMPOSITIONS_COMMON;
152
- // Default: vid_clean for all UGC scenes (clean full-frame video)
153
- if (generics.includes("vid_clean"))
154
- return "vid_clean";
155
- // Fallback chain
156
- if (generics.includes("smart_vid"))
157
- return "smart_vid";
158
- if (generics.includes("img_single_static"))
159
- return "img_single_static";
160
- return "vid_clean"; // absolute fallback
109
+ mapToGenericForUgcSmart(ctx) {
110
+ const comp = ctx.currentComposition;
111
+ // Already generic no swap needed
112
+ if (this.isGenericComposition(comp)) {
113
+ return { target: null, reason: "already generic" };
114
+ }
115
+ const isFirst = ctx.index === 0;
116
+ const isLast = ctx.index === ctx.totalScenes - 1;
117
+ const isVideoScene = comp.startsWith("vid_");
118
+ const isImageScene = comp.startsWith("img_");
119
+ const isTextScene = !isVideoScene && !isImageScene;
120
+ // --- Hook scene (first) ---
121
+ if (isFirst) {
122
+ if (isVideoScene && this.genericTypes.has("vid_clean")) {
123
+ return { target: "vid_clean", reason: "hook: clean full-frame video" };
124
+ }
125
+ // Text/image hooks keep their branded design assets
126
+ return { target: null, reason: "hook: keeping branded layout (has design assets)" };
127
+ }
128
+ // --- CTA scene (last) ---
129
+ if (isLast) {
130
+ if (isTextScene) {
131
+ return { target: null, reason: "CTA: keeping branded text layout" };
132
+ }
133
+ if (isVideoScene && this.genericTypes.has("vid_clean")) {
134
+ return { target: "vid_clean", reason: "CTA: clean video outro" };
135
+ }
136
+ }
137
+ // --- Middle video scenes ---
138
+ if (isVideoScene) {
139
+ if (this.genericTypes.has("vid_clean")) {
140
+ return { target: "vid_clean", reason: "content: clean full-frame video" };
141
+ }
142
+ return { target: null, reason: "content: no vid_clean available" };
143
+ }
144
+ // --- Middle image scenes ---
145
+ if (isImageScene) {
146
+ if (this.genericTypes.has("img_slides")) {
147
+ return { target: "img_slides", reason: "content: clean image slideshow" };
148
+ }
149
+ if (this.genericTypes.has("img_single_static")) {
150
+ return { target: "img_single_static", reason: "content: static image" };
151
+ }
152
+ return { target: null, reason: "content: no suitable image generic found" };
153
+ }
154
+ // --- Middle text/graphic scenes ---
155
+ // Keep as-is: swapping would lose content (text scenes have no media assets)
156
+ return { target: null, reason: "text/graphic: keeping branded layout (no media to show if swapped)" };
161
157
  }
162
158
  /**
163
159
  * Returns all discovered design groups (for debugging / logging).
@@ -175,49 +171,91 @@ export class DesignRegistry {
175
171
  try {
176
172
  const templates = await this.apiClient.getPlatformTemplates();
177
173
  const groupMap = new Map();
174
+ const discoveredGenericTypes = new Set();
175
+ let usedPathDetection = false;
178
176
  for (const template of templates) {
179
177
  const dg = template.designGroup;
180
178
  if (!dg || !dg._id)
181
179
  continue;
182
180
  const dgId = String(dg._id);
183
181
  if (groupMap.has(dgId))
184
- continue; // already processed
182
+ continue;
185
183
  const name = String(dg.name || "Unknown");
186
184
  const designs = new Map();
187
- const compositions = [];
188
- // Extract aspect-ratio → designId mappings from designsMetadata
185
+ const allCompositions = [];
186
+ // Extract aspect-ratio → designId mappings
189
187
  const metadata = dg.designsMetadata;
190
188
  if (Array.isArray(metadata)) {
191
189
  for (const entry of metadata) {
192
- if (entry.aspectRatio && entry.designId) {
193
- designs.set(String(entry.aspectRatio), String(entry.designId));
190
+ if (entry.aspectRatio && entry._id) {
191
+ designs.set(String(entry.aspectRatio), String(entry._id));
194
192
  }
195
193
  }
196
194
  }
197
- // Extract composition types from chosenDesign.compositions (branded)
195
+ // Extract compositions and classify generic vs branded
198
196
  const chosenDesign = dg.chosenDesign;
199
197
  if (chosenDesign) {
200
198
  const comps = chosenDesign.compositions;
201
199
  if (Array.isArray(comps)) {
202
200
  for (const comp of comps) {
203
- if (comp.type) {
204
- compositions.push(String(comp.type));
201
+ if (!comp.type)
202
+ continue;
203
+ const compType = String(comp.type);
204
+ // Adaptive detection: check if any layout path contains "generic-designs"
205
+ let isGeneric = false;
206
+ const layouts = comp.layouts;
207
+ if (Array.isArray(layouts)) {
208
+ for (const layout of layouts) {
209
+ const relPath = layout.relativeLottiePath;
210
+ const basePath = layout.baseDesignPath;
211
+ if ((relPath && relPath.includes("generic-designs")) ||
212
+ (basePath && basePath.includes("generic-designs"))) {
213
+ isGeneric = true;
214
+ usedPathDetection = true;
215
+ break;
216
+ }
217
+ }
218
+ }
219
+ // Fallback: if no path info available, check against known list
220
+ if (!isGeneric && !usedPathDetection) {
221
+ isGeneric = FALLBACK_GENERIC_TYPES.has(compType);
222
+ }
223
+ allCompositions.push({ type: compType, isGeneric });
224
+ if (isGeneric) {
225
+ discoveredGenericTypes.add(compType);
205
226
  }
206
227
  }
207
228
  }
208
229
  }
209
- groupMap.set(dgId, { id: dgId, name, designs, compositions });
230
+ groupMap.set(dgId, { id: dgId, name, designs, allCompositions });
210
231
  }
211
232
  this.groups = Array.from(groupMap.values());
212
- log(`DesignRegistry refreshed: ${this.groups.length} design groups`);
233
+ // If path-based detection found nothing but fallback did, use fallback set
234
+ if (discoveredGenericTypes.size === 0 && !usedPathDetection) {
235
+ this.genericTypes = new Set(FALLBACK_GENERIC_TYPES);
236
+ log("DesignRegistry: using fallback generic composition list (no path info in API response)");
237
+ }
238
+ else {
239
+ this.genericTypes = discoveredGenericTypes;
240
+ }
241
+ log(`DesignRegistry refreshed: ${this.groups.length} design groups, ${this.genericTypes.size} generic compositions detected`);
213
242
  for (const g of this.groups) {
214
243
  const ratios = Array.from(g.designs.keys()).join(", ");
215
- log(` - ${g.name} (${g.id}): ratios=[${ratios}], ${g.compositions.length} branded compositions`);
244
+ const branded = g.allCompositions.filter((c) => !c.isGeneric).length;
245
+ const generic = g.allCompositions.filter((c) => c.isGeneric).length;
246
+ log(` - ${g.name} (${g.id}): ratios=[${ratios}], ${branded} branded + ${generic} generic compositions`);
247
+ }
248
+ if (usedPathDetection) {
249
+ log(` Generic types (auto-detected): ${Array.from(this.genericTypes).join(", ")}`);
250
+ }
251
+ // Warn if no 9/16 design is available (common requirement for UGC)
252
+ const has916 = this.groups.some((g) => g.designs.has("9/16"));
253
+ if (!has916) {
254
+ log("DesignRegistry WARNING: no design group found with 9/16 support — UGC tool will use default design");
216
255
  }
217
256
  }
218
257
  catch (err) {
219
258
  logError("DesignRegistry refresh failed", err);
220
- // Keep stale data if we had any
221
259
  }
222
260
  }
223
261
  }
@@ -1 +1 @@
1
- {"version":3,"file":"design-registry.js","sourceRoot":"","sources":["../src/design-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"design-registry.js","sourceRoot":"","sources":["../src/design-registry.ts"],"names":[],"mappings":"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"}
@@ -321,38 +321,68 @@ export function registerProjectTools(server, apiClient, _config, designRegistry)
321
321
  ],
322
322
  };
323
323
  }
324
- // 4. Fetch project and swap ALL scene compositions to generic design types.
325
- // Generic designs have clean layouts (vid_clean, smart_vid, etc.) with
326
- // no design-specific overlays ideal for UGC.
324
+ // 4. Fetch project and perform smart per-scene composition analysis.
325
+ // Uses scene context (position, type, content) to decide whether to
326
+ // swap to a generic composition or keep the branded layout.
327
+ // Key constraint: post-creation swaps don't re-assign media (stock
328
+ // footage/images), so only swap scenes where it adds value.
329
+ const sceneAnalysis = [];
327
330
  try {
328
331
  const project = await apiClient.getProject(projectId);
329
332
  const scenes = project.scenes || [];
330
- const genericComps = designRegistry.getGenericCompositions(targetRatio);
331
333
  let swapCount = 0;
334
+ let keptCount = 0;
332
335
  for (let i = 0; i < scenes.length; i++) {
333
336
  const scene = scenes[i];
334
337
  const currentComp = scene.compositionType || scene.copy?.compositionType;
335
- // Swap if current composition is NOT already a generic type
336
- if (!currentComp || !designRegistry.isGenericComposition(currentComp, targetRatio)) {
337
- const suggested = designRegistry.suggestUgcComposition(scene.name || "", i, scenes.length, targetRatio);
338
+ if (!currentComp) {
339
+ log(` Scene ${i} (${scene.id}): no composition type — skipping`);
340
+ continue;
341
+ }
342
+ // Build scene context for smart mapping
343
+ const ctx = {
344
+ index: i,
345
+ totalScenes: scenes.length,
346
+ name: scene.name || `Scene ${i + 1}`,
347
+ script: scene.copy?.script || "",
348
+ currentComposition: currentComp,
349
+ hasImagePrompt: !!(scene.copy?.imagePrompt),
350
+ isGraphicScene: !!(scene.isGraphicScene),
351
+ };
352
+ const { target, reason } = designRegistry.mapToGenericForUgcSmart(ctx);
353
+ let wasSwapped = false;
354
+ if (target) {
338
355
  try {
339
- await apiClient.updateSceneComposition(projectId, scene.id, suggested);
356
+ await apiClient.updateSceneComposition(projectId, scene.id, target);
357
+ wasSwapped = true;
340
358
  swapCount++;
341
- log(` Scene ${i} (${scene.id}): ${currentComp || "unknown"} → ${suggested}`);
359
+ log(` Scene ${i} (${scene.id}): ${currentComp} → ${target} [${reason}]`);
342
360
  }
343
361
  catch (err) {
344
362
  logError(`Failed to swap composition for scene ${scene.id}`, err);
345
363
  }
346
364
  }
347
365
  else {
348
- log(` Scene ${i} (${scene.id}): already generic (${currentComp})`);
366
+ keptCount++;
367
+ log(` Scene ${i} (${scene.id}): kept ${currentComp} [${reason}]`);
349
368
  }
369
+ sceneAnalysis.push({
370
+ sceneId: scene.id,
371
+ sceneName: ctx.name,
372
+ sceneIndex: i,
373
+ originalComposition: currentComp,
374
+ targetComposition: target,
375
+ reason,
376
+ wasSwapped,
377
+ });
350
378
  }
351
- if (swapCount > 0) {
352
- optimizationNotes.push(`Swapped ${swapCount}/${scenes.length} scene compositions to generic design types`);
353
- }
354
- else {
355
- optimizationNotes.push("All scenes already use generic design compositions");
379
+ if (swapCount > 0 || keptCount > 0) {
380
+ const parts = [];
381
+ if (swapCount > 0)
382
+ parts.push(`swapped ${swapCount} media scenes to generic`);
383
+ if (keptCount > 0)
384
+ parts.push(`kept ${keptCount} scenes as-is`);
385
+ optimizationNotes.push(`Composition optimization: ${parts.join(", ")} (${scenes.length} total)`);
356
386
  }
357
387
  // 5. Set edit aspect ratio to 9/16
358
388
  if (project.edits && project.edits.length > 0) {
@@ -382,8 +412,9 @@ export function registerProjectTools(server, apiClient, _config, designRegistry)
382
412
  projectId,
383
413
  ugcOptimized,
384
414
  optimizationNotes,
415
+ sceneAnalysis: sceneAnalysis.length > 0 ? sceneAnalysis : undefined,
385
416
  message: ugcOptimized
386
- ? "UGC project created and optimized for 9/16. Use get_project to see full details."
417
+ ? "UGC project created and optimized for 9/16. Use get_project to see full details. Use update_scene_composition to adjust individual scenes if needed."
387
418
  : "Project created but optimization was partial. Check notes for details.",
388
419
  }, null, 2),
389
420
  },
@@ -1 +1 @@
1
- {"version":3,"file":"project-tools.js","sourceRoot":"","sources":["../../src/tools/project-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAUxB,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,UAAU,oBAAoB,CAClC,MAAiB,EACjB,SAA0B,EAC1B,OAAwB,EACxB,cAA8B;IAE9B,mEAAmE;IACnE,uBAAuB;IACvB,mEAAmE;IACnE,MAAM,CAAC,IAAI,CACT,sBAAsB,EACtB,uLAAuL,EACvL;QACE,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,CACP,uFAAuF,CACxF;QACH,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC7C,OAAO,CAAC,UAAU,CAAC;aACnB,QAAQ,CACP,sIAAsI,CACvI;QACH,WAAW,EAAE,CAAC;aACX,IAAI,CAAC;YACJ,SAAS;YACT,cAAc;YACd,aAAa;YACb,eAAe;YACf,WAAW;SACZ,CAAC;aACD,OAAO,CAAC,SAAS,CAAC;aAClB,QAAQ,EAAE;aACV,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAC5C,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,EAAE;aACV,QAAQ,CAAC,qCAAqC,CAAC;QAClD,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CACP,gHAAgH,CACjH;QACH,WAAW,EAAE,CAAC;aACX,OAAO,EAAE;aACT,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,EAAE;aACV,QAAQ,CAAC,2EAA2E,CAAC;QACxF,UAAU,EAAE,CAAC;aACV,OAAO,EAAE;aACT,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,EAAE;aACV,QAAQ,CAAC,8DAA8D,CAAC;QAC3E,WAAW,EAAE,CAAC;aACX,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;aAC7B,QAAQ,EAAE;aACV,QAAQ,CACP,2LAA2L,CAC5L;QACH,YAAY,EAAE,CAAC;aACZ,KAAK,CACJ,CAAC,CAAC,IAAI,CAAC;YACL,eAAe;YACf,kBAAkB;YAClB,qBAAqB;YACrB,oBAAoB;SACrB,CAAC,CACH;aACA,QAAQ,EAAE;aACV,QAAQ,CACP,8QAA8Q,CAC/Q;QACH,YAAY,EAAE,CAAC;aACZ,KAAK,CACJ,CAAC,CAAC,IAAI,CAAC;YACL,eAAe;YACf,oBAAoB;YACpB,kBAAkB;SACnB,CAAC,CACH;aACA,QAAQ,EAAE;aACV,QAAQ,CACP,oOAAoO,CACrO;KACJ,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,IAAI,GAAyB;gBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,IAAI,CAAC,SAAS;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACzC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,aAAa,EAAE,IAAI,CAAC,WAAW;gBAC/B,YAAY,EAAE,IAAI,CAAC,UAAU;gBAC7B,8CAA8C;gBAC9C,oBAAoB,EAAG,IAAI,CAAC,YAAkC,IAAI;oBAChE,eAAe;iBAChB;gBACD,oBAAoB,EAAG,IAAI,CAAC,YAAkC,IAAI;oBAChE,eAAe;iBAChB;aACF,CAAC;YAEF,MAAM,KAAK,GAAa,EAAE,CAAC;YAE3B,gEAAgE;YAChE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,WAAW,GAAG,cAAc,CAAC,wBAAwB,CACzD,IAAI,CAAC,WAAW,CACjB,CAAC;gBACF,IAAI,WAAW,EAAE,CAAC;oBAChB,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;oBAC/C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;oBACrC,KAAK,CAAC,IAAI,CACR,uBAAuB,IAAI,CAAC,WAAW,WAAW,WAAW,CAAC,aAAa,YAAY,WAAW,CAAC,QAAQ,EAAE,CAC9G,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,IAAI,CACR,6BAA6B,IAAI,CAAC,WAAW,2FAA2F,CACzI,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;4BACE,SAAS,EAAE,MAAM,CAAC,SAAS;4BAC3B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;4BACrC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;4BACvC,OAAO,EACL,8EAA8E;gCAC9E,CAAC,IAAI,CAAC,WAAW;oCACf,CAAC,CAAC,wBAAwB,IAAI,CAAC,WAAW,oDAAoD,IAAI,CAAC,WAAW,iDAAiD;oCAC/J,CAAC,CAAC,EAAE,CAAC;yBACV,EACD,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,mEAAmE;IACnE,cAAc;IACd,mEAAmE;IACnE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,4GAA4G,EAC5G;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;KAC7D,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC3D,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;iBAClE;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,mEAAmE;IACnE,8BAA8B;IAC9B,mEAAmE;IACnE,MAAM,CAAC,IAAI,CACT,6BAA6B,EAC7B,kOAAkO,EAClO;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;KAC1D,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjE,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;iBACjE;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,mEAAmE;IACnE,iBAAiB;IACjB,mEAAmE;IACnE,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,yKAAyK,EACzK;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;QAC1D,GAAG,EAAE,CAAC;aACH,MAAM,EAAE;aACR,QAAQ,CACP,+DAA+D,CAChE;QACH,KAAK,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAC1D,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,aAAa,CAC1C,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,KAAK,CACX,CAAC;YACF,OAAO;gBACL,OAAO,EAAE;oBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;iBACjE;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,mEAAmE;IACnE,iBAAiB;IACjB,mEAAmE;IACnE,MAAM,CAAC,IAAI,CACT,gBAAgB,EAChB,iEAAiE,EACjE;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0BAA0B,CAAC;KAC3D,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,OAAO,EAAE,WAAW,IAAI,CAAC,SAAS,wBAAwB;yBAC3D,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;IAEF,mEAAmE;IACnE,6CAA6C;IAC7C,mEAAmE;IACnE,MAAM,CAAC,IAAI,CACT,0BAA0B,EAC1B,wSAAwS,EACxS;QACE,MAAM,EAAE,CAAC;aACN,MAAM,EAAE;aACR,QAAQ,CACP,wFAAwF,CACzF;QACH,SAAS,EAAE,CAAC;aACT,IAAI,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC7C,OAAO,CAAC,UAAU,CAAC;aACnB,QAAQ,CAAC,eAAe,CAAC;QAC5B,WAAW,EAAE,CAAC;aACX,IAAI,CAAC;YACJ,SAAS;YACT,cAAc;YACd,aAAa;YACb,eAAe;YACf,WAAW;SACZ,CAAC;aACD,OAAO,CAAC,SAAS,CAAC;aAClB,QAAQ,EAAE;aACV,QAAQ,CAAC,kCAAkC,CAAC;QAC/C,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;aAC5C,OAAO,CAAC,IAAI,CAAC;aACb,QAAQ,EAAE;aACV,QAAQ,CAAC,qCAAqC,CAAC;QAClD,UAAU,EAAE,CAAC;aACV,MAAM,EAAE;aACR,QAAQ,EAAE;aACV,QAAQ,CAAC,sBAAsB,CAAC;QACnC,YAAY,EAAE,CAAC;aACZ,KAAK,CACJ,CAAC,CAAC,IAAI,CAAC;YACL,eAAe;YACf,kBAAkB;YAClB,qBAAqB;YACrB,oBAAoB;SACrB,CAAC,CACH;aACA,QAAQ,EAAE;aACV,QAAQ,CACP,+EAA+E,CAChF;QACH,YAAY,EAAE,CAAC;aACZ,KAAK,CACJ,CAAC,CAAC,IAAI,CAAC;YACL,eAAe;YACf,oBAAoB;YACpB,kBAAkB;SACnB,CAAC,CACH;aACA,QAAQ,EAAE;aACV,QAAQ,CACP,+EAA+E,CAChF;KACJ,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,CAAC;YAC3B,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,MAAM,iBAAiB,GAAa,EAAE,CAAC;YAEvC,+CAA+C;YAC/C,iEAAiE;YACjE,kEAAkE;YAClE,MAAM,WAAW,GAAG,cAAc,CAAC,wBAAwB,CAAC,WAAW,CAAC,CAAC;YAEzE,MAAM,IAAI,GAAyB;gBACjC,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,aAAa,EAAE,IAAI,CAAC,SAAS;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACzC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,qEAAqE;gBACrE,aAAa,EAAE,KAAK;gBACpB,YAAY,EAAE,KAAK;gBACnB,8CAA8C;gBAC9C,oBAAoB,EAAG,IAAI,CAAC,YAAkC,IAAI;oBAChE,eAAe;iBAChB;gBACD,oBAAoB,EAAG,IAAI,CAAC,YAAkC,IAAI;oBAChE,eAAe;iBAChB;aACF,CAAC;YAEF,IAAI,WAAW,EAAE,CAAC;gBAChB,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,aAAa,CAAC;gBAC/C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;gBACrC,iBAAiB,CAAC,IAAI,CACpB,4BAA4B,WAAW,CAAC,aAAa,YAAY,WAAW,CAAC,QAAQ,EAAE,CACxF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,iBAAiB,CAAC,IAAI,CACpB,+DAA+D,CAChE,CAAC;YACJ,CAAC;YAED,wBAAwB;YACxB,MAAM,YAAY,GAAG,MAAM,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YACzD,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC;YACzC,GAAG,CAAC,wBAAwB,SAAS,EAAE,CAAC,CAAC;YAEzC,iDAAiD;YACjD,IAAI,CAAC;gBACH,MAAM,aAAa,CACjB,GAAG,EAAE,CAAC,SAAS,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAC5C,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,MAAM,EACpC,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CACzC,CAAC;gBACF,iBAAiB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC/C,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB,CAAC,IAAI,CACpB,8DAA8D,CAC/D,CAAC;gBACF,OAAO;oBACL,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,MAAe;4BACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;gCACE,SAAS;gCACT,YAAY,EAAE,KAAK;gCACnB,iBAAiB;gCACjB,OAAO,EACL,6HAA6H;6BAChI,EACD,IAAI,EACJ,CAAC,CACF;yBACF;qBACF;iBACF,CAAC;YACJ,CAAC;YAED,4EAA4E;YAC5E,0EAA0E;YAC1E,kDAAkD;YAClD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBACtD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;gBACpC,MAAM,YAAY,GAAG,cAAc,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;gBACxE,IAAI,SAAS,GAAG,CAAC,CAAC;gBAElB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACvC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;oBACxB,MAAM,WAAW,GAAG,KAAK,CAAC,eAAe,IAAI,KAAK,CAAC,IAAI,EAAE,eAAe,CAAC;oBAEzE,4DAA4D;oBAC5D,IAAI,CAAC,WAAW,IAAI,CAAC,cAAc,CAAC,oBAAoB,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,CAAC;wBACnF,MAAM,SAAS,GAAG,cAAc,CAAC,qBAAqB,CACpD,KAAK,CAAC,IAAI,IAAI,EAAE,EAChB,CAAC,EACD,MAAM,CAAC,MAAM,EACb,WAAW,CACZ,CAAC;wBACF,IAAI,CAAC;4BACH,MAAM,SAAS,CAAC,sBAAsB,CACpC,SAAS,EACT,KAAK,CAAC,EAAE,EACR,SAAS,CACV,CAAC;4BACF,SAAS,EAAE,CAAC;4BACZ,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,MAAM,WAAW,IAAI,SAAS,MAAM,SAAS,EAAE,CAAC,CAAC;wBAChF,CAAC;wBAAC,OAAO,GAAG,EAAE,CAAC;4BACb,QAAQ,CACN,wCAAwC,KAAK,CAAC,EAAE,EAAE,EAClD,GAAG,CACJ,CAAC;wBACJ,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,GAAG,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,uBAAuB,WAAW,GAAG,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;gBAED,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,iBAAiB,CAAC,IAAI,CACpB,WAAW,SAAS,IAAI,MAAM,CAAC,MAAM,6CAA6C,CACnF,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,iBAAiB,CAAC,IAAI,CACpB,oDAAoD,CACrD,CAAC;gBACJ,CAAC;gBAED,mCAAmC;gBACnC,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;oBACnC,IAAI,CAAC;wBACH,MAAM,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE;4BACpD,EAAE,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE;yBAC3C,CAAC,CAAC;wBACH,iBAAiB,CAAC,IAAI,CAAC,4BAA4B,WAAW,EAAE,CAAC,CAAC;oBACpE,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,QAAQ,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;wBACjD,iBAAiB,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;oBAC5D,CAAC;gBACH,CAAC;gBAED,YAAY,GAAG,IAAI,CAAC;YACtB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,QAAQ,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;gBAC/C,iBAAiB,CAAC,IAAI,CACpB,oFAAoF,CACrF,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAe;wBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;4BACE,SAAS;4BACT,YAAY;4BACZ,iBAAiB;4BACjB,OAAO,EAAE,YAAY;gCACnB,CAAC,CAAC,kFAAkF;gCACpF,CAAC,CAAC,wEAAwE;yBAC7E,EACD,IAAI,EACJ,CAAC,CACF;qBACF;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"project-tools.js","sourceRoot":"","sources":["../../src/tools/project-tools.ts"],"names":[],"mappings":"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"}
package/build/types.d.ts CHANGED
@@ -173,3 +173,23 @@ export interface PromptSuggestion {
173
173
  };
174
174
  suggestions: string[];
175
175
  }
176
+ /** Minimal scene info for UGC composition mapping decisions. */
177
+ export interface UgcSceneContext {
178
+ index: number;
179
+ totalScenes: number;
180
+ name: string;
181
+ script: string;
182
+ currentComposition: string;
183
+ hasImagePrompt: boolean;
184
+ isGraphicScene: boolean;
185
+ }
186
+ /** Per-scene result of UGC composition analysis. */
187
+ export interface UgcSceneAnalysis {
188
+ sceneId: string;
189
+ sceneName: string;
190
+ sceneIndex: number;
191
+ originalComposition: string;
192
+ targetComposition: string | null;
193
+ reason: string;
194
+ wasSwapped: boolean;
195
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shuffll/mcp-server",
3
- "version": "1.3.0",
3
+ "version": "1.5.0",
4
4
  "description": "MCP server for Shuffll video creation API",
5
5
  "type": "module",
6
6
  "bin": {