zelari-code 2.13.0 → 2.14.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/cli/headless/policyGate.js +101 -0
- package/dist/cli/headless/policyGate.js.map +1 -0
- package/dist/cli/headless.js.map +1 -1
- package/dist/cli/kraken/completionProof.js +89 -41
- package/dist/cli/kraken/completionProof.js.map +1 -1
- package/dist/cli/kraken/completionProofAttestation.js +157 -0
- package/dist/cli/kraken/completionProofAttestation.js.map +1 -0
- package/dist/cli/kraken/completionProofPersist.js +219 -0
- package/dist/cli/kraken/completionProofPersist.js.map +1 -0
- package/dist/cli/kraken/completionProofProbe.js +135 -0
- package/dist/cli/kraken/completionProofProbe.js.map +1 -0
- package/dist/cli/kraken/contractCompiler.js +142 -0
- package/dist/cli/kraken/contractCompiler.js.map +1 -0
- package/dist/cli/kraken/delegationPolicy.js +40 -3
- package/dist/cli/kraken/delegationPolicy.js.map +1 -1
- package/dist/cli/kraken/executor.js +462 -9
- package/dist/cli/kraken/executor.js.map +1 -1
- package/dist/cli/kraken/fileOwnership.js +190 -0
- package/dist/cli/kraken/fileOwnership.js.map +1 -0
- package/dist/cli/kraken/modelReputation.js +208 -0
- package/dist/cli/kraken/modelReputation.js.map +1 -0
- package/dist/cli/kraken/nativeVerification.js +53 -11
- package/dist/cli/kraken/nativeVerification.js.map +1 -1
- package/dist/cli/kraken/planner.js +2 -0
- package/dist/cli/kraken/planner.js.map +1 -1
- package/dist/cli/kraken/reputationStore.js +139 -0
- package/dist/cli/kraken/reputationStore.js.map +1 -0
- package/dist/cli/kraken/semanticOwnership.js +184 -0
- package/dist/cli/kraken/semanticOwnership.js.map +1 -0
- package/dist/cli/kraken/spawnRoi.js +209 -0
- package/dist/cli/kraken/spawnRoi.js.map +1 -0
- package/dist/cli/kraken/transactional.js +104 -0
- package/dist/cli/kraken/transactional.js.map +1 -0
- package/dist/cli/kraken/verificationAdapters/dotnet.js +49 -0
- package/dist/cli/kraken/verificationAdapters/dotnet.js.map +1 -0
- package/dist/cli/kraken/verificationAdapters/go.js +36 -0
- package/dist/cli/kraken/verificationAdapters/go.js.map +1 -0
- package/dist/cli/kraken/verificationAdapters/index.js +47 -0
- package/dist/cli/kraken/verificationAdapters/index.js.map +1 -0
- package/dist/cli/kraken/verificationAdapters/java.js +102 -0
- package/dist/cli/kraken/verificationAdapters/java.js.map +1 -0
- package/dist/cli/kraken/verificationAdapters/node.js +90 -0
- package/dist/cli/kraken/verificationAdapters/node.js.map +1 -0
- package/dist/cli/kraken/verificationAdapters/python.js +86 -0
- package/dist/cli/kraken/verificationAdapters/python.js.map +1 -0
- package/dist/cli/kraken/verificationAdapters/rust.js +39 -0
- package/dist/cli/kraken/verificationAdapters/rust.js.map +1 -0
- package/dist/cli/kraken/verificationAdapters/types.js +2 -0
- package/dist/cli/kraken/verificationAdapters/types.js.map +1 -0
- package/dist/cli/kraken/verificationBridge.js +40 -3
- package/dist/cli/kraken/verificationBridge.js.map +1 -1
- package/dist/cli/kraken/verifierLifecycle.js +51 -36
- package/dist/cli/kraken/verifierLifecycle.js.map +1 -1
- package/dist/cli/kraken/verifierRouting.js +264 -0
- package/dist/cli/kraken/verifierRouting.js.map +1 -0
- package/dist/cli/kraken/worktreeScheduling.js +201 -0
- package/dist/cli/kraken/worktreeScheduling.js.map +1 -0
- package/dist/cli/main.bundled.js +3880 -889
- package/dist/cli/main.bundled.js.map +4 -4
- package/dist/cli/orchestration/facts.js +127 -0
- package/dist/cli/orchestration/facts.js.map +1 -0
- package/dist/cli/orchestration/policy.js +128 -75
- package/dist/cli/orchestration/policy.js.map +1 -1
- package/dist/cli/orchestration/signals.js +96 -0
- package/dist/cli/orchestration/signals.js.map +1 -0
- package/dist/cli/runHeadless.js +92 -19
- package/dist/cli/runHeadless.js.map +1 -1
- package/dist/cli/safety/policyEngine.js +159 -20
- package/dist/cli/safety/policyEngine.js.map +1 -1
- package/dist/cli/safety/policyLoadMode.js +59 -0
- package/dist/cli/safety/policyLoadMode.js.map +1 -0
- package/dist/cli/safety/resourceClaims.js +373 -0
- package/dist/cli/safety/resourceClaims.js.map +1 -0
- package/dist/cli/safety/sandboxPath.js +160 -17
- package/dist/cli/safety/sandboxPath.js.map +1 -1
- package/dist/cli/toolRegistry.js +98 -8
- package/dist/cli/toolRegistry.js.map +1 -1
- package/dist/cli/tools/execProcess.js +121 -0
- package/dist/cli/tools/execProcess.js.map +1 -0
- package/dist/cli/tools/krakenRadio.js +9 -0
- package/dist/cli/tools/krakenRadio.js.map +1 -1
- package/dist/cli/tools/taskTool.js +8 -3
- package/dist/cli/tools/taskTool.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* policyGate — P0.B pre-flight for headless/mission dispatch.
|
|
3
|
+
*
|
|
4
|
+
* When the resolved policy-load mode is strict (headless, CI=1, zelari
|
|
5
|
+
* missions; ZELARI_POLICY_LOAD_MODE wins), an existing but BROKEN policy
|
|
6
|
+
* file must not just log a warning and silently drop every rule: the run
|
|
7
|
+
* blocks BEFORE any provider call, tool registry build or agent turn with
|
|
8
|
+
*
|
|
9
|
+
* - exit code 2 (the map's "runtime error": POLICY_LOAD_EXIT_CODE — exit 4
|
|
10
|
+
* stays owned by the strict COMPLETION gate),
|
|
11
|
+
* - a machine-readable teardown: NDJSON `error` event + stderr line with
|
|
12
|
+
* reason `policy-load-failed`, code `policy_invalid`,
|
|
13
|
+
* - on-disk evidence in the session spine (the same log other BLOCKED
|
|
14
|
+
* outcomes land in), written via the same host helpers.
|
|
15
|
+
*
|
|
16
|
+
* Permissive mode never reaches the blocking branch: the probe still runs
|
|
17
|
+
* so warnings surface once on stderr, matching v1 behavior everywhere else.
|
|
18
|
+
*/
|
|
19
|
+
import { isAbsolute, resolve } from 'node:path';
|
|
20
|
+
import { randomUUID } from 'node:crypto';
|
|
21
|
+
import { isPolicyEngineDisabled, loadPolicySet, PolicyLoadError, } from '../safety/policyEngine.js';
|
|
22
|
+
import { POLICY_LOAD_BLOCK_REASON, POLICY_LOAD_EXIT_CODE } from '../safety/policyLoadMode.js';
|
|
23
|
+
import { emitEvent } from '../headless.js';
|
|
24
|
+
/**
|
|
25
|
+
* Load-strictness probe for the runner pre-flight. Throws only on
|
|
26
|
+
* unexpected loader bugs; PolicyLoadError is converted into a block.
|
|
27
|
+
*/
|
|
28
|
+
export function checkStrictPolicyLoad(root, opts) {
|
|
29
|
+
if (isPolicyEngineDisabled())
|
|
30
|
+
return { blocked: false, warnings: [] };
|
|
31
|
+
try {
|
|
32
|
+
const set = loadPolicySet(root, opts);
|
|
33
|
+
return { blocked: false, warnings: set.warnings };
|
|
34
|
+
}
|
|
35
|
+
catch (err) {
|
|
36
|
+
if (!(err instanceof PolicyLoadError))
|
|
37
|
+
throw err;
|
|
38
|
+
const file = isAbsolute(err.file) ? err.file : resolve(root, err.file);
|
|
39
|
+
return {
|
|
40
|
+
blocked: true,
|
|
41
|
+
warnings: [],
|
|
42
|
+
block: {
|
|
43
|
+
reason: POLICY_LOAD_BLOCK_REASON,
|
|
44
|
+
exitCode: POLICY_LOAD_EXIT_CODE,
|
|
45
|
+
code: err.code,
|
|
46
|
+
file,
|
|
47
|
+
...(err.message ? { detail: err.message } : {}),
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Human + machine teardown chatter: one stderr line (plain mode has no
|
|
54
|
+
* stdout JSON contract) and, in json mode, one fatal NDJSON error event
|
|
55
|
+
* carrying `code: "policy-load-failed"` — the event hosts already render.
|
|
56
|
+
*/
|
|
57
|
+
export function reportPolicyLoadBlocked(block, output) {
|
|
58
|
+
const where = `${block.file}${block.detail ? ` — ${block.detail}` : ''}`;
|
|
59
|
+
process.stderr.write(`[zelari-code --headless] ${block.reason}: ${where}\n`);
|
|
60
|
+
if (output === 'json') {
|
|
61
|
+
emitEvent({
|
|
62
|
+
type: 'error',
|
|
63
|
+
severity: 'fatal',
|
|
64
|
+
message: `${block.reason}: ${where}`,
|
|
65
|
+
code: block.reason,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* On-disk evidence: open (or resume) the session spine and record the BLOCK
|
|
71
|
+
* outcome in the same log other blocked outcomes use, then close it as an
|
|
72
|
+
* errored session. Missions additionally get their `mission.phase` marker,
|
|
73
|
+
* mirroring mission-strict-blocked. Best-effort by contract — a spine
|
|
74
|
+
* failure NEVER changes the exit path (degrade-and-stop like every host).
|
|
75
|
+
*/
|
|
76
|
+
export async function recordPolicyLoadBlockedOnSpine(block, opts = {}) {
|
|
77
|
+
try {
|
|
78
|
+
const { openHeadlessSpine } = await import('../headlessSpine.js');
|
|
79
|
+
const sessionId = opts.resumeSessionId ?? randomUUID();
|
|
80
|
+
const spine = await openHeadlessSpine({
|
|
81
|
+
sessionId,
|
|
82
|
+
...(opts.mode ? { mode: opts.mode } : {}),
|
|
83
|
+
...(opts.profile ? { profile: opts.profile } : {}),
|
|
84
|
+
workspace: process.cwd(),
|
|
85
|
+
});
|
|
86
|
+
if (opts.mode === 'zelari') {
|
|
87
|
+
spine.missionPhase('dispatch', block.reason);
|
|
88
|
+
}
|
|
89
|
+
spine.note(block.reason, {
|
|
90
|
+
code: block.code,
|
|
91
|
+
file: block.file,
|
|
92
|
+
exitCode: block.exitCode,
|
|
93
|
+
...(block.detail ? { detail: block.detail } : {}),
|
|
94
|
+
});
|
|
95
|
+
await spine.close('error');
|
|
96
|
+
}
|
|
97
|
+
catch {
|
|
98
|
+
/* spine never fails the run */
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=policyGate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"policyGate.js","sourceRoot":"","sources":["../../../src/cli/headless/policyGate.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/headless.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headless.js","sourceRoot":"","sources":["../../src/cli/headless.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"headless.js","sourceRoot":"","sources":["../../src/cli/headless.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* completionProof — harness-hardening P0.3 (× ADR-0023)
|
|
3
|
-
* proof-of-work artifact.
|
|
2
|
+
* completionProof — harness-hardening P0.3 (× ADR-0023), transaction-grade
|
|
3
|
+
* persistence (t20 §P1.B × PW §7): the completion proof-of-work artifact.
|
|
4
4
|
*
|
|
5
|
-
* Every strict build-gate evaluation
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* `
|
|
10
|
-
*
|
|
11
|
-
*
|
|
5
|
+
* Every strict build-gate evaluation leaves a durable witness on disk:
|
|
6
|
+
* `.zelari/completion-proof.md` (prose) + `.zelari/completion-proof.json`
|
|
7
|
+
* (machines). v2 contract (t20): the JSON WRAPS the spine
|
|
8
|
+
* `verification.run` payload under `evaluation` verbatim and seals an
|
|
9
|
+
* `attestation` block of sha256 digests (./completionProofAttestation.js);
|
|
10
|
+
* writes are atomic (tmp→fsync→rename, ./completionProofPersist.js); under
|
|
11
|
+
* `required` persistence a failed write BLOCKS an otherwise-PASSing gate
|
|
12
|
+
* (completionGate exit-4 family).
|
|
12
13
|
*
|
|
13
|
-
* Discipline:
|
|
14
|
-
* - rendering is deterministic (no clock access; `generatedAt` only when
|
|
15
|
-
* passed via meta);
|
|
16
|
-
* - writing NEVER fails the parent flow: `writeCompletionProof` swallows
|
|
17
|
-
* every error and reports it as `null`.
|
|
14
|
+
* Discipline: rendering is deterministic given its inputs; writing NEVER throws — failures surface in the returned outcome.
|
|
18
15
|
*/
|
|
19
|
-
import { mkdir
|
|
16
|
+
import { mkdir } from 'node:fs/promises';
|
|
20
17
|
import path from 'node:path';
|
|
21
18
|
import { strictGateEventPayload } from './verificationBridge.js';
|
|
19
|
+
import { PROOF_KIND, PROOF_VERSION, attestationSection, buildAttestedWrapper, } from './completionProofAttestation.js';
|
|
20
|
+
import { activeTaskContractSnapshot, defaultVerificationPlanSnapshot } from './completionProofProbe.js';
|
|
21
|
+
import { activeProofPersistenceMode, writeFileAtomic, } from './completionProofPersist.js';
|
|
22
22
|
/** Verdict line — mirrors strictGateEventPayload's fallback rule exactly. */
|
|
23
23
|
function verdictOf(evaluation) {
|
|
24
24
|
return evaluation.evaluation?.verdict ?? (evaluation.blocked ? 'BLOCKED' : 'PASS');
|
|
@@ -28,7 +28,7 @@ function cell(text, max = 200) {
|
|
|
28
28
|
const flat = text.replace(/\r?\n/g, ' ').replace(/\|/g, '\\|').trim();
|
|
29
29
|
return flat.length > max ? `${flat.slice(0, max - 1)}…` : flat;
|
|
30
30
|
}
|
|
31
|
-
/** One `tier · seq N · digest xxxxxxxx…`
|
|
31
|
+
/** One `tier · seq N · digest xxxxxxxx…` descriptor per evidence ref. */
|
|
32
32
|
function evidenceCell(result) {
|
|
33
33
|
if (!result || result.evidence.length === 0)
|
|
34
34
|
return '—';
|
|
@@ -45,9 +45,7 @@ function evidenceCell(result) {
|
|
|
45
45
|
}
|
|
46
46
|
/**
|
|
47
47
|
* Deterministic criterion rows: flat results first (selection contract then
|
|
48
|
-
* native pack order
|
|
49
|
-
* ids that produced no result at all (`missing`). Only native criteria expose
|
|
50
|
-
* their text on the evaluation; selection criteria render their stable id.
|
|
48
|
+
* native pack order), then unsatisfied ids with no result at all (`missing`).
|
|
51
49
|
*/
|
|
52
50
|
function proofRows(evaluation) {
|
|
53
51
|
const nativeById = new Map((evaluation.native?.criteria ?? []).map((c) => [c.id, c]));
|
|
@@ -76,13 +74,13 @@ function proofRows(evaluation) {
|
|
|
76
74
|
}
|
|
77
75
|
return [...rows.values()];
|
|
78
76
|
}
|
|
79
|
-
function renderMarkdown(evaluation, meta) {
|
|
77
|
+
function renderMarkdown(evaluation, meta, attestationLines) {
|
|
80
78
|
const lines = [
|
|
81
79
|
'# Completion Proof',
|
|
82
80
|
'',
|
|
83
81
|
'Strict build-gate proof-of-work (ADR-0023). The machine-readable twin of',
|
|
84
|
-
'this document — `completion-proof.json` —
|
|
85
|
-
'payload sent to the session spine.',
|
|
82
|
+
'this document — `completion-proof.json` — wraps the exact',
|
|
83
|
+
'`verification.run` payload sent to the session spine.',
|
|
86
84
|
'',
|
|
87
85
|
`- **Verdict**: **${verdictOf(evaluation)}**`,
|
|
88
86
|
`- **Strict gate**: ${evaluation.strict ? 'on' : 'off'}`,
|
|
@@ -136,41 +134,91 @@ function renderMarkdown(evaluation, meta) {
|
|
|
136
134
|
lines.push(`- **Fallback**: ${review.fallback}`);
|
|
137
135
|
if (review.rationale)
|
|
138
136
|
lines.push(`- **Rationale**: ${cell(review.rationale, 400)}`);
|
|
137
|
+
// t21 (PW §10): dual critical-risk reviewers surface their verdicts and
|
|
138
|
+
// any disagreement right here — `verifier-divergence` is EVIDENCE in the
|
|
139
|
+
// proof, not a silent pick between conflicting reviews.
|
|
140
|
+
const divergence = evaluation.reviewDivergence;
|
|
141
|
+
if (divergence) {
|
|
142
|
+
const perReviewer = divergence.reviews
|
|
143
|
+
.map((r) => `${r.provider ?? '?'}/${r.model ?? '?'}=${r.verdict}`)
|
|
144
|
+
.join(' vs ');
|
|
145
|
+
lines.push(`- **Dual review (${divergence.risk})**: ${cell(perReviewer)}`);
|
|
146
|
+
lines.push(`- **Divergence** (\`verifier-divergence\` evidence item): ${divergence.divergent ? 'yes' : 'no'} — pessimistic merge → ${divergence.mergedVerdict}`);
|
|
147
|
+
}
|
|
139
148
|
}
|
|
149
|
+
if (attestationLines.length > 0)
|
|
150
|
+
lines.push('', ...attestationLines);
|
|
140
151
|
lines.push('', '---', '', 'Machine record: `completion-proof.json` (same directory).');
|
|
141
152
|
return `${lines.join('\n')}\n`;
|
|
142
153
|
}
|
|
143
154
|
/**
|
|
144
|
-
* Render the proof pair
|
|
145
|
-
* spine
|
|
146
|
-
*
|
|
147
|
-
* `meta.generatedAt` is provided.
|
|
155
|
+
* Render the proof pair. Without a sealed attestation json stays the bare
|
|
156
|
+
* spine payload (legacy v1); with one BOTH views come from the v2 wrapper
|
|
157
|
+
* (json) and gain `## Attestation` (markdown). Deterministic.
|
|
148
158
|
*/
|
|
149
|
-
export function renderCompletionProof(evaluation, meta = {}) {
|
|
159
|
+
export function renderCompletionProof(evaluation, meta = {}, attestation) {
|
|
160
|
+
const payload = strictGateEventPayload(evaluation);
|
|
161
|
+
if (!attestation) {
|
|
162
|
+
return { markdown: renderMarkdown(evaluation, meta, []), json: JSON.stringify(payload, null, 2) };
|
|
163
|
+
}
|
|
164
|
+
const wrapper = {
|
|
165
|
+
kind: PROOF_KIND,
|
|
166
|
+
version: PROOF_VERSION,
|
|
167
|
+
evaluation: payload,
|
|
168
|
+
attestation,
|
|
169
|
+
};
|
|
150
170
|
return {
|
|
151
|
-
markdown: renderMarkdown(evaluation, meta),
|
|
152
|
-
json: JSON.stringify(
|
|
171
|
+
markdown: renderMarkdown(evaluation, meta, attestationSection(attestation)),
|
|
172
|
+
json: JSON.stringify(wrapper, null, 2),
|
|
153
173
|
};
|
|
154
174
|
}
|
|
155
175
|
/**
|
|
156
|
-
* Persist `.zelari/completion-proof.{md,json}` under `baseDir
|
|
157
|
-
*
|
|
158
|
-
*
|
|
159
|
-
*
|
|
176
|
+
* Persist `.zelari/completion-proof.{md,json}` under `baseDir`. Atomic per
|
|
177
|
+
* file; NEVER throws — failures land in the outcome (`paths: null`), and
|
|
178
|
+
* under `required` persistence also as `requiredBlockReason` for hosts to
|
|
179
|
+
* flip the gate via enforceRequiredProofPersistence.
|
|
160
180
|
*/
|
|
161
|
-
export async function
|
|
181
|
+
export async function writeCompletionProofDetailed(evaluation, options = {}) {
|
|
182
|
+
const mode = options.persistenceMode ?? activeProofPersistenceMode();
|
|
162
183
|
try {
|
|
163
|
-
const
|
|
184
|
+
const baseDir = options.baseDir ?? process.cwd();
|
|
185
|
+
const dir = path.join(baseDir, '.zelari');
|
|
164
186
|
await mkdir(dir, { recursive: true });
|
|
165
|
-
const
|
|
187
|
+
const requested = options.attestation ?? {};
|
|
188
|
+
const plan = requested.skipProbes || requested.verificationPlan !== undefined
|
|
189
|
+
? undefined
|
|
190
|
+
: await defaultVerificationPlanSnapshot(baseDir);
|
|
191
|
+
const wrapper = await buildAttestedWrapper(strictGateEventPayload(evaluation), {
|
|
192
|
+
skipProbes: requested.skipProbes,
|
|
193
|
+
// t22 (PW §8): default to the CURRENT live contract from the
|
|
194
|
+
// contract-scope seam — a steer that bumps the version changes this
|
|
195
|
+
// digest on the next proof write. Explicit host value wins;
|
|
196
|
+
// skipProbes keeps artifacts hermetic (no seam read).
|
|
197
|
+
taskContract: requested.skipProbes
|
|
198
|
+
? requested.taskContract
|
|
199
|
+
: (requested.taskContract ?? activeTaskContractSnapshot()),
|
|
200
|
+
git: requested.git,
|
|
201
|
+
verificationPlan: requested.verificationPlan ?? plan,
|
|
202
|
+
}, process.env, baseDir);
|
|
203
|
+
const rendered = renderCompletionProof(evaluation, options.meta ?? {}, wrapper.attestation);
|
|
166
204
|
const markdownPath = path.join(dir, 'completion-proof.md');
|
|
167
205
|
const jsonPath = path.join(dir, 'completion-proof.json');
|
|
168
|
-
await
|
|
169
|
-
await
|
|
170
|
-
return { markdownPath, jsonPath };
|
|
206
|
+
await writeFileAtomic(markdownPath, rendered.markdown);
|
|
207
|
+
await writeFileAtomic(jsonPath, rendered.json);
|
|
208
|
+
return { paths: { markdownPath, jsonPath }, mode, requiredBlockReason: null };
|
|
171
209
|
}
|
|
172
|
-
catch {
|
|
173
|
-
|
|
210
|
+
catch (err) {
|
|
211
|
+
// Failure reasons must be actionable — under `required` they close runs.
|
|
212
|
+
const reason = err instanceof Error ? `${err.name}: ${err.message}` : String(err);
|
|
213
|
+
return {
|
|
214
|
+
paths: null,
|
|
215
|
+
mode,
|
|
216
|
+
requiredBlockReason: mode === 'required' ? reason : null,
|
|
217
|
+
};
|
|
174
218
|
}
|
|
175
219
|
}
|
|
220
|
+
/** Legacy best-effort entry point (unchanged v1 contract): paths or null. */
|
|
221
|
+
export async function writeCompletionProof(evaluation, options = {}) {
|
|
222
|
+
return (await writeCompletionProofDetailed(evaluation, options)).paths;
|
|
223
|
+
}
|
|
176
224
|
//# sourceMappingURL=completionProof.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completionProof.js","sourceRoot":"","sources":["../../../src/cli/kraken/completionProof.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"completionProof.js","sourceRoot":"","sources":["../../../src/cli/kraken/completionProof.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* completionProofAttestation — t20 (§P1.B × PW §7): deterministic sealing
|
|
3
|
+
* core for the completion proof artifact.
|
|
4
|
+
*
|
|
5
|
+
* The v2 proof JSON wraps the EXISTING spine `verification.run` payload
|
|
6
|
+
* (`strictGateEventPayload`) under `evaluation` — verbatim, never
|
|
7
|
+
* rewritten — and attaches an `attestation` block of sha256 seals:
|
|
8
|
+
*
|
|
9
|
+
* { kind:'completion-proof', version:2,
|
|
10
|
+
* evaluation: <spine payload, untouched>,
|
|
11
|
+
* attestation: {
|
|
12
|
+
* commitSha?, // raw HEAD sha (not a digest), optional
|
|
13
|
+
* diffDigest?, // sha256(`git diff` [+ --cached])
|
|
14
|
+
* taskContractDigest?, // sha256(canonicalJson(contract))
|
|
15
|
+
* verificationPlanDigest?, // sha256(canonicalJson({packId,commands}))
|
|
16
|
+
* harnessManifestDigest, // sha256(canonicalJson(manifest))
|
|
17
|
+
* proofDigest } } // self-seal over everything above minus itself
|
|
18
|
+
*
|
|
19
|
+
* Digests hash CANONICAL JSON (recursive key sort), so two structurally
|
|
20
|
+
* equal trees hash identically regardless of on-disk property order.
|
|
21
|
+
* Repo-dependent inputs (git, adapters, harness identity) resolve lazily in
|
|
22
|
+
* ./completionProofProbe.js; offline RE-validation lives in
|
|
23
|
+
* ./completionProofPersist.js (validateCompletionProof). Zero deps beyond
|
|
24
|
+
* node:crypto.
|
|
25
|
+
*/
|
|
26
|
+
/** Artifact identity — checked first by every consumer. */
|
|
27
|
+
export const PROOF_KIND = 'completion-proof';
|
|
28
|
+
/** v2 introduces the wrapper + attestation block (t20). */
|
|
29
|
+
export const PROOF_VERSION = 2;
|
|
30
|
+
import { createHash } from 'node:crypto';
|
|
31
|
+
/** sha256 as lowercase hex. */
|
|
32
|
+
export function sha256Hex(data) {
|
|
33
|
+
return createHash('sha256').update(data, 'utf8').digest('hex');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Deterministic JSON: object keys sorted recursively, arrays ordered,
|
|
37
|
+
* `undefined` values dropped, non-finite numbers honestly `null`. This is
|
|
38
|
+
* the ONE serialization admitted to any digest here — never used for
|
|
39
|
+
* writing files (the writer preserves payload key order byte-for-byte).
|
|
40
|
+
*/
|
|
41
|
+
export function canonicalJson(value) {
|
|
42
|
+
return JSON.stringify(canonicalValue(value));
|
|
43
|
+
}
|
|
44
|
+
function canonicalValue(value) {
|
|
45
|
+
if (Array.isArray(value))
|
|
46
|
+
return value.map(canonicalValue);
|
|
47
|
+
if (value && typeof value === 'object') {
|
|
48
|
+
const out = {};
|
|
49
|
+
for (const k of Object.keys(value).sort()) {
|
|
50
|
+
const v = value[k];
|
|
51
|
+
if (v !== undefined)
|
|
52
|
+
out[k] = canonicalValue(v);
|
|
53
|
+
}
|
|
54
|
+
return out;
|
|
55
|
+
}
|
|
56
|
+
if (typeof value === 'number')
|
|
57
|
+
return Number.isFinite(value) ? value : null;
|
|
58
|
+
return value ?? null;
|
|
59
|
+
}
|
|
60
|
+
const HEX64 = /^[0-9a-f]{64}$/;
|
|
61
|
+
/** A well-formed lowercase sha256 hex digest. */
|
|
62
|
+
export function isSha256Hex(value) {
|
|
63
|
+
return typeof value === 'string' && HEX64.test(value);
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Self-integrity seal: canonical sha256 over kind+version+evaluation plus
|
|
67
|
+
* every OTHER attestation field (proofDigest itself always excluded, so a
|
|
68
|
+
* fresh proof may pass its placeholder through). Order-insensitive.
|
|
69
|
+
*/
|
|
70
|
+
export function computeProofDigest(wrapper) {
|
|
71
|
+
const { kind, version, evaluation, attestation } = wrapper;
|
|
72
|
+
const { proofDigest: _seal, ...sealedFields } = attestation;
|
|
73
|
+
void _seal;
|
|
74
|
+
return sha256Hex(canonicalJson({ kind, version, evaluation: evaluation ?? null, attestation: sealedFields }));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Build the full attestation for one evaluation: hashes every provided /
|
|
78
|
+
* probed input, then seals the record with `proofDigest`. Probing (git +
|
|
79
|
+
* verification-plan resolution) happens ONCE here when not supplied and
|
|
80
|
+
* not skipped; failures just omit OPTIONAL fields (manifest + self-seal
|
|
81
|
+
* are unconditional). Never throws.
|
|
82
|
+
*/
|
|
83
|
+
export async function buildAttestedWrapper(evaluation, options = {}, env = process.env, cwd = process.cwd()) {
|
|
84
|
+
const probe = await import('./completionProofProbe.js');
|
|
85
|
+
const attestation = {
|
|
86
|
+
harnessManifestDigest: sha256Hex(canonicalJson(await probe.harnessManifest(env))),
|
|
87
|
+
proofDigest: '', // placeholder — sealed below
|
|
88
|
+
};
|
|
89
|
+
let gitInputs = options.git ?? {};
|
|
90
|
+
if (!options.git && !options.skipProbes) {
|
|
91
|
+
try {
|
|
92
|
+
gitInputs = await probe.gatherGitAttestation(cwd);
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
gitInputs = {};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
if (gitInputs.commitSha)
|
|
99
|
+
attestation.commitSha = gitInputs.commitSha;
|
|
100
|
+
if (!options.skipProbes && typeof gitInputs.diffText === 'string') {
|
|
101
|
+
attestation.diffDigest = sha256Hex(gitInputs.diffText);
|
|
102
|
+
}
|
|
103
|
+
if (options.taskContract && typeof options.taskContract === 'object') {
|
|
104
|
+
attestation.taskContractDigest = sha256Hex(canonicalJson(options.taskContract));
|
|
105
|
+
}
|
|
106
|
+
if (options.verificationPlan && typeof options.verificationPlan === 'object') {
|
|
107
|
+
attestation.verificationPlanDigest = sha256Hex(canonicalJson(options.verificationPlan));
|
|
108
|
+
}
|
|
109
|
+
const wrapper = {
|
|
110
|
+
kind: PROOF_KIND,
|
|
111
|
+
version: PROOF_VERSION,
|
|
112
|
+
evaluation,
|
|
113
|
+
attestation,
|
|
114
|
+
};
|
|
115
|
+
attestation.proofDigest = computeProofDigest(wrapper);
|
|
116
|
+
return wrapper;
|
|
117
|
+
}
|
|
118
|
+
// ── Markdown view (derived from the SAME sealed object) ──────────────────
|
|
119
|
+
/** Short form used in the markdown table: first 12 hex chars + ellipsis. */
|
|
120
|
+
function short(v) {
|
|
121
|
+
return `${v.slice(0, 12)}…`;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* The `## Attestation` markdown body: a short-form digest table plus a
|
|
125
|
+
* fenced block with every full value. Derived from the SAME sealed
|
|
126
|
+
* attestation that seals the JSON wrapper — both views come from one
|
|
127
|
+
* evaluation, so they can never disagree.
|
|
128
|
+
*/
|
|
129
|
+
export function attestationSection(attestation) {
|
|
130
|
+
const lines = [
|
|
131
|
+
'## Attestation',
|
|
132
|
+
'',
|
|
133
|
+
"Deterministic sha256 seals over this evaluation's inputs (proof v2).",
|
|
134
|
+
'`proofDigest` covers everything below except itself — re-verify offline',
|
|
135
|
+
'with `validateCompletionProof`.',
|
|
136
|
+
'',
|
|
137
|
+
'| Field | Digest |',
|
|
138
|
+
'| --- | --- |',
|
|
139
|
+
];
|
|
140
|
+
if (attestation.commitSha)
|
|
141
|
+
lines.push(`| commitSha | \`${short(attestation.commitSha)}\` |`);
|
|
142
|
+
if (attestation.diffDigest)
|
|
143
|
+
lines.push(`| diffDigest | \`${short(attestation.diffDigest)}\` |`);
|
|
144
|
+
if (attestation.taskContractDigest)
|
|
145
|
+
lines.push(`| taskContractDigest | \`${short(attestation.taskContractDigest)}\` |`);
|
|
146
|
+
if (attestation.verificationPlanDigest) {
|
|
147
|
+
lines.push(`| verificationPlanDigest | \`${short(attestation.verificationPlanDigest)}\` |`);
|
|
148
|
+
}
|
|
149
|
+
lines.push(`| harnessManifestDigest | \`${short(attestation.harnessManifestDigest)}\` |`);
|
|
150
|
+
lines.push(`| proofDigest | \`${short(attestation.proofDigest)}\` |`);
|
|
151
|
+
lines.push('', 'Full values (sha256 hex):', '', '```text');
|
|
152
|
+
for (const [key, value] of Object.entries(attestation))
|
|
153
|
+
lines.push(`${key.padEnd(24)} ${value}`);
|
|
154
|
+
lines.push('```');
|
|
155
|
+
return lines;
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=completionProofAttestation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completionProofAttestation.js","sourceRoot":"","sources":["../../../src/cli/kraken/completionProofAttestation.ts"],"names":[],"mappings":"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"}
|