@vibeframe/mcp-server 0.75.0 → 0.77.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.
Files changed (3) hide show
  1. package/README.md +25 -20
  2. package/dist/index.js +36 -36
  3. package/package.json +3 -3
package/README.md CHANGED
@@ -8,7 +8,7 @@ Confirmed MCP hosts today: **Claude Desktop**, **Cursor**, **OpenCode**, and **C
8
8
 
9
9
  | Surface | Package | How you call it |
10
10
  |---------|---------|-----------------|
11
- | MCP host (Claude Desktop / Cursor / OpenCode / Claude Code) | `@vibeframe/mcp-server` *(this)* | host calls tool by name, for example `mcp__vibeframe__scene_build({...})` |
11
+ | MCP host (Claude Desktop / Cursor / OpenCode / Claude Code) | `@vibeframe/mcp-server` *(this)* | host calls tool by name, for example `mcp__vibeframe__build({...})` |
12
12
  | Shell / scripts (any agent host: Codex / Aider / Gemini CLI / etc.) | `@vibeframe/cli` | `vibe init my-video && vibe build my-video && vibe render my-video` |
13
13
  | Standalone agent REPL | `@vibeframe/cli` (`vibe agent`) | natural language -> CLI calls |
14
14
 
@@ -74,7 +74,7 @@ claude mcp add vibeframe -- npx -y @vibeframe/mcp-server
74
74
  Once connected, your MCP host can resolve prompts like these into typed tool calls:
75
75
 
76
76
  > "Scaffold a 12-second Swiss-Pulse promo project, three beats, and render it"
77
- > *→ `scene_init` + 3× `scene_add` + `scene_render`*
77
+ > *→ `init` + 3× `scene_add` + `render`*
78
78
 
79
79
  > "Generate a cinematic backdrop image, animate it for 5 seconds, add narration"
80
80
  > *→ `generate_image` + `generate_motion` + `generate_speech`*
@@ -84,20 +84,25 @@ Once connected, your MCP host can resolve prompts like these into typed tool cal
84
84
 
85
85
  ## Available Tools
86
86
 
87
- Tool names are MCP-side. Your host typically prefixes them (e.g. Claude shows them as `mcp__vibeframe__scene_init`). Each one wraps the same engine call as the matching `vibe` CLI subcommand.
87
+ Tool names are MCP-side. Your host typically prefixes them (e.g. Claude shows them as `mcp__vibeframe__init`). Each one wraps the same engine call as the matching `vibe` CLI subcommand.
88
88
 
89
- ### Scene authoring
89
+ ### Project flow (top-level)
90
90
 
91
91
  | Tool | Description |
92
92
  |------|-------------|
93
- | `scene_init` | Low-level scene project scaffold with `STORYBOARD.md` + `DESIGN.md` |
94
- | `scene_styles` | List the 8 vendored visual identities (Swiss Pulse, Data Drift, …) or fetch one |
93
+ | `init` | Scaffold a video project with `STORYBOARD.md` + `DESIGN.md` |
94
+ | `build` | Build a storyboard project: narration TTS, image assets, scene HTML composition |
95
+ | `render` | Deterministic Hyperframes render → MP4/WebM/MOV |
96
+
97
+ ### Scene authoring (lower-level)
98
+
99
+ | Tool | Description |
100
+ |------|-------------|
101
+ | `scene_list_styles` | List the 8 vendored visual identities (Swiss Pulse, Data Drift, …) or fetch one |
95
102
  | `scene_add` | Append a beat (narration + backdrop + composed HTML) |
96
103
  | `scene_install_skill` | Install the Hyperframes skill bundle into a scene project |
97
104
  | `scene_lint` | Validate composition HTML against the visual identity |
98
- | `scene_render` | Deterministic Hyperframes render → MP4 |
99
105
  | `scene_compose_prompts` | Emit the per-beat compose plan without making an LLM call |
100
- | `scene_build` | Build a storyboard project from `STORYBOARD.md` cues with narration, image assets, composition, and render steps |
101
106
 
102
107
  ### Generation (13)
103
108
 
@@ -139,7 +144,7 @@ Tool names are MCP-side. Your host typically prefixes them (e.g. Claude shows th
139
144
  | Tool | Description |
140
145
  |------|-------------|
141
146
  | `audio_dub` | AI voice dubbing (ElevenLabs) |
142
- | `audio_voice_clone` | Voice clone from sample |
147
+ | `audio_clone_voice` | Voice clone from sample |
143
148
  | `audio_isolate` | Vocal / background isolation |
144
149
  | `audio_duck` | Auto-duck BGM under speech |
145
150
  | `audio_transcribe` | Transcript with word-level timing (Whisper) |
@@ -152,14 +157,14 @@ Tool names are MCP-side. Your host typically prefixes them (e.g. Claude shows th
152
157
  | `detect_scenes` | Find shot boundaries |
153
158
  | `detect_beats` | Find music beats |
154
159
 
155
- ### Analysis (4)
160
+ ### Inspection (4)
156
161
 
157
162
  | Tool | Description |
158
163
  |------|-------------|
159
- | `analyze_media` | Unified image / video / YouTube analysis (Gemini) |
160
- | `analyze_video` | Temporal video understanding (Gemini) |
161
- | `analyze_review` | AI video review + auto-fix suggestions |
162
- | `analyze_suggest` | Natural-language project edit suggestions (Gemini); optional auto-apply |
164
+ | `inspect_media` | Unified image / video / YouTube analysis (Gemini) |
165
+ | `inspect_video` | Temporal video understanding (Gemini) |
166
+ | `inspect_review` | AI video review + auto-fix suggestions |
167
+ | `inspect_suggest` | Natural-language project edit suggestions (Gemini); optional auto-apply |
163
168
 
164
169
  ### Timeline (10)
165
170
 
@@ -179,14 +184,14 @@ Tool names are MCP-side. Your host typically prefixes them (e.g. Claude shows th
179
184
  | `project_create` / `project_info` | `.vibe.json` lifecycle |
180
185
  | `export_video` | Export project to MP4/WebM/MOV via FFmpeg |
181
186
 
182
- ### Pipelines (4)
187
+ ### Remix & pipelines (4)
183
188
 
184
189
  | Tool | Description |
185
190
  |------|-------------|
186
- | `pipeline_run` | Execute a multi-stage YAML pipeline |
187
- | `pipeline_highlights` | Long-form → highlight clips |
188
- | `pipeline_auto_shorts` | Long-form → vertical shorts |
189
- | `pipeline_regenerate_scene` | Re-render a single scene against an existing storyboard.{yaml,json} |
191
+ | `run` | Execute a multi-stage YAML pipeline (`vibe run pipeline.yaml`) |
192
+ | `remix_highlights` | Long-form → highlight clips |
193
+ | `remix_auto_shorts` | Long-form → vertical shorts |
194
+ | `remix_regenerate_scene` | Re-render a single scene against an existing storyboard.{yaml,json} |
190
195
 
191
196
  ### Walkthrough (1)
192
197
 
@@ -225,7 +230,7 @@ API keys are read from the host's environment (`~/.zshrc`, MCP config `env` bloc
225
230
  | Variable | Used by |
226
231
  |----------|---------|
227
232
  | `OPENAI_API_KEY` | gpt-image-2, Whisper, GPT |
228
- | `ANTHROPIC_API_KEY` | Claude (translate-srt, highlights, scene_build compose pipeline) |
233
+ | `ANTHROPIC_API_KEY` | Claude (translate-srt, highlights, build compose pipeline) |
229
234
  | `GOOGLE_API_KEY` | Gemini (analyze, review, silence-cut, narrate) |
230
235
  | `ELEVENLABS_API_KEY` | TTS, voice-clone, dubbing, SFX |
231
236
  | `XAI_API_KEY` | Grok |
package/dist/index.js CHANGED
@@ -7410,7 +7410,7 @@ function buildEmptyRootHtml(opts) {
7410
7410
  }
7411
7411
  function buildDesignMd(opts) {
7412
7412
  const { name, style } = opts;
7413
- const intro = style ? `Visual identity for **${name}**, scaffolded from the **${style.name}** style (after ${style.designer}). Customise freely \u2014 this file is the single source of truth for every scene's palette, typography, and motion.` : `Visual identity for **${name}**. Fill the sections below before authoring any scene HTML or generating any backdrop. Pick a named style with \`vibe scene styles\` if you want a credible starting point.`;
7413
+ const intro = style ? `Visual identity for **${name}**, scaffolded from the **${style.name}** style (after ${style.designer}). Customise freely \u2014 this file is the single source of truth for every scene's palette, typography, and motion.` : `Visual identity for **${name}**. Fill the sections below before authoring any scene HTML or generating any backdrop. Pick a named style with \`vibe scene list-styles\` if you want a credible starting point.`;
7414
7414
  const moodLine = style ? `**Mood:** ${style.mood} \xB7 **Best for:** ${style.bestFor}` : `**Mood:** _(one line \u2014 what should the viewer FEEL?)_`;
7415
7415
  const palette = style ? `${style.palette.map((c) => `- \`${c}\``).join("\n")}
7416
7416
 
@@ -7468,7 +7468,7 @@ ${avoid}
7468
7468
 
7469
7469
  ---
7470
7470
 
7471
- _Browse other named styles: \`vibe scene styles\`_
7471
+ _Browse other named styles: \`vibe scene list-styles\`_
7472
7472
  ${style ? `_This file was seeded by \`vibe scene init --visual-style "${style.name}"\`._` : `_Seed this file from a named style: \`vibe scene init <dir> --visual-style "<name>"\`._`}
7473
7473
  `;
7474
7474
  }
@@ -7534,7 +7534,7 @@ typography, motion, and transition rules. Both the agent-driven path and
7534
7534
  the fallback emit reference it; scenes that contradict DESIGN.md are
7535
7535
  rejected by the Hyperframes \`hyperframes\` skill.
7536
7536
 
7537
- Browse named styles: \`vibe scene styles\`. Re-seed from one with
7537
+ Browse named styles: \`vibe scene list-styles\`. Re-seed from one with
7538
7538
  \`vibe scene init . --visual-style "Swiss Pulse"\` (idempotent).
7539
7539
 
7540
7540
  ## Skills \u2014 USE THESE FIRST
@@ -18508,8 +18508,8 @@ var init_elevenlabs = __esm({
18508
18508
  "generate speech",
18509
18509
  "generate sound-effect",
18510
18510
  "generate music",
18511
- "audio voices",
18512
- "audio voice-clone",
18511
+ "audio list-voices",
18512
+ "audio clone-voice",
18513
18513
  "audio dub"
18514
18514
  ]
18515
18515
  });
@@ -454660,7 +454660,7 @@ Run 'vibe schema edit.<command>' for structured parameter info.
454660
454660
  exitWithError(generalError(`Frame interpolation failed: ${msg}`));
454661
454661
  }
454662
454662
  });
454663
- editCommand.command("upscale-video").description("Upscale video resolution using AI or FFmpeg").argument("<video>", "Video file path").option("-o, --output <path>", "Output file path").option("-s, --scale <factor>", "Scale factor: 2 or 4", "2").option("-m, --model <model>", "Model: real-esrgan, topaz", "real-esrgan").option("--ffmpeg", "Use FFmpeg lanczos (free, no API)").option("-k, --api-key <key>", "Replicate API token (or set REPLICATE_API_TOKEN env)").option("--no-wait", "Start processing and return task ID without waiting").option("--dry-run", "Preview parameters without executing").action(async (videoPath, options) => {
454663
+ editCommand.command("upscale").description("Upscale video resolution using AI or FFmpeg").argument("<video>", "Video file path").option("-o, --output <path>", "Output file path").option("-s, --scale <factor>", "Scale factor: 2 or 4", "2").option("-m, --model <model>", "Model: real-esrgan, topaz", "real-esrgan").option("--ffmpeg", "Use FFmpeg lanczos (free, no API)").option("-k, --api-key <key>", "Replicate API token (or set REPLICATE_API_TOKEN env)").option("--no-wait", "Start processing and return task ID without waiting").option("--dry-run", "Preview parameters without executing").action(async (videoPath, options) => {
454664
454664
  const startedAt = Date.now();
454665
454665
  try {
454666
454666
  if (options.output) {
@@ -454673,7 +454673,7 @@ Run 'vibe schema edit.<command>' for structured parameter info.
454673
454673
  }
454674
454674
  if (options.dryRun) {
454675
454675
  outputSuccess({
454676
- command: "edit upscale-video",
454676
+ command: "edit upscale",
454677
454677
  startedAt,
454678
454678
  dryRun: true,
454679
454679
  data: {
@@ -454709,7 +454709,7 @@ Run 'vibe schema edit.<command>' for structured parameter info.
454709
454709
  spinner3.succeed(source_default.green(`Upscaled to ${newWidth}x${newHeight}`));
454710
454710
  if (isJsonMode()) {
454711
454711
  outputSuccess({
454712
- command: "edit upscale-video",
454712
+ command: "edit upscale",
454713
454713
  startedAt,
454714
454714
  data: {
454715
454715
  dimensions: `${newWidth}x${newHeight}`,
@@ -462016,7 +462016,7 @@ Examples:
462016
462016
  $ vibe scene lint # Validate every scene against composition rules
462017
462017
  $ vibe scene lint --fix # Auto-fix mechanical issues (e.g. missing class="clip")
462018
462018
  $ vibe scene lint --json # Structured output for agent loops
462019
- $ vibe scene styles # Browse seed visual styles for DESIGN.md
462019
+ $ vibe scene list-styles # Browse seed visual styles for DESIGN.md
462020
462020
 
462021
462021
  For the project flow (init / build / render), use the top-level commands.
462022
462022
  The \`scene init\`, \`scene build\`, and \`scene render\` legacy aliases
@@ -462131,13 +462131,13 @@ sceneCommand.command("compose-prompts").description("Emit the per-beat compose p
462131
462131
  console.log();
462132
462132
  console.log(source_default.dim("Re-run with --json to get the full per-beat userPrompt + cues for direct consumption."));
462133
462133
  });
462134
- sceneCommand.command("styles").description("List vendored visual styles (or show one) for DESIGN.md seeding").argument("[name]", "Style name to inspect (omit to list all)").action((name) => {
462134
+ sceneCommand.command("list-styles").description("List vendored visual styles (or show one) for DESIGN.md seeding").argument("[name]", "Style name to inspect (omit to list all)").action((name) => {
462135
462135
  const startedAt = Date.now();
462136
462136
  if (!name) {
462137
462137
  const all = listVisualStyles();
462138
462138
  if (isJsonMode()) {
462139
462139
  outputSuccess({
462140
- command: "scene styles",
462140
+ command: "scene list-styles",
462141
462141
  startedAt,
462142
462142
  data: {
462143
462143
  count: all.length,
@@ -462161,7 +462161,7 @@ sceneCommand.command("styles").description("List vendored visual styles (or show
462161
462161
  );
462162
462162
  }
462163
462163
  console.log();
462164
- console.log(source_default.dim("Show details: "), source_default.cyan('vibe scene styles "<name>"'));
462164
+ console.log(source_default.dim("Show details: "), source_default.cyan('vibe scene list-styles "<name>"'));
462165
462165
  console.log(source_default.dim("Seed DESIGN.md:"), source_default.cyan('vibe scene init <dir> --visual-style "<name>"'));
462166
462166
  return;
462167
462167
  }
@@ -462177,7 +462177,7 @@ sceneCommand.command("styles").description("List vendored visual styles (or show
462177
462177
  }
462178
462178
  if (isJsonMode()) {
462179
462179
  outputSuccess({
462180
- command: "scene styles",
462180
+ command: "scene list-styles",
462181
462181
  startedAt,
462182
462182
  data: { style }
462183
462183
  });
@@ -462652,10 +462652,10 @@ var sceneStylesSchema = z.object({
462652
462652
  )
462653
462653
  });
462654
462654
  var sceneStylesTool = defineTool({
462655
- name: "scene_styles",
462655
+ name: "scene_list_styles",
462656
462656
  category: "scene",
462657
462657
  cost: "free",
462658
- description: "List the 8 vendored visual identities available for `scene_init --visual-style` (Swiss Pulse, Data Drift, \u2026) or, when `name` is provided, return the full DESIGN.md hard-gate body for one style. The DESIGN.md content is what the LLM uses as a non-negotiable visual rulebook during compose-scenes-with-skills.",
462658
+ description: "List the 8 vendored visual identities available for `init --visual-style` (Swiss Pulse, Data Drift, \u2026) or, when `name` is provided, return the full DESIGN.md hard-gate body for one style. The DESIGN.md content is what the LLM uses as a non-negotiable visual rulebook during compose-scenes-with-skills.",
462659
462659
  schema: sceneStylesSchema,
462660
462660
  async execute(args) {
462661
462661
  if (args.name) {
@@ -462663,7 +462663,7 @@ var sceneStylesTool = defineTool({
462663
462663
  if (!style) {
462664
462664
  return {
462665
462665
  success: false,
462666
- error: `Unknown visual style "${args.name}". Run scene_styles with no name to list all 8.`
462666
+ error: `Unknown visual style "${args.name}". Run scene_list_styles with no name to list all 8.`
462667
462667
  };
462668
462668
  }
462669
462669
  return {
@@ -462703,7 +462703,7 @@ var sceneStylesTool = defineTool({
462703
462703
  (s) => ` \u2022 ${s.name} (${s.slug}) \u2014 ${s.mood}; best for ${s.bestFor}`
462704
462704
  ),
462705
462705
  ``,
462706
- `Run scene_styles { name: "<slug>" } to fetch the full DESIGN.md hard-gate body for one style.`
462706
+ `Run scene_list_styles { name: "<slug>" } to fetch the full DESIGN.md hard-gate body for one style.`
462707
462707
  ]
462708
462708
  };
462709
462709
  }
@@ -462715,7 +462715,7 @@ var sceneInitSchema = z.object({
462715
462715
  duration: z.number().optional().describe("Default root composition duration in seconds. Default 10.")
462716
462716
  });
462717
462717
  var sceneInitTool = defineTool({
462718
- name: "scene_init",
462718
+ name: "init",
462719
462719
  category: "scene",
462720
462720
  cost: "free",
462721
462721
  description: "Scaffold a new VibeFrame video scene project. Supports minimal, agent, and full profiles; full includes the current HTML render backend metadata. Idempotent: re-running keeps user-authored files and merges backend config instead of overwriting. No API keys required.",
@@ -462882,7 +462882,7 @@ var sceneRenderSchema = z.object({
462882
462882
  workers: z.number().optional().describe("Capture worker count (1-16). Default 1.")
462883
462883
  });
462884
462884
  var sceneRenderTool = defineTool({
462885
- name: "scene_render",
462885
+ name: "render",
462886
462886
  category: "scene",
462887
462887
  cost: "free",
462888
462888
  description: "Render a scene project to MP4/WebM/MOV via the Hyperframes producer. Requires Chrome installed locally. Output defaults to renders/<projectName>-<isoStamp>.<format>.",
@@ -462899,7 +462899,7 @@ var sceneRenderTool = defineTool({
462899
462899
  workers: args.workers
462900
462900
  });
462901
462901
  if (!result.success) {
462902
- return { success: false, error: result.error ?? "scene_render failed" };
462902
+ return { success: false, error: result.error ?? "render failed" };
462903
462903
  }
462904
462904
  return {
462905
462905
  success: true,
@@ -462937,10 +462937,10 @@ var sceneBuildSchema = z.object({
462937
462937
  force: z.boolean().optional().describe("Re-dispatch primitives even when cached assets exist.")
462938
462938
  });
462939
462939
  var sceneBuildTool = defineTool({
462940
- name: "scene_build",
462940
+ name: "build",
462941
462941
  category: "scene",
462942
462942
  cost: "high",
462943
- description: "v0.60 one-shot orchestrator: read STORYBOARD.md per-beat YAML cues (narration / backdrop / duration), dispatch TTS + image generation per beat, compose scene HTML via the compose-scenes-with-skills pipeline, then render to MP4. Use this instead of chaining scene_init + scene_add + scene_render manually. Caches by SHA256 of (DESIGN.md + cue body) so re-runs are idempotent and cheap.",
462943
+ description: "v0.60 one-shot orchestrator: read STORYBOARD.md per-beat YAML cues (narration / backdrop / duration), dispatch TTS + image generation per beat, compose scene HTML via the compose-scenes-with-skills pipeline, then render to MP4. Use this instead of chaining init + scene_add + render manually. Caches by SHA256 of (DESIGN.md + cue body) so re-runs are idempotent and cheap.",
462944
462944
  schema: sceneBuildSchema,
462945
462945
  async execute(args, ctx) {
462946
462946
  const projectDir = args.projectDir ? resolve23(ctx.workingDirectory, args.projectDir) : ctx.workingDirectory;
@@ -462960,7 +462960,7 @@ var sceneBuildTool = defineTool({
462960
462960
  force: args.force
462961
462961
  });
462962
462962
  if (!result.success) {
462963
- return { success: false, error: result.error ?? "scene_build failed" };
462963
+ return { success: false, error: result.error ?? "build failed" };
462964
462964
  }
462965
462965
  return {
462966
462966
  success: true,
@@ -463043,7 +463043,7 @@ var sceneComposePromptsTool = defineTool({
463043
463043
  name: "scene_compose_prompts",
463044
463044
  category: "scene",
463045
463045
  cost: "free",
463046
- description: "Emit the per-beat compose plan for the host agent to author scene HTML itself. Reads STORYBOARD.md + DESIGN.md and returns each beat's outputPath + userPrompt + cues + body, plus references to the project's SKILL.md (Hyperframes rules) and DESIGN.md (visual identity). The host agent writes each compositions/scene-<id>.html file directly \u2014 VibeFrame makes NO LLM call here. Pairs with scene_install_skill (Phase H1). Phase H2 of the agentic-native composer plan; the internal-LLM batch path (scene_build) remains as a fallback for non-agent contexts.",
463046
+ description: "Emit the per-beat compose plan for the host agent to author scene HTML itself. Reads STORYBOARD.md + DESIGN.md and returns each beat's outputPath + userPrompt + cues + body, plus references to the project's SKILL.md (Hyperframes rules) and DESIGN.md (visual identity). The host agent writes each compositions/scene-<id>.html file directly \u2014 VibeFrame makes NO LLM call here. Pairs with scene_install_skill (Phase H1). Phase H2 of the agentic-native composer plan; the internal-LLM batch path (build) remains as a fallback for non-agent contexts.",
463047
463047
  schema: sceneComposePromptsSchema,
463048
463048
  async execute(args, ctx) {
463049
463049
  const projectDir = resolve23(ctx.workingDirectory, args.projectDir);
@@ -463136,7 +463136,7 @@ var audioIsolateTool = defineTool({
463136
463136
  }
463137
463137
  });
463138
463138
  var audioVoiceCloneTool = defineTool({
463139
- name: "audio_voice_clone",
463139
+ name: "audio_clone_voice",
463140
463140
  category: "audio",
463141
463141
  cost: "low",
463142
463142
  description: "Clone a voice from audio samples using ElevenLabs. Requires ELEVENLABS_API_KEY.",
@@ -463923,7 +463923,7 @@ async function executeSuggestEdit(options) {
463923
463923
 
463924
463924
  // ../cli/src/tools/manifest/analyze.ts
463925
463925
  var analyzeMediaTool = defineTool({
463926
- name: "analyze_media",
463926
+ name: "inspect_media",
463927
463927
  category: "analyze",
463928
463928
  cost: "low",
463929
463929
  description: "Analyze media (image, video, or YouTube URL) using Gemini AI. Requires GOOGLE_API_KEY.",
@@ -463951,7 +463951,7 @@ var analyzeMediaTool = defineTool({
463951
463951
  }
463952
463952
  });
463953
463953
  var analyzeVideoTool = defineTool({
463954
- name: "analyze_video",
463954
+ name: "inspect_video",
463955
463955
  category: "analyze",
463956
463956
  cost: "low",
463957
463957
  description: "Analyze video content using Gemini AI with temporal understanding. Requires GOOGLE_API_KEY.",
@@ -463979,7 +463979,7 @@ var analyzeVideoTool = defineTool({
463979
463979
  }
463980
463980
  });
463981
463981
  var analyzeReviewTool = defineTool({
463982
- name: "analyze_review",
463982
+ name: "inspect_review",
463983
463983
  category: "analyze",
463984
463984
  cost: "low",
463985
463985
  description: "AI video review: analyzes quality, suggests fixes, and optionally auto-applies them. Requires GOOGLE_API_KEY.",
@@ -464007,7 +464007,7 @@ var analyzeReviewTool = defineTool({
464007
464007
  }
464008
464008
  });
464009
464009
  var analyzeSuggestTool = defineTool({
464010
- name: "analyze_suggest",
464010
+ name: "inspect_suggest",
464011
464011
  category: "analyze",
464012
464012
  cost: "low",
464013
464013
  description: "Get natural-language edit suggestions for a project from Gemini. Returns suggestions array with type/confidence/clipIds. With `apply: true`, applies the first suggestion in place. Requires GOOGLE_API_KEY.",
@@ -465325,7 +465325,7 @@ async function executePipeline(manifest2, options = {}) {
465325
465325
 
465326
465326
  // ../cli/src/tools/manifest/pipeline.ts
465327
465327
  var pipelineHighlightsTool = defineTool({
465328
- name: "pipeline_highlights",
465328
+ name: "remix_highlights",
465329
465329
  category: "pipeline",
465330
465330
  cost: "low",
465331
465331
  description: "Extract highlight clips from a longer video using AI analysis. Requires OPENAI_API_KEY+ANTHROPIC_API_KEY or GOOGLE_API_KEY (with --use-gemini).",
@@ -465358,10 +465358,10 @@ var pipelineHighlightsTool = defineTool({
465358
465358
  }
465359
465359
  });
465360
465360
  var pipelineAutoShortsTool = defineTool({
465361
- name: "pipeline_auto_shorts",
465361
+ name: "remix_auto_shorts",
465362
465362
  category: "pipeline",
465363
465363
  cost: "medium",
465364
- description: "Automatically generate short-form content (Reels/TikTok/Shorts) from a longer video. Same API key requirements as pipeline_highlights.",
465364
+ description: "Automatically generate short-form content (Reels/TikTok/Shorts) from a longer video. Same API key requirements as remix_highlights.",
465365
465365
  schema: z6.object({
465366
465366
  video: z6.string().describe("Path to the input video file"),
465367
465367
  outputDir: z6.string().optional().describe("Output directory for shorts"),
@@ -465395,7 +465395,7 @@ var pipelineAutoShortsTool = defineTool({
465395
465395
  }
465396
465396
  });
465397
465397
  var pipelineRunTool = defineTool({
465398
- name: "pipeline_run",
465398
+ name: "run",
465399
465399
  category: "pipeline",
465400
465400
  cost: "very-high",
465401
465401
  surfaces: ["mcp"],
@@ -465474,7 +465474,7 @@ var pipelineRunTool = defineTool({
465474
465474
  }
465475
465475
  });
465476
465476
  var pipelineRegenerateSceneTool = defineTool({
465477
- name: "pipeline_regenerate_scene",
465477
+ name: "remix_regenerate_scene",
465478
465478
  category: "pipeline",
465479
465479
  cost: "high",
465480
465480
  description: "Regenerate specific scenes against an existing storyboard.{yaml,json} on disk. Can regenerate video, image, or narration independently.",
@@ -467728,7 +467728,7 @@ Safe to invoke on user-provided projects.
467728
467728
 
467729
467729
  \`\`\`bash
467730
467730
  vibe scene init <dir> [-r 16:9|9:16|1:1|4:5] [-d <sec>] [--visual-style "<name>"]
467731
- vibe scene styles [<name>] # list / show vendored visual identities
467731
+ vibe scene list-styles [<name>] # list / show vendored visual identities
467732
467732
  vibe scene install-skill [<dir>] [--host all] # retroactive composition-rules install
467733
467733
  vibe scene add <name> --style <preset> [...]
467734
467734
  vibe scene compose-prompts [<dir>] [--beat <id>] # H2: emit plan, no LLM call
@@ -467916,7 +467916,7 @@ var META = {
467916
467916
  ],
467917
467917
  relatedCommands: [
467918
467918
  "vibe init",
467919
- "vibe scene styles",
467919
+ "vibe scene list-styles",
467920
467920
  "vibe scene install-skill",
467921
467921
  "vibe scene compose-prompts",
467922
467922
  "vibe build",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeframe/mcp-server",
3
- "version": "0.75.0",
3
+ "version": "0.77.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/cli": "0.75.0",
61
- "@vibeframe/core": "0.75.0"
60
+ "@vibeframe/cli": "0.77.0",
61
+ "@vibeframe/core": "0.77.0"
62
62
  },
63
63
  "engines": {
64
64
  "node": ">=20"