@whenmoon-afk/memory-mcp 2.1.1 ā 2.2.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 +153 -3
- package/dist/database/better-sqlite3-driver.d.ts +38 -0
- package/dist/database/better-sqlite3-driver.d.ts.map +1 -0
- package/dist/database/better-sqlite3-driver.js +82 -0
- package/dist/database/better-sqlite3-driver.js.map +1 -0
- package/dist/database/connection.d.ts +5 -5
- package/dist/database/connection.d.ts.map +1 -1
- package/dist/database/connection.js +7 -4
- package/dist/database/connection.js.map +1 -1
- package/dist/database/db-driver.d.ts +76 -0
- package/dist/database/db-driver.d.ts.map +1 -0
- package/dist/database/db-driver.js +9 -0
- package/dist/database/db-driver.js.map +1 -0
- package/dist/database/driver-factory.d.ts +51 -0
- package/dist/database/driver-factory.d.ts.map +1 -0
- package/dist/database/driver-factory.js +63 -0
- package/dist/database/driver-factory.js.map +1 -0
- package/dist/database/schema.d.ts +5 -5
- package/dist/database/schema.d.ts.map +1 -1
- package/dist/database/schema.js.map +1 -1
- package/dist/database/sqljs-driver.d.ts +50 -0
- package/dist/database/sqljs-driver.d.ts.map +1 -0
- package/dist/database/sqljs-driver.js +108 -0
- package/dist/database/sqljs-driver.js.map +1 -0
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/search/semantic-search.d.ts +2 -2
- package/dist/search/semantic-search.d.ts.map +1 -1
- package/dist/search/semantic-search.js.map +1 -1
- package/dist/tools/memory-forget.d.ts +2 -2
- package/dist/tools/memory-forget.d.ts.map +1 -1
- package/dist/tools/memory-forget.js.map +1 -1
- package/dist/tools/memory-recall.d.ts +2 -2
- package/dist/tools/memory-recall.d.ts.map +1 -1
- package/dist/tools/memory-recall.js.map +1 -1
- package/dist/tools/memory-store.d.ts +2 -2
- package/dist/tools/memory-store.d.ts.map +1 -1
- package/dist/tools/memory-store.js.map +1 -1
- package/install.js +49 -7
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -83,6 +83,150 @@ npm run build
|
|
|
83
83
|
|
|
84
84
|
---
|
|
85
85
|
|
|
86
|
+
### Claude Code Installation
|
|
87
|
+
|
|
88
|
+
For users of Claude Code (terminal-based Claude), use the `claude mcp add` command:
|
|
89
|
+
|
|
90
|
+
**Global Memory (user-wide, persists across all projects):**
|
|
91
|
+
```bash
|
|
92
|
+
claude mcp add memory -s user -- npx -y @whenmoon-afk/memory-mcp
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
**Per-Project Memory (project-specific, stored in project directory):**
|
|
96
|
+
```bash
|
|
97
|
+
claude mcp add memory -s local -e MEMORY_DB_PATH=./memory.db -- npx -y @whenmoon-afk/memory-mcp
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Verify installation:**
|
|
101
|
+
```bash
|
|
102
|
+
claude mcp list
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
> **Tip:** Use `--scope user` for personal knowledge that spans projects. Use `--scope local` with `MEMORY_DB_PATH=./memory.db` for codebase-specific context that stays with the repository.
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Docker Deployment
|
|
110
|
+
|
|
111
|
+
Run the Memory MCP server in a containerized environment with persistent storage.
|
|
112
|
+
|
|
113
|
+
### Prerequisites
|
|
114
|
+
- Docker installed ([Get Docker](https://docs.docker.com/get-docker/))
|
|
115
|
+
- Docker Compose (included with Docker Desktop)
|
|
116
|
+
|
|
117
|
+
### Quick Start with Docker Compose
|
|
118
|
+
|
|
119
|
+
**1. Clone the repository:**
|
|
120
|
+
```bash
|
|
121
|
+
git clone https://github.com/WhenMoon-afk/claude-memory-mcp.git
|
|
122
|
+
cd claude-memory-mcp
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**2. Start the container:**
|
|
126
|
+
```bash
|
|
127
|
+
docker-compose up -d
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
This will:
|
|
131
|
+
- Build the Docker image with Node.js 20
|
|
132
|
+
- Create a persistent volume at `./data/` for the database
|
|
133
|
+
- Start the MCP server in detached mode
|
|
134
|
+
|
|
135
|
+
**3. View logs:**
|
|
136
|
+
```bash
|
|
137
|
+
docker-compose logs -f memory-mcp
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**4. Stop the container:**
|
|
141
|
+
```bash
|
|
142
|
+
docker-compose down
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
### Manual Docker Build
|
|
146
|
+
|
|
147
|
+
**Build the image:**
|
|
148
|
+
```bash
|
|
149
|
+
docker build -t memory-mcp:latest .
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
**Run the container:**
|
|
153
|
+
```bash
|
|
154
|
+
# Create data directory
|
|
155
|
+
mkdir -p ./data
|
|
156
|
+
|
|
157
|
+
# Run container with volume mount
|
|
158
|
+
docker run -d \
|
|
159
|
+
--name memory-mcp \
|
|
160
|
+
-v "$(pwd)/data:/data" \
|
|
161
|
+
-e MEMORY_DB_PATH=/data/memory.db \
|
|
162
|
+
-e DEFAULT_TTL_DAYS=90 \
|
|
163
|
+
memory-mcp:latest
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**Interact with the running container:**
|
|
167
|
+
```bash
|
|
168
|
+
# View logs
|
|
169
|
+
docker logs -f memory-mcp
|
|
170
|
+
|
|
171
|
+
# Execute commands inside container
|
|
172
|
+
docker exec -it memory-mcp /bin/bash
|
|
173
|
+
|
|
174
|
+
# Stop container
|
|
175
|
+
docker stop memory-mcp
|
|
176
|
+
|
|
177
|
+
# Remove container
|
|
178
|
+
docker rm memory-mcp
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### Volume Persistence
|
|
182
|
+
|
|
183
|
+
The database is stored in a Docker volume mapped to `./data/` on your host:
|
|
184
|
+
|
|
185
|
+
| Location | Path |
|
|
186
|
+
|----------|------|
|
|
187
|
+
| **Host** | `./data/memory.db` |
|
|
188
|
+
| **Container** | `/data/memory.db` |
|
|
189
|
+
|
|
190
|
+
**To backup your database:**
|
|
191
|
+
```bash
|
|
192
|
+
cp ./data/memory.db ./memory-backup-$(date +%Y%m%d).db
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
**To restore from backup:**
|
|
196
|
+
```bash
|
|
197
|
+
cp ./memory-backup-20250105.db ./data/memory.db
|
|
198
|
+
docker-compose restart
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Environment Variables (Docker)
|
|
202
|
+
|
|
203
|
+
Configure via `docker-compose.yml` or `-e` flags:
|
|
204
|
+
|
|
205
|
+
| Variable | Default | Description |
|
|
206
|
+
|----------|---------|-------------|
|
|
207
|
+
| `MEMORY_DB_PATH` | `/data/memory.db` | Database file location inside container |
|
|
208
|
+
| `DEFAULT_TTL_DAYS` | `90` | Default memory expiration (days) |
|
|
209
|
+
| `MEMORY_DB_DRIVER` | `better-sqlite3` | Database driver (better-sqlite3 or sqljs) |
|
|
210
|
+
| `NODE_ENV` | `production` | Node environment |
|
|
211
|
+
|
|
212
|
+
### Docker Notes
|
|
213
|
+
|
|
214
|
+
- **No HTTP Port**: This is a stdio-based MCP server. Communication happens via stdin/stdout, not HTTP requests.
|
|
215
|
+
- **Native Dependencies**: Uses multi-stage build to compile better-sqlite3 native bindings
|
|
216
|
+
- **Resource Limits**: Default docker-compose.yml sets 512MB memory limit (adjustable)
|
|
217
|
+
- **Auto-restart**: Container restarts automatically unless explicitly stopped
|
|
218
|
+
|
|
219
|
+
### Using with MCP Clients
|
|
220
|
+
|
|
221
|
+
When running in Docker, you'll need to configure your MCP client to communicate with the containerized server. The exact method depends on your client:
|
|
222
|
+
|
|
223
|
+
- **For local development**: Use `docker exec` to run commands
|
|
224
|
+
- **For production**: Consider using a container orchestration platform (Kubernetes, ECS, etc.)
|
|
225
|
+
|
|
226
|
+
> **Tip**: For most use cases, the **NPM package installation** (Option 1) is simpler and more suitable than Docker, since MCP servers typically run locally and communicate directly with the AI client via stdio.
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
86
230
|
## Integrate with Your MCP Client
|
|
87
231
|
|
|
88
232
|
Add to your client's MCP config file:
|
|
@@ -298,11 +442,17 @@ All other dependencies are dev-only (TypeScript, testing, linting).
|
|
|
298
442
|
|
|
299
443
|
## Environment Variables
|
|
300
444
|
|
|
301
|
-
|
|
|
302
|
-
|
|
303
|
-
| `MEMORY_DB_PATH` |
|
|
445
|
+
| Variable | Default | Description |
|
|
446
|
+
|----------|---------|-------------|
|
|
447
|
+
| `MEMORY_DB_PATH` | Platform-specific* | Database file location |
|
|
448
|
+
| `MEMORY_DB_DRIVER` | `better-sqlite3` | Database driver (`better-sqlite3` or `sqljs`) |
|
|
304
449
|
| `DEFAULT_TTL_DAYS` | `90` | Default time-to-live for memories (days) |
|
|
305
450
|
|
|
451
|
+
*Default database locations (when installed via `npx`):
|
|
452
|
+
- **macOS:** `~/.claude-memories/memory.db`
|
|
453
|
+
- **Windows:** `%APPDATA%\claude-memories\memory.db`
|
|
454
|
+
- **Linux:** `~/.local/share/claude-memories/memory.db`
|
|
455
|
+
|
|
306
456
|
---
|
|
307
457
|
|
|
308
458
|
### Security
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BetterSqlite3Driver - Adapter for better-sqlite3
|
|
3
|
+
*
|
|
4
|
+
* Wraps better-sqlite3's Database to implement the DbDriver interface.
|
|
5
|
+
* This adapter allows the codebase to depend on the interface rather than
|
|
6
|
+
* the concrete better-sqlite3 types, enabling future database driver swaps.
|
|
7
|
+
*/
|
|
8
|
+
import Database from 'better-sqlite3';
|
|
9
|
+
import type { DbDriver, PreparedStatement } from './db-driver.js';
|
|
10
|
+
/**
|
|
11
|
+
* Adapter for better-sqlite3 Database
|
|
12
|
+
* Implements DbDriver interface
|
|
13
|
+
*/
|
|
14
|
+
export declare class BetterSqlite3Driver implements DbDriver {
|
|
15
|
+
private db;
|
|
16
|
+
constructor(db: Database.Database);
|
|
17
|
+
prepare<T = unknown>(sql: string): PreparedStatement<T>;
|
|
18
|
+
exec(sql: string): void;
|
|
19
|
+
pragma(pragma: string): unknown;
|
|
20
|
+
transaction<T>(fn: () => T): () => T;
|
|
21
|
+
close(): void;
|
|
22
|
+
/**
|
|
23
|
+
* Get the underlying better-sqlite3 Database instance
|
|
24
|
+
* Only exposed for migration purposes - avoid using in business logic
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
getUnderlying(): Database.Database;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create a BetterSqlite3Driver from a file path
|
|
32
|
+
*
|
|
33
|
+
* @param path Database file path
|
|
34
|
+
* @param options better-sqlite3 options
|
|
35
|
+
* @returns Driver instance
|
|
36
|
+
*/
|
|
37
|
+
export declare function createBetterSqlite3Driver(path: string, options?: Database.Options): BetterSqlite3Driver;
|
|
38
|
+
//# sourceMappingURL=better-sqlite3-driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"better-sqlite3-driver.d.ts","sourceRoot":"","sources":["../../src/database/better-sqlite3-driver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAa,MAAM,gBAAgB,CAAC;AA+B7E;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,QAAQ;IACtC,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEzC,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAKvD,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI/B,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAIpC,KAAK,IAAI,IAAI;IAIb;;;;;OAKG;IACH,aAAa,IAAI,QAAQ,CAAC,QAAQ;CAGnC;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,GACzB,mBAAmB,CAGrB"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BetterSqlite3Driver - Adapter for better-sqlite3
|
|
3
|
+
*
|
|
4
|
+
* Wraps better-sqlite3's Database to implement the DbDriver interface.
|
|
5
|
+
* This adapter allows the codebase to depend on the interface rather than
|
|
6
|
+
* the concrete better-sqlite3 types, enabling future database driver swaps.
|
|
7
|
+
*/
|
|
8
|
+
import Database from 'better-sqlite3';
|
|
9
|
+
/**
|
|
10
|
+
* Wrapper for better-sqlite3's Statement
|
|
11
|
+
* Implements PreparedStatement interface
|
|
12
|
+
*/
|
|
13
|
+
class StatementWrapper {
|
|
14
|
+
stmt;
|
|
15
|
+
constructor(stmt) {
|
|
16
|
+
this.stmt = stmt;
|
|
17
|
+
}
|
|
18
|
+
run(...params) {
|
|
19
|
+
const result = this.stmt.run(...params);
|
|
20
|
+
return {
|
|
21
|
+
changes: result.changes,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
get(...params) {
|
|
25
|
+
return this.stmt.get(...params);
|
|
26
|
+
}
|
|
27
|
+
all(...params) {
|
|
28
|
+
return this.stmt.all(...params);
|
|
29
|
+
}
|
|
30
|
+
pluck() {
|
|
31
|
+
// better-sqlite3's pluck() returns a modified Statement
|
|
32
|
+
const pluckedStmt = this.stmt.pluck();
|
|
33
|
+
return new StatementWrapper(pluckedStmt);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Adapter for better-sqlite3 Database
|
|
38
|
+
* Implements DbDriver interface
|
|
39
|
+
*/
|
|
40
|
+
export class BetterSqlite3Driver {
|
|
41
|
+
db;
|
|
42
|
+
constructor(db) {
|
|
43
|
+
this.db = db;
|
|
44
|
+
}
|
|
45
|
+
prepare(sql) {
|
|
46
|
+
const stmt = this.db.prepare(sql);
|
|
47
|
+
return new StatementWrapper(stmt);
|
|
48
|
+
}
|
|
49
|
+
exec(sql) {
|
|
50
|
+
this.db.exec(sql);
|
|
51
|
+
}
|
|
52
|
+
pragma(pragma) {
|
|
53
|
+
return this.db.pragma(pragma);
|
|
54
|
+
}
|
|
55
|
+
transaction(fn) {
|
|
56
|
+
return this.db.transaction(fn);
|
|
57
|
+
}
|
|
58
|
+
close() {
|
|
59
|
+
this.db.close();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get the underlying better-sqlite3 Database instance
|
|
63
|
+
* Only exposed for migration purposes - avoid using in business logic
|
|
64
|
+
*
|
|
65
|
+
* @internal
|
|
66
|
+
*/
|
|
67
|
+
getUnderlying() {
|
|
68
|
+
return this.db;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create a BetterSqlite3Driver from a file path
|
|
73
|
+
*
|
|
74
|
+
* @param path Database file path
|
|
75
|
+
* @param options better-sqlite3 options
|
|
76
|
+
* @returns Driver instance
|
|
77
|
+
*/
|
|
78
|
+
export function createBetterSqlite3Driver(path, options) {
|
|
79
|
+
const db = new Database(path, options);
|
|
80
|
+
return new BetterSqlite3Driver(db);
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=better-sqlite3-driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"better-sqlite3-driver.js","sourceRoot":"","sources":["../../src/database/better-sqlite3-driver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC;;;GAGG;AACH,MAAM,gBAAgB;IACA;IAApB,YAAoB,IAAwB;QAAxB,SAAI,GAAJ,IAAI,CAAoB;IAAG,CAAC;IAEhD,GAAG,CAAC,GAAG,MAAiB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,GAAG,MAAiB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAkB,CAAC;IACnD,CAAC;IAED,GAAG,CAAC,GAAG,MAAiB;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAQ,CAAC;IACzC,CAAC;IAED,KAAK;QACH,wDAAwD;QACxD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACtC,OAAO,IAAI,gBAAgB,CAAI,WAAW,CAAC,CAAC;IAC9C,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACV;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAE7C,OAAO,CAAc,GAAW;QAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAClC,OAAO,IAAI,gBAAgB,CAAI,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,GAAW;QACd,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,WAAW,CAAI,EAAW;QACxB,OAAO,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,OAA0B;IAE1B,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,OAAO,IAAI,mBAAmB,CAAC,EAAE,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database connection management and utilities
|
|
3
3
|
*/
|
|
4
|
-
import
|
|
4
|
+
import type { DbDriver } from './db-driver.js';
|
|
5
5
|
import { type DatabaseStats } from './schema.js';
|
|
6
6
|
/**
|
|
7
7
|
* Get or create database connection
|
|
8
8
|
*/
|
|
9
|
-
export declare function getDatabase(path: string):
|
|
9
|
+
export declare function getDatabase(path: string): DbDriver;
|
|
10
10
|
/**
|
|
11
11
|
* Close database connection
|
|
12
12
|
*/
|
|
@@ -14,7 +14,7 @@ export declare function closeDatabase(): void;
|
|
|
14
14
|
/**
|
|
15
15
|
* Execute a transaction
|
|
16
16
|
*/
|
|
17
|
-
export declare function transaction<T>(db:
|
|
17
|
+
export declare function transaction<T>(db: DbDriver, fn: () => T): T;
|
|
18
18
|
/**
|
|
19
19
|
* Serialize metadata to JSON string
|
|
20
20
|
*/
|
|
@@ -39,9 +39,9 @@ export interface PruneResult {
|
|
|
39
39
|
deleted_count: number;
|
|
40
40
|
total_pruned: number;
|
|
41
41
|
}
|
|
42
|
-
export declare function pruneMemories(db:
|
|
42
|
+
export declare function pruneMemories(db: DbDriver, olderThanDays?: number, dryRun?: boolean): PruneResult;
|
|
43
43
|
/**
|
|
44
44
|
* Get database statistics
|
|
45
45
|
*/
|
|
46
|
-
export declare function getStats(db:
|
|
46
|
+
export declare function getStats(db: DbDriver): DatabaseStats;
|
|
47
47
|
//# sourceMappingURL=connection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/database/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/database/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAKL,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAKrB;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAoClD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAKpC;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAG3D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAE3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAMzE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,GAAE,MAAc,GAAG,MAAM,CAIzD;AAED;;GAEG;AACH,wBAAgB,GAAG,IAAI,MAAM,CAE5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,aAAa,CAC3B,EAAE,EAAE,QAAQ,EACZ,aAAa,GAAE,MAAU,EACzB,MAAM,GAAE,OAAe,GACtB,WAAW,CAwEb;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,QAAQ,GAAG,aAAa,CAEpD"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database connection management and utilities
|
|
3
3
|
*/
|
|
4
|
-
import Database from 'better-sqlite3';
|
|
5
4
|
import { existsSync, mkdirSync } from 'fs';
|
|
6
5
|
import { dirname } from 'path';
|
|
6
|
+
import { createDriverFromEnv } from './driver-factory.js';
|
|
7
7
|
import { initializeSchema, createViews, optimizeDatabase, getDatabaseStats, } from './schema.js';
|
|
8
8
|
import { DatabaseError } from '../types/index.js';
|
|
9
9
|
let dbInstance = null;
|
|
@@ -20,9 +20,12 @@ export function getDatabase(path) {
|
|
|
20
20
|
if (!existsSync(dir)) {
|
|
21
21
|
mkdirSync(dir, { recursive: true });
|
|
22
22
|
}
|
|
23
|
-
// Open database
|
|
24
|
-
dbInstance =
|
|
25
|
-
|
|
23
|
+
// Open database using driver factory (respects MEMORY_DB_DRIVER env var)
|
|
24
|
+
dbInstance = createDriverFromEnv({
|
|
25
|
+
path,
|
|
26
|
+
options: {
|
|
27
|
+
verbose: process.env['NODE_ENV'] === 'development' ? () => { } : undefined,
|
|
28
|
+
},
|
|
26
29
|
});
|
|
27
30
|
// Initialize schema
|
|
28
31
|
initializeSchema(dbInstance);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/database/connection.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/database/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database driver interface - Abstraction layer for SQLite operations
|
|
3
|
+
*
|
|
4
|
+
* This interface decouples the application from better-sqlite3's concrete types,
|
|
5
|
+
* allowing for alternative implementations (e.g., libsql, better-sqlite3-multiple-ciphers)
|
|
6
|
+
* without changing business logic.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Result returned by .run() operations (INSERT/UPDATE/DELETE)
|
|
10
|
+
*/
|
|
11
|
+
export interface RunResult {
|
|
12
|
+
/**
|
|
13
|
+
* Number of rows affected by the operation
|
|
14
|
+
*/
|
|
15
|
+
changes: number;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Prepared statement interface - mirrors better-sqlite3's Statement API
|
|
19
|
+
*/
|
|
20
|
+
export interface PreparedStatement<T = unknown> {
|
|
21
|
+
/**
|
|
22
|
+
* Execute statement and return run result
|
|
23
|
+
*/
|
|
24
|
+
run(...params: unknown[]): RunResult;
|
|
25
|
+
/**
|
|
26
|
+
* Execute statement and return single row (or undefined if no match)
|
|
27
|
+
*/
|
|
28
|
+
get(...params: unknown[]): T | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Execute statement and return all matching rows
|
|
31
|
+
*/
|
|
32
|
+
all(...params: unknown[]): T[];
|
|
33
|
+
/**
|
|
34
|
+
* Return a statement that extracts only the first column of each row
|
|
35
|
+
* Used for COUNT queries and scalar selects
|
|
36
|
+
*/
|
|
37
|
+
pluck(): PreparedStatement<T>;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Main database driver interface
|
|
41
|
+
*/
|
|
42
|
+
export interface DbDriver {
|
|
43
|
+
/**
|
|
44
|
+
* Prepare a SQL statement for execution
|
|
45
|
+
*
|
|
46
|
+
* @param sql SQL statement with ? placeholders
|
|
47
|
+
* @returns Prepared statement object
|
|
48
|
+
*/
|
|
49
|
+
prepare<T = unknown>(sql: string): PreparedStatement<T>;
|
|
50
|
+
/**
|
|
51
|
+
* Execute multi-statement SQL (no parameter binding)
|
|
52
|
+
* Used for schema creation, migrations, and DDL operations
|
|
53
|
+
*
|
|
54
|
+
* @param sql Multi-statement SQL string
|
|
55
|
+
*/
|
|
56
|
+
exec(sql: string): void;
|
|
57
|
+
/**
|
|
58
|
+
* Set a SQLite PRAGMA
|
|
59
|
+
*
|
|
60
|
+
* @param pragma PRAGMA statement (e.g., "journal_mode = WAL")
|
|
61
|
+
* @returns Pragma value if query pragma, undefined if setting pragma
|
|
62
|
+
*/
|
|
63
|
+
pragma(pragma: string): unknown;
|
|
64
|
+
/**
|
|
65
|
+
* Create a transaction function wrapper
|
|
66
|
+
*
|
|
67
|
+
* @param fn Function to execute in transaction
|
|
68
|
+
* @returns Callable transaction function
|
|
69
|
+
*/
|
|
70
|
+
transaction<T>(fn: () => T): () => T;
|
|
71
|
+
/**
|
|
72
|
+
* Close the database connection
|
|
73
|
+
*/
|
|
74
|
+
close(): void;
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=db-driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-driver.d.ts","sourceRoot":"","sources":["../../src/database/db-driver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC,GAAG,OAAO;IAC5C;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IAErC;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC;IAEzC;;OAEG;IACH,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,CAAC;IAE/B;;;OAGG;IACH,KAAK,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;OAKG;IACH,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAExD;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAExB;;;;;OAKG;IACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IAEhC;;;;;OAKG;IACH,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC;IAErC;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Database driver interface - Abstraction layer for SQLite operations
|
|
3
|
+
*
|
|
4
|
+
* This interface decouples the application from better-sqlite3's concrete types,
|
|
5
|
+
* allowing for alternative implementations (e.g., libsql, better-sqlite3-multiple-ciphers)
|
|
6
|
+
* without changing business logic.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=db-driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db-driver.js","sourceRoot":"","sources":["../../src/database/db-driver.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Driver Factory - Selects database driver based on environment configuration
|
|
3
|
+
*
|
|
4
|
+
* Supports pluggable database drivers through the DbDriver interface.
|
|
5
|
+
* Selection is controlled by MEMORY_DB_DRIVER environment variable.
|
|
6
|
+
*/
|
|
7
|
+
import type { DbDriver } from './db-driver.js';
|
|
8
|
+
import type Database from 'better-sqlite3';
|
|
9
|
+
/**
|
|
10
|
+
* Supported database driver types
|
|
11
|
+
*/
|
|
12
|
+
export type DriverType = 'better-sqlite3' | 'sqljs';
|
|
13
|
+
/**
|
|
14
|
+
* Driver configuration options
|
|
15
|
+
*/
|
|
16
|
+
export interface DriverConfig {
|
|
17
|
+
/**
|
|
18
|
+
* Database file path (for file-based drivers like better-sqlite3)
|
|
19
|
+
*/
|
|
20
|
+
path: string;
|
|
21
|
+
/**
|
|
22
|
+
* Driver-specific options (e.g., better-sqlite3 Database.Options)
|
|
23
|
+
*/
|
|
24
|
+
options?: Database.Options;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Create database driver based on type
|
|
28
|
+
*
|
|
29
|
+
* @param type - Driver type ('better-sqlite3' or 'sqljs')
|
|
30
|
+
* @param config - Driver configuration
|
|
31
|
+
* @returns DbDriver instance
|
|
32
|
+
* @throws Error if driver type is unsupported or driver initialization fails
|
|
33
|
+
*/
|
|
34
|
+
export declare function createDriver(type: DriverType, config: DriverConfig): DbDriver;
|
|
35
|
+
/**
|
|
36
|
+
* Get driver type from environment variable
|
|
37
|
+
*
|
|
38
|
+
* @returns Driver type from MEMORY_DB_DRIVER env var, defaults to 'better-sqlite3'
|
|
39
|
+
*/
|
|
40
|
+
export declare function getDriverTypeFromEnv(): DriverType;
|
|
41
|
+
/**
|
|
42
|
+
* Create database driver from environment configuration
|
|
43
|
+
*
|
|
44
|
+
* Convenience function that reads MEMORY_DB_DRIVER from environment
|
|
45
|
+
* and creates the appropriate driver instance.
|
|
46
|
+
*
|
|
47
|
+
* @param config - Driver configuration
|
|
48
|
+
* @returns DbDriver instance
|
|
49
|
+
*/
|
|
50
|
+
export declare function createDriverFromEnv(config: DriverConfig): DbDriver;
|
|
51
|
+
//# sourceMappingURL=driver-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver-factory.d.ts","sourceRoot":"","sources":["../../src/database/driver-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,gBAAgB,GAAG,OAAO,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC;CAC5B;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,QAAQ,CAgB7E;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,UAAU,CAoBjD;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,QAAQ,CAMlE"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Driver Factory - Selects database driver based on environment configuration
|
|
3
|
+
*
|
|
4
|
+
* Supports pluggable database drivers through the DbDriver interface.
|
|
5
|
+
* Selection is controlled by MEMORY_DB_DRIVER environment variable.
|
|
6
|
+
*/
|
|
7
|
+
import { createBetterSqlite3Driver } from './better-sqlite3-driver.js';
|
|
8
|
+
import { createSqlJsDriver } from './sqljs-driver.js';
|
|
9
|
+
/**
|
|
10
|
+
* Create database driver based on type
|
|
11
|
+
*
|
|
12
|
+
* @param type - Driver type ('better-sqlite3' or 'sqljs')
|
|
13
|
+
* @param config - Driver configuration
|
|
14
|
+
* @returns DbDriver instance
|
|
15
|
+
* @throws Error if driver type is unsupported or driver initialization fails
|
|
16
|
+
*/
|
|
17
|
+
export function createDriver(type, config) {
|
|
18
|
+
switch (type) {
|
|
19
|
+
case 'better-sqlite3':
|
|
20
|
+
return createBetterSqlite3Driver(config.path, config.options);
|
|
21
|
+
case 'sqljs':
|
|
22
|
+
// SqlJsDriver is a stub - throws informative error
|
|
23
|
+
return createSqlJsDriver();
|
|
24
|
+
default:
|
|
25
|
+
throw new Error(`Unsupported driver type: ${type}\n` +
|
|
26
|
+
'Supported drivers: better-sqlite3, sqljs\n' +
|
|
27
|
+
'Set MEMORY_DB_DRIVER environment variable to select driver.');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get driver type from environment variable
|
|
32
|
+
*
|
|
33
|
+
* @returns Driver type from MEMORY_DB_DRIVER env var, defaults to 'better-sqlite3'
|
|
34
|
+
*/
|
|
35
|
+
export function getDriverTypeFromEnv() {
|
|
36
|
+
const envDriver = process.env['MEMORY_DB_DRIVER'];
|
|
37
|
+
if (!envDriver) {
|
|
38
|
+
return 'better-sqlite3'; // Default
|
|
39
|
+
}
|
|
40
|
+
const normalized = envDriver.toLowerCase().trim();
|
|
41
|
+
if (normalized === 'better-sqlite3' || normalized === 'sqljs') {
|
|
42
|
+
return normalized;
|
|
43
|
+
}
|
|
44
|
+
console.error(`[WARN] Unknown MEMORY_DB_DRIVER value: "${envDriver}". ` +
|
|
45
|
+
'Using default: better-sqlite3. ' +
|
|
46
|
+
'Valid options: better-sqlite3, sqljs');
|
|
47
|
+
return 'better-sqlite3';
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create database driver from environment configuration
|
|
51
|
+
*
|
|
52
|
+
* Convenience function that reads MEMORY_DB_DRIVER from environment
|
|
53
|
+
* and creates the appropriate driver instance.
|
|
54
|
+
*
|
|
55
|
+
* @param config - Driver configuration
|
|
56
|
+
* @returns DbDriver instance
|
|
57
|
+
*/
|
|
58
|
+
export function createDriverFromEnv(config) {
|
|
59
|
+
const driverType = getDriverTypeFromEnv();
|
|
60
|
+
console.error(`[INFO] Using database driver: ${driverType}`);
|
|
61
|
+
return createDriver(driverType, config);
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=driver-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"driver-factory.js","sourceRoot":"","sources":["../../src/database/driver-factory.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAuBtD;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,IAAgB,EAAE,MAAoB;IACjE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,gBAAgB;YACnB,OAAO,yBAAyB,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QAEhE,KAAK,OAAO;YACV,mDAAmD;YACnD,OAAO,iBAAiB,EAAE,CAAC;QAE7B;YACE,MAAM,IAAI,KAAK,CACb,4BAA4B,IAAI,IAAI;gBAClC,4CAA4C;gBAC5C,6DAA6D,CAChE,CAAC;IACN,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAElD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,gBAAgB,CAAC,CAAC,UAAU;IACrC,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAElD,IAAI,UAAU,KAAK,gBAAgB,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC9D,OAAO,UAAwB,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,KAAK,CACX,2CAA2C,SAAS,KAAK;QACvD,iCAAiC;QACjC,sCAAsC,CACzC,CAAC;IAEF,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAoB;IACtD,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;IAE1C,OAAO,CAAC,KAAK,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC;IAE7D,OAAO,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Database schema definitions and migrations for Memory MCP
|
|
3
3
|
*/
|
|
4
|
-
import type
|
|
4
|
+
import type { DbDriver } from './db-driver.js';
|
|
5
5
|
export declare const SCHEMA_VERSION = 3;
|
|
6
6
|
/**
|
|
7
7
|
* Initialize database schema
|
|
8
8
|
*/
|
|
9
|
-
export declare function initializeSchema(db:
|
|
9
|
+
export declare function initializeSchema(db: DbDriver): void;
|
|
10
10
|
/**
|
|
11
11
|
* Create optimized views for common queries
|
|
12
12
|
*/
|
|
13
|
-
export declare function createViews(db:
|
|
13
|
+
export declare function createViews(db: DbDriver): void;
|
|
14
14
|
/**
|
|
15
15
|
* Optimize database for performance
|
|
16
16
|
*/
|
|
17
|
-
export declare function optimizeDatabase(db:
|
|
17
|
+
export declare function optimizeDatabase(db: DbDriver): void;
|
|
18
18
|
/**
|
|
19
19
|
* Get database statistics
|
|
20
20
|
*/
|
|
@@ -29,5 +29,5 @@ export interface DatabaseStats {
|
|
|
29
29
|
memory_avg_importance: number;
|
|
30
30
|
oldest_memory_age_days: number;
|
|
31
31
|
}
|
|
32
|
-
export declare function getDatabaseStats(db:
|
|
32
|
+
export declare function getDatabaseStats(db: DbDriver): DatabaseStats;
|
|
33
33
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/database/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/database/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE/C,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAqBnD;AAwND;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CA8B9C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,IAAI,CAUnD;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,MAAM,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,QAAQ,GAAG,aAAa,CAsC5D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/database/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/database/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEhC;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAY;IAC3C,sBAAsB;IACtB,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,8BAA8B;IAC9B,EAAE,CAAC,IAAI,CAAC;;;;;GAKP,CAAC,CAAC;IAEH,wBAAwB;IACxB,MAAM,cAAc,GAAG,EAAE;SACtB,OAAO,CAAC,kEAAkE,CAAC;SAC3E,KAAK,EAAE;SACP,GAAG,EAAwB,CAAC;IAE/B,IAAI,CAAC,cAAc,IAAI,cAAc,GAAG,cAAc,EAAE,CAAC;QACvD,eAAe,CAAC,EAAE,EAAE,cAAc,IAAI,CAAC,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,EAAY,EAAE,WAAmB;IACxD,MAAM,UAAU,GAAG;QACjB,8BAA8B;QAC9B,CAAC,EAAY,EAAE,EAAE;YACf,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkEP,CAAC,CAAC;YAEH,mBAAmB;YACnB,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAC9E,CAAC,EACD,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;QACJ,CAAC;QAED,yEAAyE;QACzE,CAAC,EAAY,EAAE,EAAE;YACf,6DAA6D;YAC7D,EAAE,CAAC,IAAI,CAAC;;OAEP,CAAC,CAAC;YAEH,iDAAiD;YACjD,EAAE,CAAC,IAAI,CAAC;;OAEP,CAAC,CAAC;YAEH,8EAA8E;YAC9E,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAGjE,CAAC;YAEH,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;YAEjF,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;gBAC9B,yDAAyD;gBACzD,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;gBAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBAC5D,IAAI,aAAa,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBACpD,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpC,CAAC;qBAAM,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;oBACvC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC;gBACpD,CAAC;gBACD,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACxC,CAAC;YAED,+FAA+F;YAC/F,MAAM,aAAa,GAAG,EAAE;iBACrB,OAAO,CAAC,qDAAqD,CAAC;iBAC9D,KAAK,EAAE;iBACP,GAAG,EAAY,CAAC;YAEnB,IAAI,aAAa,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CACb,uBAAuB,aAAa,qCAAqC,CAC1E,CAAC;YACJ,CAAC;YAGD,mBAAmB;YACnB,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAC9E,CAAC,EACD,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;QACJ,CAAC;QAED,wEAAwE;QACxE,CAAC,EAAY,EAAE,EAAE;YACf,mEAAmE;YACnE,EAAE,CAAC,IAAI,CAAC;;;;;;;OAOP,CAAC,CAAC;YAEH,4CAA4C;YAC5C,EAAE,CAAC,IAAI,CAAC;;;OAGP,CAAC,CAAC;YAEH,iDAAiD;YACjD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCP,CAAC,CAAC;YAEH,sDAAsD;YACtD,4DAA4D;YAC5D,4CAA4C;YAE5C,mBAAmB;YACnB,EAAE,CAAC,OAAO,CAAC,gEAAgE,CAAC,CAAC,GAAG,CAC9E,CAAC,EACD,IAAI,CAAC,GAAG,EAAE,CACX,CAAC;QACJ,CAAC;KACF,CAAC;IAEF,mCAAmC;IACnC,KAAK,IAAI,CAAC,GAAG,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,SAAS,EAAE,CAAC;YACd,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;gBAClB,SAAS,CAAC,EAAE,CAAC,CAAC;YAChB,CAAC,CAAC,EAAE,CAAC;QACP,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,EAAY;IACtC,2CAA2C;IAC3C,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;GAUP,CAAC,CAAC;IAEH,gCAAgC;IAChC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;GAcP,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAY;IAC3C,wCAAwC;IACxC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEpB,0BAA0B;IAC1B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,CAAC,6CAA6C;IAC9E,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,2BAA2B;IAC9D,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,aAAa;IAC/C,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,wBAAwB;IAC1D,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC,yBAAyB;AACjE,CAAC;AAiBD,MAAM,UAAU,gBAAgB,CAAC,EAAY;IAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAEvB,MAAM,KAAK,GAAG;QACZ,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAY;QACnF,eAAe,EAAE,EAAE;aAChB,OAAO,CAAC,+FAA+F,CAAC;aACxG,KAAK,EAAE;aACP,GAAG,CAAC,GAAG,CAAW;QACrB,gBAAgB,EAAE,EAAE;aACjB,OAAO,CAAC,oDAAoD,CAAC;aAC7D,KAAK,EAAE;aACP,GAAG,EAAY;QAClB,gBAAgB,EAAE,EAAE;aACjB,OAAO,CAAC,mGAAmG,CAAC;aAC5G,KAAK,EAAE;aACP,GAAG,CAAC,GAAG,CAAW;QACrB,cAAc,EAAE,EAAE,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAY;QACnF,wBAAwB,EAAE,EAAE,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,EAAY;QAC/F,mBAAmB,EAAE,EAAE;aACpB,OAAO,CAAC,oFAAoF,CAAC;aAC7F,KAAK,EAAE;aACP,GAAG,EAAY;QAClB,qBAAqB,EAClB,EAAE;aACA,OAAO,CAAC,2DAA2D,CAAC;aACpE,KAAK,EAAE;aACP,GAAG,EAAa,IAAI,CAAC;QAC1B,sBAAsB,EAAE,CAAC,GAAG,EAAE;YAC5B,MAAM,MAAM,GAAG,EAAE;iBACd,OAAO,CAAC,2DAA2D,CAAC;iBACpE,KAAK,EAAE;iBACP,GAAG,EAAmB,CAAC;YAC1B,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,EAAE;KACL,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SqlJsDriver - Stub adapter for sql.js (NOT YET FUNCTIONAL)
|
|
3
|
+
*
|
|
4
|
+
* This is a placeholder implementation to demonstrate the pluggable driver architecture.
|
|
5
|
+
* sql.js is an in-memory SQLite implementation compiled to WebAssembly, useful for:
|
|
6
|
+
* - Browser environments
|
|
7
|
+
* - Serverless functions with ephemeral filesystems
|
|
8
|
+
* - Testing with isolated in-memory databases
|
|
9
|
+
*
|
|
10
|
+
* TODO: Implement actual sql.js integration when needed
|
|
11
|
+
* - Install sql.js: npm install sql.js
|
|
12
|
+
* - Handle async initialization (sql.js Database constructor is async)
|
|
13
|
+
* - Map sql.js Statement API to PreparedStatement interface
|
|
14
|
+
* - Handle parameter binding differences
|
|
15
|
+
* - Implement transaction support
|
|
16
|
+
*/
|
|
17
|
+
import type { DbDriver, PreparedStatement } from './db-driver.js';
|
|
18
|
+
/**
|
|
19
|
+
* Stub adapter for sql.js Database
|
|
20
|
+
* All methods throw NotImplementedError
|
|
21
|
+
*
|
|
22
|
+
* When implementing:
|
|
23
|
+
* 1. Install sql.js: npm install sql.js
|
|
24
|
+
* 2. Import: import initSqlJs from 'sql.js'
|
|
25
|
+
* 3. Initialize async: const SQL = await initSqlJs()
|
|
26
|
+
* 4. Create database: const db = new SQL.Database()
|
|
27
|
+
* 5. Wrap sql.js Statement API to match PreparedStatement interface
|
|
28
|
+
* 6. Handle exec() for multi-statement SQL
|
|
29
|
+
* 7. Implement pragma() using PRAGMA statements
|
|
30
|
+
* 8. Wrap transactions (sql.js doesn't have explicit transaction API)
|
|
31
|
+
*/
|
|
32
|
+
export declare class SqlJsDriver implements DbDriver {
|
|
33
|
+
/**
|
|
34
|
+
* Placeholder constructor
|
|
35
|
+
* Real implementation would accept sql.js Database instance
|
|
36
|
+
*/
|
|
37
|
+
constructor();
|
|
38
|
+
prepare<T = unknown>(sql: string): PreparedStatement<T>;
|
|
39
|
+
exec(_sql: string): void;
|
|
40
|
+
pragma(_pragma: string): unknown;
|
|
41
|
+
transaction<T>(_fn: () => T): () => T;
|
|
42
|
+
close(): void;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Stub factory function for SqlJsDriver
|
|
46
|
+
*
|
|
47
|
+
* @throws Error - Always throws, as sql.js is not implemented
|
|
48
|
+
*/
|
|
49
|
+
export declare function createSqlJsDriver(): SqlJsDriver;
|
|
50
|
+
//# sourceMappingURL=sqljs-driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqljs-driver.d.ts","sourceRoot":"","sources":["../../src/database/sqljs-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAa,MAAM,gBAAgB,CAAC;AAsC7E;;;;;;;;;;;;;GAaG;AACH,qBAAa,WAAY,YAAW,QAAQ;IAC1C;;;OAGG;;IAKH,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAKvD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQxB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQhC,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC;IAQrC,KAAK,IAAI,IAAI;CAOd;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,WAAW,CAc/C"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SqlJsDriver - Stub adapter for sql.js (NOT YET FUNCTIONAL)
|
|
3
|
+
*
|
|
4
|
+
* This is a placeholder implementation to demonstrate the pluggable driver architecture.
|
|
5
|
+
* sql.js is an in-memory SQLite implementation compiled to WebAssembly, useful for:
|
|
6
|
+
* - Browser environments
|
|
7
|
+
* - Serverless functions with ephemeral filesystems
|
|
8
|
+
* - Testing with isolated in-memory databases
|
|
9
|
+
*
|
|
10
|
+
* TODO: Implement actual sql.js integration when needed
|
|
11
|
+
* - Install sql.js: npm install sql.js
|
|
12
|
+
* - Handle async initialization (sql.js Database constructor is async)
|
|
13
|
+
* - Map sql.js Statement API to PreparedStatement interface
|
|
14
|
+
* - Handle parameter binding differences
|
|
15
|
+
* - Implement transaction support
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Stub PreparedStatement for sql.js
|
|
19
|
+
* All methods throw NotImplementedError
|
|
20
|
+
*/
|
|
21
|
+
class SqlJsStatementStub {
|
|
22
|
+
sql;
|
|
23
|
+
constructor(sql) {
|
|
24
|
+
this.sql = sql;
|
|
25
|
+
}
|
|
26
|
+
run(..._params) {
|
|
27
|
+
throw new Error(`SqlJsDriver.run() not implemented. SQL: ${this.sql}\n` +
|
|
28
|
+
'To use sql.js driver, implement SqlJsDriver according to sql.js API documentation.');
|
|
29
|
+
}
|
|
30
|
+
get(..._params) {
|
|
31
|
+
throw new Error(`SqlJsDriver.get() not implemented. SQL: ${this.sql}\n` +
|
|
32
|
+
'To use sql.js driver, implement SqlJsDriver according to sql.js API documentation.');
|
|
33
|
+
}
|
|
34
|
+
all(..._params) {
|
|
35
|
+
throw new Error(`SqlJsDriver.all() not implemented. SQL: ${this.sql}\n` +
|
|
36
|
+
'To use sql.js driver, implement SqlJsDriver according to sql.js API documentation.');
|
|
37
|
+
}
|
|
38
|
+
pluck() {
|
|
39
|
+
throw new Error(`SqlJsDriver.pluck() not implemented. SQL: ${this.sql}\n` +
|
|
40
|
+
'To use sql.js driver, implement SqlJsDriver according to sql.js API documentation.');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Stub adapter for sql.js Database
|
|
45
|
+
* All methods throw NotImplementedError
|
|
46
|
+
*
|
|
47
|
+
* When implementing:
|
|
48
|
+
* 1. Install sql.js: npm install sql.js
|
|
49
|
+
* 2. Import: import initSqlJs from 'sql.js'
|
|
50
|
+
* 3. Initialize async: const SQL = await initSqlJs()
|
|
51
|
+
* 4. Create database: const db = new SQL.Database()
|
|
52
|
+
* 5. Wrap sql.js Statement API to match PreparedStatement interface
|
|
53
|
+
* 6. Handle exec() for multi-statement SQL
|
|
54
|
+
* 7. Implement pragma() using PRAGMA statements
|
|
55
|
+
* 8. Wrap transactions (sql.js doesn't have explicit transaction API)
|
|
56
|
+
*/
|
|
57
|
+
export class SqlJsDriver {
|
|
58
|
+
/**
|
|
59
|
+
* Placeholder constructor
|
|
60
|
+
* Real implementation would accept sql.js Database instance
|
|
61
|
+
*/
|
|
62
|
+
constructor() {
|
|
63
|
+
// When implementing, accept sql.js Database instance as parameter
|
|
64
|
+
}
|
|
65
|
+
prepare(sql) {
|
|
66
|
+
// Stub: return throwing statement wrapper
|
|
67
|
+
return new SqlJsStatementStub(sql);
|
|
68
|
+
}
|
|
69
|
+
exec(_sql) {
|
|
70
|
+
throw new Error('SqlJsDriver.exec() not implemented.\n' +
|
|
71
|
+
'To use sql.js driver, implement SqlJsDriver according to sql.js API documentation.\n' +
|
|
72
|
+
'sql.js supports exec() for multi-statement SQL.');
|
|
73
|
+
}
|
|
74
|
+
pragma(_pragma) {
|
|
75
|
+
throw new Error('SqlJsDriver.pragma() not implemented.\n' +
|
|
76
|
+
'To use sql.js driver, implement SqlJsDriver according to sql.js API documentation.\n' +
|
|
77
|
+
'sql.js supports PRAGMA statements via exec() or run().');
|
|
78
|
+
}
|
|
79
|
+
transaction(_fn) {
|
|
80
|
+
throw new Error('SqlJsDriver.transaction() not implemented.\n' +
|
|
81
|
+
'To use sql.js driver, implement SqlJsDriver according to sql.js API documentation.\n' +
|
|
82
|
+
'sql.js transactions can be implemented using BEGIN/COMMIT/ROLLBACK statements.');
|
|
83
|
+
}
|
|
84
|
+
close() {
|
|
85
|
+
throw new Error('SqlJsDriver.close() not implemented.\n' +
|
|
86
|
+
'To use sql.js driver, implement SqlJsDriver according to sql.js API documentation.\n' +
|
|
87
|
+
'sql.js Database has a close() method to free memory.');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Stub factory function for SqlJsDriver
|
|
92
|
+
*
|
|
93
|
+
* @throws Error - Always throws, as sql.js is not implemented
|
|
94
|
+
*/
|
|
95
|
+
export function createSqlJsDriver() {
|
|
96
|
+
throw new Error('createSqlJsDriver() not implemented.\n' +
|
|
97
|
+
'To use sql.js driver:\n' +
|
|
98
|
+
'1. Install: npm install sql.js\n' +
|
|
99
|
+
'2. Initialize: const SQL = await initSqlJs()\n' +
|
|
100
|
+
'3. Create DB: const db = new SQL.Database()\n' +
|
|
101
|
+
'4. Wrap in SqlJsDriver: return new SqlJsDriver(db)\n\n' +
|
|
102
|
+
'sql.js is useful for:\n' +
|
|
103
|
+
'- Browser environments\n' +
|
|
104
|
+
'- Serverless functions\n' +
|
|
105
|
+
'- In-memory testing\n\n' +
|
|
106
|
+
'For now, use MEMORY_DB_DRIVER=better-sqlite3 (default)');
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=sqljs-driver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqljs-driver.js","sourceRoot":"","sources":["../../src/database/sqljs-driver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH;;;GAGG;AACH,MAAM,kBAAkB;IACF;IAApB,YAAoB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAG,CAAC;IAEnC,GAAG,CAAC,GAAG,OAAkB;QACvB,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,GAAG,IAAI;YACrD,oFAAoF,CACvF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,GAAG,OAAkB;QACvB,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,GAAG,IAAI;YACrD,oFAAoF,CACvF,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,GAAG,OAAkB;QACvB,MAAM,IAAI,KAAK,CACb,2CAA2C,IAAI,CAAC,GAAG,IAAI;YACrD,oFAAoF,CACvF,CAAC;IACJ,CAAC;IAED,KAAK;QACH,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,CAAC,GAAG,IAAI;YACvD,oFAAoF,CACvF,CAAC;IACJ,CAAC;CACF;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,WAAW;IACtB;;;OAGG;IACH;QACE,kEAAkE;IACpE,CAAC;IAED,OAAO,CAAc,GAAW;QAC9B,0CAA0C;QAC1C,OAAO,IAAI,kBAAkB,CAAI,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,IAAY;QACf,MAAM,IAAI,KAAK,CACb,uCAAuC;YACrC,sFAAsF;YACtF,iDAAiD,CACpD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,MAAM,IAAI,KAAK,CACb,yCAAyC;YACvC,sFAAsF;YACtF,wDAAwD,CAC3D,CAAC;IACJ,CAAC;IAED,WAAW,CAAI,GAAY;QACzB,MAAM,IAAI,KAAK,CACb,8CAA8C;YAC5C,sFAAsF;YACtF,gFAAgF,CACnF,CAAC;IACJ,CAAC;IAED,KAAK;QACH,MAAM,IAAI,KAAK,CACb,wCAAwC;YACtC,sFAAsF;YACtF,sDAAsD,CACzD,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,KAAK,CACb,wCAAwC;QACtC,yBAAyB;QACzB,kCAAkC;QAClC,gDAAgD;QAChD,+CAA+C;QAC/C,wDAAwD;QACxD,yBAAyB;QACzB,0BAA0B;QAC1B,0BAA0B;QAC1B,yBAAyB;QACzB,wDAAwD,CAC3D,CAAC;AACJ,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -16,13 +16,14 @@ import { memoryForget } from './tools/memory-forget.js';
|
|
|
16
16
|
const config = {
|
|
17
17
|
databasePath: process.env['MEMORY_DB_PATH'] || './memory.db',
|
|
18
18
|
defaultTTLDays: parseInt(process.env['DEFAULT_TTL_DAYS'] || '90'),
|
|
19
|
+
databaseDriver: process.env['MEMORY_DB_DRIVER'] || 'better-sqlite3',
|
|
19
20
|
};
|
|
20
21
|
/**
|
|
21
22
|
* Initialize MCP server
|
|
22
23
|
*/
|
|
23
24
|
const server = new Server({
|
|
24
25
|
name: '@whenmoon-afk/memory-mcp',
|
|
25
|
-
version: '2.
|
|
26
|
+
version: '2.2.0',
|
|
26
27
|
}, {
|
|
27
28
|
capabilities: {
|
|
28
29
|
tools: {},
|
|
@@ -202,6 +203,7 @@ async function main() {
|
|
|
202
203
|
// Log startup info to stderr (not stdout, which is used for MCP protocol)
|
|
203
204
|
console.error('Memory MCP v2.0 server started');
|
|
204
205
|
console.error(`Database: ${config.databasePath}`);
|
|
206
|
+
console.error(`Driver: ${config.databaseDriver}`);
|
|
205
207
|
}
|
|
206
208
|
catch (error) {
|
|
207
209
|
console.error('Failed to start server:', error);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,SAAS,EACT,QAAQ,GACT,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD;;GAEG;AACH,MAAM,MAAM,GAAG;IACb,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,aAAa;IAC5D,cAAc,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
* Full-text search implementation using SQLite FTS5
|
|
3
3
|
* Replaces vector embeddings with lightweight keyword/phrase matching
|
|
4
4
|
*/
|
|
5
|
-
import type
|
|
5
|
+
import type { DbDriver } from '../database/db-driver.js';
|
|
6
6
|
import type { MemorySearchResult, SearchOptionsInternal } from '../types/index.js';
|
|
7
7
|
/**
|
|
8
8
|
* Perform full-text search on memories using FTS5
|
|
9
9
|
* Returns: { results: MemorySearchResult[], totalCount: number }
|
|
10
10
|
*/
|
|
11
|
-
export declare function semanticSearch(db:
|
|
11
|
+
export declare function semanticSearch(db: DbDriver, options: SearchOptionsInternal): {
|
|
12
12
|
results: MemorySearchResult[];
|
|
13
13
|
totalCount: number;
|
|
14
14
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-search.d.ts","sourceRoot":"","sources":["../../src/search/semantic-search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"semantic-search.d.ts","sourceRoot":"","sources":["../../src/search/semantic-search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAEV,kBAAkB,EAClB,qBAAqB,EAKtB,MAAM,mBAAmB,CAAC;AA2B3B;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,qBAAqB,GAC7B;IAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAmDvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"semantic-search.js","sourceRoot":"","sources":["../../src/search/semantic-search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAYH,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AA0BhE;;;GAGG;AACH,MAAM,UAAU,cAAc,CAC5B,
|
|
1
|
+
{"version":3,"file":"semantic-search.js","sourceRoot":"","sources":["../../src/search/semantic-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Memory forget tool - Soft delete memories
|
|
3
3
|
*/
|
|
4
|
-
import type
|
|
4
|
+
import type { DbDriver } from '../database/db-driver.js';
|
|
5
5
|
import type { ForgetResponse } from '../types/index.js';
|
|
6
6
|
/**
|
|
7
7
|
* Forget (soft delete) a memory
|
|
8
8
|
*/
|
|
9
|
-
export declare function memoryForget(db:
|
|
9
|
+
export declare function memoryForget(db: DbDriver, id: string, reason?: string): Promise<ForgetResponse>;
|
|
10
10
|
//# sourceMappingURL=memory-forget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-forget.d.ts","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"memory-forget.d.ts","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAIxD;;GAEG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,EACZ,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,cAAc,CAAC,CAwCzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-forget.js","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,
|
|
1
|
+
{"version":3,"file":"memory-forget.js","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,EAAY,EACZ,EAAU,EACV,MAAe;IAEf,yBAAyB;IACzB,MAAM,QAAQ,GAAG,EAAE;SAChB,OAAO,CAAC,yDAAyD,CAAC;SAClE,GAAG,CAAC,EAAE,CAA+B,CAAC;IAEzC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,+BAA+B,CAAC,CAAC;IACzE,CAAC;IAED,gCAAgC;IAChC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC;IAC1B,EAAE,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEtE,2BAA2B;IAC3B,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IACxC,EAAE,CAAC,OAAO,CACR;;;;GAID,CACA,CAAC,GAAG,CACH,YAAY,EACZ,EAAE,EACF,QAAQ,EACR,WAAW,EACX,MAAM,EACN,MAAM,IAAI,yBAAyB,EACnC,IAAI,EACJ,iBAAiB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CACzC,CAAC;IAEF,MAAM,QAAQ,GAAmB;QAC/B,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,EAAE;QACb,OAAO,EAAE,6CAA6C,MAAM,IAAI,eAAe,EAAE;KAClF,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Memory recall tool - Token-aware semantic search
|
|
3
3
|
* v3.0: Dual-response pattern (index + details) for skill-like progressive loading
|
|
4
4
|
*/
|
|
5
|
-
import type
|
|
5
|
+
import type { DbDriver } from '../database/db-driver.js';
|
|
6
6
|
import type { SearchOptions, RecallResponse } from '../types/index.js';
|
|
7
7
|
/**
|
|
8
8
|
* Recall memories using semantic search with intelligent token budgeting
|
|
9
9
|
* Returns: index (all matches as summaries) + details (top matches with full content)
|
|
10
10
|
*/
|
|
11
|
-
export declare function memoryRecall(db:
|
|
11
|
+
export declare function memoryRecall(db: DbDriver, options: SearchOptions): Promise<RecallResponse>;
|
|
12
12
|
//# sourceMappingURL=memory-recall.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-recall.d.ts","sourceRoot":"","sources":["../../src/tools/memory-recall.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"memory-recall.d.ts","sourceRoot":"","sources":["../../src/tools/memory-recall.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EACV,aAAa,EAEb,cAAc,EAMf,MAAM,mBAAmB,CAAC;AAM3B;;;GAGG;AACH,wBAAsB,YAAY,CAChC,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAwGzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-recall.js","sourceRoot":"","sources":["../../src/tools/memory-recall.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAaH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9F,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,
|
|
1
|
+
{"version":3,"file":"memory-recall.js","sourceRoot":"","sources":["../../src/tools/memory-recall.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* Memory store tool - Store or update memories with auto-extraction
|
|
3
3
|
* v2.0: Merged create + update functionality with summary generation
|
|
4
4
|
*/
|
|
5
|
-
import type
|
|
5
|
+
import type { DbDriver } from '../database/db-driver.js';
|
|
6
6
|
import type { MemoryInput, StandardMemory } from '../types/index.js';
|
|
7
7
|
/**
|
|
8
8
|
* Store or update a memory
|
|
9
9
|
* If input.id is provided, updates existing memory
|
|
10
10
|
* If input.id is not provided, creates new memory
|
|
11
11
|
*/
|
|
12
|
-
export declare function memoryStore(db:
|
|
12
|
+
export declare function memoryStore(db: DbDriver, input: MemoryInput): Promise<StandardMemory>;
|
|
13
13
|
//# sourceMappingURL=memory-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/tools/memory-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,QAAQ,MAAM,
|
|
1
|
+
{"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../../src/tools/memory-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAkB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AA8CrF;;;;GAIG;AACH,wBAAsB,WAAW,CAC/B,EAAE,EAAE,QAAQ,EACZ,KAAK,EAAE,WAAW,GACjB,OAAO,CAAC,cAAc,CAAC,CASzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/tools/memory-store.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,GAChB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EACL,UAAU,EACV,GAAG,EACH,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAyBvD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,
|
|
1
|
+
{"version":3,"file":"memory-store.js","sourceRoot":"","sources":["../../src/tools/memory-store.ts"],"names":[],"mappings":"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"}
|
package/install.js
CHANGED
|
@@ -13,6 +13,25 @@ import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
|
13
13
|
const __filename = fileURLToPath(import.meta.url);
|
|
14
14
|
const __dirname = dirname(__filename);
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Get platform-specific database path
|
|
18
|
+
*/
|
|
19
|
+
function getDbPath() {
|
|
20
|
+
const plat = platform();
|
|
21
|
+
|
|
22
|
+
switch (plat) {
|
|
23
|
+
case 'darwin': // macOS
|
|
24
|
+
return join(homedir(), '.claude-memories', 'memory.db');
|
|
25
|
+
|
|
26
|
+
case 'win32': // Windows
|
|
27
|
+
return join(process.env.APPDATA || join(homedir(), 'AppData', 'Roaming'), 'claude-memories', 'memory.db');
|
|
28
|
+
|
|
29
|
+
default: // Linux and others
|
|
30
|
+
const dataHome = process.env.XDG_DATA_HOME || join(homedir(), '.local', 'share');
|
|
31
|
+
return join(dataHome, 'claude-memories', 'memory.db');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
16
35
|
/**
|
|
17
36
|
* Get Claude Desktop config path based on platform
|
|
18
37
|
*/
|
|
@@ -35,15 +54,18 @@ function getClaudeConfigPath() {
|
|
|
35
54
|
/**
|
|
36
55
|
* Get platform-specific MCP server configuration
|
|
37
56
|
*/
|
|
38
|
-
function getMcpServerConfig() {
|
|
57
|
+
function getMcpServerConfig(dbPath) {
|
|
39
58
|
// Get the absolute path to the installed package
|
|
40
|
-
|
|
41
|
-
const serverPath = join(
|
|
59
|
+
// __dirname is already the package root (e.g., .../node_modules/@whenmoon-afk/memory-mcp/)
|
|
60
|
+
const serverPath = join(__dirname, 'dist', 'index.js');
|
|
42
61
|
|
|
43
62
|
// All platforms use node directly with the server path
|
|
44
63
|
return {
|
|
45
64
|
command: 'node',
|
|
46
|
-
args: [serverPath]
|
|
65
|
+
args: [serverPath],
|
|
66
|
+
env: {
|
|
67
|
+
MEMORY_DB_PATH: dbPath
|
|
68
|
+
}
|
|
47
69
|
};
|
|
48
70
|
}
|
|
49
71
|
|
|
@@ -56,6 +78,25 @@ function install() {
|
|
|
56
78
|
const configPath = getClaudeConfigPath();
|
|
57
79
|
const configDir = dirname(configPath);
|
|
58
80
|
|
|
81
|
+
const dbPath = getDbPath();
|
|
82
|
+
const dbDir = dirname(dbPath);
|
|
83
|
+
|
|
84
|
+
// Show paths to user
|
|
85
|
+
console.log('š Paths:');
|
|
86
|
+
console.log(` Config: ${configPath}`);
|
|
87
|
+
console.log(` Database: ${dbPath}\n`);
|
|
88
|
+
|
|
89
|
+
// Ensure database directory exists
|
|
90
|
+
if (!existsSync(dbDir)) {
|
|
91
|
+
console.log(`š Creating database directory: ${dbDir}`);
|
|
92
|
+
try {
|
|
93
|
+
mkdirSync(dbDir, { recursive: true });
|
|
94
|
+
} catch (error) {
|
|
95
|
+
console.error(`ā Failed to create database directory: ${error.message}`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
59
100
|
// Ensure config directory exists
|
|
60
101
|
if (!existsSync(configDir)) {
|
|
61
102
|
console.log(`š Creating config directory: ${configDir}`);
|
|
@@ -100,7 +141,7 @@ function install() {
|
|
|
100
141
|
}
|
|
101
142
|
|
|
102
143
|
// Add or update memory server configuration
|
|
103
|
-
const serverConfig = getMcpServerConfig();
|
|
144
|
+
const serverConfig = getMcpServerConfig(dbPath);
|
|
104
145
|
const serverExists = config.mcpServers.memory !== undefined;
|
|
105
146
|
|
|
106
147
|
config.mcpServers.memory = serverConfig;
|
|
@@ -127,8 +168,9 @@ function install() {
|
|
|
127
168
|
console.log('2. The memory server will be available automatically');
|
|
128
169
|
console.log('3. Try asking Claude to "store a memory" or "recall memories about..."');
|
|
129
170
|
|
|
130
|
-
console.log('\nš Configuration
|
|
131
|
-
console.log(` ${configPath}`);
|
|
171
|
+
console.log('\nš Configuration Locations:');
|
|
172
|
+
console.log(` Claude config: ${configPath}`);
|
|
173
|
+
console.log(` Memory database: ${dbPath}`);
|
|
132
174
|
|
|
133
175
|
console.log('\n⨠Installation complete! Enjoy your persistent AI memory!\n');
|
|
134
176
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@whenmoon-afk/memory-mcp",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Brain-inspired memory for AI agents - MCP server",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -14,6 +14,7 @@
|
|
|
14
14
|
"LICENSE"
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
|
+
"start": "node dist/index.js",
|
|
17
18
|
"dev": "tsx watch src/index.ts",
|
|
18
19
|
"build": "tsc",
|
|
19
20
|
"prepare": "npm run build",
|