monomind 1.15.6 → 1.16.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 (96) hide show
  1. package/.claude/agents/github/repo-architect.md +1 -1
  2. package/.claude/agents/specialists/integration-architect.md +6 -6
  3. package/.claude/commands/hive-mind/hive-mind-init.md +1 -1
  4. package/.claude/commands/hive-mind/hive-mind-memory.md +1 -1
  5. package/.claude/commands/mastermind/brain.md +11 -11
  6. package/.claude/commands/mastermind/master.md +4 -4
  7. package/.claude/commands/mastermind/memory.md +6 -6
  8. package/.claude/commands/memory/README.md +4 -4
  9. package/.claude/commands/truth/start.md +3 -3
  10. package/.claude/helpers/extras-registry.json +2 -2
  11. package/.claude/helpers/skill-registry.json +26 -26
  12. package/.claude/helpers/statusline.cjs +8 -8
  13. package/.claude/skills/agentic-jujutsu/SKILL.md +3 -3
  14. package/.claude/skills/mastermind/_protocol.md +8 -8
  15. package/README.md +6 -6
  16. package/package.json +2 -2
  17. package/packages/@monomind/cli/README.md +6 -6
  18. package/packages/@monomind/cli/dist/src/__tests__/browse-analyzer.test.js +18 -1
  19. package/packages/@monomind/cli/dist/src/commands/agent.js +2 -2
  20. package/packages/@monomind/cli/dist/src/commands/autopilot.js +1 -1
  21. package/packages/@monomind/cli/dist/src/commands/completions.js +2 -21
  22. package/packages/@monomind/cli/dist/src/commands/config.js +1 -1
  23. package/packages/@monomind/cli/dist/src/commands/hive-mind.js +1 -1
  24. package/packages/@monomind/cli/dist/src/commands/hooks-coverage-commands.js +31 -31
  25. package/packages/@monomind/cli/dist/src/commands/hooks-routing-commands.js +1 -1
  26. package/packages/@monomind/cli/dist/src/commands/hooks.js +1 -1
  27. package/packages/@monomind/cli/dist/src/commands/index.d.ts +0 -1
  28. package/packages/@monomind/cli/dist/src/commands/index.js +0 -4
  29. package/packages/@monomind/cli/dist/src/commands/init.js +8 -8
  30. package/packages/@monomind/cli/dist/src/commands/memory.d.ts +1 -1
  31. package/packages/@monomind/cli/dist/src/commands/memory.js +138 -28
  32. package/packages/@monomind/cli/dist/src/commands/migrate.js +2 -2
  33. package/packages/@monomind/cli/dist/src/commands/neural.js +1 -1
  34. package/packages/@monomind/cli/dist/src/commands/swarm.js +1 -1
  35. package/packages/@monomind/cli/dist/src/config-adapter.js +8 -8
  36. package/packages/@monomind/cli/dist/src/index.js +1 -1
  37. package/packages/@monomind/cli/dist/src/init/claudemd-generator.js +2 -2
  38. package/packages/@monomind/cli/dist/src/init/executor.js +16 -16
  39. package/packages/@monomind/cli/dist/src/init/shared-instructions-generator.d.ts +1 -1
  40. package/packages/@monomind/cli/dist/src/init/shared-instructions-generator.js +1 -1
  41. package/packages/@monomind/cli/dist/src/init/statusline-generator.d.ts +1 -1
  42. package/packages/@monomind/cli/dist/src/init/statusline-generator.js +8 -8
  43. package/packages/@monomind/cli/dist/src/init/types.d.ts +3 -3
  44. package/packages/@monomind/cli/dist/src/init/types.js +3 -3
  45. package/packages/@monomind/cli/dist/src/mcp-client.js +1 -8
  46. package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.js +3 -3
  47. package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.js +13 -13
  48. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +4 -4
  49. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +4 -4
  50. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.js +1 -0
  51. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.js +23 -23
  52. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -1
  53. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -2
  54. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.d.ts +22 -6
  55. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +553 -505
  56. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.js +1 -1
  57. package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.js +5 -5
  58. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.d.ts +1 -1
  59. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.js +1 -156
  60. package/packages/@monomind/cli/dist/src/memory/embedding-operations.js +3 -3
  61. package/packages/@monomind/cli/dist/src/memory/hnsw-operations.js +5 -5
  62. package/packages/@monomind/cli/dist/src/memory/intelligence.js +2 -2
  63. package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +86 -234
  64. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +455 -1702
  65. package/packages/@monomind/cli/dist/src/memory/memory-crud.js +3 -3
  66. package/packages/@monomind/cli/dist/src/memory/memory-initializer.d.ts +1 -1
  67. package/packages/@monomind/cli/dist/src/memory/memory-initializer.js +5 -5
  68. package/packages/@monomind/cli/dist/src/memory/memory-read.js +4 -4
  69. package/packages/@monomind/cli/dist/src/suggest.js +0 -1
  70. package/packages/@monomind/cli/dist/src/types.d.ts +1 -1
  71. package/packages/@monomind/cli/dist/src/ui/dashboard.html +41 -5
  72. package/packages/@monomind/cli/dist/src/ui/orgs.html +91 -5
  73. package/packages/@monomind/cli/dist/src/ui/server.mjs +44 -0
  74. package/packages/@monomind/cli/dist/src/update/validator.js +1 -3
  75. package/packages/@monomind/cli/package.json +4 -4
  76. package/scripts/verify-appliance.sh +1 -1
  77. package/packages/@monomind/cli/dist/src/commands/plugins.d.ts +0 -11
  78. package/packages/@monomind/cli/dist/src/commands/plugins.js +0 -799
  79. package/packages/@monomind/cli/dist/src/plugins/manager.d.ts +0 -133
  80. package/packages/@monomind/cli/dist/src/plugins/manager.js +0 -498
  81. package/packages/@monomind/cli/dist/src/plugins/store/discovery.d.ts +0 -88
  82. package/packages/@monomind/cli/dist/src/plugins/store/discovery.js +0 -650
  83. package/packages/@monomind/cli/dist/src/plugins/store/index.d.ts +0 -76
  84. package/packages/@monomind/cli/dist/src/plugins/store/index.js +0 -141
  85. package/packages/@monomind/cli/dist/src/plugins/store/search.d.ts +0 -46
  86. package/packages/@monomind/cli/dist/src/plugins/store/search.js +0 -231
  87. package/packages/@monomind/cli/dist/src/plugins/store/types.d.ts +0 -274
  88. package/packages/@monomind/cli/dist/src/plugins/store/types.js +0 -7
  89. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  90. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  91. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  92. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.js +0 -188
  93. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  94. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.js +0 -206
  95. package/packages/@monomind/cli/dist/src/services/registry-api.d.ts +0 -58
  96. package/packages/@monomind/cli/dist/src/services/registry-api.js +0 -199
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * CLI Memory Command
3
- * Memory operations for AgentDB integration
3
+ * Memory operations for LanceDB integration
4
4
  */
5
5
  import { output } from '../output.js';
6
6
  import { select, confirm, input } from '../prompt.js';
@@ -8,9 +8,9 @@ import { callMCPTool, MCPClientError } from '../mcp-client.js';
8
8
  import { configManager } from '../services/config-file-manager.js';
9
9
  // Memory backends
10
10
  const BACKENDS = [
11
- { value: 'agentdb', label: 'AgentDB', hint: 'Vector database with pure-JS HNSW indexing' },
11
+ { value: 'lancedb', label: 'LanceDB', hint: 'Vector database with ANN indexing' },
12
12
  { value: 'sqlite', label: 'SQLite', hint: 'Lightweight local storage' },
13
- { value: 'hybrid', label: 'Hybrid', hint: 'SQLite + AgentDB (recommended)' },
13
+ { value: 'hybrid', label: 'Hybrid', hint: 'SQLite + LanceDB (recommended)' },
14
14
  { value: 'memory', label: 'In-Memory', hint: 'Fast but non-persistent' }
15
15
  ];
16
16
  // Store command
@@ -447,29 +447,29 @@ function formatRelativeTime(isoDate) {
447
447
  // Edit command
448
448
  const editCommand = {
449
449
  name: 'edit',
450
- description: 'Edit a memory entry (AgentDB, Memory Palace, or knowledge chunk)',
450
+ description: 'Edit a memory entry (LanceDB, Memory Palace, or knowledge chunk)',
451
451
  options: [
452
- { name: 'key', short: 'k', description: 'Storage key (AgentDB)', type: 'string' },
453
- { name: 'namespace', short: 'n', description: 'Memory namespace (AgentDB)', type: 'string', default: 'default' },
452
+ { name: 'key', short: 'k', description: 'Storage key', type: 'string' },
453
+ { name: 'namespace', short: 'n', description: 'Memory namespace', type: 'string', default: 'default' },
454
454
  { name: 'value', description: 'New value/content', type: 'string' },
455
- { name: 'source', short: 's', description: 'Source to edit: agentdb, palace, knowledge', type: 'string', default: 'agentdb', choices: ['agentdb', 'palace', 'knowledge'] },
455
+ { name: 'source', short: 's', description: 'Source to edit: lancedb, palace, knowledge', type: 'string', default: 'lancedb', choices: ['lancedb', 'palace', 'knowledge'] },
456
456
  { name: 'id', description: 'Entry ID (palace/knowledge)', type: 'string' }
457
457
  ],
458
458
  examples: [
459
- { command: 'monomind memory edit -k "pattern/auth" --value "updated content"', description: 'Edit AgentDB entry' },
459
+ { command: 'monomind memory edit -k "pattern/auth" --value "updated content"', description: 'Edit LanceDB entry' },
460
460
  { command: 'monomind memory edit --source palace --id "abc123" --value "new content"', description: 'Edit Memory Palace drawer' },
461
461
  { command: 'monomind memory edit --source knowledge --id "chunk-42" --value "updated"', description: 'Edit knowledge chunk' }
462
462
  ],
463
463
  action: async (ctx) => {
464
- const source = ctx.flags.source || 'agentdb';
464
+ const source = ctx.flags.source || 'lancedb';
465
465
  let value = ctx.flags.value || ctx.args[0];
466
466
  const fs = await import('fs');
467
467
  const path = await import('path');
468
- if (source === 'agentdb') {
468
+ if (source === 'lancedb') {
469
469
  const key = ctx.flags.key;
470
470
  const namespace = ctx.flags.namespace || 'default';
471
471
  if (!key) {
472
- output.printError('Key is required for AgentDB edit. Use --key or -k');
472
+ output.printError('Key is required for lancedb edit. Use --key or -k');
473
473
  return { success: false, exitCode: 1 };
474
474
  }
475
475
  if (!value && ctx.interactive) {
@@ -666,28 +666,28 @@ const templatesCommand = {
666
666
  const deleteCommand = {
667
667
  name: 'delete',
668
668
  aliases: ['rm'],
669
- description: 'Delete a memory entry (AgentDB, Memory Palace, or knowledge chunk)',
669
+ description: 'Delete a memory entry (LanceDB, Memory Palace, or knowledge chunk)',
670
670
  options: [
671
671
  {
672
672
  name: 'key',
673
673
  short: 'k',
674
- description: 'Storage key (AgentDB)',
674
+ description: 'Storage key',
675
675
  type: 'string'
676
676
  },
677
677
  {
678
678
  name: 'namespace',
679
679
  short: 'n',
680
- description: 'Memory namespace (AgentDB)',
680
+ description: 'Memory namespace',
681
681
  type: 'string',
682
682
  default: 'default'
683
683
  },
684
684
  {
685
685
  name: 'source',
686
686
  short: 's',
687
- description: 'Source to delete from: agentdb, palace, knowledge',
687
+ description: 'Source to delete from: lancedb, palace, knowledge',
688
688
  type: 'string',
689
- default: 'agentdb',
690
- choices: ['agentdb', 'palace', 'knowledge']
689
+ default: 'lancedb',
690
+ choices: ['lancedb', 'palace', 'knowledge']
691
691
  },
692
692
  {
693
693
  name: 'id',
@@ -703,15 +703,15 @@ const deleteCommand = {
703
703
  }
704
704
  ],
705
705
  examples: [
706
- { command: 'monomind memory delete -k "mykey"', description: 'Delete AgentDB entry' },
706
+ { command: 'monomind memory delete -k "mykey"', description: 'Delete memory entry' },
707
707
  { command: 'monomind memory delete -k "lesson" -n "lessons"', description: 'Delete from specific namespace' },
708
708
  { command: 'monomind memory delete --source palace --id "abc123"', description: 'Delete Memory Palace drawer' },
709
709
  { command: 'monomind memory delete --source knowledge --id "chunk-42" -f', description: 'Delete knowledge chunk (no confirm)' }
710
710
  ],
711
711
  action: async (ctx) => {
712
- const source = ctx.flags.source || 'agentdb';
712
+ const source = ctx.flags.source || 'lancedb';
713
713
  const force = ctx.flags.force;
714
- if (source === 'agentdb') {
714
+ if (source === 'lancedb') {
715
715
  const key = ctx.flags.key || ctx.args[0];
716
716
  const namespace = ctx.flags.namespace || 'default';
717
717
  if (!key) {
@@ -1213,9 +1213,9 @@ const exportCommand = {
1213
1213
  {
1214
1214
  name: 'format',
1215
1215
  short: 'f',
1216
- description: 'Export format (json, csv, binary)',
1216
+ description: 'Export format (json, csv, binary, okf)',
1217
1217
  type: 'string',
1218
- choices: ['json', 'csv', 'binary'],
1218
+ choices: ['json', 'csv', 'binary', 'okf'],
1219
1219
  default: 'json'
1220
1220
  },
1221
1221
  {
@@ -1233,7 +1233,8 @@ const exportCommand = {
1233
1233
  ],
1234
1234
  examples: [
1235
1235
  { command: 'monomind memory export -o ./backup.json', description: 'Export all to JSON' },
1236
- { command: 'monomind memory export -o ./data.csv -f csv', description: 'Export to CSV' }
1236
+ { command: 'monomind memory export -o ./data.csv -f csv', description: 'Export to CSV' },
1237
+ { command: 'monomind memory export -o ./knowledge -f okf', description: 'Export as OKF bundle (directory of .md files)' }
1237
1238
  ],
1238
1239
  action: async (ctx) => {
1239
1240
  const outputPath = ctx.flags.output;
@@ -1243,6 +1244,44 @@ const exportCommand = {
1243
1244
  return { success: false, exitCode: 1 };
1244
1245
  }
1245
1246
  output.printInfo(`Exporting memory to ${outputPath}...`);
1247
+ // OKF bundle: native export — directory of .md files with YAML frontmatter
1248
+ if (format === 'okf') {
1249
+ try {
1250
+ const fs = await import('fs');
1251
+ const path = await import('path');
1252
+ const { listEntries, getEntry } = await import('../memory/memory-initializer.js');
1253
+ const namespace = ctx.flags.namespace;
1254
+ const listed = await listEntries({ namespace, limit: 10000 });
1255
+ if (!listed.success) {
1256
+ output.printError(`Failed to list entries: ${listed.error}`);
1257
+ return { success: false, exitCode: 1 };
1258
+ }
1259
+ let written = 0;
1260
+ for (const entry of listed.entries) {
1261
+ const got = await getEntry({ key: entry.key, namespace: entry.namespace });
1262
+ if (!got.found || !got.entry)
1263
+ continue;
1264
+ const { key, namespace: ns, content, tags, createdAt } = got.entry;
1265
+ const safeKey = key.replace(/[/\\:*?"<>|]/g, '-');
1266
+ const dir = path.join(outputPath, ns);
1267
+ fs.mkdirSync(dir, { recursive: true });
1268
+ const yamlEscape = (s) => s.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
1269
+ const tagsLine = tags.length > 0 ? `tags: [${tags.join(', ')}]\n` : '';
1270
+ const md = `---\ntype: Memory\nkey: "${yamlEscape(key)}"\nnamespace: "${yamlEscape(ns)}"\n${tagsLine}timestamp: ${createdAt}\n---\n\n${content}`;
1271
+ fs.writeFileSync(path.join(dir, `${safeKey}.md`), md, 'utf-8');
1272
+ written++;
1273
+ }
1274
+ output.printSuccess(`Exported ${written} entries to ${outputPath}`);
1275
+ if (listed.total > 10000) {
1276
+ output.printInfo(`Note: only first 10000 of ${listed.total} entries exported`);
1277
+ }
1278
+ return { success: true, data: { written, outputPath } };
1279
+ }
1280
+ catch (error) {
1281
+ output.printError(`OKF export error: ${String(error)}`);
1282
+ return { success: false, exitCode: 1 };
1283
+ }
1284
+ }
1246
1285
  try {
1247
1286
  const result = await callMCPTool('memory_export', {
1248
1287
  outputPath,
@@ -1307,6 +1346,77 @@ const importCommand = {
1307
1346
  return { success: false, exitCode: 1 };
1308
1347
  }
1309
1348
  output.printInfo(`Importing memory from ${inputPath}...`);
1349
+ // OKF bundle: native import — detect directory of .md files with YAML frontmatter
1350
+ const fsCheck = await import('fs');
1351
+ const isDir = fsCheck.existsSync(inputPath) && fsCheck.statSync(inputPath).isDirectory();
1352
+ if (isDir) {
1353
+ try {
1354
+ const fs = await import('fs');
1355
+ const path = await import('path');
1356
+ const { storeEntry } = await import('../memory/memory-initializer.js');
1357
+ function parseOkfFrontmatter(raw) {
1358
+ if (!raw.startsWith('---\n'))
1359
+ return { meta: {}, body: raw };
1360
+ const end = raw.indexOf('\n---\n', 4);
1361
+ if (end === -1)
1362
+ return { meta: {}, body: raw };
1363
+ const meta = {};
1364
+ for (const line of raw.slice(4, end).split('\n')) {
1365
+ const colon = line.indexOf(':');
1366
+ if (colon <= 0)
1367
+ continue;
1368
+ const k = line.slice(0, colon).trim();
1369
+ const rawV = line.slice(colon + 1).trim();
1370
+ const isQuoted = rawV.startsWith('"') && rawV.endsWith('"') && rawV.length >= 2;
1371
+ const v = isQuoted ? rawV.slice(1, -1).replace(/\\(["\\])/g, '$1') : rawV;
1372
+ if (v.startsWith('[') && v.endsWith(']')) {
1373
+ meta[k] = v.slice(1, -1).split(',').map(s => s.trim()).filter(Boolean);
1374
+ }
1375
+ else {
1376
+ meta[k] = v;
1377
+ }
1378
+ }
1379
+ return { meta, body: raw.slice(end + 5) };
1380
+ }
1381
+ function findMdFiles(dir) {
1382
+ const results = [];
1383
+ for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
1384
+ const full = path.join(dir, entry.name);
1385
+ if (entry.isDirectory())
1386
+ results.push(...findMdFiles(full));
1387
+ else if (entry.name.endsWith('.md'))
1388
+ results.push(full);
1389
+ }
1390
+ return results;
1391
+ }
1392
+ const overrideNs = ctx.flags.namespace;
1393
+ const merge = ctx.flags.merge ?? true;
1394
+ const files = findMdFiles(inputPath);
1395
+ let imported = 0, skipped = 0;
1396
+ const start = Date.now();
1397
+ for (const file of files) {
1398
+ const raw = fs.readFileSync(file, 'utf-8');
1399
+ const { meta, body } = parseOkfFrontmatter(raw);
1400
+ const key = meta['key'] || path.basename(file, '.md');
1401
+ const ns = overrideNs || meta['namespace'] || path.basename(path.dirname(file));
1402
+ const tags = Array.isArray(meta['tags']) ? meta['tags'] : meta['tags'] ? [meta['tags']] : [];
1403
+ const result = await storeEntry({ key, value: body.trim(), namespace: ns, tags, upsert: !merge });
1404
+ if (result.success)
1405
+ imported++;
1406
+ else
1407
+ skipped++;
1408
+ }
1409
+ output.printSuccess(`Imported ${imported} entries from ${inputPath}`);
1410
+ if (skipped > 0)
1411
+ output.printInfo(`Skipped ${skipped} entries (duplicates or errors)`);
1412
+ output.printInfo(`Duration: ${Date.now() - start}ms`);
1413
+ return { success: true, data: { imported, skipped } };
1414
+ }
1415
+ catch (error) {
1416
+ output.printError(`OKF import error: ${String(error)}`);
1417
+ return { success: false, exitCode: 1 };
1418
+ }
1419
+ }
1310
1420
  try {
1311
1421
  const result = await callMCPTool('memory_import', {
1312
1422
  inputPath,
@@ -1342,7 +1452,7 @@ const initMemoryCommand = {
1342
1452
  {
1343
1453
  name: 'backend',
1344
1454
  short: 'b',
1345
- description: 'Backend type: hybrid (default), sqlite, or agentdb',
1455
+ description: 'Backend type: hybrid (default), sqlite, or lancedb',
1346
1456
  type: 'string',
1347
1457
  default: 'hybrid'
1348
1458
  },
@@ -1380,7 +1490,7 @@ const initMemoryCommand = {
1380
1490
  ],
1381
1491
  examples: [
1382
1492
  { command: 'monomind memory init', description: 'Initialize hybrid backend with all features' },
1383
- { command: 'monomind memory init -b agentdb', description: 'Initialize AgentDB backend' },
1493
+ { command: 'monomind memory init -b lancedb', description: 'Initialize LanceDB backend' },
1384
1494
  { command: 'monomind memory init -p ./data/memory.db --force', description: 'Reinitialize at custom path' },
1385
1495
  { command: 'monomind memory init --verbose --verify', description: 'Initialize with full verification' }
1386
1496
  ],
@@ -1447,7 +1557,7 @@ const initMemoryCommand = {
1447
1557
  const { activated, failed, initTimeMs } = result.controllers;
1448
1558
  if (activated.length > 0 || failed.length > 0) {
1449
1559
  const controllerLines = [
1450
- output.bold('AgentDB Controllers:'),
1560
+ output.bold('Memory Controllers:'),
1451
1561
  ` Activated: ${activated.length} Failed: ${failed.length} Init: ${Math.round(initTimeMs)}ms`,
1452
1562
  ];
1453
1563
  if (verbose && activated.length > 0) {
@@ -1586,11 +1696,11 @@ export const memoryCommand = {
1586
1696
  output.printList([
1587
1697
  `${output.highlight('init')} - Initialize memory database (sql.js)`,
1588
1698
  `${output.highlight('store')} - Store data in memory`,
1589
- `${output.highlight('edit')} - Edit an entry (AgentDB, palace, knowledge)`,
1699
+ `${output.highlight('edit')} - Edit an entry (LanceDB, palace, knowledge)`,
1590
1700
  `${output.highlight('retrieve')} - Retrieve data from memory`,
1591
1701
  `${output.highlight('search')} - Semantic/vector search`,
1592
1702
  `${output.highlight('list')} - List memory entries`,
1593
- `${output.highlight('delete')} - Delete an entry (AgentDB, palace, knowledge)`,
1703
+ `${output.highlight('delete')} - Delete an entry (LanceDB, palace, knowledge)`,
1594
1704
  `${output.highlight('templates')} - Show best-practice entry templates`,
1595
1705
  `${output.highlight('stats')} - Show statistics`,
1596
1706
  `${output.highlight('configure')} - Configure backend`,
@@ -292,7 +292,7 @@ const runCommand = {
292
292
  }
293
293
  }
294
294
  output.printSuccess(`Memory files backed up (${jsonFiles.length} JSON, ${hasDb ? '1 DB' : '0 DB'}).`);
295
- output.printInfo('Run "monomind memory init --force" to import v2 memory into v1 AgentDB.');
295
+ output.printInfo('Run "monomind memory init --force" to import v2 memory into v1 LanceDB.');
296
296
  }
297
297
  migrated.push('memory');
298
298
  }
@@ -775,7 +775,7 @@ function formatMigrationStatus(status) {
775
775
  function getMigrationSteps(target) {
776
776
  const allSteps = [
777
777
  { name: 'Configuration Files', description: 'Migrate config schema to v1 format', source: './monomind.json', dest: './monomind.config.json' },
778
- { name: 'Memory Backend', description: 'Upgrade to hybrid backend with AgentDB', source: './.monomind/memory', dest: './data/memory' },
778
+ { name: 'Memory Backend', description: 'Upgrade to hybrid backend with LanceDB', source: './.monomind/memory', dest: './data/memory' },
779
779
  { name: 'Agent Definitions', description: 'Convert agent configs to v1 format', source: './.monomind/agents', dest: './packages/agents' },
780
780
  { name: 'Hook Registry', description: 'Migrate hooks to v1 hook system', source: './src/hooks', dest: './packages/hooks' },
781
781
  { name: 'Workflow Definitions', description: 'Convert workflows to event-sourced format', source: './.monomind/workflows', dest: './data/workflows' },
@@ -56,7 +56,7 @@ const statusCommand = {
56
56
  component: 'Pattern Index',
57
57
  status: hnswStatus.available ? output.success('Ready') : output.dim('Empty'),
58
58
  details: hnswStatus.available
59
- ? `${hnswStatus.entryCount} vectors, ${hnswStatus.dimensions}-dim (pure-JS HNSW via AgentDB)`
59
+ ? `${hnswStatus.entryCount} vectors, ${hnswStatus.dimensions}-dim (ANN via LanceDB)`
60
60
  : 'No vectors indexed yet',
61
61
  },
62
62
  {
@@ -271,7 +271,7 @@ const initCommand = {
271
271
  output.writeln(output.dim(' Initializing memory namespace...'));
272
272
  output.writeln(output.dim(' Setting up communication channels...'));
273
273
  if (v1Mode) {
274
- output.writeln(output.dim(' Configuring AgentDB integration (pure-JS HNSW)...'));
274
+ output.writeln(output.dim(' Configuring LanceDB integration (ANN)....'));
275
275
  output.writeln(output.dim(' Initializing keyword routing + outcome measurement...'));
276
276
  }
277
277
  output.writeln();
@@ -30,8 +30,8 @@ export function systemConfigToMonomindConfig(systemConfig) {
30
30
  backend: normalizeMemoryBackend(systemConfig.memory?.type),
31
31
  persistPath: systemConfig.memory?.path || './data/memory',
32
32
  cacheSize: systemConfig.memory?.maxSize ?? 1000000,
33
- enableHNSW: systemConfig.memory?.agentdb?.indexType === 'hnsw',
34
- vectorDimension: systemConfig.memory?.agentdb?.dimensions ?? 384, // Match all-MiniLM-L6-v2 output (#1395 Bug 5)
33
+ enableHNSW: systemConfig.memory?.lancedb?.indexType === 'hnsw',
34
+ vectorDimension: systemConfig.memory?.lancedb?.dimensions ?? 384,
35
35
  },
36
36
  // MCP configuration
37
37
  mcp: {
@@ -114,12 +114,10 @@ export function configToSystemConfig(config) {
114
114
  type: denormalizeMemoryBackend(config.memory.backend),
115
115
  path: config.memory.persistPath,
116
116
  maxSize: config.memory.cacheSize,
117
- agentdb: {
117
+ lancedb: {
118
118
  dimensions: config.memory.vectorDimension,
119
119
  indexType: config.memory.enableHNSW ? 'hnsw' : 'flat',
120
- efConstruction: 200,
121
- m: 16,
122
- quantization: 'none',
120
+ nProbes: 20,
123
121
  },
124
122
  },
125
123
  mcp: {
@@ -182,11 +180,13 @@ function normalizeMemoryBackend(backend) {
182
180
  switch (backend) {
183
181
  case 'memory':
184
182
  case 'sqlite':
185
- case 'agentdb':
183
+ case 'lancedb':
186
184
  case 'hybrid':
187
185
  return backend;
186
+ case 'agentdb':
187
+ return 'lancedb'; // legacy alias
188
188
  case 'redis':
189
- return 'memory'; // Redis maps to memory for CLI purposes
189
+ return 'memory';
190
190
  default:
191
191
  return 'hybrid';
192
192
  }
@@ -287,7 +287,7 @@ export class CLI {
287
287
  this.output.writeln(this.output.bold('V1 FEATURES:'));
288
288
  this.output.printList([
289
289
  '15-agent hierarchical mesh coordination',
290
- 'AgentDB with pure-JS HNSW indexing',
290
+ 'LanceDB with ANN vector indexing',
291
291
  'Keyword routing + route-outcome measurement',
292
292
  'Unified SwarmCoordinator engine',
293
293
  'Event-sourced state management',
@@ -176,7 +176,7 @@ function cliCommandsTable() {
176
176
  | \`init\` | 4 | Project initialization |
177
177
  | \`agent\` | 8 | Agent lifecycle management |
178
178
  | \`swarm\` | 6 | Multi-agent swarm coordination |
179
- | \`memory\` | 11 | AgentDB memory with HNSW search |
179
+ | \`memory\` | 11 | LanceDB memory with ANN search |
180
180
  | \`task\` | 6 | Task creation and lifecycle |
181
181
  | \`session\` | 7 | Session state management |
182
182
  | \`hooks\` | 17 | Self-learning hooks + 12 workers |
@@ -350,7 +350,7 @@ function intelligenceSystem() {
350
350
 
351
351
  - **Keyword routing**: Deterministic task→agent routing via \`createKeywordRouter\`
352
352
  - **Outcome measurement**: Route and command outcomes are recorded and scored to surface routing accuracy over time
353
- - **Pattern search**: Pure-JS HNSW vector search via AgentDB for finding similar past patterns
353
+ - **Pattern search**: LanceDB ANN vector search for finding similar past patterns
354
354
 
355
355
  Routing and learning are JS-only — no native engine is required. Outcomes
356
356
  feed back into the recorded metrics so routing quality is measured, not assumed.`;
@@ -64,13 +64,13 @@ const SKILLS_MAP = {
64
64
  'hive-mind-advanced',
65
65
  ],
66
66
  browser: ['agent-browser-testing'],
67
- agentdb: [
68
- 'agentdb-advanced',
69
- 'agentdb-learning',
70
- 'agentdb-memory-patterns',
71
- 'agentdb-optimization',
72
- 'agentdb-vector-search',
73
- 'reasoningbank-agentdb',
67
+ memory: [
68
+ 'memory-advanced',
69
+ 'memory-learning',
70
+ 'memory-patterns',
71
+ 'memory-optimization',
72
+ 'memory-vector-search',
73
+ 'memory-reasoningbank',
74
74
  'reasoningbank-intelligence',
75
75
  ],
76
76
  github: [
@@ -1028,8 +1028,8 @@ async function copySkills(targetDir, options, result) {
1028
1028
  else {
1029
1029
  if (skillsConfig.core)
1030
1030
  skillsToCopy.push(...SKILLS_MAP.core);
1031
- if (skillsConfig.agentdb)
1032
- skillsToCopy.push(...SKILLS_MAP.agentdb);
1031
+ if (skillsConfig.memory)
1032
+ skillsToCopy.push(...SKILLS_MAP.memory);
1033
1033
  if (skillsConfig.github)
1034
1034
  skillsToCopy.push(...SKILLS_MAP.github);
1035
1035
  if (skillsConfig.browser)
@@ -1416,7 +1416,7 @@ async function writeStatusline(targetDir, options, result) {
1416
1416
  }
1417
1417
  }
1418
1418
  }
1419
- // ALWAYS generate statusline.cjs — the generated version includes AgentDB
1419
+ // ALWAYS generate statusline.cjs — the generated version includes
1420
1420
  // vectors/size, tests, ADRs, hooks, and integration stats that the
1421
1421
  // pre-installed static copy in the npm package lacks.
1422
1422
  // This must overwrite any copy from writeHelpers() which copies the legacy file.
@@ -1670,7 +1670,7 @@ async function writeCapabilitiesDoc(targetDir, options, result) {
1670
1670
  Monomind is a domain-driven design architecture for multi-agent AI coordination with:
1671
1671
 
1672
1672
  - **15-Agent Swarm Coordination** with hierarchical and mesh topologies
1673
- - **HNSW Vector Search** - pure-JS indexed pattern retrieval via AgentDB
1673
+ - **ANN Vector Search** - indexed pattern retrieval via LanceDB
1674
1674
  - **Keyword Routing** - deterministic task→agent routing with outcome measurement
1675
1675
  - **Byzantine Fault Tolerance** - Queen-led consensus mechanisms
1676
1676
  - **MCP Server Integration** - Model Context Protocol support
@@ -1769,7 +1769,7 @@ npx monomind@latest swarm monitor
1769
1769
  | \`init\` | 4 | Project initialization |
1770
1770
  | \`agent\` | 8 | Agent lifecycle management |
1771
1771
  | \`swarm\` | 6 | Multi-agent coordination |
1772
- | \`memory\` | 11 | AgentDB with HNSW search |
1772
+ | \`memory\` | 11 | LanceDB with ANN vector search |
1773
1773
  | \`mcp\` | 9 | MCP server management |
1774
1774
  | \`task\` | 6 | Task assignment |
1775
1775
  | \`session\` | 7 | Session persistence |
@@ -1787,7 +1787,7 @@ npx monomind@latest swarm monitor
1787
1787
  | \`security\` | 6 | Security scanning |
1788
1788
  | \`performance\` | 5 | Profiling & benchmarks |
1789
1789
  | \`providers\` | 5 | AI provider config |
1790
- | \`plugins\` | 5 | Plugin management |
1790
+
1791
1791
  | \`deployment\` | 5 | Deploy management |
1792
1792
  | \`embeddings\` | 4 | Vector embeddings |
1793
1793
  | \`claims\` | 4 | Authorization |
@@ -1874,7 +1874,7 @@ npx monomind@latest doctor --fix
1874
1874
 
1875
1875
  ### Intelligence System
1876
1876
  - **Keyword routing**: Deterministic task→agent routing with outcome measurement
1877
- - **HNSW pattern search**: Pure-JS indexed vector search via AgentDB
1877
+ - **ANN pattern search**: Indexed vector search via LanceDB
1878
1878
  - **ReasoningBank**: Stores learned patterns and trajectories for retrieval
1879
1879
  - **Int8 Quantization**: ~4x memory reduction for stored embeddings
1880
1880
 
@@ -1959,7 +1959,7 @@ npx monomind@latest hive-mind consensus --propose "task"
1959
1959
 
1960
1960
  | Metric | Target | Status |
1961
1961
  |--------|--------|--------|
1962
- | HNSW Search | Indexed vector search | ✅ Implemented (pure-JS via AgentDB) |
1962
+ | ANN Search | Indexed vector search | ✅ Implemented (LanceDB) |
1963
1963
  | Memory Reduction | 50-75% | ✅ Implemented (~4x via Int8 quantization) |
1964
1964
  | Pattern Learning | Recorded + retrievable | ✅ Implemented (ReasoningBank) |
1965
1965
  | MCP Response | <100ms | ✅ Achieved |
@@ -1978,7 +1978,7 @@ npx monomind@latest hive-mind consensus --propose "task"
1978
1978
  | Package | Version | Purpose |
1979
1979
  |---------|---------|---------|
1980
1980
  | agentic-flow | 3.0.0-alpha.1 | Core coordination + ReasoningBank + Router |
1981
- | agentdb | 3.0.0-alpha.10 | Vector database + 8 controllers |
1981
+ | @lancedb/lancedb | latest | Vector database (ANN search) |
1982
1982
 
1983
1983
  ### Optional Integrations
1984
1984
  | Package | Command |
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Auto-detects project profile and generates:
5
5
  * 1. .agents/shared_instructions.md — prepended to every agent prompt
6
- * 2. Memory seeds — pre-loaded into AgentDB so agents start with project best practices
6
+ * 2. Memory seeds — pre-loaded into LanceDB so agents start with project best practices
7
7
  */
8
8
  import type { InitResult } from './types.js';
9
9
  export interface ProjectProfile {
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Auto-detects project profile and generates:
5
5
  * 1. .agents/shared_instructions.md — prepended to every agent prompt
6
- * 2. Memory seeds — pre-loaded into AgentDB so agents start with project best practices
6
+ * 2. Memory seeds — pre-loaded into LanceDB so agents start with project best practices
7
7
  */
8
8
  import * as fs from 'node:fs';
9
9
  import * as path from 'node:path';
@@ -18,7 +18,7 @@ import type { InitOptions } from './types.js';
18
18
  * 🏗️ DDD Domains [●●○○○] 2/5 ⚡ HNSW 150x
19
19
  * 🤖 Swarm ◉ [ 5/15] 👥 2 🪝 10/17 🟢 CVE 3/3 💾 4MB 🧠 63%
20
20
  * 🔧 Architecture ADRs ●71% │ DDD ● 13% │ Security ●CLEAN
21
- * 📊 AgentDB Vectors ●3104⚡ │ Size 216KB │ Tests ●6 (~24 cases) │ MCP ●1/1
21
+ * 📊 LanceDB Vectors ●3104⚡ │ Size 216KB │ Tests ●6 (~24 cases) │ MCP ●1/1
22
22
  */
23
23
  export declare function generateStatuslineScript(options: InitOptions): string;
24
24
  export declare function generateStatuslineHook(options: InitOptions): string;
@@ -17,7 +17,7 @@
17
17
  * 🏗️ DDD Domains [●●○○○] 2/5 ⚡ HNSW 150x
18
18
  * 🤖 Swarm ◉ [ 5/15] 👥 2 🪝 10/17 🟢 CVE 3/3 💾 4MB 🧠 63%
19
19
  * 🔧 Architecture ADRs ●71% │ DDD ● 13% │ Security ●CLEAN
20
- * 📊 AgentDB Vectors ●3104⚡ │ Size 216KB │ Tests ●6 (~24 cases) │ MCP ●1/1
20
+ * 📊 LanceDB Vectors ●3104⚡ │ Size 216KB │ Tests ●6 (~24 cases) │ MCP ●1/1
21
21
  */
22
22
  export function generateStatuslineScript(options) {
23
23
  const maxAgents = options.runtime.maxAgents;
@@ -313,7 +313,7 @@ function getLearningStats() {
313
313
  path.join(CWD, '.monomind', 'memory.db'),
314
314
  path.join(CWD, '.claude', 'memory.db'),
315
315
  path.join(CWD, 'data', 'memory.db'),
316
- path.join(CWD, '.agentdb', 'memory.db'),
316
+ path.join(CWD, '.swarm', 'lancedb'),
317
317
  ];
318
318
 
319
319
  for (const dbPath of memoryPaths) {
@@ -461,7 +461,7 @@ function getSwarmStatus() {
461
461
  function getSystemMetrics() {
462
462
  const memoryMB = Math.floor(process.memoryUsage().heapUsed / 1024 / 1024);
463
463
  const learning = getLearningStats();
464
- const agentdb = getAgentDBStats();
464
+ const lancedbStats = getMemoryStats();
465
465
 
466
466
  // Intelligence from learning.json
467
467
  const learningData = readJSON(path.join(CWD, '.monomind', 'metrics', 'learning.json'));
@@ -473,7 +473,7 @@ function getSystemMetrics() {
473
473
  } else {
474
474
  // Use actual vector/entry counts — 2000 entries = 100%
475
475
  const fromPatterns = learning.patterns > 0 ? Math.min(100, Math.floor(learning.patterns / 20)) : 0;
476
- const fromVectors = agentdb.vectorCount > 0 ? Math.min(100, Math.floor(agentdb.vectorCount / 20)) : 0;
476
+ const fromVectors = lancedbStats.vectorCount > 0 ? Math.min(100, Math.floor(lancedbStats.vectorCount / 20)) : 0;
477
477
  intelligencePct = Math.max(fromPatterns, fromVectors);
478
478
  }
479
479
 
@@ -590,8 +590,8 @@ function getActiveAgent() {
590
590
  } catch { return null; }
591
591
  }
592
592
 
593
- // AgentDB stats — count real entries, not file-size heuristics
594
- function getAgentDBStats() {
593
+ // Memory (LanceDB) stats — count real entries
594
+ function getMemoryStats() {
595
595
  let vectorCount = 0;
596
596
  let dbSizeKB = 0;
597
597
  let namespaces = 0;
@@ -1067,7 +1067,7 @@ function generateDashboard() {
1067
1067
  const system = getSystemMetrics();
1068
1068
  const adrs = getADRStatus();
1069
1069
  const hooks = getHooksStatus();
1070
- const agentdb = getAgentDBStats();
1070
+ const lancedbStats = getMemoryStats();
1071
1071
  const tests = getTestStats();
1072
1072
  const session = getSessionStats();
1073
1073
  const integration = getIntegrationStatus();
@@ -1188,7 +1188,7 @@ function generateJSON() {
1188
1188
  system: getSystemMetrics(),
1189
1189
  adrs: getADRStatus(),
1190
1190
  hooks: getHooksStatus(),
1191
- agentdb: getAgentDBStats(),
1191
+ lancedb: getMemoryStats(),
1192
1192
  tests: getTestStats(),
1193
1193
  git: { modified: git.modified, untracked: git.untracked, staged: git.staged, ahead: git.ahead, behind: git.behind },
1194
1194
  lastUpdated: new Date().toISOString(),
@@ -66,8 +66,8 @@ export interface HooksConfig {
66
66
  export interface SkillsConfig {
67
67
  /** Include core skills (swarm, sparc, mastermind, monodesign, monomotion) */
68
68
  core: boolean;
69
- /** Include AgentDB skills */
70
- agentdb: boolean;
69
+ /** Include memory/LanceDB skills */
70
+ memory: boolean;
71
71
  /** Include GitHub integration skills */
72
72
  github: boolean;
73
73
  /** Include browser automation skills */
@@ -194,7 +194,7 @@ export interface RuntimeConfig {
194
194
  /** Maximum agents */
195
195
  maxAgents: number;
196
196
  /** Memory backend */
197
- memoryBackend: 'memory' | 'sqlite' | 'agentdb' | 'hybrid';
197
+ memoryBackend: 'memory' | 'sqlite' | 'lancedb' | 'hybrid';
198
198
  /** Enable HNSW indexing */
199
199
  enableHNSW: boolean;
200
200
  /** Enable neural learning */
@@ -73,7 +73,7 @@ export const DEFAULT_INIT_OPTIONS = {
73
73
  },
74
74
  skills: {
75
75
  core: true,
76
- agentdb: true,
76
+ memory: true,
77
77
  github: true,
78
78
  browser: true,
79
79
  advanced: true,
@@ -164,7 +164,7 @@ export const MINIMAL_INIT_OPTIONS = {
164
164
  },
165
165
  skills: {
166
166
  core: true,
167
- agentdb: false,
167
+ memory: false,
168
168
  github: false,
169
169
  browser: false,
170
170
  advanced: false,
@@ -220,7 +220,7 @@ export const FULL_INIT_OPTIONS = {
220
220
  },
221
221
  skills: {
222
222
  core: true,
223
- agentdb: true,
223
+ memory: true,
224
224
  github: true,
225
225
  browser: true,
226
226
  advanced: true,