@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.
- package/dist/conclave/aeae/index.d.ts +59 -0
- package/dist/conclave/aeae/index.d.ts.map +1 -0
- package/dist/conclave/aeae/index.js +133 -0
- package/dist/conclave/aeae/index.js.map +1 -0
- package/dist/conclave/aletheia_weights.d.ts +14 -0
- package/dist/conclave/aletheia_weights.d.ts.map +1 -0
- package/dist/conclave/aletheia_weights.js +66 -0
- package/dist/conclave/aletheia_weights.js.map +1 -0
- package/dist/conclave/bft.d.ts +47 -0
- package/dist/conclave/bft.d.ts.map +1 -0
- package/dist/conclave/bft.js +122 -0
- package/dist/conclave/bft.js.map +1 -0
- package/dist/conclave/conclave.test.d.ts +2 -0
- package/dist/conclave/conclave.test.d.ts.map +1 -0
- package/dist/conclave/conclave.test.js +198 -0
- package/dist/conclave/conclave.test.js.map +1 -0
- package/dist/conclave/engine.d.ts +34 -0
- package/dist/conclave/engine.d.ts.map +1 -0
- package/dist/conclave/engine.js +225 -0
- package/dist/conclave/engine.js.map +1 -0
- package/dist/conclave/index.d.ts +14 -0
- package/dist/conclave/index.d.ts.map +1 -0
- package/dist/conclave/index.js +10 -0
- package/dist/conclave/index.js.map +1 -0
- package/dist/conclave/types.d.ts +126 -0
- package/dist/conclave/types.d.ts.map +1 -0
- package/dist/conclave/types.js +28 -0
- package/dist/conclave/types.js.map +1 -0
- package/dist/conclave/vendors/anthropic.d.ts +15 -0
- package/dist/conclave/vendors/anthropic.d.ts.map +1 -0
- package/dist/conclave/vendors/anthropic.js +83 -0
- package/dist/conclave/vendors/anthropic.js.map +1 -0
- package/dist/conclave/vendors/interface.d.ts +43 -0
- package/dist/conclave/vendors/interface.d.ts.map +1 -0
- package/dist/conclave/vendors/interface.js +66 -0
- package/dist/conclave/vendors/interface.js.map +1 -0
- package/dist/conclave/vendors/mock.d.ts +12 -0
- package/dist/conclave/vendors/mock.d.ts.map +1 -0
- package/dist/conclave/vendors/mock.js +59 -0
- package/dist/conclave/vendors/mock.js.map +1 -0
- package/dist/conclave/vendors/openai.d.ts +8 -0
- package/dist/conclave/vendors/openai.d.ts.map +1 -0
- package/dist/conclave/vendors/openai.js +75 -0
- package/dist/conclave/vendors/openai.js.map +1 -0
- package/dist/conclave/vendors/registry.d.ts +19 -0
- package/dist/conclave/vendors/registry.d.ts.map +1 -0
- package/dist/conclave/vendors/registry.js +37 -0
- package/dist/conclave/vendors/registry.js.map +1 -0
- package/dist/diaspora/bridge_hardening.test.js +1 -1
- package/dist/diaspora/bridge_hardening.test.js.map +1 -1
- package/dist/diaspora/http_bridge.d.ts +14 -0
- package/dist/diaspora/http_bridge.d.ts.map +1 -1
- package/dist/diaspora/http_bridge.js +1 -1
- package/dist/diaspora/http_bridge.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/polygraph/index.d.ts.map +1 -1
- package/dist/pulse.d.ts.map +1 -1
- 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"}
|