@alevental/cccp 0.3.0 → 0.4.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 +82 -1
- package/.claude/skills/cccp-run/SKILL.md +13 -13
- package/README.md +17 -2
- package/dist/cli.js +10 -3
- package/dist/cli.js.map +1 -1
- package/dist/db.d.ts +11 -0
- package/dist/db.js +29 -2
- package/dist/db.js.map +1 -1
- package/dist/pipeline.js +57 -1
- package/dist/pipeline.js.map +1 -1
- package/dist/runner.js +187 -62
- package/dist/runner.js.map +1 -1
- package/dist/state.d.ts +12 -1
- package/dist/state.js +29 -1
- package/dist/state.js.map +1 -1
- package/dist/stream/stream.js +3 -0
- package/dist/stream/stream.js.map +1 -1
- package/dist/tui/components.d.ts +2 -2
- package/dist/tui/components.js +64 -16
- package/dist/tui/components.js.map +1 -1
- package/dist/tui/dashboard.js +39 -7
- package/dist/tui/dashboard.js.map +1 -1
- package/dist/types.d.ts +15 -1
- package/dist/types.js +4 -1
- package/dist/types.js.map +1 -1
- package/examples/product-launch.yaml +28 -24
- package/package.json +1 -1
|
@@ -220,6 +220,87 @@ Sub-pipeline composition. Invokes another pipeline YAML inline within the parent
|
|
|
220
220
|
- Resume works across pipeline boundaries
|
|
221
221
|
- `on_fail` strategies work the same as PGE/autoresearch stages
|
|
222
222
|
|
|
223
|
+
## Parallel Execution Groups
|
|
224
|
+
|
|
225
|
+
Run independent stages concurrently. Stages in a `parallel` block execute simultaneously as separate subprocesses, reducing total pipeline runtime when stages don't depend on each other's outputs.
|
|
226
|
+
|
|
227
|
+
### When to Use Parallel Groups
|
|
228
|
+
|
|
229
|
+
Use parallel groups when stages share the same inputs but produce independent outputs. Common patterns:
|
|
230
|
+
|
|
231
|
+
- **Content fan-out**: After research/positioning is complete, multiple content pieces (blog post, release notes, social copy, changelog) can all be written simultaneously since they read the same source material
|
|
232
|
+
- **Multi-perspective analysis**: Run competitive analysis, market sizing, and customer research in parallel when they all stem from the same brief
|
|
233
|
+
- **Independent code tasks**: After a design is approved, implementation of separate modules or writing tests alongside documentation can happen concurrently
|
|
234
|
+
- **Multi-format generation**: Produce different output formats (PDF report, slide deck, executive summary) from the same source artifact in parallel
|
|
235
|
+
|
|
236
|
+
The key question is: **does stage B need to read stage A's output?** If not, they can be parallel.
|
|
237
|
+
|
|
238
|
+
```yaml
|
|
239
|
+
- parallel:
|
|
240
|
+
on_failure: wait_all # Optional. "fail_fast" (default) or "wait_all".
|
|
241
|
+
stages:
|
|
242
|
+
- name: blog-post
|
|
243
|
+
type: pge
|
|
244
|
+
task: "Write the launch blog post."
|
|
245
|
+
# ... full stage config
|
|
246
|
+
- name: release-notes
|
|
247
|
+
type: agent
|
|
248
|
+
task: "Write release notes."
|
|
249
|
+
agent: copywriter
|
|
250
|
+
output: "{artifact_dir}/release-notes.md"
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
| Field | Type | Required | Description |
|
|
254
|
+
|-------|------|----------|-------------|
|
|
255
|
+
| `on_failure` | string | No | `"fail_fast"` (default): stop group on first failure. `"wait_all"`: let all stages finish. |
|
|
256
|
+
| `stages` | Stage[] | Yes | At least 2 stages. Each stage uses the standard schema. |
|
|
257
|
+
|
|
258
|
+
### Constraints
|
|
259
|
+
|
|
260
|
+
- **No `human_gate` inside parallel groups** — gates block execution and cannot run alongside other stages
|
|
261
|
+
- **No `pipeline` stages inside parallel groups** — sub-pipelines have complex state interactions
|
|
262
|
+
- **No conflicting outputs** — stages in the same group cannot write to the same `output` or `contract.deliverable` path
|
|
263
|
+
- **Unique stage names** — all stage names must be unique across the entire pipeline (including inside groups)
|
|
264
|
+
|
|
265
|
+
### Failure Handling
|
|
266
|
+
|
|
267
|
+
| Mode | Behavior |
|
|
268
|
+
|------|----------|
|
|
269
|
+
| `fail_fast` (default) | When one stage fails, remaining unstarted stages are skipped. Already-running stages finish naturally. Pipeline stops after the group. |
|
|
270
|
+
| `wait_all` | All stages run to completion regardless of individual failures. Pipeline stops after the group if any stage failed. |
|
|
271
|
+
|
|
272
|
+
### Resume
|
|
273
|
+
|
|
274
|
+
When resuming a pipeline that was interrupted during a parallel group, only the stages that didn't complete are re-executed. Completed stages within the group are skipped.
|
|
275
|
+
|
|
276
|
+
### Example: Parallel Content Creation
|
|
277
|
+
|
|
278
|
+
```yaml
|
|
279
|
+
stages:
|
|
280
|
+
- name: positioning
|
|
281
|
+
type: pge
|
|
282
|
+
# ... defines positioning strategy
|
|
283
|
+
|
|
284
|
+
- parallel:
|
|
285
|
+
on_failure: wait_all
|
|
286
|
+
stages:
|
|
287
|
+
- name: blog-post
|
|
288
|
+
type: pge
|
|
289
|
+
task: "Write the launch blog post."
|
|
290
|
+
inputs:
|
|
291
|
+
- "{artifact_dir}/positioning.md"
|
|
292
|
+
# ... PGE config
|
|
293
|
+
- name: release-notes
|
|
294
|
+
type: agent
|
|
295
|
+
task: "Write release notes."
|
|
296
|
+
agent: copywriter
|
|
297
|
+
output: "{artifact_dir}/release-notes.md"
|
|
298
|
+
|
|
299
|
+
- name: launch-approval
|
|
300
|
+
type: human_gate
|
|
301
|
+
prompt: "Review all materials."
|
|
302
|
+
```
|
|
303
|
+
|
|
223
304
|
## Variables
|
|
224
305
|
|
|
225
306
|
### Syntax
|
|
@@ -658,7 +739,7 @@ Child pipelines share `{project}` and `{project_dir}` but get their own `{pipeli
|
|
|
658
739
|
Dry-run to verify a pipeline without executing:
|
|
659
740
|
|
|
660
741
|
```bash
|
|
661
|
-
npx @alevental/cccp run -f pipeline.yaml -p test --dry-run
|
|
742
|
+
npx @alevental/cccp@latest run -f pipeline.yaml -p test --dry-run
|
|
662
743
|
```
|
|
663
744
|
|
|
664
745
|
This shows all assembled prompts, resolved agent paths, and interpolated variables without dispatching any agents.
|
|
@@ -6,14 +6,14 @@ allowed-tools: Bash(npx:*), mcp__cccp__*
|
|
|
6
6
|
|
|
7
7
|
# Running CCCP Pipelines
|
|
8
8
|
|
|
9
|
-
All commands use `npx @alevental/cccp` — no global install required.
|
|
9
|
+
All commands use `npx @alevental/cccp@latest` — no global install required.
|
|
10
10
|
|
|
11
11
|
## CLI Commands
|
|
12
12
|
|
|
13
13
|
### `run` — Execute a pipeline
|
|
14
14
|
|
|
15
15
|
```bash
|
|
16
|
-
npx @alevental/cccp run -f <pipeline.yaml> -p <project> [options]
|
|
16
|
+
npx @alevental/cccp@latest run -f <pipeline.yaml> -p <project> [options]
|
|
17
17
|
```
|
|
18
18
|
|
|
19
19
|
| Flag | Required | Description |
|
|
@@ -27,19 +27,19 @@ npx @alevental/cccp run -f <pipeline.yaml> -p <project> [options]
|
|
|
27
27
|
| `-v, --var <key=value>` | No | Set pipeline variable (repeatable) |
|
|
28
28
|
|
|
29
29
|
**Recommended workflow:**
|
|
30
|
-
1. Dry-run first: `npx @alevental/cccp run -f pipeline.yaml -p myproject --dry-run`
|
|
31
|
-
2. Full run: `npx @alevental/cccp run -f pipeline.yaml -p myproject`
|
|
32
|
-
3. Headless (CI): `npx @alevental/cccp run -f pipeline.yaml -p myproject --headless`
|
|
30
|
+
1. Dry-run first: `npx @alevental/cccp@latest run -f pipeline.yaml -p myproject --dry-run`
|
|
31
|
+
2. Full run: `npx @alevental/cccp@latest run -f pipeline.yaml -p myproject`
|
|
32
|
+
3. Headless (CI): `npx @alevental/cccp@latest run -f pipeline.yaml -p myproject --headless`
|
|
33
33
|
|
|
34
34
|
**Variables:** Override pipeline defaults from CLI:
|
|
35
35
|
```bash
|
|
36
|
-
npx @alevental/cccp run -f sprint.yaml -p app -v sprint=3 -v env=staging
|
|
36
|
+
npx @alevental/cccp@latest run -f sprint.yaml -p app -v sprint=3 -v env=staging
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
### `resume` — Resume an interrupted run
|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
-
npx @alevental/cccp resume -p <project> -r <run-id-prefix> [options]
|
|
42
|
+
npx @alevental/cccp@latest resume -p <project> -r <run-id-prefix> [options]
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
| Flag | Required | Description |
|
|
@@ -54,7 +54,7 @@ Skips completed stages and resumes from the first incomplete stage. For PGE stag
|
|
|
54
54
|
### `dashboard` — Monitor a run
|
|
55
55
|
|
|
56
56
|
```bash
|
|
57
|
-
npx @alevental/cccp dashboard -r <run-id-prefix> [-d <project-dir>]
|
|
57
|
+
npx @alevental/cccp@latest dashboard -r <run-id-prefix> [-d <project-dir>]
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
Launches a standalone TUI dashboard. Can run in a separate terminal or cmux pane while the pipeline executes.
|
|
@@ -62,7 +62,7 @@ Launches a standalone TUI dashboard. Can run in a separate terminal or cmux pane
|
|
|
62
62
|
### `mcp-server` — Start the MCP server
|
|
63
63
|
|
|
64
64
|
```bash
|
|
65
|
-
npx @alevental/cccp mcp-server
|
|
65
|
+
npx @alevental/cccp@latest mcp-server
|
|
66
66
|
```
|
|
67
67
|
|
|
68
68
|
Exposes five tools over stdio: `cccp_runs`, `cccp_status`, `cccp_gate_respond`, `cccp_logs`, `cccp_artifacts`.
|
|
@@ -73,7 +73,7 @@ Register in `.mcp.json`:
|
|
|
73
73
|
"mcpServers": {
|
|
74
74
|
"cccp": {
|
|
75
75
|
"command": "npx",
|
|
76
|
-
"args": ["@alevental/cccp", "mcp-server"]
|
|
76
|
+
"args": ["@alevental/cccp@latest", "mcp-server"]
|
|
77
77
|
}
|
|
78
78
|
}
|
|
79
79
|
}
|
|
@@ -82,13 +82,13 @@ Register in `.mcp.json`:
|
|
|
82
82
|
### `init` — Scaffold a new project
|
|
83
83
|
|
|
84
84
|
```bash
|
|
85
|
-
npx @alevental/cccp init [-d <dir>]
|
|
85
|
+
npx @alevental/cccp@latest init [-d <dir>]
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
### `examples` — Scaffold all agents and example pipelines
|
|
89
89
|
|
|
90
90
|
```bash
|
|
91
|
-
npx @alevental/cccp examples [-d <dir>] [--agents-only] [--pipelines-only]
|
|
91
|
+
npx @alevental/cccp@latest examples [-d <dir>] [--agents-only] [--pipelines-only]
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
## Gate Interaction
|
|
@@ -114,7 +114,7 @@ When running inside a cmux workspace (`CMUX_WORKSPACE_ID` is set), CCCP automati
|
|
|
114
114
|
cmux new-split right # Returns surface:N
|
|
115
115
|
|
|
116
116
|
# Send a dashboard command to the new pane
|
|
117
|
-
cmux send --surface surface:1 "npx @alevental/cccp dashboard -r abc12345"
|
|
117
|
+
cmux send --surface surface:1 "npx @alevental/cccp@latest dashboard -r abc12345"
|
|
118
118
|
cmux send-key --surface surface:1 Enter
|
|
119
119
|
|
|
120
120
|
# Check status from sidebar
|
package/README.md
CHANGED
|
@@ -70,7 +70,7 @@ npx @alevental/cccp run -f pipelines/example.yaml -p my-project
|
|
|
70
70
|
|
|
71
71
|
## Pipeline YAML
|
|
72
72
|
|
|
73
|
-
Pipelines are sequences of typed stages:
|
|
73
|
+
Pipelines are sequences of typed stages, with optional parallel groups for concurrent execution:
|
|
74
74
|
|
|
75
75
|
```yaml
|
|
76
76
|
name: my-pipeline
|
|
@@ -111,6 +111,19 @@ stages:
|
|
|
111
111
|
variables:
|
|
112
112
|
source: "{artifact_dir}/design.md"
|
|
113
113
|
|
|
114
|
+
# Run independent stages concurrently
|
|
115
|
+
- parallel:
|
|
116
|
+
on_failure: wait_all
|
|
117
|
+
stages:
|
|
118
|
+
- name: blog-post
|
|
119
|
+
type: agent
|
|
120
|
+
agent: copywriter
|
|
121
|
+
output: "{artifact_dir}/blog-post.md"
|
|
122
|
+
- name: release-notes
|
|
123
|
+
type: agent
|
|
124
|
+
agent: copywriter
|
|
125
|
+
output: "{artifact_dir}/release-notes.md"
|
|
126
|
+
|
|
114
127
|
# Human approval gate
|
|
115
128
|
- name: approval
|
|
116
129
|
type: human_gate
|
|
@@ -129,6 +142,8 @@ stages:
|
|
|
129
142
|
| `pipeline` | Invoke another pipeline YAML as a sub-pipeline — runs inline, shares the parent run lifecycle |
|
|
130
143
|
| `human_gate` | Block until approved via MCP tool call or state file edit |
|
|
131
144
|
|
|
145
|
+
Stages can also be wrapped in a `parallel` block to run concurrently. See the [pipeline skill](.claude/skills/cccp-pipeline/SKILL.md) for the full schema.
|
|
146
|
+
|
|
132
147
|
### Variables
|
|
133
148
|
|
|
134
149
|
Built-in variables available in all string fields:
|
|
@@ -296,7 +311,7 @@ Without cmux, CCCP falls back to plain terminal output.
|
|
|
296
311
|
## Development
|
|
297
312
|
|
|
298
313
|
```bash
|
|
299
|
-
npm test # run all tests (
|
|
314
|
+
npm test # run all tests (206 tests)
|
|
300
315
|
npm run typecheck # tsc --noEmit
|
|
301
316
|
npm run test:watch # watch mode
|
|
302
317
|
npm run build # compile TypeScript to dist/
|
package/dist/cli.js
CHANGED
|
@@ -1,15 +1,22 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { resolve } from "node:path";
|
|
3
|
+
import { getHeapStatistics } from "node:v8";
|
|
3
4
|
import { Command } from "commander";
|
|
4
5
|
import { loadProjectConfig } from "./config.js";
|
|
5
6
|
import { loadPipeline } from "./pipeline.js";
|
|
6
7
|
import { runPipeline } from "./runner.js";
|
|
7
8
|
import { buildRunContext, resolveArtifactDir, parseCLIVars } from "./context.js";
|
|
9
|
+
// Warn if heap limit is below 8 GB — long pipelines can exceed the default ~4 GB.
|
|
10
|
+
const heapLimitMb = Math.round(getHeapStatistics().heap_size_limit / 1024 / 1024);
|
|
11
|
+
if (heapLimitMb < 8000) {
|
|
12
|
+
console.error(`[cccp] heap limit is ${heapLimitMb} MB. For long pipelines, increase with:\n` +
|
|
13
|
+
` NODE_OPTIONS="--max-old-space-size=8192" npx @alevental/cccp run ...`);
|
|
14
|
+
}
|
|
8
15
|
const program = new Command();
|
|
9
16
|
program
|
|
10
17
|
.name("cccp")
|
|
11
18
|
.description("Claude Code and Cmux Pipeline Reagent — deterministic YAML-based pipeline orchestration")
|
|
12
|
-
.version("0.3.
|
|
19
|
+
.version("0.3.1");
|
|
13
20
|
program
|
|
14
21
|
.command("run")
|
|
15
22
|
.description("Run a pipeline from a YAML definition")
|
|
@@ -54,10 +61,10 @@ program
|
|
|
54
61
|
cliVars,
|
|
55
62
|
});
|
|
56
63
|
if (showTui) {
|
|
57
|
-
const { createState, saveState } = await import("./state.js");
|
|
64
|
+
const { createState, flattenStageEntries, saveState } = await import("./state.js");
|
|
58
65
|
const { startDashboard } = await import("./tui/dashboard.js");
|
|
59
66
|
// Create initial state so the dashboard has something to render.
|
|
60
|
-
const initialState = createState(pipeline.name, opts.project, pipelineFile, pipeline.stages
|
|
67
|
+
const initialState = createState(pipeline.name, opts.project, pipelineFile, flattenStageEntries(pipeline.stages), artifactDir, projectDir);
|
|
61
68
|
await saveState(initialState);
|
|
62
69
|
// Start dashboard, then run pipeline. Dashboard watches state.json.
|
|
63
70
|
const dashboard = startDashboard(initialState.runId, projectDir, initialState);
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjF,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CACV,yFAAyF,CAC1F;KACA,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,KAAK,CAAC;KACd,WAAW,CAAC,uCAAuC,CAAC;KACpD,cAAc,CAAC,mBAAmB,EAAE,gCAAgC,CAAC;KACrE,cAAc,CAAC,sBAAsB,EAAE,cAAc,CAAC;KACtD,MAAM,CACL,0BAA0B,EAC1B,qCAAqC,CACtC;KACA,MAAM,CACL,2BAA2B,EAC3B,6DAA6D,CAC9D;KACA,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAAC;KACtE,MAAM,CAAC,YAAY,EAAE,+CAA+C,CAAC;KACrE,MAAM,CACL,0BAA0B,EAC1B,qCAAqC,CACtC;KACA,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,MAAM,iBAAiB,CAAC,UAAU,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC,CAAC;IAElD,IAAI,OAA+B,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,GAA2B,CAAC,CAAC;IAC3D,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAE,GAAa,CAAC,OAAO,CAAC,CAAC;QACtC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,WAAW,GAAG,kBAAkB,CAAC;QACrC,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU;QACV,aAAa;QACb,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,YAAY,EAAE,QAAQ,CAAC,IAAI;KAC5B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAE/C,MAAM,GAAG,GAAG,eAAe,CAAC;QAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,UAAU;QACV,YAAY;QACZ,QAAQ;QACR,WAAW;QACX,aAAa;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO;QACP,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/db.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export declare function dbPath(projectDir: string): string;
|
|
|
10
10
|
export declare class CccpDatabase {
|
|
11
11
|
private db;
|
|
12
12
|
private filePath;
|
|
13
|
+
private flushCount;
|
|
13
14
|
private constructor();
|
|
14
15
|
/**
|
|
15
16
|
* Open or create a database. If the file exists, load it. Otherwise create
|
|
@@ -46,6 +47,12 @@ export declare class CccpDatabase {
|
|
|
46
47
|
findRuns(filter?: RunFilter): DiscoveredRun[];
|
|
47
48
|
private rowToState;
|
|
48
49
|
appendEvent(runId: string, eventType: string, stageName?: string, data?: unknown): void;
|
|
50
|
+
/**
|
|
51
|
+
* Remove old events for a run, keeping only the most recent `keep` entries.
|
|
52
|
+
* Prevents the append-only events table (and sql.js WASM memory) from
|
|
53
|
+
* growing without bound during long pipeline runs.
|
|
54
|
+
*/
|
|
55
|
+
pruneEvents(runId: string, keep?: number): void;
|
|
49
56
|
getEvents(runId: string, sinceId?: number): StateEvent[];
|
|
50
57
|
setCheckpoint(runId: string, stageName: string, key: string, value: string): void;
|
|
51
58
|
getCheckpoint(runId: string, stageName: string, key: string): string | null;
|
|
@@ -53,6 +60,10 @@ export declare class CccpDatabase {
|
|
|
53
60
|
* Atomically write the database to disk (write to .tmp then rename).
|
|
54
61
|
*/
|
|
55
62
|
flush(): void;
|
|
63
|
+
/**
|
|
64
|
+
* Prune events for all active runs. Called periodically during flush.
|
|
65
|
+
*/
|
|
66
|
+
private pruneAllEvents;
|
|
56
67
|
/**
|
|
57
68
|
* Reload the database from disk (for read-only consumers in separate processes).
|
|
58
69
|
*/
|
package/dist/db.js
CHANGED
|
@@ -24,6 +24,7 @@ export function dbPath(projectDir) {
|
|
|
24
24
|
export class CccpDatabase {
|
|
25
25
|
db;
|
|
26
26
|
filePath;
|
|
27
|
+
flushCount = 0;
|
|
27
28
|
constructor(db, filePath) {
|
|
28
29
|
this.db = db;
|
|
29
30
|
this.filePath = filePath;
|
|
@@ -264,6 +265,16 @@ export class CccpDatabase {
|
|
|
264
265
|
data ? JSON.stringify(data) : null,
|
|
265
266
|
]);
|
|
266
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* Remove old events for a run, keeping only the most recent `keep` entries.
|
|
270
|
+
* Prevents the append-only events table (and sql.js WASM memory) from
|
|
271
|
+
* growing without bound during long pipeline runs.
|
|
272
|
+
*/
|
|
273
|
+
pruneEvents(runId, keep = 500) {
|
|
274
|
+
this.db.run(`DELETE FROM events WHERE run_id = ? AND id NOT IN (
|
|
275
|
+
SELECT id FROM events WHERE run_id = ? ORDER BY id DESC LIMIT ?
|
|
276
|
+
)`, [runId, runId, keep]);
|
|
277
|
+
}
|
|
267
278
|
getEvents(runId, sinceId) {
|
|
268
279
|
const sql = sinceId != null
|
|
269
280
|
? `SELECT * FROM events WHERE run_id = ? AND id > ? ORDER BY id`
|
|
@@ -304,14 +315,30 @@ export class CccpDatabase {
|
|
|
304
315
|
* Atomically write the database to disk (write to .tmp then rename).
|
|
305
316
|
*/
|
|
306
317
|
flush() {
|
|
318
|
+
// Periodically prune old events to cap DB size for long-running pipelines.
|
|
319
|
+
this.flushCount++;
|
|
320
|
+
if (this.flushCount % 50 === 0) {
|
|
321
|
+
this.pruneAllEvents();
|
|
322
|
+
}
|
|
307
323
|
const data = this.db.export();
|
|
308
|
-
const buffer = Buffer.from(data);
|
|
309
324
|
const dir = dirname(this.filePath);
|
|
310
325
|
mkdirSync(dir, { recursive: true });
|
|
311
326
|
const tmp = join(dir, `.cccp-db-${randomUUID()}.tmp`);
|
|
312
|
-
|
|
327
|
+
// Write Uint8Array directly — avoids a full copy through Buffer.from().
|
|
328
|
+
writeFileSync(tmp, data);
|
|
313
329
|
renameSync(tmp, this.filePath);
|
|
314
330
|
}
|
|
331
|
+
/**
|
|
332
|
+
* Prune events for all active runs. Called periodically during flush.
|
|
333
|
+
*/
|
|
334
|
+
pruneAllEvents() {
|
|
335
|
+
const results = this.db.exec(`SELECT DISTINCT run_id FROM events`);
|
|
336
|
+
if (results.length === 0)
|
|
337
|
+
return;
|
|
338
|
+
for (const row of results[0].values) {
|
|
339
|
+
this.pruneEvents(row[0]);
|
|
340
|
+
}
|
|
341
|
+
}
|
|
315
342
|
/**
|
|
316
343
|
* Reload the database from disk (for read-only consumers in separate processes).
|
|
317
344
|
*/
|
package/dist/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
|
package/dist/pipeline.js
CHANGED
|
@@ -89,11 +89,67 @@ const StageSchema = z.discriminatedUnion("type", [
|
|
|
89
89
|
AutoresearchStageSchema,
|
|
90
90
|
PipelineStageSchema,
|
|
91
91
|
]);
|
|
92
|
+
const ParallelGroupSchema = z.object({
|
|
93
|
+
parallel: z.object({
|
|
94
|
+
on_failure: z.enum(["fail_fast", "wait_all"]).optional(),
|
|
95
|
+
stages: z.array(StageSchema).min(2, "Parallel groups must contain at least 2 stages"),
|
|
96
|
+
}),
|
|
97
|
+
});
|
|
98
|
+
const StageEntrySchema = z.union([StageSchema, ParallelGroupSchema]);
|
|
92
99
|
const PipelineSchema = z.object({
|
|
93
100
|
name: z.string(),
|
|
94
101
|
description: z.string().optional(),
|
|
95
102
|
variables: z.record(z.string()).optional(),
|
|
96
|
-
stages: z.array(
|
|
103
|
+
stages: z.array(StageEntrySchema).min(1),
|
|
104
|
+
}).superRefine((pipeline, ctx) => {
|
|
105
|
+
// Collect all stage names and validate parallel group constraints.
|
|
106
|
+
const allNames = new Set();
|
|
107
|
+
const issues = [];
|
|
108
|
+
for (const entry of pipeline.stages) {
|
|
109
|
+
if ("parallel" in entry && !("type" in entry)) {
|
|
110
|
+
// Parallel group — validate inner stages
|
|
111
|
+
const group = entry;
|
|
112
|
+
const groupOutputs = new Map(); // output path → stage name
|
|
113
|
+
for (const stage of group.parallel.stages) {
|
|
114
|
+
// No human_gate inside parallel groups
|
|
115
|
+
if (stage.type === "human_gate") {
|
|
116
|
+
issues.push(`Stage '${stage.name}' is type human_gate and cannot be inside a parallel group (gates block execution)`);
|
|
117
|
+
}
|
|
118
|
+
// No pipeline stages inside parallel groups
|
|
119
|
+
if (stage.type === "pipeline") {
|
|
120
|
+
issues.push(`Stage '${stage.name}' is type pipeline and cannot be inside a parallel group`);
|
|
121
|
+
}
|
|
122
|
+
// Duplicate name check
|
|
123
|
+
if (allNames.has(stage.name)) {
|
|
124
|
+
issues.push(`Duplicate stage name '${stage.name}'`);
|
|
125
|
+
}
|
|
126
|
+
allNames.add(stage.name);
|
|
127
|
+
// Conflicting output paths within group
|
|
128
|
+
const outputPath = stage.type === "agent" ? stage.output :
|
|
129
|
+
stage.type === "pge" ? stage.contract?.deliverable :
|
|
130
|
+
stage.type === "autoresearch" ? stage.output :
|
|
131
|
+
undefined;
|
|
132
|
+
if (outputPath) {
|
|
133
|
+
const existing = groupOutputs.get(outputPath);
|
|
134
|
+
if (existing) {
|
|
135
|
+
issues.push(`Stages '${existing}' and '${stage.name}' in the same parallel group both write to '${outputPath}'`);
|
|
136
|
+
}
|
|
137
|
+
groupOutputs.set(outputPath, stage.name);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
// Regular stage
|
|
143
|
+
const stage = entry;
|
|
144
|
+
if (allNames.has(stage.name)) {
|
|
145
|
+
issues.push(`Duplicate stage name '${stage.name}'`);
|
|
146
|
+
}
|
|
147
|
+
allNames.add(stage.name);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
for (const issue of issues) {
|
|
151
|
+
ctx.addIssue({ code: z.ZodIssueCode.custom, message: issue });
|
|
152
|
+
}
|
|
97
153
|
});
|
|
98
154
|
// ---------------------------------------------------------------------------
|
|
99
155
|
// Public API
|
package/dist/pipeline.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
|