@vibeframe/cli 0.43.0 → 0.44.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.
@@ -0,0 +1,15 @@
1
+ /**
2
+ * `vibe run` command — Execute declarative YAML video pipelines.
3
+ *
4
+ * Video as Code: define reproducible, shareable video workflows in YAML.
5
+ * Each step maps to an existing CLI command's execute function.
6
+ *
7
+ * Usage:
8
+ * vibe run pipeline.yaml
9
+ * vibe run pipeline.yaml --dry-run
10
+ * vibe run pipeline.yaml --resume
11
+ * vibe run pipeline.yaml -o ./output/
12
+ */
13
+ import { Command } from "commander";
14
+ export declare const runCommand: Command;
15
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,eAAO,MAAM,UAAU,SA2InB,CAAC"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * `vibe run` command — Execute declarative YAML video pipelines.
3
+ *
4
+ * Video as Code: define reproducible, shareable video workflows in YAML.
5
+ * Each step maps to an existing CLI command's execute function.
6
+ *
7
+ * Usage:
8
+ * vibe run pipeline.yaml
9
+ * vibe run pipeline.yaml --dry-run
10
+ * vibe run pipeline.yaml --resume
11
+ * vibe run pipeline.yaml -o ./output/
12
+ */
13
+ import { Command } from "commander";
14
+ import chalk from "chalk";
15
+ import ora from "ora";
16
+ import { loadPipeline, executePipeline } from "../pipeline/index.js";
17
+ import { outputResult, exitWithError, generalError } from "./output.js";
18
+ export const runCommand = new Command("run")
19
+ .description("Execute a YAML video pipeline (Video as Code)")
20
+ .argument("<pipeline>", "Path to pipeline YAML file")
21
+ .option("-o, --output <dir>", "Output directory for step results")
22
+ .option("--dry-run", "Validate and show execution plan without running")
23
+ .option("--resume", "Resume from last checkpoint (skip completed steps)")
24
+ .option("--fail-fast", "Stop on first failed step (default: continue)")
25
+ .option("--json", "Output results as JSON")
26
+ .addHelpText("after", `
27
+ Examples:
28
+ $ vibe run my-pipeline.yaml
29
+ $ vibe run my-pipeline.yaml --dry-run
30
+ $ vibe run my-pipeline.yaml --resume -o ./output/
31
+ $ vibe run my-pipeline.yaml --fail-fast
32
+
33
+ Pipeline YAML format:
34
+ name: my-video
35
+ steps:
36
+ - id: image
37
+ action: generate-image
38
+ prompt: "sunset over mountains"
39
+ output: backdrop.png
40
+ - id: narration
41
+ action: generate-tts
42
+ text: "Welcome to the show"
43
+ output: voice.mp3
44
+ - id: video
45
+ action: generate-video
46
+ prompt: "camera push in"
47
+ image: $image.output
48
+ duration: 10
49
+ output: scene.mp4
50
+
51
+ Variable references: $step_id.output, $step_id.data.field, \${ENV_VAR}
52
+
53
+ Cost: Depends on steps. Use --dry-run to preview before executing.
54
+ Run 'vibe schema run' for structured parameter info.
55
+ `)
56
+ .action(async (pipelinePath, options) => {
57
+ const isJson = options.json || process.env.VIBE_JSON_OUTPUT === "1";
58
+ try {
59
+ // Load and validate pipeline
60
+ const manifest = await loadPipeline(pipelinePath);
61
+ if (!isJson) {
62
+ console.log();
63
+ console.log(chalk.bold.cyan(` Pipeline: ${manifest.name}`));
64
+ if (manifest.description)
65
+ console.log(chalk.dim(` ${manifest.description}`));
66
+ console.log(chalk.dim(` ${manifest.steps.length} steps`));
67
+ console.log(chalk.dim(" " + "─".repeat(50)));
68
+ console.log();
69
+ }
70
+ // Dry run
71
+ if (options.dryRun) {
72
+ const result = await executePipeline(manifest, { dryRun: true, outputDir: options.output });
73
+ if (isJson) {
74
+ outputResult({
75
+ dryRun: true,
76
+ command: "run",
77
+ name: manifest.name,
78
+ steps: result.steps.map(s => ({ id: s.id, action: s.action })),
79
+ totalSteps: result.totalSteps,
80
+ });
81
+ }
82
+ else {
83
+ console.log(chalk.bold(" Execution Plan:"));
84
+ console.log();
85
+ for (let i = 0; i < result.steps.length; i++) {
86
+ const step = result.steps[i];
87
+ console.log(` ${chalk.dim(`${i + 1}.`)} ${chalk.bold(step.id)} ${chalk.dim(`→ ${step.action}`)}`);
88
+ }
89
+ console.log();
90
+ console.log(chalk.dim(" Run without --dry-run to execute."));
91
+ }
92
+ return;
93
+ }
94
+ // Execute pipeline
95
+ const spinner = !isJson ? ora("Starting pipeline...").start() : null;
96
+ const result = await executePipeline(manifest, {
97
+ outputDir: options.output,
98
+ resume: options.resume,
99
+ failFast: options.failFast,
100
+ });
101
+ spinner?.stop();
102
+ if (isJson) {
103
+ outputResult({
104
+ success: result.success,
105
+ name: result.name,
106
+ completedSteps: result.completedSteps,
107
+ totalSteps: result.totalSteps,
108
+ totalDuration: result.totalDuration,
109
+ outputDir: result.outputDir,
110
+ steps: result.steps.map(s => ({
111
+ id: s.id,
112
+ action: s.action,
113
+ success: s.success,
114
+ output: s.output,
115
+ duration: s.duration,
116
+ error: s.error,
117
+ })),
118
+ });
119
+ }
120
+ else {
121
+ console.log();
122
+ for (const step of result.steps) {
123
+ const icon = step.success ? chalk.green("✓") : chalk.red("✗");
124
+ const time = step.duration ? chalk.dim(` (${(step.duration / 1000).toFixed(1)}s)`) : "";
125
+ const output = step.output ? chalk.dim(` → ${step.output}`) : "";
126
+ console.log(` ${icon} ${step.id}${time}${output}`);
127
+ if (!step.success && step.error) {
128
+ console.log(` ${chalk.red(step.error)}`);
129
+ }
130
+ }
131
+ console.log();
132
+ console.log(chalk.dim(" " + "─".repeat(50)));
133
+ console.log(` ${chalk.bold(`${result.completedSteps}/${result.totalSteps} steps completed`)}${result.success ? chalk.green(" ✓") : ""}`);
134
+ if (result.totalDuration) {
135
+ console.log(chalk.dim(` Total: ${(result.totalDuration / 1000).toFixed(1)}s`));
136
+ }
137
+ if (result.outputDir) {
138
+ console.log(chalk.dim(` Output: ${result.outputDir}`));
139
+ }
140
+ console.log();
141
+ if (!result.success) {
142
+ console.log(chalk.dim(" Use --resume to retry failed steps."));
143
+ console.log();
144
+ }
145
+ }
146
+ }
147
+ catch (error) {
148
+ const msg = error instanceof Error ? error.message : String(error);
149
+ exitWithError(generalError(msg));
150
+ }
151
+ });
152
+ //# sourceMappingURL=run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/commands/run.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAeA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAmC1E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACnF,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAeA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAoC1E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACnF,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -26,6 +26,7 @@ import { setupCommand } from "./commands/setup.js";
26
26
  import { doctorCommand } from "./commands/doctor.js";
27
27
  import { demoCommand } from "./commands/demo.js";
28
28
  import { contextCommand } from "./commands/context.js";
29
+ import { runCommand } from "./commands/run.js";
29
30
  import { agentCommand } from "./commands/agent.js";
30
31
  import { ApiKeyError } from "./utils/api-key.js";
31
32
  import { isFirstRun, showFirstRunBanner, markBannerShown } from "./utils/first-run.js";
@@ -176,6 +177,7 @@ program.addCommand(pipelineCommand);
176
177
  program.addCommand(setupCommand);
177
178
  program.addCommand(doctorCommand);
178
179
  program.addCommand(demoCommand);
180
+ program.addCommand(runCommand);
179
181
  program.addCommand(agentCommand);
180
182
  // Workflow commands
181
183
  program.addCommand(projectCommand);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,uCAAuC;AACvC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;AAC1D,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEvC,qCAAqC;AACrC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAoB,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvF,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,KAAK,UAAU,SAAS;IACtB,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AACxD,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAGnF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,wBAAwB,CAAC,IAAI,CAAC;KAC9B,WAAW,CAAC,uCAAuC,CAAC;KACpD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;KACpB,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,MAAM,CAAC,aAAa,EAAE,yDAAyD,CAAC;KAChF,MAAM,CAAC,mBAAmB,EAAE,wDAAwD,CAAC;KACrF,MAAM,CAAC,SAAS,EAAE,wDAAwD,CAAC;KAC3E,MAAM,CAAC,YAAY,EAAE,0DAA0D,CAAC;KAChF,YAAY,EAAE,CAAC,oEAAoE;KACnF,eAAe,CAAC;IACf,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC1B,kDAAkD;QAClD,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5E,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YACtG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YACpC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;CACF,CAAC;KACD,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;CAsBH,CACE,CAAC;AAEJ,kDAAkD;AAClD,wDAAwD;AACxD,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE;IAC7D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAE5B,4CAA4C;IAC5C,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,GAAG,CAAC;IACrC,CAAC;IAED,eAAe;IACf,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC;IACtC,CAAC;IAED,gBAAgB;IAChB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/C,CAAC;IAED,+DAA+D;IAC/D,+FAA+F;IAC/F,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxB,aAAa,CAAC,UAAU,CAAC,+BAA+B,EAAE,qDAAqD,CAAC,CAAC,CAAC;QACpH,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,aAAa,CAAC,UAAU,CAAC,+BAA+B,EAAE,2DAA2D,CAAC,CAAC,CAAC;YAC1H,CAAC;YACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrE,aAAa,CAAC,UAAU,CAAC,gCAAgC,EAAE,kDAAkD,CAAC,CAAC,CAAC;YAClH,CAAC;YACD,gFAAgF;YAChF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAChD,+DAA+D;gBAC/D,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;gBAC7E,wDAAwD;gBACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBAC9B,IAAI,CAAC;wBACH,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACjC,CAAC;oBAAC,MAAM,CAAC;wBACP,aAAa,CAAC,UAAU,CAAC,kBAAkB,GAAG,gCAAgC,EAAE,sDAAsD,CAAC,CAAC,CAAC;oBAC3I,CAAC;gBACH,CAAC;gBACD,4DAA4D;gBAC5D,MAAM,MAAM,GAAG,aAAa,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;gBAC5D,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACjD,aAAa,CAAC,wBAAwB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;gBACnE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBAC/B,aAAa,CAAC,UAAU,CAAC,kCAAkC,GAAG,CAAC,OAAO,EAAE,EAAE,wEAAwE,CAAC,CAAC,CAAC;YACvJ,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,sDAAsD;IACtD,0EAA0E;IAC1E,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC;IACrC,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACzF,IAAI,CAAC;YACH,IAAI,MAAM,UAAU,EAAE,EAAE,CAAC;gBACvB,kBAAkB,EAAE,CAAC;gBACrB,MAAM,eAAe,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,oCAAoC;AACpC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAEjC,oBAAoB;AACpB,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AAEjC,6BAA6B;AAC7B,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AAEnC,iDAAiD;AACjD,OAAO,CAAC,UAAU,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnD,wEAAwE;AACxE,sEAAsE;AACtE,SAAS,sBAAsB,CAAC,GAAY;IAC1C,KAAK,MAAM,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QAC/B,GAAG,CAAC,YAAY,EAAE,CAAC;QACnB,GAAG,CAAC,eAAe,CAAC;YAClB,WAAW,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;gBAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC5E,MAAM,GAAG,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;oBACtG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;oBACpC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC;AACD,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,4EAA4E;AAC5E,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,KAAK,QAAQ,CAAC,CAAC;IACrF,mDAAmD;IACnD,IAAI,GAAG,GAAY,OAAO,CAAC;IAC3B,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAClF,IAAI,GAAG,EAAE,CAAC;YACR,GAAG,GAAG,GAAG,CAAC;YACV,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,gDAAgD;QACzD,CAAC;IACH,CAAC;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;IAC7B,mDAAmD;IACnD,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC;KAAM,CAAC;IACN,iEAAiE;IACjE,CAAC,KAAK,IAAI,EAAE;QACV,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;QAC7B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;gBAClC,sEAAsE;gBACtE,4DAA4D;gBAC5D,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6CAA6C;gBACtF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;gBAC/B,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,kCAAkC;YAClC,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Pipeline executor — maps YAML actions to CLI execute functions.
3
+ */
4
+ import type { PipelineManifest, PipelineResult } from "./types.js";
5
+ export declare function loadPipeline(filePath: string): Promise<PipelineManifest>;
6
+ export interface ExecutePipelineOptions {
7
+ /** Output directory for all step outputs */
8
+ outputDir?: string;
9
+ /** Only validate and show plan, don't execute */
10
+ dryRun?: boolean;
11
+ /** Resume from checkpoint (skip completed steps) */
12
+ resume?: boolean;
13
+ /** Stop on first failure */
14
+ failFast?: boolean;
15
+ }
16
+ export declare function executePipeline(manifest: PipelineManifest, options?: ExecutePipelineOptions): Promise<PipelineResult>;
17
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/pipeline/executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,OAAO,KAAK,EAAE,gBAAgB,EAA8B,cAAc,EAAE,MAAM,YAAY,CAAC;AA2K/F,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsB9E;AAID,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oDAAoD;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAQD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,cAAc,CAAC,CA8IzB"}
@@ -0,0 +1,295 @@
1
+ /**
2
+ * Pipeline executor — maps YAML actions to CLI execute functions.
3
+ */
4
+ import { resolve } from "node:path";
5
+ import { readFile, writeFile, mkdir } from "node:fs/promises";
6
+ import { existsSync } from "node:fs";
7
+ import { parse as yamlParse, stringify as yamlStringify } from "yaml";
8
+ import { resolveStepParams, findUnresolvedRefs } from "./resolver.js";
9
+ const ACTION_HANDLERS = {};
10
+ function registerAction(action, handler) {
11
+ ACTION_HANDLERS[action] = handler;
12
+ }
13
+ /** Helper: get output path from params or generate default */
14
+ function getOutput(params, outputDir, defaultName) {
15
+ if (params.output && typeof params.output === "string") {
16
+ return resolve(outputDir, params.output);
17
+ }
18
+ return resolve(outputDir, defaultName);
19
+ }
20
+ // ── Register all actions (lazy-loaded to avoid circular imports) ─────────
21
+ async function ensureActionsRegistered() {
22
+ if (Object.keys(ACTION_HANDLERS).length > 0)
23
+ return;
24
+ // Generate
25
+ registerAction("generate-image", async (params, outputDir) => {
26
+ const { executeImageGenerate } = await import("../commands/ai-image.js");
27
+ const output = getOutput(params, outputDir, "image.png");
28
+ const r = await executeImageGenerate({ prompt: params.prompt, provider: params.provider, output, model: params.model, ratio: params.ratio });
29
+ return { id: "", action: "generate-image", success: r.success, output: r.outputPath, data: { provider: r.provider, model: r.model }, error: r.error };
30
+ });
31
+ registerAction("generate-video", async (params, outputDir) => {
32
+ const { executeVideoGenerate } = await import("../commands/ai-video.js");
33
+ const output = getOutput(params, outputDir, "video.mp4");
34
+ const r = await executeVideoGenerate({ prompt: params.prompt, provider: params.provider, image: params.image, duration: params.duration, ratio: params.ratio, output, wait: true });
35
+ return { id: "", action: "generate-video", success: r.success, output: r.outputPath || r.videoUrl, data: { taskId: r.taskId, provider: r.provider, videoUrl: r.videoUrl }, error: r.error };
36
+ });
37
+ registerAction("generate-tts", async (params, outputDir) => {
38
+ const { executeSpeech } = await import("../commands/generate.js");
39
+ const output = getOutput(params, outputDir, "speech.mp3");
40
+ const r = await executeSpeech({ text: params.text, voice: params.voice, output });
41
+ return { id: "", action: "generate-tts", success: r.success, output: r.outputPath, data: { characterCount: r.characterCount }, error: r.error };
42
+ });
43
+ registerAction("generate-sfx", async (params, outputDir) => {
44
+ const { executeSoundEffect } = await import("../commands/generate.js");
45
+ const output = getOutput(params, outputDir, "sfx.mp3");
46
+ const r = await executeSoundEffect({ prompt: params.prompt, duration: params.duration, output });
47
+ return { id: "", action: "generate-sfx", success: r.success, output: r.outputPath, error: r.error };
48
+ });
49
+ registerAction("generate-music", async (params, outputDir) => {
50
+ const { executeMusic } = await import("../commands/generate.js");
51
+ const output = getOutput(params, outputDir, "music.mp3");
52
+ const r = await executeMusic({ prompt: params.prompt, duration: params.duration, provider: params.provider, instrumental: params.instrumental, output });
53
+ return { id: "", action: "generate-music", success: r.success, output: r.outputPath, data: { provider: r.provider, duration: r.duration }, error: r.error };
54
+ });
55
+ registerAction("generate-storyboard", async (params, outputDir) => {
56
+ const { executeStoryboard } = await import("../commands/generate.js");
57
+ const output = getOutput(params, outputDir, "storyboard.yaml");
58
+ const r = await executeStoryboard({ content: params.content, duration: params.duration, creativity: params.creativity, output });
59
+ return { id: "", action: "generate-storyboard", success: r.success, output: r.outputPath, data: { segmentCount: r.segmentCount }, error: r.error };
60
+ });
61
+ registerAction("generate-motion", async (params, outputDir) => {
62
+ const { executeMotion } = await import("../commands/ai-motion.js");
63
+ const output = getOutput(params, outputDir, "motion.tsx");
64
+ const r = await executeMotion({ description: params.description || params.prompt, duration: params.duration, render: params.render, video: params.video, output });
65
+ return { id: "", action: "generate-motion", success: r.success, output: r.renderedPath || r.codePath, data: { codePath: r.codePath, renderedPath: r.renderedPath }, error: r.error };
66
+ });
67
+ // Edit
68
+ registerAction("edit-silence-cut", async (params, outputDir) => {
69
+ const { executeSilenceCut } = await import("../commands/ai-edit.js");
70
+ const output = getOutput(params, outputDir, "silence-cut.mp4");
71
+ const r = await executeSilenceCut({ videoPath: params.input, outputPath: output, padding: params.padding });
72
+ return { id: "", action: "edit-silence-cut", success: r.success, output: r.outputPath, data: { totalDuration: r.totalDuration, silentDuration: r.silentDuration }, error: r.error };
73
+ });
74
+ registerAction("edit-caption", async (params, outputDir) => {
75
+ const { executeCaption } = await import("../commands/ai-edit.js");
76
+ const output = getOutput(params, outputDir, "captioned.mp4");
77
+ const r = await executeCaption({ videoPath: params.input, outputPath: output, language: params.language });
78
+ return { id: "", action: "edit-caption", success: r.success, output: r.outputPath, error: r.error };
79
+ });
80
+ registerAction("edit-noise-reduce", async (params, outputDir) => {
81
+ const { executeNoiseReduce } = await import("../commands/ai-edit.js");
82
+ const output = getOutput(params, outputDir, "denoised.mp4");
83
+ const r = await executeNoiseReduce({ inputPath: params.input, outputPath: output, strength: params.strength });
84
+ return { id: "", action: "edit-noise-reduce", success: r.success, output: r.outputPath, error: r.error };
85
+ });
86
+ registerAction("edit-fade", async (params, outputDir) => {
87
+ const { executeFade } = await import("../commands/ai-edit.js");
88
+ const output = getOutput(params, outputDir, "faded.mp4");
89
+ const r = await executeFade({ videoPath: params.input, outputPath: output, fadeIn: params.fadeIn, fadeOut: params.fadeOut });
90
+ return { id: "", action: "edit-fade", success: r.success, output: r.outputPath, error: r.error };
91
+ });
92
+ registerAction("edit-grade", async (params, outputDir) => {
93
+ const { executeGrade } = await import("../commands/edit-cmd.js");
94
+ const output = getOutput(params, outputDir, "graded.mp4");
95
+ const r = await executeGrade({ videoPath: params.input, style: params.style, preset: params.preset, output });
96
+ return { id: "", action: "edit-grade", success: r.success, output: r.outputPath, data: { description: r.description }, error: r.error };
97
+ });
98
+ registerAction("edit-reframe", async (params, outputDir) => {
99
+ const { executeReframe } = await import("../commands/edit-cmd.js");
100
+ const output = getOutput(params, outputDir, "reframed.mp4");
101
+ const r = await executeReframe({ videoPath: params.input, aspect: params.aspect, output });
102
+ return { id: "", action: "edit-reframe", success: r.success, output: r.outputPath, error: r.error };
103
+ });
104
+ // Audio
105
+ registerAction("audio-transcribe", async (params, outputDir) => {
106
+ const { executeTranscribe } = await import("../commands/ai-audio.js");
107
+ const output = getOutput(params, outputDir, "transcript.srt");
108
+ const r = await executeTranscribe({ audioPath: params.input, language: params.language, output });
109
+ return { id: "", action: "audio-transcribe", success: r.success, output: r.outputPath, data: { text: r.text, segmentCount: r.segments?.length }, error: r.error };
110
+ });
111
+ registerAction("audio-duck", async (params, outputDir) => {
112
+ const { executeDuck } = await import("../commands/ai-audio.js");
113
+ const output = getOutput(params, outputDir, "ducked.mp3");
114
+ const r = await executeDuck({ musicPath: params.music, voicePath: params.voice, output });
115
+ return { id: "", action: "audio-duck", success: r.success, output: r.outputPath, error: r.error };
116
+ });
117
+ // Detect
118
+ registerAction("detect-scenes", async (params, outputDir) => {
119
+ const { executeDetectScenes } = await import("../commands/detect.js");
120
+ const output = getOutput(params, outputDir, "scenes.json");
121
+ const r = await executeDetectScenes({ videoPath: params.input, threshold: params.threshold, outputPath: output });
122
+ return { id: "", action: "detect-scenes", success: r.success, output, data: { scenes: r.scenes, totalDuration: r.totalDuration }, error: r.error };
123
+ });
124
+ registerAction("detect-silence", async (params, _outputDir) => {
125
+ const { executeDetectSilence } = await import("../commands/detect.js");
126
+ const r = await executeDetectSilence({ mediaPath: params.input, noise: params.noise, duration: params.duration });
127
+ return { id: "", action: "detect-silence", success: r.success, data: { silences: r.silences }, error: r.error };
128
+ });
129
+ registerAction("detect-beats", async (params, _outputDir) => {
130
+ const { executeDetectBeats } = await import("../commands/detect.js");
131
+ const r = await executeDetectBeats({ audioPath: params.input });
132
+ return { id: "", action: "detect-beats", success: r.success, data: { beats: r.beats }, error: r.error };
133
+ });
134
+ // Analyze
135
+ registerAction("analyze-video", async (params, _outputDir) => {
136
+ const { executeGeminiVideo } = await import("../commands/ai-analyze.js");
137
+ const r = await executeGeminiVideo({ source: params.input, prompt: params.prompt, model: params.model });
138
+ return { id: "", action: "analyze-video", success: r.success, data: { response: r.response, model: r.model }, error: r.error };
139
+ });
140
+ // Review
141
+ registerAction("review-video", async (params, _outputDir) => {
142
+ const { executeReview } = await import("../commands/ai-review.js");
143
+ const r = await executeReview({ videoPath: params.input, autoApply: params.autoApply, model: params.model });
144
+ return { id: "", action: "review-video", success: r.success, output: r.outputPath, data: { feedback: r.feedback }, error: r.error };
145
+ });
146
+ }
147
+ // ── Pipeline Loader ─────────────────────────────────────────────────────
148
+ export async function loadPipeline(filePath) {
149
+ const absPath = resolve(process.cwd(), filePath);
150
+ if (!existsSync(absPath)) {
151
+ throw new Error(`Pipeline file not found: ${absPath}`);
152
+ }
153
+ const content = await readFile(absPath, "utf-8");
154
+ const manifest = yamlParse(content);
155
+ // Validate
156
+ if (!manifest.name)
157
+ throw new Error("Pipeline missing 'name' field");
158
+ if (!manifest.steps || !Array.isArray(manifest.steps))
159
+ throw new Error("Pipeline missing 'steps' array");
160
+ const ids = new Set();
161
+ for (const step of manifest.steps) {
162
+ if (!step.id)
163
+ throw new Error("Each step must have an 'id' field");
164
+ if (!step.action)
165
+ throw new Error(`Step '${step.id}' missing 'action' field`);
166
+ if (ids.has(step.id))
167
+ throw new Error(`Duplicate step id: '${step.id}'`);
168
+ ids.add(step.id);
169
+ }
170
+ return manifest;
171
+ }
172
+ const CHECKPOINT_FILE = ".pipeline-state.yaml";
173
+ export async function executePipeline(manifest, options = {}) {
174
+ await ensureActionsRegistered();
175
+ const outputDir = resolve(process.cwd(), options.outputDir || `${manifest.name}-output`);
176
+ await mkdir(outputDir, { recursive: true });
177
+ const completedSteps = new Map();
178
+ const results = [];
179
+ const startTime = Date.now();
180
+ // Load checkpoint if resuming
181
+ if (options.resume) {
182
+ const checkpointPath = resolve(outputDir, CHECKPOINT_FILE);
183
+ if (existsSync(checkpointPath)) {
184
+ const checkpointContent = await readFile(checkpointPath, "utf-8");
185
+ const checkpoint = yamlParse(checkpointContent);
186
+ for (const cs of checkpoint.completedSteps) {
187
+ completedSteps.set(cs.id, {
188
+ id: cs.id,
189
+ action: "generate-image", // placeholder — action doesn't matter for resolution
190
+ success: true,
191
+ output: cs.output,
192
+ data: cs.data,
193
+ });
194
+ }
195
+ }
196
+ }
197
+ // Dry-run: validate and show plan
198
+ if (options.dryRun) {
199
+ const plan = [];
200
+ const availableIds = new Set();
201
+ for (const step of manifest.steps) {
202
+ const handler = ACTION_HANDLERS[step.action];
203
+ const unresolvedRefs = findUnresolvedRefs(step, availableIds);
204
+ plan.push({
205
+ id: step.id,
206
+ action: step.action,
207
+ unresolvedRefs: unresolvedRefs.length > 0 ? unresolvedRefs : undefined,
208
+ });
209
+ if (!handler) {
210
+ plan[plan.length - 1].estimatedCost = "UNKNOWN ACTION";
211
+ }
212
+ availableIds.add(step.id);
213
+ }
214
+ return {
215
+ success: true,
216
+ name: manifest.name,
217
+ steps: plan.map(p => ({ id: p.id, action: p.action, success: true, data: p })),
218
+ completedSteps: 0,
219
+ totalSteps: manifest.steps.length,
220
+ outputDir,
221
+ };
222
+ }
223
+ // Execute steps
224
+ for (const step of manifest.steps) {
225
+ // Skip if already completed (resume mode)
226
+ if (completedSteps.has(step.id)) {
227
+ results.push(completedSteps.get(step.id));
228
+ continue;
229
+ }
230
+ const handler = ACTION_HANDLERS[step.action];
231
+ if (!handler) {
232
+ const result = { id: step.id, action: step.action, success: false, error: `Unknown action: ${step.action}` };
233
+ results.push(result);
234
+ if (options.failFast) {
235
+ return { success: false, name: manifest.name, steps: results, completedSteps: completedSteps.size, totalSteps: manifest.steps.length, outputDir, error: result.error };
236
+ }
237
+ continue;
238
+ }
239
+ // Resolve variable references
240
+ const resolvedParams = resolveStepParams(step, completedSteps);
241
+ // Execute step
242
+ const stepStart = Date.now();
243
+ let result;
244
+ try {
245
+ result = await handler(resolvedParams, outputDir);
246
+ result.id = step.id;
247
+ result.duration = Date.now() - stepStart;
248
+ }
249
+ catch (err) {
250
+ result = {
251
+ id: step.id,
252
+ action: step.action,
253
+ success: false,
254
+ error: err instanceof Error ? err.message : String(err),
255
+ duration: Date.now() - stepStart,
256
+ };
257
+ }
258
+ results.push(result);
259
+ if (result.success) {
260
+ completedSteps.set(step.id, result);
261
+ // Save checkpoint
262
+ const checkpoint = {
263
+ completedSteps: Array.from(completedSteps.values()).map(s => ({
264
+ id: s.id,
265
+ output: s.output,
266
+ data: s.data,
267
+ })),
268
+ };
269
+ await writeFile(resolve(outputDir, CHECKPOINT_FILE), yamlStringify(checkpoint, { indent: 2 }), "utf-8");
270
+ }
271
+ else if (options.failFast) {
272
+ return {
273
+ success: false,
274
+ name: manifest.name,
275
+ steps: results,
276
+ completedSteps: completedSteps.size,
277
+ totalSteps: manifest.steps.length,
278
+ totalDuration: Date.now() - startTime,
279
+ outputDir,
280
+ error: result.error,
281
+ };
282
+ }
283
+ }
284
+ const allSuccess = results.every(r => r.success);
285
+ return {
286
+ success: allSuccess,
287
+ name: manifest.name,
288
+ steps: results,
289
+ completedSteps: completedSteps.size,
290
+ totalSteps: manifest.steps.length,
291
+ totalDuration: Date.now() - startTime,
292
+ outputDir,
293
+ };
294
+ }
295
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/pipeline/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { executePipeline, loadPipeline } from "./executor.js";
2
+ export type { PipelineManifest, PipelineAction, StepResult, PipelineResult } from "./types.js";
3
+ export type { ExecutePipelineOptions } from "./executor.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC/F,YAAY,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { executePipeline, loadPipeline } from "./executor.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/pipeline/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Variable resolver for pipeline steps.
3
+ *
4
+ * Resolves:
5
+ * - $step_id.output → output path from a previous step
6
+ * - $step_id.data.X → arbitrary data from a previous step result
7
+ * - ${ENV_VAR} → environment variable
8
+ */
9
+ import type { StepResult } from "./types.js";
10
+ /**
11
+ * Resolve all variable references in a step's parameters.
12
+ * Returns a new object with all $refs replaced by actual values.
13
+ */
14
+ export declare function resolveStepParams(params: Record<string, unknown>, completedSteps: Map<string, StepResult>): Record<string, unknown>;
15
+ /**
16
+ * Validate that all $refs in a step can be resolved.
17
+ * Returns list of unresolvable references.
18
+ */
19
+ export declare function findUnresolvedRefs(params: Record<string, unknown>, availableStepIds: Set<string>): string[];
20
+ //# sourceMappingURL=resolver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/pipeline/resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzB;AAiDD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,GAC5B,MAAM,EAAE,CAYV"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Variable resolver for pipeline steps.
3
+ *
4
+ * Resolves:
5
+ * - $step_id.output → output path from a previous step
6
+ * - $step_id.data.X → arbitrary data from a previous step result
7
+ * - ${ENV_VAR} → environment variable
8
+ */
9
+ /**
10
+ * Resolve all variable references in a step's parameters.
11
+ * Returns a new object with all $refs replaced by actual values.
12
+ */
13
+ export function resolveStepParams(params, completedSteps) {
14
+ const resolved = {};
15
+ for (const [key, value] of Object.entries(params)) {
16
+ if (key === "id" || key === "action")
17
+ continue; // skip meta fields
18
+ resolved[key] = resolveValue(value, completedSteps);
19
+ }
20
+ return resolved;
21
+ }
22
+ function resolveValue(value, completedSteps) {
23
+ if (typeof value === "string") {
24
+ return resolveString(value, completedSteps);
25
+ }
26
+ if (Array.isArray(value)) {
27
+ return value.map(v => resolveValue(v, completedSteps));
28
+ }
29
+ if (value && typeof value === "object") {
30
+ const resolved = {};
31
+ for (const [k, v] of Object.entries(value)) {
32
+ resolved[k] = resolveValue(v, completedSteps);
33
+ }
34
+ return resolved;
35
+ }
36
+ return value;
37
+ }
38
+ function resolveString(str, completedSteps) {
39
+ // Replace ${ENV_VAR} with environment variables
40
+ let result = str.replace(/\$\{([A-Z_][A-Z0-9_]*)\}/g, (_match, envVar) => {
41
+ return process.env[envVar] || "";
42
+ });
43
+ // Replace $step_id.output or $step_id.data.field
44
+ result = result.replace(/\$([a-z][a-z0-9_-]*)\.(output|data\.[a-z_]+)/gi, (_match, stepId, field) => {
45
+ const step = completedSteps.get(stepId);
46
+ if (!step)
47
+ return _match; // leave unresolved if step not found
48
+ if (field === "output") {
49
+ return step.output || "";
50
+ }
51
+ if (field.startsWith("data.")) {
52
+ const dataKey = field.slice(5);
53
+ return String(step.data?.[dataKey] ?? "");
54
+ }
55
+ return _match;
56
+ });
57
+ return result;
58
+ }
59
+ /**
60
+ * Validate that all $refs in a step can be resolved.
61
+ * Returns list of unresolvable references.
62
+ */
63
+ export function findUnresolvedRefs(params, availableStepIds) {
64
+ const unresolved = [];
65
+ const json = JSON.stringify(params);
66
+ const refs = json.matchAll(/\$([a-z][a-z0-9_-]*)\.(output|data\.[a-z_]+)/gi);
67
+ for (const ref of refs) {
68
+ if (!availableStepIds.has(ref[1])) {
69
+ unresolved.push(ref[0]);
70
+ }
71
+ }
72
+ return unresolved;
73
+ }
74
+ //# sourceMappingURL=resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/pipeline/resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Video as Code — Pipeline type definitions
3
+ *
4
+ * A pipeline is a declarative YAML file that defines a sequence of steps.
5
+ * Each step maps to an existing execute function in the CLI.
6
+ */
7
+ /** Supported pipeline actions (maps to execute functions) */
8
+ export type PipelineAction = "generate-image" | "generate-video" | "generate-tts" | "generate-sfx" | "generate-music" | "generate-storyboard" | "generate-motion" | "edit-silence-cut" | "edit-jump-cut" | "edit-caption" | "edit-noise-reduce" | "edit-fade" | "edit-translate-srt" | "edit-text-overlay" | "edit-grade" | "edit-speed-ramp" | "edit-reframe" | "edit-interpolate" | "edit-upscale" | "edit-image" | "audio-transcribe" | "audio-isolate" | "audio-dub" | "audio-duck" | "detect-scenes" | "detect-silence" | "detect-beats" | "analyze-video" | "analyze-media" | "review-video" | "export";
9
+ /** A single step in the pipeline */
10
+ export interface PipelineStep {
11
+ /** Unique step identifier (used for variable references) */
12
+ id: string;
13
+ /** Action to execute */
14
+ action: PipelineAction;
15
+ /** Step parameters (action-specific, may contain $refs) */
16
+ [key: string]: unknown;
17
+ }
18
+ /** Pipeline manifest (parsed from YAML) */
19
+ export interface PipelineManifest {
20
+ /** Pipeline name */
21
+ name: string;
22
+ /** Optional description */
23
+ description?: string;
24
+ /** Pipeline version */
25
+ version?: number;
26
+ /** Steps to execute */
27
+ steps: PipelineStep[];
28
+ }
29
+ /** Result of a single step execution */
30
+ export interface StepResult {
31
+ id: string;
32
+ action: PipelineAction;
33
+ success: boolean;
34
+ /** Primary output path */
35
+ output?: string;
36
+ /** All result data (action-specific) */
37
+ data?: Record<string, unknown>;
38
+ /** Error message if failed */
39
+ error?: string;
40
+ /** Execution time in ms */
41
+ duration?: number;
42
+ }
43
+ /** Result of full pipeline execution */
44
+ export interface PipelineResult {
45
+ success: boolean;
46
+ name: string;
47
+ steps: StepResult[];
48
+ completedSteps: number;
49
+ totalSteps: number;
50
+ totalDuration?: number;
51
+ outputDir?: string;
52
+ error?: string;
53
+ }
54
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/pipeline/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,6DAA6D;AAC7D,MAAM,MAAM,cAAc,GAEtB,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,cAAc,GACd,gBAAgB,GAChB,qBAAqB,GACrB,iBAAiB,GAEjB,kBAAkB,GAClB,eAAe,GACf,cAAc,GACd,mBAAmB,GACnB,WAAW,GACX,oBAAoB,GACpB,mBAAmB,GACnB,YAAY,GACZ,iBAAiB,GACjB,cAAc,GACd,kBAAkB,GAClB,cAAc,GACd,YAAY,GAEZ,kBAAkB,GAClB,eAAe,GACf,WAAW,GACX,YAAY,GAEZ,eAAe,GACf,gBAAgB,GAChB,cAAc,GAEd,eAAe,GACf,eAAe,GAEf,cAAc,GAEd,QAAQ,CAAC;AAEb,oCAAoC;AACpC,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,wBAAwB;IACxB,MAAM,EAAE,cAAc,CAAC;IACvB,2DAA2D;IAC3D,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,2CAA2C;AAC3C,MAAM,WAAW,gBAAgB;IAC/B,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,wCAAwC;AACxC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,cAAc,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wCAAwC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Video as Code — Pipeline type definitions
3
+ *
4
+ * A pipeline is a declarative YAML file that defines a sequence of steps.
5
+ * Each step maps to an existing execute function in the CLI.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/pipeline/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibeframe/cli",
3
- "version": "0.43.0",
3
+ "version": "0.44.0",
4
4
  "description": "VibeFrame CLI - natural language video editing from the terminal",
5
5
  "private": false,
6
6
  "license": "MIT",
@@ -111,8 +111,8 @@
111
111
  "openai": "^4.77.0",
112
112
  "ora": "^8.0.1",
113
113
  "yaml": "^2.3.4",
114
- "@vibeframe/ai-providers": "0.43.0",
115
- "@vibeframe/core": "0.43.0"
114
+ "@vibeframe/ai-providers": "0.44.0",
115
+ "@vibeframe/core": "0.44.0"
116
116
  },
117
117
  "devDependencies": {
118
118
  "@types/node": "^20.11.0",