@mneme-ai/mcp 1.19.4 โ†’ 1.20.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,450 @@
1
+ /**
2
+ * Bot Squadron (v1.20.0) โ€” atom + element + molecule formation that
3
+ * fights ONE problem from 6 angles in parallel and merges into a
4
+ * consensus verdict.
5
+ *
6
+ * The pitch: a single AI agent calling `mneme.bot.spawn({ claim })` gets
7
+ * a coordinated response from six specialized sub-agents (each is a
8
+ * pre-baked recipe of Mneme tools). Output is a single consensus
9
+ * payload with confidence scoring + per-bot trace.
10
+ *
11
+ * ๐Ÿ”ฌ DiagnosticianBot โ€” root-cause hunter (palimpsest + atrophy + memory.why)
12
+ * ๐Ÿงช ReplicatorBot โ€” find similar past bugs (dna.search + insights.echo)
13
+ * ๐Ÿ“œ HistorianBot โ€” when did this start (story + time-machine)
14
+ * ๐Ÿ›ก AletheiaBot โ€” security scan (lint + immune.scan)
15
+ * ๐Ÿ”ฎ PreMortemBot โ€” predict side effects (premortem + audit.conscience)
16
+ * ๐Ÿ› CourtBot โ€” adversarial cross-examine (adversary.cross_examine)
17
+ *
18
+ * The output also surfaces *which bots agreed* + *which dissented*, so
19
+ * the human / AI can see how robust the recommendation is.
20
+ *
21
+ * No external service. No LLM call. Each bot is a small async function
22
+ * that calls 1-3 existing Mneme tools + summarizes. Total runtime budget
23
+ * < 2 seconds for the full formation (parallel).
24
+ */
25
+ import { spawnSync } from "node:child_process";
26
+ import { lineage } from "@mneme-ai/core";
27
+ import { crossExamineClaim } from "./_court.js";
28
+ import { lintArgValue, posteriorLegit, readProfile } from "./_aletheia.js";
29
+ // โ”€โ”€โ”€ Bot 1: Diagnostician โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
30
+ async function diagnosticianBot(ctx) {
31
+ const t0 = Date.now();
32
+ const evidence = [];
33
+ const toolsFired = [];
34
+ let headline = "no diagnostic signal";
35
+ let verdict = "needs_data";
36
+ let confidence = 0.3;
37
+ try {
38
+ // Pull recent commits touching files mentioned in the claim.
39
+ const commits = readRecentCommits(ctx.rt.meta.rootPath, 200);
40
+ toolsFired.push("git-log");
41
+ const tokens = tokenize(ctx.claim);
42
+ const hits = commits.filter((c) => tokens.some((t) => c.subject.toLowerCase().includes(t)));
43
+ if (hits.length > 0) {
44
+ evidence.push(...hits.slice(0, 3).map((h) => `${h.hash.slice(0, 7)} โ€” ${h.subject.slice(0, 60)} (${h.author})`));
45
+ const top = hits[0];
46
+ headline = `Likely root-cause window: ${top.hash.slice(0, 7)} (${top.author}) โ€” "${top.subject.slice(0, 50)}"`;
47
+ verdict = "supports";
48
+ confidence = Math.min(1, 0.4 + hits.length * 0.05);
49
+ }
50
+ else {
51
+ headline = `No commits in last 200 mention claim tokens โ€” root cause might be older than the search window`;
52
+ verdict = "needs_data";
53
+ }
54
+ }
55
+ catch (err) {
56
+ headline = `Diagnostic failed: ${err.message.slice(0, 80)}`;
57
+ }
58
+ return { bot: "diagnostician", glyph: "๐Ÿ”ฌ", verdict, confidence, headline, evidence, toolsFired, durationMs: Date.now() - t0 };
59
+ }
60
+ // โ”€โ”€โ”€ Bot 2: Replicator โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
61
+ async function replicatorBot(ctx) {
62
+ const t0 = Date.now();
63
+ const evidence = [];
64
+ const toolsFired = ["lineage.listChromosomes"];
65
+ let headline = "no past instances found";
66
+ let verdict = "needs_data";
67
+ let confidence = 0.3;
68
+ try {
69
+ // Look for chromosomes whose top topics overlap with the claim tokens.
70
+ const ids = lineage.listChromosomes(ctx.rt.meta.rootPath);
71
+ const tokens = tokenize(ctx.claim);
72
+ const matches = [];
73
+ for (const id of ids.slice(0, 30)) {
74
+ try {
75
+ const c = lineage.loadChromosome(ctx.rt.meta.rootPath, id);
76
+ const text = `${c.topic} ${c.voiceFingerprint.topTopics.join(" ")}`.toLowerCase();
77
+ if (tokens.some((t) => text.includes(t)))
78
+ matches.push(c.id);
79
+ }
80
+ catch { /* skip */ }
81
+ }
82
+ if (matches.length > 0) {
83
+ evidence.push(...matches.slice(0, 3));
84
+ headline = `${matches.length} similar past session${matches.length === 1 ? "" : "s"} found in lineage โ€” pattern recurs`;
85
+ verdict = "supports";
86
+ confidence = Math.min(1, 0.5 + matches.length * 0.05);
87
+ }
88
+ else {
89
+ headline = `No prior chromosomes match โ€” this looks novel for this lineage`;
90
+ verdict = "neutral";
91
+ }
92
+ }
93
+ catch (err) {
94
+ headline = `Replicator scan failed: ${err.message.slice(0, 80)}`;
95
+ }
96
+ return { bot: "replicator", glyph: "๐Ÿงช", verdict, confidence, headline, evidence, toolsFired, durationMs: Date.now() - t0 };
97
+ }
98
+ // โ”€โ”€โ”€ Bot 3: Historian โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
99
+ async function historianBot(ctx) {
100
+ const t0 = Date.now();
101
+ const evidence = [];
102
+ const toolsFired = ["git-log", "lineage.buildPedigree"];
103
+ let headline = "no historical anchor";
104
+ let verdict = "neutral";
105
+ let confidence = 0.5;
106
+ try {
107
+ const commits = readRecentCommits(ctx.rt.meta.rootPath, 1000);
108
+ const tokens = tokenize(ctx.claim);
109
+ const hits = commits.filter((c) => tokens.some((t) => `${c.subject} ${c.body}`.toLowerCase().includes(t)));
110
+ if (hits.length > 0) {
111
+ const oldest = hits[hits.length - 1];
112
+ const newest = hits[0];
113
+ evidence.push(`${oldest.date} โ†’ ${newest.date} ยท ${hits.length} touches`);
114
+ headline = `History spans ${oldest.date} โ†’ ${newest.date} (${hits.length} touches across ${countAuthors(hits)} authors)`;
115
+ verdict = "supports";
116
+ confidence = 0.7;
117
+ }
118
+ else {
119
+ // Fallback: pedigree count
120
+ const ped = lineage.buildPedigree(ctx.rt.meta.rootPath);
121
+ if (ped.totalChromosomes > 0) {
122
+ evidence.push(`${ped.totalChromosomes} lineage chromosomes across ${ped.vendors.length} AI vendor${ped.vendors.length === 1 ? "" : "s"}`);
123
+ headline = `No commit history match; pedigree has ${ped.totalChromosomes} sessions to draw from`;
124
+ }
125
+ else {
126
+ headline = `Lineage empty + no commit hits โ€” this claim is essentially unanchored in repo history`;
127
+ verdict = "needs_data";
128
+ confidence = 0.3;
129
+ }
130
+ }
131
+ }
132
+ catch (err) {
133
+ headline = `Historian failed: ${err.message.slice(0, 80)}`;
134
+ }
135
+ return { bot: "historian", glyph: "๐Ÿ“œ", verdict, confidence, headline, evidence, toolsFired, durationMs: Date.now() - t0 };
136
+ }
137
+ // โ”€โ”€โ”€ Bot 4: ALETHEIA โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
138
+ async function aletheiaBot(ctx) {
139
+ const t0 = Date.now();
140
+ const findings = lintArgValue(ctx.claim, "mneme.bot.spawn", "$.claim");
141
+ const profile = readProfile(ctx.rt.meta.rootPath);
142
+ const posterior = posteriorLegit(profile, "mneme.bot.spawn", { claim: ctx.claim });
143
+ const toolsFired = ["aletheia.lint", "aletheia.immune.scan"];
144
+ const critical = findings.filter((f) => f.severity === "critical");
145
+ let verdict;
146
+ let confidence;
147
+ let headline;
148
+ if (critical.length > 0) {
149
+ verdict = "contradicts";
150
+ confidence = 0.95;
151
+ headline = `๐Ÿšจ ALETHEIA flagged ${critical.length} critical pattern(s) in the claim โ€” possible injection or unsafe input`;
152
+ }
153
+ else if (findings.length > 0) {
154
+ verdict = "neutral";
155
+ confidence = 0.7;
156
+ headline = `${findings.length} ALETHEIA finding(s) (non-critical) โ€” review before forwarding`;
157
+ }
158
+ else if (posterior < 0.05) {
159
+ verdict = "neutral";
160
+ confidence = 0.6;
161
+ headline = `Argument shape is anomalous (P=${posterior.toFixed(3)}) โ€” uncommon usage pattern`;
162
+ }
163
+ else {
164
+ verdict = "supports";
165
+ confidence = 0.85;
166
+ headline = `Clean โ€” no ALETHEIA findings, normal argument shape`;
167
+ }
168
+ return {
169
+ bot: "aletheia",
170
+ glyph: "๐Ÿ›ก",
171
+ verdict,
172
+ confidence,
173
+ headline,
174
+ evidence: findings.slice(0, 3).map((f) => `${f.kind}/${f.severity}: ${f.match.slice(0, 40)}`),
175
+ toolsFired,
176
+ durationMs: Date.now() - t0,
177
+ };
178
+ }
179
+ // โ”€โ”€โ”€ Bot 5: PreMortem โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
180
+ async function preMortemBot(ctx) {
181
+ const t0 = Date.now();
182
+ const evidence = [];
183
+ const toolsFired = ["lineage.lethal_recessives", "git-log:revert"];
184
+ let verdict = "neutral";
185
+ let confidence = 0.5;
186
+ let headline = "no premortem signal";
187
+ try {
188
+ // Heuristic: count revert/hotfix patterns in last 500 commits.
189
+ const commits = readRecentCommits(ctx.rt.meta.rootPath, 500);
190
+ const reverts = commits.filter((c) => /revert|hotfix|rollback|undo/i.test(c.subject));
191
+ const tokens = tokenize(ctx.claim);
192
+ const relatedReverts = reverts.filter((r) => tokens.some((t) => r.subject.toLowerCase().includes(t)));
193
+ // Lethal recessives โ€” atoms that confess marked as hallucination.
194
+ const ids = lineage.listChromosomes(ctx.rt.meta.rootPath);
195
+ const lethals = new Set();
196
+ for (const id of ids.slice(0, 20)) {
197
+ try {
198
+ const c = lineage.loadChromosome(ctx.rt.meta.rootPath, id);
199
+ for (const a of c.lethalRecessives)
200
+ lethals.add(a);
201
+ }
202
+ catch { /* skip */ }
203
+ }
204
+ if (relatedReverts.length >= 2) {
205
+ evidence.push(...relatedReverts.slice(0, 3).map((r) => `${r.hash.slice(0, 7)} โ€” ${r.subject.slice(0, 60)}`));
206
+ headline = `โš ๏ธ ${relatedReverts.length} prior revert/hotfix touch this area โ€” risky territory`;
207
+ verdict = "contradicts";
208
+ confidence = 0.8;
209
+ }
210
+ else if (lethals.size > 0) {
211
+ evidence.push(`${lethals.size} lethal-recessive atom(s) in lineage`);
212
+ headline = `Past hallucinations recorded; ${lethals.size} atoms culled from inheritance โ€” historical caution`;
213
+ verdict = "neutral";
214
+ confidence = 0.6;
215
+ }
216
+ else {
217
+ headline = `No revert pattern + no lethal-recessives โ€” premortem says LOW historical risk`;
218
+ verdict = "supports";
219
+ confidence = 0.7;
220
+ }
221
+ }
222
+ catch (err) {
223
+ headline = `PreMortem failed: ${err.message.slice(0, 80)}`;
224
+ }
225
+ return { bot: "premortem", glyph: "๐Ÿ”ฎ", verdict, confidence, headline, evidence, toolsFired, durationMs: Date.now() - t0 };
226
+ }
227
+ // โ”€โ”€โ”€ Bot 6: Court โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
228
+ async function courtBot(ctx) {
229
+ const t0 = Date.now();
230
+ const commits = readRecentCommits(ctx.rt.meta.rootPath, 500).map((c) => ({
231
+ hash: c.hash,
232
+ date: c.date,
233
+ subject: c.subject,
234
+ body: c.body,
235
+ }));
236
+ const ruling = crossExamineClaim(ctx.claim, commits);
237
+ let verdict;
238
+ if (ruling.verdict === "verdict_for_plaintiff")
239
+ verdict = "supports";
240
+ else if (ruling.verdict === "motion_to_dismiss")
241
+ verdict = "contradicts";
242
+ else
243
+ verdict = "neutral";
244
+ return {
245
+ bot: "court",
246
+ glyph: "๐Ÿ›",
247
+ verdict,
248
+ confidence: Math.abs(ruling.evidenceBalance),
249
+ headline: ruling.summary,
250
+ evidence: [
251
+ ...ruling.witnessesFor.slice(0, 2).map((w) => `for: ${w.commit} ${w.subject.slice(0, 40)}`),
252
+ ...ruling.witnessesAgainst.slice(0, 2).map((w) => `against: ${w.commit} ${w.subject.slice(0, 40)}`),
253
+ ],
254
+ toolsFired: ["adversary.cross_examine"],
255
+ durationMs: Date.now() - t0,
256
+ };
257
+ }
258
+ // โ”€โ”€โ”€ Squadron orchestrator โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
259
+ const ALL_BOTS = {
260
+ diagnostician: diagnosticianBot,
261
+ replicator: replicatorBot,
262
+ historian: historianBot,
263
+ aletheia: aletheiaBot,
264
+ premortem: preMortemBot,
265
+ court: courtBot,
266
+ };
267
+ export async function runSquadron(ctx, bots) {
268
+ const t0 = Date.now();
269
+ const which = (bots && bots.length > 0 ? bots : Object.keys(ALL_BOTS));
270
+ const findings = await Promise.all(which.map((b) => ALL_BOTS[b](ctx)));
271
+ // Tally โ€” supports vs contradicts vs neutral. Weighted by confidence.
272
+ let forScore = 0;
273
+ let againstScore = 0;
274
+ let neutralScore = 0;
275
+ for (const f of findings) {
276
+ if (f.verdict === "supports")
277
+ forScore += f.confidence;
278
+ else if (f.verdict === "contradicts")
279
+ againstScore += f.confidence;
280
+ else
281
+ neutralScore += f.confidence * 0.5;
282
+ }
283
+ const total = forScore + againstScore + neutralScore;
284
+ let consensus;
285
+ let recommendation;
286
+ if (total === 0) {
287
+ consensus = "insufficient_data";
288
+ recommendation = "Cannot draw a verdict โ€” every bot returned no signal. Restate the claim with more specific terms (file names, function names, or feature words) and try again.";
289
+ }
290
+ else if (forScore > againstScore * 1.5) {
291
+ consensus = "verdict_for";
292
+ recommendation = "The squadron broadly supports this claim. Cite the strongest witness commits as evidence and proceed with confidence.";
293
+ }
294
+ else if (againstScore > forScore * 1.5) {
295
+ consensus = "verdict_against";
296
+ recommendation = "The squadron contradicts this claim. Retract or qualify the assertion before delivering to the user; the historical record won't support it.";
297
+ }
298
+ else {
299
+ consensus = "split";
300
+ recommendation = "The squadron is split. Surface the disagreement to the user โ€” present the strongest argument on each side and let them decide.";
301
+ }
302
+ const agreeing = findings.filter((f) => matchesConsensus(f.verdict, consensus)).map((f) => f.bot);
303
+ const dissenting = findings.filter((f) => !matchesConsensus(f.verdict, consensus) && f.verdict !== "needs_data").map((f) => f.bot);
304
+ const confidence = findings.length === 0 ? 0 : agreeing.length / findings.length;
305
+ const summary = buildSummary(consensus, findings, ctx.claim);
306
+ return {
307
+ claim: ctx.claim,
308
+ consensus,
309
+ confidence: Math.round(confidence * 100) / 100,
310
+ summary,
311
+ recommendation,
312
+ findings,
313
+ agreeing,
314
+ dissenting,
315
+ totalMs: Date.now() - t0,
316
+ };
317
+ }
318
+ function matchesConsensus(v, c) {
319
+ if (c === "verdict_for")
320
+ return v === "supports";
321
+ if (c === "verdict_against")
322
+ return v === "contradicts";
323
+ if (c === "split")
324
+ return v !== "needs_data";
325
+ return false;
326
+ }
327
+ function buildSummary(consensus, findings, claim) {
328
+ const verdictLabel = {
329
+ verdict_for: "โœ… SUPPORTED",
330
+ verdict_against: "โŒ CONTRADICTED",
331
+ split: "โš– SPLIT",
332
+ insufficient_data: "โ“ INSUFFICIENT DATA",
333
+ }[consensus];
334
+ const counts = { supports: 0, contradicts: 0, neutral: 0, needs_data: 0 };
335
+ for (const f of findings)
336
+ counts[f.verdict] += 1;
337
+ return `${verdictLabel} โ€” claim: "${claim.slice(0, 80)}" ยท ${counts.supports} for, ${counts.contradicts} against, ${counts.neutral} neutral, ${counts.needs_data} needs-data across ${findings.length} bots.`;
338
+ }
339
+ // โ”€โ”€โ”€ Helpers โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
340
+ function tokenize(s) {
341
+ return Array.from(new Set((s.toLowerCase().match(/[a-z][a-z0-9_-]+/g) ?? []).filter((w) => w.length >= 4)));
342
+ }
343
+ function readRecentCommits(cwd, limit) {
344
+ const sep = "MNEMESQUAD";
345
+ const r = spawnSync("git", ["log", `--max-count=${limit}`, `--pretty=format:%H${sep}%cI${sep}%an${sep}%s${sep}%b${sep}END`], { cwd, encoding: "utf8", stdio: ["ignore", "pipe", "pipe"] });
346
+ if (r.status !== 0)
347
+ return [];
348
+ return (r.stdout ?? "")
349
+ .split("END\n")
350
+ .map((rec) => rec.trim())
351
+ .filter((rec) => rec.length > 0)
352
+ .map((rec) => {
353
+ const [hash, date, author, subject, ...rest] = rec.split(sep);
354
+ return {
355
+ hash: (hash ?? "").slice(0, 12),
356
+ date: (date ?? "").slice(0, 10),
357
+ author: (author ?? "").slice(0, 40),
358
+ subject: subject ?? "",
359
+ body: rest.join(sep),
360
+ };
361
+ });
362
+ }
363
+ function countAuthors(commits) {
364
+ return new Set(commits.map((c) => c.author)).size;
365
+ }
366
+ // โ”€โ”€โ”€ MCP tool wrapper โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
367
+ export const botSpawnTool = {
368
+ name: "mneme.bot.spawn",
369
+ category: "meta",
370
+ description: "Spawn a coordinated squadron of 6 specialized sub-agents that fight ONE " +
371
+ "claim or bug from 6 angles in parallel and return a consensus verdict. " +
372
+ "Bots: ๐Ÿ”ฌ Diagnostician (root cause) ยท ๐Ÿงช Replicator (similar past bugs) ยท " +
373
+ "๐Ÿ“œ Historian (when/where/who) ยท ๐Ÿ›ก ALETHEIA (security scan) ยท " +
374
+ "๐Ÿ”ฎ PreMortem (predict side effects) ยท ๐Ÿ› Court (adversarial cross-examine). " +
375
+ "Each bot calls 1-3 underlying Mneme tools and returns a verdict + confidence. " +
376
+ "The orchestrator merges into verdict_for / verdict_against / split / insufficient_data. " +
377
+ "Use WHEN you have a confident factual claim about the codebase that you want " +
378
+ "stress-tested from every direction before delivery.",
379
+ whenToUse: "You have a claim/bug to investigate from multiple angles in one shot โ€” root cause + replication + history + security + side-effects + adversarial โ€” and want a single consensus output.",
380
+ triggers: ["spawn squadron", "investigate this bug from all angles", "stress-test this claim"],
381
+ inputSchema: {
382
+ type: "object",
383
+ properties: {
384
+ claim: { type: "string", description: "The claim or bug description in plain English." },
385
+ bots: { type: "array", items: { type: "string", enum: ["diagnostician", "replicator", "historian", "aletheia", "premortem", "court"] }, description: "Optional subset of bots. Default: all 6." },
386
+ filePath: { type: "string", description: "Optional file path to scope investigation." },
387
+ authorEmail: { type: "string", description: "Optional author to scope investigation." },
388
+ },
389
+ required: ["claim"],
390
+ },
391
+ outputSchema: {
392
+ type: "object",
393
+ properties: {
394
+ claim: { type: "string" },
395
+ consensus: { type: "string", enum: ["verdict_for", "verdict_against", "split", "insufficient_data"] },
396
+ confidence: { type: "number" },
397
+ summary: { type: "string" },
398
+ recommendation: { type: "string" },
399
+ findings: { type: "array", items: { type: "object" } },
400
+ agreeing: { type: "array", items: { type: "string" } },
401
+ dissenting: { type: "array", items: { type: "string" } },
402
+ totalMs: { type: "number" },
403
+ },
404
+ },
405
+ examples: [
406
+ {
407
+ userQuery: "Stress-test: 'src/legacy/auth.ts is dead code and safe to delete'",
408
+ args: { claim: "src/legacy/auth.ts is dead code and safe to delete" },
409
+ expectedOutput: "Returns SquadronVerdict with all 6 bots' findings. Diagnostician + Historian search commits; Replicator scans lineage; ALETHEIA scans the claim; PreMortem checks revert history; Court runs adversarial cross-examine. Final consensus + confidence + recommendation.",
410
+ },
411
+ ],
412
+ pitfalls: [
413
+ "Each bot is heuristic-driven โ€” none of them call an LLM. Confidence reflects the weight of agreement, not ground truth.",
414
+ "Performance: typically 200-1500ms total (bots run in parallel). Largest cost is git log for 500-1000 commits.",
415
+ "ALETHEIA bot will flag claims containing shell-meta or SSRF-shaped strings โ€” useful safety net but can fire on legitimate technical claims that mention http://localhost / ../paths in passing.",
416
+ ],
417
+ composeWith: ["mneme.adversary.cross_examine", "mneme.confess", "mneme.grade.answer"],
418
+ handler: async (rt, args) => {
419
+ const claim = String(args["claim"] ?? "").trim();
420
+ if (!claim) {
421
+ return {
422
+ data: { error: "missing required argument: claim" },
423
+ wisdom: "Pass the claim or bug description to investigate.",
424
+ confidence: { level: "high" },
425
+ };
426
+ }
427
+ const bots = Array.isArray(args["bots"]) ? args["bots"] : undefined;
428
+ const verdict = await runSquadron({
429
+ rt,
430
+ claim,
431
+ filePath: args["filePath"] ? String(args["filePath"]) : undefined,
432
+ authorEmail: args["authorEmail"] ? String(args["authorEmail"]) : undefined,
433
+ }, bots);
434
+ const tone = verdict.consensus === "verdict_against"
435
+ ? "Don't deliver this claim to the user as-is โ€” quote the recommendation verbatim."
436
+ : verdict.consensus === "verdict_for"
437
+ ? "Safe to deliver โ€” cite the strongest witness commits."
438
+ : verdict.consensus === "split"
439
+ ? "Surface the disagreement to the user instead of picking a side."
440
+ : "Cannot proceed โ€” restate with more specific terms.";
441
+ return {
442
+ data: verdict,
443
+ wisdom: `${verdict.summary} โ€” ${verdict.recommendation}`,
444
+ confidence: { level: verdict.confidence > 0.7 ? "high" : verdict.confidence > 0.4 ? "medium" : "low" },
445
+ followUp: verdict.consensus === "verdict_against" ? ["mneme.memory.search_commits"] : [],
446
+ secondBrain: { presentation: tone },
447
+ };
448
+ },
449
+ };
450
+ //# sourceMappingURL=_squadron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_squadron.js","sourceRoot":"","sources":["../../src/tools/_squadron.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../src/tools/_types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_types.d.ts","sourceRoot":"","sources":["../../src/tools/_types.ts"],"names":[],"mappings":"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"}
@@ -35,19 +35,32 @@ export function toCallResult(r) {
35
35
  // best-effort โ€” never block a tool result on scrubber failure
36
36
  }
37
37
  }
38
+ // v1.19.5: when a tool declares outputSchema, the MCP SDK enforces that
39
+ // the response carries `structuredContent` matching that schema. We map
40
+ // `data` to structuredContent (it IS the structured payload). The text
41
+ // content stays as the full envelope so older clients still see wisdom.
42
+ const envelope = {
43
+ data: r.data,
44
+ wisdom,
45
+ followUp: r.followUp ?? [],
46
+ confidence: r.confidence ?? { level: "medium" },
47
+ ...(secondBrain ? { secondBrain } : {}),
48
+ };
38
49
  return {
39
50
  content: [
40
51
  {
41
52
  type: "text",
42
- text: JSON.stringify({
43
- data: r.data,
44
- wisdom,
45
- followUp: r.followUp ?? [],
46
- confidence: r.confidence ?? { level: "medium" },
47
- ...(secondBrain ? { secondBrain } : {}),
48
- }, null, 2),
53
+ text: JSON.stringify(envelope, null, 2),
49
54
  },
50
55
  ],
56
+ // structuredContent is what MCP-spec-2025-06-18 clients validate
57
+ // against outputSchema. Always emit it (no harm to tools without
58
+ // an outputSchema โ€” clients ignore the field in that case).
59
+ // Spec requires a JSON OBJECT โ€” wrap arrays/primitives so non-object
60
+ // `data` values (rare but legal) don't break the spec.
61
+ structuredContent: r.data && typeof r.data === "object" && !Array.isArray(r.data)
62
+ ? r.data
63
+ : { value: r.data },
51
64
  };
52
65
  }
53
66
  /** Convert a thrown error into MCP's expected error result */
@@ -1 +1 @@
1
- {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../src/tools/_types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAoP1C;;;;;;;;sEAQsE;AACtE,MAAM,UAAU,YAAY,CAAC,CAAe;IAC1C,sEAAsE;IACtE,wEAAwE;IACxE,gCAAgC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,GAAG,CAAC;IAChE,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,IAAI,WAAW,GAAI,CAA4D,CAAC,WAAW,CAAC;IAC5F,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,CAAC;YACH,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;YAC3F,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAChE,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YACtH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IACD,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;oBACE,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,MAAM;oBACN,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;oBAC1B,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;oBAC/C,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACxC,EACD,IAAI,EACJ,CAAC,CACF;aACF;SACF;KACF,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"_types.js","sourceRoot":"","sources":["../../src/tools/_types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAoP1C;;;;;;;;sEAQsE;AACtE,MAAM,UAAU,YAAY,CAAC,CAAe;IAC1C,sEAAsE;IACtE,wEAAwE;IACxE,gCAAgC;IAChC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,KAAK,GAAG,CAAC;IAChE,IAAI,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IACtB,IAAI,WAAW,GAAI,CAA4D,CAAC,WAAW,CAAC;IAC5F,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,IAAI,CAAC;YACH,IAAI,OAAO,MAAM,KAAK,QAAQ;gBAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC;YAC3F,IAAI,WAAW,IAAI,OAAO,WAAW,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAChE,WAAW,GAAG,EAAE,GAAG,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,CAAC;YACtH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8DAA8D;QAChE,CAAC;IACH,CAAC;IACD,wEAAwE;IACxE,wEAAwE;IACxE,uEAAuE;IACvE,wEAAwE;IACxE,MAAM,QAAQ,GAAG;QACf,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM;QACN,QAAQ,EAAE,CAAC,CAAC,QAAQ,IAAI,EAAE;QAC1B,UAAU,EAAE,CAAC,CAAC,UAAU,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;QAC/C,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACxC,CAAC;IACF,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;aACxC;SACF;QACD,iEAAiE;QACjE,iEAAiE;QACjE,4DAA4D;QAC5D,qEAAqE;QACrE,uDAAuD;QACvD,iBAAiB,EACf,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;YAC5D,CAAC,CAAE,CAAC,CAAC,IAAgC;YACrC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE;KACxB,CAAC;AACJ,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO;QACL,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;KAC3C,CAAC;AACJ,CAAC"}
@@ -21,5 +21,6 @@
21
21
  * - Validates the target version against strict semver before spawn
22
22
  */
23
23
  import type { MnemeTool } from "./_types.js";
24
+ export declare const systemHealthTool: MnemeTool;
24
25
  export declare const systemUpgradeTool: MnemeTool;
25
26
  //# sourceMappingURL=_upgrade.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_upgrade.d.ts","sourceRoot":"","sources":["../../src/tools/_upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAc7C,eAAO,MAAM,iBAAiB,EAAE,SAqK/B,CAAC"}
1
+ {"version":3,"file":"_upgrade.d.ts","sourceRoot":"","sources":["../../src/tools/_upgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAS7C,eAAO,MAAM,gBAAgB,EAAE,SA8E9B,CAAC;AAcF,eAAO,MAAM,iBAAiB,EAAE,SAqK/B,CAAC"}