@vibeframe/cli 0.94.1 → 0.95.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 (2) hide show
  1. package/dist/index.js +40 -10
  2. 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 fileExists(getProjectConfigPath(cwd)) ? "project" : "user";
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 project2 = await readConfigFile(getProjectConfigPath(cwd));
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 project = await readConfigFile(getProjectConfigPath(cwd));
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
  }
@@ -63444,7 +63456,7 @@ init_source();
63444
63456
  // package.json
63445
63457
  var package_default = {
63446
63458
  name: "@vibeframe/cli",
63447
- version: "0.94.1",
63459
+ version: "0.95.0",
63448
63460
  description: "VibeFrame CLI - natural language video editing from the terminal",
63449
63461
  private: false,
63450
63462
  license: "MIT",
@@ -71685,10 +71697,21 @@ vibe walkthrough scene # step-by-step authoring guide (scene)
71685
71697
  vibe walkthrough pipeline # step-by-step authoring guide (pipeline)
71686
71698
  \`\`\`
71687
71699
 
71688
- ## Two flows \u2014 pick by intent
71700
+ ## Route by the user's actual request
71701
+
71702
+ Routing the user's request correctly is the most important judgement call
71703
+ you'll make. Do not force everything into a scene project.
71689
71704
 
71690
- VibeFrame splits cleanly into two flows. Routing the user's request
71691
- correctly is the most important judgement call you'll make.
71705
+ **ASSET \u2014 create one generated asset.**
71706
+ If the user asks for a single image, single video clip, sound effect, music
71707
+ bed, or narration file, use \`vibe generate ...\` directly. Do **not** edit
71708
+ \`DESIGN.md\`, \`STORYBOARD.md\`, or run \`vibe scene ...\` unless the user
71709
+ explicitly asks to build a storyboard/scene/composed video.
71710
+
71711
+ Examples:
71712
+ - "make this image" \u2192 \`vibe generate image "..." -o assets/name.png\`
71713
+ - "use this image to make a video" \u2192 \`vibe generate video "..." -i image.png -o renders/name.mp4\`
71714
+ - "please add visuals using OpenAI image gen" \u2192 \`vibe generate image "..." -p openai ...\`
71692
71715
 
71693
71716
  **BUILD \u2014 create new video from text intent.**
71694
71717
  Use \`vibe build\` with a STORYBOARD.md + DESIGN.md. The
@@ -71700,9 +71723,9 @@ bundle, then renders to MP4. Idempotent re-runs reuse cached assets.
71700
71723
  Use \`vibe remix\`, \`vibe edit\`, or \`vibe audio\`. One-shot,
71701
71724
  batch-oriented operations on a file the user already has on disk.
71702
71725
 
71703
- Decision rule: if the user is starting from intent (a script, a brand,
71704
- an idea), it's BUILD. If the user is starting from a media file, it's
71705
- REMIX.
71726
+ Decision rule: if the user asks for one asset, it's ASSET. If the user asks
71727
+ for a multi-scene/storyboard/composed video, it's BUILD. If the user is
71728
+ starting from a media file and wants it transformed, it's REMIX.
71706
71729
 
71707
71730
  ## Common workflows
71708
71731
 
@@ -71824,6 +71847,13 @@ overview content moved into AGENTS.md above):
71824
71847
  - \`/vibe-pipeline\` \u2014 YAML pipeline authoring helper (Video as Code)
71825
71848
  - \`/vibe-scene\` \u2014 per-scene HTML authoring + \`vibe build\`
71826
71849
 
71850
+ Claude-specific routing note: follow the ASSET / BUILD / REMIX decision
71851
+ rules in \`AGENTS.md\`. In particular, a request for one generated image or
71852
+ one generated video clip is an ASSET request: use \`vibe generate image\` or
71853
+ \`vibe generate video\` directly. Do not invoke \`/vibe-scene\`, edit
71854
+ \`DESIGN.md\`, or edit \`STORYBOARD.md\` unless the user explicitly asks for a
71855
+ scene, storyboard, or composed video.
71856
+
71827
71857
  To install / update them later:
71828
71858
 
71829
71859
  \`\`\`bash
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeframe/cli",
3
- "version": "0.94.1",
3
+ "version": "0.95.0",
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.94.1",
187
- "@vibeframe/core": "0.94.1"
186
+ "@vibeframe/ai-providers": "0.95.0",
187
+ "@vibeframe/core": "0.95.0"
188
188
  },
189
189
  "engines": {
190
190
  "node": ">=20"