mneme-ai 2.140.0 → 2.141.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/dist/commands/haunt.d.ts +16 -0
- package/dist/commands/haunt.d.ts.map +1 -0
- package/dist/commands/haunt.js +128 -0
- package/dist/commands/haunt.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mneme haunt <file>` (v2.141.0) — "Code Haunting" / Git Telepathy. Surface the
|
|
3
|
+
* ghost of the commit that last touched a region: who changed it, when, the
|
|
4
|
+
* intent they recorded ("temporary fix" / "แก้ขัดไปก่อน"), the safeguards it
|
|
5
|
+
* lacks for the symptom you gave, and the team knowledge already shared about it.
|
|
6
|
+
*
|
|
7
|
+
* mneme haunt src/payment.ts --line 40-92 --symptom "slow under traffic peak"
|
|
8
|
+
* mneme haunt src/auth.ts # whole-file haunting
|
|
9
|
+
* mneme haunt src/payment.ts --json
|
|
10
|
+
*
|
|
11
|
+
* HONEST: surfaces + correlates REAL git facts + recorded intent — a candidate to
|
|
12
|
+
* look at, never a proven cause; UNKNOWN when there is no history.
|
|
13
|
+
*/
|
|
14
|
+
import type { Command } from "commander";
|
|
15
|
+
export declare function registerHauntCommands(program: Command): void;
|
|
16
|
+
//# sourceMappingURL=haunt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"haunt.d.ts","sourceRoot":"","sources":["../../src/commands/haunt.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAuCzC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA8C5D"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `mneme haunt <file>` (v2.141.0) — "Code Haunting" / Git Telepathy. Surface the
|
|
3
|
+
* ghost of the commit that last touched a region: who changed it, when, the
|
|
4
|
+
* intent they recorded ("temporary fix" / "แก้ขัดไปก่อน"), the safeguards it
|
|
5
|
+
* lacks for the symptom you gave, and the team knowledge already shared about it.
|
|
6
|
+
*
|
|
7
|
+
* mneme haunt src/payment.ts --line 40-92 --symptom "slow under traffic peak"
|
|
8
|
+
* mneme haunt src/auth.ts # whole-file haunting
|
|
9
|
+
* mneme haunt src/payment.ts --json
|
|
10
|
+
*
|
|
11
|
+
* HONEST: surfaces + correlates REAL git facts + recorded intent — a candidate to
|
|
12
|
+
* look at, never a proven cause; UNKNOWN when there is no history.
|
|
13
|
+
*/
|
|
14
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
15
|
+
import { join } from "node:path";
|
|
16
|
+
import { haunt, git, cortex, notary } from "@mneme-ai/core";
|
|
17
|
+
function out(s) { process.stdout.write(s + "\n"); }
|
|
18
|
+
function parseRange(s) {
|
|
19
|
+
if (!s)
|
|
20
|
+
return undefined;
|
|
21
|
+
const m = s.match(/^(\d+)\s*[-:,]\s*(\d+)$/);
|
|
22
|
+
if (m)
|
|
23
|
+
return { start: parseInt(m[1], 10), end: parseInt(m[2], 10) };
|
|
24
|
+
const one = s.match(/^(\d+)$/);
|
|
25
|
+
if (one) {
|
|
26
|
+
const n = parseInt(one[1], 10);
|
|
27
|
+
return { start: n, end: n };
|
|
28
|
+
}
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
function snippet(cwd, file, region) {
|
|
32
|
+
try {
|
|
33
|
+
const p = join(cwd, file);
|
|
34
|
+
if (!existsSync(p))
|
|
35
|
+
return "";
|
|
36
|
+
const lines = readFileSync(p, "utf8").split("\n");
|
|
37
|
+
if (region)
|
|
38
|
+
return lines.slice(Math.max(0, region.start - 1), region.end).join("\n");
|
|
39
|
+
return lines.slice(0, 160).join("\n");
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
return "";
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/** Best-effort JIT knowledge pull from the Cortex (#2 Knowledge Osmosis). Total. */
|
|
46
|
+
function relatedKnowledge(cwd, file, symptom) {
|
|
47
|
+
try {
|
|
48
|
+
const p = join(cwd, ".mneme", "cortex", "store.json");
|
|
49
|
+
if (!existsSync(p))
|
|
50
|
+
return [];
|
|
51
|
+
const store = JSON.parse(readFileSync(p, "utf8"));
|
|
52
|
+
const base = file.split("/").pop()?.replace(/\.[a-z]+$/i, "") ?? file;
|
|
53
|
+
const query = `${base} ${file} ${symptom ?? ""}`.trim();
|
|
54
|
+
const hits = cortex.recall(store, query, 3) ?? [];
|
|
55
|
+
return hits.map((h) => ({ source: h.entry?.agent, value: h.entry?.value })).filter((k) => typeof k.value === "string" && k.value.length > 0);
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return [];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export function registerHauntCommands(program) {
|
|
62
|
+
program
|
|
63
|
+
.command("haunt")
|
|
64
|
+
.description("👻 CODE HAUNTING (Git Telepathy) — when a region acts up, surface the ghost of the commit that last touched it: who changed it, when, the intent they recorded ('temporary fix' / 'แก้ขัดไปก่อน'), the safeguards it lacks for your symptom, and the team knowledge already shared about it — one plain-language report instead of a manual git-blame dig. Detects intent in EN + TH. HONEST: surfaces + correlates REAL git facts — a candidate to look at, never a proven cause; UNKNOWN when there's no history.")
|
|
65
|
+
.argument("<file>", "the file to investigate (repo-relative)")
|
|
66
|
+
.option("--line <a-b>", "line range to focus on (e.g. 40-92)")
|
|
67
|
+
.option("--symptom <text>", "the symptom from the alert (e.g. \"slow under traffic peak\")")
|
|
68
|
+
.option("--json", "JSON output (signed)")
|
|
69
|
+
.action(async (file, opts) => {
|
|
70
|
+
const cwd = process.cwd();
|
|
71
|
+
const region = parseRange(opts.line);
|
|
72
|
+
let blameLines = [];
|
|
73
|
+
let commits = [];
|
|
74
|
+
try {
|
|
75
|
+
const bl = await git.blame(cwd, file, region?.start, region?.end);
|
|
76
|
+
blameLines = bl.map((b) => ({ commitHash: b.commitHash, authorName: b.authorName, authorTime: b.authorTime, lineNumber: b.lineNumber, content: b.content }));
|
|
77
|
+
}
|
|
78
|
+
catch { /* */ }
|
|
79
|
+
try {
|
|
80
|
+
const cs = await git.readCommits({ cwd, paths: [file], maxCount: 10 });
|
|
81
|
+
commits = cs.map((c) => ({ hash: c.hash, authorName: c.authorName, authorDate: c.authorDate, subject: c.subject, body: c.body }));
|
|
82
|
+
}
|
|
83
|
+
catch { /* */ }
|
|
84
|
+
const report = haunt.buildHauntReport({
|
|
85
|
+
file, region, blame: blameLines, commits,
|
|
86
|
+
codeSnippet: snippet(cwd, file, region),
|
|
87
|
+
symptom: opts.symptom,
|
|
88
|
+
knowledge: relatedKnowledge(cwd, file, opts.symptom),
|
|
89
|
+
nowMs: Date.now(),
|
|
90
|
+
});
|
|
91
|
+
let receipt = null;
|
|
92
|
+
try {
|
|
93
|
+
receipt = notary.issueReceipt(cwd, { kind: "claim-verdict", subject: `haunt:${report.verdict}:${file}`, payload: { verdict: report.verdict, temporaryFix: report.intent.temporaryFix, risks: report.riskFlags.length }, includePayload: true });
|
|
94
|
+
}
|
|
95
|
+
catch { /* */ }
|
|
96
|
+
if (opts.json) {
|
|
97
|
+
out(JSON.stringify({ ...report, signed: receipt }, null, 2));
|
|
98
|
+
process.exitCode = report.verdict === "HAUNTED" ? 2 : 0;
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
const icon = report.verdict === "HAUNTED" ? "👻" : report.verdict === "CLEAR" ? "🟢" : "❔";
|
|
102
|
+
out(`${icon} CODE HAUNTING — ${report.verdict}`);
|
|
103
|
+
out("");
|
|
104
|
+
out(report.narrative);
|
|
105
|
+
if (report.intent.signals.length) {
|
|
106
|
+
out("");
|
|
107
|
+
out("Recorded intent:");
|
|
108
|
+
for (const s of report.intent.signals)
|
|
109
|
+
out(` • [${s.label}] ${s.quote}`);
|
|
110
|
+
}
|
|
111
|
+
if (report.riskFlags.length) {
|
|
112
|
+
out("");
|
|
113
|
+
out("Missing safeguards (lexical signals — look, don't assume):");
|
|
114
|
+
for (const f of report.riskFlags)
|
|
115
|
+
out(` • ${f}`);
|
|
116
|
+
}
|
|
117
|
+
if (report.relatedKnowledge.length) {
|
|
118
|
+
out("");
|
|
119
|
+
out("💡 Team knowledge for this area:");
|
|
120
|
+
for (const k of report.relatedKnowledge)
|
|
121
|
+
out(` • ${k.source ? k.source + ": " : ""}${k.value}`);
|
|
122
|
+
}
|
|
123
|
+
out("");
|
|
124
|
+
out(` ${receipt ? "✓ signed (verify offline with the NOTARY public key) · " : ""}surfaced from real git history — a candidate, not a proven cause.`);
|
|
125
|
+
process.exitCode = report.verdict === "HAUNTED" ? 2 : 0;
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=haunt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"haunt.js","sourceRoot":"","sources":["../../src/commands/haunt.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmKA,wBAAsB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2hNvD"}
|
package/dist/index.js
CHANGED
|
@@ -94,6 +94,7 @@ import { registerElleipsisCommands } from "./commands/elleipsis.js";
|
|
|
94
94
|
import { registerSteleCommands } from "./commands/stele.js";
|
|
95
95
|
import { registerAxiaCommands } from "./commands/axia.js";
|
|
96
96
|
import { registerPceCommands } from "./commands/pce.js";
|
|
97
|
+
import { registerHauntCommands } from "./commands/haunt.js";
|
|
97
98
|
import { attachRegretOracle } from "./commands/regret.js";
|
|
98
99
|
import { registerTrustCommands } from "./commands/trust.js";
|
|
99
100
|
import { registerNuclearCommands } from "./commands/nuclear-cli.js";
|
|
@@ -4741,6 +4742,7 @@ export async function run(argv) {
|
|
|
4741
4742
|
registerSteleCommands(program);
|
|
4742
4743
|
registerAxiaCommands(program);
|
|
4743
4744
|
registerPceCommands(program);
|
|
4745
|
+
registerHauntCommands(program);
|
|
4744
4746
|
// ─── Trust calibrator (v1.31.0) -- per-subsystem precision/recall/band
|
|
4745
4747
|
registerTrustCommands(program);
|
|
4746
4748
|
// ─── Wisdom reactor (v1.33.0) -- five nuclear-physics formulas as Mneme metrics
|