@mneme-ai/core 2.19.86 → 2.19.87-lite
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/agent_manifest.d.ts +1 -1
- package/dist/agent_manifest.d.ts.map +1 -1
- package/dist/agent_manifest.js +10 -1
- package/dist/agent_manifest.js.map +1 -1
- package/dist/ai_confessional/ai_confessional.test.d.ts +2 -0
- package/dist/ai_confessional/ai_confessional.test.d.ts.map +1 -0
- package/dist/ai_confessional/ai_confessional.test.js +51 -0
- package/dist/ai_confessional/ai_confessional.test.js.map +1 -0
- package/dist/ai_confessional/index.d.ts +43 -0
- package/dist/ai_confessional/index.d.ts.map +1 -0
- package/dist/ai_confessional/index.js +147 -0
- package/dist/ai_confessional/index.js.map +1 -0
- package/dist/dep_mortality/dep_mortality.test.d.ts +2 -0
- package/dist/dep_mortality/dep_mortality.test.d.ts.map +1 -0
- package/dist/dep_mortality/dep_mortality.test.js +39 -0
- package/dist/dep_mortality/dep_mortality.test.js.map +1 -0
- package/dist/dep_mortality/index.d.ts +51 -0
- package/dist/dep_mortality/index.d.ts.map +1 -0
- package/dist/dep_mortality/index.js +85 -0
- package/dist/dep_mortality/index.js.map +1 -0
- package/dist/funeral/index.d.ts +49 -0
- package/dist/funeral/index.d.ts.map +1 -0
- package/dist/funeral/index.js +172 -0
- package/dist/funeral/index.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -1
- package/dist/socratic/index.d.ts +41 -0
- package/dist/socratic/index.d.ts.map +1 -0
- package/dist/socratic/index.js +123 -0
- package/dist/socratic/index.js.map +1 -0
- package/dist/socratic/socratic.test.d.ts +2 -0
- package/dist/socratic/socratic.test.d.ts.map +1 -0
- package/dist/socratic/socratic.test.js +26 -0
- package/dist/socratic/socratic.test.js.map +1 -0
- package/dist/whistleblower/index.d.ts +56 -0
- package/dist/whistleblower/index.d.ts.map +1 -0
- package/dist/whistleblower/index.js +158 -0
- package/dist/whistleblower/index.js.map +1 -0
- package/dist/whistleblower/whistleblower.test.d.ts +2 -0
- package/dist/whistleblower/whistleblower.test.d.ts.map +1 -0
- package/dist/whistleblower/whistleblower.test.js +40 -0
- package/dist/whistleblower/whistleblower.test.js.map +1 -0
- package/package.json +2 -5
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.87 — #10 REVERSE STACK OVERFLOW.
|
|
3
|
+
*
|
|
4
|
+
* The opposite of every AI coding tool today. ChatGPT et al guess
|
|
5
|
+
* confidently; this engine guesses humbly + ASKS THE HUMAN before
|
|
6
|
+
* acting.
|
|
7
|
+
*
|
|
8
|
+
* Given a function or file, it generates 3 plausible hypotheses about
|
|
9
|
+
* WHY the code is shaped the way it is, and offers them as questions
|
|
10
|
+
* for the human to pick from. When the human picks, Mneme records the
|
|
11
|
+
* answer. Over time the engine learns the user's coding patterns and
|
|
12
|
+
* its hypothesis ranking improves.
|
|
13
|
+
*
|
|
14
|
+
* NO LLM call — pure heuristic feature-detection. Runs identically on
|
|
15
|
+
* any sandbox / mobile / claude.app environment that lacks Ollama.
|
|
16
|
+
*/
|
|
17
|
+
export interface Hypothesis {
|
|
18
|
+
id: string;
|
|
19
|
+
rank: number;
|
|
20
|
+
text: string;
|
|
21
|
+
evidence: string;
|
|
22
|
+
}
|
|
23
|
+
export interface SocraticReading {
|
|
24
|
+
/** Path / function id being analysed. */
|
|
25
|
+
target: string;
|
|
26
|
+
/** Detected features (signals from the code). */
|
|
27
|
+
features: string[];
|
|
28
|
+
hypotheses: Hypothesis[];
|
|
29
|
+
}
|
|
30
|
+
export interface SocraticAnswer {
|
|
31
|
+
target: string;
|
|
32
|
+
pickedHypothesisId: string | null;
|
|
33
|
+
userExplanation: string;
|
|
34
|
+
ts: string;
|
|
35
|
+
}
|
|
36
|
+
export declare function readSocratic(target: string, code: string): SocraticReading;
|
|
37
|
+
export declare function recordSocraticAnswer(repoRoot: string, answer: SocraticAnswer): void;
|
|
38
|
+
export declare function readSocraticAnswers(repoRoot: string, opts?: {
|
|
39
|
+
limit?: number;
|
|
40
|
+
}): SocraticAnswer[];
|
|
41
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/socratic/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,yCAAyC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,UAAU,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,EAAE,EAAE,MAAM,CAAC;CACZ;AAqED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,CAqB1E;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAInF;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,cAAc,EAAE,CAUrG"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.87 — #10 REVERSE STACK OVERFLOW.
|
|
3
|
+
*
|
|
4
|
+
* The opposite of every AI coding tool today. ChatGPT et al guess
|
|
5
|
+
* confidently; this engine guesses humbly + ASKS THE HUMAN before
|
|
6
|
+
* acting.
|
|
7
|
+
*
|
|
8
|
+
* Given a function or file, it generates 3 plausible hypotheses about
|
|
9
|
+
* WHY the code is shaped the way it is, and offers them as questions
|
|
10
|
+
* for the human to pick from. When the human picks, Mneme records the
|
|
11
|
+
* answer. Over time the engine learns the user's coding patterns and
|
|
12
|
+
* its hypothesis ranking improves.
|
|
13
|
+
*
|
|
14
|
+
* NO LLM call — pure heuristic feature-detection. Runs identically on
|
|
15
|
+
* any sandbox / mobile / claude.app environment that lacks Ollama.
|
|
16
|
+
*/
|
|
17
|
+
import { existsSync, readFileSync, mkdirSync, appendFileSync } from "node:fs";
|
|
18
|
+
import { join } from "node:path";
|
|
19
|
+
const DIR = ".mneme/socratic";
|
|
20
|
+
const LEDGER = "answers.jsonl";
|
|
21
|
+
const FEATURE_RULES = [
|
|
22
|
+
{
|
|
23
|
+
feature: "uses Promise.all",
|
|
24
|
+
test: (c) => /\bPromise\.all\(/.test(c),
|
|
25
|
+
hypothesis: { id: "h_concurrency", text: (snip) => `Did you use Promise.all here because the calls have no inter-dependencies and you wanted to parallelise the wait time?`, evidence: "saw Promise.all on the code path" },
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
feature: "try/catch around await",
|
|
29
|
+
test: (c) => /try\s*\{[^}]*\bawait\b/.test(c),
|
|
30
|
+
hypothesis: { id: "h_defensive_async", text: () => `Did you wrap the await in try/catch because a specific upstream call has thrown in production before, and you wanted to swallow that one path?`, evidence: "try/catch wraps an await — defensive against a known failure mode" },
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
feature: "early-return pattern",
|
|
34
|
+
test: (c) => /\bif\s*\([^)]+\)\s*return\b/.test(c),
|
|
35
|
+
hypothesis: { id: "h_guard_clauses", text: () => `Did you use early returns to keep the happy path flat, instead of nesting everything inside an if?`, evidence: "early `if (...) return` guard clauses" },
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
feature: "Map vs Object",
|
|
39
|
+
test: (c) => /new\s+Map\(/.test(c),
|
|
40
|
+
hypothesis: { id: "h_map_choice", text: () => `Did you choose Map over a plain object because the keys aren't strings, or because you needed insertion-order iteration?`, evidence: "new Map() rather than {}" },
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
feature: "explicit type narrowing",
|
|
44
|
+
test: (c) => /\bas\s+(unknown\s+as\s+)?[A-Z]/.test(c),
|
|
45
|
+
hypothesis: { id: "h_type_assertion", text: () => `Did you use 'as' here because TypeScript's inference was too narrow / too wide, and you knew something the compiler didn't?`, evidence: "explicit type assertion present" },
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
feature: "default parameter",
|
|
49
|
+
test: (c) => /\bfunction\s+\w+\s*\([^)]*=\s*[^),]+/.test(c) || /\(\s*[^,)]+\s*=\s*[^),]+/.test(c),
|
|
50
|
+
hypothesis: { id: "h_default_arg", text: () => `Did you set the default at the parameter site (rather than inside the body) because every caller WAS passing the same value and you wanted to collapse it?`, evidence: "default value at parameter site" },
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
feature: "regex .test() — not .match()",
|
|
54
|
+
test: (c) => /\/[^/\n]+\/[a-z]*\.test\(/.test(c),
|
|
55
|
+
hypothesis: { id: "h_test_vs_match", text: () => `Did you use .test() instead of .match() because you only need the boolean and want to avoid allocating a match array?`, evidence: "regex.test() — boolean-only path" },
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
feature: "string concat (template literal)",
|
|
59
|
+
test: (c) => /`[^`]*\$\{/.test(c),
|
|
60
|
+
hypothesis: { id: "h_template_lit", text: () => `Did you go with template literals over string concat because of readability with multiple interpolations, or because of a multi-line block?`, evidence: "template literal with interpolation" },
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
feature: "single-line ternary",
|
|
64
|
+
test: (c) => /\?[^:]+:\s*[^;]+;/.test(c),
|
|
65
|
+
hypothesis: { id: "h_ternary", text: () => `Did you use a ternary instead of if/else because the two branches each return a single expression and you wanted the line to read as 'a or b'?`, evidence: "ternary expression for binary choice" },
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
feature: "no semicolons",
|
|
69
|
+
test: (c) => c.split("\n").filter((l) => l.trim() && !l.trim().endsWith(";") && !l.trim().endsWith("{") && !l.trim().endsWith("}") && !l.trim().startsWith("//")).length > 3,
|
|
70
|
+
hypothesis: { id: "h_semi_style", text: () => `Did you skip semicolons because this codebase uses Standard / no-semi style, or just personal preference?`, evidence: "majority of statements lack trailing semicolons" },
|
|
71
|
+
},
|
|
72
|
+
];
|
|
73
|
+
const FALLBACK_HYPOTHESES = [
|
|
74
|
+
{ id: "h_fallback_legacy", text: "Did you write it this way because that's what the rest of the file looked like and you wanted to stay consistent?", evidence: "stylistic consistency with the file" },
|
|
75
|
+
{ id: "h_fallback_perf", text: "Did you write it this way to avoid an allocation / re-render / extra round-trip in the hot path?", evidence: "performance-sensitive code shape" },
|
|
76
|
+
{ id: "h_fallback_test", text: "Did you write it this way because it makes the unit-test ergonomics cleaner (easy mock / no global state)?", evidence: "testability-first shape" },
|
|
77
|
+
];
|
|
78
|
+
export function readSocratic(target, code) {
|
|
79
|
+
const features = [];
|
|
80
|
+
const hypotheses = [];
|
|
81
|
+
for (const r of FEATURE_RULES) {
|
|
82
|
+
if (!r.test(code))
|
|
83
|
+
continue;
|
|
84
|
+
features.push(r.feature);
|
|
85
|
+
hypotheses.push({
|
|
86
|
+
id: r.hypothesis.id,
|
|
87
|
+
rank: 0, // re-ranked below
|
|
88
|
+
text: r.hypothesis.text(code.slice(0, 120)),
|
|
89
|
+
evidence: r.hypothesis.evidence,
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
// Take top 3, pad with fallbacks if fewer features were detected.
|
|
93
|
+
let chosen = hypotheses.slice(0, 3);
|
|
94
|
+
for (const fb of FALLBACK_HYPOTHESES) {
|
|
95
|
+
if (chosen.length >= 3)
|
|
96
|
+
break;
|
|
97
|
+
chosen.push({ id: fb.id, rank: 0, text: fb.text, evidence: fb.evidence });
|
|
98
|
+
}
|
|
99
|
+
chosen = chosen.slice(0, 3).map((h, i) => ({ ...h, rank: i + 1 }));
|
|
100
|
+
return { target, features, hypotheses: chosen };
|
|
101
|
+
}
|
|
102
|
+
export function recordSocraticAnswer(repoRoot, answer) {
|
|
103
|
+
const dir = join(repoRoot, DIR);
|
|
104
|
+
if (!existsSync(dir))
|
|
105
|
+
mkdirSync(dir, { recursive: true });
|
|
106
|
+
appendFileSync(join(repoRoot, DIR, LEDGER), JSON.stringify(answer) + "\n", "utf8");
|
|
107
|
+
}
|
|
108
|
+
export function readSocraticAnswers(repoRoot, opts = {}) {
|
|
109
|
+
const p = join(repoRoot, DIR, LEDGER);
|
|
110
|
+
if (!existsSync(p))
|
|
111
|
+
return [];
|
|
112
|
+
const lines = readFileSync(p, "utf8").trim().split("\n").filter(Boolean);
|
|
113
|
+
const out = [];
|
|
114
|
+
for (const line of lines) {
|
|
115
|
+
try {
|
|
116
|
+
out.push(JSON.parse(line));
|
|
117
|
+
}
|
|
118
|
+
catch { /* */ }
|
|
119
|
+
}
|
|
120
|
+
out.reverse();
|
|
121
|
+
return typeof opts.limit === "number" ? out.slice(0, opts.limit) : out;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/socratic/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socratic.test.d.ts","sourceRoot":"","sources":["../../src/socratic/socratic.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { readSocratic } from "./index.js";
|
|
3
|
+
describe("socratic · feature detection", () => {
|
|
4
|
+
it("detects Promise.all + try/catch around await", () => {
|
|
5
|
+
const code = `async function f() { try { return await Promise.all([a(), b()]); } catch { return null; } }`;
|
|
6
|
+
const r = readSocratic("f.js", code);
|
|
7
|
+
expect(r.features).toContain("uses Promise.all");
|
|
8
|
+
expect(r.features).toContain("try/catch around await");
|
|
9
|
+
expect(r.hypotheses.length).toBe(3);
|
|
10
|
+
expect(r.hypotheses[0].rank).toBe(1);
|
|
11
|
+
});
|
|
12
|
+
it("falls back to general hypotheses when no features fire", () => {
|
|
13
|
+
const r = readSocratic("f.js", "var x = 1;");
|
|
14
|
+
expect(r.hypotheses.length).toBe(3);
|
|
15
|
+
});
|
|
16
|
+
it("always returns exactly 3 ranked hypotheses", () => {
|
|
17
|
+
const code = `
|
|
18
|
+
const m = new Map();
|
|
19
|
+
function f(a = 1) { if (!a) return; const x = a ? 'yes' : 'no'; return /test/.test(x); }
|
|
20
|
+
`;
|
|
21
|
+
const r = readSocratic("f.js", code);
|
|
22
|
+
expect(r.hypotheses.length).toBe(3);
|
|
23
|
+
expect(r.hypotheses.map((h) => h.rank)).toEqual([1, 2, 3]);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=socratic.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"socratic.test.js","sourceRoot":"","sources":["../../src/socratic/socratic.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;IAC5C,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,IAAI,GAAG,6FAA6F,CAAC;QAC3G,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACjD,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC;QACvD,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC7C,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG;;;KAGZ,CAAC;QACF,MAAM,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.87 — #8 AI WHISTLEBLOWER MODE.
|
|
3
|
+
*
|
|
4
|
+
* Mneme stays loyal to the USER, not the AI vendor. When the AI you're
|
|
5
|
+
* talking to suggests something illegal / non-compliant / dangerous /
|
|
6
|
+
* leaks PII, the whistleblower flags it BEFORE you act on it.
|
|
7
|
+
*
|
|
8
|
+
* Detection axes:
|
|
9
|
+
* 1. Dangerous commands (rm -rf, force-push to main, --no-verify,
|
|
10
|
+
* drop database, git reset --hard)
|
|
11
|
+
* 2. License contamination (suggested code with copyright headers
|
|
12
|
+
* from incompatible licenses)
|
|
13
|
+
* 3. PII / secrets leakage (reuses compliance.dlp patterns —
|
|
14
|
+
* AWS / GitHub / OpenAI / JWT / PEM /
|
|
15
|
+
* Thai national ID / cards / email)
|
|
16
|
+
* 4. Compliance evasion (phrases like "let's bypass review",
|
|
17
|
+
* "as per company policy" mid-suggestion,
|
|
18
|
+
* "I cannot disclose ... but the answer is")
|
|
19
|
+
* 5. Self-incrimination (AI admitting it doesn't have access,
|
|
20
|
+
* guessing without saying so, etc)
|
|
21
|
+
*
|
|
22
|
+
* Every flagged incident is appended to .mneme/whistleblower/incidents.jsonl
|
|
23
|
+
* HMAC-chained — tamper-evident audit log for compliance officers.
|
|
24
|
+
*/
|
|
25
|
+
export type IncidentSeverity = "info" | "warn" | "block";
|
|
26
|
+
export type IncidentClass = "dangerous_command" | "license_contamination" | "pii_leak" | "secret_leak" | "compliance_evasion" | "self_incrimination";
|
|
27
|
+
export interface Incident {
|
|
28
|
+
ts: string;
|
|
29
|
+
vendor: string;
|
|
30
|
+
class: IncidentClass;
|
|
31
|
+
severity: IncidentSeverity;
|
|
32
|
+
evidence: string;
|
|
33
|
+
context: string;
|
|
34
|
+
rationale: string;
|
|
35
|
+
chainHash?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface WhistleScanResult {
|
|
38
|
+
incidents: Incident[];
|
|
39
|
+
/** Overall verdict: clean / advise / block. */
|
|
40
|
+
verdict: "clean" | "advise" | "block";
|
|
41
|
+
/** Plain-English summary for the user. */
|
|
42
|
+
summary: string;
|
|
43
|
+
}
|
|
44
|
+
export declare function scanWhistle(text: string, opts?: {
|
|
45
|
+
vendor?: string;
|
|
46
|
+
}): Incident[];
|
|
47
|
+
/** Append incidents to the HMAC-chained ledger and return them with sigs. */
|
|
48
|
+
export declare function recordIncidents(repoRoot: string, incidents: Incident[]): Incident[];
|
|
49
|
+
export declare function scanWhistleAndRecord(repoRoot: string, text: string, opts?: {
|
|
50
|
+
vendor?: string;
|
|
51
|
+
}): WhistleScanResult;
|
|
52
|
+
export declare function readIncidents(repoRoot: string, opts?: {
|
|
53
|
+
limit?: number;
|
|
54
|
+
sinceTs?: number;
|
|
55
|
+
}): Incident[];
|
|
56
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/whistleblower/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAUH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACzD,MAAM,MAAM,aAAa,GACrB,mBAAmB,GACnB,uBAAuB,GACvB,UAAU,GACV,aAAa,GACb,oBAAoB,GACpB,oBAAoB,CAAC;AAEzB,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,+CAA+C;IAC/C,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtC,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;CACjB;AAuCD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,QAAQ,EAAE,CAoBpF;AAyBD,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAgBnF;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,iBAAiB,CAYtH;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,QAAQ,EAAE,CAc3G"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v2.19.87 — #8 AI WHISTLEBLOWER MODE.
|
|
3
|
+
*
|
|
4
|
+
* Mneme stays loyal to the USER, not the AI vendor. When the AI you're
|
|
5
|
+
* talking to suggests something illegal / non-compliant / dangerous /
|
|
6
|
+
* leaks PII, the whistleblower flags it BEFORE you act on it.
|
|
7
|
+
*
|
|
8
|
+
* Detection axes:
|
|
9
|
+
* 1. Dangerous commands (rm -rf, force-push to main, --no-verify,
|
|
10
|
+
* drop database, git reset --hard)
|
|
11
|
+
* 2. License contamination (suggested code with copyright headers
|
|
12
|
+
* from incompatible licenses)
|
|
13
|
+
* 3. PII / secrets leakage (reuses compliance.dlp patterns —
|
|
14
|
+
* AWS / GitHub / OpenAI / JWT / PEM /
|
|
15
|
+
* Thai national ID / cards / email)
|
|
16
|
+
* 4. Compliance evasion (phrases like "let's bypass review",
|
|
17
|
+
* "as per company policy" mid-suggestion,
|
|
18
|
+
* "I cannot disclose ... but the answer is")
|
|
19
|
+
* 5. Self-incrimination (AI admitting it doesn't have access,
|
|
20
|
+
* guessing without saying so, etc)
|
|
21
|
+
*
|
|
22
|
+
* Every flagged incident is appended to .mneme/whistleblower/incidents.jsonl
|
|
23
|
+
* HMAC-chained — tamper-evident audit log for compliance officers.
|
|
24
|
+
*/
|
|
25
|
+
import { existsSync, readFileSync, writeFileSync, mkdirSync, appendFileSync } from "node:fs";
|
|
26
|
+
import { join } from "node:path";
|
|
27
|
+
import { createHmac, randomBytes } from "node:crypto";
|
|
28
|
+
const DIR = ".mneme/whistleblower";
|
|
29
|
+
const LEDGER = "incidents.jsonl";
|
|
30
|
+
const KEY_FILE = "whistle.key";
|
|
31
|
+
const DETECTORS = [
|
|
32
|
+
// 1. Dangerous shell commands
|
|
33
|
+
{ cls: "dangerous_command", severity: "block", rationale: "Recursive force-delete suggested — irreversible.", pattern: /\brm\s+-rf\s+[\/~]/i },
|
|
34
|
+
{ cls: "dangerous_command", severity: "block", rationale: "Force-push to a protected branch suggested.", pattern: /git\s+push\s+(--force|-f)\b.*\b(main|master|trunk|production)/i },
|
|
35
|
+
{ cls: "dangerous_command", severity: "warn", rationale: "Hard reset will destroy uncommitted work.", pattern: /git\s+reset\s+--hard/i },
|
|
36
|
+
{ cls: "dangerous_command", severity: "warn", rationale: "Skipping pre-commit hooks bypasses safety gates.", pattern: /git\s+commit\s+[^\n]*--no-verify/i },
|
|
37
|
+
{ cls: "dangerous_command", severity: "block", rationale: "Dropping a database table or schema.", pattern: /\b(drop\s+(table|database|schema)|truncate\s+table)\b/i },
|
|
38
|
+
{ cls: "dangerous_command", severity: "warn", rationale: "Piping curl into sudo bash is the canonical supply-chain attack vector.", pattern: /curl\s+[^|]+\|\s*(sudo\s+)?(ba)?sh/i },
|
|
39
|
+
{ cls: "dangerous_command", severity: "warn", rationale: "chmod 777 grants world-write — security smell.", pattern: /chmod\s+(-R\s+)?777/i },
|
|
40
|
+
// 2. License contamination signatures
|
|
41
|
+
{ cls: "license_contamination", severity: "warn", rationale: "GPL header in suggested code may conflict with MIT/Apache project.", pattern: /GNU\s+General\s+Public\s+License|GPL[v]?[23]/ },
|
|
42
|
+
{ cls: "license_contamination", severity: "warn", rationale: "Suggested code carries a proprietary 'all rights reserved' header.", pattern: /Copyright\s+\([cC]\).*all\s+rights\s+reserved/i },
|
|
43
|
+
// 3. PII / secrets — overlap with compliance.dlp but kept inline so this
|
|
44
|
+
// module stays self-sufficient.
|
|
45
|
+
{ cls: "secret_leak", severity: "block", rationale: "AWS access key in AI output.", pattern: /\bAKIA[0-9A-Z]{16}\b/ },
|
|
46
|
+
{ cls: "secret_leak", severity: "block", rationale: "GitHub personal access token in AI output.", pattern: /\bgh[pous]_[A-Za-z0-9_]{36,}\b/ },
|
|
47
|
+
{ cls: "secret_leak", severity: "block", rationale: "OpenAI / Anthropic API key in AI output.", pattern: /\b(sk-[A-Za-z0-9]{32,}|sk-ant-api\d{2}-[A-Za-z0-9_-]{60,})\b/ },
|
|
48
|
+
{ cls: "secret_leak", severity: "block", rationale: "Private key block embedded in AI output.", pattern: /-----BEGIN\s+(RSA|EC|OPENSSH|PGP)?\s*PRIVATE\s+KEY-----/ },
|
|
49
|
+
{ cls: "pii_leak", severity: "warn", rationale: "Thai national ID number (13-digit) embedded in AI output.", pattern: /\b[0-9]-[0-9]{4}-[0-9]{5}-[0-9]{2}-[0-9]\b/ },
|
|
50
|
+
{ cls: "pii_leak", severity: "warn", rationale: "Credit-card-like number in AI output.", pattern: /\b(?:\d[ -]*?){13,19}\b/ },
|
|
51
|
+
// 4. Compliance evasion phrases
|
|
52
|
+
{ cls: "compliance_evasion", severity: "block", rationale: "AI is suggesting a workaround to bypass review.", pattern: /\b(bypass|skip|work\s*around)\s+(the\s+)?(review|hook|gate|approval)/i },
|
|
53
|
+
{ cls: "compliance_evasion", severity: "warn", rationale: "AI invoked a policy without citing the policy.", pattern: /\bas\s+per\s+(company|corporate)\s+policy\b/i },
|
|
54
|
+
{ cls: "compliance_evasion", severity: "warn", rationale: "AI claimed it cannot disclose, then offered to disclose anyway.", pattern: /i\s+(cannot|can't|am\s+not\s+able\s+to)\s+disclose[^.]*(but|however)\b/i },
|
|
55
|
+
// 5. Self-incrimination / hedge-without-saying-so
|
|
56
|
+
{ cls: "self_incrimination", severity: "info", rationale: "AI is guessing without flagging uncertainty.", pattern: /\b(probably|might\s+be|most\s+likely)\s+\d/i },
|
|
57
|
+
];
|
|
58
|
+
export function scanWhistle(text, opts = {}) {
|
|
59
|
+
if (!text)
|
|
60
|
+
return [];
|
|
61
|
+
const out = [];
|
|
62
|
+
for (const d of DETECTORS) {
|
|
63
|
+
const m = d.pattern.exec(text);
|
|
64
|
+
if (!m)
|
|
65
|
+
continue;
|
|
66
|
+
const i = m.index ?? text.indexOf(m[0]);
|
|
67
|
+
const ctxStart = Math.max(0, i - 30);
|
|
68
|
+
const ctxEnd = Math.min(text.length, i + m[0].length + 30);
|
|
69
|
+
out.push({
|
|
70
|
+
ts: new Date().toISOString(),
|
|
71
|
+
vendor: opts.vendor ?? "unknown",
|
|
72
|
+
class: d.cls,
|
|
73
|
+
severity: d.severity,
|
|
74
|
+
evidence: m[0].slice(0, 80),
|
|
75
|
+
context: text.slice(ctxStart, ctxEnd),
|
|
76
|
+
rationale: d.rationale,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
return out;
|
|
80
|
+
}
|
|
81
|
+
function ensureKey(repoRoot) {
|
|
82
|
+
const dir = join(repoRoot, DIR);
|
|
83
|
+
if (!existsSync(dir))
|
|
84
|
+
mkdirSync(dir, { recursive: true });
|
|
85
|
+
const p = join(dir, KEY_FILE);
|
|
86
|
+
if (existsSync(p))
|
|
87
|
+
return readFileSync(p, "utf8").trim();
|
|
88
|
+
const k = randomBytes(32).toString("base64url");
|
|
89
|
+
writeFileSync(p, k, "utf8");
|
|
90
|
+
return k;
|
|
91
|
+
}
|
|
92
|
+
function lastChain(repoRoot) {
|
|
93
|
+
const p = join(repoRoot, DIR, LEDGER);
|
|
94
|
+
if (!existsSync(p))
|
|
95
|
+
return "GENESIS";
|
|
96
|
+
const lines = readFileSync(p, "utf8").trim().split("\n").filter(Boolean);
|
|
97
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
98
|
+
try {
|
|
99
|
+
const obj = JSON.parse(lines[i]);
|
|
100
|
+
if (obj.chainHash)
|
|
101
|
+
return obj.chainHash;
|
|
102
|
+
}
|
|
103
|
+
catch { /* */ }
|
|
104
|
+
}
|
|
105
|
+
return "GENESIS";
|
|
106
|
+
}
|
|
107
|
+
/** Append incidents to the HMAC-chained ledger and return them with sigs. */
|
|
108
|
+
export function recordIncidents(repoRoot, incidents) {
|
|
109
|
+
if (incidents.length === 0)
|
|
110
|
+
return [];
|
|
111
|
+
const key = ensureKey(repoRoot);
|
|
112
|
+
const dir = join(repoRoot, DIR);
|
|
113
|
+
if (!existsSync(dir))
|
|
114
|
+
mkdirSync(dir, { recursive: true });
|
|
115
|
+
let prev = lastChain(repoRoot);
|
|
116
|
+
const out = [];
|
|
117
|
+
for (const inc of incidents) {
|
|
118
|
+
const payload = `${prev}|${inc.ts}|${inc.vendor}|${inc.class}|${inc.severity}|${inc.evidence}`;
|
|
119
|
+
const chainHash = createHmac("sha256", key).update(payload).digest("base64url").slice(0, 22);
|
|
120
|
+
const stamped = { ...inc, chainHash };
|
|
121
|
+
appendFileSync(join(repoRoot, DIR, LEDGER), JSON.stringify(stamped) + "\n", "utf8");
|
|
122
|
+
out.push(stamped);
|
|
123
|
+
prev = chainHash;
|
|
124
|
+
}
|
|
125
|
+
return out;
|
|
126
|
+
}
|
|
127
|
+
export function scanWhistleAndRecord(repoRoot, text, opts = {}) {
|
|
128
|
+
const incidents = scanWhistle(text, opts);
|
|
129
|
+
const recorded = recordIncidents(repoRoot, incidents);
|
|
130
|
+
const hasBlock = recorded.some((i) => i.severity === "block");
|
|
131
|
+
const hasWarn = recorded.some((i) => i.severity === "warn");
|
|
132
|
+
const verdict = hasBlock ? "block" : hasWarn ? "advise" : "clean";
|
|
133
|
+
const summary = verdict === "block"
|
|
134
|
+
? `🚨 ${recorded.length} incidents (${recorded.filter((i) => i.severity === "block").length} blocking). Do NOT act on this AI output.`
|
|
135
|
+
: verdict === "advise"
|
|
136
|
+
? `⚠ ${recorded.length} incidents found. Review before acting.`
|
|
137
|
+
: "✓ Clean — no compliance flags raised.";
|
|
138
|
+
return { incidents: recorded, verdict, summary };
|
|
139
|
+
}
|
|
140
|
+
export function readIncidents(repoRoot, opts = {}) {
|
|
141
|
+
const p = join(repoRoot, DIR, LEDGER);
|
|
142
|
+
if (!existsSync(p))
|
|
143
|
+
return [];
|
|
144
|
+
const lines = readFileSync(p, "utf8").trim().split("\n").filter(Boolean);
|
|
145
|
+
const out = [];
|
|
146
|
+
for (const line of lines) {
|
|
147
|
+
try {
|
|
148
|
+
const inc = JSON.parse(line);
|
|
149
|
+
if (opts.sinceTs && Date.parse(inc.ts) < opts.sinceTs)
|
|
150
|
+
continue;
|
|
151
|
+
out.push(inc);
|
|
152
|
+
}
|
|
153
|
+
catch { /* */ }
|
|
154
|
+
}
|
|
155
|
+
out.reverse();
|
|
156
|
+
return typeof opts.limit === "number" ? out.slice(0, opts.limit) : out;
|
|
157
|
+
}
|
|
158
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/whistleblower/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whistleblower.test.d.ts","sourceRoot":"","sources":["../../src/whistleblower/whistleblower.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { mkdtempSync, rmSync } from "node:fs";
|
|
3
|
+
import { tmpdir } from "node:os";
|
|
4
|
+
import { join } from "node:path";
|
|
5
|
+
import { scanWhistle, scanWhistleAndRecord, readIncidents } from "./index.js";
|
|
6
|
+
function tmpRepo() { return mkdtempSync(join(tmpdir(), "mneme-whistle-")); }
|
|
7
|
+
describe("whistleblower · detectors", () => {
|
|
8
|
+
it("flags rm -rf / as block severity", () => {
|
|
9
|
+
const incidents = scanWhistle("just run rm -rf /tmp/stuff");
|
|
10
|
+
expect(incidents.some((i) => i.class === "dangerous_command" && i.severity === "block")).toBe(true);
|
|
11
|
+
});
|
|
12
|
+
it("flags AWS access keys", () => {
|
|
13
|
+
const incidents = scanWhistle("here is your key: AKIA1234567890ABCDEF for the bucket");
|
|
14
|
+
expect(incidents.some((i) => i.class === "secret_leak" && i.severity === "block")).toBe(true);
|
|
15
|
+
});
|
|
16
|
+
it("flags compliance evasion (bypass review)", () => {
|
|
17
|
+
const incidents = scanWhistle("just bypass the review and ship it");
|
|
18
|
+
expect(incidents.some((i) => i.class === "compliance_evasion")).toBe(true);
|
|
19
|
+
});
|
|
20
|
+
it("clean text returns empty incidents", () => {
|
|
21
|
+
expect(scanWhistle("hello, here is a normal answer about programming")).toEqual([]);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
describe("whistleblower · ledger", () => {
|
|
25
|
+
it("records incidents + verdict + HMAC chain", () => {
|
|
26
|
+
const r = tmpRepo();
|
|
27
|
+
try {
|
|
28
|
+
const result = scanWhistleAndRecord(r, "run rm -rf / then bypass the review");
|
|
29
|
+
expect(result.verdict).toBe("block");
|
|
30
|
+
expect(result.incidents.length).toBeGreaterThan(0);
|
|
31
|
+
expect(result.incidents.every((i) => typeof i.chainHash === "string")).toBe(true);
|
|
32
|
+
const back = readIncidents(r);
|
|
33
|
+
expect(back.length).toBeGreaterThanOrEqual(result.incidents.length);
|
|
34
|
+
}
|
|
35
|
+
finally {
|
|
36
|
+
rmSync(r, { recursive: true, force: true });
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=whistleblower.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whistleblower.test.js","sourceRoot":"","sources":["../../src/whistleblower/whistleblower.test.ts"],"names":[],"mappings":"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"}
|