@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.
@@ -14087,116 +14087,168 @@ var SQLiteStorage = class {
14087
14087
  }
14088
14088
  };
14089
14089
 
14090
- // ../../core/dist/storage/lancedb.js
14091
- var lancedb = __toESM(require("@lancedb/lancedb"), 1);
14092
- var LanceDBStorage = class _LanceDBStorage {
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
- table = null;
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
- const db = await lancedb.connect(dbPath);
14102
- const storage = new _LanceDBStorage(db);
14103
- await storage.initialize();
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
- async initialize() {
14107
- const tableNames = await this.db.tableNames();
14108
- if (tableNames.includes(this.tableName)) {
14109
- this.table = await this.db.openTable(this.tableName);
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 data = [{ id, vector }];
14117
- if (!this.table) {
14118
- this.table = await this.db.createTable(this.tableName, data);
14119
- } else {
14120
- await this.table.add(data);
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
- for (const item of items) {
14125
- if (item.vector.length !== this.dimensions) {
14126
- throw new Error(`Vector must have ${this.dimensions} dimensions, got ${item.vector.length}`);
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
- if (!this.table) {
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 (!this.table) {
14137
- return [];
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 results = await this.table.vectorSearch(vector).limit(effectiveLimit).toArray();
14141
- return results.map((row) => ({
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 - row._distance
14144
- // Convert distance to similarity
14213
+ score: 1 / (1 + row.distance)
14145
14214
  }));
14146
14215
  }
14147
14216
  async deleteVector(id) {
14148
- if (!this.table)
14149
- return;
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
- if (!this.table)
14155
- return 0;
14156
- return await this.table.countRows();
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 (!this.table || ids.length === 0)
14227
+ if (ids.length === 0)
14161
14228
  return result;
14162
14229
  const BATCH_SIZE = 100;
14163
- try {
14164
- for (let i = 0; i < ids.length; i += BATCH_SIZE) {
14165
- const batch = ids.slice(i, i + BATCH_SIZE);
14166
- const sanitizedIds = batch.map((id) => id.replace(/'/g, "''"));
14167
- const filter = sanitizedIds.map((id) => `id = '${id}'`).join(" OR ");
14168
- const rows = await this.table.query().where(filter).toArray();
14169
- for (const row of rows) {
14170
- result.set(row.id, row.vector);
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
- * Optimize the LanceDB table to reduce storage.
14181
- * This compacts files, prunes old versions, and optimizes indices.
14182
- * Should be called periodically (e.g., after many inserts or on cleanup command).
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
- lancedb;
14387
+ vectorStore;
14336
14388
  embed;
14337
14389
  options;
14338
- constructor(sqlite2, lancedb3, embed, options = {}) {
14390
+ constructor(sqlite2, vectorStore2, embed, options = {}) {
14339
14391
  this.sqlite = sqlite2;
14340
- this.lancedb = lancedb3;
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 using LanceDB
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.lancedb.search(queryVector, limit * 2);
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 lancedb2 = null;
14605
+ var vectorStore = null;
14554
14606
  var retriever = null;
14555
14607
  var embedder = null;
14556
14608
  async function getStorage() {
14557
- if (!sqlite || !lancedb2 || !retriever || !embedder) {
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
- lancedb2 = await LanceDBStorage.create(VECTORS_PATH);
14614
+ vectorStore = await SQLiteVecStorage.create(VECTORS_PATH);
14563
14615
  embedder = await createEmbedFunction(MODELS_PATH);
14564
- retriever = new MemoryRetriever(sqlite, lancedb2, embedder.embedQuery);
14616
+ retriever = new MemoryRetriever(sqlite, vectorStore, embedder.embedQuery);
14565
14617
  }
14566
- return { sqlite, lancedb: lancedb2, retriever, embedder };
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.1.9"
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, lancedb: lancedb3, embedder: embedder2 } = await getStorage();
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 lancedb3.insertVector(memoryId, vector);
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, lancedb: lancedb3 } = await getStorage();
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 lancedb3.deleteVector(memoryId);
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, lancedb: lancedb3, embedder: embedder2 } = await getStorage();
14926
+ const { sqlite: sqlite2, vectorStore: vectorStore2, embedder: embedder2 } = await getStorage();
14875
14927
  const memoryCount = sqlite2.getMemoryCount();
14876
- const vectorCount = await lancedb3.getVectorCount();
14928
+ const vectorCount = await vectorStore2.getVectorCount();
14877
14929
  const projectMemories = sqlite2.getAllMemories(projectId, 1e3);
14878
14930
  const projectMemoryCount = projectMemories.length;
14879
14931
  return {
@@ -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, LanceDBStorage, MemoryRetriever, createEmbedFunction, formatContextForInjection, getProjectId } from '@memextend/core';
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 lancedb = null;
17
+ let vectorStore = null;
18
18
  let retriever = null;
19
19
  let embedder = null;
20
20
  async function getStorage() {
21
- if (!sqlite || !lancedb || !retriever || !embedder) {
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
- lancedb = await LanceDBStorage.create(VECTORS_PATH);
26
+ vectorStore = await SQLiteVecStorage.create(VECTORS_PATH);
27
27
  embedder = await createEmbedFunction(MODELS_PATH);
28
- retriever = new MemoryRetriever(sqlite, lancedb, embedder.embedQuery);
28
+ retriever = new MemoryRetriever(sqlite, vectorStore, embedder.embedQuery);
29
29
  }
30
- return { sqlite, lancedb, retriever, embedder };
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.1.9',
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, lancedb, embedder } = await getStorage();
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 lancedb.insertVector(memoryId, vector);
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, lancedb } = await getStorage();
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 lancedb.deleteVector(memoryId);
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, lancedb, embedder } = await getStorage();
343
+ const { sqlite, vectorStore, embedder } = await getStorage();
344
344
  const memoryCount = sqlite.getMemoryCount();
345
- const vectorCount = await lancedb.getVectorCount();
345
+ const vectorCount = await vectorStore.getVectorCount();
346
346
  const projectMemories = sqlite.getAllMemories(projectId, 1000);
347
347
  const projectMemoryCount = projectMemories.length;
348
348
  return {
@@ -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":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memextend/cursor",
3
- "version": "0.1.9",
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.1.9",
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": {
@@ -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', '@lancedb/lancedb'],
19
+ external: ['better-sqlite3', 'node-llama-cpp'],
20
20
  logLevel: 'warning',
21
21
  // Add shebang for CLI executables
22
22
  banner: {
@@ -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', '@lancedb/lancedb'],
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