cmp-memory-system 1.0.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 (161) hide show
  1. package/README.md +541 -0
  2. package/dist/analytics/index.d.ts +5 -0
  3. package/dist/analytics/index.d.ts.map +1 -0
  4. package/dist/analytics/index.js +5 -0
  5. package/dist/analytics/index.js.map +1 -0
  6. package/dist/analytics/tracker.d.ts +107 -0
  7. package/dist/analytics/tracker.d.ts.map +1 -0
  8. package/dist/analytics/tracker.js +333 -0
  9. package/dist/analytics/tracker.js.map +1 -0
  10. package/dist/auto-improve/eslint-generator.d.ts +36 -0
  11. package/dist/auto-improve/eslint-generator.d.ts.map +1 -0
  12. package/dist/auto-improve/eslint-generator.js +280 -0
  13. package/dist/auto-improve/eslint-generator.js.map +1 -0
  14. package/dist/auto-improve/index.d.ts +6 -0
  15. package/dist/auto-improve/index.d.ts.map +1 -0
  16. package/dist/auto-improve/index.js +6 -0
  17. package/dist/auto-improve/index.js.map +1 -0
  18. package/dist/auto-improve/pattern-detector.d.ts +92 -0
  19. package/dist/auto-improve/pattern-detector.d.ts.map +1 -0
  20. package/dist/auto-improve/pattern-detector.js +231 -0
  21. package/dist/auto-improve/pattern-detector.js.map +1 -0
  22. package/dist/cli/index.d.ts +16 -0
  23. package/dist/cli/index.d.ts.map +1 -0
  24. package/dist/cli/index.js +636 -0
  25. package/dist/cli/index.js.map +1 -0
  26. package/dist/dashboard/index.d.ts +6 -0
  27. package/dist/dashboard/index.d.ts.map +1 -0
  28. package/dist/dashboard/index.js +6 -0
  29. package/dist/dashboard/index.js.map +1 -0
  30. package/dist/dashboard/server.d.ts +15 -0
  31. package/dist/dashboard/server.d.ts.map +1 -0
  32. package/dist/dashboard/server.js +373 -0
  33. package/dist/dashboard/server.js.map +1 -0
  34. package/dist/dashboard/ui.d.ts +9 -0
  35. package/dist/dashboard/ui.d.ts.map +1 -0
  36. package/dist/dashboard/ui.js +530 -0
  37. package/dist/dashboard/ui.js.map +1 -0
  38. package/dist/db/client.d.ts +66 -0
  39. package/dist/db/client.d.ts.map +1 -0
  40. package/dist/db/client.js +159 -0
  41. package/dist/db/client.js.map +1 -0
  42. package/dist/db/drizzle-client.d.ts +302 -0
  43. package/dist/db/drizzle-client.d.ts.map +1 -0
  44. package/dist/db/drizzle-client.js +404 -0
  45. package/dist/db/drizzle-client.js.map +1 -0
  46. package/dist/db/index.d.ts +5 -0
  47. package/dist/db/index.d.ts.map +1 -0
  48. package/dist/db/index.js +5 -0
  49. package/dist/db/index.js.map +1 -0
  50. package/dist/feedback/collector.d.ts +74 -0
  51. package/dist/feedback/collector.d.ts.map +1 -0
  52. package/dist/feedback/collector.js +231 -0
  53. package/dist/feedback/collector.js.map +1 -0
  54. package/dist/feedback/index.d.ts +5 -0
  55. package/dist/feedback/index.d.ts.map +1 -0
  56. package/dist/feedback/index.js +5 -0
  57. package/dist/feedback/index.js.map +1 -0
  58. package/dist/hooks/index.d.ts +8 -0
  59. package/dist/hooks/index.d.ts.map +1 -0
  60. package/dist/hooks/index.js +8 -0
  61. package/dist/hooks/index.js.map +1 -0
  62. package/dist/hooks/memory-checkpoint.d.ts +43 -0
  63. package/dist/hooks/memory-checkpoint.d.ts.map +1 -0
  64. package/dist/hooks/memory-checkpoint.js +257 -0
  65. package/dist/hooks/memory-checkpoint.js.map +1 -0
  66. package/dist/hooks/post-tool-use.d.ts +61 -0
  67. package/dist/hooks/post-tool-use.d.ts.map +1 -0
  68. package/dist/hooks/post-tool-use.js +262 -0
  69. package/dist/hooks/post-tool-use.js.map +1 -0
  70. package/dist/hooks/pre-tool-use.d.ts +34 -0
  71. package/dist/hooks/pre-tool-use.d.ts.map +1 -0
  72. package/dist/hooks/pre-tool-use.js +358 -0
  73. package/dist/hooks/pre-tool-use.js.map +1 -0
  74. package/dist/hooks/session-start.d.ts +38 -0
  75. package/dist/hooks/session-start.d.ts.map +1 -0
  76. package/dist/hooks/session-start.js +274 -0
  77. package/dist/hooks/session-start.js.map +1 -0
  78. package/dist/index.d.ts +29 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +39 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/mcp/index.d.ts +5 -0
  83. package/dist/mcp/index.d.ts.map +1 -0
  84. package/dist/mcp/index.js +5 -0
  85. package/dist/mcp/index.js.map +1 -0
  86. package/dist/mcp/server.d.ts +42 -0
  87. package/dist/mcp/server.d.ts.map +1 -0
  88. package/dist/mcp/server.js +599 -0
  89. package/dist/mcp/server.js.map +1 -0
  90. package/dist/registry/embeddings.d.ts +38 -0
  91. package/dist/registry/embeddings.d.ts.map +1 -0
  92. package/dist/registry/embeddings.js +110 -0
  93. package/dist/registry/embeddings.js.map +1 -0
  94. package/dist/registry/generator.d.ts +41 -0
  95. package/dist/registry/generator.d.ts.map +1 -0
  96. package/dist/registry/generator.js +323 -0
  97. package/dist/registry/generator.js.map +1 -0
  98. package/dist/registry/index.d.ts +6 -0
  99. package/dist/registry/index.d.ts.map +1 -0
  100. package/dist/registry/index.js +6 -0
  101. package/dist/registry/index.js.map +1 -0
  102. package/dist/services/IdeaCollector.d.ts +103 -0
  103. package/dist/services/IdeaCollector.d.ts.map +1 -0
  104. package/dist/services/IdeaCollector.js +371 -0
  105. package/dist/services/IdeaCollector.js.map +1 -0
  106. package/dist/services/TaskTracker.d.ts +89 -0
  107. package/dist/services/TaskTracker.d.ts.map +1 -0
  108. package/dist/services/TaskTracker.js +324 -0
  109. package/dist/services/TaskTracker.js.map +1 -0
  110. package/dist/services/WorkPlanManager.d.ts +107 -0
  111. package/dist/services/WorkPlanManager.d.ts.map +1 -0
  112. package/dist/services/WorkPlanManager.js +440 -0
  113. package/dist/services/WorkPlanManager.js.map +1 -0
  114. package/dist/services/auto-inject.d.ts +77 -0
  115. package/dist/services/auto-inject.d.ts.map +1 -0
  116. package/dist/services/auto-inject.js +289 -0
  117. package/dist/services/auto-inject.js.map +1 -0
  118. package/dist/services/auto-tag.d.ts +61 -0
  119. package/dist/services/auto-tag.d.ts.map +1 -0
  120. package/dist/services/auto-tag.js +203 -0
  121. package/dist/services/auto-tag.js.map +1 -0
  122. package/dist/services/cross-project-sync.d.ts +76 -0
  123. package/dist/services/cross-project-sync.d.ts.map +1 -0
  124. package/dist/services/cross-project-sync.js +235 -0
  125. package/dist/services/cross-project-sync.js.map +1 -0
  126. package/dist/services/index.d.ts +15 -0
  127. package/dist/services/index.d.ts.map +1 -0
  128. package/dist/services/index.js +18 -0
  129. package/dist/services/index.js.map +1 -0
  130. package/dist/services/memory-consolidation.d.ts +77 -0
  131. package/dist/services/memory-consolidation.d.ts.map +1 -0
  132. package/dist/services/memory-consolidation.js +298 -0
  133. package/dist/services/memory-consolidation.js.map +1 -0
  134. package/dist/services/semantic-search.d.ts +93 -0
  135. package/dist/services/semantic-search.d.ts.map +1 -0
  136. package/dist/services/semantic-search.js +278 -0
  137. package/dist/services/semantic-search.js.map +1 -0
  138. package/dist/services/weekly-digest.d.ts +105 -0
  139. package/dist/services/weekly-digest.d.ts.map +1 -0
  140. package/dist/services/weekly-digest.js +292 -0
  141. package/dist/services/weekly-digest.js.map +1 -0
  142. package/dist/types/index.d.ts +274 -0
  143. package/dist/types/index.d.ts.map +1 -0
  144. package/dist/types/index.js +84 -0
  145. package/dist/types/index.js.map +1 -0
  146. package/dist/utils/config.d.ts +21 -0
  147. package/dist/utils/config.d.ts.map +1 -0
  148. package/dist/utils/config.js +89 -0
  149. package/dist/utils/config.js.map +1 -0
  150. package/dist/utils/index.d.ts +6 -0
  151. package/dist/utils/index.d.ts.map +1 -0
  152. package/dist/utils/index.js +6 -0
  153. package/dist/utils/index.js.map +1 -0
  154. package/dist/utils/paths.d.ts +28 -0
  155. package/dist/utils/paths.d.ts.map +1 -0
  156. package/dist/utils/paths.js +80 -0
  157. package/dist/utils/paths.js.map +1 -0
  158. package/package.json +89 -0
  159. package/templates/memory-config.json +82 -0
  160. package/templates/memory-config.schema.json +212 -0
  161. package/templates/settings.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-consolidation.js","sourceRoot":"","sources":["../../src/services/memory-consolidation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Semantic Search Service
3
+ *
4
+ * Provides embedding-based semantic search for memories.
5
+ * - Generates embeddings on memory creation
6
+ * - Stores embeddings in the content JSON field
7
+ * - Performs cosine similarity search
8
+ */
9
+ import type { DrizzleMemoryClient } from '../db/drizzle-client.js';
10
+ import type { DevItem, MemoryContent } from '../types/index.js';
11
+ export interface SemanticSearchResult {
12
+ item: DevItem;
13
+ score: number;
14
+ content: MemoryContent;
15
+ }
16
+ export interface MemoryWithEmbedding extends MemoryContent {
17
+ embedding?: number[];
18
+ embeddingModel?: string;
19
+ embeddedAt?: string;
20
+ }
21
+ export declare class SemanticSearchService {
22
+ private embeddingService;
23
+ private client;
24
+ private cache;
25
+ constructor(client: DrizzleMemoryClient);
26
+ /**
27
+ * Search memories by semantic similarity
28
+ */
29
+ search(query: string, options?: {
30
+ type?: string;
31
+ limit?: number;
32
+ threshold?: number;
33
+ domain?: string;
34
+ }): Promise<SemanticSearchResult[]>;
35
+ /**
36
+ * Create memory with embedding
37
+ */
38
+ createMemoryWithEmbedding(title: string, body: string, options?: {
39
+ domain?: string;
40
+ source?: 'claude' | 'gemini' | 'user' | 'system' | 'checkpoint' | 'dashboard';
41
+ tags?: string[];
42
+ relatedFiles?: string[];
43
+ }): Promise<{
44
+ id: string;
45
+ embedded: boolean;
46
+ }>;
47
+ /**
48
+ * Find similar memories to a given memory
49
+ */
50
+ findSimilar(memoryId: string, limit?: number): Promise<SemanticSearchResult[]>;
51
+ /**
52
+ * Batch embed all memories without embeddings
53
+ */
54
+ batchEmbed(options?: {
55
+ type?: string;
56
+ limit?: number;
57
+ force?: boolean;
58
+ }): Promise<{
59
+ processed: number;
60
+ embedded: number;
61
+ failed: number;
62
+ }>;
63
+ /**
64
+ * Get embedding statistics
65
+ */
66
+ getEmbeddingStats(): Promise<{
67
+ total: number;
68
+ withEmbedding: number;
69
+ withoutEmbedding: number;
70
+ coverage: number;
71
+ }>;
72
+ /**
73
+ * Get embedding with caching
74
+ */
75
+ private getEmbedding;
76
+ /**
77
+ * Update memory with embedding
78
+ */
79
+ private updateWithEmbedding;
80
+ /**
81
+ * Calculate cosine similarity between two vectors
82
+ */
83
+ private cosineSimilarity;
84
+ /**
85
+ * Fallback to text search when embedding fails
86
+ */
87
+ private fallbackTextSearch;
88
+ }
89
+ /**
90
+ * Create a semantic search service
91
+ */
92
+ export declare function createSemanticSearchService(client: DrizzleMemoryClient): SemanticSearchService;
93
+ //# sourceMappingURL=semantic-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-search.d.ts","sourceRoot":"","sources":["../../src/services/semantic-search.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAM/D,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,gBAAgB,CAAkB;IAC1C,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAAmC;gBAEpC,MAAM,EAAE,mBAAmB;IASvC;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACpC,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA8DnC;;OAEG;IACG,yBAAyB,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAA;QACf,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,CAAA;QAC7E,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;QACf,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;KACxB,GACA,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAiC7C;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAY/E;;OAEG;IACG,UAAU,CAAC,OAAO,CAAC,EAAE;QACzB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA2CpE;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC;QACjC,KAAK,EAAE,MAAM,CAAA;QACb,aAAa,EAAE,MAAM,CAAA;QACrB,gBAAgB,EAAE,MAAM,CAAA;QACxB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAC;IA8BF;;OAEG;YACW,YAAY;IAiB1B;;OAEG;YACW,mBAAmB;IAiBjC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;YACW,kBAAkB;CAqBjC;AAMD;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,mBAAmB,GAC1B,qBAAqB,CAEvB"}
@@ -0,0 +1,278 @@
1
+ /**
2
+ * Semantic Search Service
3
+ *
4
+ * Provides embedding-based semantic search for memories.
5
+ * - Generates embeddings on memory creation
6
+ * - Stores embeddings in the content JSON field
7
+ * - Performs cosine similarity search
8
+ */
9
+ import { EmbeddingService } from '../registry/embeddings.js';
10
+ // =============================================================================
11
+ // SEMANTIC SEARCH SERVICE
12
+ // =============================================================================
13
+ export class SemanticSearchService {
14
+ embeddingService;
15
+ client;
16
+ cache = new Map();
17
+ constructor(client) {
18
+ this.client = client;
19
+ this.embeddingService = new EmbeddingService({
20
+ providers: ['openai', 'gemini'],
21
+ openaiApiKey: process.env.OPENAI_API_KEY,
22
+ geminiApiKey: process.env.GEMINI_API_KEY,
23
+ });
24
+ }
25
+ /**
26
+ * Search memories by semantic similarity
27
+ */
28
+ async search(query, options) {
29
+ const limit = options?.limit ?? 10;
30
+ const threshold = options?.threshold ?? 0.5;
31
+ const type = options?.type ?? 'memory';
32
+ try {
33
+ // Get query embedding
34
+ const queryEmbedding = await this.getEmbedding(query);
35
+ // Get all memories (we'll filter and score them)
36
+ const items = await this.client.list({
37
+ type,
38
+ limit: 200, // Get more items to filter
39
+ });
40
+ // Score each item by similarity
41
+ const scored = [];
42
+ for (const item of items) {
43
+ const content = item.content;
44
+ if (!content)
45
+ continue;
46
+ // Filter by domain if specified
47
+ if (options?.domain && content.domain !== options.domain)
48
+ continue;
49
+ // Get or generate embedding
50
+ let itemEmbedding = content.embedding;
51
+ if (!itemEmbedding) {
52
+ // Generate embedding if not present
53
+ const text = `${content.title}\n${content.body}`;
54
+ try {
55
+ itemEmbedding = await this.getEmbedding(text);
56
+ // Update the item with embedding (async, don't wait)
57
+ this.updateWithEmbedding(item.id, content, itemEmbedding).catch(() => { });
58
+ }
59
+ catch {
60
+ continue; // Skip items we can't embed
61
+ }
62
+ }
63
+ // Calculate cosine similarity
64
+ const score = this.cosineSimilarity(queryEmbedding, itemEmbedding);
65
+ if (score >= threshold) {
66
+ scored.push({
67
+ item,
68
+ score,
69
+ content: content,
70
+ });
71
+ }
72
+ }
73
+ // Sort by score descending
74
+ scored.sort((a, b) => b.score - a.score);
75
+ return scored.slice(0, limit);
76
+ }
77
+ catch (error) {
78
+ console.error('[SemanticSearch] Error:', error);
79
+ // Fallback to text search
80
+ return this.fallbackTextSearch(query, options);
81
+ }
82
+ }
83
+ /**
84
+ * Create memory with embedding
85
+ */
86
+ async createMemoryWithEmbedding(title, body, options) {
87
+ // Generate embedding
88
+ const text = `${title}\n${body}`;
89
+ let embedding;
90
+ let embeddingModel;
91
+ try {
92
+ embedding = await this.embeddingService.embed(text);
93
+ embeddingModel = this.embeddingService.getProviderInfo().provider;
94
+ }
95
+ catch (error) {
96
+ console.warn('[SemanticSearch] Could not generate embedding:', error);
97
+ }
98
+ // Create content with embedding
99
+ const content = {
100
+ title,
101
+ body,
102
+ domain: options?.domain,
103
+ source: options?.source ?? 'system',
104
+ relatedFiles: options?.relatedFiles,
105
+ embedding,
106
+ embeddingModel,
107
+ embeddedAt: embedding ? new Date().toISOString() : undefined,
108
+ };
109
+ const result = await this.client.createMemory(content, options?.tags);
110
+ return {
111
+ id: result.id,
112
+ embedded: !!embedding,
113
+ };
114
+ }
115
+ /**
116
+ * Find similar memories to a given memory
117
+ */
118
+ async findSimilar(memoryId, limit = 5) {
119
+ const memory = await this.client.get(memoryId);
120
+ if (!memory)
121
+ return [];
122
+ const content = memory.content;
123
+ if (!content)
124
+ return [];
125
+ const text = `${content.title}\n${content.body}`;
126
+ return this.search(text, { limit: limit + 1 })
127
+ .then(results => results.filter(r => r.item.id !== memoryId).slice(0, limit));
128
+ }
129
+ /**
130
+ * Batch embed all memories without embeddings
131
+ */
132
+ async batchEmbed(options) {
133
+ const type = options?.type ?? 'memory';
134
+ const limit = options?.limit ?? 100;
135
+ const force = options?.force ?? false;
136
+ const items = await this.client.list({ type, limit });
137
+ let processed = 0;
138
+ let embedded = 0;
139
+ let failed = 0;
140
+ for (const item of items) {
141
+ processed++;
142
+ const content = item.content;
143
+ if (!content) {
144
+ failed++;
145
+ continue;
146
+ }
147
+ // Skip if already has embedding (unless force)
148
+ if (content.embedding && !force)
149
+ continue;
150
+ const text = `${content.title || ''}\n${content.body || ''}`;
151
+ if (!text.trim()) {
152
+ failed++;
153
+ continue;
154
+ }
155
+ try {
156
+ const embedding = await this.embeddingService.embed(text);
157
+ await this.updateWithEmbedding(item.id, content, embedding);
158
+ embedded++;
159
+ // Rate limit
160
+ await new Promise(r => setTimeout(r, 100));
161
+ }
162
+ catch {
163
+ failed++;
164
+ }
165
+ }
166
+ return { processed, embedded, failed };
167
+ }
168
+ /**
169
+ * Get embedding statistics
170
+ */
171
+ async getEmbeddingStats() {
172
+ const items = await this.client.list({ type: 'memory', limit: 1000 });
173
+ let withEmbedding = 0;
174
+ let withoutEmbedding = 0;
175
+ for (const item of items) {
176
+ const content = item.content;
177
+ if (content?.embedding) {
178
+ withEmbedding++;
179
+ }
180
+ else {
181
+ withoutEmbedding++;
182
+ }
183
+ }
184
+ const total = withEmbedding + withoutEmbedding;
185
+ const coverage = total > 0 ? (withEmbedding / total) * 100 : 0;
186
+ return {
187
+ total,
188
+ withEmbedding,
189
+ withoutEmbedding,
190
+ coverage: Math.round(coverage * 10) / 10,
191
+ };
192
+ }
193
+ // ===========================================================================
194
+ // PRIVATE METHODS
195
+ // ===========================================================================
196
+ /**
197
+ * Get embedding with caching
198
+ */
199
+ async getEmbedding(text) {
200
+ const cacheKey = text.slice(0, 100);
201
+ const cached = this.cache.get(cacheKey);
202
+ if (cached)
203
+ return cached;
204
+ const embedding = await this.embeddingService.embed(text);
205
+ // Cache with LRU eviction
206
+ if (this.cache.size > 100) {
207
+ const firstKey = this.cache.keys().next().value;
208
+ if (firstKey)
209
+ this.cache.delete(firstKey);
210
+ }
211
+ this.cache.set(cacheKey, embedding);
212
+ return embedding;
213
+ }
214
+ /**
215
+ * Update memory with embedding
216
+ */
217
+ async updateWithEmbedding(id, content, embedding) {
218
+ const updatedContent = {
219
+ ...content,
220
+ embedding,
221
+ embeddingModel: this.embeddingService.getProviderInfo().provider,
222
+ embeddedAt: new Date().toISOString(),
223
+ };
224
+ await this.client.update(id, {
225
+ content: updatedContent,
226
+ });
227
+ }
228
+ /**
229
+ * Calculate cosine similarity between two vectors
230
+ */
231
+ cosineSimilarity(a, b) {
232
+ if (a.length !== b.length)
233
+ return 0;
234
+ let dotProduct = 0;
235
+ let normA = 0;
236
+ let normB = 0;
237
+ for (let i = 0; i < a.length; i++) {
238
+ dotProduct += a[i] * b[i];
239
+ normA += a[i] * a[i];
240
+ normB += b[i] * b[i];
241
+ }
242
+ const magnitude = Math.sqrt(normA) * Math.sqrt(normB);
243
+ if (magnitude === 0)
244
+ return 0;
245
+ return dotProduct / magnitude;
246
+ }
247
+ /**
248
+ * Fallback to text search when embedding fails
249
+ */
250
+ async fallbackTextSearch(query, options) {
251
+ const results = await this.client.search(query, {
252
+ type: options?.type,
253
+ limit: options?.limit,
254
+ });
255
+ return results
256
+ .filter(item => {
257
+ if (!options?.domain)
258
+ return true;
259
+ const content = item.content;
260
+ return content?.domain === options.domain;
261
+ })
262
+ .map(item => ({
263
+ item,
264
+ score: 1.0, // Text match score
265
+ content: item.content,
266
+ }));
267
+ }
268
+ }
269
+ // =============================================================================
270
+ // FACTORY
271
+ // =============================================================================
272
+ /**
273
+ * Create a semantic search service
274
+ */
275
+ export function createSemanticSearchService(client) {
276
+ return new SemanticSearchService(client);
277
+ }
278
+ //# sourceMappingURL=semantic-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-search.js","sourceRoot":"","sources":["../../src/services/semantic-search.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Weekly Digest Service
3
+ *
4
+ * Generates periodic summaries of memory activity:
5
+ * - New memories added
6
+ * - Patterns detected
7
+ * - Knowledge gaps identified
8
+ * - Recommendations for improvement
9
+ */
10
+ import type { DrizzleMemoryClient } from '../db/drizzle-client.js';
11
+ import type { MemoryConfig } from '../types/index.js';
12
+ import { AutoTagService } from './auto-tag.js';
13
+ export interface WeeklyDigest {
14
+ period: {
15
+ start: string;
16
+ end: string;
17
+ };
18
+ summary: DigestSummary;
19
+ highlights: DigestHighlight[];
20
+ patterns: DigestPattern[];
21
+ recommendations: DigestRecommendation[];
22
+ trends: DigestTrend[];
23
+ }
24
+ export interface DigestSummary {
25
+ totalMemories: number;
26
+ newMemories: number;
27
+ updatedMemories: number;
28
+ archivedMemories: number;
29
+ patternsDetected: number;
30
+ patternsResolved: number;
31
+ }
32
+ export interface DigestHighlight {
33
+ type: 'new_memory' | 'pattern_threshold' | 'high_usage' | 'domain_growth';
34
+ title: string;
35
+ description: string;
36
+ memoryId?: string;
37
+ }
38
+ export interface DigestPattern {
39
+ patternId: string;
40
+ occurrences: number;
41
+ trend: 'increasing' | 'decreasing' | 'stable';
42
+ severity: string;
43
+ }
44
+ export interface DigestRecommendation {
45
+ type: 'consolidate' | 'tag' | 'archive' | 'investigate';
46
+ title: string;
47
+ description: string;
48
+ priority: 'high' | 'medium' | 'low';
49
+ affectedIds?: string[];
50
+ }
51
+ export interface DigestTrend {
52
+ domain: string;
53
+ memoryCount: number;
54
+ change: number;
55
+ isGrowing: boolean;
56
+ }
57
+ export declare class WeeklyDigestService {
58
+ private client;
59
+ private autoTagService;
60
+ private config;
61
+ constructor(client: DrizzleMemoryClient, autoTagService: AutoTagService, config: MemoryConfig);
62
+ /**
63
+ * Generate weekly digest
64
+ */
65
+ generate(options?: {
66
+ days?: number;
67
+ includeRecommendations?: boolean;
68
+ }): Promise<WeeklyDigest>;
69
+ /**
70
+ * Format digest as markdown
71
+ */
72
+ formatAsMarkdown(digest: WeeklyDigest): string;
73
+ /**
74
+ * Send digest (placeholder - could email, post to Slack, etc.)
75
+ */
76
+ sendDigest(digest: WeeklyDigest): Promise<{
77
+ sent: boolean;
78
+ method: string;
79
+ }>;
80
+ /**
81
+ * Generate summary statistics
82
+ */
83
+ private generateSummary;
84
+ /**
85
+ * Generate highlights
86
+ */
87
+ private generateHighlights;
88
+ /**
89
+ * Analyze patterns
90
+ */
91
+ private analyzePatterns;
92
+ /**
93
+ * Calculate domain trends
94
+ */
95
+ private calculateTrends;
96
+ /**
97
+ * Generate recommendations
98
+ */
99
+ private generateRecommendations;
100
+ }
101
+ /**
102
+ * Create a weekly digest service
103
+ */
104
+ export declare function createWeeklyDigestService(client: DrizzleMemoryClient, autoTagService: AutoTagService, config: MemoryConfig): WeeklyDigestService;
105
+ //# sourceMappingURL=weekly-digest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"weekly-digest.d.ts","sourceRoot":"","sources":["../../src/services/weekly-digest.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAClE,OAAO,KAAK,EAA0C,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC7F,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAM9C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAA;QACb,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;IACD,OAAO,EAAE,aAAa,CAAA;IACtB,UAAU,EAAE,eAAe,EAAE,CAAA;IAC7B,QAAQ,EAAE,aAAa,EAAE,CAAA;IACzB,eAAe,EAAE,oBAAoB,EAAE,CAAA;IACvC,MAAM,EAAE,WAAW,EAAE,CAAA;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,MAAM,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,eAAe,EAAE,MAAM,CAAA;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;IACxB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,YAAY,GAAG,mBAAmB,GAAG,YAAY,GAAG,eAAe,CAAA;IACzE,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAA;IAC7C,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,GAAG,KAAK,GAAG,SAAS,GAAG,aAAa,CAAA;IACvD,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;IACnC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,OAAO,CAAA;CACnB;AAMD,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,MAAM,CAAc;gBAG1B,MAAM,EAAE,mBAAmB,EAC3B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,YAAY;IAOtB;;OAEG;IACG,QAAQ,CAAC,OAAO,CAAC,EAAE;QACvB,IAAI,CAAC,EAAE,MAAM,CAAA;QACb,sBAAsB,CAAC,EAAE,OAAO,CAAA;KACjC,GAAG,OAAO,CAAC,YAAY,CAAC;IAuDzB;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM;IA2D9C;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBlF;;OAEG;YACW,eAAe;IAuB7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsC1B;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,CAAC,eAAe;IA2CvB;;OAEG;YACW,uBAAuB;CAmDtC;AAMD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,YAAY,GACnB,mBAAmB,CAErB"}