@vibeframe/cli 0.83.0 → 0.84.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 +91 -8
  2. package/package.json +3 -3
package/dist/index.js CHANGED
@@ -35865,8 +35865,9 @@ var init_video = __esm({
35865
35865
  // src/commands/_shared/cost-tier.ts
35866
35866
  function applyTier(cmd, tier) {
35867
35867
  cmd[COST_TIER_KEY] = tier;
35868
+ const colored = TIER_COLOR[tier](`Cost: ${tier} (${TIER_DESCRIPTION[tier]})`);
35868
35869
  cmd.addHelpText("after", `
35869
- Cost: ${tier} (${TIER_DESCRIPTION[tier]})
35870
+ ${colored}
35870
35871
  `);
35871
35872
  return cmd;
35872
35873
  }
@@ -35879,16 +35880,23 @@ function applyTiers(parent, tiers) {
35879
35880
  if (tier) applyTier(cmd, tier);
35880
35881
  }
35881
35882
  }
35882
- var TIER_DESCRIPTION, COST_TIER_KEY;
35883
+ var TIER_DESCRIPTION, TIER_COLOR, COST_TIER_KEY;
35883
35884
  var init_cost_tier = __esm({
35884
35885
  "src/commands/_shared/cost-tier.ts"() {
35885
35886
  "use strict";
35887
+ init_source();
35886
35888
  TIER_DESCRIPTION = {
35887
35889
  "free": "FFmpeg only, no API call",
35888
35890
  "low": "$0.01\u2013$0.10 per call",
35889
35891
  "high": "$1\u2013$5 per call",
35890
35892
  "very-high": "$5\u2013$50+ per call"
35891
35893
  };
35894
+ TIER_COLOR = {
35895
+ "free": source_default.green,
35896
+ "low": source_default.cyan,
35897
+ "high": source_default.yellow,
35898
+ "very-high": source_default.red
35899
+ };
35892
35900
  COST_TIER_KEY = Symbol.for("@vibeframe/cli.costTier");
35893
35901
  }
35894
35902
  });
@@ -51025,7 +51033,7 @@ function listWalkthroughs() {
51025
51033
  function isWalkthroughTopic(value) {
51026
51034
  return typeof value === "string" && WALKTHROUGH_TOPICS.includes(value);
51027
51035
  }
51028
- var SCENE_WALKTHROUGH, PIPELINE_WALKTHROUGH, META, CONTENT, WALKTHROUGH_TOPICS;
51036
+ var SCENE_WALKTHROUGH, PIPELINE_WALKTHROUGH, ARCHITECTURE_WALKTHROUGH, META, CONTENT, WALKTHROUGH_TOPICS;
51029
51037
  var init_walkthroughs = __esm({
51030
51038
  "src/commands/_shared/walkthroughs/walkthroughs.ts"() {
51031
51039
  "use strict";
@@ -51265,6 +51273,59 @@ When the user has a working shell sequence, extract steps:
51265
51273
 
51266
51274
  The \`compose\` action is the catch-all assembly step (audio mux, video
51267
51275
  overlay, etc.) \u2014 useful at the tail of a pipeline.
51276
+ `;
51277
+ ARCHITECTURE_WALKTHROUGH = `# vibe agent / build / run \u2014 when to pick which
51278
+
51279
+ The CLI has three orchestrating commands that coordinate other primitives:
51280
+ \`vibe agent\`, \`vibe build\`, \`vibe run\`. New users routinely ask which one
51281
+ they want for a given task. The full audit lives in
51282
+ [\`docs/cli-architecture.md\`](../../../docs/cli-architecture.md); this
51283
+ walkthrough is the operator-facing summary.
51284
+
51285
+ ## TL;DR
51286
+
51287
+ | | \`vibe agent\` | \`vibe build\` | \`vibe run\` |
51288
+ |---|---|---|---|
51289
+ | **Driving input** | natural-language prompt | \`STORYBOARD.md\` | YAML pipeline file |
51290
+ | **Interactivity** | REPL or one-shot | one-shot | one-shot |
51291
+ | **Reproducibility** | none | high (idempotent) | highest (checkpointed) |
51292
+ | **Budget caps** | per-session max-turns | none | \`--budget-usd\`, \`--budget-tokens\`, \`--max-errors\` |
51293
+ | **Resume after crash** | no | re-invoke | \`--resume\` |
51294
+ | **Best for** | exploration | finished script | repeatable workflows |
51295
+
51296
+ ## Decision tree
51297
+
51298
+ - "I want to play, I'll know it when I see it" \u2192 \`vibe agent\`
51299
+ - "I have a finished script + visual identity" \u2192 \`vibe build\`
51300
+ - "I want this to run again next month" \u2192 \`vibe run\`
51301
+
51302
+ If two seem to fit, pick the rightmost one \u2014 more reproducible, less surprise.
51303
+
51304
+ ## Cost-tier awareness (v0.83+)
51305
+
51306
+ Every primitive subcommand carries a cost tier (\`free\` / \`low\` / \`high\` /
51307
+ \`very-high\`). \`vibe schema --list\` exposes the tier as JSON, and each
51308
+ \`vibe <group> <sub> --help\` page shows it as a colored footer. Use
51309
+ \`vibe doctor --test-keys\` before kicking off any high-cost orchestrator \u2014
51310
+ a single bad key wastes time and money.
51311
+
51312
+ ## Cross-command primitives
51313
+
51314
+ All three commands ultimately call the same primitives:
51315
+ \`generate\` / \`edit\` / \`audio\` / \`inspect\` / \`detect\` / \`remix\`. The
51316
+ agent calls them through a tool manifest; \`build\` calls a curated subset
51317
+ (TTS + image + compose + render); \`run\` exposes 55+ actions one per primitive.
51318
+
51319
+ ## Known overlap
51320
+
51321
+ - \`vibe build\` is conceptually a 4-step pipeline; \`vibe run\` could express
51322
+ the same flow but build's STORYBOARD.md input + opinionated defaults are
51323
+ the value-add.
51324
+ - \`vibe agent\`'s tool registry currently exposes primitives, not
51325
+ orchestrators. Adding \`vibe.build\` / \`vibe.run\` as agent tools is on the
51326
+ table for a future major.
51327
+ - \`vibe run --resume\` has no analog in build/agent; build's idempotent
51328
+ re-invoke covers the common case.
51268
51329
  `;
51269
51330
  META = {
51270
51331
  scene: {
@@ -51303,13 +51364,32 @@ overlay, etc.) \u2014 useful at the tail of a pipeline.
51303
51364
  "vibe schema --list",
51304
51365
  "vibe doctor"
51305
51366
  ]
51367
+ },
51368
+ architecture: {
51369
+ title: "vibe agent / build / run \u2014 when to pick which",
51370
+ summary: "Compare the three orchestrating commands on the dimensions that actually decide the choice",
51371
+ steps: [
51372
+ "Pick agent for exploration (NL prompt, REPL, no checkpoints).",
51373
+ "Pick build for STORYBOARD.md \u2192 MP4 with opinionated defaults.",
51374
+ "Pick run for repeatable, budget-capped, checkpointed YAML pipelines.",
51375
+ "Run `vibe doctor --test-keys` before any high-cost orchestrator to validate keys upfront.",
51376
+ "Use `vibe schema --list` (cost field, v0.84) to plan the budget per step before kicking off `vibe run --budget-usd`."
51377
+ ],
51378
+ relatedCommands: [
51379
+ "vibe agent",
51380
+ "vibe build",
51381
+ "vibe run",
51382
+ "vibe doctor",
51383
+ "vibe schema --list"
51384
+ ]
51306
51385
  }
51307
51386
  };
51308
51387
  CONTENT = {
51309
51388
  scene: SCENE_WALKTHROUGH,
51310
- pipeline: PIPELINE_WALKTHROUGH
51389
+ pipeline: PIPELINE_WALKTHROUGH,
51390
+ architecture: ARCHITECTURE_WALKTHROUGH
51311
51391
  };
51312
- WALKTHROUGH_TOPICS = ["scene", "pipeline"];
51392
+ WALKTHROUGH_TOPICS = ["scene", "pipeline", "architecture"];
51313
51393
  }
51314
51394
  });
51315
51395
 
@@ -62745,7 +62825,7 @@ init_source();
62745
62825
  // package.json
62746
62826
  var package_default = {
62747
62827
  name: "@vibeframe/cli",
62748
- version: "0.83.0",
62828
+ version: "0.84.0",
62749
62829
  description: "VibeFrame CLI - natural language video editing from the terminal",
62750
62830
  private: false,
62751
62831
  license: "MIT",
@@ -65086,15 +65166,18 @@ function listCommands(program3) {
65086
65166
  if (subCmds.length === 0) {
65087
65167
  const desc = group.description() || "";
65088
65168
  if (desc.toLowerCase().includes("deprecated")) continue;
65089
- commands.push({ path: name, description: desc });
65169
+ const cost = getCostTier(group);
65170
+ commands.push({ path: name, description: desc, ...cost ? { cost } : {} });
65090
65171
  continue;
65091
65172
  }
65092
65173
  for (const sub of subCmds) {
65093
65174
  const desc = sub.description() || "";
65094
65175
  if (desc.toLowerCase().includes("deprecated")) continue;
65176
+ const cost = getCostTier(sub);
65095
65177
  commands.push({
65096
65178
  path: `${name}.${sub.name()}`,
65097
- description: desc
65179
+ description: desc,
65180
+ ...cost ? { cost } : {}
65098
65181
  });
65099
65182
  }
65100
65183
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeframe/cli",
3
- "version": "0.83.0",
3
+ "version": "0.84.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.83.0",
187
- "@vibeframe/core": "0.83.0"
186
+ "@vibeframe/ai-providers": "0.84.0",
187
+ "@vibeframe/core": "0.84.0"
188
188
  },
189
189
  "engines": {
190
190
  "node": ">=20"