agentic-engineering-harness 0.4.16 → 0.6.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 +159 -189
- package/dist/agents/config.js +2 -0
- package/dist/agents/config.js.map +1 -1
- package/dist/agents/outputContracts.d.ts +1 -0
- package/dist/agents/outputContracts.js +12 -0
- package/dist/agents/outputContracts.js.map +1 -1
- package/dist/agents/parallelism.d.ts +1 -0
- package/dist/agents/parallelism.js +101 -14
- package/dist/agents/parallelism.js.map +1 -1
- package/dist/agents/structuredOutput.js +16 -4
- package/dist/agents/structuredOutput.js.map +1 -1
- package/dist/agents/waveExecutor.d.ts +41 -0
- package/dist/agents/waveExecutor.js +208 -0
- package/dist/agents/waveExecutor.js.map +1 -0
- package/dist/audit/intent.d.ts +20 -0
- package/dist/audit/intent.js +42 -0
- package/dist/audit/intent.js.map +1 -0
- package/dist/audit/run.d.ts +46 -0
- package/dist/audit/run.js +147 -0
- package/dist/audit/run.js.map +1 -0
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/core/config.js +28 -7
- package/dist/core/config.js.map +1 -1
- package/dist/core/controlPlane.d.ts +30 -0
- package/dist/core/controlPlane.js +131 -0
- package/dist/core/controlPlane.js.map +1 -0
- package/dist/core/init.js +13 -5
- package/dist/core/init.js.map +1 -1
- package/dist/core/run.d.ts +21 -0
- package/dist/core/run.js +104 -41
- package/dist/core/run.js.map +1 -1
- package/dist/core/types.d.ts +103 -1
- package/dist/distributed/queue.d.ts +11 -0
- package/dist/distributed/queue.js +140 -0
- package/dist/distributed/queue.js.map +1 -0
- package/dist/distributed/types.d.ts +34 -0
- package/dist/distributed/types.js +2 -0
- package/dist/distributed/types.js.map +1 -0
- package/dist/distributed/worker.d.ts +21 -0
- package/dist/distributed/worker.js +111 -0
- package/dist/distributed/worker.js.map +1 -0
- package/dist/entry.js +219 -46
- package/dist/entry.js.map +1 -1
- package/dist/evals/runner.js +2 -2
- package/dist/evals/runner.js.map +1 -1
- package/dist/evals/statistics.d.ts +38 -0
- package/dist/evals/statistics.js +88 -0
- package/dist/evals/statistics.js.map +1 -0
- package/dist/evidence/graph.d.ts +48 -0
- package/dist/evidence/graph.js +94 -0
- package/dist/evidence/graph.js.map +1 -0
- package/dist/issues/intake.d.ts +1 -1
- package/dist/mcp/benchmark.d.ts +24 -0
- package/dist/mcp/benchmark.js +82 -0
- package/dist/mcp/benchmark.js.map +1 -0
- package/dist/paseo/capabilities.d.ts +24 -0
- package/dist/paseo/capabilities.js +104 -0
- package/dist/paseo/capabilities.js.map +1 -0
- package/dist/paseo/context.d.ts +45 -0
- package/dist/paseo/context.js +153 -0
- package/dist/paseo/context.js.map +1 -0
- package/dist/paseo/start.d.ts +55 -0
- package/dist/paseo/start.js +138 -0
- package/dist/paseo/start.js.map +1 -0
- package/dist/policy/bundles.d.ts +27 -0
- package/dist/policy/bundles.js +129 -0
- package/dist/policy/bundles.js.map +1 -0
- package/dist/security/sandbox.d.ts +12 -0
- package/dist/security/sandbox.js +64 -0
- package/dist/security/sandbox.js.map +1 -0
- package/dist/spec/openspec.d.ts +28 -0
- package/dist/spec/openspec.js +179 -0
- package/dist/spec/openspec.js.map +1 -0
- package/dist/toolchain/resolve.js +54 -90
- package/dist/toolchain/resolve.js.map +1 -1
- package/dist/utils/process.d.ts +1 -0
- package/dist/utils/process.js +6 -1
- package/dist/utils/process.js.map +1 -1
- package/dist/validators/graphify.js +28 -6
- package/dist/validators/graphify.js.map +1 -1
- package/dist/workers/agentPrompt.d.ts +6 -1
- package/dist/workers/agentPrompt.js +118 -34
- package/dist/workers/agentPrompt.js.map +1 -1
- package/dist/workers/paseo.js +53 -19
- package/dist/workers/paseo.js.map +1 -1
- package/dist/workers/podman.js +30 -8
- package/dist/workers/podman.js.map +1 -1
- package/docs/PASEO.md +56 -4
- package/docs/V0.5.1.md +129 -0
- package/docs/V0.5.2.md +180 -0
- package/docs/V0.5.md +116 -0
- package/docs/V0.6.md +148 -0
- package/package.json +3 -3
- package/presets/agents/orchestration.jsonc +37 -0
- package/schemas/project.schema.json +38 -8
- package/skills/engineering-workflow/SKILL.md +113 -81
- package/skills/openspec-authoring/SKILL.md +26 -0
- package/skills/paseo-orchestration/SKILL.md +38 -0
- package/templates/AGENTS.md +40 -15
- package/templates/agents.source.jsonc +1 -1
- package/templates/openspec-config.yaml +24 -0
- package/templates/project.yaml +79 -1
- package/templates/toolchain.yaml +19 -2
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
import crypto from "node:crypto";
|
|
2
|
+
import fs from "node:fs/promises";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { runProcess } from "../utils/process.js";
|
|
5
|
+
const DEFAULT_CONTROL_ROOTS = [".harness/project.yaml", ".harness/agents.source.jsonc", ".harness/generated/agents.json", ".harness/toolchain.yaml", ".harness/toolchain.lock.json", ".harness/policies", ".harness/skills", ".opencode/skills", ".agents/skills", "policies", "skills", "schemas"];
|
|
6
|
+
const SELF_CONTROLLER_ROOTS = ["package.json", "package-lock.json", "src/agents", "src/audit", "src/core", "src/delivery", "src/distributed", "src/evals", "src/evidence", "src/issues", "src/mcp", "src/memory", "src/metrics", "src/paseo", "src/policy", "src/provenance", "src/providers", "src/security", "src/telemetry", "src/toolchain", "src/utils", "src/validators", "src/workers"];
|
|
7
|
+
export async function createControlPlaneSnapshot(root, config, taskId) {
|
|
8
|
+
const sourceRoot = path.resolve(root);
|
|
9
|
+
const includeRoots = await resolveControlRoots(sourceRoot, config);
|
|
10
|
+
const relativeFiles = await enumerateControlFiles(sourceRoot, includeRoots);
|
|
11
|
+
const outputDir = path.resolve(sourceRoot, config.controlPlane?.snapshotDir ?? ".harness/controller", taskId);
|
|
12
|
+
const materializedRoot = path.join(outputDir, "files");
|
|
13
|
+
await fs.rm(outputDir, { recursive: true, force: true });
|
|
14
|
+
await fs.mkdir(materializedRoot, { recursive: true });
|
|
15
|
+
const files = [];
|
|
16
|
+
for (const relative of relativeFiles) {
|
|
17
|
+
const source = path.resolve(sourceRoot, relative);
|
|
18
|
+
const content = await fs.readFile(source);
|
|
19
|
+
const destination = path.resolve(materializedRoot, relative);
|
|
20
|
+
await fs.mkdir(path.dirname(destination), { recursive: true });
|
|
21
|
+
await fs.writeFile(destination, content);
|
|
22
|
+
files.push({ path: relative, sha256: sha256(content), size: content.length });
|
|
23
|
+
}
|
|
24
|
+
const snapshot = { version: 1, taskId, createdAt: new Date().toISOString(), aehVersion: await readPackageVersion(sourceRoot), gitCommit: await readGitCommit(sourceRoot), sourceRoot, materializedRoot, includeRoots, files, compositeSha256: compositeHash(files) };
|
|
25
|
+
await fs.writeFile(path.join(outputDir, "manifest.json"), `${JSON.stringify(snapshot, null, 2)}\n`);
|
|
26
|
+
return snapshot;
|
|
27
|
+
}
|
|
28
|
+
export async function materializeControlPlaneSnapshot(snapshot, targetRoot, config) {
|
|
29
|
+
const destinationDir = path.resolve(targetRoot, config.controlPlane?.snapshotDir ?? ".harness/controller", snapshot.taskId);
|
|
30
|
+
const destinationFiles = path.join(destinationDir, "files");
|
|
31
|
+
await fs.rm(destinationDir, { recursive: true, force: true });
|
|
32
|
+
await fs.mkdir(path.dirname(destinationDir), { recursive: true });
|
|
33
|
+
await fs.cp(path.dirname(snapshot.materializedRoot), destinationDir, { recursive: true, force: true });
|
|
34
|
+
const materialized = { ...snapshot, materializedRoot: destinationFiles };
|
|
35
|
+
await fs.writeFile(path.join(destinationDir, "manifest.json"), `${JSON.stringify(materialized, null, 2)}\n`);
|
|
36
|
+
return materialized;
|
|
37
|
+
}
|
|
38
|
+
export async function detectControlPlaneDrift(root, snapshot) {
|
|
39
|
+
const sourceRoot = path.resolve(root);
|
|
40
|
+
const currentFiles = await enumerateControlFiles(sourceRoot, snapshot.includeRoots);
|
|
41
|
+
const expected = new Map(snapshot.files.map((file) => [file.path, file]));
|
|
42
|
+
const currentSet = new Set(currentFiles);
|
|
43
|
+
const changed = [];
|
|
44
|
+
const missing = [];
|
|
45
|
+
const added = [];
|
|
46
|
+
for (const [relative, file] of expected) {
|
|
47
|
+
if (!currentSet.has(relative)) {
|
|
48
|
+
missing.push(relative);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
const content = await fs.readFile(path.resolve(sourceRoot, relative));
|
|
52
|
+
if (sha256(content) !== file.sha256)
|
|
53
|
+
changed.push(relative);
|
|
54
|
+
}
|
|
55
|
+
for (const relative of currentFiles)
|
|
56
|
+
if (!expected.has(relative))
|
|
57
|
+
added.push(relative);
|
|
58
|
+
changed.sort();
|
|
59
|
+
missing.sort();
|
|
60
|
+
added.sort();
|
|
61
|
+
return { changed, missing, added, drifted: changed.length + missing.length + added.length > 0 };
|
|
62
|
+
}
|
|
63
|
+
export async function loadFrozenSkillContext(root, config, taskId, skills) {
|
|
64
|
+
if (!skills.length)
|
|
65
|
+
return undefined;
|
|
66
|
+
const filesRoot = path.resolve(root, config.controlPlane?.snapshotDir ?? ".harness/controller", taskId, "files");
|
|
67
|
+
const roots = [".harness/skills", ".agents/skills", ".opencode/skills", "skills"];
|
|
68
|
+
const chunks = [];
|
|
69
|
+
for (const skill of [...new Set(skills)]) {
|
|
70
|
+
let content;
|
|
71
|
+
for (const rootName of roots) {
|
|
72
|
+
for (const suffix of [path.join(skill, "SKILL.md"), `${skill}.md`]) {
|
|
73
|
+
try {
|
|
74
|
+
content = await fs.readFile(path.join(filesRoot, rootName, suffix), "utf8");
|
|
75
|
+
break;
|
|
76
|
+
}
|
|
77
|
+
catch { /* try next frozen root */ }
|
|
78
|
+
}
|
|
79
|
+
if (content !== undefined)
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
if (content !== undefined)
|
|
83
|
+
chunks.push(`## Frozen skill: ${skill}\n${content.trim()}`);
|
|
84
|
+
}
|
|
85
|
+
return chunks.length ? chunks.join("\n\n") : undefined;
|
|
86
|
+
}
|
|
87
|
+
export function controlPlanePolicyRoot(snapshot) { return snapshot.materializedRoot; }
|
|
88
|
+
export async function loadControlPlaneSnapshot(root, config, taskId) { const file = path.resolve(root, config.controlPlane?.snapshotDir ?? ".harness/controller", taskId, "manifest.json"); try {
|
|
89
|
+
return JSON.parse(await fs.readFile(file, "utf8"));
|
|
90
|
+
}
|
|
91
|
+
catch {
|
|
92
|
+
return undefined;
|
|
93
|
+
} }
|
|
94
|
+
async function resolveControlRoots(root, config) { const configured = [config.agents?.configPath, config.agents?.generatedPath, config.toolchain?.configPath, config.toolchain?.lockPath, ...(config.validation?.opa?.policyDirs ?? []), config.organization?.policyBundles?.cacheDir, ...(config.controlPlane?.include ?? [])].filter((value) => Boolean(value)); const self = await isHarnessRepository(root) ? SELF_CONTROLLER_ROOTS : []; return [...new Set([...DEFAULT_CONTROL_ROOTS, ...configured, ...self].map(normalizeRelative))].sort(); }
|
|
95
|
+
async function isHarnessRepository(root) { try {
|
|
96
|
+
const value = JSON.parse(await fs.readFile(path.join(root, "package.json"), "utf8"));
|
|
97
|
+
return value.name === "agentic-engineering-harness";
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return false;
|
|
101
|
+
} }
|
|
102
|
+
async function enumerateControlFiles(root, includeRoots) { const result = new Set(); for (const relative of includeRoots)
|
|
103
|
+
await collectPath(root, relative, result); return [...result].sort(); }
|
|
104
|
+
async function collectPath(root, relative, result) { const absolute = path.resolve(root, relative); if (!inside(root, absolute))
|
|
105
|
+
throw new Error(`Control-plane snapshot path escapes project root: ${relative}`); let stat; try {
|
|
106
|
+
stat = await fs.stat(absolute);
|
|
107
|
+
}
|
|
108
|
+
catch {
|
|
109
|
+
return;
|
|
110
|
+
} if (stat.isFile()) {
|
|
111
|
+
result.add(normalizeRelative(path.relative(root, absolute)));
|
|
112
|
+
return;
|
|
113
|
+
} if (!stat.isDirectory())
|
|
114
|
+
return; const entries = await fs.readdir(absolute, { withFileTypes: true }); for (const entry of entries.sort((a, b) => a.name.localeCompare(b.name))) {
|
|
115
|
+
if (["node_modules", ".git", "dist"].includes(entry.name))
|
|
116
|
+
continue;
|
|
117
|
+
await collectPath(root, normalizeRelative(path.relative(root, path.join(absolute, entry.name))), result);
|
|
118
|
+
} }
|
|
119
|
+
function compositeHash(files) { const hash = crypto.createHash("sha256"); for (const file of [...files].sort((a, b) => a.path.localeCompare(b.path)))
|
|
120
|
+
hash.update(`${file.path}\0${file.sha256}\0${file.size}\n`); return hash.digest("hex"); }
|
|
121
|
+
async function readPackageVersion(root) { try {
|
|
122
|
+
return JSON.parse(await fs.readFile(path.join(root, "package.json"), "utf8")).version;
|
|
123
|
+
}
|
|
124
|
+
catch {
|
|
125
|
+
return undefined;
|
|
126
|
+
} }
|
|
127
|
+
async function readGitCommit(root) { const result = await runProcess("git rev-parse HEAD", { cwd: root, timeoutMs: 10_000 }); return result.exitCode === 0 ? result.stdout.trim() || undefined : undefined; }
|
|
128
|
+
function normalizeRelative(value) { return value.replaceAll("\\", "/").replace(/^\.\//, "").replace(/\/$/, ""); }
|
|
129
|
+
function inside(root, target) { const relative = path.relative(path.resolve(root), target); return relative === "" || (!relative.startsWith("..") && !path.isAbsolute(relative)); }
|
|
130
|
+
function sha256(value) { return crypto.createHash("sha256").update(value).digest("hex"); }
|
|
131
|
+
//# sourceMappingURL=controlPlane.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"controlPlane.js","sourceRoot":"","sources":["../../src/core/controlPlane.ts"],"names":[],"mappings":"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"}
|
package/dist/core/init.js
CHANGED
|
@@ -22,7 +22,7 @@ async function copyTree(source, destination) { await fs.mkdir(destination, { rec
|
|
|
22
22
|
export async function initializeProject(root) {
|
|
23
23
|
const pkg = packageRoot();
|
|
24
24
|
const created = [];
|
|
25
|
-
const mappings = [["templates/project.yaml", ".harness/project.yaml"], ["templates/toolchain.yaml", ".harness/toolchain.yaml"], ["templates/agents.source.jsonc", ".harness/agents.source.jsonc"], ["templates/AGENTS.md", "AGENTS.md"], ["templates/otel-collector.yaml", ".harness/otel-collector.yaml"]];
|
|
25
|
+
const mappings = [["templates/project.yaml", ".harness/project.yaml"], ["templates/toolchain.yaml", ".harness/toolchain.yaml"], ["templates/agents.source.jsonc", ".harness/agents.source.jsonc"], ["templates/AGENTS.md", "AGENTS.md"], ["templates/otel-collector.yaml", ".harness/otel-collector.yaml"], ["templates/openspec-config.yaml", "openspec/config.yaml"]];
|
|
26
26
|
for (const [src, dst] of mappings) {
|
|
27
27
|
const target = path.join(root, dst);
|
|
28
28
|
if (!(await exists(target))) {
|
|
@@ -32,7 +32,7 @@ export async function initializeProject(root) {
|
|
|
32
32
|
}
|
|
33
33
|
await copyTree(path.join(pkg, "policies", "core"), path.join(root, ".harness", "policies", "core"));
|
|
34
34
|
await copyTree(path.join(pkg, "skills"), path.join(root, ".harness", "skills"));
|
|
35
|
-
for (const dir of [".harness/bin", ".harness/contracts", ".harness/seals", ".harness/reports", ".harness/repairs", ".harness/runs", ".harness/telemetry", ".harness/evals/results", ".harness/evals/workspaces", ".harness/provenance", ".harness/generated", ".harness/findings", ".harness/delivery", ".config/mise/conf.d", "specs/changes", "docs/decisions", "evals/corpus", "memory-benchmarks"])
|
|
35
|
+
for (const dir of [".harness/bin", ".harness/contracts", ".harness/seals", ".harness/reports", ".harness/repairs", ".harness/runs", ".harness/telemetry", ".harness/audits", ".harness/evals/results", ".harness/evals/workspaces", ".harness/provenance", ".harness/generated", ".harness/findings", ".harness/delivery", ".harness/controller", ".harness/evidence", ".harness/distributed/pending", ".harness/distributed/leased", ".harness/distributed/completed", ".harness/policy-bundles", ".harness/mcp-benchmarks", ".harness/paseo", ".harness/paseo/handoffs", ".config/mise/conf.d", "openspec/changes", "openspec/specs", "specs/changes", "docs/decisions", "evals/corpus", "memory-benchmarks"])
|
|
36
36
|
await fs.mkdir(path.join(root, dir), { recursive: true });
|
|
37
37
|
if (await ensureGitignore(root))
|
|
38
38
|
created.push(".gitignore (AEH generated-state block)");
|
|
@@ -41,12 +41,20 @@ export async function initializeProject(root) {
|
|
|
41
41
|
async function ensureGitignore(root) {
|
|
42
42
|
const file = path.join(root, ".gitignore");
|
|
43
43
|
const marker = "# BEGIN Agentic Engineering Harness generated state";
|
|
44
|
-
const
|
|
44
|
+
const ignored = [".harness/bin/", ".harness/toolchain.state.json", ".harness/generated/", ".harness/contracts/", ".harness/seals/", ".harness/reports/", ".harness/repairs/", ".harness/runs/", ".harness/telemetry/", ".harness/audits/", ".harness/findings/", ".harness/evals/", ".harness/provenance/", ".harness/delivery/", ".harness/issues/", ".harness/controller/", ".harness/evidence/", ".harness/distributed/", ".harness/policy-bundles/", ".harness/mcp-benchmarks/", ".harness/paseo/", ".config/mise/conf.d/aeh.toml"];
|
|
45
|
+
const end = "# END Agentic Engineering Harness generated state";
|
|
46
|
+
const block = `${marker}\n${ignored.join("\n")}\n${end}`;
|
|
45
47
|
const current = await fs.readFile(file, "utf8").catch(() => "");
|
|
46
|
-
if (current.includes(marker))
|
|
47
|
-
|
|
48
|
+
if (current.includes(marker)) {
|
|
49
|
+
const next = current.replace(new RegExp(`${escapeRegExp(marker)}[\\s\\S]*?${escapeRegExp(end)}`), block);
|
|
50
|
+
if (next === current)
|
|
51
|
+
return false;
|
|
52
|
+
await fs.writeFile(file, next.endsWith("\n") ? next : `${next}\n`);
|
|
53
|
+
return true;
|
|
54
|
+
}
|
|
48
55
|
const prefix = current && !current.endsWith("\n") ? `${current}\n` : current;
|
|
49
56
|
await fs.writeFile(file, `${prefix}${prefix ? "\n" : ""}${block}\n`);
|
|
50
57
|
return true;
|
|
51
58
|
}
|
|
59
|
+
function escapeRegExp(value) { return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); }
|
|
52
60
|
//# sourceMappingURL=init.js.map
|
package/dist/core/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,SAAS,WAAW,KAAa,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AAC9G,KAAK,UAAU,MAAM,CAAC,IAAY,IAAsB,IAAI,CAAC;IAAC,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAAC,OAAO,IAAI,CAAC;AAAC,CAAC;AAAC,MAAM,CAAC;IAAC,OAAO,KAAK,CAAC;AAAC,CAAC,CAAC,CAAC;AAC7H,KAAK,UAAU,iBAAiB,CAAC,MAAc,EAAE,WAAmB,IAAmB,IAAI,MAAM,MAAM,CAAC,WAAW,CAAC;IAAE,OAAO,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;AACvO,KAAK,UAAU,QAAQ,CAAC,MAAc,EAAE,WAAmB,IAAmB,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAAC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAAC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAAC,IAAI,KAAK,CAAC,WAAW,EAAE;QAAE,MAAM,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;;QAAM,MAAM,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAAC,CAAC,CAAC,CAAC;AAClY,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY;IAClD,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC;IAAC,MAAM,OAAO,GAAa,EAAE,CAAC;IACxD,MAAM,QAAQ,GAA4B,CAAC,CAAC,wBAAwB,EAAE,uBAAuB,CAAC,EAAE,CAAC,0BAA0B,EAAE,yBAAyB,CAAC,EAAE,CAAC,+BAA+B,EAAE,8BAA8B,CAAC,EAAE,CAAC,qBAAqB,EAAE,WAAW,CAAC,EAAE,CAAC,+BAA+B,EAAE,8BAA8B,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/core/init.ts"],"names":[],"mappings":"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"}
|
package/dist/core/run.d.ts
CHANGED
|
@@ -18,6 +18,27 @@ export interface TaskRunResult {
|
|
|
18
18
|
reviewers: string[];
|
|
19
19
|
validators: string[];
|
|
20
20
|
};
|
|
21
|
+
planning?: {
|
|
22
|
+
used: boolean;
|
|
23
|
+
tasks: number;
|
|
24
|
+
waves: number;
|
|
25
|
+
distributed: boolean;
|
|
26
|
+
graphUsed?: boolean;
|
|
27
|
+
};
|
|
28
|
+
controlPlane?: {
|
|
29
|
+
sha256: string;
|
|
30
|
+
gitCommit?: string;
|
|
31
|
+
drifted: boolean;
|
|
32
|
+
changed: string[];
|
|
33
|
+
missing: string[];
|
|
34
|
+
added: string[];
|
|
35
|
+
};
|
|
36
|
+
evidence?: {
|
|
37
|
+
sha256: string;
|
|
38
|
+
complete: boolean;
|
|
39
|
+
requirements: number;
|
|
40
|
+
reasons: string[];
|
|
41
|
+
};
|
|
21
42
|
review?: {
|
|
22
43
|
status: "PASS" | "FAIL";
|
|
23
44
|
finalState: string;
|
package/dist/core/run.js
CHANGED
|
@@ -6,6 +6,7 @@ import { classifyFailure, formatRecoveryAction, resolveRecoveryStep } from "../a
|
|
|
6
6
|
import { executionSelectionForAgent, selectExecutionForTask, selectFallbackExecution } from "../agents/routing.js";
|
|
7
7
|
import { validateExecutionCapabilities } from "../agents/permissions.js";
|
|
8
8
|
import { runReviewLifecycle } from "../agents/reviewLifecycle.js";
|
|
9
|
+
import { executePlannerWaves } from "../agents/waveExecutor.js";
|
|
9
10
|
import { loadTaskContract } from "./config.js";
|
|
10
11
|
import { validateSddChange } from "./sdd.js";
|
|
11
12
|
import { validateQuickTaskContract } from "./quick.js";
|
|
@@ -21,52 +22,95 @@ import { buildRunMetrics, countHumanInterventions } from "../metrics/runMetrics.
|
|
|
21
22
|
import { deliveryWorkspacePath } from "../delivery/handoff.js";
|
|
22
23
|
import { deliveryFinalizationFailure, finalizeAcceptedIssue } from "../delivery/finalize.js";
|
|
23
24
|
import { verifyGithubIssueDrift } from "../issues/intake.js";
|
|
25
|
+
import { createControlPlaneSnapshot, detectControlPlaneDrift, materializeControlPlaneSnapshot } from "./controlPlane.js";
|
|
26
|
+
import { resolveOrganizationPolicyBundles, withOrganizationPolicies } from "../policy/bundles.js";
|
|
27
|
+
import { buildRequirementEvidenceGraph, evidenceValidationCheck } from "../evidence/graph.js";
|
|
28
|
+
import { enforceSandboxPolicy } from "../security/sandbox.js";
|
|
24
29
|
export async function runTask(root, config, contract, options) {
|
|
25
30
|
const controlRoot = path.resolve(root);
|
|
26
|
-
const
|
|
27
|
-
const
|
|
31
|
+
const policyResolution = await resolveOrganizationPolicyBundles(controlRoot, config);
|
|
32
|
+
const effectiveConfig = withOrganizationPolicies(config, policyResolution);
|
|
33
|
+
const workspaceRoot = path.resolve(await deliveryWorkspacePath(controlRoot, effectiveConfig, contract.task.id) ?? controlRoot);
|
|
34
|
+
const effectiveContract = workspaceRoot === controlRoot ? contract : await loadTaskContract(workspaceRoot, contract.task.id, effectiveConfig);
|
|
28
35
|
const startedMs = Date.now();
|
|
29
36
|
const startedAt = new Date(startedMs).toISOString();
|
|
30
|
-
const issueDrift = await verifyGithubIssueDrift(controlRoot,
|
|
37
|
+
const issueDrift = await verifyGithubIssueDrift(controlRoot, effectiveConfig, effectiveContract);
|
|
31
38
|
if (!issueDrift.ok)
|
|
32
39
|
throw new Error(issueDrift.message);
|
|
33
40
|
if (effectiveContract.issue)
|
|
34
|
-
await recordEvent(controlRoot,
|
|
41
|
+
await recordEvent(controlRoot, effectiveConfig, "harness.issue.drift-check", { taskId: effectiveContract.task.id, issue: effectiveContract.issue.number, repository: effectiveContract.issue.repository, ok: true, contentSha256: effectiveContract.issue.contentSha256 });
|
|
35
42
|
if (effectiveContract.mode === "quick") {
|
|
36
|
-
const quick = validateQuickTaskContract(
|
|
43
|
+
const quick = validateQuickTaskContract(effectiveConfig, effectiveContract);
|
|
37
44
|
if (!quick.ok)
|
|
38
45
|
throw new Error(`QuickContract validation failed before delegation:\n${quick.issues.map((item) => `- ${item}`).join("\n")}\nEscalate this change to SDD/spec mode.`);
|
|
39
46
|
}
|
|
40
47
|
else {
|
|
41
|
-
const trace = await validateSddChange(workspaceRoot, effectiveContract.task.id,
|
|
48
|
+
const trace = await validateSddChange(workspaceRoot, effectiveContract.task.id, effectiveConfig);
|
|
42
49
|
if (!trace.ok)
|
|
43
50
|
throw new Error(`SDD validation failed before delegation:\n${[...trace.missing, ...trace.issues].map((item) => `- ${item}`).join("\n")}`);
|
|
44
51
|
}
|
|
45
|
-
await recordEvent(controlRoot, config, "harness.run.start", { taskId: effectiveContract.task.id, mode: effectiveContract.mode ?? "spec", workspaceRoot: workspaceRoot === controlRoot ? undefined : workspaceRoot, issue: effectiveContract.issue ? { repository: effectiveContract.issue.repository, number: effectiveContract.issue.number } : undefined });
|
|
46
52
|
if (workspaceRoot === controlRoot)
|
|
47
|
-
await sealTask(controlRoot,
|
|
53
|
+
await sealTask(controlRoot, effectiveConfig, effectiveContract);
|
|
48
54
|
else {
|
|
49
|
-
const seal = await verifyTaskSeal(workspaceRoot, effectiveContract,
|
|
55
|
+
const seal = await verifyTaskSeal(workspaceRoot, effectiveContract, effectiveConfig.validation?.requireSeal ?? true);
|
|
50
56
|
if (seal.status === "FAIL")
|
|
51
57
|
throw new Error(`Delivery workspace trust check failed before delegation: ${seal.message}`);
|
|
52
58
|
}
|
|
53
|
-
const topologyState = await resolveTopology(controlRoot,
|
|
59
|
+
const topologyState = await resolveTopology(controlRoot, effectiveConfig, effectiveContract, options?.profile);
|
|
54
60
|
const topology = topologyState.topology;
|
|
55
61
|
const route = topologyState.route;
|
|
56
62
|
let selection = topologyState.selection;
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
if (selection)
|
|
64
|
+
selection = enforceSandboxPolicy(selection, effectiveConfig, effectiveContract.routing?.risk ?? "low").selection;
|
|
65
|
+
let controller;
|
|
66
|
+
try {
|
|
67
|
+
controller = await createControlPlaneSnapshot(controlRoot, effectiveConfig, effectiveContract.task.id);
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
if (effectiveConfig.controlPlane?.required !== false)
|
|
71
|
+
throw error;
|
|
72
|
+
await recordEvent(controlRoot, effectiveConfig, "harness.control.snapshot-failed", { taskId: effectiveContract.task.id, error: String(error) });
|
|
73
|
+
}
|
|
74
|
+
if (controller && workspaceRoot !== controlRoot)
|
|
75
|
+
await materializeControlPlaneSnapshot(controller, workspaceRoot, effectiveConfig);
|
|
76
|
+
await recordEvent(controlRoot, effectiveConfig, "harness.run.start", { taskId: effectiveContract.task.id, mode: effectiveContract.mode ?? "spec", workspaceRoot: workspaceRoot === controlRoot ? undefined : workspaceRoot, issue: effectiveContract.issue ? { repository: effectiveContract.issue.repository, number: effectiveContract.issue.number } : undefined, controllerSha256: controller?.compositeSha256, policyBundles: policyResolution.bundles.map((bundle) => bundle.name) });
|
|
77
|
+
await refreshGraphIfConfigured(workspaceRoot, effectiveConfig);
|
|
78
|
+
const beforeSnapshot = await snapshotGraph(workspaceRoot, effectiveConfig, effectiveContract.task.id, "before");
|
|
79
|
+
if (!beforeSnapshot && effectiveConfig.codeIntelligence?.required)
|
|
60
80
|
throw new Error("Code intelligence is required but the Graphify before snapshot could not be created.");
|
|
61
|
-
let
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
81
|
+
let worker;
|
|
82
|
+
let waveResult;
|
|
83
|
+
let executionSessions = [];
|
|
84
|
+
let report;
|
|
85
|
+
if (topology && route && selection && effectiveConfig.workflow?.planning?.enabled !== false && effectiveContract.mode !== "quick") {
|
|
86
|
+
waveResult = await executePlannerWaves({ root: workspaceRoot, stateRoot: controlRoot, config: effectiveConfig, contract: effectiveContract, topology, implementationSelection: selection, controller, revalidate: async () => verifyAfterWorker(workspaceRoot, controlRoot, effectiveConfig, effectiveContract, controller) });
|
|
87
|
+
executionSessions = [...waveResult.sessions];
|
|
88
|
+
}
|
|
89
|
+
if (waveResult?.used && waveResult.aggregateSession) {
|
|
90
|
+
worker = waveResult.aggregateSession;
|
|
91
|
+
report = withWorkerExecutionCheck(waveResult.report ?? await verifyAfterWorker(workspaceRoot, controlRoot, effectiveConfig, effectiveContract, controller), worker);
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
const executor = createWorkerExecutor(effectiveConfig, selection);
|
|
95
|
+
const health = await executor.doctor(workspaceRoot, effectiveConfig, selection);
|
|
96
|
+
if (!health.ok)
|
|
97
|
+
throw new Error(`${executor.name} executor unavailable: ${health.message}`);
|
|
98
|
+
worker = await executor.start(workspaceRoot, effectiveConfig, effectiveContract, selection);
|
|
99
|
+
executionSessions.push(worker);
|
|
100
|
+
report = withWorkerExecutionCheck(await verifyAfterWorker(workspaceRoot, controlRoot, effectiveConfig, effectiveContract, controller), worker);
|
|
101
|
+
}
|
|
102
|
+
let evidenceGraph;
|
|
103
|
+
const attachEvidence = async (candidate) => {
|
|
104
|
+
if (candidate.status !== "PASS" || effectiveConfig.evidence?.enabled !== true)
|
|
105
|
+
return candidate;
|
|
106
|
+
evidenceGraph = await buildRequirementEvidenceGraph({ root: workspaceRoot, stateRoot: controlRoot, config: effectiveConfig, contract: effectiveContract, report: candidate, plan: waveResult?.plan, sessions: executionSessions });
|
|
107
|
+
return mergeChecks(candidate, [evidenceValidationCheck(evidenceGraph, effectiveConfig)]);
|
|
108
|
+
};
|
|
109
|
+
report = await attachEvidence(report);
|
|
68
110
|
const firstPassSuccess = report.status === "PASS";
|
|
69
|
-
const maxRepairs = effectiveContract.repair?.maxAttempts ??
|
|
111
|
+
const maxRepairs = effectiveContract.repair?.maxAttempts ?? effectiveConfig.orchestration?.worker?.maxRepairAttempts ?? 2;
|
|
112
|
+
let attempts = 0;
|
|
113
|
+
let executor = createWorkerExecutor(effectiveConfig, selection);
|
|
70
114
|
while (report.status === "FAIL" && attempts < maxRepairs) {
|
|
71
115
|
attempts += 1;
|
|
72
116
|
const failureType = classifyFailure({ report, worker });
|
|
@@ -75,8 +119,8 @@ export async function runTask(root, config, contract, options) {
|
|
|
75
119
|
const packet = createRepairPacket(report, attempts, { failureType, failedAgent: selection?.logicalAgent, recoveryAction });
|
|
76
120
|
if (!packet.failures.length)
|
|
77
121
|
break;
|
|
78
|
-
await writeRepairPacket(controlRoot,
|
|
79
|
-
await recordEvent(controlRoot,
|
|
122
|
+
await writeRepairPacket(controlRoot, effectiveConfig, packet);
|
|
123
|
+
await recordEvent(controlRoot, effectiveConfig, "harness.repair.start", { taskId: effectiveContract.task.id, attempt: attempts, failureType, recoveryAction, failures: packet.failures.length });
|
|
80
124
|
if (recovery.action === "lead" || recovery.action === "stop")
|
|
81
125
|
break;
|
|
82
126
|
if (topology && recovery.action === "agent" && recovery.agent)
|
|
@@ -88,50 +132,69 @@ export async function runTask(root, config, contract, options) {
|
|
|
88
132
|
selection = fallback;
|
|
89
133
|
}
|
|
90
134
|
if (selection) {
|
|
91
|
-
|
|
135
|
+
selection = enforceSandboxPolicy(selection, effectiveConfig, effectiveContract.routing?.risk ?? "low").selection;
|
|
136
|
+
const transport = selection.transport === "inherit" ? (effectiveConfig.orchestration?.provider ?? "none") : selection.transport;
|
|
92
137
|
const issues = validateExecutionCapabilities(selection, transport);
|
|
93
138
|
if (issues.length)
|
|
94
139
|
throw new Error(`Recovery agent ${selection.logicalAgent} is not executable: ${issues.join("; ")}`);
|
|
95
140
|
}
|
|
96
|
-
executor = createWorkerExecutor(
|
|
97
|
-
const recoveryHealth = await executor.doctor(workspaceRoot,
|
|
141
|
+
executor = createWorkerExecutor(effectiveConfig, selection);
|
|
142
|
+
const recoveryHealth = await executor.doctor(workspaceRoot, effectiveConfig, selection);
|
|
98
143
|
if (!recoveryHealth.ok)
|
|
99
144
|
throw new Error(`${executor.name} recovery executor unavailable: ${recoveryHealth.message}`);
|
|
100
|
-
worker = await executor.repair(workspaceRoot,
|
|
101
|
-
|
|
102
|
-
await
|
|
145
|
+
worker = await executor.repair(workspaceRoot, effectiveConfig, effectiveContract, worker, packet, selection);
|
|
146
|
+
executionSessions.push(worker);
|
|
147
|
+
report = withWorkerExecutionCheck(await verifyAfterWorker(workspaceRoot, controlRoot, effectiveConfig, effectiveContract, controller), worker);
|
|
148
|
+
report = await attachEvidence(report);
|
|
149
|
+
await recordEvent(controlRoot, effectiveConfig, "harness.repair.finish", { taskId: effectiveContract.task.id, attempt: attempts, status: report.status, agent: selection?.logicalAgent });
|
|
103
150
|
}
|
|
104
151
|
let reviewSummary;
|
|
152
|
+
let reviewFindings = [];
|
|
153
|
+
let reviewSessions = [];
|
|
105
154
|
if (report.status === "PASS" && topology && route && selection) {
|
|
106
|
-
const review = await runReviewLifecycle({ root: workspaceRoot, stateRoot: controlRoot, config, contract: effectiveContract, topology, route, implementationSelection: selection, report, revalidate: async () => verifyAfterWorker(workspaceRoot, controlRoot,
|
|
155
|
+
const review = await runReviewLifecycle({ root: workspaceRoot, stateRoot: controlRoot, config: effectiveConfig, contract: effectiveContract, topology, route, implementationSelection: selection, report, revalidate: async () => verifyAfterWorker(workspaceRoot, controlRoot, effectiveConfig, effectiveContract, controller) });
|
|
107
156
|
report = mergeChecks(withWorkerExecutionCheck(review.report, worker), review.checks);
|
|
157
|
+
reviewFindings = review.findings.findings;
|
|
158
|
+
reviewSessions = review.sessions;
|
|
108
159
|
const quality = review.qualityHistory.at(-1);
|
|
109
160
|
reviewSummary = { status: review.status, finalState: review.finalState, humanRequired: review.humanRequired, rounds: review.rounds, findings: review.findings.outputCount, debtScore: quality.debtScore, debtPoints: quality.debtPoints, counts: quality.counts, convergence: quality.convergence, leadAccepted: review.leadAccepted, reviewerSessions: review.sessions.length };
|
|
110
|
-
await recordEvent(controlRoot,
|
|
161
|
+
await recordEvent(controlRoot, effectiveConfig, "harness.review.finish", { taskId: effectiveContract.task.id, status: review.status, finalState: review.finalState, humanRequired: review.humanRequired, rounds: review.rounds, findings: review.findings.outputCount, debtScore: quality.debtScore, convergence: quality.convergence, leadAccepted: review.leadAccepted, sessions: review.sessions.length });
|
|
162
|
+
if (report.status === "PASS" && effectiveConfig.evidence?.enabled === true) {
|
|
163
|
+
evidenceGraph = await buildRequirementEvidenceGraph({ root: workspaceRoot, stateRoot: controlRoot, config: effectiveConfig, contract: effectiveContract, report, plan: waveResult?.plan, findings: reviewFindings, sessions: [...executionSessions, ...reviewSessions] });
|
|
164
|
+
report = mergeChecks(report, [evidenceValidationCheck(evidenceGraph, effectiveConfig)]);
|
|
165
|
+
}
|
|
111
166
|
}
|
|
112
167
|
let deliverySummary;
|
|
113
168
|
if (report.status === "PASS") {
|
|
114
169
|
try {
|
|
115
|
-
deliverySummary = await finalizeAcceptedIssue(workspaceRoot,
|
|
170
|
+
deliverySummary = await finalizeAcceptedIssue(workspaceRoot, effectiveConfig, effectiveContract);
|
|
116
171
|
if (deliverySummary.status !== "SKIPPED")
|
|
117
|
-
await recordEvent(controlRoot,
|
|
172
|
+
await recordEvent(controlRoot, effectiveConfig, "harness.delivery.finalize", { taskId: effectiveContract.task.id, status: deliverySummary.status, commitSha: deliverySummary.commitSha, pullRequest: deliverySummary.pullRequest });
|
|
118
173
|
}
|
|
119
174
|
catch (error) {
|
|
120
175
|
deliverySummary = deliveryFinalizationFailure(error);
|
|
121
176
|
report = mergeChecks(report, [{ id: "delivery.finalization", category: "delivery", status: "FAIL", message: deliverySummary.message, details: { status: deliverySummary.status, humanRequired: deliverySummary.humanRequired } }]);
|
|
122
177
|
if (reviewSummary && deliverySummary.humanRequired)
|
|
123
178
|
reviewSummary = { ...reviewSummary, status: "FAIL", finalState: "BLOCKED_EXTERNAL", humanRequired: true };
|
|
124
|
-
await recordEvent(controlRoot,
|
|
179
|
+
await recordEvent(controlRoot, effectiveConfig, "harness.delivery.finalize", { taskId: effectiveContract.task.id, status: deliverySummary.status, humanRequired: deliverySummary.humanRequired, message: deliverySummary.message });
|
|
125
180
|
}
|
|
126
181
|
}
|
|
127
|
-
|
|
128
|
-
|
|
182
|
+
if (report.status === "PASS" && effectiveConfig.evidence?.enabled === true) {
|
|
183
|
+
evidenceGraph = await buildRequirementEvidenceGraph({ root: workspaceRoot, stateRoot: controlRoot, config: effectiveConfig, contract: effectiveContract, report, plan: waveResult?.plan, findings: reviewFindings, sessions: [...executionSessions, ...reviewSessions], delivery: deliverySummary });
|
|
184
|
+
report = mergeChecks(report, [evidenceValidationCheck(evidenceGraph, effectiveConfig)]);
|
|
185
|
+
}
|
|
186
|
+
const drift = controller ? await detectControlPlaneDrift(controlRoot, controller) : { changed: [], missing: [], added: [], drifted: false };
|
|
187
|
+
if (controller)
|
|
188
|
+
report = mergeChecks(report, [{ id: "trust.control-plane-freeze", category: "trust-boundary", status: "PASS", message: drift.drifted ? "Control-plane files changed during the run, but the run remained governed by its frozen controller snapshot; changes activate next run." : "Control-plane snapshot remained unchanged during the run.", details: { controllerSha256: controller.compositeSha256, gitCommit: controller.gitCommit, drift } }]);
|
|
189
|
+
const usageText = [...executionSessions, ...reviewSessions].map((session) => `${session.stdout}\n${session.stderr}`).join("\n");
|
|
190
|
+
worker.metrics = extractUsageMetrics(usageText || `${worker.stdout}\n${worker.stderr}`);
|
|
191
|
+
const metrics = buildRunMetrics({ firstPassSuccess, repairCount: attempts, humanInterventions: await countHumanInterventions(controlRoot, effectiveConfig, effectiveContract.task.id, startedAt), durationMs: Date.now() - startedMs, usage: worker.metrics });
|
|
129
192
|
const routing = selection ? { profile: selection.profile, ruleIds: route?.ruleIds ?? [], agent: selection.logicalAgent, runtime: selection.runtimeName, model: selection.modelId, nativeAgent: selection.nativeAgent, reviewers: route?.reviewers ?? [], validators: route?.validators ?? [] } : undefined;
|
|
130
|
-
const result = { taskId: effectiveContract.task.id, status: report.status, attempts, worker, report, metrics, routing, review: reviewSummary, delivery: deliverySummary };
|
|
131
|
-
const runsDir = path.resolve(controlRoot,
|
|
193
|
+
const result = { taskId: effectiveContract.task.id, status: report.status, attempts, worker, report, metrics, routing, planning: waveResult ? { used: waveResult.used, tasks: waveResult.plan?.tasks.length ?? 0, waves: waveResult.schedule?.waves.length ?? 0, distributed: effectiveConfig.workflow?.planning?.distributed === true && effectiveConfig.distributed?.enabled === true, graphUsed: waveResult.schedule?.graphUsed } : undefined, controlPlane: controller ? { sha256: controller.compositeSha256, gitCommit: controller.gitCommit, drifted: drift.drifted, changed: drift.changed, missing: drift.missing, added: drift.added } : undefined, evidence: evidenceGraph ? { sha256: evidenceGraph.sha256, complete: evidenceGraph.complete, requirements: evidenceGraph.requirements.length, reasons: evidenceGraph.reasons } : undefined, review: reviewSummary, delivery: deliverySummary };
|
|
194
|
+
const runsDir = path.resolve(controlRoot, effectiveConfig.sdd?.runsDir ?? ".harness/runs");
|
|
132
195
|
await fs.mkdir(runsDir, { recursive: true });
|
|
133
196
|
await fs.writeFile(path.join(runsDir, `${effectiveContract.task.id}.json`), `${JSON.stringify(result, null, 2)}\n`);
|
|
134
|
-
await recordEvent(controlRoot,
|
|
197
|
+
await recordEvent(controlRoot, effectiveConfig, "harness.run.finish", { taskId: effectiveContract.task.id, status: result.status, attempts, mode: effectiveContract.mode ?? "spec", workspaceRoot: workspaceRoot === controlRoot ? undefined : workspaceRoot, agent: selection?.logicalAgent, runtime: selection?.runtimeName, model: selection?.modelId, profile: selection?.profile, waves: result.planning?.waves, controllerSha256: result.controlPlane?.sha256, controllerDrifted: result.controlPlane?.drifted, evidenceComplete: result.evidence?.complete, evidenceSha256: result.evidence?.sha256, reviewStatus: reviewSummary?.status, reviewFinalState: reviewSummary?.finalState, humanRequired: reviewSummary?.humanRequired ?? deliverySummary?.humanRequired, debtScore: reviewSummary?.debtScore, deliveryStatus: deliverySummary?.status, pullRequest: deliverySummary?.pullRequest, durationMs: metrics.durationMs, totalTokens: metrics.usage.totalTokens ?? 0, costUsd: metrics.usage.costUsd ?? 0 });
|
|
135
198
|
return result;
|
|
136
199
|
}
|
|
137
200
|
async function resolveTopology(root, config, contract, profileOverride) { if (!config.agents)
|
|
@@ -157,8 +220,8 @@ catch (error) {
|
|
|
157
220
|
function withWorkerExecutionCheck(report, worker) { const checks = report.checks.filter((check) => check.id !== "agent.execution"); checks.unshift({ id: "agent.execution", category: "agent-runtime", status: worker.exitCode === 0 ? "PASS" : "FAIL", message: worker.exitCode === 0 ? `Agent ${worker.logicalAgent ?? worker.provider} completed successfully.` : `Agent runtime exited with code ${worker.exitCode}.`, details: worker.exitCode === 0 ? undefined : { stderr: worker.stderr.slice(-4000), stdout: worker.stdout.slice(-4000), logicalAgent: worker.logicalAgent, runtime: worker.runtime, model: worker.model } }); return { ...report, checks, status: checks.some((check) => check.status === "FAIL") ? "FAIL" : "PASS" }; }
|
|
158
221
|
function mergeChecks(report, extra) { const byId = new Map(report.checks.map((check) => [check.id, check])); for (const check of extra)
|
|
159
222
|
byId.set(check.id, check); const checks = [...byId.values()]; return { ...report, checks, status: checks.some((check) => check.status === "FAIL") ? "FAIL" : "PASS" }; }
|
|
160
|
-
async function verifyAfterWorker(workspaceRoot, controlRoot, config, contract) { await refreshGraphIfConfigured(workspaceRoot, config); const afterSnapshot = await snapshotGraph(workspaceRoot, config, contract.task.id, "after"); if (!afterSnapshot && config.codeIntelligence?.required)
|
|
161
|
-
throw new Error("Code intelligence is required but the Graphify after snapshot could not be created."); return verifyTask(workspaceRoot, config, contract, { stateRoot: controlRoot, policyRoot: controlRoot }); }
|
|
223
|
+
async function verifyAfterWorker(workspaceRoot, controlRoot, config, contract, controller) { await refreshGraphIfConfigured(workspaceRoot, config); const afterSnapshot = await snapshotGraph(workspaceRoot, config, contract.task.id, "after"); if (!afterSnapshot && config.codeIntelligence?.required)
|
|
224
|
+
throw new Error("Code intelligence is required but the Graphify after snapshot could not be created."); return verifyTask(workspaceRoot, config, contract, { stateRoot: controlRoot, policyRoot: controller?.materializedRoot ?? controlRoot }); }
|
|
162
225
|
async function refreshGraphIfConfigured(root, config) { const command = config.codeIntelligence?.refreshCommand; if (!command)
|
|
163
226
|
return; const result = await runProcess(command, { cwd: root, timeoutMs: 300_000 }); if (result.exitCode !== 0 && config.codeIntelligence?.required)
|
|
164
227
|
throw new Error(`Code intelligence refresh failed: ${result.stderr || result.stdout}`); }
|
package/dist/core/run.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/core/run.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../src/core/run.ts"],"names":[],"mappings":"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"}
|