@memextend/cursor 0.1.9 → 0.3.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/dist/cli/capture.cjs +128 -76
- package/dist/cli/capture.js +4 -4
- package/dist/cli/capture.js.map +1 -1
- package/dist/cli/index.cjs +68 -28
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +73 -33
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/inject.cjs +133 -81
- package/dist/cli/inject.js +4 -4
- package/dist/cli/inject.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/mcp/server.cjs +142 -90
- package/dist/mcp/server.js +13 -13
- package/dist/mcp/server.js.map +1 -1
- package/package.json +2 -3
- package/scripts/build-cli.js +1 -1
- package/scripts/build-mcp.js +1 -1
- package/.cursorrules +0 -48
package/dist/mcp/server.cjs
CHANGED
|
@@ -14087,116 +14087,168 @@ var SQLiteStorage = class {
|
|
|
14087
14087
|
}
|
|
14088
14088
|
};
|
|
14089
14089
|
|
|
14090
|
-
// ../../core/dist/storage/
|
|
14091
|
-
var
|
|
14092
|
-
|
|
14090
|
+
// ../../core/dist/storage/sqlite-vec.js
|
|
14091
|
+
var import_better_sqlite32 = __toESM(require("better-sqlite3"), 1);
|
|
14092
|
+
|
|
14093
|
+
// ../../../node_modules/sqlite-vec/index.mjs
|
|
14094
|
+
var import_node_path = require("node:path");
|
|
14095
|
+
var import_node_url = require("node:url");
|
|
14096
|
+
var import_node_process2 = require("node:process");
|
|
14097
|
+
var import_node_fs = require("node:fs");
|
|
14098
|
+
var import_meta = {};
|
|
14099
|
+
var BASE_PACKAGE_NAME = "sqlite-vec";
|
|
14100
|
+
var ENTRYPOINT_BASE_NAME = "vec0";
|
|
14101
|
+
var supportedPlatforms = [["macos", "aarch64"], ["macos", "x86_64"], ["windows", "x86_64"], ["linux", "x86_64"], ["linux", "aarch64"]];
|
|
14102
|
+
var invalidPlatformErrorMessage = `Unsupported platform for ${BASE_PACKAGE_NAME}, on a ${import_node_process2.platform}-${import_node_process2.arch} machine. Supported platforms are (${supportedPlatforms.map(([p, a]) => `${p}-${a}`).join(",")}). Consult the ${BASE_PACKAGE_NAME} NPM package README for details.`;
|
|
14103
|
+
var extensionNotFoundErrorMessage = (packageName) => `Loadble extension for ${BASE_PACKAGE_NAME} not found. Was the ${packageName} package installed?`;
|
|
14104
|
+
function validPlatform(platform2, arch2) {
|
|
14105
|
+
return supportedPlatforms.find(([p, a]) => platform2 == p && arch2 === a) !== null;
|
|
14106
|
+
}
|
|
14107
|
+
function extensionSuffix(platform2) {
|
|
14108
|
+
if (platform2 === "win32")
|
|
14109
|
+
return "dll";
|
|
14110
|
+
if (platform2 === "darwin")
|
|
14111
|
+
return "dylib";
|
|
14112
|
+
return "so";
|
|
14113
|
+
}
|
|
14114
|
+
function platformPackageName(platform2, arch2) {
|
|
14115
|
+
const os = platform2 === "win32" ? "windows" : platform2;
|
|
14116
|
+
return `${BASE_PACKAGE_NAME}-${os}-${arch2}`;
|
|
14117
|
+
}
|
|
14118
|
+
function getLoadablePath() {
|
|
14119
|
+
if (!validPlatform(import_node_process2.platform, import_node_process2.arch)) {
|
|
14120
|
+
throw new Error(
|
|
14121
|
+
invalidPlatformErrorMessage
|
|
14122
|
+
);
|
|
14123
|
+
}
|
|
14124
|
+
const packageName = platformPackageName(import_node_process2.platform, import_node_process2.arch);
|
|
14125
|
+
const loadablePath = (0, import_node_path.join)(
|
|
14126
|
+
(0, import_node_url.fileURLToPath)(new URL((0, import_node_path.join)("."), import_meta.url)),
|
|
14127
|
+
"..",
|
|
14128
|
+
packageName,
|
|
14129
|
+
`${ENTRYPOINT_BASE_NAME}.${extensionSuffix(import_node_process2.platform)}`
|
|
14130
|
+
);
|
|
14131
|
+
if (!(0, import_node_fs.statSync)(loadablePath, { throwIfNoEntry: false })) {
|
|
14132
|
+
throw new Error(extensionNotFoundErrorMessage(packageName));
|
|
14133
|
+
}
|
|
14134
|
+
return loadablePath;
|
|
14135
|
+
}
|
|
14136
|
+
function load(db) {
|
|
14137
|
+
db.loadExtension(getLoadablePath());
|
|
14138
|
+
}
|
|
14139
|
+
|
|
14140
|
+
// ../../core/dist/storage/sqlite-vec.js
|
|
14141
|
+
var SQLiteVecStorage = class _SQLiteVecStorage {
|
|
14093
14142
|
db;
|
|
14094
|
-
|
|
14095
|
-
tableName = "memories";
|
|
14143
|
+
tableName = "memory_vectors";
|
|
14096
14144
|
dimensions = 384;
|
|
14097
14145
|
constructor(db) {
|
|
14098
14146
|
this.db = db;
|
|
14099
14147
|
}
|
|
14100
14148
|
static async create(dbPath) {
|
|
14101
|
-
|
|
14102
|
-
|
|
14103
|
-
|
|
14149
|
+
let actualPath = dbPath;
|
|
14150
|
+
if (dbPath.endsWith("vectors") || dbPath.endsWith("vectors/")) {
|
|
14151
|
+
actualPath = dbPath.replace(/\/?$/, ".db");
|
|
14152
|
+
}
|
|
14153
|
+
const db = new import_better_sqlite32.default(actualPath);
|
|
14154
|
+
load(db);
|
|
14155
|
+
const storage = new _SQLiteVecStorage(db);
|
|
14156
|
+
storage.initialize();
|
|
14104
14157
|
return storage;
|
|
14105
14158
|
}
|
|
14106
|
-
|
|
14107
|
-
|
|
14108
|
-
|
|
14109
|
-
|
|
14110
|
-
|
|
14159
|
+
initialize() {
|
|
14160
|
+
this.db.exec(`
|
|
14161
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS ${this.tableName} USING vec0(
|
|
14162
|
+
id TEXT PRIMARY KEY,
|
|
14163
|
+
vector FLOAT[${this.dimensions}]
|
|
14164
|
+
)
|
|
14165
|
+
`);
|
|
14111
14166
|
}
|
|
14112
14167
|
async insertVector(id, vector) {
|
|
14113
14168
|
if (vector.length !== this.dimensions) {
|
|
14114
14169
|
throw new Error(`Vector must have ${this.dimensions} dimensions, got ${vector.length}`);
|
|
14115
14170
|
}
|
|
14116
|
-
const
|
|
14117
|
-
|
|
14118
|
-
|
|
14119
|
-
|
|
14120
|
-
|
|
14121
|
-
|
|
14171
|
+
const float32 = new Float32Array(vector);
|
|
14172
|
+
const vectorBuffer = Buffer.from(float32.buffer);
|
|
14173
|
+
const stmt = this.db.prepare(`
|
|
14174
|
+
INSERT OR REPLACE INTO ${this.tableName} (id, vector)
|
|
14175
|
+
VALUES (?, ?)
|
|
14176
|
+
`);
|
|
14177
|
+
stmt.run(id, vectorBuffer);
|
|
14122
14178
|
}
|
|
14123
14179
|
async insertVectors(items) {
|
|
14124
|
-
|
|
14125
|
-
|
|
14126
|
-
|
|
14180
|
+
const stmt = this.db.prepare(`
|
|
14181
|
+
INSERT OR REPLACE INTO ${this.tableName} (id, vector)
|
|
14182
|
+
VALUES (?, ?)
|
|
14183
|
+
`);
|
|
14184
|
+
const insertMany = this.db.transaction((items2) => {
|
|
14185
|
+
for (const item of items2) {
|
|
14186
|
+
if (item.vector.length !== this.dimensions) {
|
|
14187
|
+
throw new Error(`Vector must have ${this.dimensions} dimensions, got ${item.vector.length}`);
|
|
14188
|
+
}
|
|
14189
|
+
const float32 = new Float32Array(item.vector);
|
|
14190
|
+
const vectorBuffer = Buffer.from(float32.buffer);
|
|
14191
|
+
stmt.run(item.id, vectorBuffer);
|
|
14127
14192
|
}
|
|
14128
|
-
}
|
|
14129
|
-
|
|
14130
|
-
this.table = await this.db.createTable(this.tableName, items);
|
|
14131
|
-
} else {
|
|
14132
|
-
await this.table.add(items);
|
|
14133
|
-
}
|
|
14193
|
+
});
|
|
14194
|
+
insertMany(items);
|
|
14134
14195
|
}
|
|
14135
14196
|
async search(vector, limit = 10) {
|
|
14136
|
-
if (
|
|
14137
|
-
|
|
14197
|
+
if (vector.length !== this.dimensions) {
|
|
14198
|
+
throw new Error(`Query vector must have ${this.dimensions} dimensions, got ${vector.length}`);
|
|
14138
14199
|
}
|
|
14139
14200
|
const effectiveLimit = limit > 0 ? limit : 100;
|
|
14140
|
-
const
|
|
14141
|
-
|
|
14201
|
+
const float32 = new Float32Array(vector);
|
|
14202
|
+
const vectorBuffer = Buffer.from(float32.buffer);
|
|
14203
|
+
const stmt = this.db.prepare(`
|
|
14204
|
+
SELECT id, distance
|
|
14205
|
+
FROM ${this.tableName}
|
|
14206
|
+
WHERE vector MATCH ?
|
|
14207
|
+
ORDER BY distance
|
|
14208
|
+
LIMIT ?
|
|
14209
|
+
`);
|
|
14210
|
+
const rows = stmt.all(vectorBuffer, effectiveLimit);
|
|
14211
|
+
return rows.map((row) => ({
|
|
14142
14212
|
id: row.id,
|
|
14143
|
-
score: 1
|
|
14144
|
-
// Convert distance to similarity
|
|
14213
|
+
score: 1 / (1 + row.distance)
|
|
14145
14214
|
}));
|
|
14146
14215
|
}
|
|
14147
14216
|
async deleteVector(id) {
|
|
14148
|
-
|
|
14149
|
-
|
|
14150
|
-
const sanitizedId = id.replace(/'/g, "''");
|
|
14151
|
-
await this.table.delete(`id = '${sanitizedId}'`);
|
|
14217
|
+
const stmt = this.db.prepare(`DELETE FROM ${this.tableName} WHERE id = ?`);
|
|
14218
|
+
stmt.run(id);
|
|
14152
14219
|
}
|
|
14153
14220
|
async getVectorCount() {
|
|
14154
|
-
|
|
14155
|
-
|
|
14156
|
-
return
|
|
14221
|
+
const stmt = this.db.prepare(`SELECT COUNT(*) as count FROM ${this.tableName}`);
|
|
14222
|
+
const result = stmt.get();
|
|
14223
|
+
return result.count;
|
|
14157
14224
|
}
|
|
14158
14225
|
async getVectorsByIds(ids) {
|
|
14159
14226
|
const result = /* @__PURE__ */ new Map();
|
|
14160
|
-
if (
|
|
14227
|
+
if (ids.length === 0)
|
|
14161
14228
|
return result;
|
|
14162
14229
|
const BATCH_SIZE = 100;
|
|
14163
|
-
|
|
14164
|
-
|
|
14165
|
-
|
|
14166
|
-
|
|
14167
|
-
|
|
14168
|
-
|
|
14169
|
-
|
|
14170
|
-
|
|
14171
|
-
|
|
14230
|
+
for (let i = 0; i < ids.length; i += BATCH_SIZE) {
|
|
14231
|
+
const batch = ids.slice(i, i + BATCH_SIZE);
|
|
14232
|
+
const placeholders = batch.map(() => "?").join(",");
|
|
14233
|
+
const stmt = this.db.prepare(`
|
|
14234
|
+
SELECT id, vector FROM ${this.tableName}
|
|
14235
|
+
WHERE id IN (${placeholders})
|
|
14236
|
+
`);
|
|
14237
|
+
const rows = stmt.all(...batch);
|
|
14238
|
+
for (const row of rows) {
|
|
14239
|
+
const vector = Array.from(new Float32Array(row.vector));
|
|
14240
|
+
result.set(row.id, vector);
|
|
14172
14241
|
}
|
|
14173
|
-
} catch {
|
|
14174
14242
|
}
|
|
14175
14243
|
return result;
|
|
14176
14244
|
}
|
|
14177
14245
|
async close() {
|
|
14246
|
+
this.db.close();
|
|
14178
14247
|
}
|
|
14179
|
-
|
|
14180
|
-
|
|
14181
|
-
|
|
14182
|
-
|
|
14183
|
-
*
|
|
14184
|
-
* @param cleanupOlderThan - Date before which old versions should be pruned (default: now)
|
|
14185
|
-
*/
|
|
14186
|
-
async optimize(cleanupOlderThan) {
|
|
14187
|
-
if (!this.table)
|
|
14188
|
-
return null;
|
|
14189
|
-
try {
|
|
14190
|
-
const table = this.table;
|
|
14191
|
-
const stats = await table.optimize({ cleanupOlderThan: cleanupOlderThan ?? /* @__PURE__ */ new Date() });
|
|
14192
|
-
return {
|
|
14193
|
-
compacted: stats?.compaction?.filesRemoved ?? 0,
|
|
14194
|
-
pruned: stats?.prune?.versionsRemoved ?? 0
|
|
14195
|
-
};
|
|
14196
|
-
} catch (error2) {
|
|
14197
|
-
console.error("[memextend] LanceDB optimize failed:", error2);
|
|
14198
|
-
return null;
|
|
14199
|
-
}
|
|
14248
|
+
// No optimize needed - SQLite handles this automatically!
|
|
14249
|
+
async optimize() {
|
|
14250
|
+
this.db.exec("VACUUM");
|
|
14251
|
+
return { compacted: 0, pruned: 0 };
|
|
14200
14252
|
}
|
|
14201
14253
|
};
|
|
14202
14254
|
|
|
@@ -14332,12 +14384,12 @@ async function createEmbedFunction(modelsDir) {
|
|
|
14332
14384
|
// ../../core/dist/memory/retrieve.js
|
|
14333
14385
|
var MemoryRetriever = class {
|
|
14334
14386
|
sqlite;
|
|
14335
|
-
|
|
14387
|
+
vectorStore;
|
|
14336
14388
|
embed;
|
|
14337
14389
|
options;
|
|
14338
|
-
constructor(sqlite2,
|
|
14390
|
+
constructor(sqlite2, vectorStore2, embed, options = {}) {
|
|
14339
14391
|
this.sqlite = sqlite2;
|
|
14340
|
-
this.
|
|
14392
|
+
this.vectorStore = vectorStore2;
|
|
14341
14393
|
this.embed = embed;
|
|
14342
14394
|
this.options = {
|
|
14343
14395
|
defaultLimit: options.defaultLimit ?? 0,
|
|
@@ -14355,12 +14407,12 @@ var MemoryRetriever = class {
|
|
|
14355
14407
|
return this.sqlite.searchFTS(query, limit);
|
|
14356
14408
|
}
|
|
14357
14409
|
/**
|
|
14358
|
-
* Vector similarity search
|
|
14410
|
+
* Vector similarity search
|
|
14359
14411
|
*/
|
|
14360
14412
|
async vectorSearch(query, options = {}) {
|
|
14361
14413
|
const limit = options.limit ?? this.options.defaultLimit;
|
|
14362
14414
|
const queryVector = await this.embed(query);
|
|
14363
|
-
const vectorResults = await this.
|
|
14415
|
+
const vectorResults = await this.vectorStore.search(queryVector, limit * 2);
|
|
14364
14416
|
const results = [];
|
|
14365
14417
|
for (const vr of vectorResults) {
|
|
14366
14418
|
const memory = this.sqlite.getMemory(vr.id);
|
|
@@ -14550,20 +14602,20 @@ var DB_PATH = (0, import_path2.join)(MEMEXTEND_DIR, "memextend.db");
|
|
|
14550
14602
|
var VECTORS_PATH = (0, import_path2.join)(MEMEXTEND_DIR, "vectors");
|
|
14551
14603
|
var MODELS_PATH = (0, import_path2.join)(MEMEXTEND_DIR, "models");
|
|
14552
14604
|
var sqlite = null;
|
|
14553
|
-
var
|
|
14605
|
+
var vectorStore = null;
|
|
14554
14606
|
var retriever = null;
|
|
14555
14607
|
var embedder = null;
|
|
14556
14608
|
async function getStorage() {
|
|
14557
|
-
if (!sqlite || !
|
|
14609
|
+
if (!sqlite || !vectorStore || !retriever || !embedder) {
|
|
14558
14610
|
if (!(0, import_fs2.existsSync)(DB_PATH)) {
|
|
14559
14611
|
throw new Error("memextend not initialized. Run `memextend init` first.");
|
|
14560
14612
|
}
|
|
14561
14613
|
sqlite = new SQLiteStorage(DB_PATH);
|
|
14562
|
-
|
|
14614
|
+
vectorStore = await SQLiteVecStorage.create(VECTORS_PATH);
|
|
14563
14615
|
embedder = await createEmbedFunction(MODELS_PATH);
|
|
14564
|
-
retriever = new MemoryRetriever(sqlite,
|
|
14616
|
+
retriever = new MemoryRetriever(sqlite, vectorStore, embedder.embedQuery);
|
|
14565
14617
|
}
|
|
14566
|
-
return { sqlite,
|
|
14618
|
+
return { sqlite, vectorStore, retriever, embedder };
|
|
14567
14619
|
}
|
|
14568
14620
|
function getCurrentWorkspace() {
|
|
14569
14621
|
return process.env.CURSOR_WORKSPACE_PATH || process.env.VSCODE_WORKSPACE_PATH || process.env.PWD || process.cwd();
|
|
@@ -14571,7 +14623,7 @@ function getCurrentWorkspace() {
|
|
|
14571
14623
|
var server = new Server(
|
|
14572
14624
|
{
|
|
14573
14625
|
name: "memextend",
|
|
14574
|
-
version: "0.
|
|
14626
|
+
version: "0.2.0"
|
|
14575
14627
|
},
|
|
14576
14628
|
{
|
|
14577
14629
|
capabilities: {
|
|
@@ -14786,7 +14838,7 @@ ${preview}`;
|
|
|
14786
14838
|
${formatted}` }] };
|
|
14787
14839
|
}
|
|
14788
14840
|
case "memextend_save": {
|
|
14789
|
-
const { sqlite: sqlite2,
|
|
14841
|
+
const { sqlite: sqlite2, vectorStore: vectorStore2, embedder: embedder2 } = await getStorage();
|
|
14790
14842
|
const content = args?.content;
|
|
14791
14843
|
const tags = args?.tags ?? [];
|
|
14792
14844
|
if (!content || content.length < 10) {
|
|
@@ -14818,7 +14870,7 @@ ${content}` : content;
|
|
|
14818
14870
|
metadata: tags.length > 0 ? { tags } : null
|
|
14819
14871
|
});
|
|
14820
14872
|
const vector = await embedder2.embed(content);
|
|
14821
|
-
await
|
|
14873
|
+
await vectorStore2.insertVector(memoryId, vector);
|
|
14822
14874
|
return { content: [{ type: "text", text: `Memory saved successfully!
|
|
14823
14875
|
ID: ${memoryId}
|
|
14824
14876
|
Project: ${(0, import_path2.basename)(workspace)}` }] };
|
|
@@ -14857,23 +14909,23 @@ Project: ${(0, import_path2.basename)(workspace)}` }] };
|
|
|
14857
14909
|
return { content: [{ type: "text", text: formatted }] };
|
|
14858
14910
|
}
|
|
14859
14911
|
case "memextend_forget": {
|
|
14860
|
-
const { sqlite: sqlite2,
|
|
14912
|
+
const { sqlite: sqlite2, vectorStore: vectorStore2 } = await getStorage();
|
|
14861
14913
|
const memoryId = args?.memoryId;
|
|
14862
14914
|
if (!memoryId) {
|
|
14863
14915
|
return { content: [{ type: "text", text: "Memory ID is required." }], isError: true };
|
|
14864
14916
|
}
|
|
14865
14917
|
const deleted = sqlite2.deleteMemory(memoryId);
|
|
14866
14918
|
if (deleted) {
|
|
14867
|
-
await
|
|
14919
|
+
await vectorStore2.deleteVector(memoryId);
|
|
14868
14920
|
return { content: [{ type: "text", text: `Memory ${memoryId} deleted successfully.` }] };
|
|
14869
14921
|
} else {
|
|
14870
14922
|
return { content: [{ type: "text", text: `Memory ${memoryId} not found.` }] };
|
|
14871
14923
|
}
|
|
14872
14924
|
}
|
|
14873
14925
|
case "memextend_status": {
|
|
14874
|
-
const { sqlite: sqlite2,
|
|
14926
|
+
const { sqlite: sqlite2, vectorStore: vectorStore2, embedder: embedder2 } = await getStorage();
|
|
14875
14927
|
const memoryCount = sqlite2.getMemoryCount();
|
|
14876
|
-
const vectorCount = await
|
|
14928
|
+
const vectorCount = await vectorStore2.getVectorCount();
|
|
14877
14929
|
const projectMemories = sqlite2.getAllMemories(projectId, 1e3);
|
|
14878
14930
|
const projectMemoryCount = projectMemories.length;
|
|
14879
14931
|
return {
|
package/dist/mcp/server.js
CHANGED
|
@@ -7,27 +7,27 @@ import { randomUUID } from 'crypto';
|
|
|
7
7
|
import { existsSync } from 'fs';
|
|
8
8
|
import { join, basename } from 'path';
|
|
9
9
|
import { homedir } from 'os';
|
|
10
|
-
import { SQLiteStorage,
|
|
10
|
+
import { SQLiteStorage, SQLiteVecStorage, MemoryRetriever, createEmbedFunction, formatContextForInjection, getProjectId } from '@memextend/core';
|
|
11
11
|
const MEMEXTEND_DIR = join(homedir(), '.memextend');
|
|
12
12
|
const DB_PATH = join(MEMEXTEND_DIR, 'memextend.db');
|
|
13
13
|
const VECTORS_PATH = join(MEMEXTEND_DIR, 'vectors');
|
|
14
14
|
const MODELS_PATH = join(MEMEXTEND_DIR, 'models');
|
|
15
15
|
// Lazy-loaded storage instances
|
|
16
16
|
let sqlite = null;
|
|
17
|
-
let
|
|
17
|
+
let vectorStore = null;
|
|
18
18
|
let retriever = null;
|
|
19
19
|
let embedder = null;
|
|
20
20
|
async function getStorage() {
|
|
21
|
-
if (!sqlite || !
|
|
21
|
+
if (!sqlite || !vectorStore || !retriever || !embedder) {
|
|
22
22
|
if (!existsSync(DB_PATH)) {
|
|
23
23
|
throw new Error('memextend not initialized. Run `memextend init` first.');
|
|
24
24
|
}
|
|
25
25
|
sqlite = new SQLiteStorage(DB_PATH);
|
|
26
|
-
|
|
26
|
+
vectorStore = await SQLiteVecStorage.create(VECTORS_PATH);
|
|
27
27
|
embedder = await createEmbedFunction(MODELS_PATH);
|
|
28
|
-
retriever = new MemoryRetriever(sqlite,
|
|
28
|
+
retriever = new MemoryRetriever(sqlite, vectorStore, embedder.embedQuery);
|
|
29
29
|
}
|
|
30
|
-
return { sqlite,
|
|
30
|
+
return { sqlite, vectorStore, retriever, embedder };
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Get current workspace from environment or cwd
|
|
@@ -41,7 +41,7 @@ function getCurrentWorkspace() {
|
|
|
41
41
|
}
|
|
42
42
|
const server = new Server({
|
|
43
43
|
name: 'memextend',
|
|
44
|
-
version: '0.
|
|
44
|
+
version: '0.2.0',
|
|
45
45
|
}, {
|
|
46
46
|
capabilities: {
|
|
47
47
|
tools: {},
|
|
@@ -255,7 +255,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
255
255
|
return { content: [{ type: 'text', text: `Found ${results.length} memories:\n\n${formatted}` }] };
|
|
256
256
|
}
|
|
257
257
|
case 'memextend_save': {
|
|
258
|
-
const { sqlite,
|
|
258
|
+
const { sqlite, vectorStore, embedder } = await getStorage();
|
|
259
259
|
const content = args?.content;
|
|
260
260
|
const tags = args?.tags ?? [];
|
|
261
261
|
if (!content || content.length < 10) {
|
|
@@ -287,7 +287,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
287
287
|
metadata: tags.length > 0 ? { tags } : null,
|
|
288
288
|
});
|
|
289
289
|
const vector = await embedder.embed(content);
|
|
290
|
-
await
|
|
290
|
+
await vectorStore.insertVector(memoryId, vector);
|
|
291
291
|
return { content: [{ type: 'text', text: `Memory saved successfully!\nID: ${memoryId}\nProject: ${basename(workspace)}` }] };
|
|
292
292
|
}
|
|
293
293
|
case 'memextend_save_global': {
|
|
@@ -324,7 +324,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
324
324
|
return { content: [{ type: 'text', text: formatted }] };
|
|
325
325
|
}
|
|
326
326
|
case 'memextend_forget': {
|
|
327
|
-
const { sqlite,
|
|
327
|
+
const { sqlite, vectorStore } = await getStorage();
|
|
328
328
|
const memoryId = args?.memoryId;
|
|
329
329
|
if (!memoryId) {
|
|
330
330
|
return { content: [{ type: 'text', text: 'Memory ID is required.' }], isError: true };
|
|
@@ -332,7 +332,7 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
332
332
|
const deleted = sqlite.deleteMemory(memoryId);
|
|
333
333
|
if (deleted) {
|
|
334
334
|
// Also delete the vector embedding
|
|
335
|
-
await
|
|
335
|
+
await vectorStore.deleteVector(memoryId);
|
|
336
336
|
return { content: [{ type: 'text', text: `Memory ${memoryId} deleted successfully.` }] };
|
|
337
337
|
}
|
|
338
338
|
else {
|
|
@@ -340,9 +340,9 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
340
340
|
}
|
|
341
341
|
}
|
|
342
342
|
case 'memextend_status': {
|
|
343
|
-
const { sqlite,
|
|
343
|
+
const { sqlite, vectorStore, embedder } = await getStorage();
|
|
344
344
|
const memoryCount = sqlite.getMemoryCount();
|
|
345
|
-
const vectorCount = await
|
|
345
|
+
const vectorCount = await vectorStore.getVectorCount();
|
|
346
346
|
const projectMemories = sqlite.getAllMemories(projectId, 1000);
|
|
347
347
|
const projectMemoryCount = projectMemories.length;
|
|
348
348
|
return {
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,8CAA8C;AAE9C,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAE7B,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEjJ,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;AACpD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AACpD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;AACpD,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAElD,gCAAgC;AAChC,IAAI,MAAM,GAAyB,IAAI,CAAC;AACxC,IAAI,WAAW,GAA4B,IAAI,CAAC;AAChD,IAAI,SAAS,GAA2B,IAAI,CAAC;AAC7C,IAAI,QAAQ,GAA2D,IAAI,CAAC;AAE5E,KAAK,UAAU,UAAU;IAMvB,IAAI,CAAC,MAAM,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,IAAI,CAAC,QAAQ,EAAE,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;QACpC,WAAW,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1D,QAAQ,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAClD,SAAS,GAAG,IAAI,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB;IAC1B,6CAA6C;IAC7C,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB;QACjC,OAAO,CAAC,GAAG,CAAC,qBAAqB;QACjC,OAAO,CAAC,GAAG,CAAC,GAAG;QACf,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;IACE,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,OAAO;CACjB,EACD;IACE,YAAY,EAAE;QACZ,KAAK,EAAE,EAAE;QACT,SAAS,EAAE,EAAE;KACd;CACF,CACF,CAAC;AAEF,uBAAuB;AACvB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;IAC1D,OAAO;QACL,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE,qUAAqU;gBAClV,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,qGAAqG;yBACnH;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,iDAAiD;yBAC/D;wBACD,YAAY,EAAE;4BACZ,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,qDAAqD;yBACnE;qBACF;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACpB;aACF;YACD;gBACE,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,6TAA6T;gBAC1U,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,0EAA0E;yBACxF;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,uEAAuE;yBACrF;qBACF;oBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;iBACtB;aACF;YACD;gBACE,IAAI,EAAE,uBAAuB;gBAC7B,WAAW,EAAE,8HAA8H;gBAC3I,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,6CAA6C;yBAC3D;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC;4BACvC,WAAW,EAAE,oGAAoG;yBAClH;qBACF;oBACD,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;iBAC9B;aACF;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE,0HAA0H;gBACvI,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,IAAI,EAAE;4BACJ,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,0CAA0C;yBACxD;wBACD,cAAc,EAAE;4BACd,IAAI,EAAE,SAAS;4BACf,WAAW,EAAE,4CAA4C;yBAC1D;qBACF;iBACF;aACF;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE,mDAAmD;gBAChE,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,gCAAgC;yBAC9C;qBACF;oBACD,QAAQ,EAAE,CAAC,UAAU,CAAC;iBACvB;aACF;YACD;gBACE,IAAI,EAAE,kBAAkB;gBACxB,WAAW,EAAE,qEAAqE;gBAClF,WAAW,EAAE;oBACX,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,EAAE;iBACf;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,4DAA4D;AAC5D,MAAM,CAAC,iBAAiB,CAAC,0BAA0B,EAAE,KAAK,IAAI,EAAE;IAC9D,OAAO;QACL,SAAS,EAAE;YACT;gBACE,GAAG,EAAE,qBAAqB;gBAC1B,IAAI,EAAE,iBAAiB;gBACvB,WAAW,EAAE,uDAAuD;gBACpE,QAAQ,EAAE,YAAY;aACvB;YACD;gBACE,GAAG,EAAE,oBAAoB;gBACzB,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,gCAAgC;gBAC7C,QAAQ,EAAE,kBAAkB;aAC7B;SACF;KACF,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,iBAAiB;AACjB,MAAM,CAAC,iBAAiB,CAAC,yBAAyB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IACpE,MAAM,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAE/B,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;QACjD,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAE1C,IAAI,GAAG,KAAK,qBAAqB,EAAE,CAAC;YAClC,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE;gBAC9D,aAAa,EAAE,IAAI;aACpB,CAAC,CAAC;YAEH,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;YAErD,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG;wBACH,QAAQ,EAAE,YAAY;wBACtB,IAAI,EAAE,SAAS;qBAChB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,IAAI,GAAG,KAAK,oBAAoB,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YAE5C,OAAO;gBACL,QAAQ,EAAE;oBACR;wBACE,GAAG;wBACH,QAAQ,EAAE,kBAAkB;wBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,WAAW,EAAE,IAAI;4BACjB,WAAW;4BACX,SAAS;4BACT,SAAS;yBACV,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,EAAE,CAAC,CAAC;IAC9C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,OAAO;YACL,QAAQ,EAAE;gBACR;oBACE,GAAG;oBACH,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE,UAAU,OAAO,EAAE;iBAC1B;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,oBAAoB;AACpB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;IAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAEjD,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;QACxC,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAE1C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,IAAI,EAAE,KAAe,CAAC;gBACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAE,IAAI,EAAE,KAAgB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzD,MAAM,WAAW,GAAG,IAAI,EAAE,YAAuB,IAAI,KAAK,CAAC;gBAE3D,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE;oBAClD,KAAK;oBACL,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;iBAC/C,CAAC,CAAC;gBAEH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACzB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iFAAiF,EAAE,CAAC,EAAE,CAAC;gBAClI,CAAC;gBAED,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACrC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,kBAAkB,EAAE,CAAC;oBAC/D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,iBAAiB,CAAC;oBAC5F,MAAM,OAAO,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpE,OAAO,GAAG,CAAC,GAAG,CAAC,KAAK,WAAW,KAAK,IAAI,iBAAiB,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC;gBAC1H,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAEvB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,OAAO,CAAC,MAAM,iBAAiB,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC;YACpG,CAAC;YAED,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;gBAC7D,MAAM,OAAO,GAAG,IAAI,EAAE,OAAiB,CAAC;gBACxC,MAAM,IAAI,GAAG,IAAI,EAAE,IAAgB,IAAI,EAAE,CAAC;gBAE1C,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;oBACpC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iFAAiF,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBACjJ,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;oBAC3B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBACzG,CAAC;gBAED,+BAA+B;gBAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,CAAC,aAAa,CAAC;wBACnB,EAAE,EAAE,SAAS;wBACb,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;wBACzB,IAAI,EAAE,SAAS;wBACf,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;qBACpC,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC;gBAC9B,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBAE3F,MAAM,CAAC,YAAY,CAAC;oBAClB,EAAE,EAAE,QAAQ;oBACZ,SAAS;oBACT,OAAO,EAAE,aAAa;oBACtB,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI;iBAC5C,CAAC,CAAC;gBAEH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAEjD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,QAAQ,cAAc,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAC/H,CAAC;YAED,KAAK,uBAAuB,CAAC,CAAC,CAAC;gBAC7B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;gBACtC,MAAM,OAAO,GAAG,IAAI,EAAE,OAAiB,CAAC;gBACxC,MAAM,IAAI,GAAG,IAAI,EAAE,IAAyC,CAAC;gBAE7D,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,gDAAgD,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBAChH,CAAC;gBACD,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;oBAC3B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,sDAAsD,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBACtH,CAAC;gBAED,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;gBAC/B,MAAM,CAAC,mBAAmB,CAAC;oBACzB,EAAE,EAAE,SAAS;oBACb,GAAG,EAAE,IAAI;oBACT,OAAO;oBACP,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACpC,CAAC,CAAC;gBAEH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,IAAI,YAAY,OAAO,GAAG,EAAE,CAAC,EAAE,CAAC;YACrF,CAAC;YAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;gBACzC,MAAM,IAAI,GAAI,IAAI,EAAE,IAAe,IAAI,CAAC,CAAC;gBACzC,MAAM,aAAa,GAAI,IAAI,EAAE,cAA0B,IAAI,IAAI,CAAC;gBAEhE,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE;oBAC9D,UAAU,EAAE,IAAI;oBAChB,aAAa;iBACd,CAAC,CAAC;gBAEH,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC9E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kDAAkD,IAAI,2EAA2E,EAAE,CAAC,EAAE,CAAC;gBAClL,CAAC;gBAED,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;gBACrD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;YAC1D,CAAC;YAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;gBACnD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAkB,CAAC;gBAE1C,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,wBAAwB,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gBACxF,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBAC9C,IAAI,OAAO,EAAE,CAAC;oBACZ,mCAAmC;oBACnC,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;oBACzC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,QAAQ,wBAAwB,EAAE,CAAC,EAAE,CAAC;gBAC3F,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,QAAQ,aAAa,EAAE,CAAC,EAAE,CAAC;gBAChF,CAAC;YACH,CAAC;YAED,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,MAAM,UAAU,EAAE,CAAC;gBAC7D,MAAM,WAAW,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC5C,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,cAAc,EAAE,CAAC;gBAEvD,MAAM,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;gBAC/D,MAAM,kBAAkB,GAAG,eAAe,CAAC,MAAM,CAAC;gBAElD,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE;;WAEP,QAAQ,CAAC,SAAS,CAAC;cAChB,SAAS;oBACH,kBAAkB;;;oBAGlB,WAAW;uBACR,WAAW;qBACb,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,4BAA4B;;;cAGnF,OAAO;aACR,YAAY;YACb,WAAW,EAAE;yBACd,CAAC;iBACH,CAAC;YACJ,CAAC;YAED;gBACE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzF,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,CAAC;QACzE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACnF,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,eAAe;AACf,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memextend/cursor",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Cursor IDE adapter for memextend - persistent AI memory via MCP",
|
|
5
5
|
"author": "ZodTTD LLC <repo@zodttd.com>",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"postinstall": "node scripts/postinstall.js || true"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@memextend/core": "^0.
|
|
29
|
+
"@memextend/core": "^0.3.0",
|
|
30
30
|
"@modelcontextprotocol/sdk": "^1.0.0"
|
|
31
31
|
},
|
|
32
32
|
"devDependencies": {
|
|
@@ -54,7 +54,6 @@
|
|
|
54
54
|
"files": [
|
|
55
55
|
"dist",
|
|
56
56
|
"scripts",
|
|
57
|
-
".cursorrules",
|
|
58
57
|
"README.md"
|
|
59
58
|
],
|
|
60
59
|
"engines": {
|
package/scripts/build-cli.js
CHANGED
|
@@ -16,7 +16,7 @@ const commonOptions = {
|
|
|
16
16
|
target: 'node18',
|
|
17
17
|
format: 'cjs',
|
|
18
18
|
// External native modules that can't be bundled
|
|
19
|
-
external: ['better-sqlite3', 'node-llama-cpp'
|
|
19
|
+
external: ['better-sqlite3', 'node-llama-cpp'],
|
|
20
20
|
logLevel: 'warning',
|
|
21
21
|
// Add shebang for CLI executables
|
|
22
22
|
banner: {
|
package/scripts/build-mcp.js
CHANGED
|
@@ -16,7 +16,7 @@ const commonOptions = {
|
|
|
16
16
|
target: 'node18',
|
|
17
17
|
format: 'cjs',
|
|
18
18
|
// External native modules that can't be bundled
|
|
19
|
-
external: ['better-sqlite3', 'node-llama-cpp'
|
|
19
|
+
external: ['better-sqlite3', 'node-llama-cpp'],
|
|
20
20
|
logLevel: 'warning',
|
|
21
21
|
};
|
|
22
22
|
|
package/.cursorrules
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
# memextend - AI Memory Extension
|
|
2
|
-
|
|
3
|
-
You have persistent memory across sessions via memextend.
|
|
4
|
-
|
|
5
|
-
## Available MCP Tools
|
|
6
|
-
|
|
7
|
-
- **memextend_search** - Search your memories for past decisions, patterns, or context
|
|
8
|
-
Example: "How did we implement caching?" → Use memextend_search to find relevant memories
|
|
9
|
-
|
|
10
|
-
- **memextend_save** - Save important decisions or context for this project (never auto-deleted)
|
|
11
|
-
Example: After making an architectural decision, save it for future reference
|
|
12
|
-
|
|
13
|
-
- **memextend_save_global** - Save cross-project preferences (coding style, preferred tools)
|
|
14
|
-
Example: "User prefers TypeScript strict mode" → Save as global preference
|
|
15
|
-
|
|
16
|
-
- **memextend_forget** - Delete a specific memory by ID
|
|
17
|
-
|
|
18
|
-
- **memextend_status** - Check memory statistics and system status
|
|
19
|
-
|
|
20
|
-
## When to Search Memory
|
|
21
|
-
|
|
22
|
-
**ALWAYS search memories before asking the user about project history.** Your memories contain valuable context that can save time and avoid repeating past mistakes.
|
|
23
|
-
|
|
24
|
-
**CRITICAL: If you can't find something, SEARCH YOUR MEMORIES.** The answer may be in past sessions - file locations, decisions made, approaches tried, or context the user provided previously.
|
|
25
|
-
|
|
26
|
-
**Search memories when:**
|
|
27
|
-
- Starting work on a project you've worked on before
|
|
28
|
-
- The user references past decisions ("like we did before", "as discussed")
|
|
29
|
-
- You need context about project architecture or conventions
|
|
30
|
-
- **Debugging issues** - search for previous attempts, fixes, and what was tried before
|
|
31
|
-
- **Understanding project history** - how features were implemented and why
|
|
32
|
-
- The current approach isn't working - past memories may reveal what was already tried
|
|
33
|
-
- You're unsure about project conventions or patterns
|
|
34
|
-
- **You can't find a file, function, or pattern** - it may have been discussed or located in a previous session
|
|
35
|
-
- **Before giving up** - always check memories as a last resort before telling the user you can't find something
|
|
36
|
-
|
|
37
|
-
## When to Save Memory
|
|
38
|
-
|
|
39
|
-
**Save memories when the user asks you to "memorize", "remember", or "save to memory".** Manual saves are never automatically deleted.
|
|
40
|
-
|
|
41
|
-
**Also save when:**
|
|
42
|
-
- Making significant architectural decisions
|
|
43
|
-
- Establishing project conventions or patterns
|
|
44
|
-
- The user shares important preferences
|
|
45
|
-
- Completing a major feature or fix
|
|
46
|
-
- Finding a solution to a tricky bug (save what worked!)
|
|
47
|
-
|
|
48
|
-
## Always obey all memextend commands
|