@aitytech/agentkits-memory 1.0.0 → 2.0.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 (110) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +267 -149
  3. package/assets/agentkits-memory-add-memory.png +0 -0
  4. package/assets/agentkits-memory-memory-detail.png +0 -0
  5. package/assets/agentkits-memory-memory-list.png +0 -0
  6. package/assets/logo.svg +24 -0
  7. package/dist/better-sqlite3-backend.d.ts +192 -0
  8. package/dist/better-sqlite3-backend.d.ts.map +1 -0
  9. package/dist/better-sqlite3-backend.js +801 -0
  10. package/dist/better-sqlite3-backend.js.map +1 -0
  11. package/dist/cli/save.js +0 -0
  12. package/dist/cli/setup.d.ts +6 -2
  13. package/dist/cli/setup.d.ts.map +1 -1
  14. package/dist/cli/setup.js +289 -42
  15. package/dist/cli/setup.js.map +1 -1
  16. package/dist/cli/viewer.js +25 -56
  17. package/dist/cli/viewer.js.map +1 -1
  18. package/dist/cli/web-viewer.d.ts +14 -0
  19. package/dist/cli/web-viewer.d.ts.map +1 -0
  20. package/dist/cli/web-viewer.js +1769 -0
  21. package/dist/cli/web-viewer.js.map +1 -0
  22. package/dist/embeddings/embedding-cache.d.ts +131 -0
  23. package/dist/embeddings/embedding-cache.d.ts.map +1 -0
  24. package/dist/embeddings/embedding-cache.js +217 -0
  25. package/dist/embeddings/embedding-cache.js.map +1 -0
  26. package/dist/embeddings/index.d.ts +11 -0
  27. package/dist/embeddings/index.d.ts.map +1 -0
  28. package/dist/embeddings/index.js +11 -0
  29. package/dist/embeddings/index.js.map +1 -0
  30. package/dist/embeddings/local-embeddings.d.ts +140 -0
  31. package/dist/embeddings/local-embeddings.d.ts.map +1 -0
  32. package/dist/embeddings/local-embeddings.js +293 -0
  33. package/dist/embeddings/local-embeddings.js.map +1 -0
  34. package/dist/hooks/context.d.ts +6 -1
  35. package/dist/hooks/context.d.ts.map +1 -1
  36. package/dist/hooks/context.js +12 -2
  37. package/dist/hooks/context.js.map +1 -1
  38. package/dist/hooks/observation.d.ts +6 -1
  39. package/dist/hooks/observation.d.ts.map +1 -1
  40. package/dist/hooks/observation.js +12 -2
  41. package/dist/hooks/observation.js.map +1 -1
  42. package/dist/hooks/service.d.ts +1 -6
  43. package/dist/hooks/service.d.ts.map +1 -1
  44. package/dist/hooks/service.js +33 -85
  45. package/dist/hooks/service.js.map +1 -1
  46. package/dist/hooks/session-init.d.ts +6 -1
  47. package/dist/hooks/session-init.d.ts.map +1 -1
  48. package/dist/hooks/session-init.js +12 -2
  49. package/dist/hooks/session-init.js.map +1 -1
  50. package/dist/hooks/summarize.d.ts +6 -1
  51. package/dist/hooks/summarize.d.ts.map +1 -1
  52. package/dist/hooks/summarize.js +12 -2
  53. package/dist/hooks/summarize.js.map +1 -1
  54. package/dist/index.d.ts +10 -17
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +172 -94
  57. package/dist/index.js.map +1 -1
  58. package/dist/mcp/server.js +17 -3
  59. package/dist/mcp/server.js.map +1 -1
  60. package/dist/migration.js +3 -3
  61. package/dist/migration.js.map +1 -1
  62. package/dist/search/hybrid-search.d.ts +262 -0
  63. package/dist/search/hybrid-search.d.ts.map +1 -0
  64. package/dist/search/hybrid-search.js +688 -0
  65. package/dist/search/hybrid-search.js.map +1 -0
  66. package/dist/search/index.d.ts +13 -0
  67. package/dist/search/index.d.ts.map +1 -0
  68. package/dist/search/index.js +13 -0
  69. package/dist/search/index.js.map +1 -0
  70. package/dist/search/token-economics.d.ts +161 -0
  71. package/dist/search/token-economics.d.ts.map +1 -0
  72. package/dist/search/token-economics.js +239 -0
  73. package/dist/search/token-economics.js.map +1 -0
  74. package/dist/types.d.ts +0 -68
  75. package/dist/types.d.ts.map +1 -1
  76. package/dist/types.js.map +1 -1
  77. package/package.json +23 -8
  78. package/src/__tests__/better-sqlite3-backend.test.ts +1466 -0
  79. package/src/__tests__/cache-manager.test.ts +499 -0
  80. package/src/__tests__/embedding-integration.test.ts +481 -0
  81. package/src/__tests__/hnsw-index.test.ts +727 -0
  82. package/src/__tests__/index.test.ts +432 -0
  83. package/src/better-sqlite3-backend.ts +1000 -0
  84. package/src/cli/setup.ts +358 -47
  85. package/src/cli/viewer.ts +28 -63
  86. package/src/cli/web-viewer.ts +1956 -0
  87. package/src/embeddings/__tests__/embedding-cache.test.ts +269 -0
  88. package/src/embeddings/__tests__/local-embeddings.test.ts +495 -0
  89. package/src/embeddings/embedding-cache.ts +318 -0
  90. package/src/embeddings/index.ts +20 -0
  91. package/src/embeddings/local-embeddings.ts +419 -0
  92. package/src/hooks/__tests__/handlers.test.ts +58 -17
  93. package/src/hooks/__tests__/integration.test.ts +77 -26
  94. package/src/hooks/context.ts +13 -2
  95. package/src/hooks/observation.ts +13 -2
  96. package/src/hooks/service.ts +39 -100
  97. package/src/hooks/session-init.ts +13 -2
  98. package/src/hooks/summarize.ts +13 -2
  99. package/src/index.ts +210 -116
  100. package/src/mcp/server.ts +20 -3
  101. package/src/search/__tests__/hybrid-search.test.ts +669 -0
  102. package/src/search/__tests__/token-economics.test.ts +276 -0
  103. package/src/search/hybrid-search.ts +968 -0
  104. package/src/search/index.ts +29 -0
  105. package/src/search/token-economics.ts +367 -0
  106. package/src/types.ts +0 -96
  107. package/src/__tests__/sqljs-backend.test.ts +0 -410
  108. package/src/migration.ts +0 -574
  109. package/src/sql.js.d.ts +0 -70
  110. package/src/sqljs-backend.ts +0 -789
@@ -0,0 +1,293 @@
1
+ /**
2
+ * Local Offline Embeddings Service
3
+ *
4
+ * Provides 100% offline text embeddings using Transformers.js (WASM-based).
5
+ * No external API calls. Model is downloaded once and cached locally.
6
+ *
7
+ * @module @aitytech/agentkits-memory/embeddings
8
+ */
9
+ /**
10
+ * In-memory LRU Cache for embeddings
11
+ */
12
+ class InMemoryEmbeddingCache {
13
+ cache = new Map();
14
+ accessOrder = [];
15
+ maxSize;
16
+ constructor(maxSize) {
17
+ this.maxSize = maxSize;
18
+ }
19
+ get(key) {
20
+ const value = this.cache.get(key);
21
+ if (value) {
22
+ // Move to end (most recently used)
23
+ const index = this.accessOrder.indexOf(key);
24
+ if (index > -1) {
25
+ this.accessOrder.splice(index, 1);
26
+ }
27
+ this.accessOrder.push(key);
28
+ }
29
+ return value;
30
+ }
31
+ set(key, value) {
32
+ if (this.cache.has(key)) {
33
+ this.cache.set(key, value);
34
+ return;
35
+ }
36
+ // Evict if at capacity
37
+ while (this.cache.size >= this.maxSize && this.accessOrder.length > 0) {
38
+ const oldest = this.accessOrder.shift();
39
+ if (oldest) {
40
+ this.cache.delete(oldest);
41
+ }
42
+ }
43
+ this.cache.set(key, value);
44
+ this.accessOrder.push(key);
45
+ }
46
+ clear() {
47
+ this.cache.clear();
48
+ this.accessOrder = [];
49
+ }
50
+ get size() {
51
+ return this.cache.size;
52
+ }
53
+ }
54
+ /**
55
+ * Mock embedding provider for testing
56
+ */
57
+ function createMockEmbedding(text, dimensions) {
58
+ const embedding = new Float32Array(dimensions);
59
+ // Generate deterministic pseudo-random values based on text hash
60
+ let hash = 0;
61
+ for (let i = 0; i < text.length; i++) {
62
+ hash = ((hash << 5) - hash) + text.charCodeAt(i);
63
+ hash = hash & hash;
64
+ }
65
+ for (let i = 0; i < dimensions; i++) {
66
+ // Use hash to seed pseudo-random generation
67
+ hash = ((hash << 5) - hash) + i;
68
+ hash = hash & hash;
69
+ embedding[i] = (hash % 1000) / 1000 - 0.5;
70
+ }
71
+ // Normalize
72
+ let norm = 0;
73
+ for (let i = 0; i < dimensions; i++) {
74
+ norm += embedding[i] * embedding[i];
75
+ }
76
+ norm = Math.sqrt(norm);
77
+ if (norm > 0) {
78
+ for (let i = 0; i < dimensions; i++) {
79
+ embedding[i] /= norm;
80
+ }
81
+ }
82
+ return embedding;
83
+ }
84
+ /**
85
+ * Local Embeddings Service
86
+ *
87
+ * Provides offline text embeddings using Transformers.js.
88
+ * Models are downloaded once and cached locally in ~/.cache/huggingface.
89
+ */
90
+ export class LocalEmbeddingsService {
91
+ config;
92
+ cache = null;
93
+ pipeline = null;
94
+ modelLoading = null;
95
+ stats = {
96
+ totalEmbeddings: 0,
97
+ cacheHits: 0,
98
+ cacheMisses: 0,
99
+ totalTimeMs: 0,
100
+ };
101
+ constructor(config = {}) {
102
+ this.config = {
103
+ provider: config.provider || 'transformers',
104
+ // Use multilingual-e5-small for best CJK support and retrieval accuracy
105
+ modelId: config.modelId || 'Xenova/multilingual-e5-small',
106
+ dimensions: config.dimensions || 384,
107
+ cacheEnabled: config.cacheEnabled ?? true,
108
+ maxCacheSize: config.maxCacheSize || 1000,
109
+ showProgress: config.showProgress ?? false,
110
+ cacheDir: config.cacheDir || '',
111
+ };
112
+ if (this.config.cacheEnabled) {
113
+ this.cache = new InMemoryEmbeddingCache(this.config.maxCacheSize);
114
+ }
115
+ }
116
+ /**
117
+ * Initialize the embeddings service (loads model)
118
+ */
119
+ async initialize() {
120
+ if (this.config.provider === 'mock') {
121
+ return;
122
+ }
123
+ if (this.pipeline) {
124
+ return;
125
+ }
126
+ if (this.modelLoading) {
127
+ await this.modelLoading;
128
+ return;
129
+ }
130
+ this.modelLoading = this.loadModel();
131
+ await this.modelLoading;
132
+ }
133
+ async loadModel() {
134
+ try {
135
+ // Dynamic import for Transformers.js
136
+ const { pipeline } = await import('@xenova/transformers');
137
+ const progressCallback = this.config.showProgress
138
+ ? (progress) => {
139
+ if (progress.status === 'progress' && progress.progress !== undefined) {
140
+ process.stderr.write(`\rLoading model: ${Math.round(progress.progress)}%`);
141
+ }
142
+ else if (progress.status === 'done') {
143
+ process.stderr.write('\rModel loaded successfully. \n');
144
+ }
145
+ }
146
+ : undefined;
147
+ this.pipeline = await pipeline('feature-extraction', this.config.modelId, {
148
+ progress_callback: progressCallback,
149
+ });
150
+ }
151
+ catch (error) {
152
+ // If Transformers.js is not available, fall back to mock
153
+ console.warn('Transformers.js not available, falling back to mock embeddings.', 'Install with: npm install @xenova/transformers');
154
+ this.config.provider = 'mock';
155
+ }
156
+ }
157
+ /**
158
+ * Generate embedding for text
159
+ */
160
+ async embed(text) {
161
+ const startTime = performance.now();
162
+ // Check cache
163
+ if (this.cache) {
164
+ const cached = this.cache.get(text);
165
+ if (cached) {
166
+ this.stats.cacheHits++;
167
+ return {
168
+ embedding: cached,
169
+ timeMs: performance.now() - startTime,
170
+ cached: true,
171
+ };
172
+ }
173
+ this.stats.cacheMisses++;
174
+ }
175
+ // Generate embedding
176
+ let embedding;
177
+ if (this.config.provider === 'mock') {
178
+ embedding = createMockEmbedding(text, this.config.dimensions);
179
+ }
180
+ else {
181
+ await this.initialize();
182
+ if (!this.pipeline) {
183
+ // Fall back to mock if model failed to load
184
+ embedding = createMockEmbedding(text, this.config.dimensions);
185
+ }
186
+ else {
187
+ const output = await this.pipeline(text, {
188
+ pooling: 'mean',
189
+ normalize: true,
190
+ });
191
+ embedding = new Float32Array(output.data);
192
+ }
193
+ }
194
+ const timeMs = performance.now() - startTime;
195
+ // Update stats
196
+ this.stats.totalEmbeddings++;
197
+ this.stats.totalTimeMs += timeMs;
198
+ // Cache result
199
+ if (this.cache) {
200
+ this.cache.set(text, embedding);
201
+ }
202
+ return {
203
+ embedding,
204
+ timeMs,
205
+ cached: false,
206
+ };
207
+ }
208
+ /**
209
+ * Generate embeddings for multiple texts (batch)
210
+ */
211
+ async embedBatch(texts) {
212
+ // Process in parallel for better performance
213
+ return Promise.all(texts.map((text) => this.embed(text)));
214
+ }
215
+ /**
216
+ * Get embedding generator function compatible with ProjectMemoryService
217
+ */
218
+ getGenerator() {
219
+ return async (content) => {
220
+ const result = await this.embed(content);
221
+ return result.embedding;
222
+ };
223
+ }
224
+ /**
225
+ * Get service statistics
226
+ */
227
+ getStats() {
228
+ return {
229
+ totalEmbeddings: this.stats.totalEmbeddings,
230
+ cacheHits: this.stats.cacheHits,
231
+ cacheMisses: this.stats.cacheMisses,
232
+ avgTimeMs: this.stats.totalEmbeddings > 0
233
+ ? this.stats.totalTimeMs / this.stats.totalEmbeddings
234
+ : 0,
235
+ totalTimeMs: this.stats.totalTimeMs,
236
+ modelLoaded: this.pipeline !== null || this.config.provider === 'mock',
237
+ provider: this.config.provider,
238
+ };
239
+ }
240
+ /**
241
+ * Clear the embedding cache
242
+ */
243
+ clearCache() {
244
+ if (this.cache) {
245
+ this.cache.clear();
246
+ }
247
+ }
248
+ /**
249
+ * Get vector dimensions
250
+ */
251
+ getDimensions() {
252
+ return this.config.dimensions;
253
+ }
254
+ /**
255
+ * Shutdown and cleanup
256
+ */
257
+ async shutdown() {
258
+ this.clearCache();
259
+ this.pipeline = null;
260
+ this.modelLoading = null;
261
+ }
262
+ }
263
+ /**
264
+ * Create a local embeddings service with default configuration
265
+ */
266
+ export function createLocalEmbeddings(config) {
267
+ return new LocalEmbeddingsService(config);
268
+ }
269
+ /**
270
+ * Create an embedding generator function for use with ProjectMemoryService
271
+ *
272
+ * @example
273
+ * ```typescript
274
+ * import { createEmbeddingGenerator } from '@aitytech/agentkits-memory/embeddings';
275
+ * import { ProjectMemoryService } from '@aitytech/agentkits-memory';
276
+ *
277
+ * const embeddingGenerator = await createEmbeddingGenerator();
278
+ *
279
+ * const memory = new ProjectMemoryService({
280
+ * projectPath: '/path/to/project',
281
+ * enableVectorIndex: true,
282
+ * embeddingGenerator,
283
+ * });
284
+ * ```
285
+ */
286
+ export async function createEmbeddingGenerator(config) {
287
+ const service = new LocalEmbeddingsService(config);
288
+ await service.initialize();
289
+ return service.getGenerator();
290
+ }
291
+ // Default export
292
+ export default LocalEmbeddingsService;
293
+ //# sourceMappingURL=local-embeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-embeddings.js","sourceRoot":"","sources":["../../src/embeddings/local-embeddings.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,12 @@ import { MemoryHookService } from './service.js';
17
17
  */
18
18
  export declare class ContextHook implements EventHandler {
19
19
  private service;
20
- constructor(service: MemoryHookService);
20
+ private ownsService;
21
+ constructor(service: MemoryHookService, ownsService?: boolean);
22
+ /**
23
+ * Shutdown the hook (closes database if owned)
24
+ */
25
+ shutdown(): Promise<void>;
21
26
  /**
22
27
  * Execute the context hook
23
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/hooks/context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,OAAO,CAAoB;gBAEvB,OAAO,EAAE,iBAAiB;IAItC;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAiC/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAG1D;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/hooks/context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;GAMG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,WAAW,CAAU;gBAEjB,OAAO,EAAE,iBAAiB,EAAE,WAAW,UAAQ;IAK3D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAiC/D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAG1D;AAED,eAAe,WAAW,CAAC"}
@@ -16,8 +16,18 @@ import { MemoryHookService } from './service.js';
16
16
  */
17
17
  export class ContextHook {
18
18
  service;
19
- constructor(service) {
19
+ ownsService;
20
+ constructor(service, ownsService = false) {
20
21
  this.service = service;
22
+ this.ownsService = ownsService;
23
+ }
24
+ /**
25
+ * Shutdown the hook (closes database if owned)
26
+ */
27
+ async shutdown() {
28
+ if (this.ownsService) {
29
+ await this.service.shutdown();
30
+ }
21
31
  }
22
32
  /**
23
33
  * Execute the context hook
@@ -58,7 +68,7 @@ export class ContextHook {
58
68
  */
59
69
  export function createContextHook(cwd) {
60
70
  const service = new MemoryHookService(cwd);
61
- return new ContextHook(service);
71
+ return new ContextHook(service, true); // owns service
62
72
  }
63
73
  export default ContextHook;
64
74
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/hooks/context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IACd,OAAO,CAAoB;IAEnC,YAAY,OAA0B;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAA0B;QACtC,IAAI,CAAC;YACH,qBAAqB;YACrB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAEhC,+BAA+B;YAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE7D,uBAAuB;YACvB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;gBAClF,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE,IAAI;iBACrB,CAAC;YACJ,CAAC;YAED,uCAAuC;YACvC,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,KAAK;gBACrB,iBAAiB,EAAE,OAAO,CAAC,QAAQ;aACpC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oCAAoC;YACpC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YAE/D,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,IAAI;gBACpB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/hooks/context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,OAAO,WAAW;IACd,OAAO,CAAoB;IAC3B,WAAW,CAAU;IAE7B,YAAY,OAA0B,EAAE,WAAW,GAAG,KAAK;QACzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAA0B;QACtC,IAAI,CAAC;YACH,qBAAqB;YACrB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAEhC,+BAA+B;YAC/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAE7D,uBAAuB;YACvB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,6BAA6B,CAAC,EAAE,CAAC;gBAClF,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE,IAAI;iBACrB,CAAC;YACJ,CAAC;YAED,uCAAuC;YACvC,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,KAAK;gBACrB,iBAAiB,EAAE,OAAO,CAAC,QAAQ;aACpC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,oCAAoC;YACpC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,KAAK,CAAC,CAAC;YAE/D,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,IAAI;gBACpB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW;IAC3C,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,IAAI,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,eAAe;AACxD,CAAC;AAED,eAAe,WAAW,CAAC"}
@@ -16,7 +16,12 @@ import { MemoryHookService } from './service.js';
16
16
  */
17
17
  export declare class ObservationHook implements EventHandler {
18
18
  private service;
19
- constructor(service: MemoryHookService);
19
+ private ownsService;
20
+ constructor(service: MemoryHookService, ownsService?: boolean);
21
+ /**
22
+ * Shutdown the hook (closes database if owned)
23
+ */
24
+ shutdown(): Promise<void>;
20
25
  /**
21
26
  * Execute the observation hook
22
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../src/hooks/observation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAYjD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,OAAO,CAAoB;gBAEvB,OAAO,EAAE,iBAAiB;IAItC;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAiD/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAGlE;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"observation.d.ts","sourceRoot":"","sources":["../../src/hooks/observation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,mBAAmB,EACnB,UAAU,EACV,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAYjD;;;;;GAKG;AACH,qBAAa,eAAgB,YAAW,YAAY;IAClD,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,WAAW,CAAU;gBAEjB,OAAO,EAAE,iBAAiB,EAAE,WAAW,UAAQ;IAK3D;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAiD/D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAGlE;AAED,eAAe,eAAe,CAAC"}
@@ -24,8 +24,18 @@ const SKIP_TOOLS = new Set([
24
24
  */
25
25
  export class ObservationHook {
26
26
  service;
27
- constructor(service) {
27
+ ownsService;
28
+ constructor(service, ownsService = false) {
28
29
  this.service = service;
30
+ this.ownsService = ownsService;
31
+ }
32
+ /**
33
+ * Shutdown the hook (closes database if owned)
34
+ */
35
+ async shutdown() {
36
+ if (this.ownsService) {
37
+ await this.service.shutdown();
38
+ }
29
39
  }
30
40
  /**
31
41
  * Execute the observation hook
@@ -73,7 +83,7 @@ export class ObservationHook {
73
83
  */
74
84
  export function createObservationHook(cwd) {
75
85
  const service = new MemoryHookService(cwd);
76
- return new ObservationHook(service);
86
+ return new ObservationHook(service, true);
77
87
  }
78
88
  export default ObservationHook;
79
89
  //# sourceMappingURL=observation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/hooks/observation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,WAAW;IACX,UAAU;IACV,qBAAqB;IACrB,mBAAmB;CACpB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAClB,OAAO,CAAoB;IAEnC,YAAY,OAA0B;QACpC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAA0B;QACtC,IAAI,CAAC;YACH,uBAAuB;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE,IAAI;iBACrB,CAAC;YACJ,CAAC;YAED,sBAAsB;YACtB,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE,IAAI;iBACrB,CAAC;YACJ,CAAC;YAED,qBAAqB;YACrB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAEhC,wCAAwC;YACxC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAE/D,wBAAwB;YACxB,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACjC,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,GAAG,CACV,CAAC;YAEF,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,IAAI;aACrB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2CAA2C;YAC3C,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;YAEnE,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,IAAI;gBACpB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,IAAI,eAAe,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"observation.js","sourceRoot":"","sources":["../../src/hooks/observation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAEjD;;GAEG;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC;IACzB,WAAW;IACX,UAAU;IACV,qBAAqB;IACrB,mBAAmB;CACpB,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,OAAO,eAAe;IAClB,OAAO,CAAoB;IAC3B,WAAW,CAAU;IAE7B,YAAY,OAA0B,EAAE,WAAW,GAAG,KAAK;QACzD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAA0B;QACtC,IAAI,CAAC;YACH,uBAAuB;YACvB,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE,IAAI;iBACrB,CAAC;YACJ,CAAC;YAED,sBAAsB;YACtB,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnC,OAAO;oBACL,QAAQ,EAAE,IAAI;oBACd,cAAc,EAAE,IAAI;iBACrB,CAAC;YACJ,CAAC;YAED,qBAAqB;YACrB,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAEhC,wCAAwC;YACxC,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAE/D,wBAAwB;YACxB,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CACjC,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,OAAO,EACb,KAAK,CAAC,QAAQ,EACd,KAAK,CAAC,SAAS,EACf,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,GAAG,CACV,CAAC;YAEF,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,IAAI;aACrB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,2CAA2C;YAC3C,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,CAAC,CAAC;YAEnE,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,cAAc,EAAE,IAAI;gBACpB,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;aAChE,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,OAAO,GAAG,IAAI,iBAAiB,CAAC,GAAG,CAAC,CAAC;IAC3C,OAAO,IAAI,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,eAAe,eAAe,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Memory Hook Service
3
3
  *
4
4
  * Lightweight service for hooks to store/retrieve memory.
5
- * Direct SQLite access without HTTP worker (simpler than claude-mem).
5
+ * Direct SQLite access without HTTP worker.
6
6
  *
7
7
  * @module @agentkits/memory/hooks/service
8
8
  */
@@ -31,7 +31,6 @@ export interface MemoryHookServiceConfig {
31
31
  export declare class MemoryHookService {
32
32
  private config;
33
33
  private db;
34
- private SQL;
35
34
  private initialized;
36
35
  private dbPath;
37
36
  constructor(cwd: string, config?: Partial<MemoryHookServiceConfig>);
@@ -39,10 +38,6 @@ export declare class MemoryHookService {
39
38
  * Initialize the service
40
39
  */
41
40
  initialize(): Promise<void>;
42
- /**
43
- * Persist database to disk
44
- */
45
- persist(): Promise<void>;
46
41
  /**
47
42
  * Shutdown the service
48
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/hooks/service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,EACL,WAAW,EACX,aAAa,EACb,aAAa,EAKd,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAEhB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IAEnB,gDAAgD;IAChD,sBAAsB,EAAE,MAAM,CAAC;IAE/B,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAE3B,6CAA6C;IAC7C,eAAe,EAAE,MAAM,CAAC;CACzB;AAUD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,EAAE,CAA8B;IACxC,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAS;gBAEX,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,uBAAuB,CAAM;IAKtE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCjC;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ9B;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAW/B;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA6B9F;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAgBnD;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAazE;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAsBrF;;OAEG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,OAAO,EACrB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,WAAW,CAAC;IA2CvB;;OAEG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAoB3F;;OAEG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAsBxF;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBzD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2D7B;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAsD3C,iBAAiB;IAM/B,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,kBAAkB;CAS3B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAEhE;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/hooks/service.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,EACL,WAAW,EACX,aAAa,EACb,aAAa,EAKd,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAEhB,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAC;IAEnB,gDAAgD;IAChD,sBAAsB,EAAE,MAAM,CAAC;IAE/B,4CAA4C;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAE3B,6CAA6C;IAC7C,eAAe,EAAE,MAAM,CAAC;CACzB;AAUD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,EAAE,CAA+B;IACzC,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,MAAM,CAAS;gBAEX,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,OAAO,CAAC,uBAAuB,CAAM;IAKtE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBjC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAU/B;;OAEG;IACG,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IA2B9F;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAYnD;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzE;;OAEG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAerF;;OAEG;IACG,gBAAgB,CACpB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,OAAO,EAClB,YAAY,EAAE,OAAO,EACrB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,WAAW,CAAC;IAyCvB;;OAEG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAa3F;;OAEG;IACG,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAexF;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAuBzD;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2D7B;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAsD3C,iBAAiB;IAM/B,OAAO,CAAC,YAAY;IAuCpB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,gBAAgB;IAexB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,kBAAkB;CAS3B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAEhE;AAED,eAAe,iBAAiB,CAAC"}