@vibeframe/cli 0.94.1 → 0.95.1
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 +84 -19
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -25754,8 +25754,18 @@ async function fileExists(path2) {
|
|
|
25754
25754
|
return false;
|
|
25755
25755
|
}
|
|
25756
25756
|
}
|
|
25757
|
+
async function findProjectConfigPath(cwd = process.cwd()) {
|
|
25758
|
+
let dir = resolve4(cwd);
|
|
25759
|
+
for (; ; ) {
|
|
25760
|
+
const candidate = getProjectConfigPath(dir);
|
|
25761
|
+
if (await fileExists(candidate)) return candidate;
|
|
25762
|
+
const parent = resolve4(dir, "..");
|
|
25763
|
+
if (parent === dir) return null;
|
|
25764
|
+
dir = parent;
|
|
25765
|
+
}
|
|
25766
|
+
}
|
|
25757
25767
|
async function getActiveScope(cwd) {
|
|
25758
|
-
return await
|
|
25768
|
+
return await findProjectConfigPath(cwd) ? "project" : "user";
|
|
25759
25769
|
}
|
|
25760
25770
|
function applyDefaults(parsed) {
|
|
25761
25771
|
const defaults = createDefaultConfig();
|
|
@@ -25787,7 +25797,8 @@ async function loadConfig(options = {}) {
|
|
|
25787
25797
|
const { scope, cwd, merge } = options;
|
|
25788
25798
|
if (merge) {
|
|
25789
25799
|
const user = await readConfigFile(USER_CONFIG_PATH);
|
|
25790
|
-
const
|
|
25800
|
+
const projectPath2 = await findProjectConfigPath(cwd);
|
|
25801
|
+
const project2 = projectPath2 ? await readConfigFile(projectPath2) : null;
|
|
25791
25802
|
if (!user && !project2) return null;
|
|
25792
25803
|
if (!user) return project2;
|
|
25793
25804
|
if (!project2) return user;
|
|
@@ -25808,7 +25819,8 @@ async function loadConfig(options = {}) {
|
|
|
25808
25819
|
if (scope) {
|
|
25809
25820
|
return readConfigFile(getConfigPath(scope, cwd));
|
|
25810
25821
|
}
|
|
25811
|
-
const
|
|
25822
|
+
const projectPath = await findProjectConfigPath(cwd);
|
|
25823
|
+
const project = projectPath ? await readConfigFile(projectPath) : null;
|
|
25812
25824
|
if (project) return project;
|
|
25813
25825
|
return readConfigFile(USER_CONFIG_PATH);
|
|
25814
25826
|
}
|
|
@@ -26225,10 +26237,14 @@ _2\u20133 colours max. Declare explicit hex values; never name colours abstractl
|
|
|
26225
26237
|
- _anti-pattern 3_`;
|
|
26226
26238
|
return `# ${name} \u2014 Design
|
|
26227
26239
|
|
|
26228
|
-
> **Hard-gate.** This file
|
|
26229
|
-
>
|
|
26230
|
-
>
|
|
26231
|
-
>
|
|
26240
|
+
> **Hard-gate (BUILD flow only).** This file is the visual contract for
|
|
26241
|
+
> the scene-project flow (\`vibe build\`, \`vibe scene ...\`, composition
|
|
26242
|
+
> HTML, backdrop image-gen). Author it before authoring scene HTML; the
|
|
26243
|
+
> Hyperframes \`hyperframes\` skill enforces it at composition time.
|
|
26244
|
+
>
|
|
26245
|
+
> **Single-asset requests (\`vibe generate image|video|speech|...\`) do
|
|
26246
|
+
> NOT consult this file.** Run the generate command directly with the
|
|
26247
|
+
> user's prompt. See AGENTS.md \u2192 "Route by the user's actual request".
|
|
26232
26248
|
|
|
26233
26249
|
${intro}
|
|
26234
26250
|
|
|
@@ -26321,12 +26337,35 @@ This project is **bilingual**: it works with both VibeFrame (\`vibe\`) and
|
|
|
26321
26337
|
HeyGen Hyperframes (\`hyperframes\`). You can run either CLI inside this
|
|
26322
26338
|
directory.
|
|
26323
26339
|
|
|
26324
|
-
##
|
|
26340
|
+
## Route the request first
|
|
26341
|
+
|
|
26342
|
+
Before opening DESIGN.md, loading the hyperframes skill, or planning
|
|
26343
|
+
scenes, decide which flow the user actually wants:
|
|
26344
|
+
|
|
26345
|
+
- **ASSET (default for ambiguous prompts).** Single image, single video
|
|
26346
|
+
clip, single TTS line. Even a verb-less paste of a visual brief lands
|
|
26347
|
+
here. Just run \`vibe generate image|video|speech "<paste>" -o assets/<name>\`.
|
|
26348
|
+
Skip DESIGN.md, skip the hyperframes skill.
|
|
26349
|
+
- **BUILD.** Multi-scene / storyboard / composed video. Triggered when
|
|
26350
|
+
the user explicitly asks for "a video built from scenes", "a
|
|
26351
|
+
storyboard", "a multi-scene composition", or names \`vibe build\` /
|
|
26352
|
+
\`vibe scene ...\`. Only here does the hard-gate below apply.
|
|
26353
|
+
- **REMIX.** Transform a media file already on disk: \`vibe remix\`,
|
|
26354
|
+
\`vibe edit\`, \`vibe audio\`.
|
|
26355
|
+
|
|
26356
|
+
If you can't tell, ask: *"single asset or multi-scene project?"* before
|
|
26357
|
+
authoring DESIGN.md or invoking a skill.
|
|
26358
|
+
|
|
26359
|
+
## Visual identity hard-gate (BUILD flow only)
|
|
26325
26360
|
|
|
26326
|
-
**
|
|
26327
|
-
typography, motion, and transition rules. Both the
|
|
26328
|
-
the fallback emit reference it; scenes that
|
|
26329
|
-
rejected by the Hyperframes \`hyperframes\`
|
|
26361
|
+
**Within the BUILD flow,** author \`DESIGN.md\` before any scene HTML.
|
|
26362
|
+
It defines palette, typography, motion, and transition rules. Both the
|
|
26363
|
+
agent-driven path and the fallback emit reference it; scenes that
|
|
26364
|
+
contradict DESIGN.md are rejected by the Hyperframes \`hyperframes\`
|
|
26365
|
+
skill.
|
|
26366
|
+
|
|
26367
|
+
Single-asset requests (\`vibe generate image|video|speech|...\`) do NOT
|
|
26368
|
+
consult this file \u2014 run the generate command directly.
|
|
26330
26369
|
|
|
26331
26370
|
Browse named styles: \`vibe scene list-styles\`. Re-seed from one with
|
|
26332
26371
|
\`vibe scene init . --visual-style "Swiss Pulse"\` (idempotent).
|
|
@@ -63444,7 +63483,7 @@ init_source();
|
|
|
63444
63483
|
// package.json
|
|
63445
63484
|
var package_default = {
|
|
63446
63485
|
name: "@vibeframe/cli",
|
|
63447
|
-
version: "0.
|
|
63486
|
+
version: "0.95.1",
|
|
63448
63487
|
description: "VibeFrame CLI - natural language video editing from the terminal",
|
|
63449
63488
|
private: false,
|
|
63450
63489
|
license: "MIT",
|
|
@@ -71685,10 +71724,29 @@ vibe walkthrough scene # step-by-step authoring guide (scene)
|
|
|
71685
71724
|
vibe walkthrough pipeline # step-by-step authoring guide (pipeline)
|
|
71686
71725
|
\`\`\`
|
|
71687
71726
|
|
|
71688
|
-
##
|
|
71727
|
+
## Route by the user's actual request
|
|
71728
|
+
|
|
71729
|
+
Routing the user's request correctly is the most important judgement call
|
|
71730
|
+
you'll make. Do not force everything into a scene project.
|
|
71731
|
+
|
|
71732
|
+
**ASSET \u2014 default for any single-asset request OR ambiguous prompt.**
|
|
71733
|
+
If the user asks for a single image, single video clip, sound effect, music
|
|
71734
|
+
bed, or narration file \u2014 **OR pastes a visual/audio brief without explicit
|
|
71735
|
+
storyboard / scene / multi-scene language** \u2014 treat it as ASSET. Use
|
|
71736
|
+
\`vibe generate ...\` directly. Do **not** edit \`DESIGN.md\`,
|
|
71737
|
+
\`STORYBOARD.md\`, run \`vibe scene ...\`, or auto-load the hyperframes
|
|
71738
|
+
skill until BUILD intent is explicit. The visual-identity hard-gate
|
|
71739
|
+
applies to BUILD only.
|
|
71689
71740
|
|
|
71690
|
-
|
|
71691
|
-
|
|
71741
|
+
Examples:
|
|
71742
|
+
- "make this image" \u2192 \`vibe generate image "..." -o assets/name.png\`
|
|
71743
|
+
- "use this image to make a video" \u2192 \`vibe generate video "..." -i image.png -o renders/name.mp4\`
|
|
71744
|
+
- "please add visuals using OpenAI image gen" \u2192 \`vibe generate image "..." -p openai ...\`
|
|
71745
|
+
- *(verb-less paste)* "aerial view of a misty mountain peak at sunrise..." \u2192 \`vibe generate image "<paste>" -o assets/mountain-peak.png\`. **Don't** read it as a brief for DESIGN.md.
|
|
71746
|
+
|
|
71747
|
+
If genuinely uncertain, ask one short question: *"single asset or
|
|
71748
|
+
multi-scene project?"* before authoring DESIGN.md or loading the
|
|
71749
|
+
hyperframes skill.
|
|
71692
71750
|
|
|
71693
71751
|
**BUILD \u2014 create new video from text intent.**
|
|
71694
71752
|
Use \`vibe build\` with a STORYBOARD.md + DESIGN.md. The
|
|
@@ -71700,9 +71758,9 @@ bundle, then renders to MP4. Idempotent re-runs reuse cached assets.
|
|
|
71700
71758
|
Use \`vibe remix\`, \`vibe edit\`, or \`vibe audio\`. One-shot,
|
|
71701
71759
|
batch-oriented operations on a file the user already has on disk.
|
|
71702
71760
|
|
|
71703
|
-
Decision rule: if the user
|
|
71704
|
-
|
|
71705
|
-
REMIX.
|
|
71761
|
+
Decision rule: if the user asks for one asset, it's ASSET. If the user asks
|
|
71762
|
+
for a multi-scene/storyboard/composed video, it's BUILD. If the user is
|
|
71763
|
+
starting from a media file and wants it transformed, it's REMIX.
|
|
71706
71764
|
|
|
71707
71765
|
## Common workflows
|
|
71708
71766
|
|
|
@@ -71824,6 +71882,13 @@ overview content moved into AGENTS.md above):
|
|
|
71824
71882
|
- \`/vibe-pipeline\` \u2014 YAML pipeline authoring helper (Video as Code)
|
|
71825
71883
|
- \`/vibe-scene\` \u2014 per-scene HTML authoring + \`vibe build\`
|
|
71826
71884
|
|
|
71885
|
+
Claude-specific routing note: follow the ASSET / BUILD / REMIX decision
|
|
71886
|
+
rules in \`AGENTS.md\`. In particular, a request for one generated image or
|
|
71887
|
+
one generated video clip is an ASSET request: use \`vibe generate image\` or
|
|
71888
|
+
\`vibe generate video\` directly. Do not invoke \`/vibe-scene\`, edit
|
|
71889
|
+
\`DESIGN.md\`, or edit \`STORYBOARD.md\` unless the user explicitly asks for a
|
|
71890
|
+
scene, storyboard, or composed video.
|
|
71891
|
+
|
|
71827
71892
|
To install / update them later:
|
|
71828
71893
|
|
|
71829
71894
|
\`\`\`bash
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibeframe/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.95.1",
|
|
4
4
|
"description": "VibeFrame CLI - natural language video editing from the terminal",
|
|
5
5
|
"private": false,
|
|
6
6
|
"license": "MIT",
|
|
@@ -183,8 +183,8 @@
|
|
|
183
183
|
"tsx": "^4.21.0",
|
|
184
184
|
"typescript": "^5.3.3",
|
|
185
185
|
"vitest": "^1.2.2",
|
|
186
|
-
"@vibeframe/ai-providers": "0.
|
|
187
|
-
"@vibeframe/core": "0.
|
|
186
|
+
"@vibeframe/ai-providers": "0.95.1",
|
|
187
|
+
"@vibeframe/core": "0.95.1"
|
|
188
188
|
},
|
|
189
189
|
"engines": {
|
|
190
190
|
"node": ">=20"
|