agentic-engineering-harness 0.4.16 → 0.5.1

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 (76) hide show
  1. package/README.md +34 -5
  2. package/dist/agents/outputContracts.d.ts +1 -0
  3. package/dist/agents/outputContracts.js +12 -0
  4. package/dist/agents/outputContracts.js.map +1 -1
  5. package/dist/agents/parallelism.d.ts +1 -0
  6. package/dist/agents/parallelism.js +101 -14
  7. package/dist/agents/parallelism.js.map +1 -1
  8. package/dist/agents/structuredOutput.js +16 -4
  9. package/dist/agents/structuredOutput.js.map +1 -1
  10. package/dist/agents/waveExecutor.d.ts +41 -0
  11. package/dist/agents/waveExecutor.js +208 -0
  12. package/dist/agents/waveExecutor.js.map +1 -0
  13. package/dist/cli.js +1 -1
  14. package/dist/cli.js.map +1 -1
  15. package/dist/core/config.js +23 -6
  16. package/dist/core/config.js.map +1 -1
  17. package/dist/core/controlPlane.d.ts +30 -0
  18. package/dist/core/controlPlane.js +131 -0
  19. package/dist/core/controlPlane.js.map +1 -0
  20. package/dist/core/init.js +12 -4
  21. package/dist/core/init.js.map +1 -1
  22. package/dist/core/run.d.ts +21 -0
  23. package/dist/core/run.js +104 -41
  24. package/dist/core/run.js.map +1 -1
  25. package/dist/core/types.d.ts +83 -1
  26. package/dist/distributed/queue.d.ts +11 -0
  27. package/dist/distributed/queue.js +140 -0
  28. package/dist/distributed/queue.js.map +1 -0
  29. package/dist/distributed/types.d.ts +34 -0
  30. package/dist/distributed/types.js +2 -0
  31. package/dist/distributed/types.js.map +1 -0
  32. package/dist/distributed/worker.d.ts +21 -0
  33. package/dist/distributed/worker.js +111 -0
  34. package/dist/distributed/worker.js.map +1 -0
  35. package/dist/entry.js +110 -46
  36. package/dist/entry.js.map +1 -1
  37. package/dist/evals/runner.js +2 -2
  38. package/dist/evals/runner.js.map +1 -1
  39. package/dist/evals/statistics.d.ts +38 -0
  40. package/dist/evals/statistics.js +88 -0
  41. package/dist/evals/statistics.js.map +1 -0
  42. package/dist/evidence/graph.d.ts +48 -0
  43. package/dist/evidence/graph.js +94 -0
  44. package/dist/evidence/graph.js.map +1 -0
  45. package/dist/mcp/benchmark.d.ts +24 -0
  46. package/dist/mcp/benchmark.js +82 -0
  47. package/dist/mcp/benchmark.js.map +1 -0
  48. package/dist/paseo/start.d.ts +47 -0
  49. package/dist/paseo/start.js +155 -0
  50. package/dist/paseo/start.js.map +1 -0
  51. package/dist/policy/bundles.d.ts +27 -0
  52. package/dist/policy/bundles.js +129 -0
  53. package/dist/policy/bundles.js.map +1 -0
  54. package/dist/security/sandbox.d.ts +12 -0
  55. package/dist/security/sandbox.js +64 -0
  56. package/dist/security/sandbox.js.map +1 -0
  57. package/dist/toolchain/resolve.js +51 -90
  58. package/dist/toolchain/resolve.js.map +1 -1
  59. package/dist/utils/process.d.ts +1 -0
  60. package/dist/utils/process.js +6 -1
  61. package/dist/utils/process.js.map +1 -1
  62. package/dist/validators/graphify.js +28 -6
  63. package/dist/validators/graphify.js.map +1 -1
  64. package/dist/workers/agentPrompt.d.ts +6 -1
  65. package/dist/workers/agentPrompt.js +118 -34
  66. package/dist/workers/agentPrompt.js.map +1 -1
  67. package/dist/workers/podman.js +30 -8
  68. package/dist/workers/podman.js.map +1 -1
  69. package/docs/V0.5.1.md +129 -0
  70. package/docs/V0.5.md +116 -0
  71. package/package.json +2 -2
  72. package/schemas/project.schema.json +27 -8
  73. package/skills/engineering-workflow/SKILL.md +9 -1
  74. package/templates/AGENTS.md +6 -0
  75. package/templates/project.yaml +70 -1
  76. package/templates/toolchain.yaml +8 -1
@@ -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 workspaceRoot = path.resolve(await deliveryWorkspacePath(controlRoot, config, contract.task.id) ?? controlRoot);
27
- const effectiveContract = workspaceRoot === controlRoot ? contract : await loadTaskContract(workspaceRoot, contract.task.id, config);
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, config, effectiveContract);
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, config, "harness.issue.drift-check", { taskId: effectiveContract.task.id, issue: effectiveContract.issue.number, repository: effectiveContract.issue.repository, ok: true, contentSha256: effectiveContract.issue.contentSha256 });
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(config, effectiveContract);
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, config);
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, config, effectiveContract);
53
+ await sealTask(controlRoot, effectiveConfig, effectiveContract);
48
54
  else {
49
- const seal = await verifyTaskSeal(workspaceRoot, effectiveContract, config.validation?.requireSeal ?? true);
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, config, effectiveContract, options?.profile);
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
- await refreshGraphIfConfigured(workspaceRoot, config);
58
- const beforeSnapshot = await snapshotGraph(workspaceRoot, config, effectiveContract.task.id, "before");
59
- if (!beforeSnapshot && config.codeIntelligence?.required)
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 executor = createWorkerExecutor(config, selection);
62
- const health = await executor.doctor(workspaceRoot, config, selection);
63
- if (!health.ok)
64
- throw new Error(`${executor.name} executor unavailable: ${health.message}`);
65
- let worker = await executor.start(workspaceRoot, config, effectiveContract, selection);
66
- let attempts = 0;
67
- let report = withWorkerExecutionCheck(await verifyAfterWorker(workspaceRoot, controlRoot, config, effectiveContract), worker);
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 ?? config.orchestration?.worker?.maxRepairAttempts ?? 2;
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, config, packet);
79
- await recordEvent(controlRoot, config, "harness.repair.start", { taskId: effectiveContract.task.id, attempt: attempts, failureType, recoveryAction, failures: packet.failures.length });
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
- const transport = selection.transport === "inherit" ? (config.orchestration?.provider ?? "none") : selection.transport;
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(config, selection);
97
- const recoveryHealth = await executor.doctor(workspaceRoot, config, selection);
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, config, effectiveContract, worker, packet, selection);
101
- report = withWorkerExecutionCheck(await verifyAfterWorker(workspaceRoot, controlRoot, config, effectiveContract), worker);
102
- await recordEvent(controlRoot, config, "harness.repair.finish", { taskId: effectiveContract.task.id, attempt: attempts, status: report.status, agent: selection?.logicalAgent });
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, config, effectiveContract) });
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, config, "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 });
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, config, effectiveContract);
170
+ deliverySummary = await finalizeAcceptedIssue(workspaceRoot, effectiveConfig, effectiveContract);
116
171
  if (deliverySummary.status !== "SKIPPED")
117
- await recordEvent(controlRoot, config, "harness.delivery.finalize", { taskId: effectiveContract.task.id, status: deliverySummary.status, commitSha: deliverySummary.commitSha, pullRequest: deliverySummary.pullRequest });
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, config, "harness.delivery.finalize", { taskId: effectiveContract.task.id, status: deliverySummary.status, humanRequired: deliverySummary.humanRequired, message: deliverySummary.message });
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
- worker.metrics = extractUsageMetrics(`${worker.stdout}\n${worker.stderr}`);
128
- const metrics = buildRunMetrics({ firstPassSuccess, repairCount: attempts, humanInterventions: await countHumanInterventions(controlRoot, config, effectiveContract.task.id, startedAt), durationMs: Date.now() - startedMs, usage: worker.metrics });
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, config.sdd?.runsDir ?? ".harness/runs");
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, config, "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, 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 });
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}`); }
@@ -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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"}
@@ -1,6 +1,7 @@
1
1
  export type CheckStatus = "PASS" | "FAIL" | "SKIP" | "WARN";
2
2
  export type TaskMode = "spec" | "quick";
3
3
  export type ReviewSeverity = "critical" | "high" | "medium" | "low" | "note";
4
+ export type TaskRisk = "low" | "medium" | "high";
4
5
  export type ValidatorAdapter = "command" | "gherkin" | "graphify" | "opengrep" | "trivy" | "playwright" | "openapi" | "pact" | "mutation" | "property" | string;
5
6
  export interface ValidationCommand {
6
7
  id: string;
@@ -49,6 +50,15 @@ export interface McpServerConfig {
49
50
  timeoutMs?: number;
50
51
  codemode?: boolean;
51
52
  }
53
+ export interface OrganizationPolicySource {
54
+ name: string;
55
+ path?: string;
56
+ url?: string;
57
+ sha256?: string;
58
+ required?: boolean;
59
+ publicKey?: string;
60
+ signature?: string;
61
+ }
52
62
  export interface HarnessProjectConfig {
53
63
  version: 1;
54
64
  project: {
@@ -61,6 +71,11 @@ export interface HarnessProjectConfig {
61
71
  required?: boolean;
62
72
  findingsDir?: string;
63
73
  };
74
+ controlPlane?: {
75
+ snapshotDir?: string;
76
+ include?: string[];
77
+ required?: boolean;
78
+ };
64
79
  workflow?: {
65
80
  quick?: {
66
81
  maxFiles?: number;
@@ -74,6 +89,14 @@ export interface HarnessProjectConfig {
74
89
  plannerAgent?: string;
75
90
  autoHandoff?: boolean;
76
91
  };
92
+ planning?: {
93
+ enabled?: boolean;
94
+ plannerAgent?: string;
95
+ worktreeIsolation?: boolean;
96
+ barrierValidation?: boolean;
97
+ maxWaveConcurrency?: number;
98
+ distributed?: boolean;
99
+ };
77
100
  reviews?: {
78
101
  enabled?: boolean;
79
102
  reviewQuick?: boolean;
@@ -113,6 +136,14 @@ export interface HarnessProjectConfig {
113
136
  timeoutSeconds?: number;
114
137
  titlePrefix?: string;
115
138
  };
139
+ interactive?: {
140
+ autoSetup?: boolean;
141
+ webUi?: boolean;
142
+ leadAgent?: string;
143
+ reuseSession?: boolean;
144
+ stateDir?: string;
145
+ title?: string;
146
+ };
116
147
  };
117
148
  toolchain?: {
118
149
  configPath?: string;
@@ -122,6 +153,15 @@ export interface HarnessProjectConfig {
122
153
  };
123
154
  mcp?: {
124
155
  servers?: Record<string, McpServerConfig>;
156
+ benchmark?: {
157
+ enabled?: boolean;
158
+ resultsDir?: string;
159
+ repetitions?: number;
160
+ };
161
+ packs?: Record<string, {
162
+ servers: string[];
163
+ enabled?: boolean;
164
+ }>;
125
165
  };
126
166
  delivery?: {
127
167
  stateDir?: string;
@@ -162,6 +202,34 @@ export interface HarnessProjectConfig {
162
202
  graphPath?: string;
163
203
  snapshotDir?: string;
164
204
  refreshCommand?: string;
205
+ scheduling?: {
206
+ useEdges?: boolean;
207
+ maxGraphHops?: number;
208
+ maxSharedNodes?: number;
209
+ centralityConflictThreshold?: number;
210
+ };
211
+ };
212
+ evidence?: {
213
+ enabled?: boolean;
214
+ outputDir?: string;
215
+ requireComplete?: boolean;
216
+ };
217
+ organization?: {
218
+ policyBundles?: {
219
+ cacheDir?: string;
220
+ required?: boolean;
221
+ sources?: OrganizationPolicySource[];
222
+ };
223
+ };
224
+ distributed?: {
225
+ enabled?: boolean;
226
+ provider?: "filesystem" | "http" | string;
227
+ queueDir?: string;
228
+ endpoint?: string;
229
+ tokenEnv?: string;
230
+ pollIntervalMs?: number;
231
+ leaseSeconds?: number;
232
+ workerId?: string;
165
233
  };
166
234
  sdd?: {
167
235
  specsDir?: string;
@@ -186,8 +254,20 @@ export interface HarnessProjectConfig {
186
254
  provider?: "podman" | "docker" | "none" | string;
187
255
  required?: boolean;
188
256
  image?: string;
257
+ imageDigest?: string;
189
258
  network?: boolean;
190
259
  extraArgs?: string[];
260
+ readOnlyRoot?: boolean;
261
+ ephemeralHome?: boolean;
262
+ noNewPrivileges?: boolean;
263
+ capDropAll?: boolean;
264
+ pidsLimit?: number;
265
+ memory?: string;
266
+ cpus?: number;
267
+ tmpfs?: string[];
268
+ forceForRisks?: TaskRisk[];
269
+ environmentAllowlist?: string[];
270
+ credentialEnvAllowlist?: string[];
191
271
  };
192
272
  tools?: string[];
193
273
  };
@@ -204,6 +284,8 @@ export interface HarnessProjectConfig {
204
284
  corpusDir?: string;
205
285
  resultsDir?: string;
206
286
  workspacesDir?: string;
287
+ defaultRuns?: number;
288
+ confidenceLevel?: number;
207
289
  };
208
290
  provenance?: {
209
291
  outputDir?: string;
@@ -266,7 +348,7 @@ export interface TaskContract {
266
348
  routing?: {
267
349
  intent?: string;
268
350
  domains?: string[];
269
- risk?: "low" | "medium" | "high";
351
+ risk?: TaskRisk;
270
352
  agent?: string;
271
353
  reviewers?: string[];
272
354
  profile?: string;
@@ -0,0 +1,11 @@
1
+ import http from "node:http";
2
+ import type { HarnessProjectConfig } from "../core/types.js";
3
+ import type { ClaimedJob, DistributedDelegationJob, DistributedDelegationResult } from "./types.js";
4
+ export declare function submitDistributedJob(root: string, config: HarnessProjectConfig, job: DistributedDelegationJob): Promise<void>;
5
+ export declare function claimDistributedJob(root: string, config: HarnessProjectConfig, workerId: string): Promise<ClaimedJob | undefined>;
6
+ export declare function completeDistributedJob(root: string, config: HarnessProjectConfig, leaseId: string, result: DistributedDelegationResult): Promise<void>;
7
+ export declare function waitForDistributedResult(root: string, config: HarnessProjectConfig, jobId: string, timeoutMs?: number): Promise<DistributedDelegationResult>;
8
+ export declare function serveDistributedQueue(root: string, config: HarnessProjectConfig, options: {
9
+ port: number;
10
+ host?: string;
11
+ }): Promise<http.Server>;