@nxuss/lemma 1.28.0 → 1.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/README.md +41 -8
  2. package/bin/brain-ingest.js +34 -14
  3. package/dashboard/dist/assets/index-Dh-whqJ7.js +481 -0
  4. package/dashboard/dist/assets/index-Dh-whqJ7.js.map +1 -0
  5. package/dashboard/dist/assets/{index-DtEKr0hI.css → index-Yt1H2B7F.css} +1 -1
  6. package/dashboard/dist/index.html +2 -2
  7. package/dist/cjs/cli/hostHooks.d.ts +59 -0
  8. package/dist/cjs/cli/hostHooks.d.ts.map +1 -0
  9. package/dist/cjs/cli/hostHooks.js +235 -0
  10. package/dist/cjs/cli/hostHooks.js.map +1 -0
  11. package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
  12. package/dist/cjs/cli/lemma-proxy.js +31 -1
  13. package/dist/cjs/cli/lemma-proxy.js.map +1 -1
  14. package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
  15. package/dist/cjs/mcp/tools/memory.js +1 -0
  16. package/dist/cjs/mcp/tools/memory.js.map +1 -1
  17. package/dist/cjs/subconscious/HostAdapters.d.ts +45 -0
  18. package/dist/cjs/subconscious/HostAdapters.d.ts.map +1 -0
  19. package/dist/cjs/subconscious/HostAdapters.js +219 -0
  20. package/dist/cjs/subconscious/HostAdapters.js.map +1 -0
  21. package/dist/cjs/subconscious/HostRecall.d.ts +44 -0
  22. package/dist/cjs/subconscious/HostRecall.d.ts.map +1 -0
  23. package/dist/cjs/subconscious/HostRecall.js +186 -0
  24. package/dist/cjs/subconscious/HostRecall.js.map +1 -0
  25. package/dist/cjs/subconscious/TheBrainV2.d.ts +21 -0
  26. package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
  27. package/dist/cjs/subconscious/TheBrainV2.js +24 -2
  28. package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
  29. package/dist/cjs/utils/FixCapture.d.ts +8 -0
  30. package/dist/cjs/utils/FixCapture.d.ts.map +1 -1
  31. package/dist/cjs/utils/FixCapture.js +14 -3
  32. package/dist/cjs/utils/FixCapture.js.map +1 -1
  33. package/dist/esm/cli/hostHooks.d.ts +59 -0
  34. package/dist/esm/cli/hostHooks.d.ts.map +1 -0
  35. package/dist/esm/cli/hostHooks.js +223 -0
  36. package/dist/esm/cli/hostHooks.js.map +1 -0
  37. package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
  38. package/dist/esm/cli/lemma-proxy.js +31 -1
  39. package/dist/esm/cli/lemma-proxy.js.map +1 -1
  40. package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
  41. package/dist/esm/mcp/tools/memory.js +1 -0
  42. package/dist/esm/mcp/tools/memory.js.map +1 -1
  43. package/dist/esm/subconscious/HostAdapters.d.ts +45 -0
  44. package/dist/esm/subconscious/HostAdapters.d.ts.map +1 -0
  45. package/dist/esm/subconscious/HostAdapters.js +208 -0
  46. package/dist/esm/subconscious/HostAdapters.js.map +1 -0
  47. package/dist/esm/subconscious/HostRecall.d.ts +44 -0
  48. package/dist/esm/subconscious/HostRecall.d.ts.map +1 -0
  49. package/dist/esm/subconscious/HostRecall.js +178 -0
  50. package/dist/esm/subconscious/HostRecall.js.map +1 -0
  51. package/dist/esm/subconscious/TheBrainV2.d.ts +21 -0
  52. package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
  53. package/dist/esm/subconscious/TheBrainV2.js +24 -2
  54. package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
  55. package/dist/esm/utils/FixCapture.d.ts +8 -0
  56. package/dist/esm/utils/FixCapture.d.ts.map +1 -1
  57. package/dist/esm/utils/FixCapture.js +13 -3
  58. package/dist/esm/utils/FixCapture.js.map +1 -1
  59. package/package.json +1 -1
  60. package/dashboard/dist/assets/index-DiidVeI5.js +0 -481
  61. package/dashboard/dist/assets/index-DiidVeI5.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FixCapture.js","sourceRoot":"","sources":["../../../src/utils/FixCapture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FixCapture.js","sourceRoot":"","sources":["../../../src/utils/FixCapture.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Installs the hooks that let the Brain speak through each agent host's own tools (see
3
+ * HostRecall / HostAdapters) and capture red → green fixes run through the host's shell (see
4
+ * FixCapture). Without them the Brain only ever saw Lemma's MCP tools — and agents mostly read,
5
+ * edit and test with their native ones.
6
+ *
7
+ * - Claude Code — `.claude/settings.local.json` PostToolUse (personal, never the team's
8
+ * versioned settings.json; gitignored if the repo doesn't ignore it yet).
9
+ * - Codex — `~/.codex/hooks.json` PostToolUse, same format as Claude Code.
10
+ * - Cursor — `~/.cursor/hooks.json` postToolUse + postToolUseFailure.
11
+ * - OpenCode — a plugin in `~/.config/opencode/plugins/` (it has no hook protocol).
12
+ *
13
+ * Codex/Cursor/OpenCode go in user-level config: their project-level files are the team's and
14
+ * versioned, and the hook is repo-agnostic anyway (silent wherever the Brain has nothing).
15
+ *
16
+ * Same constraints as the git hook installer:
17
+ * - Merge, never overwrite. Other hooks and settings are kept exactly as they were; Lemma's
18
+ * entry is found by its command and updated in place (idempotent).
19
+ * - A config file that isn't valid JSON — or a plugin file Lemma didn't write — is left alone,
20
+ * and the caller gets what to add by hand.
21
+ * - Never break a tool call: the command is guarded so a missing binary is a silent no-op.
22
+ */
23
+ export declare function hookCommand(host: 'claude' | 'codex' | 'cursor'): string;
24
+ export declare const CLAUDE_HOOK_COMMAND: string;
25
+ export declare const CLAUDE_HOOK_MATCHER = "Bash|Read|Edit|MultiEdit|Write|NotebookEdit";
26
+ export declare const CODEX_HOOK_MATCHER = "Bash|apply_patch|Edit|Write";
27
+ export declare const CURSOR_POST_MATCHER = "Read|Shell|Write";
28
+ export declare const CURSOR_FAILURE_MATCHER = "Shell";
29
+ export interface HookInstallOutcome {
30
+ status: 'installed' | 'updated' | 'unchanged' | 'manual';
31
+ file: string;
32
+ /** Set when the file couldn't be merged safely; holds what to add by hand. */
33
+ snippet?: string;
34
+ /** True when `.claude/settings.local.json` was appended to .gitignore (Claude Code only). */
35
+ gitignored?: boolean;
36
+ }
37
+ export declare function installClaudeHooks(cwd?: string): HookInstallOutcome;
38
+ export declare function installCodexHooks(home?: string): HookInstallOutcome;
39
+ /** Cursor format: `{ version: 1, hooks: { <event>: [{ command, matcher? }] } }`. */
40
+ export declare function installCursorHooks(home?: string): HookInstallOutcome;
41
+ /**
42
+ * OpenCode has no hook protocol, so the hook is a plugin: it forwards each finished tool call
43
+ * to `lemma-brain-ingest --host=opencode` and appends the note it prints (if any) to the tool's
44
+ * output — the only place a plugin can put text the model reads. Arguments are taken from
45
+ * tool.execute.before, keyed by call id, because the after-hook's input doesn't carry them.
46
+ */
47
+ export declare const OPENCODE_PLUGIN = "// managed by `lemma init` \u2014 delete this file to disable Lemma Brain recall in OpenCode\nimport { spawnSync } from \"node:child_process\";\n\nexport const LemmaBrainRecall = async ({ directory }) => {\n const argsByCall = new Map();\n return {\n \"tool.execute.before\": async (input, output) => {\n if (!input || !input.callID) return;\n argsByCall.set(input.callID, (output && output.args) || {});\n if (argsByCall.size > 200) argsByCall.delete(argsByCall.keys().next().value);\n },\n \"tool.execute.after\": async (input, output) => {\n try {\n const args = argsByCall.get(input.callID) || input.args || {};\n argsByCall.delete(input.callID);\n if (!output || typeof output.output !== \"string\") return;\n const payload = { tool: input.tool, sessionID: input.sessionID, args, output: output.output, metadata: output.metadata || {}, directory };\n const r = spawnSync(\"lemma-brain-ingest\", [\"--hook-result\", \"--host=opencode\"], { input: JSON.stringify(payload), encoding: \"utf8\", timeout: 5000 });\n const note = typeof r.stdout === \"string\" ? r.stdout.trim() : \"\";\n if (note) output.output += \"\\n\\n\" + note;\n } catch {\n // A recall hint must never be the reason a tool call fails.\n }\n },\n };\n};\n";
48
+ export declare function installOpenCodePlugin(home?: string): HookInstallOutcome;
49
+ export interface HostHookReport {
50
+ host: 'Claude Code' | 'Codex' | 'Cursor' | 'OpenCode';
51
+ outcome: HookInstallOutcome;
52
+ }
53
+ /**
54
+ * Claude Code is always wired (project-local file). The other hosts only when their config
55
+ * directory already exists — Lemma doesn't create a Cursor or Codex setup on a machine that has
56
+ * neither.
57
+ */
58
+ export declare function installHostHooks(cwd?: string, home?: string): HostHookReport[];
59
+ //# sourceMappingURL=hostHooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostHooks.d.ts","sourceRoot":"","sources":["../../../src/cli/hostHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AASH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAGvE;AAED,eAAO,MAAM,mBAAmB,QAAwB,CAAC;AACzD,eAAO,MAAM,mBAAmB,gDAAgD,CAAC;AACjF,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAChE,eAAO,MAAM,mBAAmB,qBAAqB,CAAC;AACtD,eAAO,MAAM,sBAAsB,UAAU,CAAC;AAE9C,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,WAAW,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAuED,wBAAgB,kBAAkB,CAAC,GAAG,GAAE,MAAsB,GAAG,kBAAkB,CAKlF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,GAAE,MAAqB,GAAG,kBAAkB,CAEjF;AAED,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,IAAI,GAAE,MAAqB,GAAG,kBAAkB,CAkClF;AAID;;;;;GAKG;AACH,eAAO,MAAM,eAAe,szCA0B3B,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,IAAI,GAAE,MAAqB,GAAG,kBAAkB,CAYrF;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;IACtD,OAAO,EAAE,kBAAkB,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAsB,EAAE,IAAI,GAAE,MAAqB,GAAG,cAAc,EAAE,CAO3G"}
@@ -0,0 +1,223 @@
1
+ /**
2
+ * Installs the hooks that let the Brain speak through each agent host's own tools (see
3
+ * HostRecall / HostAdapters) and capture red → green fixes run through the host's shell (see
4
+ * FixCapture). Without them the Brain only ever saw Lemma's MCP tools — and agents mostly read,
5
+ * edit and test with their native ones.
6
+ *
7
+ * - Claude Code — `.claude/settings.local.json` PostToolUse (personal, never the team's
8
+ * versioned settings.json; gitignored if the repo doesn't ignore it yet).
9
+ * - Codex — `~/.codex/hooks.json` PostToolUse, same format as Claude Code.
10
+ * - Cursor — `~/.cursor/hooks.json` postToolUse + postToolUseFailure.
11
+ * - OpenCode — a plugin in `~/.config/opencode/plugins/` (it has no hook protocol).
12
+ *
13
+ * Codex/Cursor/OpenCode go in user-level config: their project-level files are the team's and
14
+ * versioned, and the hook is repo-agnostic anyway (silent wherever the Brain has nothing).
15
+ *
16
+ * Same constraints as the git hook installer:
17
+ * - Merge, never overwrite. Other hooks and settings are kept exactly as they were; Lemma's
18
+ * entry is found by its command and updated in place (idempotent).
19
+ * - A config file that isn't valid JSON — or a plugin file Lemma didn't write — is left alone,
20
+ * and the caller gets what to add by hand.
21
+ * - Never break a tool call: the command is guarded so a missing binary is a silent no-op.
22
+ */
23
+ import fs from 'fs';
24
+ import os from 'os';
25
+ import path from 'path';
26
+ import { execFileSync } from 'child_process';
27
+ const HOOK_MARK = 'lemma-brain-ingest --hook-result';
28
+ export function hookCommand(host) {
29
+ const flag = host === 'claude' ? '' : ` --host=${host}`;
30
+ return `command -v lemma-brain-ingest >/dev/null 2>&1 && ${HOOK_MARK}${flag} || true`;
31
+ }
32
+ export const CLAUDE_HOOK_COMMAND = hookCommand('claude');
33
+ export const CLAUDE_HOOK_MATCHER = 'Bash|Read|Edit|MultiEdit|Write|NotebookEdit';
34
+ export const CODEX_HOOK_MATCHER = 'Bash|apply_patch|Edit|Write';
35
+ export const CURSOR_POST_MATCHER = 'Read|Shell|Write';
36
+ export const CURSOR_FAILURE_MATCHER = 'Shell';
37
+ const isOurs = (h) => typeof h?.command === 'string' && h.command.includes(HOOK_MARK);
38
+ function readJsonObject(file) {
39
+ if (!fs.existsSync(file))
40
+ return {};
41
+ try {
42
+ const v = JSON.parse(fs.readFileSync(file, 'utf8'));
43
+ return v && typeof v === 'object' && !Array.isArray(v) ? v : null;
44
+ }
45
+ catch {
46
+ return null;
47
+ }
48
+ }
49
+ function writeJson(file, value) {
50
+ fs.mkdirSync(path.dirname(file), { recursive: true });
51
+ fs.writeFileSync(file, JSON.stringify(value, null, 2) + '\n');
52
+ }
53
+ /**
54
+ * Claude Code / Codex format: `hooks.<Event>[] = { matcher, hooks: [{ type, command }] }`.
55
+ * Lemma's hook object is identified by its command; when a user put their own hooks in the same
56
+ * entry, Lemma's moves to an entry of its own instead of widening their matcher.
57
+ */
58
+ function mergeMatcherHooks(file, event, matcher, command) {
59
+ const wanted = { matcher, hooks: [{ type: 'command', command }] };
60
+ const settings = readJsonObject(file);
61
+ if (!settings) {
62
+ return { status: 'manual', file, snippet: JSON.stringify({ hooks: { [event]: [wanted] } }, null, 2) };
63
+ }
64
+ settings.hooks = settings.hooks && typeof settings.hooks === 'object' ? settings.hooks : {};
65
+ const list = Array.isArray(settings.hooks[event]) ? settings.hooks[event] : [];
66
+ const ours = list.find((e) => Array.isArray(e?.hooks) && e.hooks.some(isOurs));
67
+ let status;
68
+ if (!ours) {
69
+ list.push(wanted);
70
+ status = 'installed';
71
+ }
72
+ else if (JSON.stringify({ matcher: ours.matcher, hooks: ours.hooks }) === JSON.stringify(wanted)) {
73
+ status = 'unchanged';
74
+ }
75
+ else if (ours.hooks.every(isOurs)) {
76
+ ours.matcher = matcher;
77
+ ours.hooks = wanted.hooks;
78
+ status = 'updated';
79
+ }
80
+ else {
81
+ ours.hooks = ours.hooks.filter((h) => !isOurs(h));
82
+ list.push(wanted);
83
+ status = 'updated';
84
+ }
85
+ settings.hooks[event] = list;
86
+ if (status !== 'unchanged')
87
+ writeJson(file, settings);
88
+ return { status, file };
89
+ }
90
+ function ensureClaudeLocalIgnored(cwd) {
91
+ const rel = path.join('.claude', 'settings.local.json');
92
+ try {
93
+ execFileSync('git', ['-C', cwd, 'check-ignore', '-q', rel], { stdio: 'ignore' });
94
+ return false; // already ignored
95
+ }
96
+ catch (e) {
97
+ // Exit 1 = not ignored; anything else (not a repo, no git) = nothing to protect.
98
+ if (e?.status !== 1)
99
+ return false;
100
+ }
101
+ const gitignore = path.join(cwd, '.gitignore');
102
+ const rule = '.claude/settings.local.json';
103
+ const existing = fs.existsSync(gitignore) ? fs.readFileSync(gitignore, 'utf8') : '';
104
+ if (existing.split('\n').some((l) => l.trim() === rule))
105
+ return false;
106
+ fs.appendFileSync(gitignore, `${existing && !existing.endsWith('\n') ? '\n' : ''}${rule}\n`);
107
+ return true;
108
+ }
109
+ export function installClaudeHooks(cwd = process.cwd()) {
110
+ const res = mergeMatcherHooks(path.join(cwd, '.claude', 'settings.local.json'), 'PostToolUse', CLAUDE_HOOK_MATCHER, CLAUDE_HOOK_COMMAND);
111
+ if (res.status === 'manual')
112
+ return res;
113
+ const gitignored = ensureClaudeLocalIgnored(cwd);
114
+ return { ...res, ...(gitignored ? { gitignored } : {}) };
115
+ }
116
+ export function installCodexHooks(home = os.homedir()) {
117
+ return mergeMatcherHooks(path.join(home, '.codex', 'hooks.json'), 'PostToolUse', CODEX_HOOK_MATCHER, hookCommand('codex'));
118
+ }
119
+ /** Cursor format: `{ version: 1, hooks: { <event>: [{ command, matcher? }] } }`. */
120
+ export function installCursorHooks(home = os.homedir()) {
121
+ const file = path.join(home, '.cursor', 'hooks.json');
122
+ const command = hookCommand('cursor');
123
+ const wanted = {
124
+ postToolUse: { command, matcher: CURSOR_POST_MATCHER },
125
+ postToolUseFailure: { command, matcher: CURSOR_FAILURE_MATCHER },
126
+ };
127
+ const config = readJsonObject(file);
128
+ if (!config) {
129
+ return {
130
+ status: 'manual',
131
+ file,
132
+ snippet: JSON.stringify({ version: 1, hooks: Object.fromEntries(Object.entries(wanted).map(([k, v]) => [k, [v]])) }, null, 2),
133
+ };
134
+ }
135
+ const fresh = !fs.existsSync(file);
136
+ if (typeof config.version !== 'number')
137
+ config.version = 1;
138
+ config.hooks = config.hooks && typeof config.hooks === 'object' ? config.hooks : {};
139
+ let changed = false;
140
+ let added = false;
141
+ for (const [event, entry] of Object.entries(wanted)) {
142
+ const list = Array.isArray(config.hooks[event]) ? config.hooks[event] : [];
143
+ const i = list.findIndex(isOurs);
144
+ if (i < 0) {
145
+ list.push(entry);
146
+ changed = added = true;
147
+ }
148
+ else if (JSON.stringify(list[i]) !== JSON.stringify(entry)) {
149
+ list[i] = entry;
150
+ changed = true;
151
+ }
152
+ config.hooks[event] = list;
153
+ }
154
+ if (changed)
155
+ writeJson(file, config);
156
+ return { status: !changed ? 'unchanged' : fresh || added ? 'installed' : 'updated', file };
157
+ }
158
+ const OPENCODE_MARK = '// managed by `lemma init` — delete this file to disable Lemma Brain recall in OpenCode';
159
+ /**
160
+ * OpenCode has no hook protocol, so the hook is a plugin: it forwards each finished tool call
161
+ * to `lemma-brain-ingest --host=opencode` and appends the note it prints (if any) to the tool's
162
+ * output — the only place a plugin can put text the model reads. Arguments are taken from
163
+ * tool.execute.before, keyed by call id, because the after-hook's input doesn't carry them.
164
+ */
165
+ export const OPENCODE_PLUGIN = `${OPENCODE_MARK}
166
+ import { spawnSync } from "node:child_process";
167
+
168
+ export const LemmaBrainRecall = async ({ directory }) => {
169
+ const argsByCall = new Map();
170
+ return {
171
+ "tool.execute.before": async (input, output) => {
172
+ if (!input || !input.callID) return;
173
+ argsByCall.set(input.callID, (output && output.args) || {});
174
+ if (argsByCall.size > 200) argsByCall.delete(argsByCall.keys().next().value);
175
+ },
176
+ "tool.execute.after": async (input, output) => {
177
+ try {
178
+ const args = argsByCall.get(input.callID) || input.args || {};
179
+ argsByCall.delete(input.callID);
180
+ if (!output || typeof output.output !== "string") return;
181
+ const payload = { tool: input.tool, sessionID: input.sessionID, args, output: output.output, metadata: output.metadata || {}, directory };
182
+ const r = spawnSync("lemma-brain-ingest", ["--hook-result", "--host=opencode"], { input: JSON.stringify(payload), encoding: "utf8", timeout: 5000 });
183
+ const note = typeof r.stdout === "string" ? r.stdout.trim() : "";
184
+ if (note) output.output += "\\n\\n" + note;
185
+ } catch {
186
+ // A recall hint must never be the reason a tool call fails.
187
+ }
188
+ },
189
+ };
190
+ };
191
+ `;
192
+ export function installOpenCodePlugin(home = os.homedir()) {
193
+ const file = path.join(home, '.config', 'opencode', 'plugins', 'lemma-brain-recall.js');
194
+ if (fs.existsSync(file)) {
195
+ const current = fs.readFileSync(file, 'utf8');
196
+ if (!current.startsWith(OPENCODE_MARK))
197
+ return { status: 'manual', file, snippet: OPENCODE_PLUGIN };
198
+ if (current === OPENCODE_PLUGIN)
199
+ return { status: 'unchanged', file };
200
+ fs.writeFileSync(file, OPENCODE_PLUGIN);
201
+ return { status: 'updated', file };
202
+ }
203
+ fs.mkdirSync(path.dirname(file), { recursive: true });
204
+ fs.writeFileSync(file, OPENCODE_PLUGIN);
205
+ return { status: 'installed', file };
206
+ }
207
+ /**
208
+ * Claude Code is always wired (project-local file). The other hosts only when their config
209
+ * directory already exists — Lemma doesn't create a Cursor or Codex setup on a machine that has
210
+ * neither.
211
+ */
212
+ export function installHostHooks(cwd = process.cwd(), home = os.homedir()) {
213
+ const out = [{ host: 'Claude Code', outcome: installClaudeHooks(cwd) }];
214
+ const has = (...p) => fs.existsSync(path.join(home, ...p));
215
+ if (has('.codex'))
216
+ out.push({ host: 'Codex', outcome: installCodexHooks(home) });
217
+ if (has('.cursor'))
218
+ out.push({ host: 'Cursor', outcome: installCursorHooks(home) });
219
+ if (has('.config', 'opencode') || has('.opencode'))
220
+ out.push({ host: 'OpenCode', outcome: installOpenCodePlugin(home) });
221
+ return out;
222
+ }
223
+ //# sourceMappingURL=hostHooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hostHooks.js","sourceRoot":"","sources":["../../../src/cli/hostHooks.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lemma-proxy.d.ts","sourceRoot":"","sources":["../../../src/cli/lemma-proxy.ts"],"names":[],"mappings":";AA+cA,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA8DvF;AAqfD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGtD;AAmsDD,wBAAsB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA8KhL"}
1
+ {"version":3,"file":"lemma-proxy.d.ts","sourceRoot":"","sources":["../../../src/cli/lemma-proxy.ts"],"names":[],"mappings":";AAidA,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA8DvF;AAqfD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGtD;AA4tDD,wBAAsB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA8KhL"}
@@ -49,6 +49,8 @@ import { shouldInject, buildMinimalContext, buildDeepContext, sniffProjectFromMe
49
49
  import { savingsLedger } from '../utils/SavingsLedger.js';
50
50
  import { CACHE_DIR, PID_FILE, PORT_FILE, STATS_FILE, USAGE_FILE, LICENSE_FILE, CLIPBOARD_PID_FILE, FREE_TIER_LIMIT } from '../proxy/ProjectStore.js';
51
51
  import { installBrainHooks } from './gitHooks.js';
52
+ import { installHostHooks } from './hostHooks.js';
53
+ import { getBrain } from '../subconscious/TheBrainV2.js';
52
54
  const chroma = new ChromaClient({ host: 'localhost', port: 8000 });
53
55
  const dummyEmbeddingFunction = { generate: (texts) => Promise.resolve([]) };
54
56
  const complexityRouter = new ComplexityRouter();
@@ -1350,6 +1352,19 @@ class LemmaServer {
1350
1352
  this.app.get('/api/savings-breakdown', (req, res) => {
1351
1353
  res.json(savingsLedger.getSnapshot());
1352
1354
  });
1355
+ // Brain corpus stats for the dashboard. The corpus lives on disk and is shared with the
1356
+ // MCP server and git hooks; getStats() re-syncs from disk if another process wrote it.
1357
+ // cacheHits/cacheMisses are per-process session counters — in this daemon they'd read 0
1358
+ // and look like a Brain nobody uses, so they're dropped rather than shown misleadingly.
1359
+ this.app.get('/api/brain/stats', (req, res) => {
1360
+ try {
1361
+ const { cacheHits, cacheMisses, ...stats } = getBrain().getStats();
1362
+ res.json(stats);
1363
+ }
1364
+ catch (e) {
1365
+ res.status(500).json({ error: e.message });
1366
+ }
1367
+ });
1353
1368
  // Serve codebase timeline snapshots (AST Time-Travel Telemetry)
1354
1369
  this.app.get('/api/project/timeline', (req, res) => {
1355
1370
  res.json({ success: true, timeline: this.timeline });
@@ -2495,7 +2510,7 @@ program.command('init')
2495
2510
  .description('Initialize Lemma in the current project (auto-discovery)')
2496
2511
  .option('--no-configure', 'Skip automatic configuration of editors, shell overrides, and Claude Desktop')
2497
2512
  .option('--yes', 'Skip prompts and accept defaults')
2498
- .option('--no-hooks', 'Skip installing the git hooks that feed the Brain (post-commit, post-merge, post-checkout)')
2513
+ .option('--no-hooks', 'Skip installing the hooks that feed the Brain (git post-commit/post-merge/post-checkout; Claude Code, Codex, Cursor and OpenCode tool hooks)')
2499
2514
  .action(async (opts) => {
2500
2515
  const project = detectProject();
2501
2516
  console.log(`\n🛠️ Initializing Lemma for [${project}]...`);
@@ -2518,6 +2533,21 @@ program.command('init')
2518
2533
  else if (changed.length > 0) {
2519
2534
  console.log(`✅ Git hooks feed the Brain (${changed.join(', ')}): commits become memories, merges pull .lemma-brain/`);
2520
2535
  }
2536
+ try {
2537
+ for (const { host, outcome } of installHostHooks(process.cwd())) {
2538
+ if (outcome.status === 'manual') {
2539
+ console.log(`⚠️ ${outcome.file} couldn't be merged safely — not touching it. So the Brain speaks through ${host}'s own tools, add:\n${outcome.snippet}`);
2540
+ }
2541
+ else if (outcome.status !== 'unchanged') {
2542
+ console.log(`✅ ${host} hook ${outcome.status} (${outcome.file}): the Brain flags memories on native reads/edits and known fixes on failing tests`);
2543
+ }
2544
+ if (outcome.gitignored)
2545
+ console.log('✅ Added .claude/settings.local.json to .gitignore');
2546
+ }
2547
+ }
2548
+ catch (e) {
2549
+ console.log(`⚠️ Could not install the agent host hooks: ${e.message}`);
2550
+ }
2521
2551
  }
2522
2552
  const envFile = path.join(process.cwd(), '.env');
2523
2553
  const lemmaConfig = `\n# Lemma AI Gateway Configuration\nOPENAI_BASE_URL=http://localhost:8081/v1\nLEMMA_PROJECT=${project}\n`;