@vibeframe/mcp-server 0.90.0 → 0.91.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/index.js +34 -16
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -14022,7 +14022,7 @@ function getCommandKeyMap() {
|
|
|
14022
14022
|
function getSetupProviders() {
|
|
14023
14023
|
return [...apiKeyRegistry.values()].filter((k) => k.showInSetup).map((k) => ({
|
|
14024
14024
|
key: k.configKey,
|
|
14025
|
-
name: k.
|
|
14025
|
+
name: getDisplayLabelForApiKey(k.configKey),
|
|
14026
14026
|
env: k.envVar,
|
|
14027
14027
|
desc: k.setupDescription ?? "",
|
|
14028
14028
|
url: k.envExampleUrl
|
|
@@ -14034,6 +14034,16 @@ function getAllApiKeys() {
|
|
|
14034
14034
|
function getKeyFormat(configKey) {
|
|
14035
14035
|
return apiKeyRegistry.get(configKey)?.keyFormat;
|
|
14036
14036
|
}
|
|
14037
|
+
function getDisplayLabelForApiKey(configKey) {
|
|
14038
|
+
const apiKey = apiKeyRegistry.get(configKey);
|
|
14039
|
+
if (!apiKey)
|
|
14040
|
+
return configKey;
|
|
14041
|
+
const provider = [...providerRegistry2.values()].find((p) => p.apiKey === configKey && p.displayName && p.gateway);
|
|
14042
|
+
if (provider?.displayName && provider.gateway) {
|
|
14043
|
+
return `${provider.displayName} (via ${provider.gateway})`;
|
|
14044
|
+
}
|
|
14045
|
+
return apiKey.label;
|
|
14046
|
+
}
|
|
14037
14047
|
function getAllProviders() {
|
|
14038
14048
|
return [...providerRegistry2.values()];
|
|
14039
14049
|
}
|
|
@@ -24138,7 +24148,7 @@ var init_FalProvider = __esm({
|
|
|
24138
24148
|
VALID_ASPECTS = ["21:9", "16:9", "4:3", "1:1", "3:4", "9:16", "auto"];
|
|
24139
24149
|
FalProvider = class {
|
|
24140
24150
|
constructor() {
|
|
24141
|
-
this.id = "
|
|
24151
|
+
this.id = "seedance";
|
|
24142
24152
|
this.name = "fal.ai (Seedance 2.0)";
|
|
24143
24153
|
this.description = "fal.ai hosting ByteDance Seedance 2.0 \u2014 Artificial Analysis #2 on both text-to-video and image-to-video leaderboards";
|
|
24144
24154
|
this.capabilities = ["text-to-video", "image-to-video"];
|
|
@@ -24237,11 +24247,13 @@ var init_fal = __esm({
|
|
|
24237
24247
|
init_FalProvider();
|
|
24238
24248
|
init_define_provider();
|
|
24239
24249
|
defineProvider({
|
|
24240
|
-
id: "
|
|
24241
|
-
label: "
|
|
24250
|
+
id: "seedance",
|
|
24251
|
+
label: "Seedance 2.0",
|
|
24242
24252
|
displayName: "Seedance 2.0",
|
|
24243
24253
|
gateway: "fal.ai",
|
|
24244
|
-
|
|
24254
|
+
// `fal` is a deprecated v0.x alias kept so existing scripts keep working.
|
|
24255
|
+
// Will be removed at the 1.0 cut (see docs/1.0-readiness.md).
|
|
24256
|
+
aliases: ["fal"],
|
|
24245
24257
|
models: ["seedance-2.0", "seedance-2.0-fast"],
|
|
24246
24258
|
capabilities: ["text-to-video", "image-to-video", "native-audio"],
|
|
24247
24259
|
apiKey: "fal",
|
|
@@ -24942,6 +24954,7 @@ __export(dist_exports, {
|
|
|
24942
24954
|
getAllProviders: () => getAllProviders,
|
|
24943
24955
|
getBestProviderForCapability: () => getBestProviderForCapability,
|
|
24944
24956
|
getCommandKeyMap: () => getCommandKeyMap,
|
|
24957
|
+
getDisplayLabelForApiKey: () => getDisplayLabelForApiKey,
|
|
24945
24958
|
getKeyFormat: () => getKeyFormat,
|
|
24946
24959
|
getProviderEnvVars: () => getProviderEnvVars,
|
|
24947
24960
|
getProvidersFor: () => getProvidersFor,
|
|
@@ -459891,9 +459904,9 @@ var init_ai_script_pipeline = __esm({
|
|
|
459891
459904
|
import { resolve as resolve50 } from "node:path";
|
|
459892
459905
|
import { readFile as readFile25, writeFile as writeFile33 } from "node:fs/promises";
|
|
459893
459906
|
function registerVideoCommand(parent) {
|
|
459894
|
-
parent.command("video").alias("vid").description("Generate video using AI (Seedance, Grok, Kling, Runway, or Veo)").argument("[prompt]", "Text prompt describing the video (interactive if omitted)").option("-p, --provider <provider>", "Provider: seedance (ByteDance Seedance 2.0 via fal.ai), grok, kling, runway, veo. `fal` is a
|
|
459907
|
+
parent.command("video").alias("vid").description("Generate video using AI (Seedance, Grok, Kling, Runway, or Veo)").argument("[prompt]", "Text prompt describing the video (interactive if omitted)").option("-p, --provider <provider>", "Provider: seedance (ByteDance Seedance 2.0 via fal.ai), grok, kling, runway, veo. `fal` is a deprecated v0.x alias for seedance and will be removed in 1.0.").option("-k, --api-key <key>", "API key (or set FAL_KEY / 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(
|
|
459895
459908
|
"-d, --duration <sec>",
|
|
459896
|
-
"Duration in seconds. Seedance accepts 4-15
|
|
459909
|
+
"Duration in seconds. Seedance accepts 4-15; Kling accepts 5 or 10; Veo maps to 6 or 8.",
|
|
459897
459910
|
"5"
|
|
459898
459911
|
).option("-r, --ratio <ratio>", "Aspect ratio: 16:9, 9:16, or 1:1 (auto-detected from image if omitted)").option("--seed <number>", "Random seed for reproducibility (Runway only)").option("--mode <mode>", "Generation mode: std or pro (Kling only)", "std").option("--seedance-model <model>", "Seedance variant: quality or fast (fal.ai only)", "quality").option("--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", `
|
|
459899
459912
|
Examples:
|
|
@@ -459939,8 +459952,7 @@ Examples:
|
|
|
459939
459952
|
veo: "GOOGLE_API_KEY",
|
|
459940
459953
|
kling: "KLING_API_KEY",
|
|
459941
459954
|
runway: "RUNWAY_API_SECRET",
|
|
459942
|
-
seedance: "FAL_KEY"
|
|
459943
|
-
fal: "FAL_KEY"
|
|
459955
|
+
seedance: "FAL_KEY"
|
|
459944
459956
|
};
|
|
459945
459957
|
let provider;
|
|
459946
459958
|
if (options.provider) {
|
|
@@ -459949,10 +459961,18 @@ Examples:
|
|
|
459949
459961
|
exitWithError(
|
|
459950
459962
|
usageError(
|
|
459951
459963
|
`Invalid provider: ${provider}`,
|
|
459952
|
-
"Available providers: seedance, grok, kling, runway, veo. `fal` is a
|
|
459964
|
+
"Available providers: seedance, grok, kling, runway, veo. `fal` is a deprecated alias for seedance."
|
|
459953
459965
|
)
|
|
459954
459966
|
);
|
|
459955
459967
|
}
|
|
459968
|
+
if (provider === "fal") {
|
|
459969
|
+
process.stderr.write(
|
|
459970
|
+
source_default.yellow(
|
|
459971
|
+
"Note: `-p fal` is a deprecated alias for `-p seedance` and will be removed in 1.0.\n"
|
|
459972
|
+
)
|
|
459973
|
+
);
|
|
459974
|
+
provider = "seedance";
|
|
459975
|
+
}
|
|
459956
459976
|
if (videoEnvMap[provider] && !hasApiKey(videoEnvMap[provider]) && !options.apiKey) {
|
|
459957
459977
|
const resolved = resolveProvider("video");
|
|
459958
459978
|
if (resolved) {
|
|
@@ -460012,7 +460032,7 @@ Examples:
|
|
|
460012
460032
|
data: {
|
|
460013
460033
|
params: {
|
|
460014
460034
|
prompt: prompt3,
|
|
460015
|
-
provider
|
|
460035
|
+
provider,
|
|
460016
460036
|
duration: options.duration,
|
|
460017
460037
|
ratio: options.ratio,
|
|
460018
460038
|
image: options.image,
|
|
@@ -460031,16 +460051,14 @@ Examples:
|
|
|
460031
460051
|
kling: "KLING_API_KEY",
|
|
460032
460052
|
veo: "GOOGLE_API_KEY",
|
|
460033
460053
|
grok: "XAI_API_KEY",
|
|
460034
|
-
seedance: "FAL_KEY"
|
|
460035
|
-
fal: "FAL_KEY"
|
|
460054
|
+
seedance: "FAL_KEY"
|
|
460036
460055
|
};
|
|
460037
460056
|
const providerNameMap = {
|
|
460038
460057
|
runway: "Runway",
|
|
460039
460058
|
kling: "Kling",
|
|
460040
460059
|
veo: "Veo",
|
|
460041
460060
|
grok: "Grok",
|
|
460042
|
-
seedance: "Seedance 2.0 via fal.ai"
|
|
460043
|
-
fal: "Seedance 2.0 via fal.ai"
|
|
460061
|
+
seedance: "Seedance 2.0 via fal.ai"
|
|
460044
460062
|
};
|
|
460045
460063
|
const envKey = envKeyMap[provider];
|
|
460046
460064
|
const providerName = providerNameMap[provider];
|
|
@@ -460259,7 +460277,7 @@ Examples:
|
|
|
460259
460277
|
},
|
|
460260
460278
|
3e5
|
|
460261
460279
|
);
|
|
460262
|
-
} else if (provider === "
|
|
460280
|
+
} else if (provider === "seedance") {
|
|
460263
460281
|
const fal = new FalProvider();
|
|
460264
460282
|
await fal.initialize({ apiKey });
|
|
460265
460283
|
let falImage = referenceImage;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibeframe/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.91.0",
|
|
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/
|
|
61
|
-
"@vibeframe/
|
|
60
|
+
"@vibeframe/core": "0.91.0",
|
|
61
|
+
"@vibeframe/cli": "0.91.0"
|
|
62
62
|
},
|
|
63
63
|
"engines": {
|
|
64
64
|
"node": ">=20"
|