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.
Files changed (84) hide show
  1. package/dist/cli/headless/policyGate.js +101 -0
  2. package/dist/cli/headless/policyGate.js.map +1 -0
  3. package/dist/cli/headless.js.map +1 -1
  4. package/dist/cli/kraken/completionProof.js +89 -41
  5. package/dist/cli/kraken/completionProof.js.map +1 -1
  6. package/dist/cli/kraken/completionProofAttestation.js +157 -0
  7. package/dist/cli/kraken/completionProofAttestation.js.map +1 -0
  8. package/dist/cli/kraken/completionProofPersist.js +219 -0
  9. package/dist/cli/kraken/completionProofPersist.js.map +1 -0
  10. package/dist/cli/kraken/completionProofProbe.js +135 -0
  11. package/dist/cli/kraken/completionProofProbe.js.map +1 -0
  12. package/dist/cli/kraken/contractCompiler.js +142 -0
  13. package/dist/cli/kraken/contractCompiler.js.map +1 -0
  14. package/dist/cli/kraken/delegationPolicy.js +40 -3
  15. package/dist/cli/kraken/delegationPolicy.js.map +1 -1
  16. package/dist/cli/kraken/executor.js +462 -9
  17. package/dist/cli/kraken/executor.js.map +1 -1
  18. package/dist/cli/kraken/fileOwnership.js +190 -0
  19. package/dist/cli/kraken/fileOwnership.js.map +1 -0
  20. package/dist/cli/kraken/modelReputation.js +208 -0
  21. package/dist/cli/kraken/modelReputation.js.map +1 -0
  22. package/dist/cli/kraken/nativeVerification.js +53 -11
  23. package/dist/cli/kraken/nativeVerification.js.map +1 -1
  24. package/dist/cli/kraken/planner.js +2 -0
  25. package/dist/cli/kraken/planner.js.map +1 -1
  26. package/dist/cli/kraken/reputationStore.js +139 -0
  27. package/dist/cli/kraken/reputationStore.js.map +1 -0
  28. package/dist/cli/kraken/semanticOwnership.js +184 -0
  29. package/dist/cli/kraken/semanticOwnership.js.map +1 -0
  30. package/dist/cli/kraken/spawnRoi.js +209 -0
  31. package/dist/cli/kraken/spawnRoi.js.map +1 -0
  32. package/dist/cli/kraken/transactional.js +104 -0
  33. package/dist/cli/kraken/transactional.js.map +1 -0
  34. package/dist/cli/kraken/verificationAdapters/dotnet.js +49 -0
  35. package/dist/cli/kraken/verificationAdapters/dotnet.js.map +1 -0
  36. package/dist/cli/kraken/verificationAdapters/go.js +36 -0
  37. package/dist/cli/kraken/verificationAdapters/go.js.map +1 -0
  38. package/dist/cli/kraken/verificationAdapters/index.js +47 -0
  39. package/dist/cli/kraken/verificationAdapters/index.js.map +1 -0
  40. package/dist/cli/kraken/verificationAdapters/java.js +102 -0
  41. package/dist/cli/kraken/verificationAdapters/java.js.map +1 -0
  42. package/dist/cli/kraken/verificationAdapters/node.js +90 -0
  43. package/dist/cli/kraken/verificationAdapters/node.js.map +1 -0
  44. package/dist/cli/kraken/verificationAdapters/python.js +86 -0
  45. package/dist/cli/kraken/verificationAdapters/python.js.map +1 -0
  46. package/dist/cli/kraken/verificationAdapters/rust.js +39 -0
  47. package/dist/cli/kraken/verificationAdapters/rust.js.map +1 -0
  48. package/dist/cli/kraken/verificationAdapters/types.js +2 -0
  49. package/dist/cli/kraken/verificationAdapters/types.js.map +1 -0
  50. package/dist/cli/kraken/verificationBridge.js +40 -3
  51. package/dist/cli/kraken/verificationBridge.js.map +1 -1
  52. package/dist/cli/kraken/verifierLifecycle.js +51 -36
  53. package/dist/cli/kraken/verifierLifecycle.js.map +1 -1
  54. package/dist/cli/kraken/verifierRouting.js +264 -0
  55. package/dist/cli/kraken/verifierRouting.js.map +1 -0
  56. package/dist/cli/kraken/worktreeScheduling.js +201 -0
  57. package/dist/cli/kraken/worktreeScheduling.js.map +1 -0
  58. package/dist/cli/main.bundled.js +3880 -889
  59. package/dist/cli/main.bundled.js.map +4 -4
  60. package/dist/cli/orchestration/facts.js +127 -0
  61. package/dist/cli/orchestration/facts.js.map +1 -0
  62. package/dist/cli/orchestration/policy.js +128 -75
  63. package/dist/cli/orchestration/policy.js.map +1 -1
  64. package/dist/cli/orchestration/signals.js +96 -0
  65. package/dist/cli/orchestration/signals.js.map +1 -0
  66. package/dist/cli/runHeadless.js +92 -19
  67. package/dist/cli/runHeadless.js.map +1 -1
  68. package/dist/cli/safety/policyEngine.js +159 -20
  69. package/dist/cli/safety/policyEngine.js.map +1 -1
  70. package/dist/cli/safety/policyLoadMode.js +59 -0
  71. package/dist/cli/safety/policyLoadMode.js.map +1 -0
  72. package/dist/cli/safety/resourceClaims.js +373 -0
  73. package/dist/cli/safety/resourceClaims.js.map +1 -0
  74. package/dist/cli/safety/sandboxPath.js +160 -17
  75. package/dist/cli/safety/sandboxPath.js.map +1 -1
  76. package/dist/cli/toolRegistry.js +98 -8
  77. package/dist/cli/toolRegistry.js.map +1 -1
  78. package/dist/cli/tools/execProcess.js +121 -0
  79. package/dist/cli/tools/execProcess.js.map +1 -0
  80. package/dist/cli/tools/krakenRadio.js +9 -0
  81. package/dist/cli/tools/krakenRadio.js.map +1 -1
  82. package/dist/cli/tools/taskTool.js +8 -3
  83. package/dist/cli/tools/taskTool.js.map +1 -1
  84. 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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"}
@@ -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): the completion
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 (kraken BUILD turn, post-repair
6
- * re-evaluation, mission close, TUI agent_end) leaves a durable witness on
7
- * disk: `.zelari/completion-proof.md` for humans and hosts that read prose,
8
- * `.zelari/completion-proof.json` for machines. The JSON body IS the spine
9
- * `verification.run` payload (`strictGateEventPayload`) same source of
10
- * truth, zero duplication so the artifact can never disagree with the
11
- * session log.
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, writeFile } from 'node:fs/promises';
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…` evidence descriptor per ref. */
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 the order they joined the evaluation), then unsatisfied
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` — is the exact `verification.run`',
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 for a strict build-gate evaluation. `json` is the
145
- * spine `verification.run` payload verbatim; `markdown` is the human- and
146
- * host-facing view. Deterministic: no clock or randomness unless
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(strictGateEventPayload(evaluation), null, 2),
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` (default
157
- * `process.cwd()`), creating the directory. NEVER throws: any failure is
158
- * swallowed and reported as `null` a proof write must not break the
159
- * parent run (harness-hardening P0.3).
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 writeCompletionProof(evaluation, options = {}) {
181
+ export async function writeCompletionProofDetailed(evaluation, options = {}) {
182
+ const mode = options.persistenceMode ?? activeProofPersistenceMode();
162
183
  try {
163
- const dir = path.join(options.baseDir ?? process.cwd(), '.zelari');
184
+ const baseDir = options.baseDir ?? process.cwd();
185
+ const dir = path.join(baseDir, '.zelari');
164
186
  await mkdir(dir, { recursive: true });
165
- const { markdown, json } = renderCompletionProof(evaluation, options.meta);
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 writeFile(markdownPath, markdown, 'utf8');
169
- await writeFile(jsonPath, json, 'utf8');
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
- return null; // proof writing is best-effort by contract
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":"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"}
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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"}