instar 1.3.570 → 1.3.571
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/server.d.ts.map +1 -1
- package/dist/commands/server.js +116 -28
- package/dist/commands/server.js.map +1 -1
- package/dist/core/CoherenceJournal.d.ts +46 -0
- package/dist/core/CoherenceJournal.d.ts.map +1 -1
- package/dist/core/CoherenceJournal.js +94 -2
- package/dist/core/CoherenceJournal.js.map +1 -1
- package/dist/core/JournalSyncApplier.d.ts +22 -0
- package/dist/core/JournalSyncApplier.d.ts.map +1 -1
- package/dist/core/JournalSyncApplier.js +39 -2
- package/dist/core/JournalSyncApplier.js.map +1 -1
- package/dist/core/ReplicatedPeerStreamReader.d.ts +97 -0
- package/dist/core/ReplicatedPeerStreamReader.d.ts.map +1 -0
- package/dist/core/ReplicatedPeerStreamReader.js +274 -0
- package/dist/core/ReplicatedPeerStreamReader.js.map +1 -0
- package/dist/core/ReplicatedRecordEmitter.d.ts +102 -0
- package/dist/core/ReplicatedRecordEmitter.d.ts.map +1 -0
- package/dist/core/ReplicatedRecordEmitter.js +122 -0
- package/dist/core/ReplicatedRecordEmitter.js.map +1 -0
- package/dist/core/ws2SendWiring.d.ts +52 -0
- package/dist/core/ws2SendWiring.d.ts.map +1 -0
- package/dist/core/ws2SendWiring.js +71 -0
- package/dist/core/ws2SendWiring.js.map +1 -0
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +2 -2
- package/upgrades/1.3.571.md +64 -0
- package/upgrades/side-effects/ws2-send-side-emission.md +40 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JournalSyncApplier.js","sourceRoot":"","sources":["../../src/core/JournalSyncApplier.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"JournalSyncApplier.js","sourceRoot":"","sources":["../../src/core/JournalSyncApplier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReplicatedPeerStreamReader — materializes a replicated store's per-origin records
|
|
3
|
+
* from the coherence-journal streams on disk (WS2 send-side, the union-read half).
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/WS2-SEND-SIDE-EMISSION-SPEC.md §3.3 + §3.4; the substrate is
|
|
6
|
+
* docs/specs/multi-machine-replicated-store-foundation.md §7.1 (namespaced per-origin
|
|
7
|
+
* storage), §7.2 (the union the reader merges).
|
|
8
|
+
*
|
|
9
|
+
* THE GAP THIS CLOSES: `ReplicatedStoreReader.loadOriginRecords` returned only the OWN
|
|
10
|
+
* origin, so even a correctly-received peer record (durably written by
|
|
11
|
+
* JournalSyncApplier to `peers/<M>.<kind>.jsonl`) was invisible to a read. This reader
|
|
12
|
+
* is the seam that makes the union real: it reads the OWN stream
|
|
13
|
+
* (`<self>.<kind>.jsonl` + archives) AND every peer replica stream
|
|
14
|
+
* (`peers/<M>.<kind>.jsonl` + archives; quarantine + meta excluded), validates each
|
|
15
|
+
* line through the SAME `validateReplicatedEnvelope` + store schema the writer used,
|
|
16
|
+
* and folds to the LATEST record per `(origin, recordKey)` by HLC-max. A delete is a
|
|
17
|
+
* tombstone (kept) so the union's delete-resolution + resurrection guard work.
|
|
18
|
+
*
|
|
19
|
+
* It supplies three seams to the rest of the system:
|
|
20
|
+
* - `loadOriginRecords(store, recordKey)` + `listRecordKeys(store)` — the
|
|
21
|
+
* ReplicatedStoreReader seams (the no-clobber union's per-origin input).
|
|
22
|
+
* - `loadWitness(store, recordKey)` — the emitter's `observed` source (the MAX HLC
|
|
23
|
+
* over every origin record held for the key — own prior + applied peers).
|
|
24
|
+
* - `loadOwnEntries(store, origin)` — the snapshot-serve seam (raw OWN entries by
|
|
25
|
+
* kind), replacing the `loadOwnEntries: () => ({})` stub.
|
|
26
|
+
*
|
|
27
|
+
* PURE-ish: all I/O is the injected `fsImpl` (defaults to node:fs); no Date, no
|
|
28
|
+
* network. Bounded — replicated memory stores are small (per-kind retention caps), and
|
|
29
|
+
* the read ceiling mirrors the applier's SERVE_READ_BYTE_CEILING.
|
|
30
|
+
*/
|
|
31
|
+
import { type JournalFs } from './CoherenceJournal.js';
|
|
32
|
+
import { type HlcTimestamp } from './HybridLogicalClock.js';
|
|
33
|
+
import { type ReplicatedKindRegistry } from './ReplicatedRecordEnvelope.js';
|
|
34
|
+
import type { OriginRecord } from './UnionReader.js';
|
|
35
|
+
import type { RawJournalEntry } from './StoreSnapshot.js';
|
|
36
|
+
export interface ReplicatedPeerStreamReaderConfig {
|
|
37
|
+
/** Absolute path to the agent's `.instar/` directory (the stateDir). */
|
|
38
|
+
stateDir: string;
|
|
39
|
+
/** The replicated-kind registry — resolves store → kind + the store schema. */
|
|
40
|
+
registry: ReplicatedKindRegistry;
|
|
41
|
+
/** This machine's id (the OWN origin). */
|
|
42
|
+
selfMachineId: string;
|
|
43
|
+
/** Optional fs seam for fault-injection tests. Defaults to node:fs. */
|
|
44
|
+
fsImpl?: JournalFs;
|
|
45
|
+
}
|
|
46
|
+
export declare class ReplicatedPeerStreamReader {
|
|
47
|
+
private readonly stateDir;
|
|
48
|
+
private readonly registry;
|
|
49
|
+
private readonly selfMachineId;
|
|
50
|
+
private readonly io;
|
|
51
|
+
constructor(config: ReplicatedPeerStreamReaderConfig);
|
|
52
|
+
/**
|
|
53
|
+
* Every origin's CURRENT record for (store, recordKey) — the own stream + each peer
|
|
54
|
+
* replica namespace, ONE record per origin (the latest by HLC, a delete kept as a
|
|
55
|
+
* tombstone). The union reader merges these via the no-clobber rule. A single-machine
|
|
56
|
+
* install returns only the own origin (so the union is a strict no-op = that record).
|
|
57
|
+
*/
|
|
58
|
+
loadOriginRecords(store: string, recordKey: string): OriginRecord[];
|
|
59
|
+
/** Every recordKey the store currently holds across ALL origins (for readAll). */
|
|
60
|
+
listRecordKeys(store: string): string[];
|
|
61
|
+
/**
|
|
62
|
+
* The MAX HLC over every origin record this machine currently holds for
|
|
63
|
+
* (store, recordKey) — own prior + applied peers. The author stamps this as the
|
|
64
|
+
* record's `observed` witness. Returns undefined when none is held (first write of
|
|
65
|
+
* the key) ⇒ the author omits `observed` ⇒ flag-on-conflict (the safe direction).
|
|
66
|
+
* Sound: it only witnesses a version provably on disk, so a not-yet-pulled peer
|
|
67
|
+
* version is absent here and the merge flags concurrent rather than silently
|
|
68
|
+
* resolving (§7.2 err-toward-flag).
|
|
69
|
+
*/
|
|
70
|
+
loadWitness(store: string, recordKey: string): HlcTimestamp | undefined;
|
|
71
|
+
/**
|
|
72
|
+
* The OWN-stream raw entries for `store`, keyed by contributing journal kind — the
|
|
73
|
+
* single-origin snapshot input (§6). `origin` MUST be this machine (single-origin,
|
|
74
|
+
* §6.1); a request for any other origin returns `{}` (we only serve what we
|
|
75
|
+
* authored). Reads the own current + archive streams; returns ALL entries (the
|
|
76
|
+
* materializer folds to the latest per recordKey and computes the seq watermark).
|
|
77
|
+
*/
|
|
78
|
+
loadOwnEntries(store: string, origin: string): Record<string, RawJournalEntry[]>;
|
|
79
|
+
/**
|
|
80
|
+
* Build `recordKey → (origin → latest OriginRecord)` for a store by reading the own
|
|
81
|
+
* stream + every peer replica stream and folding by HLC-max per (origin, recordKey).
|
|
82
|
+
* Read FRESH each call (no cache) so a write-then-read is always consistent — the
|
|
83
|
+
* stores are small + bounded, so the scan is cheap.
|
|
84
|
+
*/
|
|
85
|
+
private materialize;
|
|
86
|
+
/** Read + tolerant-parse every JournalEntry from the given stream files. */
|
|
87
|
+
private readKindEntries;
|
|
88
|
+
private journalDir;
|
|
89
|
+
private peersDir;
|
|
90
|
+
/** Own current + archive stream files for (origin, kind), newest-first by stamp. */
|
|
91
|
+
private ownStreamFiles;
|
|
92
|
+
/** Every peer replica current + archive stream file for `kind` (quarantine excluded). */
|
|
93
|
+
private peerStreamFiles;
|
|
94
|
+
/** Archive files `<safe>.<kind>.<stamp>.jsonl` in `dir`, newest-first. */
|
|
95
|
+
private archivesFor;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=ReplicatedPeerStreamReader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReplicatedPeerStreamReader.d.ts","sourceRoot":"","sources":["../../src/core/ReplicatedPeerStreamReader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAKH,OAAO,EACL,KAAK,SAAS,EAKf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,EAEL,KAAK,sBAAsB,EAE5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAa1D,MAAM,WAAW,gCAAgC;IAC/C,wEAAwE;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,QAAQ,EAAE,sBAAsB,CAAC;IACjC,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,uEAAuE;IACvE,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAgCD,qBAAa,0BAA0B;IACrC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAY;gBAEnB,MAAM,EAAE,gCAAgC;IAcpD;;;;;OAKG;IACH,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE;IAKnE,kFAAkF;IAClF,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;IAMvC;;;;;;;;OAQG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAavE;;;;;;OAMG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC;IAoBhF;;;;;OAKG;IACH,OAAO,CAAC,WAAW;IAsCnB,4EAA4E;IAC5E,OAAO,CAAC,eAAe;IAWvB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,QAAQ;IAIhB,oFAAoF;IACpF,OAAO,CAAC,cAAc;IAUtB,yFAAyF;IACzF,OAAO,CAAC,eAAe;IAsBvB,0EAA0E;IAC1E,OAAO,CAAC,WAAW;CAgBpB"}
|
|
@@ -0,0 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReplicatedPeerStreamReader — materializes a replicated store's per-origin records
|
|
3
|
+
* from the coherence-journal streams on disk (WS2 send-side, the union-read half).
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/WS2-SEND-SIDE-EMISSION-SPEC.md §3.3 + §3.4; the substrate is
|
|
6
|
+
* docs/specs/multi-machine-replicated-store-foundation.md §7.1 (namespaced per-origin
|
|
7
|
+
* storage), §7.2 (the union the reader merges).
|
|
8
|
+
*
|
|
9
|
+
* THE GAP THIS CLOSES: `ReplicatedStoreReader.loadOriginRecords` returned only the OWN
|
|
10
|
+
* origin, so even a correctly-received peer record (durably written by
|
|
11
|
+
* JournalSyncApplier to `peers/<M>.<kind>.jsonl`) was invisible to a read. This reader
|
|
12
|
+
* is the seam that makes the union real: it reads the OWN stream
|
|
13
|
+
* (`<self>.<kind>.jsonl` + archives) AND every peer replica stream
|
|
14
|
+
* (`peers/<M>.<kind>.jsonl` + archives; quarantine + meta excluded), validates each
|
|
15
|
+
* line through the SAME `validateReplicatedEnvelope` + store schema the writer used,
|
|
16
|
+
* and folds to the LATEST record per `(origin, recordKey)` by HLC-max. A delete is a
|
|
17
|
+
* tombstone (kept) so the union's delete-resolution + resurrection guard work.
|
|
18
|
+
*
|
|
19
|
+
* It supplies three seams to the rest of the system:
|
|
20
|
+
* - `loadOriginRecords(store, recordKey)` + `listRecordKeys(store)` — the
|
|
21
|
+
* ReplicatedStoreReader seams (the no-clobber union's per-origin input).
|
|
22
|
+
* - `loadWitness(store, recordKey)` — the emitter's `observed` source (the MAX HLC
|
|
23
|
+
* over every origin record held for the key — own prior + applied peers).
|
|
24
|
+
* - `loadOwnEntries(store, origin)` — the snapshot-serve seam (raw OWN entries by
|
|
25
|
+
* kind), replacing the `loadOwnEntries: () => ({})` stub.
|
|
26
|
+
*
|
|
27
|
+
* PURE-ish: all I/O is the injected `fsImpl` (defaults to node:fs); no Date, no
|
|
28
|
+
* network. Bounded — replicated memory stores are small (per-kind retention caps), and
|
|
29
|
+
* the read ceiling mirrors the applier's SERVE_READ_BYTE_CEILING.
|
|
30
|
+
*/
|
|
31
|
+
import fs from 'node:fs';
|
|
32
|
+
import path from 'node:path';
|
|
33
|
+
import { sanitizeMachineId, readTailTolerant, } from './CoherenceJournal.js';
|
|
34
|
+
import { HybridLogicalClock } from './HybridLogicalClock.js';
|
|
35
|
+
import { validateReplicatedEnvelope, } from './ReplicatedRecordEnvelope.js';
|
|
36
|
+
/** The byte ceiling for one stream read (mirrors JournalSyncApplier.SERVE_READ_BYTE_CEILING). */
|
|
37
|
+
const READ_BYTE_CEILING = 64 * 1024 * 1024;
|
|
38
|
+
/** A counters bag that ignores every bump — the reader surfaces nothing per-field
|
|
39
|
+
* (a malformed replica line is simply dropped from the union, the safe direction). */
|
|
40
|
+
const NOOP_COUNTERS = {
|
|
41
|
+
bumpSchemaReject: () => { },
|
|
42
|
+
bumpDroppedField: () => { },
|
|
43
|
+
bumpJailReject: () => { },
|
|
44
|
+
};
|
|
45
|
+
function realFs() {
|
|
46
|
+
return {
|
|
47
|
+
openSync: fs.openSync,
|
|
48
|
+
writeSync: fs.writeSync,
|
|
49
|
+
fdatasyncSync: fs.fdatasyncSync,
|
|
50
|
+
closeSync: fs.closeSync,
|
|
51
|
+
existsSync: fs.existsSync,
|
|
52
|
+
statSync: fs.statSync,
|
|
53
|
+
renameSync: fs.renameSync,
|
|
54
|
+
writeFileSync: fs.writeFileSync,
|
|
55
|
+
readFileSync: fs.readFileSync,
|
|
56
|
+
readdirSync: fs.readdirSync,
|
|
57
|
+
truncateSync: fs.truncateSync,
|
|
58
|
+
mkdirSync: fs.mkdirSync,
|
|
59
|
+
readSync: fs.readSync,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function escapeRegExp(s) {
|
|
63
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
64
|
+
}
|
|
65
|
+
// RULE 3: EXEMPT — this is NOT a state-detector. ReplicatedPeerStreamReader reads
|
|
66
|
+
// the agent's OWN coherence-journal stream files (a fixed, self-authored JSONL format)
|
|
67
|
+
// and validates each line through validateReplicatedEnvelope. It does not parse
|
|
68
|
+
// provider/CLI output, does not detect external/environment state, and has no
|
|
69
|
+
// signature-matching that could drift across providers — it deterministically folds
|
|
70
|
+
// in-house journal entries by HLC. The "*Reader" name matches the Rule-3 pattern
|
|
71
|
+
// heuristic but the substance is an internal-format reader (mirrors the same exemption
|
|
72
|
+
// on ReplicatedStoreReader).
|
|
73
|
+
export class ReplicatedPeerStreamReader {
|
|
74
|
+
stateDir;
|
|
75
|
+
registry;
|
|
76
|
+
selfMachineId;
|
|
77
|
+
io;
|
|
78
|
+
constructor(config) {
|
|
79
|
+
if (!config)
|
|
80
|
+
throw new Error('ReplicatedPeerStreamReader: config required');
|
|
81
|
+
if (!config.registry)
|
|
82
|
+
throw new Error('ReplicatedPeerStreamReader: registry required (not null)');
|
|
83
|
+
if (typeof config.selfMachineId !== 'string' || config.selfMachineId.length === 0) {
|
|
84
|
+
throw new Error('ReplicatedPeerStreamReader: selfMachineId must be a non-empty string');
|
|
85
|
+
}
|
|
86
|
+
this.stateDir = config.stateDir;
|
|
87
|
+
this.registry = config.registry;
|
|
88
|
+
this.selfMachineId = config.selfMachineId;
|
|
89
|
+
this.io = config.fsImpl ?? realFs();
|
|
90
|
+
}
|
|
91
|
+
// ── The ReplicatedStoreReader seams ────────────────────────────────────────
|
|
92
|
+
/**
|
|
93
|
+
* Every origin's CURRENT record for (store, recordKey) — the own stream + each peer
|
|
94
|
+
* replica namespace, ONE record per origin (the latest by HLC, a delete kept as a
|
|
95
|
+
* tombstone). The union reader merges these via the no-clobber rule. A single-machine
|
|
96
|
+
* install returns only the own origin (so the union is a strict no-op = that record).
|
|
97
|
+
*/
|
|
98
|
+
loadOriginRecords(store, recordKey) {
|
|
99
|
+
const byOrigin = this.materialize(store).get(recordKey);
|
|
100
|
+
return byOrigin ? [...byOrigin.values()] : [];
|
|
101
|
+
}
|
|
102
|
+
/** Every recordKey the store currently holds across ALL origins (for readAll). */
|
|
103
|
+
listRecordKeys(store) {
|
|
104
|
+
return [...this.materialize(store).keys()];
|
|
105
|
+
}
|
|
106
|
+
// ── The emitter `observed`-witness seam (§7.2) ─────────────────────────────
|
|
107
|
+
/**
|
|
108
|
+
* The MAX HLC over every origin record this machine currently holds for
|
|
109
|
+
* (store, recordKey) — own prior + applied peers. The author stamps this as the
|
|
110
|
+
* record's `observed` witness. Returns undefined when none is held (first write of
|
|
111
|
+
* the key) ⇒ the author omits `observed` ⇒ flag-on-conflict (the safe direction).
|
|
112
|
+
* Sound: it only witnesses a version provably on disk, so a not-yet-pulled peer
|
|
113
|
+
* version is absent here and the merge flags concurrent rather than silently
|
|
114
|
+
* resolving (§7.2 err-toward-flag).
|
|
115
|
+
*/
|
|
116
|
+
loadWitness(store, recordKey) {
|
|
117
|
+
const records = this.loadOriginRecords(store, recordKey);
|
|
118
|
+
let max;
|
|
119
|
+
for (const r of records) {
|
|
120
|
+
if (max === undefined || HybridLogicalClock.compare(r.envelope.hlc, max) > 0) {
|
|
121
|
+
max = r.envelope.hlc;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
return max;
|
|
125
|
+
}
|
|
126
|
+
// ── The snapshot-serve seam (replaces loadOwnEntries: () => ({})) ──────────
|
|
127
|
+
/**
|
|
128
|
+
* The OWN-stream raw entries for `store`, keyed by contributing journal kind — the
|
|
129
|
+
* single-origin snapshot input (§6). `origin` MUST be this machine (single-origin,
|
|
130
|
+
* §6.1); a request for any other origin returns `{}` (we only serve what we
|
|
131
|
+
* authored). Reads the own current + archive streams; returns ALL entries (the
|
|
132
|
+
* materializer folds to the latest per recordKey and computes the seq watermark).
|
|
133
|
+
*/
|
|
134
|
+
loadOwnEntries(store, origin) {
|
|
135
|
+
const reg = this.registry.getByStore(store);
|
|
136
|
+
if (!reg)
|
|
137
|
+
return {};
|
|
138
|
+
// Single-origin: only serve OUR OWN authored stream.
|
|
139
|
+
if (origin !== this.selfMachineId)
|
|
140
|
+
return {};
|
|
141
|
+
const kind = reg.kind;
|
|
142
|
+
const entries = this.readKindEntries(this.ownStreamFiles(origin, kind));
|
|
143
|
+
if (entries.length === 0)
|
|
144
|
+
return {};
|
|
145
|
+
const raw = entries.map((e) => ({
|
|
146
|
+
seq: e.seq,
|
|
147
|
+
ts: e.ts,
|
|
148
|
+
machine: e.machine,
|
|
149
|
+
kind: e.kind,
|
|
150
|
+
data: e.data,
|
|
151
|
+
}));
|
|
152
|
+
return { [kind]: raw };
|
|
153
|
+
}
|
|
154
|
+
// ── Materialization (own + peer streams → latest per (origin, recordKey)) ──
|
|
155
|
+
/**
|
|
156
|
+
* Build `recordKey → (origin → latest OriginRecord)` for a store by reading the own
|
|
157
|
+
* stream + every peer replica stream and folding by HLC-max per (origin, recordKey).
|
|
158
|
+
* Read FRESH each call (no cache) so a write-then-read is always consistent — the
|
|
159
|
+
* stores are small + bounded, so the scan is cheap.
|
|
160
|
+
*/
|
|
161
|
+
materialize(store) {
|
|
162
|
+
const out = new Map();
|
|
163
|
+
const reg = this.registry.getByStore(store);
|
|
164
|
+
if (!reg)
|
|
165
|
+
return out;
|
|
166
|
+
const kind = reg.kind;
|
|
167
|
+
const schema = reg.schema;
|
|
168
|
+
const files = [
|
|
169
|
+
...this.ownStreamFiles(this.selfMachineId, kind),
|
|
170
|
+
...this.peerStreamFiles(kind),
|
|
171
|
+
];
|
|
172
|
+
for (const file of files) {
|
|
173
|
+
const entries = this.readKindEntries([file]);
|
|
174
|
+
for (const entry of entries) {
|
|
175
|
+
if (entry.kind !== kind)
|
|
176
|
+
continue;
|
|
177
|
+
const data = entry.data;
|
|
178
|
+
if (!data || typeof data !== 'object')
|
|
179
|
+
continue;
|
|
180
|
+
const result = validateReplicatedEnvelope(data, schema, NOOP_COUNTERS);
|
|
181
|
+
if (!result.ok)
|
|
182
|
+
continue;
|
|
183
|
+
const origin = result.envelope.origin;
|
|
184
|
+
const recordKey = result.envelope.recordKey;
|
|
185
|
+
const rec = { origin, envelope: result.envelope, data: result.storeFields };
|
|
186
|
+
let byOrigin = out.get(recordKey);
|
|
187
|
+
if (!byOrigin) {
|
|
188
|
+
byOrigin = new Map();
|
|
189
|
+
out.set(recordKey, byOrigin);
|
|
190
|
+
}
|
|
191
|
+
const prior = byOrigin.get(origin);
|
|
192
|
+
// Keep the LATEST record per (origin, recordKey) by HLC-max (a delete is a
|
|
193
|
+
// tombstone — kept, so the union resolves delete↔put deterministically).
|
|
194
|
+
if (!prior || HybridLogicalClock.compare(rec.envelope.hlc, prior.envelope.hlc) > 0) {
|
|
195
|
+
byOrigin.set(origin, rec);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
return out;
|
|
200
|
+
}
|
|
201
|
+
/** Read + tolerant-parse every JournalEntry from the given stream files. */
|
|
202
|
+
readKindEntries(files) {
|
|
203
|
+
const out = [];
|
|
204
|
+
for (const f of files) {
|
|
205
|
+
const read = readTailTolerant(this.io, f, Number.MAX_SAFE_INTEGER, READ_BYTE_CEILING);
|
|
206
|
+
for (const e of read.entries)
|
|
207
|
+
out.push(e);
|
|
208
|
+
}
|
|
209
|
+
return out;
|
|
210
|
+
}
|
|
211
|
+
// ── Path enumeration ───────────────────────────────────────────────────────
|
|
212
|
+
journalDir() {
|
|
213
|
+
return path.join(this.stateDir, 'state', 'coherence-journal');
|
|
214
|
+
}
|
|
215
|
+
peersDir() {
|
|
216
|
+
return path.join(this.journalDir(), 'peers');
|
|
217
|
+
}
|
|
218
|
+
/** Own current + archive stream files for (origin, kind), newest-first by stamp. */
|
|
219
|
+
ownStreamFiles(origin, kind) {
|
|
220
|
+
const safe = sanitizeMachineId(origin);
|
|
221
|
+
const dir = this.journalDir();
|
|
222
|
+
const current = path.join(dir, `${safe}.${kind}.jsonl`);
|
|
223
|
+
const out = [];
|
|
224
|
+
if (this.io.existsSync(current))
|
|
225
|
+
out.push(current);
|
|
226
|
+
out.push(...this.archivesFor(dir, safe, kind));
|
|
227
|
+
return out;
|
|
228
|
+
}
|
|
229
|
+
/** Every peer replica current + archive stream file for `kind` (quarantine excluded). */
|
|
230
|
+
peerStreamFiles(kind) {
|
|
231
|
+
const dir = this.peersDir();
|
|
232
|
+
let names;
|
|
233
|
+
try {
|
|
234
|
+
names = this.io.readdirSync(dir);
|
|
235
|
+
}
|
|
236
|
+
catch { /* @silent-fallback-ok: peers dir absent = no peers yet (single-machine / fresh) — an empty union, never an error. */
|
|
237
|
+
return [];
|
|
238
|
+
}
|
|
239
|
+
const k = escapeRegExp(kind);
|
|
240
|
+
// `<id>.<kind>.jsonl` (current) OR `<id>.<kind>.<digits>.jsonl` (archive). The
|
|
241
|
+
// `<id>` is greedy (`.+`) and may itself contain dots. Quarantine files
|
|
242
|
+
// (`<id>.<kind>.quarantine.<digits>.jsonl`) are EXCLUDED — they are a fenced
|
|
243
|
+
// old incarnation, never part of the live union.
|
|
244
|
+
const re = new RegExp(`^(.+)\\.${k}(?:\\.\\d+)?\\.jsonl$`);
|
|
245
|
+
const out = [];
|
|
246
|
+
for (const n of names) {
|
|
247
|
+
if (n.includes('.quarantine.'))
|
|
248
|
+
continue;
|
|
249
|
+
if (re.test(n))
|
|
250
|
+
out.push(path.join(dir, n));
|
|
251
|
+
}
|
|
252
|
+
return out;
|
|
253
|
+
}
|
|
254
|
+
/** Archive files `<safe>.<kind>.<stamp>.jsonl` in `dir`, newest-first. */
|
|
255
|
+
archivesFor(dir, safe, kind) {
|
|
256
|
+
let names;
|
|
257
|
+
try {
|
|
258
|
+
names = this.io.readdirSync(dir);
|
|
259
|
+
}
|
|
260
|
+
catch { /* @silent-fallback-ok: dir absent = nothing to read — empty, never an error. */
|
|
261
|
+
return [];
|
|
262
|
+
}
|
|
263
|
+
const re = new RegExp(`^${escapeRegExp(`${safe}.${kind}.`)}(\\d+)\\.jsonl$`);
|
|
264
|
+
const archives = [];
|
|
265
|
+
for (const n of names) {
|
|
266
|
+
const m = re.exec(n);
|
|
267
|
+
if (m)
|
|
268
|
+
archives.push({ file: path.join(dir, n), stamp: Number(m[1]) });
|
|
269
|
+
}
|
|
270
|
+
archives.sort((a, b) => b.stamp - a.stamp);
|
|
271
|
+
return archives.map((a) => a.file);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
//# sourceMappingURL=ReplicatedPeerStreamReader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReplicatedPeerStreamReader.js","sourceRoot":"","sources":["../../src/core/ReplicatedPeerStreamReader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ReplicatedRecordEmitter — the GENERIC journal-backed SEND emitter (WS2 send-side).
|
|
3
|
+
*
|
|
4
|
+
* Spec: docs/specs/WS2-SEND-SIDE-EMISSION-SPEC.md §4; the substrate it rides is
|
|
5
|
+
* docs/specs/multi-machine-replicated-store-foundation.md §4 (the envelope +
|
|
6
|
+
* flag-gated emission) and §7.2 (the `observed` last-writer-witness).
|
|
7
|
+
*
|
|
8
|
+
* THE GAP THIS CLOSES: every memory manager already calls an internal
|
|
9
|
+
* `emitter.emitPut(record)` / `emitter.emitDelete(...)` hook on each write, behind a
|
|
10
|
+
* `*ReplicationEmitter | null` seam — but server.ts never constructed the concrete
|
|
11
|
+
* emitter those hooks call (it was deferred to "a later rollout stage" that never
|
|
12
|
+
* came), so the hooks fired into a no-op and nothing reached the journal own-streams.
|
|
13
|
+
* This class IS that concrete emitter; server.ts builds ONE and adapts it to each
|
|
14
|
+
* manager's emit seam (a tiny per-store adapter that names the store's
|
|
15
|
+
* `build*RecordData`).
|
|
16
|
+
*
|
|
17
|
+
* It is store-AGNOSTIC: `emit(store, recordKey, build)` resolves the store's journal
|
|
18
|
+
* kind from the injected `ReplicatedKindRegistry`, gates on
|
|
19
|
+
* `multiMachine.stateSync.<store>.enabled` (dark by default), stamps the HLC, derives
|
|
20
|
+
* the `observed` witness, asks the store's builder for the disclosure-minimized
|
|
21
|
+
* envelope `data`, and appends it via `CoherenceJournal.emitReplicatedRecord`. ONE
|
|
22
|
+
* generic path serves all 7 kinds; the only per-store thing is the builder closure.
|
|
23
|
+
*
|
|
24
|
+
* SAFETY: NEVER throws into the caller (the manager hooks are best-effort). A disabled
|
|
25
|
+
* store, an unregistered store, a degenerate (null) recordKey, a builder that returns
|
|
26
|
+
* null or throws (e.g. a record over its per-entry byte cap) — every one is a counted
|
|
27
|
+
* no-op, never an exception that would break the local write the agent is performing.
|
|
28
|
+
* Emission is SINGLE-ORIGIN by construction: it stamps `origin = this machine` and the
|
|
29
|
+
* journal writes only this machine's own stream (§6.1 anti-forgery holds end-to-end).
|
|
30
|
+
*/
|
|
31
|
+
import type { HlcTimestamp } from './HybridLogicalClock.js';
|
|
32
|
+
import { type ReplicatedKindRegistry, type StateSyncStores } from './ReplicatedRecordEnvelope.js';
|
|
33
|
+
/** The minimal journal seam the emitter needs (so it is unit-testable with a fake). */
|
|
34
|
+
export interface ReplicatedRecordEmitterJournal {
|
|
35
|
+
/** Append a built replicated-record envelope `data` for `kind` (no-op when the
|
|
36
|
+
* kind is not a registered replicated kind; never throws). */
|
|
37
|
+
emitReplicatedRecord(kind: string, data: Record<string, unknown>): void;
|
|
38
|
+
}
|
|
39
|
+
/** The minimal HLC seam (only `tick()` is needed on the author side). */
|
|
40
|
+
export interface ReplicatedRecordEmitterClock {
|
|
41
|
+
/** Local-event advance — strictly greater than every prior tick/receive (§3.2.1). */
|
|
42
|
+
tick(): HlcTimestamp;
|
|
43
|
+
}
|
|
44
|
+
/** A builder closure: produce the disclosure-minimized envelope `data` for this write
|
|
45
|
+
* given the freshly-ticked `hlc`, this machine's `origin`, and the `observed` witness
|
|
46
|
+
* (absent ⇒ no prior witness). Returns null to SKIP (a degenerate record with no
|
|
47
|
+
* stable identity surface). May THROW on an over-cap record — the emitter catches it. */
|
|
48
|
+
export type BuildRecordData = (hlc: HlcTimestamp, origin: string, observed: HlcTimestamp | undefined) => Record<string, unknown> | null;
|
|
49
|
+
/** The DI'd seams (asserted real, never null/no-op, by the wiring-integrity test). */
|
|
50
|
+
export interface ReplicatedRecordEmitterSeams {
|
|
51
|
+
/** The journal append sink. */
|
|
52
|
+
journal: ReplicatedRecordEmitterJournal;
|
|
53
|
+
/** The author-side HLC clock (persisted; one per machine). */
|
|
54
|
+
clock: ReplicatedRecordEmitterClock;
|
|
55
|
+
/** The replicated-kind registry — resolves store → journal kind; the emitter only
|
|
56
|
+
* emits a registered store. */
|
|
57
|
+
registry: ReplicatedKindRegistry;
|
|
58
|
+
/** This machine's origin id (stamped on every emitted record — single-origin). */
|
|
59
|
+
origin: string;
|
|
60
|
+
/** The per-store stateSync flags (the dark-by-default gate). A getter so a live
|
|
61
|
+
* config flip is honored without reconstructing the emitter. */
|
|
62
|
+
stores: () => StateSyncStores | undefined;
|
|
63
|
+
/**
|
|
64
|
+
* The last-writer-witness source (§7.2): the MAX HLC over every origin record this
|
|
65
|
+
* machine CURRENTLY holds on disk for (store, recordKey) — own prior + applied
|
|
66
|
+
* peers. Sound by construction: it can only witness a version provably on disk, so a
|
|
67
|
+
* not-yet-pulled peer version is simply absent ⇒ the merge flags concurrent
|
|
68
|
+
* (err-toward-flag), never a silent clobber. Returns undefined when none is held
|
|
69
|
+
* (the first write of a key) ⇒ `observed` omitted. Best-effort; throwing is caught.
|
|
70
|
+
*/
|
|
71
|
+
loadWitness: (store: string, recordKey: string) => HlcTimestamp | undefined;
|
|
72
|
+
/** Optional structured logger (default no-op). */
|
|
73
|
+
log?: (event: string, detail: Record<string, unknown>) => void;
|
|
74
|
+
}
|
|
75
|
+
/** Lifetime counters for observability (mirrors the journal's degradation style). */
|
|
76
|
+
export interface ReplicatedRecordEmitterStats {
|
|
77
|
+
/** Records appended to the journal. */
|
|
78
|
+
emitted: number;
|
|
79
|
+
/** No-ops because the store was disabled (dark). */
|
|
80
|
+
storeDisabled: number;
|
|
81
|
+
/** No-ops because the recordKey was null/degenerate or the builder returned null. */
|
|
82
|
+
skipped: number;
|
|
83
|
+
/** Builder/journal throws caught (never propagated to the manager). */
|
|
84
|
+
errors: number;
|
|
85
|
+
}
|
|
86
|
+
export declare class ReplicatedRecordEmitter {
|
|
87
|
+
private readonly seams;
|
|
88
|
+
private readonly stats;
|
|
89
|
+
constructor(seams: ReplicatedRecordEmitterSeams);
|
|
90
|
+
/** Read-only stats (for observability + the wiring-integrity assertions). */
|
|
91
|
+
getStats(): Readonly<ReplicatedRecordEmitterStats>;
|
|
92
|
+
/**
|
|
93
|
+
* Emit one replicated record for (store, recordKey). The single generic path for a
|
|
94
|
+
* put OR a delete — the only difference is the `build` closure (a put builder vs a
|
|
95
|
+
* tombstone builder). Never throws into the caller.
|
|
96
|
+
*
|
|
97
|
+
* Order (§4): dark gate → degenerate guard → witness → tick → build → append.
|
|
98
|
+
*/
|
|
99
|
+
emit(store: string, recordKey: string | null | undefined, build: BuildRecordData): void;
|
|
100
|
+
private log;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=ReplicatedRecordEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReplicatedRecordEmitter.d.ts","sourceRoot":"","sources":["../../src/core/ReplicatedRecordEmitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAEvC,uFAAuF;AACvF,MAAM,WAAW,8BAA8B;IAC7C;mEAC+D;IAC/D,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CACzE;AAED,yEAAyE;AACzE,MAAM,WAAW,4BAA4B;IAC3C,qFAAqF;IACrF,IAAI,IAAI,YAAY,CAAC;CACtB;AAED;;;0FAG0F;AAC1F,MAAM,MAAM,eAAe,GAAG,CAC5B,GAAG,EAAE,YAAY,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,YAAY,GAAG,SAAS,KAC/B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;AAEpC,sFAAsF;AACtF,MAAM,WAAW,4BAA4B;IAC3C,+BAA+B;IAC/B,OAAO,EAAE,8BAA8B,CAAC;IACxC,8DAA8D;IAC9D,KAAK,EAAE,4BAA4B,CAAC;IACpC;oCACgC;IAChC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf;qEACiE;IACjE,MAAM,EAAE,MAAM,eAAe,GAAG,SAAS,CAAC;IAC1C;;;;;;;OAOG;IACH,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;IAC5E,kDAAkD;IAClD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAChE;AAED,qFAAqF;AACrF,MAAM,WAAW,4BAA4B;IAC3C,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,qFAAqF;IACrF,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA+B;IACrD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAKpB;gBAEU,KAAK,EAAE,4BAA4B;IAkB/C,6EAA6E;IAC7E,QAAQ,IAAI,QAAQ,CAAC,4BAA4B,CAAC;IAIlD;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,eAAe,GAAG,IAAI;IA6CvF,OAAO,CAAC,GAAG;CAGZ"}
|