@vibeframe/cli 0.75.0 → 0.76.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 +21 -21
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -57375,7 +57375,7 @@ var init_scene2 = __esm({
|
|
|
57375
57375
|
name: "scene_styles",
|
|
57376
57376
|
category: "scene",
|
|
57377
57377
|
cost: "free",
|
|
57378
|
-
description: "List the 8 vendored visual identities available for `
|
|
57378
|
+
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.",
|
|
57379
57379
|
schema: sceneStylesSchema,
|
|
57380
57380
|
async execute(args) {
|
|
57381
57381
|
if (args.name) {
|
|
@@ -57435,7 +57435,7 @@ var init_scene2 = __esm({
|
|
|
57435
57435
|
duration: external_exports.number().optional().describe("Default root composition duration in seconds. Default 10.")
|
|
57436
57436
|
});
|
|
57437
57437
|
sceneInitTool = defineTool({
|
|
57438
|
-
name: "
|
|
57438
|
+
name: "init",
|
|
57439
57439
|
category: "scene",
|
|
57440
57440
|
cost: "free",
|
|
57441
57441
|
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.",
|
|
@@ -57581,7 +57581,7 @@ var init_scene2 = __esm({
|
|
|
57581
57581
|
workers: external_exports.number().optional().describe("Capture worker count (1-16). Default 1.")
|
|
57582
57582
|
});
|
|
57583
57583
|
sceneRenderTool = defineTool({
|
|
57584
|
-
name: "
|
|
57584
|
+
name: "render",
|
|
57585
57585
|
category: "scene",
|
|
57586
57586
|
cost: "free",
|
|
57587
57587
|
description: "Render a scene project to MP4/WebM/MOV via the Hyperframes producer. Requires Chrome installed locally. Output defaults to renders/<projectName>-<isoStamp>.<format>.",
|
|
@@ -57598,7 +57598,7 @@ var init_scene2 = __esm({
|
|
|
57598
57598
|
workers: args.workers
|
|
57599
57599
|
});
|
|
57600
57600
|
if (!result.success) {
|
|
57601
|
-
return { success: false, error: result.error ?? "
|
|
57601
|
+
return { success: false, error: result.error ?? "render failed" };
|
|
57602
57602
|
}
|
|
57603
57603
|
return {
|
|
57604
57604
|
success: true,
|
|
@@ -57636,10 +57636,10 @@ var init_scene2 = __esm({
|
|
|
57636
57636
|
force: external_exports.boolean().optional().describe("Re-dispatch primitives even when cached assets exist.")
|
|
57637
57637
|
});
|
|
57638
57638
|
sceneBuildTool = defineTool({
|
|
57639
|
-
name: "
|
|
57639
|
+
name: "build",
|
|
57640
57640
|
category: "scene",
|
|
57641
57641
|
cost: "high",
|
|
57642
|
-
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
|
|
57642
|
+
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.",
|
|
57643
57643
|
schema: sceneBuildSchema,
|
|
57644
57644
|
async execute(args, ctx) {
|
|
57645
57645
|
const projectDir = args.projectDir ? resolve55(ctx.workingDirectory, args.projectDir) : ctx.workingDirectory;
|
|
@@ -57659,7 +57659,7 @@ var init_scene2 = __esm({
|
|
|
57659
57659
|
force: args.force
|
|
57660
57660
|
});
|
|
57661
57661
|
if (!result.success) {
|
|
57662
|
-
return { success: false, error: result.error ?? "
|
|
57662
|
+
return { success: false, error: result.error ?? "build failed" };
|
|
57663
57663
|
}
|
|
57664
57664
|
return {
|
|
57665
57665
|
success: true,
|
|
@@ -57742,7 +57742,7 @@ var init_scene2 = __esm({
|
|
|
57742
57742
|
name: "scene_compose_prompts",
|
|
57743
57743
|
category: "scene",
|
|
57744
57744
|
cost: "free",
|
|
57745
|
-
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 (
|
|
57745
|
+
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.",
|
|
57746
57746
|
schema: sceneComposePromptsSchema,
|
|
57747
57747
|
async execute(args, ctx) {
|
|
57748
57748
|
const projectDir = resolve55(ctx.workingDirectory, args.projectDir);
|
|
@@ -57842,7 +57842,7 @@ var init_audio2 = __esm({
|
|
|
57842
57842
|
}
|
|
57843
57843
|
});
|
|
57844
57844
|
audioVoiceCloneTool = defineTool({
|
|
57845
|
-
name: "
|
|
57845
|
+
name: "audio_clone_voice",
|
|
57846
57846
|
category: "audio",
|
|
57847
57847
|
cost: "low",
|
|
57848
57848
|
description: "Clone a voice from audio samples using ElevenLabs. Requires ELEVENLABS_API_KEY.",
|
|
@@ -58388,7 +58388,7 @@ var init_analyze = __esm({
|
|
|
58388
58388
|
init_ai_review();
|
|
58389
58389
|
init_ai_suggest_edit();
|
|
58390
58390
|
analyzeMediaTool = defineTool({
|
|
58391
|
-
name: "
|
|
58391
|
+
name: "inspect_media",
|
|
58392
58392
|
category: "analyze",
|
|
58393
58393
|
cost: "low",
|
|
58394
58394
|
description: "Analyze media (image, video, or YouTube URL) using Gemini AI. Requires GOOGLE_API_KEY.",
|
|
@@ -58416,7 +58416,7 @@ var init_analyze = __esm({
|
|
|
58416
58416
|
}
|
|
58417
58417
|
});
|
|
58418
58418
|
analyzeVideoTool = defineTool({
|
|
58419
|
-
name: "
|
|
58419
|
+
name: "inspect_video",
|
|
58420
58420
|
category: "analyze",
|
|
58421
58421
|
cost: "low",
|
|
58422
58422
|
description: "Analyze video content using Gemini AI with temporal understanding. Requires GOOGLE_API_KEY.",
|
|
@@ -58444,7 +58444,7 @@ var init_analyze = __esm({
|
|
|
58444
58444
|
}
|
|
58445
58445
|
});
|
|
58446
58446
|
analyzeReviewTool = defineTool({
|
|
58447
|
-
name: "
|
|
58447
|
+
name: "inspect_review",
|
|
58448
58448
|
category: "analyze",
|
|
58449
58449
|
cost: "low",
|
|
58450
58450
|
description: "AI video review: analyzes quality, suggests fixes, and optionally auto-applies them. Requires GOOGLE_API_KEY.",
|
|
@@ -58472,7 +58472,7 @@ var init_analyze = __esm({
|
|
|
58472
58472
|
}
|
|
58473
58473
|
});
|
|
58474
58474
|
analyzeSuggestTool = defineTool({
|
|
58475
|
-
name: "
|
|
58475
|
+
name: "inspect_suggest",
|
|
58476
58476
|
category: "analyze",
|
|
58477
58477
|
cost: "low",
|
|
58478
58478
|
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.",
|
|
@@ -58853,7 +58853,7 @@ var init_pipeline2 = __esm({
|
|
|
58853
58853
|
init_ai_highlights();
|
|
58854
58854
|
init_pipeline();
|
|
58855
58855
|
pipelineHighlightsTool = defineTool({
|
|
58856
|
-
name: "
|
|
58856
|
+
name: "remix_highlights",
|
|
58857
58857
|
category: "pipeline",
|
|
58858
58858
|
cost: "low",
|
|
58859
58859
|
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).",
|
|
@@ -58886,10 +58886,10 @@ var init_pipeline2 = __esm({
|
|
|
58886
58886
|
}
|
|
58887
58887
|
});
|
|
58888
58888
|
pipelineAutoShortsTool = defineTool({
|
|
58889
|
-
name: "
|
|
58889
|
+
name: "remix_auto_shorts",
|
|
58890
58890
|
category: "pipeline",
|
|
58891
58891
|
cost: "medium",
|
|
58892
|
-
description: "Automatically generate short-form content (Reels/TikTok/Shorts) from a longer video. Same API key requirements as
|
|
58892
|
+
description: "Automatically generate short-form content (Reels/TikTok/Shorts) from a longer video. Same API key requirements as remix_highlights.",
|
|
58893
58893
|
schema: external_exports.object({
|
|
58894
58894
|
video: external_exports.string().describe("Path to the input video file"),
|
|
58895
58895
|
outputDir: external_exports.string().optional().describe("Output directory for shorts"),
|
|
@@ -58923,7 +58923,7 @@ var init_pipeline2 = __esm({
|
|
|
58923
58923
|
}
|
|
58924
58924
|
});
|
|
58925
58925
|
pipelineRunTool = defineTool({
|
|
58926
|
-
name: "
|
|
58926
|
+
name: "run",
|
|
58927
58927
|
category: "pipeline",
|
|
58928
58928
|
cost: "very-high",
|
|
58929
58929
|
surfaces: ["mcp"],
|
|
@@ -59002,7 +59002,7 @@ var init_pipeline2 = __esm({
|
|
|
59002
59002
|
}
|
|
59003
59003
|
});
|
|
59004
59004
|
pipelineRegenerateSceneTool = defineTool({
|
|
59005
|
-
name: "
|
|
59005
|
+
name: "remix_regenerate_scene",
|
|
59006
59006
|
category: "pipeline",
|
|
59007
59007
|
cost: "high",
|
|
59008
59008
|
description: "Regenerate specific scenes against an existing storyboard.{yaml,json} on disk. Can regenerate video, image, or narration independently.",
|
|
@@ -62167,7 +62167,7 @@ init_source();
|
|
|
62167
62167
|
// package.json
|
|
62168
62168
|
var package_default = {
|
|
62169
62169
|
name: "@vibeframe/cli",
|
|
62170
|
-
version: "0.
|
|
62170
|
+
version: "0.76.0",
|
|
62171
62171
|
description: "VibeFrame CLI - natural language video editing from the terminal",
|
|
62172
62172
|
private: false,
|
|
62173
62173
|
license: "MIT",
|
|
@@ -71169,7 +71169,7 @@ You have access to tools for:
|
|
|
71169
71169
|
- For generate_image: Ask what kind of image (subject, style, mood) if not specified
|
|
71170
71170
|
- For generate_video: Ask about the video prompt/motion if not specified
|
|
71171
71171
|
- For generate_speech: Ask what text to convert if not provided
|
|
71172
|
-
- For
|
|
71172
|
+
- For build (text \u2192 MP4): Ask for the storyboard / script content
|
|
71173
71173
|
- Example: "generate an image" \u2192 Ask "What kind of image would you like? (e.g., space landscape, cute robot, product photo)"
|
|
71174
71174
|
- DON'T make up random content - the user knows what they want
|
|
71175
71175
|
|
|
@@ -71212,7 +71212,7 @@ When working with script-to-video / scene-build output directories:
|
|
|
71212
71212
|
- **narration-N.mp3**: Generated narration audio for each scene
|
|
71213
71213
|
|
|
71214
71214
|
USE fs_read to examine these files when the user asks about scenes or wants to regenerate content. For example:
|
|
71215
|
-
- "regenerate scene 3" \u2192 First fs_read storyboard.json, tell user what scene 3 contains, then use
|
|
71215
|
+
- "regenerate scene 3" \u2192 First fs_read storyboard.json, tell user what scene 3 contains, then use remix_regenerate_scene
|
|
71216
71216
|
- "what's in scene 2?" \u2192 fs_read storyboard.json and explain scene 2 details
|
|
71217
71217
|
|
|
71218
71218
|
### Error Recovery
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibeframe/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.76.0",
|
|
4
4
|
"description": "VibeFrame CLI - natural language video editing from the terminal",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "MIT",
|
|
@@ -182,8 +182,8 @@
|
|
|
182
182
|
"tsx": "^4.21.0",
|
|
183
183
|
"typescript": "^5.3.3",
|
|
184
184
|
"vitest": "^1.2.2",
|
|
185
|
-
"@vibeframe/
|
|
186
|
-
"@vibeframe/
|
|
185
|
+
"@vibeframe/core": "0.76.0",
|
|
186
|
+
"@vibeframe/ai-providers": "0.76.0"
|
|
187
187
|
},
|
|
188
188
|
"engines": {
|
|
189
189
|
"node": ">=20"
|