@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.js CHANGED
@@ -540,7 +540,7 @@ var init_generate = __esm({
540
540
  InputSchema = z.object({
541
541
  prompt: z.string().min(1).max(8e3).describe("Prompt describing what to generate."),
542
542
  model: z.string().optional().describe(
543
- `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.`
543
+ `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.`
544
544
  ),
545
545
  preset: z.string().optional().describe(
546
546
  "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."
@@ -565,7 +565,7 @@ var init_generate = __esm({
565
565
  "Multiple absolute local file paths. Each is uploaded to PixelDojo (24h temp storage) and used as a reference, same rules as image_urls."
566
566
  )
567
567
  });
568
- DEFAULT_MODEL = "google-nano-banana";
568
+ DEFAULT_MODEL = "seedream-5";
569
569
  VIDEO_REFERENCE_MODEL = "seedance-2-reference";
570
570
  VIDEO_REFERENCE_SLOTS = {
571
571
  image: { name: "reference_images", isArray: true },
@@ -579,7 +579,7 @@ var init_generate = __esm({
579
579
  prompt: { type: "string", description: "Prompt describing what to generate." },
580
580
  model: {
581
581
  type: "string",
582
- 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.`
582
+ 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.`
583
583
  },
584
584
  preset: {
585
585
  type: "string",
@@ -627,8 +627,8 @@ var init_generate = __esm({
627
627
  };
628
628
  generateSkill = {
629
629
  name: "pixeldojo_generate",
630
- 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.",
631
- 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.",
630
+ 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.",
631
+ 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.",
632
632
  inputZod: InputSchema,
633
633
  inputJsonSchema: InputJsonSchema,
634
634
  allowedModels: null,
@@ -1426,7 +1426,7 @@ async function plan(input, ctx) {
1426
1426
  `Planned "${film.title}" (film_id: ${film.id}) \u2014 ${film.scenes.length} scenes, ${total} shots, ${input.look}, ${input.aspect}.`,
1427
1427
  ...sceneLines,
1428
1428
  "",
1429
- `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.`,
1429
+ `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.`,
1430
1430
  `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.`
1431
1431
  ].join("\n")
1432
1432
  };
@@ -1715,7 +1715,7 @@ var init_ad = __esm({
1715
1715
  },
1716
1716
  product_name: {
1717
1717
  type: "string",
1718
- description: "Product name. Required with product_image_urls / product_image_paths when there is no product_url."
1718
+ description: "Product name. Required with product images when there is no product_url."
1719
1719
  },
1720
1720
  product_description: { type: "string", description: "Optional product description (no product_url case)." },
1721
1721
  product_image_urls: {
@@ -1787,6 +1787,7 @@ var init_ad = __esm({
1787
1787
  adSkill = {
1788
1788
  name: "pixeldojo_ad",
1789
1789
  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.",
1790
+ 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.",
1790
1791
  inputZod: InputSchema9,
1791
1792
  inputJsonSchema: InputJsonSchema9,
1792
1793
  // Composition skill — the server routes to the ad engine internally.
@@ -2547,7 +2548,7 @@ function makeRedactedLogger(target = console) {
2547
2548
  }
2548
2549
 
2549
2550
  // src/server.ts
2550
- var PACKAGE_VERSION = "0.13.1" ;
2551
+ var PACKAGE_VERSION = "0.14.0" ;
2551
2552
  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.";
2552
2553
  function buildServer(options) {
2553
2554
  if (!options.apiKey) {