cortex-mcp 2.5.0 → 2.7.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 (166) 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 +51 -77
  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 -7
  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 +771 -891
  105. package/dist/server/mcp-handler.js.map +1 -1
  106. package/package.json +8 -18
  107. package/dist/memory/completion-resolver.d.ts +0 -38
  108. package/dist/memory/completion-resolver.d.ts.map +0 -1
  109. package/dist/memory/completion-resolver.js +0 -127
  110. package/dist/memory/completion-resolver.js.map +0 -1
  111. package/dist/memory/convention-detector.d.ts +0 -11
  112. package/dist/memory/convention-detector.d.ts.map +0 -1
  113. package/dist/memory/convention-detector.js +0 -294
  114. package/dist/memory/convention-detector.js.map +0 -1
  115. package/dist/memory/correction-detector.d.ts +0 -33
  116. package/dist/memory/correction-detector.d.ts.map +0 -1
  117. package/dist/memory/correction-detector.js +0 -129
  118. package/dist/memory/correction-detector.js.map +0 -1
  119. package/dist/memory/error-learner.d.ts +0 -26
  120. package/dist/memory/error-learner.d.ts.map +0 -1
  121. package/dist/memory/error-learner.js +0 -145
  122. package/dist/memory/error-learner.js.map +0 -1
  123. package/dist/memory/file-relationships.d.ts +0 -47
  124. package/dist/memory/file-relationships.d.ts.map +0 -1
  125. package/dist/memory/file-relationships.js +0 -130
  126. package/dist/memory/file-relationships.js.map +0 -1
  127. package/dist/memory/impact-analyzer.d.ts +0 -16
  128. package/dist/memory/impact-analyzer.d.ts.map +0 -1
  129. package/dist/memory/impact-analyzer.js +0 -189
  130. package/dist/memory/impact-analyzer.js.map +0 -1
  131. package/dist/memory/instructions-generator.d.ts +0 -30
  132. package/dist/memory/instructions-generator.d.ts.map +0 -1
  133. package/dist/memory/instructions-generator.js +0 -117
  134. package/dist/memory/instructions-generator.js.map +0 -1
  135. package/dist/memory/pre-flight.d.ts +0 -24
  136. package/dist/memory/pre-flight.d.ts.map +0 -1
  137. package/dist/memory/pre-flight.js +0 -121
  138. package/dist/memory/pre-flight.js.map +0 -1
  139. package/dist/memory/preference-learner.d.ts +0 -28
  140. package/dist/memory/preference-learner.d.ts.map +0 -1
  141. package/dist/memory/preference-learner.js +0 -144
  142. package/dist/memory/preference-learner.js.map +0 -1
  143. package/dist/memory/regression-guard.d.ts +0 -35
  144. package/dist/memory/regression-guard.d.ts.map +0 -1
  145. package/dist/memory/regression-guard.js +0 -90
  146. package/dist/memory/regression-guard.js.map +0 -1
  147. package/dist/memory/resume-work.d.ts +0 -37
  148. package/dist/memory/resume-work.d.ts.map +0 -1
  149. package/dist/memory/resume-work.js +0 -141
  150. package/dist/memory/resume-work.js.map +0 -1
  151. package/dist/memory/success-tracker.d.ts +0 -33
  152. package/dist/memory/success-tracker.d.ts.map +0 -1
  153. package/dist/memory/success-tracker.js +0 -75
  154. package/dist/memory/success-tracker.js.map +0 -1
  155. package/dist/memory/tool-recommender.d.ts +0 -29
  156. package/dist/memory/tool-recommender.d.ts.map +0 -1
  157. package/dist/memory/tool-recommender.js +0 -117
  158. package/dist/memory/tool-recommender.js.map +0 -1
  159. package/dist/memory/usage-stats.d.ts +0 -98
  160. package/dist/memory/usage-stats.d.ts.map +0 -1
  161. package/dist/memory/usage-stats.js +0 -345
  162. package/dist/memory/usage-stats.js.map +0 -1
  163. package/dist/utils/extract-tags.d.ts +0 -16
  164. package/dist/utils/extract-tags.d.ts.map +0 -1
  165. package/dist/utils/extract-tags.js +0 -40
  166. package/dist/utils/extract-tags.js.map +0 -1
@@ -1,345 +0,0 @@
1
- "use strict";
2
- /**
3
- * Usage Stats — Tracks Cortex usage metrics for impact visibility.
4
- *
5
- * THE KEY TO ADDICTION: Users must SEE the value Cortex provides.
6
- * Every force_recall response now ends with a stats footer showing:
7
- * - "Cortex Saved You X times"
8
- * - "Brain Health: 87/100"
9
- * - Time saved estimate
10
- * - Memory milestones
11
- *
12
- * Stats are PERSISTED in the database so they survive restarts.
13
- */
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.trackRecall = trackRecall;
16
- exports.trackStore = trackStore;
17
- exports.trackCatch = trackCatch;
18
- exports.trackSaved = trackSaved;
19
- exports.trackScan = trackScan;
20
- exports.trackReview = trackReview;
21
- exports.trackAutoLearn = trackAutoLearn;
22
- exports.trackSuccess = trackSuccess;
23
- exports.trackErrorLearned = trackErrorLearned;
24
- exports.getStreakDisplay = getStreakDisplay;
25
- exports.getTipOfTheDay = getTipOfTheDay;
26
- exports.calculateBrainHealth = calculateBrainHealth;
27
- exports.estimateTimeSaved = estimateTimeSaved;
28
- exports.formatStatsFooter = formatStatsFooter;
29
- exports.getUsageStats = getUsageStats;
30
- exports.resetSessionStats = resetSessionStats;
31
- exports.initLifetimeStats = initLifetimeStats;
32
- exports.getLifetimeStats = getLifetimeStats;
33
- // ─── Session Stats (in-memory, per session) ──────────────────────────────────
34
- let sessionStats = {
35
- recallCount: 0,
36
- memoriesServed: 0,
37
- hallucationsCaught: 0,
38
- memoriesStored: 0,
39
- projectsScanned: 0,
40
- codeReviews: 0,
41
- sessionStart: Date.now(),
42
- };
43
- // ─── Lifetime Stats (persisted via special DB memory) ────────────────────────
44
- const lifetimeStats = {
45
- totalRecalls: 0,
46
- totalMemoriesServed: 0,
47
- totalHallucationsCaught: 0,
48
- totalMemoriesStored: 0,
49
- totalSessions: 0,
50
- savedYouCount: 0,
51
- totalAutoLearns: 0,
52
- totalMilestonesHit: 0,
53
- firstUsed: Date.now(),
54
- // STREAK TRACKING — "Don't break the chain!"
55
- currentStreak: 0, // Days in a row Cortex was used
56
- longestStreak: 0, // Personal best streak
57
- lastActiveDate: '', // ISO date string 'YYYY-MM-DD'
58
- totalSuccessPatterns: 0, // Proven approaches tracked
59
- totalErrorsLearned: 0, // Error patterns captured
60
- };
61
- // ─── Track Events ────────────────────────────────────────────────────────────
62
- /** Record a recall event */
63
- function trackRecall(memoriesReturned) {
64
- sessionStats.recallCount++;
65
- sessionStats.memoriesServed += memoriesReturned;
66
- lifetimeStats.totalRecalls++;
67
- lifetimeStats.totalMemoriesServed += memoriesReturned;
68
- }
69
- /** Record a memory store event — checks for milestones */
70
- function trackStore() {
71
- sessionStats.memoriesStored++;
72
- lifetimeStats.totalMemoriesStored++;
73
- return checkMilestone(lifetimeStats.totalMemoriesStored, 'memories stored');
74
- }
75
- /** Record a hallucination catch — this is a "saved you" moment */
76
- function trackCatch() {
77
- sessionStats.hallucationsCaught++;
78
- lifetimeStats.totalHallucationsCaught++;
79
- lifetimeStats.savedYouCount++;
80
- }
81
- /** Record a "saved you" moment (correction recalled → mistake prevented) */
82
- function trackSaved() {
83
- lifetimeStats.savedYouCount++;
84
- }
85
- /** Record a scan */
86
- function trackScan() {
87
- sessionStats.projectsScanned++;
88
- }
89
- /** Record a code review */
90
- function trackReview() {
91
- sessionStats.codeReviews++;
92
- }
93
- /** Record an auto_learn */
94
- function trackAutoLearn() {
95
- lifetimeStats.totalAutoLearns++;
96
- updateStreak();
97
- }
98
- /** Record a success pattern learned */
99
- function trackSuccess() {
100
- lifetimeStats.totalSuccessPatterns++;
101
- }
102
- /** Record an error pattern learned */
103
- function trackErrorLearned() {
104
- lifetimeStats.totalErrorsLearned++;
105
- }
106
- // ─── Daily Streak ────────────────────────────────────────────────────────────
107
- // Users LOVE streaks. "7 day streak! 🔥" makes them come back.
108
- function updateStreak() {
109
- const today = new Date().toISOString().split('T')[0]; // YYYY-MM-DD
110
- const lastDate = lifetimeStats.lastActiveDate;
111
- if (lastDate === today)
112
- return; // Already tracked today
113
- if (lastDate) {
114
- const yesterday = new Date(Date.now() - 86400000).toISOString().split('T')[0];
115
- if (lastDate === yesterday) {
116
- lifetimeStats.currentStreak++;
117
- }
118
- else {
119
- lifetimeStats.currentStreak = 1; // Streak broken
120
- }
121
- }
122
- else {
123
- lifetimeStats.currentStreak = 1; // First day
124
- }
125
- lifetimeStats.lastActiveDate = today;
126
- if (lifetimeStats.currentStreak > lifetimeStats.longestStreak) {
127
- lifetimeStats.longestStreak = lifetimeStats.currentStreak;
128
- }
129
- }
130
- /** Get streak display string */
131
- function getStreakDisplay() {
132
- const s = lifetimeStats.currentStreak;
133
- if (s <= 0)
134
- return '';
135
- if (s >= 30)
136
- return `🔥 ${s}-day streak! LEGENDARY!`;
137
- if (s >= 14)
138
- return `🔥 ${s}-day streak! On fire!`;
139
- if (s >= 7)
140
- return `🔥 ${s}-day streak!`;
141
- if (s >= 3)
142
- return `✨ ${s}-day streak`;
143
- return `Day ${s}`;
144
- }
145
- // ─── Tip of the Day ──────────────────────────────────────────────────────────
146
- // Surface a random useful memory to remind users of past knowledge
147
- function getTipOfTheDay(memoryStore) {
148
- try {
149
- const memories = memoryStore.getActive(100);
150
- const useful = memories.filter(m => ['DECISION', 'CONVENTION', 'BUG_FIX', 'INSIGHT'].includes(m.type) &&
151
- m.intent && m.intent.length > 20);
152
- if (useful.length === 0)
153
- return '';
154
- // Deterministic daily pick (same tip all day)
155
- const dayIndex = Math.floor(Date.now() / 86400000) % useful.length;
156
- const tip = useful[dayIndex];
157
- return `\n> 💡 **Tip of the day:** [${tip.type}] ${tip.intent}`;
158
- }
159
- catch {
160
- return '';
161
- }
162
- }
163
- // ─── Brain Health Score ──────────────────────────────────────────────────────
164
- // Composite score 0-100 based on how well Cortex is being used.
165
- // Higher score = more addictive (users want to keep it high)
166
- function calculateBrainHealth(memoryStore) {
167
- const tips = [];
168
- let score = 0;
169
- const activeCount = memoryStore.activeCount();
170
- // 1. Memory count (0-25 pts) — more memories = healthier brain
171
- if (activeCount >= 100)
172
- score += 25;
173
- else if (activeCount >= 50)
174
- score += 20;
175
- else if (activeCount >= 20)
176
- score += 15;
177
- else if (activeCount >= 5)
178
- score += 10;
179
- else {
180
- score += Math.min(activeCount * 2, 5);
181
- tips.push('Store more memories to improve brain health');
182
- }
183
- // 2. Memory diversity (0-25 pts) — multiple types = better coverage
184
- const typeCount = getMemoryTypeDiversity(memoryStore);
185
- score += Math.min(typeCount * 5, 25);
186
- if (typeCount < 3)
187
- tips.push('Add different memory types (decisions, corrections, conventions)');
188
- // 3. Usage frequency (0-25 pts) — regular use = healthier
189
- if (lifetimeStats.totalSessions >= 20)
190
- score += 25;
191
- else if (lifetimeStats.totalSessions >= 10)
192
- score += 20;
193
- else if (lifetimeStats.totalSessions >= 5)
194
- score += 15;
195
- else if (lifetimeStats.totalSessions >= 2)
196
- score += 10;
197
- else {
198
- score += lifetimeStats.totalSessions * 5;
199
- tips.push('Use Cortex regularly — memory quality improves with each session');
200
- }
201
- // 4. Auto-learn engagement (0-25 pts) — AI is learning from conversations
202
- if (lifetimeStats.totalAutoLearns >= 50)
203
- score += 25;
204
- else if (lifetimeStats.totalAutoLearns >= 20)
205
- score += 20;
206
- else if (lifetimeStats.totalAutoLearns >= 10)
207
- score += 15;
208
- else if (lifetimeStats.totalAutoLearns >= 3)
209
- score += 10;
210
- else {
211
- score += lifetimeStats.totalAutoLearns * 3;
212
- tips.push('Make sure auto_learn is called after every response');
213
- }
214
- // Grade
215
- let grade;
216
- if (score >= 90)
217
- grade = '🧠 Genius';
218
- else if (score >= 75)
219
- grade = '🔥 Sharp';
220
- else if (score >= 50)
221
- grade = '💡 Growing';
222
- else if (score >= 25)
223
- grade = '🌱 Seedling';
224
- else
225
- grade = '🥚 Newborn';
226
- return { score: Math.min(score, 100), grade, tips };
227
- }
228
- function getMemoryTypeDiversity(memoryStore) {
229
- try {
230
- const memories = memoryStore.getActive(200);
231
- const types = new Set(memories.map(m => m.type));
232
- return types.size;
233
- }
234
- catch {
235
- return 1;
236
- }
237
- }
238
- // ─── Memory Milestones ───────────────────────────────────────────────────────
239
- // Celebrate: 10, 25, 50, 100, 250, 500, 1000, 2500, 5000
240
- const MILESTONES = [10, 25, 50, 100, 250, 500, 1000, 2500, 5000];
241
- function checkMilestone(count, label) {
242
- if (MILESTONES.includes(count)) {
243
- lifetimeStats.totalMilestonesHit++;
244
- return `\n🎉 **Milestone!** ${count} ${label}! Your AI brain is getting stronger.`;
245
- }
246
- return '';
247
- }
248
- // ─── Time Saved ──────────────────────────────────────────────────────────────
249
- function estimateTimeSaved() {
250
- // Each recalled memory ≈ 15s of re-explanation
251
- // Each hallucination caught ≈ 5min of debugging
252
- const recallSeconds = lifetimeStats.totalMemoriesServed * 15;
253
- const catchSeconds = lifetimeStats.totalHallucationsCaught * 300;
254
- const totalSeconds = recallSeconds + catchSeconds;
255
- if (totalSeconds < 60)
256
- return { seconds: totalSeconds, formatted: `${totalSeconds}s` };
257
- if (totalSeconds < 3600)
258
- return { seconds: totalSeconds, formatted: `${Math.round(totalSeconds / 60)} min` };
259
- return { seconds: totalSeconds, formatted: `${(totalSeconds / 3600).toFixed(1)} hours` };
260
- }
261
- // ─── Stats Footer (shown in every force_recall) ─────────────────────────────
262
- function formatStatsFooter(memoryStore) {
263
- const parts = [];
264
- const timeSaved = estimateTimeSaved();
265
- // "Saved You" counter (the most addictive metric)
266
- if (lifetimeStats.savedYouCount > 0) {
267
- parts.push(`🛡️ Saved you ${lifetimeStats.savedYouCount} time${lifetimeStats.savedYouCount > 1 ? 's' : ''}`);
268
- }
269
- // Brain Health Score
270
- if (memoryStore) {
271
- const health = calculateBrainHealth(memoryStore);
272
- parts.push(`${health.grade} Brain: ${health.score}/100`);
273
- }
274
- // Memories + Time saved
275
- if (lifetimeStats.totalMemoriesServed > 0) {
276
- parts.push(`${lifetimeStats.totalMemoriesServed} memories served`);
277
- }
278
- if (timeSaved.seconds > 0) {
279
- parts.push(`~${timeSaved.formatted} saved`);
280
- }
281
- // Hallucinations caught
282
- if (lifetimeStats.totalHallucationsCaught > 0) {
283
- parts.push(`${lifetimeStats.totalHallucationsCaught} hallucination${lifetimeStats.totalHallucationsCaught > 1 ? 's' : ''} caught`);
284
- }
285
- if (parts.length === 0) {
286
- return '\n> 🧠 Cortex is active — memories will build up as you work.';
287
- }
288
- // Add streak
289
- const streak = getStreakDisplay();
290
- if (streak)
291
- parts.push(streak);
292
- let footer = `\n> 🧠 Cortex: ${parts.join(' | ')}`;
293
- // Add tip of the day
294
- if (memoryStore) {
295
- footer += getTipOfTheDay(memoryStore);
296
- }
297
- return footer;
298
- }
299
- // ─── Full Stats ──────────────────────────────────────────────────────────────
300
- function getUsageStats() {
301
- return {
302
- session: { ...sessionStats },
303
- lifetime: { ...lifetimeStats },
304
- timeSaved: estimateTimeSaved(),
305
- };
306
- }
307
- // ─── Session Management ──────────────────────────────────────────────────────
308
- function resetSessionStats() {
309
- lifetimeStats.totalSessions++;
310
- sessionStats = {
311
- recallCount: 0,
312
- memoriesServed: 0,
313
- hallucationsCaught: 0,
314
- memoriesStored: 0,
315
- projectsScanned: 0,
316
- codeReviews: 0,
317
- sessionStart: Date.now(),
318
- };
319
- }
320
- /** Initialize lifetime stats from stored data */
321
- function initLifetimeStats(stored) {
322
- if (stored.totalRecalls)
323
- lifetimeStats.totalRecalls = stored.totalRecalls;
324
- if (stored.totalMemoriesServed)
325
- lifetimeStats.totalMemoriesServed = stored.totalMemoriesServed;
326
- if (stored.totalHallucationsCaught)
327
- lifetimeStats.totalHallucationsCaught = stored.totalHallucationsCaught;
328
- if (stored.totalMemoriesStored)
329
- lifetimeStats.totalMemoriesStored = stored.totalMemoriesStored;
330
- if (stored.totalSessions)
331
- lifetimeStats.totalSessions = stored.totalSessions;
332
- if (stored.savedYouCount)
333
- lifetimeStats.savedYouCount = stored.savedYouCount;
334
- if (stored.totalAutoLearns)
335
- lifetimeStats.totalAutoLearns = stored.totalAutoLearns;
336
- if (stored.totalMilestonesHit)
337
- lifetimeStats.totalMilestonesHit = stored.totalMilestonesHit;
338
- if (stored.firstUsed)
339
- lifetimeStats.firstUsed = stored.firstUsed;
340
- }
341
- /** Get raw lifetime stats for persistence */
342
- function getLifetimeStats() {
343
- return { ...lifetimeStats };
344
- }
345
- //# sourceMappingURL=usage-stats.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage-stats.js","sourceRoot":"","sources":["../../src/memory/usage-stats.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Shared Tag Extraction — Single source of truth for topic-based tag extraction.
3
- *
4
- * Used by llm-enhancer, git-memory, and any future module that needs to
5
- * extract semantic tags from text.
6
- *
7
- * Consolidates the duplicate patterns that previously existed in:
8
- * - llm-enhancer.ts (extractKeywordTags)
9
- * - git-memory.ts (extractTopicTags)
10
- */
11
- /**
12
- * Extract semantic topic tags from text.
13
- * Returns an array of tag strings like ['auth', 'database', 'api'].
14
- */
15
- export declare function extractTags(text: string): string[];
16
- //# sourceMappingURL=extract-tags.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract-tags.d.ts","sourceRoot":"","sources":["../../src/utils/extract-tags.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgBH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAOlD"}
@@ -1,40 +0,0 @@
1
- "use strict";
2
- /**
3
- * Shared Tag Extraction — Single source of truth for topic-based tag extraction.
4
- *
5
- * Used by llm-enhancer, git-memory, and any future module that needs to
6
- * extract semantic tags from text.
7
- *
8
- * Consolidates the duplicate patterns that previously existed in:
9
- * - llm-enhancer.ts (extractKeywordTags)
10
- * - git-memory.ts (extractTopicTags)
11
- */
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.extractTags = extractTags;
14
- /** All topic patterns — superset of both previous implementations */
15
- const TAG_PATTERNS = [
16
- [/\b(auth|login|session|token|jwt|oauth)\b/, 'auth'],
17
- [/\b(database|sql|query|migration|schema)\b/, 'database'],
18
- [/\b(api|endpoint|route|rest|graphql)\b/, 'api'],
19
- [/\b(ui|component|render|style|css|html)\b/, 'ui'],
20
- [/\b(test|spec|mock|assert|coverage)\b/, 'testing'],
21
- [/\b(deploy|ci|cd|pipeline|docker|k8s)\b/, 'devops'],
22
- [/\b(security|encrypt|permission|vulnerability)\b/, 'security'],
23
- [/\b(perf|optimize|cache|speed|memory)\b/, 'performance'],
24
- [/\b(config|env|setting|option)\b/, 'config'],
25
- [/\b(error|exception|crash|debug|log)\b/, 'error-handling'],
26
- ];
27
- /**
28
- * Extract semantic topic tags from text.
29
- * Returns an array of tag strings like ['auth', 'database', 'api'].
30
- */
31
- function extractTags(text) {
32
- const tags = [];
33
- const lower = text.toLowerCase();
34
- for (const [pattern, tag] of TAG_PATTERNS) {
35
- if (pattern.test(lower))
36
- tags.push(tag);
37
- }
38
- return tags;
39
- }
40
- //# sourceMappingURL=extract-tags.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"extract-tags.js","sourceRoot":"","sources":["../../src/utils/extract-tags.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AAoBH,kCAOC;AAzBD,qEAAqE;AACrE,MAAM,YAAY,GAA6C;IAC3D,CAAC,0CAA0C,EAAE,MAAM,CAAC;IACpD,CAAC,2CAA2C,EAAE,UAAU,CAAC;IACzD,CAAC,uCAAuC,EAAE,KAAK,CAAC;IAChD,CAAC,0CAA0C,EAAE,IAAI,CAAC;IAClD,CAAC,sCAAsC,EAAE,SAAS,CAAC;IACnD,CAAC,wCAAwC,EAAE,QAAQ,CAAC;IACpD,CAAC,iDAAiD,EAAE,UAAU,CAAC;IAC/D,CAAC,wCAAwC,EAAE,aAAa,CAAC;IACzD,CAAC,iCAAiC,EAAE,QAAQ,CAAC;IAC7C,CAAC,uCAAuC,EAAE,gBAAgB,CAAC;CAC9D,CAAC;AAEF;;;GAGG;AACH,SAAgB,WAAW,CAAC,IAAY;IACpC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,YAAY,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}