n8n-nodes-engram 0.3.1 → 0.4.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/README.md +35 -3
- package/dist/extraction/EntityExtractor.js +11 -2
- package/dist/extraction/EntityExtractor.js.map +1 -1
- package/dist/extraction/ExtractionPipeline.js +20 -0
- package/dist/extraction/ExtractionPipeline.js.map +1 -1
- package/dist/extraction/RelationshipExtractor.js +13 -3
- package/dist/extraction/RelationshipExtractor.js.map +1 -1
- package/dist/memory/EngramChatMemory.d.ts +2 -2
- package/dist/memory/EngramChatMemory.js +1 -1
- package/dist/memory/EngramChatMemory.js.map +1 -1
- package/dist/nodes/EngramAdmin/EngramAdmin.node.js +467 -26
- package/dist/nodes/EngramAdmin/EngramAdmin.node.js.map +1 -1
- package/dist/nodes/EngramExplorer/EngramExplorer.node.js +23 -6
- package/dist/nodes/EngramExplorer/EngramExplorer.node.js.map +1 -1
- package/dist/schemas/GraphData.schema.d.ts +38 -0
- package/dist/schemas/GraphData.schema.js +10 -0
- package/dist/schemas/GraphData.schema.js.map +1 -1
- package/dist/storage/GraphologyStorage.d.ts +6 -0
- package/dist/storage/GraphologyStorage.js +85 -3
- package/dist/storage/GraphologyStorage.js.map +1 -1
- package/dist/storage/IGraphStorage.d.ts +4 -0
- package/dist/storage/Neo4jStorage.js.map +1 -1
- package/dist/utils/helpers.d.ts +2 -2
- package/dist/utils/helpers.js +1 -1
- package/dist/utils/helpers.js.map +1 -1
- package/dist/utils/logWrapper.d.ts +1 -1
- package/docs/images/architecture.svg +118 -0
- package/docs/images/engram-admin-actions.png +0 -0
- package/docs/images/engram-admin-diagnostics-output.png +0 -0
- package/docs/images/engram-explorer-actions.png +0 -0
- package/docs/images/engram-memory-node.png +0 -0
- package/docs/images/engram-node-picker.png +0 -0
- package/docs/images/engram-trigger-node.png +0 -0
- package/docs/images/logo.png +0 -0
- package/docs/production-neo4j.md +55 -0
- package/docs/workflows/admin-diagnostics.json +45 -0
- package/docs/workflows/embedded-memory-starter.json +74 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -53,7 +53,7 @@ Every conversation is stored as an episode. An optional LLM extraction pipeline
|
|
|
53
53
|
| **2** | Storage Backends | Embedded (zero-setup) or Neo4j (production) |
|
|
54
54
|
| **5** | Extraction Stages | Entity, dedup, relationships, contradictions, embeddings |
|
|
55
55
|
| **3** | Search Modes | Full-text, vector, hybrid RRF fusion |
|
|
56
|
-
| **
|
|
56
|
+
| **253** | Tests | Unit + integration across 26 test suites |
|
|
57
57
|
|
|
58
58
|
---
|
|
59
59
|
|
|
@@ -65,6 +65,24 @@ Every conversation is stored as an episode. An optional LLM extraction pipeline
|
|
|
65
65
|
|
|
66
66
|
---
|
|
67
67
|
|
|
68
|
+
## Screenshots
|
|
69
|
+
|
|
70
|
+
Captured from a disposable local n8n instance with `n8n-nodes-engram` installed from the packed package.
|
|
71
|
+
|
|
72
|
+
| Installed nodes | AI Memory node |
|
|
73
|
+
| --- | --- |
|
|
74
|
+
| <img src="docs/images/engram-node-picker.png" alt="Engram nodes in the n8n node picker" /> | <img src="docs/images/engram-memory-node.png" alt="Engram Memory node parameters" /> |
|
|
75
|
+
|
|
76
|
+
| Explorer actions | Admin operations |
|
|
77
|
+
| --- | --- |
|
|
78
|
+
| <img src="docs/images/engram-explorer-actions.png" alt="Engram Explorer actions in n8n" /> | <img src="docs/images/engram-admin-actions.png" alt="Engram Admin monitoring and hygiene actions in n8n" /> |
|
|
79
|
+
|
|
80
|
+
| Admin diagnostics output | Graph event trigger |
|
|
81
|
+
| --- | --- |
|
|
82
|
+
| <img src="docs/images/engram-admin-diagnostics-output.png" alt="Engram Admin diagnostics output" /> | <img src="docs/images/engram-trigger-node.png" alt="Engram Trigger events in n8n" /> |
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
68
86
|
## Installation
|
|
69
87
|
|
|
70
88
|
### Via n8n Community Nodes
|
|
@@ -146,9 +164,9 @@ On each conversation turn, Engram Memory:
|
|
|
146
164
|
|
|
147
165
|
| Resource | Operations |
|
|
148
166
|
| --- | --- |
|
|
149
|
-
| **Monitoring** | Stats, List Groups, Group Stats |
|
|
167
|
+
| **Monitoring** | Stats, List Groups, Group Stats, Embedding Coverage, Diagnostics |
|
|
150
168
|
| **Lifecycle** | Apply Retention, Clear Group, Bulk Clear Groups, Clear All |
|
|
151
|
-
| **Hygiene** | Orphaned Entities, Duplicate Entities, Expire Stale Edges |
|
|
169
|
+
| **Hygiene** | Orphaned Entities, Duplicate Entities, Expire Stale Edges, Rebuild Search Index, Backfill Embeddings |
|
|
152
170
|
| **Portability** | Export, Import |
|
|
153
171
|
| **Analysis** | Detect Communities |
|
|
154
172
|
|
|
@@ -156,6 +174,18 @@ On each conversation turn, Engram Memory:
|
|
|
156
174
|
|
|
157
175
|
> Polling trigger—fires when new entities, relationships, or episodes appear in the graph.
|
|
158
176
|
|
|
177
|
+
### Operational Diagnostics
|
|
178
|
+
|
|
179
|
+
Engram Admin includes a read-only **Monitoring > Diagnostics** operation for production checks. By default it returns quick storage and graph counts only. Optional deep checks scan the full graph to report embedding coverage, expired/invalidated edges, dangling edges, and duplicate entity-name groups.
|
|
180
|
+
|
|
181
|
+
Use **Monitoring > Embedding Coverage** to check whether entities and facts have vectors before enabling hybrid search broadly. Use **Hygiene > Rebuild Search Index** to rebuild the embedded full-text index from stored graph data. Use **Hygiene > Backfill Embeddings** in dry-run mode first, then disable dry-run to fill missing embeddings with the configured embedding model.
|
|
182
|
+
|
|
183
|
+
### Import, Export, and Backups
|
|
184
|
+
|
|
185
|
+
Engram exports include count metadata and a SHA-256 checksum. Imports support **Dry Run** mode, optional maximum item limits, checksum verification, and dangling-edge warnings before writing data.
|
|
186
|
+
|
|
187
|
+
For production Neo4j deployments, see [`docs/production-neo4j.md`](docs/production-neo4j.md). Ready-to-import starter workflows are available in [`docs/workflows/`](docs/workflows/).
|
|
188
|
+
|
|
159
189
|
---
|
|
160
190
|
|
|
161
191
|
## Storage Backends
|
|
@@ -194,6 +224,8 @@ User message + AI response
|
|
|
194
224
|
|
|
195
225
|
**Configurable entity types**: `person`, `organization`, `location`, `concept`, `event`, or custom types.
|
|
196
226
|
|
|
227
|
+
Extracted entities and relationships include `attributes.engram_extraction` provenance metadata with source, extraction timestamp, confidence placeholder, review status, and related episode UUIDs where available.
|
|
228
|
+
|
|
197
229
|
---
|
|
198
230
|
|
|
199
231
|
## Search
|
|
@@ -18,10 +18,19 @@ class EntityExtractor {
|
|
|
18
18
|
if (!result.entities || !Array.isArray(result.entities)) {
|
|
19
19
|
return [];
|
|
20
20
|
}
|
|
21
|
-
|
|
21
|
+
const allowedTypes = new Set(entityTypes.map((type) => type.toLowerCase().trim()));
|
|
22
|
+
return result.entities
|
|
23
|
+
.filter((e) => typeof e.name === 'string' &&
|
|
22
24
|
e.name.trim() !== '' &&
|
|
23
25
|
typeof e.entity_type === 'string' &&
|
|
24
|
-
|
|
26
|
+
e.entity_type.trim() !== '' &&
|
|
27
|
+
typeof e.summary === 'string' &&
|
|
28
|
+
(allowedTypes.size === 0 || allowedTypes.has(e.entity_type.toLowerCase().trim())))
|
|
29
|
+
.map((e) => ({
|
|
30
|
+
name: e.name.trim(),
|
|
31
|
+
entity_type: e.entity_type.trim(),
|
|
32
|
+
summary: e.summary.trim(),
|
|
33
|
+
}));
|
|
25
34
|
}
|
|
26
35
|
catch (error) {
|
|
27
36
|
console.warn('Engram: Entity extraction failed:', error.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityExtractor.js","sourceRoot":"","sources":["../../src/extraction/EntityExtractor.ts"],"names":[],"mappings":";;;AACA,uCAA2E;AAY3E,MAAa,eAAe;IAG1B,YAAY,GAAc;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CACX,YAAoB,EACpB,SAAiB,EACjB,WAAqB,EACrB,gBAA0B;QAE1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAyB;gBAC7D,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kCAAwB,EAAE;gBACrD;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAA,8BAAoB,EAAC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC;iBACtF;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,OAAO,MAAM,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"EntityExtractor.js","sourceRoot":"","sources":["../../src/extraction/EntityExtractor.ts"],"names":[],"mappings":";;;AACA,uCAA2E;AAY3E,MAAa,eAAe;IAG1B,YAAY,GAAc;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CACX,YAAoB,EACpB,SAAiB,EACjB,WAAqB,EACrB,gBAA0B;QAE1B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAyB;gBAC7D,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,kCAAwB,EAAE;gBACrD;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAA,8BAAoB,EAAC,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,gBAAgB,CAAC;iBACtF;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxD,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAEnF,OAAO,MAAM,CAAC,QAAQ;iBACnB,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAC1B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBACpB,OAAO,CAAC,CAAC,WAAW,KAAK,QAAQ;gBACjC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC3B,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;gBAC7B,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CACpF;iBACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;gBACnB,WAAW,EAAE,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE;gBACjC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE;aAC1B,CAAC,CAAC,CAAC;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,OAAO,CAAC,IAAI,CAAC,mCAAmC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YAC5E,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AAjDD,0CAiDC"}
|
|
@@ -9,6 +9,7 @@ const ContradictionDetector_1 = require("./ContradictionDetector");
|
|
|
9
9
|
const EdgeDeduplicator_1 = require("./EdgeDeduplicator");
|
|
10
10
|
const embeddings_1 = require("../embeddings");
|
|
11
11
|
const temporal_1 = require("../utils/temporal");
|
|
12
|
+
const EXTRACTION_METADATA_VERSION = 1;
|
|
12
13
|
class ExtractionPipeline {
|
|
13
14
|
constructor(storage, config) {
|
|
14
15
|
this.embeddingService = null;
|
|
@@ -76,6 +77,15 @@ class ExtractionPipeline {
|
|
|
76
77
|
summary: extracted.summary,
|
|
77
78
|
entity_type: extracted.entity_type,
|
|
78
79
|
name_embedding: nameEmbedding !== null && nameEmbedding !== void 0 ? nameEmbedding : null,
|
|
80
|
+
attributes: {
|
|
81
|
+
engram_extraction: {
|
|
82
|
+
version: EXTRACTION_METADATA_VERSION,
|
|
83
|
+
source: 'llm',
|
|
84
|
+
confidence: null,
|
|
85
|
+
reviewed: false,
|
|
86
|
+
extracted_at: (0, temporal_1.nowIso)(),
|
|
87
|
+
},
|
|
88
|
+
},
|
|
79
89
|
});
|
|
80
90
|
}
|
|
81
91
|
async expireContradictedEdges(edges, newFact, sourceEntityName, targetEntityName, newEdgeName) {
|
|
@@ -170,6 +180,16 @@ class ExtractionPipeline {
|
|
|
170
180
|
fact_embedding: factEmbedding !== null && factEmbedding !== void 0 ? factEmbedding : null,
|
|
171
181
|
valid_at: (0, temporal_1.nowIso)(),
|
|
172
182
|
episodes: episodeUuids,
|
|
183
|
+
attributes: {
|
|
184
|
+
engram_extraction: {
|
|
185
|
+
version: EXTRACTION_METADATA_VERSION,
|
|
186
|
+
source: 'llm',
|
|
187
|
+
confidence: null,
|
|
188
|
+
reviewed: false,
|
|
189
|
+
extracted_at: (0, temporal_1.nowIso)(),
|
|
190
|
+
episode_uuids: episodeUuids,
|
|
191
|
+
},
|
|
192
|
+
},
|
|
173
193
|
});
|
|
174
194
|
}
|
|
175
195
|
async buildEdgeUpdates(existingEdge, effectiveFact, episodeUuids) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExtractionPipeline.js","sourceRoot":"","sources":["../../src/extraction/ExtractionPipeline.ts"],"names":[],"mappings":";;;AAEA,2CAA8D;AAC9D,uDAAoD;AACpD,mEAAgE;AAChE,6DAA0D;AAC1D,mEAAgE;AAChE,yDAAsD;AACtD,8CAAuE;AACvE,gDAA2C;
|
|
1
|
+
{"version":3,"file":"ExtractionPipeline.js","sourceRoot":"","sources":["../../src/extraction/ExtractionPipeline.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,12 +21,22 @@ class RelationshipExtractor {
|
|
|
21
21
|
return [];
|
|
22
22
|
}
|
|
23
23
|
const entitySet = new Set(entityNames.map((n) => n.toLowerCase()));
|
|
24
|
-
return result.relationships
|
|
24
|
+
return result.relationships
|
|
25
|
+
.filter((r) => typeof r.source_entity === 'string' &&
|
|
25
26
|
typeof r.target_entity === 'string' &&
|
|
26
27
|
typeof r.name === 'string' &&
|
|
28
|
+
r.name.trim() !== '' &&
|
|
27
29
|
typeof r.fact === 'string' &&
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
r.fact.trim() !== '' &&
|
|
31
|
+
r.source_entity.toLowerCase().trim() !== r.target_entity.toLowerCase().trim() &&
|
|
32
|
+
entitySet.has(r.source_entity.toLowerCase().trim()) &&
|
|
33
|
+
entitySet.has(r.target_entity.toLowerCase().trim()))
|
|
34
|
+
.map((r) => ({
|
|
35
|
+
source_entity: r.source_entity.trim(),
|
|
36
|
+
target_entity: r.target_entity.trim(),
|
|
37
|
+
name: r.name.trim(),
|
|
38
|
+
fact: r.fact.trim(),
|
|
39
|
+
}));
|
|
30
40
|
}
|
|
31
41
|
catch (error) {
|
|
32
42
|
console.warn('Engram: Relationship extraction failed:', error.message);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RelationshipExtractor.js","sourceRoot":"","sources":["../../src/extraction/RelationshipExtractor.ts"],"names":[],"mappings":";;;AACA,uCAAuF;AAavF,MAAa,qBAAqB;IAGhC,YAAY,GAAc;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CACX,YAAoB,EACpB,SAAiB,EACjB,WAAqB;QAErB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAEtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAA+B;gBACnE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,wCAA8B,EAAE;gBAC3D;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAA,oCAA0B,EAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC;iBAC1E;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClE,OAAO,EAAE,CAAC;YACZ,CAAC;YAGD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACnE,OAAO,MAAM,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"RelationshipExtractor.js","sourceRoot":"","sources":["../../src/extraction/RelationshipExtractor.ts"],"names":[],"mappings":";;;AACA,uCAAuF;AAavF,MAAa,qBAAqB;IAGhC,YAAY,GAAc;QACxB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,OAAO,CACX,YAAoB,EACpB,SAAiB,EACjB,WAAqB;QAErB,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAEtC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAA+B;gBACnE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,wCAA8B,EAAE;gBAC3D;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAA,oCAA0B,EAAC,YAAY,EAAE,SAAS,EAAE,WAAW,CAAC;iBAC1E;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,aAAa,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClE,OAAO,EAAE,CAAC;YACZ,CAAC;YAGD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACnE,OAAO,MAAM,CAAC,aAAa;iBACxB,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CACJ,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ;gBACnC,OAAO,CAAC,CAAC,aAAa,KAAK,QAAQ;gBACnC,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAC1B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBACpB,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAC1B,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE;gBACpB,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;gBAC7E,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;gBACnD,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CACtD;iBACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACX,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;gBACrC,aAAa,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;gBACrC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;gBACnB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;aACpB,CAAC,CAAC,CAAC;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,yCAAyC,EAAG,KAAe,CAAC,OAAO,CAAC,CAAC;YAClF,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF;AArDD,sDAqDC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { BaseChatMemory } from '@langchain/
|
|
2
|
-
import type { BaseChatMemoryInput } from '@langchain/
|
|
1
|
+
import { BaseChatMemory } from '@langchain/classic/memory/chat_memory';
|
|
2
|
+
import type { BaseChatMemoryInput } from '@langchain/classic/memory/chat_memory';
|
|
3
3
|
import { type InputValues, type MemoryVariables, type OutputValues } from '@langchain/core/memory';
|
|
4
4
|
import type { IGraphStorage } from '../storage/IGraphStorage';
|
|
5
5
|
import { type EmbeddingConfig } from '../embeddings';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EngramChatMemory = void 0;
|
|
4
|
-
const chat_memory_1 = require("@langchain/
|
|
4
|
+
const chat_memory_1 = require("@langchain/classic/memory/chat_memory");
|
|
5
5
|
const memory_1 = require("@langchain/core/memory");
|
|
6
6
|
const messages_1 = require("@langchain/core/messages");
|
|
7
7
|
const EngramChatMessageHistory_1 = require("./EngramChatMessageHistory");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngramChatMemory.js","sourceRoot":"","sources":["../../src/memory/EngramChatMemory.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"EngramChatMemory.js","sourceRoot":"","sources":["../../src/memory/EngramChatMemory.ts"],"names":[],"mappings":"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"}
|