@dzhechkov/harness-core 0.5.1 → 0.5.3
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/.dz-manifest.json +68 -28
- package/README.md +8 -2
- package/dist/feature-adr-checkpoints.d.ts +93 -1
- package/dist/feature-adr-checkpoints.d.ts.map +1 -1
- package/dist/feature-adr-checkpoints.js +105 -1
- package/dist/feature-adr-checkpoints.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/loop-blobs.generated.js +5 -5
- package/dist/loop-blobs.generated.js.map +1 -1
- package/dist/loop-render.js +1 -1
- package/dist/loop-render.js.map +1 -1
- package/dist/loop-trace.d.ts +75 -3
- package/dist/loop-trace.d.ts.map +1 -1
- package/dist/loop-trace.js +62 -6
- package/dist/loop-trace.js.map +1 -1
- package/dist/trace-corroborate.d.ts +48 -0
- package/dist/trace-corroborate.d.ts.map +1 -0
- package/dist/trace-corroborate.js +172 -0
- package/dist/trace-corroborate.js.map +1 -0
- package/dist/workflow-run.d.ts +15 -0
- package/dist/workflow-run.d.ts.map +1 -1
- package/dist/workflow-run.js +19 -1
- package/dist/workflow-run.js.map +1 -1
- package/package.json +18 -18
- package/sbom.json +127 -27
- package/src/feature-adr-checkpoints.ts +140 -1
- package/src/index.ts +1 -0
- package/src/loop-blobs.generated.ts +5 -5
- package/src/loop-render.ts +1 -1
- package/src/loop-trace.ts +123 -6
- package/src/trace-corroborate.ts +205 -0
- package/src/workflow-run.ts +31 -1
- package/LICENSE +0 -21
package/dist/loop-trace.d.ts
CHANGED
|
@@ -53,6 +53,14 @@ export interface TraceSettleEvent {
|
|
|
53
53
|
outcome: 'ok' | 'null' | 'error';
|
|
54
54
|
wallTime?: string | null;
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* WHICH CODE PATH was meant to write this file. A HINT, never a trust statement — the rendered
|
|
58
|
+
* script's flush is performed BY AN AGENT, which therefore controls these bytes before the file
|
|
59
|
+
* exists and could write any value here. It is deliberately NOT called `attestedBy`, so nothing in
|
|
60
|
+
* the codebase can read it as provenance (ADR-001 round 1 made exactly that mistake). The trust
|
|
61
|
+
* question is answered by `deriveAttestation`, from an artifact the sandboxed script cannot write.
|
|
62
|
+
*/
|
|
63
|
+
export type TraceEmitterPath = 'dz-process' | 'rendered-script';
|
|
56
64
|
export interface TraceRunOpened {
|
|
57
65
|
v: 1;
|
|
58
66
|
runId: string;
|
|
@@ -60,6 +68,9 @@ export interface TraceRunOpened {
|
|
|
60
68
|
event: 'run.opened';
|
|
61
69
|
planDigest: string;
|
|
62
70
|
execFp: string;
|
|
71
|
+
/** Optional ON THE WIRE (NFR-1): an older reader ignores it, a newer reader over an older trace
|
|
72
|
+
* gets `unknown` — which is never `instrument`. */
|
|
73
|
+
emitterPath?: TraceEmitterPath;
|
|
63
74
|
}
|
|
64
75
|
export interface TraceRunClosed {
|
|
65
76
|
v: 1;
|
|
@@ -89,8 +100,14 @@ export declare function traceShellQuote(s: string): string;
|
|
|
89
100
|
* time — never a line repaired later. Returns an error string or null.
|
|
90
101
|
*/
|
|
91
102
|
export declare function traceValidateEvent(e: unknown): string | null;
|
|
92
|
-
/**
|
|
93
|
-
|
|
103
|
+
/**
|
|
104
|
+
* Open a trace state and buffer the run.opened frame. Throws on an invalid runId (fail-closed).
|
|
105
|
+
*
|
|
106
|
+
* `emitterPath` is REQUIRED and has NO DEFAULT, on purpose: a default would be chosen once, by
|
|
107
|
+
* whoever added the parameter, and every future caller that forgot it would silently inherit that
|
|
108
|
+
* choice. A missing argument must be a compile error instead.
|
|
109
|
+
*/
|
|
110
|
+
export declare function traceInit(runId: string, planDigest: string, execFp: string, emitterPath: TraceEmitterPath): TraceState;
|
|
94
111
|
/**
|
|
95
112
|
* Allocate the DISPATCH seq and buffer the event — called SYNCHRONOUSLY immediately before the
|
|
96
113
|
* `agent()`/`parallel()` call (the same synchronous statement pair; AM-2). Returns the seq.
|
|
@@ -161,6 +178,11 @@ export interface TraceRun {
|
|
|
161
178
|
/** No run.closed frame ⇒ the tail may be lost; truncated-window invariants report inconclusive. */
|
|
162
179
|
incomplete: boolean;
|
|
163
180
|
parseErrors: string[];
|
|
181
|
+
/** The self-declared HINT (see TraceEmitterPath) — null when absent. NEVER read as provenance. */
|
|
182
|
+
emitterPath: TraceEmitterPath | null;
|
|
183
|
+
/** Two `run.opened` frames that DISAGREE. The scan used to keep the last one silently, which
|
|
184
|
+
* would let a spliced frame overwrite the genuine one; a conflict now forbids `instrument`. */
|
|
185
|
+
openConflict: boolean;
|
|
164
186
|
}
|
|
165
187
|
/**
|
|
166
188
|
* Parse a trace.jsonl text. Tolerant of a missing run.closed (incomplete: true); a DUPLICATE
|
|
@@ -185,12 +207,57 @@ export interface TraceRun {
|
|
|
185
207
|
* the only ordering the file can still testify to. INV-14 fails such a trace on uniqueness anyway.
|
|
186
208
|
*/
|
|
187
209
|
export declare function parseTrace(text: string): TraceRun;
|
|
210
|
+
/**
|
|
211
|
+
* ATTESTATION — the trust question, answered by the READER, never by the file.
|
|
212
|
+
*
|
|
213
|
+
* `instrument` means, EXACTLY (ADR-001 round 3, wording taken from the cross-family reviewer):
|
|
214
|
+
* *the bytes read match the identifiers, the hash and the line count asserted by the co-located
|
|
215
|
+
* `run-state.json`.* It does NOT mean `dz` historically wrote those bytes, nor that this is the
|
|
216
|
+
* directory it wrote them in. A byte-identical replay passes. Copying the matched trace+run-state
|
|
217
|
+
* pair elsewhere passes. Both are accepted and tested, not patched.
|
|
218
|
+
*
|
|
219
|
+
* What it DOES buy: `run-state.json` is written by the dz process, and the rendered script runs in a
|
|
220
|
+
* sandbox with no filesystem — so an agent that mis-writes, truncates, reorders or invents its
|
|
221
|
+
* flush cannot reach `instrument`. What it cannot buy: a defence against an actor with write access
|
|
222
|
+
* to the run directory. On this machine the agent IS such an actor and the signing key is readable
|
|
223
|
+
* by the same account, so no local artifact — signature included — closes that. Named, not hidden.
|
|
224
|
+
*
|
|
225
|
+
* `unknown` is kept DISTINCT from `agent` (a legacy instrument run, a stripped field and explicit
|
|
226
|
+
* agent testimony are different facts) while sharing its conservative tier for every decision.
|
|
227
|
+
*/
|
|
228
|
+
export type TraceAttestation = 'instrument' | 'agent' | 'unknown';
|
|
229
|
+
/** The subset of `run-state.json` the attestation reads. Unknown-shaped input is not an error — it
|
|
230
|
+
* simply fails to bind, which yields `unknown`. */
|
|
231
|
+
export interface TraceRunStateBinding {
|
|
232
|
+
runId?: unknown;
|
|
233
|
+
planDigest?: unknown;
|
|
234
|
+
execFp?: unknown;
|
|
235
|
+
traceSha256?: unknown;
|
|
236
|
+
traceLines?: unknown;
|
|
237
|
+
}
|
|
238
|
+
/** What the CALLER measured about the trace text it actually read. Passed in rather than computed
|
|
239
|
+
* here so this module keeps its zero dependencies (no node:crypto) and stays trivially testable. */
|
|
240
|
+
export interface TraceObserved {
|
|
241
|
+
sha256: string;
|
|
242
|
+
lines: number;
|
|
243
|
+
}
|
|
244
|
+
export declare function deriveAttestation(run: TraceRun, state: TraceRunStateBinding | null | undefined, observed: TraceObserved): TraceAttestation;
|
|
188
245
|
export type InvariantStatus = 'pass' | 'fail' | 'inconclusive';
|
|
189
246
|
export interface InvariantVerdict {
|
|
190
247
|
id: string;
|
|
191
248
|
status: InvariantStatus;
|
|
192
249
|
message: string;
|
|
250
|
+
/**
|
|
251
|
+
* FR-3 — the qualifier travels IN the verdict, never beside it. A caller that stores a verdict
|
|
252
|
+
* and reads it back later must not be able to end up holding a bare `pass` whose attestation was
|
|
253
|
+
* dropped in transit. Optional only so a caller that has not derived one is a compile-time
|
|
254
|
+
* possibility; `stampAttestation` is how the reader attaches it.
|
|
255
|
+
*/
|
|
256
|
+
attestation?: TraceAttestation;
|
|
193
257
|
}
|
|
258
|
+
/** Attach one attestation to every verdict in a batch. Kept as a named function rather than a spread
|
|
259
|
+
* at each call site so a NEW verdict producer cannot silently ship unstamped verdicts. */
|
|
260
|
+
export declare function stampAttestation(verdicts: InvariantVerdict[], attestation: TraceAttestation): InvariantVerdict[];
|
|
194
261
|
/**
|
|
195
262
|
* Evaluate the plan-derived runtime invariants over an observed trace. Consumes ONLY
|
|
196
263
|
* `toTraceProjection(plan)` (AM-3) and ONLY runtime-assigned `seq` (never wallTime — INV-16).
|
|
@@ -240,7 +307,12 @@ export interface Timeline {
|
|
|
240
307
|
/**
|
|
241
308
|
* Merge one timeline: trace.jsonl is the AUTHORITATIVE order (rows sorted by seq); checkpoints,
|
|
242
309
|
* cost-ledger lines and usageEvents are appended as unordered context rows (seq 0); journal.jsonl
|
|
243
|
-
* contributes DIAGNOSTIC
|
|
310
|
+
* contributes a DIAGNOSTIC LINE COUNT only, never ordering (the ACL of 04 §8).
|
|
311
|
+
*
|
|
312
|
+
* Honesty fix (2026-08-20): this note used to promise "agentId correlation", which the code never
|
|
313
|
+
* did — it counts lines. A comment claiming an analysis that does not exist is the same defect class
|
|
314
|
+
* this feature was built to remove, one layer up. The real correlation now lives in
|
|
315
|
+
* `trace-corroborate.ts`, behind `dz workflow-trace --corroborate`, where it is scoped and tested.
|
|
244
316
|
*/
|
|
245
317
|
export declare function assembleTimeline(input: {
|
|
246
318
|
trace: string;
|
package/dist/loop-trace.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-trace.d.ts","sourceRoot":"","sources":["../src/loop-trace.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,oFAAoF;AACpF,eAAO,MAAM,uBAAuB,UAAU,CAAC;AAE/C,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,oCAAoC;AACpC,eAAO,MAAM,cAAc,QAAsB,CAAC;AAClD;qFACqF;AACrF,eAAO,MAAM,YAAY,QAA0B,CAAC;AAEpD,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,CAAC,CAAC;IACL,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,CAAC,CAAC;IACL,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,SAAS,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,CAAC,CAAC;IACL,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"loop-trace.d.ts","sourceRoot":"","sources":["../src/loop-trace.ts"],"names":[],"mappings":"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"}
|
package/dist/loop-trace.js
CHANGED
|
@@ -76,6 +76,11 @@ export function traceValidateEvent(e) {
|
|
|
76
76
|
if (kind === 'run.opened') {
|
|
77
77
|
if (typeof ev['planDigest'] !== 'string' || typeof ev['execFp'] !== 'string')
|
|
78
78
|
return 'run.opened needs planDigest + execFp';
|
|
79
|
+
const ep = ev['emitterPath'];
|
|
80
|
+
// Absent is legal (NFR-1). Present-but-outside-the-union is a REFUSAL, not a downgrade: a value
|
|
81
|
+
// like 'trusted' is someone trying to say something the vocabulary does not permit.
|
|
82
|
+
if (ep !== undefined && ep !== 'dz-process' && ep !== 'rendered-script')
|
|
83
|
+
return 'emitterPath must be dz-process|rendered-script';
|
|
79
84
|
return null;
|
|
80
85
|
}
|
|
81
86
|
if (kind === 'run.closed') {
|
|
@@ -86,12 +91,18 @@ export function traceValidateEvent(e) {
|
|
|
86
91
|
}
|
|
87
92
|
return 'unknown event kind';
|
|
88
93
|
}
|
|
89
|
-
/**
|
|
90
|
-
|
|
94
|
+
/**
|
|
95
|
+
* Open a trace state and buffer the run.opened frame. Throws on an invalid runId (fail-closed).
|
|
96
|
+
*
|
|
97
|
+
* `emitterPath` is REQUIRED and has NO DEFAULT, on purpose: a default would be chosen once, by
|
|
98
|
+
* whoever added the parameter, and every future caller that forgot it would silently inherit that
|
|
99
|
+
* choice. A missing argument must be a compile error instead.
|
|
100
|
+
*/
|
|
101
|
+
export function traceInit(runId, planDigest, execFp, emitterPath) {
|
|
91
102
|
if (!TRACE_RUNID_RE.test(runId))
|
|
92
103
|
throw new Error('loop-trace: runId fails ' + String(TRACE_RUNID_RE));
|
|
93
104
|
const state = { runId, seq: 0, dispatched: 0, settled: 0, buffer: [] };
|
|
94
|
-
const opened = { v: 1, runId, seq: ++state.seq, event: 'run.opened', planDigest, execFp };
|
|
105
|
+
const opened = { v: 1, runId, seq: ++state.seq, event: 'run.opened', planDigest, execFp, emitterPath };
|
|
95
106
|
traceBuffer(state, opened);
|
|
96
107
|
return state;
|
|
97
108
|
}
|
|
@@ -259,7 +270,7 @@ export function traceLedgerAppendCmd(repoAbs, line) {
|
|
|
259
270
|
* the only ordering the file can still testify to. INV-14 fails such a trace on uniqueness anyway.
|
|
260
271
|
*/
|
|
261
272
|
export function parseTrace(text) {
|
|
262
|
-
const run = { runId: null, planDigest: null, execFp: null, events: [], incomplete: true, parseErrors: [] };
|
|
273
|
+
const run = { runId: null, planDigest: null, execFp: null, events: [], incomplete: true, parseErrors: [], emitterPath: null, openConflict: false };
|
|
263
274
|
const scanned = [];
|
|
264
275
|
for (const line of String(text ?? '').split('\n')) {
|
|
265
276
|
const t = line.trim();
|
|
@@ -286,9 +297,21 @@ export function parseTrace(text) {
|
|
|
286
297
|
const dispatchSeen = new Set();
|
|
287
298
|
for (const ev of scanned) {
|
|
288
299
|
if (ev.event === 'run.opened') {
|
|
300
|
+
const prior = run.events.some((p) => p.event === 'run.opened');
|
|
301
|
+
if (prior) {
|
|
302
|
+
const disagrees = run.runId !== ev.runId ||
|
|
303
|
+
run.planDigest !== ev.planDigest ||
|
|
304
|
+
run.execFp !== ev.execFp ||
|
|
305
|
+
run.emitterPath !== (ev.emitterPath ?? null);
|
|
306
|
+
if (disagrees) {
|
|
307
|
+
run.openConflict = true;
|
|
308
|
+
run.parseErrors.push('conflicting run.opened frames — refusing to prefer either (ADR-001)');
|
|
309
|
+
}
|
|
310
|
+
}
|
|
289
311
|
run.runId = ev.runId;
|
|
290
312
|
run.planDigest = ev.planDigest;
|
|
291
313
|
run.execFp = ev.execFp;
|
|
314
|
+
run.emitterPath = ev.emitterPath ?? null;
|
|
292
315
|
}
|
|
293
316
|
if (ev.event === 'run.closed')
|
|
294
317
|
run.incomplete = false;
|
|
@@ -309,6 +332,34 @@ export function parseTrace(text) {
|
|
|
309
332
|
}
|
|
310
333
|
return run;
|
|
311
334
|
}
|
|
335
|
+
export function deriveAttestation(run, state, observed) {
|
|
336
|
+
// A conflict between two run.opened frames forbids the favourable reading outright: preferring
|
|
337
|
+
// either one is exactly the silent choice this feature exists to remove.
|
|
338
|
+
if (run.openConflict)
|
|
339
|
+
return 'unknown';
|
|
340
|
+
// QE round 1 / H1: EVERY bound value must be non-empty. Equality alone let a trace whose
|
|
341
|
+
// planDigest and execFp are both '' bind against a state carrying the same two empty strings —
|
|
342
|
+
// an "identity" that identifies nothing. A binding over absent values is not a binding.
|
|
343
|
+
const nonEmpty = (a, b) => typeof a === 'string' && a !== '' && a === b;
|
|
344
|
+
const bound = state != null &&
|
|
345
|
+
nonEmpty(state.runId, run.runId) &&
|
|
346
|
+
nonEmpty(state.planDigest, run.planDigest) &&
|
|
347
|
+
nonEmpty(state.execFp, run.execFp) &&
|
|
348
|
+
// CONTENT binding, not just identifiers: a legacy run-state with no traceSha256 can never mint
|
|
349
|
+
// `instrument` (that was the reviewer's stale-directory counterexample).
|
|
350
|
+
nonEmpty(state.traceSha256, observed.sha256) &&
|
|
351
|
+
typeof state.traceLines === 'number' && state.traceLines === observed.lines;
|
|
352
|
+
if (bound)
|
|
353
|
+
return 'instrument';
|
|
354
|
+
if (run.emitterPath === 'rendered-script')
|
|
355
|
+
return 'agent';
|
|
356
|
+
return 'unknown';
|
|
357
|
+
}
|
|
358
|
+
/** Attach one attestation to every verdict in a batch. Kept as a named function rather than a spread
|
|
359
|
+
* at each call site so a NEW verdict producer cannot silently ship unstamped verdicts. */
|
|
360
|
+
export function stampAttestation(verdicts, attestation) {
|
|
361
|
+
return verdicts.map((v) => ({ ...v, attestation }));
|
|
362
|
+
}
|
|
312
363
|
function invocations(run) {
|
|
313
364
|
const out = new Map();
|
|
314
365
|
for (const e of run.events) {
|
|
@@ -584,7 +635,12 @@ export function evaluateExpectedInvariants(expected, run) {
|
|
|
584
635
|
/**
|
|
585
636
|
* Merge one timeline: trace.jsonl is the AUTHORITATIVE order (rows sorted by seq); checkpoints,
|
|
586
637
|
* cost-ledger lines and usageEvents are appended as unordered context rows (seq 0); journal.jsonl
|
|
587
|
-
* contributes DIAGNOSTIC
|
|
638
|
+
* contributes a DIAGNOSTIC LINE COUNT only, never ordering (the ACL of 04 §8).
|
|
639
|
+
*
|
|
640
|
+
* Honesty fix (2026-08-20): this note used to promise "agentId correlation", which the code never
|
|
641
|
+
* did — it counts lines. A comment claiming an analysis that does not exist is the same defect class
|
|
642
|
+
* this feature was built to remove, one layer up. The real correlation now lives in
|
|
643
|
+
* `trace-corroborate.ts`, behind `dz workflow-trace --corroborate`, where it is scoped and tested.
|
|
588
644
|
*/
|
|
589
645
|
export function assembleTimeline(input) {
|
|
590
646
|
const run = parseTrace(input.trace);
|
|
@@ -639,7 +695,7 @@ export function assembleTimeline(input) {
|
|
|
639
695
|
for (const line of input.journal.split('\n'))
|
|
640
696
|
if (line.trim() !== '')
|
|
641
697
|
n++;
|
|
642
|
-
rows.push({ seq: 0, kind: 'journal', label: 'journal', detail:
|
|
698
|
+
rows.push({ seq: 0, kind: 'journal', label: 'journal', detail: n + ' host-journal line(s) — COUNT only; the host journal carries no seq/ts and NEVER orders this timeline. For an actual comparison run: dz workflow-trace --corroborate <hostRunDir>', wallTime: null });
|
|
643
699
|
}
|
|
644
700
|
return { runId: run.runId, incomplete: run.incomplete, rows, sources };
|
|
645
701
|
}
|
package/dist/loop-trace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-trace.js","sourceRoot":"","sources":["../src/loop-trace.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"loop-trace.js","sourceRoot":"","sources":["../src/loop-trace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `trace-corroborate` — the Claude host's OWN records, for the half of a trace they can witness.
|
|
3
|
+
*
|
|
4
|
+
* ADR-002. Pure over already-read strings: no `fs`, so it is testable with fixtures alone.
|
|
5
|
+
*
|
|
6
|
+
* The design is shaped by one MEASURED fact and one refuted design. The fact: the trace and the
|
|
7
|
+
* host's `journal.jsonl` share NO identifier — trace dispatch events carry `invocationId` /
|
|
8
|
+
* `stepId`, the journal carries `agentId` and a `v2:<sha>` key. There is no run nonce to bind them
|
|
9
|
+
* with, and we do not control the host's format, so DIRECTORY CONTAINMENT is the only binding
|
|
10
|
+
* available and every result says so. The refuted design: a bare `agrees` over "agent set +
|
|
11
|
+
* wall-clock order", which a cross-family reviewer defeated with a trace that matched on agents
|
|
12
|
+
* while inventing a join, a gate redo, a typed pause and a file deliverable — every consequential
|
|
13
|
+
* claim fabricated, the verdict green. Hence `agreesWithinScope`, and hence `notWitnessed` being
|
|
14
|
+
* non-empty BY TYPE rather than by discipline.
|
|
15
|
+
*/
|
|
16
|
+
/** Non-empty by construction: a tuple type, so no edit can empty it and silently unscope a result. */
|
|
17
|
+
export type NotWitnessed = readonly ['join', 'gate-redo', 'typed-pause', 'file-deliverable'];
|
|
18
|
+
export declare const NOT_WITNESSED: NotWitnessed;
|
|
19
|
+
export type WitnessedClaim = 'agent-multiset' | 'agent-count' | 'wall-clock-order';
|
|
20
|
+
export declare const WITNESSED: readonly WitnessedClaim[];
|
|
21
|
+
/** Deliberately NOT `agrees`. The scope lives in the word, so a stored verdict carries it too. */
|
|
22
|
+
export type CorroborationVerdict = 'agreesWithinScope' | 'disagrees' | 'inconclusive';
|
|
23
|
+
export interface CorroborationResult {
|
|
24
|
+
verdict: CorroborationVerdict;
|
|
25
|
+
/** The ONLY binding available — see the module note. Never omitted. */
|
|
26
|
+
binding: 'by-directory';
|
|
27
|
+
hostDir: string;
|
|
28
|
+
witnessed: readonly WitnessedClaim[];
|
|
29
|
+
notWitnessed: NotWitnessed;
|
|
30
|
+
/** Why, in words, for the human-readable report. */
|
|
31
|
+
detail: string;
|
|
32
|
+
/** Counts, so a caller can render the disagreement rather than re-deriving it. */
|
|
33
|
+
traceAgentCount: number;
|
|
34
|
+
hostAgentCount: number;
|
|
35
|
+
}
|
|
36
|
+
/** One host record set, already read from disk by the caller. */
|
|
37
|
+
export interface HostRecords {
|
|
38
|
+
/** Raw `journal.jsonl` text, or null when the file is absent/unreadable. */
|
|
39
|
+
journal: string | null;
|
|
40
|
+
/** Raw `agent-<id>.jsonl` texts, keyed by agent id. Empty when none were found. */
|
|
41
|
+
agentTranscripts: Record<string, string>;
|
|
42
|
+
}
|
|
43
|
+
/** The trace side, projected by the caller: the agent ids the trace claims took part, in order. */
|
|
44
|
+
export interface TraceAgentProjection {
|
|
45
|
+
agentIds: string[];
|
|
46
|
+
}
|
|
47
|
+
export declare function corroborate(trace: TraceAgentProjection, host: HostRecords, hostDir: string): CorroborationResult;
|
|
48
|
+
//# sourceMappingURL=trace-corroborate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-corroborate.d.ts","sourceRoot":"","sources":["../src/trace-corroborate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,sGAAsG;AACtG,MAAM,MAAM,YAAY,GAAG,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC;AAC7F,eAAO,MAAM,aAAa,EAAE,YAAgF,CAAC;AAE7G,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,aAAa,GAAG,kBAAkB,CAAC;AACnF,eAAO,MAAM,SAAS,EAAE,SAAS,cAAc,EAAmE,CAAC;AAEnH,kGAAkG;AAClG,MAAM,MAAM,oBAAoB,GAAG,mBAAmB,GAAG,WAAW,GAAG,cAAc,CAAC;AAEtF,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,oBAAoB,CAAC;IAC9B,uEAAuE;IACvE,OAAO,EAAE,cAAc,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;IACrC,YAAY,EAAE,YAAY,CAAC;IAC3B,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,iEAAiE;AACjE,MAAM,WAAW,WAAW;IAC1B,4EAA4E;IAC5E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,mFAAmF;IACnF,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAED,mGAAmG;AACnG,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AA+ED,wBAAgB,WAAW,CAAC,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,mBAAmB,CA0EhH"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `trace-corroborate` — the Claude host's OWN records, for the half of a trace they can witness.
|
|
3
|
+
*
|
|
4
|
+
* ADR-002. Pure over already-read strings: no `fs`, so it is testable with fixtures alone.
|
|
5
|
+
*
|
|
6
|
+
* The design is shaped by one MEASURED fact and one refuted design. The fact: the trace and the
|
|
7
|
+
* host's `journal.jsonl` share NO identifier — trace dispatch events carry `invocationId` /
|
|
8
|
+
* `stepId`, the journal carries `agentId` and a `v2:<sha>` key. There is no run nonce to bind them
|
|
9
|
+
* with, and we do not control the host's format, so DIRECTORY CONTAINMENT is the only binding
|
|
10
|
+
* available and every result says so. The refuted design: a bare `agrees` over "agent set +
|
|
11
|
+
* wall-clock order", which a cross-family reviewer defeated with a trace that matched on agents
|
|
12
|
+
* while inventing a join, a gate redo, a typed pause and a file deliverable — every consequential
|
|
13
|
+
* claim fabricated, the verdict green. Hence `agreesWithinScope`, and hence `notWitnessed` being
|
|
14
|
+
* non-empty BY TYPE rather than by discipline.
|
|
15
|
+
*/
|
|
16
|
+
export const NOT_WITNESSED = ['join', 'gate-redo', 'typed-pause', 'file-deliverable'];
|
|
17
|
+
export const WITNESSED = ['agent-multiset', 'agent-count', 'wall-clock-order'];
|
|
18
|
+
/**
|
|
19
|
+
* Read the agent ids the host journal STARTED, or null when the journal cannot be trusted to be
|
|
20
|
+
* complete. QE round 1 closed three ways this used to lie:
|
|
21
|
+
* H4 — a `started` row whose `agentId` is not a string was silently DROPPED, so a malformed row
|
|
22
|
+
* that may well represent a real extra agent made the sets look equal.
|
|
23
|
+
* M2 — a non-empty journal with zero usable start rows returned `[]`, and an empty trace then
|
|
24
|
+
* "agreed" with it. A journal that records no starts is not evidence that none happened.
|
|
25
|
+
* M3 — `JSON.parse('null')` is valid JSON, and indexing the result threw.
|
|
26
|
+
*/
|
|
27
|
+
function journalAgentIds(journal) {
|
|
28
|
+
const ids = [];
|
|
29
|
+
let sawAny = false;
|
|
30
|
+
for (const line of journal.split('\n')) {
|
|
31
|
+
const t = line.trim();
|
|
32
|
+
if (t === '')
|
|
33
|
+
continue;
|
|
34
|
+
sawAny = true;
|
|
35
|
+
let o;
|
|
36
|
+
try {
|
|
37
|
+
o = JSON.parse(t);
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// A malformed journal is INCONCLUSIVE, not "the agents we could still parse". A partially
|
|
41
|
+
// readable independent record is not an independent record.
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
// M3: `null`, a number and a string are all valid JSON and none of them are records.
|
|
45
|
+
if (typeof o !== 'object' || o === null || Array.isArray(o))
|
|
46
|
+
return null;
|
|
47
|
+
const rec = o;
|
|
48
|
+
if (rec['type'] !== 'started')
|
|
49
|
+
continue;
|
|
50
|
+
// H4: a start row we cannot read is a start row we cannot account for.
|
|
51
|
+
if (typeof rec['agentId'] !== 'string' || rec['agentId'] === '')
|
|
52
|
+
return null;
|
|
53
|
+
ids.push(rec['agentId']);
|
|
54
|
+
}
|
|
55
|
+
// M2: a non-empty journal that yielded no starts tells us nothing about how many agents ran.
|
|
56
|
+
if (!sawAny || ids.length === 0)
|
|
57
|
+
return null;
|
|
58
|
+
return ids;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The FIRST readable timestamp in a transcript, or null when the answer cannot be trusted.
|
|
62
|
+
*
|
|
63
|
+
* QE round 1 / M1: this used to skip unparseable lines and keep scanning. But an unparseable line
|
|
64
|
+
* EARLIER in the file may carry an earlier timestamp — so a corrupt prefix does not just cost us a
|
|
65
|
+
* line, it invalidates the whole "first" claim. Returning the next readable stamp presents a
|
|
66
|
+
* possibly-late time as the earliest one, which is exactly how a wrong order reads as right.
|
|
67
|
+
*/
|
|
68
|
+
function firstTimestamp(text) {
|
|
69
|
+
for (const line of text.split('\n')) {
|
|
70
|
+
const t = line.trim();
|
|
71
|
+
if (t === '')
|
|
72
|
+
continue;
|
|
73
|
+
let o;
|
|
74
|
+
try {
|
|
75
|
+
o = JSON.parse(t);
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return null; // a corrupt line before any stamp ⇒ the earliest is unknowable
|
|
79
|
+
}
|
|
80
|
+
if (typeof o !== 'object' || o === null || Array.isArray(o))
|
|
81
|
+
return null;
|
|
82
|
+
const ts = o['timestamp'];
|
|
83
|
+
if (typeof ts === 'string') {
|
|
84
|
+
const ms = Date.parse(ts);
|
|
85
|
+
if (Number.isFinite(ms))
|
|
86
|
+
return ms;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return null;
|
|
90
|
+
}
|
|
91
|
+
function multisetEqual(a, b) {
|
|
92
|
+
if (a.length !== b.length)
|
|
93
|
+
return false;
|
|
94
|
+
const count = new Map();
|
|
95
|
+
for (const x of a)
|
|
96
|
+
count.set(x, (count.get(x) ?? 0) + 1);
|
|
97
|
+
for (const x of b) {
|
|
98
|
+
const n = count.get(x);
|
|
99
|
+
if (n === undefined || n === 0)
|
|
100
|
+
return false;
|
|
101
|
+
count.set(x, n - 1);
|
|
102
|
+
}
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
export function corroborate(trace, host, hostDir) {
|
|
106
|
+
const base = {
|
|
107
|
+
binding: 'by-directory',
|
|
108
|
+
hostDir,
|
|
109
|
+
witnessed: WITNESSED,
|
|
110
|
+
notWitnessed: NOT_WITNESSED,
|
|
111
|
+
traceAgentCount: trace.agentIds.length,
|
|
112
|
+
};
|
|
113
|
+
if (host.journal === null) {
|
|
114
|
+
return { ...base, verdict: 'inconclusive', hostAgentCount: 0, detail: 'no host journal at ' + hostDir + ' — absent evidence is never agreement' };
|
|
115
|
+
}
|
|
116
|
+
const hostIds = journalAgentIds(host.journal);
|
|
117
|
+
if (hostIds === null) {
|
|
118
|
+
return { ...base, verdict: 'inconclusive', hostAgentCount: 0, detail: 'the host journal is empty or malformed — a partially readable record is not an independent one' };
|
|
119
|
+
}
|
|
120
|
+
// COUNT and MULTISET before ordering: a mismatch here is a real disagreement, and comparing the
|
|
121
|
+
// order of two different sets would be meaningless anyway.
|
|
122
|
+
if (!multisetEqual(trace.agentIds, hostIds)) {
|
|
123
|
+
return {
|
|
124
|
+
...base,
|
|
125
|
+
verdict: 'disagrees',
|
|
126
|
+
hostAgentCount: hostIds.length,
|
|
127
|
+
detail: `the trace claims ${trace.agentIds.length} agent run(s), the host journal records ${hostIds.length}` +
|
|
128
|
+
(trace.agentIds.length === hostIds.length ? ' — same count, different ids' : ''),
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
// Wall-clock order, from the per-agent transcripts (the journal carries no ts). An agent with no
|
|
132
|
+
// readable timestamp makes the ORDER unwitnessable — inconclusive, not a pass on the rest.
|
|
133
|
+
//
|
|
134
|
+
// QE round 1 / M4: `host.agentTranscripts[id]` walks the PROTOTYPE, so an agent literally named
|
|
135
|
+
// `__proto__` (or `constructor`, `toString`, …) read a function off Object.prototype and threw.
|
|
136
|
+
// An own-property check is the fix; the id is data from an outside file and must be treated as such.
|
|
137
|
+
const own = (o, k) => Object.prototype.hasOwnProperty.call(o, k) ? o[k] : undefined;
|
|
138
|
+
const stamps = [];
|
|
139
|
+
for (const id of hostIds) {
|
|
140
|
+
const text = own(host.agentTranscripts, id);
|
|
141
|
+
const at = typeof text !== 'string' ? null : firstTimestamp(text);
|
|
142
|
+
if (at === null) {
|
|
143
|
+
return { ...base, verdict: 'inconclusive', hostAgentCount: hostIds.length, detail: `no readable timestamp for agent ${id} — the wall-clock order cannot be witnessed` };
|
|
144
|
+
}
|
|
145
|
+
stamps.push({ id, at });
|
|
146
|
+
}
|
|
147
|
+
// QE round 1 / H3: two agents sharing a timestamp make their relative order UNKNOWABLE. A stable
|
|
148
|
+
// sort preserved the journal's own order and reported agreement — the sort's tie-breaking rule
|
|
149
|
+
// was silently doing duty as evidence.
|
|
150
|
+
const sorted = [...stamps].sort((a, b) => a.at - b.at);
|
|
151
|
+
for (let i = 1; i < sorted.length; i++) {
|
|
152
|
+
if (sorted[i].at === sorted[i - 1].at) {
|
|
153
|
+
return { ...base, verdict: 'inconclusive', hostAgentCount: hostIds.length, detail: `agents ${sorted[i - 1].id} and ${sorted[i].id} share a timestamp — their relative order cannot be witnessed` };
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// QE round 1 / H2: compare ELEMENT-WISE. `join('|')` collapsed ['x','x|x'] and ['x|x','x'] to the
|
|
157
|
+
// same string, so a reversed order read as agreement — a delimiter chosen for display doing duty
|
|
158
|
+
// as an equality operator.
|
|
159
|
+
const byClock = sorted.map((sv) => sv.id);
|
|
160
|
+
const orderMatches = byClock.length === trace.agentIds.length && byClock.every((id, i) => id === trace.agentIds[i]);
|
|
161
|
+
if (!orderMatches) {
|
|
162
|
+
return { ...base, verdict: 'disagrees', hostAgentCount: hostIds.length, detail: 'the host wall-clock order of the agents differs from the order the trace claims' };
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
...base,
|
|
166
|
+
verdict: 'agreesWithinScope',
|
|
167
|
+
hostAgentCount: hostIds.length,
|
|
168
|
+
detail: 'the host records agree on which agents ran and in what order. They CANNOT witness ' +
|
|
169
|
+
NOT_WITNESSED.join(', ') + ' — a fabricated one of those would still land here, which is why this is never a bare "agrees"',
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=trace-corroborate.js.map
|