agent-working-memory 0.5.5 → 0.6.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 (82) hide show
  1. package/README.md +428 -399
  2. package/dist/api/routes.d.ts.map +1 -1
  3. package/dist/api/routes.js +60 -5
  4. package/dist/api/routes.js.map +1 -1
  5. package/dist/cli.js +468 -68
  6. package/dist/cli.js.map +1 -1
  7. package/dist/coordination/index.d.ts +11 -0
  8. package/dist/coordination/index.d.ts.map +1 -0
  9. package/dist/coordination/index.js +39 -0
  10. package/dist/coordination/index.js.map +1 -0
  11. package/dist/coordination/mcp-tools.d.ts +8 -0
  12. package/dist/coordination/mcp-tools.d.ts.map +1 -0
  13. package/dist/coordination/mcp-tools.js +221 -0
  14. package/dist/coordination/mcp-tools.js.map +1 -0
  15. package/dist/coordination/routes.d.ts +9 -0
  16. package/dist/coordination/routes.d.ts.map +1 -0
  17. package/dist/coordination/routes.js +573 -0
  18. package/dist/coordination/routes.js.map +1 -0
  19. package/dist/coordination/schema.d.ts +12 -0
  20. package/dist/coordination/schema.d.ts.map +1 -0
  21. package/dist/coordination/schema.js +125 -0
  22. package/dist/coordination/schema.js.map +1 -0
  23. package/dist/coordination/schemas.d.ts +227 -0
  24. package/dist/coordination/schemas.d.ts.map +1 -0
  25. package/dist/coordination/schemas.js +125 -0
  26. package/dist/coordination/schemas.js.map +1 -0
  27. package/dist/coordination/stale.d.ts +27 -0
  28. package/dist/coordination/stale.d.ts.map +1 -0
  29. package/dist/coordination/stale.js +58 -0
  30. package/dist/coordination/stale.js.map +1 -0
  31. package/dist/engine/activation.d.ts.map +1 -1
  32. package/dist/engine/activation.js +119 -23
  33. package/dist/engine/activation.js.map +1 -1
  34. package/dist/engine/consolidation.d.ts.map +1 -1
  35. package/dist/engine/consolidation.js +27 -6
  36. package/dist/engine/consolidation.js.map +1 -1
  37. package/dist/index.js +100 -4
  38. package/dist/index.js.map +1 -1
  39. package/dist/mcp.js +149 -80
  40. package/dist/mcp.js.map +1 -1
  41. package/dist/storage/sqlite.d.ts +21 -0
  42. package/dist/storage/sqlite.d.ts.map +1 -1
  43. package/dist/storage/sqlite.js +331 -282
  44. package/dist/storage/sqlite.js.map +1 -1
  45. package/dist/types/engram.d.ts +24 -0
  46. package/dist/types/engram.d.ts.map +1 -1
  47. package/dist/types/engram.js.map +1 -1
  48. package/package.json +57 -55
  49. package/src/api/index.ts +3 -3
  50. package/src/api/routes.ts +600 -536
  51. package/src/cli.ts +850 -397
  52. package/src/coordination/index.ts +47 -0
  53. package/src/coordination/mcp-tools.ts +318 -0
  54. package/src/coordination/routes.ts +846 -0
  55. package/src/coordination/schema.ts +120 -0
  56. package/src/coordination/schemas.ts +155 -0
  57. package/src/coordination/stale.ts +97 -0
  58. package/src/core/decay.ts +63 -63
  59. package/src/core/embeddings.ts +88 -88
  60. package/src/core/hebbian.ts +93 -93
  61. package/src/core/index.ts +5 -5
  62. package/src/core/logger.ts +36 -36
  63. package/src/core/query-expander.ts +66 -66
  64. package/src/core/reranker.ts +101 -101
  65. package/src/engine/activation.ts +758 -656
  66. package/src/engine/connections.ts +103 -103
  67. package/src/engine/consolidation-scheduler.ts +125 -125
  68. package/src/engine/consolidation.ts +29 -6
  69. package/src/engine/eval.ts +102 -102
  70. package/src/engine/eviction.ts +101 -101
  71. package/src/engine/index.ts +8 -8
  72. package/src/engine/retraction.ts +100 -100
  73. package/src/engine/staging.ts +74 -74
  74. package/src/index.ts +208 -121
  75. package/src/mcp.ts +1093 -1013
  76. package/src/storage/index.ts +3 -3
  77. package/src/storage/sqlite.ts +1017 -963
  78. package/src/types/agent.ts +67 -67
  79. package/src/types/checkpoint.ts +46 -46
  80. package/src/types/engram.ts +245 -217
  81. package/src/types/eval.ts +100 -100
  82. package/src/types/index.ts +6 -6
package/dist/cli.js CHANGED
@@ -13,7 +13,7 @@
13
13
  import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
14
14
  import { resolve, basename, join, dirname } from 'node:path';
15
15
  import { execSync } from 'node:child_process';
16
- import { randomBytes } from 'node:crypto';
16
+ import { randomBytes, randomUUID } from 'node:crypto';
17
17
  import { fileURLToPath } from 'node:url';
18
18
  import { homedir as osHomedir } from 'node:os';
19
19
  const __filename = fileURLToPath(import.meta.url);
@@ -39,28 +39,35 @@ catch { /* No .env file */ }
39
39
  const args = process.argv.slice(2);
40
40
  const command = args[0];
41
41
  function printUsage() {
42
- console.log(`
43
- AgentWorkingMemory — Cognitive memory for AI agents
44
-
45
- Usage:
46
- awm setup [--global] [--agent-id <id>] [--db-path <path>] [--no-claude-md]
47
- [--no-hooks] [--hook-port <port>] Configure MCP for Claude Code
48
- awm mcp Start MCP server (used by Claude Code)
49
- awm serve [--port <port>] Start HTTP API server
50
- awm health [--port <port>] Check server health
51
-
52
- Setup:
53
- awm setup --global Recommended. Writes ~/.mcp.json so AWM is available
54
- in every project — one brain across all your work.
55
-
56
- awm setup Project-level. Writes .mcp.json in the current directory
57
- and appends workflow instructions to CLAUDE.md.
58
-
59
- --no-claude-md Skip CLAUDE.md modification
60
- --no-hooks Skip hook installation (no auto-checkpoint)
61
- --hook-port PORT Sidecar port for hooks (default: 8401)
62
-
63
- Restart Claude Code after setup to pick up the new MCP server.
42
+ console.log(`
43
+ AgentWorkingMemory — Cognitive memory for AI agents
44
+
45
+ Usage:
46
+ awm setup [--global] [--agent-id <id>] [--db-path <path>] [--no-claude-md]
47
+ [--no-hooks] [--hook-port <port>] Configure MCP for Claude Code
48
+ awm mcp Start MCP server (used by Claude Code)
49
+ awm serve [--port <port>] Start HTTP API server
50
+ awm health [--port <port>] Check server health
51
+ awm export --db <path> [--agent <id>] [--output <file>] [--active-only]
52
+ Export memories to JSON
53
+ awm import <file> --db <path> [--remap-agent <id>] [--dedupe] [--dry-run]
54
+ Import memories from JSON
55
+ awm merge --target <db> --source <db> [--source ...]
56
+ [--remap uuid=name] [--remap-all-uuids <name>]
57
+ [--dedupe] [--dry-run] Merge multiple memory DBs
58
+
59
+ Setup:
60
+ awm setup --global Recommended. Writes ~/.mcp.json so AWM is available
61
+ in every project one brain across all your work.
62
+
63
+ awm setup Project-level. Writes .mcp.json in the current directory
64
+ and appends workflow instructions to CLAUDE.md.
65
+
66
+ --no-claude-md Skip CLAUDE.md modification
67
+ --no-hooks Skip hook installation (no auto-checkpoint)
68
+ --hook-port PORT Sidecar port for hooks (default: 8401)
69
+
70
+ Restart Claude Code after setup to pick up the new MCP server.
64
71
  `.trim());
65
72
  }
66
73
  // ─── SETUP ──────────────────────────────────────
@@ -168,36 +175,36 @@ function setup() {
168
175
  writeFileSync(mcpJsonPath, JSON.stringify(existing, null, 2) + '\n');
169
176
  // Auto-append CLAUDE.md snippet unless --no-claude-md
170
177
  let claudeMdAction = '';
171
- const claudeMdSnippet = `
172
-
173
- ## Memory (AWM)
174
- You have persistent memory via the agent-working-memory MCP server.
175
-
176
- ### Lifecycle (always do these)
177
- - Session start: call memory_restore to recover previous context
178
- - Starting a task: call memory_task_begin (checkpoints + recalls relevant memories)
179
- - Finishing a task: call memory_task_end with a summary
180
- - Auto-checkpoint: hooks handle compaction, session end, and 15-min timer (no action needed)
181
-
182
- ### Write memory when:
183
- - A project decision is made or changed
184
- - A root cause is discovered after debugging
185
- - A reusable implementation pattern is established
186
- - A user preference, constraint, or requirement is clarified
187
- - A prior assumption is found to be wrong
188
- - A significant piece of work is completed
189
-
190
- ### Recall memory when:
191
- - Starting work on a new task or subsystem
192
- - Re-entering code you haven't touched recently
193
- - After a failed attempt — check if there's prior knowledge
194
- - Before refactoring or making architectural changes
195
- - When a topic comes up that you might have prior context on
196
-
197
- ### Also:
198
- - After using a recalled memory: call memory_feedback (useful/not-useful)
199
- - To correct wrong info: call memory_retract
200
- - To track work items: memory_task_add, memory_task_update, memory_task_list, memory_task_next
178
+ const claudeMdSnippet = `
179
+
180
+ ## Memory (AWM)
181
+ You have persistent memory via the agent-working-memory MCP server.
182
+
183
+ ### Lifecycle (always do these)
184
+ - Session start: call memory_restore to recover previous context
185
+ - Starting a task: call memory_task_begin (checkpoints + recalls relevant memories)
186
+ - Finishing a task: call memory_task_end with a summary
187
+ - Auto-checkpoint: hooks handle compaction, session end, and 15-min timer (no action needed)
188
+
189
+ ### Write memory when:
190
+ - A project decision is made or changed
191
+ - A root cause is discovered after debugging
192
+ - A reusable implementation pattern is established
193
+ - A user preference, constraint, or requirement is clarified
194
+ - A prior assumption is found to be wrong
195
+ - A significant piece of work is completed
196
+
197
+ ### Recall memory when:
198
+ - Starting work on a new task or subsystem
199
+ - Re-entering code you haven't touched recently
200
+ - After a failed attempt — check if there's prior knowledge
201
+ - Before refactoring or making architectural changes
202
+ - When a topic comes up that you might have prior context on
203
+
204
+ ### Also:
205
+ - After using a recalled memory: call memory_feedback (useful/not-useful)
206
+ - To correct wrong info: call memory_retract
207
+ - To track work items: memory_task_add, memory_task_update, memory_task_list, memory_task_next
201
208
  `;
202
209
  // For global: write to ~/.claude/CLAUDE.md (loaded by Claude Code in every session)
203
210
  // For project: write to ./CLAUDE.md in the current directory
@@ -295,21 +302,21 @@ You have persistent memory via the agent-working-memory MCP server.
295
302
  hookAction = ` Hooks: Stop (memory reminder) + PreCompact + SessionEnd → auto-checkpoint (port ${hookPort})`;
296
303
  }
297
304
  const scope = isGlobal ? 'globally (all projects)' : cwd;
298
- console.log(`
299
- AWM configured ${isGlobal ? 'globally' : 'for: ' + cwd}
300
-
301
- Agent ID: ${agentId}
302
- DB path: ${dbPath}
303
- MCP config: ${mcpJsonPath}
304
- Hook port: ${hookPort}
305
- Hook secret: ${hookSecret.slice(0, 8)}...
306
- ${claudeMdAction}
307
- ${hookAction}
308
-
309
- Next steps:
310
- 1. Restart Claude Code to pick up the MCP server
311
- 2. The memory tools will appear automatically
312
- 3. Hooks auto-checkpoint on context compaction and session end${isGlobal ? '\n 4. One brain across all your projects — no per-project setup needed' : ''}
305
+ console.log(`
306
+ AWM configured ${isGlobal ? 'globally' : 'for: ' + cwd}
307
+
308
+ Agent ID: ${agentId}
309
+ DB path: ${dbPath}
310
+ MCP config: ${mcpJsonPath}
311
+ Hook port: ${hookPort}
312
+ Hook secret: ${hookSecret.slice(0, 8)}...
313
+ ${claudeMdAction}
314
+ ${hookAction}
315
+
316
+ Next steps:
317
+ 1. Restart Claude Code to pick up the MCP server
318
+ 2. The memory tools will appear automatically
319
+ 3. Hooks auto-checkpoint on context compaction and session end${isGlobal ? '\n 4. One brain across all your projects — no per-project setup needed' : ''}
313
320
  `.trim());
314
321
  }
315
322
  // ─── MCP ──────────────────────────────────────
@@ -348,6 +355,390 @@ function health() {
348
355
  process.exit(1);
349
356
  }
350
357
  }
358
+ // ─── EXPORT ──────────────────────────────────────
359
+ async function exportMemories() {
360
+ let dbPath = '';
361
+ let agentFilter = null;
362
+ let outputPath = null;
363
+ let activeOnly = false;
364
+ for (let i = 1; i < args.length; i++) {
365
+ if (args[i] === '--db' && args[i + 1])
366
+ dbPath = args[++i];
367
+ else if (args[i] === '--agent' && args[i + 1])
368
+ agentFilter = args[++i];
369
+ else if (args[i] === '--output' && args[i + 1])
370
+ outputPath = args[++i];
371
+ else if (args[i] === '--active-only')
372
+ activeOnly = true;
373
+ }
374
+ if (!dbPath) {
375
+ console.error('Error: --db <path> is required');
376
+ process.exit(1);
377
+ }
378
+ if (!existsSync(dbPath)) {
379
+ console.error(`Error: database not found: ${dbPath}`);
380
+ process.exit(1);
381
+ }
382
+ // Dynamic import to avoid loading better-sqlite3 for other commands
383
+ const Database = (await import('better-sqlite3')).default;
384
+ const db = new Database(dbPath, { readonly: true });
385
+ // Build memory query
386
+ let memQuery = 'SELECT * FROM engrams';
387
+ const conditions = [];
388
+ const params = [];
389
+ if (agentFilter) {
390
+ conditions.push('agent_id = ?');
391
+ params.push(agentFilter);
392
+ }
393
+ if (activeOnly) {
394
+ conditions.push('retracted = 0');
395
+ }
396
+ if (conditions.length > 0) {
397
+ memQuery += ' WHERE ' + conditions.join(' AND ');
398
+ }
399
+ memQuery += ' ORDER BY created_at ASC';
400
+ const rows = db.prepare(memQuery).all(...params);
401
+ // Build memory objects (exclude embedding blobs)
402
+ const memories = rows.map((r) => ({
403
+ id: r.id,
404
+ agent_id: r.agent_id,
405
+ concept: r.concept,
406
+ content: r.content,
407
+ confidence: r.confidence,
408
+ salience: r.salience,
409
+ access_count: r.access_count,
410
+ last_accessed: r.last_accessed,
411
+ created_at: r.created_at,
412
+ stage: r.stage,
413
+ tags: r.tags ? JSON.parse(r.tags) : [],
414
+ memory_class: r.memory_class ?? 'working',
415
+ episode_id: r.episode_id ?? null,
416
+ task_status: r.task_status ?? null,
417
+ task_priority: r.task_priority ?? null,
418
+ supersedes: r.supersedes ?? null,
419
+ superseded_by: r.superseded_by ?? null,
420
+ retracted: r.retracted ?? 0,
421
+ }));
422
+ // Get memory IDs for association filtering
423
+ const memIds = new Set(memories.map((m) => m.id));
424
+ // Build associations
425
+ let assocQuery = 'SELECT * FROM associations';
426
+ const allAssocs = db.prepare(assocQuery).all();
427
+ const associations = allAssocs
428
+ .filter((a) => memIds.has(a.from_engram_id) && memIds.has(a.to_engram_id))
429
+ .map((a) => ({
430
+ from_id: a.from_engram_id,
431
+ to_id: a.to_engram_id,
432
+ weight: a.weight,
433
+ type: a.type ?? 'hebbian',
434
+ activation_count: a.activation_count ?? 0,
435
+ }));
436
+ // Collect unique agents
437
+ const agents = [...new Set(memories.map((m) => m.agent_id))];
438
+ const exportData = {
439
+ version: '0.6.0',
440
+ exported_at: new Date().toISOString(),
441
+ source_db: dbPath,
442
+ agent_filter: agentFilter,
443
+ memories,
444
+ associations,
445
+ stats: {
446
+ total_memories: memories.length,
447
+ total_associations: associations.length,
448
+ agents,
449
+ },
450
+ };
451
+ const json = JSON.stringify(exportData, null, 2);
452
+ if (outputPath) {
453
+ writeFileSync(outputPath, json + '\n');
454
+ console.error(`Exported ${memories.length} memories, ${associations.length} associations → ${outputPath}`);
455
+ }
456
+ else {
457
+ process.stdout.write(json + '\n');
458
+ }
459
+ db.close();
460
+ }
461
+ // ─── IMPORT ──────────────────────────────────────
462
+ async function importMemories() {
463
+ let filePath = '';
464
+ let dbPath = '';
465
+ let remapAgent = null;
466
+ let dedupe = false;
467
+ let dryRun = false;
468
+ let includeRetracted = false;
469
+ // First non-flag arg after 'import' is the file path
470
+ for (let i = 1; i < args.length; i++) {
471
+ if (args[i] === '--db' && args[i + 1])
472
+ dbPath = args[++i];
473
+ else if (args[i] === '--remap-agent' && args[i + 1])
474
+ remapAgent = args[++i];
475
+ else if (args[i] === '--dedupe')
476
+ dedupe = true;
477
+ else if (args[i] === '--dry-run')
478
+ dryRun = true;
479
+ else if (args[i] === '--include-retracted')
480
+ includeRetracted = true;
481
+ else if (!args[i].startsWith('--') && !filePath)
482
+ filePath = args[i];
483
+ }
484
+ if (!filePath) {
485
+ console.error('Error: <file> is required');
486
+ process.exit(1);
487
+ }
488
+ if (!dbPath) {
489
+ console.error('Error: --db <path> is required');
490
+ process.exit(1);
491
+ }
492
+ if (!existsSync(filePath)) {
493
+ console.error(`Error: import file not found: ${filePath}`);
494
+ process.exit(1);
495
+ }
496
+ const importData = JSON.parse(readFileSync(filePath, 'utf-8'));
497
+ if (!importData.memories || !Array.isArray(importData.memories)) {
498
+ console.error('Error: invalid export file — missing memories array');
499
+ process.exit(1);
500
+ }
501
+ const Database = (await import('better-sqlite3')).default;
502
+ const db = new Database(dbPath);
503
+ // Ensure tables exist in target
504
+ db.exec(`
505
+ CREATE TABLE IF NOT EXISTS engrams (
506
+ id TEXT PRIMARY KEY, agent_id TEXT NOT NULL, concept TEXT NOT NULL, content TEXT NOT NULL,
507
+ embedding BLOB, confidence REAL NOT NULL DEFAULT 0.5, salience REAL NOT NULL DEFAULT 0.5,
508
+ access_count INTEGER NOT NULL DEFAULT 0, last_accessed TEXT NOT NULL, created_at TEXT NOT NULL,
509
+ salience_features TEXT NOT NULL DEFAULT '{}', reason_codes TEXT NOT NULL DEFAULT '[]',
510
+ stage TEXT NOT NULL DEFAULT 'active', ttl INTEGER, retracted INTEGER NOT NULL DEFAULT 0,
511
+ retracted_by TEXT, retracted_at TEXT, tags TEXT NOT NULL DEFAULT '[]',
512
+ episode_id TEXT, task_status TEXT, task_priority TEXT, blocked_by TEXT,
513
+ memory_class TEXT NOT NULL DEFAULT 'working', superseded_by TEXT, supersedes TEXT
514
+ );
515
+ CREATE TABLE IF NOT EXISTS associations (
516
+ id TEXT PRIMARY KEY, from_engram_id TEXT NOT NULL, to_engram_id TEXT NOT NULL,
517
+ weight REAL NOT NULL DEFAULT 0.1, confidence REAL NOT NULL DEFAULT 0.5,
518
+ type TEXT NOT NULL DEFAULT 'hebbian', activation_count INTEGER NOT NULL DEFAULT 0,
519
+ created_at TEXT NOT NULL, last_activated TEXT
520
+ );
521
+ `);
522
+ // Build dedup set if needed
523
+ const existingHashes = new Set();
524
+ if (dedupe) {
525
+ const existing = db.prepare('SELECT concept, content FROM engrams').all();
526
+ for (const row of existing) {
527
+ const hash = (row.concept ?? '').toLowerCase().trim() + '||' + (row.content ?? '').toLowerCase().trim();
528
+ existingHashes.add(hash);
529
+ }
530
+ }
531
+ const idMap = new Map();
532
+ let imported = 0;
533
+ let skippedDupes = 0;
534
+ let skippedRetracted = 0;
535
+ const insertMem = db.prepare(`
536
+ INSERT INTO engrams (id, agent_id, concept, content, confidence, salience,
537
+ access_count, last_accessed, created_at, stage, tags, memory_class,
538
+ episode_id, task_status, task_priority, supersedes, superseded_by, retracted)
539
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
540
+ `);
541
+ const insertAssoc = db.prepare(`
542
+ INSERT INTO associations (id, from_engram_id, to_engram_id, weight, type, activation_count, created_at)
543
+ VALUES (?, ?, ?, ?, ?, ?, datetime('now'))
544
+ `);
545
+ const importTx = db.transaction(() => {
546
+ // Import memories
547
+ for (const mem of importData.memories) {
548
+ // Skip retracted unless --include-retracted
549
+ if (mem.retracted && !includeRetracted) {
550
+ skippedRetracted++;
551
+ continue;
552
+ }
553
+ // Dedupe check
554
+ if (dedupe) {
555
+ const hash = (mem.concept ?? '').toLowerCase().trim() + '||' + (mem.content ?? '').toLowerCase().trim();
556
+ if (existingHashes.has(hash)) {
557
+ skippedDupes++;
558
+ continue;
559
+ }
560
+ }
561
+ const newId = randomUUID();
562
+ idMap.set(mem.id, newId);
563
+ const agentId = remapAgent ?? mem.agent_id;
564
+ const tags = Array.isArray(mem.tags) ? JSON.stringify(mem.tags) : (mem.tags ?? '[]');
565
+ if (!dryRun) {
566
+ insertMem.run(newId, agentId, mem.concept, mem.content, mem.confidence ?? 0.5, mem.salience ?? 0.5, mem.access_count ?? 0, mem.last_accessed ?? mem.created_at, mem.created_at, mem.stage ?? 'active', tags, mem.memory_class ?? 'working', mem.episode_id ?? null, mem.task_status ?? null, mem.task_priority ?? null, mem.supersedes ?? null, mem.superseded_by ?? null, mem.retracted ?? 0);
567
+ }
568
+ imported++;
569
+ }
570
+ // Import associations (using remapped IDs)
571
+ let assocImported = 0;
572
+ const associations = importData.associations ?? [];
573
+ for (const assoc of associations) {
574
+ const fromId = idMap.get(assoc.from_id);
575
+ const toId = idMap.get(assoc.to_id);
576
+ if (!fromId || !toId)
577
+ continue; // skip if either memory was skipped
578
+ if (!dryRun) {
579
+ insertAssoc.run(randomUUID(), fromId, toId, assoc.weight ?? 0.5, assoc.type ?? 'hebbian', assoc.activation_count ?? 0);
580
+ }
581
+ assocImported++;
582
+ }
583
+ return assocImported;
584
+ });
585
+ const assocCount = importTx();
586
+ const prefix = dryRun ? '[DRY RUN] Would import' : 'Imported';
587
+ console.log(`${prefix} ${imported} memories, ${assocCount} associations` +
588
+ (skippedDupes > 0 ? `, ${skippedDupes} skipped (dupes)` : '') +
589
+ (skippedRetracted > 0 ? `, ${skippedRetracted} skipped (retracted)` : '') +
590
+ (remapAgent ? ` (agent remapped to: ${remapAgent})` : ''));
591
+ db.close();
592
+ }
593
+ // ─── MERGE ──────────────────────────────────────
594
+ async function mergeMemories() {
595
+ const Database = (await import('better-sqlite3')).default;
596
+ const { createHash, randomUUID } = await import('node:crypto');
597
+ let target = '';
598
+ const sources = [];
599
+ const remapEntries = new Map();
600
+ let remapAllUuids = '';
601
+ let dedupe = false;
602
+ let dryRun = false;
603
+ for (let i = 1; i < args.length; i++) {
604
+ if (args[i] === '--target' && args[i + 1]) {
605
+ target = args[++i];
606
+ }
607
+ else if (args[i] === '--source' && args[i + 1]) {
608
+ sources.push(args[++i]);
609
+ }
610
+ else if (args[i] === '--remap' && args[i + 1]) {
611
+ const val = args[++i];
612
+ const eqIdx = val.indexOf('=');
613
+ if (eqIdx > 0)
614
+ remapEntries.set(val.slice(0, eqIdx), val.slice(eqIdx + 1));
615
+ }
616
+ else if (args[i] === '--remap-all-uuids' && args[i + 1]) {
617
+ remapAllUuids = args[++i];
618
+ }
619
+ else if (args[i] === '--dedupe') {
620
+ dedupe = true;
621
+ }
622
+ else if (args[i] === '--dry-run') {
623
+ dryRun = true;
624
+ }
625
+ }
626
+ if (!target || sources.length === 0) {
627
+ console.error('Usage: awm merge --target <path> --source <path> [--source <path>...] [--remap uuid=name] [--remap-all-uuids name] [--dedupe] [--dry-run]');
628
+ process.exit(1);
629
+ }
630
+ const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
631
+ function remapAgentId(agentId) {
632
+ if (remapEntries.has(agentId))
633
+ return remapEntries.get(agentId);
634
+ if (remapAllUuids && UUID_RE.test(agentId))
635
+ return remapAllUuids;
636
+ return agentId;
637
+ }
638
+ function contentHash(concept, content) {
639
+ return createHash('sha256').update((concept + '\n' + content).toLowerCase().trim()).digest('hex');
640
+ }
641
+ console.log(`Target: ${target}${dryRun ? ' (DRY RUN)' : ''}`);
642
+ const targetDb = new Database(target);
643
+ targetDb.pragma('journal_mode = WAL');
644
+ targetDb.pragma('foreign_keys = ON');
645
+ // Ensure tables exist in target
646
+ targetDb.exec(`
647
+ CREATE TABLE IF NOT EXISTS engrams (
648
+ id TEXT PRIMARY KEY, agent_id TEXT NOT NULL, concept TEXT NOT NULL, content TEXT NOT NULL,
649
+ embedding BLOB, confidence REAL NOT NULL DEFAULT 0.5, salience REAL NOT NULL DEFAULT 0.5,
650
+ access_count INTEGER NOT NULL DEFAULT 0, last_accessed TEXT NOT NULL, created_at TEXT NOT NULL,
651
+ salience_features TEXT NOT NULL DEFAULT '{}', reason_codes TEXT NOT NULL DEFAULT '[]',
652
+ stage TEXT NOT NULL DEFAULT 'active', ttl INTEGER, retracted INTEGER NOT NULL DEFAULT 0,
653
+ retracted_by TEXT, retracted_at TEXT, tags TEXT NOT NULL DEFAULT '[]'
654
+ );
655
+ CREATE TABLE IF NOT EXISTS associations (
656
+ id TEXT PRIMARY KEY, from_engram_id TEXT NOT NULL, to_engram_id TEXT NOT NULL,
657
+ weight REAL NOT NULL DEFAULT 0.1, confidence REAL NOT NULL DEFAULT 0.5,
658
+ type TEXT NOT NULL DEFAULT 'hebbian', activation_count INTEGER NOT NULL DEFAULT 0,
659
+ created_at TEXT NOT NULL, last_activated TEXT NOT NULL
660
+ );
661
+ `);
662
+ // Build dedupe hash set from existing target memories
663
+ const existingHashes = new Set();
664
+ if (dedupe) {
665
+ const rows = targetDb.prepare('SELECT concept, content FROM engrams').all();
666
+ for (const row of rows)
667
+ existingHashes.add(contentHash(row.concept, row.content));
668
+ console.log(`Target has ${existingHashes.size} unique memories (for dedupe)\n`);
669
+ }
670
+ const insertEngram = targetDb.prepare(`
671
+ INSERT OR IGNORE INTO engrams (id, agent_id, concept, content, confidence, salience, access_count,
672
+ last_accessed, created_at, salience_features, reason_codes, stage, ttl,
673
+ retracted, retracted_by, retracted_at, tags)
674
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
675
+ `);
676
+ const insertAssoc = targetDb.prepare(`
677
+ INSERT OR IGNORE INTO associations (id, from_engram_id, to_engram_id, weight, confidence, type,
678
+ activation_count, created_at, last_activated)
679
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
680
+ `);
681
+ let totalMemories = 0, totalAssociations = 0, totalSkipped = 0;
682
+ for (const sourcePath of sources) {
683
+ if (!existsSync(sourcePath)) {
684
+ console.error(` Source not found: ${sourcePath}`);
685
+ continue;
686
+ }
687
+ const sourceDb = new Database(sourcePath, { readonly: true });
688
+ const engrams = sourceDb.prepare(`SELECT id, agent_id, concept, content, confidence, salience, access_count,
689
+ last_accessed, created_at, salience_features, reason_codes, stage, ttl,
690
+ retracted, retracted_by, retracted_at, tags FROM engrams`).all();
691
+ const assocs = sourceDb.prepare(`SELECT id, from_engram_id, to_engram_id, weight, confidence, type,
692
+ activation_count, created_at, last_activated FROM associations`).all();
693
+ const idMap = new Map();
694
+ const skippedIds = new Set();
695
+ const result = targetDb.transaction(() => {
696
+ let imported = 0, skipped = 0;
697
+ for (const e of engrams) {
698
+ const hash = contentHash(e.concept, e.content);
699
+ if (dedupe && existingHashes.has(hash)) {
700
+ skippedIds.add(e.id);
701
+ skipped++;
702
+ continue;
703
+ }
704
+ const newId = randomUUID();
705
+ idMap.set(e.id, newId);
706
+ existingHashes.add(hash);
707
+ if (!dryRun) {
708
+ insertEngram.run(newId, remapAgentId(e.agent_id), e.concept, e.content, e.confidence, e.salience, e.access_count, e.last_accessed, e.created_at, e.salience_features, e.reason_codes, e.stage, e.ttl, e.retracted, e.retracted_by, e.retracted_at, e.tags);
709
+ }
710
+ imported++;
711
+ }
712
+ let assocImported = 0;
713
+ for (const a of assocs) {
714
+ if (skippedIds.has(a.from_engram_id) || skippedIds.has(a.to_engram_id))
715
+ continue;
716
+ const fromId = idMap.get(a.from_engram_id);
717
+ const toId = idMap.get(a.to_engram_id);
718
+ if (!fromId || !toId)
719
+ continue;
720
+ if (!dryRun) {
721
+ insertAssoc.run(randomUUID(), fromId, toId, a.weight, a.confidence, a.type, a.activation_count, a.created_at, a.last_activated);
722
+ }
723
+ assocImported++;
724
+ }
725
+ return { imported, skipped, assocImported };
726
+ })();
727
+ sourceDb.close();
728
+ const agentSet = new Set(engrams.map((e) => remapAgentId(e.agent_id)));
729
+ console.log(` Source: ${sourcePath}`);
730
+ console.log(` Engrams: ${engrams.length} total, ${result.imported} imported, ${result.skipped} skipped`);
731
+ console.log(` Associations: ${assocs.length} total, ${result.assocImported} imported`);
732
+ console.log(` Agents: ${agentSet.size} (${[...agentSet].slice(0, 5).join(', ')}${agentSet.size > 5 ? '...' : ''})\n`);
733
+ totalMemories += result.imported;
734
+ totalAssociations += result.assocImported;
735
+ totalSkipped += result.skipped;
736
+ }
737
+ targetDb.close();
738
+ console.log(`\nTotal: ${totalMemories} memories, ${totalAssociations} associations imported. ${totalSkipped} skipped.`);
739
+ if (dryRun)
740
+ console.log('(dry run — no data written)');
741
+ }
351
742
  // ─── Dispatch ──────────────────────────────────────
352
743
  switch (command) {
353
744
  case 'setup':
@@ -362,6 +753,15 @@ switch (command) {
362
753
  case 'health':
363
754
  health();
364
755
  break;
756
+ case 'export':
757
+ exportMemories();
758
+ break;
759
+ case 'import':
760
+ importMemories();
761
+ break;
762
+ case 'merge':
763
+ mergeMemories();
764
+ break;
365
765
  case '--help':
366
766
  case '-h':
367
767
  case undefined:
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}