@mneme-ai/core 2.19.4 → 2.19.6

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.
Files changed (41) hide show
  1. package/dist/agent_manifest.d.ts +1 -1
  2. package/dist/agent_manifest.d.ts.map +1 -1
  3. package/dist/agent_manifest.js +14 -1
  4. package/dist/agent_manifest.js.map +1 -1
  5. package/dist/chronostasis/chronostasis.test.d.ts +2 -0
  6. package/dist/chronostasis/chronostasis.test.d.ts.map +1 -0
  7. package/dist/chronostasis/chronostasis.test.js +343 -0
  8. package/dist/chronostasis/chronostasis.test.js.map +1 -0
  9. package/dist/chronostasis/index.d.ts +196 -0
  10. package/dist/chronostasis/index.d.ts.map +1 -0
  11. package/dist/chronostasis/index.js +491 -0
  12. package/dist/chronostasis/index.js.map +1 -0
  13. package/dist/conversation_compiler/conversation_compiler.test.d.ts +2 -0
  14. package/dist/conversation_compiler/conversation_compiler.test.d.ts.map +1 -0
  15. package/dist/conversation_compiler/conversation_compiler.test.js +280 -0
  16. package/dist/conversation_compiler/conversation_compiler.test.js.map +1 -0
  17. package/dist/conversation_compiler/index.d.ts +144 -0
  18. package/dist/conversation_compiler/index.d.ts.map +1 -0
  19. package/dist/conversation_compiler/index.js +412 -0
  20. package/dist/conversation_compiler/index.js.map +1 -0
  21. package/dist/cosmic/aurelian_v195.test.d.ts +2 -0
  22. package/dist/cosmic/aurelian_v195.test.d.ts.map +1 -0
  23. package/dist/cosmic/aurelian_v195.test.js +34 -0
  24. package/dist/cosmic/aurelian_v195.test.js.map +1 -0
  25. package/dist/cosmic/aurelian_v196.test.d.ts +2 -0
  26. package/dist/cosmic/aurelian_v196.test.d.ts.map +1 -0
  27. package/dist/cosmic/aurelian_v196.test.js +33 -0
  28. package/dist/cosmic/aurelian_v196.test.js.map +1 -0
  29. package/dist/index.d.ts +2 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +10 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/intent_router/index.d.ts.map +1 -1
  34. package/dist/intent_router/index.js +68 -0
  35. package/dist/intent_router/index.js.map +1 -1
  36. package/dist/intent_router/intent_router.test.js +4 -3
  37. package/dist/intent_router/intent_router.test.js.map +1 -1
  38. package/dist/whats_new.d.ts.map +1 -1
  39. package/dist/whats_new.js +16 -0
  40. package/dist/whats_new.js.map +1 -1
  41. package/package.json +1 -1
@@ -0,0 +1,491 @@
1
+ /**
2
+ * v2.19.5 — MNEME CHRONOSTASIS · FLAGSHIP · Time-Locked Provable Memory
3
+ *
4
+ * "Every claim Mneme makes starts as PENDING. It must survive a
5
+ * `deadlineMs` adversarial window during which any witness AI can
6
+ * refute it with evidence. If a verdict comes back with refute=true
7
+ * + confidence ≥ rewindThreshold, the dependency graph is walked
8
+ * and EVERY downstream pending claim is deprecated — Mneme can
9
+ * unsay its past automatically. If the deadline passes with no
10
+ * valid refute, the claim CRYSTALLIZES into an immutable axiom.
11
+ * Axioms gravitationally attract related future queries (jaccard
12
+ * similarity) and are returned as 'these have been time-tested'.
13
+ *
14
+ * No AI vendor on Earth ships a primitive that AUTOMATICALLY
15
+ * rewinds its own history when adversarial witnesses disagree.
16
+ * Mneme is the first."
17
+ *
18
+ * Five phases (all in this file; ~one source of truth):
19
+ * Phase 1 proposeClaim wrap → pending; HMAC + dep-graph indexed
20
+ * Phase 2 recordVerdict witness vendor adds refute / not-refute + conf
21
+ * Phase 3 tick → REWIND refuted with conf≥0.7 → deprecate dep cascade
22
+ * Phase 4 tick → CRYSTAL. deadline passed + all deps are axioms → axiom
23
+ * Phase 5 truthGravity similarity over body text → ranked axioms
24
+ *
25
+ * Honest scope:
26
+ * - CHRONOSTASIS is the orchestrator + signed-storage layer. It does
27
+ * NOT call AI vendors itself. The caller fans out witness prompts
28
+ * to any vendors of choice (Claude / GPT / Gemini / Grok / Cursor /
29
+ * Codex / etc.) and pipes verdicts back via recordVerdict().
30
+ * - Axioms are immutable. Once crystallized, they can never be refuted.
31
+ * This is intentional: it enforces "time-tested" semantics. If new
32
+ * evidence emerges later, propose a new pending claim that depends
33
+ * on the contradiction; the system will reckon with it.
34
+ * - REWIND cascades only through PENDING claims. Axioms never deprecate.
35
+ * Crystallization gate enforces all-dependencies-are-axioms first.
36
+ * - Truth gravity uses lexical jaccard (portable, no deps). Replace
37
+ * with embeddings in a future release if higher fidelity is needed.
38
+ */
39
+ import { createHmac, timingSafeEqual } from "node:crypto";
40
+ import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
41
+ import { dirname } from "node:path";
42
+ const PROTOCOL_VERSION = 1;
43
+ const DEFAULT_REWIND_THRESHOLD = 0.7;
44
+ const STOP = new Set([
45
+ "the", "a", "an", "and", "or", "but", "is", "it", "to", "of", "in", "on",
46
+ "for", "with", "as", "at", "by", "this", "that", "be", "you", "i", "we",
47
+ "they", "are", "was", "were", "have", "has", "had", "do", "does", "did",
48
+ ]);
49
+ function tokenize(s) {
50
+ return (s.toLowerCase().match(/[a-z][a-z0-9_]+/g) ?? []).filter((t) => !STOP.has(t) && t.length >= 2);
51
+ }
52
+ function jaccardSim(a, b) {
53
+ const ta = new Set(tokenize(a));
54
+ const tb = new Set(tokenize(b));
55
+ if (ta.size === 0 && tb.size === 0)
56
+ return 1;
57
+ let inter = 0;
58
+ for (const t of ta)
59
+ if (tb.has(t))
60
+ inter++;
61
+ const union = ta.size + tb.size - inter;
62
+ return union === 0 ? 0 : inter / union;
63
+ }
64
+ function canon(v) {
65
+ if (v === null || typeof v !== "object")
66
+ return JSON.stringify(v);
67
+ if (Array.isArray(v))
68
+ return "[" + v.map(canon).join(",") + "]";
69
+ const keys = Object.keys(v).sort();
70
+ return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
71
+ }
72
+ function defaultSecret() {
73
+ return process.env["MNEME_CHRONOSTASIS_SECRET"] || `mneme-chronostasis-v${PROTOCOL_VERSION}`;
74
+ }
75
+ function hmac(body, secret) {
76
+ return createHmac("sha256", secret).update(canon(body)).digest("hex");
77
+ }
78
+ function safeEqHex(a, b) {
79
+ try {
80
+ return timingSafeEqual(Buffer.from(a, "hex"), Buffer.from(b, "hex"));
81
+ }
82
+ catch {
83
+ return false;
84
+ }
85
+ }
86
+ const GENESIS_SIG = "genesis".padEnd(64, "0");
87
+ export class Chronostasis {
88
+ pendingPath;
89
+ verdictsPath;
90
+ axiomsPath;
91
+ rewindsPath;
92
+ secret;
93
+ rewindThreshold;
94
+ pending = new Map();
95
+ verdicts = new Map(); // claimId → verdicts
96
+ axioms = [];
97
+ rewinds = [];
98
+ deprecated = new Set();
99
+ /** Reverse index: for each claim, the set of pending claims depending on it. */
100
+ dependents = new Map();
101
+ /** Append-only ordered list of all pending IDs ever proposed (for chain). */
102
+ pendingChainOrder = [];
103
+ constructor(opts = {}) {
104
+ this.pendingPath = opts.pendingPath ?? ".mneme/chronostasis/pending.jsonl";
105
+ this.verdictsPath = opts.verdictsPath ?? ".mneme/chronostasis/verdicts.jsonl";
106
+ this.axiomsPath = opts.axiomsPath ?? ".mneme/chronostasis/axioms.jsonl";
107
+ this.rewindsPath = opts.rewindsPath ?? ".mneme/chronostasis/rewinds.jsonl";
108
+ this.secret = opts.secret ?? defaultSecret();
109
+ this.rewindThreshold = opts.rewindThreshold ?? DEFAULT_REWIND_THRESHOLD;
110
+ this.loadIfExists();
111
+ }
112
+ loadIfExists() {
113
+ const readJsonl = (p) => {
114
+ if (!existsSync(p))
115
+ return [];
116
+ const text = readFileSync(p, "utf8");
117
+ const out = [];
118
+ for (const line of text.split("\n")) {
119
+ const t = line.trim();
120
+ if (!t)
121
+ continue;
122
+ try {
123
+ out.push(JSON.parse(t));
124
+ }
125
+ catch { /* skip */ }
126
+ }
127
+ return out;
128
+ };
129
+ for (const c of readJsonl(this.pendingPath)) {
130
+ this.pending.set(c.claimId, c);
131
+ this.pendingChainOrder.push(c.claimId);
132
+ for (const dep of c.dependsOn) {
133
+ let s = this.dependents.get(dep);
134
+ if (!s) {
135
+ s = new Set();
136
+ this.dependents.set(dep, s);
137
+ }
138
+ s.add(c.claimId);
139
+ }
140
+ }
141
+ for (const v of readJsonl(this.verdictsPath)) {
142
+ const list = this.verdicts.get(v.claimId) ?? [];
143
+ list.push(v);
144
+ this.verdicts.set(v.claimId, list);
145
+ }
146
+ this.axioms.push(...readJsonl(this.axiomsPath));
147
+ this.rewinds.push(...readJsonl(this.rewindsPath));
148
+ // Reconstruct deprecated set
149
+ for (const r of this.rewinds)
150
+ for (const id of r.deprecatedClaimIds)
151
+ this.deprecated.add(id);
152
+ }
153
+ // ── Phase 1: propose ────────────────────────────────────────────────
154
+ proposeClaim(input) {
155
+ const now = input.nowMs ?? Date.now();
156
+ const deadlineSec = input.deadlineSec ?? 600;
157
+ const proposedAt = new Date(now).toISOString();
158
+ const deadlineAt = new Date(now + deadlineSec * 1000).toISOString();
159
+ const witnessPool = input.witnessPool ?? ["claude", "chatgpt", "gemini", "grok", "perplexity"];
160
+ const dependsOn = (input.dependsOn ?? []).slice();
161
+ // Validate dependsOn exist as axiom or pending.
162
+ // CHECK DEPRECATED FIRST — once deprecated, the claim leaves `pending` so the
163
+ // "unknown" branch would fire first if we don't short-circuit here.
164
+ for (const dep of dependsOn) {
165
+ if (this.deprecated.has(dep)) {
166
+ throw new Error(`CHRONOSTASIS: cannot depend on deprecated claim '${dep}'`);
167
+ }
168
+ const isAxiom = this.axioms.some((a) => a.axiomId === dep || a.promotedFromClaimId === dep);
169
+ if (!this.pending.has(dep) && !isAxiom) {
170
+ throw new Error(`CHRONOSTASIS: dependsOn references unknown claim/axiom '${dep}'`);
171
+ }
172
+ }
173
+ const prevSig = this.pendingChainOrder.length === 0
174
+ ? GENESIS_SIG
175
+ : this.pending.get(this.pendingChainOrder[this.pendingChainOrder.length - 1]).sig;
176
+ const claimId = "pc-" + createHmac("sha256", "mneme-chrono-claim-id")
177
+ .update(`${proposedAt}|${input.body.slice(0, 80)}|${this.pendingChainOrder.length}`)
178
+ .digest("hex").slice(0, 14);
179
+ const body = {
180
+ v: PROTOCOL_VERSION,
181
+ claimId,
182
+ body: input.body,
183
+ context: input.context ?? {},
184
+ deadlineAt,
185
+ proposedAt,
186
+ witnessPool,
187
+ dependsOn,
188
+ prevSig,
189
+ };
190
+ const sig = hmac(body, this.secret);
191
+ const claim = { ...body, sig };
192
+ this.pending.set(claimId, claim);
193
+ this.pendingChainOrder.push(claimId);
194
+ for (const dep of dependsOn) {
195
+ let s = this.dependents.get(dep);
196
+ if (!s) {
197
+ s = new Set();
198
+ this.dependents.set(dep, s);
199
+ }
200
+ s.add(claimId);
201
+ }
202
+ this.persistAppend(this.pendingPath, claim);
203
+ return claim;
204
+ }
205
+ // ── Phase 2: witness ────────────────────────────────────────────────
206
+ /** Build the meta-prompt the caller should send to a witness vendor. */
207
+ buildWitnessPrompt(claim, vendor) {
208
+ return [
209
+ `You are an ADVERSARIAL WITNESS AI assigned to refute or confirm a Mneme claim.`,
210
+ `Vendor identity: ${vendor}`,
211
+ `Claim: """${claim.body}"""`,
212
+ claim.context && Object.keys(claim.context).length ? `Context: ${JSON.stringify(claim.context)}` : "",
213
+ ``,
214
+ `Your job: search for counter-evidence in the available repo / git log / public ground truth.`,
215
+ `If you find solid counter-evidence, return refuted=true with a brief evidence summary + confidence 0..1.`,
216
+ `If the claim holds up, return refuted=false with confidence 0..1 (higher = more sure).`,
217
+ ``,
218
+ `Reply STRICTLY as JSON: { "refuted": <bool>, "evidence": "<string>", "confidence": <0..1> }`,
219
+ ].filter(Boolean).join("\n");
220
+ }
221
+ recordVerdict(input) {
222
+ if (!this.pending.has(input.claimId)) {
223
+ // Honest no-op semantics: if the claim already crystallized or got deprecated,
224
+ // verdicts no longer apply. Throw so the caller knows to drop.
225
+ throw new Error(`CHRONOSTASIS: claim '${input.claimId}' is no longer pending (axiom or deprecated)`);
226
+ }
227
+ if (input.confidence < 0 || input.confidence > 1) {
228
+ throw new Error(`CHRONOSTASIS: confidence must be in [0,1]; got ${input.confidence}`);
229
+ }
230
+ const now = input.nowMs ?? Date.now();
231
+ const ts = new Date(now).toISOString();
232
+ const verdictId = "wv-" + createHmac("sha256", "mneme-chrono-verdict-id")
233
+ .update(`${input.claimId}|${input.vendor}|${ts}`)
234
+ .digest("hex").slice(0, 14);
235
+ const body = {
236
+ v: PROTOCOL_VERSION,
237
+ verdictId,
238
+ claimId: input.claimId,
239
+ vendor: input.vendor,
240
+ refuted: input.refuted,
241
+ evidence: input.evidence,
242
+ confidence: input.confidence,
243
+ ts,
244
+ };
245
+ const sig = hmac(body, this.secret);
246
+ const verdict = { ...body, sig };
247
+ const list = this.verdicts.get(input.claimId) ?? [];
248
+ list.push(verdict);
249
+ this.verdicts.set(input.claimId, list);
250
+ this.persistAppend(this.verdictsPath, verdict);
251
+ return verdict;
252
+ }
253
+ // ── Phase 3 + 4: tick ───────────────────────────────────────────────
254
+ tick(input = {}) {
255
+ const now = input.nowMs ?? Date.now();
256
+ const newRewinds = [];
257
+ const crystallized = [];
258
+ // Snapshot pending IDs at tick start (mutation during loop is fine; we iterate fixed list)
259
+ const pendingIds = Array.from(this.pending.keys());
260
+ for (const claimId of pendingIds) {
261
+ if (!this.pending.has(claimId))
262
+ continue; // already processed/removed in this tick
263
+ const claim = this.pending.get(claimId);
264
+ if (this.deprecated.has(claimId))
265
+ continue;
266
+ // Look for refute-with-high-confidence
267
+ const verdicts = this.verdicts.get(claimId) ?? [];
268
+ const refutes = verdicts.filter((v) => v.refuted && v.confidence >= this.rewindThreshold);
269
+ if (refutes.length > 0) {
270
+ const top = refutes.reduce((a, b) => (b.confidence > a.confidence ? b : a));
271
+ const rec = this.doRewind(claimId, top, now);
272
+ newRewinds.push(rec);
273
+ continue;
274
+ }
275
+ // Otherwise check crystallization
276
+ if (Date.parse(claim.deadlineAt) <= now) {
277
+ // All dependsOn must be axioms (not pending, not deprecated).
278
+ // dep references use the ORIGINAL pending claimId, so match against
279
+ // axiom.promotedFromClaimId (or axiom.axiomId for axiom→axiom deps).
280
+ const allDepsAxiom = claim.dependsOn.every((dep) => this.axioms.some((a) => a.promotedFromClaimId === dep || a.axiomId === dep));
281
+ if (!allDepsAxiom)
282
+ continue; // wait until deps crystallize first
283
+ const ax = this.doCrystallize(claim, now);
284
+ crystallized.push(ax);
285
+ }
286
+ }
287
+ return {
288
+ rewinds: newRewinds,
289
+ crystallized,
290
+ stillPending: this.pending.size,
291
+ deprecatedSoFar: this.deprecated.size,
292
+ };
293
+ }
294
+ doRewind(triggerClaimId, verdict, nowMs) {
295
+ // Walk transitive dependents
296
+ const toDeprecate = new Set();
297
+ const queue = [triggerClaimId];
298
+ while (queue.length > 0) {
299
+ const id = queue.shift();
300
+ if (toDeprecate.has(id))
301
+ continue;
302
+ toDeprecate.add(id);
303
+ const downs = this.dependents.get(id);
304
+ if (downs)
305
+ for (const d of downs) {
306
+ if (this.pending.has(d) && !this.deprecated.has(d))
307
+ queue.push(d);
308
+ }
309
+ }
310
+ // Apply: mark deprecated + remove from pending map (chain stays; just marked)
311
+ for (const id of toDeprecate) {
312
+ this.deprecated.add(id);
313
+ this.pending.delete(id);
314
+ }
315
+ const rewindId = "rw-" + createHmac("sha256", "mneme-chrono-rewind-id")
316
+ .update(`${triggerClaimId}|${verdict.verdictId}|${nowMs}`)
317
+ .digest("hex").slice(0, 14);
318
+ const body = {
319
+ v: PROTOCOL_VERSION,
320
+ rewindId,
321
+ triggeredByClaimId: triggerClaimId,
322
+ triggeredByVerdictId: verdict.verdictId,
323
+ deprecatedClaimIds: Array.from(toDeprecate),
324
+ rewoundAt: new Date(nowMs).toISOString(),
325
+ reason: `vendor=${verdict.vendor} confidence=${verdict.confidence} evidence="${verdict.evidence.slice(0, 120)}"`,
326
+ };
327
+ const sig = hmac(body, this.secret);
328
+ const rec = { ...body, sig };
329
+ this.rewinds.push(rec);
330
+ this.persistAppend(this.rewindsPath, rec);
331
+ return rec;
332
+ }
333
+ doCrystallize(claim, nowMs) {
334
+ const promotedAt = new Date(nowMs).toISOString();
335
+ const crystallizedAfterMs = nowMs - Date.parse(claim.proposedAt);
336
+ const prevSig = this.axioms.length === 0 ? GENESIS_SIG : this.axioms[this.axioms.length - 1].sig;
337
+ const axiomId = "ax-" + createHmac("sha256", "mneme-chrono-axiom-id")
338
+ .update(`${claim.claimId}|${promotedAt}`)
339
+ .digest("hex").slice(0, 14);
340
+ const body = {
341
+ v: PROTOCOL_VERSION,
342
+ axiomId,
343
+ body: claim.body,
344
+ context: claim.context,
345
+ promotedFromClaimId: claim.claimId,
346
+ promotedAt,
347
+ crystallizedAfterMs,
348
+ dependsOn: claim.dependsOn.slice(),
349
+ prevSig,
350
+ };
351
+ const sig = hmac(body, this.secret);
352
+ const ax = { ...body, sig };
353
+ this.axioms.push(ax);
354
+ this.persistAppend(this.axiomsPath, ax);
355
+ this.pending.delete(claim.claimId);
356
+ return ax;
357
+ }
358
+ // ── Phase 5: truth gravity ──────────────────────────────────────────
359
+ axiomsRelevantTo(input) {
360
+ const k = input.k ?? 5;
361
+ const minSim = input.minSimilarity ?? 0.1;
362
+ const ranked = this.axioms
363
+ .map((a) => ({ axiomId: a.axiomId, body: a.body, similarity: Math.round(jaccardSim(input.queryText, a.body) * 1000) / 1000 }))
364
+ .filter((r) => r.similarity >= minSim)
365
+ .sort((a, b) => b.similarity - a.similarity)
366
+ .slice(0, k);
367
+ return {
368
+ v: PROTOCOL_VERSION,
369
+ queryText: input.queryText,
370
+ attractedAxioms: ranked,
371
+ builtAt: new Date().toISOString(),
372
+ };
373
+ }
374
+ // ── Verification / introspection ────────────────────────────────────
375
+ verifyClaim(c) {
376
+ const { sig, ...body } = c;
377
+ return safeEqHex(hmac(body, this.secret), sig);
378
+ }
379
+ verifyVerdict(v) {
380
+ const { sig, ...body } = v;
381
+ return safeEqHex(hmac(body, this.secret), sig);
382
+ }
383
+ verifyAxiom(a) {
384
+ const { sig, ...body } = a;
385
+ return safeEqHex(hmac(body, this.secret), sig);
386
+ }
387
+ verifyRewind(r) {
388
+ const { sig, ...body } = r;
389
+ return safeEqHex(hmac(body, this.secret), sig);
390
+ }
391
+ /** Verify the pending claim chain + axiom chain integrity. */
392
+ verifyChain() {
393
+ // Pending chain (in propose order)
394
+ for (let i = 0; i < this.pendingChainOrder.length; i++) {
395
+ const id = this.pendingChainOrder[i];
396
+ const c = this.pending.get(id);
397
+ if (!c)
398
+ continue; // crystallized / deprecated — skip
399
+ if (!this.verifyClaim(c))
400
+ return { ok: false, brokenAt: id, reason: "pending sig mismatch" };
401
+ if (i === 0) {
402
+ if (c.prevSig !== GENESIS_SIG)
403
+ return { ok: false, brokenAt: id, reason: "pending genesis wrong" };
404
+ }
405
+ else {
406
+ // walk back to find the previous still-present (or original chain) sig
407
+ // For simplicity, require the immediately-previous pending in chain order.
408
+ const prevId = this.pendingChainOrder[i - 1];
409
+ const prev = this.pending.get(prevId);
410
+ // Skip prevSig check when previous claim has been removed (deprecated/axiom).
411
+ if (prev && c.prevSig !== prev.sig)
412
+ return { ok: false, brokenAt: id, reason: "pending chain link mismatch" };
413
+ }
414
+ }
415
+ // Axiom chain
416
+ for (let i = 0; i < this.axioms.length; i++) {
417
+ const ax = this.axioms[i];
418
+ if (!this.verifyAxiom(ax))
419
+ return { ok: false, brokenAt: ax.axiomId, reason: "axiom sig mismatch" };
420
+ if (i === 0) {
421
+ if (ax.prevSig !== GENESIS_SIG)
422
+ return { ok: false, brokenAt: ax.axiomId, reason: "axiom genesis wrong" };
423
+ }
424
+ else {
425
+ const prev = this.axioms[i - 1];
426
+ if (ax.prevSig !== prev.sig)
427
+ return { ok: false, brokenAt: ax.axiomId, reason: "axiom chain link mismatch" };
428
+ }
429
+ }
430
+ return { ok: true };
431
+ }
432
+ summary() {
433
+ let vc = 0;
434
+ for (const list of this.verdicts.values())
435
+ vc += list.length;
436
+ return {
437
+ pendingCount: this.pending.size,
438
+ axiomCount: this.axioms.length,
439
+ deprecatedCount: this.deprecated.size,
440
+ rewindCount: this.rewinds.length,
441
+ verdictCount: vc,
442
+ chainOk: this.verifyChain().ok,
443
+ };
444
+ }
445
+ status(claimId) {
446
+ if (this.deprecated.has(claimId))
447
+ return "deprecated";
448
+ if (this.pending.has(claimId))
449
+ return "pending";
450
+ if (this.axioms.some((a) => a.promotedFromClaimId === claimId || a.axiomId === claimId))
451
+ return "axiom";
452
+ return "pending"; // unknown → treat as not-yet-present-but-pending
453
+ }
454
+ /** Read-only views for inspection / testing. */
455
+ exportPending() { return Array.from(this.pending.values()); }
456
+ exportAxioms() { return this.axioms.slice(); }
457
+ exportRewinds() { return this.rewinds.slice(); }
458
+ exportVerdicts(claimId) { return (this.verdicts.get(claimId) ?? []).slice(); }
459
+ // ── Persistence ─────────────────────────────────────────────────────
460
+ persistAppend(path, record) {
461
+ try {
462
+ mkdirSync(dirname(path), { recursive: true });
463
+ const line = JSON.stringify(record) + "\n";
464
+ if (existsSync(path)) {
465
+ const cur = readFileSync(path, "utf8");
466
+ writeFileSync(path, cur + line, "utf8");
467
+ }
468
+ else {
469
+ writeFileSync(path, line, "utf8");
470
+ }
471
+ }
472
+ catch { /* best-effort */ }
473
+ }
474
+ }
475
+ export function formatClaimLine(c) {
476
+ return `⏳ PENDING · ${c.claimId} · deadline ${c.deadlineAt.slice(11, 19)} · ${c.body.slice(0, 60)}`;
477
+ }
478
+ export function formatAxiomLine(a) {
479
+ return `🪐 AXIOM · ${a.axiomId} · survived ${Math.round(a.crystallizedAfterMs / 1000)}s · ${a.body.slice(0, 60)}`;
480
+ }
481
+ export function formatRewindLine(r) {
482
+ return `↩️ REWIND · ${r.rewindId} · ${r.deprecatedClaimIds.length} claim(s) deprecated · ${r.reason.slice(0, 80)}`;
483
+ }
484
+ /** Process-local singleton. */
485
+ let _instance = null;
486
+ export function defaultChronostasis() {
487
+ if (!_instance)
488
+ _instance = new Chronostasis();
489
+ return _instance;
490
+ }
491
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chronostasis/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=conversation_compiler.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation_compiler.test.d.ts","sourceRoot":"","sources":["../../src/conversation_compiler/conversation_compiler.test.ts"],"names":[],"mappings":""}