@easynet/agent-memory 0.0.2 → 1.0.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 (298) hide show
  1. package/README.md +89 -224
  2. package/dist/src/core/agent-memory.d.ts +41 -0
  3. package/dist/src/core/agent-memory.d.ts.map +1 -0
  4. package/dist/src/core/agent-memory.js +127 -0
  5. package/dist/src/core/agent-memory.js.map +1 -0
  6. package/dist/src/core/config.d.ts +78 -0
  7. package/dist/src/core/config.d.ts.map +1 -0
  8. package/dist/src/core/config.js +41 -0
  9. package/dist/src/core/config.js.map +1 -0
  10. package/dist/src/core/observability.d.ts +22 -0
  11. package/dist/src/core/observability.d.ts.map +1 -0
  12. package/dist/src/core/observability.js +33 -0
  13. package/dist/src/core/observability.js.map +1 -0
  14. package/dist/src/core/policy.d.ts +47 -0
  15. package/dist/src/core/policy.d.ts.map +1 -0
  16. package/dist/src/core/policy.js +73 -0
  17. package/dist/src/core/policy.js.map +1 -0
  18. package/dist/src/core/privacy.d.ts +23 -0
  19. package/dist/src/core/privacy.d.ts.map +1 -0
  20. package/dist/src/core/privacy.js +45 -0
  21. package/dist/src/core/privacy.js.map +1 -0
  22. package/dist/src/core/router.d.ts +35 -0
  23. package/dist/src/core/router.d.ts.map +1 -0
  24. package/dist/src/core/router.js +86 -0
  25. package/dist/src/core/router.js.map +1 -0
  26. package/dist/src/core/types.d.ts +82 -0
  27. package/dist/src/core/types.d.ts.map +1 -0
  28. package/dist/src/core/types.js +7 -0
  29. package/dist/{adapters → src/core}/types.js.map +1 -1
  30. package/dist/src/create-agent-memory.d.ts +47 -0
  31. package/dist/src/create-agent-memory.d.ts.map +1 -0
  32. package/dist/src/create-agent-memory.js +148 -0
  33. package/dist/src/create-agent-memory.js.map +1 -0
  34. package/dist/src/index.d.ts +8 -0
  35. package/dist/src/index.d.ts.map +1 -0
  36. package/dist/src/index.js +13 -0
  37. package/dist/src/index.js.map +1 -0
  38. package/dist/src/ingest/pdf-ingest.d.ts +27 -0
  39. package/dist/src/ingest/pdf-ingest.d.ts.map +1 -0
  40. package/dist/src/ingest/pdf-ingest.js +89 -0
  41. package/dist/src/ingest/pdf-ingest.js.map +1 -0
  42. package/dist/src/ingest/url-ingest.d.ts +27 -0
  43. package/dist/src/ingest/url-ingest.d.ts.map +1 -0
  44. package/dist/src/ingest/url-ingest.js +301 -0
  45. package/dist/src/ingest/url-ingest.js.map +1 -0
  46. package/dist/src/integrations/deepagents-adapter.d.ts +42 -0
  47. package/dist/src/integrations/deepagents-adapter.d.ts.map +1 -0
  48. package/dist/src/integrations/deepagents-adapter.js +146 -0
  49. package/dist/src/integrations/deepagents-adapter.js.map +1 -0
  50. package/dist/src/integrations/langchain.d.ts +27 -0
  51. package/dist/src/integrations/langchain.d.ts.map +1 -0
  52. package/dist/src/integrations/langchain.js +28 -0
  53. package/dist/src/integrations/langchain.js.map +1 -0
  54. package/dist/src/integrations/langgraph.d.ts +23 -0
  55. package/dist/src/integrations/langgraph.d.ts.map +1 -0
  56. package/dist/src/integrations/langgraph.js +30 -0
  57. package/dist/src/integrations/langgraph.js.map +1 -0
  58. package/dist/src/providers/in-memory-store.d.ts +15 -0
  59. package/dist/src/providers/in-memory-store.d.ts.map +1 -0
  60. package/dist/src/providers/in-memory-store.js +62 -0
  61. package/dist/src/providers/in-memory-store.js.map +1 -0
  62. package/dist/src/providers/mem0-provider.d.ts +47 -0
  63. package/dist/src/providers/mem0-provider.d.ts.map +1 -0
  64. package/dist/src/providers/mem0-provider.js +99 -0
  65. package/dist/src/providers/mem0-provider.js.map +1 -0
  66. package/dist/src/providers/rag-provider.d.ts +27 -0
  67. package/dist/src/providers/rag-provider.d.ts.map +1 -0
  68. package/dist/src/providers/rag-provider.js +58 -0
  69. package/dist/src/providers/rag-provider.js.map +1 -0
  70. package/dist/src/providers/sqlite-store.d.ts +21 -0
  71. package/dist/src/providers/sqlite-store.d.ts.map +1 -0
  72. package/dist/src/providers/sqlite-store.js +142 -0
  73. package/dist/src/providers/sqlite-store.js.map +1 -0
  74. package/dist/test/core/agent-memory.test.d.ts +2 -0
  75. package/dist/test/core/agent-memory.test.d.ts.map +1 -0
  76. package/dist/test/core/agent-memory.test.js +119 -0
  77. package/dist/test/core/agent-memory.test.js.map +1 -0
  78. package/dist/test/core/config.test.d.ts +2 -0
  79. package/dist/test/core/config.test.d.ts.map +1 -0
  80. package/dist/test/core/config.test.js +48 -0
  81. package/dist/test/core/config.test.js.map +1 -0
  82. package/dist/test/core/observability.test.d.ts +2 -0
  83. package/dist/test/core/observability.test.d.ts.map +1 -0
  84. package/dist/test/core/observability.test.js +53 -0
  85. package/dist/test/core/observability.test.js.map +1 -0
  86. package/dist/test/core/policy.test.d.ts +2 -0
  87. package/dist/test/core/policy.test.d.ts.map +1 -0
  88. package/dist/test/core/policy.test.js +42 -0
  89. package/dist/test/core/policy.test.js.map +1 -0
  90. package/dist/test/core/privacy.test.d.ts +2 -0
  91. package/dist/test/core/privacy.test.d.ts.map +1 -0
  92. package/dist/test/core/privacy.test.js +44 -0
  93. package/dist/test/core/privacy.test.js.map +1 -0
  94. package/dist/test/core/router.test.d.ts +2 -0
  95. package/dist/test/core/router.test.d.ts.map +1 -0
  96. package/dist/test/core/router.test.js +118 -0
  97. package/dist/test/core/router.test.js.map +1 -0
  98. package/dist/test/create-agent-memory.test.d.ts +2 -0
  99. package/dist/test/create-agent-memory.test.d.ts.map +1 -0
  100. package/dist/test/create-agent-memory.test.js +122 -0
  101. package/dist/test/create-agent-memory.test.js.map +1 -0
  102. package/dist/test/ingest/url-ingest.test.d.ts +2 -0
  103. package/dist/test/ingest/url-ingest.test.d.ts.map +1 -0
  104. package/dist/test/ingest/url-ingest.test.js +142 -0
  105. package/dist/test/ingest/url-ingest.test.js.map +1 -0
  106. package/dist/test/integration/agent-memory-flow.test.d.ts +5 -0
  107. package/dist/test/integration/agent-memory-flow.test.d.ts.map +1 -0
  108. package/dist/test/integration/agent-memory-flow.test.js +80 -0
  109. package/dist/test/integration/agent-memory-flow.test.js.map +1 -0
  110. package/dist/test/integration/helpers/ollama-live.d.ts +16 -0
  111. package/dist/test/integration/helpers/ollama-live.d.ts.map +1 -0
  112. package/dist/test/integration/helpers/ollama-live.js +101 -0
  113. package/dist/test/integration/helpers/ollama-live.js.map +1 -0
  114. package/dist/test/integration/url-ingest-flow.test.d.ts +5 -0
  115. package/dist/test/integration/url-ingest-flow.test.d.ts.map +1 -0
  116. package/dist/test/integration/url-ingest-flow.test.js +50 -0
  117. package/dist/test/integration/url-ingest-flow.test.js.map +1 -0
  118. package/dist/test/integration/vlm-llm-live.test.d.ts +9 -0
  119. package/dist/test/integration/vlm-llm-live.test.d.ts.map +1 -0
  120. package/dist/test/integration/vlm-llm-live.test.js +141 -0
  121. package/dist/test/integration/vlm-llm-live.test.js.map +1 -0
  122. package/dist/test/providers/in-memory-store.test.d.ts +2 -0
  123. package/dist/test/providers/in-memory-store.test.d.ts.map +1 -0
  124. package/dist/test/providers/in-memory-store.test.js +44 -0
  125. package/dist/test/providers/in-memory-store.test.js.map +1 -0
  126. package/dist/test/providers/rag-provider.test.d.ts +2 -0
  127. package/dist/test/providers/rag-provider.test.d.ts.map +1 -0
  128. package/dist/test/providers/rag-provider.test.js +113 -0
  129. package/dist/test/providers/rag-provider.test.js.map +1 -0
  130. package/dist/test/providers/sqlite-store.test.d.ts +2 -0
  131. package/dist/test/providers/sqlite-store.test.d.ts.map +1 -0
  132. package/dist/test/providers/sqlite-store.test.js +119 -0
  133. package/dist/test/providers/sqlite-store.test.js.map +1 -0
  134. package/package.json +79 -39
  135. package/bin/chat +0 -11
  136. package/dist/adapters/index.d.ts +0 -8
  137. package/dist/adapters/index.d.ts.map +0 -1
  138. package/dist/adapters/index.js +0 -29
  139. package/dist/adapters/index.js.map +0 -1
  140. package/dist/adapters/mem0/mem0-store.d.ts +0 -29
  141. package/dist/adapters/mem0/mem0-store.d.ts.map +0 -1
  142. package/dist/adapters/mem0/mem0-store.js +0 -174
  143. package/dist/adapters/mem0/mem0-store.js.map +0 -1
  144. package/dist/adapters/rag-http/rag-http-retriever.d.ts +0 -18
  145. package/dist/adapters/rag-http/rag-http-retriever.d.ts.map +0 -1
  146. package/dist/adapters/rag-http/rag-http-retriever.js +0 -71
  147. package/dist/adapters/rag-http/rag-http-retriever.js.map +0 -1
  148. package/dist/adapters/types.d.ts +0 -25
  149. package/dist/adapters/types.d.ts.map +0 -1
  150. package/dist/adapters/types.js +0 -6
  151. package/dist/boot/boot-rebuilder.d.ts +0 -26
  152. package/dist/boot/boot-rebuilder.d.ts.map +0 -1
  153. package/dist/boot/boot-rebuilder.js +0 -112
  154. package/dist/boot/boot-rebuilder.js.map +0 -1
  155. package/dist/boot/index.d.ts +0 -3
  156. package/dist/boot/index.d.ts.map +0 -1
  157. package/dist/boot/index.js +0 -6
  158. package/dist/boot/index.js.map +0 -1
  159. package/dist/cli/chat-split.d.ts +0 -22
  160. package/dist/cli/chat-split.d.ts.map +0 -1
  161. package/dist/cli/chat-split.js +0 -187
  162. package/dist/cli/chat-split.js.map +0 -1
  163. package/dist/cli/chat.d.ts +0 -19
  164. package/dist/cli/chat.d.ts.map +0 -1
  165. package/dist/cli/chat.js +0 -266
  166. package/dist/cli/chat.js.map +0 -1
  167. package/dist/cli/commands/command-handler.d.ts +0 -32
  168. package/dist/cli/commands/command-handler.d.ts.map +0 -1
  169. package/dist/cli/commands/command-handler.js +0 -143
  170. package/dist/cli/commands/command-handler.js.map +0 -1
  171. package/dist/cli/index.d.ts +0 -3
  172. package/dist/cli/index.d.ts.map +0 -1
  173. package/dist/cli/index.js +0 -8
  174. package/dist/cli/index.js.map +0 -1
  175. package/dist/cli/ui/display-manager.d.ts +0 -18
  176. package/dist/cli/ui/display-manager.d.ts.map +0 -1
  177. package/dist/cli/ui/display-manager.js +0 -69
  178. package/dist/cli/ui/display-manager.js.map +0 -1
  179. package/dist/cli/ui/screen-layout.d.ts +0 -12
  180. package/dist/cli/ui/screen-layout.d.ts.map +0 -1
  181. package/dist/cli/ui/screen-layout.js +0 -125
  182. package/dist/cli/ui/screen-layout.js.map +0 -1
  183. package/dist/config/index.d.ts +0 -2
  184. package/dist/config/index.d.ts.map +0 -1
  185. package/dist/config/index.js +0 -6
  186. package/dist/config/index.js.map +0 -1
  187. package/dist/config/loader.d.ts +0 -9
  188. package/dist/config/loader.d.ts.map +0 -1
  189. package/dist/config/loader.js +0 -107
  190. package/dist/config/loader.js.map +0 -1
  191. package/dist/context/context-builder.d.ts +0 -18
  192. package/dist/context/context-builder.d.ts.map +0 -1
  193. package/dist/context/context-builder.js +0 -91
  194. package/dist/context/context-builder.js.map +0 -1
  195. package/dist/core/agent-memory.d.ts +0 -50
  196. package/dist/core/agent-memory.d.ts.map +0 -1
  197. package/dist/core/agent-memory.js +0 -297
  198. package/dist/core/agent-memory.js.map +0 -1
  199. package/dist/embedding/embedder.d.ts +0 -49
  200. package/dist/embedding/embedder.d.ts.map +0 -1
  201. package/dist/embedding/embedder.js +0 -146
  202. package/dist/embedding/embedder.js.map +0 -1
  203. package/dist/embedding/index.d.ts +0 -3
  204. package/dist/embedding/index.d.ts.map +0 -1
  205. package/dist/embedding/index.js +0 -8
  206. package/dist/embedding/index.js.map +0 -1
  207. package/dist/gate/deduplicator.d.ts +0 -22
  208. package/dist/gate/deduplicator.d.ts.map +0 -1
  209. package/dist/gate/deduplicator.js +0 -74
  210. package/dist/gate/deduplicator.js.map +0 -1
  211. package/dist/gate/extractor.d.ts +0 -33
  212. package/dist/gate/extractor.d.ts.map +0 -1
  213. package/dist/gate/extractor.js +0 -122
  214. package/dist/gate/extractor.js.map +0 -1
  215. package/dist/gate/index.d.ts +0 -3
  216. package/dist/gate/index.d.ts.map +0 -1
  217. package/dist/gate/index.js +0 -6
  218. package/dist/gate/index.js.map +0 -1
  219. package/dist/gate/memory-gate.d.ts +0 -27
  220. package/dist/gate/memory-gate.d.ts.map +0 -1
  221. package/dist/gate/memory-gate.js +0 -86
  222. package/dist/gate/memory-gate.js.map +0 -1
  223. package/dist/gate/redactor.d.ts +0 -14
  224. package/dist/gate/redactor.d.ts.map +0 -1
  225. package/dist/gate/redactor.js +0 -24
  226. package/dist/gate/redactor.js.map +0 -1
  227. package/dist/index.d.ts +0 -6
  228. package/dist/index.d.ts.map +0 -1
  229. package/dist/index.js +0 -24
  230. package/dist/index.js.map +0 -1
  231. package/dist/indexing/in-memory-index.d.ts +0 -67
  232. package/dist/indexing/in-memory-index.d.ts.map +0 -1
  233. package/dist/indexing/in-memory-index.js +0 -135
  234. package/dist/indexing/in-memory-index.js.map +0 -1
  235. package/dist/indexing/index.d.ts +0 -3
  236. package/dist/indexing/index.d.ts.map +0 -1
  237. package/dist/indexing/index.js +0 -6
  238. package/dist/indexing/index.js.map +0 -1
  239. package/dist/persistence/database/schema.d.ts +0 -6
  240. package/dist/persistence/database/schema.d.ts.map +0 -1
  241. package/dist/persistence/database/schema.js +0 -75
  242. package/dist/persistence/database/schema.js.map +0 -1
  243. package/dist/persistence/index.d.ts +0 -3
  244. package/dist/persistence/index.d.ts.map +0 -1
  245. package/dist/persistence/index.js +0 -6
  246. package/dist/persistence/index.js.map +0 -1
  247. package/dist/persistence/repository/embedding-operations.d.ts +0 -17
  248. package/dist/persistence/repository/embedding-operations.d.ts.map +0 -1
  249. package/dist/persistence/repository/embedding-operations.js +0 -58
  250. package/dist/persistence/repository/embedding-operations.js.map +0 -1
  251. package/dist/persistence/repository/memory-operations.d.ts +0 -28
  252. package/dist/persistence/repository/memory-operations.d.ts.map +0 -1
  253. package/dist/persistence/repository/memory-operations.js +0 -87
  254. package/dist/persistence/repository/memory-operations.js.map +0 -1
  255. package/dist/persistence/repository/meta-operations.d.ts +0 -15
  256. package/dist/persistence/repository/meta-operations.d.ts.map +0 -1
  257. package/dist/persistence/repository/meta-operations.js +0 -20
  258. package/dist/persistence/repository/meta-operations.js.map +0 -1
  259. package/dist/persistence/sqlite-repo.d.ts +0 -58
  260. package/dist/persistence/sqlite-repo.d.ts.map +0 -1
  261. package/dist/persistence/sqlite-repo.js +0 -81
  262. package/dist/persistence/sqlite-repo.js.map +0 -1
  263. package/dist/persistence/utils/hash.d.ts +0 -8
  264. package/dist/persistence/utils/hash.d.ts.map +0 -1
  265. package/dist/persistence/utils/hash.js +0 -48
  266. package/dist/persistence/utils/hash.js.map +0 -1
  267. package/dist/persistence/utils/serialization.d.ts +0 -33
  268. package/dist/persistence/utils/serialization.d.ts.map +0 -1
  269. package/dist/persistence/utils/serialization.js +0 -85
  270. package/dist/persistence/utils/serialization.js.map +0 -1
  271. package/dist/processing/document/document-processor.d.ts +0 -30
  272. package/dist/processing/document/document-processor.d.ts.map +0 -1
  273. package/dist/processing/document/document-processor.js +0 -158
  274. package/dist/processing/document/document-processor.js.map +0 -1
  275. package/dist/processing/document/index.d.ts +0 -3
  276. package/dist/processing/document/index.d.ts.map +0 -1
  277. package/dist/processing/document/index.js +0 -6
  278. package/dist/processing/document/index.js.map +0 -1
  279. package/dist/ranker/ranker.d.ts +0 -26
  280. package/dist/ranker/ranker.d.ts.map +0 -1
  281. package/dist/ranker/ranker.js +0 -40
  282. package/dist/ranker/ranker.js.map +0 -1
  283. package/dist/recall/recall-engine.d.ts +0 -19
  284. package/dist/recall/recall-engine.d.ts.map +0 -1
  285. package/dist/recall/recall-engine.js +0 -79
  286. package/dist/recall/recall-engine.js.map +0 -1
  287. package/dist/types/config.d.ts +0 -821
  288. package/dist/types/config.d.ts.map +0 -1
  289. package/dist/types/config.js +0 -128
  290. package/dist/types/config.js.map +0 -1
  291. package/dist/types/document.d.ts +0 -37
  292. package/dist/types/document.d.ts.map +0 -1
  293. package/dist/types/document.js +0 -6
  294. package/dist/types/document.js.map +0 -1
  295. package/dist/types/index.d.ts +0 -86
  296. package/dist/types/index.d.ts.map +0 -1
  297. package/dist/types/index.js +0 -6
  298. package/dist/types/index.js.map +0 -1
@@ -1,135 +0,0 @@
1
- "use strict";
2
- /**
3
- * In-Memory Vector Index for fast recall
4
- * Simple implementation using cosine similarity
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.InMemoryIndex = void 0;
8
- class InMemoryIndex {
9
- constructor(options = {}) {
10
- this.options = options;
11
- this.items = new Map();
12
- this.embeddings = new Map();
13
- }
14
- /**
15
- * Initialize (clear existing)
16
- */
17
- async init() {
18
- this.clear();
19
- }
20
- /**
21
- * Add memory items to index
22
- */
23
- async add(items) {
24
- for (const item of items) {
25
- this.items.set(item.id, {
26
- id: item.id,
27
- item,
28
- });
29
- }
30
- }
31
- /**
32
- * Add embedding for a memory item
33
- */
34
- async addEmbedding(memoryId, embedding) {
35
- this.embeddings.set(memoryId, embedding);
36
- const indexed = this.items.get(memoryId);
37
- if (indexed) {
38
- indexed.embedding = embedding;
39
- }
40
- }
41
- /**
42
- * Search by query embedding
43
- */
44
- async search(queryEmbedding, topK, filters) {
45
- const results = [];
46
- for (const [id, indexed] of this.items.entries()) {
47
- // Apply filters
48
- if (filters) {
49
- if (filters.actor && indexed.item.actor?.id !== filters.actor.id) {
50
- continue;
51
- }
52
- if (filters.scope) {
53
- if (filters.scope.projectId && indexed.item.scope?.projectId !== filters.scope.projectId) {
54
- continue;
55
- }
56
- if (filters.scope.channelId && indexed.item.scope?.channelId !== filters.scope.channelId) {
57
- continue;
58
- }
59
- if (filters.scope.threadId && indexed.item.scope?.threadId !== filters.scope.threadId) {
60
- continue;
61
- }
62
- }
63
- }
64
- const embedding = this.embeddings.get(id);
65
- if (!embedding) {
66
- // No embedding, skip or use text similarity
67
- continue;
68
- }
69
- const score = this.cosineSimilarity(queryEmbedding, embedding);
70
- results.push({ id, score });
71
- }
72
- // Sort by score descending
73
- results.sort((a, b) => b.score - a.score);
74
- // Return top K
75
- const topResults = results.slice(0, topK);
76
- return {
77
- ids: topResults.map((r) => r.id),
78
- scores: topResults.map((r) => r.score),
79
- };
80
- }
81
- /**
82
- * Search by text (requires embedding first)
83
- */
84
- async searchByText(query, queryEmbedding, topK, filters) {
85
- return this.search(queryEmbedding, topK, filters);
86
- }
87
- /**
88
- * Compute cosine similarity between two vectors
89
- */
90
- cosineSimilarity(a, b) {
91
- if (a.length !== b.length) {
92
- throw new Error("Vectors must have same dimension");
93
- }
94
- let dotProduct = 0;
95
- let normA = 0;
96
- let normB = 0;
97
- for (let i = 0; i < a.length; i++) {
98
- dotProduct += a[i] * b[i];
99
- normA += a[i] * a[i];
100
- normB += b[i] * b[i];
101
- }
102
- const denominator = Math.sqrt(normA) * Math.sqrt(normB);
103
- if (denominator === 0)
104
- return 0;
105
- return dotProduct / denominator;
106
- }
107
- /**
108
- * Clear all indexed items
109
- */
110
- async clear() {
111
- this.items.clear();
112
- this.embeddings.clear();
113
- }
114
- /**
115
- * Get item by ID
116
- */
117
- getItem(id) {
118
- return this.items.get(id)?.item;
119
- }
120
- /**
121
- * Remove item by ID
122
- */
123
- async remove(id) {
124
- this.items.delete(id);
125
- this.embeddings.delete(id);
126
- }
127
- /**
128
- * Get total count
129
- */
130
- size() {
131
- return this.items.size;
132
- }
133
- }
134
- exports.InMemoryIndex = InMemoryIndex;
135
- //# sourceMappingURL=in-memory-index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory-index.js","sourceRoot":"","sources":["../../src/indexing/in-memory-index.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export { InMemoryIndex } from "./in-memory-index";
2
- export type { InMemoryIndexOptions } from "./in-memory-index";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/indexing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InMemoryIndex = void 0;
4
- var in_memory_index_1 = require("./in-memory-index");
5
- Object.defineProperty(exports, "InMemoryIndex", { enumerable: true, get: function () { return in_memory_index_1.InMemoryIndex; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/indexing/index.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAAzC,gHAAA,aAAa,OAAA"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Database schema definitions
3
- */
4
- export declare const SCHEMA_SQL = "\n CREATE TABLE IF NOT EXISTS memory_items (\n id TEXT PRIMARY KEY,\n type TEXT NOT NULL,\n content TEXT NOT NULL,\n content_hash TEXT NOT NULL,\n \n actor_id TEXT,\n actor_type TEXT,\n scope_project_id TEXT,\n scope_channel_id TEXT,\n scope_thread_id TEXT,\n scope_run_id TEXT,\n \n tags_json TEXT,\n confidence REAL,\n utility REAL DEFAULT 0,\n \n source_kind TEXT,\n source_ref TEXT,\n \n created_at TEXT NOT NULL,\n updated_at TEXT,\n deleted_at TEXT,\n \n embedding_status TEXT NOT NULL DEFAULT 'pending',\n embedding_model TEXT,\n embedding_dim INTEGER,\n embedding_updated_at TEXT\n );\n\n CREATE INDEX IF NOT EXISTS idx_memory_scope\n ON memory_items(scope_project_id, scope_channel_id, scope_thread_id, actor_id);\n\n CREATE INDEX IF NOT EXISTS idx_memory_hash\n ON memory_items(content_hash);\n\n CREATE INDEX IF NOT EXISTS idx_memory_deleted\n ON memory_items(deleted_at);\n\n CREATE TABLE IF NOT EXISTS memory_embeddings (\n memory_id TEXT PRIMARY KEY,\n model TEXT NOT NULL,\n dim INTEGER NOT NULL,\n vector_blob BLOB NOT NULL,\n created_at TEXT NOT NULL,\n FOREIGN KEY(memory_id) REFERENCES memory_items(id) ON DELETE CASCADE\n );\n\n CREATE INDEX IF NOT EXISTS idx_embedding_model\n ON memory_embeddings(model, dim);\n\n CREATE TABLE IF NOT EXISTS kv_meta (\n k TEXT PRIMARY KEY,\n v TEXT NOT NULL\n );\n";
5
- export declare function initializeDatabase(db: any, wal?: boolean): void;
6
- //# sourceMappingURL=schema.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/persistence/database/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,UAAU,4kDAwDtB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,GAAE,OAAc,GAAG,IAAI,CAUrE"}
@@ -1,75 +0,0 @@
1
- "use strict";
2
- /**
3
- * Database schema definitions
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SCHEMA_SQL = void 0;
7
- exports.initializeDatabase = initializeDatabase;
8
- exports.SCHEMA_SQL = `
9
- CREATE TABLE IF NOT EXISTS memory_items (
10
- id TEXT PRIMARY KEY,
11
- type TEXT NOT NULL,
12
- content TEXT NOT NULL,
13
- content_hash TEXT NOT NULL,
14
-
15
- actor_id TEXT,
16
- actor_type TEXT,
17
- scope_project_id TEXT,
18
- scope_channel_id TEXT,
19
- scope_thread_id TEXT,
20
- scope_run_id TEXT,
21
-
22
- tags_json TEXT,
23
- confidence REAL,
24
- utility REAL DEFAULT 0,
25
-
26
- source_kind TEXT,
27
- source_ref TEXT,
28
-
29
- created_at TEXT NOT NULL,
30
- updated_at TEXT,
31
- deleted_at TEXT,
32
-
33
- embedding_status TEXT NOT NULL DEFAULT 'pending',
34
- embedding_model TEXT,
35
- embedding_dim INTEGER,
36
- embedding_updated_at TEXT
37
- );
38
-
39
- CREATE INDEX IF NOT EXISTS idx_memory_scope
40
- ON memory_items(scope_project_id, scope_channel_id, scope_thread_id, actor_id);
41
-
42
- CREATE INDEX IF NOT EXISTS idx_memory_hash
43
- ON memory_items(content_hash);
44
-
45
- CREATE INDEX IF NOT EXISTS idx_memory_deleted
46
- ON memory_items(deleted_at);
47
-
48
- CREATE TABLE IF NOT EXISTS memory_embeddings (
49
- memory_id TEXT PRIMARY KEY,
50
- model TEXT NOT NULL,
51
- dim INTEGER NOT NULL,
52
- vector_blob BLOB NOT NULL,
53
- created_at TEXT NOT NULL,
54
- FOREIGN KEY(memory_id) REFERENCES memory_items(id) ON DELETE CASCADE
55
- );
56
-
57
- CREATE INDEX IF NOT EXISTS idx_embedding_model
58
- ON memory_embeddings(model, dim);
59
-
60
- CREATE TABLE IF NOT EXISTS kv_meta (
61
- k TEXT PRIMARY KEY,
62
- v TEXT NOT NULL
63
- );
64
- `;
65
- function initializeDatabase(db, wal = true) {
66
- // Set PRAGMA for performance
67
- if (wal !== false) {
68
- db.pragma("journal_mode = WAL");
69
- }
70
- db.pragma("synchronous = NORMAL");
71
- db.pragma("busy_timeout = 5000");
72
- // Create tables
73
- db.exec(exports.SCHEMA_SQL);
74
- }
75
- //# sourceMappingURL=schema.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/persistence/database/schema.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA4DH,gDAUC;AApEY,QAAA,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwDzB,CAAC;AAEF,SAAgB,kBAAkB,CAAC,EAAO,EAAE,MAAe,IAAI;IAC7D,6BAA6B;IAC7B,IAAI,GAAG,KAAK,KAAK,EAAE,CAAC;QAClB,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAClC,CAAC;IACD,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAClC,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAEjC,gBAAgB;IAChB,EAAE,CAAC,IAAI,CAAC,kBAAU,CAAC,CAAC;AACtB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { SqliteMemoryRepo } from "./sqlite-repo";
2
- export type { SqliteMemoryRepoOptions } from "./sqlite-repo";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC"}
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SqliteMemoryRepo = void 0;
4
- var sqlite_repo_1 = require("./sqlite-repo");
5
- Object.defineProperty(exports, "SqliteMemoryRepo", { enumerable: true, get: function () { return sqlite_repo_1.SqliteMemoryRepo; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/persistence/index.ts"],"names":[],"mappings":";;;AAAA,6CAAiD;AAAxC,+GAAA,gBAAgB,OAAA"}
@@ -1,17 +0,0 @@
1
- /**
2
- * Embedding operations for SQLite repository
3
- */
4
- import Database from "better-sqlite3";
5
- export interface EmbeddingOperations {
6
- saveEmbedding(memoryId: string, model: string, dim: number, vector: Float32Array): Promise<void>;
7
- markEmbeddingReady(memoryId: string, model: string, dim: number): Promise<void>;
8
- loadEmbedding(memoryId: string): Promise<Float32Array | null>;
9
- }
10
- export declare class EmbeddingOperationsImpl implements EmbeddingOperations {
11
- private db;
12
- constructor(db: Database.Database);
13
- saveEmbedding(memoryId: string, model: string, dim: number, vector: Float32Array): Promise<void>;
14
- markEmbeddingReady(memoryId: string, model: string, dim: number): Promise<void>;
15
- loadEmbedding(memoryId: string): Promise<Float32Array | null>;
16
- }
17
- //# sourceMappingURL=embedding-operations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embedding-operations.d.ts","sourceRoot":"","sources":["../../../src/persistence/repository/embedding-operations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACjG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChF,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;CAC/D;AAED,qBAAa,uBAAwB,YAAW,mBAAmB;IACrD,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEnC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BhG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB/E,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;CAapE"}
@@ -1,58 +0,0 @@
1
- "use strict";
2
- /**
3
- * Embedding operations for SQLite repository
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.EmbeddingOperationsImpl = void 0;
7
- class EmbeddingOperationsImpl {
8
- constructor(db) {
9
- this.db = db;
10
- }
11
- async saveEmbedding(memoryId, model, dim, vector) {
12
- const buffer = Buffer.from(vector.buffer);
13
- const now = new Date().toISOString();
14
- this.db
15
- .prepare(`
16
- INSERT OR REPLACE INTO memory_embeddings (memory_id, model, dim, vector_blob, created_at)
17
- VALUES (?, ?, ?, ?, ?)
18
- `)
19
- .run(memoryId, model, dim, buffer, now);
20
- // Update embedding status
21
- this.db
22
- .prepare(`
23
- UPDATE memory_items
24
- SET embedding_status = 'ready',
25
- embedding_model = ?,
26
- embedding_dim = ?,
27
- embedding_updated_at = ?
28
- WHERE id = ?
29
- `)
30
- .run(model, dim, now, memoryId);
31
- }
32
- async markEmbeddingReady(memoryId, model, dim) {
33
- const now = new Date().toISOString();
34
- this.db
35
- .prepare(`
36
- UPDATE memory_items
37
- SET embedding_status = 'ready',
38
- embedding_model = ?,
39
- embedding_dim = ?,
40
- embedding_updated_at = ?
41
- WHERE id = ?
42
- `)
43
- .run(model, dim, now, memoryId);
44
- }
45
- async loadEmbedding(memoryId) {
46
- const row = this.db
47
- .prepare("SELECT vector_blob FROM memory_embeddings WHERE memory_id = ?")
48
- .get(memoryId);
49
- if (!row) {
50
- return null;
51
- }
52
- // Convert BLOB to Float32Array
53
- const buffer = row.vector_blob;
54
- return new Float32Array(buffer.buffer, buffer.byteOffset, buffer.byteLength / 4);
55
- }
56
- }
57
- exports.EmbeddingOperationsImpl = EmbeddingOperationsImpl;
58
- //# sourceMappingURL=embedding-operations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"embedding-operations.js","sourceRoot":"","sources":["../../../src/persistence/repository/embedding-operations.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAUH,MAAa,uBAAuB;IAClC,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAE7C,KAAK,CAAC,aAAa,CAAC,QAAgB,EAAE,KAAa,EAAE,GAAW,EAAE,MAAoB;QACpF,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;OAGD,CACA;aACA,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAE1C,0BAA0B;QAC1B,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;OAOD,CACA;aACA,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAAgB,EAAE,KAAa,EAAE,GAAW;QACnE,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;;;;;;OAOD,CACA;aACA,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE;aAChB,OAAO,CAAC,+DAA+D,CAAC;aACxE,GAAG,CAAC,QAAQ,CAAwC,CAAC;QAExD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QAED,+BAA+B;QAC/B,MAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC;QAC/B,OAAO,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;IACnF,CAAC;CACF;AA5DD,0DA4DC"}
@@ -1,28 +0,0 @@
1
- /**
2
- * Memory operations for SQLite repository
3
- */
4
- import Database from "better-sqlite3";
5
- import { MemoryItem } from "../../types";
6
- export interface MemoryOperations {
7
- upsertMemory(item: MemoryItem): Promise<{
8
- inserted: boolean;
9
- }>;
10
- loadAllActive(opts?: {
11
- limit?: number;
12
- orderBy?: "utility" | "createdAt";
13
- }): Promise<MemoryItem[]>;
14
- loadByIds(ids: string[]): Promise<MemoryItem[]>;
15
- }
16
- export declare class MemoryOperationsImpl implements MemoryOperations {
17
- private db;
18
- constructor(db: Database.Database);
19
- upsertMemory(item: MemoryItem): Promise<{
20
- inserted: boolean;
21
- }>;
22
- loadAllActive(opts?: {
23
- limit?: number;
24
- orderBy?: "utility" | "createdAt";
25
- }): Promise<MemoryItem[]>;
26
- loadByIds(ids: string[]): Promise<MemoryItem[]>;
27
- }
28
- //# sourceMappingURL=memory-operations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-operations.d.ts","sourceRoot":"","sources":["../../../src/persistence/repository/memory-operations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC/D,aAAa,CAAC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IACnG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CACjD;AAED,qBAAa,oBAAqB,YAAW,gBAAgB;IAC/C,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEnC,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAkF9D,aAAa,CAAC,IAAI,CAAC,EAAE;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;KACnC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAkBnB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAetD"}
@@ -1,87 +0,0 @@
1
- "use strict";
2
- /**
3
- * Memory operations for SQLite repository
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MemoryOperationsImpl = void 0;
7
- const hash_1 = require("../utils/hash");
8
- const serialization_1 = require("../utils/serialization");
9
- class MemoryOperationsImpl {
10
- constructor(db) {
11
- this.db = db;
12
- }
13
- async upsertMemory(item) {
14
- const contentHash = (0, hash_1.computeContentHash)(item.content);
15
- const actorFields = (0, serialization_1.serializeActor)(item.actor);
16
- const scopeFields = (0, serialization_1.serializeScope)(item.scope);
17
- const now = new Date().toISOString();
18
- // Check if exists (same content_hash + scope)
19
- const existing = this.db
20
- .prepare(`
21
- SELECT id FROM memory_items
22
- WHERE content_hash = ?
23
- AND scope_project_id IS ?
24
- AND scope_channel_id IS ?
25
- AND scope_thread_id IS ?
26
- AND actor_id IS ?
27
- AND deleted_at IS NULL
28
- LIMIT 1
29
- `)
30
- .get(contentHash, scopeFields.scope_project_id || null, scopeFields.scope_channel_id || null, scopeFields.scope_thread_id || null, actorFields.actor_id || null);
31
- if (existing) {
32
- // Update existing
33
- this.db
34
- .prepare(`
35
- UPDATE memory_items
36
- SET updated_at = ?,
37
- confidence = COALESCE(?, confidence),
38
- utility = COALESCE(?, utility),
39
- tags_json = ?
40
- WHERE id = ?
41
- `)
42
- .run(now, item.confidence, item.utility, item.tags ? JSON.stringify(item.tags) : null, existing.id);
43
- return { inserted: false };
44
- }
45
- // Insert new
46
- this.db
47
- .prepare(`
48
- INSERT INTO memory_items (
49
- id, type, content, content_hash,
50
- actor_id, actor_type,
51
- scope_project_id, scope_channel_id, scope_thread_id, scope_run_id,
52
- tags_json, confidence, utility,
53
- source_kind, source_ref,
54
- created_at, embedding_status
55
- ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'pending')
56
- `)
57
- .run(item.id, item.type, item.content, contentHash, actorFields.actor_id || null, actorFields.actor_type || null, scopeFields.scope_project_id || null, scopeFields.scope_channel_id || null, scopeFields.scope_thread_id || null, scopeFields.scope_run_id || null, item.tags ? JSON.stringify(item.tags) : null, item.confidence || null, item.utility || 0, item.source?.kind || null, item.source?.ref || null, now);
58
- return { inserted: true };
59
- }
60
- async loadAllActive(opts) {
61
- const orderBy = opts?.orderBy === "utility" ? "utility DESC, created_at DESC" : "created_at DESC";
62
- const limit = opts?.limit ? `LIMIT ${opts.limit}` : "";
63
- const rows = this.db
64
- .prepare(`
65
- SELECT * FROM memory_items
66
- WHERE deleted_at IS NULL
67
- ORDER BY ${orderBy}
68
- ${limit}
69
- `)
70
- .all();
71
- return rows.map((row) => (0, serialization_1.rowToMemoryItem)(row, serialization_1.deserializeActor, serialization_1.deserializeScope));
72
- }
73
- async loadByIds(ids) {
74
- if (ids.length === 0)
75
- return [];
76
- const placeholders = ids.map(() => "?").join(",");
77
- const rows = this.db
78
- .prepare(`
79
- SELECT * FROM memory_items
80
- WHERE id IN (${placeholders}) AND deleted_at IS NULL
81
- `)
82
- .all(...ids);
83
- return rows.map((row) => (0, serialization_1.rowToMemoryItem)(row, serialization_1.deserializeActor, serialization_1.deserializeScope));
84
- }
85
- }
86
- exports.MemoryOperationsImpl = MemoryOperationsImpl;
87
- //# sourceMappingURL=memory-operations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-operations.js","sourceRoot":"","sources":["../../../src/persistence/repository/memory-operations.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Metadata operations for SQLite repository
3
- */
4
- import Database from "better-sqlite3";
5
- export interface MetaOperations {
6
- getMeta(key: string): Promise<string | null>;
7
- setMeta(key: string, value: string): Promise<void>;
8
- }
9
- export declare class MetaOperationsImpl implements MetaOperations {
10
- private db;
11
- constructor(db: Database.Database);
12
- getMeta(key: string): Promise<string | null>;
13
- setMeta(key: string, value: string): Promise<void>;
14
- }
15
- //# sourceMappingURL=meta-operations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta-operations.d.ts","sourceRoot":"","sources":["../../../src/persistence/repository/meta-operations.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED,qBAAa,kBAAmB,YAAW,cAAc;IAC3C,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEnC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAGzD"}
@@ -1,20 +0,0 @@
1
- "use strict";
2
- /**
3
- * Metadata operations for SQLite repository
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MetaOperationsImpl = void 0;
7
- class MetaOperationsImpl {
8
- constructor(db) {
9
- this.db = db;
10
- }
11
- async getMeta(key) {
12
- const row = this.db.prepare("SELECT v FROM kv_meta WHERE k = ?").get(key);
13
- return row?.v || null;
14
- }
15
- async setMeta(key, value) {
16
- this.db.prepare("INSERT OR REPLACE INTO kv_meta (k, v) VALUES (?, ?)").run(key, value);
17
- }
18
- }
19
- exports.MetaOperationsImpl = MetaOperationsImpl;
20
- //# sourceMappingURL=meta-operations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta-operations.js","sourceRoot":"","sources":["../../../src/persistence/repository/meta-operations.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AASH,MAAa,kBAAkB;IAC7B,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAE7C,KAAK,CAAC,OAAO,CAAC,GAAW;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,GAAG,CAAC,GAAG,CAA8B,CAAC;QACvG,OAAO,GAAG,EAAE,CAAC,IAAI,IAAI,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE,KAAa;QACtC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACzF,CAAC;CACF;AAXD,gDAWC"}
@@ -1,58 +0,0 @@
1
- /**
2
- * SQLite Memory Repository - Source of Truth
3
- */
4
- import { MemoryItem } from "../types";
5
- export interface SqliteMemoryRepoOptions {
6
- path: string;
7
- wal?: boolean;
8
- }
9
- export declare class SqliteMemoryRepo {
10
- private options;
11
- private db;
12
- private memoryOps;
13
- private embeddingOps;
14
- private metaOps;
15
- constructor(options: SqliteMemoryRepoOptions);
16
- /**
17
- * UPSERT memory item
18
- */
19
- upsertMemory(item: MemoryItem): Promise<{
20
- inserted: boolean;
21
- }>;
22
- /**
23
- * Save embedding vector
24
- */
25
- saveEmbedding(memoryId: string, model: string, dim: number, vector: Float32Array): Promise<void>;
26
- /**
27
- * Mark embedding as ready
28
- */
29
- markEmbeddingReady(memoryId: string, model: string, dim: number): Promise<void>;
30
- /**
31
- * Load all active memory items
32
- */
33
- loadAllActive(opts?: {
34
- limit?: number;
35
- orderBy?: "utility" | "createdAt";
36
- }): Promise<MemoryItem[]>;
37
- /**
38
- * Load memory items by IDs
39
- */
40
- loadByIds(ids: string[]): Promise<MemoryItem[]>;
41
- /**
42
- * Get metadata value
43
- */
44
- getMeta(key: string): Promise<string | null>;
45
- /**
46
- * Set metadata value
47
- */
48
- setMeta(key: string, value: string): Promise<void>;
49
- /**
50
- * Load embedding vector by memory ID
51
- */
52
- loadEmbedding(memoryId: string): Promise<Float32Array | null>;
53
- /**
54
- * Close database connection
55
- */
56
- close(): void;
57
- }
58
- //# sourceMappingURL=sqlite-repo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sqlite-repo.d.ts","sourceRoot":"","sources":["../../src/persistence/sqlite-repo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAMtC,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,qBAAa,gBAAgB;IAMf,OAAO,CAAC,OAAO;IAL3B,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,YAAY,CAA0B;IAC9C,OAAO,CAAC,OAAO,CAAqB;gBAEhB,OAAO,EAAE,uBAAuB;IAUpD;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAIpE;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAItG;;OAEG;IACG,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF;;OAEG;IACG,aAAa,CAAC,IAAI,CAAC,EAAE;QACzB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,CAAC;KACnC,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIzB;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAIrD;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIlD;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAInE;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd"}