@nxuss/lemma 1.7.2 → 1.8.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 (47) hide show
  1. package/README.md +69 -8
  2. package/bin/brain-ingest.js +56 -0
  3. package/dist/cjs/mcp/tools.d.ts.map +1 -1
  4. package/dist/cjs/mcp/tools.js +132 -33
  5. package/dist/cjs/mcp/tools.js.map +1 -1
  6. package/dist/cjs/pr-review/bridge/BrainBridge.d.ts +11 -1
  7. package/dist/cjs/pr-review/bridge/BrainBridge.d.ts.map +1 -1
  8. package/dist/cjs/pr-review/bridge/BrainBridge.js +18 -23
  9. package/dist/cjs/pr-review/bridge/BrainBridge.js.map +1 -1
  10. package/dist/cjs/protocol/utils.d.ts.map +1 -1
  11. package/dist/cjs/protocol/utils.js +6 -5
  12. package/dist/cjs/protocol/utils.js.map +1 -1
  13. package/dist/cjs/subconscious/GitIngest.d.ts +48 -0
  14. package/dist/cjs/subconscious/GitIngest.d.ts.map +1 -0
  15. package/dist/cjs/subconscious/GitIngest.js +175 -0
  16. package/dist/cjs/subconscious/GitIngest.js.map +1 -0
  17. package/dist/cjs/subconscious/TheBrainV2.d.ts +23 -1
  18. package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
  19. package/dist/cjs/subconscious/TheBrainV2.js +124 -17
  20. package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
  21. package/dist/cjs/utils/ConversationCheckpoint.d.ts +2 -0
  22. package/dist/cjs/utils/ConversationCheckpoint.d.ts.map +1 -1
  23. package/dist/cjs/utils/ConversationCheckpoint.js +38 -0
  24. package/dist/cjs/utils/ConversationCheckpoint.js.map +1 -1
  25. package/dist/esm/mcp/tools.d.ts.map +1 -1
  26. package/dist/esm/mcp/tools.js +134 -35
  27. package/dist/esm/mcp/tools.js.map +1 -1
  28. package/dist/esm/pr-review/bridge/BrainBridge.d.ts +11 -1
  29. package/dist/esm/pr-review/bridge/BrainBridge.d.ts.map +1 -1
  30. package/dist/esm/pr-review/bridge/BrainBridge.js +18 -20
  31. package/dist/esm/pr-review/bridge/BrainBridge.js.map +1 -1
  32. package/dist/esm/protocol/utils.d.ts.map +1 -1
  33. package/dist/esm/protocol/utils.js +6 -5
  34. package/dist/esm/protocol/utils.js.map +1 -1
  35. package/dist/esm/subconscious/GitIngest.d.ts +48 -0
  36. package/dist/esm/subconscious/GitIngest.d.ts.map +1 -0
  37. package/dist/esm/subconscious/GitIngest.js +166 -0
  38. package/dist/esm/subconscious/GitIngest.js.map +1 -0
  39. package/dist/esm/subconscious/TheBrainV2.d.ts +23 -1
  40. package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
  41. package/dist/esm/subconscious/TheBrainV2.js +124 -17
  42. package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
  43. package/dist/esm/utils/ConversationCheckpoint.d.ts +2 -0
  44. package/dist/esm/utils/ConversationCheckpoint.d.ts.map +1 -1
  45. package/dist/esm/utils/ConversationCheckpoint.js +37 -0
  46. package/dist/esm/utils/ConversationCheckpoint.js.map +1 -1
  47. package/package.json +4 -2
@@ -4,8 +4,18 @@ interface BrainMemory {
4
4
  response: string;
5
5
  similarity: number;
6
6
  }
7
+ /**
8
+ * Talks to TheBrainV2 directly instead of the proxy's /api/search and /api/memory/store
9
+ * routes. Those routes are backed by ChromaDB + a local Ollama embeddings server on :11434 —
10
+ * the exact stack TheBrainV2 was built to replace — so whenever Ollama wasn't running (the
11
+ * common case now), every call here silently no-opped: findPriorBugs always returned empty
12
+ * and storeReview always failed, both swallowed by try/catch. PR review memory and
13
+ * interactive coding memory were two disconnected systems as a result. Using the same
14
+ * zero-dependency Brain instance everything else reads from means a review actually sees
15
+ * what search_memory/get_telepathic_hints already know about a file, and vice versa.
16
+ */
7
17
  export declare class BrainBridge {
8
- searchQuery(query: string, limit?: number): Promise<BrainMemory[]>;
18
+ private searchQuery;
9
19
  findPriorBugs(files: string[]): Promise<Map<string, BrainMemory[]>>;
10
20
  getContextualHints(files: string[], baseBranch: string): Promise<{
11
21
  file: string;
@@ -1 +1 @@
1
- {"version":3,"file":"BrainBridge.d.ts","sourceRoot":"","sources":["../../../../src/pr-review/bridge/BrainBridge.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,WAAW;IAChB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAYrE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAWnE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAcrG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,OAAO,CAAC;IAyBb,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GACrF,OAAO,CAAC,OAAO,WAAW,CAAC;CAkC/B"}
1
+ {"version":3,"file":"BrainBridge.d.ts","sourceRoot":"","sources":["../../../../src/pr-review/bridge/BrainBridge.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,WAAW;IAKb,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAWnE,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAcrG,WAAW,CACf,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,MAAM,EAAE,GACd,OAAO,CAAC,OAAO,CAAC;IAoBb,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EAAE,EACf,WAAW,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GACrF,OAAO,CAAC,OAAO,WAAW,CAAC;CAkC/B"}
@@ -1,26 +1,26 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.BrainBridge = void 0;
7
- const axios_1 = __importDefault(require("axios"));
8
- const utils_1 = require("../../mcp/utils");
4
+ const TheBrainV2_1 = require("../../subconscious/TheBrainV2");
5
+ /**
6
+ * Talks to TheBrainV2 directly instead of the proxy's /api/search and /api/memory/store
7
+ * routes. Those routes are backed by ChromaDB + a local Ollama embeddings server on :11434 —
8
+ * the exact stack TheBrainV2 was built to replace — so whenever Ollama wasn't running (the
9
+ * common case now), every call here silently no-opped: findPriorBugs always returned empty
10
+ * and storeReview always failed, both swallowed by try/catch. PR review memory and
11
+ * interactive coding memory were two disconnected systems as a result. Using the same
12
+ * zero-dependency Brain instance everything else reads from means a review actually sees
13
+ * what search_memory/get_telepathic_hints already know about a file, and vice versa.
14
+ */
9
15
  class BrainBridge {
10
- async searchQuery(query, limit = 3) {
11
- try {
12
- const port = (0, utils_1.getProxyPort)();
13
- const res = await axios_1.default.get(`http://localhost:${port}/api/search?q=${encodeURIComponent(query)}&limit=${limit}`);
14
- return (res.data.results || []).filter((r) => r.similarity >= 0.5);
15
- }
16
- catch {
17
- return [];
18
- }
16
+ searchQuery(query, limit = 3) {
17
+ const results = (0, TheBrainV2_1.getBrain)().search(query, limit, 0.5, { projectId: (0, TheBrainV2_1.deriveProjectId)() });
18
+ return results.map((r) => ({ prompt: r.query, response: r.response, similarity: r.similarity }));
19
19
  }
20
20
  async findPriorBugs(files) {
21
21
  const results = new Map();
22
22
  for (const file of files) {
23
- const memories = await this.searchQuery(`bug ${file} error fix regression`, 2);
23
+ const memories = this.searchQuery(`bug ${file} error fix regression`, 2);
24
24
  if (memories.length > 0) {
25
25
  results.set(file, memories);
26
26
  }
@@ -30,7 +30,7 @@ class BrainBridge {
30
30
  async getContextualHints(files, baseBranch) {
31
31
  const hints = [];
32
32
  for (const file of files) {
33
- const memories = await this.searchQuery(`${file} ${baseBranch} architecture pattern`, 2);
33
+ const memories = this.searchQuery(`${file} ${baseBranch} architecture pattern`, 2);
34
34
  if (memories.length > 0) {
35
35
  hints.push({
36
36
  file,
@@ -42,7 +42,6 @@ class BrainBridge {
42
42
  }
43
43
  async storeReview(reviewId, repo, prNumber, score, verdict, findings, files) {
44
44
  try {
45
- const port = (0, utils_1.getProxyPort)();
46
45
  const query = `PR #${prNumber} — ${repo}: ${files.join(", ")}`;
47
46
  const response = JSON.stringify({
48
47
  reviewId,
@@ -54,11 +53,7 @@ class BrainBridge {
54
53
  files,
55
54
  summary: findings.map(f => `[${f.severity}] ${f.filePath}:${f.line || "?"} — ${f.message}`),
56
55
  });
57
- await axios_1.default.post(`http://localhost:${port}/api/memory/store`, {
58
- query,
59
- response,
60
- provider: "pr-review",
61
- });
56
+ (0, TheBrainV2_1.getBrain)().store(query, response, "pr-review", 0.92, undefined, (0, TheBrainV2_1.deriveProjectId)());
62
57
  return true;
63
58
  }
64
59
  catch {
@@ -69,7 +64,7 @@ class BrainBridge {
69
64
  const weights = { ...baseWeights };
70
65
  const highRiskModules = [];
71
66
  for (const file of files) {
72
- const memories = await this.searchQuery(`high risk bug ${file}`, 2);
67
+ const memories = this.searchQuery(`high risk bug ${file}`, 2);
73
68
  const hasBugs = memories.some(m => {
74
69
  try {
75
70
  const data = JSON.parse(typeof m.response === "string" ? m.response : "");
@@ -1 +1 @@
1
- {"version":3,"file":"BrainBridge.js","sourceRoot":"","sources":["../../../../src/pr-review/bridge/BrainBridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BrainBridge.js","sourceRoot":"","sources":["../../../../src/pr-review/bridge/BrainBridge.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/protocol/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/protocol/utils.ts"],"names":[],"mappings":"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"}
@@ -36,6 +36,7 @@ exports.formatMessageForLog = formatMessageForLog;
36
36
  exports.batchMessages = batchMessages;
37
37
  exports.unbatchMessages = unbatchMessages;
38
38
  const uuid_1 = require("uuid");
39
+ const zlib_1 = require("zlib");
39
40
  const types_1 = require("./types");
40
41
  const validators_1 = require("./validators");
41
42
  /**
@@ -199,11 +200,11 @@ function getMessageSize(message) {
199
200
  function compressPayload(payload) {
200
201
  const serialized = JSON.stringify(payload);
201
202
  const size = new Blob([serialized]).size;
202
- // Compress if larger than 10KB (in production, use actual compression)
203
+ // Compress if larger than 10KB
203
204
  if (size > 10240) {
204
- // TODO: Implement actual compression (gzip/brotli)
205
+ const gzipped = (0, zlib_1.gzipSync)(Buffer.from(serialized, 'utf-8'));
205
206
  return {
206
- data: serialized,
207
+ data: gzipped.toString('base64'),
207
208
  compressed: true
208
209
  };
209
210
  }
@@ -219,8 +220,8 @@ function decompressPayload(data, compressed) {
219
220
  if (!compressed) {
220
221
  return JSON.parse(data);
221
222
  }
222
- // TODO: Implement actual decompression
223
- return JSON.parse(data);
223
+ const gunzipped = (0, zlib_1.gunzipSync)(Buffer.from(data, 'base64'));
224
+ return JSON.parse(gunzipped.toString('utf-8'));
224
225
  }
225
226
  /**
226
227
  * Creates a response message from a request
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/protocol/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/protocol/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * GitIngest — feeds The Brain from sources that already exist and already have context,
3
+ * instead of depending on the model remembering to call `store_memory`:
4
+ *
5
+ * - Every git commit (message + files touched) — one entry per commit, incremental.
6
+ * - CHANGELOG.md release notes — one entry per version, no LLM involved.
7
+ *
8
+ * Both are deterministic, git/fs-only, and safe to run on every commit or on demand.
9
+ */
10
+ import { TheBrainV2 } from './TheBrainV2';
11
+ export interface CommitIngestResult {
12
+ ingested: number;
13
+ skipped: number;
14
+ lastSha: string | null;
15
+ }
16
+ /** Store one commit as a Brain entry. Exported for the post-commit hook (ingests just HEAD). */
17
+ export declare function ingestCommit(projectRoot: string, sha: string, brain?: TheBrainV2): {
18
+ stored: boolean;
19
+ reason: string;
20
+ };
21
+ /**
22
+ * Ingest commits since the last marker (or the last `maxCommits` on a first run). Safe to call
23
+ * on every commit — with a marker in place it only ever processes what's new, so wiring this to
24
+ * a post-commit hook and running the full backfill manually both go through the same path.
25
+ */
26
+ export declare function ingestRecentCommits(projectRoot: string, opts?: {
27
+ maxCommits?: number;
28
+ }): CommitIngestResult;
29
+ export interface ChangelogIngestResult {
30
+ ingested: number;
31
+ skipped: number;
32
+ versionsSeen: number;
33
+ }
34
+ interface ChangelogEntry {
35
+ version: string;
36
+ date: string;
37
+ body: string;
38
+ }
39
+ /** Splits a Keep-a-Changelog-style file on `## [version] - date` headers. */
40
+ export declare function parseChangelog(markdown: string): ChangelogEntry[];
41
+ /**
42
+ * Store each changelog release as one Brain entry. No LLM involved — this is already
43
+ * human-written, dense project history that just isn't in The Brain's search surface today.
44
+ * Marker is the last version ingested (changelogs are prepended-to, newest first).
45
+ */
46
+ export declare function ingestChangelog(projectRoot: string, changelogPath?: string): ChangelogIngestResult;
47
+ export {};
48
+ //# sourceMappingURL=GitIngest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitIngest.d.ts","sourceRoot":"","sources":["../../../src/subconscious/GitIngest.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,EAAE,UAAU,EAA6B,MAAM,cAAc,CAAC;AAsCrE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AA0BD,gGAAgG;AAChG,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,GAAE,UAAuB,GAAG;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAalI;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,kBAAkB,CAiB/G;AAID,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,EAAE,CAyBjE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM,GAAG,qBAAqB,CA+BlG"}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ /**
3
+ * GitIngest — feeds The Brain from sources that already exist and already have context,
4
+ * instead of depending on the model remembering to call `store_memory`:
5
+ *
6
+ * - Every git commit (message + files touched) — one entry per commit, incremental.
7
+ * - CHANGELOG.md release notes — one entry per version, no LLM involved.
8
+ *
9
+ * Both are deterministic, git/fs-only, and safe to run on every commit or on demand.
10
+ */
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.ingestCommit = ingestCommit;
16
+ exports.ingestRecentCommits = ingestRecentCommits;
17
+ exports.parseChangelog = parseChangelog;
18
+ exports.ingestChangelog = ingestChangelog;
19
+ const fs_1 = __importDefault(require("fs"));
20
+ const path_1 = __importDefault(require("path"));
21
+ const child_process_1 = require("child_process");
22
+ const TheBrainV2_1 = require("./TheBrainV2");
23
+ const MARKER_DIR = '.lemma/session';
24
+ const COMMIT_MARKER_FILE = 'brain-commit-marker';
25
+ const CHANGELOG_MARKER_FILE = 'brain-changelog-marker';
26
+ function git(projectRoot, args) {
27
+ try {
28
+ return (0, child_process_1.execFileSync)('git', ['-C', projectRoot, ...args], {
29
+ encoding: 'utf8',
30
+ stdio: ['ignore', 'pipe', 'ignore'],
31
+ }).trim();
32
+ }
33
+ catch {
34
+ return '';
35
+ }
36
+ }
37
+ function markerPath(projectRoot, file) {
38
+ return path_1.default.join(projectRoot, MARKER_DIR, file);
39
+ }
40
+ function readMarker(projectRoot, file) {
41
+ try {
42
+ const v = fs_1.default.readFileSync(markerPath(projectRoot, file), 'utf8').trim();
43
+ return v || null;
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
49
+ function writeMarker(projectRoot, file, value) {
50
+ const p = markerPath(projectRoot, file);
51
+ fs_1.default.mkdirSync(path_1.default.dirname(p), { recursive: true });
52
+ fs_1.default.writeFileSync(p, value, 'utf8');
53
+ }
54
+ /** Field separator unlikely to appear in commit metadata; avoids parsing ambiguity. */
55
+ const FS = '\x1f';
56
+ function commitShas(projectRoot, opts) {
57
+ const args = opts.sinceSha
58
+ ? ['log', '--format=%H', `${opts.sinceSha}..HEAD`]
59
+ : ['log', `-n`, String(opts.maxCommits), '--format=%H'];
60
+ const out = git(projectRoot, args);
61
+ return out ? out.split('\n').filter(Boolean) : [];
62
+ }
63
+ function commitMeta(projectRoot, sha) {
64
+ const meta = git(projectRoot, ['show', '-s', `--format=%s${FS}%an${FS}%aI${FS}%b`, sha]);
65
+ const [subject = '', author = '', date = '', ...bodyParts] = meta.split(FS);
66
+ const filesOut = git(projectRoot, ['show', '--name-only', '--format=', sha]);
67
+ return {
68
+ subject,
69
+ author,
70
+ date,
71
+ body: bodyParts.join(FS).trim(),
72
+ files: filesOut.split('\n').filter(Boolean),
73
+ };
74
+ }
75
+ /** Store one commit as a Brain entry. Exported for the post-commit hook (ingests just HEAD). */
76
+ function ingestCommit(projectRoot, sha, brain = (0, TheBrainV2_1.getBrain)()) {
77
+ const meta = commitMeta(projectRoot, sha);
78
+ if (!meta.subject)
79
+ return { stored: false, reason: 'commit not found or has no subject' };
80
+ const shortSha = sha.substring(0, 12);
81
+ const query = `commit ${shortSha}: ${meta.subject}`;
82
+ const response = [
83
+ meta.body,
84
+ meta.files.length ? `Files: ${meta.files.join(', ')}` : '',
85
+ `Author: ${meta.author} — ${meta.date}`,
86
+ ].filter(Boolean).join('\n');
87
+ return brain.store(query, response, 'git-commit', 0.92, undefined, (0, TheBrainV2_1.deriveProjectId)(projectRoot));
88
+ }
89
+ /**
90
+ * Ingest commits since the last marker (or the last `maxCommits` on a first run). Safe to call
91
+ * on every commit — with a marker in place it only ever processes what's new, so wiring this to
92
+ * a post-commit hook and running the full backfill manually both go through the same path.
93
+ */
94
+ function ingestRecentCommits(projectRoot, opts = {}) {
95
+ const maxCommits = opts.maxCommits ?? 200;
96
+ const marker = readMarker(projectRoot, COMMIT_MARKER_FILE);
97
+ const shas = commitShas(projectRoot, { maxCommits, sinceSha: marker });
98
+ const brain = (0, TheBrainV2_1.getBrain)();
99
+ let ingested = 0;
100
+ let skipped = 0;
101
+ for (const sha of shas) {
102
+ const res = ingestCommit(projectRoot, sha, brain);
103
+ if (res.stored)
104
+ ingested++;
105
+ else
106
+ skipped++;
107
+ }
108
+ // git log lists newest-first, so shas[0] is the most recent commit processed this run.
109
+ if (shas.length > 0)
110
+ writeMarker(projectRoot, COMMIT_MARKER_FILE, shas[0]);
111
+ return { ingested, skipped, lastSha: shas[0] || marker };
112
+ }
113
+ /** Splits a Keep-a-Changelog-style file on `## [version] - date` headers. */
114
+ function parseChangelog(markdown) {
115
+ const lines = markdown.split('\n');
116
+ const entries = [];
117
+ let current = null;
118
+ let bodyLines = [];
119
+ const headerRe = /^##\s+\[([^\]]+)\]\s*-?\s*(.*)$/;
120
+ const flush = () => {
121
+ if (current)
122
+ entries.push({ ...current, body: bodyLines.join('\n').trim() });
123
+ bodyLines = [];
124
+ };
125
+ for (const line of lines) {
126
+ const m = line.match(headerRe);
127
+ if (m) {
128
+ flush();
129
+ current = { version: m[1].trim(), date: m[2].trim(), body: '' };
130
+ }
131
+ else if (current) {
132
+ bodyLines.push(line);
133
+ }
134
+ }
135
+ flush();
136
+ return entries.filter((e) => e.body.length > 0);
137
+ }
138
+ /**
139
+ * Store each changelog release as one Brain entry. No LLM involved — this is already
140
+ * human-written, dense project history that just isn't in The Brain's search surface today.
141
+ * Marker is the last version ingested (changelogs are prepended-to, newest first).
142
+ */
143
+ function ingestChangelog(projectRoot, changelogPath) {
144
+ // Root CHANGELOG.md is preferred: in this repo it's the one that actually gets updated
145
+ // release to release, while docs/CHANGELOG.md stopped being touched months ago. Ingesting
146
+ // whichever one happened to exist first would have silently indexed the stale one forever.
147
+ const candidates = changelogPath
148
+ ? [changelogPath]
149
+ : [path_1.default.join(projectRoot, 'CHANGELOG.md'), path_1.default.join(projectRoot, 'docs', 'CHANGELOG.md')];
150
+ const file = candidates.find((p) => fs_1.default.existsSync(p));
151
+ if (!file)
152
+ return { ingested: 0, skipped: 0, versionsSeen: 0 };
153
+ const entries = parseChangelog(fs_1.default.readFileSync(file, 'utf8'));
154
+ const marker = readMarker(projectRoot, CHANGELOG_MARKER_FILE);
155
+ const markerIdx = marker ? entries.findIndex((e) => e.version === marker) : -1;
156
+ // Entries are newest-first in the file (Keep a Changelog convention): everything before the
157
+ // marker's index is new since last ingest. markerIdx === -1 means "never ingested" -> all of it.
158
+ const toIngest = markerIdx >= 0 ? entries.slice(0, markerIdx) : entries;
159
+ const brain = (0, TheBrainV2_1.getBrain)();
160
+ const projectId = (0, TheBrainV2_1.deriveProjectId)(projectRoot);
161
+ let ingested = 0;
162
+ let skipped = 0;
163
+ for (const entry of toIngest) {
164
+ const query = `Lemma changelog v${entry.version}${entry.date ? ` — ${entry.date}` : ''}`;
165
+ const res = brain.store(query, entry.body, 'changelog', 0.92, undefined, projectId);
166
+ if (res.stored)
167
+ ingested++;
168
+ else
169
+ skipped++;
170
+ }
171
+ if (entries.length > 0)
172
+ writeMarker(projectRoot, CHANGELOG_MARKER_FILE, entries[0].version);
173
+ return { ingested, skipped, versionsSeen: entries.length };
174
+ }
175
+ //# sourceMappingURL=GitIngest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GitIngest.js","sourceRoot":"","sources":["../../../src/subconscious/GitIngest.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,27 @@ export interface BrainEntry {
31
31
  */
32
32
  projectId?: string;
33
33
  fileHashes?: Record<string, string>;
34
+ /**
35
+ * Whether this memory is a working solution or a documented dead end. Absent means
36
+ * 'confirmed' for backward compatibility with every entry written before this existed.
37
+ * Without a 'failed' tag, a prior failed attempt is indistinguishable from a working
38
+ * fix — the Brain can only ever suggest reuse, never warn "we already tried this."
39
+ */
40
+ outcome?: 'confirmed' | 'failed';
41
+ /**
42
+ * Absolute-path::symbolName -> sha256 of just that symbol's extracted source (via
43
+ * SymbolSurgicalContext), not the whole file. When a file has an entry here, freshness
44
+ * checks that file by this instead of fileHashes' whole-file hash — an edit elsewhere in
45
+ * the same file (a different function, an import, a comment) no longer invalidates a
46
+ * memory that was only ever about one specific symbol. Absent means whole-file hashing
47
+ * still applies, so every entry written before this existed keeps working unchanged.
48
+ */
49
+ symbolHashes?: Record<string, string>;
50
+ }
51
+ export interface SymbolRef {
52
+ /** Relative or absolute; resolved against process.cwd() the same way filePaths is. */
53
+ filePath: string;
54
+ symbolName: string;
34
55
  }
35
56
  export interface BrainSearchResult {
36
57
  id: string;
@@ -41,6 +62,7 @@ export interface BrainSearchResult {
41
62
  timestamp: string;
42
63
  fresh: boolean;
43
64
  staleFiles?: string[];
65
+ outcome?: 'confirmed' | 'failed';
44
66
  }
45
67
  export interface BrainSearchOptions {
46
68
  /**
@@ -108,7 +130,7 @@ export declare class TheBrainV2 {
108
130
  * Store a query+response pair in the brain.
109
131
  * Returns false if detected as duplicate (>= dupThreshold similarity).
110
132
  */
111
- store(query: string, response: string, provider?: string, dupThreshold?: number, filePaths?: string[], projectId?: string): {
133
+ store(query: string, response: string, provider?: string, dupThreshold?: number, filePaths?: string[], projectId?: string, outcome?: 'confirmed' | 'failed', symbolRefs?: SymbolRef[]): {
112
134
  stored: boolean;
113
135
  reason: string;
114
136
  duplicate?: BrainSearchResult;
@@ -1 +1 @@
1
- {"version":3,"file":"TheBrainV2.d.ts","sourceRoot":"","sources":["../../../src/subconscious/TheBrainV2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TheBrainV2.d.ts","sourceRoot":"","sources":["../../../src/subconscious/TheBrainV2.ts"],"names":[],"mappings":"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"}