@framers/agentos 0.1.125 → 0.1.126

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 (156) hide show
  1. package/dist/core/provenance/crypto/AgentKeyManager.d.ts.map +1 -1
  2. package/dist/core/provenance/crypto/AgentKeyManager.js +9 -3
  3. package/dist/core/provenance/crypto/AgentKeyManager.js.map +1 -1
  4. package/dist/core/text-processing/ITextProcessor.d.ts +43 -0
  5. package/dist/core/text-processing/ITextProcessor.d.ts.map +1 -0
  6. package/dist/core/text-processing/ITextProcessor.js +6 -0
  7. package/dist/core/text-processing/ITextProcessor.js.map +1 -0
  8. package/dist/core/text-processing/TextProcessingPipeline.d.ts +49 -0
  9. package/dist/core/text-processing/TextProcessingPipeline.d.ts.map +1 -0
  10. package/dist/core/text-processing/TextProcessingPipeline.js +61 -0
  11. package/dist/core/text-processing/TextProcessingPipeline.js.map +1 -0
  12. package/dist/core/text-processing/filters/StopWordFilter.d.ts +30 -0
  13. package/dist/core/text-processing/filters/StopWordFilter.d.ts.map +1 -0
  14. package/dist/core/text-processing/filters/StopWordFilter.js +76 -0
  15. package/dist/core/text-processing/filters/StopWordFilter.js.map +1 -0
  16. package/dist/core/text-processing/index.d.ts +20 -0
  17. package/dist/core/text-processing/index.d.ts.map +1 -0
  18. package/dist/core/text-processing/index.js +24 -0
  19. package/dist/core/text-processing/index.js.map +1 -0
  20. package/dist/core/text-processing/lemmatizers/NoOpLemmatizer.d.ts +11 -0
  21. package/dist/core/text-processing/lemmatizers/NoOpLemmatizer.d.ts.map +1 -0
  22. package/dist/core/text-processing/lemmatizers/NoOpLemmatizer.js +13 -0
  23. package/dist/core/text-processing/lemmatizers/NoOpLemmatizer.js.map +1 -0
  24. package/dist/core/text-processing/lemmatizers/WordNetLemmatizer.d.ts +25 -0
  25. package/dist/core/text-processing/lemmatizers/WordNetLemmatizer.d.ts.map +1 -0
  26. package/dist/core/text-processing/lemmatizers/WordNetLemmatizer.js +64 -0
  27. package/dist/core/text-processing/lemmatizers/WordNetLemmatizer.js.map +1 -0
  28. package/dist/core/text-processing/normalizers/AccentStripper.d.ts +17 -0
  29. package/dist/core/text-processing/normalizers/AccentStripper.d.ts.map +1 -0
  30. package/dist/core/text-processing/normalizers/AccentStripper.js +22 -0
  31. package/dist/core/text-processing/normalizers/AccentStripper.js.map +1 -0
  32. package/dist/core/text-processing/normalizers/LowercaseNormalizer.d.ts +11 -0
  33. package/dist/core/text-processing/normalizers/LowercaseNormalizer.d.ts.map +1 -0
  34. package/dist/core/text-processing/normalizers/LowercaseNormalizer.js +13 -0
  35. package/dist/core/text-processing/normalizers/LowercaseNormalizer.js.map +1 -0
  36. package/dist/core/text-processing/presets.d.ts +22 -0
  37. package/dist/core/text-processing/presets.d.ts.map +1 -0
  38. package/dist/core/text-processing/presets.js +45 -0
  39. package/dist/core/text-processing/presets.js.map +1 -0
  40. package/dist/core/text-processing/stemmers/NoOpStemmer.d.ts +14 -0
  41. package/dist/core/text-processing/stemmers/NoOpStemmer.d.ts.map +1 -0
  42. package/dist/core/text-processing/stemmers/NoOpStemmer.js +16 -0
  43. package/dist/core/text-processing/stemmers/NoOpStemmer.js.map +1 -0
  44. package/dist/core/text-processing/stemmers/PorterStemmer.d.ts +31 -0
  45. package/dist/core/text-processing/stemmers/PorterStemmer.d.ts.map +1 -0
  46. package/dist/core/text-processing/stemmers/PorterStemmer.js +62 -0
  47. package/dist/core/text-processing/stemmers/PorterStemmer.js.map +1 -0
  48. package/dist/core/text-processing/tokenizers/CodeTokenizer.d.ts +25 -0
  49. package/dist/core/text-processing/tokenizers/CodeTokenizer.d.ts.map +1 -0
  50. package/dist/core/text-processing/tokenizers/CodeTokenizer.js +75 -0
  51. package/dist/core/text-processing/tokenizers/CodeTokenizer.js.map +1 -0
  52. package/dist/core/text-processing/tokenizers/StandardTokenizer.d.ts +22 -0
  53. package/dist/core/text-processing/tokenizers/StandardTokenizer.d.ts.map +1 -0
  54. package/dist/core/text-processing/tokenizers/StandardTokenizer.js +37 -0
  55. package/dist/core/text-processing/tokenizers/StandardTokenizer.js.map +1 -0
  56. package/dist/core/text-processing/types.d.ts +18 -0
  57. package/dist/core/text-processing/types.d.ts.map +1 -0
  58. package/dist/core/text-processing/types.js +6 -0
  59. package/dist/core/text-processing/types.js.map +1 -0
  60. package/dist/core/vector-search/HnswIndexSidecar.d.ts +91 -0
  61. package/dist/core/vector-search/HnswIndexSidecar.d.ts.map +1 -0
  62. package/dist/core/vector-search/HnswIndexSidecar.js +270 -0
  63. package/dist/core/vector-search/HnswIndexSidecar.js.map +1 -0
  64. package/dist/core/vector-search/index.d.ts +7 -0
  65. package/dist/core/vector-search/index.d.ts.map +1 -0
  66. package/dist/core/vector-search/index.js +6 -0
  67. package/dist/core/vector-search/index.js.map +1 -0
  68. package/dist/core/vector-search/types.d.ts +42 -0
  69. package/dist/core/vector-search/types.d.ts.map +1 -0
  70. package/dist/core/vector-search/types.js +6 -0
  71. package/dist/core/vector-search/types.js.map +1 -0
  72. package/dist/memory/CognitiveMemoryManager.js +3 -3
  73. package/dist/memory/CognitiveMemoryManager.js.map +1 -1
  74. package/dist/memory/consolidation/ConsolidationLoop.js +3 -3
  75. package/dist/memory/consolidation/ConsolidationLoop.js.map +1 -1
  76. package/dist/memory/facade/Memory.d.ts +21 -0
  77. package/dist/memory/facade/Memory.d.ts.map +1 -1
  78. package/dist/memory/facade/Memory.js +124 -62
  79. package/dist/memory/facade/Memory.js.map +1 -1
  80. package/dist/memory/io/ChatGptImporter.d.ts.map +1 -1
  81. package/dist/memory/io/ChatGptImporter.js +7 -6
  82. package/dist/memory/io/ChatGptImporter.js.map +1 -1
  83. package/dist/memory/io/CsvImporter.d.ts +15 -0
  84. package/dist/memory/io/CsvImporter.d.ts.map +1 -1
  85. package/dist/memory/io/CsvImporter.js +28 -7
  86. package/dist/memory/io/CsvImporter.js.map +1 -1
  87. package/dist/memory/io/JsonExporter.d.ts +14 -0
  88. package/dist/memory/io/JsonExporter.d.ts.map +1 -1
  89. package/dist/memory/io/JsonExporter.js +22 -3
  90. package/dist/memory/io/JsonExporter.js.map +1 -1
  91. package/dist/memory/io/JsonImporter.d.ts +15 -0
  92. package/dist/memory/io/JsonImporter.d.ts.map +1 -1
  93. package/dist/memory/io/JsonImporter.js +35 -16
  94. package/dist/memory/io/JsonImporter.js.map +1 -1
  95. package/dist/memory/io/MarkdownImporter.d.ts.map +1 -1
  96. package/dist/memory/io/MarkdownImporter.js +7 -5
  97. package/dist/memory/io/MarkdownImporter.js.map +1 -1
  98. package/dist/memory/io/ObsidianImporter.d.ts.map +1 -1
  99. package/dist/memory/io/ObsidianImporter.js +9 -23
  100. package/dist/memory/io/ObsidianImporter.js.map +1 -1
  101. package/dist/memory/io/SqliteExporter.d.ts.map +1 -1
  102. package/dist/memory/io/SqliteExporter.js +1 -3
  103. package/dist/memory/io/SqliteExporter.js.map +1 -1
  104. package/dist/memory/io/SqliteImporter.d.ts.map +1 -1
  105. package/dist/memory/io/SqliteImporter.js +10 -11
  106. package/dist/memory/io/SqliteImporter.js.map +1 -1
  107. package/dist/memory/store/HnswSidecar.d.ts +7 -0
  108. package/dist/memory/store/HnswSidecar.d.ts.map +1 -1
  109. package/dist/memory/store/HnswSidecar.js +7 -0
  110. package/dist/memory/store/HnswSidecar.js.map +1 -1
  111. package/dist/memory/store/SqliteBrain.d.ts +14 -2
  112. package/dist/memory/store/SqliteBrain.d.ts.map +1 -1
  113. package/dist/memory/store/SqliteBrain.js +37 -34
  114. package/dist/memory/store/SqliteBrain.js.map +1 -1
  115. package/dist/memory/store/SqliteKnowledgeGraph.d.ts.map +1 -1
  116. package/dist/memory/store/SqliteKnowledgeGraph.js +12 -55
  117. package/dist/memory/store/SqliteKnowledgeGraph.js.map +1 -1
  118. package/dist/memory/store/SqliteMemoryGraph.d.ts.map +1 -1
  119. package/dist/memory/store/SqliteMemoryGraph.js +11 -16
  120. package/dist/memory/store/SqliteMemoryGraph.js.map +1 -1
  121. package/dist/memory/store/tracePersistence.d.ts +1 -1
  122. package/dist/memory/store/tracePersistence.d.ts.map +1 -1
  123. package/dist/memory/store/tracePersistence.js +3 -3
  124. package/dist/memory/store/tracePersistence.js.map +1 -1
  125. package/dist/memory/tools/MemoryAddTool.d.ts.map +1 -1
  126. package/dist/memory/tools/MemoryAddTool.js +2 -7
  127. package/dist/memory/tools/MemoryAddTool.js.map +1 -1
  128. package/dist/memory/tools/MemoryMergeTool.d.ts.map +1 -1
  129. package/dist/memory/tools/MemoryMergeTool.js +2 -3
  130. package/dist/memory/tools/MemoryMergeTool.js.map +1 -1
  131. package/dist/memory/tools/MemorySearchTool.d.ts.map +1 -1
  132. package/dist/memory/tools/MemorySearchTool.js +6 -5
  133. package/dist/memory/tools/MemorySearchTool.js.map +1 -1
  134. package/dist/memory/tools/MemoryUpdateTool.d.ts.map +1 -1
  135. package/dist/memory/tools/MemoryUpdateTool.js +2 -3
  136. package/dist/memory/tools/MemoryUpdateTool.js.map +1 -1
  137. package/dist/memory/util/crossPlatformCrypto.d.ts +31 -0
  138. package/dist/memory/util/crossPlatformCrypto.d.ts.map +1 -0
  139. package/dist/memory/util/crossPlatformCrypto.js +60 -0
  140. package/dist/memory/util/crossPlatformCrypto.js.map +1 -0
  141. package/dist/rag/VectorStoreManager.d.ts.map +1 -1
  142. package/dist/rag/VectorStoreManager.js +4 -2
  143. package/dist/rag/VectorStoreManager.js.map +1 -1
  144. package/dist/rag/implementations/vector_stores/HnswlibVectorStore.d.ts +6 -0
  145. package/dist/rag/implementations/vector_stores/HnswlibVectorStore.d.ts.map +1 -1
  146. package/dist/rag/implementations/vector_stores/HnswlibVectorStore.js +9 -0
  147. package/dist/rag/implementations/vector_stores/HnswlibVectorStore.js.map +1 -1
  148. package/dist/rag/implementations/vector_stores/SqlVectorStore.d.ts +23 -0
  149. package/dist/rag/implementations/vector_stores/SqlVectorStore.d.ts.map +1 -1
  150. package/dist/rag/implementations/vector_stores/SqlVectorStore.js +109 -5
  151. package/dist/rag/implementations/vector_stores/SqlVectorStore.js.map +1 -1
  152. package/dist/rag/search/BM25Index.d.ts +13 -0
  153. package/dist/rag/search/BM25Index.d.ts.map +1 -1
  154. package/dist/rag/search/BM25Index.js +14 -20
  155. package/dist/rag/search/BM25Index.js.map +1 -1
  156. package/package.json +3 -2
@@ -19,7 +19,7 @@
19
19
  * @module memory/io/SqliteImporter
20
20
  */
21
21
  import Database from 'better-sqlite3';
22
- import crypto from 'node:crypto';
22
+ import { sha256 as crossSha256 } from '../util/crossPlatformCrypto.js';
23
23
  import { v4 as uuidv4 } from 'uuid';
24
24
  // ---------------------------------------------------------------------------
25
25
  // SqliteImporter
@@ -82,8 +82,8 @@ export class SqliteImporter {
82
82
  /**
83
83
  * SHA-256 of an arbitrary string (hex output).
84
84
  */
85
- _sha256(s) {
86
- return crypto.createHash('sha256').update(s, 'utf8').digest('hex');
85
+ async _sha256(s) {
86
+ return crossSha256(s);
87
87
  }
88
88
  /**
89
89
  * Merge `memory_traces` from source into target.
@@ -104,9 +104,10 @@ export class SqliteImporter {
104
104
  // Table might not exist in an incompatible source.
105
105
  return;
106
106
  }
107
+ const { dialect } = this.brain.features;
107
108
  const checkSql = `SELECT id, created_at, tags
108
109
  FROM memory_traces
109
- WHERE json_extract(metadata, '$.import_hash') = ?
110
+ WHERE ${dialect.jsonExtract('metadata', '$.import_hash')} = ?
110
111
  OR content = ?
111
112
  LIMIT 1`;
112
113
  const insertSql = `INSERT INTO memory_traces
@@ -116,7 +117,7 @@ export class SqliteImporter {
116
117
  const updateTimestampSql = `UPDATE memory_traces SET created_at = ?, tags = ? WHERE id = ?`;
117
118
  for (const row of sourceRows) {
118
119
  try {
119
- const hash = this._sha256(row.content);
120
+ const hash = await this._sha256(row.content);
120
121
  const existing = await trx.get(checkSql, [hash, row.content]);
121
122
  if (existing) {
122
123
  // Keep the newer timestamp and union the tags.
@@ -183,9 +184,8 @@ export class SqliteImporter {
183
184
  return;
184
185
  }
185
186
  const checkSql = `SELECT id FROM knowledge_nodes WHERE label = ? AND type = ? LIMIT 1`;
186
- const insertSql = `INSERT OR IGNORE INTO knowledge_nodes
187
- (id, type, label, properties, embedding, confidence, source, created_at)
188
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`;
187
+ const { dialect } = this.brain.features;
188
+ const insertSql = dialect.insertOrIgnore('knowledge_nodes', ['id', 'type', 'label', 'properties', 'embedding', 'confidence', 'source', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?']);
189
189
  for (const row of sourceRows) {
190
190
  try {
191
191
  const existing = await trx.get(checkSql, [row.label ?? '', row.type ?? '']);
@@ -231,9 +231,8 @@ export class SqliteImporter {
231
231
  const checkSql = `SELECT id FROM knowledge_edges
232
232
  WHERE source_id = ? AND target_id = ? AND type = ?
233
233
  LIMIT 1`;
234
- const insertSql = `INSERT OR IGNORE INTO knowledge_edges
235
- (id, source_id, target_id, type, weight, bidirectional, metadata, created_at)
236
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`;
234
+ const { dialect } = this.brain.features;
235
+ const insertSql = dialect.insertOrIgnore('knowledge_edges', ['id', 'source_id', 'target_id', 'type', 'weight', 'bidirectional', 'metadata', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?']);
237
236
  for (const row of sourceRows) {
238
237
  try {
239
238
  if (!row.source_id || !row.target_id) {
@@ -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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"}
@@ -9,6 +9,11 @@
9
9
  * Auto-activates when trace count exceeds threshold (default: 1000).
10
10
  * Below that, brute-force cosine in the Memory facade is fast enough.
11
11
  *
12
+ * NOTE: The generalized version of this pattern is now available at
13
+ * `core/vector-search/HnswIndexSidecar`. This Memory-specific version
14
+ * will be migrated to delegate to the shared module in a future update.
15
+ * New code should use `HnswIndexSidecar` from `core/vector-search/` directly.
16
+ *
12
17
  * Architecture:
13
18
  * ```
14
19
  * ~/.wunderland/agents/{name}/
@@ -16,6 +21,8 @@
16
21
  * └── brain.hnsw ← HNSW index (rebuildable)
17
22
  * brain.hnsw.map.json ← label↔id mapping
18
23
  * ```
24
+ *
25
+ * @see core/vector-search/HnswIndexSidecar for the shared generalized version
19
26
  */
20
27
  export interface HnswSidecarConfig {
21
28
  /** Path to brain.sqlite — HNSW file will be at same dir with .hnsw extension. */
@@ -1 +1 @@
1
- {"version":3,"file":"HnswSidecar.d.ts","sourceRoot":"","sources":["../../../src/memory/store/HnswSidecar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AASH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IAErD,4DAA4D;IAC5D,OAAO,CAAC,SAAS,CAAkC;IACnD,4DAA4D;IAC5D,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAwB;gBAElC,MAAM,EAAE,iBAAiB;IAYrC,gEAAgE;IAChE,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,2CAA2C;IAC3C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAMD;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B;;;;;;;OAOG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBlF;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAqB3D;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAa7B;;;;;OAKG;IACG,eAAe,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BjF;;;OAGG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,IAAI,IAAI;IAkBf,gEAAgE;YAClD,cAAc;IAe5B,wCAAwC;YAC1B,aAAa;IAuB3B,yCAAyC;IACzC,OAAO,CAAC,WAAW;CAepB"}
1
+ {"version":3,"file":"HnswSidecar.d.ts","sourceRoot":"","sources":["../../../src/memory/store/HnswSidecar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AASH,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,UAAU,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2DAA2D;IAC3D,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,wDAAwD;IACxD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,+BAA+B;AAC/B,MAAM,WAAW,eAAe;IAC9B,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,uEAAuE;IACvE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAMD,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAa;IAC1B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8B;IAErD,4DAA4D;IAC5D,OAAO,CAAC,SAAS,CAAkC;IACnD,4DAA4D;IAC5D,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,cAAc,CAAwB;gBAElC,MAAM,EAAE,iBAAiB;IAYrC,gEAAgE;IAChE,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,2CAA2C;IAC3C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAMD;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B;;;;;;;OAOG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBlF;;;;;;;OAOG;IACH,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,eAAe,EAAE;IAqB3D;;;;;OAKG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAa7B;;;;;OAKG;IACG,eAAe,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6BjF;;;OAGG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,IAAI,IAAI;IAkBf,gEAAgE;YAClD,cAAc;IAe5B,wCAAwC;YAC1B,aAAa;IAuB3B,yCAAyC;IACzC,OAAO,CAAC,WAAW;CAepB"}
@@ -9,6 +9,11 @@
9
9
  * Auto-activates when trace count exceeds threshold (default: 1000).
10
10
  * Below that, brute-force cosine in the Memory facade is fast enough.
11
11
  *
12
+ * NOTE: The generalized version of this pattern is now available at
13
+ * `core/vector-search/HnswIndexSidecar`. This Memory-specific version
14
+ * will be migrated to delegate to the shared module in a future update.
15
+ * New code should use `HnswIndexSidecar` from `core/vector-search/` directly.
16
+ *
12
17
  * Architecture:
13
18
  * ```
14
19
  * ~/.wunderland/agents/{name}/
@@ -16,6 +21,8 @@
16
21
  * └── brain.hnsw ← HNSW index (rebuildable)
17
22
  * brain.hnsw.map.json ← label↔id mapping
18
23
  * ```
24
+ *
25
+ * @see core/vector-search/HnswIndexSidecar for the shared generalized version
19
26
  */
20
27
  import { existsSync, unlinkSync, writeFileSync, readFileSync } from 'node:fs';
21
28
  import { join, dirname } from 'node:path';
@@ -1 +1 @@
1
- {"version":3,"file":"HnswSidecar.js","sourceRoot":"","sources":["../../../src/memory/store/HnswSidecar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HnswSidecar.js","sourceRoot":"","sources":["../../../src/memory/store/HnswSidecar.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@
28
28
  *
29
29
  * @module memory/store/SqliteBrain
30
30
  */
31
- import type { StorageAdapter, StorageRunResult, StorageParameters } from '@framers/sql-storage-adapter';
31
+ import type { StorageAdapter, StorageRunResult, StorageParameters, StorageFeatures } from '@framers/sql-storage-adapter';
32
32
  /**
33
33
  * Unified cross-platform connection manager for a single agent's persistent brain.
34
34
  *
@@ -60,10 +60,16 @@ export declare class SqliteBrain {
60
60
  * Not exposed publicly — consumers use the async proxy methods instead.
61
61
  */
62
62
  private readonly _adapter;
63
+ /**
64
+ * Platform-aware feature bundle (dialect, FTS, BLOB codec, exporter).
65
+ * Created by `createStorageFeatures(adapter)` during `open()`.
66
+ */
67
+ private readonly _features;
63
68
  /**
64
69
  * Private constructor — use `SqliteBrain.open(dbPath)` instead.
65
70
  *
66
- * @param adapter - A fully initialised StorageAdapter instance.
71
+ * @param adapter - A fully initialised StorageAdapter instance.
72
+ * @param features - Platform-aware feature bundle.
67
73
  */
68
74
  private constructor();
69
75
  /**
@@ -131,6 +137,12 @@ export declare class SqliteBrain {
131
137
  * (which needs direct adapter access for the target brain).
132
138
  */
133
139
  get adapter(): StorageAdapter;
140
+ /**
141
+ * Platform-aware feature bundle (dialect, FTS, BLOB codec, exporter).
142
+ * Consumers use this to generate cross-platform SQL instead of hardcoding
143
+ * SQLite-specific syntax.
144
+ */
145
+ get features(): StorageFeatures;
134
146
  /**
135
147
  * Execute all DDL statements inside a single transaction.
136
148
  * `CREATE TABLE IF NOT EXISTS` is idempotent, so re-running on an existing
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteBrain.d.ts","sourceRoot":"","sources":["../../../src/memory/store/SqliteBrain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAoPtC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,WAAW;IACtB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAM1C;;;;OAIG;IACH,OAAO;IAQP;;;;;;;;;;;;;;;;OAgBG;WACU,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiCvD;;;;;;OAMG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI7E;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAIlF;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAI7E;;;;OAIG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC;;;;;;;;OAQG;IACG,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIzE;;;;;OAKG;IACH,IAAI,OAAO,IAAI,cAAc,CAE5B;IAMD;;;;OAIG;YACW,WAAW;IAkBzB;;;OAGG;YACW,SAAS;IAiBvB;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IASvD;;;;;;;;OAQG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD;;;;;;;;;;;;OAYG;IACG,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYhE;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
1
+ {"version":3,"file":"SqliteBrain.d.ts","sourceRoot":"","sources":["../../../src/memory/store/SqliteBrain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EAChB,MAAM,8BAA8B,CAAC;AAsOtC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,WAAW;IACtB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAE1C;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAM5C;;;;;OAKG;IACH,OAAO;IASP;;;;;;;;;;;;;;;;OAgBG;WACU,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA+BvD;;;;;;OAMG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI7E;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAIlF;;;;;;OAMG;IACG,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAI7E;;;;OAIG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAItC;;;;;;;;OAQG;IACG,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAIzE;;;;;OAKG;IACH,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED;;;;OAIG;IACH,IAAI,QAAQ,IAAI,eAAe,CAE9B;IAMD;;;;OAIG;YACW,WAAW;IAwBzB;;;OAGG;YACW,SAAS;IAkBvB;;;;;OAKG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IASvD;;;;;;;;OAQG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOxD;;;;;;;;;;;;OAYG;IACG,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYhE;;;;;;OAMG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -28,7 +28,7 @@
28
28
  *
29
29
  * @module memory/store/SqliteBrain
30
30
  */
31
- import { resolveStorageAdapter } from '@framers/sql-storage-adapter';
31
+ import { resolveStorageAdapter, createStorageFeatures } from '@framers/sql-storage-adapter';
32
32
  // ---------------------------------------------------------------------------
33
33
  // Constants
34
34
  // ---------------------------------------------------------------------------
@@ -73,22 +73,8 @@ CREATE TABLE IF NOT EXISTS memory_traces (
73
73
  deleted INTEGER NOT NULL DEFAULT 0
74
74
  );
75
75
  `;
76
- /**
77
- * FTS5 virtual table for full-text search over memory content and tags.
78
- * Uses the Porter tokenizer for morphological stemming.
79
- *
80
- * Linked to `memory_traces` via the external content mechanism so that
81
- * content is not duplicated on disk.
82
- */
83
- const DDL_MEMORY_TRACES_FTS = `
84
- CREATE VIRTUAL TABLE IF NOT EXISTS memory_traces_fts USING fts5(
85
- content,
86
- tags,
87
- content='memory_traces',
88
- content_rowid='rowid',
89
- tokenize='porter ascii'
90
- );
91
- `;
76
+ // FTS index DDL is now generated dynamically by features.fts.createIndex()
77
+ // to support both SQLite FTS5 and Postgres tsvector/GIN.
92
78
  /**
93
79
  * Knowledge graph nodes (semantic network).
94
80
  * Each node represents a real-world entity or concept the agent has learned about.
@@ -286,10 +272,12 @@ export class SqliteBrain {
286
272
  /**
287
273
  * Private constructor — use `SqliteBrain.open(dbPath)` instead.
288
274
  *
289
- * @param adapter - A fully initialised StorageAdapter instance.
275
+ * @param adapter - A fully initialised StorageAdapter instance.
276
+ * @param features - Platform-aware feature bundle.
290
277
  */
291
- constructor(adapter) {
278
+ constructor(adapter, features) {
292
279
  this._adapter = adapter;
280
+ this._features = features;
293
281
  }
294
282
  // ---------------------------------------------------------------------------
295
283
  // Async factory
@@ -317,16 +305,16 @@ export class SqliteBrain {
317
305
  priority: ['better-sqlite3', 'sqljs', 'indexeddb'],
318
306
  quiet: true,
319
307
  });
320
- const brain = new SqliteBrain(adapter);
321
- // Step 1: WAL mode — allows concurrent reads while a write is in progress.
322
- // Critical for multi-subsystem access patterns (consolidator + retriever + encoder
323
- // all touching the same file simultaneously).
324
- if (adapter.capabilities.has('wal')) {
325
- await adapter.exec('PRAGMA journal_mode = WAL');
326
- }
327
- // Step 2: Foreign key enforcement — SQLite disables FK checks by default.
328
- // We want referential integrity between chunks↔documents, edges↔nodes, etc.
329
- await adapter.exec('PRAGMA foreign_keys = ON');
308
+ const features = createStorageFeatures(adapter);
309
+ const brain = new SqliteBrain(adapter, features);
310
+ // Step 1: WAL mode dialect returns null for non-SQLite adapters.
311
+ const walPragma = features.dialect.pragma('journal_mode', 'WAL');
312
+ if (walPragma)
313
+ await adapter.exec(walPragma);
314
+ // Step 2: Foreign key enforcement — dialect returns null for Postgres (enforced by default).
315
+ const fkPragma = features.dialect.pragma('foreign_keys', 'ON');
316
+ if (fkPragma)
317
+ await adapter.exec(fkPragma);
330
318
  // Step 3: Apply full schema in a single transaction for atomicity.
331
319
  await brain._initSchema();
332
320
  // Step 4: Seed brain_meta defaults if this is a fresh database.
@@ -395,6 +383,14 @@ export class SqliteBrain {
395
383
  get adapter() {
396
384
  return this._adapter;
397
385
  }
386
+ /**
387
+ * Platform-aware feature bundle (dialect, FTS, BLOB codec, exporter).
388
+ * Consumers use this to generate cross-platform SQL instead of hardcoding
389
+ * SQLite-specific syntax.
390
+ */
391
+ get features() {
392
+ return this._features;
393
+ }
398
394
  // ---------------------------------------------------------------------------
399
395
  // Private init helpers
400
396
  // ---------------------------------------------------------------------------
@@ -416,8 +412,14 @@ export class SqliteBrain {
416
412
  await trx.exec(DDL_RETRIEVAL_FEEDBACK);
417
413
  await trx.exec(DDL_CONVERSATIONS);
418
414
  await trx.exec(DDL_MESSAGES);
419
- // FTS5 virtual table (must be last; depends on memory_traces existing)
420
- await trx.exec(DDL_MEMORY_TRACES_FTS);
415
+ // FTS index via feature abstraction (FTS5 on SQLite, tsvector/GIN on Postgres)
416
+ const ftsDdl = this._features.fts.createIndex({
417
+ table: 'memory_traces_fts',
418
+ columns: ['content', 'tags'],
419
+ contentTable: 'memory_traces',
420
+ tokenizer: 'porter ascii',
421
+ });
422
+ await trx.exec(ftsDdl);
421
423
  });
422
424
  }
423
425
  /**
@@ -425,9 +427,10 @@ export class SqliteBrain {
425
427
  * Uses INSERT OR IGNORE to be idempotent on subsequent opens.
426
428
  */
427
429
  async _seedMeta() {
430
+ const { dialect } = this._features;
428
431
  await this._adapter.transaction(async (trx) => {
429
- await trx.run('INSERT OR IGNORE INTO brain_meta (key, value) VALUES (?, ?)', ['schema_version', SCHEMA_VERSION]);
430
- await trx.run('INSERT OR IGNORE INTO brain_meta (key, value) VALUES (?, ?)', ['created_at', Date.now().toString()]);
432
+ await trx.run(dialect.insertOrIgnore('brain_meta', ['key', 'value'], ['?', '?']), ['schema_version', SCHEMA_VERSION]);
433
+ await trx.run(dialect.insertOrIgnore('brain_meta', ['key', 'value'], ['?', '?']), ['created_at', Date.now().toString()]);
431
434
  });
432
435
  }
433
436
  // ---------------------------------------------------------------------------
@@ -453,7 +456,7 @@ export class SqliteBrain {
453
456
  * @param value - The string value to store.
454
457
  */
455
458
  async setMeta(key, value) {
456
- await this._adapter.run('INSERT OR REPLACE INTO brain_meta (key, value) VALUES (?, ?)', [key, value]);
459
+ await this._adapter.run(this._features.dialect.insertOrReplace('brain_meta', ['key', 'value'], ['?', '?'], 'key'), [key, value]);
457
460
  }
458
461
  /**
459
462
  * Check whether a given embedding dimension is compatible with this brain.
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteBrain.js","sourceRoot":"","sources":["../../../src/memory/store/SqliteBrain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAOH,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AAErE,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,+EAA+E;AAC/E,MAAM,cAAc,GAAG,GAAG,CAAC;AAE3B,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;GAGG;AACH,MAAM,cAAc,GAAG;;;;;CAKtB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;CAgBzB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,qBAAqB,GAAG;;;;;;;;CAQ7B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,mBAAmB,GAAG;;;;;;;;;;;CAW3B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG;;;;;;;;;;;CAW3B,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,aAAa,GAAG;;;;;;;;;;;CAWrB,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,mBAAmB,GAAG;;;;;;;;;;CAU3B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,mBAAmB,GAAG;;;;;;;;;;;CAW3B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,qBAAqB,GAAG;;;;;;;;;;CAU7B,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,sBAAsB,GAAG;;;;;;;;CAQ9B,CAAC;AAEF;;;;;GAKG;AACH,MAAM,iBAAiB,GAAG;;;;;;;;CAQzB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,YAAY,GAAG;;;;;;;;;CASpB,CAAC;AAEF,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,WAAW;IAOtB,8EAA8E;IAC9E,iDAAiD;IACjD,8EAA8E;IAE9E;;;;OAIG;IACH,YAAoB,OAAuB;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,8EAA8E;IAC9E,gBAAgB;IAChB,8EAA8E;IAE9E;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAc;QAC9B,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC;YAC1C,QAAQ,EAAE,MAAM;YAChB,QAAQ,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,WAAW,CAAC;YAClD,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QAEvC,2EAA2E;QAC3E,mFAAmF;QACnF,8CAA8C;QAC9C,IAAI,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpC,MAAM,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAClD,CAAC;QAED,0EAA0E;QAC1E,4EAA4E;QAC5E,MAAM,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAE/C,mEAAmE;QACnE,MAAM,KAAK,CAAC,WAAW,EAAE,CAAC;QAE1B,gEAAgE;QAChE,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;QAExB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8EAA8E;IAC9E,gDAAgD;IAChD,8EAA8E;IAE9E;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,MAA0B;QAC/C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAc,GAAW,EAAE,MAA0B;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,GAAG,CAAc,GAAW,EAAE,MAA0B;QAC5D,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAI,GAAG,EAAE,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CAAC,GAAW;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,WAAW,CAAI,EAAuC;QAC1D,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;;;;OAKG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,8EAA8E;IAC9E,uBAAuB;IACvB,8EAA8E;IAE9E;;;;OAIG;IACK,KAAK,CAAC,WAAW;QACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5C,MAAM,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC/B,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC9B,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpC,MAAM,GAAG,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;YACpC,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;YACtC,MAAM,GAAG,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACvC,MAAM,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAClC,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7B,uEAAuE;YACvE,MAAM,GAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,SAAS;QACrB,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;YAC5C,MAAM,GAAG,CAAC,GAAG,CACX,6DAA6D,EAC7D,CAAC,gBAAgB,EAAE,cAAc,CAAC,CACnC,CAAC;YACF,MAAM,GAAG,CAAC,GAAG,CACX,6DAA6D,EAC7D,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CACtC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,aAAa;IACb,8EAA8E;IAE9E;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CACjC,4CAA4C,EAC5C,CAAC,GAAG,CAAC,CACN,CAAC;QAEF,OAAO,GAAG,EAAE,KAAK,CAAC;IACpB,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAa;QACtC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CACrB,8DAA8D,EAC9D,CAAC,GAAG,EAAE,KAAK,CAAC,CACb,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,oBAAoB,CAAC,UAAkB;QAC3C,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAE1D,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACzB,sDAAsD;YACtD,MAAM,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;YAC/D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,UAAU,CAAC;IAC7C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACF"}
1
+ {"version":3,"file":"SqliteBrain.js","sourceRoot":"","sources":["../../../src/memory/store/SqliteBrain.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteKnowledgeGraph.d.ts","sourceRoot":"","sources":["../../../src/memory/store/SqliteKnowledgeGraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqliteKnowledgeGraph.d.ts","sourceRoot":"","sources":["../../../src/memory/store/SqliteKnowledgeGraph.ts"],"names":[],"mappings":"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"}
@@ -18,48 +18,7 @@
18
18
  *
19
19
  * @module memory/store/SqliteKnowledgeGraph
20
20
  */
21
- import crypto from 'node:crypto';
22
- // ---------------------------------------------------------------------------
23
- // Embedding helpers
24
- // ---------------------------------------------------------------------------
25
- /**
26
- * Serialize a number[] embedding into a Buffer (Float32 little-endian)
27
- * for storage in an SQLite BLOB column.
28
- */
29
- function embeddingToBlob(vec) {
30
- const buf = Buffer.alloc(vec.length * 4);
31
- for (let i = 0; i < vec.length; i++) {
32
- buf.writeFloatLE(vec[i], i * 4);
33
- }
34
- return buf;
35
- }
36
- /**
37
- * Deserialize a BLOB (Float32 little-endian) back into a number[] embedding.
38
- */
39
- function blobToEmbedding(blob) {
40
- const count = blob.length / 4;
41
- const vec = new Array(count);
42
- for (let i = 0; i < count; i++) {
43
- vec[i] = blob.readFloatLE(i * 4);
44
- }
45
- return vec;
46
- }
47
- /**
48
- * Compute cosine similarity between two equal-length vectors.
49
- * Returns 0 if either vector has zero magnitude.
50
- */
51
- function cosineSimilarity(a, b) {
52
- let dot = 0;
53
- let magA = 0;
54
- let magB = 0;
55
- for (let i = 0; i < a.length; i++) {
56
- dot += a[i] * b[i];
57
- magA += a[i] * a[i];
58
- magB += b[i] * b[i];
59
- }
60
- const denom = Math.sqrt(magA) * Math.sqrt(magB);
61
- return denom === 0 ? 0 : dot / denom;
62
- }
21
+ import { uuid } from '../util/crossPlatformCrypto.js';
63
22
  // ---------------------------------------------------------------------------
64
23
  // SqliteKnowledgeGraph
65
24
  // ---------------------------------------------------------------------------
@@ -122,7 +81,7 @@ export class SqliteKnowledgeGraph {
122
81
  */
123
82
  async upsertEntity(entity) {
124
83
  const now = new Date().toISOString();
125
- const id = entity.id ?? crypto.randomUUID();
84
+ const id = entity.id ?? uuid();
126
85
  // Check if the entity already exists to preserve createdAt.
127
86
  const existing = await this.brain.get('SELECT * FROM knowledge_nodes WHERE id = ?', [id]);
128
87
  const createdAt = existing
@@ -137,11 +96,10 @@ export class SqliteKnowledgeGraph {
137
96
  _updatedAt: now,
138
97
  };
139
98
  const embeddingBlob = entity.embedding
140
- ? embeddingToBlob(entity.embedding)
99
+ ? this.brain.features.blobCodec.encode(entity.embedding)
141
100
  : null;
142
- await this.brain.run(`INSERT OR REPLACE INTO knowledge_nodes
143
- (id, type, label, properties, embedding, confidence, source, created_at)
144
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [
101
+ const { dialect } = this.brain.features;
102
+ await this.brain.run(dialect.insertOrReplace('knowledge_nodes', ['id', 'type', 'label', 'properties', 'embedding', 'confidence', 'source', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?'], 'id'), [
145
103
  id,
146
104
  entity.type,
147
105
  entity.label,
@@ -248,7 +206,7 @@ export class SqliteKnowledgeGraph {
248
206
  */
249
207
  async upsertRelation(relation) {
250
208
  const now = new Date().toISOString();
251
- const id = relation.id ?? crypto.randomUUID();
209
+ const id = relation.id ?? uuid();
252
210
  // Preserve createdAt if edge already exists.
253
211
  const existing = await this.brain.get('SELECT * FROM knowledge_edges WHERE id = ?', [id]);
254
212
  const createdAt = existing
@@ -263,9 +221,8 @@ export class SqliteKnowledgeGraph {
263
221
  _validFrom: relation.validFrom,
264
222
  _validTo: relation.validTo,
265
223
  };
266
- await this.brain.run(`INSERT OR REPLACE INTO knowledge_edges
267
- (id, source_id, target_id, type, weight, bidirectional, metadata, created_at)
268
- VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [
224
+ const { dialect } = this.brain.features;
225
+ await this.brain.run(dialect.insertOrReplace('knowledge_edges', ['id', 'source_id', 'target_id', 'type', 'weight', 'bidirectional', 'metadata', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?'], 'id'), [
269
226
  id,
270
227
  relation.sourceId,
271
228
  relation.targetId,
@@ -336,7 +293,7 @@ export class SqliteKnowledgeGraph {
336
293
  */
337
294
  async recordMemory(memory) {
338
295
  const now = new Date().toISOString();
339
- const id = crypto.randomUUID();
296
+ const id = uuid();
340
297
  const memFields = {
341
298
  _props: {},
342
299
  _updatedAt: now,
@@ -356,7 +313,7 @@ export class SqliteKnowledgeGraph {
356
313
  _lastAccessedAt: now,
357
314
  };
358
315
  const embeddingBlob = memory.embedding
359
- ? embeddingToBlob(memory.embedding)
316
+ ? this.brain.features.blobCodec.encode(memory.embedding)
360
317
  : null;
361
318
  const source = {
362
319
  type: 'conversation',
@@ -961,7 +918,7 @@ export class SqliteKnowledgeGraph {
961
918
  type: row.type,
962
919
  label: row.label,
963
920
  properties: extended._props ?? {},
964
- embedding: row.embedding ? blobToEmbedding(row.embedding) : undefined,
921
+ embedding: row.embedding ? this.brain.features.blobCodec.decode(row.embedding) : undefined,
965
922
  confidence: row.confidence,
966
923
  source,
967
924
  createdAt: new Date(row.created_at).toISOString(),
@@ -1021,7 +978,7 @@ export class SqliteKnowledgeGraph {
1021
978
  valence: fields._valence,
1022
979
  importance: row.confidence,
1023
980
  entityIds: fields._entityIds ?? [],
1024
- embedding: row.embedding ? blobToEmbedding(row.embedding) : undefined,
981
+ embedding: row.embedding ? this.brain.features.blobCodec.decode(row.embedding) : undefined,
1025
982
  occurredAt: fields._occurredAt ?? new Date(row.created_at).toISOString(),
1026
983
  durationMs: fields._durationMs,
1027
984
  outcome: fields._outcome,