monomind 1.15.5 → 1.15.7

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 (100) 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 +25 -25
  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 +4 -11
  46. package/packages/@monomind/cli/dist/src/mcp-tools/autopilot-tools.js +3 -3
  47. package/packages/@monomind/cli/dist/src/mcp-tools/coherence-tools.d.ts +2 -2
  48. package/packages/@monomind/cli/dist/src/mcp-tools/coherence-tools.js +2 -2
  49. package/packages/@monomind/cli/dist/src/mcp-tools/daa-tools.js +13 -13
  50. package/packages/@monomind/cli/dist/src/mcp-tools/guidance-tools.js +4 -4
  51. package/packages/@monomind/cli/dist/src/mcp-tools/hive-mind-tools.js +4 -4
  52. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-intelligence.js +1 -0
  53. package/packages/@monomind/cli/dist/src/mcp-tools/hooks-routing.js +23 -23
  54. package/packages/@monomind/cli/dist/src/mcp-tools/index.d.ts +0 -1
  55. package/packages/@monomind/cli/dist/src/mcp-tools/index.js +0 -2
  56. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.d.ts +22 -6
  57. package/packages/@monomind/cli/dist/src/mcp-tools/memory-tools.js +553 -505
  58. package/packages/@monomind/cli/dist/src/mcp-tools/progress-tools.js +1 -1
  59. package/packages/@monomind/cli/dist/src/mcp-tools/quality-tools.d.ts +2 -2
  60. package/packages/@monomind/cli/dist/src/mcp-tools/quality-tools.js +3 -3
  61. package/packages/@monomind/cli/dist/src/mcp-tools/system-tools.js +5 -5
  62. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.d.ts +1 -1
  63. package/packages/@monomind/cli/dist/src/mcp-tools/transfer-tools.js +1 -156
  64. package/packages/@monomind/cli/dist/src/memory/embedding-operations.js +3 -3
  65. package/packages/@monomind/cli/dist/src/memory/hnsw-operations.js +5 -5
  66. package/packages/@monomind/cli/dist/src/memory/intelligence.js +2 -2
  67. package/packages/@monomind/cli/dist/src/memory/memory-bridge.d.ts +86 -234
  68. package/packages/@monomind/cli/dist/src/memory/memory-bridge.js +455 -1702
  69. package/packages/@monomind/cli/dist/src/memory/memory-crud.js +3 -3
  70. package/packages/@monomind/cli/dist/src/memory/memory-initializer.d.ts +1 -1
  71. package/packages/@monomind/cli/dist/src/memory/memory-initializer.js +5 -5
  72. package/packages/@monomind/cli/dist/src/memory/memory-read.js +4 -4
  73. package/packages/@monomind/cli/dist/src/suggest.js +0 -1
  74. package/packages/@monomind/cli/dist/src/types.d.ts +1 -1
  75. package/packages/@monomind/cli/dist/src/ui/dashboard.html +41 -5
  76. package/packages/@monomind/cli/dist/src/ui/orgs.html +91 -5
  77. package/packages/@monomind/cli/dist/src/ui/server.mjs +44 -0
  78. package/packages/@monomind/cli/dist/src/update/validator.js +1 -3
  79. package/packages/@monomind/cli/package.json +4 -4
  80. package/scripts/verify-appliance.sh +1 -1
  81. package/packages/@monomind/cli/dist/src/commands/plugins.d.ts +0 -11
  82. package/packages/@monomind/cli/dist/src/commands/plugins.js +0 -799
  83. package/packages/@monomind/cli/dist/src/plugins/manager.d.ts +0 -133
  84. package/packages/@monomind/cli/dist/src/plugins/manager.js +0 -498
  85. package/packages/@monomind/cli/dist/src/plugins/store/discovery.d.ts +0 -88
  86. package/packages/@monomind/cli/dist/src/plugins/store/discovery.js +0 -770
  87. package/packages/@monomind/cli/dist/src/plugins/store/index.d.ts +0 -76
  88. package/packages/@monomind/cli/dist/src/plugins/store/index.js +0 -141
  89. package/packages/@monomind/cli/dist/src/plugins/store/search.d.ts +0 -46
  90. package/packages/@monomind/cli/dist/src/plugins/store/search.js +0 -231
  91. package/packages/@monomind/cli/dist/src/plugins/store/types.d.ts +0 -274
  92. package/packages/@monomind/cli/dist/src/plugins/store/types.js +0 -7
  93. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.d.ts +0 -7
  94. package/packages/@monomind/cli/dist/src/plugins/tests/demo-plugin-store.js +0 -126
  95. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.d.ts +0 -12
  96. package/packages/@monomind/cli/dist/src/plugins/tests/standalone-test.js +0 -188
  97. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.d.ts +0 -7
  98. package/packages/@monomind/cli/dist/src/plugins/tests/test-plugin-store.js +0 -206
  99. package/packages/@monomind/cli/dist/src/services/registry-api.d.ts +0 -58
  100. package/packages/@monomind/cli/dist/src/services/registry-api.js +0 -199
@@ -66,7 +66,7 @@ flowchart TD
66
66
  R["Reviewer"]
67
67
  M["Growth Marketer"]
68
68
  BOARD[("Shared\nTask Board")]
69
- MEM[("AgentDB\nMemory")]
69
+ MEM[("LanceDB\nMemory")]
70
70
 
71
71
  U --> CO --> RO --> BOSS
72
72
  BOSS -->|spawns| W
@@ -126,7 +126,7 @@ Type "go" to save, or describe changes.
126
126
  | **Boss agent** | Coordinator type, no supervisor — owns the goal |
127
127
  | **Role agents** | Spawned on demand, specialized by task type |
128
128
  | **Task board** | Todo → Doing → Done, shared across all agents |
129
- | **Memory** | All output stored in org-scoped AgentDB namespace |
129
+ | **Memory** | All output stored in org-scoped LanceDB namespace |
130
130
  | **Checkpoint** | State saved every 30 min — survives crashes and restarts |
131
131
  | **Governance** | `auto` (free), `board` (approve sensitive), `strict` (approve all external actions) |
132
132
 
@@ -221,13 +221,13 @@ Open Claude Code. You now have 80+ slash commands available:
221
221
 
222
222
  ## 🧠 Memory That Persists
223
223
 
224
- Every session, every agent, every org writes to **AgentDB** — a hybrid SQLite + HNSW vector store that survives across sessions. The next time you run anything, Monomind already knows what was built, what failed, and which patterns work.
224
+ Every session, every agent, every org writes to **LanceDB** — a hybrid SQLite + HNSW vector store that survives across sessions. The next time you run anything, Monomind already knows what was built, what failed, and which patterns work.
225
225
 
226
226
  ```mermaid
227
227
  graph TD
228
228
  L0["L0 - In-flight\nCurrent session drawers\nephemeral"]
229
229
  L1["L1 - Working\nCross-session memory\nBM25 K1=1.5, B=0.75"]
230
- L2["L2 - Long-term\nAgentDB + HNSW index\nSemantic search"]
230
+ L2["L2 - Long-term\nLanceDB + HNSW index\nSemantic search"]
231
231
  L3["L3 - Shared\nCross-agent namespace\nFederated swarm reads"]
232
232
 
233
233
  L0 -->|promoted| L1 --> L2 --> L3
@@ -275,7 +275,7 @@ flowchart LR
275
275
  H --> I["route\nlearn\nbuild-agents"]
276
276
  H --> T["teammate-idle\ntask-completed"]
277
277
 
278
- I --> DB[("AgentDB\npatterns.json")]
278
+ I --> DB[("LanceDB\npatterns.json")]
279
279
  DB -->|next session| CE
280
280
  ```
281
281
 
@@ -358,7 +358,7 @@ graph TD
358
358
  CC <-->|"23 tools: monograph, memory, swarm"| MCP
359
359
  MCP <--> D
360
360
 
361
- D --> ADB[("AgentDB\nSQLite + HNSW")]
361
+ D --> ADB[("LanceDB\nSQLite + HNSW")]
362
362
  D --> MG[("Monograph\ncode graph")]
363
363
  D --> HK["Hooks\n22 event types"]
364
364
  D --> SW["Swarm\n6 topologies\n5 consensus algos"]
@@ -38,7 +38,24 @@ function mockPage(url = 'https://linkedin.com/feed', title = 'LinkedIn') {
38
38
  describe('analyzePageForAction', () => {
39
39
  let analyzePageForAction;
40
40
  beforeEach(async () => {
41
- mockCreate.mockClear();
41
+ mockCreate.mockResolvedValue({
42
+ content: [{
43
+ type: 'text',
44
+ text: JSON.stringify({
45
+ id: 'linkedin:comment_post',
46
+ platform: 'linkedin',
47
+ name: 'Comment on Post',
48
+ params: ['post_url', 'text'],
49
+ steps: [
50
+ { type: 'navigate', url: '{{params.post_url}}' },
51
+ { type: 'find', selectors: ['.comment-box'], as: 'box' },
52
+ { type: 'click', target: '{{box}}' },
53
+ { type: 'type', target: '{{box}}', text: '{{params.text}}', humanDelay: true },
54
+ { type: 'wait', condition: 'network_idle', timeout: 3000 },
55
+ ],
56
+ }),
57
+ }],
58
+ });
42
59
  const mod = await import('@monoes/monobrowse');
43
60
  analyzePageForAction = mod.analyzePageForAction;
44
61
  });
@@ -53,7 +53,7 @@ const AGENT_TYPES = [
53
53
  { value: 'optimizer', label: 'Optimizer', hint: 'Performance optimization and bottleneck analysis' },
54
54
  { value: 'security-architect', label: 'Security Architect', hint: 'Security architecture and threat modeling' },
55
55
  { value: 'security-auditor', label: 'Security Auditor', hint: 'CVE remediation and security testing' },
56
- { value: 'memory-specialist', label: 'Memory Specialist', hint: 'AgentDB unification (150x-12,500x faster)' },
56
+ { value: 'memory-specialist', label: 'Memory Specialist', hint: 'LanceDB ANN search (150x-12,500x faster)' },
57
57
  { value: 'swarm-specialist', label: 'Swarm Specialist', hint: 'Unified coordination engine' },
58
58
  { value: 'performance-engineer', label: 'Performance Engineer', hint: '2.49x-7.47x optimization targets' },
59
59
  { value: 'core-architect', label: 'Core Architect', hint: 'Domain-driven design restructure' },
@@ -918,7 +918,7 @@ function getAgentCapabilities(type) {
918
918
  architect: ['system-design', 'pattern-analysis', 'scalability', 'documentation'],
919
919
  coordinator: ['task-orchestration', 'agent-management', 'workflow-control'],
920
920
  'security-architect': ['threat-modeling', 'security-patterns', 'compliance', 'audit'],
921
- 'memory-specialist': ['vector-search', 'agentdb', 'caching', 'optimization'],
921
+ 'memory-specialist': ['vector-search', 'lancedb', 'caching', 'optimization'],
922
922
  'performance-engineer': ['benchmarking', 'profiling', 'optimization', 'monitoring']
923
923
  };
924
924
  return capabilities[type] || ['general'];
@@ -221,7 +221,7 @@ const learnCommand = {
221
221
  action: async (ctx) => {
222
222
  const learning = await tryLoadLearning();
223
223
  if (!learning) {
224
- output.writeln('Learning not available (AgentDB not initialized). Autopilot still works for task completion tracking.');
224
+ output.writeln('Learning not available (memory backend not initialized). Autopilot still works for task completion tracking.');
225
225
  return { success: true };
226
226
  }
227
227
  const metrics = await learning.getMetrics();
@@ -9,7 +9,7 @@ import { output } from '../output.js';
9
9
  const TOP_LEVEL_COMMANDS = [
10
10
  'swarm', 'agent', 'task', 'session', 'config', 'memory', 'workflow',
11
11
  'hive-mind', 'hooks', 'daemon', 'neural', 'security', 'performance',
12
- 'providers', 'plugins', 'deployment', 'claims', 'embeddings',
12
+ 'providers', 'deployment', 'claims', 'embeddings',
13
13
  'doctor', 'completions', 'help', 'version'
14
14
  ];
15
15
  // Swarm subcommands
@@ -81,10 +81,6 @@ _monomind_completions() {
81
81
  COMPREPLY=( $(compgen -W "benchmark profile metrics optimize bottleneck" -- "\${cur}") )
82
82
  return 0
83
83
  ;;
84
- plugins)
85
- COMPREPLY=( $(compgen -W "list install uninstall toggle info create" -- "\${cur}") )
86
- return 0
87
- ;;
88
84
  deployment|deploy)
89
85
  COMPREPLY=( $(compgen -W "deploy status rollback history environments logs" -- "\${cur}") )
90
86
  return 0
@@ -138,7 +134,7 @@ _monomind() {
138
134
  'task:Task creation and management'
139
135
  'session:Session management'
140
136
  'config:Configuration management'
141
- 'memory:Memory operations with AgentDB'
137
+ 'memory:Memory operations with LanceDB'
142
138
  'workflow:Workflow automation'
143
139
  'hive-mind:Queen-led consensus coordination'
144
140
  'hooks:Self-learning automation hooks'
@@ -147,7 +143,6 @@ _monomind() {
147
143
  'security:Security scanning and CVE detection'
148
144
  'performance:Performance profiling'
149
145
  'providers:AI provider management'
150
- 'plugins:Plugin management'
151
146
  'deployment:Deployment management'
152
147
  'claims:Claims-based authorization'
153
148
  'embeddings:Vector embeddings'
@@ -273,16 +268,6 @@ _monomind() {
273
268
  'bottleneck:Find bottlenecks'
274
269
  )
275
270
  ;;
276
- plugins)
277
- subcommands=(
278
- 'list:List plugins'
279
- 'install:Install plugin'
280
- 'uninstall:Remove plugin'
281
- 'toggle:Enable/disable'
282
- 'info:Plugin details'
283
- 'create:Scaffold plugin'
284
- )
285
- ;;
286
271
  deployment|deploy)
287
272
  subcommands=(
288
273
  'deploy:Deploy to environment'
@@ -379,9 +364,6 @@ complete -c monomind -n "__fish_seen_subcommand_from security" -a "scan cve thre
379
364
  # Performance subcommands
380
365
  complete -c monomind -n "__fish_seen_subcommand_from performance" -a "benchmark profile metrics optimize bottleneck"
381
366
 
382
- # Plugins subcommands
383
- complete -c monomind -n "__fish_seen_subcommand_from plugins" -a "list install uninstall toggle info create"
384
-
385
367
  # Deployment subcommands
386
368
  complete -c monomind -n "__fish_seen_subcommand_from deployment deploy" -a "deploy status rollback history environments logs"
387
369
 
@@ -419,7 +401,6 @@ $script:SubCommands = @{
419
401
  'neural' = @('train', 'status', 'patterns', 'predict', 'optimize')
420
402
  'security' = @('scan', 'cve', 'threats', 'audit', 'secrets')
421
403
  'performance' = @('benchmark', 'profile', 'metrics', 'optimize', 'bottleneck')
422
- 'plugins' = @('list', 'install', 'uninstall', 'toggle', 'info', 'create')
423
404
  'deployment' = @('deploy', 'status', 'rollback', 'history', 'environments', 'logs')
424
405
  'deploy' = @('deploy', 'status', 'rollback', 'history', 'environments', 'logs')
425
406
  'claims' = @('list', 'check', 'grant', 'revoke', 'roles', 'policies')
@@ -146,7 +146,7 @@ const setCommand = {
146
146
  ],
147
147
  examples: [
148
148
  { command: 'monomind config set swarm.maxAgents 20', description: 'Set max agents' },
149
- { command: 'monomind config set -k memory.backend -v agentdb', description: 'Set memory backend' }
149
+ { command: 'monomind config set -k memory.backend -v lancedb', description: 'Set memory backend' }
150
150
  ],
151
151
  action: async (ctx) => {
152
152
  const key = (ctx.flags.key || ctx.args[0] || '').slice(0, 256);
@@ -370,7 +370,7 @@ const initCommand = {
370
370
  },
371
371
  {
372
372
  name: 'memory-backend',
373
- description: 'Memory backend (agentdb, sqlite, hybrid)',
373
+ description: 'Memory backend (lancedb, sqlite, hybrid)',
374
374
  type: 'string',
375
375
  default: 'hybrid'
376
376
  }
@@ -1049,8 +1049,8 @@ export const statuslineCommand = {
1049
1049
  }
1050
1050
  catch { /* ignore */ }
1051
1051
  }
1052
- // Get AgentDB stats (matching statusline-generator.ts paths)
1053
- const agentdbStats = { vectorCount: 0, dbSizeKB: 0, hasHnsw: false };
1052
+ // Get memory backend stats
1053
+ const memoryStats = { vectorCount: 0, dbSizeKB: 0, hasHnsw: false };
1054
1054
  // Check for direct database files first
1055
1055
  const dbPaths = [
1056
1056
  path.join(process.cwd(), '.swarm', 'memory.db'),
@@ -1058,30 +1058,30 @@ export const statuslineCommand = {
1058
1058
  path.join(process.cwd(), '.claude', 'memory.db'),
1059
1059
  path.join(process.cwd(), 'data', 'memory.db'),
1060
1060
  path.join(process.cwd(), 'memory.db'),
1061
- path.join(process.cwd(), '.agentdb', 'memory.db'),
1062
- path.join(process.cwd(), '.monomind', 'memory', 'agentdb.db'),
1061
+ path.join(process.cwd(), ".swarm", "lancedb"),
1062
+ path.join(process.cwd(), ".monomind", "memory", "lancedb"),
1063
1063
  ];
1064
1064
  for (const dbPath of dbPaths) {
1065
1065
  if (fs.existsSync(dbPath)) {
1066
1066
  try {
1067
1067
  const stats = fs.statSync(dbPath);
1068
- agentdbStats.dbSizeKB = Math.round(stats.size / 1024);
1069
- agentdbStats.vectorCount = Math.floor(agentdbStats.dbSizeKB / 2);
1070
- agentdbStats.hasHnsw = agentdbStats.vectorCount > 100;
1068
+ memoryStats.dbSizeKB = Math.round(stats.size / 1024);
1069
+ memoryStats.vectorCount = Math.floor(memoryStats.dbSizeKB / 2);
1070
+ memoryStats.hasHnsw = memoryStats.vectorCount > 100;
1071
1071
  break;
1072
1072
  }
1073
1073
  catch { /* ignore */ }
1074
1074
  }
1075
1075
  }
1076
- // Check for AgentDB directories if no direct db found
1077
- if (agentdbStats.vectorCount === 0) {
1078
- const agentdbDirs = [
1079
- path.join(process.cwd(), '.monomind', 'agentdb'),
1080
- path.join(process.cwd(), '.swarm', 'agentdb'),
1081
- path.join(process.cwd(), 'data', 'agentdb'),
1082
- path.join(process.cwd(), '.agentdb'),
1076
+ // Check for LanceDB directories if no direct db found
1077
+ if (memoryStats.vectorCount === 0) {
1078
+ const lancedbDirs = [
1079
+ path.join(process.cwd(), ".monomind", "lancedb"),
1080
+ path.join(process.cwd(), ".swarm", "lancedb"),
1081
+ path.join(process.cwd(), "data", "lancedb"),
1082
+ path.join(process.cwd(), ".swarm", "lancedb"),
1083
1083
  ];
1084
- for (const dir of agentdbDirs) {
1084
+ for (const dir of lancedbDirs) {
1085
1085
  if (fs.existsSync(dir)) {
1086
1086
  try {
1087
1087
  const files = fs.readdirSync(dir);
@@ -1089,12 +1089,12 @@ export const statuslineCommand = {
1089
1089
  if (f.endsWith('.db') || f.endsWith('.sqlite')) {
1090
1090
  const filePath = path.join(dir, f);
1091
1091
  const fileStat = fs.statSync(filePath);
1092
- agentdbStats.dbSizeKB += Math.round(fileStat.size / 1024);
1092
+ memoryStats.dbSizeKB += Math.round(fileStat.size / 1024);
1093
1093
  }
1094
1094
  }
1095
- agentdbStats.vectorCount = Math.floor(agentdbStats.dbSizeKB / 2);
1096
- agentdbStats.hasHnsw = agentdbStats.vectorCount > 100;
1097
- if (agentdbStats.vectorCount > 0)
1095
+ memoryStats.vectorCount = Math.floor(memoryStats.dbSizeKB / 2);
1096
+ memoryStats.hasHnsw = memoryStats.vectorCount > 100;
1097
+ if (memoryStats.vectorCount > 0)
1098
1098
  break;
1099
1099
  }
1100
1100
  catch { /* ignore */ }
@@ -1109,14 +1109,14 @@ export const statuslineCommand = {
1109
1109
  ];
1110
1110
  for (const hnswPath of hnswPaths) {
1111
1111
  if (fs.existsSync(hnswPath)) {
1112
- agentdbStats.hasHnsw = true;
1112
+ memoryStats.hasHnsw = true;
1113
1113
  try {
1114
1114
  const hnswFiles = fs.readdirSync(hnswPath);
1115
1115
  const indexFile = hnswFiles.find(f => f.endsWith('.index'));
1116
1116
  if (indexFile) {
1117
1117
  const indexStat = fs.statSync(path.join(hnswPath, indexFile));
1118
1118
  const hnswVectors = Math.floor(indexStat.size / 512);
1119
- agentdbStats.vectorCount = Math.max(agentdbStats.vectorCount, hnswVectors);
1119
+ memoryStats.vectorCount = Math.max(memoryStats.vectorCount, hnswVectors);
1120
1120
  }
1121
1121
  }
1122
1122
  catch { /* ignore */ }
@@ -1125,15 +1125,15 @@ export const statuslineCommand = {
1125
1125
  }
1126
1126
  // Check for vectors.json file
1127
1127
  const vectorsPath = path.join(process.cwd(), '.monomind', 'vectors.json');
1128
- if (fs.existsSync(vectorsPath) && agentdbStats.vectorCount === 0) {
1128
+ if (fs.existsSync(vectorsPath) && memoryStats.vectorCount === 0) {
1129
1129
  try {
1130
1130
  if (fs.statSync(vectorsPath).size <= 8_388_608) {
1131
1131
  const data = JSON.parse(fs.readFileSync(vectorsPath, 'utf-8'));
1132
1132
  if (Array.isArray(data)) {
1133
- agentdbStats.vectorCount = data.length;
1133
+ memoryStats.vectorCount = data.length;
1134
1134
  }
1135
1135
  else if (data.vectors) {
1136
- agentdbStats.vectorCount = Object.keys(data.vectors).length;
1136
+ memoryStats.vectorCount = Object.keys(data.vectors).length;
1137
1137
  }
1138
1138
  }
1139
1139
  }
@@ -1169,8 +1169,8 @@ export const statuslineCommand = {
1169
1169
  const domainsColor = progress.domainsCompleted >= 3 ? c.brightGreen : progress.domainsCompleted > 0 ? c.yellow : c.red;
1170
1170
  // Dynamic perf indicator based on patterns/HNSW
1171
1171
  let perfIndicator = `${c.dim}⚡ HNSW: idle${c.reset}`;
1172
- if (agentdbStats.hasHnsw && agentdbStats.vectorCount > 0) {
1173
- perfIndicator = `${c.brightGreen}⚡ HNSW ${agentdbStats.vectorCount.toLocaleString()} vec${c.reset}`;
1172
+ if (memoryStats.hasHnsw && memoryStats.vectorCount > 0) {
1173
+ perfIndicator = `${c.brightGreen}⚡ HNSW ${memoryStats.vectorCount.toLocaleString()} vec${c.reset}`;
1174
1174
  }
1175
1175
  else if (progress.patternsLearned > 0) {
1176
1176
  const patternsK = progress.patternsLearned >= 1000 ? `${(progress.patternsLearned / 1000).toFixed(1)}k` : String(progress.patternsLearned);
@@ -1195,13 +1195,13 @@ export const statuslineCommand = {
1195
1195
  `${c.cyan}ADRs${c.reset} ${c.dim}●0/0${c.reset} ${c.dim}│${c.reset} ` +
1196
1196
  `${c.cyan}DDD${c.reset} ${dddColor}●${String(progress.dddProgress).padStart(3)}%${c.reset} ${c.dim}│${c.reset} ` +
1197
1197
  `${c.cyan}Security${c.reset} ${securityColor}●${security.status}${c.reset}`;
1198
- const vectorColor = agentdbStats.vectorCount > 0 ? c.brightGreen : c.dim;
1198
+ const vectorColor = memoryStats.vectorCount > 0 ? c.brightGreen : c.dim;
1199
1199
  const testColor = testStats.testFiles > 0 ? c.brightGreen : c.dim;
1200
1200
  const mcpColor = mcpStats.enabled > 0 ? c.brightGreen : c.dim;
1201
- const sizeDisplay = agentdbStats.dbSizeKB >= 1024 ? `${(agentdbStats.dbSizeKB / 1024).toFixed(1)}MB` : `${agentdbStats.dbSizeKB}KB`;
1202
- const hnswIndicator = agentdbStats.hasHnsw ? `${c.brightGreen}⚡${c.reset}` : '';
1203
- const line4 = `${c.brightCyan}📊 AgentDB${c.reset} ` +
1204
- `${c.cyan}Vectors${c.reset} ${vectorColor}●${agentdbStats.vectorCount}${hnswIndicator}${c.reset} ${c.dim}│${c.reset} ` +
1201
+ const sizeDisplay = memoryStats.dbSizeKB >= 1024 ? `${(memoryStats.dbSizeKB / 1024).toFixed(1)}MB` : `${memoryStats.dbSizeKB}KB`;
1202
+ const hnswIndicator = memoryStats.hasHnsw ? `${c.brightGreen}⚡${c.reset}` : '';
1203
+ const line4 = `${c.brightCyan}📊 LanceDB${c.reset} ` +
1204
+ `${c.cyan}Vectors${c.reset} ${vectorColor}●${memoryStats.vectorCount}${hnswIndicator}${c.reset} ${c.dim}│${c.reset} ` +
1205
1205
  `${c.cyan}Size${c.reset} ${c.brightWhite}${sizeDisplay}${c.reset} ${c.dim}│${c.reset} ` +
1206
1206
  `${c.cyan}Tests${c.reset} ${testColor}●${testStats.testFiles}${c.reset} ${c.dim}(${testStats.testCases} cases)${c.reset} ${c.dim}│${c.reset} ` +
1207
1207
  `${c.cyan}MCP${c.reset} ${mcpColor}●${mcpStats.enabled}/${mcpStats.total}${c.reset}`;
@@ -623,7 +623,7 @@ export const transferFromProjectCommand = {
623
623
  // Parent transfer command combining all transfer methods
624
624
  export const transferCommand = {
625
625
  name: 'transfer',
626
- description: 'Transfer patterns and plugins via IPFS-based decentralized registry',
626
+ description: 'Transfer patterns via IPFS-based decentralized registry',
627
627
  subcommands: [storeCommand, transferFromProjectCommand],
628
628
  examples: [
629
629
  { command: 'monomind hooks transfer store list', description: 'List patterns from registry' },
@@ -498,7 +498,7 @@ export const hooksCommand = {
498
498
  output.printList([
499
499
  '🧠 Trajectory + outcome logging',
500
500
  '🎯 Keyword routing + route-outcome measurement',
501
- '🔍 AgentDB integration (pure-JS HNSW search)',
501
+ '🔍 LanceDB integration (ANN vector search)',
502
502
  '🎯 32.3% token reduction',
503
503
  '👥 Agent Teams integration (auto task assignment)'
504
504
  ]);
@@ -43,7 +43,6 @@ export declare function getNeuralCommand(): Promise<Command | undefined>;
43
43
  export declare function getSecurityCommand(): Promise<Command | undefined>;
44
44
  export declare function getPerformanceCommand(): Promise<Command | undefined>;
45
45
  export declare function getProvidersCommand(): Promise<Command | undefined>;
46
- export declare function getPluginsCommand(): Promise<Command | undefined>;
47
46
  export declare function getDeploymentCommand(): Promise<Command | undefined>;
48
47
  export declare function getClaimsCommand(): Promise<Command | undefined>;
49
48
  export declare function getCompletionsCommand(): Promise<Command | undefined>;
@@ -36,7 +36,6 @@ const commandLoaders = {
36
36
  security: () => import('./security.js'),
37
37
  performance: () => import('./performance.js'),
38
38
  providers: () => import('./providers.js'),
39
- plugins: () => import('./plugins.js'),
40
39
  deployment: () => import('./deployment.js'),
41
40
  claims: () => import('./claims.js'),
42
41
  // P0 Commands
@@ -133,7 +132,6 @@ import { analyzeCommand } from './analyze.js';
133
132
  import { routeCommand } from './route.js';
134
133
  import { progressCommand } from './progress.js';
135
134
  import { providersCommand } from './providers.js';
136
- import { pluginsCommand } from './plugins.js';
137
135
  import { deploymentCommand } from './deployment.js';
138
136
  import { claimsCommand } from './claims.js';
139
137
  import { issuesCommand } from './issues.js';
@@ -217,7 +215,6 @@ export async function getNeuralCommand() { return loadCommand('neural'); }
217
215
  export async function getSecurityCommand() { return loadCommand('security'); }
218
216
  export async function getPerformanceCommand() { return loadCommand('performance'); }
219
217
  export async function getProvidersCommand() { return loadCommand('providers'); }
220
- export async function getPluginsCommand() { return loadCommand('plugins'); }
221
218
  export async function getDeploymentCommand() { return loadCommand('deployment'); }
222
219
  export async function getClaimsCommand() { return loadCommand('claims'); }
223
220
  export async function getCompletionsCommand() { return loadCommand('completions'); }
@@ -304,7 +301,6 @@ export const commandsByCategory = {
304
301
  ],
305
302
  management: [
306
303
  providersCommand,
307
- pluginsCommand,
308
304
  deploymentCommand,
309
305
  claimsCommand,
310
306
  issuesCommand,
@@ -346,12 +346,12 @@ const wizardCommand = {
346
346
  message: 'Select skill sets:',
347
347
  options: [
348
348
  { value: 'core', label: 'Core', hint: 'Swarm, memory, SPARC skills', selected: true },
349
- { value: 'agentdb', label: 'AgentDB', hint: 'Vector database skills', selected: true },
349
+ { value: 'memory', label: 'Memory (LanceDB)', hint: 'Vector database skills', selected: true },
350
350
  { value: 'github', label: 'GitHub', hint: 'GitHub integration skills', selected: true },
351
351
  ],
352
352
  });
353
353
  options.skills.core = skillSets.includes('core');
354
- options.skills.agentdb = skillSets.includes('agentdb');
354
+ options.skills.memory = skillSets.includes('memory');
355
355
  options.skills.github = skillSets.includes('github');
356
356
  }
357
357
  // Hooks selection
@@ -401,15 +401,15 @@ const wizardCommand = {
401
401
  const memoryBackend = await select({
402
402
  message: 'Select memory backend:',
403
403
  options: [
404
- { value: 'hybrid', label: 'Hybrid', hint: 'SQLite + AgentDB (recommended)' },
405
- { value: 'agentdb', label: 'AgentDB', hint: '150x faster vector search' },
404
+ { value: 'hybrid', label: 'Hybrid', hint: 'SQLite + LanceDB (recommended)' },
405
+ { value: 'lancedb', label: 'LanceDB', hint: '150x faster vector search' },
406
406
  { value: 'sqlite', label: 'SQLite', hint: 'Standard SQL storage' },
407
407
  { value: 'memory', label: 'In-Memory', hint: 'Fast but non-persistent' },
408
408
  ],
409
409
  });
410
410
  options.runtime.memoryBackend = memoryBackend;
411
411
  // HNSW indexing
412
- if (memoryBackend === 'agentdb' || memoryBackend === 'hybrid') {
412
+ if (memoryBackend === 'lancedb' || memoryBackend === 'hybrid') {
413
413
  const enableHNSW = await confirm({
414
414
  message: 'Enable HNSW indexing for faster vector search?',
415
415
  default: true,
@@ -423,7 +423,7 @@ const wizardCommand = {
423
423
  });
424
424
  options.runtime.enableNeural = enableNeural;
425
425
  // ADR-049: Self-Learning Memory capabilities
426
- if (memoryBackend === 'agentdb' || memoryBackend === 'hybrid') {
426
+ if (memoryBackend === 'lancedb' || memoryBackend === 'hybrid') {
427
427
  const enableSelfLearning = await confirm({
428
428
  message: 'Enable self-learning memory? (LearningBridge + Knowledge Graph + Agent Scopes)',
429
429
  default: true,
@@ -582,7 +582,7 @@ const skillsCommand = {
582
582
  options: [
583
583
  { name: 'all', description: 'Install all skills', type: 'boolean', default: false },
584
584
  { name: 'core', description: 'Install core skills', type: 'boolean', default: true },
585
- { name: 'agentdb', description: 'Install AgentDB skills', type: 'boolean', default: false },
585
+ { name: 'memory', description: 'Install memory skills', type: 'boolean', default: false },
586
586
  { name: 'github', description: 'Install GitHub skills', type: 'boolean', default: false },
587
587
  ],
588
588
  action: async (ctx) => {
@@ -605,7 +605,7 @@ const skillsCommand = {
605
605
  skills: {
606
606
  all: ctx.flags.all,
607
607
  core: ctx.flags.core,
608
- agentdb: ctx.flags.agentdb,
608
+ memory: ctx.flags.memory,
609
609
  github: ctx.flags.github,
610
610
  browser: false,
611
611
  advanced: false,
@@ -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 type { Command } from '../types.js';
6
6
  export declare const memoryCommand: Command;
@@ -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) {
@@ -1342,7 +1342,7 @@ const initMemoryCommand = {
1342
1342
  {
1343
1343
  name: 'backend',
1344
1344
  short: 'b',
1345
- description: 'Backend type: hybrid (default), sqlite, or agentdb',
1345
+ description: 'Backend type: hybrid (default), sqlite, or lancedb',
1346
1346
  type: 'string',
1347
1347
  default: 'hybrid'
1348
1348
  },
@@ -1380,7 +1380,7 @@ const initMemoryCommand = {
1380
1380
  ],
1381
1381
  examples: [
1382
1382
  { command: 'monomind memory init', description: 'Initialize hybrid backend with all features' },
1383
- { command: 'monomind memory init -b agentdb', description: 'Initialize AgentDB backend' },
1383
+ { command: 'monomind memory init -b lancedb', description: 'Initialize LanceDB backend' },
1384
1384
  { command: 'monomind memory init -p ./data/memory.db --force', description: 'Reinitialize at custom path' },
1385
1385
  { command: 'monomind memory init --verbose --verify', description: 'Initialize with full verification' }
1386
1386
  ],
@@ -1447,7 +1447,7 @@ const initMemoryCommand = {
1447
1447
  const { activated, failed, initTimeMs } = result.controllers;
1448
1448
  if (activated.length > 0 || failed.length > 0) {
1449
1449
  const controllerLines = [
1450
- output.bold('AgentDB Controllers:'),
1450
+ output.bold('Memory Controllers:'),
1451
1451
  ` Activated: ${activated.length} Failed: ${failed.length} Init: ${Math.round(initTimeMs)}ms`,
1452
1452
  ];
1453
1453
  if (verbose && activated.length > 0) {
@@ -1586,11 +1586,11 @@ export const memoryCommand = {
1586
1586
  output.printList([
1587
1587
  `${output.highlight('init')} - Initialize memory database (sql.js)`,
1588
1588
  `${output.highlight('store')} - Store data in memory`,
1589
- `${output.highlight('edit')} - Edit an entry (AgentDB, palace, knowledge)`,
1589
+ `${output.highlight('edit')} - Edit an entry (LanceDB, palace, knowledge)`,
1590
1590
  `${output.highlight('retrieve')} - Retrieve data from memory`,
1591
1591
  `${output.highlight('search')} - Semantic/vector search`,
1592
1592
  `${output.highlight('list')} - List memory entries`,
1593
- `${output.highlight('delete')} - Delete an entry (AgentDB, palace, knowledge)`,
1593
+ `${output.highlight('delete')} - Delete an entry (LanceDB, palace, knowledge)`,
1594
1594
  `${output.highlight('templates')} - Show best-practice entry templates`,
1595
1595
  `${output.highlight('stats')} - Show statistics`,
1596
1596
  `${output.highlight('configure')} - Configure backend`,