cortex-mcp 2.6.0 → 2.7.1

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 (198) hide show
  1. package/CHANGELOG.md +58 -279
  2. package/README.md +224 -393
  3. package/dist/cli/setup.js +60 -58
  4. package/dist/cli/setup.js.map +1 -1
  5. package/dist/config/config.js +2 -2
  6. package/dist/config/config.js.map +1 -1
  7. package/dist/db/database.d.ts +0 -8
  8. package/dist/db/database.d.ts.map +1 -1
  9. package/dist/db/database.js +2 -34
  10. package/dist/db/database.js.map +1 -1
  11. package/dist/db/event-log.d.ts +0 -4
  12. package/dist/db/event-log.d.ts.map +1 -1
  13. package/dist/db/event-log.js +10 -14
  14. package/dist/db/event-log.js.map +1 -1
  15. package/dist/db/memory-store.d.ts +3 -30
  16. package/dist/db/memory-store.d.ts.map +1 -1
  17. package/dist/db/memory-store.js +44 -140
  18. package/dist/db/memory-store.js.map +1 -1
  19. package/dist/embedding-worker.js +1 -1
  20. package/dist/embedding-worker.js.map +1 -1
  21. package/dist/hooks/git-capture.js +3 -3
  22. package/dist/hooks/git-hooks.js +2 -5
  23. package/dist/mcp-stdio.js +3 -34
  24. package/dist/mcp-stdio.js.map +1 -1
  25. package/dist/memory/anticipation-engine.d.ts.map +1 -1
  26. package/dist/memory/anticipation-engine.js +10 -18
  27. package/dist/memory/anticipation-engine.js.map +1 -1
  28. package/dist/memory/auto-learner.d.ts.map +1 -1
  29. package/dist/memory/auto-learner.js +43 -190
  30. package/dist/memory/auto-learner.js.map +1 -1
  31. package/dist/memory/confidence-decay.d.ts.map +1 -1
  32. package/dist/memory/confidence-decay.js +9 -13
  33. package/dist/memory/confidence-decay.js.map +1 -1
  34. package/dist/memory/embedding-manager.d.ts.map +1 -1
  35. package/dist/memory/embedding-manager.js +4 -6
  36. package/dist/memory/embedding-manager.js.map +1 -1
  37. package/dist/memory/export-import.js +2 -2
  38. package/dist/memory/export-import.js.map +1 -1
  39. package/dist/memory/git-memory.d.ts.map +1 -1
  40. package/dist/memory/git-memory.js +26 -20
  41. package/dist/memory/git-memory.js.map +1 -1
  42. package/dist/memory/learning-rate.js +7 -8
  43. package/dist/memory/learning-rate.js.map +1 -1
  44. package/dist/memory/llm-enhancer.d.ts +14 -2
  45. package/dist/memory/llm-enhancer.d.ts.map +1 -1
  46. package/dist/memory/llm-enhancer.js +46 -66
  47. package/dist/memory/llm-enhancer.js.map +1 -1
  48. package/dist/memory/memory-cache.d.ts.map +1 -1
  49. package/dist/memory/memory-cache.js +0 -10
  50. package/dist/memory/memory-cache.js.map +1 -1
  51. package/dist/memory/memory-consolidator.d.ts.map +1 -1
  52. package/dist/memory/memory-consolidator.js +14 -20
  53. package/dist/memory/memory-consolidator.js.map +1 -1
  54. package/dist/memory/memory-decay.d.ts.map +1 -1
  55. package/dist/memory/memory-decay.js +52 -82
  56. package/dist/memory/memory-decay.js.map +1 -1
  57. package/dist/memory/memory-quality.d.ts +1 -1
  58. package/dist/memory/memory-quality.d.ts.map +1 -1
  59. package/dist/memory/memory-quality.js +6 -9
  60. package/dist/memory/memory-quality.js.map +1 -1
  61. package/dist/memory/memory-ranker.d.ts.map +1 -1
  62. package/dist/memory/memory-ranker.js +3 -12
  63. package/dist/memory/memory-ranker.js.map +1 -1
  64. package/dist/memory/meta-memory.js +3 -3
  65. package/dist/memory/meta-memory.js.map +1 -1
  66. package/dist/memory/session-tracker.d.ts +0 -2
  67. package/dist/memory/session-tracker.d.ts.map +1 -1
  68. package/dist/memory/session-tracker.js +8 -26
  69. package/dist/memory/session-tracker.js.map +1 -1
  70. package/dist/memory/temporal-engine.d.ts.map +1 -1
  71. package/dist/memory/temporal-engine.js +13 -9
  72. package/dist/memory/temporal-engine.js.map +1 -1
  73. package/dist/retrieval/hybrid-retriever.d.ts +2 -0
  74. package/dist/retrieval/hybrid-retriever.d.ts.map +1 -1
  75. package/dist/retrieval/hybrid-retriever.js +13 -3
  76. package/dist/retrieval/hybrid-retriever.js.map +1 -1
  77. package/dist/scanners/architecture-graph.js +2 -2
  78. package/dist/scanners/architecture-graph.js.map +1 -1
  79. package/dist/scanners/code-verifier.d.ts +0 -1
  80. package/dist/scanners/code-verifier.d.ts.map +1 -1
  81. package/dist/scanners/code-verifier.js +14 -14
  82. package/dist/scanners/code-verifier.js.map +1 -1
  83. package/dist/scanners/context-builder.d.ts.map +1 -1
  84. package/dist/scanners/context-builder.js +45 -33
  85. package/dist/scanners/context-builder.js.map +1 -1
  86. package/dist/scanners/export-map.js +2 -2
  87. package/dist/scanners/export-map.js.map +1 -1
  88. package/dist/scanners/project-scanner.js +2 -2
  89. package/dist/scanners/project-scanner.js.map +1 -1
  90. package/dist/security/encryption.js +1 -1
  91. package/dist/security/encryption.js.map +1 -1
  92. package/dist/security/feature-gate.d.ts.map +1 -1
  93. package/dist/security/feature-gate.js +20 -62
  94. package/dist/security/feature-gate.js.map +1 -1
  95. package/dist/security/license.js +35 -282
  96. package/dist/security/license.js.map +1 -1
  97. package/dist/security/rate-limiter.d.ts +3 -4
  98. package/dist/security/rate-limiter.d.ts.map +1 -1
  99. package/dist/security/rate-limiter.js +29 -11
  100. package/dist/security/rate-limiter.js.map +1 -1
  101. package/dist/server/dashboard.js +327 -166
  102. package/dist/server/dashboard.js.map +1 -1
  103. package/dist/server/mcp-handler.d.ts.map +1 -1
  104. package/dist/server/mcp-handler.js +827 -1002
  105. package/dist/server/mcp-handler.js.map +1 -1
  106. package/package.json +8 -18
  107. package/dist/memory/access-pattern-tracker.d.ts +0 -51
  108. package/dist/memory/access-pattern-tracker.d.ts.map +0 -1
  109. package/dist/memory/access-pattern-tracker.js +0 -92
  110. package/dist/memory/access-pattern-tracker.js.map +0 -1
  111. package/dist/memory/completion-resolver.d.ts +0 -38
  112. package/dist/memory/completion-resolver.d.ts.map +0 -1
  113. package/dist/memory/completion-resolver.js +0 -127
  114. package/dist/memory/completion-resolver.js.map +0 -1
  115. package/dist/memory/convention-detector.d.ts +0 -11
  116. package/dist/memory/convention-detector.d.ts.map +0 -1
  117. package/dist/memory/convention-detector.js +0 -294
  118. package/dist/memory/convention-detector.js.map +0 -1
  119. package/dist/memory/correction-detector.d.ts +0 -33
  120. package/dist/memory/correction-detector.d.ts.map +0 -1
  121. package/dist/memory/correction-detector.js +0 -129
  122. package/dist/memory/correction-detector.js.map +0 -1
  123. package/dist/memory/cross-memory-linker.d.ts +0 -18
  124. package/dist/memory/cross-memory-linker.d.ts.map +0 -1
  125. package/dist/memory/cross-memory-linker.js +0 -115
  126. package/dist/memory/cross-memory-linker.js.map +0 -1
  127. package/dist/memory/daily-diary.d.ts +0 -30
  128. package/dist/memory/daily-diary.d.ts.map +0 -1
  129. package/dist/memory/daily-diary.js +0 -159
  130. package/dist/memory/daily-diary.js.map +0 -1
  131. package/dist/memory/embedding-cache.d.ts +0 -32
  132. package/dist/memory/embedding-cache.d.ts.map +0 -1
  133. package/dist/memory/embedding-cache.js +0 -76
  134. package/dist/memory/embedding-cache.js.map +0 -1
  135. package/dist/memory/error-learner.d.ts +0 -26
  136. package/dist/memory/error-learner.d.ts.map +0 -1
  137. package/dist/memory/error-learner.js +0 -145
  138. package/dist/memory/error-learner.js.map +0 -1
  139. package/dist/memory/file-relationships.d.ts +0 -47
  140. package/dist/memory/file-relationships.d.ts.map +0 -1
  141. package/dist/memory/file-relationships.js +0 -130
  142. package/dist/memory/file-relationships.js.map +0 -1
  143. package/dist/memory/impact-analyzer.d.ts +0 -16
  144. package/dist/memory/impact-analyzer.d.ts.map +0 -1
  145. package/dist/memory/impact-analyzer.js +0 -189
  146. package/dist/memory/impact-analyzer.js.map +0 -1
  147. package/dist/memory/instructions-generator.d.ts +0 -30
  148. package/dist/memory/instructions-generator.d.ts.map +0 -1
  149. package/dist/memory/instructions-generator.js +0 -117
  150. package/dist/memory/instructions-generator.js.map +0 -1
  151. package/dist/memory/memory-export-md.d.ts +0 -12
  152. package/dist/memory/memory-export-md.d.ts.map +0 -1
  153. package/dist/memory/memory-export-md.js +0 -188
  154. package/dist/memory/memory-export-md.js.map +0 -1
  155. package/dist/memory/mmr-reranker.d.ts +0 -39
  156. package/dist/memory/mmr-reranker.d.ts.map +0 -1
  157. package/dist/memory/mmr-reranker.js +0 -115
  158. package/dist/memory/mmr-reranker.js.map +0 -1
  159. package/dist/memory/pre-flight.d.ts +0 -24
  160. package/dist/memory/pre-flight.d.ts.map +0 -1
  161. package/dist/memory/pre-flight.js +0 -121
  162. package/dist/memory/pre-flight.js.map +0 -1
  163. package/dist/memory/preference-learner.d.ts +0 -28
  164. package/dist/memory/preference-learner.d.ts.map +0 -1
  165. package/dist/memory/preference-learner.js +0 -144
  166. package/dist/memory/preference-learner.js.map +0 -1
  167. package/dist/memory/query-expansion.d.ts +0 -28
  168. package/dist/memory/query-expansion.d.ts.map +0 -1
  169. package/dist/memory/query-expansion.js +0 -140
  170. package/dist/memory/query-expansion.js.map +0 -1
  171. package/dist/memory/regression-guard.d.ts +0 -35
  172. package/dist/memory/regression-guard.d.ts.map +0 -1
  173. package/dist/memory/regression-guard.js +0 -90
  174. package/dist/memory/regression-guard.js.map +0 -1
  175. package/dist/memory/resume-work.d.ts +0 -37
  176. package/dist/memory/resume-work.d.ts.map +0 -1
  177. package/dist/memory/resume-work.js +0 -141
  178. package/dist/memory/resume-work.js.map +0 -1
  179. package/dist/memory/soul-manager.d.ts +0 -30
  180. package/dist/memory/soul-manager.d.ts.map +0 -1
  181. package/dist/memory/soul-manager.js +0 -171
  182. package/dist/memory/soul-manager.js.map +0 -1
  183. package/dist/memory/success-tracker.d.ts +0 -33
  184. package/dist/memory/success-tracker.d.ts.map +0 -1
  185. package/dist/memory/success-tracker.js +0 -75
  186. package/dist/memory/success-tracker.js.map +0 -1
  187. package/dist/memory/tool-recommender.d.ts +0 -29
  188. package/dist/memory/tool-recommender.d.ts.map +0 -1
  189. package/dist/memory/tool-recommender.js +0 -117
  190. package/dist/memory/tool-recommender.js.map +0 -1
  191. package/dist/memory/usage-stats.d.ts +0 -98
  192. package/dist/memory/usage-stats.d.ts.map +0 -1
  193. package/dist/memory/usage-stats.js +0 -345
  194. package/dist/memory/usage-stats.js.map +0 -1
  195. package/dist/utils/extract-tags.d.ts +0 -16
  196. package/dist/utils/extract-tags.d.ts.map +0 -1
  197. package/dist/utils/extract-tags.js +0 -40
  198. package/dist/utils/extract-tags.js.map +0 -1
@@ -21,40 +21,22 @@ const PATTERNS = [
21
21
  /\b(don'?t|do not|never|avoid|stop using|instead of|rather than)\b.{5,80}/gi,
22
22
  /\b(wrong|incorrect|mistake|bug|error|issue|problem)\b.{5,60}(fix|correct|should|use|replace)/gi,
23
23
  /\b(fixed|corrected|resolved)\b.{5,60}/gi,
24
- /\b(should have|should've|that was wrong|my bad|oops|actually no)\b.{5,80}/gi,
25
- /\b(I was wrong|we were wrong|that's not right|not correct)\b.{5,60}/gi,
26
- /\b(better approach|better way|improved by|changed to)\b.{5,80}/gi,
27
24
  ],
28
25
  confidence: 0.75,
29
26
  reason: 'Auto-detected correction pattern',
30
27
  },
31
- // DECISION — "we decided", "I used", "going with", "chosen"
28
+ // DECISION — "we decided", "we'll use", "going with", "chosen"
32
29
  {
33
30
  type: 'DECISION',
34
31
  signals: [
35
- /\b((?:we|I)('ll| will| are going to| decided to| have decided)?)\s+(use|adopt|switch|go with|choose|pick|implement)\b.{5,80}/gi,
36
- /\b((?:we|I)\s+(?:used|chose|picked|adopted|switched to|went with|opted for))\b.{5,80}/gi,
32
+ /\b(we('ll| will| are going to| decided to)?)\s+(use|adopt|switch|go with|choose|pick|implement)\b.{5,80}/gi,
37
33
  /\b(decided|chosen|selected|picked|going with|sticking with)\b.{5,80}/gi,
38
34
  /\b(use|using)\s+\w+\s+(instead of|over|rather than)\s+\w+/gi,
39
- /\b(chose|opted for|went with|settled on|landed on)\b.{5,80}/gi,
40
- /\b(changed? from|switch(ed|ing) from|migrat(ed|ing) from)\b.{5,80}/gi,
41
- /\b(the plan is|approach is|strategy is|our approach)\b.{5,80}/gi,
42
35
  ],
43
- confidence: 0.78,
36
+ confidence: 0.70,
44
37
  reason: 'Auto-detected decision pattern',
45
38
  },
46
- // CONVENTION (specific) high confidence, specific phrases
47
- {
48
- type: 'CONVENTION',
49
- signals: [
50
- /\b(best practice|recommended|idiomatic|canonical|proper way)\b.{5,80}/gi,
51
- /\b(we always|our convention|preferred way|house rule|team rule)\b.{5,80}/gi,
52
- /\b(in this (project|codebase|repo)|across the (project|codebase))\b.{5,80}/gi,
53
- ],
54
- confidence: 0.85,
55
- reason: 'Auto-detected convention pattern (specific)',
56
- },
57
- // CONVENTION (generic) — lower confidence
39
+ // CONVENTION — "always", "should always", "must", "standard", "convention"
58
40
  {
59
41
  type: 'CONVENTION',
60
42
  signals: [
@@ -72,26 +54,11 @@ const PATTERNS = [
72
54
  /\b(bug|the (issue|problem|cause) was|root cause|was causing|the fix)\b.{5,80}/gi,
73
55
  /\b(fixed by|resolved by|the solution (is|was))\b.{5,80}/gi,
74
56
  /\b(crash|exception|error|fail(ed|ure)?)\b.{5,60}(because|due to|caused by|fixed)/gi,
75
- /\b(the fix was|worked after|the trick was|solved by)\b.{5,80}/gi,
76
- /\b(turns out|it was because|the real issue)\b.{5,80}/gi,
77
- /\b(workaround|hack|temporary fix|quick fix)\b.{5,80}/gi,
78
57
  ],
79
58
  confidence: 0.80,
80
59
  reason: 'Auto-detected bug fix pattern',
81
60
  },
82
- // INSIGHT (specific) high confidence, clear phrases
83
- {
84
- type: 'INSIGHT',
85
- signals: [
86
- /\b(for future reference|next time|in the future)\b.{5,80}/gi,
87
- /\b(learned that|realized|discovered|found out|it turns out)\b.{5,80}/gi,
88
- /\b(the key is|the secret is|the trick is|pro tip)\b.{5,80}/gi,
89
- /\b(interestingly|surprisingly|counterintuitively|unexpectedly)\b.{5,80}/gi,
90
- ],
91
- confidence: 0.85,
92
- reason: 'Auto-detected insight pattern (specific)',
93
- },
94
- // INSIGHT (generic) — lower confidence
61
+ // INSIGHT — "key insight", "important to note", "worth remembering"
95
62
  {
96
63
  type: 'INSIGHT',
97
64
  signals: [
@@ -152,102 +119,13 @@ const PATTERNS = [
152
119
  confidence: 0.60,
153
120
  reason: 'Auto-detected current task / priority',
154
121
  },
155
- // IMPLICIT DECISION — "let's go with", "I'll use", "we're using", "going to use"
156
- {
157
- type: 'DECISION',
158
- signals: [
159
- /\b(let'?s (go with|use|try|do|build|implement))\b.{5,80}/gi,
160
- /\b(I'?ll (use|go with|try|implement|build|create|set up))\b.{5,80}/gi,
161
- /\b(we'?re (using|going with|building with|switching to))\b.{5,80}/gi,
162
- /\b(going to use|plan to use|want to use)\b.{5,80}/gi,
163
- /\b(set up|configured|installed)\s+\w+\s+(for|as|to handle)\b.{5,60}/gi,
164
- ],
165
- confidence: 0.68,
166
- reason: 'Auto-detected implicit decision',
167
- },
168
- // COMPARISON — "X works better than Y", "X is faster", "prefer X over Y"
169
- {
170
- type: 'DECISION',
171
- signals: [
172
- /\b\w+\s+(works? better|is (better|faster|simpler|cleaner|safer)|outperforms?)\s+(than\s+)?\w+/gi,
173
- /\b(prefer|recommend)\s+\w+\s+(over|instead of|rather than)\s+\w+/gi,
174
- /\b(X|the|this)\s+(approach|solution|method|pattern)\s+is\s+(better|worse|simpler|faster)/gi,
175
- /\b(more (reliable|scalable|maintainable|readable|performant))\b.{5,60}/gi,
176
- ],
177
- confidence: 0.65,
178
- reason: 'Auto-detected comparison / preference',
179
- },
180
- // PREFERENCE — "I like", "I want", "please always", user style preferences
181
- {
182
- type: 'CONVENTION',
183
- signals: [
184
- /\b(I (like|want|prefer|need) (you to|it to|the))\b.{5,80}/gi,
185
- /\b(please (always|never|don'?t|make sure))\b.{5,80}/gi,
186
- /\b(be more (concise|verbose|detailed|careful|specific))\b.{5,60}/gi,
187
- /\b(I don'?t (like|want|need))\b.{5,80}/gi,
188
- /\b(from now on|going forward|in the future)\b.{5,80}/gi,
189
- ],
190
- confidence: 0.72,
191
- reason: 'Auto-detected user preference',
192
- },
193
- // ENVIRONMENT — "runs on", "deployed to", "uses port", config knowledge
194
- {
195
- type: 'INSIGHT',
196
- signals: [
197
- /\b(runs? on|deployed to|hosted on|hosted at)\b.{5,80}/gi,
198
- /\b(port\s+\d+|localhost:\d+|\.env)\b.{5,60}/gi,
199
- /\b(database is|DB is|using\s+(postgres|mysql|mongo|redis|sqlite))\b.{5,80}/gi,
200
- /\b(API (key|token|secret|endpoint) is)\b.{5,60}/gi,
201
- /\b(production|staging|development)\s+(server|environment|URL|database)\b.{5,60}/gi,
202
- ],
203
- confidence: 0.70,
204
- reason: 'Auto-detected environment/config knowledge',
205
- },
206
- // ARCHITECTURE — "X calls Y", "X depends on", "flow is", structure knowledge
207
- {
208
- type: 'INSIGHT',
209
- signals: [
210
- /\b(depends? on|imports? from|calls?|wraps?|extends?|inherits? from)\b.{5,80}/gi,
211
- /\b(the flow is|data flows?|pipeline is|architecture is)\b.{5,80}/gi,
212
- /\b(entry point|main file|bootstrap|initialization)\b.{5,60}/gi,
213
- /\b(this (file|module|component|service) (handles?|manages?|is responsible))\b.{5,80}/gi,
214
- /\b(layer|tier|service|controller|middleware|handler)\s+(for|handles?|processes?)\b.{5,60}/gi,
215
- ],
216
- confidence: 0.60,
217
- reason: 'Auto-detected architecture knowledge',
218
- },
219
- // ERROR FINGERPRINT — captures error codes, stack traces, error messages for recall
220
- {
221
- type: 'BUG_FIX',
222
- signals: [
223
- /\b(Error|TypeError|ReferenceError|SyntaxError|RangeError):\s*.{10,100}/gi,
224
- /\b(ERR_|ENOENT|EACCES|ECONNREFUSED|EPERM|EISDIR)\b.{5,80}/gi,
225
- /\b(HTTP\s*(4\d\d|5\d\d))\b.{5,80}/gi,
226
- /\b(npm ERR|build failed|compilation error|test failed)\b.{5,80}/gi,
227
- /\b(stack trace|at\s+\w+\s+\()/gi,
228
- /\b(exit code\s*[1-9]|process exited|segfault|out of memory)\b.{5,60}/gi,
229
- /\b(cannot find module|module not found|import error|no such file)\b.{5,80}/gi,
230
- ],
231
- confidence: 0.82,
232
- reason: 'Auto-detected error fingerprint — enables instant fix recall when same error recurs',
233
- },
234
122
  ];
235
123
  // ─── Sentence Splitter ────────────────────────────────────────────────────────
236
124
  function splitSentences(text) {
237
- // CRITICAL FIX: Split on BOTH sentence boundaries AND newlines/bullets
238
- // AI responses use markdown bullets (- ), numbered lists (1. ), and newlines
239
- // — not just periods. Without this, markdown bullets merge into one giant
240
- // sentence and only the strongest pattern fires.
125
+ // Split on sentence boundaries, keeping reasonable length
241
126
  return text
242
- .replace(/```[\s\S]*?```/g, '') // Strip code blocks (don't learn from code)
243
- .replace(/`[^`]+`/g, '') // Strip inline code
244
- .split(/\n+/) // Split on newlines FIRST
245
- .flatMap(line => {
246
- // Strip markdown bullet prefixes: "- ", "* ", "1. ", "> "
247
- const cleaned = line.replace(/^\s*[-*>]\s+/, '').replace(/^\s*\d+\.\s+/, '').trim();
248
- // Then split remaining on sentence boundaries
249
- return cleaned.split(/(?<=[.!?])\s+/);
250
- })
127
+ .replace(/\n+/g, ' ')
128
+ .split(/(?<=[.!?])\s+/)
251
129
  .map(s => s.trim())
252
130
  .filter(s => s.length > 20 && s.length < 300);
253
131
  }
@@ -262,10 +140,7 @@ function extractMemories(text) {
262
140
  const sentences = splitSentences(text);
263
141
  const results = [];
264
142
  const seen = new Set();
265
- for (let i = 0; i < sentences.length; i++) {
266
- const sentence = sentences[i];
267
- // Collect ALL matching patterns for this sentence
268
- const candidates = [];
143
+ for (const sentence of sentences) {
269
144
  for (const pattern of PATTERNS) {
270
145
  let matched = false;
271
146
  for (const signal of pattern.signals) {
@@ -275,65 +150,43 @@ function extractMemories(text) {
275
150
  break;
276
151
  }
277
152
  }
278
- if (matched) {
279
- candidates.push({ pattern });
280
- }
153
+ if (!matched)
154
+ continue;
155
+ // Clean up the sentence for storage
156
+ const content = sentence
157
+ .replace(/^(so|and|but|also|note that|remember that|keep in mind that)\s+/i, '')
158
+ .replace(/\s+/g, ' ')
159
+ .trim();
160
+ // Quality gate: reject low-value content
161
+ if (content.length < 40)
162
+ continue;
163
+ // Reject questions — they are not facts to remember
164
+ if (content.trim().endsWith('?'))
165
+ continue;
166
+ // Reject pure conversational filler that adds no value
167
+ const fillerPatterns = [
168
+ /^(you might|you should consider|i would suggest|please note|it's worth|it is worth|feel free to|don't hesitate)/i,
169
+ /^(as mentioned|as noted|as discussed|as i said|as we discussed)/i,
170
+ /^(in general|generally speaking|typically|usually|often|sometimes)/i,
171
+ /^(let me know|let us know|feel free|if you have|if you need)/i,
172
+ ];
173
+ if (fillerPatterns.some(p => p.test(content)))
174
+ continue;
175
+ // Dedup by normalized content
176
+ const key = `${pattern.type}:${normalize(content).slice(0, 60)}`;
177
+ if (seen.has(key))
178
+ continue;
179
+ seen.add(key);
180
+ results.push({
181
+ type: pattern.type,
182
+ content,
183
+ confidence: pattern.confidence,
184
+ reason: pattern.reason,
185
+ });
186
+ break; // One match per sentence is enough
281
187
  }
282
- if (candidates.length === 0)
283
- continue;
284
- // Pick the highest-confidence match (most specific wins)
285
- candidates.sort((a, b) => b.pattern.confidence - a.pattern.confidence);
286
- const best = candidates[0].pattern;
287
- // Clean up the sentence for storage
288
- const content = sentence
289
- .replace(/^(so|and|but|also|note that|remember that|keep in mind that)\s+/i, '')
290
- .replace(/\s+/g, ' ')
291
- .trim();
292
- if (content.length < 15)
293
- continue;
294
- // Dedup by normalized content
295
- const key = `${best.type}:${normalize(content).slice(0, 60)}`;
296
- if (seen.has(key))
297
- continue;
298
- seen.add(key);
299
- // --- NEW: Extract real reasoning from context ---
300
- const reason = extractReason(sentence, sentences, i) || best.reason;
301
- results.push({
302
- type: best.type,
303
- content,
304
- confidence: best.confidence,
305
- reason,
306
- });
307
188
  }
308
189
  // Return only high-confidence matches (avoid noise)
309
190
  return results.filter(r => r.confidence >= 0.55);
310
191
  }
311
- /**
312
- * Extract the REAL reason from context — looks for "because", "since", "due to" etc.
313
- * If the reason clause is in the same sentence, extract it.
314
- * If it's in the next sentence, grab that as context.
315
- */
316
- function extractReason(sentence, allSentences, index) {
317
- // Check for inline reasoning: "X because Y", "X since Y", "X due to Y"
318
- const reasonPatterns = [
319
- /\b(?:because|since|as)\s+(.{10,120})/i,
320
- /\b(?:due to|caused by|in order to|so that)\s+(.{10,100})/i,
321
- /\b(?:the reason (?:is|was|being))\s+(.{10,100})/i,
322
- /\b(?:this (?:is|was) (?:because|needed|required|necessary))\s+(.{10,100})/i,
323
- ];
324
- for (const pat of reasonPatterns) {
325
- const match = sentence.match(pat);
326
- if (match && match[1]) {
327
- return match[1].replace(/\s+/g, ' ').trim().slice(0, 120);
328
- }
329
- }
330
- // Check next sentence for reasoning context
331
- if (index + 1 < allSentences.length) {
332
- const next = allSentences[index + 1];
333
- if (/^(because|since|this is because|the reason|due to|otherwise)/i.test(next.trim())) {
334
- return next.trim().slice(0, 120);
335
- }
336
- }
337
- return null;
338
- }
339
192
  //# sourceMappingURL=auto-learner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auto-learner.js","sourceRoot":"","sources":["../../src/memory/auto-learner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auto-learner.js","sourceRoot":"","sources":["../../src/memory/auto-learner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"confidence-decay.d.ts","sourceRoot":"","sources":["../../src/memory/confidence-decay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAOxC,kEAAkE;AAClE,wBAAgB,mBAAmB,CAC/B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACtB,MAAM,CAmBR;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAc7E;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAyBpE"}
1
+ {"version":3,"file":"confidence-decay.d.ts","sourceRoot":"","sources":["../../src/memory/confidence-decay.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAOxC,kEAAkE;AAClE,wBAAgB,mBAAmB,CAC/B,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,EACnB,YAAY,CAAC,EAAE,MAAM,GACtB,MAAM,CAmBR;AAED,4DAA4D;AAC5D,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAc7E;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,CAqBpE"}
@@ -38,21 +38,17 @@ function applyConfidenceDecay(memories) {
38
38
  }
39
39
  /** Run periodic maintenance — decay old, unused memories */
40
40
  function runDecayMaintenance(memoryStore) {
41
- // Target only memories with 0 access older than 1 day (most likely to need decay)
42
- const DAY = 24 * 60 * 60 * 1000;
43
- const active = memoryStore.getStaleMemories(DAY, 500);
41
+ const active = memoryStore.getActive(10000);
44
42
  let decayed = 0;
45
- memoryStore.runTransaction(() => {
46
- for (const m of active) {
47
- const current = m.importance;
48
- const effective = effectiveImportance(current, m.timestamp, m.accessCount, m.lastAccessed);
49
- // Only update if significant change (>5% difference)
50
- if (Math.abs(current - effective) > 0.05) {
51
- memoryStore.update(m.id, { importance: effective });
52
- decayed++;
53
- }
43
+ for (const m of active) {
44
+ const current = m.importance;
45
+ const effective = effectiveImportance(current, m.timestamp, m.accessCount, m.lastAccessed);
46
+ // Only update if significant change (>5% difference)
47
+ if (Math.abs(current - effective) > 0.05) {
48
+ memoryStore.update(m.id, { importance: effective });
49
+ decayed++;
54
50
  }
55
- });
51
+ }
56
52
  return decayed;
57
53
  }
58
54
  //# sourceMappingURL=confidence-decay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"confidence-decay.js","sourceRoot":"","sources":["../../src/memory/confidence-decay.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"confidence-decay.js","sourceRoot":"","sources":["../../src/memory/confidence-decay.ts"],"names":[],"mappings":";;AAsBA,kDAwBC;AAGD,oDAcC;AAGD,kDAqBC;AAvED,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,aAAa;AACtC,MAAM,iBAAiB,GAAG,GAAG,CAAC,CAAC,iBAAiB;AAChD,MAAM,gBAAgB,GAAG,GAAG,CAAC;AAC7B,MAAM,cAAc,GAAG,GAAG,CAAC,CAAC,qBAAqB;AAEjD,kEAAkE;AAClE,SAAgB,mBAAmB,CAC/B,cAAsB,EACtB,SAAiB,EACjB,WAAmB,EACnB,YAAqB;IAErB,MAAM,SAAS,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,QAAQ,CAAC;IAEtD,qDAAqD;IACrD,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC;IAErD,2DAA2D;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,WAAW,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAEtF,kCAAkC;IAClC,IAAI,YAAY,GAAG,GAAG,CAAC;IACvB,IAAI,YAAY,EAAE,CAAC;QACf,MAAM,eAAe,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;QAC/D,IAAI,eAAe,GAAG,CAAC;YAAE,YAAY,GAAG,GAAG,CAAC,CAAC,iBAAiB;aACzD,IAAI,eAAe,GAAG,CAAC;YAAE,YAAY,GAAG,GAAG,CAAC,CAAC,qBAAqB;IAC3E,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,GAAG,WAAW,GAAG,WAAW,GAAG,YAAY,CAAC;IAC5E,OAAO,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;AAC9D,CAAC;AAED,4DAA4D;AAC5D,SAAgB,oBAAoB,CAAC,QAAwB;IACzD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QACpB,MAAM,KAAK,GAAG,mBAAmB,CAC7B,CAAC,CAAC,MAAM,CAAC,UAAU,EACnB,CAAC,CAAC,MAAM,CAAC,SAAS,EAClB,CAAC,CAAC,MAAM,CAAC,WAAW,EACpB,CAAC,CAAC,MAAM,CAAC,YAAY,CACxB,CAAC;QAEF,OAAO;YACH,GAAG,CAAC;YACJ,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,KAAK;SACzB,CAAC;IACN,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,4DAA4D;AAC5D,SAAgB,mBAAmB,CAAC,WAAwB;IACxD,MAAM,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,OAAO,GAAG,CAAC,CAAC;IAEhB,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC;QAC7B,MAAM,SAAS,GAAG,mBAAmB,CACjC,OAAO,EACP,CAAC,CAAC,SAAS,EACX,CAAC,CAAC,WAAW,EACb,CAAC,CAAC,YAAY,CACjB,CAAC;QAEF,qDAAqD;QACrD,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC;YACvC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;YACpD,OAAO,EAAE,CAAC;QACd,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-manager.d.ts","sourceRoot":"","sources":["../../src/memory/embedding-manager.ts"],"names":[],"mappings":"AAeA,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AAiED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BzD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAMtC"}
1
+ {"version":3,"file":"embedding-manager.d.ts","sourceRoot":"","sources":["../../src/memory/embedding-manager.ts"],"names":[],"mappings":"AAeA,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C;AAiED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4BzD;AAED,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAMtC"}
@@ -50,10 +50,8 @@ let workerReady = false;
50
50
  const pendingEmbeddings = new Map();
51
51
  let workerFailed = false;
52
52
  function startEmbeddingWorker() {
53
- // Eagerly boot worker on startup to avoid 5-10s latency on first use
54
- if (!ensureWorkerStarted()) {
55
- console.log(' [cortex-mcp] Embedding worker unavailable, running FTS-only mode');
56
- }
53
+ // Lazy: just mark that we want embedding. Actual worker starts on first use.
54
+ console.log(' [cortex-mcp] Embedding worker registered (lazy — starts on first use)');
57
55
  }
58
56
  function ensureWorkerStarted() {
59
57
  if (embeddingWorker)
@@ -100,7 +98,7 @@ function ensureWorkerStarted() {
100
98
  workerFailed = true;
101
99
  embeddingWorker = null;
102
100
  // Reject all pending embeddings
103
- for (const [_id, pending] of pendingEmbeddings) {
101
+ for (const [id, pending] of pendingEmbeddings) {
104
102
  pending.reject(new Error('Worker crashed'));
105
103
  }
106
104
  pendingEmbeddings.clear();
@@ -112,7 +110,7 @@ function ensureWorkerStarted() {
112
110
  workerFailed = true;
113
111
  embeddingWorker = null;
114
112
  // Reject all pending embeddings
115
- for (const [_id, pending] of pendingEmbeddings) {
113
+ for (const [id, pending] of pendingEmbeddings) {
116
114
  pending.reject(new Error('Worker exited'));
117
115
  }
118
116
  pendingEmbeddings.clear();
@@ -1 +1 @@
1
- {"version":3,"file":"embedding-manager.js","sourceRoot":"","sources":["../../src/memory/embedding-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"embedding-manager.js","sourceRoot":"","sources":["../../src/memory/embedding-manager.ts"],"names":[],"mappings":"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"}
@@ -87,8 +87,8 @@ function importMemories(memoryStore, bundle) {
87
87
  let imported = 0;
88
88
  let skipped = 0;
89
89
  let errors = 0;
90
- // Load active memories for dedup cap at 1000 (covers most practical cases)
91
- const active = memoryStore.getActive(1000);
90
+ // Load active memories ONCEO(n) instead of O()
91
+ const active = memoryStore.getActive(5000);
92
92
  const existingKeys = new Set(active.map(e => `${e.type}::${e.intent.toLowerCase().trim()}`));
93
93
  for (const m of bundle.memories) {
94
94
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"export-import.js","sourceRoot":"","sources":["../../src/memory/export-import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"export-import.js","sourceRoot":"","sources":["../../src/memory/export-import.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"git-memory.d.ts","sourceRoot":"","sources":["../../src/memory/git-memory.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAYjD,UAAU,gBAAgB;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACxB;AAKD,6CAA6C;AAC7C,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,MAAM,CAwDjH;AAED,6CAA6C;AAC7C,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB,CAkCzE;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAgBlE"}
1
+ {"version":3,"file":"git-memory.d.ts","sourceRoot":"","sources":["../../src/memory/git-memory.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAWjD,UAAU,gBAAgB;IACtB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACxB;AAKD,6CAA6C;AAC7C,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,UAAU,GAAE,MAAU,GAAG,MAAM,CA0DjH;AAED,6CAA6C;AAC7C,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB,CAkCzE;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAgBlE"}
@@ -3,20 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.captureGitCommits = captureGitCommits;
4
4
  exports.detectFileChanges = detectFileChanges;
5
5
  exports.formatFileChanges = formatFileChanges;
6
- /**
7
- * Git Memory — Auto-captures code changes from git history.
8
- *
9
- * On each session start (force_recall), this module:
10
- * 1. Reads recent git commits and stores them as memories
11
- * 2. Tracks file changes (new/deleted/modified) since last session
12
- * 3. Captures commit messages as DECISION/BUG_FIX based on keywords
13
- *
14
- * This solves the "what code changed and why?" gap that exists when
15
- * files change outside the AI conversation.
16
- */
17
- const child_process_1 = require("child_process");
18
6
  const types_1 = require("../types");
19
- const extract_tags_1 = require("../utils/extract-tags");
20
7
  // Track the last processed commit hash to avoid duplicates
21
8
  let lastProcessedCommit = null;
22
9
  /** Capture recent git commits as memories */
@@ -24,9 +11,9 @@ function captureGitCommits(memoryStore, workspaceRoot, maxCommits = 5) {
24
11
  if (!workspaceRoot)
25
12
  return 0;
26
13
  try {
27
- // execSync imported at module level
14
+ const { execSync } = require('child_process');
28
15
  // Get recent commits with file changes
29
- const gitLog = (0, child_process_1.execSync)(`git log --oneline --name-only -${maxCommits} --no-merges 2>nul`, { cwd: workspaceRoot, encoding: 'utf-8', timeout: 5000 }).trim();
16
+ const gitLog = execSync(`git log --oneline --name-only -${maxCommits} --no-merges 2>nul`, { cwd: workspaceRoot, encoding: 'utf-8', timeout: 5000 }).trim();
30
17
  if (!gitLog)
31
18
  return 0;
32
19
  const commits = parseGitLog(gitLog);
@@ -38,8 +25,8 @@ function captureGitCommits(memoryStore, workspaceRoot, maxCommits = 5) {
38
25
  // Classify commit type based on message
39
26
  const type = classifyCommit(commit.message);
40
27
  // Check for duplicate — skip if already stored
41
- const existing = memoryStore.findByTag(`commit:${commit.hash}`, 1);
42
- if (existing.length > 0)
28
+ const existing = memoryStore.getActive(200).find(m => m.tags?.includes(`commit:${commit.hash}`));
29
+ if (existing)
43
30
  continue;
44
31
  memoryStore.add({
45
32
  type,
@@ -48,7 +35,7 @@ function captureGitCommits(memoryStore, workspaceRoot, maxCommits = 5) {
48
35
  ? `Changed: ${commit.filesChanged.slice(0, 5).join(', ')}`
49
36
  : commit.message,
50
37
  reason: 'Auto-captured from git history',
51
- tags: ['git-commit', `commit:${commit.hash}`, ...(0, extract_tags_1.extractTags)(commit.message)],
38
+ tags: ['git-commit', `commit:${commit.hash}`, ...extractTopicTags(commit.message)],
52
39
  relatedFiles: commit.filesChanged.slice(0, 10),
53
40
  confidence: 0.8,
54
41
  importance: type === types_1.MemoryType.BUG_FIX ? 0.85 : 0.6,
@@ -75,9 +62,9 @@ function detectFileChanges(workspaceRoot) {
75
62
  if (!workspaceRoot)
76
63
  return report;
77
64
  try {
78
- // execSync imported at module level
65
+ const { execSync } = require('child_process');
79
66
  // Get uncommitted changes (working tree vs HEAD)
80
- const status = (0, child_process_1.execSync)('git status --porcelain 2>nul', {
67
+ const status = execSync('git status --porcelain 2>nul', {
81
68
  cwd: workspaceRoot,
82
69
  encoding: 'utf-8',
83
70
  timeout: 5000,
@@ -169,4 +156,23 @@ function classifyCommit(message) {
169
156
  return types_1.MemoryType.INSIGHT;
170
157
  return types_1.MemoryType.DECISION;
171
158
  }
159
+ function extractTopicTags(message) {
160
+ const tags = [];
161
+ const lower = message.toLowerCase();
162
+ const patterns = [
163
+ [/\b(auth|login|session|token|jwt)\b/, 'auth'],
164
+ [/\b(database|sql|query|migration)\b/, 'database'],
165
+ [/\b(api|endpoint|route)\b/, 'api'],
166
+ [/\b(ui|component|style|css)\b/, 'ui'],
167
+ [/\b(test|spec|coverage)\b/, 'testing'],
168
+ [/\b(deploy|ci|docker)\b/, 'devops'],
169
+ [/\b(security|permission)\b/, 'security'],
170
+ [/\b(perf|cache|optimize)\b/, 'performance'],
171
+ ];
172
+ for (const [pattern, tag] of patterns) {
173
+ if (pattern.test(lower))
174
+ tags.push(tag);
175
+ }
176
+ return tags;
177
+ }
172
178
  //# sourceMappingURL=git-memory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"git-memory.js","sourceRoot":"","sources":["../../src/memory/git-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git-memory.js","sourceRoot":"","sources":["../../src/memory/git-memory.ts"],"names":[],"mappings":"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"}
@@ -79,18 +79,17 @@ function formatHotCorrections(memoryStore) {
79
79
  }
80
80
  return lines.join('\n');
81
81
  }
82
- /** Module-level stopwords set — avoid recreation per call */
83
- const TOPIC_STOP_WORDS = new Set([
84
- 'the', 'a', 'an', 'is', 'was', 'are', 'were', 'to', 'of', 'in', 'for',
85
- 'on', 'with', 'at', 'by', 'from', 'it', 'this', 'that', 'and', 'or',
86
- 'but', 'not', 'do', 'does', 'did', 'don', 'dont', 'use', 'using',
87
- 'should', 'must', 'never', 'always', 'avoid', 'instead',
88
- ]);
89
82
  /** Extract meaningful topic words from correction text */
90
83
  function extractTopicWords(text) {
84
+ const stopWords = new Set([
85
+ 'the', 'a', 'an', 'is', 'was', 'are', 'were', 'to', 'of', 'in', 'for',
86
+ 'on', 'with', 'at', 'by', 'from', 'it', 'this', 'that', 'and', 'or',
87
+ 'but', 'not', 'do', 'does', 'did', 'don', 'dont', 'use', 'using',
88
+ 'should', 'must', 'never', 'always', 'avoid', 'instead',
89
+ ]);
91
90
  return text.toLowerCase()
92
91
  .replace(/[^a-z0-9\s]/g, ' ')
93
92
  .split(/\s+/)
94
- .filter(w => w.length > 3 && !TOPIC_STOP_WORDS.has(w));
93
+ .filter(w => w.length > 3 && !stopWords.has(w));
95
94
  }
96
95
  //# sourceMappingURL=learning-rate.js.map