@pcircle/memesh 2.11.0 → 3.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 (74) hide show
  1. package/README.md +153 -52
  2. package/dist/cli/assets/d3.v7.min.js +2 -0
  3. package/dist/cli/view.d.ts +1 -0
  4. package/dist/cli/view.d.ts.map +1 -1
  5. package/dist/cli/view.js +2198 -10
  6. package/dist/cli/view.js.map +1 -1
  7. package/dist/core/config.d.ts +33 -0
  8. package/dist/core/config.d.ts.map +1 -0
  9. package/dist/core/config.js +70 -0
  10. package/dist/core/config.js.map +1 -0
  11. package/dist/core/extractor.d.ts +26 -0
  12. package/dist/core/extractor.d.ts.map +1 -0
  13. package/dist/core/extractor.js +106 -0
  14. package/dist/core/extractor.js.map +1 -0
  15. package/dist/core/lifecycle.d.ts +9 -0
  16. package/dist/core/lifecycle.d.ts.map +1 -0
  17. package/dist/core/lifecycle.js +51 -0
  18. package/dist/core/lifecycle.js.map +1 -0
  19. package/dist/core/operations.d.ts +9 -0
  20. package/dist/core/operations.d.ts.map +1 -0
  21. package/dist/core/operations.js +342 -0
  22. package/dist/core/operations.js.map +1 -0
  23. package/dist/core/query-expander.d.ts +4 -0
  24. package/dist/core/query-expander.d.ts.map +1 -0
  25. package/dist/core/query-expander.js +114 -0
  26. package/dist/core/query-expander.js.map +1 -0
  27. package/dist/core/schema-export.d.ts +2 -0
  28. package/dist/core/schema-export.d.ts.map +1 -0
  29. package/dist/core/schema-export.js +67 -0
  30. package/dist/core/schema-export.js.map +1 -0
  31. package/dist/core/scoring.d.ts +25 -0
  32. package/dist/core/scoring.d.ts.map +1 -0
  33. package/dist/core/scoring.js +40 -0
  34. package/dist/core/scoring.js.map +1 -0
  35. package/dist/core/types.d.ts +124 -0
  36. package/dist/core/types.d.ts.map +1 -0
  37. package/dist/core/types.js +2 -0
  38. package/dist/core/types.js.map +1 -0
  39. package/dist/core/version-check.d.ts +10 -0
  40. package/dist/core/version-check.d.ts.map +1 -0
  41. package/dist/core/version-check.js +44 -0
  42. package/dist/core/version-check.js.map +1 -0
  43. package/dist/db.d.ts.map +1 -1
  44. package/dist/db.js +33 -0
  45. package/dist/db.js.map +1 -1
  46. package/dist/knowledge-graph.d.ts +16 -30
  47. package/dist/knowledge-graph.d.ts.map +1 -1
  48. package/dist/knowledge-graph.js +205 -24
  49. package/dist/knowledge-graph.js.map +1 -1
  50. package/dist/mcp/server.js +8 -1
  51. package/dist/mcp/server.js.map +1 -1
  52. package/dist/mcp/tools.d.ts +1 -92
  53. package/dist/mcp/tools.d.ts.map +1 -1
  54. package/dist/mcp/tools.js +1 -182
  55. package/dist/mcp/tools.js.map +1 -1
  56. package/dist/transports/cli/cli.d.ts +3 -0
  57. package/dist/transports/cli/cli.d.ts.map +1 -0
  58. package/dist/transports/cli/cli.js +378 -0
  59. package/dist/transports/cli/cli.js.map +1 -0
  60. package/dist/transports/http/server.d.ts +5 -0
  61. package/dist/transports/http/server.d.ts.map +1 -0
  62. package/dist/transports/http/server.js +314 -0
  63. package/dist/transports/http/server.js.map +1 -0
  64. package/dist/transports/mcp/handlers.d.ts +184 -0
  65. package/dist/transports/mcp/handlers.d.ts.map +1 -0
  66. package/dist/transports/mcp/handlers.js +271 -0
  67. package/dist/transports/mcp/handlers.js.map +1 -0
  68. package/hooks/hooks.json +24 -0
  69. package/package.json +27 -9
  70. package/plugin.json +4 -4
  71. package/scripts/hooks/post-commit.js +35 -6
  72. package/scripts/hooks/pre-compact.js +198 -0
  73. package/scripts/hooks/session-start.js +73 -25
  74. package/scripts/hooks/session-summary.js +255 -0
@@ -0,0 +1,378 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import fs from 'fs';
4
+ import path from 'path';
5
+ import { fileURLToPath } from 'url';
6
+ import { openDatabase, closeDatabase, getDatabase } from '../../db.js';
7
+ import { remember, recallEnhanced, forget, consolidate, exportMemories, importMemories } from '../../core/operations.js';
8
+ import { KnowledgeGraph } from '../../knowledge-graph.js';
9
+ import { readConfig, updateConfig, maskApiKey, detectCapabilities } from '../../core/config.js';
10
+ const packageJsonPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), '../../../package.json');
11
+ const pkg = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8'));
12
+ const program = new Command();
13
+ program
14
+ .name('memesh')
15
+ .description('MeMesh — The lightest universal AI memory layer')
16
+ .version(pkg.version);
17
+ program
18
+ .command('remember')
19
+ .description('Store knowledge as an entity')
20
+ .requiredOption('--name <name>', 'Entity name')
21
+ .requiredOption('--type <type>', 'Entity type')
22
+ .option('--obs <observations...>', 'Observations (space-separated)')
23
+ .option('--tags <tags...>', 'Tags (space-separated)')
24
+ .option('--namespace <namespace>', 'Namespace: personal, team, or global (default: personal)')
25
+ .option('--json', 'Output as JSON')
26
+ .action((opts) => {
27
+ openDatabase();
28
+ try {
29
+ const result = remember({
30
+ name: opts.name,
31
+ type: opts.type,
32
+ observations: opts.obs,
33
+ tags: opts.tags,
34
+ namespace: opts.namespace,
35
+ });
36
+ if (opts.json) {
37
+ console.log(JSON.stringify(result));
38
+ }
39
+ else {
40
+ console.log(`✅ Stored "${result.name}" (${result.observations} observations, ${result.tags} tags)`);
41
+ }
42
+ }
43
+ finally {
44
+ closeDatabase();
45
+ }
46
+ });
47
+ program
48
+ .command('recall')
49
+ .description('Search stored knowledge')
50
+ .argument('[query]', 'Search query')
51
+ .option('--tag <tag>', 'Filter by tag')
52
+ .option('--limit <n>', 'Max results', '20')
53
+ .option('--include-archived', 'Include archived entities')
54
+ .option('--namespace <namespace>', 'Filter by namespace: personal, team, or global')
55
+ .option('--cross-project', 'Search across all project tags (ignores --tag filter)')
56
+ .option('--json', 'Output as JSON')
57
+ .action(async (query, opts) => {
58
+ openDatabase();
59
+ try {
60
+ const entities = await recallEnhanced({
61
+ query: query || undefined,
62
+ tag: opts.tag,
63
+ limit: parseInt(opts.limit),
64
+ include_archived: opts.includeArchived,
65
+ namespace: opts.namespace,
66
+ cross_project: opts.crossProject,
67
+ });
68
+ const kg = new KnowledgeGraph(getDatabase());
69
+ const conflicts = kg.findConflicts(entities.map(e => e.name));
70
+ if (opts.json) {
71
+ if (conflicts.length > 0) {
72
+ console.log(JSON.stringify({ entities, conflicts }));
73
+ }
74
+ else {
75
+ console.log(JSON.stringify(entities));
76
+ }
77
+ }
78
+ else if (entities.length === 0) {
79
+ console.log('No results found.');
80
+ }
81
+ else {
82
+ for (const e of entities) {
83
+ const badge = e.archived ? ' [archived]' : '';
84
+ console.log(` ${e.name}${badge} (${e.type})`);
85
+ for (const obs of e.observations.slice(0, 3)) {
86
+ console.log(` - ${obs}`);
87
+ }
88
+ if (e.observations.length > 3) {
89
+ console.log(` ... +${e.observations.length - 3} more`);
90
+ }
91
+ }
92
+ console.log(`\n${entities.length} result(s)`);
93
+ if (conflicts.length > 0) {
94
+ console.log('\nWarning: Conflicts detected:');
95
+ for (const c of conflicts) {
96
+ console.log(` ${c}`);
97
+ }
98
+ }
99
+ }
100
+ }
101
+ finally {
102
+ closeDatabase();
103
+ }
104
+ });
105
+ program
106
+ .command('forget')
107
+ .description('Archive an entity or remove an observation')
108
+ .requiredOption('--name <name>', 'Entity name')
109
+ .option('--observation <text>', 'Remove specific observation only')
110
+ .option('--json', 'Output as JSON')
111
+ .action((opts) => {
112
+ openDatabase();
113
+ try {
114
+ const result = forget({
115
+ name: opts.name,
116
+ observation: opts.observation,
117
+ });
118
+ if (opts.json) {
119
+ console.log(JSON.stringify(result));
120
+ }
121
+ else if (result.archived) {
122
+ console.log(`📦 Archived "${opts.name}"`);
123
+ }
124
+ else if (result.observation_removed) {
125
+ console.log(`✂️ Removed observation (${result.remaining_observations} remaining)`);
126
+ }
127
+ else {
128
+ console.log(`Entity "${opts.name}" not found`);
129
+ }
130
+ }
131
+ finally {
132
+ closeDatabase();
133
+ }
134
+ });
135
+ program
136
+ .command('consolidate')
137
+ .description('Compress verbose entity observations using an LLM (requires Smart Mode)')
138
+ .option('--name <name>', 'Specific entity to consolidate')
139
+ .option('--tag <tag>', 'Consolidate all entities with this tag')
140
+ .option('--min-obs <n>', 'Minimum observations to trigger (default: 5)', '5')
141
+ .option('--json', 'Output as JSON')
142
+ .action(async (opts) => {
143
+ openDatabase();
144
+ try {
145
+ const result = await consolidate({
146
+ name: opts.name,
147
+ tag: opts.tag,
148
+ min_observations: parseInt(opts.minObs),
149
+ });
150
+ if (opts.json) {
151
+ console.log(JSON.stringify(result));
152
+ }
153
+ else if (result.error) {
154
+ console.error(`Error: ${result.error}`);
155
+ process.exitCode = 1;
156
+ }
157
+ else if (result.consolidated === 0) {
158
+ console.log('No entities consolidated (none met the minimum observations threshold).');
159
+ }
160
+ else {
161
+ console.log(`Consolidated ${result.consolidated} entity/entities.`);
162
+ console.log(`Observations: ${result.observations_before} -> ${result.observations_after}`);
163
+ if (result.entities_processed.length > 0) {
164
+ console.log(`Processed: ${result.entities_processed.join(', ')}`);
165
+ }
166
+ }
167
+ }
168
+ finally {
169
+ closeDatabase();
170
+ }
171
+ });
172
+ program
173
+ .command('export')
174
+ .description('Export memories as JSON for sharing or backup')
175
+ .option('--tag <tag>', 'Export only entities with this tag')
176
+ .option('--namespace <ns>', 'Export only from this namespace (personal, team, global)')
177
+ .option('--limit <n>', 'Max entities to export', '1000')
178
+ .action((opts) => {
179
+ openDatabase();
180
+ try {
181
+ const result = exportMemories({
182
+ tag: opts.tag,
183
+ namespace: opts.namespace,
184
+ limit: parseInt(opts.limit),
185
+ });
186
+ console.log(JSON.stringify(result, null, 2));
187
+ }
188
+ finally {
189
+ closeDatabase();
190
+ }
191
+ });
192
+ program
193
+ .command('import')
194
+ .description('Import memories from a JSON export file')
195
+ .argument('<file>', 'Path to JSON export file')
196
+ .option('--namespace <ns>', 'Override namespace for all imported entities')
197
+ .option('--merge <strategy>', 'Merge strategy: skip | overwrite | append', 'skip')
198
+ .action((file, opts) => {
199
+ openDatabase();
200
+ try {
201
+ const raw = fs.readFileSync(file, 'utf8');
202
+ const data = JSON.parse(raw);
203
+ const result = importMemories({
204
+ data,
205
+ namespace: opts.namespace,
206
+ merge_strategy: opts.merge,
207
+ });
208
+ console.log(`Imported: ${result.imported}, Skipped: ${result.skipped}, Appended: ${result.appended}`);
209
+ if (result.errors.length > 0) {
210
+ console.error(`Errors:\n ${result.errors.join('\n ')}`);
211
+ process.exitCode = 1;
212
+ }
213
+ }
214
+ finally {
215
+ closeDatabase();
216
+ }
217
+ });
218
+ const configCmd = program.command('config').description('Manage configuration');
219
+ configCmd
220
+ .command('list')
221
+ .description('Show current configuration')
222
+ .action(() => {
223
+ const config = readConfig();
224
+ const caps = detectCapabilities(config);
225
+ console.log('Configuration (~/.memesh/config.json):');
226
+ if (config.llm) {
227
+ console.log(` LLM provider: ${config.llm.provider}`);
228
+ console.log(` LLM model: ${config.llm.model || 'default'}`);
229
+ if (config.llm.apiKey)
230
+ console.log(` API key: ${maskApiKey(config.llm.apiKey)}`);
231
+ }
232
+ else {
233
+ console.log(' LLM provider: not configured');
234
+ }
235
+ console.log(`\nSearch level: ${caps.searchLevel} (${caps.searchLevel === 1 ? 'Smart Mode' : 'Core'})`);
236
+ });
237
+ configCmd
238
+ .command('set')
239
+ .description('Set a config value')
240
+ .argument('<key>', 'Config key (e.g., llm.provider)')
241
+ .argument('<value>', 'Config value')
242
+ .action((key, value) => {
243
+ const config = readConfig();
244
+ if (key === 'llm.provider') {
245
+ const validProviders = ['anthropic', 'openai', 'ollama'];
246
+ if (!validProviders.includes(value)) {
247
+ console.error(`Invalid provider: ${value}. Must be one of: ${validProviders.join(', ')}`);
248
+ process.exit(1);
249
+ }
250
+ config.llm = { ...config.llm, provider: value };
251
+ }
252
+ else if (key === 'llm.api-key') {
253
+ config.llm = { ...config.llm, provider: config.llm?.provider || 'anthropic', apiKey: value };
254
+ }
255
+ else if (key === 'llm.model') {
256
+ config.llm = { ...config.llm, provider: config.llm?.provider || 'anthropic', model: value };
257
+ }
258
+ else {
259
+ console.error(`Unknown key: ${key}`);
260
+ process.exit(1);
261
+ }
262
+ updateConfig(config);
263
+ console.log(`✅ Set ${key} = ${key.includes('key') ? maskApiKey(value) : value}`);
264
+ });
265
+ configCmd
266
+ .command('unset')
267
+ .description('Remove a config value')
268
+ .argument('<key>', 'Config key')
269
+ .action((key) => {
270
+ const config = readConfig();
271
+ if (key === 'llm.api-key' && config.llm) {
272
+ delete config.llm.apiKey;
273
+ }
274
+ else if (key === 'llm.provider') {
275
+ delete config.llm;
276
+ }
277
+ else {
278
+ console.error(`Unknown key: ${key}`);
279
+ process.exit(1);
280
+ }
281
+ updateConfig(config);
282
+ console.log(`✅ Removed ${key}`);
283
+ });
284
+ program
285
+ .command('export-schema')
286
+ .description('Export MeMesh tools in OpenAI function calling format')
287
+ .option('--format <format>', 'Output format (openai)', 'openai')
288
+ .action(async (opts) => {
289
+ const { exportOpenAITools } = await import('../../core/schema-export.js');
290
+ if (opts.format === 'openai') {
291
+ console.log(JSON.stringify(exportOpenAITools(), null, 2));
292
+ }
293
+ else {
294
+ console.error(`Unknown format: ${opts.format}. Available: openai`);
295
+ process.exit(1);
296
+ }
297
+ });
298
+ program
299
+ .command('serve')
300
+ .description('Start HTTP API server')
301
+ .option('--port <port>', 'Port number', '3737')
302
+ .option('--host <host>', 'Host to bind', '127.0.0.1')
303
+ .action(async (opts) => {
304
+ const { startServer } = await import('../http/server.js');
305
+ startServer(opts.host, parseInt(opts.port));
306
+ });
307
+ program
308
+ .command('update')
309
+ .description('Update MeMesh to latest version')
310
+ .action(async () => {
311
+ const { checkForUpdate } = await import('../../core/version-check.js');
312
+ const check = await checkForUpdate(pkg.version);
313
+ if (!check.updateAvailable) {
314
+ console.log(`✅ Already on latest version (${pkg.version})`);
315
+ return;
316
+ }
317
+ console.log(`🔄 Updating ${pkg.version} → ${check.latestVersion}...`);
318
+ const { execFileSync } = await import('child_process');
319
+ try {
320
+ execFileSync('npm', ['install', '-g', `@pcircle/memesh@${check.latestVersion}`], { stdio: 'inherit' });
321
+ console.log(`✅ Updated to ${check.latestVersion}`);
322
+ }
323
+ catch {
324
+ console.error('❌ Update failed. Try manually: npm install -g @pcircle/memesh@latest');
325
+ process.exit(1);
326
+ }
327
+ });
328
+ program
329
+ .command('status')
330
+ .description('Show MeMesh status and capabilities')
331
+ .action(async () => {
332
+ const caps = detectCapabilities();
333
+ const { getLastUpdateCheck } = await import('../../core/version-check.js');
334
+ const update = getLastUpdateCheck();
335
+ console.log(`MeMesh v${pkg.version}`);
336
+ console.log(`Search level: ${caps.searchLevel} (${caps.searchLevel === 1 ? 'Smart Mode' : 'Core'})`);
337
+ console.log(`Embeddings: ${caps.embeddings}`);
338
+ console.log(`LLM: ${caps.llm ? `${caps.llm.provider} (${caps.llm.model})` : 'not configured'}`);
339
+ if (update?.updateAvailable) {
340
+ console.log(`\n🔄 Update available: ${update.latestVersion} (run: memesh update)`);
341
+ }
342
+ });
343
+ program.action(async () => {
344
+ const { startServer } = await import('../http/server.js');
345
+ const server = startServer('127.0.0.1', 0);
346
+ await new Promise((resolve, reject) => {
347
+ server.once('listening', resolve);
348
+ server.once('error', reject);
349
+ });
350
+ const addr = server.address();
351
+ if (!addr) {
352
+ console.error('Failed to start dashboard server');
353
+ process.exit(1);
354
+ }
355
+ const url = `http://127.0.0.1:${addr.port}/dashboard`;
356
+ console.log(`MeMesh dashboard: ${url}`);
357
+ console.log('Press Ctrl+C to stop.');
358
+ const { execFile } = await import('child_process');
359
+ if (process.platform === 'darwin') {
360
+ execFile('open', [url]);
361
+ }
362
+ else if (process.platform === 'win32') {
363
+ execFile('cmd.exe', ['/c', 'start', '', url]);
364
+ }
365
+ else {
366
+ execFile('xdg-open', [url]);
367
+ }
368
+ process.on('SIGINT', () => {
369
+ server.close();
370
+ try {
371
+ closeDatabase();
372
+ }
373
+ catch { }
374
+ process.exit(0);
375
+ });
376
+ });
377
+ program.parse();
378
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/transports/cli/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ declare const app: import("express-serve-static-core").Express;
3
+ export declare function startServer(host?: string, port?: number): ReturnType<typeof app.listen>;
4
+ export { app };
5
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/transports/http/server.ts"],"names":[],"mappings":";AA8EA,QAAA,MAAM,GAAG,6CAAY,CAAC;AA8PtB,wBAAgB,WAAW,CAAC,IAAI,SAAO,EAAE,IAAI,SAAO,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,CAOnF;AAgBD,OAAO,EAAE,GAAG,EAAE,CAAC"}