@vibeframe/mcp-server 0.57.0 → 0.57.2

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 +37 -23
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -455115,7 +455115,7 @@ Run 'vibe setup --show' to check API key status.
455115
455115
  Run 'vibe schema generate.<command>' for structured parameter info.
455116
455116
  `
455117
455117
  );
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", `
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: 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
455119
  Examples:
455120
455120
  $ vibe generate image "a sunset over the ocean" -o sunset.png
455121
455121
  $ vibe gen img "logo design" -o logo.png -p openai
@@ -455137,22 +455137,28 @@ Examples:
455137
455137
  if (options.output) {
455138
455138
  validateOutputPath(options.output);
455139
455139
  }
455140
- let provider = options.provider.toLowerCase();
455141
455140
  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
455141
  const providerEnvMap = {
455146
455142
  gemini: "GOOGLE_API_KEY",
455147
455143
  openai: "OPENAI_API_KEY",
455148
455144
  grok: "XAI_API_KEY"
455149
455145
  };
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;
455146
+ let provider;
455147
+ if (options.provider) {
455148
+ provider = options.provider.toLowerCase();
455149
+ if (!validProviders.includes(provider)) {
455150
+ exitWithError(usageError(`Invalid provider: ${provider}`, `Available providers: openai, gemini, grok, runway`));
455151
+ }
455152
+ if (providerEnvMap[provider] && !hasApiKey(providerEnvMap[provider]) && !options.apiKey) {
455153
+ const resolved = resolveProvider("image");
455154
+ if (resolved) {
455155
+ log(source_default.dim(` ${provider} key not found. Using ${resolved.label} instead.`));
455156
+ provider = resolved.name;
455157
+ }
455155
455158
  }
455159
+ } else {
455160
+ const resolved = resolveProvider("image");
455161
+ provider = resolved?.name ?? "gemini";
455156
455162
  }
455157
455163
  if (provider === "dalle") {
455158
455164
  console.log(source_default.yellow('Warning: "dalle" is deprecated. Use "openai" instead.'));
@@ -455446,7 +455452,7 @@ Examples:
455446
455452
  exitWithError(apiError(`Image generation failed: ${error.message}`));
455447
455453
  }
455448
455454
  });
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", `
455455
+ 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
455456
  Examples:
455451
455457
  $ vibe generate video "dancing cat" -o cat.mp4 # Grok (default)
455452
455458
  $ vibe gen vid "city timelapse" -o city.mp4 -p kling # Kling
@@ -455468,11 +455474,7 @@ Examples:
455468
455474
  if (options.output) {
455469
455475
  validateOutputPath(options.output);
455470
455476
  }
455471
- let provider = options.provider.toLowerCase();
455472
- const validProviders = ["runway", "kling", "veo", "grok"];
455473
- if (!validProviders.includes(provider)) {
455474
- exitWithError(usageError(`Invalid provider: ${provider}`, `Available providers: ${validProviders.join(", ")}`));
455475
- }
455477
+ const validProviders = ["runway", "kling", "veo", "grok", "fal"];
455476
455478
  const videoEnvMap = {
455477
455479
  grok: "XAI_API_KEY",
455478
455480
  veo: "GOOGLE_API_KEY",
@@ -455480,12 +455482,22 @@ Examples:
455480
455482
  runway: "RUNWAY_API_SECRET",
455481
455483
  fal: "FAL_KEY"
455482
455484
  };
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;
455485
+ let provider;
455486
+ if (options.provider) {
455487
+ provider = options.provider.toLowerCase();
455488
+ if (!validProviders.includes(provider)) {
455489
+ exitWithError(usageError(`Invalid provider: ${provider}`, `Available providers: ${validProviders.join(", ")}`));
455490
+ }
455491
+ if (videoEnvMap[provider] && !hasApiKey(videoEnvMap[provider]) && !options.apiKey) {
455492
+ const resolved = resolveProvider("video");
455493
+ if (resolved) {
455494
+ log(source_default.dim(` ${provider} key not found. Using ${resolved.label} instead.`));
455495
+ provider = resolved.name;
455496
+ }
455488
455497
  }
455498
+ } else {
455499
+ const resolved = resolveProvider("video");
455500
+ provider = resolved?.name ?? "grok";
455489
455501
  }
455490
455502
  let referenceImage;
455491
455503
  let isImageToVideo = false;
@@ -455533,13 +455545,15 @@ Examples:
455533
455545
  runway: "RUNWAY_API_SECRET",
455534
455546
  kling: "KLING_API_KEY",
455535
455547
  veo: "GOOGLE_API_KEY",
455536
- grok: "XAI_API_KEY"
455548
+ grok: "XAI_API_KEY",
455549
+ fal: "FAL_KEY"
455537
455550
  };
455538
455551
  const providerNameMap = {
455539
455552
  runway: "Runway",
455540
455553
  kling: "Kling",
455541
455554
  veo: "Veo",
455542
- grok: "Grok"
455555
+ grok: "Grok",
455556
+ fal: "fal.ai (Seedance 2.0)"
455543
455557
  };
455544
455558
  const envKey = envKeyMap[provider];
455545
455559
  const providerName = providerNameMap[provider];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeframe/mcp-server",
3
- "version": "0.57.0",
3
+ "version": "0.57.2",
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/core": "0.57.0",
61
- "@vibeframe/cli": "0.57.0"
60
+ "@vibeframe/cli": "0.57.2",
61
+ "@vibeframe/core": "0.57.2"
62
62
  },
63
63
  "engines": {
64
64
  "node": ">=20"