@dzhechkov/harness-core 0.5.4 → 0.6.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.
@@ -0,0 +1,275 @@
1
+ /**
2
+ * Amendment traceability — the deterministic half of the Step-8 amendment gate (ADR-001).
3
+ *
4
+ * The gate used to be a paragraph of prompt text asking the QE agent to confirm that every `AM-N`
5
+ * row names a real test. That is layer 4 on the cost-of-detection ladder, and the recalled lesson at
6
+ * reward 1.00 says what happens next: a safety property that lives only in a prompt disappears with
7
+ * the next prompt. `features/qe-scoped-review/08_qe_report.md` recorded the outcome — five ids named,
8
+ * none existing, and the plan writing `## Amendments: None`.
9
+ *
10
+ * Everything here is PURE: text in, verdicts out, file access through an injected reader (NFR-1).
11
+ * The CLI owns I/O and the exit code; this module owns the grammar and the rules.
12
+ *
13
+ * NOT PROVEN HERE: that a resolved test is non-vacuous. `dz discrimination-check` owns "would this
14
+ * test still pass with the protection deleted" (non-goal NG-1, acid case A8). A checker that implied
15
+ * it proved vacuity would be the same lie in a new place.
16
+ */
17
+ /**
18
+ * Template placeholders that reach shipped reports. A stub read as an ordinary unresolvable id lets
19
+ * the author believe they merely mistyped a name, so it earns its own verdict (acid case A1).
20
+ */
21
+ const PLACEHOLDER_IDS = new Set(['test_name', 'test-name', '<test>', '<test_name>', 'tbd', 'todo', 'name']);
22
+ /**
23
+ * Below this many normalised characters an id is too short to match anything meaningfully: the
24
+ * substring rule ADR-002 accepts would fire on unrelated prose. Guards the degenerate case the ADR
25
+ * names as its known false-positive risk.
26
+ */
27
+ export const MIN_MATCHABLE_ID_LENGTH = 8;
28
+ /** Case- and separator-folded form. Authors write ids in prose (`a_b_c`); test titles are sentences. */
29
+ /**
30
+ * Every `it()` / `test()` / `describe()` title in a test file. Empty when none parse.
31
+ *
32
+ * Comments are stripped FIRST. A commented-out `it('deny admin writes')` is not a test, and counting
33
+ * it would leave open the very forgery the title basis exists to close — the cross-family reviewer's
34
+ * two-comment-line attack in a slightly better costume. Table forms (`test.each([…])('…')`) carry an
35
+ * argument list between the modifier and the title, so the pattern allows one.
36
+ */
37
+ export function extractTestTitles(body) {
38
+ const code = body.replace(/\/\*[\s\S]*?\*\//g, ' ').replace(/(^|[^:])\/\/[^\n]*/g, '$1');
39
+ const out = [];
40
+ const re = /\b(?:it|test|describe)(?:\.\w+)*(?:\s*\([^()]{0,200}\))?\s*(?:`[^`]*`)?\s*\(\s*(['"`])([\s\S]{1,300}?)\1/g;
41
+ for (let m = re.exec(code); m !== null; m = re.exec(code))
42
+ if (m[2])
43
+ out.push(m[2]);
44
+ return out;
45
+ }
46
+ export function normalizeTestId(s) {
47
+ return s.toLowerCase().replace(/[^a-z0-9]+/g, '');
48
+ }
49
+ /**
50
+ * Row starts, in BOTH shapes the corpus actually contains: a bullet (`- **AM-1 (…):**`) and a table
51
+ * cell (`| **AM-40** |`). A format LEGEND — the literal `AM-N` with an `N` that is not a digit, as in
52
+ * `features/ha-consilium/03.5_ideation_report.md` — is deliberately NOT a row: counting a legend as
53
+ * an amendment would open this feature by falsely accusing a feature that did nothing wrong.
54
+ */
55
+ const ROW_START = /^(?:[-*]\s+\*{0,2}AM-(\d+)|\|\s*\*{0,2}AM-(\d+))/gm;
56
+ /** The `## Amendments` section body, or null when the document has none (acid case A5). */
57
+ export function amendmentSection(md) {
58
+ const m = /^ {0,3}#{2,4}\s+Amendments\b[^\n]*\n/m.exec(md);
59
+ if (!m)
60
+ return null;
61
+ const start = m.index + m[0].length;
62
+ const rest = md.slice(start);
63
+ const next = /^ {0,3}#{2,4}\s+\S/m.exec(rest);
64
+ return next ? rest.slice(0, next.index) : rest;
65
+ }
66
+ /** `## Amendments` present but recording nothing to check — distinct from the section being absent. */
67
+ export function planSaysNoAmendments(planMd) {
68
+ const sec = amendmentSection(planMd);
69
+ if (sec === null)
70
+ return false;
71
+ return /^\s*(none|n\/a|нет)\b/i.test(sec.trim());
72
+ }
73
+ export function parseAmendments(md) {
74
+ const section = amendmentSection(md);
75
+ if (section === null)
76
+ return [];
77
+ const starts = [];
78
+ ROW_START.lastIndex = 0;
79
+ for (let m = ROW_START.exec(section); m !== null; m = ROW_START.exec(section)) {
80
+ starts.push({ index: m.index, num: (m[1] ?? m[2]) });
81
+ }
82
+ const rows = [];
83
+ for (let i = 0; i < starts.length; i++) {
84
+ const s = starts[i];
85
+ const end = i + 1 < starts.length ? starts[i + 1].index : section.length;
86
+ const raw = section.slice(s.index, end);
87
+ rows.push({ id: `AM-${s.num}`, testIds: extractTestIds(raw), file: extractFile(raw), raw });
88
+ }
89
+ return rows;
90
+ }
91
+ /** `→ test \`a\`` and the two-id shape `→ tests \`a\` and \`b\`` — both are in the corpus. */
92
+ function extractTestIds(raw) {
93
+ const out = [];
94
+ const re = /→\s*tests?\s+`([^`]+)`(?:\s*(?:and|и)\s*`([^`]+)`)?/g;
95
+ for (let m = re.exec(raw); m !== null; m = re.exec(raw)) {
96
+ if (m[1])
97
+ out.push(m[1].trim());
98
+ if (m[2])
99
+ out.push(m[2].trim());
100
+ }
101
+ return out;
102
+ }
103
+ /**
104
+ * The `in \`<path>\`` half, which in real reports frequently opens the line AFTER the id. A pattern
105
+ * that cannot cross a newline finds almost nothing here — measured while writing this: three
106
+ * successive shell-written extractors returned 108, 111 and 13 rows over the identical corpus.
107
+ */
108
+ function extractFile(raw) {
109
+ const m = /→\s*tests?\s+`[^`]+`(?:\s*(?:and|и)\s*`[^`]+`)?[\s\S]{0,40}?\bin\s+`([^`]+)`/.exec(raw);
110
+ return m && m[1] ? m[1].trim() : null;
111
+ }
112
+ export function resolveAmendments(rows, opts) {
113
+ const out = [];
114
+ for (const row of rows) {
115
+ if (row.testIds.length === 0) {
116
+ out.push({
117
+ id: row.id,
118
+ testId: null,
119
+ file: row.file,
120
+ verdict: 'unnamed',
121
+ detail: 'the row carries no `→ test` token — an amendment with no pointer is not a passing amendment',
122
+ });
123
+ continue;
124
+ }
125
+ for (const testId of row.testIds) {
126
+ out.push(resolveOne(row, testId, opts.readFile));
127
+ }
128
+ }
129
+ return out;
130
+ }
131
+ function resolveOne(row, testId, readFile) {
132
+ const base = { id: row.id, testId, file: row.file };
133
+ if (PLACEHOLDER_IDS.has(testId.trim().toLowerCase())) {
134
+ return { ...base, verdict: 'placeholder', detail: `\`${testId}\` is a template placeholder, not a test name` };
135
+ }
136
+ if (row.file === null) {
137
+ return { ...base, verdict: 'no-file-named', detail: 'the row names a test id but no file to find it in' };
138
+ }
139
+ const body = readFile(row.file);
140
+ if (body === null) {
141
+ return { ...base, verdict: 'file-missing', detail: `\`${row.file}\` does not exist or cannot be read` };
142
+ }
143
+ const needle = normalizeTestId(testId);
144
+ if (needle.length < MIN_MATCHABLE_ID_LENGTH) {
145
+ return {
146
+ ...base,
147
+ verdict: 'name-absent-in-file',
148
+ detail: `\`${testId}\` normalises to ${needle.length} characters — below the ${MIN_MATCHABLE_ID_LENGTH}-character floor, so a match would prove nothing`,
149
+ };
150
+ }
151
+ // An existing FILE never stands in for an existing TEST (ADR-002) — and neither does an existing
152
+ // COMMENT. Matching the whole file body is forgeable with two comment lines whose letters happen to
153
+ // spell the id, so the basis is the file's TEST TITLES. Falling back to the body when none parse is
154
+ // stated in the detail rather than done quietly: a silent fallback restores the hole it closes.
155
+ const titles = extractTestTitles(body);
156
+ const basis = titles.length > 0 ? titles.map(normalizeTestId).join('\n') : normalizeTestId(body);
157
+ const basisNote = titles.length > 0 ? `${titles.length} test title(s)` : 'the whole file body — NO test titles parsed, so this match is weaker';
158
+ if (!basis.includes(needle)) {
159
+ return {
160
+ ...base,
161
+ verdict: 'name-absent-in-file',
162
+ detail: `\`${row.file}\` exists but no test in it is named \`${testId}\` (searched ${basisNote})`,
163
+ };
164
+ }
165
+ return { ...base, verdict: 'resolved', detail: `found in \`${row.file}\` (searched ${basisNote})` };
166
+ }
167
+ const ZERO_COUNTS = {
168
+ resolved: 0,
169
+ placeholder: 0,
170
+ unnamed: 0,
171
+ 'no-file-named': 0,
172
+ 'file-missing': 0,
173
+ 'name-absent-in-file': 0,
174
+ };
175
+ export function decideAmendmentOutcome(input) {
176
+ const counts = { ...ZERO_COUNTS };
177
+ for (const r of input.resolutions)
178
+ counts[r.verdict]++;
179
+ const reasons = [];
180
+ // Inputs we could not read are never a verdict about the feature (acid case A7).
181
+ if (input.readError) {
182
+ return { outcome: 'not-established', exit: 3, reasons: [`inputs unreadable: ${input.readError}`], counts };
183
+ }
184
+ // Absence is a skip with a stated reason, never a pass and never a silent zero (acid case A5).
185
+ if (!input.sectionPresent) {
186
+ return {
187
+ outcome: 'skip',
188
+ exit: 0,
189
+ reasons: ['no `## Amendments` section — nothing to check (this is an absence, not a pass)'],
190
+ counts,
191
+ };
192
+ }
193
+ // The whole class this feature removes: a check that silently checked nothing (AM-1, acid case A7).
194
+ if (input.rows.length === 0) {
195
+ return {
196
+ outcome: 'not-established',
197
+ exit: 3,
198
+ reasons: [
199
+ 'the `## Amendments` section is present but ZERO rows parsed — the grammar matched nothing, which is not the same as nothing being wrong',
200
+ ],
201
+ counts,
202
+ };
203
+ }
204
+ // Ideation carries rows while the plan records "None" — this is HIGH-2 itself (acid case A6).
205
+ // Discovered while closing HIGH-2: the pointers belong in the PLAN. Step 6's own instruction is
206
+ // "carry AM-N into 06_implementation_plan.md verbatim", and the ideation report is a historical
207
+ // artifact — editing its rows to match tests that were named later would be rewriting the record
208
+ // rather than closing the trail. So the plan's rows are authoritative when present, and the rule
209
+ // that keeps that honest is coverage: an ideation amendment the plan never mentions is a DROPPED
210
+ // amendment, which is the renegotiating-away failure in a quieter form.
211
+ for (const gap of input.missingFromPlan ?? []) {
212
+ reasons.push(gap.kind === 'dropped'
213
+ ? `${gap.id} is an amendment in 03.5_ideation_report.md that 06_implementation_plan.md never carries — an amendment dropped in planning is one nobody can audit`
214
+ : `${gap.id} appears in both documents but the plan describes a DIFFERENT change — "carry verbatim" means the subject survives; only the test pointer may be renamed`);
215
+ }
216
+ if (input.planSaysNone) {
217
+ reasons.push(`the ideation report carries ${input.rows.length} amendment row(s) while 06_implementation_plan.md records \`## Amendments: None\` — the amendments were renegotiated away, and an amendment nobody can resolve is one nobody can audit`);
218
+ }
219
+ for (const r of input.resolutions) {
220
+ if (r.verdict !== 'resolved')
221
+ reasons.push(`${r.id} → ${r.verdict}: ${r.detail}`);
222
+ }
223
+ return { outcome: reasons.length > 0 ? 'fail' : 'pass', exit: reasons.length > 0 ? 1 : 0, reasons, counts };
224
+ }
225
+ /** The one line every caller reads last, in the K2 gate's own shape so the two read alike. */
226
+ export function amendmentVerdictLine(d) {
227
+ const label = d.outcome === 'not-established' ? 'NOT-ESTABLISHED' : d.outcome.toUpperCase();
228
+ const head = `amendment traceability: ${label}`;
229
+ const tail = d.outcome === 'pass'
230
+ ? `${d.counts.resolved} row(s) resolved`
231
+ : (d.reasons[0] ?? 'no reason recorded');
232
+ return `${head} — ${tail}`;
233
+ }
234
+ /** Printed on every run: this checker does NOT prove a resolved test discriminates (NG-1, A8). */
235
+ export const AMENDMENT_VACUITY_NOTE = 'note: this checks that each amendment RESOLVES to a real test, not that the test is non-vacuous — `dz discrimination-check` owns vacuity.';
236
+ /**
237
+ * The amendment's own text with the `→ test …` pointer clause and markdown furniture removed — what
238
+ * "carry AM-N into the plan verbatim" is actually about. The POINTER may legitimately change (tests
239
+ * are named later than ideation guesses); the SUBJECT may not.
240
+ */
241
+ export function amendmentSubject(raw) {
242
+ const withoutPointer = raw.split(/→\s*tests?\s/)[0] ?? '';
243
+ // Strip ONLY the row's furniture: bullet/table marks, the bold id, an optional `(source)` tag and
244
+ // a colon. An earlier version consumed up to 80 characters after the id, which ate the SUBJECT
245
+ // itself whenever a row carried no `(source):` tag — the checker then compared two truncations
246
+ // and called honest rows a mismatch.
247
+ const stripped = withoutPointer.replace(/^[\s|*\-]*\**AM-\d+\**\s*(?:\([^)]{0,80}\))?\s*:?\s*/, '');
248
+ return normalizeTestId(stripped);
249
+ }
250
+ /**
251
+ * Ideation amendments the plan fails to carry: either absent outright, or present under the same id
252
+ * with a DIFFERENT subject. Cross-family review (Codex gpt-5.6-sol, 2026-08-21) found the second
253
+ * case: comparing ids alone let a plan swap "deny unauthenticated deletes" for "render footer" under
254
+ * the same `AM-1` and still pass.
255
+ */
256
+ export function amendmentsMissingFromPlan(ideationRows, planRows) {
257
+ const byId = new Map(planRows.map((r) => [r.id, r]));
258
+ const gaps = [];
259
+ for (const row of ideationRows) {
260
+ const planRow = byId.get(row.id);
261
+ if (planRow === undefined) {
262
+ gaps.push({ id: row.id, kind: 'dropped' });
263
+ continue;
264
+ }
265
+ const want = amendmentSubject(row.raw);
266
+ const got = amendmentSubject(planRow.raw);
267
+ // Containment either way: a plan may append a note ("closes HIGH-2"), and ideation may be the
268
+ // longer prose. What it may not do is describe a different change.
269
+ if (want.length >= MIN_MATCHABLE_ID_LENGTH && !got.includes(want) && !want.includes(got)) {
270
+ gaps.push({ id: row.id, kind: 'subject-changed' });
271
+ }
272
+ }
273
+ return gaps;
274
+ }
275
+ //# sourceMappingURL=amendment-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"amendment-trace.js","sourceRoot":"","sources":["../src/amendment-trace.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,19 @@ export declare const CHECKPOINT_MAX_RESULT_CHARS = 12000;
57
57
  * price of the change, not an accident.
58
58
  */
59
59
  export declare const CKPT_SCHEMA_VERSION = "fa-ckpt-3";
60
+ /**
61
+ * Router-stage hash token. Step 0's CONTRACT changed on 2026-08-21 — it must now WRITE
62
+ * `00_complexity_assessment.md` with an acid table — and a contract change that leaves the hash
63
+ * alone lets a pre-change router entry resume: the resume gate only asks whether the artifact is
64
+ * PRESENT, and one of the 66 features that already had a (tableless) file satisfies it. Step 0 then
65
+ * never re-runs, the acid table is never written, and C4 goes on skipping — the exact defect this
66
+ * change exists to close, resurrected through the resume path.
67
+ *
68
+ * Scoped like `LANDING_HASH_TOKEN` (003-10) rather than bumping CKPT_SCHEMA_VERSION: only the router
69
+ * stage re-runs once, while design/plan/code/qe checkpoints stay valid. A global bump would re-spend
70
+ * every in-flight stage to fix one.
71
+ */
72
+ export declare const ROUTER_CONTRACT_TOKEN = "router-writes-00-v1";
60
73
  /** FNV-1a 32-bit over UTF-16 code units, hex-encoded (one pass; building block for the 64-bit form). */
61
74
  export declare function fnv1a(str: string): string;
62
75
  /** 64 bits from two independent FNV-1a passes (plain + salted). A single 32-bit hash admits
@@ -351,4 +364,42 @@ export declare function parseArtifactProbe(opts: {
351
364
  sentinel: string;
352
365
  required: readonly string[];
353
366
  }): Set<string> | null;
367
+ /** Why a checkpoint write was refused, or `ok` when it may proceed. */
368
+ export type CheckpointWriteVerdict = {
369
+ readonly ok: true;
370
+ readonly line: string;
371
+ readonly witnessed: readonly string[];
372
+ } | {
373
+ readonly ok: false;
374
+ readonly reason: string;
375
+ };
376
+ /**
377
+ * Decide whether a stage may be recorded — the WITNESS half of `dz feature-adr checkpoint`.
378
+ *
379
+ * Why this exists (2026-08-21). The workflow script runs sandboxed with no filesystem, so it
380
+ * delegated checkpoint writes to a subagent by handing it a FINISHED JSON line and saying "append
381
+ * this". The subagent was a courier: it verified nothing. Read from outside, that shape is one party
382
+ * instructing another to declare a verification gate complete — which is what a safety classifier saw,
383
+ * blocking NINE such writes in one run (router, four design substages, plan, code, qe, and the cost
384
+ * ledger). MEASURED: `.fa-state/checkpoints.jsonl` was never created, while every stage had in fact
385
+ * run and left its artifact on disk. So resume was silently dead and the run still reported success.
386
+ *
387
+ * The classifier's premise was wrong for those writes, but its instinct was not: nothing in the old
388
+ * mechanism could tell a real completion from a fabricated one. A stage whose artifact does not exist
389
+ * could be recorded as complete, and yesterday's cross-family reviewer flagged exactly that for the
390
+ * `fleet` stage. So the fix is not a better-worded prompt — it is to stop hand-writing state at all.
391
+ * The subagent now RUNS A COMMAND; this function is the check that command performs first.
392
+ *
393
+ * @param artifacts repo-relative paths the stage must have produced. EMPTY IS REFUSED: a stage that
394
+ * claims nothing verifiable has nothing to witness, and recording it would restore the very
395
+ * hole this replaces.
396
+ * @param present the subset of `artifacts` the caller MEASURED on disk (never what it planned).
397
+ */
398
+ export declare function decideCheckpointWrite(opts: {
399
+ stage: string;
400
+ inputHash: string;
401
+ result: unknown;
402
+ artifacts: readonly string[];
403
+ present: readonly string[];
404
+ }): CheckpointWriteVerdict;
354
405
  //# sourceMappingURL=feature-adr-checkpoints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-adr-checkpoints.d.ts","sourceRoot":"","sources":["../src/feature-adr-checkpoints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-adr-checkpoints.d.ts","sourceRoot":"","sources":["../src/feature-adr-checkpoints.ts"],"names":[],"mappings":"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"}
@@ -36,7 +36,10 @@ export const CHECKPOINT_STAGES = ['router', 'design', 'plan', 'code', 'qe', 'fle
36
36
  * an M+ design must probe its ADR/ideation/architecture files too, not just requirements
37
37
  * (Codex QE #2: a one-file probe accepted a materially incomplete design). */
38
38
  export const STAGE_ARTIFACTS = {
39
- router: null,
39
+ // Since 2026-08-21 Step 0 WRITES this, so the router stage has something to be witnessed by. It was
40
+ // `null` — a stage that promises nothing verifiable — which is precisely how the tier came to be
41
+ // recorded nowhere while a run was alive, and how C4 lost its input without anyone noticing.
42
+ router: '00_complexity_assessment.md',
40
43
  design: '01_requirements.md',
41
44
  plan: '06_implementation_plan.md',
42
45
  code: '07_code_changes/change_manifest.md',
@@ -57,6 +60,19 @@ export const CHECKPOINT_MAX_RESULT_CHARS = 12_000;
57
60
  * price of the change, not an accident.
58
61
  */
59
62
  export const CKPT_SCHEMA_VERSION = 'fa-ckpt-3';
63
+ /**
64
+ * Router-stage hash token. Step 0's CONTRACT changed on 2026-08-21 — it must now WRITE
65
+ * `00_complexity_assessment.md` with an acid table — and a contract change that leaves the hash
66
+ * alone lets a pre-change router entry resume: the resume gate only asks whether the artifact is
67
+ * PRESENT, and one of the 66 features that already had a (tableless) file satisfies it. Step 0 then
68
+ * never re-runs, the acid table is never written, and C4 goes on skipping — the exact defect this
69
+ * change exists to close, resurrected through the resume path.
70
+ *
71
+ * Scoped like `LANDING_HASH_TOKEN` (003-10) rather than bumping CKPT_SCHEMA_VERSION: only the router
72
+ * stage re-runs once, while design/plan/code/qe checkpoints stay valid. A global bump would re-spend
73
+ * every in-flight stage to fix one.
74
+ */
75
+ export const ROUTER_CONTRACT_TOKEN = 'router-writes-00-v1';
60
76
  /** FNV-1a 32-bit over UTF-16 code units, hex-encoded (one pass; building block for the 64-bit form). */
61
77
  export function fnv1a(str) {
62
78
  let h = 0x811c9dc5;
@@ -525,4 +541,50 @@ export function parseArtifactProbe(opts) {
525
541
  return null;
526
542
  return found;
527
543
  }
544
+ /**
545
+ * Decide whether a stage may be recorded — the WITNESS half of `dz feature-adr checkpoint`.
546
+ *
547
+ * Why this exists (2026-08-21). The workflow script runs sandboxed with no filesystem, so it
548
+ * delegated checkpoint writes to a subagent by handing it a FINISHED JSON line and saying "append
549
+ * this". The subagent was a courier: it verified nothing. Read from outside, that shape is one party
550
+ * instructing another to declare a verification gate complete — which is what a safety classifier saw,
551
+ * blocking NINE such writes in one run (router, four design substages, plan, code, qe, and the cost
552
+ * ledger). MEASURED: `.fa-state/checkpoints.jsonl` was never created, while every stage had in fact
553
+ * run and left its artifact on disk. So resume was silently dead and the run still reported success.
554
+ *
555
+ * The classifier's premise was wrong for those writes, but its instinct was not: nothing in the old
556
+ * mechanism could tell a real completion from a fabricated one. A stage whose artifact does not exist
557
+ * could be recorded as complete, and yesterday's cross-family reviewer flagged exactly that for the
558
+ * `fleet` stage. So the fix is not a better-worded prompt — it is to stop hand-writing state at all.
559
+ * The subagent now RUNS A COMMAND; this function is the check that command performs first.
560
+ *
561
+ * @param artifacts repo-relative paths the stage must have produced. EMPTY IS REFUSED: a stage that
562
+ * claims nothing verifiable has nothing to witness, and recording it would restore the very
563
+ * hole this replaces.
564
+ * @param present the subset of `artifacts` the caller MEASURED on disk (never what it planned).
565
+ */
566
+ export function decideCheckpointWrite(opts) {
567
+ const stage = String(opts.stage ?? '').trim();
568
+ if (stage === '')
569
+ return { ok: false, reason: 'stage is empty' };
570
+ if (String(opts.inputHash ?? '').trim() === '')
571
+ return { ok: false, reason: 'inputHash is empty' };
572
+ // A null result is what a DEAD stage returns. Recording it would mark a failure as a success.
573
+ if (opts.result === null || opts.result === undefined) {
574
+ return { ok: false, reason: `stage ${stage} produced no result — a dead stage is never recorded` };
575
+ }
576
+ if (opts.artifacts.length === 0) {
577
+ return { ok: false, reason: `stage ${stage} declared no artifact to witness` };
578
+ }
579
+ const presentSet = new Set(opts.present.map((p) => String(p)));
580
+ const missing = opts.artifacts.filter((a) => !presentSet.has(String(a)));
581
+ if (missing.length > 0) {
582
+ return { ok: false, reason: `stage ${stage} is missing its artifact(s): ${missing.join(', ')}` };
583
+ }
584
+ const line = serializeCheckpoint(stage, opts.inputHash, opts.result);
585
+ if (line === null) {
586
+ return { ok: false, reason: `stage ${stage} result is not serialisable within the size cap` };
587
+ }
588
+ return { ok: true, line, witnessed: [...opts.artifacts] };
589
+ }
528
590
  //# sourceMappingURL=feature-adr-checkpoints.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"feature-adr-checkpoints.js","sourceRoot":"","sources":["../src/feature-adr-checkpoints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-adr-checkpoints.js","sourceRoot":"","sources":["../src/feature-adr-checkpoints.ts"],"names":[],"mappings":"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"}