@mneme-ai/core 2.23.2 → 2.25.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.
Files changed (61) hide show
  1. package/dist/codegraph/builder.d.ts +27 -0
  2. package/dist/codegraph/builder.d.ts.map +1 -0
  3. package/dist/codegraph/builder.js +309 -0
  4. package/dist/codegraph/builder.js.map +1 -0
  5. package/dist/codegraph/codegraph.test.d.ts +2 -0
  6. package/dist/codegraph/codegraph.test.d.ts.map +1 -0
  7. package/dist/codegraph/codegraph.test.js +179 -0
  8. package/dist/codegraph/codegraph.test.js.map +1 -0
  9. package/dist/codegraph/drift.d.ts +27 -0
  10. package/dist/codegraph/drift.d.ts.map +1 -0
  11. package/dist/codegraph/drift.js +126 -0
  12. package/dist/codegraph/drift.js.map +1 -0
  13. package/dist/codegraph/index.d.ts +10 -0
  14. package/dist/codegraph/index.d.ts.map +1 -0
  15. package/dist/codegraph/index.js +10 -0
  16. package/dist/codegraph/index.js.map +1 -0
  17. package/dist/codegraph/merkle.d.ts +40 -0
  18. package/dist/codegraph/merkle.d.ts.map +1 -0
  19. package/dist/codegraph/merkle.js +68 -0
  20. package/dist/codegraph/merkle.js.map +1 -0
  21. package/dist/codegraph/query.d.ts +14 -0
  22. package/dist/codegraph/query.d.ts.map +1 -0
  23. package/dist/codegraph/query.js +56 -0
  24. package/dist/codegraph/query.js.map +1 -0
  25. package/dist/codegraph/store.d.ts +37 -0
  26. package/dist/codegraph/store.d.ts.map +1 -0
  27. package/dist/codegraph/store.js +133 -0
  28. package/dist/codegraph/store.js.map +1 -0
  29. package/dist/codegraph/types.d.ts +140 -0
  30. package/dist/codegraph/types.d.ts.map +1 -0
  31. package/dist/codegraph/types.js +39 -0
  32. package/dist/codegraph/types.js.map +1 -0
  33. package/dist/index.d.ts +2 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +17 -0
  36. package/dist/index.js.map +1 -1
  37. package/dist/mcp_fuzzer/engine.d.ts +48 -0
  38. package/dist/mcp_fuzzer/engine.d.ts.map +1 -0
  39. package/dist/mcp_fuzzer/engine.js +376 -0
  40. package/dist/mcp_fuzzer/engine.js.map +1 -0
  41. package/dist/mcp_fuzzer/index.d.ts +9 -0
  42. package/dist/mcp_fuzzer/index.d.ts.map +1 -0
  43. package/dist/mcp_fuzzer/index.js +8 -0
  44. package/dist/mcp_fuzzer/index.js.map +1 -0
  45. package/dist/mcp_fuzzer/mcp_fuzzer.test.d.ts +2 -0
  46. package/dist/mcp_fuzzer/mcp_fuzzer.test.d.ts.map +1 -0
  47. package/dist/mcp_fuzzer/mcp_fuzzer.test.js +128 -0
  48. package/dist/mcp_fuzzer/mcp_fuzzer.test.js.map +1 -0
  49. package/dist/mcp_fuzzer/storage.d.ts +27 -0
  50. package/dist/mcp_fuzzer/storage.d.ts.map +1 -0
  51. package/dist/mcp_fuzzer/storage.js +65 -0
  52. package/dist/mcp_fuzzer/storage.js.map +1 -0
  53. package/dist/mcp_fuzzer/types.d.ts +147 -0
  54. package/dist/mcp_fuzzer/types.d.ts.map +1 -0
  55. package/dist/mcp_fuzzer/types.js +15 -0
  56. package/dist/mcp_fuzzer/types.js.map +1 -0
  57. package/dist/mcp_fuzzer/vectors.d.ts +25 -0
  58. package/dist/mcp_fuzzer/vectors.d.ts.map +1 -0
  59. package/dist/mcp_fuzzer/vectors.js +1072 -0
  60. package/dist/mcp_fuzzer/vectors.js.map +1 -0
  61. package/package.json +1 -1
@@ -0,0 +1,65 @@
1
+ /**
2
+ * v2.24.0 — Persist HMAC-chained MCP fuzz report cards.
3
+ *
4
+ * Cards land at `.mneme/mcp_fuzzer/<seq>-<utc>.json` AND get appended to
5
+ * an append-only ledger `.mneme/mcp_fuzzer/ledger.jsonl` (one line per
6
+ * card with hmac + bodyDigest only — fast skim).
7
+ */
8
+ import { mkdirSync, writeFileSync, readFileSync, readdirSync, existsSync, appendFileSync } from "node:fs";
9
+ import { join } from "node:path";
10
+ function dirOf(repoRoot) {
11
+ return join(repoRoot, ".mneme", "mcp_fuzzer");
12
+ }
13
+ export function storeReport(repoRoot, card) {
14
+ const dir = dirOf(repoRoot);
15
+ if (!existsSync(dir))
16
+ mkdirSync(dir, { recursive: true });
17
+ const stamp = card.finishedAt.replace(/[:.]/g, "-");
18
+ const path = join(dir, `${String(card.seq).padStart(10, "0")}-${stamp}.json`);
19
+ writeFileSync(path, JSON.stringify(card, null, 2) + "\n");
20
+ const ledger = join(dir, "ledger.jsonl");
21
+ const skim = {
22
+ seq: card.seq,
23
+ finishedAt: card.finishedAt,
24
+ pass: card.summary.pass,
25
+ fail: card.summary.fail,
26
+ warn: card.summary.warn,
27
+ trafficLight: card.wisdom.trafficLight,
28
+ headline: card.wisdom.headline,
29
+ hmac: card.hmac,
30
+ bodyDigest: card.bodyDigest,
31
+ file: path,
32
+ };
33
+ appendFileSync(ledger, JSON.stringify(skim) + "\n");
34
+ return { path, ledger };
35
+ }
36
+ export function readLatestReport(repoRoot) {
37
+ const dir = dirOf(repoRoot);
38
+ if (!existsSync(dir))
39
+ return null;
40
+ const files = readdirSync(dir).filter((n) => n.endsWith(".json")).sort();
41
+ if (files.length === 0)
42
+ return null;
43
+ const last = files[files.length - 1];
44
+ try {
45
+ return JSON.parse(readFileSync(join(dir, last), "utf8"));
46
+ }
47
+ catch {
48
+ return null;
49
+ }
50
+ }
51
+ export function listReports(repoRoot, limit = 30) {
52
+ const ledger = join(dirOf(repoRoot), "ledger.jsonl");
53
+ if (!existsSync(ledger))
54
+ return [];
55
+ const lines = readFileSync(ledger, "utf8").split("\n").filter(Boolean);
56
+ const out = [];
57
+ for (const l of lines.slice(-limit)) {
58
+ try {
59
+ out.push(JSON.parse(l));
60
+ }
61
+ catch { /* skip */ }
62
+ }
63
+ return out;
64
+ }
65
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../src/mcp_fuzzer/storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * v2.24.0 — MCP fuzzer type contract.
3
+ *
4
+ * The world-class MCP fuzzer ships as a deterministic, vendor-agnostic
5
+ * engine that fires 108 attack vectors at a target MCP server and emits
6
+ * a tamper-evident HMAC-chained report card. Designed so external tools
7
+ * (mcp-scan, MCPSecBench, MCPTox) can be subsumed as importable vector
8
+ * packs.
9
+ *
10
+ * The Intelligent Second Brain interprets each verdict + correlates with
11
+ * known CVEs (CVE-2025-54136 MCPoison etc) and proposes mutations for
12
+ * the next 24/7 run.
13
+ */
14
+ export type Severity = "info" | "low" | "medium" | "high" | "critical";
15
+ export type Category = "handshake" | "schema" | "method" | "tool" | "resource" | "prompt" | "policy" | "concurrency" | "transport";
16
+ export type Verdict = "pass" | "fail" | "warn" | "inconclusive";
17
+ /** A single fuzz attack vector — pure data; the engine drives the JSON-RPC. */
18
+ export interface AttackVector {
19
+ /** Stable id, used as report-card key + replay seed (vec-001 .. vec-108). */
20
+ id: string;
21
+ /** Short title (≤ 60 chars). */
22
+ title: string;
23
+ /** What the spec says SHOULD happen — citable in the report. */
24
+ spec: string;
25
+ category: Category;
26
+ severity: Severity;
27
+ /** CVE / public-incident references that this vector hardens against. */
28
+ cve?: string[];
29
+ /** JSON-RPC frame(s) to send. Use `__id` placeholders the engine fills. */
30
+ payload: PayloadStep[];
31
+ /** Per-vector timeout (ms). Defaults to 5000. */
32
+ timeoutMs?: number;
33
+ /** Detector: receives the responses for this vector + verdicts pass/fail. */
34
+ detector: Detector;
35
+ }
36
+ export interface PayloadStep {
37
+ /** Either a JSON-RPC object, or a raw frame string the engine sends verbatim. */
38
+ send: object | string;
39
+ /** If true, no response expected (notification). */
40
+ noResponse?: boolean;
41
+ /** Per-step timeout (ms). Defaults to vector timeoutMs. */
42
+ timeoutMs?: number;
43
+ }
44
+ export interface DetectorResult {
45
+ verdict: Verdict;
46
+ /** Human-readable single-line summary (≤ 200 chars). */
47
+ reason: string;
48
+ /** Optional structured detail surfaced in the report. */
49
+ detail?: Record<string, unknown>;
50
+ }
51
+ export type Detector = (responses: Array<JsonRpcReply | null>) => DetectorResult;
52
+ export interface JsonRpcReply {
53
+ jsonrpc?: string;
54
+ id?: number | string | null;
55
+ result?: unknown;
56
+ error?: {
57
+ code: number;
58
+ message: string;
59
+ data?: unknown;
60
+ };
61
+ method?: string;
62
+ params?: unknown;
63
+ }
64
+ export interface VectorRunResult {
65
+ vectorId: string;
66
+ category: Category;
67
+ severity: Severity;
68
+ verdict: Verdict;
69
+ reason: string;
70
+ detail?: Record<string, unknown>;
71
+ dtMs: number;
72
+ /** Compact dump of responses for replay / debugging. */
73
+ responses: Array<JsonRpcReply | null>;
74
+ }
75
+ export interface ReportCard {
76
+ spec: {
77
+ name: "MCP-FUZZER";
78
+ version: string;
79
+ };
80
+ target: string;
81
+ startedAt: string;
82
+ finishedAt: string;
83
+ totalMs: number;
84
+ /** Per-vector outcomes. */
85
+ results: VectorRunResult[];
86
+ /** Aggregate stats. */
87
+ summary: {
88
+ total: number;
89
+ pass: number;
90
+ warn: number;
91
+ fail: number;
92
+ inconclusive: number;
93
+ bySeverity: Record<Severity, {
94
+ pass: number;
95
+ fail: number;
96
+ }>;
97
+ byCategory: Record<Category, {
98
+ pass: number;
99
+ fail: number;
100
+ }>;
101
+ };
102
+ /** Intelligent Second Brain commentary. */
103
+ wisdom: WisdomVerdict;
104
+ /** HMAC-chain root over the canonical report. */
105
+ hmac: string;
106
+ /** Sequence number in the local fuzzer chain. */
107
+ seq: number;
108
+ /** SHA-256 of the canonical body (without hmac field). */
109
+ bodyDigest: string;
110
+ }
111
+ export interface WisdomVerdict {
112
+ /** Single-line headline (≤ 100 chars). */
113
+ headline: string;
114
+ /** Traffic light. */
115
+ trafficLight: "green" | "yellow" | "red" | "black";
116
+ /** Top failing vectors mapped to remediation steps. */
117
+ remediations: Array<{
118
+ vectorId: string;
119
+ cve?: string[];
120
+ action: string;
121
+ }>;
122
+ /** Cross-vendor correlation: which CVE patterns this scan would have caught. */
123
+ cvePosture: Array<{
124
+ cve: string;
125
+ mitigated: boolean;
126
+ via: string;
127
+ }>;
128
+ /** Suggested mutations the daemon should try on the next run. */
129
+ mutationsForNextRun: Array<{
130
+ vectorId: string;
131
+ variant: string;
132
+ rationale: string;
133
+ }>;
134
+ }
135
+ export interface RunOptions {
136
+ /** Vector ids or category names to include. Empty = all 108. */
137
+ filter?: string[];
138
+ /** Override per-vector timeout. */
139
+ timeoutMs?: number;
140
+ /** Random seed for mutation engine. Defaults to current ms. */
141
+ seed?: number;
142
+ /** Stop after first failure (CI quick gate). */
143
+ failFast?: boolean;
144
+ /** Number of variants the mutation engine spins per failing vector. */
145
+ mutateCount?: number;
146
+ }
147
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp_fuzzer/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * v2.24.0 — MCP fuzzer type contract.
3
+ *
4
+ * The world-class MCP fuzzer ships as a deterministic, vendor-agnostic
5
+ * engine that fires 108 attack vectors at a target MCP server and emits
6
+ * a tamper-evident HMAC-chained report card. Designed so external tools
7
+ * (mcp-scan, MCPSecBench, MCPTox) can be subsumed as importable vector
8
+ * packs.
9
+ *
10
+ * The Intelligent Second Brain interprets each verdict + correlates with
11
+ * known CVEs (CVE-2025-54136 MCPoison etc) and proposes mutations for
12
+ * the next 24/7 run.
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mcp_fuzzer/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * v2.24.0 — 108 MCP attack vectors organized by category × severity.
3
+ *
4
+ * handshake (12) Protocol initialize / protocolVersion / capabilities
5
+ * schema (12) JSON Schema attacks (depth / unicode / proto / required)
6
+ * method (12) Unknown method / id type / batching / jsonrpc version
7
+ * tool (12) tool-name confusion / case / unicode / aliases
8
+ * resource (12) uri injection / path traversal / read non-existent
9
+ * prompt (12) prompts/get / argument injection / missing fields
10
+ * policy (12) honeypot / DLP-flag / consent / banner-parity
11
+ * concurrency(12) parallel init / id collision / racing tools/list
12
+ * transport (12) malformed frames / chunking / very long line
13
+ *
14
+ * Total 108. Each vector ships a deterministic payload + detector.
15
+ *
16
+ * Coverage envelope (from research brief):
17
+ * - subsumes mcp-scan + mcp-server-fuzzer surface
18
+ * - tests under-covered classes (deep nesting / proto-pollution / batched id
19
+ * collision / handshake timing / git-absence) that the existing tools miss
20
+ * - maps to CVE-2025-54136 / -54135 / -53818 / -6515 / -49596 + Postmark BCC
21
+ */
22
+ import type { AttackVector } from "./types.js";
23
+ export declare const VECTORS_108: AttackVector[];
24
+ export declare const VECTOR_COUNT: number;
25
+ //# sourceMappingURL=vectors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vectors.d.ts","sourceRoot":"","sources":["../../src/mcp_fuzzer/vectors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAA0B,MAAM,YAAY,CAAC;AA8iCvE,eAAO,MAAM,WAAW,EAAE,YAAY,EAErC,CAAC;AAEF,eAAO,MAAM,YAAY,QAAqB,CAAC"}