sigma-memory 0.2.0 → 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 +5 -4
- package/dist/ontology.d.ts.map +1 -1
- package/dist/ontology.js +32 -24
- 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 +3 -2
- package/src/index.ts +176 -176
- package/src/notes.ts +161 -161
- package/src/ontology.ts +359 -346
- package/src/types.ts +63 -63
- package/src/vector-store.ts +356 -357
- package/src/vendor.d.ts +21 -21
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { NotesManager } from
|
|
2
|
-
import { OntologyManager } from
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
1
|
+
import { NotesManager } from "./notes.js";
|
|
2
|
+
import { OntologyManager } from "./ontology.js";
|
|
3
|
+
import type { MemoryConfig, MemoryStatus, UnifiedSearchResult } from "./types.js";
|
|
4
|
+
import { VectorStore } from "./vector-store.js";
|
|
5
5
|
export declare class SigmaMemory {
|
|
6
6
|
readonly notes: NotesManager;
|
|
7
7
|
readonly ontology: OntologyManager;
|
|
@@ -31,9 +31,9 @@ export declare class SigmaMemory {
|
|
|
31
31
|
*/
|
|
32
32
|
getConfig(): MemoryConfig;
|
|
33
33
|
}
|
|
34
|
-
export { NotesManager } from
|
|
35
|
-
export { OntologyManager } from
|
|
36
|
-
export
|
|
37
|
-
export
|
|
34
|
+
export { NotesManager } from "./notes.js";
|
|
35
|
+
export { OntologyManager } from "./ontology.js";
|
|
36
|
+
export * from "./types.js";
|
|
37
|
+
export { VectorStore } from "./vector-store.js";
|
|
38
38
|
export default SigmaMemory;
|
|
39
39
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,WAAW;IACvB,SAAgB,KAAK,EAAE,YAAY,CAAC;IACpC,SAAgB,QAAQ,EAAE,eAAe,CAAC;IAC1C,SAAgB,OAAO,EAAE,WAAW,CAAC;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAe;gBAE1B,MAAM,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;IAgB1C;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAiE3D;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB3B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAajC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,YAAY,CAAC;IA6BrC;;OAEG;IACH,SAAS,IAAI,YAAY;CAGzB;AAGD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,eAAe,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,9 +15,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.VectorStore = exports.OntologyManager = exports.NotesManager = exports.SigmaMemory = void 0;
|
|
18
|
-
const path_1 = require("path");
|
|
19
|
-
const os_1 = require("os");
|
|
20
18
|
const fs_1 = require("fs");
|
|
19
|
+
const os_1 = require("os");
|
|
20
|
+
const path_1 = require("path");
|
|
21
21
|
const notes_js_1 = require("./notes.js");
|
|
22
22
|
const ontology_js_1 = require("./ontology.js");
|
|
23
23
|
const vector_store_js_1 = require("./vector-store.js");
|
|
@@ -29,15 +29,15 @@ class SigmaMemory {
|
|
|
29
29
|
constructor(config) {
|
|
30
30
|
// Default configuration
|
|
31
31
|
const defaultConfig = {
|
|
32
|
-
memoryDir: (0, path_1.join)((0, os_1.homedir)(),
|
|
33
|
-
projectMemoryDir: (0, path_1.join)(process.cwd(),
|
|
34
|
-
ontologyPath: (0, path_1.join)((0, os_1.homedir)(),
|
|
32
|
+
memoryDir: (0, path_1.join)((0, os_1.homedir)(), ".phi", "memory"),
|
|
33
|
+
projectMemoryDir: (0, path_1.join)(process.cwd(), ".phi", "memory"),
|
|
34
|
+
ontologyPath: (0, path_1.join)((0, os_1.homedir)(), ".phi", "memory", "ontology", "graph.jsonl"),
|
|
35
35
|
};
|
|
36
36
|
this.config = { ...defaultConfig, ...config };
|
|
37
37
|
// Initialize managers
|
|
38
38
|
this.notes = new notes_js_1.NotesManager(this.config);
|
|
39
39
|
this.ontology = new ontology_js_1.OntologyManager(this.config);
|
|
40
|
-
this.vectors = new vector_store_js_1.VectorStore((0, path_1.join)(this.config.memoryDir,
|
|
40
|
+
this.vectors = new vector_store_js_1.VectorStore((0, path_1.join)(this.config.memoryDir, "vectors.db"));
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Unified search: searches notes + ontology + vectors, combines results
|
|
@@ -49,10 +49,10 @@ class SigmaMemory {
|
|
|
49
49
|
const notesResults = this.notes.search(query);
|
|
50
50
|
for (const result of notesResults) {
|
|
51
51
|
results.push({
|
|
52
|
-
source:
|
|
53
|
-
type:
|
|
52
|
+
source: "notes",
|
|
53
|
+
type: "note",
|
|
54
54
|
score: 0.8, // Default score for text-match notes
|
|
55
|
-
data: result
|
|
55
|
+
data: result,
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -64,19 +64,19 @@ class SigmaMemory {
|
|
|
64
64
|
const entityResults = this.ontology.findEntity({ name: query });
|
|
65
65
|
for (const entity of entityResults) {
|
|
66
66
|
results.push({
|
|
67
|
-
source:
|
|
68
|
-
type:
|
|
67
|
+
source: "ontology",
|
|
68
|
+
type: "entity",
|
|
69
69
|
score: 0.9,
|
|
70
|
-
data: entity
|
|
70
|
+
data: entity,
|
|
71
71
|
});
|
|
72
72
|
// Include relations for this entity
|
|
73
73
|
const relations = this.ontology.findRelations(entity.id);
|
|
74
74
|
for (const relation of relations) {
|
|
75
75
|
results.push({
|
|
76
|
-
source:
|
|
77
|
-
type:
|
|
76
|
+
source: "ontology",
|
|
77
|
+
type: "relation",
|
|
78
78
|
score: 0.7,
|
|
79
|
-
data: relation
|
|
79
|
+
data: relation,
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -89,10 +89,10 @@ class SigmaMemory {
|
|
|
89
89
|
const vectorResults = await this.vectors.search(query, 5);
|
|
90
90
|
for (const result of vectorResults) {
|
|
91
91
|
results.push({
|
|
92
|
-
source:
|
|
93
|
-
type:
|
|
92
|
+
source: "vectors",
|
|
93
|
+
type: "file",
|
|
94
94
|
score: result.score,
|
|
95
|
-
data: result
|
|
95
|
+
data: result,
|
|
96
96
|
});
|
|
97
97
|
}
|
|
98
98
|
}
|
|
@@ -145,7 +145,7 @@ class SigmaMemory {
|
|
|
145
145
|
const notesStatus = {
|
|
146
146
|
count: notesList.length,
|
|
147
147
|
totalSize: notesList.reduce((sum, note) => sum + note.size, 0),
|
|
148
|
-
lastModified: notesList.length > 0 ? notesList[0].date : null
|
|
148
|
+
lastModified: notesList.length > 0 ? notesList[0].date : null,
|
|
149
149
|
};
|
|
150
150
|
// Ontology status
|
|
151
151
|
const ontologyStats = this.ontology.stats();
|
|
@@ -154,14 +154,14 @@ class SigmaMemory {
|
|
|
154
154
|
entities: ontologyGraph.entities.length,
|
|
155
155
|
relations: ontologyGraph.relations.length,
|
|
156
156
|
entitiesByType: ontologyStats.entitiesByType,
|
|
157
|
-
relationsByType: ontologyStats.relationsByType
|
|
157
|
+
relationsByType: ontologyStats.relationsByType,
|
|
158
158
|
};
|
|
159
159
|
// Vector store status
|
|
160
160
|
const vectorStats = this.vectors.getStats();
|
|
161
161
|
return {
|
|
162
162
|
notes: notesStatus,
|
|
163
163
|
ontology: ontologyStatus,
|
|
164
|
-
vectors: vectorStats
|
|
164
|
+
vectors: vectorStats,
|
|
165
165
|
};
|
|
166
166
|
}
|
|
167
167
|
/**
|
|
@@ -177,9 +177,9 @@ var notes_js_2 = require("./notes.js");
|
|
|
177
177
|
Object.defineProperty(exports, "NotesManager", { enumerable: true, get: function () { return notes_js_2.NotesManager; } });
|
|
178
178
|
var ontology_js_2 = require("./ontology.js");
|
|
179
179
|
Object.defineProperty(exports, "OntologyManager", { enumerable: true, get: function () { return ontology_js_2.OntologyManager; } });
|
|
180
|
+
__exportStar(require("./types.js"), exports);
|
|
180
181
|
var vector_store_js_2 = require("./vector-store.js");
|
|
181
182
|
Object.defineProperty(exports, "VectorStore", { enumerable: true, get: function () { return vector_store_js_2.VectorStore; } });
|
|
182
|
-
__exportStar(require("./types.js"), exports);
|
|
183
183
|
// Default export
|
|
184
184
|
exports.default = SigmaMemory;
|
|
185
185
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,2BAA2C;AAC3C,2BAA6B;AAC7B,+BAA4B;AAC5B,yCAA0C;AAC1C,+CAAgD;AAEhD,uDAAgD;AAEhD,MAAa,WAAW;IACP,KAAK,CAAe;IACpB,QAAQ,CAAkB;IAC1B,OAAO,CAAc;IACpB,MAAM,CAAe;IAEtC,YAAY,MAA8B;QACzC,wBAAwB;QACxB,MAAM,aAAa,GAAiB;YACnC,SAAS,EAAE,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,MAAM,EAAE,QAAQ,CAAC;YAC5C,gBAAgB,EAAE,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC;YACvD,YAAY,EAAE,IAAA,WAAI,EAAC,IAAA,YAAO,GAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC;SAC1E,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;QAE9C,sBAAsB;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,uBAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,GAAG,IAAI,6BAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,GAAG,IAAI,6BAAW,CAAC,IAAA,WAAI,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa;QACzB,MAAM,OAAO,GAA0B,EAAE,CAAC;QAE1C,mCAAmC;QACnC,IAAI,CAAC;YACJ,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9C,KAAK,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,OAAO;oBACf,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,GAAG,EAAE,qCAAqC;oBACjD,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,+BAA+B;QAChC,CAAC;QAED,qBAAqB;QACrB,IAAI,CAAC;YACJ,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,UAAU;oBAClB,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,GAAG;oBACV,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAC;gBAEH,oCAAoC;gBACpC,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACzD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;oBAClC,OAAO,CAAC,IAAI,CAAC;wBACZ,MAAM,EAAE,UAAU;wBAClB,IAAI,EAAE,UAAU;wBAChB,KAAK,EAAE,GAAG;wBACV,IAAI,EAAE,QAAQ;qBACd,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,kCAAkC;QACnC,CAAC;QAED,2BAA2B;QAC3B,IAAI,CAAC;YACJ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAC1D,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;gBACpC,OAAO,CAAC,IAAI,CAAC;oBACZ,MAAM,EAAE,SAAS;oBACjB,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;oBACnB,IAAI,EAAE,MAAM;iBACZ,CAAC,CAAC;YACJ,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,gCAAgC;QACjC,CAAC;QAED,2BAA2B;QAC3B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;QAE1C,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,IAAI;QACT,0BAA0B;QAC1B,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YACxC,IAAA,cAAS,EAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,IAAA,eAAU,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAC/C,IAAA,cAAS,EAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,iDAAiD;QACjD,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAE1B,kDAAkD;QAClD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC9B,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC3C,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;YAAC,MAAM,CAAC;gBACR,gCAAgC;YACjC,CAAC;QACF,CAAC;IACF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACX,eAAe;QACf,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QACpC,MAAM,WAAW,GAAG;YACnB,KAAK,EAAE,SAAS,CAAC,MAAM;YACvB,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9D,YAAY,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;SAC7D,CAAC;QAEF,kBAAkB;QAClB,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC5C,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,cAAc,GAAG;YACtB,QAAQ,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM;YACvC,SAAS,EAAE,aAAa,CAAC,SAAS,CAAC,MAAM;YACzC,cAAc,EAAE,aAAa,CAAC,cAAc;YAC5C,eAAe,EAAE,aAAa,CAAC,eAAe;SAC9C,CAAC;QAEF,sBAAsB;QACtB,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAE5C,OAAO;YACN,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE,WAAW;SACpB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACR,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC3B,CAAC;CACD;AAtKD,kCAsKC;AAED,qBAAqB;AACrB,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AACrB,6CAAgD;AAAvC,8GAAA,eAAe,OAAA;AACxB,6CAA2B;AAC3B,qDAAgD;AAAvC,8GAAA,WAAW,OAAA;AAEpB,iBAAiB;AACjB,kBAAe,WAAW,CAAC"}
|
package/dist/notes.d.ts
CHANGED
package/dist/notes.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"notes.d.ts","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAErD,qBAAa,YAAY;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,YAAY;IAMhC,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ/C;;OAEG;IACH,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAQ9B;;OAEG;IACH,IAAI,IAAI,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAmB3D;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAoD7E;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE;IAmB/B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;CAchD"}
|
package/dist/notes.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.NotesManager = void 0;
|
|
4
|
+
const child_process_1 = require("child_process");
|
|
4
5
|
const fs_1 = require("fs");
|
|
5
6
|
const path_1 = require("path");
|
|
6
|
-
const child_process_1 = require("child_process");
|
|
7
7
|
class NotesManager {
|
|
8
8
|
config;
|
|
9
9
|
notesDir;
|
|
10
10
|
constructor(config) {
|
|
11
11
|
this.config = config;
|
|
12
|
-
this.notesDir = (0, path_1.join)(config.memoryDir,
|
|
12
|
+
this.notesDir = (0, path_1.join)(config.memoryDir, "notes");
|
|
13
13
|
this.ensureDirectories();
|
|
14
14
|
}
|
|
15
15
|
ensureDirectories() {
|
|
@@ -24,10 +24,10 @@ class NotesManager {
|
|
|
24
24
|
* Écrit dans un fichier .md (date du jour si pas de nom)
|
|
25
25
|
*/
|
|
26
26
|
write(content, filename) {
|
|
27
|
-
const today = new Date().toISOString().split(
|
|
27
|
+
const today = new Date().toISOString().split("T")[0]; // YYYY-MM-DD
|
|
28
28
|
const file = filename || `${today}.md`;
|
|
29
29
|
const filePath = (0, path_1.join)(this.notesDir, file);
|
|
30
|
-
(0, fs_1.writeFileSync)(filePath, content,
|
|
30
|
+
(0, fs_1.writeFileSync)(filePath, content, "utf8");
|
|
31
31
|
}
|
|
32
32
|
/**
|
|
33
33
|
* Lit un fichier
|
|
@@ -37,7 +37,7 @@ class NotesManager {
|
|
|
37
37
|
if (!(0, fs_1.existsSync)(filePath)) {
|
|
38
38
|
throw new Error(`File not found: ${filename}`);
|
|
39
39
|
}
|
|
40
|
-
return (0, fs_1.readFileSync)(filePath,
|
|
40
|
+
return (0, fs_1.readFileSync)(filePath, "utf8");
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* Liste tous les fichiers .md avec leur taille et date
|
|
@@ -47,14 +47,14 @@ class NotesManager {
|
|
|
47
47
|
return [];
|
|
48
48
|
}
|
|
49
49
|
return (0, fs_1.readdirSync)(this.notesDir)
|
|
50
|
-
.filter(file => file.endsWith(
|
|
51
|
-
.map(file => {
|
|
50
|
+
.filter((file) => file.endsWith(".md"))
|
|
51
|
+
.map((file) => {
|
|
52
52
|
const filePath = (0, path_1.join)(this.notesDir, file);
|
|
53
53
|
const stats = (0, fs_1.statSync)(filePath);
|
|
54
54
|
return {
|
|
55
55
|
name: file,
|
|
56
56
|
size: stats.size,
|
|
57
|
-
date: stats.mtime.toISOString()
|
|
57
|
+
date: stats.mtime.toISOString(),
|
|
58
58
|
};
|
|
59
59
|
})
|
|
60
60
|
.sort((a, b) => b.date.localeCompare(a.date));
|
|
@@ -69,18 +69,18 @@ class NotesManager {
|
|
|
69
69
|
const results = [];
|
|
70
70
|
try {
|
|
71
71
|
// Utilise grep pour une recherche efficace
|
|
72
|
-
const grepResult = (0, child_process_1.execSync)(`grep -n "${query.replace(/"/g, '\\"')}" "${this.notesDir}"/*.md 2>/dev/null || true`, { encoding:
|
|
72
|
+
const grepResult = (0, child_process_1.execSync)(`grep -n "${query.replace(/"/g, '\\"')}" "${this.notesDir}"/*.md 2>/dev/null || true`, { encoding: "utf8" });
|
|
73
73
|
if (grepResult.trim()) {
|
|
74
|
-
const lines = grepResult.trim().split(
|
|
74
|
+
const lines = grepResult.trim().split("\n");
|
|
75
75
|
for (const line of lines) {
|
|
76
76
|
const match = line.match(/^(.+?):(\d+):(.+)$/);
|
|
77
77
|
if (match) {
|
|
78
78
|
const [, fullPath, lineNumber, content] = match;
|
|
79
|
-
const filename = fullPath.replace(this.notesDir +
|
|
79
|
+
const filename = fullPath.replace(this.notesDir + "/", "");
|
|
80
80
|
results.push({
|
|
81
81
|
file: filename,
|
|
82
82
|
line: parseInt(lineNumber),
|
|
83
|
-
content: content.trim()
|
|
83
|
+
content: content.trim(),
|
|
84
84
|
});
|
|
85
85
|
}
|
|
86
86
|
}
|
|
@@ -88,17 +88,17 @@ class NotesManager {
|
|
|
88
88
|
}
|
|
89
89
|
catch (error) {
|
|
90
90
|
// Fallback to JavaScript search if grep fails
|
|
91
|
-
const files = (0, fs_1.readdirSync)(this.notesDir).filter(f => f.endsWith(
|
|
91
|
+
const files = (0, fs_1.readdirSync)(this.notesDir).filter((f) => f.endsWith(".md"));
|
|
92
92
|
for (const file of files) {
|
|
93
93
|
const filePath = (0, path_1.join)(this.notesDir, file);
|
|
94
|
-
const content = (0, fs_1.readFileSync)(filePath,
|
|
95
|
-
const lines = content.split(
|
|
94
|
+
const content = (0, fs_1.readFileSync)(filePath, "utf8");
|
|
95
|
+
const lines = content.split("\n");
|
|
96
96
|
lines.forEach((line, index) => {
|
|
97
97
|
if (line.toLowerCase().includes(query.toLowerCase())) {
|
|
98
98
|
results.push({
|
|
99
99
|
file,
|
|
100
100
|
line: index + 1,
|
|
101
|
-
content: line.trim()
|
|
101
|
+
content: line.trim(),
|
|
102
102
|
});
|
|
103
103
|
}
|
|
104
104
|
});
|
|
@@ -112,16 +112,16 @@ class NotesManager {
|
|
|
112
112
|
getRecent(days) {
|
|
113
113
|
const cutoffDate = new Date();
|
|
114
114
|
cutoffDate.setDate(cutoffDate.getDate() - days);
|
|
115
|
-
const files = this.list().filter(file => {
|
|
115
|
+
const files = this.list().filter((file) => {
|
|
116
116
|
const fileDate = new Date(file.date);
|
|
117
117
|
return fileDate >= cutoffDate;
|
|
118
118
|
});
|
|
119
|
-
return files.map(file => {
|
|
119
|
+
return files.map((file) => {
|
|
120
120
|
const content = this.read(file.name);
|
|
121
121
|
return {
|
|
122
122
|
file: file.name,
|
|
123
123
|
date: file.date,
|
|
124
|
-
content
|
|
124
|
+
content,
|
|
125
125
|
};
|
|
126
126
|
});
|
|
127
127
|
}
|
|
@@ -129,17 +129,17 @@ class NotesManager {
|
|
|
129
129
|
* Ajoute à un fichier existant
|
|
130
130
|
*/
|
|
131
131
|
append(content, filename) {
|
|
132
|
-
const today = new Date().toISOString().split(
|
|
132
|
+
const today = new Date().toISOString().split("T")[0]; // YYYY-MM-DD
|
|
133
133
|
const file = filename || `${today}.md`;
|
|
134
134
|
const filePath = (0, path_1.join)(this.notesDir, file);
|
|
135
135
|
// Add blank line if file exists and doesn't end with one
|
|
136
136
|
if ((0, fs_1.existsSync)(filePath)) {
|
|
137
|
-
const existingContent = (0, fs_1.readFileSync)(filePath,
|
|
138
|
-
const separator = existingContent.endsWith(
|
|
139
|
-
(0, fs_1.appendFileSync)(filePath, separator + content,
|
|
137
|
+
const existingContent = (0, fs_1.readFileSync)(filePath, "utf8");
|
|
138
|
+
const separator = existingContent.endsWith("\n") ? "" : "\n";
|
|
139
|
+
(0, fs_1.appendFileSync)(filePath, separator + content, "utf8");
|
|
140
140
|
}
|
|
141
141
|
else {
|
|
142
|
-
(0, fs_1.writeFileSync)(filePath, content,
|
|
142
|
+
(0, fs_1.writeFileSync)(filePath, content, "utf8");
|
|
143
143
|
}
|
|
144
144
|
}
|
|
145
145
|
}
|
package/dist/notes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notes.js","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":";;;AAAA,2BAA+G;AAC/G,+BAAqC;
|
|
1
|
+
{"version":3,"file":"notes.js","sourceRoot":"","sources":["../src/notes.ts"],"names":[],"mappings":"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"}
|
package/dist/ontology.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MemoryConfig, OntologyEntity, OntologyRelation } from
|
|
1
|
+
import type { MemoryConfig, OntologyEntity, OntologyRelation } from "./types.js";
|
|
2
2
|
export declare class OntologyManager {
|
|
3
3
|
private config;
|
|
4
4
|
private graphPath;
|
|
@@ -13,15 +13,16 @@ export declare class OntologyManager {
|
|
|
13
13
|
/**
|
|
14
14
|
* Ajoute une entité
|
|
15
15
|
*/
|
|
16
|
-
addEntity(entity: Omit<OntologyEntity,
|
|
16
|
+
addEntity(entity: Omit<OntologyEntity, "id" | "createdAt" | "updatedAt">): string;
|
|
17
17
|
/**
|
|
18
18
|
* Ajoute une relation
|
|
19
19
|
*/
|
|
20
|
-
addRelation(relation: Omit<OntologyRelation,
|
|
20
|
+
addRelation(relation: Omit<OntologyRelation, "id" | "createdAt">): string;
|
|
21
21
|
/**
|
|
22
|
-
* Recherche par type/nom
|
|
22
|
+
* Recherche par id/type/nom
|
|
23
23
|
*/
|
|
24
24
|
findEntity(query: {
|
|
25
|
+
id?: string;
|
|
25
26
|
type?: string;
|
|
26
27
|
name?: string;
|
|
27
28
|
}): OntologyEntity[];
|
package/dist/ontology.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ontology.d.ts","sourceRoot":"","sources":["../src/ontology.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"ontology.d.ts","sourceRoot":"","sources":["../src/ontology.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACX,YAAY,EAEZ,cAAc,EAGd,gBAAgB,EAEhB,MAAM,YAAY,CAAC;AAEpB,qBAAa,eAAe;IAC3B,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAA0C;IAC1D,OAAO,CAAC,SAAS,CAA4C;IAC7D,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,YAAY;IAMhC,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,SAAS;IAgEjB,OAAO,CAAC,YAAY;IAMpB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,GAAG,WAAW,GAAG,WAAW,CAAC,GAAG,MAAM;IAwBjF;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,MAAM;IA+BzE;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,cAAc,EAAE;IA8BlF;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,EAAE;IAcnD;;OAEG;IACH,QAAQ,IAAI;QAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAAC,SAAS,EAAE,gBAAgB,EAAE,CAAA;KAAE;IASzE;;OAEG;IACH,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IA2B9B;;OAEG;IACH,SAAS,CACR,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,SAAI,GACV,KAAK,CAAC;QAAE,MAAM,EAAE,cAAc,CAAC;QAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAA;KAAE,CAAC,GAAG,IAAI;IAmExE;;OAEG;IACH,MAAM,IAAI;QAAE,QAAQ,EAAE,cAAc,EAAE,CAAC;QAAC,SAAS,EAAE,gBAAgB,EAAE,CAAA;KAAE;IAIvE;;OAEG;IACH,KAAK,IAAI;QAAE,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE;CAgB5F"}
|
package/dist/ontology.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.OntologyManager = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
4
5
|
const fs_1 = require("fs");
|
|
5
6
|
const path_1 = require("path");
|
|
6
|
-
const crypto_1 = require("crypto");
|
|
7
7
|
class OntologyManager {
|
|
8
8
|
config;
|
|
9
9
|
graphPath;
|
|
@@ -22,7 +22,7 @@ class OntologyManager {
|
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
generateId() {
|
|
25
|
-
return (0, crypto_1.randomBytes)(16).toString(
|
|
25
|
+
return (0, crypto_1.randomBytes)(16).toString("hex");
|
|
26
26
|
}
|
|
27
27
|
loadGraph() {
|
|
28
28
|
if (this.loaded)
|
|
@@ -33,33 +33,36 @@ class OntologyManager {
|
|
|
33
33
|
this.loaded = true;
|
|
34
34
|
return;
|
|
35
35
|
}
|
|
36
|
-
const content = (0, fs_1.readFileSync)(this.graphPath,
|
|
37
|
-
const lines = content
|
|
36
|
+
const content = (0, fs_1.readFileSync)(this.graphPath, "utf8");
|
|
37
|
+
const lines = content
|
|
38
|
+
.trim()
|
|
39
|
+
.split("\n")
|
|
40
|
+
.filter((line) => line.trim());
|
|
38
41
|
for (const line of lines) {
|
|
39
42
|
try {
|
|
40
43
|
const entry = JSON.parse(line);
|
|
41
44
|
switch (entry.kind) {
|
|
42
|
-
case
|
|
45
|
+
case "entity":
|
|
43
46
|
this.entities.set(entry.id, {
|
|
44
47
|
id: entry.id,
|
|
45
48
|
type: entry.type,
|
|
46
49
|
name: entry.name,
|
|
47
50
|
properties: entry.properties,
|
|
48
51
|
createdAt: entry.createdAt,
|
|
49
|
-
updatedAt: entry.updatedAt
|
|
52
|
+
updatedAt: entry.updatedAt,
|
|
50
53
|
});
|
|
51
54
|
break;
|
|
52
|
-
case
|
|
55
|
+
case "relation":
|
|
53
56
|
this.relations.set(entry.id, {
|
|
54
57
|
id: entry.id,
|
|
55
58
|
from: entry.from,
|
|
56
59
|
to: entry.to,
|
|
57
60
|
type: entry.type,
|
|
58
61
|
properties: entry.properties,
|
|
59
|
-
createdAt: entry.createdAt
|
|
62
|
+
createdAt: entry.createdAt,
|
|
60
63
|
});
|
|
61
64
|
break;
|
|
62
|
-
case
|
|
65
|
+
case "delete":
|
|
63
66
|
// Delete entity or relation
|
|
64
67
|
this.entities.delete(entry.targetId);
|
|
65
68
|
this.relations.delete(entry.targetId);
|
|
@@ -80,8 +83,8 @@ class OntologyManager {
|
|
|
80
83
|
}
|
|
81
84
|
appendToFile(entry) {
|
|
82
85
|
this.ensureDirectories();
|
|
83
|
-
const line = JSON.stringify(entry) +
|
|
84
|
-
(0, fs_1.appendFileSync)(this.graphPath, line,
|
|
86
|
+
const line = JSON.stringify(entry) + "\n";
|
|
87
|
+
(0, fs_1.appendFileSync)(this.graphPath, line, "utf8");
|
|
85
88
|
}
|
|
86
89
|
/**
|
|
87
90
|
* Ajoute une entité
|
|
@@ -94,12 +97,12 @@ class OntologyManager {
|
|
|
94
97
|
...entity,
|
|
95
98
|
id,
|
|
96
99
|
createdAt: now,
|
|
97
|
-
updatedAt: now
|
|
100
|
+
updatedAt: now,
|
|
98
101
|
};
|
|
99
102
|
this.entities.set(id, newEntity);
|
|
100
103
|
const entry = {
|
|
101
|
-
kind:
|
|
102
|
-
...newEntity
|
|
104
|
+
kind: "entity",
|
|
105
|
+
...newEntity,
|
|
103
106
|
};
|
|
104
107
|
this.appendToFile(entry);
|
|
105
108
|
return id;
|
|
@@ -121,21 +124,26 @@ class OntologyManager {
|
|
|
121
124
|
const newRelation = {
|
|
122
125
|
...relation,
|
|
123
126
|
id,
|
|
124
|
-
createdAt: now
|
|
127
|
+
createdAt: now,
|
|
125
128
|
};
|
|
126
129
|
this.relations.set(id, newRelation);
|
|
127
130
|
const entry = {
|
|
128
|
-
kind:
|
|
129
|
-
...newRelation
|
|
131
|
+
kind: "relation",
|
|
132
|
+
...newRelation,
|
|
130
133
|
};
|
|
131
134
|
this.appendToFile(entry);
|
|
132
135
|
return id;
|
|
133
136
|
}
|
|
134
137
|
/**
|
|
135
|
-
* Recherche par type/nom
|
|
138
|
+
* Recherche par id/type/nom
|
|
136
139
|
*/
|
|
137
140
|
findEntity(query) {
|
|
138
141
|
this.loadGraph();
|
|
142
|
+
// Direct ID lookup - return exact match
|
|
143
|
+
if (query.id) {
|
|
144
|
+
const entity = this.entities.get(query.id);
|
|
145
|
+
return entity ? [entity] : [];
|
|
146
|
+
}
|
|
139
147
|
const results = [];
|
|
140
148
|
for (const entity of this.entities.values()) {
|
|
141
149
|
let matches = true;
|
|
@@ -171,7 +179,7 @@ class OntologyManager {
|
|
|
171
179
|
this.loadGraph();
|
|
172
180
|
return {
|
|
173
181
|
entities: Array.from(this.entities.values()),
|
|
174
|
-
relations: Array.from(this.relations.values())
|
|
182
|
+
relations: Array.from(this.relations.values()),
|
|
175
183
|
};
|
|
176
184
|
}
|
|
177
185
|
/**
|
|
@@ -184,9 +192,9 @@ class OntologyManager {
|
|
|
184
192
|
}
|
|
185
193
|
// Mark as deleted in file
|
|
186
194
|
const deleteEntry = {
|
|
187
|
-
kind:
|
|
195
|
+
kind: "delete",
|
|
188
196
|
targetId: id,
|
|
189
|
-
deletedAt: new Date().toISOString()
|
|
197
|
+
deletedAt: new Date().toISOString(),
|
|
190
198
|
};
|
|
191
199
|
this.appendToFile(deleteEntry);
|
|
192
200
|
// Remove from memory
|
|
@@ -211,7 +219,7 @@ class OntologyManager {
|
|
|
211
219
|
}
|
|
212
220
|
// BFS pour trouver le chemin le plus court
|
|
213
221
|
const queue = [
|
|
214
|
-
{ entityId: fromId, path: [{ entity: this.entities.get(fromId) }] }
|
|
222
|
+
{ entityId: fromId, path: [{ entity: this.entities.get(fromId) }] },
|
|
215
223
|
];
|
|
216
224
|
const visited = new Set([fromId]);
|
|
217
225
|
while (queue.length > 0) {
|
|
@@ -231,7 +239,7 @@ class OntologyManager {
|
|
|
231
239
|
visited.add(targetId);
|
|
232
240
|
queue.push({
|
|
233
241
|
entityId: targetId,
|
|
234
|
-
path: [...path, { entity: this.entities.get(targetId), relation }]
|
|
242
|
+
path: [...path, { entity: this.entities.get(targetId), relation }],
|
|
235
243
|
});
|
|
236
244
|
}
|
|
237
245
|
}
|
|
@@ -246,7 +254,7 @@ class OntologyManager {
|
|
|
246
254
|
visited.add(targetId);
|
|
247
255
|
queue.push({
|
|
248
256
|
entityId: targetId,
|
|
249
|
-
path: [...path, { entity: this.entities.get(targetId), relation }]
|
|
257
|
+
path: [...path, { entity: this.entities.get(targetId), relation }],
|
|
250
258
|
});
|
|
251
259
|
}
|
|
252
260
|
}
|
package/dist/ontology.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ontology.js","sourceRoot":"","sources":["../src/ontology.ts"],"names":[],"mappings":";;;AAAA,2BAAwF;AACxF,+BAAqC;
|
|
1
|
+
{"version":3,"file":"ontology.js","sourceRoot":"","sources":["../src/ontology.ts"],"names":[],"mappings":"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"}
|