@aeriondyseti/vector-memory-mcp 1.0.2-dev.0 → 1.1.0-dev.2
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/dist/package.json +4 -4
- package/dist/src/config/index.d.ts +10 -0
- package/dist/src/config/index.d.ts.map +1 -1
- package/dist/src/config/index.js +13 -0
- package/dist/src/config/index.js.map +1 -1
- package/dist/src/db/conversation-history.repository.d.ts +24 -0
- package/dist/src/db/conversation-history.repository.d.ts.map +1 -0
- package/dist/src/db/conversation-history.repository.js +184 -0
- package/dist/src/db/conversation-history.repository.js.map +1 -0
- package/dist/src/db/conversation-history.schema.d.ts +10 -0
- package/dist/src/db/conversation-history.schema.d.ts.map +1 -0
- package/dist/src/db/conversation-history.schema.js +31 -0
- package/dist/src/db/conversation-history.schema.js.map +1 -0
- package/dist/src/db/lancedb-utils.d.ts +35 -0
- package/dist/src/db/lancedb-utils.d.ts.map +1 -0
- package/dist/src/db/lancedb-utils.js +77 -0
- package/dist/src/db/lancedb-utils.js.map +1 -0
- package/dist/src/db/memory.repository.d.ts +2 -12
- package/dist/src/db/memory.repository.d.ts.map +1 -1
- package/dist/src/db/memory.repository.js +13 -56
- package/dist/src/db/memory.repository.js.map +1 -1
- package/dist/src/db/schema.d.ts +4 -1
- package/dist/src/db/schema.d.ts.map +1 -1
- package/dist/src/db/schema.js +8 -4
- package/dist/src/db/schema.js.map +1 -1
- package/dist/src/index.js +8 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/handlers.d.ts +3 -0
- package/dist/src/mcp/handlers.d.ts.map +1 -1
- package/dist/src/mcp/handlers.js +149 -17
- package/dist/src/mcp/handlers.js.map +1 -1
- package/dist/src/mcp/tools.d.ts +3 -0
- package/dist/src/mcp/tools.d.ts.map +1 -1
- package/dist/src/mcp/tools.js +54 -3
- package/dist/src/mcp/tools.js.map +1 -1
- package/dist/src/services/conversation-history.service.d.ts +64 -0
- package/dist/src/services/conversation-history.service.d.ts.map +1 -0
- package/dist/src/services/conversation-history.service.js +244 -0
- package/dist/src/services/conversation-history.service.js.map +1 -0
- package/dist/src/services/memory.service.d.ts +24 -0
- package/dist/src/services/memory.service.d.ts.map +1 -1
- package/dist/src/services/memory.service.js +58 -0
- package/dist/src/services/memory.service.js.map +1 -1
- package/dist/src/services/session-parser.d.ts +59 -0
- package/dist/src/services/session-parser.d.ts.map +1 -0
- package/dist/src/services/session-parser.js +147 -0
- package/dist/src/services/session-parser.js.map +1 -0
- package/dist/src/types/conversation-history.d.ts +74 -0
- package/dist/src/types/conversation-history.d.ts.map +1 -0
- package/dist/src/types/conversation-history.js +2 -0
- package/dist/src/types/conversation-history.js.map +1 -0
- package/dist/src/types/memory.d.ts +4 -2
- package/dist/src/types/memory.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/config/index.ts +23 -0
- package/src/db/conversation-history.repository.ts +255 -0
- package/src/db/conversation-history.schema.ts +40 -0
- package/src/db/lancedb-utils.ts +97 -0
- package/src/db/memory.repository.ts +18 -67
- package/src/db/schema.ts +17 -21
- package/src/index.ts +16 -0
- package/src/mcp/handlers.ts +178 -22
- package/src/mcp/tools.ts +66 -3
- package/src/services/conversation-history.service.ts +320 -0
- package/src/services/memory.service.ts +74 -0
- package/src/services/session-parser.ts +232 -0
- package/src/types/conversation-history.ts +82 -0
- package/src/types/memory.ts +4 -3
|
@@ -1,15 +1,17 @@
|
|
|
1
|
-
import { Index, rerankers } from "@lancedb/lancedb";
|
|
2
1
|
import { TABLE_NAME, memorySchema } from "./schema.js";
|
|
2
|
+
import { arrowVectorToArray, createFtsMutex, createRerankerMutex, escapeLanceDbString } from "./lancedb-utils.js";
|
|
3
3
|
import { DELETED_TOMBSTONE, } from "../types/memory.js";
|
|
4
4
|
export class MemoryRepository {
|
|
5
5
|
db;
|
|
6
|
-
// Mutex for FTS index creation - ensures only one index creation runs at a time
|
|
7
|
-
// Once set, this promise is never cleared (FTS index persists in the database)
|
|
8
|
-
ftsIndexPromise = null;
|
|
9
6
|
// Mutex for schema migration - runs once per instance to add missing columns
|
|
10
7
|
migrationPromise = null;
|
|
8
|
+
// FTS index mutex — once created, the promise is never cleared (index persists in LanceDB)
|
|
9
|
+
ensureFtsIndex;
|
|
10
|
+
// Cached reranker — k=60 is constant, no need to recreate per search
|
|
11
|
+
getReranker = createRerankerMutex();
|
|
11
12
|
constructor(db) {
|
|
12
13
|
this.db = db;
|
|
14
|
+
this.ensureFtsIndex = createFtsMutex(() => this.getTable());
|
|
13
15
|
}
|
|
14
16
|
async getTable() {
|
|
15
17
|
const names = await this.db.tableNames();
|
|
@@ -56,55 +58,14 @@ export class MemoryRepository {
|
|
|
56
58
|
await table.addColumns(migrations);
|
|
57
59
|
}
|
|
58
60
|
}
|
|
59
|
-
/**
|
|
60
|
-
* Ensures the FTS index exists on the content column.
|
|
61
|
-
* Uses a mutex pattern to prevent concurrent index creation.
|
|
62
|
-
* The key insight: we must capture the promise BEFORE any await.
|
|
63
|
-
*/
|
|
64
|
-
ensureFtsIndex() {
|
|
65
|
-
// If there's already a pending or completed index creation, return that promise
|
|
66
|
-
if (this.ftsIndexPromise) {
|
|
67
|
-
return this.ftsIndexPromise;
|
|
68
|
-
}
|
|
69
|
-
// Synchronously set the promise BEFORE any await
|
|
70
|
-
// This is critical for proper mutex behavior in JS async code
|
|
71
|
-
this.ftsIndexPromise = this.createFtsIndexIfNeeded().catch((error) => {
|
|
72
|
-
// Reset on error so the next call can retry
|
|
73
|
-
this.ftsIndexPromise = null;
|
|
74
|
-
throw error;
|
|
75
|
-
});
|
|
76
|
-
return this.ftsIndexPromise;
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Creates the FTS index if it doesn't already exist.
|
|
80
|
-
* Gets its own table reference to ensure consistent index state.
|
|
81
|
-
*/
|
|
82
|
-
async createFtsIndexIfNeeded() {
|
|
83
|
-
const table = await this.getTable();
|
|
84
|
-
const indices = await table.listIndices();
|
|
85
|
-
const hasFtsIndex = indices.some((idx) => idx.columns.includes("content") && idx.indexType === "FTS");
|
|
86
|
-
if (!hasFtsIndex) {
|
|
87
|
-
await table.createIndex("content", {
|
|
88
|
-
config: Index.fts(),
|
|
89
|
-
});
|
|
90
|
-
// Wait for the index to be fully created and available
|
|
91
|
-
await table.waitForIndex(["content_idx"], 30);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
61
|
/**
|
|
95
62
|
* Converts a raw LanceDB row to a Memory object.
|
|
96
63
|
*/
|
|
97
64
|
rowToMemory(row) {
|
|
98
|
-
// Handle Arrow Vector type conversion
|
|
99
|
-
// LanceDB returns an Arrow Vector object which is iterable but not an array
|
|
100
|
-
const vectorData = row.vector;
|
|
101
|
-
const embedding = Array.isArray(vectorData)
|
|
102
|
-
? vectorData
|
|
103
|
-
: Array.from(vectorData);
|
|
104
65
|
return {
|
|
105
66
|
id: row.id,
|
|
106
67
|
content: row.content,
|
|
107
|
-
embedding,
|
|
68
|
+
embedding: arrowVectorToArray(row.vector),
|
|
108
69
|
metadata: JSON.parse(row.metadata),
|
|
109
70
|
createdAt: new Date(row.created_at),
|
|
110
71
|
updatedAt: new Date(row.updated_at),
|
|
@@ -135,12 +96,12 @@ export class MemoryRepository {
|
|
|
135
96
|
}
|
|
136
97
|
async upsert(memory) {
|
|
137
98
|
const table = await this.getTable();
|
|
138
|
-
const existing = await table.query().where(`id = '${memory.id}'`).limit(1).toArray();
|
|
99
|
+
const existing = await table.query().where(`id = '${escapeLanceDbString(memory.id)}'`).limit(1).toArray();
|
|
139
100
|
if (existing.length === 0) {
|
|
140
101
|
return await this.insert(memory);
|
|
141
102
|
}
|
|
142
103
|
await table.update({
|
|
143
|
-
where: `id = '${memory.id}'`,
|
|
104
|
+
where: `id = '${escapeLanceDbString(memory.id)}'`,
|
|
144
105
|
values: {
|
|
145
106
|
vector: memory.embedding,
|
|
146
107
|
content: memory.content,
|
|
@@ -156,7 +117,7 @@ export class MemoryRepository {
|
|
|
156
117
|
}
|
|
157
118
|
async findById(id) {
|
|
158
119
|
const table = await this.getTable();
|
|
159
|
-
const results = await table.query().where(`id = '${id}'`).limit(1).toArray();
|
|
120
|
+
const results = await table.query().where(`id = '${escapeLanceDbString(id)}'`).limit(1).toArray();
|
|
160
121
|
if (results.length === 0) {
|
|
161
122
|
return null;
|
|
162
123
|
}
|
|
@@ -165,13 +126,13 @@ export class MemoryRepository {
|
|
|
165
126
|
async markDeleted(id) {
|
|
166
127
|
const table = await this.getTable();
|
|
167
128
|
// Verify existence first to match previous behavior (return false if not found)
|
|
168
|
-
const existing = await table.query().where(`id = '${id}'`).limit(1).toArray();
|
|
129
|
+
const existing = await table.query().where(`id = '${escapeLanceDbString(id)}'`).limit(1).toArray();
|
|
169
130
|
if (existing.length === 0) {
|
|
170
131
|
return false;
|
|
171
132
|
}
|
|
172
133
|
const now = Date.now();
|
|
173
134
|
await table.update({
|
|
174
|
-
where: `id = '${id}'`,
|
|
135
|
+
where: `id = '${escapeLanceDbString(id)}'`,
|
|
175
136
|
values: {
|
|
176
137
|
superseded_by: DELETED_TOMBSTONE,
|
|
177
138
|
updated_at: now,
|
|
@@ -189,13 +150,9 @@ export class MemoryRepository {
|
|
|
189
150
|
* @returns Array of HybridRow containing full Memory data plus RRF score
|
|
190
151
|
*/
|
|
191
152
|
async findHybrid(embedding, query, limit) {
|
|
192
|
-
// Ensure FTS index exists (with mutex to prevent concurrent creation)
|
|
193
|
-
// This must happen BEFORE getTable to ensure proper mutex behavior
|
|
194
153
|
await this.ensureFtsIndex();
|
|
195
154
|
const table = await this.getTable();
|
|
196
|
-
|
|
197
|
-
const reranker = await rerankers.RRFReranker.create(60);
|
|
198
|
-
// Perform hybrid search: combine vector search and full-text search
|
|
155
|
+
const reranker = await this.getReranker();
|
|
199
156
|
const results = await table
|
|
200
157
|
.query()
|
|
201
158
|
.nearestTo(embedding)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.repository.js","sourceRoot":"","sources":["../../../src/db/memory.repository.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory.repository.js","sourceRoot":"","sources":["../../../src/db/memory.repository.ts"],"names":[],"mappings":"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"}
|
package/dist/src/db/schema.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import { Schema } from "apache-arrow";
|
|
1
|
+
import { Schema, Field, FixedSizeList, Float32, Timestamp } from "apache-arrow";
|
|
2
|
+
export declare const EMBEDDING_DIMENSION = 384;
|
|
3
|
+
export declare const vectorField: () => Field<FixedSizeList<Float32>>;
|
|
4
|
+
export declare const timestampField: (name: string, nullable?: boolean) => Field<Timestamp<import("apache-arrow").Type.Timestamp | import("apache-arrow").Type.TimestampSecond | import("apache-arrow").Type.TimestampMillisecond | import("apache-arrow").Type.TimestampMicrosecond | import("apache-arrow").Type.TimestampNanosecond>>;
|
|
2
5
|
export declare const TABLE_NAME = "memories";
|
|
3
6
|
export declare const memorySchema: Schema<any>;
|
|
4
7
|
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,aAAa,EACb,OAAO,EAEP,SAAS,EAGV,MAAM,cAAc,CAAC;AAGtB,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAEvC,eAAO,MAAM,WAAW,qCAKrB,CAAC;AAEJ,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,kBAAgB,kQACG,CAAC;AAEjE,eAAO,MAAM,UAAU,aAAa,CAAC;AAErC,eAAO,MAAM,YAAY,aAWvB,CAAC"}
|
package/dist/src/db/schema.js
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { Schema, Field, FixedSizeList, Float32, Utf8, Timestamp, TimeUnit, Int32, } from "apache-arrow";
|
|
2
|
+
// Shared field helpers — used by both memory and conversation history schemas
|
|
3
|
+
export const EMBEDDING_DIMENSION = 384;
|
|
4
|
+
export const vectorField = () => new Field("vector", new FixedSizeList(EMBEDDING_DIMENSION, new Field("item", new Float32())), false);
|
|
5
|
+
export const timestampField = (name, nullable = false) => new Field(name, new Timestamp(TimeUnit.MILLISECOND), nullable);
|
|
2
6
|
export const TABLE_NAME = "memories";
|
|
3
7
|
export const memorySchema = new Schema([
|
|
4
8
|
new Field("id", new Utf8(), false),
|
|
5
|
-
|
|
9
|
+
vectorField(),
|
|
6
10
|
new Field("content", new Utf8(), false),
|
|
7
11
|
new Field("metadata", new Utf8(), false), // JSON string
|
|
8
|
-
|
|
9
|
-
|
|
12
|
+
timestampField("created_at"),
|
|
13
|
+
timestampField("updated_at"),
|
|
10
14
|
new Field("superseded_by", new Utf8(), true), // Nullable
|
|
11
15
|
new Field("usefulness", new Float32(), false),
|
|
12
16
|
new Field("access_count", new Int32(), false),
|
|
13
|
-
|
|
17
|
+
timestampField("last_accessed", true),
|
|
14
18
|
]);
|
|
15
19
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,aAAa,EACb,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/db/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,KAAK,EACL,aAAa,EACb,OAAO,EACP,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,KAAK,GACN,MAAM,cAAc,CAAC;AAEtB,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAEvC,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAC9B,IAAI,KAAK,CACP,QAAQ,EACR,IAAI,aAAa,CAAC,mBAAmB,EAAE,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC,CAAC,EACxE,KAAK,CACN,CAAC;AAEJ,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,IAAY,EAAE,QAAQ,GAAG,KAAK,EAAE,EAAE,CAC/D,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,QAAQ,CAAC,CAAC;AAEjE,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;AAErC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,MAAM,CAAC;IACrC,IAAI,KAAK,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;IAClC,WAAW,EAAE;IACb,IAAI,KAAK,CAAC,SAAS,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC;IACvC,IAAI,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,cAAc;IACxD,cAAc,CAAC,YAAY,CAAC;IAC5B,cAAc,CAAC,YAAY,CAAC;IAC5B,IAAI,KAAK,CAAC,eAAe,EAAE,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,WAAW;IACzD,IAAI,KAAK,CAAC,YAAY,EAAE,IAAI,OAAO,EAAE,EAAE,KAAK,CAAC;IAC7C,IAAI,KAAK,CAAC,cAAc,EAAE,IAAI,KAAK,EAAE,EAAE,KAAK,CAAC;IAC7C,cAAc,CAAC,eAAe,EAAE,IAAI,CAAC;CACtC,CAAC,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -4,6 +4,8 @@ import { connectToDatabase } from "./db/connection.js";
|
|
|
4
4
|
import { MemoryRepository } from "./db/memory.repository.js";
|
|
5
5
|
import { EmbeddingsService } from "./services/embeddings.service.js";
|
|
6
6
|
import { MemoryService } from "./services/memory.service.js";
|
|
7
|
+
import { ConversationHistoryRepository } from "./db/conversation-history.repository.js";
|
|
8
|
+
import { ConversationHistoryService } from "./services/conversation-history.service.js";
|
|
7
9
|
import { startServer } from "./mcp/server.js";
|
|
8
10
|
import { startHttpServer } from "./http/server.js";
|
|
9
11
|
async function main() {
|
|
@@ -23,6 +25,12 @@ async function main() {
|
|
|
23
25
|
const repository = new MemoryRepository(db);
|
|
24
26
|
const embeddings = new EmbeddingsService(config.embeddingModel, config.embeddingDimension);
|
|
25
27
|
const memoryService = new MemoryService(repository, embeddings);
|
|
28
|
+
// Wire conversation history if enabled
|
|
29
|
+
if (config.conversationHistory.enabled) {
|
|
30
|
+
const historyRepo = new ConversationHistoryRepository(db);
|
|
31
|
+
const historyService = new ConversationHistoryService(historyRepo, embeddings, config.conversationHistory.sessionPath);
|
|
32
|
+
memoryService.setConversationHistory(historyService, config.conversationHistory.historyWeight);
|
|
33
|
+
}
|
|
26
34
|
// Track cleanup functions
|
|
27
35
|
let httpStop = null;
|
|
28
36
|
// Graceful shutdown handler
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,5 +8,8 @@ export declare function handleGetMemories(args: Record<string, unknown> | undefi
|
|
|
8
8
|
export declare function handleReportMemoryUsefulness(args: Record<string, unknown> | undefined, service: MemoryService): Promise<CallToolResult>;
|
|
9
9
|
export declare function handleStoreCheckpoint(args: Record<string, unknown> | undefined, service: MemoryService): Promise<CallToolResult>;
|
|
10
10
|
export declare function handleGetCheckpoint(_args: Record<string, unknown> | undefined, service: MemoryService): Promise<CallToolResult>;
|
|
11
|
+
export declare function handleIndexConversations(args: Record<string, unknown> | undefined, service: MemoryService): Promise<CallToolResult>;
|
|
12
|
+
export declare function handleListIndexedSessions(_args: Record<string, unknown> | undefined, service: MemoryService): Promise<CallToolResult>;
|
|
13
|
+
export declare function handleReindexSession(args: Record<string, unknown> | undefined, service: MemoryService): Promise<CallToolResult>;
|
|
11
14
|
export declare function handleToolCall(name: string, args: Record<string, unknown> | undefined, service: MemoryService): Promise<CallToolResult>;
|
|
12
15
|
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/mcp/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAwBnE,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CA4BzB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAmBzB;AAGD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAgCzB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAqEzB;AA+CD,wBAAsB,iBAAiB,CACrC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAYzB;AAED,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAqBzB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAgBzB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC1C,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CA6BzB;AAED,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAazB;AAED,wBAAsB,yBAAyB,CAC7C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC1C,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAsBzB;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CAazB;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,cAAc,CAAC,CA8BzB"}
|
package/dist/src/mcp/handlers.js
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guard: returns the ConversationHistoryService or an error CallToolResult.
|
|
3
|
+
*/
|
|
4
|
+
function requireHistoryService(service) {
|
|
5
|
+
const historyService = service.getConversationHistory();
|
|
6
|
+
if (!historyService) {
|
|
7
|
+
return {
|
|
8
|
+
content: [{
|
|
9
|
+
type: "text",
|
|
10
|
+
text: "Conversation history indexing is not enabled. Set conversationHistory.enabled = true in config.",
|
|
11
|
+
}],
|
|
12
|
+
isError: true,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
return historyService;
|
|
16
|
+
}
|
|
1
17
|
export async function handleStoreMemories(args, service) {
|
|
2
18
|
const memories = args?.memories;
|
|
3
19
|
const ids = [];
|
|
@@ -60,9 +76,47 @@ export async function handleUpdateMemories(args, service) {
|
|
|
60
76
|
export async function handleSearchMemories(args, service) {
|
|
61
77
|
const query = args?.query;
|
|
62
78
|
const intent = args?.intent ?? "fact_check";
|
|
63
|
-
const _reasonForSearch = args?.reason_for_search; // Logged but not used in logic
|
|
64
79
|
const limit = args?.limit ?? 10;
|
|
65
80
|
const includeDeleted = args?.include_deleted ?? false;
|
|
81
|
+
const includeHistory = args?.include_history ?? false;
|
|
82
|
+
const historyOnly = args?.history_only ?? false;
|
|
83
|
+
if (includeHistory && historyOnly) {
|
|
84
|
+
return {
|
|
85
|
+
content: [{
|
|
86
|
+
type: "text",
|
|
87
|
+
text: "Cannot set both include_history and history_only to true. Use history_only for conversation history only, or include_history to merge with memories.",
|
|
88
|
+
}],
|
|
89
|
+
isError: true,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
// History-only: search only conversation history via the history service
|
|
93
|
+
if (historyOnly) {
|
|
94
|
+
const result = requireHistoryService(service);
|
|
95
|
+
if ("content" in result)
|
|
96
|
+
return result;
|
|
97
|
+
const historyResults = await result.search(query, limit);
|
|
98
|
+
if (historyResults.length === 0) {
|
|
99
|
+
return {
|
|
100
|
+
content: [{ type: "text", text: "No conversation history found matching your query." }],
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
content: [{ type: "text", text: historyResults.map((r) => formatSearchResult(r)).join("\n\n---\n\n") }],
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
// Unified search: merge memories + history
|
|
108
|
+
if (includeHistory) {
|
|
109
|
+
const results = await service.searchUnified(query, intent, limit, includeDeleted);
|
|
110
|
+
if (results.length === 0) {
|
|
111
|
+
return {
|
|
112
|
+
content: [{ type: "text", text: "No results found matching your query." }],
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
content: [{ type: "text", text: results.map((r) => formatSearchResult(r, includeDeleted)).join("\n\n---\n\n") }],
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// Default: memory-only search (original behavior)
|
|
66
120
|
const memories = await service.search(query, intent, limit, includeDeleted);
|
|
67
121
|
if (memories.length === 0) {
|
|
68
122
|
return {
|
|
@@ -83,27 +137,51 @@ export async function handleSearchMemories(args, service) {
|
|
|
83
137
|
content: [{ type: "text", text: results.join("\n\n---\n\n") }],
|
|
84
138
|
};
|
|
85
139
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
140
|
+
function formatMemoryDetail(memoryId, memory) {
|
|
141
|
+
if (!memory) {
|
|
142
|
+
return `Memory ${memoryId} not found`;
|
|
143
|
+
}
|
|
144
|
+
let result = `ID: ${memory.id}\nContent: ${memory.content}`;
|
|
145
|
+
if (Object.keys(memory.metadata).length > 0) {
|
|
146
|
+
result += `\nMetadata: ${JSON.stringify(memory.metadata)}`;
|
|
147
|
+
}
|
|
148
|
+
result += `\nCreated: ${memory.createdAt.toISOString()}`;
|
|
149
|
+
result += `\nUpdated: ${memory.updatedAt.toISOString()}`;
|
|
150
|
+
if (memory.supersededBy) {
|
|
151
|
+
result += `\nSuperseded by: ${memory.supersededBy}`;
|
|
152
|
+
}
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Format a unified SearchResult (memory or history) for display.
|
|
157
|
+
* TODO: The default memory-only search path in handleSearchMemories formats results inline
|
|
158
|
+
* with similar logic but without the "Source:" label. Consolidating would add "Source: memory"
|
|
159
|
+
* to existing output, which may break consumers that parse it. (#5)
|
|
160
|
+
*/
|
|
161
|
+
function formatSearchResult(result, includeDeleted = false) {
|
|
162
|
+
if (result.source === "memory") {
|
|
163
|
+
let text = `ID: ${result.id}\nSource: memory\nContent: ${result.content}`;
|
|
164
|
+
if (Object.keys(result.metadata).length > 0) {
|
|
165
|
+
text += `\nMetadata: ${JSON.stringify(result.metadata)}`;
|
|
95
166
|
}
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
if (memory.supersededBy) {
|
|
99
|
-
result += `\nSuperseded by: ${memory.supersededBy}`;
|
|
167
|
+
if (includeDeleted && result.supersededBy) {
|
|
168
|
+
text += `\n[DELETED]`;
|
|
100
169
|
}
|
|
101
|
-
return
|
|
102
|
-
}
|
|
170
|
+
return text;
|
|
171
|
+
}
|
|
172
|
+
// conversation_history
|
|
173
|
+
let text = `ID: ${result.id}\nSource: conversation_history\nSession: ${result.sessionId}\nRole: ${result.role}\nTimestamp: ${result.timestamp.toISOString()}\nContent: ${result.content}`;
|
|
174
|
+
if (Object.keys(result.metadata).length > 0) {
|
|
175
|
+
text += `\nMetadata: ${JSON.stringify(result.metadata)}`;
|
|
176
|
+
}
|
|
177
|
+
return text;
|
|
178
|
+
}
|
|
179
|
+
export async function handleGetMemories(args, service) {
|
|
180
|
+
const ids = args?.ids;
|
|
103
181
|
const blocks = [];
|
|
104
182
|
for (const id of ids) {
|
|
105
183
|
const memory = await service.get(id);
|
|
106
|
-
blocks.push(
|
|
184
|
+
blocks.push(formatMemoryDetail(id, memory));
|
|
107
185
|
}
|
|
108
186
|
return {
|
|
109
187
|
content: [{ type: "text", text: blocks.join("\n\n---\n\n") }],
|
|
@@ -170,6 +248,54 @@ export async function handleGetCheckpoint(_args, service) {
|
|
|
170
248
|
content: [{ type: "text", text: checkpoint.content + memoriesSection }],
|
|
171
249
|
};
|
|
172
250
|
}
|
|
251
|
+
export async function handleIndexConversations(args, service) {
|
|
252
|
+
const result = requireHistoryService(service);
|
|
253
|
+
if ("content" in result)
|
|
254
|
+
return result;
|
|
255
|
+
const path = args?.path;
|
|
256
|
+
const summary = await result.indexConversations(path);
|
|
257
|
+
return {
|
|
258
|
+
content: [{
|
|
259
|
+
type: "text",
|
|
260
|
+
text: `Indexing complete.\n- Sessions discovered: ${summary.sessionsDiscovered}\n- Sessions indexed: ${summary.sessionsIndexed}\n- Sessions skipped (unchanged): ${summary.sessionsSkipped}\n- Messages indexed: ${summary.messagesIndexed}`,
|
|
261
|
+
}],
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
export async function handleListIndexedSessions(_args, service) {
|
|
265
|
+
const result = requireHistoryService(service);
|
|
266
|
+
if ("content" in result)
|
|
267
|
+
return result;
|
|
268
|
+
const sessions = await result.listIndexedSessions();
|
|
269
|
+
if (sessions.length === 0) {
|
|
270
|
+
return {
|
|
271
|
+
content: [{ type: "text", text: "No indexed sessions found. Run index_conversations first." }],
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
const lines = sessions.map((s) => {
|
|
275
|
+
let line = `Session: ${s.sessionId}\n Messages: ${s.messageCount}\n First: ${s.firstMessageAt.toISOString()}\n Last: ${s.lastMessageAt.toISOString()}\n Indexed: ${s.indexedAt.toISOString()}`;
|
|
276
|
+
if (s.project)
|
|
277
|
+
line += `\n Project: ${s.project}`;
|
|
278
|
+
if (s.gitBranch)
|
|
279
|
+
line += `\n Branch: ${s.gitBranch}`;
|
|
280
|
+
return line;
|
|
281
|
+
});
|
|
282
|
+
return {
|
|
283
|
+
content: [{ type: "text", text: `${sessions.length} indexed session(s):\n\n${lines.join("\n\n")}` }],
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
export async function handleReindexSession(args, service) {
|
|
287
|
+
const result = requireHistoryService(service);
|
|
288
|
+
if ("content" in result)
|
|
289
|
+
return result;
|
|
290
|
+
const sessionId = args?.session_id;
|
|
291
|
+
const summary = await result.reindexSession(sessionId);
|
|
292
|
+
return {
|
|
293
|
+
content: [{
|
|
294
|
+
type: "text",
|
|
295
|
+
text: `Reindex complete for session ${sessionId}.\n- Messages indexed: ${summary.messagesIndexed}`,
|
|
296
|
+
}],
|
|
297
|
+
};
|
|
298
|
+
}
|
|
173
299
|
export async function handleToolCall(name, args, service) {
|
|
174
300
|
switch (name) {
|
|
175
301
|
case "store_memories":
|
|
@@ -188,6 +314,12 @@ export async function handleToolCall(name, args, service) {
|
|
|
188
314
|
return handleStoreCheckpoint(args, service);
|
|
189
315
|
case "get_checkpoint":
|
|
190
316
|
return handleGetCheckpoint(args, service);
|
|
317
|
+
case "index_conversations":
|
|
318
|
+
return handleIndexConversations(args, service);
|
|
319
|
+
case "list_indexed_sessions":
|
|
320
|
+
return handleListIndexedSessions(args, service);
|
|
321
|
+
case "reindex_session":
|
|
322
|
+
return handleReindexSession(args, service);
|
|
191
323
|
default:
|
|
192
324
|
return {
|
|
193
325
|
content: [{ type: "text", text: `Unknown tool: ${name}` }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/mcp/handlers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/mcp/handlers.ts"],"names":[],"mappings":"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"}
|
package/dist/src/mcp/tools.d.ts
CHANGED
|
@@ -6,5 +6,8 @@ export declare const getMemoriesTool: Tool;
|
|
|
6
6
|
export declare const reportMemoryUsefulnessTool: Tool;
|
|
7
7
|
export declare const storeCheckpointTool: Tool;
|
|
8
8
|
export declare const getCheckpointTool: Tool;
|
|
9
|
+
export declare const indexConversationsTool: Tool;
|
|
10
|
+
export declare const listIndexedSessionsTool: Tool;
|
|
11
|
+
export declare const reindexSessionTool: Tool;
|
|
9
12
|
export declare const tools: Tool[];
|
|
10
13
|
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,iBAAiB,EAAE,IAsD/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAkBhC,CAAC;AA+CF,eAAO,MAAM,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE/D,eAAO,MAAM,iBAAiB,EAAE,IAsD/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAkBhC,CAAC;AA+CF,eAAO,MAAM,kBAAkB,EAAE,IA+DhC,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,IAe7B,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,IAiBxC,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,IAoDjC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,IAQ/B,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,IAgBpC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,IASrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,IAehC,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,IAAI,EAYvB,CAAC"}
|
package/dist/src/mcp/tools.js
CHANGED
|
@@ -52,7 +52,6 @@ For long content (>1000 chars), provide embedding_text with a searchable summary
|
|
|
52
52
|
required: ["memories"],
|
|
53
53
|
},
|
|
54
54
|
};
|
|
55
|
-
;
|
|
56
55
|
export const deleteMemoriesTool = {
|
|
57
56
|
name: "delete_memories",
|
|
58
57
|
description: "Remove memories that are no longer needed—outdated info, superseded decisions, or incorrect content. " +
|
|
@@ -71,7 +70,6 @@ export const deleteMemoriesTool = {
|
|
|
71
70
|
required: ["ids"],
|
|
72
71
|
},
|
|
73
72
|
};
|
|
74
|
-
;
|
|
75
73
|
const updateMemoriesTool = {
|
|
76
74
|
name: "update_memories",
|
|
77
75
|
description: `Update existing memories in place. Prefer over delete+create when updating the same conceptual item.
|
|
@@ -160,6 +158,18 @@ When in doubt, search. Missing context is costlier than an extra query.`,
|
|
|
160
158
|
description: "Include soft-deleted memories in results (default: false). Useful for recovering prior information.",
|
|
161
159
|
default: false,
|
|
162
160
|
},
|
|
161
|
+
include_history: {
|
|
162
|
+
type: "boolean",
|
|
163
|
+
description: "Include conversation history results alongside memories (default: false). " +
|
|
164
|
+
"Requires conversation history indexing to be enabled. History results are weighted lower than explicit memories.",
|
|
165
|
+
default: false,
|
|
166
|
+
},
|
|
167
|
+
history_only: {
|
|
168
|
+
type: "boolean",
|
|
169
|
+
description: "Search only conversation history, excluding explicit memories (default: false). " +
|
|
170
|
+
"Requires conversation history indexing to be enabled.",
|
|
171
|
+
default: false,
|
|
172
|
+
},
|
|
163
173
|
},
|
|
164
174
|
required: ["query", "intent", "reason_for_search"],
|
|
165
175
|
},
|
|
@@ -179,7 +189,6 @@ export const getMemoriesTool = {
|
|
|
179
189
|
required: ["ids"],
|
|
180
190
|
},
|
|
181
191
|
};
|
|
182
|
-
;
|
|
183
192
|
export const reportMemoryUsefulnessTool = {
|
|
184
193
|
name: "report_memory_usefulness",
|
|
185
194
|
description: "Report whether a memory was useful or not. This helps the system learn which memories are valuable.",
|
|
@@ -259,6 +268,45 @@ export const getCheckpointTool = {
|
|
|
259
268
|
properties: {},
|
|
260
269
|
},
|
|
261
270
|
};
|
|
271
|
+
export const indexConversationsTool = {
|
|
272
|
+
name: "index_conversations",
|
|
273
|
+
description: "Index Claude Code session logs for searchable conversation history. " +
|
|
274
|
+
"Scans for JSONL session files, detects new/changed sessions, and indexes text messages. " +
|
|
275
|
+
"Skips unchanged files. Run periodically or after significant work sessions.",
|
|
276
|
+
inputSchema: {
|
|
277
|
+
type: "object",
|
|
278
|
+
properties: {
|
|
279
|
+
path: {
|
|
280
|
+
type: "string",
|
|
281
|
+
description: "Directory containing session JSONL files. If omitted, auto-detects the Claude Code sessions directory.",
|
|
282
|
+
},
|
|
283
|
+
},
|
|
284
|
+
},
|
|
285
|
+
};
|
|
286
|
+
export const listIndexedSessionsTool = {
|
|
287
|
+
name: "list_indexed_sessions",
|
|
288
|
+
description: "List all conversation sessions that have been indexed. " +
|
|
289
|
+
"Shows session ID, message count, time range, and associated project/branch.",
|
|
290
|
+
inputSchema: {
|
|
291
|
+
type: "object",
|
|
292
|
+
properties: {},
|
|
293
|
+
},
|
|
294
|
+
};
|
|
295
|
+
export const reindexSessionTool = {
|
|
296
|
+
name: "reindex_session",
|
|
297
|
+
description: "Force a full re-index of a specific session. Deletes all existing entries for the session and re-parses from scratch. " +
|
|
298
|
+
"Use when session data appears corrupted or after parser improvements.",
|
|
299
|
+
inputSchema: {
|
|
300
|
+
type: "object",
|
|
301
|
+
properties: {
|
|
302
|
+
session_id: {
|
|
303
|
+
type: "string",
|
|
304
|
+
description: "The session ID to reindex.",
|
|
305
|
+
},
|
|
306
|
+
},
|
|
307
|
+
required: ["session_id"],
|
|
308
|
+
},
|
|
309
|
+
};
|
|
262
310
|
export const tools = [
|
|
263
311
|
storeMemoriesTool,
|
|
264
312
|
updateMemoriesTool,
|
|
@@ -268,5 +316,8 @@ export const tools = [
|
|
|
268
316
|
reportMemoryUsefulnessTool,
|
|
269
317
|
storeCheckpointTool,
|
|
270
318
|
getCheckpointTool,
|
|
319
|
+
indexConversationsTool,
|
|
320
|
+
listIndexedSessionsTool,
|
|
321
|
+
reindexSessionTool,
|
|
271
322
|
];
|
|
272
323
|
//# sourceMappingURL=tools.js.map
|