@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.
- package/dist/index.js +91 -8
- 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
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
187
|
-
"@vibeframe/core": "0.
|
|
186
|
+
"@vibeframe/ai-providers": "0.84.0",
|
|
187
|
+
"@vibeframe/core": "0.84.0"
|
|
188
188
|
},
|
|
189
189
|
"engines": {
|
|
190
190
|
"node": ">=20"
|