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,599 @@
1
+ /**
2
+ * MCP Server for Memory Tools
3
+ *
4
+ * Exposes memory operations as MCP tools that Claude can use:
5
+ * - memory_search: Search memories by query (with semantic search)
6
+ * - memory_write: Write new memory/learning (with auto-embedding)
7
+ * - memory_list: List recent memories
8
+ * - pattern_check: Check for detected patterns
9
+ * - pattern_report: Report a new pattern occurrence
10
+ * - session_context: Get current session context
11
+ * - memory_consolidate: Consolidate duplicate memories
12
+ * - memory_digest: Generate weekly digest
13
+ */
14
+ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
15
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
16
+ import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
17
+ import { createDrizzleClient } from '../db/drizzle-client.js';
18
+ import { loadConfig } from '../utils/config.js';
19
+ import { getProjectRoot } from '../utils/paths.js';
20
+ import { createSemanticSearchService, createAutoTagService, createConsolidationService, createWeeklyDigestService, } from '../services/index.js';
21
+ // =============================================================================
22
+ // TOOL DEFINITIONS
23
+ // =============================================================================
24
+ const TOOLS = [
25
+ {
26
+ name: 'memory_search',
27
+ description: 'Search memories using semantic similarity (embeddings). Returns relevant memories ranked by relevance.',
28
+ inputSchema: {
29
+ type: 'object',
30
+ properties: {
31
+ query: {
32
+ type: 'string',
33
+ description: 'Search query to find relevant memories',
34
+ },
35
+ type: {
36
+ type: 'string',
37
+ enum: ['memory', 'knowledge', 'pattern'],
38
+ description: 'Type of item to search (default: memory)',
39
+ },
40
+ limit: {
41
+ type: 'number',
42
+ description: 'Maximum results to return (default: 10)',
43
+ },
44
+ domain: {
45
+ type: 'string',
46
+ description: 'Filter by domain (e.g., video-studio, campaigns)',
47
+ },
48
+ semantic: {
49
+ type: 'boolean',
50
+ description: 'Use semantic search with embeddings (default: true)',
51
+ },
52
+ },
53
+ required: ['query'],
54
+ },
55
+ },
56
+ {
57
+ name: 'memory_write',
58
+ description: 'Save a new memory or learning to the knowledge base. Use this to record important patterns, decisions, or gotchas.',
59
+ inputSchema: {
60
+ type: 'object',
61
+ properties: {
62
+ title: {
63
+ type: 'string',
64
+ description: 'Brief title for the memory',
65
+ },
66
+ body: {
67
+ type: 'string',
68
+ description: 'Detailed content of the memory',
69
+ },
70
+ domain: {
71
+ type: 'string',
72
+ description: 'Domain/module this relates to (e.g., video-studio, finances)',
73
+ },
74
+ tags: {
75
+ type: 'array',
76
+ items: { type: 'string' },
77
+ description: 'Tags for categorization',
78
+ },
79
+ },
80
+ required: ['title', 'body'],
81
+ },
82
+ },
83
+ {
84
+ name: 'memory_list',
85
+ description: 'List recent memories, optionally filtered by domain.',
86
+ inputSchema: {
87
+ type: 'object',
88
+ properties: {
89
+ domain: {
90
+ type: 'string',
91
+ description: 'Filter by domain (optional)',
92
+ },
93
+ limit: {
94
+ type: 'number',
95
+ description: 'Maximum results (default: 10)',
96
+ },
97
+ },
98
+ },
99
+ },
100
+ {
101
+ name: 'pattern_check',
102
+ description: 'Check if any patterns have reached the auto-improvement threshold.',
103
+ inputSchema: {
104
+ type: 'object',
105
+ properties: {
106
+ threshold: {
107
+ type: 'number',
108
+ description: 'Minimum occurrences to trigger (default: 3)',
109
+ },
110
+ },
111
+ },
112
+ },
113
+ {
114
+ name: 'pattern_report',
115
+ description: 'Report a pattern occurrence. Used to track repeated issues for auto-improvement.',
116
+ inputSchema: {
117
+ type: 'object',
118
+ properties: {
119
+ patternId: {
120
+ type: 'string',
121
+ description: 'Unique identifier for the pattern (e.g., any-type, missing-zod)',
122
+ },
123
+ file: {
124
+ type: 'string',
125
+ description: 'File where pattern was found',
126
+ },
127
+ line: {
128
+ type: 'number',
129
+ description: 'Line number',
130
+ },
131
+ code: {
132
+ type: 'string',
133
+ description: 'Code snippet showing the pattern',
134
+ },
135
+ severity: {
136
+ type: 'string',
137
+ enum: ['critical', 'high', 'medium', 'low'],
138
+ description: 'Severity level',
139
+ },
140
+ },
141
+ required: ['patternId', 'file'],
142
+ },
143
+ },
144
+ {
145
+ name: 'session_context',
146
+ description: 'Get context for the current session including recent memories and detected module.',
147
+ inputSchema: {
148
+ type: 'object',
149
+ properties: {
150
+ includePatterns: {
151
+ type: 'boolean',
152
+ description: 'Include triggered patterns (default: true)',
153
+ },
154
+ },
155
+ },
156
+ },
157
+ {
158
+ name: 'feedback_submit',
159
+ description: 'Submit feedback on a memory or suggestion. Used for learning.',
160
+ inputSchema: {
161
+ type: 'object',
162
+ properties: {
163
+ memoryId: {
164
+ type: 'string',
165
+ description: 'ID of the memory being rated',
166
+ },
167
+ helpful: {
168
+ type: 'boolean',
169
+ description: 'Whether the memory was helpful',
170
+ },
171
+ comment: {
172
+ type: 'string',
173
+ description: 'Optional comment explaining the feedback',
174
+ },
175
+ },
176
+ required: ['memoryId', 'helpful'],
177
+ },
178
+ },
179
+ {
180
+ name: 'memory_consolidate',
181
+ description: 'Consolidate duplicate or similar memories. Merges similar memories, detects conflicts, and archives stale ones.',
182
+ inputSchema: {
183
+ type: 'object',
184
+ properties: {
185
+ dryRun: {
186
+ type: 'boolean',
187
+ description: 'If true, only analyze without making changes (default: false)',
188
+ },
189
+ similarityThreshold: {
190
+ type: 'number',
191
+ description: 'Similarity threshold for merging (0-1, default: 0.85)',
192
+ },
193
+ },
194
+ },
195
+ },
196
+ {
197
+ name: 'memory_digest',
198
+ description: 'Generate a weekly digest summarizing memory activity, patterns, and recommendations.',
199
+ inputSchema: {
200
+ type: 'object',
201
+ properties: {
202
+ days: {
203
+ type: 'number',
204
+ description: 'Number of days to include (default: 7)',
205
+ },
206
+ save: {
207
+ type: 'boolean',
208
+ description: 'Save the digest as a memory (default: true)',
209
+ },
210
+ },
211
+ },
212
+ },
213
+ {
214
+ name: 'memory_auto_tag',
215
+ description: 'Automatically tag memories based on content analysis.',
216
+ inputSchema: {
217
+ type: 'object',
218
+ properties: {
219
+ memoryId: {
220
+ type: 'string',
221
+ description: 'Specific memory ID to tag (optional, tags all untagged if not provided)',
222
+ },
223
+ batchMode: {
224
+ type: 'boolean',
225
+ description: 'Process all untagged memories (default: false)',
226
+ },
227
+ },
228
+ },
229
+ },
230
+ {
231
+ name: 'memory_embed',
232
+ description: 'Generate embeddings for memories to enable semantic search.',
233
+ inputSchema: {
234
+ type: 'object',
235
+ properties: {
236
+ batchMode: {
237
+ type: 'boolean',
238
+ description: 'Embed all memories without embeddings (default: false)',
239
+ },
240
+ limit: {
241
+ type: 'number',
242
+ description: 'Maximum memories to embed (default: 50)',
243
+ },
244
+ },
245
+ },
246
+ },
247
+ ];
248
+ // =============================================================================
249
+ // MCP SERVER CLASS
250
+ // =============================================================================
251
+ export class MemoryMCPServer {
252
+ server;
253
+ client = null;
254
+ system = 'SWARMSCALE';
255
+ config = null;
256
+ // Services
257
+ searchService = null;
258
+ autoTagService = null;
259
+ consolidationService = null;
260
+ digestService = null;
261
+ constructor() {
262
+ this.server = new Server({ name: 'metanautical-memory', version: '1.0.0' }, { capabilities: { tools: {} } });
263
+ this.setupHandlers();
264
+ }
265
+ /**
266
+ * Initialize with configuration
267
+ */
268
+ async init() {
269
+ const projectRoot = await getProjectRoot();
270
+ this.config = await loadConfig(projectRoot);
271
+ this.system = this.config.system;
272
+ this.client = createDrizzleClient(this.system);
273
+ // Initialize services
274
+ this.searchService = createSemanticSearchService(this.client);
275
+ this.autoTagService = createAutoTagService(this.client);
276
+ this.consolidationService = createConsolidationService(this.client, this.searchService);
277
+ this.digestService = createWeeklyDigestService(this.client, this.autoTagService, this.config);
278
+ }
279
+ /**
280
+ * Setup request handlers
281
+ */
282
+ setupHandlers() {
283
+ // List available tools
284
+ this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
285
+ tools: TOOLS,
286
+ }));
287
+ // Handle tool calls
288
+ this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
289
+ const { name, arguments: args } = request.params;
290
+ try {
291
+ const result = await this.handleToolCall(name, args);
292
+ return {
293
+ content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
294
+ };
295
+ }
296
+ catch (error) {
297
+ return {
298
+ content: [{ type: 'text', text: `Error: ${String(error)}` }],
299
+ isError: true,
300
+ };
301
+ }
302
+ });
303
+ }
304
+ /**
305
+ * Handle individual tool calls
306
+ */
307
+ async handleToolCall(name, args) {
308
+ if (!this.client) {
309
+ await this.init();
310
+ }
311
+ const client = this.client;
312
+ switch (name) {
313
+ case 'memory_search': {
314
+ const query = args.query;
315
+ const type = args.type ?? 'memory';
316
+ const limit = args.limit ?? 10;
317
+ const domain = args.domain;
318
+ const useSemantic = args.semantic ?? true;
319
+ // Use semantic search if available and requested
320
+ if (useSemantic && this.searchService) {
321
+ const results = await this.searchService.search(query, {
322
+ type,
323
+ limit,
324
+ domain,
325
+ threshold: 0.4,
326
+ });
327
+ return {
328
+ count: results.length,
329
+ searchType: 'semantic',
330
+ memories: results.map(r => ({
331
+ id: r.item.id,
332
+ title: r.content.title,
333
+ body: r.content.body?.slice(0, 200),
334
+ domain: r.content.domain,
335
+ relevanceScore: Math.round(r.score * 100) / 100,
336
+ createdAt: r.item.createdAt,
337
+ })),
338
+ };
339
+ }
340
+ // Fallback to text search
341
+ const results = await client.search(query, { type, limit });
342
+ return {
343
+ count: results.length,
344
+ searchType: 'text',
345
+ memories: results.map(m => ({
346
+ id: m.id,
347
+ title: m.content?.title,
348
+ body: m.content?.body?.slice(0, 200),
349
+ domain: m.content?.domain,
350
+ createdAt: m.createdAt,
351
+ })),
352
+ };
353
+ }
354
+ case 'memory_write': {
355
+ // Use semantic search service to create with embedding
356
+ if (this.searchService) {
357
+ const result = await this.searchService.createMemoryWithEmbedding(args.title, args.body, {
358
+ domain: args.domain,
359
+ source: 'claude',
360
+ tags: args.tags,
361
+ });
362
+ // Auto-tag if service available
363
+ if (this.autoTagService) {
364
+ await this.autoTagService.autoTag(result.id).catch(() => { });
365
+ }
366
+ return {
367
+ success: true,
368
+ id: result.id,
369
+ embedded: result.embedded,
370
+ message: `Memory saved: ${args.title}${result.embedded ? ' (with embedding)' : ''}`,
371
+ };
372
+ }
373
+ // Fallback to basic create
374
+ const content = {
375
+ title: args.title,
376
+ body: args.body,
377
+ domain: args.domain,
378
+ source: 'claude',
379
+ };
380
+ const result = await client.createMemory(content, args.tags);
381
+ return {
382
+ success: true,
383
+ id: result.id,
384
+ embedded: false,
385
+ message: `Memory saved: ${content.title}`,
386
+ };
387
+ }
388
+ case 'memory_list': {
389
+ const domain = args.domain;
390
+ const limit = args.limit ?? 10;
391
+ const memories = await client.getMemories(domain, limit);
392
+ return {
393
+ count: memories.length,
394
+ memories: memories.map(m => ({
395
+ id: m.id,
396
+ title: m.content?.title,
397
+ domain: m.content?.domain,
398
+ createdAt: m.createdAt,
399
+ })),
400
+ };
401
+ }
402
+ case 'pattern_check': {
403
+ const threshold = args.threshold ?? 3;
404
+ const patterns = await client.getTriggeredPatterns(threshold);
405
+ return {
406
+ triggered: patterns.length,
407
+ patterns: patterns.map(p => ({
408
+ id: p.id,
409
+ patternId: p.content?.patternId,
410
+ occurrences: p.content?.occurrences,
411
+ severity: p.priority,
412
+ })),
413
+ needsAutoImprove: patterns.length > 0,
414
+ };
415
+ }
416
+ case 'pattern_report': {
417
+ const result = await client.trackPattern(args.patternId, args.file, args.line ?? 0, args.code ?? '', args.severity ?? 'medium');
418
+ return {
419
+ success: true,
420
+ id: result.id,
421
+ count: result.count,
422
+ triggeredAutoImprove: result.count >= 3,
423
+ message: result.count >= 3
424
+ ? `Pattern ${args.patternId} reached threshold (${result.count}x). Auto-improvement triggered.`
425
+ : `Pattern ${args.patternId} tracked (${result.count}x).`,
426
+ };
427
+ }
428
+ case 'session_context': {
429
+ const includePatterns = args.includePatterns ?? true;
430
+ const [memories, stats] = await Promise.all([
431
+ client.getRecentMemories(5),
432
+ client.getStats(),
433
+ ]);
434
+ const result = {
435
+ system: this.system,
436
+ stats,
437
+ recentMemories: memories.map(m => ({
438
+ title: m.content?.title,
439
+ domain: m.content?.domain,
440
+ })),
441
+ };
442
+ if (includePatterns) {
443
+ const patterns = await client.getTriggeredPatterns(3);
444
+ result.triggeredPatterns = patterns.map(p => ({
445
+ patternId: p.content?.patternId,
446
+ occurrences: p.content?.occurrences,
447
+ }));
448
+ }
449
+ return result;
450
+ }
451
+ case 'feedback_submit': {
452
+ const memoryId = args.memoryId;
453
+ const helpful = args.helpful;
454
+ const comment = args.comment;
455
+ // Get the memory
456
+ const memory = await client.get(memoryId);
457
+ if (!memory) {
458
+ return { success: false, error: 'Memory not found' };
459
+ }
460
+ // Update with feedback
461
+ const content = memory.content;
462
+ const feedback = (content.feedback ?? []);
463
+ feedback.push({
464
+ helpful,
465
+ comment,
466
+ timestamp: new Date().toISOString(),
467
+ });
468
+ await client.update(memoryId, {
469
+ content: { ...content, feedback },
470
+ // Boost priority if helpful
471
+ priority: helpful ? 'high' : memory.priority ?? undefined,
472
+ });
473
+ // Record access for decay algorithm
474
+ if (this.consolidationService) {
475
+ await this.consolidationService.recordAccess(memoryId).catch(() => { });
476
+ }
477
+ return {
478
+ success: true,
479
+ message: helpful ? 'Thank you! Memory marked as helpful.' : 'Feedback recorded.',
480
+ };
481
+ }
482
+ case 'memory_consolidate': {
483
+ if (!this.consolidationService) {
484
+ return { success: false, error: 'Consolidation service not initialized' };
485
+ }
486
+ const dryRun = args.dryRun ?? false;
487
+ const similarityThreshold = args.similarityThreshold ?? 0.85;
488
+ const result = await this.consolidationService.consolidate({
489
+ dryRun,
490
+ similarityThreshold,
491
+ });
492
+ return {
493
+ success: true,
494
+ dryRun,
495
+ ...result,
496
+ message: dryRun
497
+ ? `Analysis complete: ${result.merged} memories would be merged, ${result.conflicts.length} conflicts detected`
498
+ : `Consolidation complete: ${result.merged} memories merged, ${result.archived} archived`,
499
+ };
500
+ }
501
+ case 'memory_digest': {
502
+ if (!this.digestService) {
503
+ return { success: false, error: 'Digest service not initialized' };
504
+ }
505
+ const days = args.days ?? 7;
506
+ const save = args.save ?? true;
507
+ const digest = await this.digestService.generate({ days });
508
+ if (save) {
509
+ await this.digestService.sendDigest(digest);
510
+ }
511
+ return {
512
+ success: true,
513
+ period: digest.period,
514
+ summary: digest.summary,
515
+ highlightCount: digest.highlights.length,
516
+ patternCount: digest.patterns.length,
517
+ recommendationCount: digest.recommendations.length,
518
+ markdown: this.digestService.formatAsMarkdown(digest),
519
+ };
520
+ }
521
+ case 'memory_auto_tag': {
522
+ if (!this.autoTagService) {
523
+ return { success: false, error: 'Auto-tag service not initialized' };
524
+ }
525
+ const memoryId = args.memoryId;
526
+ const batchMode = args.batchMode ?? false;
527
+ if (memoryId) {
528
+ const result = await this.autoTagService.autoTag(memoryId);
529
+ return {
530
+ success: true,
531
+ memoryId,
532
+ suggestedTags: result?.suggestedTags ?? [],
533
+ suggestedDomain: result?.suggestedDomain,
534
+ confidence: result?.confidence ?? 0,
535
+ };
536
+ }
537
+ if (batchMode) {
538
+ const result = await this.autoTagService.batchAutoTag();
539
+ return {
540
+ success: true,
541
+ ...result,
542
+ message: `Tagged ${result.tagged} out of ${result.processed} memories`,
543
+ };
544
+ }
545
+ // Just get stats
546
+ const stats = await this.autoTagService.getTagStats();
547
+ return {
548
+ success: true,
549
+ ...stats,
550
+ message: `${stats.untaggedCount} memories need tagging`,
551
+ };
552
+ }
553
+ case 'memory_embed': {
554
+ if (!this.searchService) {
555
+ return { success: false, error: 'Search service not initialized' };
556
+ }
557
+ const batchMode = args.batchMode ?? false;
558
+ const limit = args.limit ?? 50;
559
+ if (batchMode) {
560
+ const result = await this.searchService.batchEmbed({ limit });
561
+ return {
562
+ success: true,
563
+ ...result,
564
+ message: `Embedded ${result.embedded} out of ${result.processed} memories`,
565
+ };
566
+ }
567
+ // Just get stats
568
+ const stats = await this.searchService.getEmbeddingStats();
569
+ return {
570
+ success: true,
571
+ ...stats,
572
+ message: `${stats.coverage}% embedding coverage`,
573
+ };
574
+ }
575
+ default:
576
+ throw new Error(`Unknown tool: ${name}`);
577
+ }
578
+ }
579
+ /**
580
+ * Start the MCP server
581
+ */
582
+ async start() {
583
+ await this.init();
584
+ const transport = new StdioServerTransport();
585
+ await this.server.connect(transport);
586
+ console.error('MetaNautical Memory MCP Server running on stdio');
587
+ }
588
+ }
589
+ // =============================================================================
590
+ // STANDALONE EXECUTION
591
+ // =============================================================================
592
+ export async function startMCPServer() {
593
+ const server = new MemoryMCPServer();
594
+ await server.start();
595
+ }
596
+ if (import.meta.url === `file://${process.argv[1]}`) {
597
+ startMCPServer().catch(console.error);
598
+ }
599
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Embedding Service
3
+ *
4
+ * Generates embeddings using OpenAI or Gemini APIs.
5
+ */
6
+ export interface EmbeddingServiceConfig {
7
+ providers: ('openai' | 'gemini')[];
8
+ openaiApiKey?: string;
9
+ geminiApiKey?: string;
10
+ }
11
+ export declare class EmbeddingService {
12
+ private config;
13
+ constructor(config?: Partial<EmbeddingServiceConfig>);
14
+ /**
15
+ * Generate embedding for text
16
+ */
17
+ embed(text: string): Promise<number[]>;
18
+ /**
19
+ * Generate embeddings for multiple texts
20
+ */
21
+ embedBatch(texts: string[]): Promise<number[][]>;
22
+ /**
23
+ * OpenAI embedding
24
+ */
25
+ private embedWithOpenAI;
26
+ /**
27
+ * Gemini embedding
28
+ */
29
+ private embedWithGemini;
30
+ /**
31
+ * Get current provider info
32
+ */
33
+ getProviderInfo(): {
34
+ provider: string;
35
+ dimension: number;
36
+ };
37
+ }
38
+ //# sourceMappingURL=embeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../../src/registry/embeddings.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,CAAC,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAA;IAClC,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAMD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAwB;gBAE1B,MAAM,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC;IAQpD;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB5C;;OAEG;IACG,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAmBtD;;OAEG;YACW,eAAe;IAuB7B;;OAEG;YACW,eAAe;IAqB7B;;OAEG;IACH,eAAe,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;CAS3D"}