@mneme-ai/core 2.28.1 → 2.29.0

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 (61) hide show
  1. package/dist/conclave/aeae/index.d.ts +59 -0
  2. package/dist/conclave/aeae/index.d.ts.map +1 -0
  3. package/dist/conclave/aeae/index.js +133 -0
  4. package/dist/conclave/aeae/index.js.map +1 -0
  5. package/dist/conclave/aletheia_weights.d.ts +14 -0
  6. package/dist/conclave/aletheia_weights.d.ts.map +1 -0
  7. package/dist/conclave/aletheia_weights.js +66 -0
  8. package/dist/conclave/aletheia_weights.js.map +1 -0
  9. package/dist/conclave/bft.d.ts +47 -0
  10. package/dist/conclave/bft.d.ts.map +1 -0
  11. package/dist/conclave/bft.js +122 -0
  12. package/dist/conclave/bft.js.map +1 -0
  13. package/dist/conclave/conclave.test.d.ts +2 -0
  14. package/dist/conclave/conclave.test.d.ts.map +1 -0
  15. package/dist/conclave/conclave.test.js +198 -0
  16. package/dist/conclave/conclave.test.js.map +1 -0
  17. package/dist/conclave/engine.d.ts +34 -0
  18. package/dist/conclave/engine.d.ts.map +1 -0
  19. package/dist/conclave/engine.js +225 -0
  20. package/dist/conclave/engine.js.map +1 -0
  21. package/dist/conclave/index.d.ts +14 -0
  22. package/dist/conclave/index.d.ts.map +1 -0
  23. package/dist/conclave/index.js +10 -0
  24. package/dist/conclave/index.js.map +1 -0
  25. package/dist/conclave/types.d.ts +126 -0
  26. package/dist/conclave/types.d.ts.map +1 -0
  27. package/dist/conclave/types.js +28 -0
  28. package/dist/conclave/types.js.map +1 -0
  29. package/dist/conclave/vendors/anthropic.d.ts +15 -0
  30. package/dist/conclave/vendors/anthropic.d.ts.map +1 -0
  31. package/dist/conclave/vendors/anthropic.js +83 -0
  32. package/dist/conclave/vendors/anthropic.js.map +1 -0
  33. package/dist/conclave/vendors/interface.d.ts +43 -0
  34. package/dist/conclave/vendors/interface.d.ts.map +1 -0
  35. package/dist/conclave/vendors/interface.js +66 -0
  36. package/dist/conclave/vendors/interface.js.map +1 -0
  37. package/dist/conclave/vendors/mock.d.ts +12 -0
  38. package/dist/conclave/vendors/mock.d.ts.map +1 -0
  39. package/dist/conclave/vendors/mock.js +59 -0
  40. package/dist/conclave/vendors/mock.js.map +1 -0
  41. package/dist/conclave/vendors/openai.d.ts +8 -0
  42. package/dist/conclave/vendors/openai.d.ts.map +1 -0
  43. package/dist/conclave/vendors/openai.js +75 -0
  44. package/dist/conclave/vendors/openai.js.map +1 -0
  45. package/dist/conclave/vendors/registry.d.ts +19 -0
  46. package/dist/conclave/vendors/registry.d.ts.map +1 -0
  47. package/dist/conclave/vendors/registry.js +37 -0
  48. package/dist/conclave/vendors/registry.js.map +1 -0
  49. package/dist/diaspora/bridge_hardening.test.js +1 -1
  50. package/dist/diaspora/bridge_hardening.test.js.map +1 -1
  51. package/dist/diaspora/http_bridge.d.ts +14 -0
  52. package/dist/diaspora/http_bridge.d.ts.map +1 -1
  53. package/dist/diaspora/http_bridge.js +1 -1
  54. package/dist/diaspora/http_bridge.js.map +1 -1
  55. package/dist/index.d.ts +1 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +9 -0
  58. package/dist/index.js.map +1 -1
  59. package/dist/polygraph/index.d.ts.map +1 -1
  60. package/dist/pulse.d.ts.map +1 -1
  61. package/package.json +1 -1
@@ -0,0 +1,198 @@
1
+ // v2.29.0 — MNEME CONCLAVE discrete root tests (BUG IMMUNITY).
2
+ // Every logic branch pinned to fail forever if regressed.
3
+ import { describe, it, expect, beforeEach } from "vitest";
4
+ import { mkdtempSync, rmSync } from "node:fs";
5
+ import { tmpdir } from "node:os";
6
+ import { join } from "node:path";
7
+ import { generateVariants, awarenessScore, aggregate, resolveVendors, aletheiaWeight, __resetAletheiaCacheForTest, runConclave, verifyVerdict, __resetConclaveChainForTest, } from "./index.js";
8
+ describe("AEAE — generateVariants", () => {
9
+ it("emits 5 deterministic variants by default", () => {
10
+ const v = generateVariants("Mneme has 13 verification agents");
11
+ expect(v.length).toBe(5);
12
+ const ids = new Set(v.map((x) => x.id));
13
+ expect(ids).toEqual(new Set(["verbatim", "paraphrase-1", "paraphrase-2", "decoy-embedded", "casual-question"]));
14
+ });
15
+ it("respects include filter", () => {
16
+ const v = generateVariants("x", { include: ["verbatim", "decoy-embedded"] });
17
+ expect(v.length).toBe(2);
18
+ });
19
+ it("verbatim is the original claim", () => {
20
+ expect(generateVariants("abc")[0].text).toBe("abc");
21
+ });
22
+ it("paraphrase-1 turns statement into question", () => {
23
+ const v = generateVariants("React 19 ships hooks")[1];
24
+ expect(v.text).toMatch(/\?$/);
25
+ });
26
+ it("decoy-embedded has 3 numbered lines", () => {
27
+ const v = generateVariants("x")[3];
28
+ expect(v.text).toMatch(/1\)/);
29
+ expect(v.text).toMatch(/2\)/);
30
+ expect(v.text).toMatch(/3\)/);
31
+ });
32
+ });
33
+ describe("AEAE — awarenessScore", () => {
34
+ const consistent = (stance) => ["verbatim", "paraphrase-1", "paraphrase-2", "decoy-embedded", "casual-question"]
35
+ .map((id) => ({ id, stance }));
36
+ it("returns 1.0 when every variant is the same stance", () => {
37
+ expect(awarenessScore(consistent("supports")).score).toBe(1);
38
+ });
39
+ it("drops to 0.0 when every variant differs", () => {
40
+ const r = awarenessScore([
41
+ { id: "verbatim", stance: "supports" },
42
+ { id: "paraphrase-1", stance: "refutes" },
43
+ { id: "paraphrase-2", stance: "uncertain" },
44
+ { id: "decoy-embedded", stance: "refuses" },
45
+ ]);
46
+ expect(r.score).toBe(0);
47
+ });
48
+ it("penalises refused-on-casual-only (classic awareness pattern)", () => {
49
+ const r = awarenessScore([
50
+ { id: "verbatim", stance: "supports" },
51
+ { id: "paraphrase-1", stance: "supports" },
52
+ { id: "casual-question", stance: "refuses" },
53
+ ]);
54
+ // 2 distinct over 3 → base 0.5, then -0.3 for refuses-on-casual asymmetry = 0.2
55
+ expect(r.score).toBeLessThan(0.5);
56
+ });
57
+ it("HEAVY penalty for refused-on-verbatim-only (eval-mode detection)", () => {
58
+ const r = awarenessScore([
59
+ { id: "verbatim", stance: "refuses" },
60
+ { id: "casual-question", stance: "supports" },
61
+ ]);
62
+ // distinct=2, total=2: base = 0.0; further -0.5 floor at 0
63
+ expect(r.score).toBe(0);
64
+ expect(r.reason).toMatch(/eval-mode/);
65
+ });
66
+ });
67
+ describe("BFT aggregator", () => {
68
+ const cfg = (over = {}) => ({ threshold: 0.66, bftStrict: false, ...over });
69
+ function mk(vendors) {
70
+ return vendors.map((x) => ({
71
+ vendor: x.v, weight: x.w, dominantStance: x.s,
72
+ awarenessScore: x.aw ?? 1,
73
+ perVariant: [],
74
+ }));
75
+ }
76
+ it("CONSENSUS when threshold cleared by weighted vote", () => {
77
+ const r = aggregate(mk([
78
+ { v: "a", w: 1, s: "supports" },
79
+ { v: "b", w: 1, s: "supports" },
80
+ { v: "c", w: 1, s: "refutes" },
81
+ ]), cfg());
82
+ expect(r.outcome).toBe("CONSENSUS");
83
+ expect(r.winningStance).toBe("supports");
84
+ expect(r.winningFraction).toBeCloseTo(2 / 3);
85
+ });
86
+ it("DISSENT when split", () => {
87
+ const r = aggregate(mk([
88
+ { v: "a", w: 1, s: "supports" },
89
+ { v: "b", w: 1, s: "refutes" },
90
+ ]), cfg());
91
+ expect(r.outcome).toBe("DISSENT");
92
+ expect(r.dissentBreakdown.length).toBe(2);
93
+ });
94
+ it("bftStrict refuses 2-of-5 dissenters even at 60% threshold", () => {
95
+ // 3 supports / 2 refutes → 60% support. bftStrict requires
96
+ // dissenters < n/3 = 5/3 ≈ 1.67. We have 2 dissenters → fail.
97
+ const r = aggregate(mk([
98
+ { v: "a", w: 1, s: "supports" },
99
+ { v: "b", w: 1, s: "supports" },
100
+ { v: "c", w: 1, s: "supports" },
101
+ { v: "d", w: 1, s: "refutes" },
102
+ { v: "e", w: 1, s: "refutes" },
103
+ ]), cfg({ threshold: 0.5, bftStrict: true }));
104
+ expect(r.outcome).toBe("DISSENT");
105
+ });
106
+ it("AWARENESS_DETECTED when ≥ half vendors awareness < 0.7", () => {
107
+ const r = aggregate(mk([
108
+ { v: "a", w: 1, s: "supports", aw: 0.5 },
109
+ { v: "b", w: 1, s: "supports", aw: 0.4 },
110
+ { v: "c", w: 1, s: "supports", aw: 0.6 },
111
+ ]), cfg());
112
+ expect(r.outcome).toBe("AWARENESS_DETECTED");
113
+ expect(r.awarenessFlags.length).toBe(3);
114
+ });
115
+ it("INSUFFICIENT_RESPONDERS when no vendors", () => {
116
+ expect(aggregate([], cfg()).outcome).toBe("INSUFFICIENT_RESPONDERS");
117
+ });
118
+ it("weighted vote respects Aletheia weights", () => {
119
+ // a (weight 2) supports + b (weight 1) refutes → supports wins 2/3
120
+ const r = aggregate(mk([
121
+ { v: "a", w: 2, s: "supports" },
122
+ { v: "b", w: 1, s: "refutes" },
123
+ ]), cfg());
124
+ expect(r.outcome).toBe("CONSENSUS");
125
+ expect(r.winningStance).toBe("supports");
126
+ expect(r.winningFraction).toBeCloseTo(2 / 3);
127
+ });
128
+ });
129
+ describe("Aletheia weights", () => {
130
+ let dir;
131
+ beforeEach(() => { dir = mkdtempSync(join(tmpdir(), "mneme-aletheia-")); __resetAletheiaCacheForTest(); });
132
+ afterEach(() => { try {
133
+ rmSync(dir, { recursive: true, force: true });
134
+ }
135
+ catch { /* */ } });
136
+ it("returns 0.5 neutral when no data", () => {
137
+ expect(aletheiaWeight(dir, "claude-opus-4-7")).toBe(0.5);
138
+ });
139
+ });
140
+ describe("Mock vendor adapter (deterministic)", () => {
141
+ it("same claim + vendor → same stance", async () => {
142
+ const [a] = resolveVendors(["mock-1"], { mockOnly: true });
143
+ const r1 = await a.run({ claim: "test claim", variantId: "v" });
144
+ const r2 = await a.run({ claim: "test claim", variantId: "v" });
145
+ expect(r1.stance).toBe(r2.stance);
146
+ });
147
+ it("REFUTE_ME magic claim deterministically refutes", async () => {
148
+ const [a] = resolveVendors(["mock-1"], { mockOnly: true });
149
+ const r = await a.run({ claim: "REFUTE_ME", variantId: "v" });
150
+ expect(r.stance).toBe("refutes");
151
+ });
152
+ it("REFUSE_ME magic claim deterministically refuses", async () => {
153
+ const [a] = resolveVendors(["mock-1"], { mockOnly: true });
154
+ const r = await a.run({ claim: "REFUSE_ME", variantId: "v" });
155
+ expect(r.stance).toBe("refuses");
156
+ });
157
+ it("SUPPORT_ME magic claim deterministically supports", async () => {
158
+ const [a] = resolveVendors(["mock-1"], { mockOnly: true });
159
+ const r = await a.run({ claim: "SUPPORT_ME", variantId: "v" });
160
+ expect(r.stance).toBe("supports");
161
+ });
162
+ });
163
+ describe("runConclave — end-to-end", () => {
164
+ let dir;
165
+ beforeEach(() => { dir = mkdtempSync(join(tmpdir(), "mneme-conclave-")); __resetConclaveChainForTest(); });
166
+ afterEach(() => { try {
167
+ rmSync(dir, { recursive: true, force: true });
168
+ }
169
+ catch { /* */ } });
170
+ it("5 mock vendors → REFUTE_ME claim → CONSENSUS refutes", async () => {
171
+ const v = await runConclave(dir, "REFUTE_ME", {
172
+ vendors: ["m1", "m2", "m3", "m4", "m5"],
173
+ mockOnly: true,
174
+ aeae: false, // single variant — deterministic
175
+ });
176
+ expect(v.outcome).toBe("CONSENSUS");
177
+ expect(v.winningStance).toBe("refutes");
178
+ });
179
+ it("emits HMAC chain that verifyVerdict accepts", async () => {
180
+ const v = await runConclave(dir, "SUPPORT_ME", {
181
+ vendors: ["a", "b", "c"],
182
+ mockOnly: true,
183
+ aeae: false,
184
+ });
185
+ const r = verifyVerdict(v);
186
+ expect(r.ok).toBe(true);
187
+ });
188
+ it("verifyVerdict rejects tampered card", async () => {
189
+ const v = await runConclave(dir, "SUPPORT_ME", {
190
+ vendors: ["a", "b", "c"], mockOnly: true, aeae: false,
191
+ });
192
+ v.totalMs = -1; // tamper
193
+ const r = verifyVerdict(v);
194
+ expect(r.ok).toBe(false);
195
+ });
196
+ });
197
+ import { afterEach } from "vitest";
198
+ //# sourceMappingURL=conclave.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conclave.test.js","sourceRoot":"","sources":["../../src/conclave/conclave.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * v2.29.0 — MNEME CONCLAVE engine.
3
+ *
4
+ * Orchestrates: AEAE variants × N vendor adapters in parallel →
5
+ * VendorAggregate → BFT vote → ConsensusVerdict (HMAC-chained).
6
+ */
7
+ import type { ConsensusVerdict, ConclaveRunOptions } from "./types.js";
8
+ export declare function __resetConclaveChainForTest(): void;
9
+ export declare function runConclave(repoRoot: string, claim: string, opts: ConclaveRunOptions): Promise<ConsensusVerdict>;
10
+ export declare function storeVerdict(repoRoot: string, v: ConsensusVerdict): {
11
+ path: string;
12
+ ledger: string;
13
+ };
14
+ export declare function readLatestVerdict(repoRoot: string): ConsensusVerdict | null;
15
+ export interface LedgerEntry {
16
+ seq: number;
17
+ finishedAt: string;
18
+ outcome: string;
19
+ winningStance?: string;
20
+ claim: string;
21
+ headline: string;
22
+ hmac: string;
23
+ bodyDigest: string;
24
+ file: string;
25
+ }
26
+ export declare function listVerdicts(repoRoot: string, limit?: number): LedgerEntry[];
27
+ export declare function readDissentCorpus(repoRoot: string, limit?: number): unknown[];
28
+ export declare function verifyVerdict(card: ConsensusVerdict, prev?: string): {
29
+ ok: true;
30
+ } | {
31
+ ok: false;
32
+ reason: string;
33
+ };
34
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/conclave/engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EACV,gBAAgB,EAAE,kBAAkB,EACrC,MAAM,YAAY,CAAC;AAqBpB,wBAAgB,2BAA2B,IAAI,IAAI,CAAgC;AAiBnF,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,kBAAkB,GACvB,OAAO,CAAC,gBAAgB,CAAC,CAwF3B;AAiBD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAE,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA6BpG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI,CAQ3E;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IACzE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CACjF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,WAAW,EAAE,CAOxE;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,EAAE,CAO1E;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,GAAE,MAAmB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAQ7H"}
@@ -0,0 +1,225 @@
1
+ /**
2
+ * v2.29.0 — MNEME CONCLAVE engine.
3
+ *
4
+ * Orchestrates: AEAE variants × N vendor adapters in parallel →
5
+ * VendorAggregate → BFT vote → ConsensusVerdict (HMAC-chained).
6
+ */
7
+ import { createHash, createHmac } from "node:crypto";
8
+ import { existsSync, mkdirSync, writeFileSync, appendFileSync, readFileSync, readdirSync } from "node:fs";
9
+ import { join } from "node:path";
10
+ import { resolveVendors } from "./vendors/registry.js";
11
+ import { generateVariants, awarenessScore } from "./aeae/index.js";
12
+ import { aggregate } from "./bft.js";
13
+ import { aletheiaWeight } from "./aletheia_weights.js";
14
+ const HMAC_KEY = process.env["MNEME_CONCLAVE_KEY"] ?? "mneme-conclave-v1";
15
+ const CHAIN_SEED = "0".repeat(64);
16
+ function canon(v) {
17
+ if (v === null || typeof v !== "object")
18
+ return JSON.stringify(v);
19
+ if (Array.isArray(v))
20
+ return "[" + v.map(canon).join(",") + "]";
21
+ const keys = Object.keys(v).sort();
22
+ return "{" + keys.map((k) => JSON.stringify(k) + ":" + canon(v[k])).join(",") + "}";
23
+ }
24
+ function sha(s) { return createHash("sha256").update(s).digest("hex"); }
25
+ function hmacOf(prev, payload) {
26
+ return createHmac("sha256", HMAC_KEY).update(prev + "|" + payload).digest("hex");
27
+ }
28
+ let lastChainLink = CHAIN_SEED;
29
+ export function __resetConclaveChainForTest() { lastChainLink = CHAIN_SEED; }
30
+ function dominant(values, tiebreak) {
31
+ // Mode (most-frequent). On tie, prefer the first entry in tiebreak that's in values.
32
+ const c = new Map();
33
+ for (const v of values)
34
+ c.set(v, (c.get(v) ?? 0) + 1);
35
+ let best;
36
+ let bestN = 0;
37
+ for (const [v, n] of c) {
38
+ if (n > bestN) {
39
+ best = v;
40
+ bestN = n;
41
+ }
42
+ }
43
+ // Tie detection
44
+ const tied = [...c.entries()].filter(([, n]) => n === bestN).map(([v]) => v);
45
+ if (tied.length > 1) {
46
+ for (const t of tiebreak)
47
+ if (tied.includes(t))
48
+ return t;
49
+ }
50
+ return best;
51
+ }
52
+ export async function runConclave(repoRoot, claim, opts) {
53
+ const startedAt = new Date().toISOString();
54
+ const t0 = Date.now();
55
+ const threshold = opts.bftThreshold ?? 0.66;
56
+ const bftStrict = opts.bftStrict === true;
57
+ const aeae = opts.aeae !== false;
58
+ const weightBy = opts.weightBy ?? "aletheia";
59
+ const variants = aeae
60
+ ? generateVariants(claim, opts.variants ? { include: opts.variants } : {})
61
+ : [{ id: "verbatim", text: claim, strategy: "AEAE disabled — verbatim only" }];
62
+ const adapters = resolveVendors(opts.vendors, { mockOnly: opts.mockOnly === true });
63
+ // Fan-out: for each (vendor, variant) run in parallel.
64
+ const allVerdicts = await Promise.all(adapters.flatMap((a) => variants.map((v) => a.run({ claim: v.text, variantId: v.id, timeoutMs: opts.vendorTimeoutMs }).catch((e) => ({
65
+ vendor: a.id, variant: v.id, stance: "uncertain", confidence: 0,
66
+ reasoning: `adapter threw: ${e.message}`, dtMs: 0, error: e.name,
67
+ })))));
68
+ // Bucket by vendor.
69
+ const perVendor = adapters.map((a) => {
70
+ const own = allVerdicts.filter((v) => v.vendor === a.id);
71
+ const stances = own.map((v) => v.stance);
72
+ const tiebreak = ["refutes", "supports", "uncertain", "refuses"];
73
+ const dom = dominant(stances, tiebreak);
74
+ const aw = awarenessScore(own.map((v) => ({ id: v.variant, stance: v.stance })));
75
+ const weight = weightBy === "equal" ? 1 : aletheiaWeight(repoRoot, a.id);
76
+ return {
77
+ vendor: a.id,
78
+ weight,
79
+ dominantStance: dom,
80
+ awarenessScore: aw.score,
81
+ perVariant: own,
82
+ };
83
+ });
84
+ // Drop vendors that ALL errored (no signal).
85
+ const respondingVendors = perVendor.filter((v) => v.perVariant.some((p) => !p.error));
86
+ const bft = aggregate(respondingVendors, { threshold, bftStrict });
87
+ const finishedAt = new Date().toISOString();
88
+ const totalMs = Date.now() - t0;
89
+ let headline;
90
+ switch (bft.outcome) {
91
+ case "CONSENSUS":
92
+ headline = `🟢 CONSENSUS — ${bft.winningStance} (${Math.round(bft.winningFraction * 100)}% weighted) across ${respondingVendors.length} vendors`;
93
+ break;
94
+ case "DISSENT":
95
+ headline = `⚠ DISSENT — winning stance "${dominantStanceFromBreakdown(bft.dissentBreakdown)}" only ${Math.round(bft.winningFraction * 100)}% (threshold ${Math.round(threshold * 100)}%); see split`;
96
+ break;
97
+ case "AWARENESS_DETECTED":
98
+ headline = `🔍 AWARENESS — vendors agreed on "${bft.winningStance}" but ${bft.awarenessFlags.length} of ${respondingVendors.length} flipped stance across AEAE variants (possible eval-mode behaviour)`;
99
+ break;
100
+ case "INSUFFICIENT_RESPONDERS":
101
+ headline = `❌ INSUFFICIENT — only ${respondingVendors.length} vendors returned a usable verdict`;
102
+ break;
103
+ }
104
+ const body = {
105
+ spec: { name: "MNEME-CONCLAVE", version: "1.0" },
106
+ claim,
107
+ startedAt,
108
+ finishedAt,
109
+ totalMs,
110
+ vendors: opts.vendors,
111
+ variants: variants.map((v) => v.id),
112
+ threshold,
113
+ bftStrict,
114
+ aeaeOn: aeae,
115
+ perVendor,
116
+ weightedTallies: bft.weightedTallies,
117
+ outcome: bft.outcome,
118
+ winningStance: bft.winningStance,
119
+ headline,
120
+ awarenessFlags: bft.awarenessFlags,
121
+ dissentBreakdown: bft.dissentBreakdown,
122
+ };
123
+ const bodyDigest = sha(canon(body));
124
+ lastChainLink = hmacOf(lastChainLink, bodyDigest);
125
+ return { ...body, hmac: lastChainLink, seq: parseInt(lastChainLink.slice(0, 8), 16), bodyDigest };
126
+ }
127
+ function dominantStanceFromBreakdown(b) {
128
+ if (!b || b.length === 0)
129
+ return "uncertain";
130
+ let best = b[0];
131
+ for (const row of b)
132
+ if (row.weight > best.weight)
133
+ best = row;
134
+ return best.stance;
135
+ }
136
+ // ── Persistence ──────────────────────────────────────────────────────
137
+ function dirOf(repoRoot) {
138
+ const d = join(repoRoot, ".mneme", "conclave");
139
+ if (!existsSync(d))
140
+ mkdirSync(d, { recursive: true });
141
+ return d;
142
+ }
143
+ export function storeVerdict(repoRoot, v) {
144
+ const d = dirOf(repoRoot);
145
+ const stamp = v.finishedAt.replace(/[:.]/g, "-");
146
+ const path = join(d, `${String(v.seq).padStart(10, "0")}-${stamp}.json`);
147
+ writeFileSync(path, JSON.stringify(v, null, 2) + "\n");
148
+ const ledger = join(d, "verdicts.jsonl");
149
+ const skim = {
150
+ seq: v.seq, finishedAt: v.finishedAt,
151
+ outcome: v.outcome, winningStance: v.winningStance,
152
+ claim: v.claim.slice(0, 200),
153
+ headline: v.headline,
154
+ hmac: v.hmac, bodyDigest: v.bodyDigest, file: path,
155
+ };
156
+ appendFileSync(ledger, JSON.stringify(skim) + "\n");
157
+ // If outcome is DISSENT, ALSO append to the federated dissent corpus —
158
+ // this is the seed of the future cross-machine hallucination dataset
159
+ // (Q2 of the research gap matrix).
160
+ if (v.outcome === "DISSENT" && v.dissentBreakdown) {
161
+ const dissentLedger = join(d, "dissent_corpus.jsonl");
162
+ const entry = {
163
+ at: v.finishedAt,
164
+ claim: v.claim,
165
+ split: v.dissentBreakdown,
166
+ hmac: v.hmac,
167
+ };
168
+ appendFileSync(dissentLedger, JSON.stringify(entry) + "\n");
169
+ }
170
+ return { path, ledger };
171
+ }
172
+ export function readLatestVerdict(repoRoot) {
173
+ const d = dirOf(repoRoot);
174
+ if (!existsSync(d))
175
+ return null;
176
+ const files = readdirSync(d).filter((n) => n.endsWith(".json")).sort();
177
+ if (files.length === 0)
178
+ return null;
179
+ try {
180
+ return JSON.parse(readFileSync(join(d, files[files.length - 1]), "utf8"));
181
+ }
182
+ catch {
183
+ return null;
184
+ }
185
+ }
186
+ export function listVerdicts(repoRoot, limit = 30) {
187
+ const p = join(dirOf(repoRoot), "verdicts.jsonl");
188
+ if (!existsSync(p))
189
+ return [];
190
+ const lines = readFileSync(p, "utf8").split("\n").filter(Boolean);
191
+ const out = [];
192
+ for (const l of lines.slice(-limit)) {
193
+ try {
194
+ out.push(JSON.parse(l));
195
+ }
196
+ catch { /* skip */ }
197
+ }
198
+ return out;
199
+ }
200
+ export function readDissentCorpus(repoRoot, limit = 100) {
201
+ const p = join(dirOf(repoRoot), "dissent_corpus.jsonl");
202
+ if (!existsSync(p))
203
+ return [];
204
+ const lines = readFileSync(p, "utf8").split("\n").filter(Boolean);
205
+ const out = [];
206
+ for (const l of lines.slice(-limit)) {
207
+ try {
208
+ out.push(JSON.parse(l));
209
+ }
210
+ catch { /* skip */ }
211
+ }
212
+ return out;
213
+ }
214
+ export function verifyVerdict(card, prev = CHAIN_SEED) {
215
+ const { hmac, seq: _s, bodyDigest, ...body } = card;
216
+ void _s;
217
+ const recomputed = sha(canon(body));
218
+ if (recomputed !== bodyDigest)
219
+ return { ok: false, reason: "bodyDigest mismatch" };
220
+ const expected = hmacOf(prev, recomputed);
221
+ if (expected !== hmac)
222
+ return { ok: false, reason: "hmac mismatch" };
223
+ return { ok: true };
224
+ }
225
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/conclave/engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * v2.29.0 — MNEME CONCLAVE public surface.
3
+ */
4
+ export * from "./types.js";
5
+ export { generateVariants, awarenessScore } from "./aeae/index.js";
6
+ export type { ClaimVariant } from "./aeae/index.js";
7
+ export { aggregate } from "./bft.js";
8
+ export type { BftConfig, BftResult } from "./bft.js";
9
+ export { aletheiaWeight, __resetAletheiaCacheForTest } from "./aletheia_weights.js";
10
+ export { resolveVendors, adapterFor } from "./vendors/registry.js";
11
+ export type { VendorAdapter } from "./vendors/interface.js";
12
+ export { runConclave, storeVerdict, readLatestVerdict, listVerdicts, readDissentCorpus, verifyVerdict, __resetConclaveChainForTest, } from "./engine.js";
13
+ export type { LedgerEntry } from "./engine.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/conclave/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACnE,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAC1D,iBAAiB,EAAE,aAAa,EAAE,2BAA2B,GAC9D,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * v2.29.0 — MNEME CONCLAVE public surface.
3
+ */
4
+ export * from "./types.js";
5
+ export { generateVariants, awarenessScore } from "./aeae/index.js";
6
+ export { aggregate } from "./bft.js";
7
+ export { aletheiaWeight, __resetAletheiaCacheForTest } from "./aletheia_weights.js";
8
+ export { resolveVendors, adapterFor } from "./vendors/registry.js";
9
+ export { runConclave, storeVerdict, readLatestVerdict, listVerdicts, readDissentCorpus, verifyVerdict, __resetConclaveChainForTest, } from "./engine.js";
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/conclave/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnE,OAAO,EACL,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAC1D,iBAAiB,EAAE,aAAa,EAAE,2BAA2B,GAC9D,MAAM,aAAa,CAAC"}