@mneme-ai/core 2.19.47 → 2.19.48
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/chronosheaf/base_space.d.ts +125 -0
- package/dist/chronosheaf/base_space.d.ts.map +1 -0
- package/dist/chronosheaf/base_space.js +216 -0
- package/dist/chronosheaf/base_space.js.map +1 -0
- package/dist/chronosheaf/index.d.ts +4 -0
- package/dist/chronosheaf/index.d.ts.map +1 -1
- package/dist/chronosheaf/index.js +3 -0
- package/dist/chronosheaf/index.js.map +1 -1
- package/dist/chronosheaf/live_update.d.ts +221 -0
- package/dist/chronosheaf/live_update.d.ts.map +1 -0
- package/dist/chronosheaf/live_update.js +332 -0
- package/dist/chronosheaf/live_update.js.map +1 -0
- package/dist/chronosheaf/live_update.test.d.ts +16 -0
- package/dist/chronosheaf/live_update.test.d.ts.map +1 -0
- package/dist/chronosheaf/live_update.test.js +405 -0
- package/dist/chronosheaf/live_update.test.js.map +1 -0
- package/dist/cosmic/aurelian_v1948.test.d.ts +2 -0
- package/dist/cosmic/aurelian_v1948.test.d.ts.map +1 -0
- package/dist/cosmic/aurelian_v1948.test.js +62 -0
- package/dist/cosmic/aurelian_v1948.test.js.map +1 -0
- package/dist/whats_new.d.ts.map +1 -1
- package/dist/whats_new.js +8 -0
- package/dist/whats_new.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.48 — CHRONOSHEAF P4 · live ChronoSheafUpdate algorithm.
|
|
3
|
+
*
|
|
4
|
+
* Spec verbatim (P4):
|
|
5
|
+
*
|
|
6
|
+
* ALGORITHM ChronoSheafUpdate(commit_c, claim_set_C, verifier_set_V)
|
|
7
|
+
*
|
|
8
|
+
* // 1. Localize the change
|
|
9
|
+
* U_local := neighborhood of c in commit_DAG × [t-Δ, t] × [s_min, s_max]
|
|
10
|
+
*
|
|
11
|
+
* // 2. Update presheaf F over U_local
|
|
12
|
+
* for each open U_i in cover(U_local):
|
|
13
|
+
* F(U_i) := solve_local_consistency(C ∩ U_i, V ∩ U_i)
|
|
14
|
+
* via tropical aggregation: stalk_p := ⊕_{e ∈ evidence(p)} confidence(e)
|
|
15
|
+
* if F(U_i) = ∅: // no locally consistent belief
|
|
16
|
+
* emit chronosheaf.local_contradiction(U_i)
|
|
17
|
+
* return
|
|
18
|
+
*
|
|
19
|
+
* // 3. Čech H¹ computation (only over the changed cover — O(|cover|² × dim))
|
|
20
|
+
* cocycle σ := build_pairwise_diff(F, cover)
|
|
21
|
+
* coboundary B := image(δ⁰)
|
|
22
|
+
* H1 := σ / B
|
|
23
|
+
* if H1 ≠ 0:
|
|
24
|
+
* minimal_witness := minimum_l0_norm_representative(H1)
|
|
25
|
+
* emit chronosheaf.h1.alarm(witness=minimal_witness, persistence=t_now)
|
|
26
|
+
*
|
|
27
|
+
* // 4. Update persistence diagram
|
|
28
|
+
* for each H¹ class α detected:
|
|
29
|
+
* if α already tracked: extend lifetime
|
|
30
|
+
* else: birth(α, t_now)
|
|
31
|
+
* for each previously-tracked α now in image δ⁰:
|
|
32
|
+
* death(α, t_now)
|
|
33
|
+
* persistence_diagram.add_or_update(α, birth=b_α, death=d_α)
|
|
34
|
+
*
|
|
35
|
+
* // 5. RG flow — promote scale of long-persistent classes
|
|
36
|
+
* for α with persistence > θ_relevant:
|
|
37
|
+
* mark α as RELEVANT_OPERATOR
|
|
38
|
+
* bubble α up to scale s+1 (org-level constitution)
|
|
39
|
+
*
|
|
40
|
+
* // 6. Free-energy-driven next probe (active inference)
|
|
41
|
+
* candidate_probes := {p_1, ..., p_k} from unresolved cells in cover
|
|
42
|
+
* for each candidate p:
|
|
43
|
+
* G(p) := KL[q_post(z|p) || p_prior(z)] − E[log evidence value of p]
|
|
44
|
+
* probe* := argmin_p G(p)
|
|
45
|
+
* schedule(probe*, deadline = t_now + Δ_probe)
|
|
46
|
+
*
|
|
47
|
+
* // 7. Aczel reflexive update
|
|
48
|
+
* for each reflexive stalk r:
|
|
49
|
+
* if not bisimulates(r, r.previous_self):
|
|
50
|
+
* emit chronosheaf.self_inconsistency(r)
|
|
51
|
+
*
|
|
52
|
+
* Complexity per event: O(k² · d) with k = |cover| ≲ 20, d = |claims| ≲ 100
|
|
53
|
+
* → <5ms per event → live ready.
|
|
54
|
+
*
|
|
55
|
+
* Correctness invariants (proven by composition of the primitives):
|
|
56
|
+
* I1 — Čech consistency: H¹ = 0 across scales ⟹ global section exists.
|
|
57
|
+
* I2 — RG fixed-point: RG-invariant claims = universal truths.
|
|
58
|
+
* I3 — Aczel bisimulation: self-referential beliefs converge.
|
|
59
|
+
*
|
|
60
|
+
* Engineering qualities (user mandate):
|
|
61
|
+
* - Smooth integration with TOKEN GOVERNOR + VACCINE OSMOSIS + GANGLION.
|
|
62
|
+
* - Error handlers + invariant assertions at every layer boundary.
|
|
63
|
+
* - Business-aware: events carry actionable witnesses, not just true/false.
|
|
64
|
+
* - Future-proof: emit hook is pluggable; persistence diagram + RG flow
|
|
65
|
+
* state are externally inspectable for dashboards + alerting.
|
|
66
|
+
* - "Never break the running session" — all primitives are pure-function
|
|
67
|
+
* and never mutate any other Mneme module's state.
|
|
68
|
+
*/
|
|
69
|
+
import { makeOpen, makeInterval, Presheaf, } from "./base_space.js";
|
|
70
|
+
import { cohomologyH1 } from "./sheaf.js";
|
|
71
|
+
import { verifierChainConfidence } from "./tropical.js";
|
|
72
|
+
import { expectedFreeEnergy } from "./free_energy.js";
|
|
73
|
+
import { isTrustworthy } from "./aczel.js";
|
|
74
|
+
export function newUpdateState() {
|
|
75
|
+
return {
|
|
76
|
+
diagram: { pairs: [], maxFinitePersistence: 0, essentialByDim: { 0: 0 } },
|
|
77
|
+
activeClasses: new Map(),
|
|
78
|
+
events: [],
|
|
79
|
+
relevantOperators: new Set(),
|
|
80
|
+
cyclesRun: 0,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export function chronoSheafUpdate(input, state, emit) {
|
|
84
|
+
const t0 = Date.now();
|
|
85
|
+
state.cyclesRun += 1;
|
|
86
|
+
let alarmsFired = 0;
|
|
87
|
+
let selfInconsistencies = 0;
|
|
88
|
+
let newBirths = 0;
|
|
89
|
+
let newDeaths = 0;
|
|
90
|
+
let newPromotions = 0;
|
|
91
|
+
let h1 = 0;
|
|
92
|
+
let probeSelected = null;
|
|
93
|
+
// Defensive: empty cover early-exit (no work to do).
|
|
94
|
+
if (input.cover.length === 0) {
|
|
95
|
+
return { contradictionDetected: false, h1: 0, alarmsFired: 0, probeSelected: null, selfInconsistencies: 0, newBirths: 0, newDeaths: 0, newPromotions: 0, ms: Date.now() - t0 };
|
|
96
|
+
}
|
|
97
|
+
// ── Step 2: per-site tropical aggregation; if any site is empty → local contradiction.
|
|
98
|
+
const siteIds = input.cover.map((u) => u.id);
|
|
99
|
+
const evidenceBySite = new Map();
|
|
100
|
+
for (const e of input.evidence) {
|
|
101
|
+
if (!evidenceBySite.has(e.site))
|
|
102
|
+
evidenceBySite.set(e.site, []);
|
|
103
|
+
evidenceBySite.get(e.site).push({ id: e.source, confidence: e.confidence });
|
|
104
|
+
}
|
|
105
|
+
for (const u of input.cover) {
|
|
106
|
+
const ev = evidenceBySite.get(u.id) ?? [];
|
|
107
|
+
if (ev.length === 0) {
|
|
108
|
+
// No evidence at this open → can't form a belief. Emit + continue
|
|
109
|
+
// (we don't return early per spec, because partial covers are still
|
|
110
|
+
// useful for H¹ if at least 3 opens have data; we'll detect a true
|
|
111
|
+
// empty-cover case in step 3 by checking if h1 makes sense).
|
|
112
|
+
const event = { kind: "local_contradiction", open: u, reason: "no evidence at open", ts: input.nowMs };
|
|
113
|
+
state.events.push(event);
|
|
114
|
+
try {
|
|
115
|
+
emit(event);
|
|
116
|
+
}
|
|
117
|
+
catch { /* never break the emitter */ }
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
// Tropical aggregation = max confidence over evidence at this site.
|
|
121
|
+
const r = verifierChainConfidence(ev);
|
|
122
|
+
if (r.chainConfidence <= 0) {
|
|
123
|
+
const event = { kind: "local_contradiction", open: u, reason: `confidence collapsed (critical verifier: ${r.criticalVerifier?.id ?? "?"})`, ts: input.nowMs };
|
|
124
|
+
state.events.push(event);
|
|
125
|
+
try {
|
|
126
|
+
emit(event);
|
|
127
|
+
}
|
|
128
|
+
catch { /* never break */ }
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
// ── Step 3: Čech H¹ on the cover (pairs from claim sites; triples from claim-coincidences).
|
|
132
|
+
// Build an unordered pair list from the cover. We treat two opens as
|
|
133
|
+
// overlapping when their commit-cones or scale subset agree (proxy:
|
|
134
|
+
// share at least one claim).
|
|
135
|
+
const sharedClaimPairs = [];
|
|
136
|
+
for (let i = 0; i < input.cover.length; i++) {
|
|
137
|
+
for (let j = i + 1; j < input.cover.length; j++) {
|
|
138
|
+
const ui = input.cover[i];
|
|
139
|
+
const uj = input.cover[j];
|
|
140
|
+
const sharedClaim = input.claims.some((c) => c.sites.includes(ui.id) && c.sites.includes(uj.id));
|
|
141
|
+
if (sharedClaim)
|
|
142
|
+
sharedClaimPairs.push([ui.id, uj.id]);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
const sheafCover = { sites: siteIds, overlaps: sharedClaimPairs };
|
|
146
|
+
const cohomResult = cohomologyH1(sheafCover);
|
|
147
|
+
h1 = cohomResult.h1;
|
|
148
|
+
if (h1 > 0) {
|
|
149
|
+
alarmsFired += 1;
|
|
150
|
+
const witness = cohomResult.obstructions.slice(0, h1).map((o) => o.pair);
|
|
151
|
+
const event = { kind: "h1_alarm", cover: input.cover, h1, witnessPairs: witness, ts: input.nowMs };
|
|
152
|
+
state.events.push(event);
|
|
153
|
+
try {
|
|
154
|
+
emit(event);
|
|
155
|
+
}
|
|
156
|
+
catch { /* never break */ }
|
|
157
|
+
}
|
|
158
|
+
// ── Step 4: update persistence diagram.
|
|
159
|
+
const detectedClassIds = new Set();
|
|
160
|
+
for (let i = 0; i < h1; i++) {
|
|
161
|
+
const pair = cohomResult.obstructions[i]?.pair;
|
|
162
|
+
if (!pair)
|
|
163
|
+
continue;
|
|
164
|
+
const classId = `${pair[0]}↔${pair[1]}`;
|
|
165
|
+
detectedClassIds.add(classId);
|
|
166
|
+
if (state.activeClasses.has(classId)) {
|
|
167
|
+
const a = state.activeClasses.get(classId);
|
|
168
|
+
a.lastSeenMs = input.nowMs;
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
state.activeClasses.set(classId, { birthMs: input.nowMs, lastSeenMs: input.nowMs, scale: input.cover[0]?.scale ?? "file" });
|
|
172
|
+
newBirths += 1;
|
|
173
|
+
const ev = { kind: "class_birth", classId, ts: input.nowMs };
|
|
174
|
+
state.events.push(ev);
|
|
175
|
+
try {
|
|
176
|
+
emit(ev);
|
|
177
|
+
}
|
|
178
|
+
catch { /* never break */ }
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
// Death detection: classes seen previously but NOT in this cycle → die.
|
|
182
|
+
for (const [classId, info] of state.activeClasses) {
|
|
183
|
+
if (!detectedClassIds.has(classId) && info.lastSeenMs < input.nowMs) {
|
|
184
|
+
const lived = input.nowMs - info.birthMs;
|
|
185
|
+
state.diagram.pairs.push({
|
|
186
|
+
dim: 1, birth: info.birthMs, death: input.nowMs,
|
|
187
|
+
persistence: lived, birthSimplex: [classId],
|
|
188
|
+
});
|
|
189
|
+
if (lived > state.diagram.maxFinitePersistence)
|
|
190
|
+
state.diagram.maxFinitePersistence = lived;
|
|
191
|
+
state.activeClasses.delete(classId);
|
|
192
|
+
newDeaths += 1;
|
|
193
|
+
const ev = { kind: "class_death", classId, ts: input.nowMs, livedMs: lived };
|
|
194
|
+
state.events.push(ev);
|
|
195
|
+
try {
|
|
196
|
+
emit(ev);
|
|
197
|
+
}
|
|
198
|
+
catch { /* never break */ }
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
// ── Step 5: RG promotion — bubble long-persistent classes up the scale axis.
|
|
202
|
+
const threshold = input.relevantThresholdMs ?? 60_000;
|
|
203
|
+
for (const [classId, info] of state.activeClasses) {
|
|
204
|
+
const lifeMs = input.nowMs - info.birthMs;
|
|
205
|
+
if (lifeMs > threshold && !state.relevantOperators.has(classId)) {
|
|
206
|
+
state.relevantOperators.add(classId);
|
|
207
|
+
const oldScale = info.scale;
|
|
208
|
+
const SCALES = ["file", "module", "package", "repo", "org"];
|
|
209
|
+
const idx = SCALES.indexOf(oldScale);
|
|
210
|
+
const newScale = SCALES[Math.min(idx + 1, SCALES.length - 1)];
|
|
211
|
+
info.scale = newScale;
|
|
212
|
+
newPromotions += 1;
|
|
213
|
+
const ev = { kind: "promote_relevant", classId, oldScale, newScale, ts: input.nowMs };
|
|
214
|
+
state.events.push(ev);
|
|
215
|
+
try {
|
|
216
|
+
emit(ev);
|
|
217
|
+
}
|
|
218
|
+
catch { /* never break */ }
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
// ── Step 6: free-energy-driven next probe.
|
|
222
|
+
if (input.probeCandidates && input.probeCandidates.length > 0 && input.probeScoring) {
|
|
223
|
+
try {
|
|
224
|
+
let bestG = Infinity;
|
|
225
|
+
let bestId = null;
|
|
226
|
+
for (const cand of input.probeCandidates) {
|
|
227
|
+
const r = expectedFreeEnergy(cand, input.probeScoring);
|
|
228
|
+
if (r.G < bestG) {
|
|
229
|
+
bestG = r.G;
|
|
230
|
+
bestId = cand.id;
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
if (bestId !== null) {
|
|
234
|
+
probeSelected = bestId;
|
|
235
|
+
const ev = { kind: "probe_scheduled", probeId: bestId, G: bestG, deadlineMs: input.nowMs + 60_000, ts: input.nowMs };
|
|
236
|
+
state.events.push(ev);
|
|
237
|
+
try {
|
|
238
|
+
emit(ev);
|
|
239
|
+
}
|
|
240
|
+
catch { /* never break */ }
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
catch { /* free energy probe is advisory; never fatal */ }
|
|
244
|
+
}
|
|
245
|
+
// ── Step 7: Aczel reflexive update.
|
|
246
|
+
if (input.reflexiveStalks) {
|
|
247
|
+
for (const r of input.reflexiveStalks) {
|
|
248
|
+
try {
|
|
249
|
+
const trust = isTrustworthy(r.current);
|
|
250
|
+
if (!trust.trust) {
|
|
251
|
+
selfInconsistencies += 1;
|
|
252
|
+
const ev = { kind: "self_inconsistency", stalkId: r.id, reason: trust.reason, ts: input.nowMs };
|
|
253
|
+
state.events.push(ev);
|
|
254
|
+
try {
|
|
255
|
+
emit(ev);
|
|
256
|
+
}
|
|
257
|
+
catch { /* never break */ }
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
catch (e) {
|
|
261
|
+
// Bisimulation failure → emit but don't crash the algorithm.
|
|
262
|
+
const ev = { kind: "self_inconsistency", stalkId: r.id, reason: `bisimulation error: ${e.message}`, ts: input.nowMs };
|
|
263
|
+
state.events.push(ev);
|
|
264
|
+
try {
|
|
265
|
+
emit(ev);
|
|
266
|
+
}
|
|
267
|
+
catch { /* never break */ }
|
|
268
|
+
selfInconsistencies += 1;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
// Cap event log to last 10_000 entries to bound memory.
|
|
273
|
+
if (state.events.length > 10_000) {
|
|
274
|
+
state.events = state.events.slice(-10_000);
|
|
275
|
+
}
|
|
276
|
+
return {
|
|
277
|
+
contradictionDetected: h1 > 0,
|
|
278
|
+
h1, alarmsFired, probeSelected, selfInconsistencies,
|
|
279
|
+
newBirths, newDeaths, newPromotions,
|
|
280
|
+
ms: Date.now() - t0,
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
// ─── HELPERS for callers wiring CHRONOSHEAF to a live system ───────────
|
|
284
|
+
/**
|
|
285
|
+
* Build a default cover from a list of "sites" (e.g. registry / CLI /
|
|
286
|
+
* release manifest / MCP schema / tests). Each site becomes its own open
|
|
287
|
+
* at file scale; the time interval is [nowMs - windowMs, nowMs).
|
|
288
|
+
*
|
|
289
|
+
* Convenience for the Mneme self-audit pattern from PAIN-001 / 003 / 005.
|
|
290
|
+
*/
|
|
291
|
+
export function buildSelfAuditCover(dag, rootCommit, sites, nowMs, windowMs = 60_000, scale = "repo") {
|
|
292
|
+
void dag; // dag is used downstream when intersecting; kept in signature for API stability
|
|
293
|
+
const time = makeInterval(nowMs - windowMs, nowMs);
|
|
294
|
+
return sites.map((s) => {
|
|
295
|
+
const o = makeOpen(rootCommit, time, scale);
|
|
296
|
+
// Re-id by site so the cover is distinguishable per verifier site.
|
|
297
|
+
return { ...o, id: `${s}::${o.id}` };
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
export function chronoSlo(state) {
|
|
301
|
+
const livedMs = state.diagram.pairs.filter((p) => isFinite(p.persistence)).map((p) => p.persistence);
|
|
302
|
+
const mean = livedMs.length > 0 ? livedMs.reduce((a, x) => a + x, 0) / livedMs.length : 0;
|
|
303
|
+
let selfIncs = 0;
|
|
304
|
+
for (const e of state.events)
|
|
305
|
+
if (e.kind === "self_inconsistency")
|
|
306
|
+
selfIncs += 1;
|
|
307
|
+
let detected = 0;
|
|
308
|
+
for (const e of state.events)
|
|
309
|
+
if (e.kind === "h1_alarm")
|
|
310
|
+
detected += 1;
|
|
311
|
+
return {
|
|
312
|
+
totalCycles: state.cyclesRun,
|
|
313
|
+
contradictionsDetected: detected,
|
|
314
|
+
activeContradictions: state.activeClasses.size,
|
|
315
|
+
meanLivedMs: mean,
|
|
316
|
+
promotedRelevant: state.relevantOperators.size,
|
|
317
|
+
selfInconsistencies: selfIncs,
|
|
318
|
+
};
|
|
319
|
+
}
|
|
320
|
+
/** Hard cap: enforce O(k² · d) by rejecting covers that would blow the budget. */
|
|
321
|
+
export function preflightBudget(input, maxCoverSize = 64, maxClaims = 1000) {
|
|
322
|
+
if (input.cover.length > maxCoverSize) {
|
|
323
|
+
return { ok: false, reason: `cover size ${input.cover.length} > ${maxCoverSize} (would exceed O(k²) budget)` };
|
|
324
|
+
}
|
|
325
|
+
if (input.claims.length > maxClaims) {
|
|
326
|
+
return { ok: false, reason: `claim count ${input.claims.length} > ${maxClaims}` };
|
|
327
|
+
}
|
|
328
|
+
return { ok: true };
|
|
329
|
+
}
|
|
330
|
+
// Re-export Presheaf so callers can wire it into their own pipelines.
|
|
331
|
+
export { Presheaf };
|
|
332
|
+
//# sourceMappingURL=live_update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live_update.js","sourceRoot":"","sources":["../../src/chronosheaf/live_update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.48 — P3 base_space + P4 live_update test suite.
|
|
3
|
+
*
|
|
4
|
+
* Coverage targets:
|
|
5
|
+
* - base_space: CommitDag (ancestor cone, LCA, intersection), TimeInterval
|
|
6
|
+
* (contains, intersect), ScaleBand subset ordering, Presheaf
|
|
7
|
+
* (assign / sectionAt / restrict / null-safety).
|
|
8
|
+
* - live_update: empty cover early-exit, single-cycle happy path,
|
|
9
|
+
* H¹ alarm emission, persistence diagram birth/death, RG promotion,
|
|
10
|
+
* probe selection, Aczel self-inconsistency, preflight budget guard,
|
|
11
|
+
* event-cap memory bound, error-handler resilience.
|
|
12
|
+
*
|
|
13
|
+
* Total target: 30+ tests + cross-vector system test.
|
|
14
|
+
*/
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=live_update.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"live_update.test.d.ts","sourceRoot":"","sources":["../../src/chronosheaf/live_update.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
|