@dzhechkov/harness-core 0.3.145 → 0.3.147
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 +82 -34
- package/README.md +3 -1
- package/dist/compounding.d.ts +27 -0
- package/dist/compounding.d.ts.map +1 -1
- package/dist/compounding.js +29 -0
- package/dist/compounding.js.map +1 -1
- package/dist/cost-ledger.d.ts +318 -0
- package/dist/cost-ledger.d.ts.map +1 -0
- package/dist/cost-ledger.js +871 -0
- package/dist/cost-ledger.js.map +1 -0
- package/dist/cost-scoring.d.ts +9 -0
- package/dist/cost-scoring.d.ts.map +1 -1
- package/dist/cost-scoring.js +18 -0
- package/dist/cost-scoring.js.map +1 -1
- package/dist/event-chain.d.ts +302 -0
- package/dist/event-chain.d.ts.map +1 -0
- package/dist/event-chain.js +663 -0
- package/dist/event-chain.js.map +1 -0
- package/dist/index.d.ts +9 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/dist/operations.d.ts.map +1 -1
- package/dist/operations.js +26 -0
- package/dist/operations.js.map +1 -1
- package/dist/recall-usage.d.ts +52 -4
- package/dist/recall-usage.d.ts.map +1 -1
- package/dist/recall-usage.js +106 -21
- package/dist/recall-usage.js.map +1 -1
- package/dist/usage.d.ts +32 -0
- package/dist/usage.d.ts.map +1 -1
- package/dist/usage.js +59 -10
- package/dist/usage.js.map +1 -1
- package/package.json +3 -3
- package/sbom.json +153 -33
- package/src/compounding.ts +61 -0
- package/src/cost-ledger.ts +1105 -0
- package/src/cost-scoring.ts +17 -0
- package/src/event-chain.ts +870 -0
- package/src/index.ts +86 -0
- package/src/operations.ts +25 -0
- package/src/recall-usage.ts +142 -24
- package/src/usage.ts +74 -12
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cost-ledger.js","sourceRoot":"","sources":["../src/cost-ledger.ts"],"names":[],"mappings":"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"}
|
package/dist/cost-scoring.d.ts
CHANGED
|
@@ -36,6 +36,15 @@ export declare const MODEL_PRICES: Readonly<Record<string, ModelPricing>>;
|
|
|
36
36
|
* Resolve a model id to its pricing by longest-prefix match.
|
|
37
37
|
* `bedrock/anthropic.claude-3-opus...` → strips a leading `provider/` segment.
|
|
38
38
|
*/
|
|
39
|
+
/**
|
|
40
|
+
* Whether {@link pricingFor} will find a REAL entry for this model id, or silently fall back to
|
|
41
|
+
* {@link FALLBACK_PRICING} (sonnet-class).
|
|
42
|
+
*
|
|
43
|
+
* Exists so a cost surface can REPORT the fallback instead of hiding it: `claude-fable-*` has no
|
|
44
|
+
* entry in {@link MODEL_PRICES} and is the default model of every recorded feature-adr run, so its
|
|
45
|
+
* dollar figures are priced at a fallback rate (feature `cost-ledger`, ADR-003).
|
|
46
|
+
*/
|
|
47
|
+
export declare function hasKnownPricing(modelId: string): boolean;
|
|
39
48
|
export declare function pricingFor(modelId: string): ModelPricing;
|
|
40
49
|
/**
|
|
41
50
|
* Provider-agnostic token usage. Cross-provider shapes are normalized into
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-scoring.d.ts","sourceRoot":"","sources":["../src/cost-scoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAmBD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAiB/D,CAAC;AAKF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAYxD;AAID;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,kCAAkC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,wDAAwD;AACxD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAM/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,eAAe,CA6B7D;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQzE;AAID,0DAA0D;AAC1D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8BAA8B;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,cAAc,CAgB7E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG5E;AAID,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnD,mFAAmF;IACnF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAKD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAsBpE"}
|
|
1
|
+
{"version":3,"file":"cost-scoring.d.ts","sourceRoot":"","sources":["../src/cost-scoring.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,0EAA0E;IAC1E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;CAChC;AAmBD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAiB/D,CAAC;AAKF;;;GAGG;AACH;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAOxD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAYxD;AAID;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,+CAA+C;IAC/C,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrC,kCAAkC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED,wDAAwD;AACxD,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAM/C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,eAAe,CA6B7D;AAED,mEAAmE;AACnE,wBAAgB,SAAS,CAAC,KAAK,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQzE;AAID,0DAA0D;AAC1D,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B;AAED,+DAA+D;AAC/D,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,8BAA8B;IAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACpD;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG,cAAc,CAgB7E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG5E;AAID,qEAAqE;AACrE,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnD,mFAAmF;IACnF,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAKD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAsBpE"}
|
package/dist/cost-scoring.js
CHANGED
|
@@ -60,6 +60,24 @@ const FALLBACK_PRICING = priced(3 / 1e6, 15 / 1e6);
|
|
|
60
60
|
* Resolve a model id to its pricing by longest-prefix match.
|
|
61
61
|
* `bedrock/anthropic.claude-3-opus...` → strips a leading `provider/` segment.
|
|
62
62
|
*/
|
|
63
|
+
/**
|
|
64
|
+
* Whether {@link pricingFor} will find a REAL entry for this model id, or silently fall back to
|
|
65
|
+
* {@link FALLBACK_PRICING} (sonnet-class).
|
|
66
|
+
*
|
|
67
|
+
* Exists so a cost surface can REPORT the fallback instead of hiding it: `claude-fable-*` has no
|
|
68
|
+
* entry in {@link MODEL_PRICES} and is the default model of every recorded feature-adr run, so its
|
|
69
|
+
* dollar figures are priced at a fallback rate (feature `cost-ledger`, ADR-003).
|
|
70
|
+
*/
|
|
71
|
+
export function hasKnownPricing(modelId) {
|
|
72
|
+
if (typeof modelId !== 'string' || modelId.length === 0)
|
|
73
|
+
return false;
|
|
74
|
+
const id = modelId.toLowerCase().replace(/^[a-z0-9-]+\//, '');
|
|
75
|
+
for (const key of Object.keys(MODEL_PRICES)) {
|
|
76
|
+
if (id.startsWith(key))
|
|
77
|
+
return true;
|
|
78
|
+
}
|
|
79
|
+
return false;
|
|
80
|
+
}
|
|
63
81
|
export function pricingFor(modelId) {
|
|
64
82
|
// Strip a leading `provider/` segment (e.g. `bedrock/`, `us-east-1/`).
|
|
65
83
|
const id = modelId.toLowerCase().replace(/^[a-z0-9-]+\//, '');
|
package/dist/cost-scoring.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cost-scoring.js","sourceRoot":"","sources":["../src/cost-scoring.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cost-scoring.js","sourceRoot":"","sources":["../src/cost-scoring.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hash-chained, sequence-numbered learning-event logs (feature `event-chain`, ADR-001/ADR-002).
|
|
3
|
+
*
|
|
4
|
+
* `.dz/recall-usage.jsonl` and `.dz/guard-audit.jsonl` are the ENTIRE evidence base for every
|
|
5
|
+
* `dz compounding` verdict and for `dz guard promote`. Before this module a record had no identity
|
|
6
|
+
* and no link to its neighbour, so a defect in the code that REWRITES those files was invisible to
|
|
7
|
+
* everything except a human noticing a wrong number — which is exactly how the 2 → 4 → 6
|
|
8
|
+
* double-count in `compactRecallUsageLog` was found (fixed 2026-07-28, see `recall-usage.ts`).
|
|
9
|
+
*
|
|
10
|
+
* WHAT THIS IS. A corruption check for OUR OWN bugs: a buggy compaction, a torn write, two writers
|
|
11
|
+
* racing. Each appended record carries `seq` (monotonic within its segment) and `prevHash` (FNV-1a
|
|
12
|
+
* over the previous record's line, exactly as it sits on disk), and {@link verifyEventChain}
|
|
13
|
+
* classifies what it finds.
|
|
14
|
+
*
|
|
15
|
+
* WHAT THIS IS NOT — read {@link EVENT_CHAIN_SCOPE} before describing it to anyone. FNV-1a is not
|
|
16
|
+
* cryptography and the threat model has no adversary: anyone who can edit the log can recompute the
|
|
17
|
+
* chain in one line of code. That is deliberate and sufficient, because the failures we actually
|
|
18
|
+
* ship are our own. ruview's ADR-010 names a `TamperedEntry` class; this module does not, because a
|
|
19
|
+
* defect class called "Tampered" IS the over-claim.
|
|
20
|
+
*
|
|
21
|
+
* FNV-1a collisions are CONSTRUCTIBLE — a 32-bit hash has none of the collision resistance a
|
|
22
|
+
* cryptographic one does, and a reviewer demonstrated a pair (Codex QE LOW-8). That is a documented
|
|
23
|
+
* property, not a surprise: the chain detects ACCIDENT classes (a compaction bug, a torn write, a
|
|
24
|
+
* race), not chosen-input attacks, which is exactly the corruption-not-tamper scope above. Swapping
|
|
25
|
+
* in sha256 would buy nothing this threat model needs and would invite the over-claim back.
|
|
26
|
+
*
|
|
27
|
+
* Everything here is PURE — no filesystem, no clock. Writers own their IO (the house pattern from
|
|
28
|
+
* `recall-usage.ts`), which is what keeps the never-block discipline of the apply leg intact.
|
|
29
|
+
*
|
|
30
|
+
* @packageDocumentation
|
|
31
|
+
*/
|
|
32
|
+
/** The one sentence that states what the chain is and is not. Printed by every verify surface. */
|
|
33
|
+
export declare const EVENT_CHAIN_SCOPE: string;
|
|
34
|
+
/** `prevHash` of the first record of a chain segment. */
|
|
35
|
+
export declare const EVENT_CHAIN_GENESIS_HASH = "00000000";
|
|
36
|
+
/** How many bytes of a log's tail a writer needs to read to find the last line. */
|
|
37
|
+
export declare const EVENT_CHAIN_TAIL_BYTES = 65536;
|
|
38
|
+
/**
|
|
39
|
+
* Bytes charged per line for its chain fields when a rewriter budgets its output. Measured against
|
|
40
|
+
* the widest realistic shape: `,"seq":<up to 15 digits>,"prevHash":"xxxxxxxx",` plus the reset
|
|
41
|
+
* marker — deliberately generous, because under-charging would blow a byte cap.
|
|
42
|
+
*/
|
|
43
|
+
export declare const EVENT_CHAIN_FIELD_OVERHEAD_BYTES = 64;
|
|
44
|
+
/** Marker record a rewriter puts first so its output can be checked against its input (ADR-002). */
|
|
45
|
+
export declare const EVENT_CHAIN_LEDGER_KIND = "chain-ledger";
|
|
46
|
+
export type EventChainDefectKind =
|
|
47
|
+
/** A record's `prevHash` does not match the line before it — or a hole where a link should be. */
|
|
48
|
+
'BrokenLink'
|
|
49
|
+
/** The same `seq` appears twice in one segment — a rewrite duplicated a line, or two writers raced. */
|
|
50
|
+
| 'DuplicateSeq'
|
|
51
|
+
/** `seq` went backwards without a recorded segment restart. */
|
|
52
|
+
| 'NonMonotonicSeq'
|
|
53
|
+
/** A line that is not a readable record — the shape a partial write leaves. */
|
|
54
|
+
| 'TornTail'
|
|
55
|
+
/** A rewrite accounts for more events than it measured in its input (ADR-002 — the 2 → 4 → 6 class). */
|
|
56
|
+
| 'DoubleCounted'
|
|
57
|
+
/** A rewrite's own three numbers do not add up, or claim an impossible drop (ADR-002 AM-3). */
|
|
58
|
+
| 'LedgerImbalance'
|
|
59
|
+
/** A ledger line whose fields are missing, mistyped or non-finite — never silently ignored (AM-5). */
|
|
60
|
+
| 'MalformedLedger'
|
|
61
|
+
/** A rewrite's claim was never completed: the segment restarted or the file ended first (AM-4). */
|
|
62
|
+
| 'ClaimInterrupted';
|
|
63
|
+
/**
|
|
64
|
+
* The defect vocabulary, as data. ruview's ADR-010 names one more class that this list deliberately
|
|
65
|
+
* omits — a class whose name would assert exactly the promise {@link EVENT_CHAIN_SCOPE} refuses —
|
|
66
|
+
* and a test asserts no kind here ever grows that vocabulary.
|
|
67
|
+
*/
|
|
68
|
+
export declare const EVENT_CHAIN_DEFECT_KINDS: readonly EventChainDefectKind[];
|
|
69
|
+
export interface EventChainDefect {
|
|
70
|
+
readonly kind: EventChainDefectKind;
|
|
71
|
+
/** 1-based index into the lines handed to the verifier. */
|
|
72
|
+
readonly line: number;
|
|
73
|
+
readonly detail: string;
|
|
74
|
+
readonly seq?: number;
|
|
75
|
+
}
|
|
76
|
+
export interface EventChainVerification {
|
|
77
|
+
readonly ok: boolean;
|
|
78
|
+
/** Non-empty lines examined. */
|
|
79
|
+
readonly lines: number;
|
|
80
|
+
/** Lines carrying a well-formed `seq` + `prevHash`. */
|
|
81
|
+
readonly chained: number;
|
|
82
|
+
/**
|
|
83
|
+
* Leading run of records written before chaining existed. LEGAL, never a defect — the chain is
|
|
84
|
+
* allowed to start mid-file. Reported so the uncovered part is honest rather than invisible.
|
|
85
|
+
*/
|
|
86
|
+
readonly preChainPrefix: number;
|
|
87
|
+
/** Recorded discontinuities (`chainReset: true`) — a torn tail the writer refused to paper over. */
|
|
88
|
+
readonly resets: number;
|
|
89
|
+
/** Highest `seq` seen in the last segment, or null when nothing is chained. */
|
|
90
|
+
readonly lastSeq: number | null;
|
|
91
|
+
readonly defects: readonly EventChainDefect[];
|
|
92
|
+
/** {@link EVENT_CHAIN_SCOPE}, carried in the result so no surface can print a verdict without it. */
|
|
93
|
+
readonly scope: string;
|
|
94
|
+
}
|
|
95
|
+
export interface ChainFields {
|
|
96
|
+
readonly seq: number;
|
|
97
|
+
readonly prevHash: string;
|
|
98
|
+
/** Present only when the writer had to start a fresh segment because the tail was unreadable. */
|
|
99
|
+
readonly chainReset?: true;
|
|
100
|
+
}
|
|
101
|
+
export interface EventChainLedger {
|
|
102
|
+
readonly kind: typeof EVENT_CHAIN_LEDGER_KIND;
|
|
103
|
+
/** Event weight of the INPUT, measured before aggregation. */
|
|
104
|
+
readonly sourceEvents: number;
|
|
105
|
+
/** What a byte budget deliberately discarded — so trimming is not mistaken for loss. */
|
|
106
|
+
readonly droppedEvents: number;
|
|
107
|
+
/** Last `seq` this rewrite wrote. Records past it are outside the claim. */
|
|
108
|
+
readonly throughSeq: number;
|
|
109
|
+
readonly compactedAt: string;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* FNV-1a, 32 bits, over both UTF-16 bytes of every code unit in order.
|
|
113
|
+
*
|
|
114
|
+
* Both bytes, unconditionally: folding with `& 0xff` would make every Cyrillic pair that shares a
|
|
115
|
+
* low byte collide, and these logs carry Russian prompts. 32 bits gives roughly a 1-in-4.3e9
|
|
116
|
+
* accidental-collision chance per link, which is the right size for detecting a bug and the wrong
|
|
117
|
+
* size for detecting an enemy — see {@link EVENT_CHAIN_SCOPE}.
|
|
118
|
+
*/
|
|
119
|
+
export declare function fnv1a32(text: string): string;
|
|
120
|
+
/** The hash a record's successor must carry. Input is the line AS WRITTEN (ADR-001 decision 2). */
|
|
121
|
+
export declare function chainHashOf(line: string): string;
|
|
122
|
+
/** Non-empty lines of a JSONL text, terminators stripped. The one splitter both sides use. */
|
|
123
|
+
export declare function chainLinesOf(text: string): string[];
|
|
124
|
+
/**
|
|
125
|
+
* Last usable line of a log's TAIL chunk — all a writer needs to extend the chain (FR-2).
|
|
126
|
+
*
|
|
127
|
+
* When the chunk does not start at byte 0 its first line may be a fragment; with more than one line
|
|
128
|
+
* present the fragment is simply not the last one, and with exactly one line the caller is looking
|
|
129
|
+
* at a single record longer than {@link EVENT_CHAIN_TAIL_BYTES}, which no writer here produces —
|
|
130
|
+
* that returns `undefined`, and the caller starts a marked segment rather than chaining onto a guess.
|
|
131
|
+
*/
|
|
132
|
+
export declare function lastChainLine(tailText: string, opts?: {
|
|
133
|
+
readonly partial?: boolean;
|
|
134
|
+
}): string | undefined;
|
|
135
|
+
/** What an appender needs to know about the file it is about to extend. */
|
|
136
|
+
export interface LogTail {
|
|
137
|
+
readonly lastLine: string | undefined;
|
|
138
|
+
/**
|
|
139
|
+
* False when the file's final byte is not a newline — the shape a torn write leaves.
|
|
140
|
+
*
|
|
141
|
+
* LOAD-BEARING: appending straight onto a fragment GLUES the new record to it, so one torn write
|
|
142
|
+
* silently eats the next one too. (Found by the CLI torn-tail test, 2026-07-29 — the first append
|
|
143
|
+
* after a truncated line produced a single unreadable line instead of a marked restart.) The
|
|
144
|
+
* appender emits a leading newline so the damage stays exactly one record wide.
|
|
145
|
+
*/
|
|
146
|
+
readonly endsWithNewline: boolean;
|
|
147
|
+
/**
|
|
148
|
+
* True when the file is NOT empty but no complete record could be found in the tail window.
|
|
149
|
+
*
|
|
150
|
+
* AM-6 (Codex QE MED-6): without this, a torn record longer than {@link EVENT_CHAIN_TAIL_BYTES}
|
|
151
|
+
* gave `lastLine: undefined`, which is indistinguishable from an EMPTY file — so the appender
|
|
152
|
+
* started an UNMARKED genesis segment and quietly broke the marked-segment contract that ADR-001
|
|
153
|
+
* D4 exists to enforce. "I saw nothing" and "there is nothing" are different facts.
|
|
154
|
+
*/
|
|
155
|
+
readonly unreadable: boolean;
|
|
156
|
+
}
|
|
157
|
+
/** Read a tail chunk into the facts an appender needs. `partial` ⇒ the chunk starts mid-file. */
|
|
158
|
+
export declare function readTailInfo(tailText: string, opts?: {
|
|
159
|
+
readonly partial?: boolean;
|
|
160
|
+
}): LogTail;
|
|
161
|
+
/** An empty log — what an appender assumes when the file is absent. */
|
|
162
|
+
export declare const EMPTY_LOG_TAIL: LogTail;
|
|
163
|
+
/**
|
|
164
|
+
* The exact text to append for a run of records: chained, newline-terminated, and preceded by a
|
|
165
|
+
* newline when the file ends mid-line. THE one place that knows how to extend one of these logs —
|
|
166
|
+
* the recall hook and the guard audit must not each carry their own copy of this reasoning.
|
|
167
|
+
*/
|
|
168
|
+
export declare function appendChainedLines(records: readonly object[], tail?: LogTail): string;
|
|
169
|
+
/**
|
|
170
|
+
* The chain fields the next appended record must carry, derived from the last line ALONE.
|
|
171
|
+
*
|
|
172
|
+
* TOTAL by construction — it cannot throw for any input, because the apply-leg hook's top safety
|
|
173
|
+
* property is never-block (ADR-001 D2). Every unreadable shape resolves the same way: start a fresh
|
|
174
|
+
* segment AND record the discontinuity, so a break is visible instead of silently healed (D4).
|
|
175
|
+
*
|
|
176
|
+
* - no last line (new/empty file) → genesis, no marker: this is a chain START
|
|
177
|
+
* - last line is an unchained record → genesis, no marker: the chain starts mid-file (FR-5)
|
|
178
|
+
* - last line is a chained record → `seq + 1`, linked to that line's hash
|
|
179
|
+
* - last line is unreadable / has a bad `seq` → genesis + `chainReset: true` (FR-3)
|
|
180
|
+
*/
|
|
181
|
+
export declare function nextChainFields(lastLine: string | undefined, opts?: {
|
|
182
|
+
readonly forceReset?: boolean;
|
|
183
|
+
}): ChainFields;
|
|
184
|
+
/** Append the chain fields to a record. Fields go LAST so readers that whitelist keys are unaffected. */
|
|
185
|
+
export declare function withChainFields<T extends object>(record: T, fields: ChainFields): T & ChainFields;
|
|
186
|
+
/**
|
|
187
|
+
* Serialise a run of records into chained lines (no trailing newline on each), continuing from
|
|
188
|
+
* `lastLine`. Used both by the appenders (1..3 records per prompt) and by the rewriters.
|
|
189
|
+
*/
|
|
190
|
+
export declare function chainRecordLines(records: readonly object[], lastLine: string | undefined, opts?: {
|
|
191
|
+
readonly forceReset?: boolean;
|
|
192
|
+
}): string[];
|
|
193
|
+
/**
|
|
194
|
+
* Default event weight of a line (ADR-002 decision 4): the ledger itself weighs nothing, an
|
|
195
|
+
* aggregate weighs the reads it folded, anything else is one event.
|
|
196
|
+
*/
|
|
197
|
+
export declare function defaultEventWeight(record: Record<string, unknown>): number;
|
|
198
|
+
/**
|
|
199
|
+
* Build the chained lines of a full rewrite: a {@link EventChainLedger} first, then the records.
|
|
200
|
+
*
|
|
201
|
+
* `sourceEvents` must be measured from the INPUT, before aggregation — a number derived from the
|
|
202
|
+
* output can never disagree with it, which is the whole point (ADR-002).
|
|
203
|
+
*/
|
|
204
|
+
export declare function chainRewrite(records: readonly object[], opts: {
|
|
205
|
+
readonly sourceEvents: number;
|
|
206
|
+
readonly droppedEvents?: number;
|
|
207
|
+
readonly compactedAt: string;
|
|
208
|
+
}): string[];
|
|
209
|
+
/** Total event weight of a JSONL text — the measurement a rewriter records as `sourceEvents`. */
|
|
210
|
+
export declare function eventWeightOfText(text: string, weightOf?: (record: Record<string, unknown>) => number): number;
|
|
211
|
+
export interface VerifyEventChainOptions {
|
|
212
|
+
readonly eventWeight?: (record: Record<string, unknown>) => number;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Verify a chained log. PURE: hand it the lines, get back every defect it can name.
|
|
216
|
+
*
|
|
217
|
+
* A file that has never been chained verifies OK with `preChainPrefix === lines` — records written
|
|
218
|
+
* before chaining existed are legal, and the uncovered prefix is reported as a count rather than
|
|
219
|
+
* flagged (FR-5). Once the chain starts, an unchained record after it is a hole (`BrokenLink`).
|
|
220
|
+
*/
|
|
221
|
+
export declare function verifyEventChain(lines: readonly string[], opts?: VerifyEventChainOptions): EventChainVerification;
|
|
222
|
+
/**
|
|
223
|
+
* What a rewriter must observe about the live file to know nobody appended behind its back.
|
|
224
|
+
*
|
|
225
|
+
* A read → compute → temp → rename rewrite has a window: an append landing after the read is
|
|
226
|
+
* OVERWRITTEN by the rename, and — because it was never in the input the ledger measured — verify
|
|
227
|
+
* reports the result as perfectly clean. Silent loss, invisible to the very check built to see it.
|
|
228
|
+
*/
|
|
229
|
+
export interface RewriteSnapshot {
|
|
230
|
+
readonly bytes: number;
|
|
231
|
+
readonly lines: number;
|
|
232
|
+
readonly lastLine: string | undefined;
|
|
233
|
+
/** FNV over the WHOLE text: bytes+lines+lastLine miss an equal-length edit to a non-tail line
|
|
234
|
+
* (Codex re-QE HIGH) — only a full-content hash makes "unchanged" mean unchanged. */
|
|
235
|
+
readonly textHash: string;
|
|
236
|
+
}
|
|
237
|
+
export declare function rewriteSnapshot(text: string): RewriteSnapshot;
|
|
238
|
+
/** True when the live file is byte-for-byte where the snapshot left it. */
|
|
239
|
+
export declare function rewriteSnapshotUnchanged(a: RewriteSnapshot, b: RewriteSnapshot): boolean;
|
|
240
|
+
export type GuardedRewriteStatus =
|
|
241
|
+
/** The rewrite landed. */
|
|
242
|
+
'rewritten'
|
|
243
|
+
/** Another rewriter holds the lock — this one did nothing, which is correct. */
|
|
244
|
+
| 'locked'
|
|
245
|
+
/** Appends kept landing mid-rewrite; nothing was renamed. NO DATA WAS LOST. */
|
|
246
|
+
| 'raced'
|
|
247
|
+
/** The input's chain is already defective; laundering it into a clean rewrite is refused (AM-2). */
|
|
248
|
+
| 'refused-dirty'
|
|
249
|
+
/** The file could not be read. */
|
|
250
|
+
| 'unreadable'
|
|
251
|
+
/** The rewrite produced nothing usable; the file is left alone. */
|
|
252
|
+
| 'empty';
|
|
253
|
+
export interface GuardedRewriteResult {
|
|
254
|
+
readonly status: GuardedRewriteStatus;
|
|
255
|
+
readonly attempts: number;
|
|
256
|
+
/** Populated for `refused-dirty` so the caller can say WHY, loudly. */
|
|
257
|
+
readonly defects: readonly EventChainDefect[];
|
|
258
|
+
}
|
|
259
|
+
export interface GuardedRewriteIo {
|
|
260
|
+
/** Read the whole live log. `undefined` ⇒ unreadable. */
|
|
261
|
+
readonly read: () => string | undefined;
|
|
262
|
+
/** Write to a temp file and atomically rename it over the log. */
|
|
263
|
+
readonly replace: (text: string) => void;
|
|
264
|
+
/** Take the rewrite lock. `false` ⇒ someone else owns it. */
|
|
265
|
+
readonly acquireLock: () => boolean;
|
|
266
|
+
readonly releaseLock: () => void;
|
|
267
|
+
}
|
|
268
|
+
/** A rewrite proposal: the new text, plus whatever made the rewriter refuse. */
|
|
269
|
+
export interface RewriteProposal {
|
|
270
|
+
readonly text: string;
|
|
271
|
+
readonly refusedDirty?: boolean;
|
|
272
|
+
readonly defects?: readonly EventChainDefect[];
|
|
273
|
+
}
|
|
274
|
+
export declare const DEFAULT_REWRITE_ATTEMPTS = 3;
|
|
275
|
+
/**
|
|
276
|
+
* Run a whole-file rewrite so that a concurrent append can never be silently overwritten.
|
|
277
|
+
*
|
|
278
|
+
* Three guards, in order:
|
|
279
|
+
* 1. an exclusive lock, so two rewriters cannot interleave at all;
|
|
280
|
+
* 2. a re-read of the live file after computing the new text and BEFORE the rename — if it moved,
|
|
281
|
+
* the attempt is ABANDONED and retried against the newer file, so the append is folded in
|
|
282
|
+
* rather than lost;
|
|
283
|
+
* 3. a bounded attempt count — a log under constant append is left alone, never truncated.
|
|
284
|
+
*
|
|
285
|
+
* HONEST RESIDUAL (state it, do not paper over it): the re-read narrows the window to the interval
|
|
286
|
+
* between the final read and the `rename` syscall; it does not close it, because a conditional
|
|
287
|
+
* rename is not an operation the filesystem offers. What it removes is the wide window (the whole
|
|
288
|
+
* parse + compact + write) that made loss likely rather than rare.
|
|
289
|
+
*
|
|
290
|
+
* Pure orchestration — all IO is injected, which is what makes the race testable deterministically.
|
|
291
|
+
*/
|
|
292
|
+
export declare function guardedRewrite(io: GuardedRewriteIo, propose: (text: string) => RewriteProposal, opts?: {
|
|
293
|
+
readonly attempts?: number;
|
|
294
|
+
}): GuardedRewriteResult;
|
|
295
|
+
/** Convenience wrapper for callers holding the whole file. */
|
|
296
|
+
export declare function verifyEventChainText(text: string, opts?: VerifyEventChainOptions): EventChainVerification;
|
|
297
|
+
/**
|
|
298
|
+
* One line an operator can read. Always carries {@link EVENT_CHAIN_SCOPE} so no surface can print a
|
|
299
|
+
* chain verdict without also printing what it does and does not mean.
|
|
300
|
+
*/
|
|
301
|
+
export declare function renderEventChainVerification(v: EventChainVerification, label: string): string;
|
|
302
|
+
//# sourceMappingURL=event-chain.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-chain.d.ts","sourceRoot":"","sources":["../src/event-chain.ts"],"names":[],"mappings":"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"}
|