cool-workflow 0.1.79 → 0.1.81
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-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/README.md +51 -3
- package/apps/architecture-review/app.json +1 -1
- package/apps/architecture-review-fast/app.json +64 -0
- package/apps/architecture-review-fast/workflow.js +153 -0
- package/apps/end-to-end-golden-path/app.json +1 -1
- package/apps/pr-review-fix-ci/app.json +1 -1
- package/apps/release-cut/app.json +1 -1
- package/apps/research-synthesis/app.json +1 -1
- package/dist/agent-config.js +21 -7
- package/dist/candidate-scoring.js +42 -22
- package/dist/capability-core.js +132 -17
- package/dist/capability-registry.js +138 -168
- package/dist/cli.js +97 -98
- package/dist/collaboration.js +5 -6
- package/dist/commit.js +20 -6
- package/dist/compare.js +18 -0
- package/dist/coordinator/classify.js +45 -0
- package/dist/coordinator/paths.js +42 -0
- package/dist/coordinator/util.js +129 -0
- package/dist/coordinator.js +127 -300
- package/dist/dispatch.js +35 -0
- package/dist/drive.js +79 -6
- package/dist/error-feedback.js +8 -4
- package/dist/evidence-reasoning.js +3 -3
- package/dist/execution-backend/agent.js +331 -0
- package/dist/execution-backend/probes.js +96 -0
- package/dist/execution-backend/util.js +47 -0
- package/dist/execution-backend.js +73 -421
- package/dist/mcp-server.js +79 -183
- package/dist/multi-agent/graph.js +84 -0
- package/dist/multi-agent/helpers.js +145 -0
- package/dist/multi-agent/paths.js +22 -0
- package/dist/multi-agent-eval/format.js +194 -0
- package/dist/multi-agent-eval/normalize.js +51 -0
- package/dist/multi-agent-eval.js +39 -244
- package/dist/multi-agent-host.js +0 -19
- package/dist/multi-agent.js +125 -314
- package/dist/node-snapshot.js +3 -3
- package/dist/observability/format.js +61 -0
- package/dist/observability/intake.js +98 -0
- package/dist/observability.js +14 -160
- package/dist/operator-ux/format.js +364 -0
- package/dist/operator-ux.js +22 -363
- package/dist/orchestrator/lifecycle-operations.js +2 -1
- package/dist/orchestrator/report.js +8 -0
- package/dist/orchestrator.js +26 -9
- package/dist/reclamation.js +26 -21
- package/dist/run-export.js +494 -25
- package/dist/run-registry/derive.js +172 -0
- package/dist/run-registry/format.js +124 -0
- package/dist/run-registry/gc.js +251 -0
- package/dist/run-registry/policy.js +16 -0
- package/dist/run-registry/queue.js +116 -0
- package/dist/run-registry.js +89 -597
- package/dist/run-state-schema.js +1 -0
- package/dist/sandbox-profile.js +43 -2
- package/dist/state-explosion/format.js +159 -0
- package/dist/state-explosion/helpers.js +82 -0
- package/dist/state-explosion.js +165 -304
- package/dist/state-node.js +19 -4
- package/dist/telemetry-attestation.js +55 -0
- package/dist/telemetry-demo.js +15 -3
- package/dist/telemetry-ledger.js +60 -15
- package/dist/topology.js +25 -8
- package/dist/triggers.js +33 -14
- package/dist/trust-audit.js +145 -33
- package/dist/version.js +1 -1
- package/dist/worker-isolation/helpers.js +51 -0
- package/dist/worker-isolation/paths.js +46 -0
- package/dist/worker-isolation.js +39 -115
- package/docs/agent-delegation-drive.7.md +71 -0
- package/docs/canonical-workflow-apps.7.md +37 -0
- package/docs/cli-mcp-parity.7.md +16 -0
- package/docs/contract-migration-tooling.7.md +6 -0
- package/docs/control-plane-scheduling.7.md +6 -0
- package/docs/dogfood/resume-drive-real-agent-2026-06-14.md +40 -0
- package/docs/durable-state-and-locking.7.md +8 -0
- package/docs/evidence-adoption-reasoning-chain.7.md +6 -0
- package/docs/execution-backends.7.md +6 -0
- package/docs/index.md +2 -0
- package/docs/launch/demo.tape +28 -0
- package/docs/launch/launch-kit.md +96 -17
- package/docs/launch/pre-launch-checklist.md +53 -0
- package/docs/multi-agent-cli-mcp-surface.7.md +8 -0
- package/docs/multi-agent-eval-replay-harness.7.md +6 -0
- package/docs/multi-agent-operator-ux.7.md +6 -0
- package/docs/multi-agent-trust-policy-audit.7.md +27 -0
- package/docs/node-snapshot-diff-replay.7.md +6 -0
- package/docs/observability-cost-accounting.7.md +6 -0
- package/docs/project-index.md +27 -6
- package/docs/real-execution-backends.7.md +6 -0
- package/docs/release-and-migration.7.md +8 -0
- package/docs/release-tooling.7.md +6 -0
- package/docs/routines.md +23 -0
- package/docs/run-registry-control-plane.7.md +89 -2
- package/docs/run-retention-reclamation.7.md +8 -0
- package/docs/source-context-profiles.7.md +119 -0
- package/docs/state-explosion-management.7.md +13 -0
- package/docs/team-collaboration.7.md +6 -0
- package/docs/trust-model.md +267 -0
- package/docs/unix-principles.md +49 -1
- package/docs/vendor-manifest-loadability.7.md +43 -0
- package/docs/web-desktop-workbench.7.md +6 -0
- package/manifest/plugin.manifest.json +1 -1
- package/manifest/source-context-profiles.json +142 -0
- package/package.json +4 -1
- package/scripts/agents/builtin-templates.json +7 -0
- package/scripts/agents/claude-p-agent.js +129 -43
- package/scripts/architecture-review-fast.js +362 -0
- package/scripts/bump-version.js +5 -10
- package/scripts/canonical-apps-list.js +64 -0
- package/scripts/canonical-apps.js +36 -4
- package/scripts/coverage-gate.js +211 -0
- package/scripts/dogfood-release.js +1 -1
- package/scripts/golden-path.js +4 -4
- package/scripts/parity-check.js +5 -0
- package/scripts/release-check.js +5 -1
- package/scripts/source-context.js +291 -0
- package/scripts/version-sync-check.js +5 -7
- package/skills/ci-triage/SKILL.md +50 -0
- package/skills/ci-triage/agents/openai.yaml +4 -0
- package/skills/cool-workflow/SKILL.md +4 -1
- package/skills/deploy-check/SKILL.md +55 -0
- package/skills/deploy-check/agents/openai.yaml +4 -0
- package/skills/design-qa/SKILL.md +49 -0
- package/skills/design-qa/agents/openai.yaml +4 -0
- package/skills/pr-review/SKILL.md +45 -0
- package/skills/pr-review/agents/openai.yaml +4 -0
- package/dist/capability-dispatcher.js +0 -86
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.probeNodeBackend = probeNodeBackend;
|
|
7
|
+
exports.probeShellBackend = probeShellBackend;
|
|
8
|
+
exports.probeBunBackend = probeBunBackend;
|
|
9
|
+
exports.probeContainerBackend = probeContainerBackend;
|
|
10
|
+
exports.probeRemoteBackend = probeRemoteBackend;
|
|
11
|
+
exports.probeCiBackend = probeCiBackend;
|
|
12
|
+
exports.probeAgentBackend = probeAgentBackend;
|
|
13
|
+
// Per-backend readiness probe bodies for the execution-backend driver layer.
|
|
14
|
+
// Carved out of execution-backend.ts (FreeBSD-audit god-module carve) so the
|
|
15
|
+
// driver layer no longer bundles every driver's readiness check; the parent's
|
|
16
|
+
// `probeBackend` still wraps these with the descriptor-derived envelope, and each
|
|
17
|
+
// built-in driver references its probe through BUILTIN_DRIVER_BEHAVIORS.
|
|
18
|
+
//
|
|
19
|
+
// BEHAVIOR-PRESERVING — pure code movement, zero logic change. Each probe is a
|
|
20
|
+
// pure free function of the host (PATH + configured env), matching the existing
|
|
21
|
+
// router pattern (run-registry/derive.ts, orchestrator/*-operations.ts).
|
|
22
|
+
//
|
|
23
|
+
// Readiness probe. Deterministic given the host (PATH + configured env).
|
|
24
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
25
|
+
const util_1 = require("./util");
|
|
26
|
+
function probeNodeBackend() {
|
|
27
|
+
const ok = (0, util_1.hasExecutable)("node");
|
|
28
|
+
return {
|
|
29
|
+
checks: [{ name: "node-runtime", ok, detail: ok ? "node on PATH" : "node not found on PATH" }],
|
|
30
|
+
readiness: ok ? "ready" : "unavailable",
|
|
31
|
+
reason: ok ? undefined : "node runtime not found on PATH"
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
function probeShellBackend() {
|
|
35
|
+
const ok = (0, util_1.hasExecutable)("sh") || node_fs_1.default.existsSync("/bin/sh");
|
|
36
|
+
return {
|
|
37
|
+
checks: [{ name: "posix-shell", ok, detail: ok ? "sh available" : "no POSIX shell found" }],
|
|
38
|
+
readiness: ok ? "ready" : "unavailable",
|
|
39
|
+
reason: ok ? undefined : "POSIX shell not found"
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
function probeBunBackend() {
|
|
43
|
+
const bun = (0, util_1.hasExecutable)("bun");
|
|
44
|
+
const node = (0, util_1.hasExecutable)("node");
|
|
45
|
+
return {
|
|
46
|
+
checks: [
|
|
47
|
+
{ name: "bun-runtime", ok: bun, detail: bun ? "bun on PATH" : "bun not found; node-compatible fallback" },
|
|
48
|
+
{ name: "node-compatible-fallback", ok: node, detail: node ? "node on PATH" : "node not found on PATH" }
|
|
49
|
+
],
|
|
50
|
+
readiness: bun || node ? "ready" : "unavailable",
|
|
51
|
+
reason: !bun && node ? "bun not installed; executing via node-compatible runtime" : !bun && !node ? "neither bun nor node found on PATH" : undefined
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function probeContainerBackend() {
|
|
55
|
+
const docker = (0, util_1.hasExecutable)("docker");
|
|
56
|
+
const podman = (0, util_1.hasExecutable)("podman");
|
|
57
|
+
return {
|
|
58
|
+
checks: [
|
|
59
|
+
{ name: "docker", ok: docker, detail: docker ? "docker on PATH" : "docker not found" },
|
|
60
|
+
{ name: "podman", ok: podman, detail: podman ? "podman on PATH" : "podman not found" }
|
|
61
|
+
],
|
|
62
|
+
readiness: docker || podman ? "ready" : "unavailable",
|
|
63
|
+
reason: docker || podman ? undefined : "no container runtime (docker/podman) found; supply --image to delegate explicitly"
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function probeRemoteBackend() {
|
|
67
|
+
const endpoint = (process.env.CW_REMOTE_ENDPOINT || "").trim();
|
|
68
|
+
return {
|
|
69
|
+
checks: [{ name: "endpoint", ok: Boolean(endpoint), detail: endpoint ? "CW_REMOTE_ENDPOINT configured" : "CW_REMOTE_ENDPOINT not set" }],
|
|
70
|
+
readiness: endpoint ? "ready" : "unverified",
|
|
71
|
+
reason: endpoint ? undefined : "no remote endpoint configured (set CW_REMOTE_ENDPOINT or pass --endpoint)"
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function probeCiBackend() {
|
|
75
|
+
const endpoint = (process.env.CW_CI_ENDPOINT || "").trim();
|
|
76
|
+
return {
|
|
77
|
+
checks: [{ name: "ci-endpoint", ok: Boolean(endpoint), detail: endpoint ? "CW_CI_ENDPOINT configured" : "CW_CI_ENDPOINT not set" }],
|
|
78
|
+
readiness: endpoint ? "ready" : "unverified",
|
|
79
|
+
reason: endpoint ? undefined : "no CI job target configured (set CW_CI_ENDPOINT or pass --job)"
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function probeAgentBackend() {
|
|
83
|
+
// Mirrors remote/ci EXACTLY: unconfigured ⇒ `unverified` (NOT a hard refusal),
|
|
84
|
+
// configured ⇒ `ready`. "Configured" = a command-template or endpoint is set.
|
|
85
|
+
const command = (process.env.CW_AGENT_COMMAND || "").trim();
|
|
86
|
+
const endpoint = (process.env.CW_AGENT_ENDPOINT || "").trim();
|
|
87
|
+
const configured = Boolean(command || endpoint);
|
|
88
|
+
return {
|
|
89
|
+
checks: [
|
|
90
|
+
{ name: "agent-command", ok: Boolean(command), detail: command ? "CW_AGENT_COMMAND configured" : "CW_AGENT_COMMAND not set" },
|
|
91
|
+
{ name: "agent-endpoint", ok: Boolean(endpoint), detail: endpoint ? "CW_AGENT_ENDPOINT configured" : "CW_AGENT_ENDPOINT not set" }
|
|
92
|
+
],
|
|
93
|
+
readiness: configured ? "ready" : "unverified",
|
|
94
|
+
reason: configured ? undefined : "no agent configured (set CW_AGENT_COMMAND or CW_AGENT_ENDPOINT, or pass --agent-command/--agent-endpoint)"
|
|
95
|
+
};
|
|
96
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.sha256 = sha256;
|
|
7
|
+
exports.hasExecutable = hasExecutable;
|
|
8
|
+
exports.firstString = firstString;
|
|
9
|
+
exports.messageOf = messageOf;
|
|
10
|
+
// Leaf helpers for the execution-backend driver layer. Carved out of
|
|
11
|
+
// execution-backend.ts (FreeBSD-audit god-module carve) so the driver layer no
|
|
12
|
+
// longer bundles its pure utilities; the parent re-exports `sha256` to keep the
|
|
13
|
+
// public surface byte-identical, and imports the rest internally.
|
|
14
|
+
//
|
|
15
|
+
// BEHAVIOR-PRESERVING — pure code movement, zero logic change. Each function is a
|
|
16
|
+
// pure leaf (no dependency on the rest of the module), matching the existing
|
|
17
|
+
// router pattern (run-registry/derive.ts + format.ts, orchestrator/*-operations.ts).
|
|
18
|
+
const node_crypto_1 = __importDefault(require("node:crypto"));
|
|
19
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
20
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
21
|
+
function sha256(value) {
|
|
22
|
+
return `sha256:${node_crypto_1.default.createHash("sha256").update(value, "utf8").digest("hex")}`;
|
|
23
|
+
}
|
|
24
|
+
function hasExecutable(name) {
|
|
25
|
+
const dirs = (process.env.PATH || "").split(node_path_1.default.delimiter).filter(Boolean);
|
|
26
|
+
for (const dir of dirs) {
|
|
27
|
+
const candidate = node_path_1.default.join(dir, name);
|
|
28
|
+
try {
|
|
29
|
+
if (node_fs_1.default.existsSync(candidate) && node_fs_1.default.statSync(candidate).isFile())
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
// ignore unreadable PATH entries
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
function firstString(...values) {
|
|
39
|
+
for (const value of values) {
|
|
40
|
+
if (typeof value === "string" && value.trim())
|
|
41
|
+
return value.trim();
|
|
42
|
+
}
|
|
43
|
+
return undefined;
|
|
44
|
+
}
|
|
45
|
+
function messageOf(error) {
|
|
46
|
+
return error instanceof Error ? error.message : String(error);
|
|
47
|
+
}
|