@framers/agentos 0.2.11 → 0.3.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.
Files changed (173) 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/RawChunksIngestExecutor.d.ts +36 -0
  10. package/dist/ingest-router/executors/RawChunksIngestExecutor.d.ts.map +1 -0
  11. package/dist/ingest-router/executors/RawChunksIngestExecutor.js +33 -0
  12. package/dist/ingest-router/executors/RawChunksIngestExecutor.js.map +1 -0
  13. package/dist/ingest-router/executors/SkipIngestExecutor.d.ts +20 -0
  14. package/dist/ingest-router/executors/SkipIngestExecutor.d.ts.map +1 -0
  15. package/dist/ingest-router/executors/SkipIngestExecutor.js +28 -0
  16. package/dist/ingest-router/executors/SkipIngestExecutor.js.map +1 -0
  17. package/dist/ingest-router/executors/SummarizedIngestExecutor.d.ts +68 -0
  18. package/dist/ingest-router/executors/SummarizedIngestExecutor.d.ts.map +1 -0
  19. package/dist/ingest-router/executors/SummarizedIngestExecutor.js +56 -0
  20. package/dist/ingest-router/executors/SummarizedIngestExecutor.js.map +1 -0
  21. package/dist/ingest-router/executors/entity-types.d.ts +55 -0
  22. package/dist/ingest-router/executors/entity-types.d.ts.map +1 -0
  23. package/dist/ingest-router/executors/entity-types.js +17 -0
  24. package/dist/ingest-router/executors/entity-types.js.map +1 -0
  25. package/dist/ingest-router/executors/index.d.ts +37 -0
  26. package/dist/ingest-router/executors/index.d.ts.map +1 -0
  27. package/dist/ingest-router/executors/index.js +37 -0
  28. package/dist/ingest-router/executors/index.js.map +1 -0
  29. package/dist/ingest-router/index.d.ts +2 -0
  30. package/dist/ingest-router/index.d.ts.map +1 -1
  31. package/dist/ingest-router/index.js +14 -0
  32. package/dist/ingest-router/index.js.map +1 -1
  33. package/dist/memory/AgentMemory.js +1 -1
  34. package/dist/memory/AgentMemory.js.map +1 -1
  35. package/dist/memory/CognitiveMemoryManager.js +4 -4
  36. package/dist/memory/CognitiveMemoryManager.js.map +1 -1
  37. package/dist/memory/archive/IMemoryArchive.d.ts +2 -2
  38. package/dist/memory/archive/SqlStorageMemoryArchive.d.ts +17 -13
  39. package/dist/memory/archive/SqlStorageMemoryArchive.d.ts.map +1 -1
  40. package/dist/memory/archive/SqlStorageMemoryArchive.js +36 -28
  41. package/dist/memory/archive/SqlStorageMemoryArchive.js.map +1 -1
  42. package/dist/memory/core/config.d.ts +4 -4
  43. package/dist/memory/core/config.d.ts.map +1 -1
  44. package/dist/memory/index.d.ts +3 -3
  45. package/dist/memory/index.d.ts.map +1 -1
  46. package/dist/memory/index.js +3 -3
  47. package/dist/memory/index.js.map +1 -1
  48. package/dist/memory/io/ChatGptImporter.d.ts +5 -5
  49. package/dist/memory/io/ChatGptImporter.d.ts.map +1 -1
  50. package/dist/memory/io/ChatGptImporter.js +9 -7
  51. package/dist/memory/io/ChatGptImporter.js.map +1 -1
  52. package/dist/memory/io/CsvImporter.d.ts +4 -4
  53. package/dist/memory/io/CsvImporter.d.ts.map +1 -1
  54. package/dist/memory/io/CsvImporter.js +11 -8
  55. package/dist/memory/io/CsvImporter.js.map +1 -1
  56. package/dist/memory/io/JsonExporter.d.ts +5 -5
  57. package/dist/memory/io/JsonExporter.d.ts.map +1 -1
  58. package/dist/memory/io/JsonExporter.js +13 -12
  59. package/dist/memory/io/JsonExporter.js.map +1 -1
  60. package/dist/memory/io/JsonImporter.d.ts +5 -5
  61. package/dist/memory/io/JsonImporter.d.ts.map +1 -1
  62. package/dist/memory/io/JsonImporter.js +50 -34
  63. package/dist/memory/io/JsonImporter.js.map +1 -1
  64. package/dist/memory/io/MarkdownExporter.d.ts +4 -4
  65. package/dist/memory/io/MarkdownExporter.d.ts.map +1 -1
  66. package/dist/memory/io/MarkdownExporter.js +1 -1
  67. package/dist/memory/io/MarkdownExporter.js.map +1 -1
  68. package/dist/memory/io/MarkdownImporter.d.ts +6 -6
  69. package/dist/memory/io/MarkdownImporter.d.ts.map +1 -1
  70. package/dist/memory/io/MarkdownImporter.js +8 -7
  71. package/dist/memory/io/MarkdownImporter.js.map +1 -1
  72. package/dist/memory/io/ObsidianImporter.d.ts +4 -4
  73. package/dist/memory/io/ObsidianImporter.d.ts.map +1 -1
  74. package/dist/memory/io/ObsidianImporter.js +15 -10
  75. package/dist/memory/io/ObsidianImporter.js.map +1 -1
  76. package/dist/memory/io/SqliteExporter.d.ts +5 -5
  77. package/dist/memory/io/SqliteExporter.d.ts.map +1 -1
  78. package/dist/memory/io/SqliteExporter.js +3 -3
  79. package/dist/memory/io/SqliteExporter.js.map +1 -1
  80. package/dist/memory/io/SqliteImporter.d.ts +4 -4
  81. package/dist/memory/io/SqliteImporter.d.ts.map +1 -1
  82. package/dist/memory/io/SqliteImporter.js +23 -16
  83. package/dist/memory/io/SqliteImporter.js.map +1 -1
  84. package/dist/memory/io/facade/Memory.d.ts +58 -10
  85. package/dist/memory/io/facade/Memory.d.ts.map +1 -1
  86. package/dist/memory/io/facade/Memory.js +124 -50
  87. package/dist/memory/io/facade/Memory.js.map +1 -1
  88. package/dist/memory/io/facade/types.d.ts +1 -1
  89. package/dist/memory/io/index.d.ts +2 -2
  90. package/dist/memory/io/index.js +2 -2
  91. package/dist/memory/io/tools/MemoryAddTool.d.ts +2 -2
  92. package/dist/memory/io/tools/MemoryAddTool.d.ts.map +1 -1
  93. package/dist/memory/io/tools/MemoryAddTool.js +2 -2
  94. package/dist/memory/io/tools/MemoryAddTool.js.map +1 -1
  95. package/dist/memory/io/tools/MemoryDeleteTool.d.ts +2 -2
  96. package/dist/memory/io/tools/MemoryDeleteTool.d.ts.map +1 -1
  97. package/dist/memory/io/tools/MemoryDeleteTool.js +1 -1
  98. package/dist/memory/io/tools/MemoryDeleteTool.js.map +1 -1
  99. package/dist/memory/io/tools/MemoryMergeTool.d.ts +2 -2
  100. package/dist/memory/io/tools/MemoryMergeTool.d.ts.map +1 -1
  101. package/dist/memory/io/tools/MemoryMergeTool.js +4 -3
  102. package/dist/memory/io/tools/MemoryMergeTool.js.map +1 -1
  103. package/dist/memory/io/tools/MemoryReflectTool.d.ts +2 -2
  104. package/dist/memory/io/tools/MemoryReflectTool.d.ts.map +1 -1
  105. package/dist/memory/io/tools/MemoryReflectTool.js.map +1 -1
  106. package/dist/memory/io/tools/MemorySearchTool.d.ts +2 -2
  107. package/dist/memory/io/tools/MemorySearchTool.d.ts.map +1 -1
  108. package/dist/memory/io/tools/MemorySearchTool.js.map +1 -1
  109. package/dist/memory/io/tools/MemoryUpdateTool.d.ts +2 -2
  110. package/dist/memory/io/tools/MemoryUpdateTool.d.ts.map +1 -1
  111. package/dist/memory/io/tools/MemoryUpdateTool.js +5 -4
  112. package/dist/memory/io/tools/MemoryUpdateTool.js.map +1 -1
  113. package/dist/memory/pipeline/consolidation/ConsolidationLoop.d.ts +3 -3
  114. package/dist/memory/pipeline/consolidation/ConsolidationLoop.d.ts.map +1 -1
  115. package/dist/memory/pipeline/consolidation/ConsolidationLoop.js +22 -17
  116. package/dist/memory/pipeline/consolidation/ConsolidationLoop.js.map +1 -1
  117. package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.d.ts +3 -3
  118. package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.d.ts.map +1 -1
  119. package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.js +15 -12
  120. package/dist/memory/retrieval/feedback/RetrievalFeedbackSignal.js.map +1 -1
  121. package/dist/memory/retrieval/graph/index.d.ts +0 -1
  122. package/dist/memory/retrieval/graph/index.d.ts.map +1 -1
  123. package/dist/memory/retrieval/graph/index.js +4 -1
  124. package/dist/memory/retrieval/graph/index.js.map +1 -1
  125. package/dist/memory/retrieval/store/{SqliteBrain.d.ts → Brain.d.ts} +111 -23
  126. package/dist/memory/retrieval/store/Brain.d.ts.map +1 -0
  127. package/dist/memory/retrieval/store/{SqliteBrain.js → Brain.js} +367 -76
  128. package/dist/memory/retrieval/store/Brain.js.map +1 -0
  129. package/dist/memory/retrieval/store/HnswSidecar.d.ts +1 -1
  130. package/dist/memory/retrieval/store/HnswSidecar.js +1 -1
  131. package/dist/memory/retrieval/store/MemoryStore.d.ts +6 -6
  132. package/dist/memory/retrieval/store/MemoryStore.d.ts.map +1 -1
  133. package/dist/memory/retrieval/store/MemoryStore.js +10 -9
  134. package/dist/memory/retrieval/store/MemoryStore.js.map +1 -1
  135. package/dist/memory/retrieval/store/{SqliteKnowledgeGraph.d.ts → SqlKnowledgeGraph.d.ts} +12 -12
  136. package/dist/memory/retrieval/store/SqlKnowledgeGraph.d.ts.map +1 -0
  137. package/dist/memory/retrieval/store/{SqliteKnowledgeGraph.js → SqlKnowledgeGraph.js} +83 -64
  138. package/dist/memory/retrieval/store/SqlKnowledgeGraph.js.map +1 -0
  139. package/dist/memory/retrieval/store/{SqliteMemoryGraph.d.ts → SqlMemoryGraph.d.ts} +11 -11
  140. package/dist/memory/retrieval/store/SqlMemoryGraph.d.ts.map +1 -0
  141. package/dist/memory/retrieval/store/{SqliteMemoryGraph.js → SqlMemoryGraph.js} +26 -24
  142. package/dist/memory/retrieval/store/SqlMemoryGraph.js.map +1 -0
  143. package/dist/memory/retrieval/store/migrations/v1-to-v2.d.ts +31 -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 +423 -0
  146. package/dist/memory/retrieval/store/migrations/v1-to-v2.js.map +1 -0
  147. package/dist/memory-router/backends/EntityRetrievalRanker.d.ts +54 -0
  148. package/dist/memory-router/backends/EntityRetrievalRanker.d.ts.map +1 -0
  149. package/dist/memory-router/backends/EntityRetrievalRanker.js +39 -0
  150. package/dist/memory-router/backends/EntityRetrievalRanker.js.map +1 -0
  151. package/dist/memory-router/backends/index.d.ts +16 -0
  152. package/dist/memory-router/backends/index.d.ts.map +1 -0
  153. package/dist/memory-router/backends/index.js +16 -0
  154. package/dist/memory-router/backends/index.js.map +1 -0
  155. package/dist/memory-router/index.d.ts +2 -0
  156. package/dist/memory-router/index.d.ts.map +1 -1
  157. package/dist/memory-router/index.js +4 -0
  158. package/dist/memory-router/index.js.map +1 -1
  159. package/dist/rag/utils/vectorMath.d.ts +1 -1
  160. package/dist/rag/utils/vectorMath.js +1 -1
  161. package/dist/rag/vector-search/HnswIndexSidecar.d.ts +1 -1
  162. package/dist/rag/vector-search/HnswIndexSidecar.js +1 -1
  163. package/package.json +2 -2
  164. package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.d.ts +0 -10
  165. package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.d.ts.map +0 -1
  166. package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.js +0 -10
  167. package/dist/memory/retrieval/graph/knowledge/SqliteKnowledgeGraph.js.map +0 -1
  168. package/dist/memory/retrieval/store/SqliteBrain.d.ts.map +0 -1
  169. package/dist/memory/retrieval/store/SqliteBrain.js.map +0 -1
  170. package/dist/memory/retrieval/store/SqliteKnowledgeGraph.d.ts.map +0 -1
  171. package/dist/memory/retrieval/store/SqliteKnowledgeGraph.js.map +0 -1
  172. package/dist/memory/retrieval/store/SqliteMemoryGraph.d.ts.map +0 -1
  173. package/dist/memory/retrieval/store/SqliteMemoryGraph.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
  * @fileoverview Markdown importer for AgentOS memory brain.
3
3
  *
4
4
  * Recursively walks a directory of Markdown files and inserts each file as a
5
- * memory trace in the target `SqliteBrain`. Front-matter fields (parsed via
5
+ * memory trace in the target `Brain`. Front-matter fields (parsed via
6
6
  * `gray-matter`) are mapped to trace columns; the document body becomes the
7
7
  * trace content.
8
8
  *
@@ -12,7 +12,7 @@
12
12
  * @module memory/io/MarkdownImporter
13
13
  */
14
14
  import type { ImportOptions, ImportResult } from './facade/types.js';
15
- import type { SqliteBrain } from '../retrieval/store/SqliteBrain.js';
15
+ import type { Brain } from '../retrieval/store/Brain.js';
16
16
  /**
17
17
  * Parsed front-matter fields extracted from a Markdown trace file.
18
18
  * All fields are optional — the importer falls back to safe defaults.
@@ -27,7 +27,7 @@ interface TraceFrontmatter {
27
27
  [key: string]: unknown;
28
28
  }
29
29
  /**
30
- * Imports Markdown files from a directory into a `SqliteBrain`.
30
+ * Imports Markdown files from a directory into a `Brain`.
31
31
  *
32
32
  * **Usage:**
33
33
  * ```ts
@@ -37,11 +37,11 @@ interface TraceFrontmatter {
37
37
  * ```
38
38
  */
39
39
  export declare class MarkdownImporter {
40
- protected readonly brain: SqliteBrain;
40
+ protected readonly brain: Brain;
41
41
  /**
42
- * @param brain - The target `SqliteBrain` to import into.
42
+ * @param brain - The target `Brain` to import into.
43
43
  */
44
- constructor(brain: SqliteBrain);
44
+ constructor(brain: Brain);
45
45
  /**
46
46
  * Recursively walk `sourceDir`, parse every `.md` file, and insert traces.
47
47
  *
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownImporter.d.ts","sourceRoot":"","sources":["../../../src/memory/io/MarkdownImporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAMrE;;;GAGG;AACH,UAAU,gBAAgB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAIf,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW;IAHjD;;OAEG;gBAC4B,KAAK,EAAE,WAAW;IAMjD;;;;;;;;OAQG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAgB9F;;;;;;;;;;;OAWG;cACa,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,gBAAgB,EAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAQhB;;;;;OAKG;YACW,qBAAqB;IA2BnC;;;;;OAKG;YACW,YAAY;YAgFZ,eAAe;CAO9B"}
1
+ {"version":3,"file":"MarkdownImporter.d.ts","sourceRoot":"","sources":["../../../src/memory/io/MarkdownImporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAMzD;;;GAGG;AACH,UAAU,gBAAgB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAIf,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK;IAH3C;;OAEG;gBAC4B,KAAK,EAAE,KAAK;IAM3C;;;;;;;;OAQG;IACG,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAgB9F;;;;;;;;;;;OAWG;cACa,WAAW,CACzB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,gBAAgB,EAC9B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAQhB;;;;;OAKG;YACW,qBAAqB;IA2BnC;;;;;OAKG;YACW,YAAY;YAiFZ,eAAe;CAO9B"}
@@ -2,7 +2,7 @@
2
2
  * @fileoverview Markdown importer for AgentOS memory brain.
3
3
  *
4
4
  * Recursively walks a directory of Markdown files and inserts each file as a
5
- * memory trace in the target `SqliteBrain`. Front-matter fields (parsed via
5
+ * memory trace in the target `Brain`. Front-matter fields (parsed via
6
6
  * `gray-matter`) are mapped to trace columns; the document body becomes the
7
7
  * trace content.
8
8
  *
@@ -18,7 +18,7 @@ import matter from 'gray-matter';
18
18
  // MarkdownImporter
19
19
  // ---------------------------------------------------------------------------
20
20
  /**
21
- * Imports Markdown files from a directory into a `SqliteBrain`.
21
+ * Imports Markdown files from a directory into a `Brain`.
22
22
  *
23
23
  * **Usage:**
24
24
  * ```ts
@@ -29,7 +29,7 @@ import matter from 'gray-matter';
29
29
  */
30
30
  export class MarkdownImporter {
31
31
  /**
32
- * @param brain - The target `SqliteBrain` to import into.
32
+ * @param brain - The target `Brain` to import into.
33
33
  */
34
34
  constructor(brain) {
35
35
  this.brain = brain;
@@ -140,7 +140,7 @@ export class MarkdownImporter {
140
140
  // Dedup check.
141
141
  const { dialect } = this.brain.features;
142
142
  if (options?.dedup ?? true) {
143
- const existing = await this.brain.get(`SELECT id FROM memory_traces WHERE ${dialect.jsonExtract('metadata', '$.import_hash')} = ? LIMIT 1`, [hash]);
143
+ const existing = await this.brain.get(`SELECT id FROM memory_traces WHERE brain_id = ? AND ${dialect.jsonExtract('metadata', '$.import_hash')} = ? LIMIT 1`, [this.brain.brainId, hash]);
144
144
  if (existing) {
145
145
  result.skipped++;
146
146
  return;
@@ -151,9 +151,10 @@ export class MarkdownImporter {
151
151
  const meta = { import_hash: hash, source_file: filePath };
152
152
  try {
153
153
  await this.brain.run(`INSERT INTO memory_traces
154
- (id, type, scope, content, embedding, strength, created_at, last_accessed,
154
+ (brain_id, id, type, scope, content, embedding, strength, created_at, last_accessed,
155
155
  retrieval_count, tags, emotions, metadata, deleted)
156
- VALUES (?, ?, ?, ?, NULL, ?, ?, NULL, 0, ?, '{}', ?, 0)`, [
156
+ VALUES (?, ?, ?, ?, ?, NULL, ?, ?, NULL, 0, ?, '{}', ?, 0)`, [
157
+ this.brain.brainId,
157
158
  traceId,
158
159
  typeof fm.type === 'string' ? fm.type : 'episodic',
159
160
  typeof fm.scope === 'string' ? fm.scope : 'user',
@@ -172,7 +173,7 @@ export class MarkdownImporter {
172
173
  }
173
174
  }
174
175
  async _resolveTraceId(preferredId) {
175
- const existing = await this.brain.get('SELECT id FROM memory_traces WHERE id = ? LIMIT 1', [preferredId]);
176
+ const existing = await this.brain.get('SELECT id FROM memory_traces WHERE brain_id = ? AND id = ? LIMIT 1', [this.brain.brainId, preferredId]);
176
177
  return existing ? `mt_${uuidv4()}` : preferredId;
177
178
  }
178
179
  }
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownImporter.js","sourceRoot":"","sources":["../../../src/memory/io/MarkdownImporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MarkdownImporter.js","sourceRoot":"","sources":["../../../src/memory/io/MarkdownImporter.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@
18
18
  * @module memory/io/ObsidianImporter
19
19
  */
20
20
  import type { ImportResult } from './facade/types.js';
21
- import type { SqliteBrain } from '../retrieval/store/SqliteBrain.js';
21
+ import type { Brain } from '../retrieval/store/Brain.js';
22
22
  import { MarkdownImporter } from './MarkdownImporter.js';
23
23
  /**
24
24
  * Parsed front-matter fields (same shape as MarkdownImporter expects).
@@ -33,7 +33,7 @@ interface TraceFrontmatter {
33
33
  [key: string]: unknown;
34
34
  }
35
35
  /**
36
- * Imports an Obsidian vault (directory of Markdown files) into a `SqliteBrain`.
36
+ * Imports an Obsidian vault (directory of Markdown files) into a `Brain`.
37
37
  *
38
38
  * **Usage:**
39
39
  * ```ts
@@ -43,9 +43,9 @@ interface TraceFrontmatter {
43
43
  */
44
44
  export declare class ObsidianImporter extends MarkdownImporter {
45
45
  /**
46
- * @param brain - The target `SqliteBrain` to import into.
46
+ * @param brain - The target `Brain` to import into.
47
47
  */
48
- constructor(brain: SqliteBrain);
48
+ constructor(brain: Brain);
49
49
  /**
50
50
  * Post-process a successfully imported Markdown file:
51
51
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ObsidianImporter.d.ts","sourceRoot":"","sources":["../../../src/memory/io/ObsidianImporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA6BzD;;GAEG;AACH,UAAU,gBAAgB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD;;OAEG;gBACS,KAAK,EAAE,WAAW;IAQ9B;;;;;;;;;;;;OAYG;cACsB,WAAW,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,gBAAgB,EAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAuChB;;;;;;;;OAQG;YACW,mBAAmB;IAiCjC;;;;;;;;;;;;;;;;OAgBG;YACW,eAAe;CAmG9B"}
1
+ {"version":3,"file":"ObsidianImporter.d.ts","sourceRoot":"","sources":["../../../src/memory/io/ObsidianImporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA6BzD;;GAEG;AACH,UAAU,gBAAgB;IACxB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD;;;;;;;;GAQG;AACH,qBAAa,gBAAiB,SAAQ,gBAAgB;IACpD;;OAEG;gBACS,KAAK,EAAE,KAAK;IAQxB;;;;;;;;;;;;OAYG;cACsB,WAAW,CAClC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,gBAAgB,EAC9B,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IAuChB;;;;;;;;OAQG;YACW,mBAAmB;IAkCjC;;;;;;;;;;;;;;;;OAgBG;YACW,eAAe;CAuG9B"}
@@ -43,7 +43,7 @@ const HASHTAG_RE = /(?<![[#])#([\w-]+)/g;
43
43
  // ObsidianImporter
44
44
  // ---------------------------------------------------------------------------
45
45
  /**
46
- * Imports an Obsidian vault (directory of Markdown files) into a `SqliteBrain`.
46
+ * Imports an Obsidian vault (directory of Markdown files) into a `Brain`.
47
47
  *
48
48
  * **Usage:**
49
49
  * ```ts
@@ -53,7 +53,7 @@ const HASHTAG_RE = /(?<![[#])#([\w-]+)/g;
53
53
  */
54
54
  export class ObsidianImporter extends MarkdownImporter {
55
55
  /**
56
- * @param brain - The target `SqliteBrain` to import into.
56
+ * @param brain - The target `Brain` to import into.
57
57
  */
58
58
  constructor(brain) {
59
59
  super(brain);
@@ -119,7 +119,8 @@ export class ObsidianImporter extends MarkdownImporter {
119
119
  async _mergeTagsIntoTrace(traceId, newTags, result) {
120
120
  try {
121
121
  const brainRef = this.brain;
122
- const row = await brainRef.get('SELECT tags FROM memory_traces WHERE id = ?', [traceId]);
122
+ const brainId = brainRef.brainId;
123
+ const row = await brainRef.get('SELECT tags FROM memory_traces WHERE brain_id = ? AND id = ?', [brainId, traceId]);
123
124
  if (!row)
124
125
  return;
125
126
  let existing = [];
@@ -130,7 +131,7 @@ export class ObsidianImporter extends MarkdownImporter {
130
131
  existing = [];
131
132
  }
132
133
  const merged = Array.from(new Set([...existing, ...newTags]));
133
- await brainRef.run('UPDATE memory_traces SET tags = ? WHERE id = ?', [JSON.stringify(merged), traceId]);
134
+ await brainRef.run('UPDATE memory_traces SET tags = ? WHERE brain_id = ? AND id = ?', [JSON.stringify(merged), brainId, traceId]);
134
135
  }
135
136
  catch (err) {
136
137
  result.errors.push(`Tag merge error for trace ${traceId}: ${String(err)}`);
@@ -157,18 +158,20 @@ export class ObsidianImporter extends MarkdownImporter {
157
158
  try {
158
159
  const brainRef = this.brain;
159
160
  const { dialect } = brainRef.features;
161
+ const brainId = brainRef.brainId;
160
162
  // ---- Upsert source knowledge node for the trace ----
161
163
  // We use the trace ID itself as the node label so the graph stays navigable.
162
164
  const sourceLabel = `trace:${sourceTraceId}`;
163
165
  const sourceHash = await sha256(`wiki-source::${sourceTraceId}`);
164
166
  let sourceNodeId;
165
- const existingSource = await brainRef.get(`SELECT id FROM knowledge_nodes WHERE label = ? LIMIT 1`, [sourceLabel]);
167
+ const existingSource = await brainRef.get(`SELECT id FROM knowledge_nodes WHERE brain_id = ? AND label = ? LIMIT 1`, [brainId, sourceLabel]);
166
168
  if (existingSource) {
167
169
  sourceNodeId = existingSource.id;
168
170
  }
169
171
  else {
170
172
  sourceNodeId = `kn_${uuidv4()}`;
171
- await brainRef.run(dialect.insertOrIgnore('knowledge_nodes', ['id', 'type', 'label', 'properties', 'embedding', 'confidence', 'source', 'created_at'], ['?', "'trace'", '?', '?', 'NULL', '1.0', "'{}'", '?']), [
173
+ await brainRef.run(dialect.insertOrIgnore('knowledge_nodes', ['brain_id', 'id', 'type', 'label', 'properties', 'embedding', 'confidence', 'source', 'created_at'], ['?', '?', "'trace'", '?', '?', 'NULL', '1.0', "'{}'", '?']), [
174
+ brainId,
172
175
  sourceNodeId,
173
176
  sourceLabel,
174
177
  JSON.stringify({ import_hash: sourceHash, trace_id: sourceTraceId }),
@@ -178,13 +181,14 @@ export class ObsidianImporter extends MarkdownImporter {
178
181
  // ---- Upsert target knowledge node for the wikilink label ----
179
182
  const targetHash = await sha256(`wiki::${targetLabel}`);
180
183
  let targetNodeId;
181
- const existingTarget = await brainRef.get(`SELECT id FROM knowledge_nodes WHERE label = ? LIMIT 1`, [targetLabel]);
184
+ const existingTarget = await brainRef.get(`SELECT id FROM knowledge_nodes WHERE brain_id = ? AND label = ? LIMIT 1`, [brainId, targetLabel]);
182
185
  if (existingTarget) {
183
186
  targetNodeId = existingTarget.id;
184
187
  }
185
188
  else {
186
189
  targetNodeId = `kn_${uuidv4()}`;
187
- await brainRef.run(dialect.insertOrIgnore('knowledge_nodes', ['id', 'type', 'label', 'properties', 'embedding', 'confidence', 'source', 'created_at'], ['?', "'concept'", '?', '?', 'NULL', '1.0', "'{}'", '?']), [
190
+ await brainRef.run(dialect.insertOrIgnore('knowledge_nodes', ['brain_id', 'id', 'type', 'label', 'properties', 'embedding', 'confidence', 'source', 'created_at'], ['?', '?', "'concept'", '?', '?', 'NULL', '1.0', "'{}'", '?']), [
191
+ brainId,
188
192
  targetNodeId,
189
193
  targetLabel,
190
194
  JSON.stringify({ import_hash: targetHash, obsidian_wikilink: true }),
@@ -195,9 +199,10 @@ export class ObsidianImporter extends MarkdownImporter {
195
199
  const edgeHash = await sha256(`${sourceNodeId}::${targetNodeId}::related_to`);
196
200
  // Check for existing edge before insert (extra safety beyond OR IGNORE).
197
201
  const existingEdge = await brainRef.get(`SELECT id FROM knowledge_edges
198
- WHERE ${dialect.jsonExtract('metadata', '$.import_hash')} = ? LIMIT 1`, [edgeHash]);
202
+ WHERE brain_id = ? AND ${dialect.jsonExtract('metadata', '$.import_hash')} = ? LIMIT 1`, [brainId, edgeHash]);
199
203
  if (!existingEdge) {
200
- await brainRef.run(dialect.insertOrIgnore('knowledge_edges', ['id', 'source_id', 'target_id', 'type', 'weight', 'bidirectional', 'metadata', 'created_at'], ['?', '?', '?', "'related_to'", '1.0', '0', '?', '?']), [
204
+ await brainRef.run(dialect.insertOrIgnore('knowledge_edges', ['brain_id', 'id', 'source_id', 'target_id', 'type', 'weight', 'bidirectional', 'metadata', 'created_at'], ['?', '?', '?', '?', "'related_to'", '1.0', '0', '?', '?']), [
205
+ brainId,
201
206
  `ke_${uuidv4()}`,
202
207
  sourceNodeId,
203
208
  targetNodeId,
@@ -1 +1 @@
1
- {"version":3,"file":"ObsidianImporter.js","sourceRoot":"","sources":["../../../src/memory/io/ObsidianImporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObsidianImporter.js","sourceRoot":"","sources":["../../../src/memory/io/ObsidianImporter.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @fileoverview SQLite exporter for AgentOS memory brain.
3
3
  *
4
- * Provides a full-fidelity backup of the `SqliteBrain` SQLite file by copying
4
+ * Provides a full-fidelity backup of the `Brain` SQLite file by copying
5
5
  * the database file to a specified output path. This is the highest-fidelity
6
6
  * export format — it preserves all tables, indexes, and metadata exactly.
7
7
  *
@@ -11,9 +11,9 @@
11
11
  * @module memory/io/SqliteExporter
12
12
  */
13
13
  import type { ExportOptions } from './facade/types.js';
14
- import type { SqliteBrain } from '../retrieval/store/SqliteBrain.js';
14
+ import type { Brain } from '../retrieval/store/Brain.js';
15
15
  /**
16
- * Exports a `SqliteBrain` as a portable SQLite file.
16
+ * Exports a `Brain` as a portable SQLite file.
17
17
  *
18
18
  * **Usage:**
19
19
  * ```ts
@@ -24,9 +24,9 @@ import type { SqliteBrain } from '../retrieval/store/SqliteBrain.js';
24
24
  export declare class SqliteExporter {
25
25
  private readonly brain;
26
26
  /**
27
- * @param brain - The `SqliteBrain` instance to export.
27
+ * @param brain - The `Brain` instance to export.
28
28
  */
29
- constructor(brain: SqliteBrain);
29
+ constructor(brain: Brain);
30
30
  /**
31
31
  * Copy the brain database to `outputPath`.
32
32
  *
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteExporter.d.ts","sourceRoot":"","sources":["../../../src/memory/io/SqliteExporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAMrE;;;;;;;;GAQG;AACH,qBAAa,cAAc;IAIb,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC;;OAEG;gBAC0B,KAAK,EAAE,WAAW;IAM/C;;;;;;;;;;;;;OAaG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1E"}
1
+ {"version":3,"file":"SqliteExporter.d.ts","sourceRoot":"","sources":["../../../src/memory/io/SqliteExporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAMzD;;;;;;;;GAQG;AACH,qBAAa,cAAc;IAIb,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC;;OAEG;gBAC0B,KAAK,EAAE,KAAK;IAMzC;;;;;;;;;;;;;OAaG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAG1E"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @fileoverview SQLite exporter for AgentOS memory brain.
3
3
  *
4
- * Provides a full-fidelity backup of the `SqliteBrain` SQLite file by copying
4
+ * Provides a full-fidelity backup of the `Brain` SQLite file by copying
5
5
  * the database file to a specified output path. This is the highest-fidelity
6
6
  * export format — it preserves all tables, indexes, and metadata exactly.
7
7
  *
@@ -14,7 +14,7 @@
14
14
  // SqliteExporter
15
15
  // ---------------------------------------------------------------------------
16
16
  /**
17
- * Exports a `SqliteBrain` as a portable SQLite file.
17
+ * Exports a `Brain` as a portable SQLite file.
18
18
  *
19
19
  * **Usage:**
20
20
  * ```ts
@@ -24,7 +24,7 @@
24
24
  */
25
25
  export class SqliteExporter {
26
26
  /**
27
- * @param brain - The `SqliteBrain` instance to export.
27
+ * @param brain - The `Brain` instance to export.
28
28
  */
29
29
  constructor(brain) {
30
30
  this.brain = brain;
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteExporter.js","sourceRoot":"","sources":["../../../src/memory/io/SqliteExporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,YAA6B,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;IAAG,CAAC;IAEnD,4EAA4E;IAC5E,aAAa;IACb,4EAA4E;IAE5E;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,QAAwB;QACvD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;CACF"}
1
+ {"version":3,"file":"SqliteExporter.js","sourceRoot":"","sources":["../../../src/memory/io/SqliteExporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,YAA6B,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAE7C,4EAA4E;IAC5E,aAAa;IACb,4EAA4E;IAE5E;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,QAAwB;QACvD,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC;CACF"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Opens a source SQLite file via `@framers/sql-storage-adapter` (supporting
5
5
  * better-sqlite3, sql.js, IndexedDB, etc.) and merges traces, knowledge
6
- * nodes, and edges into the target `SqliteBrain`.
6
+ * nodes, and edges into the target `Brain`.
7
7
  *
8
8
  * ## Merge strategy
9
9
  * - **memory_traces**: deduplicated by SHA-256 of `content`.
@@ -19,9 +19,9 @@
19
19
  * @module memory/io/SqliteImporter
20
20
  */
21
21
  import type { ImportOptions, ImportResult } from './facade/types.js';
22
- import type { SqliteBrain } from '../retrieval/store/SqliteBrain.js';
22
+ import type { Brain } from '../retrieval/store/Brain.js';
23
23
  /**
24
- * Merges a source SQLite brain file into a target `SqliteBrain`.
24
+ * Merges a source SQLite brain file into a target `Brain`.
25
25
  *
26
26
  * Uses `@framers/sql-storage-adapter` to open the source file, enabling
27
27
  * cross-platform operation (better-sqlite3, sql.js, IndexedDB).
@@ -34,7 +34,7 @@ import type { SqliteBrain } from '../retrieval/store/SqliteBrain.js';
34
34
  */
35
35
  export declare class SqliteImporter {
36
36
  private readonly brain;
37
- constructor(brain: SqliteBrain);
37
+ constructor(brain: Brain);
38
38
  /**
39
39
  * Open `sourcePath` via StorageAdapter, read all tables, and merge
40
40
  * their contents into the target brain.
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteImporter.d.ts","sourceRoot":"","sources":["../../../src/memory/io/SqliteImporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAkDrE;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,WAAW;IAE/C;;;;;;OAMG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;YAkCjF,OAAO;YAIP,YAAY;YA6EZ,WAAW;YA+CX,WAAW;YAwDX,eAAe;CAU9B"}
1
+ {"version":3,"file":"SqliteImporter.d.ts","sourceRoot":"","sources":["../../../src/memory/io/SqliteImporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAkDzD;;;;;;;;;;;GAWG;AACH,qBAAa,cAAc;IACb,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEzC;;;;;;OAMG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;YAkCjF,OAAO;YAIP,YAAY;YAgFZ,WAAW;YAiDX,WAAW;YA0DX,eAAe;CAU9B"}
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Opens a source SQLite file via `@framers/sql-storage-adapter` (supporting
5
5
  * better-sqlite3, sql.js, IndexedDB, etc.) and merges traces, knowledge
6
- * nodes, and edges into the target `SqliteBrain`.
6
+ * nodes, and edges into the target `Brain`.
7
7
  *
8
8
  * ## Merge strategy
9
9
  * - **memory_traces**: deduplicated by SHA-256 of `content`.
@@ -25,7 +25,7 @@ import { resolveStorageAdapter } from '@framers/sql-storage-adapter';
25
25
  // SqliteImporter
26
26
  // ---------------------------------------------------------------------------
27
27
  /**
28
- * Merges a source SQLite brain file into a target `SqliteBrain`.
28
+ * Merges a source SQLite brain file into a target `Brain`.
29
29
  *
30
30
  * Uses `@framers/sql-storage-adapter` to open the source file, enabling
31
31
  * cross-platform operation (better-sqlite3, sql.js, IndexedDB).
@@ -91,21 +91,23 @@ export class SqliteImporter {
91
91
  return;
92
92
  }
93
93
  const { dialect } = this.brain.features;
94
+ const brainId = this.brain.brainId;
94
95
  const checkSql = `SELECT id, created_at, tags
95
96
  FROM memory_traces
96
- WHERE ${dialect.jsonExtract('metadata', '$.import_hash')} = ?
97
- OR content = ?
97
+ WHERE brain_id = ?
98
+ AND (${dialect.jsonExtract('metadata', '$.import_hash')} = ?
99
+ OR content = ?)
98
100
  LIMIT 1`;
99
101
  const insertSql = `INSERT INTO memory_traces
100
- (id, type, scope, content, embedding, strength, created_at, last_accessed,
102
+ (brain_id, id, type, scope, content, embedding, strength, created_at, last_accessed,
101
103
  retrieval_count, tags, emotions, metadata, deleted)
102
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`;
103
- const updateTimestampSql = `UPDATE memory_traces SET created_at = ?, tags = ? WHERE id = ?`;
104
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`;
105
+ const updateTimestampSql = `UPDATE memory_traces SET created_at = ?, tags = ? WHERE brain_id = ? AND id = ?`;
104
106
  for (const row of sourceRows) {
105
107
  try {
106
108
  const hash = await this._sha256(row.content);
107
109
  if (options?.dedup ?? true) {
108
- const existing = await trx.get(checkSql, [hash, row.content]);
110
+ const existing = await trx.get(checkSql, [brainId, hash, row.content]);
109
111
  if (existing) {
110
112
  const newerAt = Math.max(existing.created_at, row.created_at);
111
113
  let existingTags = [];
@@ -119,7 +121,7 @@ export class SqliteImporter {
119
121
  }
120
122
  catch { /* ignore */ }
121
123
  const merged = Array.from(new Set([...existingTags, ...sourceTags]));
122
- await trx.run(updateTimestampSql, [newerAt, JSON.stringify(merged), existing.id]);
124
+ await trx.run(updateTimestampSql, [newerAt, JSON.stringify(merged), brainId, existing.id]);
123
125
  result.skipped++;
124
126
  continue;
125
127
  }
@@ -132,6 +134,7 @@ export class SqliteImporter {
132
134
  meta['import_hash'] = hash;
133
135
  const id = await this._resolveTraceId(trx, row.id ?? `mt_${uuidv4()}`);
134
136
  await trx.run(insertSql, [
137
+ brainId,
135
138
  id,
136
139
  row.type ?? 'episodic',
137
140
  row.scope ?? 'user',
@@ -161,17 +164,19 @@ export class SqliteImporter {
161
164
  catch {
162
165
  return;
163
166
  }
164
- const checkSql = `SELECT id FROM knowledge_nodes WHERE label = ? AND type = ? LIMIT 1`;
167
+ const checkSql = `SELECT id FROM knowledge_nodes WHERE brain_id = ? AND label = ? AND type = ? LIMIT 1`;
165
168
  const { dialect } = this.brain.features;
166
- const insertSql = dialect.insertOrIgnore('knowledge_nodes', ['id', 'type', 'label', 'properties', 'embedding', 'confidence', 'source', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?']);
169
+ const brainId = this.brain.brainId;
170
+ const insertSql = dialect.insertOrIgnore('knowledge_nodes', ['brain_id', 'id', 'type', 'label', 'properties', 'embedding', 'confidence', 'source', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?', '?']);
167
171
  for (const row of sourceRows) {
168
172
  try {
169
- const existing = await trx.get(checkSql, [row.label ?? '', row.type ?? '']);
173
+ const existing = await trx.get(checkSql, [brainId, row.label ?? '', row.type ?? '']);
170
174
  if (existing) {
171
175
  result.skipped++;
172
176
  continue;
173
177
  }
174
178
  await trx.run(insertSql, [
179
+ brainId,
175
180
  row.id ?? `kn_${uuidv4()}`,
176
181
  row.type ?? 'concept',
177
182
  row.label ?? '',
@@ -197,22 +202,24 @@ export class SqliteImporter {
197
202
  return;
198
203
  }
199
204
  const checkSql = `SELECT id FROM knowledge_edges
200
- WHERE source_id = ? AND target_id = ? AND type = ?
205
+ WHERE brain_id = ? AND source_id = ? AND target_id = ? AND type = ?
201
206
  LIMIT 1`;
202
207
  const { dialect } = this.brain.features;
203
- const insertSql = dialect.insertOrIgnore('knowledge_edges', ['id', 'source_id', 'target_id', 'type', 'weight', 'bidirectional', 'metadata', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?']);
208
+ const brainId = this.brain.brainId;
209
+ const insertSql = dialect.insertOrIgnore('knowledge_edges', ['brain_id', 'id', 'source_id', 'target_id', 'type', 'weight', 'bidirectional', 'metadata', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?', '?']);
204
210
  for (const row of sourceRows) {
205
211
  try {
206
212
  if (!row.source_id || !row.target_id) {
207
213
  result.skipped++;
208
214
  continue;
209
215
  }
210
- const existing = await trx.get(checkSql, [row.source_id, row.target_id, row.type ?? '']);
216
+ const existing = await trx.get(checkSql, [brainId, row.source_id, row.target_id, row.type ?? '']);
211
217
  if (existing) {
212
218
  result.skipped++;
213
219
  continue;
214
220
  }
215
221
  await trx.run(insertSql, [
222
+ brainId,
216
223
  row.id ?? `ke_${uuidv4()}`,
217
224
  row.source_id,
218
225
  row.target_id,
@@ -230,7 +237,7 @@ export class SqliteImporter {
230
237
  }
231
238
  }
232
239
  async _resolveTraceId(trx, preferredId) {
233
- const existing = await trx.get('SELECT id FROM memory_traces WHERE id = ? LIMIT 1', [preferredId]);
240
+ const existing = await trx.get('SELECT id FROM memory_traces WHERE brain_id = ? AND id = ? LIMIT 1', [this.brain.brainId, preferredId]);
234
241
  return existing ? `mt_${uuidv4()}` : preferredId;
235
242
  }
236
243
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteImporter.js","sourceRoot":"","sources":["../../../src/memory/io/SqliteImporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqliteImporter.js","sourceRoot":"","sources":["../../../src/memory/io/SqliteImporter.ts"],"names":[],"mappings":"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"}