@pixeldojo/mcp 0.13.1 → 0.14.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/dist/cli.cjs CHANGED
@@ -542,7 +542,7 @@ var init_generate = __esm({
542
542
  InputSchema = zod.z.object({
543
543
  prompt: zod.z.string().min(1).max(8e3).describe("Prompt describing what to generate."),
544
544
  model: zod.z.string().optional().describe(
545
- `Model apiId, e.g. "flux", "google-nano-banana", "veo-3.1-fast", "kling-video-v3-standard-text". Full catalog: https://pixeldojo.ai/api/v1/models; one model's fields: https://pixeldojo.ai/llm/{apiId}.txt. Omit for google-nano-banana, which makes still images only; name a video model to get a video.`
545
+ `Model apiId. Recommended: "seedream-5" (images, the default) or "xai-image"; "seedance-2-5" or "xai-video" for video (prompt only or a starting image); "wan-3-0-video" for video the others refuse. Use another model only when the user names one. Full catalog: https://pixeldojo.ai/api/v1/models; one model's fields: https://pixeldojo.ai/llm/{apiId}.txt. Omit for seedream-5, which makes still images only; name a video model to get a video.`
546
546
  ),
547
547
  preset: zod.z.string().optional().describe(
548
548
  "Preset slug that seeds the running model's settings; explicit fields and params override it. Each preset belongs to one model (browse them by model at https://pixeldojo.ai/presets), so set `model` to that preset's model: a slug the running model has no preset for is rejected with a 400 before any charge."
@@ -567,7 +567,7 @@ var init_generate = __esm({
567
567
  "Multiple absolute local file paths. Each is uploaded to PixelDojo (24h temp storage) and used as a reference, same rules as image_urls."
568
568
  )
569
569
  });
570
- DEFAULT_MODEL = "google-nano-banana";
570
+ DEFAULT_MODEL = "seedream-5";
571
571
  VIDEO_REFERENCE_MODEL = "seedance-2-reference";
572
572
  VIDEO_REFERENCE_SLOTS = {
573
573
  image: { name: "reference_images", isArray: true },
@@ -581,7 +581,7 @@ var init_generate = __esm({
581
581
  prompt: { type: "string", description: "Prompt describing what to generate." },
582
582
  model: {
583
583
  type: "string",
584
- description: `Model apiId, e.g. "flux", "google-nano-banana", "veo-3.1-fast", "kling-video-v3-standard-text". Full catalog: https://pixeldojo.ai/api/v1/models; one model's fields: https://pixeldojo.ai/llm/{apiId}.txt. Omit for google-nano-banana, which makes still images only; name a video model to get a video.`
584
+ description: `Model apiId. Recommended: "seedream-5" (images, the default) or "xai-image"; "seedance-2-5" or "xai-video" for video (prompt only or a starting image); "wan-3-0-video" for video the others refuse. Use another model only when the user names one. Full catalog: https://pixeldojo.ai/api/v1/models; one model's fields: https://pixeldojo.ai/llm/{apiId}.txt. Omit for seedream-5, which makes still images only; name a video model to get a video.`
585
585
  },
586
586
  preset: {
587
587
  type: "string",
@@ -629,8 +629,8 @@ var init_generate = __esm({
629
629
  };
630
630
  generateSkill = {
631
631
  name: "pixeldojo_generate",
632
- description: "Generate an image or video from a prompt with any model in the PixelDojo catalog. With no `model`, a text prompt runs on google-nano-banana, which makes still images only; for a video, name a video model such as veo-3.1-fast. References: `image_url`/`image_urls` for stills, `video_url` for a source clip, `image_path`/`image_paths` for absolute local files (uploaded to 24h temp storage first). A clip or an audio track URL with no `model` runs on seedance-2-reference; a named model that cannot read a clip is swapped for it and the result says so, while a named model with no audio input drops the track. Model-specific settings go in `params` alongside an explicit `model`. Returns asset URLs, or a jobId for pixeldojo_status when the job outlasts the 30s wait.",
633
- hostedDescription: "Generate an image or video from a prompt with any model in the PixelDojo catalog. With no `model`, a text prompt runs on google-nano-banana, which makes still images only; for a video, name a video model such as veo-3.1-fast. References: `image_url`/`image_urls` for stills and `video_url` for a source clip, all public http(s) URLs. A clip or an audio track URL with no `model` runs on seedance-2-reference; a named model that cannot read a clip is swapped for it and the result says so, while a named model with no audio input drops the track. Model-specific settings go in `params` alongside an explicit `model`. Returns asset URLs, or a jobId for pixeldojo_status when the job outlasts the 30s wait.",
632
+ description: "Generate an image or video from a prompt with any model in the PixelDojo catalog. With no `model`, a prompt runs on seedream-5, which makes still images only. For a video, name seedance-2-5 (best) or xai-video; both work from a prompt alone or a starting image. If a provider refuses the content, retry once on wan-3-0-video (video) or seedream-5 (images), the least-restricted models. Name another model only when the user asks for it. References: `image_url`/`image_urls` for stills, `video_url` for a source clip, `image_path`/`image_paths` for absolute local files (uploaded to 24h temp storage first). A clip or an audio track URL with no `model` runs on seedance-2-reference; a named model that cannot read a clip is swapped for it and the result says so, while a named model with no audio input drops the track. Model-specific settings go in `params` alongside an explicit `model`. Returns asset URLs, or a jobId for pixeldojo_status when the job outlasts the 30s wait.",
633
+ hostedDescription: "Generate an image or video from a prompt with any model in the PixelDojo catalog. With no `model`, a prompt runs on seedream-5, which makes still images only. For a video, name seedance-2-5 (best) or xai-video; both work from a prompt alone or a starting image. If a provider refuses the content, retry once on wan-3-0-video (video) or seedream-5 (images), the least-restricted models. Name another model only when the user asks for it. References: `image_url`/`image_urls` for stills and `video_url` for a source clip, all public http(s) URLs. A clip or an audio track URL with no `model` runs on seedance-2-reference; a named model that cannot read a clip is swapped for it and the result says so, while a named model with no audio input drops the track. Model-specific settings go in `params` alongside an explicit `model`. Returns asset URLs, or a jobId for pixeldojo_status when the job outlasts the 30s wait.",
634
634
  inputZod: InputSchema,
635
635
  inputJsonSchema: InputJsonSchema,
636
636
  allowedModels: null,
@@ -1428,7 +1428,7 @@ async function plan(input, ctx) {
1428
1428
  `Planned "${film.title}" (film_id: ${film.id}) \u2014 ${film.scenes.length} scenes, ${total} shots, ${input.look}, ${input.aspect}.`,
1429
1429
  ...sceneLines,
1430
1430
  "",
1431
- `Nothing has been charged yet. Producing renders every shot (roughly 20-25 credits per shot at default engines, charged as each renders) plus a few credits for the soundtrack.`,
1431
+ `Nothing has been charged yet. Producing renders every shot (roughly 35-40 credits per 5-second shot at default engines, charged as each renders) plus a few credits for the soundtrack.`,
1432
1432
  `Review or edit at ${ctx.baseUrl}/film-studio/${film.id} \u2014 or call pixeldojo_film with {"film_id": "${film.id}", "action": "produce"} to start production.`
1433
1433
  ].join("\n")
1434
1434
  };
@@ -1717,7 +1717,7 @@ var init_ad = __esm({
1717
1717
  },
1718
1718
  product_name: {
1719
1719
  type: "string",
1720
- description: "Product name. Required with product_image_urls / product_image_paths when there is no product_url."
1720
+ description: "Product name. Required with product images when there is no product_url."
1721
1721
  },
1722
1722
  product_description: { type: "string", description: "Optional product description (no product_url case)." },
1723
1723
  product_image_urls: {
@@ -1789,6 +1789,7 @@ var init_ad = __esm({
1789
1789
  adSkill = {
1790
1790
  name: "pixeldojo_ad",
1791
1791
  description: "Marketing Studio: turn a product into a rendered video ad with voiceover. Requires `product_url` (name, description and images are extracted), or `product_name` plus product_image_urls / product_image_paths. Pick a `style` slug (default ugc-testimonial; full catalog at GET https://pixeldojo.ai/api/v1/marketing/presets), and optionally add presenter reference images, a location, a hook, and the exact spoken script. Returns the video URL, or a jobId to check with pixeldojo_status.",
1792
+ hostedDescription: "Marketing Studio: turn a product into a rendered video ad with voiceover. Requires `product_url` (name, description and images are extracted), or `product_name` plus product_image_urls (public http(s) URLs). Pick a `style` slug (default ugc-testimonial; full catalog at GET https://pixeldojo.ai/api/v1/marketing/presets), and optionally add presenter reference images, a location, a hook, and the exact spoken script. Returns the video URL, or a jobId to check with pixeldojo_status.",
1792
1793
  inputZod: InputSchema9,
1793
1794
  inputJsonSchema: InputJsonSchema9,
1794
1795
  // Composition skill — the server routes to the ad engine internally.
@@ -2549,7 +2550,7 @@ function makeRedactedLogger(target = console) {
2549
2550
  }
2550
2551
 
2551
2552
  // src/server.ts
2552
- var PACKAGE_VERSION = "0.13.1" ;
2553
+ var PACKAGE_VERSION = "0.14.0" ;
2553
2554
  var SERVER_INSTRUCTIONS = "PixelDojo generates images, video, audio and short films across 100+ models, billed in credits from the connected PixelDojo 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, so download anything the user wants to keep. Finished films are the exception and stay in the account library.";
2554
2555
  function buildServer(options) {
2555
2556
  if (!options.apiKey) {