@cliangdev/conductor 0.22.0 → 0.24.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/assets/claude/skills/conductor-creative/SKILL.md +57 -0
- package/assets/cli-manifest.json +6 -1
- package/dist/commands/creative.d.ts.map +1 -1
- package/dist/commands/creative.js +6 -1
- package/dist/commands/creative.js.map +1 -1
- package/dist/creative/assertions.js +4 -4
- package/dist/creative/frame.css +21 -0
- package/dist/creative/frame.js +39 -0
- package/dist/creative/job/render.mjs +261 -4
- package/dist/creative/job/transport.mjs +47 -13
- package/dist/creative/layouts/bleed/layout.css +6 -2
- package/dist/creative/layouts/card/layout.css +3 -0
- package/dist/creative/layouts/split/layout.css +3 -0
- package/dist/creative/layouts/stacked/layout.css +3 -0
- package/dist/creative/motion.js +347 -0
- package/dist/creative/placements.js +28 -0
- package/dist/creative/placements.json +36 -0
- package/dist/creative/render.js +29 -0
- package/dist/creative/sheet.html +4 -0
- package/dist/creative/sheet.js +39 -2
- package/dist/creative/styles.css +36 -2
- package/dist/lib/creative-render.d.ts +13 -3
- package/dist/lib/creative-render.d.ts.map +1 -1
- package/dist/lib/creative-render.js +47 -5
- package/dist/lib/creative-render.js.map +1 -1
- package/dist/lib/media-probe.d.ts +55 -0
- package/dist/lib/media-probe.d.ts.map +1 -0
- package/dist/lib/media-probe.js +221 -0
- package/dist/lib/media-probe.js.map +1 -0
- package/dist/lib/poster-sheet.d.ts +10 -0
- package/dist/lib/poster-sheet.d.ts.map +1 -0
- package/dist/lib/poster-sheet.js +57 -0
- package/dist/lib/poster-sheet.js.map +1 -0
- package/dist/mcp/index.d.ts +10587 -0
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +93 -10
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/tools/creatives.d.ts +29 -2
- package/dist/mcp/tools/creatives.d.ts.map +1 -1
- package/dist/mcp/tools/creatives.js +282 -35
- package/dist/mcp/tools/creatives.js.map +1 -1
- package/package.json +3 -1
- package/scripts/build-creative.mjs +7 -2
|
@@ -1,7 +1,10 @@
|
|
|
1
|
-
import { readFile } from 'node:fs/promises';
|
|
2
|
-
import { basename } from 'node:path';
|
|
1
|
+
import { readFile, mkdtemp, writeFile, rm } from 'node:fs/promises';
|
|
2
|
+
import { basename, extname, join } from 'node:path';
|
|
3
|
+
import { tmpdir } from 'node:os';
|
|
3
4
|
import { apiGet, apiPost, apiPatch, putBytes, ApiError } from '../api.js';
|
|
4
5
|
import { readImageDimensions } from '../../lib/image-dimensions.js';
|
|
6
|
+
import { probeMedia, extractPoster } from '../../lib/media-probe.js';
|
|
7
|
+
import { composePosterSheet } from '../../lib/poster-sheet.js';
|
|
5
8
|
import { renderCreative as runLocalRender } from '../../lib/creative-render.js';
|
|
6
9
|
/**
|
|
7
10
|
* Conductor Creatives: a Brand Kit (tokens, copy rules, approved lines) governs one or more
|
|
@@ -148,10 +151,11 @@ export async function updateCreative(params, config) {
|
|
|
148
151
|
const { creativeId, ...patch } = params;
|
|
149
152
|
return withCreativeErrors(() => apiPatch(`${creativesBase(config)}/${creativeId}`, patch, config));
|
|
150
153
|
}
|
|
151
|
-
// ---
|
|
152
|
-
|
|
154
|
+
// --- Media (photo library: photos, video, audio) -----------------------------
|
|
155
|
+
const VIDEO_LENGTH_WARNING_SECONDS = 180;
|
|
156
|
+
async function readMediaSource(params) {
|
|
153
157
|
if (params.filePath) {
|
|
154
|
-
return { bytes: new Uint8Array(await readFile(params.filePath)), filename: basename(params.filePath) };
|
|
158
|
+
return { bytes: new Uint8Array(await readFile(params.filePath)), filename: basename(params.filePath), filePath: params.filePath };
|
|
155
159
|
}
|
|
156
160
|
const raw = params.url;
|
|
157
161
|
let parsed;
|
|
@@ -169,41 +173,146 @@ async function readPhotoSource(params) {
|
|
|
169
173
|
throw new Error(`Fetching ${raw} failed: HTTP ${response.status}`);
|
|
170
174
|
}
|
|
171
175
|
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
172
|
-
return { bytes, filename: basename(parsed.pathname) || '
|
|
176
|
+
return { bytes, filename: basename(parsed.pathname) || 'media' };
|
|
173
177
|
}
|
|
174
|
-
|
|
178
|
+
function stripExtension(filename) {
|
|
179
|
+
const ext = extname(filename);
|
|
180
|
+
return ext ? filename.slice(0, -ext.length) : filename;
|
|
181
|
+
}
|
|
182
|
+
/** The fields worth an agent's context for one uploaded media item — trims whatever else the
|
|
183
|
+
* backend's photo library response carries (checked/blocked review metadata, timestamps, etc.). */
|
|
184
|
+
const MEDIA_RESULT_FIELDS = [
|
|
185
|
+
'id', 'label', 'mediaKind', 'contentType', 'width', 'height', 'durationSeconds', 'hasAudio',
|
|
186
|
+
'posterUrl', 'url', 'sizeBytes', 'source', 'licence', 'aiGenerated', 'uploadStatus', 'checked', 'blocked',
|
|
187
|
+
];
|
|
188
|
+
function trimMedia(media) {
|
|
189
|
+
const out = {};
|
|
190
|
+
for (const key of MEDIA_RESULT_FIELDS) {
|
|
191
|
+
if (key in media)
|
|
192
|
+
out[key] = media[key];
|
|
193
|
+
}
|
|
194
|
+
return out;
|
|
195
|
+
}
|
|
196
|
+
async function uploadPoster(mediaId, localVideoPath, config, warnings) {
|
|
197
|
+
const posterPath = join(tmpdir(), `conductor-poster-${mediaId}.jpg`);
|
|
198
|
+
try {
|
|
199
|
+
await extractPoster(localVideoPath, posterPath, 1);
|
|
200
|
+
const posterBytes = await readFile(posterPath);
|
|
201
|
+
const posterMint = await apiPost(`${V2_PROJECT(config)}/marketing/photos/${mediaId}/poster`, {}, config);
|
|
202
|
+
await putBytes(posterMint.uploadUrl, 'image/jpeg', posterBytes);
|
|
203
|
+
await apiPost(`${V2_PROJECT(config)}/marketing/photos/${mediaId}/poster/confirm`, { gcsPath: posterMint.gcsPath }, config);
|
|
204
|
+
}
|
|
205
|
+
catch (err) {
|
|
206
|
+
warnings.push(`Could not extract or upload a poster frame: ${err instanceof Error ? err.message : String(err)}`);
|
|
207
|
+
}
|
|
208
|
+
finally {
|
|
209
|
+
await rm(posterPath, { force: true }).catch(() => { });
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Uploads a photo, video or audio file into the project's media library from a local path or a
|
|
214
|
+
* public URL, detecting its kind, dimensions/duration/audio automatically, and — for a video —
|
|
215
|
+
* extracting and uploading a poster frame. Shared by `upload_creative_media` and the deprecated
|
|
216
|
+
* `upload_creative_photo` alias, so the two never drift.
|
|
217
|
+
*/
|
|
218
|
+
export async function uploadCreativeMedia(params, config) {
|
|
175
219
|
if (!params.filePath && !params.url) {
|
|
176
220
|
throw new Error('Pass filePath (a file on this machine) or url (a public http(s) URL).');
|
|
177
221
|
}
|
|
178
|
-
const
|
|
179
|
-
const
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
222
|
+
const source = await readMediaSource(params);
|
|
223
|
+
const label = params.label ?? stripExtension(source.filename);
|
|
224
|
+
const warnings = [];
|
|
225
|
+
const imageInfo = readImageDimensions(source.bytes);
|
|
226
|
+
if (imageInfo) {
|
|
227
|
+
const mint = await apiPost(`${V2_PROJECT(config)}/marketing/photos`, {
|
|
228
|
+
label,
|
|
229
|
+
contentType: imageInfo.contentType,
|
|
230
|
+
sizeBytes: source.bytes.byteLength,
|
|
231
|
+
width: imageInfo.width,
|
|
232
|
+
height: imageInfo.height,
|
|
233
|
+
source: params.source ?? null,
|
|
234
|
+
licence: params.licence ?? null,
|
|
235
|
+
aiGenerated: !!params.aiGenerated,
|
|
236
|
+
}, config);
|
|
237
|
+
if (!mint.uploadUrl) {
|
|
238
|
+
throw new Error('The mint response carried no uploadUrl — cannot upload bytes.');
|
|
239
|
+
}
|
|
240
|
+
await putBytes(mint.uploadUrl, imageInfo.contentType, source.bytes);
|
|
241
|
+
const confirmed = await apiPost(`${V2_PROJECT(config)}/marketing/photos/${mint.id}/confirm`, { sizeBytes: source.bytes.byteLength }, config);
|
|
242
|
+
return { media: trimMedia(confirmed), warnings };
|
|
243
|
+
}
|
|
244
|
+
// Not an image — probe it as video/audio, which needs a real file on disk.
|
|
245
|
+
let probePath = source.filePath;
|
|
246
|
+
let tempDir;
|
|
247
|
+
if (!probePath) {
|
|
248
|
+
tempDir = await mkdtemp(join(tmpdir(), 'conductor-media-'));
|
|
249
|
+
probePath = join(tempDir, source.filename || 'media');
|
|
250
|
+
await writeFile(probePath, source.bytes);
|
|
251
|
+
}
|
|
252
|
+
let probe;
|
|
253
|
+
try {
|
|
254
|
+
probe = await probeMedia(probePath);
|
|
255
|
+
}
|
|
256
|
+
catch (err) {
|
|
257
|
+
if (tempDir)
|
|
258
|
+
await rm(tempDir, { recursive: true, force: true }).catch(() => { });
|
|
259
|
+
throw new Error(`Could not read "${source.filename}" as a photo, video or audio file: ${err instanceof Error ? err.message : String(err)}`);
|
|
260
|
+
}
|
|
261
|
+
if (probe.kind !== 'VIDEO' && probe.kind !== 'AUDIO') {
|
|
262
|
+
if (tempDir)
|
|
263
|
+
await rm(tempDir, { recursive: true, force: true }).catch(() => { });
|
|
264
|
+
throw new Error(`"${source.filename}" is not a recognizable photo, video or audio file.`);
|
|
265
|
+
}
|
|
266
|
+
if (probe.kind === 'VIDEO' && probe.durationSeconds && probe.durationSeconds > VIDEO_LENGTH_WARNING_SECONDS) {
|
|
267
|
+
warnings.push(`This video is ${Math.round(probe.durationSeconds)}s long — longer than most platforms take.`);
|
|
268
|
+
}
|
|
269
|
+
try {
|
|
270
|
+
const mint = await apiPost(`${V2_PROJECT(config)}/marketing/photos`, {
|
|
271
|
+
mediaKind: probe.kind,
|
|
272
|
+
label,
|
|
273
|
+
contentType: probe.contentType,
|
|
274
|
+
sizeBytes: source.bytes.byteLength,
|
|
275
|
+
width: probe.width ?? null,
|
|
276
|
+
height: probe.height ?? null,
|
|
277
|
+
durationSeconds: probe.durationSeconds ?? null,
|
|
278
|
+
hasAudio: probe.kind === 'VIDEO' ? !!probe.hasAudio : undefined,
|
|
279
|
+
source: params.source ?? null,
|
|
280
|
+
licence: params.licence ?? null,
|
|
281
|
+
aiGenerated: !!params.aiGenerated,
|
|
282
|
+
}, config);
|
|
283
|
+
if (!mint.uploadUrl) {
|
|
284
|
+
throw new Error('The mint response carried no uploadUrl — cannot upload bytes.');
|
|
285
|
+
}
|
|
286
|
+
await putBytes(mint.uploadUrl, probe.contentType, source.bytes);
|
|
287
|
+
const confirmed = await apiPost(`${V2_PROJECT(config)}/marketing/photos/${mint.id}/confirm`, { sizeBytes: source.bytes.byteLength }, config);
|
|
288
|
+
let finalMedia = confirmed;
|
|
289
|
+
if (probe.kind === 'VIDEO') {
|
|
290
|
+
await uploadPoster(mint.id, probePath, config, warnings);
|
|
291
|
+
finalMedia = await apiGet(`${V2_PROJECT(config)}/marketing/photos/${mint.id}`, config).catch(() => confirmed);
|
|
292
|
+
}
|
|
293
|
+
return { media: trimMedia(finalMedia), warnings };
|
|
294
|
+
}
|
|
295
|
+
finally {
|
|
296
|
+
if (tempDir)
|
|
297
|
+
await rm(tempDir, { recursive: true, force: true }).catch(() => { });
|
|
298
|
+
}
|
|
198
299
|
}
|
|
300
|
+
/** Deprecated alias for {@link uploadCreativeMedia}, kept so existing callers naming the old tool
|
|
301
|
+
* still work — same implementation, same behavior, including for photos. */
|
|
302
|
+
export const uploadCreativePhoto = uploadCreativeMedia;
|
|
199
303
|
export async function renderCreativeTool(params, config) {
|
|
200
|
-
|
|
304
|
+
// A MOTION render can run for a while (roughly 20s per placement for an 8s video, streamed one
|
|
305
|
+
// ffmpeg progress line every ~25% per placement) — this tool call is still synchronous, but the
|
|
306
|
+
// collected lines are returned so the caller sees what happened rather than just a final result.
|
|
307
|
+
const progress = [];
|
|
308
|
+
const result = await runLocalRender({ creativeId: params.creativeId, previewOnly: !!params.previewOnly, renderer: params.renderer ?? 'mcp', workflowRunId: params.workflowRunId }, config, (...args) => progress.push(args.map((a) => (typeof a === 'string' ? a : String(a))).join(' ')));
|
|
201
309
|
return {
|
|
202
310
|
renderId: result.renderId,
|
|
203
311
|
state: result.state,
|
|
204
312
|
ok: result.ok,
|
|
205
313
|
error: result.error,
|
|
206
314
|
frames: result.frames,
|
|
315
|
+
...(progress.length ? { log: progress.join('\n') } : {}),
|
|
207
316
|
nextStep: result.ok
|
|
208
317
|
? 'Call preview_creative to look at the render, or get_creative for the stored frame list.'
|
|
209
318
|
: 'Fix what `error` names and call render_creative again.',
|
|
@@ -224,51 +333,189 @@ function findCurrentSheetFrame(renders, version) {
|
|
|
224
333
|
}
|
|
225
334
|
return undefined;
|
|
226
335
|
}
|
|
336
|
+
// The latest SUCCEEDED, non-preview render (of the given version, when given) whose frames are
|
|
337
|
+
// videos (MOTION's MP4 placements, not the previewOnly 'sheet' contact sheet).
|
|
338
|
+
function findLatestMotionVideoRender(renders, version) {
|
|
339
|
+
for (const render of renders) {
|
|
340
|
+
if (render.state !== 'SUCCEEDED' || render.previewOnly)
|
|
341
|
+
continue;
|
|
342
|
+
if (version !== undefined && render.creativeVersion !== version)
|
|
343
|
+
continue;
|
|
344
|
+
const frames = render.frames ?? [];
|
|
345
|
+
if (frames.some((f) => f.durationSeconds != null || f.contentType === 'video/mp4'))
|
|
346
|
+
return render;
|
|
347
|
+
}
|
|
348
|
+
return undefined;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* The text note shown alongside a MOTION creative's key-moments sheet: its animation duration, and
|
|
352
|
+
* — when a full (non-preview) render of the SAME version already exists — the rendered MP4 URL per
|
|
353
|
+
* placement, so a caller doesn't have to make a second call just to find them.
|
|
354
|
+
*/
|
|
355
|
+
function motionPreviewNote(motion, renders, version) {
|
|
356
|
+
const durationSec = motion?.durationSec ?? 8;
|
|
357
|
+
let note = `${durationSec}s animation — this image shows three key moments across the timeline, not the finished video.`;
|
|
358
|
+
const videoRender = findLatestMotionVideoRender(renders, version);
|
|
359
|
+
if (videoRender) {
|
|
360
|
+
const lines = (videoRender.frames ?? [])
|
|
361
|
+
.filter((f) => f.url)
|
|
362
|
+
.map((f) => `${f.placementKey}: ${f.url} (${f.durationSeconds ?? durationSec}s${f.hasAudio ? ', with audio' : ''})`);
|
|
363
|
+
if (lines.length) {
|
|
364
|
+
note += ` The current version already has a rendered video:\n${lines.join('\n')}`;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
return note;
|
|
368
|
+
}
|
|
369
|
+
// The latest SUCCEEDED render (of the creative's current version) that actually has frames — CLIP has
|
|
370
|
+
// no dedicated 'sheet' frame the way a STILL previewOnly render does, so any frame set will do.
|
|
371
|
+
function findLatestRenderWithFrames(renders, version) {
|
|
372
|
+
for (const render of renders) {
|
|
373
|
+
if (render.state !== 'SUCCEEDED')
|
|
374
|
+
continue;
|
|
375
|
+
if (version !== undefined && render.creativeVersion !== version)
|
|
376
|
+
continue;
|
|
377
|
+
if (render.frames && render.frames.length)
|
|
378
|
+
return render;
|
|
379
|
+
}
|
|
380
|
+
return undefined;
|
|
381
|
+
}
|
|
382
|
+
/**
|
|
383
|
+
* CLIP preview: there is no server-rendered contact sheet (previewOnly renders 422 for CLIP), so this
|
|
384
|
+
* downloads each placement frame's poster JPEG and composes them into one small sheet locally with
|
|
385
|
+
* ffmpeg (see poster-sheet.ts), falling back to just the first poster on its own if composition fails
|
|
386
|
+
* — showing one frame beats showing nothing. Frame count is placement count, so it's always at least 1.
|
|
387
|
+
*/
|
|
388
|
+
async function previewClip(creativeId, version, renders, config) {
|
|
389
|
+
let render = findLatestRenderWithFrames(renders, version);
|
|
390
|
+
if (!render) {
|
|
391
|
+
// previewOnly renders are refused for CLIP — the only way to get frames is a real render.
|
|
392
|
+
const rendered = await runLocalRender({ creativeId, previewOnly: false, renderer: 'mcp' }, config);
|
|
393
|
+
if (!rendered.ok || !rendered.frames.length) {
|
|
394
|
+
return {
|
|
395
|
+
renderId: rendered.renderId,
|
|
396
|
+
state: rendered.state,
|
|
397
|
+
note: `Rendering failed${rendered.error ? `: ${rendered.error}` : '.'} There is nothing to show.`,
|
|
398
|
+
};
|
|
399
|
+
}
|
|
400
|
+
render = { id: rendered.renderId, state: rendered.state ?? 'SUCCEEDED', frames: rendered.frames };
|
|
401
|
+
}
|
|
402
|
+
const frames = (render.frames ?? []).filter((f) => f.posterUrl);
|
|
403
|
+
if (!frames.length) {
|
|
404
|
+
return { renderId: render.id, state: render.state, note: 'The render produced no poster frame to preview.' };
|
|
405
|
+
}
|
|
406
|
+
const summary = frames
|
|
407
|
+
.map((f) => {
|
|
408
|
+
const size = f.width && f.height ? `${f.width}x${f.height}` : '';
|
|
409
|
+
const duration = f.durationSeconds != null ? `${f.durationSeconds}s` : '';
|
|
410
|
+
return `${f.placementKey}: ${[size, duration].filter(Boolean).join(', ') || 'unknown'}`;
|
|
411
|
+
})
|
|
412
|
+
.join('\n');
|
|
413
|
+
const dir = await mkdtemp(join(tmpdir(), 'conductor-preview-'));
|
|
414
|
+
try {
|
|
415
|
+
const posterPaths = [];
|
|
416
|
+
let firstPoster;
|
|
417
|
+
for (const frame of frames) {
|
|
418
|
+
const response = await fetch(frame.posterUrl);
|
|
419
|
+
if (!response.ok)
|
|
420
|
+
continue;
|
|
421
|
+
const bytes = Buffer.from(await response.arrayBuffer());
|
|
422
|
+
if (!firstPoster)
|
|
423
|
+
firstPoster = bytes;
|
|
424
|
+
const filePath = join(dir, `${frame.placementKey}.jpg`);
|
|
425
|
+
await writeFile(filePath, bytes);
|
|
426
|
+
posterPaths.push(filePath);
|
|
427
|
+
}
|
|
428
|
+
if (!posterPaths.length || !firstPoster) {
|
|
429
|
+
return { renderId: render.id, state: render.state, note: 'Could not download any poster frame to preview.' };
|
|
430
|
+
}
|
|
431
|
+
try {
|
|
432
|
+
const sheet = await composePosterSheet(posterPaths);
|
|
433
|
+
return { renderId: render.id, state: render.state, image: { data: sheet, mimeType: 'image/jpeg' }, note: summary };
|
|
434
|
+
}
|
|
435
|
+
catch {
|
|
436
|
+
return {
|
|
437
|
+
renderId: render.id,
|
|
438
|
+
state: render.state,
|
|
439
|
+
image: { data: firstPoster, mimeType: 'image/jpeg' },
|
|
440
|
+
note: `${summary}\n(Could not compose a combined sheet — showing the first placement's poster only.)`,
|
|
441
|
+
};
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
finally {
|
|
445
|
+
await rm(dir, { recursive: true, force: true }).catch(() => { });
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
/** Joins a MOTION note onto whatever note a fallback path already produced (a too-large image, a
|
|
449
|
+
* download failure, ...) rather than replacing it — the caller still needs both pieces of context. */
|
|
450
|
+
function withMotionNote(note, motionNote) {
|
|
451
|
+
if (!motionNote)
|
|
452
|
+
return note;
|
|
453
|
+
return note ? `${motionNote}\n\n${note}` : motionNote;
|
|
454
|
+
}
|
|
227
455
|
export async function previewCreative(params, config) {
|
|
228
456
|
const [creative, renders] = await Promise.all([
|
|
229
457
|
apiGet(`${creativesBase(config)}/${params.creativeId}`, config),
|
|
230
458
|
apiGet(`${creativesBase(config)}/${params.creativeId}/renders`, config),
|
|
231
459
|
]);
|
|
460
|
+
if (creative?.kind === 'CLIP') {
|
|
461
|
+
return previewClip(params.creativeId, creative?.version, renders, config);
|
|
462
|
+
}
|
|
463
|
+
// For MOTION this note (duration, and any already-rendered MP4 URLs for the current version) is
|
|
464
|
+
// worth attaching to whichever outcome below actually returns — success or a fallback message.
|
|
465
|
+
const motionNote = creative?.kind === 'MOTION' ? motionPreviewNote(creative.motion, renders, creative.version) : undefined;
|
|
232
466
|
let found = findCurrentSheetFrame(renders, creative?.version);
|
|
233
467
|
if (!found) {
|
|
468
|
+
// MOTION's previewOnly render produces the same kind of 'sheet' frame as STILL's — a contact
|
|
469
|
+
// sheet, just of `motionKeyTimes()` moments instead of one composition — so this call needs no
|
|
470
|
+
// MOTION-specific branch.
|
|
234
471
|
const rendered = await runLocalRender({ creativeId: params.creativeId, previewOnly: true, renderer: 'mcp' }, config);
|
|
235
472
|
if (!rendered.ok || !rendered.renderId) {
|
|
236
473
|
return {
|
|
237
474
|
renderId: rendered.renderId,
|
|
238
475
|
state: rendered.state,
|
|
239
|
-
note: `Rendering a preview failed${rendered.error ? `: ${rendered.error}` : '.'} There is nothing to show.`,
|
|
476
|
+
note: withMotionNote(`Rendering a preview failed${rendered.error ? `: ${rendered.error}` : '.'} There is nothing to show.`, motionNote),
|
|
240
477
|
};
|
|
241
478
|
}
|
|
242
479
|
const sheetFrame = rendered.frames.find((f) => f.placementKey === 'sheet');
|
|
243
480
|
if (!sheetFrame) {
|
|
244
|
-
return { renderId: rendered.renderId, state: rendered.state, note: 'The preview render produced no contact sheet frame.' };
|
|
481
|
+
return { renderId: rendered.renderId, state: rendered.state, note: withMotionNote('The preview render produced no contact sheet frame.', motionNote) };
|
|
245
482
|
}
|
|
246
483
|
found = { render: { id: rendered.renderId, state: rendered.state ?? 'SUCCEEDED' }, frame: sheetFrame };
|
|
247
484
|
}
|
|
248
485
|
const { render, frame } = found;
|
|
249
486
|
if (!frame.url) {
|
|
250
|
-
return { renderId: render.id, state: render.state, note: 'The contact sheet frame has no download URL yet.' };
|
|
487
|
+
return { renderId: render.id, state: render.state, note: withMotionNote('The contact sheet frame has no download URL yet.', motionNote) };
|
|
251
488
|
}
|
|
252
489
|
if ((frame.sizeBytes ?? 0) > MAX_INLINE_IMAGE_BYTES) {
|
|
253
490
|
return {
|
|
254
491
|
renderId: render.id,
|
|
255
492
|
state: render.state,
|
|
256
493
|
url: frame.url,
|
|
257
|
-
note: `The rendered image is ${Math.round((frame.sizeBytes ?? 0) / 1024)} KB, larger than this tool can inline (~1 MB) — open the URL directly instead.`,
|
|
494
|
+
note: withMotionNote(`The rendered image is ${Math.round((frame.sizeBytes ?? 0) / 1024)} KB, larger than this tool can inline (~1 MB) — open the URL directly instead.`, motionNote),
|
|
258
495
|
};
|
|
259
496
|
}
|
|
260
497
|
const response = await fetch(frame.url);
|
|
261
498
|
if (!response.ok) {
|
|
262
|
-
return {
|
|
499
|
+
return {
|
|
500
|
+
renderId: render.id,
|
|
501
|
+
state: render.state,
|
|
502
|
+
url: frame.url,
|
|
503
|
+
note: withMotionNote(`Could not download the frame (HTTP ${response.status}) — open the URL directly instead.`, motionNote),
|
|
504
|
+
};
|
|
263
505
|
}
|
|
264
506
|
const bytes = new Uint8Array(await response.arrayBuffer());
|
|
265
507
|
if (bytes.byteLength > MAX_INLINE_IMAGE_BYTES) {
|
|
266
|
-
return {
|
|
508
|
+
return {
|
|
509
|
+
renderId: render.id,
|
|
510
|
+
state: render.state,
|
|
511
|
+
url: frame.url,
|
|
512
|
+
note: withMotionNote('The rendered image is larger than this tool can inline — open the URL directly instead.', motionNote),
|
|
513
|
+
};
|
|
267
514
|
}
|
|
268
515
|
// The `sheet` contact sheet is a 1x JPEG; the mime type comes off the response rather than being
|
|
269
516
|
// hardcoded so an older PNG sheet is never mislabelled (see docs/creatives.md).
|
|
270
517
|
const mimeType = (response.headers.get('content-type') || 'image/jpeg').split(';')[0].trim();
|
|
271
|
-
return { renderId: render.id, state: render.state, url: frame.url, image: { data: Buffer.from(bytes), mimeType } };
|
|
518
|
+
return { renderId: render.id, state: render.state, url: frame.url, image: { data: Buffer.from(bytes), mimeType }, note: motionNote };
|
|
272
519
|
}
|
|
273
520
|
export async function attachCreativeToPost(params, config) {
|
|
274
521
|
// `postId` is the primary name (it matches get_post_status's own param); `workItemId` is kept as a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"creatives.js","sourceRoot":"","sources":["../../../src/mcp/tools/creatives.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"creatives.js","sourceRoot":"","sources":["../../../src/mcp/tools/creatives.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cliangdev/conductor",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.24.0",
|
|
4
4
|
"description": "Agentic software development platform — AI-driven PRD, implementation, and beyond",
|
|
5
5
|
"license": "SEE LICENSE IN ../LICENSE",
|
|
6
6
|
"repository": {
|
|
@@ -35,6 +35,8 @@
|
|
|
35
35
|
"chalk": "^6.0.0",
|
|
36
36
|
"chokidar": "^5.0.0",
|
|
37
37
|
"commander": "^15.0.0",
|
|
38
|
+
"ffmpeg-static": "^5.3.0",
|
|
39
|
+
"ffprobe-static": "^3.1.0",
|
|
38
40
|
"open": "^11.0.0",
|
|
39
41
|
"ora": "^9.4.0",
|
|
40
42
|
"playwright-core": "1.63.0"
|
|
@@ -13,8 +13,12 @@
|
|
|
13
13
|
* `PACKAGE_ROOT = join(HERE, '..')` expects".
|
|
14
14
|
*
|
|
15
15
|
* Deliberately excluded: `mount.js`/`copy-rules.js` (editor-only, not
|
|
16
|
-
* imported by frame.js/sheet.js — the render core never
|
|
17
|
-
*
|
|
16
|
+
* imported by frame.js/sheet.js/job/render.mjs — the render core never
|
|
17
|
+
* reaches for them; `motion.js`, by contrast, IS imported by all three
|
|
18
|
+
* (frame.js/sheet.js apply a MOTION creative's timeline in-page, and
|
|
19
|
+
* job/render.mjs imports `motionKeyTimes` for a previewOnly sheet spec) so
|
|
20
|
+
* it is included below), `test/`, `node_modules/`, `job/package.json` (its
|
|
21
|
+
* `playwright` dependency
|
|
18
22
|
* is for running the job directly out of that repo; conductor-tools drives
|
|
19
23
|
* the same `run()` with its own `playwright-core`-based browser discovery —
|
|
20
24
|
* see src/lib/creative-browser.ts), and `README.md`.
|
|
@@ -36,6 +40,7 @@ export const DEST_ROOT = join(__dirname, '..', 'dist', 'creative')
|
|
|
36
40
|
/** Relative paths (from conductor-creative/) this build needs. Order doesn't matter. */
|
|
37
41
|
export const CREATIVE_RUNTIME_FILES = [
|
|
38
42
|
'render.js',
|
|
43
|
+
'motion.js',
|
|
39
44
|
'assertions.js',
|
|
40
45
|
'placements.js',
|
|
41
46
|
'placements.json',
|