cool-workflow 0.1.86 → 0.1.87

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.
Files changed (54) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/README.md +8 -1
  4. package/apps/architecture-review/app.json +1 -1
  5. package/apps/architecture-review-fast/app.json +1 -1
  6. package/apps/end-to-end-golden-path/app.json +1 -1
  7. package/apps/pr-review-fix-ci/app.json +1 -1
  8. package/apps/release-cut/app.json +1 -1
  9. package/apps/research-synthesis/app.json +1 -1
  10. package/dist/capability-registry.js +24 -0
  11. package/dist/cli/command-surface.js +80 -10
  12. package/dist/cli.js +2 -1
  13. package/dist/doctor.js +13 -4
  14. package/dist/execution-backend.js +8 -0
  15. package/dist/operator-ux/format.js +21 -15
  16. package/dist/operator-ux.js +2 -1
  17. package/dist/orchestrator.js +172 -74
  18. package/dist/term.js +93 -0
  19. package/dist/version.js +1 -1
  20. package/docs/agent-delegation-drive.7.md +24 -6
  21. package/docs/cli-mcp-parity.7.md +12 -2
  22. package/docs/contract-migration-tooling.7.md +4 -0
  23. package/docs/control-plane-scheduling.7.md +4 -0
  24. package/docs/durable-state-and-locking.7.md +4 -0
  25. package/docs/evidence-adoption-reasoning-chain.7.md +4 -0
  26. package/docs/execution-backends.7.md +4 -0
  27. package/docs/multi-agent-cli-mcp-surface.7.md +4 -0
  28. package/docs/multi-agent-eval-replay-harness.7.md +4 -0
  29. package/docs/multi-agent-operator-ux.7.md +4 -0
  30. package/docs/node-snapshot-diff-replay.7.md +4 -0
  31. package/docs/observability-cost-accounting.7.md +4 -0
  32. package/docs/project-index.md +9 -3
  33. package/docs/real-execution-backends.7.md +4 -0
  34. package/docs/release-and-migration.7.md +4 -0
  35. package/docs/release-history.md +10 -0
  36. package/docs/release-tooling.7.md +12 -0
  37. package/docs/run-registry-control-plane.7.md +4 -0
  38. package/docs/run-retention-reclamation.7.md +4 -0
  39. package/docs/state-explosion-management.7.md +4 -0
  40. package/docs/team-collaboration.7.md +4 -0
  41. package/docs/web-desktop-workbench.7.md +4 -0
  42. package/manifest/plugin.manifest.json +1 -1
  43. package/package.json +1 -1
  44. package/scripts/agents/agent-adapter-core.js +180 -0
  45. package/scripts/agents/builtin-templates.json +4 -1
  46. package/scripts/agents/codex-agent.js +134 -0
  47. package/scripts/agents/gemini-agent.js +115 -0
  48. package/scripts/agents/opencode-agent.js +119 -0
  49. package/scripts/canonical-apps.js +4 -4
  50. package/scripts/dogfood-release.js +1 -1
  51. package/scripts/golden-path.js +4 -4
  52. package/scripts/parity-check.js +6 -5
  53. package/scripts/release-check.js +3 -3
  54. package/scripts/release-gate.sh +1 -1
@@ -6,7 +6,7 @@ const fs = require("node:fs");
6
6
  const path = require("node:path");
7
7
  const { CoolWorkflowRunner } = require("../dist/orchestrator.js");
8
8
 
9
- const TARGET_VERSION = "0.1.86";
9
+ const TARGET_VERSION = "0.1.87";
10
10
  const PREVIOUS_VERSION = "0.1.31";
11
11
  const pluginRoot = path.resolve(__dirname, "..");
12
12
  const repoRoot = path.resolve(pluginRoot, "..", "..");
@@ -33,7 +33,7 @@ function main() {
33
33
  const appValidation = runJson(["app", "validate", "end-to-end-golden-path"], pluginRoot);
34
34
  assert.equal(appValidation.valid, true);
35
35
  assert.equal(appValidation.summary.id, "end-to-end-golden-path");
36
- assert.equal(appValidation.summary.version, "0.1.86");
36
+ assert.equal(appValidation.summary.version, "0.1.87");
37
37
 
38
38
  const plan = runJson(
39
39
  [
@@ -42,7 +42,7 @@ function main() {
42
42
  "--repo",
43
43
  tmp,
44
44
  "--question",
45
- "Prove the deterministic v0.1.86 end-to-end golden path."
45
+ "Prove the deterministic v0.1.87 end-to-end golden path."
46
46
  ],
47
47
  pluginRoot
48
48
  );
@@ -52,7 +52,7 @@ function main() {
52
52
 
53
53
  let state = readJson(plan.statePath);
54
54
  assert.equal(state.workflow.app.id, "end-to-end-golden-path");
55
- assert.equal(state.workflow.app.version, "0.1.86");
55
+ assert.equal(state.workflow.app.version, "0.1.87");
56
56
  assert.equal(state.loopStage, "interpret");
57
57
 
58
58
  const dispatch = runJson(["dispatch", plan.runId, "--limit", "1", "--sandbox", "readonly"], tmp);
@@ -195,7 +195,7 @@ function main() {
195
195
  assert.equal(reportPath, plan.reportPath);
196
196
  assert.ok(fs.existsSync(reportPath));
197
197
  const report = fs.readFileSync(reportPath, "utf8");
198
- assert.match(report, /Workflow App: end-to-end-golden-path@0\.1\.86/);
198
+ assert.match(report, /Workflow App: end-to-end-golden-path@0\.1\.87/);
199
199
  assert.match(report, /## Candidates/);
200
200
  assert.match(report, /## Trust Audit/);
201
201
  assert.match(report, /## Acceptance Rationale/);
@@ -74,12 +74,13 @@ function cliDispatchSources() {
74
74
 
75
75
  function cliHelpTokens() {
76
76
  const lines = formatHelp().split(/\r?\n/);
77
- const start = lines.indexOf("Commands:");
78
- if (start < 0) return [];
79
77
  const tokens = new Set();
80
- for (const line of lines.slice(start + 1)) {
81
- if (!line.trim()) break;
82
- const first = line.trim().split(/\s+/)[0];
78
+ for (const line of lines) {
79
+ // Command lines start with exactly 2 spaces; examples are 4-space.
80
+ if (!line.startsWith(" ") || line.startsWith(" ")) continue;
81
+ const trimmed = line.trim();
82
+ if (!trimmed || !/^[a-z]/.test(trimmed)) continue;
83
+ const first = trimmed.split(/\s+/)[0];
83
84
  for (const token of first.split("|")) {
84
85
  const clean = token.replace(/[<[].*$/, "");
85
86
  if (clean) tokens.add(clean);
@@ -60,9 +60,9 @@ const checks = [
60
60
  { name: "type check", command: ["npm", "run", "check"] },
61
61
  { name: "onramp contract", command: ["npm", "run", "onramp:check"] },
62
62
  { name: "run-state schema consistency", command: ["node", "scripts/validate-run-state-schema.js"] },
63
- // Parallel suite (test:ci = run-all.js --concurrency auto). Each smoke runs in
64
- // a private cwd + state roots (CW_HOME/HOME/TMPDIR), so concurrency is race-free.
65
- // The bare `npm test` and the tag-gate (release-gate.sh) stay sequential as the
63
+ // Every test path uses --concurrency auto by default (parallel, race-free:
64
+ // each smoke runs in a private cwd + state roots). The release tag-gate
65
+ // (release-gate.sh) forces CW_TEST_CONCURRENCY=1 to stay sequential as the
66
66
  // deterministic backstop.
67
67
  { name: "tests", command: ["npm", "run", "test:ci"] },
68
68
  { name: "canonical apps", command: ["npm", "run", "canonical-apps"] },
@@ -30,7 +30,7 @@ say "[1/6] build"
30
30
  npm run --prefix plugins/cool-workflow build >/dev/null 2>&1 || fail "build failed"
31
31
 
32
32
  say "[2/6] tests"
33
- npm test --prefix plugins/cool-workflow >/dev/null 2>&1 || fail "tests failed"
33
+ CW_TEST_CONCURRENCY=1 npm test --prefix plugins/cool-workflow >/dev/null 2>&1 || fail "tests failed"
34
34
 
35
35
  if [[ -n "$PREV_TAG" ]]; then
36
36
  RANGE="$PREV_TAG..HEAD"