@framers/agentos 0.2.12 → 0.3.1

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.
Files changed (178) hide show
  1. package/dist/ingest-router/executors/EntityExtractor.d.ts +23 -0
  2. package/dist/ingest-router/executors/EntityExtractor.d.ts.map +1 -0
  3. package/dist/ingest-router/executors/EntityExtractor.js +69 -0
  4. package/dist/ingest-router/executors/EntityExtractor.js.map +1 -0
  5. package/dist/ingest-router/executors/EntityLinkingIngestExecutor.d.ts +46 -0
  6. package/dist/ingest-router/executors/EntityLinkingIngestExecutor.d.ts.map +1 -0
  7. package/dist/ingest-router/executors/EntityLinkingIngestExecutor.js +45 -0
  8. package/dist/ingest-router/executors/EntityLinkingIngestExecutor.js.map +1 -0
  9. package/dist/ingest-router/executors/entity-types.d.ts +55 -0
  10. package/dist/ingest-router/executors/entity-types.d.ts.map +1 -0
  11. package/dist/ingest-router/executors/entity-types.js +17 -0
  12. package/dist/ingest-router/executors/entity-types.js.map +1 -0
  13. package/dist/ingest-router/executors/index.d.ts +7 -0
  14. package/dist/ingest-router/executors/index.d.ts.map +1 -1
  15. package/dist/ingest-router/executors/index.js +6 -0
  16. package/dist/ingest-router/executors/index.js.map +1 -1
  17. package/dist/ingest-router/index.d.ts +2 -2
  18. package/dist/ingest-router/index.d.ts.map +1 -1
  19. package/dist/ingest-router/index.js +1 -1
  20. package/dist/ingest-router/index.js.map +1 -1
  21. package/dist/memory/AgentMemory.js +1 -1
  22. package/dist/memory/AgentMemory.js.map +1 -1
  23. package/dist/memory/CognitiveMemoryManager.js +4 -4
  24. package/dist/memory/CognitiveMemoryManager.js.map +1 -1
  25. package/dist/memory/archive/IMemoryArchive.d.ts +2 -2
  26. package/dist/memory/archive/SqlStorageMemoryArchive.d.ts +17 -13
  27. package/dist/memory/archive/SqlStorageMemoryArchive.d.ts.map +1 -1
  28. package/dist/memory/archive/SqlStorageMemoryArchive.js +36 -28
  29. package/dist/memory/archive/SqlStorageMemoryArchive.js.map +1 -1
  30. package/dist/memory/core/config.d.ts +4 -4
  31. package/dist/memory/core/config.d.ts.map +1 -1
  32. package/dist/memory/index.d.ts +3 -3
  33. package/dist/memory/index.d.ts.map +1 -1
  34. package/dist/memory/index.js +3 -3
  35. package/dist/memory/index.js.map +1 -1
  36. package/dist/memory/io/ChatGptImporter.d.ts +5 -5
  37. package/dist/memory/io/ChatGptImporter.d.ts.map +1 -1
  38. package/dist/memory/io/ChatGptImporter.js +9 -7
  39. package/dist/memory/io/ChatGptImporter.js.map +1 -1
  40. package/dist/memory/io/CsvImporter.d.ts +4 -4
  41. package/dist/memory/io/CsvImporter.d.ts.map +1 -1
  42. package/dist/memory/io/CsvImporter.js +11 -8
  43. package/dist/memory/io/CsvImporter.js.map +1 -1
  44. package/dist/memory/io/JsonExporter.d.ts +5 -5
  45. package/dist/memory/io/JsonExporter.d.ts.map +1 -1
  46. package/dist/memory/io/JsonExporter.js +13 -12
  47. package/dist/memory/io/JsonExporter.js.map +1 -1
  48. package/dist/memory/io/JsonImporter.d.ts +5 -5
  49. package/dist/memory/io/JsonImporter.d.ts.map +1 -1
  50. package/dist/memory/io/JsonImporter.js +50 -34
  51. package/dist/memory/io/JsonImporter.js.map +1 -1
  52. package/dist/memory/io/MarkdownExporter.d.ts +4 -4
  53. package/dist/memory/io/MarkdownExporter.d.ts.map +1 -1
  54. package/dist/memory/io/MarkdownExporter.js +1 -1
  55. package/dist/memory/io/MarkdownExporter.js.map +1 -1
  56. package/dist/memory/io/MarkdownImporter.d.ts +6 -6
  57. package/dist/memory/io/MarkdownImporter.d.ts.map +1 -1
  58. package/dist/memory/io/MarkdownImporter.js +8 -7
  59. package/dist/memory/io/MarkdownImporter.js.map +1 -1
  60. package/dist/memory/io/ObsidianImporter.d.ts +4 -4
  61. package/dist/memory/io/ObsidianImporter.d.ts.map +1 -1
  62. package/dist/memory/io/ObsidianImporter.js +15 -10
  63. package/dist/memory/io/ObsidianImporter.js.map +1 -1
  64. package/dist/memory/io/SqliteExporter.d.ts +5 -5
  65. package/dist/memory/io/SqliteExporter.d.ts.map +1 -1
  66. package/dist/memory/io/SqliteExporter.js +3 -3
  67. package/dist/memory/io/SqliteExporter.js.map +1 -1
  68. package/dist/memory/io/SqliteImporter.d.ts +4 -4
  69. package/dist/memory/io/SqliteImporter.d.ts.map +1 -1
  70. package/dist/memory/io/SqliteImporter.js +23 -16
  71. package/dist/memory/io/SqliteImporter.js.map +1 -1
  72. package/dist/memory/io/facade/Memory.d.ts +58 -10
  73. package/dist/memory/io/facade/Memory.d.ts.map +1 -1
  74. package/dist/memory/io/facade/Memory.js +124 -50
  75. package/dist/memory/io/facade/Memory.js.map +1 -1
  76. package/dist/memory/io/facade/types.d.ts +1 -1
  77. package/dist/memory/io/index.d.ts +2 -2
  78. package/dist/memory/io/index.js +2 -2
  79. package/dist/memory/io/tools/MemoryAddTool.d.ts +2 -2
  80. package/dist/memory/io/tools/MemoryAddTool.d.ts.map +1 -1
  81. package/dist/memory/io/tools/MemoryAddTool.js +2 -2
  82. package/dist/memory/io/tools/MemoryAddTool.js.map +1 -1
  83. package/dist/memory/io/tools/MemoryDeleteTool.d.ts +2 -2
  84. package/dist/memory/io/tools/MemoryDeleteTool.d.ts.map +1 -1
  85. package/dist/memory/io/tools/MemoryDeleteTool.js +1 -1
  86. package/dist/memory/io/tools/MemoryDeleteTool.js.map +1 -1
  87. package/dist/memory/io/tools/MemoryMergeTool.d.ts +2 -2
  88. package/dist/memory/io/tools/MemoryMergeTool.d.ts.map +1 -1
  89. package/dist/memory/io/tools/MemoryMergeTool.js +4 -3
  90. package/dist/memory/io/tools/MemoryMergeTool.js.map +1 -1
  91. package/dist/memory/io/tools/MemoryReflectTool.d.ts +2 -2
  92. package/dist/memory/io/tools/MemoryReflectTool.d.ts.map +1 -1
  93. package/dist/memory/io/tools/MemoryReflectTool.js.map +1 -1
  94. package/dist/memory/io/tools/MemorySearchTool.d.ts +2 -2
  95. package/dist/memory/io/tools/MemorySearchTool.d.ts.map +1 -1
  96. package/dist/memory/io/tools/MemorySearchTool.js.map +1 -1
  97. package/dist/memory/io/tools/MemoryUpdateTool.d.ts +2 -2
  98. package/dist/memory/io/tools/MemoryUpdateTool.d.ts.map +1 -1
  99. package/dist/memory/io/tools/MemoryUpdateTool.js +5 -4
  100. package/dist/memory/io/tools/MemoryUpdateTool.js.map +1 -1
  101. package/dist/memory/pipeline/consolidation/ConsolidationLoop.d.ts +3 -3
  102. package/dist/memory/pipeline/consolidation/ConsolidationLoop.d.ts.map +1 -1
  103. package/dist/memory/pipeline/consolidation/ConsolidationLoop.js +22 -17
  104. package/dist/memory/pipeline/consolidation/ConsolidationLoop.js.map +1 -1
  105. package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.d.ts +3 -3
  106. package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.d.ts.map +1 -1
  107. package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.js +15 -12
  108. package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.js.map +1 -1
  109. package/dist/memory/retrieval/graph/index.d.ts +0 -1
  110. package/dist/memory/retrieval/graph/index.d.ts.map +1 -1
  111. package/dist/memory/retrieval/graph/index.js +4 -1
  112. package/dist/memory/retrieval/graph/index.js.map +1 -1
  113. package/dist/memory/retrieval/store/{SqliteBrain.d.ts → Brain.d.ts} +106 -23
  114. package/dist/memory/retrieval/store/Brain.d.ts.map +1 -0
  115. package/dist/memory/retrieval/store/Brain.js +898 -0
  116. package/dist/memory/retrieval/store/Brain.js.map +1 -0
  117. package/dist/memory/retrieval/store/HnswSidecar.d.ts +1 -1
  118. package/dist/memory/retrieval/store/HnswSidecar.js +1 -1
  119. package/dist/memory/retrieval/store/MemoryStore.d.ts +6 -6
  120. package/dist/memory/retrieval/store/MemoryStore.d.ts.map +1 -1
  121. package/dist/memory/retrieval/store/MemoryStore.js +10 -9
  122. package/dist/memory/retrieval/store/MemoryStore.js.map +1 -1
  123. package/dist/memory/retrieval/store/{SqliteKnowledgeGraph.d.ts → SqlKnowledgeGraph.d.ts} +12 -12
  124. package/dist/memory/retrieval/store/SqlKnowledgeGraph.d.ts.map +1 -0
  125. package/dist/memory/retrieval/store/{SqliteKnowledgeGraph.js → SqlKnowledgeGraph.js} +83 -64
  126. package/dist/memory/retrieval/store/SqlKnowledgeGraph.js.map +1 -0
  127. package/dist/memory/retrieval/store/{SqliteMemoryGraph.d.ts → SqlMemoryGraph.d.ts} +11 -11
  128. package/dist/memory/retrieval/store/SqlMemoryGraph.d.ts.map +1 -0
  129. package/dist/memory/retrieval/store/{SqliteMemoryGraph.js → SqlMemoryGraph.js} +26 -24
  130. package/dist/memory/retrieval/store/SqlMemoryGraph.js.map +1 -0
  131. package/dist/memory/retrieval/store/migrations/MigrationRunner.d.ts +50 -0
  132. package/dist/memory/retrieval/store/migrations/MigrationRunner.d.ts.map +1 -0
  133. package/dist/memory/retrieval/store/migrations/MigrationRunner.js +100 -0
  134. package/dist/memory/retrieval/store/migrations/MigrationRunner.js.map +1 -0
  135. package/dist/memory/retrieval/store/migrations/index.d.ts +20 -0
  136. package/dist/memory/retrieval/store/migrations/index.d.ts.map +1 -0
  137. package/dist/memory/retrieval/store/migrations/index.js +19 -0
  138. package/dist/memory/retrieval/store/migrations/index.js.map +1 -0
  139. package/dist/memory/retrieval/store/migrations/types.d.ts +28 -0
  140. package/dist/memory/retrieval/store/migrations/types.d.ts.map +1 -0
  141. package/dist/memory/retrieval/store/migrations/types.js +7 -0
  142. package/dist/memory/retrieval/store/migrations/types.js.map +1 -0
  143. package/dist/memory/retrieval/store/migrations/v1-to-v2.d.ts +40 -0
  144. package/dist/memory/retrieval/store/migrations/v1-to-v2.d.ts.map +1 -0
  145. package/dist/memory/retrieval/store/migrations/v1-to-v2.js +491 -0
  146. package/dist/memory/retrieval/store/migrations/v1-to-v2.js.map +1 -0
  147. package/dist/memory/retrieval/store/portable-tables.d.ts +27 -0
  148. package/dist/memory/retrieval/store/portable-tables.d.ts.map +1 -0
  149. package/dist/memory/retrieval/store/portable-tables.js +56 -0
  150. package/dist/memory/retrieval/store/portable-tables.js.map +1 -0
  151. package/dist/memory-router/backends/EntityRetrievalRanker.d.ts +54 -0
  152. package/dist/memory-router/backends/EntityRetrievalRanker.d.ts.map +1 -0
  153. package/dist/memory-router/backends/EntityRetrievalRanker.js +39 -0
  154. package/dist/memory-router/backends/EntityRetrievalRanker.js.map +1 -0
  155. package/dist/memory-router/backends/index.d.ts +16 -0
  156. package/dist/memory-router/backends/index.d.ts.map +1 -0
  157. package/dist/memory-router/backends/index.js +16 -0
  158. package/dist/memory-router/backends/index.js.map +1 -0
  159. package/dist/memory-router/index.d.ts +2 -0
  160. package/dist/memory-router/index.d.ts.map +1 -1
  161. package/dist/memory-router/index.js +4 -0
  162. package/dist/memory-router/index.js.map +1 -1
  163. package/dist/rag/utils/vectorMath.d.ts +1 -1
  164. package/dist/rag/utils/vectorMath.js +1 -1
  165. package/dist/rag/vector-search/HnswIndexSidecar.d.ts +1 -1
  166. package/dist/rag/vector-search/HnswIndexSidecar.js +1 -1
  167. package/package.json +2 -2
  168. package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.d.ts +0 -10
  169. package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.d.ts.map +0 -1
  170. package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.js +0 -10
  171. package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.js.map +0 -1
  172. package/dist/memory/retrieval/store/SqliteBrain.d.ts.map +0 -1
  173. package/dist/memory/retrieval/store/SqliteBrain.js +0 -553
  174. package/dist/memory/retrieval/store/SqliteBrain.js.map +0 -1
  175. package/dist/memory/retrieval/store/SqliteKnowledgeGraph.d.ts.map +0 -1
  176. package/dist/memory/retrieval/store/SqliteKnowledgeGraph.js.map +0 -1
  177. package/dist/memory/retrieval/store/SqliteMemoryGraph.d.ts.map +0 -1
  178. package/dist/memory/retrieval/store/SqliteMemoryGraph.js.map +0 -1
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Stores memory graph nodes in the `knowledge_nodes` table (type = 'memory_graph')
5
5
  * and memory association edges in the `knowledge_edges` table — both managed by
6
- * SqliteBrain. All node metadata is serialised into the `properties` JSON column.
6
+ * Brain. All node metadata is serialised into the `properties` JSON column.
7
7
  *
8
8
  * ## Algorithms
9
9
  *
@@ -28,7 +28,7 @@
28
28
  * The `centroidId` is chosen as the member with the highest total edge weight
29
29
  * (i.e. the most central node in the component's subgraph).
30
30
  *
31
- * @module memory/store/SqliteMemoryGraph
31
+ * @module memory/store/SqlMemoryGraph
32
32
  */
33
33
  import { sha256 } from '../../core/util/crossPlatformCrypto.js';
34
34
  // ---------------------------------------------------------------------------
@@ -53,7 +53,7 @@ const SA_DEFAULTS = {
53
53
  /** Node type discriminator stored in knowledge_nodes.type. */
54
54
  const NODE_TYPE = 'memory_graph';
55
55
  // ---------------------------------------------------------------------------
56
- // SqliteMemoryGraph
56
+ // SqlMemoryGraph
57
57
  // ---------------------------------------------------------------------------
58
58
  /**
59
59
  * SQLite-backed implementation of {@link IMemoryGraph}.
@@ -63,8 +63,8 @@ const NODE_TYPE = 'memory_graph';
63
63
  *
64
64
  * **Usage:**
65
65
  * ```ts
66
- * const brain = await SqliteBrain.open('/path/to/brain.sqlite');
67
- * const graph = new SqliteMemoryGraph(brain);
66
+ * const brain = await Brain.openSqlite('/path/to/brain.sqlite');
67
+ * const graph = new SqlMemoryGraph(brain);
68
68
  * await graph.initialize();
69
69
  *
70
70
  * await graph.addNode('mem-1', { type: 'episodic', scope: 'session', scopeId: 's1', strength: 1.0, createdAt: Date.now() });
@@ -73,14 +73,14 @@ const NODE_TYPE = 'memory_graph';
73
73
  * const activated = await graph.spreadingActivation(['mem-1']);
74
74
  * ```
75
75
  */
76
- export class SqliteMemoryGraph {
76
+ export class SqlMemoryGraph {
77
77
  // ---------------------------------------------------------------------------
78
78
  // Constructor
79
79
  // ---------------------------------------------------------------------------
80
80
  /**
81
- * @param brain - The shared SqliteBrain connection for this agent.
81
+ * @param brain - The shared Brain connection for this agent.
82
82
  * The `knowledge_nodes` and `knowledge_edges` tables must already exist
83
- * (SqliteBrain creates them in its constructor).
83
+ * (Brain creates them in its constructor).
84
84
  */
85
85
  constructor(brain) {
86
86
  this.brain = brain;
@@ -115,7 +115,7 @@ export class SqliteMemoryGraph {
115
115
  this._nodes.clear();
116
116
  this._edges.clear();
117
117
  // Load all memory graph nodes.
118
- const nodeRows = await this.brain.all(`SELECT id, properties FROM knowledge_nodes WHERE type = ?`, [NODE_TYPE]);
118
+ const nodeRows = await this.brain.all(`SELECT id, properties FROM knowledge_nodes WHERE brain_id = ? AND type = ?`, [this.brain.brainId, NODE_TYPE]);
119
119
  for (const row of nodeRows) {
120
120
  try {
121
121
  const meta = JSON.parse(row.properties);
@@ -132,10 +132,10 @@ export class SqliteMemoryGraph {
132
132
  // we can filter by the set of known types.
133
133
  const edgeRows = await this.brain.all(`SELECT id, source_id, target_id, type, weight, created_at
134
134
  FROM knowledge_edges
135
- WHERE type IN (
135
+ WHERE brain_id = ? AND type IN (
136
136
  'SHARED_ENTITY','TEMPORAL_SEQUENCE','SAME_TOPIC',
137
137
  'CONTRADICTS','SUPERSEDES','CAUSED_BY','CO_ACTIVATED','SCHEMA_INSTANCE'
138
- )`);
138
+ )`, [this.brain.brainId]);
139
139
  for (const row of edgeRows) {
140
140
  const key = `${row.source_id}:${row.target_id}`;
141
141
  this._edges.set(key, {
@@ -150,11 +150,11 @@ export class SqliteMemoryGraph {
150
150
  /**
151
151
  * Shut down the memory graph.
152
152
  *
153
- * Currently a no-op because SqliteBrain owns the DB connection lifetime.
153
+ * Currently a no-op because Brain owns the DB connection lifetime.
154
154
  * Provided for interface compliance and forward compatibility.
155
155
  */
156
156
  async shutdown() {
157
- // No-op: SqliteBrain owns the connection; callers must call brain.close().
157
+ // No-op: Brain owns the connection; callers must call brain.close().
158
158
  }
159
159
  // ---------------------------------------------------------------------------
160
160
  // Node operations
@@ -172,7 +172,8 @@ export class SqliteMemoryGraph {
172
172
  async addNode(memoryId, metadata) {
173
173
  const now = Date.now();
174
174
  const { dialect } = this.brain.features;
175
- await this.brain.run(dialect.insertOrReplace('knowledge_nodes', ['id', 'type', 'label', 'properties', 'confidence', 'source', 'created_at'], ['?', '?', '?', '?', '?', '?', '?'], 'id'), [
175
+ await this.brain.run(dialect.insertOrReplace('knowledge_nodes', ['brain_id', 'id', 'type', 'label', 'properties', 'confidence', 'source', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?'], 'brain_id, id'), [
176
+ this.brain.brainId,
176
177
  memoryId,
177
178
  NODE_TYPE,
178
179
  memoryId,
@@ -201,13 +202,13 @@ export class SqliteMemoryGraph {
201
202
  }
202
203
  }
203
204
  if (toDelete.length > 0) {
204
- await this.brain.run(`DELETE FROM knowledge_edges WHERE source_id = ? OR target_id = ?`, [memoryId, memoryId]);
205
+ await this.brain.run(`DELETE FROM knowledge_edges WHERE brain_id = ? AND (source_id = ? OR target_id = ?)`, [this.brain.brainId, memoryId, memoryId]);
205
206
  for (const key of toDelete) {
206
207
  this._edges.delete(key);
207
208
  }
208
209
  }
209
210
  // Now delete the node itself.
210
- await this.brain.run(`DELETE FROM knowledge_nodes WHERE id = ? AND type = ?`, [memoryId, NODE_TYPE]);
211
+ await this.brain.run(`DELETE FROM knowledge_nodes WHERE brain_id = ? AND id = ? AND type = ?`, [this.brain.brainId, memoryId, NODE_TYPE]);
211
212
  this._nodes.delete(memoryId);
212
213
  }
213
214
  /**
@@ -238,7 +239,7 @@ export class SqliteMemoryGraph {
238
239
  const edgeId = await this._edgeId(edge.sourceId, edge.targetId);
239
240
  const key = `${edge.sourceId}:${edge.targetId}`;
240
241
  const { dialect } = this.brain.features;
241
- await this.brain.run(dialect.insertOrReplace('knowledge_edges', ['id', 'source_id', 'target_id', 'type', 'weight', 'bidirectional', 'metadata', 'created_at'], ['?', '?', '?', '?', '?', '0', "'{}'", '?'], 'id'), [edgeId, edge.sourceId, edge.targetId, edge.type, edge.weight, edge.createdAt]);
242
+ await this.brain.run(dialect.insertOrReplace('knowledge_edges', ['brain_id', 'id', 'source_id', 'target_id', 'type', 'weight', 'bidirectional', 'metadata', 'created_at'], ['?', '?', '?', '?', '?', '?', '0', "'{}'", '?'], 'brain_id, id'), [this.brain.brainId, edgeId, edge.sourceId, edge.targetId, edge.type, edge.weight, edge.createdAt]);
242
243
  this._edges.set(key, { ...edge });
243
244
  }
244
245
  /**
@@ -273,7 +274,7 @@ export class SqliteMemoryGraph {
273
274
  */
274
275
  async removeEdge(sourceId, targetId) {
275
276
  const edgeId = await this._edgeId(sourceId, targetId);
276
- await this.brain.run(`DELETE FROM knowledge_edges WHERE id = ?`, [edgeId]);
277
+ await this.brain.run(`DELETE FROM knowledge_edges WHERE brain_id = ? AND id = ?`, [this.brain.brainId, edgeId]);
277
278
  this._edges.delete(`${sourceId}:${targetId}`);
278
279
  }
279
280
  // ---------------------------------------------------------------------------
@@ -427,7 +428,7 @@ export class SqliteMemoryGraph {
427
428
  existing.weight = newWeight;
428
429
  // Update SQLite row weight in-place.
429
430
  const edgeId = await this._edgeId(sourceId, targetId);
430
- await this.brain.run(`UPDATE knowledge_edges SET weight = ? WHERE id = ?`, [newWeight, edgeId]);
431
+ await this.brain.run(`UPDATE knowledge_edges SET weight = ? WHERE brain_id = ? AND id = ?`, [newWeight, this.brain.brainId, edgeId]);
431
432
  }
432
433
  else {
433
434
  // Create a new CO_ACTIVATED edge.
@@ -602,14 +603,15 @@ export class SqliteMemoryGraph {
602
603
  * administrative resets only.
603
604
  */
604
605
  async clear() {
606
+ const brainId = this.brain.brainId;
605
607
  // Delete all knowledge_edges whose type is a MemoryEdgeType value.
606
- await this.brain.exec(`DELETE FROM knowledge_edges
607
- WHERE type IN (
608
+ await this.brain.run(`DELETE FROM knowledge_edges
609
+ WHERE brain_id = ? AND type IN (
608
610
  'SHARED_ENTITY','TEMPORAL_SEQUENCE','SAME_TOPIC',
609
611
  'CONTRADICTS','SUPERSEDES','CAUSED_BY','CO_ACTIVATED','SCHEMA_INSTANCE'
610
- )`);
612
+ )`, [brainId]);
611
613
  // Delete all memory_graph nodes.
612
- await this.brain.run(`DELETE FROM knowledge_nodes WHERE type = ?`, [NODE_TYPE]);
614
+ await this.brain.run(`DELETE FROM knowledge_nodes WHERE brain_id = ? AND type = ?`, [brainId, NODE_TYPE]);
613
615
  this._nodes.clear();
614
616
  this._edges.clear();
615
617
  }
@@ -633,4 +635,4 @@ export class SqliteMemoryGraph {
633
635
  return hash.slice(0, 32);
634
636
  }
635
637
  }
636
- //# sourceMappingURL=SqliteMemoryGraph.js.map
638
+ //# sourceMappingURL=SqlMemoryGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SqlMemoryGraph.js","sourceRoot":"","sources":["../../../../src/memory/retrieval/store/SqlMemoryGraph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @fileoverview MigrationRunner: centralized owner of "how schema migrations
3
+ * run safely." Each registered Migration object knows only its target version
4
+ * and schema-diff logic; the runner handles transaction wrapping, advisory
5
+ * locking (per-brain), and atomic schema_version bumps.
6
+ *
7
+ * Two distinct dialect paths because connection-pooling and transaction
8
+ * semantics differ enough that a unified path obscures correctness:
9
+ *
10
+ * - Postgres: uses `adapter.transaction()` to keep all queries on one pooled
11
+ * connection. Acquires a transaction-scoped advisory lock with
12
+ * `pg_advisory_xact_lock`, which auto-releases on COMMIT/ROLLBACK.
13
+ * - SQLite: uses explicit `BEGIN IMMEDIATE` via `adapter.exec`. Single
14
+ * connection per file, so the connection-pool concern doesn't apply.
15
+ * IMMEDIATE acquires the reserved write lock immediately, eliminating the
16
+ * race window in default DEFERRED mode.
17
+ *
18
+ * @module memory/retrieval/store/migrations/MigrationRunner
19
+ */
20
+ import type { StorageAdapter, StorageFeatures } from '@framers/sql-storage-adapter';
21
+ import type { Migration } from './types.js';
22
+ export declare class MigrationRunner {
23
+ /**
24
+ * Run all pending migrations against the adapter, scoped by brainId.
25
+ *
26
+ * @returns The list of migration versions that were applied.
27
+ */
28
+ static runPending(adapter: StorageAdapter, features: StorageFeatures, brainId: string, migrations: Migration[]): Promise<{
29
+ applied: number[];
30
+ }>;
31
+ /**
32
+ * Inner migration loop, called once the lock + transaction are established.
33
+ * Reads the current schema_version, filters pending migrations, applies each
34
+ * one, and bumps schema_version inside the same transaction.
35
+ */
36
+ private static _runMigrations;
37
+ /**
38
+ * Read the current schema_version from brain_meta. Returns null when
39
+ * brain_meta does not exist (fresh database).
40
+ */
41
+ private static _readSchemaVersion;
42
+ /**
43
+ * Upsert schema_version in brain_meta inside the current transaction.
44
+ * Uses dialect-aware INSERT OR REPLACE.
45
+ */
46
+ private static _writeSchemaVersion;
47
+ private static _sqliteTableExists;
48
+ private static _postgresTableExists;
49
+ }
50
+ //# sourceMappingURL=MigrationRunner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationRunner.d.ts","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/MigrationRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,qBAAa,eAAe;IAC1B;;;;OAIG;WACU,UAAU,CACrB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,SAAS,EAAE,GACtB,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAyBjC;;;;OAIG;mBACkB,cAAc;IAwBnC;;;OAGG;mBACkB,kBAAkB;IAiBvC;;;OAGG;mBACkB,mBAAmB;mBAiBnB,kBAAkB;mBAWlB,oBAAoB;CAa1C"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * @fileoverview MigrationRunner: centralized owner of "how schema migrations
3
+ * run safely." Each registered Migration object knows only its target version
4
+ * and schema-diff logic; the runner handles transaction wrapping, advisory
5
+ * locking (per-brain), and atomic schema_version bumps.
6
+ *
7
+ * Two distinct dialect paths because connection-pooling and transaction
8
+ * semantics differ enough that a unified path obscures correctness:
9
+ *
10
+ * - Postgres: uses `adapter.transaction()` to keep all queries on one pooled
11
+ * connection. Acquires a transaction-scoped advisory lock with
12
+ * `pg_advisory_xact_lock`, which auto-releases on COMMIT/ROLLBACK.
13
+ * - SQLite: uses explicit `BEGIN IMMEDIATE` via `adapter.exec`. Single
14
+ * connection per file, so the connection-pool concern doesn't apply.
15
+ * IMMEDIATE acquires the reserved write lock immediately, eliminating the
16
+ * race window in default DEFERRED mode.
17
+ *
18
+ * @module memory/retrieval/store/migrations/MigrationRunner
19
+ */
20
+ export class MigrationRunner {
21
+ /**
22
+ * Run all pending migrations against the adapter, scoped by brainId.
23
+ *
24
+ * @returns The list of migration versions that were applied.
25
+ */
26
+ static async runPending(adapter, features, brainId, migrations) {
27
+ const isPostgres = adapter.kind.includes('postgres');
28
+ if (isPostgres) {
29
+ return adapter.transaction(async (trx) => {
30
+ await trx.run(`SELECT pg_advisory_xact_lock(hashtext($1))`, [`agentos_brain:${brainId}`]);
31
+ return MigrationRunner._runMigrations(trx, features, brainId, migrations);
32
+ });
33
+ }
34
+ // SQLite path: explicit BEGIN IMMEDIATE for single-connection serialization.
35
+ await adapter.exec('BEGIN IMMEDIATE');
36
+ try {
37
+ const result = await MigrationRunner._runMigrations(adapter, features, brainId, migrations);
38
+ await adapter.exec('COMMIT');
39
+ return result;
40
+ }
41
+ catch (err) {
42
+ await adapter.exec('ROLLBACK');
43
+ throw err;
44
+ }
45
+ }
46
+ /**
47
+ * Inner migration loop, called once the lock + transaction are established.
48
+ * Reads the current schema_version, filters pending migrations, applies each
49
+ * one, and bumps schema_version inside the same transaction.
50
+ */
51
+ static async _runMigrations(adapter, features, brainId, migrations) {
52
+ const current = await MigrationRunner._readSchemaVersion(adapter, brainId);
53
+ // Fresh database: brain_meta does not exist yet. Skip migrations entirely;
54
+ // the upcoming _initSchema call creates the latest schema directly.
55
+ if (current === null)
56
+ return { applied: [] };
57
+ const sorted = [...migrations].sort((a, b) => a.version - b.version);
58
+ const pending = sorted.filter((m) => m.version > current);
59
+ const applied = [];
60
+ for (const migration of pending) {
61
+ await migration.up(adapter, features, brainId);
62
+ await MigrationRunner._writeSchemaVersion(adapter, features, brainId, migration.version);
63
+ applied.push(migration.version);
64
+ }
65
+ return { applied };
66
+ }
67
+ /**
68
+ * Read the current schema_version from brain_meta. Returns null when
69
+ * brain_meta does not exist (fresh database).
70
+ */
71
+ static async _readSchemaVersion(adapter, brainId) {
72
+ const isPostgres = adapter.kind.includes('postgres');
73
+ const brainMetaExists = isPostgres
74
+ ? await MigrationRunner._postgresTableExists(adapter, 'brain_meta')
75
+ : await MigrationRunner._sqliteTableExists(adapter, 'brain_meta');
76
+ if (!brainMetaExists)
77
+ return null;
78
+ const row = await adapter.get(`SELECT value FROM brain_meta WHERE brain_id = ? AND key = ?`, [brainId, 'schema_version']);
79
+ return row ? parseInt(row.value, 10) : null;
80
+ }
81
+ /**
82
+ * Upsert schema_version in brain_meta inside the current transaction.
83
+ * Uses dialect-aware INSERT OR REPLACE.
84
+ */
85
+ static async _writeSchemaVersion(adapter, features, brainId, version) {
86
+ await adapter.run(features.dialect.insertOrReplace('brain_meta', ['brain_id', 'key', 'value'], ['?', '?', '?'], 'brain_id, key'), [brainId, 'schema_version', String(version)]);
87
+ }
88
+ static async _sqliteTableExists(adapter, table) {
89
+ const row = await adapter.get(`SELECT name FROM sqlite_master WHERE type='table' AND name=?`, [table]);
90
+ return Boolean(row);
91
+ }
92
+ static async _postgresTableExists(adapter, table) {
93
+ const row = await adapter.get(`SELECT EXISTS (
94
+ SELECT 1 FROM information_schema.tables
95
+ WHERE table_schema = current_schema() AND table_name = $1
96
+ ) AS exists`, [table]);
97
+ return row?.exists ?? false;
98
+ }
99
+ }
100
+ //# sourceMappingURL=MigrationRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationRunner.js","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/MigrationRunner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @fileoverview Registry of all schema migrations in version order.
3
+ *
4
+ * Adding a new schema version: implement `v2-to-v3.ts` exporting a
5
+ * `Migration` object, then append it to the `MIGRATIONS` array here.
6
+ * Both `Brain._initialize` (for `runPending`) and `Brain._seedMeta` (for
7
+ * the schema_version seed value) pick up the change automatically.
8
+ *
9
+ * @module memory/retrieval/store/migrations
10
+ */
11
+ import type { Migration } from './types.js';
12
+ export type { Migration } from './types.js';
13
+ export { MigrationRunner } from './MigrationRunner.js';
14
+ export declare const MIGRATIONS: Migration[];
15
+ /**
16
+ * The highest schema version among registered migrations. Used by
17
+ * `Brain._seedMeta` to seed `schema_version` on fresh databases.
18
+ */
19
+ export declare const LATEST_SCHEMA_VERSION: number;
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAG5C,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,eAAO,MAAM,UAAU,EAAE,SAAS,EAAa,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAA6C,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * @fileoverview Registry of all schema migrations in version order.
3
+ *
4
+ * Adding a new schema version: implement `v2-to-v3.ts` exporting a
5
+ * `Migration` object, then append it to the `MIGRATIONS` array here.
6
+ * Both `Brain._initialize` (for `runPending`) and `Brain._seedMeta` (for
7
+ * the schema_version seed value) pick up the change automatically.
8
+ *
9
+ * @module memory/retrieval/store/migrations
10
+ */
11
+ import { v1ToV2 } from './v1-to-v2.js';
12
+ export { MigrationRunner } from './MigrationRunner.js';
13
+ export const MIGRATIONS = [v1ToV2];
14
+ /**
15
+ * The highest schema version among registered migrations. Used by
16
+ * `Brain._seedMeta` to seed `schema_version` on fresh databases.
17
+ */
18
+ export const LATEST_SCHEMA_VERSION = MIGRATIONS[MIGRATIONS.length - 1].version;
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAgB,CAAC,MAAM,CAAC,CAAC;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,OAAO,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @fileoverview Migration interface and shared types for MigrationRunner.
3
+ *
4
+ * @module memory/retrieval/store/migrations/types
5
+ */
6
+ import type { StorageAdapter, StorageFeatures } from '@framers/sql-storage-adapter';
7
+ /**
8
+ * A single schema migration. The runner handles transaction wrapping, advisory
9
+ * locking, and the schema_version bump. The migration's `up` function only
10
+ * needs to apply the schema diff (DDL + data backfill) for its target version.
11
+ *
12
+ * Migrations MUST NOT manage their own transactions. The adapter passed into
13
+ * `up` is the runner's transactional adapter; calling BEGIN/COMMIT inside `up`
14
+ * breaks the runner's transaction model on both Postgres and SQLite.
15
+ */
16
+ export interface Migration {
17
+ /** Target schema version this migration upgrades the database to. */
18
+ version: number;
19
+ /**
20
+ * Apply the schema diff for this migration's target version.
21
+ *
22
+ * @param adapter - Transactional storage adapter (do NOT BEGIN/COMMIT inside).
23
+ * @param features - Platform-aware feature bundle.
24
+ * @param brainId - The brain identifier to scope writes to.
25
+ */
26
+ up(adapter: StorageAdapter, features: StorageFeatures, brainId: string): Promise<void>;
27
+ }
28
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpF;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS;IACxB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxF"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Migration interface and shared types for MigrationRunner.
3
+ *
4
+ * @module memory/retrieval/store/migrations/types
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @file v1-to-v2.ts
3
+ * @description Schema migration v1 -> v2: add `brain_id TEXT NOT NULL` column
4
+ * to all 14 brain-owned tables and recreate composite primary keys / indexes.
5
+ *
6
+ * SQLite does not support `ALTER TABLE ADD PRIMARY KEY`, so the migration uses
7
+ * the standard recreate-table dance: rename old to `<name>_v1`, create new
8
+ * with target schema, copy rows with the brain_id default, drop the old.
9
+ *
10
+ * Postgres uses simple ALTER statements (ADD COLUMN with default, DROP CONSTRAINT,
11
+ * ADD PRIMARY KEY) since it supports those operations natively.
12
+ *
13
+ * Idempotent: detects v2 schema and returns early without touching data.
14
+ *
15
+ * @module memory/retrieval/store/migrations/v1-to-v2
16
+ */
17
+ import type { StorageAdapter, StorageFeatures } from '@framers/sql-storage-adapter';
18
+ import type { Migration } from './types.js';
19
+ /**
20
+ * Run the v1 -> v2 migration on the given storage adapter.
21
+ *
22
+ * Idempotent: returns immediately when schema is already v2.
23
+ *
24
+ * @param adapter - The storage adapter to migrate.
25
+ * @param features - Platform-aware feature bundle (used for dialect-specific paths).
26
+ * @param brainId - The brain identifier to assign to all existing rows.
27
+ * @returns `{ migrated: true }` if migration ran, `{ migrated: false }` if no-op.
28
+ */
29
+ export declare function migrateV1ToV2(adapter: StorageAdapter, features: StorageFeatures, brainId: string): Promise<{
30
+ migrated: boolean;
31
+ }>;
32
+ /**
33
+ * The v1 -> v2 schema migration as a Migration object for MigrationRunner.
34
+ *
35
+ * The runner handles transaction wrapping, advisory locking, and the
36
+ * schema_version bump. This Migration's `up` function only runs the schema
37
+ * diff (the 14-table walk).
38
+ */
39
+ export declare const v1ToV2: Migration;
40
+ //# sourceMappingURL=v1-to-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"v1-to-v2.d.ts","sourceRoot":"","sources":["../../../../../src/memory/retrieval/store/migrations/v1-to-v2.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAgU5C;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CAqChC;AA+JD;;;;;;GAMG;AACH,eAAO,MAAM,MAAM,EAAE,SA+BpB,CAAC"}