@alevental/cccp 0.2.2 → 0.3.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/.claude/skills/cccp-pipeline/SKILL.md +103 -1
- package/README.md +8 -0
- package/dist/cli.js +1 -1
- package/dist/pipeline.js +11 -0
- package/dist/pipeline.js.map +1 -1
- package/dist/runner.d.ts +2 -2
- package/dist/runner.js +230 -87
- package/dist/runner.js.map +1 -1
- package/dist/types.d.ts +15 -1
- package/package.json +1 -1
|
@@ -17,7 +17,7 @@ variables: # Optional. Default variables for all stages.
|
|
|
17
17
|
key: "value"
|
|
18
18
|
stages: # Required. At least one stage.
|
|
19
19
|
- name: string # Required. Unique stage identifier.
|
|
20
|
-
type: agent | pge | autoresearch | human_gate
|
|
20
|
+
type: agent | pge | autoresearch | pipeline | human_gate
|
|
21
21
|
# ... stage-specific fields
|
|
22
22
|
```
|
|
23
23
|
|
|
@@ -190,6 +190,36 @@ Pause pipeline for human approval.
|
|
|
190
190
|
|
|
191
191
|
In `--headless` mode, all gates are auto-approved.
|
|
192
192
|
|
|
193
|
+
## Stage Type: `pipeline`
|
|
194
|
+
|
|
195
|
+
Sub-pipeline composition. Invokes another pipeline YAML inline within the parent.
|
|
196
|
+
|
|
197
|
+
```yaml
|
|
198
|
+
- name: run-docs
|
|
199
|
+
type: pipeline
|
|
200
|
+
file: pipelines/build-docs.yaml # Required. Path to sub-pipeline YAML.
|
|
201
|
+
variables: # Optional. Explicit variables for the child.
|
|
202
|
+
source: "{artifact_dir}/research.md"
|
|
203
|
+
artifact_dir: "{artifact_dir}/docs" # Optional. Override artifact dir for child.
|
|
204
|
+
on_fail: skip # Optional. Default: "stop".
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
| Field | Type | Required | Constraints | Description |
|
|
208
|
+
|-------|------|----------|-------------|-------------|
|
|
209
|
+
| `file` | string | Yes | - | Path to sub-pipeline YAML (resolved relative to parent pipeline dir, supports variable interpolation) |
|
|
210
|
+
| `variables` | map | No | - | Variables passed to sub-pipeline (child does NOT inherit parent's custom vars) |
|
|
211
|
+
| `artifact_dir` | string | No | - | Override artifact directory for the child pipeline |
|
|
212
|
+
| `on_fail` | string | No | stop/human_gate/skip | Behavior if sub-pipeline fails |
|
|
213
|
+
|
|
214
|
+
### Pipeline Composition Mechanics
|
|
215
|
+
|
|
216
|
+
- Sub-pipeline runs inline — its stages execute sequentially as part of the parent run
|
|
217
|
+
- Child state is nested inside parent's stage state (not a separate run)
|
|
218
|
+
- Variables are **explicit pass-through only**: child gets built-in vars (`{project}`, `{project_dir}`, `{artifact_dir}`, `{pipeline_name}`) recomputed for its context, plus any `variables` explicitly passed
|
|
219
|
+
- Circular dependencies are detected (max depth 5) and cause the stage to error
|
|
220
|
+
- Resume works across pipeline boundaries
|
|
221
|
+
- `on_fail` strategies work the same as PGE/autoresearch stages
|
|
222
|
+
|
|
193
223
|
## Variables
|
|
194
224
|
|
|
195
225
|
### Syntax
|
|
@@ -460,6 +490,41 @@ stages:
|
|
|
460
490
|
# No max_iterations — runs until PASS
|
|
461
491
|
```
|
|
462
492
|
|
|
493
|
+
### Example 4: Pipeline Composition (Sub-Pipelines)
|
|
494
|
+
|
|
495
|
+
Master pipeline that delegates to reusable sub-pipelines.
|
|
496
|
+
|
|
497
|
+
```yaml
|
|
498
|
+
name: full-build
|
|
499
|
+
description: Master build — research, then delegate docs and tests to sub-pipelines.
|
|
500
|
+
|
|
501
|
+
stages:
|
|
502
|
+
- name: research
|
|
503
|
+
type: agent
|
|
504
|
+
task: "Research the project and produce a summary."
|
|
505
|
+
agent: researcher
|
|
506
|
+
output: "{artifact_dir}/research.md"
|
|
507
|
+
|
|
508
|
+
- name: documentation
|
|
509
|
+
type: pipeline
|
|
510
|
+
file: pipelines/build-docs.yaml
|
|
511
|
+
variables:
|
|
512
|
+
source: "{artifact_dir}/research.md"
|
|
513
|
+
on_fail: human_gate
|
|
514
|
+
|
|
515
|
+
- name: test-suite
|
|
516
|
+
type: pipeline
|
|
517
|
+
file: pipelines/run-tests.yaml
|
|
518
|
+
artifact_dir: "{artifact_dir}/tests"
|
|
519
|
+
on_fail: skip
|
|
520
|
+
|
|
521
|
+
- name: ship-approval
|
|
522
|
+
type: human_gate
|
|
523
|
+
prompt: "Docs and tests complete. Approve to ship."
|
|
524
|
+
artifacts:
|
|
525
|
+
- "{artifact_dir}/research.md"
|
|
526
|
+
```
|
|
527
|
+
|
|
463
528
|
## Patterns
|
|
464
529
|
|
|
465
530
|
### Input Chaining
|
|
@@ -551,6 +616,43 @@ For complex tasks that don't fit inline in YAML:
|
|
|
551
616
|
|
|
552
617
|
The path is interpolated with variables before reading.
|
|
553
618
|
|
|
619
|
+
### Sub-Pipeline Composition
|
|
620
|
+
|
|
621
|
+
Break large pipelines into reusable pieces:
|
|
622
|
+
|
|
623
|
+
```yaml
|
|
624
|
+
# pipelines/sprint.yaml — reusable sprint execution
|
|
625
|
+
name: sprint-execution
|
|
626
|
+
stages:
|
|
627
|
+
- name: implement
|
|
628
|
+
type: pge
|
|
629
|
+
plan: "{artifact_dir}/brief.md"
|
|
630
|
+
planner:
|
|
631
|
+
agent: architect
|
|
632
|
+
operation: task-planning
|
|
633
|
+
generator:
|
|
634
|
+
agent: implementer
|
|
635
|
+
evaluator:
|
|
636
|
+
agent: code-reviewer
|
|
637
|
+
contract:
|
|
638
|
+
deliverable: "{artifact_dir}/sprint-complete.md"
|
|
639
|
+
max_iterations: 5
|
|
640
|
+
|
|
641
|
+
# pipelines/master.yaml — composes sprint pipelines
|
|
642
|
+
name: master-plan
|
|
643
|
+
stages:
|
|
644
|
+
- name: plan
|
|
645
|
+
type: agent
|
|
646
|
+
agent: architect
|
|
647
|
+
operation: sprint-brief
|
|
648
|
+
output: "{artifact_dir}/brief.md"
|
|
649
|
+
- name: execute
|
|
650
|
+
type: pipeline
|
|
651
|
+
file: pipelines/sprint.yaml
|
|
652
|
+
```
|
|
653
|
+
|
|
654
|
+
Child pipelines share `{project}` and `{project_dir}` but get their own `{pipeline_name}` and optionally scoped `{artifact_dir}`.
|
|
655
|
+
|
|
554
656
|
## Validation
|
|
555
657
|
|
|
556
658
|
Dry-run to verify a pipeline without executing:
|
package/README.md
CHANGED
|
@@ -104,6 +104,13 @@ stages:
|
|
|
104
104
|
max_iterations: 3
|
|
105
105
|
on_fail: stop # stop | skip | human_gate
|
|
106
106
|
|
|
107
|
+
# Sub-pipeline composition
|
|
108
|
+
- name: documentation
|
|
109
|
+
type: pipeline
|
|
110
|
+
file: pipelines/build-docs.yaml
|
|
111
|
+
variables:
|
|
112
|
+
source: "{artifact_dir}/design.md"
|
|
113
|
+
|
|
107
114
|
# Human approval gate
|
|
108
115
|
- name: approval
|
|
109
116
|
type: human_gate
|
|
@@ -119,6 +126,7 @@ stages:
|
|
|
119
126
|
| `agent` | Dispatch one agent, collect output |
|
|
120
127
|
| `pge` | Dispatch planner -> evaluator writes contract -> dispatch generator -> dispatch evaluator -> parse `### Overall: PASS/FAIL` -> retry generator/evaluator on FAIL up to `max_iterations` |
|
|
121
128
|
| `autoresearch` | Iterative artifact optimization — adjust artifact, execute task, evaluate against ground truth, retry on FAIL |
|
|
129
|
+
| `pipeline` | Invoke another pipeline YAML as a sub-pipeline — runs inline, shares the parent run lifecycle |
|
|
122
130
|
| `human_gate` | Block until approved via MCP tool call or state file edit |
|
|
123
131
|
|
|
124
132
|
### Variables
|
package/dist/cli.js
CHANGED
|
@@ -9,7 +9,7 @@ const program = new Command();
|
|
|
9
9
|
program
|
|
10
10
|
.name("cccp")
|
|
11
11
|
.description("Claude Code and Cmux Pipeline Reagent — deterministic YAML-based pipeline orchestration")
|
|
12
|
-
.version("0.
|
|
12
|
+
.version("0.3.0");
|
|
13
13
|
program
|
|
14
14
|
.command("run")
|
|
15
15
|
.description("Run a pipeline from a YAML definition")
|
package/dist/pipeline.js
CHANGED
|
@@ -72,11 +72,22 @@ const HumanGateStageSchema = z.object({
|
|
|
72
72
|
on_reject: z.enum(["retry", "stop"]).optional(),
|
|
73
73
|
variables: z.record(z.string()).optional(),
|
|
74
74
|
});
|
|
75
|
+
const PipelineStageSchema = z.object({
|
|
76
|
+
name: z.string(),
|
|
77
|
+
task: z.string().optional(),
|
|
78
|
+
task_file: z.string().optional(),
|
|
79
|
+
type: z.literal("pipeline"),
|
|
80
|
+
file: z.string(),
|
|
81
|
+
artifact_dir: z.string().optional(),
|
|
82
|
+
on_fail: z.enum(["stop", "human_gate", "skip"]).optional(),
|
|
83
|
+
variables: z.record(z.string()).optional(),
|
|
84
|
+
});
|
|
75
85
|
const StageSchema = z.discriminatedUnion("type", [
|
|
76
86
|
AgentStageSchema,
|
|
77
87
|
PgeStageSchema,
|
|
78
88
|
HumanGateStageSchema,
|
|
79
89
|
AutoresearchStageSchema,
|
|
90
|
+
PipelineStageSchema,
|
|
80
91
|
]);
|
|
81
92
|
const PipelineSchema = z.object({
|
|
82
93
|
name: z.string(),
|
package/dist/pipeline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/runner.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface RunOptions {
|
|
|
5
5
|
}
|
|
6
6
|
/**
|
|
7
7
|
* Run all stages in a pipeline sequentially.
|
|
8
|
-
*
|
|
9
|
-
*
|
|
8
|
+
* Handles top-level lifecycle: state creation, DB persistence, gate strategy,
|
|
9
|
+
* cmux notifications, and temp file cleanup.
|
|
10
10
|
*/
|
|
11
11
|
export declare function runPipeline(ctx: RunContext, opts?: RunOptions): Promise<PipelineResult>;
|
package/dist/runner.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolve } from "node:path";
|
|
1
|
+
import { resolve, dirname } from "node:path";
|
|
2
2
|
import { activityBus } from "./activity-bus.js";
|
|
3
3
|
import { resolveAgent } from "./agent-resolver.js";
|
|
4
4
|
import { DefaultAgentDispatcher } from "./dispatcher.js";
|
|
@@ -7,6 +7,7 @@ import { FilesystemGateStrategy } from "./gate/gate-watcher.js";
|
|
|
7
7
|
import { ConsoleLogger } from "./logger.js";
|
|
8
8
|
import { writeMcpConfigFile } from "./mcp/mcp-config.js";
|
|
9
9
|
import { runAutoresearchCycle } from "./autoresearch.js";
|
|
10
|
+
import { loadPipeline } from "./pipeline.js";
|
|
10
11
|
import { runPgeCycle } from "./pge.js";
|
|
11
12
|
import { interpolate, resolveTaskBody, loadAgentMarkdown, buildTaskContext, writeSystemPromptFile } from "./prompt.js";
|
|
12
13
|
import { updatePipelineStatus, notifyPipelineComplete } from "./tui/cmux.js";
|
|
@@ -350,6 +351,117 @@ async function runHumanGateStage(stage, ctx, state) {
|
|
|
350
351
|
};
|
|
351
352
|
}
|
|
352
353
|
// ---------------------------------------------------------------------------
|
|
354
|
+
// Stage dispatch — type: pipeline (sub-pipeline)
|
|
355
|
+
// ---------------------------------------------------------------------------
|
|
356
|
+
const MAX_PIPELINE_DEPTH = 5;
|
|
357
|
+
async function runPipelineStage(stage, ctx, state) {
|
|
358
|
+
const start = Date.now();
|
|
359
|
+
const vars = { ...ctx.variables, ...(stage.variables ?? {}) };
|
|
360
|
+
// Resolve sub-pipeline file path relative to parent pipeline's directory.
|
|
361
|
+
const filePath = resolve(dirname(ctx.pipelineFile), interpolate(stage.file, vars));
|
|
362
|
+
// --- Dry-run ---
|
|
363
|
+
if (ctx.dryRun) {
|
|
364
|
+
const logger = getLogger(ctx);
|
|
365
|
+
logger.log(`\n[dry-run] Pipeline Stage: ${stage.name}`);
|
|
366
|
+
logger.log(` file: ${filePath}`);
|
|
367
|
+
if (stage.artifact_dir) {
|
|
368
|
+
logger.log(` artifact_dir: ${interpolate(stage.artifact_dir, vars)}`);
|
|
369
|
+
}
|
|
370
|
+
if (stage.on_fail) {
|
|
371
|
+
logger.log(` on_fail: ${stage.on_fail}`);
|
|
372
|
+
}
|
|
373
|
+
// Load and dry-run the sub-pipeline.
|
|
374
|
+
let childPipeline;
|
|
375
|
+
try {
|
|
376
|
+
childPipeline = await loadPipeline(filePath);
|
|
377
|
+
}
|
|
378
|
+
catch (err) {
|
|
379
|
+
logger.log(` (sub-pipeline not loadable — will resolve at runtime)`);
|
|
380
|
+
return { stageName: stage.name, status: "passed", durationMs: 0 };
|
|
381
|
+
}
|
|
382
|
+
logger.log(` sub-pipeline: ${childPipeline.name} (${childPipeline.stages.length} stages)`);
|
|
383
|
+
for (const s of childPipeline.stages) {
|
|
384
|
+
logger.log(` - ${s.name} (${s.type})`);
|
|
385
|
+
}
|
|
386
|
+
return { stageName: stage.name, status: "passed", durationMs: 0 };
|
|
387
|
+
}
|
|
388
|
+
// --- Cycle detection ---
|
|
389
|
+
const visited = ctx.visitedPipelines ?? new Set();
|
|
390
|
+
if (visited.has(filePath)) {
|
|
391
|
+
throw new Error(`Circular pipeline dependency: ${[...visited, filePath].join(" → ")}`);
|
|
392
|
+
}
|
|
393
|
+
if (visited.size >= MAX_PIPELINE_DEPTH) {
|
|
394
|
+
throw new Error(`Pipeline nesting depth exceeded (max ${MAX_PIPELINE_DEPTH}): ${[...visited, filePath].join(" → ")}`);
|
|
395
|
+
}
|
|
396
|
+
// --- Load sub-pipeline ---
|
|
397
|
+
const childPipeline = await loadPipeline(filePath);
|
|
398
|
+
// --- Build child context ---
|
|
399
|
+
const childArtifactDir = stage.artifact_dir
|
|
400
|
+
? resolve(ctx.projectDir, interpolate(stage.artifact_dir, vars))
|
|
401
|
+
: ctx.artifactDir;
|
|
402
|
+
const childVars = {
|
|
403
|
+
project: ctx.project,
|
|
404
|
+
project_dir: ctx.projectDir,
|
|
405
|
+
artifact_dir: childArtifactDir,
|
|
406
|
+
pipeline_name: childPipeline.name,
|
|
407
|
+
...(childPipeline.variables ?? {}),
|
|
408
|
+
...(stage.variables ?? {}),
|
|
409
|
+
};
|
|
410
|
+
const childVisited = new Set(visited);
|
|
411
|
+
childVisited.add(resolve(ctx.pipelineFile));
|
|
412
|
+
const childCtx = {
|
|
413
|
+
...ctx,
|
|
414
|
+
pipeline: childPipeline,
|
|
415
|
+
pipelineFile: filePath,
|
|
416
|
+
artifactDir: childArtifactDir,
|
|
417
|
+
variables: childVars,
|
|
418
|
+
visitedPipelines: childVisited,
|
|
419
|
+
// Inherit parent's agent search paths + sub-pipeline's directory.
|
|
420
|
+
agentSearchPaths: [
|
|
421
|
+
resolve(dirname(filePath), "agents"),
|
|
422
|
+
...ctx.agentSearchPaths,
|
|
423
|
+
],
|
|
424
|
+
};
|
|
425
|
+
// --- Execute child stages ---
|
|
426
|
+
const stageState = state.stages[stage.name];
|
|
427
|
+
const existingChildState = stageState?.children;
|
|
428
|
+
const childResult = await runStages(childCtx, existingChildState);
|
|
429
|
+
// Store child state in parent.
|
|
430
|
+
if (stageState) {
|
|
431
|
+
stageState.children = childResult.state;
|
|
432
|
+
}
|
|
433
|
+
const durationMs = Date.now() - start;
|
|
434
|
+
const result = {
|
|
435
|
+
stageName: stage.name,
|
|
436
|
+
status: childResult.pipelineResult.status === "passed" ? "passed" : "failed",
|
|
437
|
+
error: childResult.pipelineResult.status !== "passed"
|
|
438
|
+
? `Sub-pipeline "${childPipeline.name}" ${childResult.pipelineResult.status}`
|
|
439
|
+
: undefined,
|
|
440
|
+
durationMs,
|
|
441
|
+
};
|
|
442
|
+
// --- Escalation ---
|
|
443
|
+
if (result.status === "failed" && stage.on_fail) {
|
|
444
|
+
if (stage.on_fail === "skip") {
|
|
445
|
+
return { ...result, status: "skipped" };
|
|
446
|
+
}
|
|
447
|
+
if (stage.on_fail === "human_gate" && ctx.gateStrategy) {
|
|
448
|
+
const gate = {
|
|
449
|
+
stageName: stage.name,
|
|
450
|
+
status: "pending",
|
|
451
|
+
prompt: `Sub-pipeline "${childPipeline.name}" failed. Approve to continue, reject to stop.`,
|
|
452
|
+
};
|
|
453
|
+
state.gate = gate;
|
|
454
|
+
await saveState(state);
|
|
455
|
+
const response = await ctx.gateStrategy.waitForGate(gate);
|
|
456
|
+
state.gate = { ...gate, ...response, status: response.approved ? "approved" : "rejected" };
|
|
457
|
+
if (response.approved) {
|
|
458
|
+
return { ...result, status: "skipped" };
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
return result;
|
|
463
|
+
}
|
|
464
|
+
// ---------------------------------------------------------------------------
|
|
353
465
|
// Stage router
|
|
354
466
|
// ---------------------------------------------------------------------------
|
|
355
467
|
async function runStage(stage, ctx, state) {
|
|
@@ -362,130 +474,161 @@ async function runStage(stage, ctx, state) {
|
|
|
362
474
|
return runHumanGateStage(stage, ctx, state);
|
|
363
475
|
case "autoresearch":
|
|
364
476
|
return runAutoresearchStage(stage, ctx, state);
|
|
477
|
+
case "pipeline":
|
|
478
|
+
return runPipelineStage(stage, ctx, state);
|
|
365
479
|
}
|
|
366
480
|
}
|
|
367
481
|
/**
|
|
368
|
-
*
|
|
369
|
-
*
|
|
370
|
-
*
|
|
482
|
+
* Execute the stage loop for a pipeline. Used by both top-level `runPipeline()`
|
|
483
|
+
* and nested `runPipelineStage()`. Handles resume, state persistence, and
|
|
484
|
+
* stage routing — but not lifecycle concerns (DB row creation, notifications,
|
|
485
|
+
* gate strategy setup, temp file cleanup).
|
|
371
486
|
*/
|
|
372
|
-
|
|
487
|
+
async function runStages(ctx, existingState) {
|
|
373
488
|
const start = Date.now();
|
|
374
489
|
const results = [];
|
|
375
490
|
let pipelineStatus = "passed";
|
|
376
491
|
// --- State initialization ---
|
|
377
492
|
let state;
|
|
378
493
|
let skipUntilIndex = -1;
|
|
379
|
-
if (
|
|
380
|
-
state =
|
|
494
|
+
if (existingState) {
|
|
495
|
+
state = existingState;
|
|
381
496
|
state.status = "running";
|
|
382
497
|
const resume = findResumePoint(state);
|
|
383
498
|
if (resume) {
|
|
384
499
|
skipUntilIndex = resume.stageIndex;
|
|
385
|
-
getLogger(ctx).log(
|
|
500
|
+
getLogger(ctx).log(` resuming "${ctx.pipeline.name}" from stage "${resume.stageName}"`);
|
|
386
501
|
}
|
|
387
502
|
else {
|
|
388
|
-
getLogger(ctx).log(`\nCCCP: Pipeline "${ctx.pipeline.name}" has no resumable stages\n`);
|
|
389
503
|
return {
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
504
|
+
state,
|
|
505
|
+
pipelineResult: {
|
|
506
|
+
pipeline: ctx.pipeline.name,
|
|
507
|
+
project: ctx.project,
|
|
508
|
+
stages: [],
|
|
509
|
+
status: "passed",
|
|
510
|
+
durationMs: 0,
|
|
511
|
+
},
|
|
395
512
|
};
|
|
396
513
|
}
|
|
397
514
|
}
|
|
398
515
|
else {
|
|
399
516
|
state = createState(ctx.pipeline.name, ctx.project, ctx.pipelineFile, ctx.pipeline.stages.map((s) => ({ name: s.name, type: s.type })), ctx.artifactDir, ctx.projectDir);
|
|
400
|
-
getLogger(ctx).log(`\nCCCP: Running pipeline "${ctx.pipeline.name}" for project "${ctx.project}"\n`);
|
|
401
|
-
}
|
|
402
|
-
// Create gate strategy now that we have a runId.
|
|
403
|
-
if (!ctx.gateStrategy && !ctx.headless) {
|
|
404
|
-
ctx.gateStrategy = new FilesystemGateStrategy(state.runId, ctx.projectDir, ctx.quiet);
|
|
405
517
|
}
|
|
406
518
|
if (!ctx.dryRun) {
|
|
407
519
|
await saveState(state);
|
|
408
520
|
}
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
getLogger(ctx).log(` ⏭ ${stage.name}: already ${stageState.status}`);
|
|
417
|
-
results.push({
|
|
418
|
-
stageName: stage.name,
|
|
419
|
-
status: stageState.status,
|
|
420
|
-
durationMs: stageState.durationMs ?? 0,
|
|
421
|
-
});
|
|
422
|
-
continue;
|
|
423
|
-
}
|
|
424
|
-
}
|
|
425
|
-
getLogger(ctx).log(`▸ Stage: ${stage.name} (${stage.type})`);
|
|
426
|
-
// Mark in_progress in state + update cmux.
|
|
427
|
-
if (!ctx.dryRun) {
|
|
428
|
-
updateStageStatus(state, stage.name, "in_progress");
|
|
429
|
-
await saveStateWithEvent(state, "stage_start", stage.name);
|
|
430
|
-
await updatePipelineStatus(stage.name, i, ctx.pipeline.stages.length);
|
|
431
|
-
}
|
|
432
|
-
try {
|
|
433
|
-
const result = await runStage(stage, ctx, state);
|
|
434
|
-
results.push(result);
|
|
435
|
-
// Persist stage result to state.
|
|
436
|
-
if (!ctx.dryRun) {
|
|
437
|
-
updateStageStatus(state, stage.name, result.status, {
|
|
438
|
-
durationMs: result.durationMs,
|
|
439
|
-
error: result.error,
|
|
440
|
-
});
|
|
441
|
-
await saveStateWithEvent(state, "stage_complete", stage.name, {
|
|
442
|
-
status: result.status,
|
|
443
|
-
durationMs: result.durationMs,
|
|
444
|
-
});
|
|
445
|
-
}
|
|
446
|
-
if (result.status === "failed" || result.status === "error") {
|
|
447
|
-
pipelineStatus = "failed";
|
|
448
|
-
getLogger(ctx).log(` ✗ ${stage.name}: ${result.status}${result.error ? ` — ${result.error}` : ""}`);
|
|
449
|
-
break;
|
|
450
|
-
}
|
|
451
|
-
const duration = result.durationMs > 0
|
|
452
|
-
? ` (${(result.durationMs / 1000).toFixed(1)}s)`
|
|
453
|
-
: "";
|
|
454
|
-
getLogger(ctx).log(` ✓ ${stage.name}: ${result.status}${duration}`);
|
|
455
|
-
}
|
|
456
|
-
catch (err) {
|
|
457
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
521
|
+
for (let i = 0; i < ctx.pipeline.stages.length; i++) {
|
|
522
|
+
const stage = ctx.pipeline.stages[i];
|
|
523
|
+
// Skip completed stages on resume.
|
|
524
|
+
if (existingState && i < skipUntilIndex) {
|
|
525
|
+
const stageState = state.stages[stage.name];
|
|
526
|
+
if (stageState?.status === "passed" || stageState?.status === "skipped") {
|
|
527
|
+
getLogger(ctx).log(` ⏭ ${stage.name}: already ${stageState.status}`);
|
|
458
528
|
results.push({
|
|
459
529
|
stageName: stage.name,
|
|
460
|
-
status:
|
|
461
|
-
|
|
462
|
-
durationMs: Date.now() - start,
|
|
530
|
+
status: stageState.status,
|
|
531
|
+
durationMs: stageState.durationMs ?? 0,
|
|
463
532
|
});
|
|
464
|
-
|
|
465
|
-
if (!ctx.dryRun) {
|
|
466
|
-
updateStageStatus(state, stage.name, "error", { error: message });
|
|
467
|
-
await saveState(state);
|
|
468
|
-
}
|
|
469
|
-
getLogger(ctx).error(` ✗ ${stage.name}: error — ${message}`);
|
|
470
|
-
break;
|
|
533
|
+
continue;
|
|
471
534
|
}
|
|
472
535
|
}
|
|
473
|
-
|
|
536
|
+
getLogger(ctx).log(`▸ Stage: ${stage.name} (${stage.type})`);
|
|
537
|
+
// Mark in_progress in state + update cmux.
|
|
474
538
|
if (!ctx.dryRun) {
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
await
|
|
478
|
-
await notifyPipelineComplete(ctx.pipeline.name, pipelineStatus);
|
|
539
|
+
updateStageStatus(state, stage.name, "in_progress");
|
|
540
|
+
await saveStateWithEvent(state, "stage_start", stage.name);
|
|
541
|
+
await updatePipelineStatus(stage.name, i, ctx.pipeline.stages.length);
|
|
479
542
|
}
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
543
|
+
try {
|
|
544
|
+
const result = await runStage(stage, ctx, state);
|
|
545
|
+
results.push(result);
|
|
546
|
+
// Persist stage result to state.
|
|
547
|
+
if (!ctx.dryRun) {
|
|
548
|
+
updateStageStatus(state, stage.name, result.status, {
|
|
549
|
+
durationMs: result.durationMs,
|
|
550
|
+
error: result.error,
|
|
551
|
+
});
|
|
552
|
+
await saveStateWithEvent(state, "stage_complete", stage.name, {
|
|
553
|
+
status: result.status,
|
|
554
|
+
durationMs: result.durationMs,
|
|
555
|
+
});
|
|
556
|
+
}
|
|
557
|
+
if (result.status === "failed" || result.status === "error") {
|
|
558
|
+
pipelineStatus = "failed";
|
|
559
|
+
getLogger(ctx).log(` ✗ ${stage.name}: ${result.status}${result.error ? ` — ${result.error}` : ""}`);
|
|
560
|
+
break;
|
|
561
|
+
}
|
|
562
|
+
const duration = result.durationMs > 0
|
|
563
|
+
? ` (${(result.durationMs / 1000).toFixed(1)}s)`
|
|
564
|
+
: "";
|
|
565
|
+
getLogger(ctx).log(` ✓ ${stage.name}: ${result.status}${duration}`);
|
|
566
|
+
}
|
|
567
|
+
catch (err) {
|
|
568
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
569
|
+
results.push({
|
|
570
|
+
stageName: stage.name,
|
|
571
|
+
status: "error",
|
|
572
|
+
error: message,
|
|
573
|
+
durationMs: Date.now() - start,
|
|
574
|
+
});
|
|
575
|
+
pipelineStatus = "error";
|
|
576
|
+
if (!ctx.dryRun) {
|
|
577
|
+
updateStageStatus(state, stage.name, "error", { error: message });
|
|
578
|
+
await saveState(state);
|
|
579
|
+
}
|
|
580
|
+
getLogger(ctx).error(` ✗ ${stage.name}: error — ${message}`);
|
|
581
|
+
break;
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
// Finalize state.
|
|
585
|
+
if (!ctx.dryRun) {
|
|
586
|
+
const finalStatus = pipelineStatus === "passed" ? "passed" : pipelineStatus === "error" ? "error" : "failed";
|
|
587
|
+
finishPipeline(state, finalStatus);
|
|
588
|
+
}
|
|
589
|
+
const durationMs = Date.now() - start;
|
|
590
|
+
return {
|
|
591
|
+
state,
|
|
592
|
+
pipelineResult: {
|
|
483
593
|
pipeline: ctx.pipeline.name,
|
|
484
594
|
project: ctx.project,
|
|
485
595
|
stages: results,
|
|
486
596
|
status: pipelineStatus,
|
|
487
597
|
durationMs,
|
|
488
|
-
}
|
|
598
|
+
},
|
|
599
|
+
};
|
|
600
|
+
}
|
|
601
|
+
/**
|
|
602
|
+
* Run all stages in a pipeline sequentially.
|
|
603
|
+
* Handles top-level lifecycle: state creation, DB persistence, gate strategy,
|
|
604
|
+
* cmux notifications, and temp file cleanup.
|
|
605
|
+
*/
|
|
606
|
+
export async function runPipeline(ctx, opts) {
|
|
607
|
+
// Create gate strategy if not provided.
|
|
608
|
+
if (!ctx.gateStrategy && !ctx.headless && !ctx.dryRun) {
|
|
609
|
+
// Need a runId — use existing state or generate one via createState.
|
|
610
|
+
const tempState = opts?.existingState ?? createState(ctx.pipeline.name, ctx.project, ctx.pipelineFile, ctx.pipeline.stages.map((s) => ({ name: s.name, type: s.type })), ctx.artifactDir, ctx.projectDir);
|
|
611
|
+
ctx.gateStrategy = new FilesystemGateStrategy(tempState.runId, ctx.projectDir, ctx.quiet);
|
|
612
|
+
}
|
|
613
|
+
// Initialize visited pipelines for cycle detection.
|
|
614
|
+
if (!ctx.visitedPipelines) {
|
|
615
|
+
ctx.visitedPipelines = new Set([resolve(ctx.pipelineFile)]);
|
|
616
|
+
}
|
|
617
|
+
if (opts?.existingState) {
|
|
618
|
+
getLogger(ctx).log(`\nCCCP: Resuming pipeline "${ctx.pipeline.name}"\n`);
|
|
619
|
+
}
|
|
620
|
+
else {
|
|
621
|
+
getLogger(ctx).log(`\nCCCP: Running pipeline "${ctx.pipeline.name}" for project "${ctx.project}"\n`);
|
|
622
|
+
}
|
|
623
|
+
try {
|
|
624
|
+
const { state, pipelineResult } = await runStages(ctx, opts?.existingState);
|
|
625
|
+
// Top-level persistence and notifications.
|
|
626
|
+
if (!ctx.dryRun) {
|
|
627
|
+
await saveStateWithEvent(state, "pipeline_complete", undefined, { status: pipelineResult.status });
|
|
628
|
+
await notifyPipelineComplete(ctx.pipeline.name, pipelineResult.status);
|
|
629
|
+
}
|
|
630
|
+
getLogger(ctx).log(`\nPipeline "${ctx.pipeline.name}": ${pipelineResult.status} (${(pipelineResult.durationMs / 1000).toFixed(1)}s)\n`);
|
|
631
|
+
return pipelineResult;
|
|
489
632
|
}
|
|
490
633
|
finally {
|
|
491
634
|
await ctx.tempTracker?.cleanup();
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export interface Pipeline {
|
|
|
9
9
|
stages: Stage[];
|
|
10
10
|
}
|
|
11
11
|
/** A single stage in a pipeline. Discriminated on `type`. */
|
|
12
|
-
export type Stage = AgentStage | PgeStage | HumanGateStage | AutoresearchStage;
|
|
12
|
+
export type Stage = AgentStage | PgeStage | HumanGateStage | AutoresearchStage | PipelineStage;
|
|
13
13
|
/** Base fields shared by every stage type. */
|
|
14
14
|
export interface StageBase {
|
|
15
15
|
name: string;
|
|
@@ -101,6 +101,16 @@ export interface AutoresearchStage extends StageBase {
|
|
|
101
101
|
/** What to do when max iterations reached with FAIL. */
|
|
102
102
|
on_fail?: EscalationStrategy;
|
|
103
103
|
}
|
|
104
|
+
/** Sub-pipeline stage — invokes another pipeline YAML inline. */
|
|
105
|
+
export interface PipelineStage extends StageBase {
|
|
106
|
+
type: "pipeline";
|
|
107
|
+
/** Path to the sub-pipeline YAML file (supports variable interpolation). */
|
|
108
|
+
file: string;
|
|
109
|
+
/** Override artifact directory for the sub-pipeline. */
|
|
110
|
+
artifact_dir?: string;
|
|
111
|
+
/** What to do if the sub-pipeline fails. */
|
|
112
|
+
on_fail?: EscalationStrategy;
|
|
113
|
+
}
|
|
104
114
|
export type EscalationStrategy = "stop" | "human_gate" | "skip";
|
|
105
115
|
export type StageStatus = "pending" | "in_progress" | "passed" | "failed" | "skipped" | "error";
|
|
106
116
|
export type PgeStep = "planner_dispatched" | "contract_dispatched" | "generator_dispatched" | "evaluator_dispatched" | "routed";
|
|
@@ -119,6 +129,8 @@ export interface StageState {
|
|
|
119
129
|
durationMs?: number;
|
|
120
130
|
/** Error message if status is error/failed. */
|
|
121
131
|
error?: string;
|
|
132
|
+
/** Nested pipeline state for type: pipeline stages. */
|
|
133
|
+
children?: PipelineState;
|
|
122
134
|
}
|
|
123
135
|
export interface GateInfo {
|
|
124
136
|
stageName: string;
|
|
@@ -209,6 +221,8 @@ export interface RunContext {
|
|
|
209
221
|
dispatcher?: import("./dispatcher.js").AgentDispatcher;
|
|
210
222
|
/** Tracks temp files for cleanup. */
|
|
211
223
|
tempTracker?: import("./temp-tracker.js").TempFileTracker;
|
|
224
|
+
/** Pipeline file paths visited in the current execution chain (cycle detection). */
|
|
225
|
+
visitedPipelines?: Set<string>;
|
|
212
226
|
}
|
|
213
227
|
/** Result of dispatching a single agent. */
|
|
214
228
|
export interface AgentResult {
|