@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.
@@ -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.2.2");
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(),
@@ -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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,8EAA8E;AAC9E,8DAA8D;AAC9D,8EAA8E;AAE9E,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;IACxB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CACvC,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACtB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,OAAO,EAAE,oBAAoB;IAC7B,SAAS,EAAE,oBAAoB;IAC/B,SAAS,EAAE,oBAAoB;IAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;QACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;KAChD,CAAC;IACF,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,uBAAuB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;IAC/B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;IACpB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE;IACxB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,QAAQ,EAAE,oBAAoB;IAC9B,QAAQ,EAAE,oBAAoB;IAC9B,SAAS,EAAE,oBAAoB;IAC/B,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IAClD,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC;IAC7B,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IACzC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC7B,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC/C,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC1D,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;CAC3C,CAAC,CAAC;AAEH,MAAM,WAAW,GAAG,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC/C,gBAAgB;IAChB,cAAc;IACd,oBAAoB;IACpB,uBAAuB;IACvB,mBAAmB;CACpB,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IAC9B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACpC,CAAC,CAAC;AAEH,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,EAAE,EAAE;YAC5D,KAAK,EAAE,GAAG;SACX,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM;aAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;aACnD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CACb,kCAAkC,QAAQ,MAAM,MAAM,EAAE,CACzD,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC,IAAgB,CAAC;AACjC,CAAC"}
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
- * Persists state to disk after every stage transition.
9
- * Returns the overall pipeline result.
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
- * Run all stages in a pipeline sequentially.
369
- * Persists state to disk after every stage transition.
370
- * Returns the overall pipeline result.
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
- export async function runPipeline(ctx, opts) {
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 (opts?.existingState) {
380
- state = opts.existingState;
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(`\nCCCP: Resuming pipeline "${ctx.pipeline.name}" from stage "${resume.stageName}"\n`);
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
- pipeline: ctx.pipeline.name,
391
- project: ctx.project,
392
- stages: [],
393
- status: "passed",
394
- durationMs: 0,
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
- try {
410
- for (let i = 0; i < ctx.pipeline.stages.length; i++) {
411
- const stage = ctx.pipeline.stages[i];
412
- // Skip completed stages on resume.
413
- if (opts?.existingState && i < skipUntilIndex) {
414
- const stageState = state.stages[stage.name];
415
- if (stageState?.status === "passed" || stageState?.status === "skipped") {
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: "error",
461
- error: message,
462
- durationMs: Date.now() - start,
530
+ status: stageState.status,
531
+ durationMs: stageState.durationMs ?? 0,
463
532
  });
464
- pipelineStatus = "error";
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
- // Finalize state + notify cmux.
536
+ getLogger(ctx).log(`▸ Stage: ${stage.name} (${stage.type})`);
537
+ // Mark in_progress in state + update cmux.
474
538
  if (!ctx.dryRun) {
475
- const finalStatus = pipelineStatus === "passed" ? "passed" : pipelineStatus === "error" ? "error" : "failed";
476
- finishPipeline(state, finalStatus);
477
- await saveStateWithEvent(state, "pipeline_complete", undefined, { status: finalStatus });
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
- const durationMs = Date.now() - start;
481
- getLogger(ctx).log(`\nPipeline "${ctx.pipeline.name}": ${pipelineStatus} (${(durationMs / 1000).toFixed(1)}s)\n`);
482
- return {
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();
@@ -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 {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alevental/cccp",
3
- "version": "0.2.2",
3
+ "version": "0.3.0",
4
4
  "description": "Claude Code and Cmux Pipeline Reagent — deterministic YAML-based pipeline orchestration",
5
5
  "type": "module",
6
6
  "bin": {