@mneme-ai/core 2.91.0 β†’ 2.92.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.
@@ -0,0 +1,132 @@
1
+ /**
2
+ * v2.92.0 β€” πŸ’Žβ‘¦ DIAKRISIS Β· discern the genuine from the merely-plausible.
3
+ *
4
+ * διάκρισις β€” "discernment / judging-apart": telling the real from the counterfeit.
5
+ * A SECOND axis, orthogonal to Aletheia. Aletheia judges true vs false; Diakrisis
6
+ * judges genuine vs merely-good-looking β€” a mediocre artifact is not FALSE, it is
7
+ * UNREMARKABLE. When AI commoditises both execution and ideas, the bottleneck moves
8
+ * to DISCERNMENT: telling what is genuinely good from what merely LOOKS good. AI
9
+ * produces "looks good" without limit β€” that flood is product-level hallucination.
10
+ *
11
+ * THE HONEST SCOPE (this IS the design, read it first). Diakrisis is ASYMMETRIC: it
12
+ * proves what is NOT world-class far more reliably than what IS. It does NOT
13
+ * mechanise taste. Its verdict mirrors Prove-or-Unknown β†’
14
+ *
15
+ * Reject-or-Unknown: confidently REJECT the high-lustre / PROVEN-low-substance
16
+ * trap; for everything else return UNKNOWN β€” "passes the floor; the ceiling is
17
+ * the human's."
18
+ *
19
+ * It RAISES THE FLOOR (kills the plausible-mediocre flood) and AUGMENTS THE CEILING
20
+ * (surfaces undervalued substance for a human). It never claims to BE the ceiling β€”
21
+ * any version that scored "world-class greatness" would itself be the lustre-trap
22
+ * this axis exists to catch.
23
+ *
24
+ * Three pillars, with the failure modes welded in as guards:
25
+ * 1. LUSTRE–SUBSTANCE GAP β€” score lustre (how good it LOOKS) from STRUCTURAL signals
26
+ * (xray hedge-vs-absolute, hyperbole detector), NEVER by asking an LLM "is this
27
+ * good?" (that re-imports the correlated plausibility bias). Substance (how good
28
+ * it IS) only where verifiable; aesthetic quality β‡’ UNKNOWN (abstain, never fake).
29
+ * 2. TASTE = signed revealed-preference β€” learn from what SURVIVED reality (kept vs
30
+ * reverted/rolled-back), supplied as evidence; empirical, immune to plausibility.
31
+ * 3. ANTI-CONSERVATISM GUARD (the Padgett guard) β€” REJECT only on PROVEN low
32
+ * substance; NEVER on "doesn't match past taste." Novel-but-unproven β‡’ UNKNOWN,
33
+ * routed to the human, never auto-rejected. (A Padgett β€” correct in a notation
34
+ * the teachers don't recognise β€” must return UNKNOWN, never REJECT.)
35
+ *
36
+ * Composes xray + hyperbole_detector + the v2.88 spine + notary. Never throws.
37
+ */
38
+ import { type NotaryReceipt } from "../notary/index.js";
39
+ export type DiakrisisVerdict = "REJECT" | "UNKNOWN";
40
+ export type Substance = "HIGH" | "LOW" | "UNKNOWN";
41
+ export type Classification = "TRAP" | "PROVEN_WEAK" | "GEM" | "PROVEN_GOOD" | "PLAUSIBLE_CAVEAT" | "PLAUSIBLE";
42
+ export interface LustreSignals {
43
+ /** 0..1 β€” how good it LOOKS, from structural signals only (never an LLM opinion). */
44
+ lustre: number;
45
+ hyperboleMatches: number;
46
+ absoluteDensity: number;
47
+ hedgeDensity: number;
48
+ /** The structural signals that drove the score (audit trail). */
49
+ drivers: string[];
50
+ }
51
+ /**
52
+ * Score LUSTRE from STRUCTURAL signals only β€” hyperbole (superlatives / "best ever"),
53
+ * absolutist phrasing (sounds certain), minus hedging (sounds tentative). NEVER asks
54
+ * an LLM "is this good?" β€” that would re-import the same plausibility bias the gap is
55
+ * built to expose. Deterministic + total.
56
+ */
57
+ export declare function lustreScore(text: string): LustreSignals;
58
+ /** Caller-supplied revealed-preference / verification evidence β€” the ONLY way
59
+ * substance becomes PROVEN (Pillar 2 + 3). A daemon feeds these from reflog
60
+ * (kept vs reverted), outcome_market, karma, or a real test run. */
61
+ export interface SubstanceEvidence {
62
+ /** Was this artifact reverted / rolled back / deleted? (revealed-preference: it did NOT survive.) */
63
+ reverted?: boolean;
64
+ /** Did its tests pass? false β‡’ proven low substance; true β‡’ proven survived. */
65
+ testPassed?: boolean;
66
+ /** A pre-computed truth verdict (e.g. from assertClaim) for a factual artifact. */
67
+ verdict?: "TRUE" | "FALSE" | "UNKNOWN";
68
+ }
69
+ export interface DiakrisisResult {
70
+ /** REJECT (proven low substance β€” the Courage Gate fires) | UNKNOWN (ceiling is the human's). */
71
+ verdict: DiakrisisVerdict;
72
+ /** Cleared the floor (no PROVEN low substance). True for everything we don't REJECT. */
73
+ flooredPass: boolean;
74
+ /** Lustre βˆ’ substanceScore (the primary signal). High + proven-low = the πŸͺ€ trap. */
75
+ gap: number;
76
+ lustre: number;
77
+ substance: Substance;
78
+ /** The 2Γ—2 quadrant (advisory, for the human). */
79
+ classification: Classification;
80
+ /** True when we ABSTAINED on novel/unproven work instead of rejecting (Padgett guard active). */
81
+ padgettGuard: boolean;
82
+ reason: string;
83
+ /** Always present β€” Diakrisis never claims the ceiling. */
84
+ ceiling: string;
85
+ lustreSignals: LustreSignals;
86
+ receipt: NotaryReceipt | null;
87
+ }
88
+ /** Lustre β‰₯ this reads as "high shine" (hyperbolic / absolutist presentation). Tuned
89
+ * to ~2 hyperbole matches + some absolutism β€” the level at which a flood of polished
90
+ * output starts to look impressive without earning it. */
91
+ export declare const HIGH_LUSTRE = 0.35;
92
+ /**
93
+ * Discern an artifact. Lustre is structural (never an LLM opinion). Substance is
94
+ * PROVEN only via evidence (test/revert) or a verifiable truth verdict; otherwise
95
+ * UNKNOWN. REJECT fires ONLY on PROVEN-low substance (Courage Gate); novel/unproven
96
+ * work is UNKNOWN and routed to the human (Padgett guard) β€” NEVER auto-rejected.
97
+ * Never throws.
98
+ */
99
+ export declare function discern(repoRoot: string, artifact: string, opts?: {
100
+ substanceEvidence?: SubstanceEvidence;
101
+ now?: number;
102
+ noSign?: boolean;
103
+ verifyClaim?: boolean;
104
+ }): Promise<DiakrisisResult>;
105
+ export interface DiscernCase {
106
+ artifact: string;
107
+ evidence?: SubstanceEvidence;
108
+ /** Ground-truth label for scoring. */
109
+ kind: "trap" | "gem" | "novel" | "genuine";
110
+ }
111
+ export interface DiakrisisGauntletReport {
112
+ n: number;
113
+ /** High-lustre + PROVEN-low-substance traps correctly REJECTed. ↑ good. */
114
+ trapCatchRate: number;
115
+ /** Genuine-but-unproven-NOVEL artifacts wrongly REJECTed. MUST be 0 β€” the Padgett guard. */
116
+ novelFalseRejectRate: number;
117
+ /** Low-lustre + high-substance gems flagged (classification GEM) for the human. */
118
+ gemSurfacingRate: number;
119
+ results: Array<{
120
+ artifact: string;
121
+ kind: DiscernCase["kind"];
122
+ verdict: DiakrisisVerdict;
123
+ classification: Classification;
124
+ }>;
125
+ headline: string;
126
+ }
127
+ /** Run the Diakrisis Gauntlet. The metric that matters most is novelFalseRejectRate β†’ 0
128
+ * (a savant that would discard a Padgett is broken). Never throws. */
129
+ export declare function runDiakrisisGauntlet(repoRoot: string, cases: readonly DiscernCase[], opts?: {
130
+ now?: number;
131
+ }): Promise<DiakrisisGauntletReport>;
132
+ //# sourceMappingURL=diakrisis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diakrisis.d.ts","sourceRoot":"","sources":["../../src/truth_kernel/diakrisis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,184 @@
1
+ /**
2
+ * v2.92.0 β€” πŸ’Žβ‘¦ DIAKRISIS Β· discern the genuine from the merely-plausible.
3
+ *
4
+ * διάκρισις β€” "discernment / judging-apart": telling the real from the counterfeit.
5
+ * A SECOND axis, orthogonal to Aletheia. Aletheia judges true vs false; Diakrisis
6
+ * judges genuine vs merely-good-looking β€” a mediocre artifact is not FALSE, it is
7
+ * UNREMARKABLE. When AI commoditises both execution and ideas, the bottleneck moves
8
+ * to DISCERNMENT: telling what is genuinely good from what merely LOOKS good. AI
9
+ * produces "looks good" without limit β€” that flood is product-level hallucination.
10
+ *
11
+ * THE HONEST SCOPE (this IS the design, read it first). Diakrisis is ASYMMETRIC: it
12
+ * proves what is NOT world-class far more reliably than what IS. It does NOT
13
+ * mechanise taste. Its verdict mirrors Prove-or-Unknown β†’
14
+ *
15
+ * Reject-or-Unknown: confidently REJECT the high-lustre / PROVEN-low-substance
16
+ * trap; for everything else return UNKNOWN β€” "passes the floor; the ceiling is
17
+ * the human's."
18
+ *
19
+ * It RAISES THE FLOOR (kills the plausible-mediocre flood) and AUGMENTS THE CEILING
20
+ * (surfaces undervalued substance for a human). It never claims to BE the ceiling β€”
21
+ * any version that scored "world-class greatness" would itself be the lustre-trap
22
+ * this axis exists to catch.
23
+ *
24
+ * Three pillars, with the failure modes welded in as guards:
25
+ * 1. LUSTRE–SUBSTANCE GAP β€” score lustre (how good it LOOKS) from STRUCTURAL signals
26
+ * (xray hedge-vs-absolute, hyperbole detector), NEVER by asking an LLM "is this
27
+ * good?" (that re-imports the correlated plausibility bias). Substance (how good
28
+ * it IS) only where verifiable; aesthetic quality β‡’ UNKNOWN (abstain, never fake).
29
+ * 2. TASTE = signed revealed-preference β€” learn from what SURVIVED reality (kept vs
30
+ * reverted/rolled-back), supplied as evidence; empirical, immune to plausibility.
31
+ * 3. ANTI-CONSERVATISM GUARD (the Padgett guard) β€” REJECT only on PROVEN low
32
+ * substance; NEVER on "doesn't match past taste." Novel-but-unproven β‡’ UNKNOWN,
33
+ * routed to the human, never auto-rejected. (A Padgett β€” correct in a notation
34
+ * the teachers don't recognise β€” must return UNKNOWN, never REJECT.)
35
+ *
36
+ * Composes xray + hyperbole_detector + the v2.88 spine + notary. Never throws.
37
+ */
38
+ import { xrayResponse } from "../xray/index.js";
39
+ import { detectHyperbole } from "../squadron/hyperbole_detector.js";
40
+ import { humilityDensity } from "../apoptosis/epistemic_humility.js";
41
+ import { issueReceipt } from "../notary/index.js";
42
+ const clamp01 = (x) => Math.max(0, Math.min(1, x));
43
+ /**
44
+ * Score LUSTRE from STRUCTURAL signals only β€” hyperbole (superlatives / "best ever"),
45
+ * absolutist phrasing (sounds certain), minus hedging (sounds tentative). NEVER asks
46
+ * an LLM "is this good?" β€” that would re-import the same plausibility bias the gap is
47
+ * built to expose. Deterministic + total.
48
+ */
49
+ export function lustreScore(text) {
50
+ const t = String(text ?? "");
51
+ const hyp = detectHyperbole(t);
52
+ const hum = humilityDensity(t);
53
+ void xrayResponse; // xray is available for richer structural signals; hyperbole+absolutism suffice + stay lustre-pure
54
+ const drivers = [];
55
+ const hyperboleComponent = Math.min(0.5, hyp.matches.length * 0.2);
56
+ const absolutismComponent = Math.min(0.4, (hum.absoluteDensity / 100) * 8);
57
+ const hedgeDiscount = Math.min(0.25, (hum.hedgeDensity / 100) * 5);
58
+ if (hyp.matches.length)
59
+ drivers.push(`hyperboleΓ—${hyp.matches.length} (${hyp.matches.slice(0, 3).map((m) => m.matched).join(", ")})`);
60
+ if (hum.absoluteDensity > 0)
61
+ drivers.push(`absolutist phrasing (${hum.absoluteDensity.toFixed(1)}/100w)`);
62
+ if (hum.hedgeDensity > 0)
63
+ drivers.push(`hedged (${hum.hedgeDensity.toFixed(1)}/100w) ↓lustre`);
64
+ const lustre = clamp01(hyperboleComponent + absolutismComponent - hedgeDiscount);
65
+ return { lustre, hyperboleMatches: hyp.matches.length, absoluteDensity: hum.absoluteDensity, hedgeDensity: hum.hedgeDensity, drivers };
66
+ }
67
+ const CEILING = "passes the floor β€” world-class taste is the human's call (Diakrisis does not score the ceiling)";
68
+ function substanceScoreOf(s) { return s === "HIGH" ? 1 : s === "LOW" ? 0 : 0.5; }
69
+ /** Lustre β‰₯ this reads as "high shine" (hyperbolic / absolutist presentation). Tuned
70
+ * to ~2 hyperbole matches + some absolutism β€” the level at which a flood of polished
71
+ * output starts to look impressive without earning it. */
72
+ export const HIGH_LUSTRE = 0.35;
73
+ function classify(lustre, substance) {
74
+ const lustHi = lustre >= HIGH_LUSTRE;
75
+ if (substance === "LOW")
76
+ return lustHi ? "TRAP" : "PROVEN_WEAK";
77
+ if (substance === "HIGH")
78
+ return lustHi ? "PROVEN_GOOD" : "GEM";
79
+ return lustHi ? "PLAUSIBLE_CAVEAT" : "PLAUSIBLE";
80
+ }
81
+ /**
82
+ * Discern an artifact. Lustre is structural (never an LLM opinion). Substance is
83
+ * PROVEN only via evidence (test/revert) or a verifiable truth verdict; otherwise
84
+ * UNKNOWN. REJECT fires ONLY on PROVEN-low substance (Courage Gate); novel/unproven
85
+ * work is UNKNOWN and routed to the human (Padgett guard) β€” NEVER auto-rejected.
86
+ * Never throws.
87
+ */
88
+ export async function discern(repoRoot, artifact, opts = {}) {
89
+ const text = String(artifact ?? "");
90
+ const lustreSignals = lustreScore(text);
91
+ const lustre = lustreSignals.lustre;
92
+ // Substance: PROVEN only from evidence; never invented.
93
+ let substance = "UNKNOWN";
94
+ let substReason = "no verifiable substance β€” aesthetic/quality is UNKNOWN (ceiling = human)";
95
+ const ev = opts.substanceEvidence ?? {};
96
+ if (ev.reverted === true) {
97
+ substance = "LOW";
98
+ substReason = "revealed-preference: reverted/rolled back β€” did NOT survive";
99
+ }
100
+ else if (ev.testPassed === false) {
101
+ substance = "LOW";
102
+ substReason = "tests FAILED β€” proven low substance";
103
+ }
104
+ else if (ev.testPassed === true) {
105
+ substance = "HIGH";
106
+ substReason = "tests passed β€” survived verification";
107
+ }
108
+ else if (ev.verdict) {
109
+ substance = ev.verdict === "TRUE" ? "HIGH" : ev.verdict === "FALSE" ? "LOW" : "UNKNOWN";
110
+ substReason = `truth verdict ${ev.verdict}`;
111
+ }
112
+ else if (opts.verifyClaim) {
113
+ // Optional: treat the artifact as a factual claim + verify via the spine.
114
+ try {
115
+ const { assertClaim } = await import("./aletheia.js");
116
+ const r = await assertClaim(repoRoot, text, { issuedAt: opts.now });
117
+ substance = r.verdict === "TRUE" ? "HIGH" : r.verdict === "FALSE" ? "LOW" : "UNKNOWN";
118
+ substReason = `spine verdict ${r.verdict}: ${r.evidence}`;
119
+ }
120
+ catch { /* stays UNKNOWN β€” abstain */ }
121
+ }
122
+ // Reject-or-Unknown + Courage Gate + Padgett guard:
123
+ // REJECT only when substance is PROVEN LOW. Everything else = UNKNOWN (ceiling = human).
124
+ const verdict = substance === "LOW" ? "REJECT" : "UNKNOWN";
125
+ const flooredPass = substance !== "LOW";
126
+ const padgettGuard = substance === "UNKNOWN"; // we abstained rather than reject the unproven (incl. the novel)
127
+ const classification = classify(lustre, substance);
128
+ const gap = +(lustre - substanceScoreOf(substance)).toFixed(3);
129
+ const reason = verdict === "REJECT"
130
+ ? (classification === "TRAP"
131
+ ? `πŸͺ€ TRAP β€” high lustre (${lustre.toFixed(2)}) over PROVEN-low substance: ${substReason}`
132
+ : `proven low substance: ${substReason}`)
133
+ : classification === "GEM"
134
+ ? `⛏ GEM β€” low lustre (${lustre.toFixed(2)}) but PROVEN-high substance: surface for the human`
135
+ : classification === "PLAUSIBLE_CAVEAT"
136
+ ? `high lustre (${lustre.toFixed(2)}) but UNVERIFIED β€” plausible, not proven excellent (caveat emptor; ${substReason})`
137
+ : `plausible β€” not proven excellent; ${substReason}`;
138
+ let receipt = null;
139
+ if (!opts.noSign) {
140
+ try {
141
+ receipt = issueReceipt(repoRoot, {
142
+ kind: "generic",
143
+ subject: `diakrisis:${classification}`,
144
+ payload: { engine: "diakrisis", verdict, classification, lustre, substance, gap },
145
+ issuedAt: opts.now,
146
+ });
147
+ }
148
+ catch {
149
+ receipt = null;
150
+ }
151
+ }
152
+ return { verdict, flooredPass, gap, lustre, substance, classification, padgettGuard, reason, ceiling: CEILING, lustreSignals, receipt };
153
+ }
154
+ /** Run the Diakrisis Gauntlet. The metric that matters most is novelFalseRejectRate β†’ 0
155
+ * (a savant that would discard a Padgett is broken). Never throws. */
156
+ export async function runDiakrisisGauntlet(repoRoot, cases, opts = {}) {
157
+ const results = [];
158
+ let traps = 0, trapsCaught = 0, novels = 0, novelsRejected = 0, gems = 0, gemsSurfaced = 0;
159
+ for (const c of cases) {
160
+ const r = await discern(repoRoot, c.artifact, { substanceEvidence: c.evidence, now: opts.now, noSign: true });
161
+ results.push({ artifact: c.artifact.slice(0, 60), kind: c.kind, verdict: r.verdict, classification: r.classification });
162
+ if (c.kind === "trap") {
163
+ traps++;
164
+ if (r.verdict === "REJECT")
165
+ trapsCaught++;
166
+ }
167
+ if (c.kind === "novel") {
168
+ novels++;
169
+ if (r.verdict === "REJECT")
170
+ novelsRejected++;
171
+ }
172
+ if (c.kind === "gem") {
173
+ gems++;
174
+ if (r.classification === "GEM")
175
+ gemsSurfaced++;
176
+ }
177
+ }
178
+ const trapCatchRate = traps ? trapsCaught / traps : 1;
179
+ const novelFalseRejectRate = novels ? novelsRejected / novels : 0;
180
+ const gemSurfacingRate = gems ? gemsSurfaced / gems : 1;
181
+ const headline = `DIAKRISIS GAUNTLET Β· trap-catch ${(trapCatchRate * 100).toFixed(0)}% Β· novel-false-reject ${(novelFalseRejectRate * 100).toFixed(0)}% (Padgett: must be 0) Β· gem-surfacing ${(gemSurfacingRate * 100).toFixed(0)}% (n=${cases.length})`;
182
+ return { n: cases.length, trapCatchRate, novelFalseRejectRate, gemSurfacingRate, results, headline };
183
+ }
184
+ //# sourceMappingURL=diakrisis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diakrisis.js","sourceRoot":"","sources":["../../src/truth_kernel/diakrisis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * v2.92.0 β€” πŸ’Žβ‘¦ DIAKRISIS tests (genuine vs merely-plausible).
3
+ *
4
+ * D1 lustreScore is STRUCTURAL (hyperbole/absolutism ↑, hedging ↓) β€” never an LLM opinion
5
+ * D2 Reject-or-Unknown β€” REJECT only on PROVEN-low substance (reverted / tests failed / FALSE)
6
+ * D3 β˜… Padgett guard β€” novel / unproven / aesthetic β‡’ UNKNOWN, NEVER REJECT (the metric that matters)
7
+ * D4 2Γ—2 classification β€” TRAP / GEM / PLAUSIBLE_CAVEAT / PROVEN_GOOD
8
+ * D5 gem surfacing β€” low-lustre + proven-high substance β†’ GEM (surfaced for the human)
9
+ * D6 every verdict is signed; ceiling is always handed to the human
10
+ * D7 Diakrisis Gauntlet β€” trap-catch high Β· novel-false-reject 0% Β· gem-surfacing high
11
+ * D8 QUAN β€” never throws over fuzz; verdict always REJECT|UNKNOWN
12
+ */
13
+ export {};
14
+ //# sourceMappingURL=diakrisis.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diakrisis.test.d.ts","sourceRoot":"","sources":["../../src/truth_kernel/diakrisis.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * v2.92.0 β€” πŸ’Žβ‘¦ DIAKRISIS tests (genuine vs merely-plausible).
3
+ *
4
+ * D1 lustreScore is STRUCTURAL (hyperbole/absolutism ↑, hedging ↓) β€” never an LLM opinion
5
+ * D2 Reject-or-Unknown β€” REJECT only on PROVEN-low substance (reverted / tests failed / FALSE)
6
+ * D3 β˜… Padgett guard β€” novel / unproven / aesthetic β‡’ UNKNOWN, NEVER REJECT (the metric that matters)
7
+ * D4 2Γ—2 classification β€” TRAP / GEM / PLAUSIBLE_CAVEAT / PROVEN_GOOD
8
+ * D5 gem surfacing β€” low-lustre + proven-high substance β†’ GEM (surfaced for the human)
9
+ * D6 every verdict is signed; ceiling is always handed to the human
10
+ * D7 Diakrisis Gauntlet β€” trap-catch high Β· novel-false-reject 0% Β· gem-surfacing high
11
+ * D8 QUAN β€” never throws over fuzz; verdict always REJECT|UNKNOWN
12
+ */
13
+ import { describe, it, expect } from "vitest";
14
+ import { mkdtempSync } from "node:fs";
15
+ import { tmpdir } from "node:os";
16
+ import { join } from "node:path";
17
+ import { discern, lustreScore, runDiakrisisGauntlet, HIGH_LUSTRE } from "./diakrisis.js";
18
+ function repo() { return mkdtempSync(join(tmpdir(), "diakrisis-")); }
19
+ const T = 1_700_000_000_000;
20
+ const HYPE = "This is the BEST, most revolutionary, absolutely flawless solution ever β€” guaranteed perfect.";
21
+ const PLAIN = "fix off-by-one in the pager offset";
22
+ describe("v2.92.0 πŸ’Žβ‘¦ DIAKRISIS β€” discern genuine from merely-plausible", () => {
23
+ it("D1 lustreScore is structural β€” hyperbole/absolutism raise it, hedging lowers it (no LLM)", () => {
24
+ const hype = lustreScore(HYPE).lustre;
25
+ const plain = lustreScore(PLAIN).lustre;
26
+ const hedged = lustreScore("this might possibly perhaps work in some cases, i think").lustre;
27
+ expect(hype).toBeGreaterThan(plain);
28
+ expect(hype).toBeGreaterThanOrEqual(HIGH_LUSTRE);
29
+ expect(plain).toBeLessThan(HIGH_LUSTRE);
30
+ expect(hedged).toBe(0); // hedging cannot produce shine
31
+ });
32
+ it("D2 Reject-or-Unknown β€” REJECT only on PROVEN-low substance", async () => {
33
+ expect((await discern(repo(), HYPE, { substanceEvidence: { reverted: true }, now: T })).verdict).toBe("REJECT");
34
+ expect((await discern(repo(), "x", { substanceEvidence: { testPassed: false }, now: T })).verdict).toBe("REJECT");
35
+ expect((await discern(repo(), "Mneme is written in Rust", { substanceEvidence: { verdict: "FALSE" }, now: T })).verdict).toBe("REJECT");
36
+ // proven-high or unproven β†’ NOT reject
37
+ expect((await discern(repo(), PLAIN, { substanceEvidence: { testPassed: true }, now: T })).verdict).toBe("UNKNOWN");
38
+ expect((await discern(repo(), PLAIN, { now: T })).verdict).toBe("UNKNOWN");
39
+ });
40
+ it("D3 β˜… Padgett guard β€” novel / unproven / aesthetic β‡’ UNKNOWN, NEVER REJECT", async () => {
41
+ // a Padgett: correct-looking-or-not but in an unrecognised form, unverifiable β†’ MUST abstain
42
+ const padgett = await discern(repo(), "a geometric notation for calculus the teachers did not recognise", { now: T });
43
+ expect(padgett.verdict).toBe("UNKNOWN");
44
+ expect(padgett.padgettGuard).toBe(true);
45
+ // even a high-lustre UNVERIFIED claim is NOT rejected (only proven-low is) β€” caveat, not kill
46
+ const caveat = await discern(repo(), HYPE, { now: T }); // no evidence β‡’ substance UNKNOWN
47
+ expect(caveat.verdict).toBe("UNKNOWN");
48
+ expect(caveat.classification).toBe("PLAUSIBLE_CAVEAT");
49
+ // a weird, plain, unproven idea β†’ UNKNOWN, never REJECT
50
+ expect((await discern(repo(), "an unfamiliar approach nobody has tried", { now: T })).verdict).toBe("UNKNOWN");
51
+ });
52
+ it("D4 2Γ—2 classification β€” TRAP / GEM / CAVEAT / PROVEN_GOOD", async () => {
53
+ expect((await discern(repo(), HYPE, { substanceEvidence: { reverted: true }, now: T })).classification).toBe("TRAP"); // hi lustre + proven low
54
+ expect((await discern(repo(), PLAIN, { substanceEvidence: { testPassed: true }, now: T })).classification).toBe("GEM"); // lo lustre + proven high
55
+ expect((await discern(repo(), HYPE, { now: T })).classification).toBe("PLAUSIBLE_CAVEAT"); // hi lustre + unverified
56
+ expect((await discern(repo(), HYPE, { substanceEvidence: { testPassed: true }, now: T })).classification).toBe("PROVEN_GOOD"); // hi lustre + proven high
57
+ });
58
+ it("D5 gem surfacing β€” undervalued substance flagged for the human", async () => {
59
+ const gem = await discern(repo(), PLAIN, { substanceEvidence: { testPassed: true }, now: T });
60
+ expect(gem.classification).toBe("GEM");
61
+ expect(gem.verdict).toBe("UNKNOWN"); // not rejected
62
+ expect(gem.flooredPass).toBe(true);
63
+ });
64
+ it("D6 every verdict is signed; ceiling is always the human's", async () => {
65
+ const r = await discern(repo(), HYPE, { substanceEvidence: { reverted: true }, now: T });
66
+ expect(r.receipt).not.toBeNull();
67
+ expect(r.ceiling).toMatch(/human/);
68
+ const ns = await discern(repo(), PLAIN, { noSign: true, now: T });
69
+ expect(ns.receipt).toBeNull();
70
+ });
71
+ it("D7 Diakrisis Gauntlet β€” trap-catch high Β· novel-false-reject 0% Β· gem-surfacing high", async () => {
72
+ const g = await runDiakrisisGauntlet(repo(), [
73
+ { artifact: HYPE, evidence: { reverted: true }, kind: "trap" },
74
+ { artifact: "absolutely the best, never fails, guaranteed perfect always", evidence: { testPassed: false }, kind: "trap" },
75
+ { artifact: PLAIN, evidence: { testPassed: true }, kind: "gem" },
76
+ { artifact: "minor whitespace normalisation", evidence: { testPassed: true }, kind: "gem" },
77
+ { artifact: "a strange new notation that looks wrong but might be right", kind: "novel" },
78
+ { artifact: "an unproven idea in an unfamiliar form", kind: "novel" },
79
+ { artifact: "yet another novel untested concept", kind: "novel" },
80
+ ], { now: T });
81
+ expect(g.trapCatchRate).toBe(1);
82
+ expect(g.novelFalseRejectRate).toBe(0); // β˜… the Padgett guard β€” the metric that matters most
83
+ expect(g.gemSurfacingRate).toBe(1);
84
+ // honest bound: there is NO world-class-recognition metric
85
+ expect(g["worldClassRecognitionRate"]).toBeUndefined();
86
+ });
87
+ it("D8 QUAN β€” never throws over fuzz; verdict always REJECT|UNKNOWN", async () => {
88
+ const r = repo();
89
+ for (let i = 0; i < 40; i++) {
90
+ const artifact = ["", " ", `the ${i}th best thing ever guaranteed`, `plain note ${i}`, "weirdο»Ώchars", "absolutely perfect flawless"][i % 6];
91
+ const ev = [{ reverted: true }, { testPassed: true }, { testPassed: false }, {}, { verdict: "UNKNOWN" }][i % 5];
92
+ const out = await discern(r, artifact, { substanceEvidence: ev, now: T, noSign: true });
93
+ expect(["REJECT", "UNKNOWN"]).toContain(out.verdict);
94
+ expect(typeof out.lustre).toBe("number");
95
+ }
96
+ expect(() => lustreScore("")).not.toThrow();
97
+ });
98
+ });
99
+ //# sourceMappingURL=diakrisis.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diakrisis.test.js","sourceRoot":"","sources":["../../src/truth_kernel/diakrisis.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mneme-ai/core",
3
- "version": "2.91.0",
3
+ "version": "2.92.0",
4
4
  "description": "Core indexing, retrieval, and graph engine for Mneme",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",