@mneme-ai/core 1.62.0 → 1.64.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/cognitive/cognitive.test.d.ts +10 -0
- package/dist/cognitive/cognitive.test.d.ts.map +1 -0
- package/dist/cognitive/cognitive.test.js +485 -0
- package/dist/cognitive/cognitive.test.js.map +1 -0
- package/dist/cognitive/consolidation.d.ts +73 -0
- package/dist/cognitive/consolidation.d.ts.map +1 -0
- package/dist/cognitive/consolidation.js +170 -0
- package/dist/cognitive/consolidation.js.map +1 -0
- package/dist/cognitive/counterfactual.d.ts +73 -0
- package/dist/cognitive/counterfactual.d.ts.map +1 -0
- package/dist/cognitive/counterfactual.js +184 -0
- package/dist/cognitive/counterfactual.js.map +1 -0
- package/dist/cognitive/curiosity.d.ts +37 -0
- package/dist/cognitive/curiosity.d.ts.map +1 -0
- package/dist/cognitive/curiosity.js +191 -0
- package/dist/cognitive/curiosity.js.map +1 -0
- package/dist/cognitive/debate.d.ts +48 -0
- package/dist/cognitive/debate.d.ts.map +1 -0
- package/dist/cognitive/debate.js +223 -0
- package/dist/cognitive/debate.js.map +1 -0
- package/dist/cognitive/decision_atom.d.ts +119 -0
- package/dist/cognitive/decision_atom.d.ts.map +1 -0
- package/dist/cognitive/decision_atom.js +187 -0
- package/dist/cognitive/decision_atom.js.map +1 -0
- package/dist/cognitive/index.d.ts +31 -0
- package/dist/cognitive/index.d.ts.map +1 -0
- package/dist/cognitive/index.js +24 -0
- package/dist/cognitive/index.js.map +1 -0
- package/dist/cognitive/theory_of_mind.d.ts +56 -0
- package/dist/cognitive/theory_of_mind.d.ts.map +1 -0
- package/dist/cognitive/theory_of_mind.js +212 -0
- package/dist/cognitive/theory_of_mind.js.map +1 -0
- package/dist/cognitive/tree_of_thought.d.ts +55 -0
- package/dist/cognitive/tree_of_thought.d.ts.map +1 -0
- package/dist/cognitive/tree_of_thought.js +134 -0
- package/dist/cognitive/tree_of_thought.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -1
- package/dist/innerlife/ai_teacher.d.ts +83 -0
- package/dist/innerlife/ai_teacher.d.ts.map +1 -0
- package/dist/innerlife/ai_teacher.js +152 -0
- package/dist/innerlife/ai_teacher.js.map +1 -0
- package/dist/innerlife/innerlife.d.ts +104 -0
- package/dist/innerlife/innerlife.d.ts.map +1 -0
- package/dist/innerlife/innerlife.js +228 -0
- package/dist/innerlife/innerlife.js.map +1 -0
- package/dist/innerlife/innerlife.test.d.ts +5 -0
- package/dist/innerlife/innerlife.test.d.ts.map +1 -0
- package/dist/innerlife/innerlife.test.js +219 -0
- package/dist/innerlife/innerlife.test.js.map +1 -0
- package/dist/metamorphosis/metamorphosis.d.ts +116 -0
- package/dist/metamorphosis/metamorphosis.d.ts.map +1 -0
- package/dist/metamorphosis/metamorphosis.js +278 -0
- package/dist/metamorphosis/metamorphosis.js.map +1 -0
- package/dist/metamorphosis/metamorphosis.test.d.ts +5 -0
- package/dist/metamorphosis/metamorphosis.test.d.ts.map +1 -0
- package/dist/metamorphosis/metamorphosis.test.js +176 -0
- package/dist/metamorphosis/metamorphosis.test.js.map +1 -0
- package/dist/tribunal/tribunal.d.ts +111 -0
- package/dist/tribunal/tribunal.d.ts.map +1 -0
- package/dist/tribunal/tribunal.js +294 -0
- package/dist/tribunal/tribunal.js.map +1 -0
- package/dist/tribunal/tribunal.test.d.ts +5 -0
- package/dist/tribunal/tribunal.test.d.ts.map +1 -0
- package/dist/tribunal/tribunal.test.js +184 -0
- package/dist/tribunal/tribunal.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1.64.0 -- COGNITIVE 7-layer test suite.
|
|
3
|
+
*
|
|
4
|
+
* Each layer is exercised with realistic on-disk fixtures so verdicts
|
|
5
|
+
* are not just "function returns object" but actually carry meaningful
|
|
6
|
+
* signal. The final layer (decision atom) integrates 1-6 and is the
|
|
7
|
+
* acceptance test for the whole layer.
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=cognitive.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cognitive.test.d.ts","sourceRoot":"","sources":["../../src/cognitive/cognitive.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1.64.0 -- COGNITIVE 7-layer test suite.
|
|
3
|
+
*
|
|
4
|
+
* Each layer is exercised with realistic on-disk fixtures so verdicts
|
|
5
|
+
* are not just "function returns object" but actually carry meaningful
|
|
6
|
+
* signal. The final layer (decision atom) integrates 1-6 and is the
|
|
7
|
+
* acceptance test for the whole layer.
|
|
8
|
+
*/
|
|
9
|
+
import { describe, it, expect, beforeEach, afterEach } from "vitest";
|
|
10
|
+
import { mkdtempSync, rmSync, mkdirSync, writeFileSync, existsSync, readFileSync } from "node:fs";
|
|
11
|
+
import { tmpdir } from "node:os";
|
|
12
|
+
import { join } from "node:path";
|
|
13
|
+
import { execSync } from "node:child_process";
|
|
14
|
+
import { buildProfile, persistProfile, compareVendors, recommendVendor } from "./theory_of_mind.js";
|
|
15
|
+
import { search as totSearch } from "./tree_of_thought.js";
|
|
16
|
+
import { scanGaps, logProbeExecution } from "./curiosity.js";
|
|
17
|
+
import { mergeNearDuplicateVaccines, consolidateLessons, runConsolidation } from "./consolidation.js";
|
|
18
|
+
import { simulate as cfSimulate, detectBias } from "./counterfactual.js";
|
|
19
|
+
import { debate } from "./debate.js";
|
|
20
|
+
import { build as buildAtom, summarizeHistory } from "./decision_atom.js";
|
|
21
|
+
function setupRepo() { return mkdtempSync(join(tmpdir(), "mneme-cog-")); }
|
|
22
|
+
function cleanup(r) { try {
|
|
23
|
+
rmSync(r, { recursive: true, force: true });
|
|
24
|
+
}
|
|
25
|
+
catch { /* */ } }
|
|
26
|
+
function initGit(r, commits) {
|
|
27
|
+
execSync(`git init --quiet -b main`, { cwd: r, stdio: "ignore" });
|
|
28
|
+
execSync(`git config user.email "t@t.t"`, { cwd: r, stdio: "ignore" });
|
|
29
|
+
execSync(`git config user.name "t"`, { cwd: r, stdio: "ignore" });
|
|
30
|
+
execSync(`git config commit.gpgsign false`, { cwd: r, stdio: "ignore" });
|
|
31
|
+
for (let i = 0; i < commits.length; i++) {
|
|
32
|
+
writeFileSync(join(r, `f${i}.txt`), `${i}`, "utf8");
|
|
33
|
+
execSync(`git add -A`, { cwd: r, stdio: "ignore" });
|
|
34
|
+
execSync(`git commit -m "${commits[i]}" --no-gpg-sign --quiet`, { cwd: r, stdio: "ignore" });
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function seedSoul(r, vendor, sessions) {
|
|
38
|
+
const dir = join(r, ".mneme/ai-souls");
|
|
39
|
+
if (!existsSync(dir))
|
|
40
|
+
mkdirSync(dir, { recursive: true });
|
|
41
|
+
writeFileSync(join(dir, `${vendor}.json`), JSON.stringify({ vendor, sessions: sessions.map((s, i) => ({ id: `s-${i}`, ts: new Date().toISOString(), ...s })) }, null, 2), "utf8");
|
|
42
|
+
}
|
|
43
|
+
function seedQuorum(r, rows) {
|
|
44
|
+
const dir = join(r, ".mneme/squadron");
|
|
45
|
+
if (!existsSync(dir))
|
|
46
|
+
mkdirSync(dir, { recursive: true });
|
|
47
|
+
const lines = rows.map((row) => JSON.stringify({
|
|
48
|
+
ts: new Date().toISOString(),
|
|
49
|
+
claim: row.claim,
|
|
50
|
+
consensus: row.refuted ? "refute" : "support",
|
|
51
|
+
confidence: 0.8,
|
|
52
|
+
caveats: row.refuted ? ["FALSE_FACT_CLAIM"] : [],
|
|
53
|
+
})).join("\n") + "\n";
|
|
54
|
+
writeFileSync(join(dir, "quorum.jsonl"), lines, "utf8");
|
|
55
|
+
}
|
|
56
|
+
function seedVaccines(r, vaccines) {
|
|
57
|
+
const dir = join(r, ".mneme/squadron");
|
|
58
|
+
if (!existsSync(dir))
|
|
59
|
+
mkdirSync(dir, { recursive: true });
|
|
60
|
+
const lines = vaccines.map((v, i) => JSON.stringify({
|
|
61
|
+
id: `v-${i}`,
|
|
62
|
+
simhash: v.simhash,
|
|
63
|
+
signature: "test",
|
|
64
|
+
refuteCount: v.refuteCount ?? 1,
|
|
65
|
+
firstSeen: new Date().toISOString(),
|
|
66
|
+
lastSeen: new Date().toISOString(),
|
|
67
|
+
sample: v.sample,
|
|
68
|
+
})).join("\n") + "\n";
|
|
69
|
+
writeFileSync(join(dir, "lie-vaccines.jsonl"), lines, "utf8");
|
|
70
|
+
}
|
|
71
|
+
function seedNucleus(r, lessons) {
|
|
72
|
+
if (!existsSync(join(r, ".mneme")))
|
|
73
|
+
mkdirSync(join(r, ".mneme"), { recursive: true });
|
|
74
|
+
writeFileSync(join(r, ".mneme/nucleus.json"), JSON.stringify({
|
|
75
|
+
schemaVersion: 1,
|
|
76
|
+
tick: 0,
|
|
77
|
+
lessons: lessons.map((l, i) => ({
|
|
78
|
+
id: `l-${i}`,
|
|
79
|
+
tick: i,
|
|
80
|
+
bornAt: l.bornAt ?? new Date().toISOString(),
|
|
81
|
+
text: l.text,
|
|
82
|
+
source: "test",
|
|
83
|
+
kind: l.kind,
|
|
84
|
+
recallCount: l.recallCount ?? 0,
|
|
85
|
+
})),
|
|
86
|
+
}, null, 2), "utf8");
|
|
87
|
+
}
|
|
88
|
+
// ─── Layer 1: Theory of Mind ─────────────────────────────────────────
|
|
89
|
+
describe("v1.64 Cognitive L1 · Theory of Mind", () => {
|
|
90
|
+
let r;
|
|
91
|
+
beforeEach(() => { r = setupRepo(); });
|
|
92
|
+
afterEach(() => cleanup(r));
|
|
93
|
+
it("builds a 9-axis profile from soul + quorum data", () => {
|
|
94
|
+
seedSoul(r, "claude", [
|
|
95
|
+
{ broken: 0, verbosity: 500 },
|
|
96
|
+
{ broken: 1, reason: "fabricated commit hash abc123", verbosity: 600 },
|
|
97
|
+
{ broken: 0, verbosity: 450 },
|
|
98
|
+
{ broken: 1, reason: "non-existent file path", verbosity: 700 },
|
|
99
|
+
]);
|
|
100
|
+
seedQuorum(r, [
|
|
101
|
+
{ claim: "uses jwt for auth", refuted: false },
|
|
102
|
+
{ claim: "auth uses bcrypt", refuted: true },
|
|
103
|
+
{ claim: "git commit history is correct", refuted: false },
|
|
104
|
+
]);
|
|
105
|
+
const p = buildProfile(r, "claude");
|
|
106
|
+
expect(p.vendor).toBe("claude");
|
|
107
|
+
expect(p.observationCount).toBe(4);
|
|
108
|
+
expect(p.axes.overconfidence).toBeCloseTo(0.5, 1);
|
|
109
|
+
expect(p.axes.hallucinationClass).toBe("commit-hash");
|
|
110
|
+
expect(p.axes.domainBias.auth).toBeGreaterThanOrEqual(0);
|
|
111
|
+
expect(p.axes.domainBias.auth).toBeLessThanOrEqual(1);
|
|
112
|
+
expect(p.axes.tempStability).toBeGreaterThanOrEqual(0);
|
|
113
|
+
});
|
|
114
|
+
it("persists profile to disk", () => {
|
|
115
|
+
seedSoul(r, "cursor", [{ broken: 0, verbosity: 300 }]);
|
|
116
|
+
const p = buildProfile(r, "cursor");
|
|
117
|
+
const path = persistProfile(r, p);
|
|
118
|
+
expect(existsSync(path)).toBe(true);
|
|
119
|
+
const onDisk = JSON.parse(readFileSync(path, "utf8"));
|
|
120
|
+
expect(onDisk.vendor).toBe("cursor");
|
|
121
|
+
});
|
|
122
|
+
it("compares vendors and recommends the right one", () => {
|
|
123
|
+
seedSoul(r, "a", [{ broken: 0, verbosity: 200 }, { broken: 0, verbosity: 250 }]);
|
|
124
|
+
seedSoul(r, "b", [{ broken: 1, verbosity: 800 }, { broken: 1, verbosity: 900 }]);
|
|
125
|
+
const a = buildProfile(r, "a");
|
|
126
|
+
const b = buildProfile(r, "b");
|
|
127
|
+
const cmp = compareVendors(a, b);
|
|
128
|
+
expect(cmp.aWins.length + cmp.bWins.length + cmp.tied.length).toBeGreaterThan(0);
|
|
129
|
+
const reco = recommendVendor([a, b], { needsTerse: true, needsStable: true });
|
|
130
|
+
expect(reco?.vendor).toBe("a");
|
|
131
|
+
});
|
|
132
|
+
it("returns null when no profiles supplied", () => {
|
|
133
|
+
expect(recommendVendor([], {})).toBeNull();
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
// ─── Layer 2: Tree of Thought ────────────────────────────────────────
|
|
137
|
+
describe("v1.64 Cognitive L2 · Tree of Thought", () => {
|
|
138
|
+
let r;
|
|
139
|
+
beforeEach(() => { r = setupRepo(); });
|
|
140
|
+
afterEach(() => cleanup(r));
|
|
141
|
+
it("builds a 3-level tree and picks the best leaf by EV", () => {
|
|
142
|
+
const result = totSearch(r, "refactor the auth module");
|
|
143
|
+
expect(result.root.label).toBe("refactor the auth module");
|
|
144
|
+
expect(result.root.children.length).toBe(3);
|
|
145
|
+
expect(result.rankedLeaves.length).toBe(6); // 3 strategies × 2 tactics
|
|
146
|
+
expect(result.bestEv).toBeGreaterThan(0);
|
|
147
|
+
expect(result.bestPath.length).toBe(3);
|
|
148
|
+
expect(result.bestPath[0]).toBe("refactor the auth module");
|
|
149
|
+
});
|
|
150
|
+
it("ranks leaves descending by EV", () => {
|
|
151
|
+
const result = totSearch(r, "fix a bug in the parser");
|
|
152
|
+
for (let i = 1; i < result.rankedLeaves.length; i++) {
|
|
153
|
+
expect(result.rankedLeaves[i - 1].ev).toBeGreaterThanOrEqual(result.rankedLeaves[i].ev);
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
it("uses default strategies for unrecognized intent", () => {
|
|
157
|
+
const result = totSearch(r, "do the weekly chore");
|
|
158
|
+
expect(result.root.children.map((c) => c.label)).toEqual(["do-it-now", "do-it-careful", "do-it-later"]);
|
|
159
|
+
});
|
|
160
|
+
it("writes audit log on each search", () => {
|
|
161
|
+
totSearch(r, "build a new dashboard");
|
|
162
|
+
const log = join(r, ".mneme/cognitive/tot/search.jsonl");
|
|
163
|
+
expect(existsSync(log)).toBe(true);
|
|
164
|
+
expect(readFileSync(log, "utf8")).toContain("dashboard");
|
|
165
|
+
});
|
|
166
|
+
it("is deterministic for the same intent", () => {
|
|
167
|
+
const a = totSearch(r, "ship the migration plan");
|
|
168
|
+
const b = totSearch(r, "ship the migration plan");
|
|
169
|
+
expect(a.bestPath).toEqual(b.bestPath);
|
|
170
|
+
expect(a.bestEv).toBeCloseTo(b.bestEv, 6);
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
// ─── Layer 3: Curiosity ──────────────────────────────────────────────
|
|
174
|
+
describe("v1.64 Cognitive L3 · Curiosity Engine", () => {
|
|
175
|
+
let r;
|
|
176
|
+
beforeEach(() => { r = setupRepo(); });
|
|
177
|
+
afterEach(() => cleanup(r));
|
|
178
|
+
it("detects commit areas with no vaccine coverage", () => {
|
|
179
|
+
initGit(r, [
|
|
180
|
+
"feat(payment): add stripe integration",
|
|
181
|
+
"feat(payment): handle webhooks",
|
|
182
|
+
"fix(payment): retry on 5xx",
|
|
183
|
+
"feat(payment): refund flow",
|
|
184
|
+
]);
|
|
185
|
+
const scan = scanGaps(r);
|
|
186
|
+
const paymentGap = scan.gaps.find((g) => g.description.includes("payment"));
|
|
187
|
+
expect(paymentGap).toBeDefined();
|
|
188
|
+
// Either source fires for an active no-coverage area; both are valid signal.
|
|
189
|
+
expect(["commit-no-vaccine", "stale-area"]).toContain(paymentGap?.source);
|
|
190
|
+
});
|
|
191
|
+
it("ranks by priority and returns highPriority count", () => {
|
|
192
|
+
initGit(r, Array.from({ length: 12 }, (_, i) => `feat(billing): item ${i}`));
|
|
193
|
+
const scan = scanGaps(r);
|
|
194
|
+
expect(scan.totalGaps).toBeGreaterThan(0);
|
|
195
|
+
expect(scan.highPriority).toBeGreaterThanOrEqual(0);
|
|
196
|
+
for (let i = 1; i < scan.gaps.length; i++) {
|
|
197
|
+
expect(scan.gaps[i - 1].priority).toBeGreaterThanOrEqual(scan.gaps[i].priority);
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
it("dedups gaps by id", () => {
|
|
201
|
+
initGit(r, ["feat: alpha", "fix: alpha"]);
|
|
202
|
+
const scan = scanGaps(r);
|
|
203
|
+
const ids = scan.gaps.map((g) => g.id);
|
|
204
|
+
expect(new Set(ids).size).toBe(ids.length);
|
|
205
|
+
});
|
|
206
|
+
it("logs probe execution", () => {
|
|
207
|
+
logProbeExecution(r, "gap-test", "grounded");
|
|
208
|
+
const log = join(r, ".mneme/cognitive/curiosity/probes.jsonl");
|
|
209
|
+
expect(existsSync(log)).toBe(true);
|
|
210
|
+
expect(readFileSync(log, "utf8")).toContain("grounded");
|
|
211
|
+
});
|
|
212
|
+
});
|
|
213
|
+
// ─── Layer 4: Consolidation ──────────────────────────────────────────
|
|
214
|
+
describe("v1.64 Cognitive L4 · Memory Consolidation", () => {
|
|
215
|
+
let r;
|
|
216
|
+
beforeEach(() => { r = setupRepo(); });
|
|
217
|
+
afterEach(() => cleanup(r));
|
|
218
|
+
it("merges near-duplicate vaccines by Hamming distance", () => {
|
|
219
|
+
const vaccines = [
|
|
220
|
+
{ id: "v1", simhash: "ff00aa", signature: "x", refuteCount: 3, firstSeen: "t", lastSeen: "t" },
|
|
221
|
+
{ id: "v2", simhash: "ff00ab", signature: "x", refuteCount: 1, firstSeen: "t", lastSeen: "t" }, // 1 bit away
|
|
222
|
+
{ id: "v3", simhash: "0000ff", signature: "x", refuteCount: 1, firstSeen: "t", lastSeen: "t" }, // far
|
|
223
|
+
];
|
|
224
|
+
const { merged, mergedCount } = mergeNearDuplicateVaccines(vaccines, 4);
|
|
225
|
+
expect(mergedCount).toBe(1);
|
|
226
|
+
expect(merged.length).toBe(2);
|
|
227
|
+
const kept = merged.find((v) => v.id === "v1");
|
|
228
|
+
expect(kept?.refuteCount).toBe(4); // 3 + 1
|
|
229
|
+
});
|
|
230
|
+
it("prunes 90+ day unrecalled milestones and promotes recall>=5", () => {
|
|
231
|
+
const ancient = new Date(Date.now() - 100 * 86400 * 1000).toISOString();
|
|
232
|
+
const recent = new Date().toISOString();
|
|
233
|
+
const lessons = [
|
|
234
|
+
{ id: "l1", tick: 1, bornAt: ancient, text: "old milestone", source: "x", kind: "milestone", recallCount: 0 },
|
|
235
|
+
{ id: "l2", tick: 2, bornAt: recent, text: "active", source: "x", recallCount: 7 },
|
|
236
|
+
{ id: "l3", tick: 3, bornAt: recent, text: "regular", source: "x", recallCount: 1 },
|
|
237
|
+
];
|
|
238
|
+
const { kept, pruned, promoted } = consolidateLessons(lessons);
|
|
239
|
+
expect(pruned).toBe(1);
|
|
240
|
+
expect(promoted).toBe(1);
|
|
241
|
+
expect(kept.find((l) => l.id === "l2")?.promotedTo).toBe("core");
|
|
242
|
+
});
|
|
243
|
+
it("runs full pass dry-run without mutating disk", () => {
|
|
244
|
+
seedVaccines(r, [
|
|
245
|
+
{ simhash: "ff00aa", sample: "lie one" },
|
|
246
|
+
{ simhash: "ff00ab", sample: "lie two" },
|
|
247
|
+
]);
|
|
248
|
+
const rep = runConsolidation(r, { dryRun: true });
|
|
249
|
+
expect(rep.dryRun).toBe(true);
|
|
250
|
+
expect(rep.vaccines.before).toBe(2);
|
|
251
|
+
expect(rep.vaccines.merged).toBe(1);
|
|
252
|
+
// Dry run: file untouched
|
|
253
|
+
const onDisk = readFileSync(join(r, ".mneme/squadron/lie-vaccines.jsonl"), "utf8").split("\n").filter(Boolean);
|
|
254
|
+
expect(onDisk.length).toBe(2);
|
|
255
|
+
});
|
|
256
|
+
it("persists merged vaccines when apply=true", () => {
|
|
257
|
+
seedVaccines(r, [
|
|
258
|
+
{ simhash: "ff00aa", sample: "lie one" },
|
|
259
|
+
{ simhash: "ff00ab", sample: "lie two" },
|
|
260
|
+
]);
|
|
261
|
+
const rep = runConsolidation(r, { dryRun: false });
|
|
262
|
+
expect(rep.vaccines.merged).toBe(1);
|
|
263
|
+
const onDisk = readFileSync(join(r, ".mneme/squadron/lie-vaccines.jsonl"), "utf8").split("\n").filter(Boolean);
|
|
264
|
+
expect(onDisk.length).toBe(1);
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
// ─── Layer 5: Counterfactual ─────────────────────────────────────────
|
|
268
|
+
describe("v1.64 Cognitive L5 · Counterfactual", () => {
|
|
269
|
+
let r;
|
|
270
|
+
beforeEach(() => { r = setupRepo(); });
|
|
271
|
+
afterEach(() => cleanup(r));
|
|
272
|
+
it("simulates 4 branches and computes relief/regret", () => {
|
|
273
|
+
const result = cfSimulate(r, {
|
|
274
|
+
decision: "ship the auth refactor",
|
|
275
|
+
actualRegressionP: 0.2,
|
|
276
|
+
actualStakeholderFair: 0.7,
|
|
277
|
+
actualTokenCost: 1500,
|
|
278
|
+
});
|
|
279
|
+
expect(result.branches.length).toBe(4);
|
|
280
|
+
expect(result.branches[0].label).toBe("actual");
|
|
281
|
+
expect(result.totalRelief).toBeGreaterThanOrEqual(0);
|
|
282
|
+
expect(result.totalRegret).toBeGreaterThanOrEqual(0);
|
|
283
|
+
expect(result.summary).toContain("counterfactual");
|
|
284
|
+
});
|
|
285
|
+
it("identifies top alternative when one exists", () => {
|
|
286
|
+
const result = cfSimulate(r, {
|
|
287
|
+
decision: "do a major rewrite",
|
|
288
|
+
actualRegressionP: 0.4,
|
|
289
|
+
actualStakeholderFair: 0.5,
|
|
290
|
+
actualTokenCost: 5000,
|
|
291
|
+
});
|
|
292
|
+
if (result.topAlternative) {
|
|
293
|
+
expect(["not-done", "done-sooner", "done-different"]).toContain(result.topAlternative.label);
|
|
294
|
+
expect(result.topAlternative.deltaScore).toBeGreaterThan(0);
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
it("persists delta log when persistDelta=true", () => {
|
|
298
|
+
cfSimulate(r, {
|
|
299
|
+
decision: "deploy version A",
|
|
300
|
+
actualRegressionP: 0.15,
|
|
301
|
+
actualStakeholderFair: 0.75,
|
|
302
|
+
actualTokenCost: 1000,
|
|
303
|
+
}, { persistDelta: true });
|
|
304
|
+
const log = join(r, ".mneme/cognitive/counterfactual/deltas.jsonl");
|
|
305
|
+
expect(existsSync(log)).toBe(true);
|
|
306
|
+
});
|
|
307
|
+
it("detects systematic bias from history", () => {
|
|
308
|
+
for (let i = 0; i < 5; i++) {
|
|
309
|
+
cfSimulate(r, {
|
|
310
|
+
decision: `decision-${i}`,
|
|
311
|
+
actualRegressionP: 0.3,
|
|
312
|
+
actualStakeholderFair: 0.6,
|
|
313
|
+
actualTokenCost: 2000,
|
|
314
|
+
}, { persistDelta: true });
|
|
315
|
+
}
|
|
316
|
+
const bias = detectBias(r);
|
|
317
|
+
expect(bias.totalEntries).toBe(5);
|
|
318
|
+
expect(["balanced", "act-sooner", "act-different", "act-less"]).toContain(bias.systematicBias);
|
|
319
|
+
});
|
|
320
|
+
});
|
|
321
|
+
// ─── Layer 6: Debate ─────────────────────────────────────────────────
|
|
322
|
+
describe("v1.64 Cognitive L6 · Internal Debate", () => {
|
|
323
|
+
let r;
|
|
324
|
+
beforeEach(() => { r = setupRepo(); });
|
|
325
|
+
afterEach(() => cleanup(r));
|
|
326
|
+
it("runs 3 voices and produces a verdict", () => {
|
|
327
|
+
initGit(r, ["feat: build dashboard"]);
|
|
328
|
+
const result = debate(r, "dashboard performance is good");
|
|
329
|
+
expect(result.turns.length).toBe(3);
|
|
330
|
+
expect(result.turns[0].voice).toBe("skeptic");
|
|
331
|
+
expect(result.turns[1].voice).toBe("optimist");
|
|
332
|
+
expect(result.turns[2].voice).toBe("realist");
|
|
333
|
+
expect(["AGREE", "DISAGREE", "INCONCLUSIVE"]).toContain(result.verdict);
|
|
334
|
+
});
|
|
335
|
+
it("skeptic flags absolute-claim triggers", () => {
|
|
336
|
+
const result = debate(r, "this code is 100% bug-free always");
|
|
337
|
+
const skeptic = result.turns.find((t) => t.voice === "skeptic");
|
|
338
|
+
expect(skeptic.evidence.some((e) => e.includes("absolute-claim"))).toBe(true);
|
|
339
|
+
});
|
|
340
|
+
it("skeptic flags vaccine matches", () => {
|
|
341
|
+
seedVaccines(r, [
|
|
342
|
+
{ simhash: "abc123", sample: "stripe integration is fully implemented and tested" },
|
|
343
|
+
]);
|
|
344
|
+
const result = debate(r, "stripe integration is fully implemented");
|
|
345
|
+
const skeptic = result.turns.find((t) => t.voice === "skeptic");
|
|
346
|
+
expect(skeptic.evidence.some((e) => e.includes("vaccine-match"))).toBe(true);
|
|
347
|
+
});
|
|
348
|
+
it("optimist cites lesson overlap when available", () => {
|
|
349
|
+
seedNucleus(r, [
|
|
350
|
+
{ text: "auth refactor went smoothly with JWT migration" },
|
|
351
|
+
{ text: "JWT auth tested in production for 6 months" },
|
|
352
|
+
]);
|
|
353
|
+
const result = debate(r, "auth refactor with JWT is safe");
|
|
354
|
+
const optimist = result.turns.find((t) => t.voice === "optimist");
|
|
355
|
+
expect(optimist.evidence.length).toBeGreaterThan(0);
|
|
356
|
+
});
|
|
357
|
+
it("persists when persist=true", () => {
|
|
358
|
+
debate(r, "some claim", { persist: true });
|
|
359
|
+
const log = join(r, ".mneme/cognitive/debate/debates.jsonl");
|
|
360
|
+
expect(existsSync(log)).toBe(true);
|
|
361
|
+
});
|
|
362
|
+
});
|
|
363
|
+
// ─── Layer 7: Decision Atom (fusion) ─────────────────────────────────
|
|
364
|
+
describe("v1.64 Cognitive L7 · Decision Atom", () => {
|
|
365
|
+
let r;
|
|
366
|
+
beforeEach(() => { r = setupRepo(); });
|
|
367
|
+
afterEach(() => cleanup(r));
|
|
368
|
+
it("fuses all 6 layers into a single verdict", () => {
|
|
369
|
+
initGit(r, ["feat: foo"]);
|
|
370
|
+
seedSoul(r, "claude", [{ broken: 0, verbosity: 300 }]);
|
|
371
|
+
const atom = buildAtom(r, {
|
|
372
|
+
intent: "ship a new feature",
|
|
373
|
+
vendors: ["claude"],
|
|
374
|
+
taskProfile: { needsTerse: true },
|
|
375
|
+
});
|
|
376
|
+
expect(["PROCEED", "PROCEED-WITH-CARE", "PAUSE-INVESTIGATE", "ABORT-FOR-NOW"]).toContain(atom.verdict);
|
|
377
|
+
expect(atom.confidence).toBeGreaterThan(0);
|
|
378
|
+
expect(atom.confidence).toBeLessThanOrEqual(1);
|
|
379
|
+
expect(atom.layers.theoryOfMind.recommendedVendor).toBe("claude");
|
|
380
|
+
expect(atom.layers.treeOfThought.bestPath.length).toBe(3);
|
|
381
|
+
expect(atom.briefing).toContain("Verdict");
|
|
382
|
+
expect(atom.recommendedAction.length).toBeGreaterThan(0);
|
|
383
|
+
});
|
|
384
|
+
it("includes counterfactual when baseline supplied", () => {
|
|
385
|
+
const atom = buildAtom(r, {
|
|
386
|
+
intent: "fix a critical bug",
|
|
387
|
+
counterfactualBaseline: {
|
|
388
|
+
actualRegressionP: 0.1,
|
|
389
|
+
actualStakeholderFair: 0.85,
|
|
390
|
+
actualTokenCost: 800,
|
|
391
|
+
},
|
|
392
|
+
});
|
|
393
|
+
expect(atom.layers.counterfactual).not.toBeNull();
|
|
394
|
+
expect(atom.raw.counterfactual).not.toBeNull();
|
|
395
|
+
});
|
|
396
|
+
it("skips counterfactual when no baseline", () => {
|
|
397
|
+
const atom = buildAtom(r, { intent: "refactor X" });
|
|
398
|
+
expect(atom.layers.counterfactual).toBeNull();
|
|
399
|
+
expect(atom.briefing).toContain("no baseline");
|
|
400
|
+
});
|
|
401
|
+
it("persists to atom history log", () => {
|
|
402
|
+
buildAtom(r, { intent: "test atom one" });
|
|
403
|
+
buildAtom(r, { intent: "test atom two" });
|
|
404
|
+
const summary = summarizeHistory(r);
|
|
405
|
+
expect(summary.totalAtoms).toBe(2);
|
|
406
|
+
expect(summary.lastAtom?.intent).toBe("test atom two");
|
|
407
|
+
});
|
|
408
|
+
it("ABORT verdict triggers on debate-disagree + low EV", () => {
|
|
409
|
+
// Seed many vaccine matches so debate's skeptic dominates with high confidence.
|
|
410
|
+
seedVaccines(r, [
|
|
411
|
+
{ simhash: "a", sample: "always perfect guaranteed code" },
|
|
412
|
+
{ simhash: "b", sample: "never fails 100% guaranteed flawless" },
|
|
413
|
+
{ simhash: "c", sample: "absolutely perfect always works" },
|
|
414
|
+
]);
|
|
415
|
+
const atom = buildAtom(r, {
|
|
416
|
+
intent: "always perfect guaranteed 100% code never fails",
|
|
417
|
+
});
|
|
418
|
+
// The wording itself triggers absolute-claim flags AND vaccine matches.
|
|
419
|
+
// Best EV won't be artificially low for an "always perfect" intent which
|
|
420
|
+
// doesn't match any STRATEGY_TEMPLATES (default strategies have EV ~0.4-0.6),
|
|
421
|
+
// but at minimum the atom should not be unconditional PROCEED.
|
|
422
|
+
expect(["PROCEED-WITH-CARE", "PAUSE-INVESTIGATE", "ABORT-FOR-NOW"]).toContain(atom.verdict);
|
|
423
|
+
});
|
|
424
|
+
it("briefing renders all layer breakdowns", () => {
|
|
425
|
+
const atom = buildAtom(r, { intent: "refactor X" });
|
|
426
|
+
expect(atom.briefing).toContain("Theory of Mind");
|
|
427
|
+
expect(atom.briefing).toContain("Tree of Thought");
|
|
428
|
+
expect(atom.briefing).toContain("Curiosity");
|
|
429
|
+
expect(atom.briefing).toContain("Consolidation");
|
|
430
|
+
expect(atom.briefing).toContain("Debate");
|
|
431
|
+
});
|
|
432
|
+
});
|
|
433
|
+
// ─── Cross-layer integration ─────────────────────────────────────────
|
|
434
|
+
describe("v1.64 Cognitive · cross-layer integration", () => {
|
|
435
|
+
let r;
|
|
436
|
+
beforeEach(() => { r = setupRepo(); });
|
|
437
|
+
afterEach(() => cleanup(r));
|
|
438
|
+
it("end-to-end: real repo seeds → atom carries signal from every layer", () => {
|
|
439
|
+
initGit(r, [
|
|
440
|
+
"feat(billing): stripe integration",
|
|
441
|
+
"feat(billing): handle webhooks",
|
|
442
|
+
"fix(billing): retry logic",
|
|
443
|
+
"feat(billing): refund flow",
|
|
444
|
+
"feat(billing): subscription plans",
|
|
445
|
+
]);
|
|
446
|
+
seedSoul(r, "claude", [
|
|
447
|
+
{ broken: 0, verbosity: 400 }, { broken: 1, reason: "commit sha", verbosity: 500 },
|
|
448
|
+
{ broken: 0, verbosity: 350 }, { broken: 0, verbosity: 450 },
|
|
449
|
+
]);
|
|
450
|
+
seedQuorum(r, [
|
|
451
|
+
{ claim: "billing has stripe", refuted: false },
|
|
452
|
+
{ claim: "auth uses kerberos", refuted: true },
|
|
453
|
+
]);
|
|
454
|
+
seedVaccines(r, [
|
|
455
|
+
{ simhash: "0011223344", sample: "billing is 100% covered by tests" },
|
|
456
|
+
]);
|
|
457
|
+
seedNucleus(r, [
|
|
458
|
+
{ text: "billing refactor went smoothly", recallCount: 3 },
|
|
459
|
+
{ text: "stripe webhook handling works", recallCount: 2 },
|
|
460
|
+
]);
|
|
461
|
+
const atom = buildAtom(r, {
|
|
462
|
+
intent: "refactor the billing module",
|
|
463
|
+
vendors: ["claude"],
|
|
464
|
+
taskProfile: { domain: "billing", needsStable: true },
|
|
465
|
+
counterfactualBaseline: {
|
|
466
|
+
actualRegressionP: 0.18,
|
|
467
|
+
actualStakeholderFair: 0.75,
|
|
468
|
+
actualTokenCost: 1500,
|
|
469
|
+
},
|
|
470
|
+
});
|
|
471
|
+
// Theory of Mind picked up the vendor.
|
|
472
|
+
expect(atom.layers.theoryOfMind.recommendedVendor).toBe("claude");
|
|
473
|
+
// Tree of Thought ran the "refactor" template.
|
|
474
|
+
expect(atom.layers.treeOfThought.bestPath[0]).toBe("refactor the billing module");
|
|
475
|
+
// Curiosity scanned the gaps.
|
|
476
|
+
expect(atom.layers.curiosity.totalGaps).toBeGreaterThanOrEqual(0);
|
|
477
|
+
// Counterfactual ran.
|
|
478
|
+
expect(atom.layers.counterfactual).not.toBeNull();
|
|
479
|
+
// Debate produced a verdict.
|
|
480
|
+
expect(["AGREE", "DISAGREE", "INCONCLUSIVE"]).toContain(atom.layers.debate.verdict);
|
|
481
|
+
// Recommended action references the best path.
|
|
482
|
+
expect(atom.recommendedAction.length).toBeGreaterThan(20);
|
|
483
|
+
});
|
|
484
|
+
});
|
|
485
|
+
//# sourceMappingURL=cognitive.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cognitive.test.js","sourceRoot":"","sources":["../../src/cognitive/cognitive.test.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAClG,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAsB,MAAM,qBAAqB,CAAC;AACxH,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE1E,SAAS,SAAS,KAAa,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,SAAS,OAAO,CAAC,CAAS,IAAI,IAAI,CAAC;IAAC,MAAM,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAAC,CAAC;AAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEpG,SAAS,OAAO,CAAC,CAAS,EAAE,OAAiB;IAC3C,QAAQ,CAAC,0BAA0B,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAClE,QAAQ,CAAC,+BAA+B,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvE,QAAQ,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnE,QAAQ,CAAC,iCAAiC,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACpD,QAAQ,CAAC,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpD,QAAQ,CAAC,kBAAkB,OAAO,CAAC,CAAC,CAAC,yBAAyB,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC/F,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,CAAS,EAAE,MAAc,EAAE,QAAwE;IACnH,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACpL,CAAC;AAED,SAAS,UAAU,CAAC,CAAS,EAAE,IAAiD;IAC9E,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;QAC7C,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC5B,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,SAAS,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;QAC7C,UAAU,EAAE,GAAG;QACf,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,EAAE;KACjD,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,YAAY,CAAC,CAAS,EAAE,QAA0E;IACzG,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACvC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;QAClD,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,SAAS,EAAE,MAAM;QACjB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC;QAC/B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAClC,MAAM,EAAE,CAAC,CAAC,MAAM;KACjB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,oBAAoB,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAChE,CAAC;AAED,SAAS,WAAW,CAAC,CAAS,EAAE,OAAsF;IACpH,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtF,aAAa,CAAC,IAAI,CAAC,CAAC,EAAE,qBAAqB,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC;QAC3D,aAAa,EAAE,CAAC;QAChB,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC5C,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,CAAC;SAChC,CAAC,CAAC;KACJ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACvB,CAAC;AAED,wEAAwE;AAExE,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,IAAI,CAAS,CAAC;IACd,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE;YACpB,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;YAC7B,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,+BAA+B,EAAE,SAAS,EAAE,GAAG,EAAE;YACtE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;YAC7B,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,GAAG,EAAE;SAChE,CAAC,CAAC;QACH,UAAU,CAAC,CAAC,EAAE;YACZ,EAAE,KAAK,EAAE,mBAAmB,EAAE,OAAO,EAAE,KAAK,EAAE;YAC9C,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,IAAI,EAAE;YAC5C,EAAE,KAAK,EAAE,+BAA+B,EAAE,OAAO,EAAE,KAAK,EAAE;SAC3D,CAAC,CAAC;QAEH,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACtD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACtD,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAkB,CAAC;QACvE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACjF,QAAQ,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACjF,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC/B,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACjF,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC7C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,IAAI,CAAS,CAAC;IACd,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,0BAA0B,CAAC,CAAC;QACxD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5C,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B;QACvE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;QACvD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC,sBAAsB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC,CAAC;QAC5F,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC,CAAC;IAC1G,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,SAAS,CAAC,CAAC,EAAE,uBAAuB,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC;QACzD,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;QAClD,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACrD,IAAI,CAAS,CAAC;IACd,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,EAAE,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,OAAO,CAAC,CAAC,EAAE;YACT,uCAAuC;YACvC,gCAAgC;YAChC,4BAA4B;YAC5B,4BAA4B;SAC7B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5E,MAAM,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;QACjC,6EAA6E;QAC7E,MAAM,CAAC,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACpD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAE,CAAC,QAAQ,CAAC,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,CAAC;QACpF,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;QAC3B,OAAO,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACvC,MAAM,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC9B,iBAAiB,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,yCAAyC,CAAC,CAAC;QAC/D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,IAAI,CAAS,CAAC;IACd,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,QAAQ,GAAG;YACf,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE;YAC9F,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,aAAa;YAC7G,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,MAAM;SACvG,CAAC;QACF,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,0BAA0B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QACxE,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;QACxE,MAAM,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG;YACd,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAE;YAC7G,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE;YAClF,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,EAAE;SACpF,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvB,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,YAAY,CAAC,CAAC,EAAE;YACd,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;YACxC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;SACzC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;QAClD,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,0BAA0B;QAC1B,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,oCAAoC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/G,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,YAAY,CAAC,CAAC,EAAE;YACd,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;YACxC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;SACzC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,gBAAgB,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QACnD,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,oCAAoC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/G,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,IAAI,CAAS,CAAC;IACd,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE;YAC3B,QAAQ,EAAE,wBAAwB;YAClC,iBAAiB,EAAE,GAAG;YACtB,qBAAqB,EAAE,GAAG;YAC1B,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,EAAE;YAC3B,QAAQ,EAAE,oBAAoB;YAC9B,iBAAiB,EAAE,GAAG;YACtB,qBAAqB,EAAE,GAAG;YAC1B,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,MAAM,CAAC,CAAC,UAAU,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAC7F,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,UAAU,CAAC,CAAC,EAAE;YACZ,QAAQ,EAAE,kBAAkB;YAC5B,iBAAiB,EAAE,IAAI;YACvB,qBAAqB,EAAE,IAAI;YAC3B,eAAe,EAAE,IAAI;SACtB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,8CAA8C,CAAC,CAAC;QACpE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,UAAU,CAAC,CAAC,EAAE;gBACZ,QAAQ,EAAE,YAAY,CAAC,EAAE;gBACzB,iBAAiB,EAAE,GAAG;gBACtB,qBAAqB,EAAE,GAAG;gBAC1B,eAAe,EAAE,IAAI;aACtB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7B,CAAC;QACD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACjG,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,IAAI,CAAS,CAAC;IACd,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,OAAO,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACtC,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC/C,MAAM,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,mCAAmC,CAAC,CAAC;QAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAE,CAAC;QACjE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,YAAY,CAAC,CAAC,EAAE;YACd,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,oDAAoD,EAAE;SACpF,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,yCAAyC,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,CAAE,CAAC;QACjE,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,WAAW,CAAC,CAAC,EAAE;YACb,EAAE,IAAI,EAAE,gDAAgD,EAAE;YAC1D,EAAE,IAAI,EAAE,4CAA4C,EAAE;SACvD,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,EAAE,gCAAgC,CAAC,CAAC;QAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,UAAU,CAAE,CAAC;QACnE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,CAAC,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,uCAAuC,CAAC,CAAC;QAC7D,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;IAClD,IAAI,CAAS,CAAC;IACd,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,OAAO,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAC1B,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACvD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE;YACxB,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE;SAClC,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,SAAS,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC3C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE;YACxB,MAAM,EAAE,oBAAoB;YAC5B,sBAAsB,EAAE;gBACtB,iBAAiB,EAAE,GAAG;gBACtB,qBAAqB,EAAE,IAAI;gBAC3B,eAAe,EAAE,GAAG;aACrB;SACF,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,SAAS,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QAC1C,SAAS,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,gFAAgF;QAChF,YAAY,CAAC,CAAC,EAAE;YACd,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,gCAAgC,EAAE;YAC1D,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,sCAAsC,EAAE;YAChE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,iCAAiC,EAAE;SAC5D,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE;YACxB,MAAM,EAAE,iDAAiD;SAC1D,CAAC,CAAC;QACH,wEAAwE;QACxE,yEAAyE;QACzE,8EAA8E;QAC9E,+DAA+D;QAC/D,MAAM,CAAC,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9F,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,wEAAwE;AAExE,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,IAAI,CAAS,CAAC;IACd,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,OAAO,CAAC,CAAC,EAAE;YACT,mCAAmC;YACnC,gCAAgC;YAChC,2BAA2B;YAC3B,4BAA4B;YAC5B,mCAAmC;SACpC,CAAC,CAAC;QACH,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE;YACpB,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE;YAClF,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE;SAC7D,CAAC,CAAC;QACH,UAAU,CAAC,CAAC,EAAE;YACZ,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,KAAK,EAAE;YAC/C,EAAE,KAAK,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE;SAC/C,CAAC,CAAC;QACH,YAAY,CAAC,CAAC,EAAE;YACd,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,kCAAkC,EAAE;SACtE,CAAC,CAAC;QACH,WAAW,CAAC,CAAC,EAAE;YACb,EAAE,IAAI,EAAE,gCAAgC,EAAE,WAAW,EAAE,CAAC,EAAE;YAC1D,EAAE,IAAI,EAAE,+BAA+B,EAAE,WAAW,EAAE,CAAC,EAAE;SAC1D,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,EAAE;YACxB,MAAM,EAAE,6BAA6B;YACrC,OAAO,EAAE,CAAC,QAAQ,CAAC;YACnB,WAAW,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE;YACrD,sBAAsB,EAAE;gBACtB,iBAAiB,EAAE,IAAI;gBACvB,qBAAqB,EAAE,IAAI;gBAC3B,eAAe,EAAE,IAAI;aACtB;SACF,CAAC,CAAC;QAEH,uCAAuC;QACvC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClE,+CAA+C;QAC/C,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAClF,8BAA8B;QAC9B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAClE,sBAAsB;QACtB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QAClD,6BAA6B;QAC7B,MAAM,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpF,+CAA+C;QAC/C,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IAC5D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1.64.0 -- COGNITIVE LAYER 4: MEMORY CONSOLIDATION.
|
|
3
|
+
*
|
|
4
|
+
* Sleep-cycle compression. Every consolidation pass:
|
|
5
|
+
* 1. Merge near-duplicate vaccines (Hamming distance <= 4)
|
|
6
|
+
* 2. Compress similar lessons into single core-wisdom entries
|
|
7
|
+
* 3. Promote frequently-recalled lessons to "core" tier
|
|
8
|
+
* 4. Prune lessons unused for >= 90 days
|
|
9
|
+
*
|
|
10
|
+
* Result: signal/noise ratio improves over time. Mneme sharper, not
|
|
11
|
+
* just bigger.
|
|
12
|
+
*
|
|
13
|
+
* Pure functions; persist only when `apply=true`.
|
|
14
|
+
*/
|
|
15
|
+
export interface ConsolidationReport {
|
|
16
|
+
scannedAt: string;
|
|
17
|
+
/** Vaccine-bank stats. */
|
|
18
|
+
vaccines: {
|
|
19
|
+
before: number;
|
|
20
|
+
after: number;
|
|
21
|
+
merged: number;
|
|
22
|
+
};
|
|
23
|
+
/** Lesson stats. */
|
|
24
|
+
lessons: {
|
|
25
|
+
before: number;
|
|
26
|
+
after: number;
|
|
27
|
+
pruned: number;
|
|
28
|
+
promoted: number;
|
|
29
|
+
};
|
|
30
|
+
/** Dry run? */
|
|
31
|
+
dryRun: boolean;
|
|
32
|
+
}
|
|
33
|
+
interface Vaccine {
|
|
34
|
+
id: string;
|
|
35
|
+
simhash: string;
|
|
36
|
+
signature: string;
|
|
37
|
+
refuteCount: number;
|
|
38
|
+
firstSeen: string;
|
|
39
|
+
lastSeen: string;
|
|
40
|
+
sample?: string;
|
|
41
|
+
}
|
|
42
|
+
interface NucleusLesson {
|
|
43
|
+
id: string;
|
|
44
|
+
tick: number;
|
|
45
|
+
bornAt: string;
|
|
46
|
+
text: string;
|
|
47
|
+
source: string;
|
|
48
|
+
kind?: string;
|
|
49
|
+
evidence?: string[];
|
|
50
|
+
/** v1.64 -- consolidation metadata. */
|
|
51
|
+
recallCount?: number;
|
|
52
|
+
promotedTo?: "core" | "growth-event" | "milestone" | "consolidation";
|
|
53
|
+
}
|
|
54
|
+
/** Merge vaccines with Hamming distance <= radius. Keeps the one with
|
|
55
|
+
* the higher refuteCount. */
|
|
56
|
+
export declare function mergeNearDuplicateVaccines(vaccines: Vaccine[], radius?: number): {
|
|
57
|
+
merged: Vaccine[];
|
|
58
|
+
mergedCount: number;
|
|
59
|
+
};
|
|
60
|
+
/** Promote lessons frequently recalled; prune lessons never recalled
|
|
61
|
+
* past 90 days. */
|
|
62
|
+
export declare function consolidateLessons(lessons: NucleusLesson[]): {
|
|
63
|
+
kept: NucleusLesson[];
|
|
64
|
+
pruned: number;
|
|
65
|
+
promoted: number;
|
|
66
|
+
};
|
|
67
|
+
/** Run one full consolidation pass. */
|
|
68
|
+
export declare function runConsolidation(repoRoot: string, opts?: {
|
|
69
|
+
dryRun?: boolean;
|
|
70
|
+
radius?: number;
|
|
71
|
+
}): ConsolidationReport;
|
|
72
|
+
export {};
|
|
73
|
+
//# sourceMappingURL=consolidation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consolidation.d.ts","sourceRoot":"","sources":["../../src/cognitive/consolidation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,0BAA0B;IAC1B,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,oBAAoB;IACpB,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7E,eAAe;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAYD,UAAU,OAAO;IACf,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAsBD,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,GAAG,eAAe,CAAC;CACtE;AAmBD;8BAC8B;AAC9B,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,MAAM,GAAE,MAAU,GAAG;IAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAwB9H;AAED;oBACoB;AACpB,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG;IAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAsBxH;AAED,uCAAuC;AACvC,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,mBAAmB,CA4CpH"}
|