sigma-memory 0.2.1 → 0.2.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/index.d.ts +8 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +22 -22
- package/dist/index.js.map +1 -1
- package/dist/notes.d.ts +1 -1
- package/dist/notes.d.ts.map +1 -1
- package/dist/notes.js +24 -24
- package/dist/notes.js.map +1 -1
- package/dist/ontology.d.ts +3 -3
- package/dist/ontology.d.ts.map +1 -1
- package/dist/ontology.js +26 -23
- package/dist/ontology.js.map +1 -1
- package/dist/types.d.ts +7 -7
- package/dist/types.d.ts.map +1 -1
- package/dist/vector-store.d.ts +1 -1
- package/dist/vector-store.d.ts.map +1 -1
- package/dist/vector-store.js +39 -33
- package/dist/vector-store.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +176 -176
- package/src/notes.ts +161 -161
- package/src/ontology.ts +359 -352
- package/src/types.ts +63 -63
- package/src/vector-store.ts +356 -357
- package/src/vendor.d.ts +21 -21
package/dist/types.d.ts
CHANGED
|
@@ -17,7 +17,7 @@ export interface VectorSearchResult {
|
|
|
17
17
|
}
|
|
18
18
|
export interface OntologyEntity {
|
|
19
19
|
id: string;
|
|
20
|
-
type:
|
|
20
|
+
type: "Person" | "Project" | "Device" | "Account" | "Document" | "Service" | "Concept";
|
|
21
21
|
name: string;
|
|
22
22
|
properties: Record<string, string>;
|
|
23
23
|
createdAt: string;
|
|
@@ -37,8 +37,8 @@ export interface Note {
|
|
|
37
37
|
content: string;
|
|
38
38
|
}
|
|
39
39
|
export interface UnifiedSearchResult {
|
|
40
|
-
source:
|
|
41
|
-
type?:
|
|
40
|
+
source: "notes" | "ontology" | "vectors";
|
|
41
|
+
type?: "entity" | "relation" | "note" | "file";
|
|
42
42
|
score: number;
|
|
43
43
|
data: any;
|
|
44
44
|
}
|
|
@@ -61,16 +61,16 @@ export interface MemoryStatus {
|
|
|
61
61
|
};
|
|
62
62
|
}
|
|
63
63
|
export interface OntologyEntityEntry {
|
|
64
|
-
kind:
|
|
64
|
+
kind: "entity";
|
|
65
65
|
id: string;
|
|
66
|
-
type:
|
|
66
|
+
type: "Person" | "Project" | "Device" | "Account" | "Document" | "Service" | "Concept";
|
|
67
67
|
name: string;
|
|
68
68
|
properties: Record<string, string>;
|
|
69
69
|
createdAt: string;
|
|
70
70
|
updatedAt: string;
|
|
71
71
|
}
|
|
72
72
|
export interface OntologyRelationEntry {
|
|
73
|
-
kind:
|
|
73
|
+
kind: "relation";
|
|
74
74
|
id: string;
|
|
75
75
|
from: string;
|
|
76
76
|
to: string;
|
|
@@ -79,7 +79,7 @@ export interface OntologyRelationEntry {
|
|
|
79
79
|
createdAt: string;
|
|
80
80
|
}
|
|
81
81
|
export interface OntologyDeleteEntry {
|
|
82
|
-
kind:
|
|
82
|
+
kind: "delete";
|
|
83
83
|
targetId: string;
|
|
84
84
|
deletedAt: string;
|
|
85
85
|
}
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/vector-store.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../src/vector-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../src/vector-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AASrD;;;;;;GAMG;AACH,qBAAa,WAAW;IACvB,OAAO,CAAC,EAAE,CAAyB;IACnC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,YAAY,CAA8B;gBAEtC,MAAM,EAAE,MAAM;IAI1B;;;;OAIG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAQb,KAAK;IAsCnB;;;OAGG;YACW,kBAAkB;IA+BhC;;OAEG;YACW,cAAc;IAM5B;;OAEG;IACH,OAAO,CAAC,OAAO;IAOf;;OAEG;YACW,KAAK;IAOnB;;;;;;;OAOG;IACH,OAAO,CAAC,SAAS;IAiDjB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAO5B;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;;;OAIG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB/D;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAsC9E;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOjD;;;OAGG;IACG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAcxD;;OAEG;IACH,QAAQ,IAAI;QAAE,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IAsB7E;;OAEG;IACH,KAAK,IAAI,IAAI;CAUb"}
|
package/dist/vector-store.js
CHANGED
|
@@ -12,7 +12,7 @@ const sql_js_1 = __importDefault(require("sql.js"));
|
|
|
12
12
|
* Uses native import() via Function constructor to bypass
|
|
13
13
|
* TypeScript's CJS transformation of dynamic imports.
|
|
14
14
|
*/
|
|
15
|
-
const esmImport = new Function(
|
|
15
|
+
const esmImport = new Function("specifier", "return import(specifier)");
|
|
16
16
|
/**
|
|
17
17
|
* Self-contained vector store using sql.js (SQLite via WebAssembly) and
|
|
18
18
|
* @huggingface/transformers for local embeddings.
|
|
@@ -72,7 +72,7 @@ class VectorStore {
|
|
|
72
72
|
)
|
|
73
73
|
`);
|
|
74
74
|
// Index for fast file lookups
|
|
75
|
-
this.db.run(
|
|
75
|
+
this.db.run("CREATE INDEX IF NOT EXISTS idx_documents_file ON documents(file)");
|
|
76
76
|
this.persist();
|
|
77
77
|
this.initialized = true;
|
|
78
78
|
}
|
|
@@ -86,12 +86,22 @@ class VectorStore {
|
|
|
86
86
|
if (this.modelPromise)
|
|
87
87
|
return this.modelPromise;
|
|
88
88
|
this.modelPromise = (async () => {
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
// Choose the smallest quantised variant by default. The model
|
|
90
|
+
// (Xenova/all-MiniLM-L6-v2) ships in three flavours on the HF
|
|
91
|
+
// hub: fp32 (~90 MB), fp16 (~45 MB), q8 (~22 MB). On CPU — which
|
|
92
|
+
// is where phi-code's memory subsystem runs — q8 is 2-3× faster
|
|
93
|
+
// than fp32 with negligible quality loss for 384-dim sentence
|
|
94
|
+
// embeddings. Override with PHI_EMBEDDING_DTYPE=fp32|fp16|q8.
|
|
95
|
+
const requestedDtype = process.env.PHI_EMBEDDING_DTYPE;
|
|
96
|
+
const dtype = requestedDtype === "fp32" || requestedDtype === "fp16" || requestedDtype === "q8"
|
|
97
|
+
? requestedDtype
|
|
98
|
+
: "q8";
|
|
99
|
+
console.log(`[VectorStore] Loading embedding model (Xenova/all-MiniLM-L6-v2, dtype=${dtype})...`);
|
|
100
|
+
console.log(`[VectorStore] First run may download the model (~${dtype === "q8" ? "22" : dtype === "fp16" ? "45" : "90"}MB).`);
|
|
91
101
|
// Dynamic ESM import for @huggingface/transformers (ESM-only package)
|
|
92
|
-
const { pipeline: createPipeline } = await esmImport(
|
|
93
|
-
this.pipeline = await createPipeline(
|
|
94
|
-
console.log(
|
|
102
|
+
const { pipeline: createPipeline } = await esmImport("@huggingface/transformers");
|
|
103
|
+
this.pipeline = await createPipeline("feature-extraction", "Xenova/all-MiniLM-L6-v2", { dtype });
|
|
104
|
+
console.log("[VectorStore] Embedding model loaded.");
|
|
95
105
|
})();
|
|
96
106
|
await this.modelPromise;
|
|
97
107
|
}
|
|
@@ -118,7 +128,7 @@ class VectorStore {
|
|
|
118
128
|
*/
|
|
119
129
|
async embed(text) {
|
|
120
130
|
await this.ensurePipeline();
|
|
121
|
-
const output = await this.pipeline(text, { pooling:
|
|
131
|
+
const output = await this.pipeline(text, { pooling: "mean", normalize: true });
|
|
122
132
|
return new Float32Array(output.data);
|
|
123
133
|
}
|
|
124
134
|
/**
|
|
@@ -133,7 +143,7 @@ class VectorStore {
|
|
|
133
143
|
const MAX_CHUNK_SIZE = 500;
|
|
134
144
|
const OVERLAP = 100;
|
|
135
145
|
// Split by paragraphs (double newline)
|
|
136
|
-
const paragraphs = text.split(/\n\s*\n/).filter(p => p.trim().length > 0);
|
|
146
|
+
const paragraphs = text.split(/\n\s*\n/).filter((p) => p.trim().length > 0);
|
|
137
147
|
const rawChunks = [];
|
|
138
148
|
for (const paragraph of paragraphs) {
|
|
139
149
|
const trimmed = paragraph.trim();
|
|
@@ -143,14 +153,14 @@ class VectorStore {
|
|
|
143
153
|
else {
|
|
144
154
|
// Split long paragraphs by sentences
|
|
145
155
|
const sentences = trimmed.split(/(?<=[.!?])\s+/);
|
|
146
|
-
let current =
|
|
156
|
+
let current = "";
|
|
147
157
|
for (const sentence of sentences) {
|
|
148
158
|
if (current.length + sentence.length + 1 > MAX_CHUNK_SIZE && current.length > 0) {
|
|
149
159
|
rawChunks.push(current.trim());
|
|
150
160
|
current = sentence;
|
|
151
161
|
}
|
|
152
162
|
else {
|
|
153
|
-
current = current ? current +
|
|
163
|
+
current = current ? current + " " + sentence : sentence;
|
|
154
164
|
}
|
|
155
165
|
}
|
|
156
166
|
if (current.trim().length > 0) {
|
|
@@ -166,7 +176,7 @@ class VectorStore {
|
|
|
166
176
|
for (let i = 1; i < rawChunks.length; i++) {
|
|
167
177
|
const prevChunk = rawChunks[i - 1];
|
|
168
178
|
const overlap = prevChunk.slice(-OVERLAP);
|
|
169
|
-
chunks.push(overlap +
|
|
179
|
+
chunks.push(overlap + " " + rawChunks[i]);
|
|
170
180
|
}
|
|
171
181
|
return chunks;
|
|
172
182
|
}
|
|
@@ -211,18 +221,18 @@ class VectorStore {
|
|
|
211
221
|
*/
|
|
212
222
|
async addDocument(file, content) {
|
|
213
223
|
if (!this.db)
|
|
214
|
-
throw new Error(
|
|
224
|
+
throw new Error("VectorStore not initialized. Call init() first.");
|
|
215
225
|
const chunks = this.chunkText(content);
|
|
216
226
|
if (chunks.length === 0)
|
|
217
227
|
return;
|
|
218
228
|
// Remove existing chunks for this file
|
|
219
|
-
this.db.run(
|
|
229
|
+
this.db.run("DELETE FROM documents WHERE file = ?", [file]);
|
|
220
230
|
// Embed and insert each chunk
|
|
221
231
|
for (let i = 0; i < chunks.length; i++) {
|
|
222
232
|
const embedding = await this.embed(chunks[i]);
|
|
223
233
|
const embeddingBlob = this.serializeEmbedding(embedding);
|
|
224
234
|
const now = new Date().toISOString();
|
|
225
|
-
this.db.run(
|
|
235
|
+
this.db.run("INSERT INTO documents (file, chunk_index, content, embedding, updated_at) VALUES (?, ?, ?, ?, ?)", [file, i, chunks[i], embeddingBlob, now]);
|
|
226
236
|
}
|
|
227
237
|
this.persist();
|
|
228
238
|
}
|
|
@@ -235,11 +245,11 @@ class VectorStore {
|
|
|
235
245
|
*/
|
|
236
246
|
async search(query, limit = 10) {
|
|
237
247
|
if (!this.db)
|
|
238
|
-
throw new Error(
|
|
248
|
+
throw new Error("VectorStore not initialized. Call init() first.");
|
|
239
249
|
// Embed the query
|
|
240
250
|
const queryEmbedding = await this.embed(query);
|
|
241
251
|
// Load all documents with embeddings
|
|
242
|
-
const results = this.db.exec(
|
|
252
|
+
const results = this.db.exec("SELECT file, chunk_index, content, embedding FROM documents");
|
|
243
253
|
if (results.length === 0 || results[0].values.length === 0) {
|
|
244
254
|
return [];
|
|
245
255
|
}
|
|
@@ -253,7 +263,7 @@ class VectorStore {
|
|
|
253
263
|
file: file,
|
|
254
264
|
chunkIndex: chunkIndex,
|
|
255
265
|
content: content,
|
|
256
|
-
score
|
|
266
|
+
score,
|
|
257
267
|
});
|
|
258
268
|
}
|
|
259
269
|
// Sort by score descending and return top-k
|
|
@@ -265,8 +275,8 @@ class VectorStore {
|
|
|
265
275
|
*/
|
|
266
276
|
async removeDocument(file) {
|
|
267
277
|
if (!this.db)
|
|
268
|
-
throw new Error(
|
|
269
|
-
this.db.run(
|
|
278
|
+
throw new Error("VectorStore not initialized. Call init() first.");
|
|
279
|
+
this.db.run("DELETE FROM documents WHERE file = ?", [file]);
|
|
270
280
|
this.persist();
|
|
271
281
|
}
|
|
272
282
|
/**
|
|
@@ -275,9 +285,9 @@ class VectorStore {
|
|
|
275
285
|
*/
|
|
276
286
|
async reindex(files) {
|
|
277
287
|
if (!this.db)
|
|
278
|
-
throw new Error(
|
|
288
|
+
throw new Error("VectorStore not initialized. Call init() first.");
|
|
279
289
|
// Clear all existing documents
|
|
280
|
-
this.db.run(
|
|
290
|
+
this.db.run("DELETE FROM documents");
|
|
281
291
|
// Re-add all files
|
|
282
292
|
for (const [file, content] of files) {
|
|
283
293
|
await this.addDocument(file, content);
|
|
@@ -289,19 +299,15 @@ class VectorStore {
|
|
|
289
299
|
*/
|
|
290
300
|
getStats() {
|
|
291
301
|
if (!this.db) {
|
|
292
|
-
return { documentCount: 0, chunkCount: 0, lastUpdate:
|
|
302
|
+
return { documentCount: 0, chunkCount: 0, lastUpdate: "" };
|
|
293
303
|
}
|
|
294
|
-
const countResult = this.db.exec(
|
|
295
|
-
const updateResult = this.db.exec(
|
|
296
|
-
const docs = countResult.length > 0 && countResult[0].values.length > 0
|
|
297
|
-
|
|
298
|
-
: 0;
|
|
299
|
-
const chunks = countResult.length > 0 && countResult[0].values.length > 0
|
|
300
|
-
? countResult[0].values[0][1]
|
|
301
|
-
: 0;
|
|
304
|
+
const countResult = this.db.exec("SELECT COUNT(DISTINCT file) as docs, COUNT(*) as chunks FROM documents");
|
|
305
|
+
const updateResult = this.db.exec("SELECT MAX(updated_at) as last_update FROM documents");
|
|
306
|
+
const docs = countResult.length > 0 && countResult[0].values.length > 0 ? countResult[0].values[0][0] : 0;
|
|
307
|
+
const chunks = countResult.length > 0 && countResult[0].values.length > 0 ? countResult[0].values[0][1] : 0;
|
|
302
308
|
const lastUpdate = updateResult.length > 0 && updateResult[0].values.length > 0
|
|
303
|
-
?
|
|
304
|
-
:
|
|
309
|
+
? updateResult[0].values[0][0] || ""
|
|
310
|
+
: "";
|
|
305
311
|
return { documentCount: docs, chunkCount: chunks, lastUpdate };
|
|
306
312
|
}
|
|
307
313
|
/**
|
package/dist/vector-store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../src/vector-store.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAwE;AACxE,+BAA+B;AAC/B,oDAAkD;AAGlD;;;;GAIG;AACH,MAAM,SAAS,GAAG,IAAI,QAAQ,
|
|
1
|
+
{"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../src/vector-store.ts"],"names":[],"mappings":"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"}
|