@vibeframe/cli 0.43.0 → 0.46.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,19 @@
1
+ /**
2
+ * Pipeline executor — maps YAML actions to CLI execute functions.
3
+ */
4
+ import type { PipelineManifest, PipelineBudget, 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
+ /** Override manifest.budget (partial merge) */
16
+ budget?: PipelineBudget;
17
+ }
18
+ export declare function executePipeline(manifest: PipelineManifest, options?: ExecutePipelineOptions): Promise<PipelineResult>;
19
+ //# 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,EAAkB,cAAc,EAAc,cAAc,EAAe,MAAM,YAAY,CAAC;AAkN5H,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;IACnB,+CAA+C;IAC/C,MAAM,CAAC,EAAE,cAAc,CAAC;CACzB;AAQD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,GAAE,sBAA2B,GACnC,OAAO,CAAC,cAAc,CAAC,CAgNzB"}
@@ -0,0 +1,392 @@
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
+ import { COST_ESTIMATES } from "../commands/output.js";
10
+ // ── Action → CLI command mapping (for cost lookup) ──────────────────────
11
+ const ACTION_TO_COMMAND = {
12
+ "generate-image": "generate image",
13
+ "generate-video": "generate video",
14
+ "generate-tts": "generate speech",
15
+ "generate-sfx": "generate sound-effect",
16
+ "generate-music": "generate music",
17
+ "generate-storyboard": "generate storyboard",
18
+ "generate-motion": "generate motion",
19
+ "edit-silence-cut": "edit silence-cut",
20
+ "edit-jump-cut": "edit jump-cut",
21
+ "edit-caption": "edit caption",
22
+ "edit-noise-reduce": "edit noise-reduce",
23
+ "edit-fade": "edit fade",
24
+ "edit-translate-srt": "edit translate-srt",
25
+ "edit-text-overlay": "edit text-overlay",
26
+ "edit-grade": "edit grade",
27
+ "edit-speed-ramp": "edit speed-ramp",
28
+ "edit-reframe": "edit reframe",
29
+ "edit-interpolate": "edit interpolate",
30
+ "edit-upscale": "edit upscale-video",
31
+ "edit-image": "edit image",
32
+ "audio-transcribe": "audio transcribe",
33
+ "detect-scenes": "detect scenes",
34
+ "detect-silence": "detect silence",
35
+ "detect-beats": "detect beats",
36
+ "analyze-media": "analyze media",
37
+ "analyze-video": "analyze video",
38
+ "review-video": "analyze review",
39
+ };
40
+ function maxCostFor(action) {
41
+ const cmd = ACTION_TO_COMMAND[action];
42
+ if (!cmd)
43
+ return 0;
44
+ return COST_ESTIMATES[cmd]?.max ?? 0;
45
+ }
46
+ const ACTION_HANDLERS = {};
47
+ function registerAction(action, handler) {
48
+ ACTION_HANDLERS[action] = handler;
49
+ }
50
+ /** Helper: get output path from params or generate default */
51
+ function getOutput(params, outputDir, defaultName) {
52
+ if (params.output && typeof params.output === "string") {
53
+ return resolve(outputDir, params.output);
54
+ }
55
+ return resolve(outputDir, defaultName);
56
+ }
57
+ // ── Register all actions (lazy-loaded to avoid circular imports) ─────────
58
+ async function ensureActionsRegistered() {
59
+ if (Object.keys(ACTION_HANDLERS).length > 0)
60
+ return;
61
+ // Generate
62
+ registerAction("generate-image", async (params, outputDir) => {
63
+ const { executeImageGenerate } = await import("../commands/ai-image.js");
64
+ const output = getOutput(params, outputDir, "image.png");
65
+ const r = await executeImageGenerate({ prompt: params.prompt, provider: params.provider, output, model: params.model, ratio: params.ratio });
66
+ return { id: "", action: "generate-image", success: r.success, output: r.outputPath, data: { provider: r.provider, model: r.model }, error: r.error };
67
+ });
68
+ registerAction("generate-video", async (params, outputDir) => {
69
+ const { executeVideoGenerate } = await import("../commands/ai-video.js");
70
+ const output = getOutput(params, outputDir, "video.mp4");
71
+ const r = await executeVideoGenerate({ prompt: params.prompt, provider: params.provider, image: params.image, duration: params.duration, ratio: params.ratio, output, wait: true });
72
+ 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 };
73
+ });
74
+ registerAction("generate-tts", async (params, outputDir) => {
75
+ const { executeSpeech } = await import("../commands/generate.js");
76
+ const output = getOutput(params, outputDir, "speech.mp3");
77
+ const r = await executeSpeech({ text: params.text, voice: params.voice, output });
78
+ return { id: "", action: "generate-tts", success: r.success, output: r.outputPath, data: { characterCount: r.characterCount }, error: r.error };
79
+ });
80
+ registerAction("generate-sfx", async (params, outputDir) => {
81
+ const { executeSoundEffect } = await import("../commands/generate.js");
82
+ const output = getOutput(params, outputDir, "sfx.mp3");
83
+ const r = await executeSoundEffect({ prompt: params.prompt, duration: params.duration, output });
84
+ return { id: "", action: "generate-sfx", success: r.success, output: r.outputPath, error: r.error };
85
+ });
86
+ registerAction("generate-music", async (params, outputDir) => {
87
+ const { executeMusic } = await import("../commands/generate.js");
88
+ const output = getOutput(params, outputDir, "music.mp3");
89
+ const r = await executeMusic({ prompt: params.prompt, duration: params.duration, provider: params.provider, instrumental: params.instrumental, output });
90
+ return { id: "", action: "generate-music", success: r.success, output: r.outputPath, data: { provider: r.provider, duration: r.duration }, error: r.error };
91
+ });
92
+ registerAction("generate-storyboard", async (params, outputDir) => {
93
+ const { executeStoryboard } = await import("../commands/generate.js");
94
+ const output = getOutput(params, outputDir, "storyboard.yaml");
95
+ const r = await executeStoryboard({ content: params.content, duration: params.duration, creativity: params.creativity, output });
96
+ return { id: "", action: "generate-storyboard", success: r.success, output: r.outputPath, data: { segmentCount: r.segmentCount }, error: r.error };
97
+ });
98
+ registerAction("generate-motion", async (params, outputDir) => {
99
+ const { executeMotion } = await import("../commands/ai-motion.js");
100
+ const output = getOutput(params, outputDir, "motion.tsx");
101
+ const r = await executeMotion({ description: params.description || params.prompt, duration: params.duration, render: params.render, video: params.video, output });
102
+ return { id: "", action: "generate-motion", success: r.success, output: r.renderedPath || r.codePath, data: { codePath: r.codePath, renderedPath: r.renderedPath }, error: r.error };
103
+ });
104
+ // Edit
105
+ registerAction("edit-silence-cut", async (params, outputDir) => {
106
+ const { executeSilenceCut } = await import("../commands/ai-edit.js");
107
+ const output = getOutput(params, outputDir, "silence-cut.mp4");
108
+ const r = await executeSilenceCut({ videoPath: params.input, outputPath: output, padding: params.padding });
109
+ return { id: "", action: "edit-silence-cut", success: r.success, output: r.outputPath, data: { totalDuration: r.totalDuration, silentDuration: r.silentDuration }, error: r.error };
110
+ });
111
+ registerAction("edit-caption", async (params, outputDir) => {
112
+ const { executeCaption } = await import("../commands/ai-edit.js");
113
+ const output = getOutput(params, outputDir, "captioned.mp4");
114
+ const r = await executeCaption({ videoPath: params.input, outputPath: output, language: params.language });
115
+ return { id: "", action: "edit-caption", success: r.success, output: r.outputPath, error: r.error };
116
+ });
117
+ registerAction("edit-noise-reduce", async (params, outputDir) => {
118
+ const { executeNoiseReduce } = await import("../commands/ai-edit.js");
119
+ const output = getOutput(params, outputDir, "denoised.mp4");
120
+ const r = await executeNoiseReduce({ inputPath: params.input, outputPath: output, strength: params.strength });
121
+ return { id: "", action: "edit-noise-reduce", success: r.success, output: r.outputPath, error: r.error };
122
+ });
123
+ registerAction("edit-fade", async (params, outputDir) => {
124
+ const { executeFade } = await import("../commands/ai-edit.js");
125
+ const output = getOutput(params, outputDir, "faded.mp4");
126
+ const r = await executeFade({ videoPath: params.input, outputPath: output, fadeIn: params.fadeIn, fadeOut: params.fadeOut });
127
+ return { id: "", action: "edit-fade", success: r.success, output: r.outputPath, error: r.error };
128
+ });
129
+ registerAction("edit-grade", async (params, outputDir) => {
130
+ const { executeGrade } = await import("../commands/edit-cmd.js");
131
+ const output = getOutput(params, outputDir, "graded.mp4");
132
+ const r = await executeGrade({ videoPath: params.input, style: params.style, preset: params.preset, output });
133
+ return { id: "", action: "edit-grade", success: r.success, output: r.outputPath, data: { description: r.description }, error: r.error };
134
+ });
135
+ registerAction("edit-reframe", async (params, outputDir) => {
136
+ const { executeReframe } = await import("../commands/edit-cmd.js");
137
+ const output = getOutput(params, outputDir, "reframed.mp4");
138
+ const r = await executeReframe({ videoPath: params.input, aspect: params.aspect, output });
139
+ return { id: "", action: "edit-reframe", success: r.success, output: r.outputPath, error: r.error };
140
+ });
141
+ // Audio
142
+ registerAction("audio-transcribe", async (params, outputDir) => {
143
+ const { executeTranscribe } = await import("../commands/ai-audio.js");
144
+ const output = getOutput(params, outputDir, "transcript.srt");
145
+ const r = await executeTranscribe({ audioPath: params.input, language: params.language, output });
146
+ return { id: "", action: "audio-transcribe", success: r.success, output: r.outputPath, data: { text: r.text, segmentCount: r.segments?.length }, error: r.error };
147
+ });
148
+ registerAction("audio-duck", async (params, outputDir) => {
149
+ const { executeDuck } = await import("../commands/ai-audio.js");
150
+ const output = getOutput(params, outputDir, "ducked.mp3");
151
+ const r = await executeDuck({ musicPath: params.music, voicePath: params.voice, output });
152
+ return { id: "", action: "audio-duck", success: r.success, output: r.outputPath, error: r.error };
153
+ });
154
+ // Detect
155
+ registerAction("detect-scenes", async (params, outputDir) => {
156
+ const { executeDetectScenes } = await import("../commands/detect.js");
157
+ const output = getOutput(params, outputDir, "scenes.json");
158
+ const r = await executeDetectScenes({ videoPath: params.input, threshold: params.threshold, outputPath: output });
159
+ return { id: "", action: "detect-scenes", success: r.success, output, data: { scenes: r.scenes, totalDuration: r.totalDuration }, error: r.error };
160
+ });
161
+ registerAction("detect-silence", async (params, _outputDir) => {
162
+ const { executeDetectSilence } = await import("../commands/detect.js");
163
+ const r = await executeDetectSilence({ mediaPath: params.input, noise: params.noise, duration: params.duration });
164
+ return { id: "", action: "detect-silence", success: r.success, data: { silences: r.silences }, error: r.error };
165
+ });
166
+ registerAction("detect-beats", async (params, _outputDir) => {
167
+ const { executeDetectBeats } = await import("../commands/detect.js");
168
+ const r = await executeDetectBeats({ audioPath: params.input });
169
+ return { id: "", action: "detect-beats", success: r.success, data: { beats: r.beats }, error: r.error };
170
+ });
171
+ // Analyze
172
+ registerAction("analyze-video", async (params, _outputDir) => {
173
+ const { executeGeminiVideo } = await import("../commands/ai-analyze.js");
174
+ const r = await executeGeminiVideo({ source: params.input, prompt: params.prompt, model: params.model });
175
+ return { id: "", action: "analyze-video", success: r.success, data: { response: r.response, model: r.model }, error: r.error };
176
+ });
177
+ // Review
178
+ registerAction("review-video", async (params, _outputDir) => {
179
+ const { executeReview } = await import("../commands/ai-review.js");
180
+ const r = await executeReview({ videoPath: params.input, autoApply: params.autoApply, model: params.model });
181
+ return { id: "", action: "review-video", success: r.success, output: r.outputPath, data: { feedback: r.feedback }, error: r.error };
182
+ });
183
+ }
184
+ // ── Pipeline Loader ─────────────────────────────────────────────────────
185
+ export async function loadPipeline(filePath) {
186
+ const absPath = resolve(process.cwd(), filePath);
187
+ if (!existsSync(absPath)) {
188
+ throw new Error(`Pipeline file not found: ${absPath}`);
189
+ }
190
+ const content = await readFile(absPath, "utf-8");
191
+ const manifest = yamlParse(content);
192
+ // Validate
193
+ if (!manifest.name)
194
+ throw new Error("Pipeline missing 'name' field");
195
+ if (!manifest.steps || !Array.isArray(manifest.steps))
196
+ throw new Error("Pipeline missing 'steps' array");
197
+ const ids = new Set();
198
+ for (const step of manifest.steps) {
199
+ if (!step.id)
200
+ throw new Error("Each step must have an 'id' field");
201
+ if (!step.action)
202
+ throw new Error(`Step '${step.id}' missing 'action' field`);
203
+ if (ids.has(step.id))
204
+ throw new Error(`Duplicate step id: '${step.id}'`);
205
+ ids.add(step.id);
206
+ }
207
+ return manifest;
208
+ }
209
+ const CHECKPOINT_FILE = ".pipeline-state.yaml";
210
+ export async function executePipeline(manifest, options = {}) {
211
+ await ensureActionsRegistered();
212
+ const outputDir = resolve(process.cwd(), options.outputDir || `${manifest.name}-output`);
213
+ await mkdir(outputDir, { recursive: true });
214
+ const completedSteps = new Map();
215
+ const results = [];
216
+ const startTime = Date.now();
217
+ // Load checkpoint if resuming
218
+ if (options.resume) {
219
+ const checkpointPath = resolve(outputDir, CHECKPOINT_FILE);
220
+ if (existsSync(checkpointPath)) {
221
+ const checkpointContent = await readFile(checkpointPath, "utf-8");
222
+ const checkpoint = yamlParse(checkpointContent);
223
+ for (const cs of checkpoint.completedSteps) {
224
+ completedSteps.set(cs.id, {
225
+ id: cs.id,
226
+ action: "generate-image", // placeholder — action doesn't matter for resolution
227
+ success: true,
228
+ output: cs.output,
229
+ data: cs.data,
230
+ });
231
+ }
232
+ }
233
+ }
234
+ // Merge manifest budget with CLI overrides
235
+ const effectiveBudget = (manifest.budget || options.budget)
236
+ ? { ...(manifest.budget ?? {}), ...(options.budget ?? {}) }
237
+ : undefined;
238
+ // Dry-run: validate and show plan
239
+ if (options.dryRun) {
240
+ const plan = [];
241
+ const availableIds = new Set();
242
+ let totalMaxCost = 0;
243
+ for (const step of manifest.steps) {
244
+ const handler = ACTION_HANDLERS[step.action];
245
+ const unresolvedRefs = findUnresolvedRefs(step, availableIds);
246
+ const max = maxCostFor(step.action);
247
+ totalMaxCost += max;
248
+ plan.push({
249
+ id: step.id,
250
+ action: step.action,
251
+ estimatedCost: max > 0 ? `≤$${max.toFixed(2)}` : undefined,
252
+ unresolvedRefs: unresolvedRefs.length > 0 ? unresolvedRefs : undefined,
253
+ });
254
+ if (!handler) {
255
+ plan[plan.length - 1].estimatedCost = "UNKNOWN ACTION";
256
+ }
257
+ availableIds.add(step.id);
258
+ }
259
+ const budgetWarnings = [];
260
+ if (effectiveBudget?.costUsd !== undefined && totalMaxCost > effectiveBudget.costUsd) {
261
+ budgetWarnings.push(`Upper-bound cost estimate ($${totalMaxCost.toFixed(2)}) exceeds budget.costUsd ($${effectiveBudget.costUsd.toFixed(2)})`);
262
+ }
263
+ return {
264
+ success: true,
265
+ name: manifest.name,
266
+ steps: plan.map(p => ({ id: p.id, action: p.action, success: true, data: p })),
267
+ completedSteps: 0,
268
+ totalSteps: manifest.steps.length,
269
+ outputDir,
270
+ budget: effectiveBudget ? {
271
+ estimatedCostUsd: totalMaxCost,
272
+ tokensUsed: 0,
273
+ toolErrors: 0,
274
+ ...(budgetWarnings.length > 0 ? { abortedBy: "costUsd" } : {}),
275
+ } : undefined,
276
+ };
277
+ }
278
+ // Budget tracking
279
+ const budgetUsage = { estimatedCostUsd: 0, tokensUsed: 0, toolErrors: 0 };
280
+ // Execute steps
281
+ for (const step of manifest.steps) {
282
+ // Skip if already completed (resume mode)
283
+ if (completedSteps.has(step.id)) {
284
+ results.push(completedSteps.get(step.id));
285
+ continue;
286
+ }
287
+ // Budget pre-check: cost ceiling
288
+ if (effectiveBudget?.costUsd !== undefined) {
289
+ const projected = budgetUsage.estimatedCostUsd + maxCostFor(step.action);
290
+ if (projected > effectiveBudget.costUsd) {
291
+ budgetUsage.abortedBy = "costUsd";
292
+ return {
293
+ success: false,
294
+ name: manifest.name,
295
+ steps: results,
296
+ completedSteps: completedSteps.size,
297
+ totalSteps: manifest.steps.length,
298
+ totalDuration: Date.now() - startTime,
299
+ outputDir,
300
+ error: `Budget exceeded: projected $${projected.toFixed(2)} > budget.costUsd $${effectiveBudget.costUsd.toFixed(2)} (stopped before step '${step.id}')`,
301
+ budget: budgetUsage,
302
+ };
303
+ }
304
+ }
305
+ const handler = ACTION_HANDLERS[step.action];
306
+ if (!handler) {
307
+ const result = { id: step.id, action: step.action, success: false, error: `Unknown action: ${step.action}` };
308
+ results.push(result);
309
+ budgetUsage.toolErrors += 1;
310
+ if (options.failFast) {
311
+ return { success: false, name: manifest.name, steps: results, completedSteps: completedSteps.size, totalSteps: manifest.steps.length, outputDir, error: result.error, budget: effectiveBudget ? budgetUsage : undefined };
312
+ }
313
+ continue;
314
+ }
315
+ // Resolve variable references
316
+ const resolvedParams = resolveStepParams(step, completedSteps);
317
+ // Execute step
318
+ const stepStart = Date.now();
319
+ let result;
320
+ try {
321
+ result = await handler(resolvedParams, outputDir);
322
+ result.id = step.id;
323
+ result.duration = Date.now() - stepStart;
324
+ }
325
+ catch (err) {
326
+ result = {
327
+ id: step.id,
328
+ action: step.action,
329
+ success: false,
330
+ error: err instanceof Error ? err.message : String(err),
331
+ duration: Date.now() - stepStart,
332
+ };
333
+ }
334
+ results.push(result);
335
+ if (result.success) {
336
+ completedSteps.set(step.id, result);
337
+ budgetUsage.estimatedCostUsd += maxCostFor(step.action);
338
+ // Save checkpoint
339
+ const checkpoint = {
340
+ completedSteps: Array.from(completedSteps.values()).map(s => ({
341
+ id: s.id,
342
+ output: s.output,
343
+ data: s.data,
344
+ })),
345
+ };
346
+ await writeFile(resolve(outputDir, CHECKPOINT_FILE), yamlStringify(checkpoint, { indent: 2 }), "utf-8");
347
+ }
348
+ else {
349
+ budgetUsage.toolErrors += 1;
350
+ // Abort if maxToolErrors exceeded
351
+ if (effectiveBudget?.maxToolErrors !== undefined && budgetUsage.toolErrors > effectiveBudget.maxToolErrors) {
352
+ budgetUsage.abortedBy = "maxToolErrors";
353
+ return {
354
+ success: false,
355
+ name: manifest.name,
356
+ steps: results,
357
+ completedSteps: completedSteps.size,
358
+ totalSteps: manifest.steps.length,
359
+ totalDuration: Date.now() - startTime,
360
+ outputDir,
361
+ error: `Budget exceeded: ${budgetUsage.toolErrors} failed steps > budget.maxToolErrors ${effectiveBudget.maxToolErrors}`,
362
+ budget: budgetUsage,
363
+ };
364
+ }
365
+ if (options.failFast) {
366
+ return {
367
+ success: false,
368
+ name: manifest.name,
369
+ steps: results,
370
+ completedSteps: completedSteps.size,
371
+ totalSteps: manifest.steps.length,
372
+ totalDuration: Date.now() - startTime,
373
+ outputDir,
374
+ error: result.error,
375
+ budget: effectiveBudget ? budgetUsage : undefined,
376
+ };
377
+ }
378
+ }
379
+ }
380
+ const allSuccess = results.every(r => r.success);
381
+ return {
382
+ success: allSuccess,
383
+ name: manifest.name,
384
+ steps: results,
385
+ completedSteps: completedSteps.size,
386
+ totalSteps: manifest.steps.length,
387
+ totalDuration: Date.now() - startTime,
388
+ outputDir,
389
+ budget: effectiveBudget ? budgetUsage : undefined,
390
+ };
391
+ }
392
+ //# 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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"}