@vibeframe/mcp-server 0.57.1 → 0.57.3

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.
Files changed (2) hide show
  1. package/dist/index.js +33 -20
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -446870,6 +446870,7 @@ var init_schema = __esm({
446870
446870
  elevenlabs: "ELEVENLABS_API_KEY",
446871
446871
  runway: "RUNWAY_API_SECRET",
446872
446872
  kling: "KLING_API_KEY",
446873
+ fal: "FAL_KEY",
446873
446874
  imgbb: "IMGBB_API_KEY",
446874
446875
  replicate: "REPLICATE_API_TOKEN",
446875
446876
  xai: "XAI_API_KEY",
@@ -455115,7 +455116,7 @@ Run 'vibe setup --show' to check API key status.
455115
455116
  Run 'vibe schema generate.<command>' for structured parameter info.
455116
455117
  `
455117
455118
  );
455118
- generateCommand.command("image").alias("img").description("Generate image using AI (Gemini, DALL-E, or Runway)").argument("[prompt]", "Image description prompt (interactive if omitted)").option("-p, --provider <provider>", "Provider: gemini, openai, grok, runway (dalle is deprecated)", "gemini").option("-k, --api-key <key>", "API key (or set env: OPENAI_API_KEY, GOOGLE_API_KEY)").option("-o, --output <path>", "Output file path (downloads image)").option("-s, --size <size>", "Image size (openai: 1024x1024, 1536x1024, 1024x1536)", "1024x1024").option("-r, --ratio <ratio>", "Aspect ratio (gemini: 1:1, 1:4, 1:8, 4:1, 8:1, 16:9, 9:16, 3:4, 4:3, etc.)", "1:1").option("-q, --quality <quality>", "Quality: standard, hd (openai only)", "standard").option("--style <style>", "Style: vivid, natural (openai only)", "vivid").option("-n, --count <n>", "Number of images to generate", "1").option("-m, --model <model>", "Model. Gemini: flash, 3.1-flash, latest, pro. OpenAI: 1.5 (default), 2 (gpt-image-2)").option("--dry-run", "Preview parameters without executing").addHelpText("after", `
455119
+ generateCommand.command("image").alias("img").description("Generate image using AI (Gemini, DALL-E, or Runway)").argument("[prompt]", "Image description prompt (interactive if omitted)").option("-p, --provider <provider>", "Provider: openai (default when OPENAI_API_KEY set), gemini, grok, runway (dalle is deprecated)").option("-k, --api-key <key>", "API key (or set env: OPENAI_API_KEY, GOOGLE_API_KEY)").option("-o, --output <path>", "Output file path (downloads image)").option("-s, --size <size>", "Image size (openai: 1024x1024, 1536x1024, 1024x1536)", "1024x1024").option("-r, --ratio <ratio>", "Aspect ratio (gemini: 1:1, 1:4, 1:8, 4:1, 8:1, 16:9, 9:16, 3:4, 4:3, etc.)", "1:1").option("-q, --quality <quality>", "Quality: standard, hd (openai only)", "standard").option("--style <style>", "Style: vivid, natural (openai only)", "vivid").option("-n, --count <n>", "Number of images to generate", "1").option("-m, --model <model>", "Model. Gemini: flash, 3.1-flash, latest, pro. OpenAI: 1.5 (default), 2 (gpt-image-2)").option("--dry-run", "Preview parameters without executing").addHelpText("after", `
455119
455120
  Examples:
455120
455121
  $ vibe generate image "a sunset over the ocean" -o sunset.png
455121
455122
  $ vibe gen img "logo design" -o logo.png -p openai
@@ -455137,22 +455138,28 @@ Examples:
455137
455138
  if (options.output) {
455138
455139
  validateOutputPath(options.output);
455139
455140
  }
455140
- let provider = options.provider.toLowerCase();
455141
455141
  const validProviders = ["openai", "dalle", "gemini", "grok", "runway"];
455142
- if (!validProviders.includes(provider)) {
455143
- exitWithError(usageError(`Invalid provider: ${provider}`, `Available providers: openai, gemini, grok, runway`));
455144
- }
455145
455142
  const providerEnvMap = {
455146
455143
  gemini: "GOOGLE_API_KEY",
455147
455144
  openai: "OPENAI_API_KEY",
455148
455145
  grok: "XAI_API_KEY"
455149
455146
  };
455150
- if (providerEnvMap[provider] && !hasApiKey(providerEnvMap[provider]) && !options.apiKey) {
455151
- const resolved = resolveProvider("image");
455152
- if (resolved) {
455153
- log(source_default.dim(` ${provider} key not found. Using ${resolved.label} instead.`));
455154
- provider = resolved.name;
455147
+ let provider;
455148
+ if (options.provider) {
455149
+ provider = options.provider.toLowerCase();
455150
+ if (!validProviders.includes(provider)) {
455151
+ exitWithError(usageError(`Invalid provider: ${provider}`, `Available providers: openai, gemini, grok, runway`));
455155
455152
  }
455153
+ if (providerEnvMap[provider] && !hasApiKey(providerEnvMap[provider]) && !options.apiKey) {
455154
+ const resolved = resolveProvider("image");
455155
+ if (resolved) {
455156
+ log(source_default.dim(` ${provider} key not found. Using ${resolved.label} instead.`));
455157
+ provider = resolved.name;
455158
+ }
455159
+ }
455160
+ } else {
455161
+ const resolved = resolveProvider("image");
455162
+ provider = resolved?.name ?? "gemini";
455156
455163
  }
455157
455164
  if (provider === "dalle") {
455158
455165
  console.log(source_default.yellow('Warning: "dalle" is deprecated. Use "openai" instead.'));
@@ -455446,7 +455453,7 @@ Examples:
455446
455453
  exitWithError(apiError(`Image generation failed: ${error.message}`));
455447
455454
  }
455448
455455
  });
455449
- generateCommand.command("video").alias("vid").description("Generate video using AI (Kling, Runway, Veo, or Grok)").argument("[prompt]", "Text prompt describing the video (interactive if omitted)").option("-p, --provider <provider>", "Provider: grok (default), kling, runway, veo, fal (Seedance 2.0)", "grok").option("-k, --api-key <key>", "API key (or set XAI_API_KEY / RUNWAY_API_SECRET / KLING_API_KEY / GOOGLE_API_KEY env)").option("-o, --output <path>", "Output file path (downloads video)").option("-i, --image <path>", "Reference image for image-to-video").option("-d, --duration <sec>", "Duration: 5 or 10 seconds", "5").option("-r, --ratio <ratio>", "Aspect ratio: 16:9, 9:16, or 1:1 (auto-detected from image if omitted)").option("-s, --seed <number>", "Random seed for reproducibility (Runway only)").option("-m, --mode <mode>", "Generation mode: std or pro (Kling only)", "std").option("-n, --negative <prompt>", "Negative prompt - what to avoid (Kling/Veo)").option("--resolution <res>", "Video resolution: 720p, 1080p, 4k (Veo only)").option("--last-frame <path>", "Last frame image for frame interpolation (Veo only)").option("--ref-images <paths...>", "Reference images for character consistency (Veo 3.1 only, max 3)").option("--person <mode>", "Person generation: allow_all, allow_adult (Veo only)").option("--veo-model <model>", "Veo model: 3.0, 3.1, 3.1-fast (default: 3.1-fast)", "3.1-fast").option("--runway-model <model>", "Runway model: gen4.5 (default, text+image-to-video), gen4_turbo (image-to-video only)", "gen4.5").option("--no-wait", "Start generation and return task ID without waiting").option("--dry-run", "Preview parameters without executing").addHelpText("after", `
455456
+ generateCommand.command("video").alias("vid").description("Generate video using AI (Kling, Runway, Veo, or Grok)").argument("[prompt]", "Text prompt describing the video (interactive if omitted)").option("-p, --provider <provider>", "Provider: fal (Seedance 2.0, default when FAL_KEY set), grok, kling, runway, veo").option("-k, --api-key <key>", "API key (or set XAI_API_KEY / RUNWAY_API_SECRET / KLING_API_KEY / GOOGLE_API_KEY env)").option("-o, --output <path>", "Output file path (downloads video)").option("-i, --image <path>", "Reference image for image-to-video").option("-d, --duration <sec>", "Duration: 5 or 10 seconds", "5").option("-r, --ratio <ratio>", "Aspect ratio: 16:9, 9:16, or 1:1 (auto-detected from image if omitted)").option("-s, --seed <number>", "Random seed for reproducibility (Runway only)").option("-m, --mode <mode>", "Generation mode: std or pro (Kling only)", "std").option("-n, --negative <prompt>", "Negative prompt - what to avoid (Kling/Veo)").option("--resolution <res>", "Video resolution: 720p, 1080p, 4k (Veo only)").option("--last-frame <path>", "Last frame image for frame interpolation (Veo only)").option("--ref-images <paths...>", "Reference images for character consistency (Veo 3.1 only, max 3)").option("--person <mode>", "Person generation: allow_all, allow_adult (Veo only)").option("--veo-model <model>", "Veo model: 3.0, 3.1, 3.1-fast (default: 3.1-fast)", "3.1-fast").option("--runway-model <model>", "Runway model: gen4.5 (default, text+image-to-video), gen4_turbo (image-to-video only)", "gen4.5").option("--no-wait", "Start generation and return task ID without waiting").option("--dry-run", "Preview parameters without executing").addHelpText("after", `
455450
455457
  Examples:
455451
455458
  $ vibe generate video "dancing cat" -o cat.mp4 # Grok (default)
455452
455459
  $ vibe gen vid "city timelapse" -o city.mp4 -p kling # Kling
@@ -455468,11 +455475,7 @@ Examples:
455468
455475
  if (options.output) {
455469
455476
  validateOutputPath(options.output);
455470
455477
  }
455471
- let provider = options.provider.toLowerCase();
455472
455478
  const validProviders = ["runway", "kling", "veo", "grok", "fal"];
455473
- if (!validProviders.includes(provider)) {
455474
- exitWithError(usageError(`Invalid provider: ${provider}`, `Available providers: ${validProviders.join(", ")}`));
455475
- }
455476
455479
  const videoEnvMap = {
455477
455480
  grok: "XAI_API_KEY",
455478
455481
  veo: "GOOGLE_API_KEY",
@@ -455480,12 +455483,22 @@ Examples:
455480
455483
  runway: "RUNWAY_API_SECRET",
455481
455484
  fal: "FAL_KEY"
455482
455485
  };
455483
- if (videoEnvMap[provider] && !hasApiKey(videoEnvMap[provider]) && !options.apiKey) {
455484
- const resolved = resolveProvider("video");
455485
- if (resolved) {
455486
- log(source_default.dim(` ${provider} key not found. Using ${resolved.label} instead.`));
455487
- provider = resolved.name;
455486
+ let provider;
455487
+ if (options.provider) {
455488
+ provider = options.provider.toLowerCase();
455489
+ if (!validProviders.includes(provider)) {
455490
+ exitWithError(usageError(`Invalid provider: ${provider}`, `Available providers: ${validProviders.join(", ")}`));
455488
455491
  }
455492
+ if (videoEnvMap[provider] && !hasApiKey(videoEnvMap[provider]) && !options.apiKey) {
455493
+ const resolved = resolveProvider("video");
455494
+ if (resolved) {
455495
+ log(source_default.dim(` ${provider} key not found. Using ${resolved.label} instead.`));
455496
+ provider = resolved.name;
455497
+ }
455498
+ }
455499
+ } else {
455500
+ const resolved = resolveProvider("video");
455501
+ provider = resolved?.name ?? "grok";
455489
455502
  }
455490
455503
  let referenceImage;
455491
455504
  let isImageToVideo = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeframe/mcp-server",
3
- "version": "0.57.1",
3
+ "version": "0.57.3",
4
4
  "description": "VibeFrame MCP Server - AI-native video editing via Model Context Protocol",
5
5
  "type": "module",
6
6
  "bin": {
@@ -57,8 +57,8 @@
57
57
  "tsx": "^4.21.0",
58
58
  "typescript": "^5.3.3",
59
59
  "vitest": "^1.2.2",
60
- "@vibeframe/cli": "0.57.1",
61
- "@vibeframe/core": "0.57.1"
60
+ "@vibeframe/core": "0.57.3",
61
+ "@vibeframe/cli": "0.57.3"
62
62
  },
63
63
  "engines": {
64
64
  "node": ">=20"