harnery 0.24.0 → 0.26.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/dist/commands/harness.d.ts +2 -1
- package/dist/commands/harness.d.ts.map +1 -1
- package/dist/commands/harness.js +113 -3
- package/dist/commands/supervisor.d.ts.map +1 -1
- package/dist/commands/supervisor.js +3 -13
- package/dist/commands/work.d.ts.map +1 -1
- package/dist/commands/work.js +2 -7
- package/dist/commands/workflow.d.ts.map +1 -1
- package/dist/commands/workflow.js +3 -13
- package/dist/core/harnesses/attest.d.ts +53 -0
- package/dist/core/harnesses/attest.d.ts.map +1 -0
- package/dist/core/harnesses/attest.js +120 -0
- package/dist/core/harnesses/attestation.d.ts +82 -0
- package/dist/core/harnesses/attestation.d.ts.map +1 -0
- package/dist/core/harnesses/attestation.js +171 -0
- package/dist/core/harnesses/bench.d.ts +26 -1
- package/dist/core/harnesses/bench.d.ts.map +1 -1
- package/dist/core/harnesses/bench.js +137 -32
- package/dist/core/harnesses/index.d.ts +6 -2
- package/dist/core/harnesses/index.d.ts.map +1 -1
- package/dist/core/harnesses/index.js +3 -1
- package/dist/core/harnesses/profiles.d.ts +6 -6
- package/dist/core/harnesses/profiles.js +3 -3
- package/dist/core/workflow/engine.js +3 -0
- package/dist/core/workflow/proof.d.ts +4 -1
- package/dist/core/workflow/proof.d.ts.map +1 -1
- package/dist/core/workflow/proof.js +3 -2
- package/dist/core/workflow/spawn-claude.d.ts.map +1 -1
- package/dist/core/workflow/spawn-claude.js +2 -1
- package/dist/core/workflow/spawn-codex.d.ts.map +1 -1
- package/dist/core/workflow/spawn-codex.js +2 -1
- package/dist/core/workflow/spawn-cursor.d.ts.map +1 -1
- package/dist/core/workflow/spawn-cursor.js +2 -1
- package/dist/core/workflow/spawn-failure.d.ts +18 -0
- package/dist/core/workflow/spawn-failure.d.ts.map +1 -0
- package/dist/core/workflow/spawn-failure.js +24 -0
- package/dist/core/workflow/types.d.ts +14 -0
- package/dist/core/workflow/types.d.ts.map +1 -1
- package/package.json +4 -2
- package/src/commands/harness.ts +135 -2
- package/src/commands/supervisor.ts +11 -15
- package/src/commands/work.ts +8 -8
- package/src/commands/workflow.ts +11 -15
- package/src/core/harnesses/attest.ts +181 -0
- package/src/core/harnesses/attestation.ts +249 -0
- package/src/core/harnesses/bench.ts +192 -32
- package/src/core/harnesses/index.ts +26 -1
- package/src/core/harnesses/profiles.ts +3 -3
- package/src/core/workflow/engine.ts +3 -0
- package/src/core/workflow/proof.ts +7 -1
- package/src/core/workflow/spawn-claude.ts +2 -1
- package/src/core/workflow/spawn-codex.ts +2 -1
- package/src/core/workflow/spawn-cursor.ts +2 -1
- package/src/core/workflow/spawn-failure.ts +28 -0
- package/src/core/workflow/types.ts +15 -0
|
@@ -119,7 +119,7 @@ export function buildWorkflowProof(input) {
|
|
|
119
119
|
session_id: clippedOptional(agent.session_id, MAX_REF_CHARS),
|
|
120
120
|
error: clippedOptional(agent.error, MAX_SUMMARY_CHARS),
|
|
121
121
|
}));
|
|
122
|
-
const harnesses = buildHarnessCoverage(agents, input.harnessEvidence);
|
|
122
|
+
const harnesses = buildHarnessCoverage(agents, input.harnessEvidence, input.harnessAttestations);
|
|
123
123
|
const unknowns = buildUnknowns(agents, harnesses, repository);
|
|
124
124
|
const journal = readFileSync(input.journalPath);
|
|
125
125
|
return {
|
|
@@ -328,7 +328,7 @@ function normalizeRepoSnapshot(snapshot) {
|
|
|
328
328
|
dirty_paths_truncated: snapshot.dirty_paths_truncated,
|
|
329
329
|
};
|
|
330
330
|
}
|
|
331
|
-
function buildHarnessCoverage(agents, claims) {
|
|
331
|
+
function buildHarnessCoverage(agents, claims, attestations) {
|
|
332
332
|
return [...new Set(agents.map((agent) => agent.harness))].map((harness) => {
|
|
333
333
|
const harnessAgents = agents.filter((agent) => agent.harness === harness);
|
|
334
334
|
return {
|
|
@@ -342,6 +342,7 @@ function buildHarnessCoverage(agents, claims) {
|
|
|
342
342
|
session_ids: harnessAgents.filter((agent) => agent.session_id).length,
|
|
343
343
|
costs: harnessAgents.filter((agent) => agent.cost_usd !== undefined).length,
|
|
344
344
|
},
|
|
345
|
+
...(attestations?.[harness] ? { attestation: attestations[harness] } : {}),
|
|
345
346
|
};
|
|
346
347
|
});
|
|
347
348
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-claude.d.ts","sourceRoot":"","sources":["../../../src/core/workflow/spawn-claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-claude.d.ts","sourceRoot":"","sources":["../../../src/core/workflow/spawn-claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIjF,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAYrE,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,CAc1E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,WAAW,CAgDxE;AAED,eAAO,MAAM,iBAAiB,EAAE,OAc/B,CAAC"}
|
|
@@ -21,6 +21,7 @@ import { exec } from "../../lib/exec.js";
|
|
|
21
21
|
import { validateHarnessEffort } from "../harnesses/profiles.js";
|
|
22
22
|
import { buildChildEnv } from "./child-env.js";
|
|
23
23
|
import { notFoundError } from "./harnesses.js";
|
|
24
|
+
import { vendorFailureText } from "./spawn-failure.js";
|
|
24
25
|
export function buildClaudeInvocation(req) {
|
|
25
26
|
validateHarnessEffort("claude-code", req.effort);
|
|
26
27
|
const argv = [
|
|
@@ -52,7 +53,7 @@ export function normalizeClaudeResult(raw) {
|
|
|
52
53
|
ok: false,
|
|
53
54
|
text: "",
|
|
54
55
|
durationMs: raw.durationMs,
|
|
55
|
-
error: `claude exited ${raw.exitCode}: ${(raw
|
|
56
|
+
error: `claude exited ${raw.exitCode}: ${vendorFailureText(raw)}`,
|
|
56
57
|
};
|
|
57
58
|
}
|
|
58
59
|
let envelope;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-codex.d.ts","sourceRoot":"","sources":["../../../src/core/workflow/spawn-codex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-codex.d.ts","sourceRoot":"","sources":["../../../src/core/workflow/spawn-codex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIjF,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAErE,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAgB9F;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,gBAAgB,GAAG,WAAW,CAiBvE;AAED,eAAO,MAAM,YAAY,EAAE,OA2B1B,CAAC"}
|
|
@@ -22,6 +22,7 @@ import { exec } from "../../lib/exec.js";
|
|
|
22
22
|
import { validateHarnessEffort } from "../harnesses/profiles.js";
|
|
23
23
|
import { buildChildEnv } from "./child-env.js";
|
|
24
24
|
import { notFoundError } from "./harnesses.js";
|
|
25
|
+
import { vendorFailureText } from "./spawn-failure.js";
|
|
25
26
|
export function buildCodexInvocation(req, resultFile) {
|
|
26
27
|
validateHarnessEffort("codex", req.effort);
|
|
27
28
|
if (!resultFile)
|
|
@@ -51,7 +52,7 @@ export function normalizeCodexResult(raw) {
|
|
|
51
52
|
ok: false,
|
|
52
53
|
text: "",
|
|
53
54
|
durationMs: raw.durationMs,
|
|
54
|
-
error: `codex exited ${raw.exitCode}: ${(raw
|
|
55
|
+
error: `codex exited ${raw.exitCode}: ${vendorFailureText(raw)}`,
|
|
55
56
|
};
|
|
56
57
|
}
|
|
57
58
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn-cursor.d.ts","sourceRoot":"","sources":["../../../src/core/workflow/spawn-cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"spawn-cursor.d.ts","sourceRoot":"","sources":["../../../src/core/workflow/spawn-cursor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIjF,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AASrE,gEAAgE;AAChE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAWA;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,YAAY,GAAG,iBAAiB,CAU1E;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,gBAAgB,GAAG,WAAW,CA6BxE;AAED,eAAO,MAAM,aAAa,EAAE,OAe3B,CAAC"}
|
|
@@ -22,6 +22,7 @@ import { exec } from "../../lib/exec.js";
|
|
|
22
22
|
import { validateHarnessEffort } from "../harnesses/profiles.js";
|
|
23
23
|
import { buildChildEnv } from "./child-env.js";
|
|
24
24
|
import { notFoundError } from "./harnesses.js";
|
|
25
|
+
import { vendorFailureText } from "./spawn-failure.js";
|
|
25
26
|
/** Exported for unit tests (no live binary to test against). */
|
|
26
27
|
export function parseCursorOutput(stdout) {
|
|
27
28
|
try {
|
|
@@ -57,7 +58,7 @@ export function normalizeCursorResult(raw) {
|
|
|
57
58
|
ok: false,
|
|
58
59
|
text: "",
|
|
59
60
|
durationMs: raw.durationMs,
|
|
60
|
-
error: `cursor-agent exited ${raw.exitCode}: ${(raw
|
|
61
|
+
error: `cursor-agent exited ${raw.exitCode}: ${vendorFailureText(raw)}`,
|
|
61
62
|
};
|
|
62
63
|
}
|
|
63
64
|
const parsed = parseCursorOutput(raw.stdout);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared failure-text extraction for the harness spawn adapters.
|
|
3
|
+
*
|
|
4
|
+
* A vendor CLI prints its banner, resolved config, and startup warnings first,
|
|
5
|
+
* and the reason it actually failed last. Every adapter used to keep the FIRST
|
|
6
|
+
* 500 characters of the transcript, which reliably preserved the banner and
|
|
7
|
+
* discarded the answer: a child that died with "your workspace is out of
|
|
8
|
+
* credits" reported a cosmetic startup warning instead.
|
|
9
|
+
*
|
|
10
|
+
* Two rules follow. Keep the tail. Include both streams, because which one
|
|
11
|
+
* carries the reason varies by vendor and by failure.
|
|
12
|
+
*/
|
|
13
|
+
/** Bounded failure text from a finished child, tail-preserving. */
|
|
14
|
+
export declare function vendorFailureText(raw: {
|
|
15
|
+
stdout?: string;
|
|
16
|
+
stderr?: string;
|
|
17
|
+
}, maxChars?: number): string;
|
|
18
|
+
//# sourceMappingURL=spawn-failure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spawn-failure.d.ts","sourceRoot":"","sources":["../../../src/core/workflow/spawn-failure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,mEAAmE;AACnE,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACzC,QAAQ,SAAoB,GAC3B,MAAM,CAQR"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared failure-text extraction for the harness spawn adapters.
|
|
3
|
+
*
|
|
4
|
+
* A vendor CLI prints its banner, resolved config, and startup warnings first,
|
|
5
|
+
* and the reason it actually failed last. Every adapter used to keep the FIRST
|
|
6
|
+
* 500 characters of the transcript, which reliably preserved the banner and
|
|
7
|
+
* discarded the answer: a child that died with "your workspace is out of
|
|
8
|
+
* credits" reported a cosmetic startup warning instead.
|
|
9
|
+
*
|
|
10
|
+
* Two rules follow. Keep the tail. Include both streams, because which one
|
|
11
|
+
* carries the reason varies by vendor and by failure.
|
|
12
|
+
*/
|
|
13
|
+
const DEFAULT_MAX_CHARS = 500;
|
|
14
|
+
/** Bounded failure text from a finished child, tail-preserving. */
|
|
15
|
+
export function vendorFailureText(raw, maxChars = DEFAULT_MAX_CHARS) {
|
|
16
|
+
const parts = [raw.stderr, raw.stdout]
|
|
17
|
+
.map((part) => part?.trim())
|
|
18
|
+
.filter((part) => !!part);
|
|
19
|
+
if (parts.length === 0)
|
|
20
|
+
return "";
|
|
21
|
+
// Both streams, stderr first, so a reason on the unexpected stream survives.
|
|
22
|
+
const combined = parts.join("\n");
|
|
23
|
+
return combined.length > maxChars ? `…${combined.slice(-maxChars)}` : combined;
|
|
24
|
+
}
|
|
@@ -100,6 +100,13 @@ export interface WorkflowRepoEvidence {
|
|
|
100
100
|
note?: string;
|
|
101
101
|
};
|
|
102
102
|
}
|
|
103
|
+
/** Bounded pointer to the live attestation backing a harness's claims
|
|
104
|
+
* (ADR 0038). Structural facts only: no prompt text, no host paths. */
|
|
105
|
+
export interface HarnessAttestationCitation {
|
|
106
|
+
binary_version: string;
|
|
107
|
+
observed_at: string;
|
|
108
|
+
record_digest: string;
|
|
109
|
+
}
|
|
103
110
|
export interface HarnessEvidenceCoverage {
|
|
104
111
|
harness: HarnessName;
|
|
105
112
|
tool_evidence: {
|
|
@@ -111,6 +118,10 @@ export interface HarnessEvidenceCoverage {
|
|
|
111
118
|
session_ids: number;
|
|
112
119
|
costs: number;
|
|
113
120
|
};
|
|
121
|
+
/** What backs this harness's capability claims (ADR 0038). Absent when the
|
|
122
|
+
* host recorded no live attestation, which is the common case and is not by
|
|
123
|
+
* itself a proof unknown. */
|
|
124
|
+
attestation?: HarnessAttestationCitation;
|
|
114
125
|
}
|
|
115
126
|
export interface WorkflowProofUnknown {
|
|
116
127
|
code: "tool_evidence_unavailable" | "harness_capability_unregistered" | "agent_cost_unreported" | "agent_session_unreported" | "repository_drift_incomplete";
|
|
@@ -374,6 +385,9 @@ export interface EngineOpts {
|
|
|
374
385
|
/** Capability claims used to state whether adapter-native tool evidence was
|
|
375
386
|
* available. Missing claims remain unknown. */
|
|
376
387
|
harnessEvidence?: Readonly<Record<HarnessName, HarnessEvidenceCapability | undefined>>;
|
|
388
|
+
/** Live attestations backing each harness's claims (ADR 0038). Read once by
|
|
389
|
+
* the host and injected, so the engine performs no capability lookups. */
|
|
390
|
+
harnessAttestations?: Readonly<Record<HarnessName, HarnessAttestationCitation | undefined>>;
|
|
377
391
|
/** Immutable host policy. Workflow scripts and model prompts cannot replace it. */
|
|
378
392
|
policy?: PolicySpec | NormalizedPolicy;
|
|
379
393
|
/** Host callback for ASK. Missing, invalid, throwing, or timed-out resolution denies. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/workflow/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/workflow/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "harnery",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.26.0",
|
|
4
4
|
"description": "Multi-agent coordination for AI coding agents - Claude Code, Cursor, and Codex.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ryan Kelly",
|
|
@@ -186,7 +186,9 @@
|
|
|
186
186
|
"smoke": "node scripts/smoke-test.mjs",
|
|
187
187
|
"docs:dev": "bun run --cwd docs dev",
|
|
188
188
|
"docs:build": "bun run --cwd docs build",
|
|
189
|
-
"brand:showcase": "node scripts/build-brand-showcase.mjs"
|
|
189
|
+
"brand:showcase": "node scripts/build-brand-showcase.mjs",
|
|
190
|
+
"verify:contracts": "bun run scripts/sync-verified-contracts.ts",
|
|
191
|
+
"verify:contracts:check": "bun run scripts/sync-verified-contracts.ts --check"
|
|
190
192
|
},
|
|
191
193
|
"dependencies": {
|
|
192
194
|
"@mozilla/readability": "^0.6.0",
|
package/src/commands/harness.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
2
|
import type { EmitContext } from "../commander.ts";
|
|
3
|
+
import { workflowSubscriptionOnly } from "../core/config.ts";
|
|
3
4
|
import {
|
|
4
5
|
type BenchResult,
|
|
5
6
|
createBuiltinHarnessRegistry,
|
|
7
|
+
type HarnessAttestationReport,
|
|
6
8
|
type HarnessBenchReport,
|
|
9
|
+
listAttestations,
|
|
10
|
+
runHarnessAttestation,
|
|
7
11
|
runHarnessBench,
|
|
8
12
|
} from "../core/harnesses/index.ts";
|
|
9
13
|
import type { HarnessProfile } from "../core/harnesses/types.ts";
|
|
@@ -16,6 +20,12 @@ interface BenchOpts extends FormatOpts {
|
|
|
16
20
|
requireInstalled?: boolean;
|
|
17
21
|
}
|
|
18
22
|
|
|
23
|
+
interface AttestOpts extends FormatOpts {
|
|
24
|
+
timeout?: string;
|
|
25
|
+
yes?: boolean;
|
|
26
|
+
subscriptionOnly?: boolean;
|
|
27
|
+
}
|
|
28
|
+
|
|
19
29
|
const registry = createBuiltinHarnessRegistry();
|
|
20
30
|
|
|
21
31
|
export function registerHarnessCommand(program: Command, emit: EmitContext): void {
|
|
@@ -79,6 +89,114 @@ export function registerHarnessCommand(program: Command, emit: EmitContext): voi
|
|
|
79
89
|
emit.setExitCode(1);
|
|
80
90
|
}
|
|
81
91
|
});
|
|
92
|
+
|
|
93
|
+
command
|
|
94
|
+
.command("attest [harnesses...]")
|
|
95
|
+
.description(
|
|
96
|
+
"Record what the installed vendor CLIs actually do. Runs one real model turn each; needs --yes.",
|
|
97
|
+
)
|
|
98
|
+
.option("--yes", "Confirm that this spends real vendor tokens")
|
|
99
|
+
.option(
|
|
100
|
+
"--subscription-only",
|
|
101
|
+
"Scrub API-key vars so the child uses its stored login (repo default via config.jsonc workflow.subscriptionOnly)",
|
|
102
|
+
)
|
|
103
|
+
.option("--timeout <ms>", "Per-harness probe timeout in milliseconds")
|
|
104
|
+
.option("--json", "Machine-readable attestation report")
|
|
105
|
+
.action(async (harnesses: string[], opts: AttestOpts) => {
|
|
106
|
+
if (!opts.yes) {
|
|
107
|
+
emit.error({
|
|
108
|
+
code: "harness_attest_unconfirmed",
|
|
109
|
+
message:
|
|
110
|
+
"harness attest runs one real model turn per harness and spends vendor tokens. Re-run with --yes.",
|
|
111
|
+
});
|
|
112
|
+
emit.setExitCode(1);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const timeoutMs = opts.timeout ? Number(opts.timeout) : undefined;
|
|
116
|
+
if (timeoutMs !== undefined && (!Number.isFinite(timeoutMs) || timeoutMs <= 0)) {
|
|
117
|
+
emit.error({
|
|
118
|
+
code: "harness_attest_bad_timeout",
|
|
119
|
+
message: "--timeout must be a positive number",
|
|
120
|
+
});
|
|
121
|
+
emit.setExitCode(1);
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
try {
|
|
125
|
+
const subscriptionOnly = opts.subscriptionOnly || workflowSubscriptionOnly();
|
|
126
|
+
const report = await runHarnessAttestation(registry, {
|
|
127
|
+
harnesses,
|
|
128
|
+
timeoutMs,
|
|
129
|
+
subscriptionOnly,
|
|
130
|
+
});
|
|
131
|
+
if (opts.json) {
|
|
132
|
+
emit.config({ format: "json" });
|
|
133
|
+
emit.data(report);
|
|
134
|
+
} else {
|
|
135
|
+
emit.text(renderAttestationReport(report));
|
|
136
|
+
}
|
|
137
|
+
// A sweep that recorded nothing at all is a failure; a partial sweep is
|
|
138
|
+
// reported honestly and still exits 0, because a host is not required
|
|
139
|
+
// to install every vendor CLI.
|
|
140
|
+
emit.setExitCode(report.recorded === 0 ? 1 : 0);
|
|
141
|
+
} catch (error) {
|
|
142
|
+
emit.error({ code: "harness_attest_failed", message: (error as Error).message });
|
|
143
|
+
emit.setExitCode(1);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
command
|
|
148
|
+
.command("attestations")
|
|
149
|
+
.description("Show the recorded live attestations without running any model turns.")
|
|
150
|
+
.option("--json", "Machine-readable attestation list")
|
|
151
|
+
.action((opts: FormatOpts) => {
|
|
152
|
+
try {
|
|
153
|
+
const records = listAttestations();
|
|
154
|
+
if (opts.json) {
|
|
155
|
+
emit.config({ format: "json" });
|
|
156
|
+
emit.data({ attestations: records });
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
if (records.length === 0) {
|
|
160
|
+
emit.text("No attestations recorded. Run `harness attest --yes` to create one.");
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
emit.text(
|
|
164
|
+
renderTable(
|
|
165
|
+
["HARNESS", "VERSION", "BILLING", "OBSERVED AT", "OBSERVATIONS"],
|
|
166
|
+
records.map((record) => [
|
|
167
|
+
record.harness,
|
|
168
|
+
record.binary_version,
|
|
169
|
+
record.subscription_only ? "subscription" : "any",
|
|
170
|
+
record.observed_at,
|
|
171
|
+
Object.entries(record.observations)
|
|
172
|
+
.map(([dimension, support]) => `${dimension}=${support}`)
|
|
173
|
+
.join(" "),
|
|
174
|
+
]),
|
|
175
|
+
),
|
|
176
|
+
);
|
|
177
|
+
} catch (error) {
|
|
178
|
+
emit.error({ code: "harness_attestations_failed", message: (error as Error).message });
|
|
179
|
+
emit.setExitCode(1);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export function renderAttestationReport(report: HarnessAttestationReport): string {
|
|
185
|
+
const rows = report.results.map((result) => [
|
|
186
|
+
result.harness,
|
|
187
|
+
result.outcome,
|
|
188
|
+
result.binaryVersion ?? "",
|
|
189
|
+
result.observations
|
|
190
|
+
? Object.entries(result.observations)
|
|
191
|
+
.map(([dimension, support]) => `${dimension}=${support}`)
|
|
192
|
+
.join(" ")
|
|
193
|
+
: result.note,
|
|
194
|
+
]);
|
|
195
|
+
const table = renderTable(["HARNESS", "OUTCOME", "VERSION", "OBSERVED"], rows);
|
|
196
|
+
const tail = report.incomplete
|
|
197
|
+
? "Some harnesses were not attested; their bench rows keep an adapter basis."
|
|
198
|
+
: "Every selected harness was attested.";
|
|
199
|
+
return `${table}\n\nrecorded: ${report.recorded}/${report.results.length}\n${tail}`;
|
|
82
200
|
}
|
|
83
201
|
|
|
84
202
|
export function renderProfileTable(profiles: readonly HarnessProfile[]): string {
|
|
@@ -120,13 +238,28 @@ export function renderBenchReport(report: HarnessBenchReport): string {
|
|
|
120
238
|
result.declared,
|
|
121
239
|
result.observed,
|
|
122
240
|
result.verdict,
|
|
241
|
+
result.basis,
|
|
123
242
|
]);
|
|
124
|
-
const table = renderTable(
|
|
243
|
+
const table = renderTable(
|
|
244
|
+
["HARNESS", "DIMENSION", "DECLARED", "OBSERVED", "VERDICT", "BASIS"],
|
|
245
|
+
rows,
|
|
246
|
+
);
|
|
125
247
|
const summary = Object.entries(report.summary)
|
|
126
248
|
.filter(([, count]) => count > 0)
|
|
127
249
|
.map(([verdict, count]) => `${verdict}=${count}`)
|
|
128
250
|
.join(", ");
|
|
129
|
-
|
|
251
|
+
const basis = Object.entries(report.basisSummary)
|
|
252
|
+
.filter(([, count]) => count > 0)
|
|
253
|
+
.map(([name, count]) => `${name}=${count}`)
|
|
254
|
+
.join(", ");
|
|
255
|
+
return [
|
|
256
|
+
table,
|
|
257
|
+
"",
|
|
258
|
+
`mode: ${report.mode} (no model calls)`,
|
|
259
|
+
summary,
|
|
260
|
+
`basis: ${basis}`,
|
|
261
|
+
"adapter = checked against Harnery's planner/normalizer/fixture, not the installed CLI",
|
|
262
|
+
].join("\n");
|
|
130
263
|
}
|
|
131
264
|
|
|
132
265
|
function renderTable(headers: string[], rows: string[][]): string {
|
|
@@ -3,7 +3,11 @@ import { dirname, isAbsolute, resolve } from "node:path";
|
|
|
3
3
|
import type { Command } from "commander";
|
|
4
4
|
import type { EmitContext } from "../commander.ts";
|
|
5
5
|
import { workflowSubscriptionOnly } from "../core/config.ts";
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
createBuiltinHarnessRegistry,
|
|
8
|
+
harnessProofInputs,
|
|
9
|
+
probeBinaryVersion,
|
|
10
|
+
} from "../core/harnesses/index.ts";
|
|
7
11
|
import { findCoordRoot } from "../core/hooks/resolve/coord-root.ts";
|
|
8
12
|
import type { PolicyIsolation } from "../core/policy/index.ts";
|
|
9
13
|
import { loadPolicyFile } from "../core/policy/index.ts";
|
|
@@ -470,13 +474,9 @@ function serviceEngine(
|
|
|
470
474
|
cwd: config.engine.cwd,
|
|
471
475
|
subscriptionOnly: config.engine.subscription_only,
|
|
472
476
|
allowApiBilling: config.engine.allow_api_billing,
|
|
473
|
-
|
|
474
|
-
registry
|
|
475
|
-
|
|
476
|
-
.map((adapter) => [
|
|
477
|
-
adapter.profile.id,
|
|
478
|
-
{ toolEvidence: adapter.profile.capabilities.toolEvidence },
|
|
479
|
-
]),
|
|
477
|
+
...harnessProofInputs(
|
|
478
|
+
registry.list().map((adapter) => adapter.profile),
|
|
479
|
+
{ versionProbe: probeBinaryVersion },
|
|
480
480
|
),
|
|
481
481
|
policy: config.engine.policy,
|
|
482
482
|
approvalMode: "park" as const,
|
|
@@ -566,13 +566,9 @@ function registerRunCommand(
|
|
|
566
566
|
subscriptionOnly:
|
|
567
567
|
opts.subscriptionOnly === true ? true : workflowSubscriptionOnly(coordRoot),
|
|
568
568
|
allowApiBilling: opts.allowApiBilling,
|
|
569
|
-
|
|
570
|
-
registry
|
|
571
|
-
|
|
572
|
-
.map((adapter) => [
|
|
573
|
-
adapter.profile.id,
|
|
574
|
-
{ toolEvidence: adapter.profile.capabilities.toolEvidence },
|
|
575
|
-
]),
|
|
569
|
+
...harnessProofInputs(
|
|
570
|
+
registry.list().map((adapter) => adapter.profile),
|
|
571
|
+
{ versionProbe: probeBinaryVersion },
|
|
576
572
|
),
|
|
577
573
|
policy: opts.policy ? loadPolicyFile(opts.policy) : undefined,
|
|
578
574
|
approvalMode: "park",
|
package/src/commands/work.ts
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import type { Command } from "commander";
|
|
2
2
|
import type { EmitContext } from "../commander.ts";
|
|
3
3
|
import { workflowSubscriptionOnly } from "../core/config.ts";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
createBuiltinHarnessRegistry,
|
|
6
|
+
harnessProofInputs,
|
|
7
|
+
probeBinaryVersion,
|
|
8
|
+
} from "../core/harnesses/index.ts";
|
|
5
9
|
import { findCoordRoot } from "../core/hooks/resolve/coord-root.ts";
|
|
6
10
|
import type { PolicyIsolation } from "../core/policy/index.ts";
|
|
7
11
|
import { loadPolicyFile } from "../core/policy/index.ts";
|
|
@@ -192,13 +196,9 @@ function registerRunCommand(
|
|
|
192
196
|
subscriptionOnly:
|
|
193
197
|
opts.subscriptionOnly === true ? true : workflowSubscriptionOnly(coordRoot),
|
|
194
198
|
allowApiBilling: opts.allowApiBilling,
|
|
195
|
-
|
|
196
|
-
registry
|
|
197
|
-
|
|
198
|
-
.map((adapter) => [
|
|
199
|
-
adapter.profile.id,
|
|
200
|
-
{ toolEvidence: adapter.profile.capabilities.toolEvidence },
|
|
201
|
-
]),
|
|
199
|
+
...harnessProofInputs(
|
|
200
|
+
registry.list().map((adapter) => adapter.profile),
|
|
201
|
+
{ versionProbe: probeBinaryVersion },
|
|
202
202
|
),
|
|
203
203
|
policy: opts.policy ? loadPolicyFile(opts.policy) : undefined,
|
|
204
204
|
approvalMode: "park",
|
package/src/commands/workflow.ts
CHANGED
|
@@ -3,7 +3,11 @@ import { join, resolve } from "node:path";
|
|
|
3
3
|
import type { Command } from "commander";
|
|
4
4
|
import type { EmitContext } from "../commander.ts";
|
|
5
5
|
import { resolveBinName, workflowSubscriptionOnly } from "../core/config.ts";
|
|
6
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
createBuiltinHarnessRegistry,
|
|
8
|
+
harnessProofInputs,
|
|
9
|
+
probeBinaryVersion,
|
|
10
|
+
} from "../core/harnesses/index.ts";
|
|
7
11
|
import { findCoordRoot } from "../core/hooks/resolve/coord-root.ts";
|
|
8
12
|
import type { PolicyIsolation } from "../core/policy/index.ts";
|
|
9
13
|
import { loadPolicyFile } from "../core/policy/index.ts";
|
|
@@ -178,13 +182,9 @@ export function registerWorkflowCommand(program: Command, emit: EmitContext): vo
|
|
|
178
182
|
maxAgents: opts.maxAgents ? Number.parseInt(opts.maxAgents, 10) : undefined,
|
|
179
183
|
concurrency: opts.concurrency ? Number.parseInt(opts.concurrency, 10) : undefined,
|
|
180
184
|
cwd: opts.cwd,
|
|
181
|
-
|
|
182
|
-
registry
|
|
183
|
-
|
|
184
|
-
.map((adapter) => [
|
|
185
|
-
adapter.profile.id,
|
|
186
|
-
{ toolEvidence: adapter.profile.capabilities.toolEvidence },
|
|
187
|
-
]),
|
|
185
|
+
...harnessProofInputs(
|
|
186
|
+
registry.list().map((adapter) => adapter.profile),
|
|
187
|
+
{ versionProbe: probeBinaryVersion },
|
|
188
188
|
),
|
|
189
189
|
policy: opts.policy ? loadPolicyFile(opts.policy) : undefined,
|
|
190
190
|
approvalMode: "park",
|
|
@@ -278,13 +278,9 @@ export function registerWorkflowCommand(program: Command, emit: EmitContext): vo
|
|
|
278
278
|
writableRoots: [binding.writable_root.configured],
|
|
279
279
|
}
|
|
280
280
|
: undefined,
|
|
281
|
-
|
|
282
|
-
registry
|
|
283
|
-
|
|
284
|
-
.map((adapter) => [
|
|
285
|
-
adapter.profile.id,
|
|
286
|
-
{ toolEvidence: adapter.profile.capabilities.toolEvidence },
|
|
287
|
-
]),
|
|
281
|
+
...harnessProofInputs(
|
|
282
|
+
registry.list().map((adapter) => adapter.profile),
|
|
283
|
+
{ versionProbe: probeBinaryVersion },
|
|
288
284
|
),
|
|
289
285
|
});
|
|
290
286
|
if (opts.json) {
|