@nxuss/lemma 1.38.0 → 1.40.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 (431) 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/cognitiveMap.d.ts.map +1 -1
  34. package/dist/cjs/mcp/cognitiveMap.js +6 -2
  35. package/dist/cjs/mcp/cognitiveMap.js.map +1 -1
  36. package/dist/cjs/mcp/index.js +2 -0
  37. package/dist/cjs/mcp/index.js.map +1 -1
  38. package/dist/cjs/mcp/prompts.d.ts +1 -1
  39. package/dist/cjs/mcp/prompts.d.ts.map +1 -1
  40. package/dist/cjs/mcp/prompts.js +8 -23
  41. package/dist/cjs/mcp/prompts.js.map +1 -1
  42. package/dist/cjs/mcp/tool-profiles.d.ts +8 -3
  43. package/dist/cjs/mcp/tool-profiles.d.ts.map +1 -1
  44. package/dist/cjs/mcp/tool-profiles.js +25 -54
  45. package/dist/cjs/mcp/tool-profiles.js.map +1 -1
  46. package/dist/cjs/mcp/tools/devtools.d.ts.map +1 -1
  47. package/dist/cjs/mcp/tools/devtools.js +11 -1
  48. package/dist/cjs/mcp/tools/devtools.js.map +1 -1
  49. package/dist/cjs/mcp/tools/memory.d.ts +8 -0
  50. package/dist/cjs/mcp/tools/memory.d.ts.map +1 -1
  51. package/dist/cjs/mcp/tools/memory.js +209 -137
  52. package/dist/cjs/mcp/tools/memory.js.map +1 -1
  53. package/dist/cjs/mcp/tools/refactor.d.ts.map +1 -1
  54. package/dist/cjs/mcp/tools/refactor.js +129 -32
  55. package/dist/cjs/mcp/tools/refactor.js.map +1 -1
  56. package/dist/cjs/mcp/tools/workspace.d.ts.map +1 -1
  57. package/dist/cjs/mcp/tools/workspace.js +108 -8
  58. package/dist/cjs/mcp/tools/workspace.js.map +1 -1
  59. package/dist/cjs/mcp/tools.d.ts.map +1 -1
  60. package/dist/cjs/mcp/tools.js +11 -6
  61. package/dist/cjs/mcp/tools.js.map +1 -1
  62. package/dist/cjs/mcp/workspaceShared.d.ts.map +1 -1
  63. package/dist/cjs/mcp/workspaceShared.js +8 -4
  64. package/dist/cjs/mcp/workspaceShared.js.map +1 -1
  65. package/dist/cjs/proxy/ProjectRegistry.d.ts +20 -0
  66. package/dist/cjs/proxy/ProjectRegistry.d.ts.map +1 -1
  67. package/dist/cjs/proxy/ProjectRegistry.js +46 -4
  68. package/dist/cjs/proxy/ProjectRegistry.js.map +1 -1
  69. package/dist/cjs/proxy/ProjectStore.d.ts.map +1 -1
  70. package/dist/cjs/proxy/ProjectStore.js +9 -6
  71. package/dist/cjs/proxy/ProjectStore.js.map +1 -1
  72. package/dist/cjs/subconscious/HostRecall.d.ts +26 -2
  73. package/dist/cjs/subconscious/HostRecall.d.ts.map +1 -1
  74. package/dist/cjs/subconscious/HostRecall.js +115 -40
  75. package/dist/cjs/subconscious/HostRecall.js.map +1 -1
  76. package/dist/cjs/subconscious/NarrowEvidence.d.ts +53 -0
  77. package/dist/cjs/subconscious/NarrowEvidence.d.ts.map +1 -0
  78. package/dist/cjs/subconscious/NarrowEvidence.js +237 -0
  79. package/dist/cjs/subconscious/NarrowEvidence.js.map +1 -0
  80. package/dist/cjs/subconscious/TheBrainV2.d.ts +48 -0
  81. package/dist/cjs/subconscious/TheBrainV2.d.ts.map +1 -1
  82. package/dist/cjs/subconscious/TheBrainV2.js +227 -26
  83. package/dist/cjs/subconscious/TheBrainV2.js.map +1 -1
  84. package/dist/cjs/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
  85. package/dist/cjs/subconscious/freshness/LocalFsResolver.js +32 -0
  86. package/dist/cjs/subconscious/freshness/LocalFsResolver.js.map +1 -1
  87. package/dist/cjs/subconscious/recallDigest.d.ts +8 -0
  88. package/dist/cjs/subconscious/recallDigest.d.ts.map +1 -1
  89. package/dist/cjs/subconscious/recallDigest.js +13 -1
  90. package/dist/cjs/subconscious/recallDigest.js.map +1 -1
  91. package/dist/cjs/utils/AffectedTests.d.ts +1 -5
  92. package/dist/cjs/utils/AffectedTests.d.ts.map +1 -1
  93. package/dist/cjs/utils/AffectedTests.js +5 -37
  94. package/dist/cjs/utils/AffectedTests.js.map +1 -1
  95. package/dist/cjs/utils/AtomicFile.d.ts +14 -0
  96. package/dist/cjs/utils/AtomicFile.d.ts.map +1 -0
  97. package/dist/cjs/utils/AtomicFile.js +44 -0
  98. package/dist/cjs/utils/AtomicFile.js.map +1 -0
  99. package/dist/cjs/utils/AutoContextBundle.js +1 -1
  100. package/dist/cjs/utils/AutoContextBundle.js.map +1 -1
  101. package/dist/cjs/utils/BulkFileDigest.js +1 -1
  102. package/dist/cjs/utils/BulkFileDigest.js.map +1 -1
  103. package/dist/cjs/utils/ContextSqueezer.d.ts +36 -4
  104. package/dist/cjs/utils/ContextSqueezer.d.ts.map +1 -1
  105. package/dist/cjs/utils/ContextSqueezer.js +69 -21
  106. package/dist/cjs/utils/ContextSqueezer.js.map +1 -1
  107. package/dist/cjs/utils/FileLock.d.ts +2 -0
  108. package/dist/cjs/utils/FileLock.d.ts.map +1 -0
  109. package/dist/cjs/utils/FileLock.js +32 -0
  110. package/dist/cjs/utils/FileLock.js.map +1 -0
  111. package/dist/cjs/utils/FileOutline.d.ts +1 -1
  112. package/dist/cjs/utils/FileOutline.d.ts.map +1 -1
  113. package/dist/cjs/utils/FileOutline.js +5 -1
  114. package/dist/cjs/utils/FileOutline.js.map +1 -1
  115. package/dist/cjs/utils/FixCapture.d.ts.map +1 -1
  116. package/dist/cjs/utils/FixCapture.js +4 -3
  117. package/dist/cjs/utils/FixCapture.js.map +1 -1
  118. package/dist/cjs/utils/GitChanges.d.ts +11 -0
  119. package/dist/cjs/utils/GitChanges.d.ts.map +1 -0
  120. package/dist/cjs/utils/GitChanges.js +44 -0
  121. package/dist/cjs/utils/GitChanges.js.map +1 -0
  122. package/dist/cjs/utils/JsonKeys.d.ts +17 -0
  123. package/dist/cjs/utils/JsonKeys.d.ts.map +1 -0
  124. package/dist/cjs/utils/JsonKeys.js +75 -0
  125. package/dist/cjs/utils/JsonKeys.js.map +1 -0
  126. package/dist/cjs/utils/LocalExclude.d.ts +3 -0
  127. package/dist/cjs/utils/LocalExclude.d.ts.map +1 -0
  128. package/dist/cjs/utils/LocalExclude.js +68 -0
  129. package/dist/cjs/utils/LocalExclude.js.map +1 -0
  130. package/dist/cjs/utils/OtherLanguageSymbols.d.ts +31 -0
  131. package/dist/cjs/utils/OtherLanguageSymbols.d.ts.map +1 -0
  132. package/dist/cjs/utils/OtherLanguageSymbols.js +276 -0
  133. package/dist/cjs/utils/OtherLanguageSymbols.js.map +1 -0
  134. package/dist/cjs/utils/OutputDelta.d.ts +14 -2
  135. package/dist/cjs/utils/OutputDelta.d.ts.map +1 -1
  136. package/dist/cjs/utils/OutputDelta.js +22 -15
  137. package/dist/cjs/utils/OutputDelta.js.map +1 -1
  138. package/dist/cjs/utils/RoiLedger.d.ts.map +1 -1
  139. package/dist/cjs/utils/RoiLedger.js +7 -3
  140. package/dist/cjs/utils/RoiLedger.js.map +1 -1
  141. package/dist/cjs/utils/SavingsLedger.d.ts +27 -0
  142. package/dist/cjs/utils/SavingsLedger.d.ts.map +1 -1
  143. package/dist/cjs/utils/SavingsLedger.js +56 -2
  144. package/dist/cjs/utils/SavingsLedger.js.map +1 -1
  145. package/dist/cjs/utils/SharedLedgerStore.d.ts.map +1 -1
  146. package/dist/cjs/utils/SharedLedgerStore.js +2 -1
  147. package/dist/cjs/utils/SharedLedgerStore.js.map +1 -1
  148. package/dist/cjs/utils/StoreDraft.d.ts +12 -0
  149. package/dist/cjs/utils/StoreDraft.d.ts.map +1 -1
  150. package/dist/cjs/utils/StoreDraft.js +53 -1
  151. package/dist/cjs/utils/StoreDraft.js.map +1 -1
  152. package/dist/cjs/utils/SurgicalASTInsert.d.ts.map +1 -1
  153. package/dist/cjs/utils/SurgicalASTInsert.js +2 -1
  154. package/dist/cjs/utils/SurgicalASTInsert.js.map +1 -1
  155. package/dist/cjs/utils/SymbolSurgicalContext.d.ts +2 -0
  156. package/dist/cjs/utils/SymbolSurgicalContext.d.ts.map +1 -1
  157. package/dist/cjs/utils/SymbolSurgicalContext.js +30 -62
  158. package/dist/cjs/utils/SymbolSurgicalContext.js.map +1 -1
  159. package/dist/cjs/utils/Utf8Guard.d.ts +23 -0
  160. package/dist/cjs/utils/Utf8Guard.d.ts.map +1 -0
  161. package/dist/cjs/utils/Utf8Guard.js +81 -0
  162. package/dist/cjs/utils/Utf8Guard.js.map +1 -0
  163. package/dist/cjs/utils/WorkspaceSearch.d.ts.map +1 -1
  164. package/dist/cjs/utils/WorkspaceSearch.js +26 -8
  165. package/dist/cjs/utils/WorkspaceSearch.js.map +1 -1
  166. package/dist/cjs/utils/reportSavings.d.ts +17 -4
  167. package/dist/cjs/utils/reportSavings.d.ts.map +1 -1
  168. package/dist/cjs/utils/reportSavings.js +67 -22
  169. package/dist/cjs/utils/reportSavings.js.map +1 -1
  170. package/dist/cjs/utils/tsLoader.d.ts +5 -0
  171. package/dist/cjs/utils/tsLoader.d.ts.map +1 -0
  172. package/dist/cjs/utils/tsLoader.js +15 -0
  173. package/dist/cjs/utils/tsLoader.js.map +1 -0
  174. package/dist/esm/cli/gitHooks.d.ts +9 -2
  175. package/dist/esm/cli/gitHooks.d.ts.map +1 -1
  176. package/dist/esm/cli/gitHooks.js +31 -4
  177. package/dist/esm/cli/gitHooks.js.map +1 -1
  178. package/dist/esm/cli/lemma-proxy.d.ts.map +1 -1
  179. package/dist/esm/cli/lemma-proxy.js +21 -1
  180. package/dist/esm/cli/lemma-proxy.js.map +1 -1
  181. package/dist/esm/infra/analyzers/index.d.ts +0 -2
  182. package/dist/esm/infra/analyzers/index.d.ts.map +1 -1
  183. package/dist/esm/infra/analyzers/index.js +0 -2
  184. package/dist/esm/infra/analyzers/index.js.map +1 -1
  185. package/dist/esm/infra/cli.d.ts +4 -0
  186. package/dist/esm/infra/cli.d.ts.map +1 -1
  187. package/dist/esm/infra/cli.js +6 -199
  188. package/dist/esm/infra/cli.js.map +1 -1
  189. package/dist/esm/infra/index.d.ts +1 -3
  190. package/dist/esm/infra/index.d.ts.map +1 -1
  191. package/dist/esm/infra/index.js +1 -3
  192. package/dist/esm/infra/index.js.map +1 -1
  193. package/dist/esm/infra/mcp-tools.d.ts.map +1 -1
  194. package/dist/esm/infra/mcp-tools.js +9 -454
  195. package/dist/esm/infra/mcp-tools.js.map +1 -1
  196. package/dist/esm/infra/types.d.ts +0 -101
  197. package/dist/esm/infra/types.d.ts.map +1 -1
  198. package/dist/esm/infra/types.js +2 -1
  199. package/dist/esm/infra/types.js.map +1 -1
  200. package/dist/esm/mcp/cognitiveMap.d.ts.map +1 -1
  201. package/dist/esm/mcp/cognitiveMap.js +6 -2
  202. package/dist/esm/mcp/cognitiveMap.js.map +1 -1
  203. package/dist/esm/mcp/index.js +2 -0
  204. package/dist/esm/mcp/index.js.map +1 -1
  205. package/dist/esm/mcp/prompts.d.ts +1 -1
  206. package/dist/esm/mcp/prompts.d.ts.map +1 -1
  207. package/dist/esm/mcp/prompts.js +8 -23
  208. package/dist/esm/mcp/prompts.js.map +1 -1
  209. package/dist/esm/mcp/tool-profiles.d.ts +8 -3
  210. package/dist/esm/mcp/tool-profiles.d.ts.map +1 -1
  211. package/dist/esm/mcp/tool-profiles.js +25 -54
  212. package/dist/esm/mcp/tool-profiles.js.map +1 -1
  213. package/dist/esm/mcp/tools/devtools.d.ts.map +1 -1
  214. package/dist/esm/mcp/tools/devtools.js +11 -1
  215. package/dist/esm/mcp/tools/devtools.js.map +1 -1
  216. package/dist/esm/mcp/tools/memory.d.ts +8 -0
  217. package/dist/esm/mcp/tools/memory.d.ts.map +1 -1
  218. package/dist/esm/mcp/tools/memory.js +211 -140
  219. package/dist/esm/mcp/tools/memory.js.map +1 -1
  220. package/dist/esm/mcp/tools/refactor.d.ts.map +1 -1
  221. package/dist/esm/mcp/tools/refactor.js +129 -32
  222. package/dist/esm/mcp/tools/refactor.js.map +1 -1
  223. package/dist/esm/mcp/tools/workspace.d.ts.map +1 -1
  224. package/dist/esm/mcp/tools/workspace.js +108 -8
  225. package/dist/esm/mcp/tools/workspace.js.map +1 -1
  226. package/dist/esm/mcp/tools.d.ts.map +1 -1
  227. package/dist/esm/mcp/tools.js +12 -7
  228. package/dist/esm/mcp/tools.js.map +1 -1
  229. package/dist/esm/mcp/workspaceShared.d.ts.map +1 -1
  230. package/dist/esm/mcp/workspaceShared.js +9 -5
  231. package/dist/esm/mcp/workspaceShared.js.map +1 -1
  232. package/dist/esm/proxy/ProjectRegistry.d.ts +20 -0
  233. package/dist/esm/proxy/ProjectRegistry.d.ts.map +1 -1
  234. package/dist/esm/proxy/ProjectRegistry.js +45 -3
  235. package/dist/esm/proxy/ProjectRegistry.js.map +1 -1
  236. package/dist/esm/proxy/ProjectStore.d.ts.map +1 -1
  237. package/dist/esm/proxy/ProjectStore.js +9 -6
  238. package/dist/esm/proxy/ProjectStore.js.map +1 -1
  239. package/dist/esm/subconscious/HostRecall.d.ts +26 -2
  240. package/dist/esm/subconscious/HostRecall.d.ts.map +1 -1
  241. package/dist/esm/subconscious/HostRecall.js +113 -41
  242. package/dist/esm/subconscious/HostRecall.js.map +1 -1
  243. package/dist/esm/subconscious/NarrowEvidence.d.ts +53 -0
  244. package/dist/esm/subconscious/NarrowEvidence.d.ts.map +1 -0
  245. package/dist/esm/subconscious/NarrowEvidence.js +228 -0
  246. package/dist/esm/subconscious/NarrowEvidence.js.map +1 -0
  247. package/dist/esm/subconscious/TheBrainV2.d.ts +48 -0
  248. package/dist/esm/subconscious/TheBrainV2.d.ts.map +1 -1
  249. package/dist/esm/subconscious/TheBrainV2.js +226 -25
  250. package/dist/esm/subconscious/TheBrainV2.js.map +1 -1
  251. package/dist/esm/subconscious/freshness/LocalFsResolver.d.ts.map +1 -1
  252. package/dist/esm/subconscious/freshness/LocalFsResolver.js +32 -0
  253. package/dist/esm/subconscious/freshness/LocalFsResolver.js.map +1 -1
  254. package/dist/esm/subconscious/recallDigest.d.ts +8 -0
  255. package/dist/esm/subconscious/recallDigest.d.ts.map +1 -1
  256. package/dist/esm/subconscious/recallDigest.js +12 -1
  257. package/dist/esm/subconscious/recallDigest.js.map +1 -1
  258. package/dist/esm/utils/AffectedTests.d.ts +1 -5
  259. package/dist/esm/utils/AffectedTests.d.ts.map +1 -1
  260. package/dist/esm/utils/AffectedTests.js +2 -35
  261. package/dist/esm/utils/AffectedTests.js.map +1 -1
  262. package/dist/esm/utils/AtomicFile.d.ts +14 -0
  263. package/dist/esm/utils/AtomicFile.d.ts.map +1 -0
  264. package/dist/esm/utils/AtomicFile.js +37 -0
  265. package/dist/esm/utils/AtomicFile.js.map +1 -0
  266. package/dist/esm/utils/AutoContextBundle.js +1 -1
  267. package/dist/esm/utils/AutoContextBundle.js.map +1 -1
  268. package/dist/esm/utils/BulkFileDigest.js +1 -1
  269. package/dist/esm/utils/BulkFileDigest.js.map +1 -1
  270. package/dist/esm/utils/ContextSqueezer.d.ts +36 -4
  271. package/dist/esm/utils/ContextSqueezer.d.ts.map +1 -1
  272. package/dist/esm/utils/ContextSqueezer.js +67 -21
  273. package/dist/esm/utils/ContextSqueezer.js.map +1 -1
  274. package/dist/esm/utils/FileLock.d.ts +2 -0
  275. package/dist/esm/utils/FileLock.d.ts.map +1 -0
  276. package/dist/esm/utils/FileLock.js +29 -0
  277. package/dist/esm/utils/FileLock.js.map +1 -0
  278. package/dist/esm/utils/FileOutline.d.ts +1 -1
  279. package/dist/esm/utils/FileOutline.d.ts.map +1 -1
  280. package/dist/esm/utils/FileOutline.js +5 -1
  281. package/dist/esm/utils/FileOutline.js.map +1 -1
  282. package/dist/esm/utils/FixCapture.d.ts.map +1 -1
  283. package/dist/esm/utils/FixCapture.js +3 -2
  284. package/dist/esm/utils/FixCapture.js.map +1 -1
  285. package/dist/esm/utils/GitChanges.d.ts +11 -0
  286. package/dist/esm/utils/GitChanges.d.ts.map +1 -0
  287. package/dist/esm/utils/GitChanges.js +41 -0
  288. package/dist/esm/utils/GitChanges.js.map +1 -0
  289. package/dist/esm/utils/JsonKeys.d.ts +17 -0
  290. package/dist/esm/utils/JsonKeys.d.ts.map +1 -0
  291. package/dist/esm/utils/JsonKeys.js +71 -0
  292. package/dist/esm/utils/JsonKeys.js.map +1 -0
  293. package/dist/esm/utils/LocalExclude.d.ts +3 -0
  294. package/dist/esm/utils/LocalExclude.d.ts.map +1 -0
  295. package/dist/esm/utils/LocalExclude.js +62 -0
  296. package/dist/esm/utils/LocalExclude.js.map +1 -0
  297. package/dist/esm/utils/OtherLanguageSymbols.d.ts +31 -0
  298. package/dist/esm/utils/OtherLanguageSymbols.d.ts.map +1 -0
  299. package/dist/esm/utils/OtherLanguageSymbols.js +268 -0
  300. package/dist/esm/utils/OtherLanguageSymbols.js.map +1 -0
  301. package/dist/esm/utils/OutputDelta.d.ts +14 -2
  302. package/dist/esm/utils/OutputDelta.d.ts.map +1 -1
  303. package/dist/esm/utils/OutputDelta.js +22 -15
  304. package/dist/esm/utils/OutputDelta.js.map +1 -1
  305. package/dist/esm/utils/RoiLedger.d.ts.map +1 -1
  306. package/dist/esm/utils/RoiLedger.js +7 -3
  307. package/dist/esm/utils/RoiLedger.js.map +1 -1
  308. package/dist/esm/utils/SavingsLedger.d.ts +27 -0
  309. package/dist/esm/utils/SavingsLedger.d.ts.map +1 -1
  310. package/dist/esm/utils/SavingsLedger.js +56 -2
  311. package/dist/esm/utils/SavingsLedger.js.map +1 -1
  312. package/dist/esm/utils/SharedLedgerStore.d.ts.map +1 -1
  313. package/dist/esm/utils/SharedLedgerStore.js +2 -1
  314. package/dist/esm/utils/SharedLedgerStore.js.map +1 -1
  315. package/dist/esm/utils/StoreDraft.d.ts +12 -0
  316. package/dist/esm/utils/StoreDraft.d.ts.map +1 -1
  317. package/dist/esm/utils/StoreDraft.js +52 -1
  318. package/dist/esm/utils/StoreDraft.js.map +1 -1
  319. package/dist/esm/utils/SurgicalASTInsert.d.ts.map +1 -1
  320. package/dist/esm/utils/SurgicalASTInsert.js +2 -1
  321. package/dist/esm/utils/SurgicalASTInsert.js.map +1 -1
  322. package/dist/esm/utils/SymbolSurgicalContext.d.ts +2 -0
  323. package/dist/esm/utils/SymbolSurgicalContext.d.ts.map +1 -1
  324. package/dist/esm/utils/SymbolSurgicalContext.js +2 -2
  325. package/dist/esm/utils/SymbolSurgicalContext.js.map +1 -1
  326. package/dist/esm/utils/Utf8Guard.d.ts +23 -0
  327. package/dist/esm/utils/Utf8Guard.d.ts.map +1 -0
  328. package/dist/esm/utils/Utf8Guard.js +74 -0
  329. package/dist/esm/utils/Utf8Guard.js.map +1 -0
  330. package/dist/esm/utils/WorkspaceSearch.d.ts.map +1 -1
  331. package/dist/esm/utils/WorkspaceSearch.js +26 -8
  332. package/dist/esm/utils/WorkspaceSearch.js.map +1 -1
  333. package/dist/esm/utils/reportSavings.d.ts +17 -4
  334. package/dist/esm/utils/reportSavings.d.ts.map +1 -1
  335. package/dist/esm/utils/reportSavings.js +65 -22
  336. package/dist/esm/utils/reportSavings.js.map +1 -1
  337. package/dist/esm/utils/tsLoader.d.ts +5 -0
  338. package/dist/esm/utils/tsLoader.d.ts.map +1 -0
  339. package/dist/esm/utils/tsLoader.js +13 -0
  340. package/dist/esm/utils/tsLoader.js.map +1 -0
  341. package/package.json +3 -2
  342. package/dashboard/dist/assets/index-CLXWgzTm.css +0 -1
  343. package/dashboard/dist/assets/index-CoMIMxyC.js +0 -451
  344. package/dist/cjs/infra/analyzers/DriftDetector.d.ts +0 -4
  345. package/dist/cjs/infra/analyzers/DriftDetector.d.ts.map +0 -1
  346. package/dist/cjs/infra/analyzers/DriftDetector.js +0 -88
  347. package/dist/cjs/infra/analyzers/DriftDetector.js.map +0 -1
  348. package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts +0 -3
  349. package/dist/cjs/infra/analyzers/InfraAnalyzer.d.ts.map +0 -1
  350. package/dist/cjs/infra/analyzers/InfraAnalyzer.js +0 -73
  351. package/dist/cjs/infra/analyzers/InfraAnalyzer.js.map +0 -1
  352. package/dist/cjs/infra/config.d.ts +0 -17
  353. package/dist/cjs/infra/config.d.ts.map +0 -1
  354. package/dist/cjs/infra/config.js +0 -111
  355. package/dist/cjs/infra/config.js.map +0 -1
  356. package/dist/cjs/infra/errorCause.d.ts +0 -36
  357. package/dist/cjs/infra/errorCause.d.ts.map +0 -1
  358. package/dist/cjs/infra/errorCause.js +0 -143
  359. package/dist/cjs/infra/errorCause.js.map +0 -1
  360. package/dist/cjs/infra/providers/InfraProvider.d.ts +0 -9
  361. package/dist/cjs/infra/providers/InfraProvider.d.ts.map +0 -1
  362. package/dist/cjs/infra/providers/InfraProvider.js +0 -3
  363. package/dist/cjs/infra/providers/InfraProvider.js.map +0 -1
  364. package/dist/cjs/infra/providers/JenkinsProvider.d.ts +0 -16
  365. package/dist/cjs/infra/providers/JenkinsProvider.d.ts.map +0 -1
  366. package/dist/cjs/infra/providers/JenkinsProvider.js +0 -193
  367. package/dist/cjs/infra/providers/JenkinsProvider.js.map +0 -1
  368. package/dist/cjs/infra/providers/OKDProvider.d.ts +0 -24
  369. package/dist/cjs/infra/providers/OKDProvider.d.ts.map +0 -1
  370. package/dist/cjs/infra/providers/OKDProvider.js +0 -296
  371. package/dist/cjs/infra/providers/OKDProvider.js.map +0 -1
  372. package/dist/cjs/infra/providers/TerraformProvider.d.ts +0 -17
  373. package/dist/cjs/infra/providers/TerraformProvider.d.ts.map +0 -1
  374. package/dist/cjs/infra/providers/TerraformProvider.js +0 -111
  375. package/dist/cjs/infra/providers/TerraformProvider.js.map +0 -1
  376. package/dist/cjs/infra/providers/index.d.ts +0 -9
  377. package/dist/cjs/infra/providers/index.d.ts.map +0 -1
  378. package/dist/cjs/infra/providers/index.js +0 -34
  379. package/dist/cjs/infra/providers/index.js.map +0 -1
  380. package/dist/cjs/infra/templates/jenkins/index.d.ts +0 -15
  381. package/dist/cjs/infra/templates/jenkins/index.d.ts.map +0 -1
  382. package/dist/cjs/infra/templates/jenkins/index.js +0 -128
  383. package/dist/cjs/infra/templates/jenkins/index.js.map +0 -1
  384. package/dist/cjs/infra/templates/okd/index.d.ts +0 -31
  385. package/dist/cjs/infra/templates/okd/index.d.ts.map +0 -1
  386. package/dist/cjs/infra/templates/okd/index.js +0 -149
  387. package/dist/cjs/infra/templates/okd/index.js.map +0 -1
  388. package/dist/esm/infra/analyzers/DriftDetector.d.ts +0 -4
  389. package/dist/esm/infra/analyzers/DriftDetector.d.ts.map +0 -1
  390. package/dist/esm/infra/analyzers/DriftDetector.js +0 -84
  391. package/dist/esm/infra/analyzers/DriftDetector.js.map +0 -1
  392. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts +0 -3
  393. package/dist/esm/infra/analyzers/InfraAnalyzer.d.ts.map +0 -1
  394. package/dist/esm/infra/analyzers/InfraAnalyzer.js +0 -70
  395. package/dist/esm/infra/analyzers/InfraAnalyzer.js.map +0 -1
  396. package/dist/esm/infra/config.d.ts +0 -17
  397. package/dist/esm/infra/config.d.ts.map +0 -1
  398. package/dist/esm/infra/config.js +0 -101
  399. package/dist/esm/infra/config.js.map +0 -1
  400. package/dist/esm/infra/errorCause.d.ts +0 -36
  401. package/dist/esm/infra/errorCause.d.ts.map +0 -1
  402. package/dist/esm/infra/errorCause.js +0 -138
  403. package/dist/esm/infra/errorCause.js.map +0 -1
  404. package/dist/esm/infra/providers/InfraProvider.d.ts +0 -9
  405. package/dist/esm/infra/providers/InfraProvider.d.ts.map +0 -1
  406. package/dist/esm/infra/providers/InfraProvider.js +0 -2
  407. package/dist/esm/infra/providers/InfraProvider.js.map +0 -1
  408. package/dist/esm/infra/providers/JenkinsProvider.d.ts +0 -16
  409. package/dist/esm/infra/providers/JenkinsProvider.d.ts.map +0 -1
  410. package/dist/esm/infra/providers/JenkinsProvider.js +0 -186
  411. package/dist/esm/infra/providers/JenkinsProvider.js.map +0 -1
  412. package/dist/esm/infra/providers/OKDProvider.d.ts +0 -24
  413. package/dist/esm/infra/providers/OKDProvider.d.ts.map +0 -1
  414. package/dist/esm/infra/providers/OKDProvider.js +0 -292
  415. package/dist/esm/infra/providers/OKDProvider.js.map +0 -1
  416. package/dist/esm/infra/providers/TerraformProvider.d.ts +0 -17
  417. package/dist/esm/infra/providers/TerraformProvider.d.ts.map +0 -1
  418. package/dist/esm/infra/providers/TerraformProvider.js +0 -107
  419. package/dist/esm/infra/providers/TerraformProvider.js.map +0 -1
  420. package/dist/esm/infra/providers/index.d.ts +0 -9
  421. package/dist/esm/infra/providers/index.d.ts.map +0 -1
  422. package/dist/esm/infra/providers/index.js +0 -27
  423. package/dist/esm/infra/providers/index.js.map +0 -1
  424. package/dist/esm/infra/templates/jenkins/index.d.ts +0 -15
  425. package/dist/esm/infra/templates/jenkins/index.d.ts.map +0 -1
  426. package/dist/esm/infra/templates/jenkins/index.js +0 -124
  427. package/dist/esm/infra/templates/jenkins/index.js.map +0 -1
  428. package/dist/esm/infra/templates/okd/index.d.ts +0 -31
  429. package/dist/esm/infra/templates/okd/index.d.ts.map +0 -1
  430. package/dist/esm/infra/templates/okd/index.js +0 -142
  431. package/dist/esm/infra/templates/okd/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../../../src/mcp/tools/devtools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"devtools.js","sourceRoot":"","sources":["../../../../src/mcp/tools/devtools.ts"],"names":[],"mappings":"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"}
@@ -6,5 +6,13 @@
6
6
  */
7
7
  import type { ToolDefinition, ToolHandler } from "../toolTypes";
8
8
  export declare const MEMORY_TOOL_DEFINITIONS: ToolDefinition[];
9
+ /**
10
+ * A memory that reads as a log of what was done — "release v1.31.0: what shipped", "commit abc123:
11
+ * …", "hito v1.26.0". On Lemma's own repo these were most of the memories written on purpose and
12
+ * none was ever recalled: the next session asks why something breaks or how to do it, never what
13
+ * shipped on a date, and git log / the CHANGELOG answer that anyway. A how/why question is
14
+ * knowledge even when it mentions a release ("how to publish a release"), so it is let through.
15
+ */
16
+ export declare function looksLikeLogbook(query: string): boolean;
9
17
  export declare const MEMORY_TOOL_HANDLERS: Record<string, ToolHandler>;
10
18
  //# sourceMappingURL=memory.d.ts.map
@@ -1 +1 @@
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"}
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,EAyVnD,CAAC;AAwTF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAOvD;AA4nBD,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAiB5D,CAAC"}
@@ -10,6 +10,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MEMORY_TOOL_HANDLERS = exports.MEMORY_TOOL_DEFINITIONS = void 0;
13
+ exports.looksLikeLogbook = looksLikeLogbook;
13
14
  const fs_1 = __importDefault(require("fs"));
14
15
  const path_1 = __importDefault(require("path"));
15
16
  const TheBrainV2_1 = require("../../subconscious/TheBrainV2");
@@ -19,7 +20,7 @@ const TokenReceipt_1 = require("../../utils/TokenReceipt");
19
20
  const utils_1 = require("../utils");
20
21
  const cognitiveMap_1 = require("../cognitiveMap");
21
22
  const SessionEvidence_1 = require("../../utils/SessionEvidence");
22
- const NearMiss_1 = require("../../subconscious/NearMiss");
23
+ const NarrowEvidence_1 = require("../../subconscious/NarrowEvidence");
23
24
  const ageLabel_1 = require("../../utils/ageLabel");
24
25
  const ExternalRefs_1 = require("../../subconscious/ExternalRefs");
25
26
  const TeamBrain_1 = require("../../subconscious/TeamBrain");
@@ -47,16 +48,16 @@ exports.MEMORY_TOOL_DEFINITIONS = [
47
48
  {
48
49
  name: "search_memory",
49
50
  annotations: { readOnlyHint: true, openWorldHint: false },
50
- description: "Search Lemma's semantic memory (The Brain) before investigating something from scratch — retrieves past solutions, fixes, and context from ALL your projects globally. Results split into 'fresh' (safe to reuse) and 'stale' (a tracked file changed since — re-verify before reusing). Never treat a stale result as current. If a returned memory turns out wrong once acted on, call downvote_memory with its id.",
51
+ description: "Search the Brain before investigating something from scratch: past fixes, traps, failed approaches and decisions from earlier sessions. Returns a ranked shortlist (headline, excerpt, fresh/STALE) — pick the one that answers your question and get_memory it for the body. Never treat a STALE result as current.",
51
52
  inputSchema: {
52
53
  type: "object",
53
54
  properties: {
54
55
  query: { type: "string", description: "The natural language query" },
55
- limit: { type: "number", description: "Maximum results to return", default: 5 },
56
+ limit: { type: "number", description: "Max results; omit for the top 3 (up to 10)" },
56
57
  minSimilarity: {
57
58
  type: "number",
58
- description: "Similarity floor (0.0-1.0) a memory must clear to be returned. Lowering this surfaces loosely related memories that are usually noise — leave it alone unless a known-relevant memory is being filtered out.",
59
- default: 0.75,
59
+ description: "Optional floor (0-1) on the ranking score. Off by default: the score ranks well but does not separate relevant from unrelated.",
60
+ default: 0,
60
61
  },
61
62
  domain: {
62
63
  type: "string",
@@ -64,7 +65,12 @@ exports.MEMORY_TOOL_DEFINITIONS = [
64
65
  },
65
66
  semanticDiff: {
66
67
  type: "boolean",
67
- description: "Don't count a comment/whitespace-only change as stale.",
68
+ description: "Don't count a comment/whitespace-only change as stale (default). Pass false to treat any edit to the tracked code as a change.",
69
+ default: true,
70
+ },
71
+ allProjects: {
72
+ type: "boolean",
73
+ description: "Also search memories from your other projects (labelled as such). Off by default: they may be confidential and rarely apply here.",
68
74
  default: false,
69
75
  },
70
76
  },
@@ -91,7 +97,7 @@ exports.MEMORY_TOOL_DEFINITIONS = [
91
97
  {
92
98
  name: "store_memory",
93
99
  annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
94
- description: "Save a verified solution, fix, decision or fact to the Brain so it needn't be re-investigated. Pass filePaths (or `symbols` for one function/class) so it goes stale when that code changes; if both are omitted, Lemma guesses from the files this session touched and flags it as a guess. outcome='failed' records a dead end. To correct or extend an existing memory use update_memory — storing a revision here creates a second entry and searches return a mix of both.",
100
+ description: "Save a verified fix, decision or fact so it needn't be re-investigated: what code and git can't tell the next session (root cause, trap, failed approach, how-to), not a log of what shipped. Pass filePaths (or `symbols`) so it goes stale when that code changes; omitted, Lemma guesses from files this session touched. outcome='failed' records a dead end. To correct a memory use update_memory — a re-store here leaves both versions.",
95
101
  inputSchema: {
96
102
  type: "object",
97
103
  properties: {
@@ -212,8 +218,8 @@ exports.MEMORY_TOOL_DEFINITIONS = [
212
218
  ids: { type: "array", items: { type: "string" }, description: "Entry and/or claim ids to revalidate, from a prior search_memory/store_memory result." },
213
219
  semanticDiff: {
214
220
  type: "boolean",
215
- description: "Don't count a comment/whitespace-only change as stale.",
216
- default: false,
221
+ description: "Don't count a comment/whitespace-only change as stale (default). Pass false to treat any edit to the tracked code as a change.",
222
+ default: true,
217
223
  },
218
224
  },
219
225
  required: ["ids"],
@@ -369,142 +375,125 @@ exports.MEMORY_TOOL_DEFINITIONS = [
369
375
  },
370
376
  },
371
377
  ];
378
+ /**
379
+ * Ids the last search_memory calls put on a shortlist. A get_memory of one of them is the
380
+ * moment a memory was actually reused, so that is where its hit and its saving are booked —
381
+ * listing a headline saves nothing by itself.
382
+ */
383
+ const _shortlisted = new Set();
384
+ const SHORTLIST_MEMORY = 200;
385
+ const EXCERPT_CHARS = 180;
386
+ /**
387
+ * How many candidates a search shows when the caller sets no `limit`. Measured on the recall
388
+ * benchmark (94 questions, two corpora): the answer was first in 76, second in 11, third in 4,
389
+ * fourth in 1 and never fifth, so the last two slots were ~250 tokens of unrelated headlines per
390
+ * search for 1% of recall. The rest are counted, not shown, and `limit` brings them back.
391
+ */
392
+ const DEFAULT_SHOWN = 3;
393
+ const DEFAULT_FETCHED = 5;
394
+ function excerpt(text) {
395
+ const flat = String(typeof text === "string" ? text : JSON.stringify(text)).replace(/\s+/g, " ").trim();
396
+ return flat.length > EXCERPT_CHARS ? `${flat.slice(0, EXCERPT_CHARS - 1)}…` : flat;
397
+ }
398
+ /**
399
+ * search_memory answers with a ranked shortlist, not a verdict.
400
+ *
401
+ * It used to return a memory only above a 0.75 similarity floor and otherwise said
402
+ * "Investigate from scratch — there is nothing safe to reuse". Measured on Lemma's own Brain
403
+ * (18 questions a later session would really ask), the right memory ranked first 15 times and
404
+ * in the top three every time — and cleared the floor zero times. The score can't carry a
405
+ * floor: BM25 is normalized against the best candidate *of the same search*, so the top result
406
+ * of an unrelated question scores 0.54–0.66, the same band as a correct one (0.56–0.73). The
407
+ * ranking is good; deciding relevance from headlines is something the agent does well. So the
408
+ * Brain shortlists and the agent picks, then reads the one that answers with get_memory.
409
+ */
372
410
  async function handleSearchMemory(args) {
373
- const query = args?.query;
374
- const limit = args?.limit || 5;
375
- // A floor of 0 returns the nearest neighbour no matter how unrelated it is, and the
376
- // formatting below then presents it as a reusable memory. Match smarter_cache's
377
- // threshold so both paths agree on what counts as a hit.
378
- const minSimilarity = typeof args?.minSimilarity === "number" ? args.minSimilarity : utils_1.DEFAULT_MEMORY_SIMILARITY_FLOOR;
411
+ const query = typeof args?.query === "string" ? args.query : "";
412
+ const explicitLimit = typeof args?.limit === "number" && args.limit > 0;
413
+ const limit = Math.min(Math.max(Math.floor(args?.limit || DEFAULT_FETCHED), 1), 10);
414
+ // Explicit floors are still honoured; by default nothing is cut, for the reason above.
415
+ const minSimilarity = typeof args?.minSimilarity === "number" ? args.minSimilarity : 0;
379
416
  const domain = typeof args?.domain === "string" && args.domain.trim() ? args.domain.trim() : undefined;
380
- const semanticDiff = args?.semanticDiff === true;
417
+ const semanticDiff = args?.semanticDiff !== false;
381
418
  if (!query)
382
419
  throw new Error("Query is required");
383
420
  try {
384
421
  const brain = (0, TheBrainV2_1.getBrain)();
385
- // searchHybrid is search() plus one boolean check unless LEMMA_BRAIN_EMBEDDINGS is set,
386
- // so this costs nothing by default and picks up the semantic re-rank when it is enabled.
387
- const results = await brain.searchHybrid(query, limit, minSimilarity, { projectId: (0, TheBrainV2_1.deriveProjectId)(), domain, semanticDiff });
388
- if (results.length === 0) {
389
- (0, TokenReceipt_1.recordReceiptEvent)("reasoning", query.substring(0, 100), {
390
- tool: "search_memory",
391
- reason: `no memory above the ${minSimilarity} similarity floor`,
392
- });
393
- // searchHybrid already filtered anything below minSimilarity out of `results`, so the
394
- // near-miss check needs its own uncapped lookup — countStats:false, this must not
395
- // register as a second miss on top of the one searchHybrid just counted.
396
- const uncapped = brain.search(query, ORIENTATION_LIMIT, 0, { projectId: (0, TheBrainV2_1.deriveProjectId)(), domain, countStats: false });
397
- const nearMiss = (0, NearMiss_1.bucketNearMiss)(uncapped[0] ? { id: uncapped[0].id, query: uncapped[0].query, similarity: uncapped[0].similarity } : undefined, minSimilarity);
398
- // A miss that says nothing cannot tell "nothing related" from "something related at 60%".
399
- // These are for orientation only: below the floor, never reusable, never credited.
400
- const related = uncapped
401
- .filter((r) => r.similarity >= ORIENTATION_MIN)
402
- .map((r) => ` - ${r.id} (${(r.similarity * 100).toFixed(0)}%, stored ${(0, ageLabel_1.ageLabel)(r.timestamp)}): ${r.query.substring(0, 100)}`);
403
- const orientation = related.length > 0
404
- ? `\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")}`
405
- : "";
422
+ // countStats:false — appearing on a shortlist is not a reuse; get_memory books that.
423
+ const projectId = (0, TheBrainV2_1.deriveProjectId)();
424
+ adoptOnce(brain, projectId);
425
+ const candidates = await brain.searchHybrid(query, limit, minSimilarity, {
426
+ projectId,
427
+ allProjects: args?.allProjects === true,
428
+ domain,
429
+ semanticDiff,
430
+ countStats: false,
431
+ });
432
+ const results = explicitLimit ? candidates : candidates.slice(0, DEFAULT_SHOWN);
433
+ const hidden = candidates.length - results.length;
434
+ if (results.length === 0 && (0, TheBrainV2_1.tokenize)(query).length === 0) {
406
435
  return {
407
- content: [{
408
- type: "text",
409
- 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}`,
410
- }],
436
+ content: [{ type: "text", text: "This query has no searchable words (only stop words or symbols). Search with the error text, a symbol or file name, or the words of the question." }],
411
437
  };
412
438
  }
413
- // An entry that tracks nothing reports `fresh: true` vacuously (checkEntryFreshness has
414
- // nothing to compare) — it must NOT land in the verified-fresh bucket, be credited as a
415
- // cache hit, or be told "from cache". It gets its own UNTRACKED bucket instead.
416
- const fresh = results.filter((r) => r.fresh && !r.untracked);
417
- const stale = results.filter((r) => !r.fresh);
418
- const untracked = results.filter((r) => r.fresh && r.untracked);
419
- const formatClaims = (r) => {
420
- if (!Array.isArray(r.claims) || r.claims.length === 0)
421
- return "";
422
- const lines = r.claims.map((c) => c.fresh
423
- ? ` ✓ fresh: ${c.text}`
424
- : ` ✗ STALE (${(c.staleFiles || []).join(", ")}): ${c.text}`);
425
- const staleCount = r.claims.filter((c) => !c.fresh).length;
426
- return `\nClaims (${r.claims.length - staleCount}/${r.claims.length} still fresh — trust only the ✓ ones):\n${lines.join("\n")}`;
427
- };
428
- const formatResult = (r, i) => `Result ${i + 1} (id: ${r.id}, Similarity: ${(r.similarity * 100).toFixed(1)}%, stored ${(0, ageLabel_1.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
429
- ? `\n💰 This memory has saved ${r.tokensSaved} tokens across ${r.hits || "?"} reuse(s) — prefer it over re-deriving.`
430
- : ""}\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
431
- ? `\nEvidence: ${r.evidence.map((e) => {
432
- const sep = e.lastIndexOf("::");
433
- return sep > 0 ? `${relLabel(e.substring(0, sep))}::${e.substring(sep + 2)}` : relLabel(e);
434
- }).join(", ")}`
435
- : ""}${Array.isArray(r.whyShown) && r.whyShown.length > 0
436
- ? `\nWhy shown: ${r.whyShown.join(" · ")}`
437
- : ""}${Array.isArray(r.cosmeticChanges) && r.cosmeticChanges.length > 0
438
- ? `\n(comment/whitespace-only change, ignored under semanticDiff: ${r.cosmeticChanges.join(", ")})`
439
- : ""}`;
440
- if (fresh.length > 0) {
441
- // Only a fresh hit (or an untracked, purely conceptual entry) counts as a real
442
- // avoided re-investigation — this is the only case worth crediting as savings.
443
- const bestFresh = fresh[0];
444
- const { net: tokensSaved } = (0, squeeze_cache_1.netTokensSaved)(Math.max(400, String(bestFresh.response).length), query);
445
- (0, reportSavings_1.reportSavings)({ source: "cache", tokens: tokensSaved, toolName: "search_memory", query: query.substring(0, 100) });
446
- // Attribute the saving to the memory itself: the per-entry ROI ledger lives on the
447
- // entry (persisted, merged, imported), booked on the same event as the ledger above
448
- // so the two can never disagree about whether a reuse happened.
449
- brain.creditSavings(bestFresh.id, tokensSaved);
450
- (0, TokenReceipt_1.recordReceiptEvent)("semantic_cache_hit", query.substring(0, 100), {
451
- tool: "search_memory",
452
- similarity: bestFresh.similarity,
453
- tokensSaved,
454
- memoryId: bestFresh.id,
455
- });
456
- }
457
- else if (untracked.length > 0) {
458
- (0, TokenReceipt_1.recordReceiptEvent)("reasoning", query.substring(0, 100), {
459
- tool: "search_memory",
460
- reason: `${untracked.length} similar but UNTRACKED — no evidence to verify, not credited as a cache hit`,
461
- });
462
- }
463
- else {
464
- (0, TokenReceipt_1.recordReceiptEvent)("reasoning", query.substring(0, 100), {
465
- tool: "search_memory",
466
- reason: `${stale.length} similar memory/memories found but all stale — must re-verify`,
467
- });
468
- }
469
- const parts = [];
470
- if (fresh.length > 0) {
471
- parts.push(`Lemma found ${fresh.length} fresh ${fresh.length === 1 ? "memory" : "memories"} (from cache — say so if you use this):\n\n${fresh.map(formatResult).join("\n\n---\n\n")}`);
472
- }
473
- if (untracked.length > 0) {
474
- const untrackedText = untracked
475
- .map((r, i) => formatResult(r, i))
476
- .join("\n\n---\n\n");
477
- parts.push(`⚠️ ${untracked.length} ${untracked.length === 1 ? "memory is" : "memories are"} similar but UNTRACKED — ${untracked.length === 1 ? "it tracks" : "they track"} no files or symbols, so nothing was verified against current code (${untracked.length === 1 ? "it is" : "they are"} vacuously "fresh": there was nothing to check). ${untracked.length === 1 ? "It may" : "They may"} describe state that no longer exists — treat as a hint, re-verify against the repo before acting on it, and use update_memory/refresh_memory with filePaths/symbols so it becomes verifiable next time:\n\n${untrackedText}`);
439
+ if (results.length === 0) {
440
+ const why = minSimilarity > 0
441
+ ? `scored at or above the ${minSimilarity} floor you set`
442
+ : "shares a term with this query — nothing was learned about it in an earlier session";
443
+ (0, TokenReceipt_1.recordReceiptEvent)("reasoning", query.substring(0, 100), { tool: "search_memory", reason: `no memory ${why}` });
444
+ return { content: [{ type: "text", text: `No memory in Lemma's Brain ${why}. Investigate from scratch.` }] };
478
445
  }
479
- if (stale.length > 0) {
480
- const staleText = stale
481
- .map((r, i) => {
482
- // "You are on a different branch" and "someone rewrote this function" are the same
483
- // hash mismatch and completely different situations for the reader: the first is
484
- // usually not a reason to distrust the memory at all.
485
- const cause = r.staleCause === "branch-changed"
486
- ? `\nNOTE: stored on branch \`${r.storedOnBranch}\`, you are on \`${(0, TheBrainV2_1.currentGitContext)().branch || "an unknown branch"}\`. The difference may be the branch switch rather than an edit — check before discarding this.`
446
+ for (const r of results)
447
+ _shortlisted.add(r.id);
448
+ while (_shortlisted.size > SHORTLIST_MEMORY)
449
+ _shortlisted.delete(_shortlisted.values().next().value);
450
+ void (0, reportSavings_1.reportRecall)({ projectPath: process.cwd(), trigger: "search", memoryIds: results.map((r) => r.id) });
451
+ (0, TokenReceipt_1.recordReceiptEvent)("reasoning", query.substring(0, 100), { tool: "search_memory", reason: `shortlisted ${results.length} memories` });
452
+ const line = (r, i) => {
453
+ const verdict = !r.fresh
454
+ ? r.staleCause === "branch-changed"
455
+ ? `STALE — stored on branch ${r.storedOnBranch}, you are on ${(0, TheBrainV2_1.currentGitContext)().branch || "another branch"}`
456
+ : `STALE — changed since: ${(r.staleFiles || []).map(relLabel).join(", ")}`
457
+ : r.untracked
458
+ ? "untracked — tracks no files, nothing to check it against"
459
+ : "fresh";
460
+ const failed = r.outcome === "failed" ? " ⚠️ FAILED APPROACH — tried before and did not work" : "";
461
+ const origin = r.scope === "other-project"
462
+ ? ` ⚠️ FROM ANOTHER PROJECT (${r.ownerProject}) — do not assume it applies here`
463
+ : r.scope === "unscoped"
464
+ ? " [stored before memories were scoped to a project — may not be from this one]"
487
465
  : "";
488
- return `${formatResult(r, i)}\nSTALE — changed since stored: ${r.staleFiles.join(", ")}${cause}`;
489
- })
490
- .join("\n\n---\n\n");
491
- parts.push(`${stale.length} more ${stale.length === 1 ? "memory is" : "memories are"} similar but STALE (underlying file(s) changed) — do not reuse verbatim, re-verify against current file state:\n\n${staleText}`);
492
- }
493
- return { content: [{ type: "text", text: parts.join("\n\n===\n\n") }] };
466
+ return `${i + 1}. ${r.id} (${(0, ageLabel_1.ageLabel)(r.timestamp)}, ${verdict})${failed}${origin}\n ${r.query.replace(/\s+/g, " ").slice(0, 160)}\n ${excerpt(r.response)}`;
467
+ };
468
+ const text = `Closest memories in Lemma's Brain, best match first. Ranking is lexical: the right memory is usually here, but so are unrelated ones that share words — judge each by its headline.\n\n` +
469
+ `${results.map(line).join("\n\n")}\n\n` +
470
+ (hidden > 0 ? `(${hidden} lower-ranked ${hidden === 1 ? "candidate" : "candidates"} not shown — pass limit: ${candidates.length} to see ${hidden === 1 ? "it" : "them"}.)\n\n` : "") +
471
+ `If one answers your question, get_memory <id> for the full body before relying on it (a STALE one must be re-checked against the current code; a FAILED one is a warning, not a suggestion). If none does, investigate from scratch. A memory that turns out wrong: downvote_memory or forget_memory it.`;
472
+ return { content: [{ type: "text", text }] };
494
473
  }
495
474
  catch (e) {
496
475
  (0, utils_1.logError)("search_memory", e);
497
476
  return { content: [{ type: "text", text: `Local Search failed: ${e.message}` }] };
498
477
  }
499
478
  }
479
+ /** Memories from before projects existed are adopted once per process, from the repo root. */
480
+ let _adopted = false;
481
+ function adoptOnce(brain, projectId) {
482
+ if (_adopted)
483
+ return;
484
+ _adopted = true;
485
+ try {
486
+ brain.adoptUnscopedByEvidence(projectId, process.cwd());
487
+ }
488
+ catch (e) {
489
+ (0, utils_1.logError)("adoptUnscopedByEvidence", e);
490
+ }
491
+ }
500
492
  /** Relative-to-cwd label for a tracked absolute path, matching how the Brain reports them. */
501
493
  function relLabel(abs) {
502
494
  const rel = path_1.default.relative(process.cwd(), abs);
503
495
  return rel.startsWith("..") ? abs : rel;
504
496
  }
505
- /** How many below-floor candidates a miss lists, and the weakest one still worth naming. */
506
- const ORIENTATION_LIMIT = 3;
507
- const ORIENTATION_MIN = 0.3;
508
497
  /** External refs (commit / MR / issue) an entry carries, as one readable line; "" if none. */
509
498
  function refsLine(entry) {
510
499
  const refs = Array.isArray(entry.refs) ? entry.refs : [];
@@ -554,6 +543,18 @@ async function handleGetMemory(args) {
554
543
  return { content: [{ type: "text", text: `No memory with id "${id}" in the Brain. It may have been deleted with forget_memory, or evicted at capacity — search_memory can find it by content if it is still there under another id.` }] };
555
544
  }
556
545
  const [status] = brain.verifyByIds([id]);
546
+ // Opened from a search_memory shortlist: this is the reuse. Booked once per shortlisting,
547
+ // and only for a memory that was checked against code and still holds — the same rule the
548
+ // old above-the-floor hit followed.
549
+ if (_shortlisted.delete(id) && includeResponse) {
550
+ brain.recordReuse(id);
551
+ if (status?.status === "fresh") {
552
+ const { net: tokensSaved } = (0, squeeze_cache_1.netTokensSaved)(Math.max(400, entry.response.length), entry.query);
553
+ (0, reportSavings_1.reportSavings)({ source: "cache", tokens: tokensSaved, toolName: "search_memory", query: entry.query.substring(0, 100) });
554
+ brain.creditSavings(id, tokensSaved);
555
+ (0, TokenReceipt_1.recordReceiptEvent)("semantic_cache_hit", entry.query.substring(0, 100), { tool: "get_memory", tokensSaved, memoryId: id });
556
+ }
557
+ }
557
558
  const facts = [
558
559
  `stored ${entry.timestamp}`,
559
560
  ...(entry.refreshedAt ? [`re-anchored ${entry.refreshedAt}`] : []),
@@ -626,7 +627,19 @@ async function handleUpdateMemory(args) {
626
627
  const ok = (0, TheBrainV2_1.getBrain)().setRefs(id, refs);
627
628
  return { content: [{ type: "text", text: ok ? `External refs on "${id}" ${refs.length > 0 ? `set to: ${refs.map(ExternalRefs_1.describeRef).join(", ")}` : "cleared"}. Nothing else was changed.` : `No entry with id "${id}" in the Brain.` }] };
628
629
  }
629
- const result = (0, TheBrainV2_1.getBrain)().update(id, { query, response, filePaths, symbols, claims, outcome, domain, derivedFrom, supersededBy, refs });
630
+ // New files without symbols: track the symbols the memory names in them instead (see
631
+ // NarrowEvidence) — the text it is judged by is the new one when given, else the stored one.
632
+ let trackFiles = filePaths;
633
+ let trackSymbols = symbols;
634
+ if (filePaths && filePaths.length > 0 && !symbols) {
635
+ const current = (0, TheBrainV2_1.getBrain)().getEntry(id);
636
+ const narrowed = (0, NarrowEvidence_1.narrowEvidence)(filePaths, `${query ?? current?.query ?? ""}\n${response ?? current?.response ?? ""}`);
637
+ if (narrowed.symbols.length > 0) {
638
+ trackFiles = narrowed.filePaths;
639
+ trackSymbols = narrowed.symbols;
640
+ }
641
+ }
642
+ const result = (0, TheBrainV2_1.getBrain)().update(id, { query, response, filePaths: trackFiles, symbols: trackSymbols, claims, outcome, domain, derivedFrom, supersededBy, refs });
630
643
  if (!result.ok)
631
644
  return { content: [{ type: "text", text: result.message }] };
632
645
  (0, TokenReceipt_1.recordReceiptEvent)("tool_call", `update_memory: ${id}`, {
@@ -652,6 +665,20 @@ async function handleUpdateMemory(args) {
652
665
  return { content: [{ type: "text", text: `Failed to update memory: ${e.message}` }], isError: true };
653
666
  }
654
667
  }
668
+ /**
669
+ * A memory that reads as a log of what was done — "release v1.31.0: what shipped", "commit abc123:
670
+ * …", "hito v1.26.0". On Lemma's own repo these were most of the memories written on purpose and
671
+ * none was ever recalled: the next session asks why something breaks or how to do it, never what
672
+ * shipped on a date, and git log / the CHANGELOG answer that anyway. A how/why question is
673
+ * knowledge even when it mentions a release ("how to publish a release"), so it is let through.
674
+ */
675
+ function looksLikeLogbook(query) {
676
+ const q = query.toLowerCase();
677
+ if (/^(how|why|cómo|como|por qué|porque)\s/.test(q))
678
+ return false;
679
+ return (/^commit [0-9a-f]{7,}/.test(q) ||
680
+ /(?<![a-z])(what shipped|shipped|released?|milestone|hito|changelog|qué trae|qué se publicó|publicad[oa])(?![a-z])/.test(q));
681
+ }
655
682
  async function handleStoreMemory(args) {
656
683
  const query = args?.query;
657
684
  const responseText = args?.response;
@@ -674,6 +701,17 @@ async function handleStoreMemory(args) {
674
701
  autoEvidence = true;
675
702
  }
676
703
  }
704
+ // A whole file goes stale on any edit anywhere in it; the symbols the memory names in it go
705
+ // stale only when what it talks about changes (see NarrowEvidence).
706
+ let narrowedNote = "";
707
+ if (filePaths && filePaths.length > 0 && (!symbols || symbols.length === 0) && query && responseText) {
708
+ const narrowed = (0, NarrowEvidence_1.narrowEvidence)(filePaths, `${query}\n${responseText}`);
709
+ if (narrowed.symbols.length > 0) {
710
+ filePaths = narrowed.filePaths.length > 0 ? narrowed.filePaths : undefined;
711
+ symbols = narrowed.symbols;
712
+ narrowedNote = ` Tracking the symbols it names instead of their whole file (${narrowed.narrowed.join("; ")}) — an edit elsewhere in those files won't stale it; pass symbols explicitly to choose others.`;
713
+ }
714
+ }
677
715
  const claims = Array.isArray(args?.claims)
678
716
  ? args.claims.filter((c) => c?.text)
679
717
  : undefined;
@@ -700,8 +738,17 @@ async function handleStoreMemory(args) {
700
738
  filePaths,
701
739
  note: "memory written — no tokens saved yet",
702
740
  });
703
- const trackingNote = filePaths && filePaths.length > 0 ? ` Tracking freshness against ${filePaths.length} file(s) — this memory auto-invalidates if they change.` : "";
704
- const symbolNote = symbols && symbols.length > 0 ? ` Tracking freshness against ${symbols.length} symbol(s) specifically — unrelated edits elsewhere in those files won't stale this out.` : "";
741
+ const wholeFiles = (filePaths?.length ?? 0) - (storeRes.narrowedFiles?.length ?? 0);
742
+ const trackingNote = wholeFiles > 0 ? ` Tracking freshness against ${wholeFiles} file(s) — this memory auto-invalidates if they change.` : "";
743
+ const unresolved = storeRes.unresolvedSymbols ?? [];
744
+ const trackedSymbols = (symbols?.length ?? 0) - unresolved.length;
745
+ const symbolNote = (trackedSymbols > 0 ? ` Tracking freshness against ${trackedSymbols} symbol(s) specifically — unrelated edits elsewhere in those files won't stale this out.` : "") +
746
+ (unresolved.length > 0
747
+ ? ` ⚠️ Could not find ${unresolved.map((r) => `${r.symbolName} in ${r.filePath}`).join(", ")} — check the name; tracking ${unresolved.length === 1 ? "that file" : "those files"} whole instead, which goes stale on any edit to it.`
748
+ : "") +
749
+ ((storeRes.narrowedFiles?.length ?? 0) > 0
750
+ ? ` (${storeRes.narrowedFiles.join(", ")} not tracked whole: its symbols are, so unrelated edits to it won't stale this.)`
751
+ : "");
705
752
  const autoEvidenceNote = autoEvidence
706
753
  ? " (auto-derived from files/symbols this session touched, not passed explicitly — correct with update_memory if this guessed wrong)"
707
754
  : "";
@@ -726,10 +773,13 @@ async function handleStoreMemory(args) {
726
773
  // later store, verify_memory, refresh_memory, forget_memory. Without it the caller had
727
774
  // to search for the memory it had just written to do anything with it.
728
775
  const idNote = storeRes.id ? ` (id: ${storeRes.id})` : "";
776
+ const logbookNote = looksLikeLogbook(query)
777
+ ? "\n\n📓 This reads like a log of what was done or shipped. git log and the CHANGELOG already hold that, and log-style memories are the ones that never get recalled. If it contains what they don't — the root cause, the trap, the approach that failed, the non-obvious step — update_memory it so the key and body lead with that; otherwise forget_memory it."
778
+ : "";
729
779
  const scrubNote = storeRes.redactions > 0
730
780
  ? ` 🛡 ${storeRes.redactions} secret(s) redacted before storage — credentials are never persisted, only their placeholders.`
731
781
  : "";
732
- return { content: [{ type: "text", text: `Success: Memory stored${idNote}. ${storeRes.reason}${trackingNote}${symbolNote}${autoEvidenceNote}${outcomeNote}${claimsNote}${domainNote}${refsNote}${derivedFromNote}${conflictsNote}${textConflictsNote}${scrubNote}` }] };
782
+ return { content: [{ type: "text", text: `Success: Memory stored${idNote}. ${storeRes.reason}${trackingNote}${symbolNote}${autoEvidenceNote}${outcomeNote}${claimsNote}${domainNote}${refsNote}${derivedFromNote}${conflictsNote}${narrowedNote}${textConflictsNote}${scrubNote}${logbookNote}` }] };
733
783
  }
734
784
  catch (e) {
735
785
  (0, utils_1.logError)("store_memory", e);
@@ -1149,7 +1199,7 @@ async function handleBrainTeam(args) {
1149
1199
  }
1150
1200
  async function handleVerifyMemory(args) {
1151
1201
  const ids = Array.isArray(args?.ids) ? args.ids.filter((id) => typeof id === "string" && id) : [];
1152
- const semanticDiff = args?.semanticDiff === true;
1202
+ const semanticDiff = args?.semanticDiff !== false;
1153
1203
  if (ids.length === 0)
1154
1204
  throw new Error("ids is required and must be a non-empty array");
1155
1205
  try {
@@ -1229,22 +1279,44 @@ async function handleListMemories(args) {
1229
1279
  return { content: [{ type: "text", text: `Failed to list memories: ${e.message}` }], isError: true };
1230
1280
  }
1231
1281
  }
1282
+ /**
1283
+ * The Brain persists on a 500 ms debounce, which is right for the counters a read bumps but wrong
1284
+ * for a write the agent was just told succeeded: a host that closes the server inside that window
1285
+ * (SIGKILL, a crash, a fast stdin close) lost the memory while the reply said "stored". Tools that
1286
+ * change what the Brain knows flush before they answer; flushSync is a no-op when nothing is dirty.
1287
+ */
1288
+ function durably(handler) {
1289
+ const wrapped = async (args, ...rest) => {
1290
+ const result = await handler(args, ...rest);
1291
+ try {
1292
+ (0, TheBrainV2_1.getBrain)().flushSync();
1293
+ }
1294
+ catch {
1295
+ // The debounced save still runs and the next save() heals; a flush failure must not turn a
1296
+ // successful store into an error reply.
1297
+ }
1298
+ return result;
1299
+ };
1300
+ // tool-schema-props-used reads a handler's source to prove every advertised option is used.
1301
+ wrapped.toString = () => handler.toString();
1302
+ return wrapped;
1303
+ }
1232
1304
  exports.MEMORY_TOOL_HANDLERS = {
1233
1305
  list_memories: handleListMemories,
1234
1306
  search_memory: handleSearchMemory,
1235
1307
  get_memory: handleGetMemory,
1236
- store_memory: handleStoreMemory,
1237
- update_memory: handleUpdateMemory,
1238
- downvote_memory: handleDownvoteMemory,
1308
+ store_memory: durably(handleStoreMemory),
1309
+ update_memory: durably(handleUpdateMemory),
1310
+ downvote_memory: durably(handleDownvoteMemory),
1239
1311
  verify_memory: handleVerifyMemory,
1240
- forget_memory: handleForgetMemory,
1241
- refresh_memory: handleRefreshMemory,
1312
+ forget_memory: durably(handleForgetMemory),
1313
+ refresh_memory: durably(handleRefreshMemory),
1242
1314
  brain_stats: handleBrainStats,
1243
1315
  brain_export: handleBrainExport,
1244
- brain_import: handleBrainImport,
1316
+ brain_import: durably(handleBrainImport),
1245
1317
  brain_team: handleBrainTeam,
1246
- brain_trash: handleBrainTrash,
1247
- brain_upkeep: handleBrainUpkeep,
1248
- brain_merge: handleBrainMerge,
1318
+ brain_trash: durably(handleBrainTrash),
1319
+ brain_upkeep: durably(handleBrainUpkeep),
1320
+ brain_merge: durably(handleBrainMerge),
1249
1321
  };
1250
1322
  //# sourceMappingURL=memory.js.map