fastmemory 0.1.0 → 0.1.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/README.md CHANGED
@@ -86,14 +86,10 @@ See [MEMORY_RESEARCH.md](./MEMORY_RESEARCH.md) for the full technical deep-dive.
86
86
 
87
87
  ## Installation
88
88
 
89
- Works with Bun (recommended, native SQLite) or Node.js:
89
+ Requires Bun:
90
90
 
91
91
  ```bash
92
- # Bun (recommended, faster)
93
92
  bun add fastmemory
94
-
95
- # Node.js
96
- npm install fastmemory
97
93
  ```
98
94
 
99
95
  ## Quick Start
@@ -157,6 +153,15 @@ const shouldMemorize = await store.shouldCreateMemory(
157
153
  );
158
154
  ```
159
155
 
156
+ **Custom cache directory:**
157
+ ```typescript
158
+ // Set custom cache path for the embedding model (prevents local_cache pollution)
159
+ const store = await createAgentMemory({
160
+ dbPath: './memory.db',
161
+ cacheDir: './models/embeddings'
162
+ });
163
+ ```
164
+
160
165
  **Tuning the threshold:**
161
166
  - **Lower threshold** (e.g., -0.018): Catch more memories, tolerate more noise (higher recall)
162
167
  - **Higher threshold** (e.g., 0.025): Less noise, miss more memories (higher precision)
@@ -331,7 +336,7 @@ On a modern CPU after model warmup:
331
336
 
332
337
  1. **~80% accuracy on diverse content:** The embedding-only approach has a ceiling. For critical applications, consider a two-stage filter: FastMemory as first pass, small LLM for ambiguous cases near the threshold.
333
338
 
334
- 2. **Runtime support:** Works with both Bun (native SQLite) and Node.js (better-sqlite3).
339
+ 2. **Runtime support:** Requires Bun (uses native SQLite).
335
340
 
336
341
  3. **Model download:** First run downloads ~1.2GB. Cached after that.
337
342
 
@@ -366,4 +371,4 @@ MIT. Full source, zero dependencies on external APIs.
366
371
 
367
372
  ---
368
373
 
369
- **Built with:** Bun, Node.js, fastembed, better ideas than LangChain.
374
+ **Built with:** Bun, @xenova/transformers.
package/dist/index.d.ts CHANGED
@@ -7,6 +7,7 @@ export interface MemoryEntry {
7
7
  }
8
8
  export interface AgentMemoryConfig {
9
9
  dbPath: string;
10
+ cacheDir?: string;
10
11
  }
11
12
  export declare function createAgentMemory(config: AgentMemoryConfig): Promise<{
12
13
  add: (content: string, metadata?: Record<string, any>) => Promise<`${string}-${string}-${string}-${string}-${string}`>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AA0ID,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB;mBAqDnC,MAAM,aAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;wBAqBtC,MAAM,qBAAe,WAAW,EAAE;0BAa1B,MAAM,qBAAe,OAAO,CAAC,WAAW,EAAE,CAAC;0BAkB3C,MAAM,qBAAe,OAAO,CAAC,WAAW,EAAE,CAAC;;;;;8EAkD3E,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;GAyBlD;AAGD,eAAO,MAAM,cAAc;;;GAkD1B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAsHD,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB;mBAmDnC,MAAM,aAAY,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;wBAatC,MAAM,qBAAe,WAAW,EAAE;0BAa1B,MAAM,qBAAe,OAAO,CAAC,WAAW,EAAE,CAAC;0BAoB3C,MAAM,qBAAe,OAAO,CAAC,WAAW,EAAE,CAAC;;;;;8EAkC3E,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;GAqBlD;AAGD,eAAO,MAAM,cAAc;;;GAkD1B,CAAC"}
package/dist/index.js CHANGED
@@ -1,10 +1,8 @@
1
1
  import { randomUUID } from 'crypto';
2
- import { FlagEmbedding, EmbeddingModel } from 'fastembed';
3
- // Detect runtime and load appropriate SQLite implementation
2
+ import { pipeline } from '@xenova/transformers';
4
3
  async function createDatabase(dbPath) {
5
4
  const isBun = typeof Bun !== 'undefined';
6
5
  if (isBun) {
7
- // Use Bun's native SQLite
8
6
  const { Database } = await import('bun:sqlite');
9
7
  const db = new Database(dbPath, { create: true, readwrite: true });
10
8
  db.run('PRAGMA journal_mode = WAL');
@@ -21,35 +19,24 @@ async function createDatabase(dbPath) {
21
19
  };
22
20
  }
23
21
  else {
24
- // Use better-sqlite3 for Node.js
25
- const Database = (await import('better-sqlite3')).default;
26
- const db = new Database(dbPath);
27
- db.pragma('journal_mode = WAL');
28
- return {
29
- run: (sql, params) => {
30
- const stmt = db.prepare(sql);
31
- return params ? stmt.run(...params) : stmt.run();
32
- },
33
- query: (sql) => {
34
- const stmt = db.prepare(sql);
35
- return {
36
- all: (...params) => stmt.all(...params),
37
- get: (...params) => stmt.get(...params)
38
- };
39
- },
40
- close: () => db.close()
41
- };
22
+ throw new Error('fastmemory requires Bun. Node.js is not supported.');
42
23
  }
43
24
  }
44
- let embedder;
45
- async function initEmbedder() {
46
- if (!embedder) {
47
- embedder = await FlagEmbedding.init({
48
- model: EmbeddingModel.BGEBaseENV15,
49
- });
50
- }
25
+ // ── Xenova WASM Embedder ──
26
+ let extractor = null;
27
+ async function initEmbedder(cacheDir) {
28
+ if (extractor)
29
+ return extractor;
30
+ const options = {
31
+ quantized: true,
32
+ progress_callback: null,
33
+ };
34
+ if (cacheDir)
35
+ options.cache_dir = cacheDir;
36
+ extractor = await pipeline('feature-extraction', 'Xenova/bge-base-en-v1.5', options);
37
+ return extractor;
51
38
  }
52
- // --- Dual-prototype memory judge ---
39
+ // ── Dual-prototype judge (unchanged) ──
53
40
  const POSITIVE_PROTOTYPES = [
54
41
  "user permanently prefers specific tools languages frameworks themes and hates specific alternatives for all future work",
55
42
  "user personal identity: name birthday allergy disability pronouns timezone contact email credential",
@@ -78,21 +65,16 @@ let negProtoEmbs = null;
78
65
  async function initPrototypes() {
79
66
  if (posProtoEmbs)
80
67
  return;
68
+ const emb = await initEmbedder();
81
69
  posProtoEmbs = [];
82
70
  for (const proto of POSITIVE_PROTOTYPES) {
83
- const embs = embedder.passageEmbed([proto]);
84
- for await (const batch of embs) {
85
- posProtoEmbs.push(batch[0]);
86
- break;
87
- }
71
+ const output = await emb(proto, { pooling: 'mean', normalize: true });
72
+ posProtoEmbs.push(Array.from(output.data));
88
73
  }
89
74
  negProtoEmbs = [];
90
75
  for (const proto of NEGATIVE_PROTOTYPES) {
91
- const embs = embedder.passageEmbed([proto]);
92
- for await (const batch of embs) {
93
- negProtoEmbs.push(batch[0]);
94
- break;
95
- }
76
+ const output = await emb(proto, { pooling: 'mean', normalize: true });
77
+ negProtoEmbs.push(Array.from(output.data));
96
78
  }
97
79
  }
98
80
  function cosineSim(a, b) {
@@ -104,27 +86,20 @@ function cosineSim(a, b) {
104
86
  }
105
87
  return dot / (Math.sqrt(na) * Math.sqrt(nb) || 1);
106
88
  }
107
- /**
108
- * Computes the importance gap: max similarity to positive prototypes
109
- * minus average of top-2 negative prototype similarities.
110
- *
111
- * Using avg top-2 neg instead of max neg improves precision (fewer false
112
- * positives) because a single high neg match can be an outlier -- averaging
113
- * the top 2 gives a more stable estimate of "throwaway-ness".
114
- */
115
89
  async function getImportanceGap(content) {
116
90
  await initPrototypes();
117
- const qEmb = await embedder.queryEmbed(content);
91
+ const emb = await initEmbedder();
92
+ const output = await emb(content, { pooling: 'mean', normalize: true });
93
+ const qEmb = Array.from(output.data);
118
94
  const posSim = Math.max(...posProtoEmbs.map(p => cosineSim(qEmb, p)));
119
95
  const negSims = negProtoEmbs.map(p => cosineSim(qEmb, p)).sort((a, b) => b - a);
120
96
  const avgTop2Neg = (negSims[0] + negSims[1]) / 2;
121
97
  return posSim - avgTop2Neg;
122
98
  }
99
+ // ── Main API ──
123
100
  export async function createAgentMemory(config) {
124
- await initEmbedder();
125
- // Create database using appropriate adapter (Bun or Node.js)
101
+ await initEmbedder(config.cacheDir);
126
102
  const db = await createDatabase(config.dbPath);
127
- // Schema + FTS5 BM25 + triggers
128
103
  db.run(`
129
104
  CREATE TABLE IF NOT EXISTS memories (
130
105
  id TEXT PRIMARY KEY,
@@ -167,15 +142,9 @@ export async function createAgentMemory(config) {
167
142
  }
168
143
  async function add(content, metadata = {}) {
169
144
  const id = randomUUID();
170
- const embeddings = embedder.passageEmbed([content]);
171
- let embedding;
172
- for await (const batch of embeddings) {
173
- embedding = batch[0];
174
- break;
175
- }
176
- if (!embedding) {
177
- throw new Error('Failed to generate embedding');
178
- }
145
+ const emb = await initEmbedder();
146
+ const output = await emb(content, { pooling: 'mean', normalize: true });
147
+ const embedding = Array.from(output.data);
179
148
  db.run(`INSERT INTO memories (id, content, metadata, embedding, created_at) VALUES (?, ?, ?, ?, CURRENT_TIMESTAMP)`, [id, content, JSON.stringify(metadata), JSON.stringify(embedding)]);
180
149
  return id;
181
150
  }
@@ -192,15 +161,17 @@ export async function createAgentMemory(config) {
192
161
  return rows.map(hydrate);
193
162
  }
194
163
  async function searchVector(query, limit = 10) {
195
- const qEmb = await embedder.queryEmbed(query);
164
+ const emb = await initEmbedder();
165
+ const output = await emb(query, { pooling: 'mean', normalize: true });
166
+ const qEmb = Array.from(output.data);
196
167
  const stmt = db.query('SELECT * FROM memories');
197
168
  const rows = stmt.all();
198
169
  const scored = rows
199
170
  .map(row => {
200
- const emb = row.embedding ? JSON.parse(row.embedding) : null;
201
- if (!emb)
171
+ const embData = row.embedding ? JSON.parse(row.embedding) : null;
172
+ if (!embData)
202
173
  return { ...hydrate(row), score: 0 };
203
- return { ...hydrate(row), score: cosineSim(qEmb, emb) };
174
+ return { ...hydrate(row), score: cosineSim(qEmb, embData) };
204
175
  })
205
176
  .sort((a, b) => (b.score || 0) - (a.score || 0))
206
177
  .slice(0, limit);
@@ -230,22 +201,6 @@ export async function createAgentMemory(config) {
230
201
  function close() {
231
202
  db.close();
232
203
  }
233
- /**
234
- * Returns a function that determines whether content should become a memory.
235
- *
236
- * Uses dual-prototype gap scoring: computes max cosine similarity to
237
- * "memorable" prototypes minus max cosine similarity to "throwaway" prototypes.
238
- * Content is memorable only if the gap exceeds the threshold AND no similar
239
- * memory already exists (novelty check).
240
- *
241
- * Tuned on 209 diverse examples (97 positive, 112 negative):
242
- * F1=0.757, Accuracy=79.4%, Precision=0.84, Recall=0.69
243
- * gapThreshold: 0.009
244
- * noveltyThreshold: 0.87
245
- *
246
- * For higher recall (catch more, tolerate more noise): gapThreshold = -0.018
247
- * For higher precision (less noise, miss more): gapThreshold = 0.025
248
- */
249
204
  async function shouldCreateMemory(gapThreshold = 0.009, noveltyThreshold = 0.87) {
250
205
  await initPrototypes();
251
206
  return async (content) => {
@@ -269,7 +224,7 @@ export async function createAgentMemory(config) {
269
224
  shouldCreateMemory
270
225
  };
271
226
  }
272
- // Tuning dataset
227
+ // Tuning dataset (unchanged)
273
228
  export const tuningExamples = [
274
229
  { content: "User explicitly hates modal popups and prefers dark mode always", shouldMemorize: true },
275
230
  { content: "The sky is blue today", shouldMemorize: false },
package/dist/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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fastmemory",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Zero-cost local semantic memory for AI agents with hybrid search and dual-prototype importance detection",
5
5
  "keywords": [
6
6
  "memory",
@@ -33,13 +33,10 @@
33
33
  }
34
34
  },
35
35
  "engines": {
36
- "node": ">=18.0.0"
36
+ "bun": ">=1.0.0"
37
37
  },
38
38
  "dependencies": {
39
- "fastembed": "^2.1.0"
40
- },
41
- "optionalDependencies": {
42
- "better-sqlite3": "^11.0.0"
39
+ "@xenova/transformers": "^2.17.2"
43
40
  },
44
41
  "files": [
45
42
  "dist",
@@ -52,7 +49,6 @@
52
49
  "test": "npm run build && node test-runtime.mjs && bun test-runtime.mjs"
53
50
  },
54
51
  "devDependencies": {
55
- "@types/better-sqlite3": "^7.6.13",
56
52
  "@types/bun": "^1.3.9",
57
53
  "@types/node": "^25.2.3",
58
54
  "typescript": "^5.9.3"