@jungjaehoon/mama-server 1.7.5 → 1.8.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.
package/README.md
CHANGED
|
@@ -223,7 +223,7 @@ Interactive visualization of your reasoning graph.
|
|
|
223
223
|
|
|
224
224
|
## Technical Details
|
|
225
225
|
|
|
226
|
-
- **Database:** SQLite +
|
|
226
|
+
- **Database:** SQLite + pure-TS cosine similarity
|
|
227
227
|
- **Embeddings:** Transformers.js (Xenova/multilingual-e5-small, 384-dim)
|
|
228
228
|
- **Transport:** stdio-based MCP protocol (default) + optional HTTP embedding server (port 3849)
|
|
229
229
|
- **Storage:** ~/.claude/mama-memory.db (configurable via MAMA_DB_PATH)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jungjaehoon/mama-server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "MAMA MCP Server - Memory-Augmented MCP Assistant for Claude Code & Desktop",
|
|
5
5
|
"main": "src/server.js",
|
|
6
6
|
"bin": {
|
|
@@ -8,7 +8,6 @@
|
|
|
8
8
|
},
|
|
9
9
|
"scripts": {
|
|
10
10
|
"start": "node src/server.js",
|
|
11
|
-
"postinstall": "node scripts/postinstall.js",
|
|
12
11
|
"test": "vitest run",
|
|
13
12
|
"test:watch": "vitest watch",
|
|
14
13
|
"clean": "rm -rf dist node_modules"
|
|
@@ -40,14 +39,10 @@
|
|
|
40
39
|
"node": ">=18.0.0"
|
|
41
40
|
},
|
|
42
41
|
"dependencies": {
|
|
43
|
-
"@jungjaehoon/mama-core": "^1.
|
|
44
|
-
"@modelcontextprotocol/sdk": "^1.0.1"
|
|
45
|
-
"better-sqlite3": "^11.0.0",
|
|
46
|
-
"sqlite-vec": "^0.1.0",
|
|
47
|
-
"ws": "^8.18.3"
|
|
42
|
+
"@jungjaehoon/mama-core": "^1.2.0",
|
|
43
|
+
"@modelcontextprotocol/sdk": "^1.0.1"
|
|
48
44
|
},
|
|
49
45
|
"devDependencies": {
|
|
50
|
-
"@types/better-sqlite3": "^7.6.0",
|
|
51
46
|
"vitest": "^1.0.0"
|
|
52
47
|
},
|
|
53
48
|
"files": [
|
|
@@ -55,7 +50,6 @@
|
|
|
55
50
|
"src/**/*.css",
|
|
56
51
|
"src/**/*.html",
|
|
57
52
|
"src/db/migrations/*.sql",
|
|
58
|
-
"scripts/postinstall.js",
|
|
59
53
|
"README.md",
|
|
60
54
|
"LICENSE"
|
|
61
55
|
]
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
-- Migration 012: Replace vss_memories (sqlite-vec virtual table) with plain embeddings table
|
|
2
|
+
-- Vector search now uses pure TypeScript brute-force cosine similarity.
|
|
3
|
+
-- No native extensions required.
|
|
4
|
+
|
|
5
|
+
CREATE TABLE IF NOT EXISTS embeddings (
|
|
6
|
+
rowid INTEGER PRIMARY KEY,
|
|
7
|
+
embedding BLOB NOT NULL
|
|
8
|
+
);
|
|
9
|
+
|
|
10
|
+
-- Note: Data migration from vss_memories is handled programmatically in sqlite-adapter.ts
|
|
11
|
+
-- because vss_memories is a vec0 virtual table that requires sqlite-vec to read.
|
|
12
|
+
-- If sqlite-vec is available at migration time, the adapter will copy rows automatically.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* MAMA Search Engine - Semantic Vector Search
|
|
3
3
|
*
|
|
4
4
|
* Story 2.2: Narrative Search/Expansion
|
|
5
|
-
* Implements semantic search using
|
|
5
|
+
* Implements semantic search using embeddings with brute-force cosine similarity
|
|
6
6
|
*
|
|
7
7
|
* @module search-engine
|
|
8
8
|
* @version 1.0
|
|
@@ -17,7 +17,7 @@ const { vectorSearch } = require('@jungjaehoon/mama-core/memory-store');
|
|
|
17
17
|
* Search Engine for narrative/decision search
|
|
18
18
|
*
|
|
19
19
|
* Provides semantic search capabilities using vector embeddings
|
|
20
|
-
* and
|
|
20
|
+
* and brute-force cosine similarity
|
|
21
21
|
*/
|
|
22
22
|
class SearchEngine {
|
|
23
23
|
constructor() {
|
package/src/server.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
*
|
|
11
11
|
* Architecture:
|
|
12
12
|
* - Stdio transport (standard MCP pattern)
|
|
13
|
-
* - SQLite +
|
|
13
|
+
* - SQLite + pure-TS cosine similarity for decision storage
|
|
14
14
|
* - Transformers.js for local embeddings
|
|
15
15
|
* - No network dependencies (100% local)
|
|
16
16
|
*
|
package/scripts/postinstall.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* MAMA MCP Server - Postinstall Script
|
|
4
|
-
* Ensures better-sqlite3 prebuild is installed correctly
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const { execSync } = require('child_process');
|
|
8
|
-
const path = require('path');
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Main postinstall function for MAMA MCP Server.
|
|
12
|
-
* Ensures better-sqlite3 native module prebuild is installed correctly.
|
|
13
|
-
* @returns {Promise<void>}
|
|
14
|
-
*/
|
|
15
|
-
async function main() {
|
|
16
|
-
console.log('[MAMA] Running postinstall checks...');
|
|
17
|
-
|
|
18
|
-
// Check Node.js version
|
|
19
|
-
const nodeVersion = process.versions.node.split('.')[0];
|
|
20
|
-
if (parseInt(nodeVersion) < 18) {
|
|
21
|
-
console.warn('[MAMA] Warning: Node.js 18+ recommended, current:', process.versions.node);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// Check better-sqlite3 and install prebuild if needed (uses shared utility)
|
|
25
|
-
try {
|
|
26
|
-
// Try to use shared utility first
|
|
27
|
-
const sharedScript = path.resolve(__dirname, '../../../scripts/ensure-sqlite-prebuild.js');
|
|
28
|
-
const { ensureSqlitePrebuild } = require(sharedScript);
|
|
29
|
-
ensureSqlitePrebuild({ prefix: '[MAMA]' });
|
|
30
|
-
} catch (sharedErr) {
|
|
31
|
-
// Shared utility not available when installed from npm (monorepo structure not present).
|
|
32
|
-
// Inline logic below mirrors scripts/ensure-sqlite-prebuild.js - keep in sync.
|
|
33
|
-
try {
|
|
34
|
-
require('better-sqlite3');
|
|
35
|
-
console.log('[MAMA] SQLite native module: OK');
|
|
36
|
-
} catch (err) {
|
|
37
|
-
console.warn('[MAMA] SQLite native module not ready, installing prebuild...');
|
|
38
|
-
|
|
39
|
-
// Guard: check if better-sqlite3 package exists before resolving path
|
|
40
|
-
let betterSqlitePath;
|
|
41
|
-
try {
|
|
42
|
-
betterSqlitePath = path.dirname(require.resolve('better-sqlite3/package.json'));
|
|
43
|
-
} catch {
|
|
44
|
-
console.error('[MAMA] better-sqlite3 package not found');
|
|
45
|
-
console.error('[MAMA] This should not happen - better-sqlite3 is a direct dependency');
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
try {
|
|
50
|
-
execSync('npx prebuild-install', { cwd: betterSqlitePath, stdio: 'inherit' });
|
|
51
|
-
|
|
52
|
-
delete require.cache[require.resolve('better-sqlite3')];
|
|
53
|
-
require('better-sqlite3');
|
|
54
|
-
console.log('[MAMA] SQLite native module: OK (prebuild installed)');
|
|
55
|
-
} catch (prebuildErr) {
|
|
56
|
-
console.error('[MAMA] Failed to install prebuild:', prebuildErr.message);
|
|
57
|
-
console.error(
|
|
58
|
-
'[MAMA] Try manually: cd node_modules/better-sqlite3 && npx prebuild-install'
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
console.log('[MAMA] Postinstall complete.');
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
main().catch((err) => {
|
|
68
|
-
console.error('[MAMA] Postinstall error:', err.message);
|
|
69
|
-
// Don't fail installation
|
|
70
|
-
process.exit(0);
|
|
71
|
-
});
|