instar 1.3.514 → 1.3.516
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 +172 -2
- package/dist/commands/server.js.map +1 -1
- package/dist/config/ConfigDefaults.d.ts.map +1 -1
- package/dist/config/ConfigDefaults.js +11 -0
- package/dist/config/ConfigDefaults.js.map +1 -1
- package/dist/core/HybridLogicalClock.d.ts +200 -0
- package/dist/core/HybridLogicalClock.d.ts.map +1 -0
- package/dist/core/HybridLogicalClock.js +288 -0
- package/dist/core/HybridLogicalClock.js.map +1 -0
- package/dist/core/MeshRpc.d.ts +6 -0
- package/dist/core/MeshRpc.d.ts.map +1 -1
- package/dist/core/MeshRpc.js +8 -0
- package/dist/core/MeshRpc.js.map +1 -1
- package/dist/core/PoolLinkAssertion.d.ts +164 -0
- package/dist/core/PoolLinkAssertion.d.ts.map +1 -0
- package/dist/core/PoolLinkAssertion.js +184 -0
- package/dist/core/PoolLinkAssertion.js.map +1 -0
- package/dist/core/PoolLinkJtiStore.d.ts +48 -0
- package/dist/core/PoolLinkJtiStore.d.ts.map +1 -0
- package/dist/core/PoolLinkJtiStore.js +149 -0
- package/dist/core/PoolLinkJtiStore.js.map +1 -0
- package/dist/core/PoolViewProxy.d.ts +168 -0
- package/dist/core/PoolViewProxy.d.ts.map +1 -0
- package/dist/core/PoolViewProxy.js +208 -0
- package/dist/core/PoolViewProxy.js.map +1 -0
- package/dist/core/PostUpdateMigrator.d.ts +19 -0
- package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
- package/dist/core/PostUpdateMigrator.js +84 -0
- package/dist/core/PostUpdateMigrator.js.map +1 -1
- package/dist/core/devGatedFeatures.d.ts.map +1 -1
- package/dist/core/devGatedFeatures.js +6 -0
- package/dist/core/devGatedFeatures.js.map +1 -1
- package/dist/core/types.d.ts +45 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/scaffold/templates.d.ts.map +1 -1
- package/dist/scaffold/templates.js +6 -0
- package/dist/scaffold/templates.js.map +1 -1
- package/dist/server/AgentServer.d.ts +3 -0
- package/dist/server/AgentServer.d.ts.map +1 -1
- package/dist/server/AgentServer.js +3 -0
- package/dist/server/AgentServer.js.map +1 -1
- package/dist/server/routes.d.ts +38 -0
- package/dist/server/routes.d.ts.map +1 -1
- package/dist/server/routes.js +109 -1
- package/dist/server/routes.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +64 -64
- package/src/scaffold/templates.ts +6 -0
- package/upgrades/1.3.515.md +64 -0
- package/upgrades/1.3.516.md +55 -0
- package/upgrades/side-effects/multi-machine-seamlessness-ws44-pool-links.md +146 -0
- package/upgrades/side-effects/replicated-store-foundation-hlc-primitive.md +98 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigDefaults.d.ts","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"ConfigDefaults.d.ts","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAy/BH,MAAM,MAAM,SAAS,GAAG,iBAAiB,GAAG,YAAY,CAAC;AAEzD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAO7E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIlF;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAuC5D"}
|
|
@@ -612,6 +612,17 @@ const SHARED_DEFAULTS = {
|
|
|
612
612
|
// NOT named `enabled`, so it is outside the dev-agent dark-gate lint (which
|
|
613
613
|
// matches the literal `enabled: false` spelling only).
|
|
614
614
|
ws21PreferencesPool: false,
|
|
615
|
+
// WS4.4 "links that survive machine boundaries". DEV-AGENT DARK GATE:
|
|
616
|
+
// `ws44PoolLinks` is DELIBERATELY OMITTED here (not hardcoded false) so
|
|
617
|
+
// resolveDevAgentGate decides at runtime — LIVE on a development agent
|
|
618
|
+
// (dogfooding), DARK on the fleet until explicitly flipped on. Hardcoding
|
|
619
|
+
// `false` would force-dark even a dev agent (the PR #1001 bug). Registered
|
|
620
|
+
// in DEV_GATED_FEATURES (src/core/devGatedFeatures.ts). When dark, the
|
|
621
|
+
// /view/:id route is local-only (byte-for-byte today's behavior).
|
|
622
|
+
// WS4.4 (f) load-shed threshold: over this 1-min load-per-core, holder
|
|
623
|
+
// resolution serves last-cached (stale-tagged) instead of re-fanning-out.
|
|
624
|
+
// (A tunable, not a gate — a concrete default is correct here.)
|
|
625
|
+
ws44LoadShedLoadPerCore: 1.5,
|
|
615
626
|
},
|
|
616
627
|
sessionPool: {
|
|
617
628
|
enabled: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigDefaults.js","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConfigDefaults.js","sourceRoot":"","sources":["../../src/config/ConfigDefaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HybridLogicalClock — a pure, dependency-injected total-order clock (WS2
|
|
3
|
+
* replicated-store foundation, Component 1).
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/multi-machine-replicated-store-foundation.md §3 (the whole
|
|
6
|
+
* section), §10.2 (the maxDriftMs clamp invariant), §13 build order step 1,
|
|
7
|
+
* §15 risk-5/risk-6 (maxDriftMs sourcing — BLOCKER-5).
|
|
8
|
+
*
|
|
9
|
+
* HLC combines physical wall-clock time (so order tracks real time and is
|
|
10
|
+
* human-readable) with a logical counter (so causality survives clock skew and
|
|
11
|
+
* equal-millisecond ties). It is the load-bearing total order WS2 merges rely
|
|
12
|
+
* on: "merges order by HLC, never raw wall-clock" (master spec line 229).
|
|
13
|
+
*
|
|
14
|
+
* Design contract (§3.6 Purity + testability):
|
|
15
|
+
* - Imports NOTHING but its injected seams. No `fs`, no `Date` (only via the
|
|
16
|
+
* injected `now`), no network. Every operation is a pure function of
|
|
17
|
+
* `(last, input, now())`.
|
|
18
|
+
* - The clock (`now`), the `node` id, and persistence (`persist.load/save`)
|
|
19
|
+
* are constructor deps, so every dangerous property — monotonicity, the
|
|
20
|
+
* skew bound, restart-monotonicity — is unit-testable with in-memory fakes.
|
|
21
|
+
*
|
|
22
|
+
* Posture (§11): machine-local-by-design. Each machine has its own clock; the
|
|
23
|
+
* clocks CONVERGE via receive() but are never shared state. The HLC TIMESTAMPS
|
|
24
|
+
* are replicated (one per record, §4); the clock OBJECT is not.
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* An HLC value. Carried on each replicated record as the `hlc` field (§4).
|
|
28
|
+
* The triple `(physical, logical, node)` is a globally-unique, totally-ordered
|
|
29
|
+
* stamp (node ids are unique across the pool, so distinct-machine stamps are
|
|
30
|
+
* never "equal" in sort position — §3.3).
|
|
31
|
+
*/
|
|
32
|
+
export interface HlcTimestamp {
|
|
33
|
+
/** Physical time in ms since epoch (the LARGEST seen, not necessarily now). */
|
|
34
|
+
physical: number;
|
|
35
|
+
/** Logical counter — breaks ties at equal physical and advances under skew. */
|
|
36
|
+
logical: number;
|
|
37
|
+
/** Node (machine) id of the clock that STAMPED this timestamp. The
|
|
38
|
+
* tie-breaker of LAST resort and the carrier of the origin tag (§7). */
|
|
39
|
+
node: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The persistence seam (§3.5). Injected so crash-safety is unit-testable with
|
|
43
|
+
* an in-memory fake. `save` is expected to be ATOMIC (temp + rename) in the
|
|
44
|
+
* real implementation; the clock calls it on EVERY advance.
|
|
45
|
+
*/
|
|
46
|
+
export interface HlcPersistence {
|
|
47
|
+
/** Load the last durable stamp, or null if fresh (first boot). */
|
|
48
|
+
load(): HlcTimestamp | null;
|
|
49
|
+
/** Persist the last issued stamp atomically. Called on every advance. */
|
|
50
|
+
save(t: HlcTimestamp): void;
|
|
51
|
+
}
|
|
52
|
+
/** Constructor config (§3.2). */
|
|
53
|
+
export interface HybridLogicalClockConfig {
|
|
54
|
+
/** This machine's id — the `node` stamped on every timestamp this clock issues. */
|
|
55
|
+
node: string;
|
|
56
|
+
/** INJECTED physical-time source (ms since epoch). Tests pass a fake clock. */
|
|
57
|
+
now: () => number;
|
|
58
|
+
/**
|
|
59
|
+
* FIXED bounded-drift ceiling (§3.4, BLOCKER-5). Default 5 minutes, CLAMPED
|
|
60
|
+
* to [60s, 15min]. NOT derived from any "measured pool skew" — no such numeric
|
|
61
|
+
* quantity exists today (ClockSkewStatus is a 3-value categorical enum).
|
|
62
|
+
*/
|
|
63
|
+
maxDriftMs?: number;
|
|
64
|
+
/** Persistence seam (§3.5). Omitted ⇒ the clock keeps `last` only in memory. */
|
|
65
|
+
persist?: HlcPersistence;
|
|
66
|
+
/**
|
|
67
|
+
* Optional structured logger for the at-most-once breadcrumbs the spec
|
|
68
|
+
* mandates (a regressed-wall-clock-on-load note, §3.5; a clamp note). Defaults
|
|
69
|
+
* to a no-op so the primitive stays import-free.
|
|
70
|
+
*/
|
|
71
|
+
log?: (event: string, detail: Record<string, unknown>) => void;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* A rejected receive (§3.4). Returned (never thrown into the hot path silently)
|
|
75
|
+
* when a remote timestamp exceeds the pool-relative reference by more than the
|
|
76
|
+
* clamped maxDriftMs. The local clock is NOT advanced and the caller MUST
|
|
77
|
+
* quarantine the record (§5, failure-class `skew-suspicious`).
|
|
78
|
+
*/
|
|
79
|
+
export interface SkewRejection {
|
|
80
|
+
rejected: true;
|
|
81
|
+
reason: 'skew-ahead';
|
|
82
|
+
/** The remote timestamp that was rejected. */
|
|
83
|
+
remote: HlcTimestamp;
|
|
84
|
+
/** The pool-relative reference R the remote was measured against. */
|
|
85
|
+
reference: number;
|
|
86
|
+
/** The clamped drift ceiling that R + ceiling was exceeded by. */
|
|
87
|
+
maxDriftMs: number;
|
|
88
|
+
}
|
|
89
|
+
/** The result of receive(): either the merged stamp, or a typed rejection. */
|
|
90
|
+
export type ReceiveResult = {
|
|
91
|
+
rejected: false;
|
|
92
|
+
hlc: HlcTimestamp;
|
|
93
|
+
} | SkewRejection;
|
|
94
|
+
/** Options for a single receive() call (§3.4 pool-relative reference). */
|
|
95
|
+
export interface ReceiveOptions {
|
|
96
|
+
/**
|
|
97
|
+
* An OBSERVED pool-relative physical-time floor (e.g. the observed-pool-median
|
|
98
|
+
* physical time carried in the capacity heartbeat, §3.4). The drift check
|
|
99
|
+
* references `R = max(last.physical, poolReference ?? 0)`, NOT the bare local
|
|
100
|
+
* `now()` — so a receiver whose own NTP is behind does not falsely reject
|
|
101
|
+
* ahead-but-honest peers. Omitted ⇒ R = last.physical.
|
|
102
|
+
*/
|
|
103
|
+
poolReference?: number;
|
|
104
|
+
}
|
|
105
|
+
/** The default bounded-drift ceiling: 5 minutes (§3.4). */
|
|
106
|
+
export declare const DEFAULT_MAX_DRIFT_MS: number;
|
|
107
|
+
/** The floor of the maxDriftMs clamp (§3.4 / §10.2): 60 seconds. */
|
|
108
|
+
export declare const MIN_MAX_DRIFT_MS: number;
|
|
109
|
+
/** The ceiling of the maxDriftMs clamp (§3.4 / §10.2): 15 minutes. */
|
|
110
|
+
export declare const MAX_MAX_DRIFT_MS: number;
|
|
111
|
+
/**
|
|
112
|
+
* Clamp a configured maxDriftMs to the [60s, 15min] window (§3.4, §10.2).
|
|
113
|
+
*
|
|
114
|
+
* This is the helper `validateStateSyncInvariants` (§10.2) uses for the
|
|
115
|
+
* `maxDriftMs` knob: a value below the floor would start rejecting ordinary NTP
|
|
116
|
+
* jitter; a value above the ceiling would defeat the fast-clock defense. The
|
|
117
|
+
* spec's §10.2 invariant REJECTS an out-of-range value at config resolution;
|
|
118
|
+
* this clamp helper is the in-clock guard so the primitive is correct even if a
|
|
119
|
+
* caller hands it a raw value. A non-finite/undefined input falls back to the
|
|
120
|
+
* default.
|
|
121
|
+
*/
|
|
122
|
+
export declare function clampMaxDriftMs(value: number | undefined): number;
|
|
123
|
+
/** Type guard: is a receive() result a skew rejection? */
|
|
124
|
+
export declare function isSkewRejection(r: ReceiveResult): r is SkewRejection;
|
|
125
|
+
/**
|
|
126
|
+
* Serialize an HlcTimestamp to the compact wire/disk form (§3.5).
|
|
127
|
+
*
|
|
128
|
+
* Default form is a 3-field JSON object (carried on each record as `hlc`). The
|
|
129
|
+
* string form `"<physical>:<logical>:<node>"` is for embedding in a key — and
|
|
130
|
+
* because a node id MAY contain a `:`, the node is the LAST segment and parse
|
|
131
|
+
* splits on the FIRST TWO colons only (physical and logical are numeric and
|
|
132
|
+
* colon-free), so the round-trip is lossless for any node id.
|
|
133
|
+
*/
|
|
134
|
+
export declare function serializeHlc(t: HlcTimestamp): string;
|
|
135
|
+
/** Serialize to the compact key-string form `"<physical>:<logical>:<node>"`. */
|
|
136
|
+
export declare function serializeHlcKey(t: HlcTimestamp): string;
|
|
137
|
+
/**
|
|
138
|
+
* Parse the JSON object form (§3.5). Throws on malformed input — a record whose
|
|
139
|
+
* `hlc` cannot be parsed is a schema reject upstream, never a silent default.
|
|
140
|
+
*/
|
|
141
|
+
export declare function parseHlc(input: string): HlcTimestamp;
|
|
142
|
+
/** Parse the key-string form `"<physical>:<logical>:<node>"` (§3.5). */
|
|
143
|
+
export declare function parseHlcKey(input: string): HlcTimestamp;
|
|
144
|
+
/**
|
|
145
|
+
* Validate + narrow an unknown value to an HlcTimestamp. The single chokepoint
|
|
146
|
+
* both parsers and receive() funnel untrusted input through (§3.5): physical and
|
|
147
|
+
* logical must be finite non-negative integers; node must be a non-empty string.
|
|
148
|
+
*/
|
|
149
|
+
export declare function coerceHlc(raw: unknown): HlcTimestamp;
|
|
150
|
+
export declare class HybridLogicalClock {
|
|
151
|
+
private readonly node;
|
|
152
|
+
private readonly now;
|
|
153
|
+
private readonly maxDriftMs;
|
|
154
|
+
private readonly persist?;
|
|
155
|
+
private readonly log;
|
|
156
|
+
/** The largest stamp this clock has issued (the floor for every advance). */
|
|
157
|
+
private last;
|
|
158
|
+
constructor(config: HybridLogicalClockConfig);
|
|
159
|
+
/** The largest stamp issued so far (a copy — never the internal reference). */
|
|
160
|
+
current(): HlcTimestamp;
|
|
161
|
+
/** The clamped drift ceiling this clock enforces (§3.4). */
|
|
162
|
+
getMaxDriftMs(): number;
|
|
163
|
+
/**
|
|
164
|
+
* tick() — local-event advance (§3.2.1). Called when THIS machine AUTHORS a
|
|
165
|
+
* record. `pt = max(now(), last.physical)`; `logical = (pt === last.physical)
|
|
166
|
+
* ? last.logical + 1 : 0`. Persists and returns the new stamp.
|
|
167
|
+
*
|
|
168
|
+
* Monotonicity guarantee: the returned stamp is strictly greater (by compare)
|
|
169
|
+
* than every previous tick()/receive() result on this clock — even if the wall
|
|
170
|
+
* clock jumps backward, because physical never regresses.
|
|
171
|
+
*/
|
|
172
|
+
tick(): HlcTimestamp;
|
|
173
|
+
/**
|
|
174
|
+
* receive(remote) — merge an inbound peer stamp (§3.2.2 + §3.4). Runs the
|
|
175
|
+
* bounded-drift check FIRST; on rejection the local clock does NOT advance and
|
|
176
|
+
* a typed SkewRejection is returned (the caller quarantines the record).
|
|
177
|
+
*
|
|
178
|
+
* Otherwise the canonical HLC merge (Kulkarni et al.):
|
|
179
|
+
* pt = max(now(), last.physical, remote.physical)
|
|
180
|
+
* - pt === last.physical === remote.physical → max(last.logical, remote.logical)+1
|
|
181
|
+
* - pt === last.physical → last.logical + 1
|
|
182
|
+
* - pt === remote.physical → remote.logical + 1
|
|
183
|
+
* - else → 0
|
|
184
|
+
*
|
|
185
|
+
* Monotonic vs BOTH local and remote: the receiving clock can never go
|
|
186
|
+
* backward, and a received record's causal position is preserved.
|
|
187
|
+
*/
|
|
188
|
+
receive(remote: HlcTimestamp, options?: ReceiveOptions): ReceiveResult;
|
|
189
|
+
/** Advance `last` and persist atomically (§3.5 — persist on EVERY advance). */
|
|
190
|
+
private commit;
|
|
191
|
+
/**
|
|
192
|
+
* compare(a, b) — the STRICT TOTAL ORDER (§3.3, static + pure). Compares
|
|
193
|
+
* physical, then logical, then node id (lexicographic). Returns 0 ONLY for an
|
|
194
|
+
* identical triple — because node ids are unique, two distinct-machine stamps
|
|
195
|
+
* are NEVER "equal" in sort position. This totality is what makes a
|
|
196
|
+
* deterministic merge across the pool possible.
|
|
197
|
+
*/
|
|
198
|
+
static compare(a: HlcTimestamp, b: HlcTimestamp): -1 | 0 | 1;
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=HybridLogicalClock.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HybridLogicalClock.d.ts","sourceRoot":"","sources":["../../src/core/HybridLogicalClock.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAC;IAChB;6EACyE;IACzE,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,IAAI,IAAI,YAAY,GAAG,IAAI,CAAC;IAC5B,yEAAyE;IACzE,IAAI,CAAC,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC7B;AAED,iCAAiC;AACjC,MAAM,WAAW,wBAAwB;IACvC,mFAAmF;IACnF,IAAI,EAAE,MAAM,CAAC;IACb,+EAA+E;IAC/E,GAAG,EAAE,MAAM,MAAM,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB;;;;OAIG;IACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAChE;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,IAAI,CAAC;IACf,MAAM,EAAE,YAAY,CAAC;IACrB,8CAA8C;IAC9C,MAAM,EAAE,YAAY,CAAC;IACrB,qEAAqE;IACrE,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,8EAA8E;AAC9E,MAAM,MAAM,aAAa,GACrB;IAAE,QAAQ,EAAE,KAAK,CAAC;IAAC,GAAG,EAAE,YAAY,CAAA;CAAE,GACtC,aAAa,CAAC;AAElB,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,2DAA2D;AAC3D,eAAO,MAAM,oBAAoB,QAAgB,CAAC;AAClD,oEAAoE;AACpE,eAAO,MAAM,gBAAgB,QAAY,CAAC;AAC1C,sEAAsE;AACtE,eAAO,MAAM,gBAAgB,QAAiB,CAAC;AAE/C;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAKjE;AAED,0DAA0D;AAC1D,wBAAgB,eAAe,CAAC,CAAC,EAAE,aAAa,GAAG,CAAC,IAAI,aAAa,CAEpE;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAEpD;AAED,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,CAAC,EAAE,YAAY,GAAG,MAAM,CAEvD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAQpD;AAED,wEAAwE;AACxE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAcvD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,YAAY,CAgBpD;AAOD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAA2D;IAE/E,6EAA6E;IAC7E,OAAO,CAAC,IAAI,CAAe;gBAEf,MAAM,EAAE,wBAAwB;IAyD5C,+EAA+E;IAC/E,OAAO,IAAI,YAAY;IAIvB,4DAA4D;IAC5D,aAAa,IAAI,MAAM;IAIvB;;;;;;;;OAQG;IACH,IAAI,IAAI,YAAY;IAQpB;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,GAAE,cAAmB,GAAG,aAAa;IAkC1E,+EAA+E;IAC/E,OAAO,CAAC,MAAM;IAKd;;;;;;OAMG;IACH,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;CAM7D"}
|
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HybridLogicalClock — a pure, dependency-injected total-order clock (WS2
|
|
3
|
+
* replicated-store foundation, Component 1).
|
|
4
|
+
*
|
|
5
|
+
* Spec: docs/specs/multi-machine-replicated-store-foundation.md §3 (the whole
|
|
6
|
+
* section), §10.2 (the maxDriftMs clamp invariant), §13 build order step 1,
|
|
7
|
+
* §15 risk-5/risk-6 (maxDriftMs sourcing — BLOCKER-5).
|
|
8
|
+
*
|
|
9
|
+
* HLC combines physical wall-clock time (so order tracks real time and is
|
|
10
|
+
* human-readable) with a logical counter (so causality survives clock skew and
|
|
11
|
+
* equal-millisecond ties). It is the load-bearing total order WS2 merges rely
|
|
12
|
+
* on: "merges order by HLC, never raw wall-clock" (master spec line 229).
|
|
13
|
+
*
|
|
14
|
+
* Design contract (§3.6 Purity + testability):
|
|
15
|
+
* - Imports NOTHING but its injected seams. No `fs`, no `Date` (only via the
|
|
16
|
+
* injected `now`), no network. Every operation is a pure function of
|
|
17
|
+
* `(last, input, now())`.
|
|
18
|
+
* - The clock (`now`), the `node` id, and persistence (`persist.load/save`)
|
|
19
|
+
* are constructor deps, so every dangerous property — monotonicity, the
|
|
20
|
+
* skew bound, restart-monotonicity — is unit-testable with in-memory fakes.
|
|
21
|
+
*
|
|
22
|
+
* Posture (§11): machine-local-by-design. Each machine has its own clock; the
|
|
23
|
+
* clocks CONVERGE via receive() but are never shared state. The HLC TIMESTAMPS
|
|
24
|
+
* are replicated (one per record, §4); the clock OBJECT is not.
|
|
25
|
+
*/
|
|
26
|
+
/** The default bounded-drift ceiling: 5 minutes (§3.4). */
|
|
27
|
+
export const DEFAULT_MAX_DRIFT_MS = 5 * 60 * 1000;
|
|
28
|
+
/** The floor of the maxDriftMs clamp (§3.4 / §10.2): 60 seconds. */
|
|
29
|
+
export const MIN_MAX_DRIFT_MS = 60 * 1000;
|
|
30
|
+
/** The ceiling of the maxDriftMs clamp (§3.4 / §10.2): 15 minutes. */
|
|
31
|
+
export const MAX_MAX_DRIFT_MS = 15 * 60 * 1000;
|
|
32
|
+
/**
|
|
33
|
+
* Clamp a configured maxDriftMs to the [60s, 15min] window (§3.4, §10.2).
|
|
34
|
+
*
|
|
35
|
+
* This is the helper `validateStateSyncInvariants` (§10.2) uses for the
|
|
36
|
+
* `maxDriftMs` knob: a value below the floor would start rejecting ordinary NTP
|
|
37
|
+
* jitter; a value above the ceiling would defeat the fast-clock defense. The
|
|
38
|
+
* spec's §10.2 invariant REJECTS an out-of-range value at config resolution;
|
|
39
|
+
* this clamp helper is the in-clock guard so the primitive is correct even if a
|
|
40
|
+
* caller hands it a raw value. A non-finite/undefined input falls back to the
|
|
41
|
+
* default.
|
|
42
|
+
*/
|
|
43
|
+
export function clampMaxDriftMs(value) {
|
|
44
|
+
if (value === undefined || !Number.isFinite(value))
|
|
45
|
+
return DEFAULT_MAX_DRIFT_MS;
|
|
46
|
+
if (value < MIN_MAX_DRIFT_MS)
|
|
47
|
+
return MIN_MAX_DRIFT_MS;
|
|
48
|
+
if (value > MAX_MAX_DRIFT_MS)
|
|
49
|
+
return MAX_MAX_DRIFT_MS;
|
|
50
|
+
return value;
|
|
51
|
+
}
|
|
52
|
+
/** Type guard: is a receive() result a skew rejection? */
|
|
53
|
+
export function isSkewRejection(r) {
|
|
54
|
+
return r.rejected === true;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Serialize an HlcTimestamp to the compact wire/disk form (§3.5).
|
|
58
|
+
*
|
|
59
|
+
* Default form is a 3-field JSON object (carried on each record as `hlc`). The
|
|
60
|
+
* string form `"<physical>:<logical>:<node>"` is for embedding in a key — and
|
|
61
|
+
* because a node id MAY contain a `:`, the node is the LAST segment and parse
|
|
62
|
+
* splits on the FIRST TWO colons only (physical and logical are numeric and
|
|
63
|
+
* colon-free), so the round-trip is lossless for any node id.
|
|
64
|
+
*/
|
|
65
|
+
export function serializeHlc(t) {
|
|
66
|
+
return JSON.stringify({ physical: t.physical, logical: t.logical, node: t.node });
|
|
67
|
+
}
|
|
68
|
+
/** Serialize to the compact key-string form `"<physical>:<logical>:<node>"`. */
|
|
69
|
+
export function serializeHlcKey(t) {
|
|
70
|
+
return `${t.physical}:${t.logical}:${t.node}`;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Parse the JSON object form (§3.5). Throws on malformed input — a record whose
|
|
74
|
+
* `hlc` cannot be parsed is a schema reject upstream, never a silent default.
|
|
75
|
+
*/
|
|
76
|
+
export function parseHlc(input) {
|
|
77
|
+
let raw;
|
|
78
|
+
try {
|
|
79
|
+
raw = JSON.parse(input);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
throw new Error(`parseHlc: not valid JSON: ${truncateForError(input)}`);
|
|
83
|
+
}
|
|
84
|
+
return coerceHlc(raw);
|
|
85
|
+
}
|
|
86
|
+
/** Parse the key-string form `"<physical>:<logical>:<node>"` (§3.5). */
|
|
87
|
+
export function parseHlcKey(input) {
|
|
88
|
+
if (typeof input !== 'string') {
|
|
89
|
+
throw new Error('parseHlcKey: input is not a string');
|
|
90
|
+
}
|
|
91
|
+
// Split on the FIRST TWO colons only — the node id may contain colons.
|
|
92
|
+
const firstColon = input.indexOf(':');
|
|
93
|
+
const secondColon = firstColon < 0 ? -1 : input.indexOf(':', firstColon + 1);
|
|
94
|
+
if (firstColon < 0 || secondColon < 0) {
|
|
95
|
+
throw new Error(`parseHlcKey: expected "<physical>:<logical>:<node>", got: ${truncateForError(input)}`);
|
|
96
|
+
}
|
|
97
|
+
const physical = Number(input.slice(0, firstColon));
|
|
98
|
+
const logical = Number(input.slice(firstColon + 1, secondColon));
|
|
99
|
+
const node = input.slice(secondColon + 1);
|
|
100
|
+
return coerceHlc({ physical, logical, node });
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Validate + narrow an unknown value to an HlcTimestamp. The single chokepoint
|
|
104
|
+
* both parsers and receive() funnel untrusted input through (§3.5): physical and
|
|
105
|
+
* logical must be finite non-negative integers; node must be a non-empty string.
|
|
106
|
+
*/
|
|
107
|
+
export function coerceHlc(raw) {
|
|
108
|
+
if (typeof raw !== 'object' || raw === null) {
|
|
109
|
+
throw new Error('coerceHlc: not an object');
|
|
110
|
+
}
|
|
111
|
+
const obj = raw;
|
|
112
|
+
const { physical, logical, node } = obj;
|
|
113
|
+
if (typeof physical !== 'number' || !Number.isInteger(physical) || physical < 0) {
|
|
114
|
+
throw new Error(`coerceHlc: physical must be a non-negative integer, got ${String(physical)}`);
|
|
115
|
+
}
|
|
116
|
+
if (typeof logical !== 'number' || !Number.isInteger(logical) || logical < 0) {
|
|
117
|
+
throw new Error(`coerceHlc: logical must be a non-negative integer, got ${String(logical)}`);
|
|
118
|
+
}
|
|
119
|
+
if (typeof node !== 'string' || node.length === 0) {
|
|
120
|
+
throw new Error('coerceHlc: node must be a non-empty string');
|
|
121
|
+
}
|
|
122
|
+
return { physical, logical, node };
|
|
123
|
+
}
|
|
124
|
+
function truncateForError(s) {
|
|
125
|
+
const str = String(s);
|
|
126
|
+
return str.length > 80 ? `${str.slice(0, 80)}…` : str;
|
|
127
|
+
}
|
|
128
|
+
export class HybridLogicalClock {
|
|
129
|
+
node;
|
|
130
|
+
now;
|
|
131
|
+
maxDriftMs;
|
|
132
|
+
persist;
|
|
133
|
+
log;
|
|
134
|
+
/** The largest stamp this clock has issued (the floor for every advance). */
|
|
135
|
+
last;
|
|
136
|
+
constructor(config) {
|
|
137
|
+
if (typeof config.node !== 'string' || config.node.length === 0) {
|
|
138
|
+
throw new Error('HybridLogicalClock: node id must be a non-empty string');
|
|
139
|
+
}
|
|
140
|
+
this.node = config.node;
|
|
141
|
+
this.now = config.now;
|
|
142
|
+
this.maxDriftMs = clampMaxDriftMs(config.maxDriftMs);
|
|
143
|
+
this.persist = config.persist;
|
|
144
|
+
this.log = config.log ?? (() => { });
|
|
145
|
+
const loaded = this.persist?.load() ?? null;
|
|
146
|
+
// Validate the durable stamp through the same chokepoint a parser uses. A
|
|
147
|
+
// CORRUPT (non-null but malformed) load must NOT crash construction (§3.5,
|
|
148
|
+
// "Distrust Temporary Success"): a poisoned/partially-written persistence row
|
|
149
|
+
// would otherwise brick every consumer that boots the clock. We fail TOWARD a
|
|
150
|
+
// fresh-but-monotonic clock (monotonic relative to wall time) and log once,
|
|
151
|
+
// mirroring the missing-file (null) path — never throw out of the constructor.
|
|
152
|
+
let safeLoaded;
|
|
153
|
+
if (loaded === null) {
|
|
154
|
+
safeLoaded = null;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
try {
|
|
158
|
+
safeLoaded = coerceHlc(loaded);
|
|
159
|
+
}
|
|
160
|
+
catch (err) {
|
|
161
|
+
// @silent-fallback-ok: a corrupt persisted stamp degrades to the same
|
|
162
|
+
// fresh-but-monotonic clock as the missing-file path (safeLoaded=null
|
|
163
|
+
// below) rather than throwing out of construction — fail toward a usable
|
|
164
|
+
// clock, the safe direction. The discard is logged with context
|
|
165
|
+
// ('hlc-load-corrupt'); it is not a DegradationReporter case.
|
|
166
|
+
this.log('hlc-load-corrupt', {
|
|
167
|
+
error: err instanceof Error ? err.message : String(err),
|
|
168
|
+
});
|
|
169
|
+
safeLoaded = null;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
if (safeLoaded === null) {
|
|
173
|
+
// Fresh (no durable stamp, or a corrupt one we just discarded): start at
|
|
174
|
+
// { physical: now(), logical: 0, node } (§3.5).
|
|
175
|
+
this.last = { physical: this.now(), logical: 0, node: this.node };
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
// Seed last from the durable stamp so a restart cannot rewind below it.
|
|
179
|
+
// We trust our OWN durable past over a regressed wall clock: if the loaded
|
|
180
|
+
// physical is ahead of now() by more than maxDriftMs (a backward wall-clock
|
|
181
|
+
// jump across the restart) we honor the durable floor and log once (§3.5).
|
|
182
|
+
this.last = { physical: safeLoaded.physical, logical: safeLoaded.logical, node: this.node };
|
|
183
|
+
const wall = this.now();
|
|
184
|
+
if (safeLoaded.physical - wall > this.maxDriftMs) {
|
|
185
|
+
this.log('hlc-load-ahead-of-wall', {
|
|
186
|
+
loadedPhysical: safeLoaded.physical,
|
|
187
|
+
wall,
|
|
188
|
+
maxDriftMs: this.maxDriftMs,
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
/** The largest stamp issued so far (a copy — never the internal reference). */
|
|
194
|
+
current() {
|
|
195
|
+
return { ...this.last };
|
|
196
|
+
}
|
|
197
|
+
/** The clamped drift ceiling this clock enforces (§3.4). */
|
|
198
|
+
getMaxDriftMs() {
|
|
199
|
+
return this.maxDriftMs;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* tick() — local-event advance (§3.2.1). Called when THIS machine AUTHORS a
|
|
203
|
+
* record. `pt = max(now(), last.physical)`; `logical = (pt === last.physical)
|
|
204
|
+
* ? last.logical + 1 : 0`. Persists and returns the new stamp.
|
|
205
|
+
*
|
|
206
|
+
* Monotonicity guarantee: the returned stamp is strictly greater (by compare)
|
|
207
|
+
* than every previous tick()/receive() result on this clock — even if the wall
|
|
208
|
+
* clock jumps backward, because physical never regresses.
|
|
209
|
+
*/
|
|
210
|
+
tick() {
|
|
211
|
+
const pt = Math.max(this.now(), this.last.physical);
|
|
212
|
+
const logical = pt === this.last.physical ? this.last.logical + 1 : 0;
|
|
213
|
+
const next = { physical: pt, logical, node: this.node };
|
|
214
|
+
this.commit(next);
|
|
215
|
+
return next;
|
|
216
|
+
}
|
|
217
|
+
/**
|
|
218
|
+
* receive(remote) — merge an inbound peer stamp (§3.2.2 + §3.4). Runs the
|
|
219
|
+
* bounded-drift check FIRST; on rejection the local clock does NOT advance and
|
|
220
|
+
* a typed SkewRejection is returned (the caller quarantines the record).
|
|
221
|
+
*
|
|
222
|
+
* Otherwise the canonical HLC merge (Kulkarni et al.):
|
|
223
|
+
* pt = max(now(), last.physical, remote.physical)
|
|
224
|
+
* - pt === last.physical === remote.physical → max(last.logical, remote.logical)+1
|
|
225
|
+
* - pt === last.physical → last.logical + 1
|
|
226
|
+
* - pt === remote.physical → remote.logical + 1
|
|
227
|
+
* - else → 0
|
|
228
|
+
*
|
|
229
|
+
* Monotonic vs BOTH local and remote: the receiving clock can never go
|
|
230
|
+
* backward, and a received record's causal position is preserved.
|
|
231
|
+
*/
|
|
232
|
+
receive(remote, options = {}) {
|
|
233
|
+
// Narrow untrusted input through the same chokepoint a parser uses.
|
|
234
|
+
const r = coerceHlc(remote);
|
|
235
|
+
// §3.4 — POOL-RELATIVE reference, never the bare local now(). A slow receiver
|
|
236
|
+
// must not quarantine a legitimately-ahead peer just because its own clock lags.
|
|
237
|
+
const reference = Math.max(this.last.physical, options.poolReference ?? 0);
|
|
238
|
+
if (r.physical - reference > this.maxDriftMs) {
|
|
239
|
+
// Clock NOT advanced — a fast peer cannot drag us into the future.
|
|
240
|
+
return {
|
|
241
|
+
rejected: true,
|
|
242
|
+
reason: 'skew-ahead',
|
|
243
|
+
remote: r,
|
|
244
|
+
reference,
|
|
245
|
+
maxDriftMs: this.maxDriftMs,
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
const pt = Math.max(this.now(), this.last.physical, r.physical);
|
|
249
|
+
let logical;
|
|
250
|
+
if (pt === this.last.physical && pt === r.physical) {
|
|
251
|
+
logical = Math.max(this.last.logical, r.logical) + 1;
|
|
252
|
+
}
|
|
253
|
+
else if (pt === this.last.physical) {
|
|
254
|
+
logical = this.last.logical + 1;
|
|
255
|
+
}
|
|
256
|
+
else if (pt === r.physical) {
|
|
257
|
+
logical = r.logical + 1;
|
|
258
|
+
}
|
|
259
|
+
else {
|
|
260
|
+
logical = 0;
|
|
261
|
+
}
|
|
262
|
+
const next = { physical: pt, logical, node: this.node };
|
|
263
|
+
this.commit(next);
|
|
264
|
+
return { rejected: false, hlc: next };
|
|
265
|
+
}
|
|
266
|
+
/** Advance `last` and persist atomically (§3.5 — persist on EVERY advance). */
|
|
267
|
+
commit(next) {
|
|
268
|
+
this.last = next;
|
|
269
|
+
this.persist?.save({ ...next });
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* compare(a, b) — the STRICT TOTAL ORDER (§3.3, static + pure). Compares
|
|
273
|
+
* physical, then logical, then node id (lexicographic). Returns 0 ONLY for an
|
|
274
|
+
* identical triple — because node ids are unique, two distinct-machine stamps
|
|
275
|
+
* are NEVER "equal" in sort position. This totality is what makes a
|
|
276
|
+
* deterministic merge across the pool possible.
|
|
277
|
+
*/
|
|
278
|
+
static compare(a, b) {
|
|
279
|
+
if (a.physical !== b.physical)
|
|
280
|
+
return a.physical < b.physical ? -1 : 1;
|
|
281
|
+
if (a.logical !== b.logical)
|
|
282
|
+
return a.logical < b.logical ? -1 : 1;
|
|
283
|
+
if (a.node !== b.node)
|
|
284
|
+
return a.node < b.node ? -1 : 1;
|
|
285
|
+
return 0;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
//# sourceMappingURL=HybridLogicalClock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"HybridLogicalClock.js","sourceRoot":"","sources":["../../src/core/HybridLogicalClock.ts"],"names":[],"mappings":"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"}
|
package/dist/core/MeshRpc.d.ts
CHANGED
|
@@ -115,6 +115,12 @@ export type MeshCommand = {
|
|
|
115
115
|
relPath: string;
|
|
116
116
|
offset: number;
|
|
117
117
|
}[];
|
|
118
|
+
} | {
|
|
119
|
+
type: 'pool-view-fetch';
|
|
120
|
+
viewId: string;
|
|
121
|
+
method: string;
|
|
122
|
+
probeOnly?: boolean;
|
|
123
|
+
assertion?: unknown;
|
|
118
124
|
};
|
|
119
125
|
export interface MeshEnvelope {
|
|
120
126
|
sender: MachineId;
|