@nxuss/lemma 1.33.0 → 1.35.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 +39 -0
- package/bin/brain-ingest.js +28 -0
- package/bin/checkpoint.js +6 -0
- package/dashboard/README.md +28 -332
- package/dashboard/dist/assets/{index-Dh-whqJ7.js → index-euG1IvQ7.js} +82 -82
- package/dashboard/dist/index.html +1 -1
- package/dist/cjs/cli/hostHooks.d.ts +3 -1
- package/dist/cjs/cli/hostHooks.d.ts.map +1 -1
- package/dist/cjs/cli/hostHooks.js +31 -13
- package/dist/cjs/cli/hostHooks.js.map +1 -1
- package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/cjs/cli/lemma-proxy.js +20 -1
- package/dist/cjs/cli/lemma-proxy.js.map +1 -1
- package/dist/cjs/mcp/index.js +2 -0
- package/dist/cjs/mcp/index.js.map +1 -1
- package/dist/cjs/mcp/staleBuild.d.ts +19 -0
- package/dist/cjs/mcp/staleBuild.d.ts.map +1 -1
- package/dist/cjs/mcp/staleBuild.js +73 -0
- package/dist/cjs/mcp/staleBuild.js.map +1 -1
- package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
- package/dist/cjs/mcp/tools/memory.js +84 -13
- package/dist/cjs/mcp/tools/memory.js.map +1 -1
- package/dist/cjs/proxy/DebuggerState.d.ts +3 -0
- package/dist/cjs/proxy/DebuggerState.d.ts.map +1 -0
- package/dist/cjs/proxy/DebuggerState.js +18 -0
- package/dist/cjs/proxy/DebuggerState.js.map +1 -0
- package/dist/cjs/subconscious/ExternalRefs.d.ts +47 -0
- package/dist/cjs/subconscious/ExternalRefs.d.ts.map +1 -0
- package/dist/cjs/subconscious/ExternalRefs.js +131 -0
- package/dist/cjs/subconscious/ExternalRefs.js.map +1 -0
- package/dist/cjs/subconscious/HostRecall.d.ts +22 -0
- package/dist/cjs/subconscious/HostRecall.d.ts.map +1 -1
- package/dist/cjs/subconscious/HostRecall.js +96 -0
- package/dist/cjs/subconscious/HostRecall.js.map +1 -1
- package/dist/cjs/subconscious/TheBrainV2.d.ts +16 -0
- package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/cjs/subconscious/TheBrainV2.js +17 -0
- package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
- package/dist/cjs/utils/StoreDraft.d.ts +26 -0
- package/dist/cjs/utils/StoreDraft.d.ts.map +1 -0
- package/dist/cjs/utils/StoreDraft.js +81 -0
- package/dist/cjs/utils/StoreDraft.js.map +1 -0
- package/dist/cjs/utils/ageLabel.d.ts +3 -0
- package/dist/cjs/utils/ageLabel.d.ts.map +1 -0
- package/dist/cjs/utils/ageLabel.js +17 -0
- package/dist/cjs/utils/ageLabel.js.map +1 -0
- package/dist/esm/cli/hostHooks.d.ts +3 -1
- package/dist/esm/cli/hostHooks.d.ts.map +1 -1
- package/dist/esm/cli/hostHooks.js +30 -12
- package/dist/esm/cli/hostHooks.js.map +1 -1
- package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
- package/dist/esm/cli/lemma-proxy.js +20 -1
- package/dist/esm/cli/lemma-proxy.js.map +1 -1
- package/dist/esm/mcp/index.js +2 -0
- package/dist/esm/mcp/index.js.map +1 -1
- package/dist/esm/mcp/staleBuild.d.ts +19 -0
- package/dist/esm/mcp/staleBuild.d.ts.map +1 -1
- package/dist/esm/mcp/staleBuild.js +70 -0
- package/dist/esm/mcp/staleBuild.js.map +1 -1
- package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
- package/dist/esm/mcp/tools/memory.js +84 -13
- package/dist/esm/mcp/tools/memory.js.map +1 -1
- package/dist/esm/proxy/DebuggerState.d.ts +3 -0
- package/dist/esm/proxy/DebuggerState.d.ts.map +1 -0
- package/dist/esm/proxy/DebuggerState.js +14 -0
- package/dist/esm/proxy/DebuggerState.js.map +1 -0
- package/dist/esm/subconscious/ExternalRefs.d.ts +47 -0
- package/dist/esm/subconscious/ExternalRefs.d.ts.map +1 -0
- package/dist/esm/subconscious/ExternalRefs.js +124 -0
- package/dist/esm/subconscious/ExternalRefs.js.map +1 -0
- package/dist/esm/subconscious/HostRecall.d.ts +22 -0
- package/dist/esm/subconscious/HostRecall.d.ts.map +1 -1
- package/dist/esm/subconscious/HostRecall.js +93 -0
- package/dist/esm/subconscious/HostRecall.js.map +1 -1
- package/dist/esm/subconscious/TheBrainV2.d.ts +16 -0
- package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
- package/dist/esm/subconscious/TheBrainV2.js +17 -0
- package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
- package/dist/esm/utils/StoreDraft.d.ts +26 -0
- package/dist/esm/utils/StoreDraft.d.ts.map +1 -0
- package/dist/esm/utils/StoreDraft.js +74 -0
- package/dist/esm/utils/StoreDraft.js.map +1 -0
- package/dist/esm/utils/ageLabel.d.ts +3 -0
- package/dist/esm/utils/ageLabel.d.ts.map +1 -0
- package/dist/esm/utils/ageLabel.js +14 -0
- package/dist/esm/utils/ageLabel.js.map +1 -0
- package/package.json +4 -2
- package/dashboard/dist/assets/index-Dh-whqJ7.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,4 +10,23 @@ export interface StaleBuildOptions {
|
|
|
10
10
|
export declare function staleBuildNote(options?: StaleBuildOptions): string | null;
|
|
11
11
|
/** Test hook: forget what was already warned about. */
|
|
12
12
|
export declare function resetStaleBuildWarning(): void;
|
|
13
|
+
/**
|
|
14
|
+
* staleBuildNote only speaks as a suffix on a tool result, so a user (or agent) who never calls
|
|
15
|
+
* Lemma never learns the running process lacks recent fixes. These two functions let something
|
|
16
|
+
* else — the UserPromptSubmit hook, a fresh process on every prompt — ask the question: each MCP
|
|
17
|
+
* process records which build it loaded, and the hook compares that with dist as it is now.
|
|
18
|
+
*/
|
|
19
|
+
export declare function mcpProcessDir(home?: string): string;
|
|
20
|
+
export interface McpProcessOptions {
|
|
21
|
+
entryFile?: string | null;
|
|
22
|
+
dir?: string;
|
|
23
|
+
pid?: number;
|
|
24
|
+
}
|
|
25
|
+
/** Records the build this process loaded. Never throws. */
|
|
26
|
+
export declare function registerMcpProcess(options?: McpProcessOptions): void;
|
|
27
|
+
/**
|
|
28
|
+
* A one-line warning when a live MCP process was started from `entryFile` before its latest
|
|
29
|
+
* build, else null. Prunes records of dead processes on the way. Never throws.
|
|
30
|
+
*/
|
|
31
|
+
export declare function staleMcpProcessNote(entryFile: string, dir?: string, isAlive?: (pid: number) => boolean): string | null;
|
|
13
32
|
//# sourceMappingURL=staleBuild.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staleBuild.d.ts","sourceRoot":"","sources":["../../../src/mcp/staleBuild.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"staleBuild.d.ts","sourceRoot":"","sources":["../../../src/mcp/staleBuild.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,GAAG,IAAI,CAa7E;AAED,uDAAuD;AACvD,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,GAAE,MAAqB,GAAG,MAAM,CAEjE;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,2DAA2D;AAC3D,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,iBAAsB,GAAG,IAAI,CAcxE;AAWD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,MAAwB,EAC7B,OAAO,GAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAkB,GAC3C,MAAM,GAAG,IAAI,CA0Bf"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import fs from "fs";
|
|
2
2
|
import path from "path";
|
|
3
|
+
import os from "os";
|
|
3
4
|
/**
|
|
4
5
|
* A running MCP process keeps the code it loaded at startup. `npm run build` rewrites dist, but
|
|
5
6
|
* the host keeps talking to the old process until it reconnects, so fixes look broken (or look
|
|
@@ -45,4 +46,73 @@ export function staleBuildNote(options = {}) {
|
|
|
45
46
|
export function resetStaleBuildWarning() {
|
|
46
47
|
lastWarnedMtime = 0;
|
|
47
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* staleBuildNote only speaks as a suffix on a tool result, so a user (or agent) who never calls
|
|
51
|
+
* Lemma never learns the running process lacks recent fixes. These two functions let something
|
|
52
|
+
* else — the UserPromptSubmit hook, a fresh process on every prompt — ask the question: each MCP
|
|
53
|
+
* process records which build it loaded, and the hook compares that with dist as it is now.
|
|
54
|
+
*/
|
|
55
|
+
export function mcpProcessDir(home = os.homedir()) {
|
|
56
|
+
return path.join(home, ".lemma", "mcp", "processes");
|
|
57
|
+
}
|
|
58
|
+
/** Records the build this process loaded. Never throws. */
|
|
59
|
+
export function registerMcpProcess(options = {}) {
|
|
60
|
+
try {
|
|
61
|
+
const entry = options.entryFile === undefined ? defaultEntryFile() : options.entryFile;
|
|
62
|
+
if (!entry || !fs.existsSync(entry))
|
|
63
|
+
return;
|
|
64
|
+
const dir = options.dir ?? mcpProcessDir();
|
|
65
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
66
|
+
const pid = options.pid ?? process.pid;
|
|
67
|
+
fs.writeFileSync(path.join(dir, `${pid}.json`), JSON.stringify({ pid, entry: fs.realpathSync(entry), startedAt: STARTED_AT, loadedMtime: fs.statSync(entry).mtimeMs }));
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
/* a diagnostic must never be the reason the server fails to start */
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function pidAlive(pid) {
|
|
74
|
+
try {
|
|
75
|
+
process.kill(pid, 0);
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
catch (e) {
|
|
79
|
+
return e?.code === "EPERM"; // exists, just not ours
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* A one-line warning when a live MCP process was started from `entryFile` before its latest
|
|
84
|
+
* build, else null. Prunes records of dead processes on the way. Never throws.
|
|
85
|
+
*/
|
|
86
|
+
export function staleMcpProcessNote(entryFile, dir = mcpProcessDir(), isAlive = pidAlive) {
|
|
87
|
+
try {
|
|
88
|
+
if (!fs.existsSync(dir) || !fs.existsSync(entryFile))
|
|
89
|
+
return null;
|
|
90
|
+
const real = fs.realpathSync(entryFile);
|
|
91
|
+
const current = fs.statSync(real).mtimeMs;
|
|
92
|
+
let stale = 0;
|
|
93
|
+
for (const f of fs.readdirSync(dir)) {
|
|
94
|
+
if (!f.endsWith(".json"))
|
|
95
|
+
continue;
|
|
96
|
+
const file = path.join(dir, f);
|
|
97
|
+
try {
|
|
98
|
+
const rec = JSON.parse(fs.readFileSync(file, "utf8"));
|
|
99
|
+
if (!rec || typeof rec.pid !== "number" || !isAlive(rec.pid)) {
|
|
100
|
+
fs.unlinkSync(file);
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
if (rec.entry === real && current > Number(rec.loadedMtime) + 2000)
|
|
104
|
+
stale++;
|
|
105
|
+
}
|
|
106
|
+
catch {
|
|
107
|
+
/* unreadable record: ignore it */
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return stale > 0
|
|
111
|
+
? `⚠️ Lemma: ${stale === 1 ? "the running MCP process was" : `${stale} running MCP processes were`} started before the latest build, so recent fixes are NOT active. Reconnect the server (in Claude Code: /mcp → lemma).`
|
|
112
|
+
: null;
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
48
118
|
//# sourceMappingURL=staleBuild.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"staleBuild.js","sourceRoot":"","sources":["../../../src/mcp/staleBuild.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"staleBuild.js","sourceRoot":"","sources":["../../../src/mcp/staleBuild.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/memory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAgBH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAShE,eAAO,MAAM,uBAAuB,EAAE,cAAc,EAqVnD,CAAC;AAu5BF,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAiB5D,CAAC"}
|
|
@@ -14,7 +14,14 @@ import { logError, safeResolvePath, DEFAULT_MEMORY_SIMILARITY_FLOOR, tryElicitCo
|
|
|
14
14
|
import { deriveDomainForFile } from "../cognitiveMap.js";
|
|
15
15
|
import { getRecentEvidence } from "../../utils/SessionEvidence.js";
|
|
16
16
|
import { bucketNearMiss } from "../../subconscious/NearMiss.js";
|
|
17
|
+
import { ageLabel } from "../../utils/ageLabel.js";
|
|
18
|
+
import { sanitizeRefs, describeRef, checkExternalRefs } from "../../subconscious/ExternalRefs.js";
|
|
17
19
|
import { pushTeamBrain, pullTeamBrain, teamBrainStatus } from "../../subconscious/TeamBrain.js";
|
|
20
|
+
const REFS_SCHEMA = {
|
|
21
|
+
type: "array",
|
|
22
|
+
items: { type: "object" },
|
|
23
|
+
description: "Non-file state it depends on: {kind:'commit',sha} or {kind:mr|issue,provider:github|gitlab,id,state:open|merged|closed} (state it asserts now); verify_memory flags a change.",
|
|
24
|
+
};
|
|
18
25
|
export const MEMORY_TOOL_DEFINITIONS = [
|
|
19
26
|
{
|
|
20
27
|
name: "list_memories",
|
|
@@ -123,6 +130,7 @@ export const MEMORY_TOOL_DEFINITIONS = [
|
|
|
123
130
|
},
|
|
124
131
|
description: "Split `response` into sub-claims, each with its own evidence, so one going stale doesn't discard the rest. Skip for a single-fact response.",
|
|
125
132
|
},
|
|
133
|
+
refs: REFS_SCHEMA,
|
|
126
134
|
domain: {
|
|
127
135
|
type: "string",
|
|
128
136
|
description: "Domain tag (e.g. 'auth') for domain-scoped search. Omitted with filePaths set: derived from the first file.",
|
|
@@ -180,6 +188,7 @@ export const MEMORY_TOOL_DEFINITIONS = [
|
|
|
180
188
|
description: "Replacement sub-claims (store_memory shape); replaces the set, omit to keep.",
|
|
181
189
|
},
|
|
182
190
|
outcome: { type: "string", enum: ["confirmed", "failed"], description: "'confirmed' or 'failed' (dead end)." },
|
|
191
|
+
refs: { type: "array", items: { type: "object" }, description: "Replacement refs (store_memory shape); [] clears." },
|
|
183
192
|
domain: { type: "string", description: "Replacement domain; '' clears." },
|
|
184
193
|
derivedFrom: { type: "array", items: { type: "string" }, description: "Replacement upstream ids; [] clears." },
|
|
185
194
|
supersededBy: { type: "string", description: "Id of the memory that replaces this one; excludes it from search_memory (get_memory still works and points to the successor). Use when two memories contradict. '' un-supersedes." },
|
|
@@ -189,8 +198,8 @@ export const MEMORY_TOOL_DEFINITIONS = [
|
|
|
189
198
|
},
|
|
190
199
|
{
|
|
191
200
|
name: "verify_memory",
|
|
192
|
-
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint:
|
|
193
|
-
description: "Cheaply revalidate ids from a prior search_memory/store_memory result — batch hash-compare, no BM25/re-search. Each id comes back 'fresh' (every tracked file/symbol still matches), 'stale' (something changed), 'untracked' (the memory tracks nothing, so nothing was checked — this is NOT a clean bill of health), 'unverified' (evidence could not be read) or 'unknown' (purged/renamed, never reported as fresh). Accepts entry ids and claim ids together.",
|
|
201
|
+
annotations: { readOnlyHint: true, idempotentHint: true, openWorldHint: true },
|
|
202
|
+
description: "Cheaply revalidate ids from a prior search_memory/store_memory result — batch hash-compare, no BM25/re-search. Each id comes back 'fresh' (every tracked file/symbol still matches), 'stale' (something changed), 'untracked' (the memory tracks nothing, so nothing was checked — this is NOT a clean bill of health), 'unverified' (evidence could not be read) or 'unknown' (purged/renamed, never reported as fresh). Accepts entry ids and claim ids together. Memories stored with external refs (commit / MR / issue) are also checked against git and gh/glab (timeout-bounded; an unreadable state is 'unverified', never 'fresh'). 'fresh' says nothing about MR/issue state for a memory without refs.",
|
|
194
203
|
inputSchema: {
|
|
195
204
|
type: "object",
|
|
196
205
|
properties: {
|
|
@@ -378,12 +387,20 @@ async function handleSearchMemory(args) {
|
|
|
378
387
|
// searchHybrid already filtered anything below minSimilarity out of `results`, so the
|
|
379
388
|
// near-miss check needs its own uncapped lookup — countStats:false, this must not
|
|
380
389
|
// register as a second miss on top of the one searchHybrid just counted.
|
|
381
|
-
const uncapped = brain.search(query,
|
|
390
|
+
const uncapped = brain.search(query, ORIENTATION_LIMIT, 0, { projectId: deriveProjectId(), domain, countStats: false });
|
|
382
391
|
const nearMiss = bucketNearMiss(uncapped[0] ? { id: uncapped[0].id, query: uncapped[0].query, similarity: uncapped[0].similarity } : undefined, minSimilarity);
|
|
392
|
+
// A miss that says nothing cannot tell "nothing related" from "something related at 60%".
|
|
393
|
+
// These are for orientation only: below the floor, never reusable, never credited.
|
|
394
|
+
const related = uncapped
|
|
395
|
+
.filter((r) => r.similarity >= ORIENTATION_MIN)
|
|
396
|
+
.map((r) => ` - ${r.id} (${(r.similarity * 100).toFixed(0)}%, stored ${ageLabel(r.timestamp)}): ${r.query.substring(0, 100)}`);
|
|
397
|
+
const orientation = related.length > 0
|
|
398
|
+
? `\n\nBelow the reuse floor, for orientation only (not cache hits — get_memory to read, then verify against current state before relying on any):\n${related.join("\n")}`
|
|
399
|
+
: "";
|
|
383
400
|
return {
|
|
384
401
|
content: [{
|
|
385
402
|
type: "text",
|
|
386
|
-
text: `No memory in Lemma's Brain scored at or above the ${(minSimilarity * 100).toFixed(0)}% similarity floor for this query. Investigate from scratch — there is nothing safe to reuse.${nearMiss.hint ? ` ${nearMiss.hint}` : ""}`,
|
|
403
|
+
text: `No memory in Lemma's Brain scored at or above the ${(minSimilarity * 100).toFixed(0)}% similarity floor for this query. Investigate from scratch — there is nothing safe to reuse.${nearMiss.hint ? ` ${nearMiss.hint}` : ""}${orientation}`,
|
|
387
404
|
}],
|
|
388
405
|
};
|
|
389
406
|
}
|
|
@@ -402,7 +419,7 @@ async function handleSearchMemory(args) {
|
|
|
402
419
|
const staleCount = r.claims.filter((c) => !c.fresh).length;
|
|
403
420
|
return `\nClaims (${r.claims.length - staleCount}/${r.claims.length} still fresh — trust only the ✓ ones):\n${lines.join("\n")}`;
|
|
404
421
|
};
|
|
405
|
-
const formatResult = (r, i) => `Result ${i + 1} (id: ${r.id}, Similarity: ${(r.similarity * 100).toFixed(1)}
|
|
422
|
+
const formatResult = (r, i) => `Result ${i + 1} (id: ${r.id}, Similarity: ${(r.similarity * 100).toFixed(1)}%, stored ${ageLabel(r.timestamp)})${r.outcome === "failed" ? "\n⚠️ TAGGED AS A FAILED ATTEMPT — this was tried before and did NOT work. Do not repeat it; treat this as a warning, not a suggestion." : ""}${typeof r.tokensSaved === "number" && r.tokensSaved > 0
|
|
406
423
|
? `\n💰 This memory has saved ${r.tokensSaved} tokens across ${r.hits || "?"} reuse(s) — prefer it over re-deriving.`
|
|
407
424
|
: ""}\nPrompt: ${r.query.substring(0, 300)}...\nResponse: ${typeof r.response === "string" ? r.response : JSON.stringify(r.response, null, 2)}${formatClaims(r)}${Array.isArray(r.evidence) && r.evidence.length > 0
|
|
408
425
|
? `\nEvidence: ${r.evidence.map((e) => {
|
|
@@ -479,6 +496,14 @@ function relLabel(abs) {
|
|
|
479
496
|
const rel = path.relative(process.cwd(), abs);
|
|
480
497
|
return rel.startsWith("..") ? abs : rel;
|
|
481
498
|
}
|
|
499
|
+
/** How many below-floor candidates a miss lists, and the weakest one still worth naming. */
|
|
500
|
+
const ORIENTATION_LIMIT = 3;
|
|
501
|
+
const ORIENTATION_MIN = 0.3;
|
|
502
|
+
/** External refs (commit / MR / issue) an entry carries, as one readable line; "" if none. */
|
|
503
|
+
function refsLine(entry) {
|
|
504
|
+
const refs = Array.isArray(entry.refs) ? entry.refs : [];
|
|
505
|
+
return refs.length > 0 ? `\nExternal refs: ${refs.map(describeRef).join(", ")} (checked by verify_memory)` : "";
|
|
506
|
+
}
|
|
482
507
|
/** The files/symbols an entry is judged against, as one readable line. */
|
|
483
508
|
function trackedLine(entry) {
|
|
484
509
|
const files = Object.keys(entry.fileHashes || {}).map(relLabel);
|
|
@@ -487,7 +512,15 @@ function trackedLine(entry) {
|
|
|
487
512
|
return `${relLabel(key.substring(0, sep))}::${key.substring(sep + 2)}`;
|
|
488
513
|
});
|
|
489
514
|
const derived = (entry.derivedFrom || []).map((id) => `derived:${id}`);
|
|
490
|
-
|
|
515
|
+
// verify_memory judges each claim by its own evidence (trackedArtifactCount counts it), so
|
|
516
|
+
// this line has to name it too — otherwise an entry whose evidence lives only on its claims
|
|
517
|
+
// reads "tracks nothing" here while verify_memory reports it fresh.
|
|
518
|
+
const claimFiles = (entry.claims || []).flatMap((c) => Object.keys(c.fileHashes || {}).map(relLabel));
|
|
519
|
+
const claimSymbols = (entry.claims || []).flatMap((c) => Object.keys(c.symbolHashes || {}).map((key) => {
|
|
520
|
+
const sep = key.lastIndexOf("::");
|
|
521
|
+
return `${relLabel(key.substring(0, sep))}::${key.substring(sep + 2)}`;
|
|
522
|
+
}));
|
|
523
|
+
const all = [...new Set([...files, ...symbols, ...claimFiles, ...claimSymbols]), ...derived];
|
|
491
524
|
return all.length > 0
|
|
492
525
|
? `Tracks: ${all.join(", ")}`
|
|
493
526
|
: "Tracks: nothing — freshness cannot be checked for this memory, and verify_memory reports it as 'untracked' rather than 'fresh'.";
|
|
@@ -538,7 +571,7 @@ async function handleGetMemory(args) {
|
|
|
538
571
|
return {
|
|
539
572
|
content: [{
|
|
540
573
|
type: "text",
|
|
541
|
-
text: `Memory ${entry.id} — ${status?.status ?? "unknown"}${status?.staleFiles?.length ? ` (changed: ${status.staleFiles.join(", ")})` : ""}\n${facts.join(" · ")}\n${trackedLine(entry)}${claimsBlock}${supersededNote}\n\nQuery: ${entry.query}${body}`,
|
|
574
|
+
text: `Memory ${entry.id} — ${status?.status ?? "unknown"}${status?.staleFiles?.length ? ` (changed: ${status.staleFiles.join(", ")})` : ""}\n${facts.join(" · ")}\n${trackedLine(entry)}${refsLine(entry)}${claimsBlock}${supersededNote}\n\nQuery: ${entry.query}${body}`,
|
|
542
575
|
}],
|
|
543
576
|
};
|
|
544
577
|
}
|
|
@@ -566,9 +599,10 @@ async function handleUpdateMemory(args) {
|
|
|
566
599
|
? args.derivedFrom.filter((d) => typeof d === "string" && d)
|
|
567
600
|
: undefined;
|
|
568
601
|
const supersededBy = typeof args?.supersededBy === "string" ? args.supersededBy : undefined;
|
|
602
|
+
const refs = Array.isArray(args?.refs) ? sanitizeRefs(args.refs) : undefined;
|
|
569
603
|
if (query === undefined && response === undefined && filePaths === undefined && symbols === undefined &&
|
|
570
604
|
claims === undefined && outcome === undefined && domain === undefined && derivedFrom === undefined &&
|
|
571
|
-
supersededBy === undefined) {
|
|
605
|
+
supersededBy === undefined && refs === undefined) {
|
|
572
606
|
return {
|
|
573
607
|
content: [{
|
|
574
608
|
type: "text",
|
|
@@ -577,7 +611,16 @@ async function handleUpdateMemory(args) {
|
|
|
577
611
|
};
|
|
578
612
|
}
|
|
579
613
|
try {
|
|
580
|
-
|
|
614
|
+
// Refs alone must not re-anchor the entry's file hashes (update() would): attaching "also
|
|
615
|
+
// depends on MR !1061" is not an assertion that the tracked code was re-checked.
|
|
616
|
+
const refsOnly = refs !== undefined && query === undefined && response === undefined && filePaths === undefined &&
|
|
617
|
+
symbols === undefined && claims === undefined && outcome === undefined && domain === undefined &&
|
|
618
|
+
derivedFrom === undefined && supersededBy === undefined;
|
|
619
|
+
if (refsOnly) {
|
|
620
|
+
const ok = getBrain().setRefs(id, refs);
|
|
621
|
+
return { content: [{ type: "text", text: ok ? `External refs on "${id}" ${refs.length > 0 ? `set to: ${refs.map(describeRef).join(", ")}` : "cleared"}. Nothing else was changed.` : `No entry with id "${id}" in the Brain.` }] };
|
|
622
|
+
}
|
|
623
|
+
const result = getBrain().update(id, { query, response, filePaths, symbols, claims, outcome, domain, derivedFrom, supersededBy, refs });
|
|
581
624
|
if (!result.ok)
|
|
582
625
|
return { content: [{ type: "text", text: result.message }] };
|
|
583
626
|
recordReceiptEvent("tool_call", `update_memory: ${id}`, {
|
|
@@ -635,11 +678,14 @@ async function handleStoreMemory(args) {
|
|
|
635
678
|
const derivedFrom = Array.isArray(args?.derivedFrom)
|
|
636
679
|
? args.derivedFrom.filter((id) => typeof id === "string" && id)
|
|
637
680
|
: undefined;
|
|
681
|
+
const refs = Array.isArray(args?.refs) ? sanitizeRefs(args.refs) : [];
|
|
638
682
|
if (!query || !responseText)
|
|
639
683
|
throw new Error("Query and response are required");
|
|
640
684
|
try {
|
|
641
685
|
const brain = getBrain();
|
|
642
686
|
const storeRes = brain.store(query, responseText, provider, 0.92, filePaths, undefined, outcome, symbols, claims, domain, derivedFrom, { source: "manual" });
|
|
687
|
+
if (refs.length > 0 && storeRes.id)
|
|
688
|
+
brain.setRefs(storeRes.id, refs);
|
|
643
689
|
// Storing a memory saves nothing — it only creates the chance of a saving later.
|
|
644
690
|
// Crediting tokens here inflated the ledger on write and then credited the same
|
|
645
691
|
// answer again on every read. The saving is booked by search_memory on a fresh hit.
|
|
@@ -658,6 +704,7 @@ async function handleStoreMemory(args) {
|
|
|
658
704
|
const domainNote = domain
|
|
659
705
|
? ` Tagged with domain '${domain}'${explicitDomain ? "" : " (auto-derived from filePaths)"} — domain-scoped searches will prefer it.`
|
|
660
706
|
: "";
|
|
707
|
+
const refsNote = refs.length > 0 ? ` Also tracking external state: ${refs.map(describeRef).join(", ")} — verify_memory marks this stale when that changes.` : "";
|
|
661
708
|
const derivedFromNote = derivedFrom && derivedFrom.length > 0
|
|
662
709
|
? ` Derived from ${derivedFrom.length} prior memor${derivedFrom.length === 1 ? "y" : "ies"} — this one goes stale too if any of those do.`
|
|
663
710
|
: "";
|
|
@@ -676,7 +723,7 @@ async function handleStoreMemory(args) {
|
|
|
676
723
|
const scrubNote = storeRes.redactions > 0
|
|
677
724
|
? ` 🛡 ${storeRes.redactions} secret(s) redacted before storage — credentials are never persisted, only their placeholders.`
|
|
678
725
|
: "";
|
|
679
|
-
return { content: [{ type: "text", text: `Success: Memory stored${idNote}. ${storeRes.reason}${trackingNote}${symbolNote}${autoEvidenceNote}${outcomeNote}${claimsNote}${domainNote}${derivedFromNote}${conflictsNote}${textConflictsNote}${scrubNote}` }] };
|
|
726
|
+
return { content: [{ type: "text", text: `Success: Memory stored${idNote}. ${storeRes.reason}${trackingNote}${symbolNote}${autoEvidenceNote}${outcomeNote}${claimsNote}${domainNote}${refsNote}${derivedFromNote}${conflictsNote}${textConflictsNote}${scrubNote}` }] };
|
|
680
727
|
}
|
|
681
728
|
catch (e) {
|
|
682
729
|
logError("store_memory", e);
|
|
@@ -1100,7 +1147,25 @@ async function handleVerifyMemory(args) {
|
|
|
1100
1147
|
if (ids.length === 0)
|
|
1101
1148
|
throw new Error("ids is required and must be a non-empty array");
|
|
1102
1149
|
try {
|
|
1103
|
-
const
|
|
1150
|
+
const brain = getBrain();
|
|
1151
|
+
// External refs (commit / MR / issue) are checked here rather than inside the Brain's
|
|
1152
|
+
// freshness walk: they can shell out, and search must stay local and instant.
|
|
1153
|
+
const refNotes = new Map();
|
|
1154
|
+
const results = brain.verifyByIds(ids, { semanticDiff }).map((r) => {
|
|
1155
|
+
const refs = (brain.getEntry(r.id)?.refs || []);
|
|
1156
|
+
if (refs.length === 0 || r.status === "unknown")
|
|
1157
|
+
return r;
|
|
1158
|
+
const verdicts = checkExternalRefs(refs, process.cwd());
|
|
1159
|
+
refNotes.set(r.id, verdicts.map((v) => `${v.status === "fresh" ? "✓" : v.status === "stale" ? "✗" : "?"} ${v.detail}`));
|
|
1160
|
+
if (r.status === "stale")
|
|
1161
|
+
return r; // already stale on files; the notes still explain
|
|
1162
|
+
if (verdicts.some((v) => v.status === "stale"))
|
|
1163
|
+
return { ...r, status: "stale" };
|
|
1164
|
+
// Fail closed: an external state that could not be read is not a pass.
|
|
1165
|
+
if (verdicts.some((v) => v.status === "unknown"))
|
|
1166
|
+
return { ...r, status: "unverified" };
|
|
1167
|
+
return { ...r, status: "fresh" };
|
|
1168
|
+
});
|
|
1104
1169
|
const fresh = results.filter((r) => r.status === "fresh");
|
|
1105
1170
|
const stale = results.filter((r) => r.status === "stale");
|
|
1106
1171
|
const unknown = results.filter((r) => r.status === "unknown");
|
|
@@ -1117,12 +1182,18 @@ async function handleVerifyMemory(args) {
|
|
|
1117
1182
|
const untrackedNote = r.status === "untracked"
|
|
1118
1183
|
? " — tracks no files or symbols, so nothing was verified. Not a clean bill of health: check it against the code yourself, then refresh_memory (or update_memory with filePaths/symbols) so it can be verified next time."
|
|
1119
1184
|
: "";
|
|
1120
|
-
|
|
1185
|
+
const refNote = refNotes.has(r.id) ? `\n External: ${refNotes.get(r.id).join(" | ")}` : "";
|
|
1186
|
+
return `${r.id}: ${r.status}${untrackedNote}${staleNote}${cosmeticNote}${claimsNote}${refNote}`;
|
|
1121
1187
|
};
|
|
1122
1188
|
const summary = `${fresh.length} fresh, ${stale.length} stale, ${untracked.length} untracked, ` +
|
|
1123
1189
|
`${unverified.length} unverified, ${unknown.length} unknown (of ${results.length} checked).`;
|
|
1124
1190
|
const lines = results.map(formatOne).join("\n");
|
|
1125
|
-
|
|
1191
|
+
// "fresh" is about tracked files and symbols. For a status question ("is X still pending?")
|
|
1192
|
+
// that is not the thing that changes, so say what the verdict does not cover.
|
|
1193
|
+
const scopeNote = fresh.some((r) => !refNotes.has(r.id))
|
|
1194
|
+
? "\nNote: 'fresh' means the tracked files/symbols are unchanged. It does not cover MR/issue/branch state unless the memory carries external refs — for a status question, check that live (git / gh / glab) before answering."
|
|
1195
|
+
: "";
|
|
1196
|
+
return { content: [{ type: "text", text: `${summary}\n${lines}${scopeNote}` }] };
|
|
1126
1197
|
}
|
|
1127
1198
|
catch (e) {
|
|
1128
1199
|
logError("verify_memory", e);
|