@pixeldojo/mcp 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/README.md +1 -1
- package/dist/cli.cjs +121 -6
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +121 -6
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +121 -6
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +121 -6
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1309,14 +1309,45 @@ var init_caption = __esm({
|
|
|
1309
1309
|
}
|
|
1310
1310
|
});
|
|
1311
1311
|
async function run7(input, ctx) {
|
|
1312
|
-
|
|
1313
|
-
|
|
1312
|
+
const { hook, callout, review, countdown, price_tag: price, offer, end_card: card } = input;
|
|
1313
|
+
if (!hook && !callout && !review && !input.progress_bar && !countdown && !price && !offer && !card) {
|
|
1314
|
+
return {
|
|
1315
|
+
kind: "text",
|
|
1316
|
+
text: "pixeldojo_overlay needs at least one of hook, callout, review, progress_bar, countdown, price_tag, offer or end_card."
|
|
1317
|
+
};
|
|
1314
1318
|
}
|
|
1315
|
-
const { offer, end_card: card } = input;
|
|
1316
1319
|
const submitted = await ctx.client.run(MODEL2, {
|
|
1317
1320
|
prompt: "",
|
|
1318
1321
|
video: input.video_url,
|
|
1319
1322
|
...input.color ? { color: input.color } : {},
|
|
1323
|
+
...hook ? { hook_text: hook.text, hook_duration: hook.duration_sec } : {},
|
|
1324
|
+
...callout ? {
|
|
1325
|
+
callout_title: callout.title,
|
|
1326
|
+
callout_subtitle: callout.subtitle,
|
|
1327
|
+
callout_start: callout.start_sec,
|
|
1328
|
+
callout_duration: callout.duration_sec
|
|
1329
|
+
} : {},
|
|
1330
|
+
...review ? {
|
|
1331
|
+
review_quote: review.quote,
|
|
1332
|
+
review_name: review.name,
|
|
1333
|
+
review_stars: review.stars,
|
|
1334
|
+
review_start: review.start_sec,
|
|
1335
|
+
review_duration: review.duration_sec
|
|
1336
|
+
} : {},
|
|
1337
|
+
...input.progress_bar ? { progress_bar: true } : {},
|
|
1338
|
+
...countdown ? {
|
|
1339
|
+
countdown_from: countdown.from,
|
|
1340
|
+
countdown_label: countdown.label,
|
|
1341
|
+
countdown_start: countdown.start_sec,
|
|
1342
|
+
countdown_duration: countdown.duration_sec
|
|
1343
|
+
} : {},
|
|
1344
|
+
...price ? {
|
|
1345
|
+
price_now: price.now,
|
|
1346
|
+
price_was: price.was,
|
|
1347
|
+
price_label: price.label,
|
|
1348
|
+
price_start: price.start_sec,
|
|
1349
|
+
price_duration: price.duration_sec
|
|
1350
|
+
} : {},
|
|
1320
1351
|
...offer ? {
|
|
1321
1352
|
offer_text: offer.text,
|
|
1322
1353
|
offer_subtext: offer.subtext,
|
|
@@ -1352,6 +1383,34 @@ var init_overlay = __esm({
|
|
|
1352
1383
|
InputSchema7 = z.object({
|
|
1353
1384
|
video_url: z.string().url(),
|
|
1354
1385
|
color: z.string().optional(),
|
|
1386
|
+
hook: z.object({ text: z.string().max(60), duration_sec: z.number().min(1).max(6).optional() }).optional(),
|
|
1387
|
+
callout: z.object({
|
|
1388
|
+
title: z.string().max(32),
|
|
1389
|
+
subtitle: z.string().max(40).optional(),
|
|
1390
|
+
start_sec: z.number().min(0).optional(),
|
|
1391
|
+
duration_sec: z.number().min(1).max(10).optional()
|
|
1392
|
+
}).optional(),
|
|
1393
|
+
review: z.object({
|
|
1394
|
+
quote: z.string().max(90),
|
|
1395
|
+
name: z.string().max(30).optional(),
|
|
1396
|
+
stars: z.number().int().min(1).max(5).optional(),
|
|
1397
|
+
start_sec: z.number().min(0).optional(),
|
|
1398
|
+
duration_sec: z.number().min(1).max(10).optional()
|
|
1399
|
+
}).optional(),
|
|
1400
|
+
progress_bar: z.boolean().optional(),
|
|
1401
|
+
countdown: z.object({
|
|
1402
|
+
from: z.string(),
|
|
1403
|
+
label: z.string().max(16).optional(),
|
|
1404
|
+
start_sec: z.number().min(0).optional(),
|
|
1405
|
+
duration_sec: z.number().min(1).max(10).optional()
|
|
1406
|
+
}).optional(),
|
|
1407
|
+
price_tag: z.object({
|
|
1408
|
+
now: z.string().max(12),
|
|
1409
|
+
was: z.string().max(12).optional(),
|
|
1410
|
+
label: z.string().max(16).optional(),
|
|
1411
|
+
start_sec: z.number().min(0).optional(),
|
|
1412
|
+
duration_sec: z.number().min(1).max(10).optional()
|
|
1413
|
+
}).optional(),
|
|
1355
1414
|
offer: z.object({
|
|
1356
1415
|
text: z.string().max(24),
|
|
1357
1416
|
subtext: z.string().max(40).optional(),
|
|
@@ -1373,9 +1432,65 @@ var init_overlay = __esm({
|
|
|
1373
1432
|
properties: {
|
|
1374
1433
|
video_url: { type: "string", format: "uri", description: "The video to brand (MP4 or MOV)." },
|
|
1375
1434
|
color: { type: "string", description: "Brand color as #RRGGBB: the badge and the button. Defaults to #FFE500." },
|
|
1435
|
+
hook: {
|
|
1436
|
+
type: "object",
|
|
1437
|
+
description: "Hook title over the first seconds, the overlay that decides whether people keep watching. 5-8 words.",
|
|
1438
|
+
required: ["text"],
|
|
1439
|
+
properties: {
|
|
1440
|
+
text: { type: "string", maxLength: 60, description: 'e.g. "Octopuses have THREE hearts?".' },
|
|
1441
|
+
duration_sec: { type: "number", minimum: 1, maximum: 6, description: "Default 2.5." }
|
|
1442
|
+
}
|
|
1443
|
+
},
|
|
1444
|
+
callout: {
|
|
1445
|
+
type: "object",
|
|
1446
|
+
description: 'Lower-third label that slides in from the left: a benefit ("Ships in 24h") or a name and title.',
|
|
1447
|
+
required: ["title"],
|
|
1448
|
+
properties: {
|
|
1449
|
+
title: { type: "string", maxLength: 32, description: "The label." },
|
|
1450
|
+
subtitle: { type: "string", maxLength: 40, description: "Optional second line." },
|
|
1451
|
+
start_sec: { type: "number", description: "Default 3." },
|
|
1452
|
+
duration_sec: { type: "number", minimum: 1, maximum: 10, description: "Default 4." }
|
|
1453
|
+
}
|
|
1454
|
+
},
|
|
1455
|
+
review: {
|
|
1456
|
+
type: "object",
|
|
1457
|
+
description: "Review card: stars, a short quote and a name.",
|
|
1458
|
+
required: ["quote"],
|
|
1459
|
+
properties: {
|
|
1460
|
+
quote: { type: "string", maxLength: 90, description: "The review text, without quote marks." },
|
|
1461
|
+
name: { type: "string", maxLength: 30, description: 'e.g. "Jess, verified buyer".' },
|
|
1462
|
+
stars: { type: "integer", minimum: 1, maximum: 5, description: "Default 5." },
|
|
1463
|
+
start_sec: { type: "number", description: "Default just after the hook." },
|
|
1464
|
+
duration_sec: { type: "number", minimum: 1, maximum: 10, description: "Default 4." }
|
|
1465
|
+
}
|
|
1466
|
+
},
|
|
1467
|
+
progress_bar: { type: "boolean", description: "A thin bar in the brand color across the top that fills as the video plays." },
|
|
1468
|
+
countdown: {
|
|
1469
|
+
type: "object",
|
|
1470
|
+
description: "Urgency timer under the offer badge; the digits tick down each second.",
|
|
1471
|
+
required: ["from"],
|
|
1472
|
+
properties: {
|
|
1473
|
+
from: { type: "string", description: 'Start time, "23:59:59" or "04:59".' },
|
|
1474
|
+
label: { type: "string", maxLength: 16, description: 'Words above the timer. Default "Ends in".' },
|
|
1475
|
+
start_sec: { type: "number", description: "Default just after the hook." },
|
|
1476
|
+
duration_sec: { type: "number", minimum: 1, maximum: 10, description: "Default 4." }
|
|
1477
|
+
}
|
|
1478
|
+
},
|
|
1479
|
+
price_tag: {
|
|
1480
|
+
type: "object",
|
|
1481
|
+
description: "Tilted sticker on the left: new price big, old price struck through.",
|
|
1482
|
+
required: ["now"],
|
|
1483
|
+
properties: {
|
|
1484
|
+
now: { type: "string", maxLength: 12, description: 'e.g. "$49".' },
|
|
1485
|
+
was: { type: "string", maxLength: 12, description: 'Old price, struck through, e.g. "$79".' },
|
|
1486
|
+
label: { type: "string", maxLength: 16, description: 'e.g. "Today only".' },
|
|
1487
|
+
start_sec: { type: "number", description: "Default just after the hook." },
|
|
1488
|
+
duration_sec: { type: "number", minimum: 1, maximum: 10, description: "Default 4." }
|
|
1489
|
+
}
|
|
1490
|
+
},
|
|
1376
1491
|
offer: {
|
|
1377
1492
|
type: "object",
|
|
1378
|
-
description: "Offer callout: a badge that pops in on cue.",
|
|
1493
|
+
description: "Offer callout: a badge that pops in on cue (after the hook when there is one).",
|
|
1379
1494
|
required: ["text"],
|
|
1380
1495
|
properties: {
|
|
1381
1496
|
text: { type: "string", maxLength: 24, description: 'e.g. "50% OFF".' },
|
|
@@ -1401,7 +1516,7 @@ var init_overlay = __esm({
|
|
|
1401
1516
|
};
|
|
1402
1517
|
overlaySkill = {
|
|
1403
1518
|
name: "pixeldojo_overlay",
|
|
1404
|
-
description: 'Add
|
|
1519
|
+
description: 'Add short-form ad text layouts to a finished video, exact text in the brand color, clear of the TikTok/Reels/Shorts UI: hook (title over the first seconds), callout (lower-third label), review (stars, quote, name), progress_bar, countdown (ticking timer), price_tag (new price, old one struck through), offer ("50% OFF" badge) and end_card (logo, headline, button, web address over the held last frame). Pass video_url plus any of them; one call does all. 2 credits.',
|
|
1405
1520
|
inputZod: InputSchema7,
|
|
1406
1521
|
inputJsonSchema: InputJsonSchema7,
|
|
1407
1522
|
allowedModels: [MODEL2],
|
|
@@ -3890,7 +4005,7 @@ function makeRedactedLogger(target = console) {
|
|
|
3890
4005
|
}
|
|
3891
4006
|
|
|
3892
4007
|
// src/server.ts
|
|
3893
|
-
var PACKAGE_VERSION = "0.
|
|
4008
|
+
var PACKAGE_VERSION = "0.24.0" ;
|
|
3894
4009
|
var SERVER_INSTRUCTIONS = "Pixel Dojo generates images, video, audio and short films from one catalog of AI models, billed in credits from the connected Pixel Dojo account. A job that runs past the 30-second wait returns a jobId to check later; check it rather than submitting again, since every new submission is charged. Generated asset URLs are deleted one hour after they are created: pixeldojo_save keeps one in the user's My Media permanently (after a safety check), and finished films stay in the account library. In any prompt, @Name uses a character, product, outfit, location, prop or style the user saved in Character Studio: its photos are attached automatically. pixeldojo_library source=characters lists them, and pixeldojo_save_character saves a new one from 3 to 5 photos.";
|
|
3895
4010
|
function buildServer(options) {
|
|
3896
4011
|
if (!options.apiKey) {
|