opencastle 0.27.3 → 0.29.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/README.md +12 -3
- package/bin/cli.mjs +13 -5
- package/dist/cli/convoy/engine.d.ts.map +1 -1
- package/dist/cli/convoy/engine.js +2 -11
- package/dist/cli/convoy/engine.js.map +1 -1
- package/dist/cli/convoy/engine.test.js +2 -1
- package/dist/cli/convoy/engine.test.js.map +1 -1
- package/dist/cli/convoy/export.d.ts +1 -3
- package/dist/cli/convoy/export.d.ts.map +1 -1
- package/dist/cli/convoy/export.js +9 -88
- package/dist/cli/convoy/export.js.map +1 -1
- package/dist/cli/convoy/export.test.js +7 -186
- package/dist/cli/convoy/export.test.js.map +1 -1
- package/dist/cli/convoy/issues.js +3 -3
- package/dist/cli/convoy/issues.js.map +1 -1
- package/dist/cli/convoy/issues.test.js +4 -3
- package/dist/cli/convoy/issues.test.js.map +1 -1
- package/dist/cli/convoy/pipeline.d.ts.map +1 -1
- package/dist/cli/convoy/pipeline.js +0 -21
- package/dist/cli/convoy/pipeline.js.map +1 -1
- package/dist/cli/convoy/pipeline.test.js +0 -21
- package/dist/cli/convoy/pipeline.test.js.map +1 -1
- package/dist/cli/dashboard.d.ts.map +1 -1
- package/dist/cli/dashboard.js +32 -8
- package/dist/cli/dashboard.js.map +1 -1
- package/dist/cli/destroy.d.ts.map +1 -1
- package/dist/cli/destroy.js +13 -0
- package/dist/cli/destroy.js.map +1 -1
- package/dist/cli/dispute.d.ts +3 -0
- package/dist/cli/dispute.d.ts.map +1 -0
- package/dist/cli/dispute.js +25 -0
- package/dist/cli/dispute.js.map +1 -0
- package/dist/cli/doctor.d.ts +1 -1
- package/dist/cli/doctor.d.ts.map +1 -1
- package/dist/cli/doctor.js +14 -1
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/eject.d.ts.map +1 -1
- package/dist/cli/eject.js +14 -0
- package/dist/cli/eject.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +14 -0
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/log.d.ts +0 -11
- package/dist/cli/log.d.ts.map +1 -1
- package/dist/cli/log.js +2 -114
- package/dist/cli/log.js.map +1 -1
- package/dist/cli/pipeline.d.ts +3 -0
- package/dist/cli/pipeline.d.ts.map +1 -0
- package/dist/cli/pipeline.js +321 -0
- package/dist/cli/pipeline.js.map +1 -0
- package/dist/cli/plan.d.ts +37 -0
- package/dist/cli/plan.d.ts.map +1 -1
- package/dist/cli/plan.js +321 -161
- package/dist/cli/plan.js.map +1 -1
- package/dist/cli/run.js +2 -2
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/update.d.ts.map +1 -1
- package/dist/cli/update.js +16 -0
- package/dist/cli/update.js.map +1 -1
- package/dist/cli/validate.d.ts +3 -0
- package/dist/cli/validate.d.ts.map +1 -0
- package/dist/cli/validate.js +60 -0
- package/dist/cli/validate.js.map +1 -0
- package/dist/cli/watch.d.ts.map +1 -1
- package/dist/cli/watch.js +1 -3
- package/dist/cli/watch.js.map +1 -1
- package/package.json +5 -4
- package/src/cli/convoy/engine.test.ts +2 -1
- package/src/cli/convoy/engine.ts +2 -5
- package/src/cli/convoy/export.test.ts +7 -224
- package/src/cli/convoy/export.ts +10 -106
- package/src/cli/convoy/issues.test.ts +3 -2
- package/src/cli/convoy/issues.ts +3 -3
- package/src/cli/convoy/pipeline.test.ts +0 -25
- package/src/cli/convoy/pipeline.ts +0 -19
- package/src/cli/dashboard.ts +33 -8
- package/src/cli/destroy.ts +15 -0
- package/src/cli/dispute.ts +28 -0
- package/src/cli/doctor.ts +16 -1
- package/src/cli/eject.ts +16 -0
- package/src/cli/init.ts +16 -0
- package/src/cli/log.ts +2 -120
- package/src/cli/pipeline.ts +362 -0
- package/src/cli/plan.ts +357 -153
- package/src/cli/run.ts +2 -2
- package/src/cli/update.ts +18 -0
- package/src/cli/validate.ts +65 -0
- package/src/cli/watch.ts +1 -3
- package/src/dashboard/dist/_astro/index.Je1YjU_y.css +1 -0
- package/src/dashboard/dist/data/convoy-list.json +54 -9
- package/src/dashboard/dist/data/convoys/demo-api-v2.json +177 -0
- package/src/dashboard/dist/data/convoys/demo-auth-revamp.json +239 -0
- package/src/dashboard/dist/data/convoys/demo-dashboard-ui.json +328 -0
- package/src/dashboard/dist/data/convoys/demo-data-pipeline.json +187 -0
- package/src/dashboard/dist/data/convoys/demo-deploy-ci.json +153 -0
- package/src/dashboard/dist/data/convoys/demo-docs-update.json +154 -0
- package/src/dashboard/dist/data/convoys/demo-perf-opt.json +227 -0
- package/src/dashboard/dist/data/events.ndjson +115 -0
- package/src/dashboard/dist/data/overall-stats.json +56 -13
- package/src/dashboard/dist/data/pipelines.ndjson +5285 -0
- package/src/dashboard/dist/index.html +165 -1392
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/dashboard/public/data/convoy-list.json +54 -9
- package/src/dashboard/public/data/convoys/demo-api-v2.json +177 -0
- package/src/dashboard/public/data/convoys/demo-auth-revamp.json +239 -0
- package/src/dashboard/public/data/convoys/demo-dashboard-ui.json +328 -0
- package/src/dashboard/public/data/convoys/demo-data-pipeline.json +187 -0
- package/src/dashboard/public/data/convoys/demo-deploy-ci.json +153 -0
- package/src/dashboard/public/data/convoys/demo-docs-update.json +154 -0
- package/src/dashboard/public/data/convoys/demo-perf-opt.json +227 -0
- package/src/dashboard/public/data/events.ndjson +115 -0
- package/src/dashboard/public/data/overall-stats.json +56 -13
- package/src/dashboard/public/data/pipelines.ndjson +5285 -0
- package/src/dashboard/scripts/etl.test.ts +4 -62
- package/src/dashboard/scripts/etl.ts +11 -10
- package/src/dashboard/scripts/generate-demo-db.ts +482 -115
- package/src/dashboard/src/pages/index.astro +235 -1638
- package/src/dashboard/src/styles/dashboard.css +473 -7
- package/src/orchestrator/prompts/brainstorm.prompt.md +1 -0
- package/src/orchestrator/prompts/fix-convoy.prompt.md +79 -0
- package/src/orchestrator/prompts/generate-convoy.prompt.md +60 -58
- package/src/orchestrator/prompts/generate-prd.prompt.md +126 -0
- package/src/orchestrator/prompts/validate-convoy.prompt.md +89 -0
- package/src/orchestrator/prompts/validate-prd.prompt.md +83 -0
- package/dist/cli/convoy/log-merge.test.d.ts +0 -2
- package/dist/cli/convoy/log-merge.test.d.ts.map +0 -1
- package/dist/cli/convoy/log-merge.test.js +0 -147
- package/dist/cli/convoy/log-merge.test.js.map +0 -1
- package/src/cli/convoy/log-merge.test.ts +0 -179
- package/src/dashboard/dist/_astro/index.6L3_HsPT.css +0 -1
package/README.md
CHANGED
|
@@ -71,10 +71,17 @@ MCP servers are auto-configured for your stack in each IDE's native format.
|
|
|
71
71
|
| `opencastle update` | Update framework files (keeps your customizations) |
|
|
72
72
|
| `opencastle eject` | Remove the dependency, keep all files |
|
|
73
73
|
| `opencastle destroy` | Remove ALL OpenCastle files (reverse of init) |
|
|
74
|
-
| `opencastle
|
|
74
|
+
| `opencastle pipeline` | Go from idea to convoy spec in one command (PRD → validate → convoy → validate → fix) |
|
|
75
|
+
| `opencastle plan` | Run a single prompt template step (generate PRD, convoy spec, or validate) |
|
|
76
|
+
| `opencastle validate` | Validate a convoy YAML spec file without executing it |
|
|
75
77
|
| `opencastle run` | Run the Convoy Engine (deterministic, crash-recoverable orchestrator) |
|
|
78
|
+
| `opencastle dispute` | Manage convoy dispute resolution |
|
|
76
79
|
| `opencastle dashboard` | Open the observability dashboard |
|
|
77
80
|
| `opencastle doctor` | Validate your setup and surface issues |
|
|
81
|
+
| `opencastle agents` | Manage persistent agent identities |
|
|
82
|
+
| `opencastle baselines` | Manage visual regression baselines |
|
|
83
|
+
| `opencastle log` | Append a structured event to the observability log |
|
|
84
|
+
| `opencastle lesson` | Append a structured lesson to LESSONS-LEARNED.md |
|
|
78
85
|
|
|
79
86
|
Add `--dry-run` to any command to preview what it would change without writing files.
|
|
80
87
|
|
|
@@ -167,12 +174,14 @@ gates:
|
|
|
167
174
|
- **Observable** — real-time dashboard auto-starts during execution.
|
|
168
175
|
- **Multi-runtime** — mix Copilot, Claude Code, Cursor, and OpenCode in the same convoy.
|
|
169
176
|
|
|
170
|
-
Generate a convoy spec from a plain text description — no YAML by hand:
|
|
177
|
+
Generate a validated convoy spec from a plain text description — no YAML by hand:
|
|
171
178
|
|
|
172
179
|
```bash
|
|
173
|
-
npx opencastle
|
|
180
|
+
npx opencastle pipeline --text "Add user reviews to the place detail page"
|
|
174
181
|
```
|
|
175
182
|
|
|
183
|
+
The pipeline command runs 5 steps automatically: generate PRD → validate PRD → generate convoy spec → validate spec → auto-fix if needed. For lower-level control, use `opencastle plan` to run individual steps.
|
|
184
|
+
|
|
176
185
|
📖 [Full Convoy Engine documentation →](https://www.opencastle.dev/docs/cli#run)
|
|
177
186
|
|
|
178
187
|
<br>
|
package/bin/cli.mjs
CHANGED
|
@@ -17,18 +17,24 @@ const HELP = `
|
|
|
17
17
|
Usage:
|
|
18
18
|
npx opencastle <command> [options]
|
|
19
19
|
|
|
20
|
-
Commands:
|
|
20
|
+
Project Commands:
|
|
21
21
|
init Set up OpenCastle in your project
|
|
22
22
|
update Update framework files (preserves customizations)
|
|
23
23
|
eject Remove dependency, keep all files standalone
|
|
24
24
|
destroy Remove ALL OpenCastle files (reverse of init)
|
|
25
|
+
doctor Validate your OpenCastle setup
|
|
26
|
+
|
|
27
|
+
Convoy Commands:
|
|
28
|
+
pipeline Run the full PRD → validate → convoy → validate → fix pipeline
|
|
29
|
+
plan Generate a convoy spec (or PRD) from a task description
|
|
30
|
+
validate Validate a convoy YAML spec file
|
|
25
31
|
run Process a task queue from a spec file autonomously
|
|
26
|
-
agents Manage persistent agent identities
|
|
27
32
|
dispute Manage convoy dispute resolution
|
|
28
|
-
|
|
29
|
-
|
|
33
|
+
|
|
34
|
+
Observability:
|
|
30
35
|
dashboard View agent observability dashboard in your browser
|
|
31
|
-
|
|
36
|
+
agents Manage persistent agent identities
|
|
37
|
+
baselines Manage visual regression baselines
|
|
32
38
|
log Append a structured event to the observability log
|
|
33
39
|
lesson Append a structured lesson to LESSONS-LEARNED.md
|
|
34
40
|
|
|
@@ -58,6 +64,7 @@ const commands = {
|
|
|
58
64
|
destroy: () => import('../dist/cli/destroy.js'),
|
|
59
65
|
run: () => import('../dist/cli/run.js'),
|
|
60
66
|
plan: () => import('../dist/cli/plan.js'),
|
|
67
|
+
pipeline: () => import('../dist/cli/pipeline.js'),
|
|
61
68
|
dashboard: () => import('../dist/cli/dashboard.js'),
|
|
62
69
|
doctor: () => import('../dist/cli/doctor.js'),
|
|
63
70
|
log: () => import('../dist/cli/log.js'),
|
|
@@ -65,6 +72,7 @@ const commands = {
|
|
|
65
72
|
agents: () => import('../dist/cli/agents.js'),
|
|
66
73
|
dispute: () => import('../dist/cli/dispute.js'),
|
|
67
74
|
baselines: () => import('../dist/cli/baselines.js'),
|
|
75
|
+
validate: () => import('../dist/cli/validate.js'),
|
|
68
76
|
}
|
|
69
77
|
|
|
70
78
|
if (!commands[command]) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/engine.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAQ,QAAQ,EAAE,YAAY,EAAiB,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAChG,OAAO,EAA+C,KAAK,WAAW,EAAE,MAAM,YAAY,CAAA;AAG1F,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAC3E,OAAO,EAAwC,KAAK,UAAU,EAAE,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/cli/convoy/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@ import { createEventEmitter, ndjsonPathForConvoy, recoverNdjson } from './events
|
|
|
10
10
|
import { createWorktreeManager } from './worktree.js';
|
|
11
11
|
import { createMergeQueue, MergeConflictError } from './merge.js';
|
|
12
12
|
import { createHealthMonitor, detectDrift } from './health.js';
|
|
13
|
-
import { exportConvoyToNdjson } from './export.js';
|
|
14
13
|
import { buildPhases, formatDuration } from '../run/executor.js';
|
|
15
14
|
import { parseTimeout, parseYaml } from '../run/schema.js';
|
|
16
15
|
import { getAdapter, detectAdapter } from '../run/adapters/index.js';
|
|
@@ -273,7 +272,7 @@ function appendDlqMarkdownClean(marker, entry) {
|
|
|
273
272
|
appendFileSync(mdPath, entry);
|
|
274
273
|
}
|
|
275
274
|
function writeDisputeToMarkdown(disputeId, convoyId, task, panelResults, events) {
|
|
276
|
-
const mdPath = join(resolve(process.cwd()), 'DISPUTES.md');
|
|
275
|
+
const mdPath = join(resolve(process.cwd()), '.opencastle', 'DISPUTES.md');
|
|
277
276
|
const marker = `<!-- dispute:${disputeId} -->`;
|
|
278
277
|
try {
|
|
279
278
|
const existing = readFileSync(mdPath, 'utf8');
|
|
@@ -288,7 +287,7 @@ function writeDisputeToMarkdown(disputeId, convoyId, task, panelResults, events)
|
|
|
288
287
|
.map(r => r.feedback)
|
|
289
288
|
.join('\n\n');
|
|
290
289
|
const entry = `\n${marker}\n## Dispute: ${task.id}\n\n| Field | Value |\n|-------|-------|\n| Convoy | ${convoyId} |\n| Task | ${task.id} |\n| Date | ${new Date().toISOString()} |\n| Panel attempts | ${task.panel_attempts + 1} |\n| Agent | ${task.agent} |\n| Status | Open |\n\n**Blocking reasons:**\n\n${blockingReasons}\n`;
|
|
291
|
-
const scanResult = scanForSecrets(entry, 'DISPUTES.md');
|
|
290
|
+
const scanResult = scanForSecrets(entry, '.opencastle/DISPUTES.md');
|
|
292
291
|
if (!scanResult.clean) {
|
|
293
292
|
if (events) {
|
|
294
293
|
events.emit('secret_leak_prevented', {
|
|
@@ -2320,10 +2319,6 @@ export function createConvoyEngine(options) {
|
|
|
2320
2319
|
result = await runConvoy(convoyId, spec, adapter, store, events, wtManager, mergeQueue, basePath, baseBranch, verbose, startTime, ndjsonPath, options._reviewRunner);
|
|
2321
2320
|
}
|
|
2322
2321
|
finally {
|
|
2323
|
-
try {
|
|
2324
|
-
await exportConvoyToNdjson(store, convoyId, options.logsDir);
|
|
2325
|
-
}
|
|
2326
|
-
catch { /* silent */ }
|
|
2327
2322
|
events.close();
|
|
2328
2323
|
store.close();
|
|
2329
2324
|
lock.release();
|
|
@@ -2404,10 +2399,6 @@ export function createConvoyEngine(options) {
|
|
|
2404
2399
|
result = await runConvoy(convoyId, spec, adapter, store, events, wtManager, mergeQueue, basePath, baseBranch, verbose, startTime, ndjsonPath, options._reviewRunner);
|
|
2405
2400
|
}
|
|
2406
2401
|
finally {
|
|
2407
|
-
try {
|
|
2408
|
-
await exportConvoyToNdjson(store, convoyId, options.logsDir);
|
|
2409
|
-
}
|
|
2410
|
-
catch { /* silent */ }
|
|
2411
2402
|
events.close();
|
|
2412
2403
|
store.close();
|
|
2413
2404
|
lock.release();
|