@nxuss/lemma 1.38.0 → 1.39.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 (271) hide show
  1. package/README.md +3 -4
  2. package/bin/brain-ingest.js +68 -31
  3. package/bin/init.js +25 -28
  4. package/dashboard/dist/assets/index-DNTQXLER.css +1 -0
  5. package/dashboard/dist/assets/index-DzL_Zu3m.js +452 -0
  6. package/dashboard/dist/index.html +2 -2
  7. package/dist/cjs/cli/gitHooks.d.ts +9 -2
  8. package/dist/cjs/cli/gitHooks.d.ts.map +1 -1
  9. package/dist/cjs/cli/gitHooks.js +31 -4
  10. package/dist/cjs/cli/gitHooks.js.map +1 -1
  11. package/dist/cjs/cli/lemma-proxy.d.ts.map +1 -1
  12. package/dist/cjs/cli/lemma-proxy.js +21 -1
  13. package/dist/cjs/cli/lemma-proxy.js.map +1 -1
  14. package/dist/cjs/infra/analyzers/index.d.ts +0 -2
  15. package/dist/cjs/infra/analyzers/index.d.ts.map +1 -1
  16. package/dist/cjs/infra/analyzers/index.js +1 -6
  17. package/dist/cjs/infra/analyzers/index.js.map +1 -1
  18. package/dist/cjs/infra/cli.d.ts +4 -0
  19. package/dist/cjs/infra/cli.d.ts.map +1 -1
  20. package/dist/cjs/infra/cli.js +6 -199
  21. package/dist/cjs/infra/cli.js.map +1 -1
  22. package/dist/cjs/infra/index.d.ts +1 -3
  23. package/dist/cjs/infra/index.d.ts.map +1 -1
  24. package/dist/cjs/infra/index.js +1 -16
  25. package/dist/cjs/infra/index.js.map +1 -1
  26. package/dist/cjs/infra/mcp-tools.d.ts.map +1 -1
  27. package/dist/cjs/infra/mcp-tools.js +8 -453
  28. package/dist/cjs/infra/mcp-tools.js.map +1 -1
  29. package/dist/cjs/infra/types.d.ts +0 -101
  30. package/dist/cjs/infra/types.d.ts.map +1 -1
  31. package/dist/cjs/infra/types.js +2 -1
  32. package/dist/cjs/infra/types.js.map +1 -1
  33. package/dist/cjs/mcp/prompts.d.ts +1 -1
  34. package/dist/cjs/mcp/prompts.d.ts.map +1 -1
  35. package/dist/cjs/mcp/prompts.js +8 -23
  36. package/dist/cjs/mcp/prompts.js.map +1 -1
  37. package/dist/cjs/mcp/tool-profiles.d.ts +8 -3
  38. package/dist/cjs/mcp/tool-profiles.d.ts.map +1 -1
  39. package/dist/cjs/mcp/tool-profiles.js +25 -54
  40. package/dist/cjs/mcp/tool-profiles.js.map +1 -1
  41. package/dist/cjs/mcp/tools/memory.d.ts +8 -0
  42. package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
  43. package/dist/cjs/mcp/tools/memory.js +154 -125
  44. package/dist/cjs/mcp/tools/memory.js.map +1 -1
  45. package/dist/cjs/mcp/tools.d.ts.map +1 -1
  46. package/dist/cjs/mcp/tools.js +11 -6
  47. package/dist/cjs/mcp/tools.js.map +1 -1
  48. package/dist/cjs/mcp/workspaceShared.d.ts.map +1 -1
  49. package/dist/cjs/mcp/workspaceShared.js +8 -4
  50. package/dist/cjs/mcp/workspaceShared.js.map +1 -1
  51. package/dist/cjs/proxy/ProjectRegistry.d.ts +20 -0
  52. package/dist/cjs/proxy/ProjectRegistry.d.ts.map +1 -1
  53. package/dist/cjs/proxy/ProjectRegistry.js +46 -4
  54. package/dist/cjs/proxy/ProjectRegistry.js.map +1 -1
  55. package/dist/cjs/subconscious/HostRecall.d.ts +26 -2
  56. package/dist/cjs/subconscious/HostRecall.d.ts.map +1 -1
  57. package/dist/cjs/subconscious/HostRecall.js +101 -36
  58. package/dist/cjs/subconscious/HostRecall.js.map +1 -1
  59. package/dist/cjs/subconscious/NarrowEvidence.d.ts +47 -0
  60. package/dist/cjs/subconscious/NarrowEvidence.d.ts.map +1 -0
  61. package/dist/cjs/subconscious/NarrowEvidence.js +252 -0
  62. package/dist/cjs/subconscious/NarrowEvidence.js.map +1 -0
  63. package/dist/cjs/subconscious/TheBrainV2.d.ts +37 -0
  64. package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
  65. package/dist/cjs/subconscious/TheBrainV2.js +147 -15
  66. package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
  67. package/dist/cjs/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
  68. package/dist/cjs/subconscious/freshness/LocalFsResolver.js +17 -0
  69. package/dist/cjs/subconscious/freshness/LocalFsResolver.js.map +1 -1
  70. package/dist/cjs/subconscious/recallDigest.d.ts +8 -0
  71. package/dist/cjs/subconscious/recallDigest.d.ts.map +1 -1
  72. package/dist/cjs/subconscious/recallDigest.js +13 -1
  73. package/dist/cjs/subconscious/recallDigest.js.map +1 -1
  74. package/dist/cjs/utils/OtherLanguageSymbols.d.ts +31 -0
  75. package/dist/cjs/utils/OtherLanguageSymbols.d.ts.map +1 -0
  76. package/dist/cjs/utils/OtherLanguageSymbols.js +283 -0
  77. package/dist/cjs/utils/OtherLanguageSymbols.js.map +1 -0
  78. package/dist/cjs/utils/SavingsLedger.d.ts +27 -0
  79. package/dist/cjs/utils/SavingsLedger.d.ts.map +1 -1
  80. package/dist/cjs/utils/SavingsLedger.js +51 -0
  81. package/dist/cjs/utils/SavingsLedger.js.map +1 -1
  82. package/dist/cjs/utils/StoreDraft.d.ts +12 -0
  83. package/dist/cjs/utils/StoreDraft.d.ts.map +1 -1
  84. package/dist/cjs/utils/StoreDraft.js +53 -1
  85. package/dist/cjs/utils/StoreDraft.js.map +1 -1
  86. package/dist/cjs/utils/SymbolSurgicalContext.d.ts +2 -0
  87. package/dist/cjs/utils/SymbolSurgicalContext.d.ts.map +1 -1
  88. package/dist/cjs/utils/SymbolSurgicalContext.js +1 -0
  89. package/dist/cjs/utils/SymbolSurgicalContext.js.map +1 -1
  90. package/dist/cjs/utils/reportSavings.d.ts +17 -4
  91. package/dist/cjs/utils/reportSavings.d.ts.map +1 -1
  92. package/dist/cjs/utils/reportSavings.js +67 -22
  93. package/dist/cjs/utils/reportSavings.js.map +1 -1
  94. package/dist/esm/cli/gitHooks.d.ts +9 -2
  95. package/dist/esm/cli/gitHooks.d.ts.map +1 -1
  96. package/dist/esm/cli/gitHooks.js +31 -4
  97. package/dist/esm/cli/gitHooks.js.map +1 -1
  98. package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
  99. package/dist/esm/cli/lemma-proxy.js +21 -1
  100. package/dist/esm/cli/lemma-proxy.js.map +1 -1
  101. package/dist/esm/infra/analyzers/index.d.ts +0 -2
  102. package/dist/esm/infra/analyzers/index.d.ts.map +1 -1
  103. package/dist/esm/infra/analyzers/index.js +0 -2
  104. package/dist/esm/infra/analyzers/index.js.map +1 -1
  105. package/dist/esm/infra/cli.d.ts +4 -0
  106. package/dist/esm/infra/cli.d.ts.map +1 -1
  107. package/dist/esm/infra/cli.js +6 -199
  108. package/dist/esm/infra/cli.js.map +1 -1
  109. package/dist/esm/infra/index.d.ts +1 -3
  110. package/dist/esm/infra/index.d.ts.map +1 -1
  111. package/dist/esm/infra/index.js +1 -3
  112. package/dist/esm/infra/index.js.map +1 -1
  113. package/dist/esm/infra/mcp-tools.d.ts.map +1 -1
  114. package/dist/esm/infra/mcp-tools.js +9 -454
  115. package/dist/esm/infra/mcp-tools.js.map +1 -1
  116. package/dist/esm/infra/types.d.ts +0 -101
  117. package/dist/esm/infra/types.d.ts.map +1 -1
  118. package/dist/esm/infra/types.js +2 -1
  119. package/dist/esm/infra/types.js.map +1 -1
  120. package/dist/esm/mcp/prompts.d.ts +1 -1
  121. package/dist/esm/mcp/prompts.d.ts.map +1 -1
  122. package/dist/esm/mcp/prompts.js +8 -23
  123. package/dist/esm/mcp/prompts.js.map +1 -1
  124. package/dist/esm/mcp/tool-profiles.d.ts +8 -3
  125. package/dist/esm/mcp/tool-profiles.d.ts.map +1 -1
  126. package/dist/esm/mcp/tool-profiles.js +25 -54
  127. package/dist/esm/mcp/tool-profiles.js.map +1 -1
  128. package/dist/esm/mcp/tools/memory.d.ts +8 -0
  129. package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
  130. package/dist/esm/mcp/tools/memory.js +156 -128
  131. package/dist/esm/mcp/tools/memory.js.map +1 -1
  132. package/dist/esm/mcp/tools.d.ts.map +1 -1
  133. package/dist/esm/mcp/tools.js +12 -7
  134. package/dist/esm/mcp/tools.js.map +1 -1
  135. package/dist/esm/mcp/workspaceShared.d.ts.map +1 -1
  136. package/dist/esm/mcp/workspaceShared.js +9 -5
  137. package/dist/esm/mcp/workspaceShared.js.map +1 -1
  138. package/dist/esm/proxy/ProjectRegistry.d.ts +20 -0
  139. package/dist/esm/proxy/ProjectRegistry.d.ts.map +1 -1
  140. package/dist/esm/proxy/ProjectRegistry.js +45 -3
  141. package/dist/esm/proxy/ProjectRegistry.js.map +1 -1
  142. package/dist/esm/subconscious/HostRecall.d.ts +26 -2
  143. package/dist/esm/subconscious/HostRecall.d.ts.map +1 -1
  144. package/dist/esm/subconscious/HostRecall.js +99 -37
  145. package/dist/esm/subconscious/HostRecall.js.map +1 -1
  146. package/dist/esm/subconscious/NarrowEvidence.d.ts +47 -0
  147. package/dist/esm/subconscious/NarrowEvidence.d.ts.map +1 -0
  148. package/dist/esm/subconscious/NarrowEvidence.js +211 -0
  149. package/dist/esm/subconscious/NarrowEvidence.js.map +1 -0
  150. package/dist/esm/subconscious/TheBrainV2.d.ts +37 -0
  151. package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
  152. package/dist/esm/subconscious/TheBrainV2.js +146 -14
  153. package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
  154. package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
  155. package/dist/esm/subconscious/freshness/LocalFsResolver.js +17 -0
  156. package/dist/esm/subconscious/freshness/LocalFsResolver.js.map +1 -1
  157. package/dist/esm/subconscious/recallDigest.d.ts +8 -0
  158. package/dist/esm/subconscious/recallDigest.d.ts.map +1 -1
  159. package/dist/esm/subconscious/recallDigest.js +12 -1
  160. package/dist/esm/subconscious/recallDigest.js.map +1 -1
  161. package/dist/esm/utils/OtherLanguageSymbols.d.ts +31 -0
  162. package/dist/esm/utils/OtherLanguageSymbols.d.ts.map +1 -0
  163. package/dist/esm/utils/OtherLanguageSymbols.js +275 -0
  164. package/dist/esm/utils/OtherLanguageSymbols.js.map +1 -0
  165. package/dist/esm/utils/SavingsLedger.d.ts +27 -0
  166. package/dist/esm/utils/SavingsLedger.d.ts.map +1 -1
  167. package/dist/esm/utils/SavingsLedger.js +51 -0
  168. package/dist/esm/utils/SavingsLedger.js.map +1 -1
  169. package/dist/esm/utils/StoreDraft.d.ts +12 -0
  170. package/dist/esm/utils/StoreDraft.d.ts.map +1 -1
  171. package/dist/esm/utils/StoreDraft.js +52 -1
  172. package/dist/esm/utils/StoreDraft.js.map +1 -1
  173. package/dist/esm/utils/SymbolSurgicalContext.d.ts +2 -0
  174. package/dist/esm/utils/SymbolSurgicalContext.d.ts.map +1 -1
  175. package/dist/esm/utils/SymbolSurgicalContext.js +1 -1
  176. package/dist/esm/utils/SymbolSurgicalContext.js.map +1 -1
  177. package/dist/esm/utils/reportSavings.d.ts +17 -4
  178. package/dist/esm/utils/reportSavings.d.ts.map +1 -1
  179. package/dist/esm/utils/reportSavings.js +65 -22
  180. package/dist/esm/utils/reportSavings.js.map +1 -1
  181. package/package.json +2 -1
  182. package/dashboard/dist/assets/index-CLXWgzTm.css +0 -1
  183. package/dashboard/dist/assets/index-CoMIMxyC.js +0 -451
  184. package/dist/cjs/infra/analyzers/DriftDetector.d.ts +0 -4
  185. package/dist/cjs/infra/analyzers/DriftDetector.d.ts.map +0 -1
  186. package/dist/cjs/infra/analyzers/DriftDetector.js +0 -88
  187. package/dist/cjs/infra/analyzers/DriftDetector.js.map +0 -1
  188. package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts +0 -3
  189. package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts.map +0 -1
  190. package/dist/cjs/infra/analyzers/InfraAnalyzer.js +0 -73
  191. package/dist/cjs/infra/analyzers/InfraAnalyzer.js.map +0 -1
  192. package/dist/cjs/infra/config.d.ts +0 -17
  193. package/dist/cjs/infra/config.d.ts.map +0 -1
  194. package/dist/cjs/infra/config.js +0 -111
  195. package/dist/cjs/infra/config.js.map +0 -1
  196. package/dist/cjs/infra/errorCause.d.ts +0 -36
  197. package/dist/cjs/infra/errorCause.d.ts.map +0 -1
  198. package/dist/cjs/infra/errorCause.js +0 -143
  199. package/dist/cjs/infra/errorCause.js.map +0 -1
  200. package/dist/cjs/infra/providers/InfraProvider.d.ts +0 -9
  201. package/dist/cjs/infra/providers/InfraProvider.d.ts.map +0 -1
  202. package/dist/cjs/infra/providers/InfraProvider.js +0 -3
  203. package/dist/cjs/infra/providers/InfraProvider.js.map +0 -1
  204. package/dist/cjs/infra/providers/JenkinsProvider.d.ts +0 -16
  205. package/dist/cjs/infra/providers/JenkinsProvider.d.ts.map +0 -1
  206. package/dist/cjs/infra/providers/JenkinsProvider.js +0 -193
  207. package/dist/cjs/infra/providers/JenkinsProvider.js.map +0 -1
  208. package/dist/cjs/infra/providers/OKDProvider.d.ts +0 -24
  209. package/dist/cjs/infra/providers/OKDProvider.d.ts.map +0 -1
  210. package/dist/cjs/infra/providers/OKDProvider.js +0 -296
  211. package/dist/cjs/infra/providers/OKDProvider.js.map +0 -1
  212. package/dist/cjs/infra/providers/TerraformProvider.d.ts +0 -17
  213. package/dist/cjs/infra/providers/TerraformProvider.d.ts.map +0 -1
  214. package/dist/cjs/infra/providers/TerraformProvider.js +0 -111
  215. package/dist/cjs/infra/providers/TerraformProvider.js.map +0 -1
  216. package/dist/cjs/infra/providers/index.d.ts +0 -9
  217. package/dist/cjs/infra/providers/index.d.ts.map +0 -1
  218. package/dist/cjs/infra/providers/index.js +0 -34
  219. package/dist/cjs/infra/providers/index.js.map +0 -1
  220. package/dist/cjs/infra/templates/jenkins/index.d.ts +0 -15
  221. package/dist/cjs/infra/templates/jenkins/index.d.ts.map +0 -1
  222. package/dist/cjs/infra/templates/jenkins/index.js +0 -128
  223. package/dist/cjs/infra/templates/jenkins/index.js.map +0 -1
  224. package/dist/cjs/infra/templates/okd/index.d.ts +0 -31
  225. package/dist/cjs/infra/templates/okd/index.d.ts.map +0 -1
  226. package/dist/cjs/infra/templates/okd/index.js +0 -149
  227. package/dist/cjs/infra/templates/okd/index.js.map +0 -1
  228. package/dist/esm/infra/analyzers/DriftDetector.d.ts +0 -4
  229. package/dist/esm/infra/analyzers/DriftDetector.d.ts.map +0 -1
  230. package/dist/esm/infra/analyzers/DriftDetector.js +0 -84
  231. package/dist/esm/infra/analyzers/DriftDetector.js.map +0 -1
  232. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts +0 -3
  233. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts.map +0 -1
  234. package/dist/esm/infra/analyzers/InfraAnalyzer.js +0 -70
  235. package/dist/esm/infra/analyzers/InfraAnalyzer.js.map +0 -1
  236. package/dist/esm/infra/config.d.ts +0 -17
  237. package/dist/esm/infra/config.d.ts.map +0 -1
  238. package/dist/esm/infra/config.js +0 -101
  239. package/dist/esm/infra/config.js.map +0 -1
  240. package/dist/esm/infra/errorCause.d.ts +0 -36
  241. package/dist/esm/infra/errorCause.d.ts.map +0 -1
  242. package/dist/esm/infra/errorCause.js +0 -138
  243. package/dist/esm/infra/errorCause.js.map +0 -1
  244. package/dist/esm/infra/providers/InfraProvider.d.ts +0 -9
  245. package/dist/esm/infra/providers/InfraProvider.d.ts.map +0 -1
  246. package/dist/esm/infra/providers/InfraProvider.js +0 -2
  247. package/dist/esm/infra/providers/InfraProvider.js.map +0 -1
  248. package/dist/esm/infra/providers/JenkinsProvider.d.ts +0 -16
  249. package/dist/esm/infra/providers/JenkinsProvider.d.ts.map +0 -1
  250. package/dist/esm/infra/providers/JenkinsProvider.js +0 -186
  251. package/dist/esm/infra/providers/JenkinsProvider.js.map +0 -1
  252. package/dist/esm/infra/providers/OKDProvider.d.ts +0 -24
  253. package/dist/esm/infra/providers/OKDProvider.d.ts.map +0 -1
  254. package/dist/esm/infra/providers/OKDProvider.js +0 -292
  255. package/dist/esm/infra/providers/OKDProvider.js.map +0 -1
  256. package/dist/esm/infra/providers/TerraformProvider.d.ts +0 -17
  257. package/dist/esm/infra/providers/TerraformProvider.d.ts.map +0 -1
  258. package/dist/esm/infra/providers/TerraformProvider.js +0 -107
  259. package/dist/esm/infra/providers/TerraformProvider.js.map +0 -1
  260. package/dist/esm/infra/providers/index.d.ts +0 -9
  261. package/dist/esm/infra/providers/index.d.ts.map +0 -1
  262. package/dist/esm/infra/providers/index.js +0 -27
  263. package/dist/esm/infra/providers/index.js.map +0 -1
  264. package/dist/esm/infra/templates/jenkins/index.d.ts +0 -15
  265. package/dist/esm/infra/templates/jenkins/index.d.ts.map +0 -1
  266. package/dist/esm/infra/templates/jenkins/index.js +0 -124
  267. package/dist/esm/infra/templates/jenkins/index.js.map +0 -1
  268. package/dist/esm/infra/templates/okd/index.d.ts +0 -31
  269. package/dist/esm/infra/templates/okd/index.d.ts.map +0 -1
  270. package/dist/esm/infra/templates/okd/index.js +0 -142
  271. package/dist/esm/infra/templates/okd/index.js.map +0 -1
@@ -5,8 +5,8 @@
5
5
  <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
7
  <title>lemma Dashboard - Agent Orchestration Hub</title>
8
- <script type="module" crossorigin src="/dashboard/assets/index-CoMIMxyC.js"></script>
9
- <link rel="stylesheet" crossorigin href="/dashboard/assets/index-CLXWgzTm.css">
8
+ <script type="module" crossorigin src="/dashboard/assets/index-DzL_Zu3m.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/dashboard/assets/index-DNTQXLER.css">
10
10
  </head>
11
11
  <body>
12
12
  <div id="root"></div>
@@ -1,6 +1,11 @@
1
1
  /**
2
- * Installs the git hooks that feed the Brain without anyone remembering to: post-commit ingests
3
- * the new commit, post-merge/post-checkout pull the team's shared memories (`.lemma-brain/`).
2
+ * Installs the git hooks that feed the Brain without anyone remembering to: post-merge and
3
+ * post-checkout pull the team's shared memories (`.lemma-brain/`).
4
+ *
5
+ * post-commit used to store every commit as a memory. On the author's own repo that was 295 of
6
+ * 339 memories, recalled twice in total: a copy of `git log` that crowded the per-file notes and
7
+ * buried the memories someone wrote on purpose. It is no longer installed, and a block an older
8
+ * init left in post-commit is removed (`lemma-brain-ingest --commits` still backfills by hand).
4
9
  *
5
10
  * `lemma-brain-ingest` shipped with a post-commit recipe in its header comment and nothing ever
6
11
  * installed it — on the author's own machine the corpus held 0 commit memories. This is the
@@ -17,6 +22,8 @@ export interface HookInstallResult {
17
22
  installed: string[];
18
23
  updated: string[];
19
24
  unchanged: string[];
25
+ /** Hooks whose Lemma block was taken out because Lemma no longer installs them. */
26
+ removed: string[];
20
27
  /** Set when hooks live in a versioned directory Lemma won't write to; holds what to add by hand. */
21
28
  manual?: {
22
29
  hooksDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"gitHooks.d.ts","sourceRoot":"","sources":["../../../src/cli/gitHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAmBH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,oGAAoG;IACpG,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAcD,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,iBAAiB,CA0DhF"}
1
+ {"version":3,"file":"gitHooks.d.ts","sourceRoot":"","sources":["../../../src/cli/gitHooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAoBH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,mFAAmF;IACnF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oGAAoG;IACpG,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAcD,wBAAgB,iBAAiB,CAAC,GAAG,GAAE,MAAsB,GAAG,iBAAiB,CAwEhF"}
@@ -1,7 +1,12 @@
1
1
  "use strict";
2
2
  /**
3
- * Installs the git hooks that feed the Brain without anyone remembering to: post-commit ingests
4
- * the new commit, post-merge/post-checkout pull the team's shared memories (`.lemma-brain/`).
3
+ * Installs the git hooks that feed the Brain without anyone remembering to: post-merge and
4
+ * post-checkout pull the team's shared memories (`.lemma-brain/`).
5
+ *
6
+ * post-commit used to store every commit as a memory. On the author's own repo that was 295 of
7
+ * 339 memories, recalled twice in total: a copy of `git log` that crowded the per-file notes and
8
+ * buried the memories someone wrote on purpose. It is no longer installed, and a block an older
9
+ * init left in post-commit is removed (`lemma-brain-ingest --commits` still backfills by hand).
5
10
  *
6
11
  * `lemma-brain-ingest` shipped with a post-commit recipe in its header comment and nothing ever
7
12
  * installed it — on the author's own machine the corpus held 0 commit memories. This is the
@@ -25,11 +30,12 @@ const child_process_1 = require("child_process");
25
30
  const BEGIN = '# >>> lemma brain hooks >>>';
26
31
  const END = '# <<< lemma brain hooks <<<';
27
32
  const HOOK_BODIES = {
28
- 'post-commit': 'command -v lemma-brain-ingest >/dev/null 2>&1 && (lemma-brain-ingest "$(git rev-parse --show-toplevel)" >/dev/null 2>&1 &)',
29
33
  'post-merge': 'command -v lemma-brain-ingest >/dev/null 2>&1 && (lemma-brain-ingest "$(git rev-parse --show-toplevel)" --team-pull --no-commits >/dev/null 2>&1 &)',
30
34
  // $3 is 1 for a branch checkout, 0 for a file checkout — only a branch switch can change the shared set.
31
35
  'post-checkout': '[ "$3" = "1" ] && command -v lemma-brain-ingest >/dev/null 2>&1 && (lemma-brain-ingest "$(git rev-parse --show-toplevel)" --team-pull --no-commits >/dev/null 2>&1 &)',
32
36
  };
37
+ /** Hooks an older `lemma init` installed and this one takes back out. */
38
+ const RETIRED_HOOKS = ['post-commit'];
33
39
  function git(cwd, args) {
34
40
  try {
35
41
  return (0, child_process_1.execFileSync)('git', ['-C', cwd, ...args], { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim();
@@ -42,7 +48,7 @@ function block(hook) {
42
48
  return `${BEGIN}\n${HOOK_BODIES[hook]}\n${END}\n`;
43
49
  }
44
50
  function installBrainHooks(cwd = process.cwd()) {
45
- const result = { installed: [], updated: [], unchanged: [] };
51
+ const result = { installed: [], updated: [], unchanged: [], removed: [] };
46
52
  const top = git(cwd, ['rev-parse', '--show-toplevel']);
47
53
  const hooksRel = git(cwd, ['rev-parse', '--git-path', 'hooks']);
48
54
  if (!top || !hooksRel) {
@@ -107,6 +113,27 @@ function installBrainHooks(cwd = process.cwd()) {
107
113
  catch { /* Windows: git for Windows runs hooks via sh regardless */ }
108
114
  (current === null ? result.installed : result.updated).push(hook);
109
115
  }
116
+ for (const hook of RETIRED_HOOKS) {
117
+ const file = path_1.default.join(hooksDir, hook);
118
+ let current;
119
+ try {
120
+ current = fs_1.default.readFileSync(file, 'utf8');
121
+ }
122
+ catch {
123
+ continue;
124
+ }
125
+ const start = current.indexOf(BEGIN);
126
+ const end = current.indexOf(END);
127
+ if (start === -1 || end < start)
128
+ continue;
129
+ const next = current.slice(0, start) + current.slice(end + END.length).replace(/^\n/, '');
130
+ // Nothing but the shebang left: the hook was Lemma's alone.
131
+ if (next.replace(/^#!.*\n?/, '').trim() === '')
132
+ fs_1.default.unlinkSync(file);
133
+ else
134
+ fs_1.default.writeFileSync(file, next, 'utf8');
135
+ result.removed.push(hook);
136
+ }
110
137
  return result;
111
138
  }
112
139
  //# sourceMappingURL=gitHooks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gitHooks.js","sourceRoot":"","sources":["../../../src/cli/gitHooks.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;AAwCH,8CA0DC;AAhGD,4CAAoB;AACpB,gDAAwB;AACxB,iDAA6C;AAE7C,MAAM,KAAK,GAAG,6BAA6B,CAAC;AAC5C,MAAM,GAAG,GAAG,6BAA6B,CAAC;AAE1C,MAAM,WAAW,GAA2B;IAC1C,aAAa,EACX,4HAA4H;IAC9H,YAAY,EACV,qJAAqJ;IACvJ,yGAAyG;IACzG,eAAe,EACb,uKAAuK;CAC1K,CAAC;AAWF,SAAS,GAAG,CAAC,GAAW,EAAE,IAAc;IACtC,IAAI,CAAC;QACH,OAAO,IAAA,4BAAY,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACrH,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,KAAK,CAAC,IAAY;IACzB,OAAO,GAAG,KAAK,KAAK,WAAW,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AACpD,CAAC;AAED,SAAgB,iBAAiB,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IAC3D,MAAM,MAAM,GAAsB,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAChF,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;IACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,MAAM,CAAC,aAAa,GAAG,sBAAsB,CAAC;QAC9C,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,QAAQ,GAAG,cAAI,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IAE7C,4FAA4F;IAC5F,8FAA8F;IAC9F,oFAAoF;IACpF,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE,GAAG,IAAI,CAAC;QAAC,OAAO,YAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAAC,CAAC;IAAC,MAAM,CAAC;QAAC,OAAO,CAAC,CAAC;IAAC,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,GAAG,GAAG,cAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAClE,MAAM,WAAW,GAAG,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,UAAU,CAAC,OAAO,cAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACxE,IAAI,UAAU,IAAI,CAAC,WAAW,EAAE,CAAC;QAC/B,MAAM,CAAC,MAAM,GAAG;YACd,QAAQ,EAAE,GAAG;YACb,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;SAC9F,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACvC,IAAI,OAAO,GAAkB,IAAI,CAAC;QAClC,IAAI,CAAC;YAAC,OAAO,GAAG,YAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;QAE5E,IAAI,IAAY,CAAC;QACjB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,IAAI,GAAG,cAAc,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACrC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACjC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,GAAG,KAAK,EAAE,CAAC;gBAChC,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACpG,CAAC;iBAAM,CAAC;gBACN,qFAAqF;gBACrF,+DAA+D;gBAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACzD,IAAI,GAAG,YAAY;oBACjB,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,KAAM,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;oBAC3E,CAAC,CAAC,GAAG,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,CAAC;QACH,CAAC;QAED,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,YAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC;YAAC,YAAE,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,2DAA2D,CAAC,CAAC;QACxG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"gitHooks.js","sourceRoot":"","sources":["../../../src/cli/gitHooks.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":";AAgdA,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA+DvF;AAiiBD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGtD;AA8yDD,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":";AAgdA,wBAAgB,+BAA+B,CAAC,OAAO,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CA+DvF;AAiiBD,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAGtD;AAo0DD,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"}
@@ -1133,6 +1133,19 @@ class LemmaServer {
1133
1133
  this.app.get('/api/projects', (req, res) => {
1134
1134
  res.json({ projects: this.registry.snapshot() });
1135
1135
  });
1136
+ // Memories a recall note put in front of an agent — from the host hooks (lemma-brain-ingest)
1137
+ // and from Lemma's own read tools. Counted per project, not logged as events: a note rides
1138
+ // on most file reads and would push tool calls out of the 100-event buffer.
1139
+ this.app.post('/api/brain-recall', (req, res) => {
1140
+ const { projectPath, trigger, memoryIds } = req.body || {};
1141
+ const triggers = ['read', 'edit', 'failure', 'prompt', 'session', 'search'];
1142
+ if (typeof projectPath !== 'string' || !projectPath || !triggers.includes(trigger) || !Array.isArray(memoryIds)) {
1143
+ return res.status(400).json({ error: 'projectPath, trigger and memoryIds required' });
1144
+ }
1145
+ const ids = memoryIds.filter((id) => typeof id === 'string' && id.length > 0 && id.length <= 64).slice(0, 20);
1146
+ this.registry.recordOffered(projectPath, ids);
1147
+ res.json({ ok: true, recorded: ids.length });
1148
+ });
1136
1149
  this.app.get('/v1/models', (req, res) => {
1137
1150
  res.json({ object: 'list', data: [
1138
1151
  { id: 'gpt-4o', object: 'model', owned_by: 'lemma-proxy' },
@@ -1248,6 +1261,8 @@ class LemmaServer {
1248
1261
  eventData.error = e.error;
1249
1262
  eventData.receipt = e.receipt;
1250
1263
  eventData.projectPath = e.projectPath;
1264
+ if (e.recallUsed)
1265
+ eventData.recallUsed = true;
1251
1266
  // tokensImpact is the size of the tool result — a context cost, not a saving.
1252
1267
  eventData.tokensSaved = 0;
1253
1268
  eventData.costSaved = 0;
@@ -1744,8 +1759,13 @@ class LemmaServer {
1744
1759
  projectPath: typeof event.projectPath === 'string' ? event.projectPath : undefined,
1745
1760
  timestamp: event.timestamp || new Date().toISOString(),
1746
1761
  };
1762
+ // get_memory on a memory a recall note offered: the agent acted on recall it didn't
1763
+ // have to search for. Flagged on the event so the timeline can show it too.
1764
+ const readId = mcpEvent.args && typeof mcpEvent.args.id === 'string' ? mcpEvent.args.id : null;
1765
+ const recallUsed = mcpEvent.tool === 'get_memory' && mcpEvent.result === 'OK' && !!readId && !!mcpEvent.projectPath &&
1766
+ this.registry.recordRecallUse(mcpEvent.projectPath, readId);
1747
1767
  // Add to EVENT_LOG
1748
- logEvent(mcpEvent);
1768
+ logEvent(recallUsed ? { ...mcpEvent, recallUsed: true } : mcpEvent);
1749
1769
  if (mcpEvent.projectPath)
1750
1770
  this.registry.recordToolCall(mcpEvent.projectPath);
1751
1771
  res.json({ success: true, eventId: mcpEvent.id });