@mneme-ai/mcp 1.17.6 → 1.18.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/README.md +64 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +76 -8
- package/dist/index.js.map +1 -1
- package/dist/mcp_primitives/completion.d.ts +19 -0
- package/dist/mcp_primitives/completion.d.ts.map +1 -0
- package/dist/mcp_primitives/completion.js +55 -0
- package/dist/mcp_primitives/completion.js.map +1 -0
- package/dist/mcp_primitives/prompts.d.ts +36 -0
- package/dist/mcp_primitives/prompts.d.ts.map +1 -0
- package/dist/mcp_primitives/prompts.js +140 -0
- package/dist/mcp_primitives/prompts.js.map +1 -0
- package/dist/mcp_primitives/resources.d.ts +30 -0
- package/dist/mcp_primitives/resources.d.ts.map +1 -0
- package/dist/mcp_primitives/resources.js +112 -0
- package/dist/mcp_primitives/resources.js.map +1 -0
- package/dist/tools/_aletheia.d.ts +82 -0
- package/dist/tools/_aletheia.d.ts.map +1 -0
- package/dist/tools/_aletheia.js +800 -0
- package/dist/tools/_aletheia.js.map +1 -0
- package/dist/tools/_confess.d.ts +67 -0
- package/dist/tools/_confess.d.ts.map +1 -0
- package/dist/tools/_confess.js +260 -0
- package/dist/tools/_confess.js.map +1 -0
- package/dist/tools/_confess.test.d.ts +6 -0
- package/dist/tools/_confess.test.d.ts.map +1 -0
- package/dist/tools/_confess.test.js +96 -0
- package/dist/tools/_confess.test.js.map +1 -0
- package/dist/tools/_contract.test.d.ts +19 -0
- package/dist/tools/_contract.test.d.ts.map +1 -0
- package/dist/tools/_contract.test.js +117 -0
- package/dist/tools/_contract.test.js.map +1 -0
- package/dist/tools/_court.d.ts +57 -0
- package/dist/tools/_court.d.ts.map +1 -0
- package/dist/tools/_court.js +261 -0
- package/dist/tools/_court.js.map +1 -0
- package/dist/tools/_court.test.d.ts +8 -0
- package/dist/tools/_court.test.d.ts.map +1 -0
- package/dist/tools/_court.test.js +111 -0
- package/dist/tools/_court.test.js.map +1 -0
- package/dist/tools/_genome_marketplace.d.ts +83 -0
- package/dist/tools/_genome_marketplace.d.ts.map +1 -0
- package/dist/tools/_genome_marketplace.js +410 -0
- package/dist/tools/_genome_marketplace.js.map +1 -0
- package/dist/tools/_genome_marketplace.test.d.ts +5 -0
- package/dist/tools/_genome_marketplace.test.d.ts.map +1 -0
- package/dist/tools/_genome_marketplace.test.js +157 -0
- package/dist/tools/_genome_marketplace.test.js.map +1 -0
- package/dist/tools/_mesh.d.ts +51 -0
- package/dist/tools/_mesh.d.ts.map +1 -0
- package/dist/tools/_mesh.js +182 -0
- package/dist/tools/_mesh.js.map +1 -0
- package/dist/tools/_registry.d.ts.map +1 -1
- package/dist/tools/_registry.js +17 -0
- package/dist/tools/_registry.js.map +1 -1
- package/dist/tools/_replay.d.ts +52 -0
- package/dist/tools/_replay.d.ts.map +1 -0
- package/dist/tools/_replay.js +253 -0
- package/dist/tools/_replay.js.map +1 -0
- package/dist/tools/_replay.test.d.ts +5 -0
- package/dist/tools/_replay.test.d.ts.map +1 -0
- package/dist/tools/_replay.test.js +90 -0
- package/dist/tools/_replay.test.js.map +1 -0
- package/dist/tools/_timetravel.d.ts +46 -0
- package/dist/tools/_timetravel.d.ts.map +1 -0
- package/dist/tools/_timetravel.js +243 -0
- package/dist/tools/_timetravel.js.map +1 -0
- package/dist/tools/_timetravel.test.d.ts +7 -0
- package/dist/tools/_timetravel.test.d.ts.map +1 -0
- package/dist/tools/_timetravel.test.js +31 -0
- package/dist/tools/_timetravel.test.js.map +1 -0
- package/dist/tools/_tool_meta.d.ts +30 -0
- package/dist/tools/_tool_meta.d.ts.map +1 -0
- package/dist/tools/_tool_meta.js +530 -0
- package/dist/tools/_tool_meta.js.map +1 -0
- package/dist/tools/_types.d.ts +46 -5
- package/dist/tools/_types.d.ts.map +1 -1
- package/dist/tools/_types.js.map +1 -1
- package/dist/tools/_verify_claims_tool.d.ts.map +1 -1
- package/dist/tools/_verify_claims_tool.js +23 -0
- package/dist/tools/_verify_claims_tool.js.map +1 -1
- package/dist/tools/audit.d.ts.map +1 -1
- package/dist/tools/audit.js +37 -0
- package/dist/tools/audit.js.map +1 -1
- package/dist/tools/memory.d.ts.map +1 -1
- package/dist/tools/memory.js +23 -0
- package/dist/tools/memory.js.map +1 -1
- package/dist/tools/quant.d.ts +10 -2
- package/dist/tools/quant.d.ts.map +1 -1
- package/dist/tools/quant.js +311 -18
- package/dist/tools/quant.js.map +1 -1
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_aletheia.js","sourceRoot":"","sources":["../../src/tools/_aletheia.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Truth Confession (v1.18.0 — black sheep #5)
|
|
3
|
+
*
|
|
4
|
+
* Before delivering a user-facing answer, the AI calls `mneme.confess`
|
|
5
|
+
* with the draft + a self-rated confidence (0-1). Mneme cross-checks
|
|
6
|
+
* the draft against ground truth available locally:
|
|
7
|
+
*
|
|
8
|
+
* • commit-hash claims → resolved via git rev-parse (same as verify_claims)
|
|
9
|
+
* • file-path claims → resolved via fs.existsSync
|
|
10
|
+
* • numeric claims → flagged for the AI's attention (best-effort regex)
|
|
11
|
+
*
|
|
12
|
+
* Returns one of:
|
|
13
|
+
* • verified — every checkable claim resolved
|
|
14
|
+
* • partially_verified — some checkable claims resolved, others didn't
|
|
15
|
+
* • hallucination — at least one checkable claim FAILED
|
|
16
|
+
* • unverifiable — no checkable claims found in the draft
|
|
17
|
+
*
|
|
18
|
+
* Lifetime stats are recorded per-AI-vendor in
|
|
19
|
+
* `.mneme/confess-scoreboard.json`. Over time this builds a per-vendor
|
|
20
|
+
* trust scorecard the user (or another tool) can query — the foundation
|
|
21
|
+
* for the public AI-trust dashboard.
|
|
22
|
+
*
|
|
23
|
+
* No other MCP server has a built-in confession + per-vendor scoreboard.
|
|
24
|
+
*/
|
|
25
|
+
import type { MnemeTool } from "./_types.js";
|
|
26
|
+
export type ConfessVerdict = "verified" | "partially_verified" | "hallucination" | "unverifiable";
|
|
27
|
+
export interface ConfessFinding {
|
|
28
|
+
kind: "commit-hash" | "file-path" | "numeric";
|
|
29
|
+
value: string;
|
|
30
|
+
status: "resolved" | "missing" | "flagged";
|
|
31
|
+
detail?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ConfessReport {
|
|
34
|
+
verdict: ConfessVerdict;
|
|
35
|
+
selfConfidence: number;
|
|
36
|
+
/** Mneme's own confidence in the verdict (vs the AI's self-rating). */
|
|
37
|
+
mnemeConfidence: number;
|
|
38
|
+
findings: ConfessFinding[];
|
|
39
|
+
/** Trust delta to apply to the vendor's scoreboard (-1..+1). */
|
|
40
|
+
trustDelta: number;
|
|
41
|
+
/** Top-level instruction for the AI. */
|
|
42
|
+
guidance: string;
|
|
43
|
+
}
|
|
44
|
+
export interface ScoreboardEntry {
|
|
45
|
+
vendor: string;
|
|
46
|
+
confessions: number;
|
|
47
|
+
verifiedCount: number;
|
|
48
|
+
partialCount: number;
|
|
49
|
+
hallucinationCount: number;
|
|
50
|
+
unverifiableCount: number;
|
|
51
|
+
/** Cumulative trust score (sum of trustDeltas) — divide by confessions
|
|
52
|
+
* for a [-1, +1] average trust per call. */
|
|
53
|
+
trustScore: number;
|
|
54
|
+
/** ISO timestamp of last confession. */
|
|
55
|
+
lastSeen: string;
|
|
56
|
+
}
|
|
57
|
+
/** Extract every commit-hash candidate, file-path candidate, and numeric
|
|
58
|
+
* claim from a draft. Heuristic but conservative — false negatives are
|
|
59
|
+
* preferred over false positives (we'd rather under-check than under-warn). */
|
|
60
|
+
export declare function extractClaims(draft: string): {
|
|
61
|
+
hashes: string[];
|
|
62
|
+
paths: string[];
|
|
63
|
+
numbers: string[];
|
|
64
|
+
};
|
|
65
|
+
export declare function confessDraft(draft: string, selfConfidence: number, repoRoot: string): ConfessReport;
|
|
66
|
+
export declare const confessTool: MnemeTool;
|
|
67
|
+
//# sourceMappingURL=_confess.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_confess.d.ts","sourceRoot":"","sources":["../../src/tools/_confess.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,oBAAoB,GAAG,eAAe,GAAG,cAAc,CAAC;AAElG,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,GAAG,WAAW,GAAG,SAAS,CAAC;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;IAC3C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,cAAc,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B;iDAC6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAwBD;;gFAEgF;AAChF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG;IAC5C,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB,CAoBA;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,aAAa,CA0Ef;AA0BD,eAAO,MAAM,WAAW,EAAE,SAuGzB,CAAC"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Truth Confession (v1.18.0 — black sheep #5)
|
|
3
|
+
*
|
|
4
|
+
* Before delivering a user-facing answer, the AI calls `mneme.confess`
|
|
5
|
+
* with the draft + a self-rated confidence (0-1). Mneme cross-checks
|
|
6
|
+
* the draft against ground truth available locally:
|
|
7
|
+
*
|
|
8
|
+
* • commit-hash claims → resolved via git rev-parse (same as verify_claims)
|
|
9
|
+
* • file-path claims → resolved via fs.existsSync
|
|
10
|
+
* • numeric claims → flagged for the AI's attention (best-effort regex)
|
|
11
|
+
*
|
|
12
|
+
* Returns one of:
|
|
13
|
+
* • verified — every checkable claim resolved
|
|
14
|
+
* • partially_verified — some checkable claims resolved, others didn't
|
|
15
|
+
* • hallucination — at least one checkable claim FAILED
|
|
16
|
+
* • unverifiable — no checkable claims found in the draft
|
|
17
|
+
*
|
|
18
|
+
* Lifetime stats are recorded per-AI-vendor in
|
|
19
|
+
* `.mneme/confess-scoreboard.json`. Over time this builds a per-vendor
|
|
20
|
+
* trust scorecard the user (or another tool) can query — the foundation
|
|
21
|
+
* for the public AI-trust dashboard.
|
|
22
|
+
*
|
|
23
|
+
* No other MCP server has a built-in confession + per-vendor scoreboard.
|
|
24
|
+
*/
|
|
25
|
+
import { spawnSync } from "node:child_process";
|
|
26
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync } from "node:fs";
|
|
27
|
+
import { join, isAbsolute, resolve as pathResolve } from "node:path";
|
|
28
|
+
const SCOREBOARD_FILENAME = ".mneme/confess-scoreboard.json";
|
|
29
|
+
function readScoreboard(repoRoot) {
|
|
30
|
+
const path = join(repoRoot, SCOREBOARD_FILENAME);
|
|
31
|
+
if (!existsSync(path))
|
|
32
|
+
return { entries: {} };
|
|
33
|
+
try {
|
|
34
|
+
return JSON.parse(readFileSync(path, "utf8"));
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return { entries: {} };
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
function writeScoreboard(repoRoot, sb) {
|
|
41
|
+
const dir = join(repoRoot, ".mneme");
|
|
42
|
+
if (!existsSync(dir))
|
|
43
|
+
mkdirSync(dir, { recursive: true });
|
|
44
|
+
writeFileSync(join(repoRoot, SCOREBOARD_FILENAME), JSON.stringify(sb, null, 2), "utf8");
|
|
45
|
+
}
|
|
46
|
+
/** Extract every commit-hash candidate, file-path candidate, and numeric
|
|
47
|
+
* claim from a draft. Heuristic but conservative — false negatives are
|
|
48
|
+
* preferred over false positives (we'd rather under-check than under-warn). */
|
|
49
|
+
export function extractClaims(draft) {
|
|
50
|
+
const hashes = Array.from(new Set(draft.match(/\b[a-f0-9]{7,40}\b/gi) ?? []));
|
|
51
|
+
// Path candidate: starts with a letter, contains a slash, ends in a
|
|
52
|
+
// file extension. e.g. src/foo.ts, packages/web/index.ts.
|
|
53
|
+
const paths = Array.from(new Set((draft.match(/(?:[a-zA-Z][\w.-]*\/)+[a-zA-Z][\w.-]*\.[a-zA-Z0-9]{1,8}/g) ?? [])
|
|
54
|
+
.filter((p) => !p.includes(".."))
|
|
55
|
+
.filter((p) => p.length < 200)));
|
|
56
|
+
// Numeric claims: 'X commits', 'N tests', 'M files' — short captures.
|
|
57
|
+
const numbers = Array.from(new Set((draft.match(/\b\d{1,7}\s+(?:commits?|tests?|files?|lines?|authors?|days?|seconds?|ms)\b/gi) ?? []).map((s) => s.toLowerCase())));
|
|
58
|
+
return { hashes, paths, numbers };
|
|
59
|
+
}
|
|
60
|
+
export function confessDraft(draft, selfConfidence, repoRoot) {
|
|
61
|
+
const { hashes, paths, numbers } = extractClaims(draft);
|
|
62
|
+
const findings = [];
|
|
63
|
+
for (const h of hashes) {
|
|
64
|
+
const r = spawnSync("git", ["rev-parse", "--verify", h], { cwd: repoRoot, stdio: "pipe" });
|
|
65
|
+
findings.push({
|
|
66
|
+
kind: "commit-hash",
|
|
67
|
+
value: h,
|
|
68
|
+
status: r.status === 0 ? "resolved" : "missing",
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
for (const p of paths) {
|
|
72
|
+
const abs = isAbsolute(p) ? p : pathResolve(repoRoot, p);
|
|
73
|
+
findings.push({
|
|
74
|
+
kind: "file-path",
|
|
75
|
+
value: p,
|
|
76
|
+
status: existsSync(abs) ? "resolved" : "missing",
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
for (const n of numbers) {
|
|
80
|
+
findings.push({
|
|
81
|
+
kind: "numeric",
|
|
82
|
+
value: n,
|
|
83
|
+
status: "flagged",
|
|
84
|
+
detail: "Numeric claim — Mneme cannot verify automatically; AI should cross-check before delivery.",
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
const checkable = findings.filter((f) => f.status !== "flagged");
|
|
88
|
+
const resolved = checkable.filter((f) => f.status === "resolved").length;
|
|
89
|
+
const missing = checkable.filter((f) => f.status === "missing").length;
|
|
90
|
+
let verdict;
|
|
91
|
+
let trustDelta;
|
|
92
|
+
let guidance;
|
|
93
|
+
if (checkable.length === 0) {
|
|
94
|
+
verdict = "unverifiable";
|
|
95
|
+
trustDelta = 0;
|
|
96
|
+
guidance =
|
|
97
|
+
"No commit-hash or file-path claims found to check. " +
|
|
98
|
+
"Mneme can't automatically grade this draft — rely on the AI's self-confidence and pair with mneme.adversary.cross_examine for stronger checks.";
|
|
99
|
+
}
|
|
100
|
+
else if (missing === 0) {
|
|
101
|
+
verdict = "verified";
|
|
102
|
+
trustDelta = +0.2;
|
|
103
|
+
guidance = `All ${resolved} checkable claim${resolved === 1 ? "" : "s"} resolved. Safe to deliver.`;
|
|
104
|
+
}
|
|
105
|
+
else if (resolved === 0) {
|
|
106
|
+
verdict = "hallucination";
|
|
107
|
+
trustDelta = -0.5;
|
|
108
|
+
guidance = `STOP — ${missing} unresolved claim${missing === 1 ? "" : "s"}: ${findings.filter((f) => f.status === "missing").slice(0, 3).map((f) => f.value).join(", ")}. Rewrite to remove or replace before delivery.`;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
verdict = "partially_verified";
|
|
112
|
+
trustDelta = -0.1;
|
|
113
|
+
guidance = `${resolved} resolved, ${missing} unresolved. Either remove the unresolved claims or replace them with verified equivalents.`;
|
|
114
|
+
}
|
|
115
|
+
// Calibration: if AI's self-confidence is HIGH (>0.8) but we found
|
|
116
|
+
// hallucinations, penalize harder. If self-confidence is LOW but we
|
|
117
|
+
// verified everything, reward extra (calibration credit).
|
|
118
|
+
let calibrationAdjustment = 0;
|
|
119
|
+
if (verdict === "hallucination" && selfConfidence > 0.8)
|
|
120
|
+
calibrationAdjustment = -0.3;
|
|
121
|
+
if (verdict === "verified" && selfConfidence < 0.5)
|
|
122
|
+
calibrationAdjustment = +0.1;
|
|
123
|
+
trustDelta += calibrationAdjustment;
|
|
124
|
+
const mnemeConfidence = checkable.length === 0 ? 0.3 : Math.min(1, 0.5 + checkable.length * 0.05);
|
|
125
|
+
return {
|
|
126
|
+
verdict,
|
|
127
|
+
selfConfidence,
|
|
128
|
+
mnemeConfidence: Math.round(mnemeConfidence * 100) / 100,
|
|
129
|
+
findings,
|
|
130
|
+
trustDelta: Math.max(-1, Math.min(1, Math.round(trustDelta * 100) / 100)),
|
|
131
|
+
guidance,
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function updateScoreboard(repoRoot, vendor, report) {
|
|
135
|
+
const sb = readScoreboard(repoRoot);
|
|
136
|
+
const existing = sb.entries[vendor] ?? {
|
|
137
|
+
vendor,
|
|
138
|
+
confessions: 0,
|
|
139
|
+
verifiedCount: 0,
|
|
140
|
+
partialCount: 0,
|
|
141
|
+
hallucinationCount: 0,
|
|
142
|
+
unverifiableCount: 0,
|
|
143
|
+
trustScore: 0,
|
|
144
|
+
lastSeen: new Date().toISOString(),
|
|
145
|
+
};
|
|
146
|
+
existing.confessions += 1;
|
|
147
|
+
existing.lastSeen = new Date().toISOString();
|
|
148
|
+
existing.trustScore = Math.round((existing.trustScore + report.trustDelta) * 100) / 100;
|
|
149
|
+
if (report.verdict === "verified")
|
|
150
|
+
existing.verifiedCount += 1;
|
|
151
|
+
else if (report.verdict === "partially_verified")
|
|
152
|
+
existing.partialCount += 1;
|
|
153
|
+
else if (report.verdict === "hallucination")
|
|
154
|
+
existing.hallucinationCount += 1;
|
|
155
|
+
else
|
|
156
|
+
existing.unverifiableCount += 1;
|
|
157
|
+
sb.entries[vendor] = existing;
|
|
158
|
+
writeScoreboard(repoRoot, sb);
|
|
159
|
+
return existing;
|
|
160
|
+
}
|
|
161
|
+
export const confessTool = {
|
|
162
|
+
name: "mneme.confess",
|
|
163
|
+
category: "meta",
|
|
164
|
+
description: "Truth Confession — before delivering a user-facing answer, the AI passes its " +
|
|
165
|
+
"DRAFT + self-rated CONFIDENCE (0..1). Mneme cross-checks the draft against " +
|
|
166
|
+
"ground truth: commit hashes via git rev-parse, file paths via fs check, " +
|
|
167
|
+
"numeric claims flagged for human attention. Returns verdict (verified | " +
|
|
168
|
+
"partially_verified | hallucination | unverifiable) + per-AI-vendor lifetime " +
|
|
169
|
+
"scoreboard delta. Use WHEN you've drafted any user-facing answer that " +
|
|
170
|
+
"includes specific facts (hashes, paths, counts) — call this LAST before delivery.",
|
|
171
|
+
whenToUse: "You drafted a user-facing answer that includes any factual claim — call this last before delivery to grade your own honesty.",
|
|
172
|
+
triggers: ["confess this draft", "is my answer truthful", "self-grade my draft"],
|
|
173
|
+
inputSchema: {
|
|
174
|
+
type: "object",
|
|
175
|
+
properties: {
|
|
176
|
+
draft: { type: "string", description: "Your draft answer." },
|
|
177
|
+
selfConfidence: { type: "number", description: "Your own confidence the draft is correct (0..1)." },
|
|
178
|
+
vendor: {
|
|
179
|
+
type: "string",
|
|
180
|
+
description: "Your AI vendor / model identifier (e.g. 'claude-opus-4-7', 'cursor-cmd-k', 'codex-cli'). Used for scoreboard.",
|
|
181
|
+
},
|
|
182
|
+
},
|
|
183
|
+
required: ["draft", "selfConfidence", "vendor"],
|
|
184
|
+
},
|
|
185
|
+
outputSchema: {
|
|
186
|
+
type: "object",
|
|
187
|
+
properties: {
|
|
188
|
+
verdict: { type: "string", enum: ["verified", "partially_verified", "hallucination", "unverifiable"] },
|
|
189
|
+
selfConfidence: { type: "number" },
|
|
190
|
+
mnemeConfidence: { type: "number" },
|
|
191
|
+
findings: { type: "array", items: { type: "object" } },
|
|
192
|
+
trustDelta: { type: "number", description: "Change to vendor's lifetime trust score (-1..+1)." },
|
|
193
|
+
guidance: { type: "string" },
|
|
194
|
+
vendorScoreboard: {
|
|
195
|
+
type: "object",
|
|
196
|
+
description: "Updated scoreboard entry for the vendor — confession count + trust trajectory.",
|
|
197
|
+
},
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
examples: [
|
|
201
|
+
{
|
|
202
|
+
userQuery: "(internal — agent calls last, before delivery)",
|
|
203
|
+
args: {
|
|
204
|
+
draft: "The auth refactor in commit a3f9b21 introduced a 7-day TTL (see src/auth/middleware.ts).",
|
|
205
|
+
selfConfidence: 0.85,
|
|
206
|
+
vendor: "claude-opus-4-7",
|
|
207
|
+
},
|
|
208
|
+
expectedOutput: "Returns { verdict, findings: [{commit-hash a3f9b21 ...}, {file-path src/auth/middleware.ts ...}], trustDelta, guidance }. Update vendor scoreboard. If hallucination → DO NOT deliver, rewrite first.",
|
|
209
|
+
},
|
|
210
|
+
],
|
|
211
|
+
pitfalls: [
|
|
212
|
+
"Doesn't read CODE — only checks if files exist + hashes resolve. A hallucinated function NAME inside an existing file passes this check.",
|
|
213
|
+
"Numeric claims are FLAGGED, not graded — Mneme can't tell if 'we have 87 tests' is true. Pair with mneme.audit.report or run the test suite for ground truth.",
|
|
214
|
+
"selfConfidence calibration: if you're confident AND wrong, the trust penalty is ×1.5 (HARDER on overconfidence than on humble mistakes).",
|
|
215
|
+
"Vendor scoreboard is local to the repo — there's no global aggregation (yet). Plan for v1.19+: opt-in upload to a public dashboard.",
|
|
216
|
+
],
|
|
217
|
+
composeWith: ["mneme.verify_claims", "mneme.adversary.cross_examine", "mneme.grade.answer"],
|
|
218
|
+
handler: async (rt, args) => {
|
|
219
|
+
const draft = String(args["draft"] ?? "");
|
|
220
|
+
const selfConfidence = Math.max(0, Math.min(1, Number(args["selfConfidence"] ?? 0.5)));
|
|
221
|
+
const vendor = String(args["vendor"] ?? "unknown").trim() || "unknown";
|
|
222
|
+
if (!draft) {
|
|
223
|
+
return {
|
|
224
|
+
data: { error: "missing required argument: draft" },
|
|
225
|
+
wisdom: "Pass your draft answer text and a self-confidence score (0..1).",
|
|
226
|
+
confidence: { level: "high" },
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
const report = confessDraft(draft, selfConfidence, rt.meta.rootPath);
|
|
230
|
+
let scoreboard;
|
|
231
|
+
try {
|
|
232
|
+
scoreboard = updateScoreboard(rt.meta.rootPath, vendor, report);
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
// Scoreboard is best-effort — never block confession on a write error.
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
data: { ...report, vendorScoreboard: scoreboard },
|
|
239
|
+
wisdom: report.guidance,
|
|
240
|
+
followUp: report.verdict === "hallucination"
|
|
241
|
+
? ["mneme.memory.search_commits", "mneme.adversary.cross_examine"]
|
|
242
|
+
: report.verdict === "partially_verified"
|
|
243
|
+
? ["mneme.verify_claims"]
|
|
244
|
+
: [],
|
|
245
|
+
confidence: report.mnemeConfidence > 0.7
|
|
246
|
+
? { level: "high" }
|
|
247
|
+
: report.mnemeConfidence > 0.4
|
|
248
|
+
? { level: "medium" }
|
|
249
|
+
: { level: "low", notes: "Few or no checkable claims — verdict is best-effort." },
|
|
250
|
+
secondBrain: {
|
|
251
|
+
presentation: report.verdict === "hallucination"
|
|
252
|
+
? "DO NOT deliver. Quote the guidance verbatim, rewrite, then re-confess. Loop until verdict ∈ {verified, partially_verified, unverifiable}."
|
|
253
|
+
: report.verdict === "verified"
|
|
254
|
+
? "Safe to deliver. Optionally tell the user the draft was self-graded by Mneme."
|
|
255
|
+
: "Surface the guidance to the user as part of the answer's confidence framing.",
|
|
256
|
+
},
|
|
257
|
+
};
|
|
258
|
+
},
|
|
259
|
+
};
|
|
260
|
+
//# sourceMappingURL=_confess.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_confess.js","sourceRoot":"","sources":["../../src/tools/_confess.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_confess.test.d.ts","sourceRoot":"","sources":["../../src/tools/_confess.test.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Truth Confession — unit tests for the pure scoring functions.
|
|
3
|
+
* The handler itself is integration-tested via _contract.test.ts.
|
|
4
|
+
*/
|
|
5
|
+
import { describe, expect, it, beforeEach, afterEach } from "vitest";
|
|
6
|
+
import { mkdtempSync, rmSync, writeFileSync, mkdirSync } from "node:fs";
|
|
7
|
+
import { tmpdir } from "node:os";
|
|
8
|
+
import { join } from "node:path";
|
|
9
|
+
import { confessDraft, extractClaims } from "./_confess.js";
|
|
10
|
+
describe("extractClaims", () => {
|
|
11
|
+
it("finds commit-hash candidates (7-40 hex chars)", () => {
|
|
12
|
+
const draft = "see commit a3f9b21 and also c0e2d5f0a1b2c3d4 for context";
|
|
13
|
+
const out = extractClaims(draft);
|
|
14
|
+
expect(out.hashes).toContain("a3f9b21");
|
|
15
|
+
expect(out.hashes).toContain("c0e2d5f0a1b2c3d4");
|
|
16
|
+
});
|
|
17
|
+
it("finds file-path candidates with extension + slash", () => {
|
|
18
|
+
const draft = "look at src/auth/middleware.ts and packages/web/index.ts";
|
|
19
|
+
const out = extractClaims(draft);
|
|
20
|
+
expect(out.paths).toContain("src/auth/middleware.ts");
|
|
21
|
+
expect(out.paths).toContain("packages/web/index.ts");
|
|
22
|
+
});
|
|
23
|
+
it("finds numeric claims (X commits / N tests / M files etc.)", () => {
|
|
24
|
+
const draft = "we have 3129 tests passing and 87 commits in this window";
|
|
25
|
+
const out = extractClaims(draft);
|
|
26
|
+
expect(out.numbers.some((n) => n.includes("tests"))).toBe(true);
|
|
27
|
+
expect(out.numbers.some((n) => n.includes("commits"))).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
it("dedupes within each kind", () => {
|
|
30
|
+
const draft = "commit a3f9b21 — see commit a3f9b21 again, and src/foo.ts twice: src/foo.ts";
|
|
31
|
+
const out = extractClaims(draft);
|
|
32
|
+
expect(out.hashes.length).toBe(1);
|
|
33
|
+
expect(out.paths.length).toBe(1);
|
|
34
|
+
});
|
|
35
|
+
it("ignores false-positive paths with .. or absurd length", () => {
|
|
36
|
+
const draft = "path ../etc/passwd is bad and " + "x/".repeat(150) + "y.ts is too long";
|
|
37
|
+
const out = extractClaims(draft);
|
|
38
|
+
expect(out.paths).not.toContain("../etc/passwd");
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
describe("confessDraft — verdicts on a synthetic repo", () => {
|
|
42
|
+
let tmp;
|
|
43
|
+
let realFile;
|
|
44
|
+
beforeEach(() => {
|
|
45
|
+
tmp = mkdtempSync(join(tmpdir(), "mneme-confess-"));
|
|
46
|
+
// Create a real file we can claim about.
|
|
47
|
+
mkdirSync(join(tmp, "src"), { recursive: true });
|
|
48
|
+
realFile = "src/real.ts";
|
|
49
|
+
writeFileSync(join(tmp, realFile), "export const x = 1;\n");
|
|
50
|
+
});
|
|
51
|
+
afterEach(() => {
|
|
52
|
+
try {
|
|
53
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
54
|
+
}
|
|
55
|
+
catch { /* ignore */ }
|
|
56
|
+
});
|
|
57
|
+
it("returns 'unverifiable' when no checkable claims found", () => {
|
|
58
|
+
const r = confessDraft("Generally, things look good.", 0.5, tmp);
|
|
59
|
+
expect(r.verdict).toBe("unverifiable");
|
|
60
|
+
expect(r.trustDelta).toBe(0);
|
|
61
|
+
expect(r.findings).toHaveLength(0);
|
|
62
|
+
});
|
|
63
|
+
it("returns 'hallucination' when only missing claims", () => {
|
|
64
|
+
const r = confessDraft("see src/does/not/exist.ts for the fix", 0.9, tmp);
|
|
65
|
+
expect(r.verdict).toBe("hallucination");
|
|
66
|
+
expect(r.trustDelta).toBeLessThan(0);
|
|
67
|
+
expect(r.findings.some((f) => f.status === "missing")).toBe(true);
|
|
68
|
+
});
|
|
69
|
+
it("returns 'verified' when only resolved claims", () => {
|
|
70
|
+
const r = confessDraft(`see ${realFile} for the fix`, 0.5, tmp);
|
|
71
|
+
expect(r.verdict).toBe("verified");
|
|
72
|
+
expect(r.trustDelta).toBeGreaterThan(0);
|
|
73
|
+
expect(r.findings.every((f) => f.status === "resolved")).toBe(true);
|
|
74
|
+
});
|
|
75
|
+
it("returns 'partially_verified' when mixed resolved + missing", () => {
|
|
76
|
+
const r = confessDraft(`see ${realFile} (good) and src/fake.ts (bad)`, 0.7, tmp);
|
|
77
|
+
expect(r.verdict).toBe("partially_verified");
|
|
78
|
+
expect(r.trustDelta).toBeLessThan(0);
|
|
79
|
+
});
|
|
80
|
+
it("penalizes overconfidence: hallucination + high selfConfidence ⇒ harder penalty", () => {
|
|
81
|
+
const overconfident = confessDraft("see src/fake.ts", 0.95, tmp);
|
|
82
|
+
const humble = confessDraft("see src/fake.ts", 0.3, tmp);
|
|
83
|
+
expect(overconfident.trustDelta).toBeLessThan(humble.trustDelta);
|
|
84
|
+
});
|
|
85
|
+
it("rewards calibration: verified + low selfConfidence ⇒ extra credit", () => {
|
|
86
|
+
const humble = confessDraft(`see ${realFile}`, 0.3, tmp);
|
|
87
|
+
const confident = confessDraft(`see ${realFile}`, 0.9, tmp);
|
|
88
|
+
expect(humble.trustDelta).toBeGreaterThan(confident.trustDelta);
|
|
89
|
+
});
|
|
90
|
+
it("trustDelta is clamped to [-1, +1]", () => {
|
|
91
|
+
const r = confessDraft("see src/a.ts and src/b.ts and src/c.ts and src/d.ts and src/e.ts", 1, tmp);
|
|
92
|
+
expect(r.trustDelta).toBeGreaterThanOrEqual(-1);
|
|
93
|
+
expect(r.trustDelta).toBeLessThanOrEqual(1);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
//# sourceMappingURL=_confess.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_confess.test.js","sourceRoot":"","sources":["../../src/tools/_confess.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contract tests — loop every registered MCP tool and verify the structural
|
|
3
|
+
* invariants that the Mneme architecture depends on. These tests catch:
|
|
4
|
+
*
|
|
5
|
+
* • name regex violations (the namespace pattern matters for grouping)
|
|
6
|
+
* • description / handler shape regressions
|
|
7
|
+
* • inputSchema validity (must be a JSON Schema object, type=object)
|
|
8
|
+
* • outputSchema validity when present
|
|
9
|
+
* • duplicate names across categories
|
|
10
|
+
* • unique categories (only the 9 documented categories are allowed)
|
|
11
|
+
* • no orphaned composeWith references
|
|
12
|
+
*
|
|
13
|
+
* v1.18 — these tests are STRUCTURAL only. Description-quality scoring
|
|
14
|
+
* (length, jargon coverage, examples) lives in mneme.tool.lint and is
|
|
15
|
+
* intended to be a soft target, not a build-time gate. Build-time gates
|
|
16
|
+
* here would block legitimate refactors of legacy tools.
|
|
17
|
+
*/
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=_contract.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_contract.test.d.ts","sourceRoot":"","sources":["../../src/tools/_contract.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG"}
|