@aitytech/agentkits-memory 1.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 (116) hide show
  1. package/README.md +250 -0
  2. package/dist/cache-manager.d.ts +134 -0
  3. package/dist/cache-manager.d.ts.map +1 -0
  4. package/dist/cache-manager.js +407 -0
  5. package/dist/cache-manager.js.map +1 -0
  6. package/dist/cli/save.d.ts +20 -0
  7. package/dist/cli/save.d.ts.map +1 -0
  8. package/dist/cli/save.js +94 -0
  9. package/dist/cli/save.js.map +1 -0
  10. package/dist/cli/setup.d.ts +18 -0
  11. package/dist/cli/setup.d.ts.map +1 -0
  12. package/dist/cli/setup.js +163 -0
  13. package/dist/cli/setup.js.map +1 -0
  14. package/dist/cli/viewer.d.ts +21 -0
  15. package/dist/cli/viewer.d.ts.map +1 -0
  16. package/dist/cli/viewer.js +182 -0
  17. package/dist/cli/viewer.js.map +1 -0
  18. package/dist/hnsw-index.d.ts +111 -0
  19. package/dist/hnsw-index.d.ts.map +1 -0
  20. package/dist/hnsw-index.js +781 -0
  21. package/dist/hnsw-index.js.map +1 -0
  22. package/dist/hooks/cli.d.ts +20 -0
  23. package/dist/hooks/cli.d.ts.map +1 -0
  24. package/dist/hooks/cli.js +102 -0
  25. package/dist/hooks/cli.js.map +1 -0
  26. package/dist/hooks/context.d.ts +31 -0
  27. package/dist/hooks/context.d.ts.map +1 -0
  28. package/dist/hooks/context.js +64 -0
  29. package/dist/hooks/context.js.map +1 -0
  30. package/dist/hooks/index.d.ts +16 -0
  31. package/dist/hooks/index.d.ts.map +1 -0
  32. package/dist/hooks/index.js +20 -0
  33. package/dist/hooks/index.js.map +1 -0
  34. package/dist/hooks/observation.d.ts +30 -0
  35. package/dist/hooks/observation.d.ts.map +1 -0
  36. package/dist/hooks/observation.js +79 -0
  37. package/dist/hooks/observation.js.map +1 -0
  38. package/dist/hooks/service.d.ts +102 -0
  39. package/dist/hooks/service.d.ts.map +1 -0
  40. package/dist/hooks/service.js +454 -0
  41. package/dist/hooks/service.js.map +1 -0
  42. package/dist/hooks/session-init.d.ts +30 -0
  43. package/dist/hooks/session-init.d.ts.map +1 -0
  44. package/dist/hooks/session-init.js +54 -0
  45. package/dist/hooks/session-init.js.map +1 -0
  46. package/dist/hooks/summarize.d.ts +30 -0
  47. package/dist/hooks/summarize.d.ts.map +1 -0
  48. package/dist/hooks/summarize.js +74 -0
  49. package/dist/hooks/summarize.js.map +1 -0
  50. package/dist/hooks/types.d.ts +193 -0
  51. package/dist/hooks/types.d.ts.map +1 -0
  52. package/dist/hooks/types.js +137 -0
  53. package/dist/hooks/types.js.map +1 -0
  54. package/dist/index.d.ts +173 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +564 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/mcp/index.d.ts +9 -0
  59. package/dist/mcp/index.d.ts.map +1 -0
  60. package/dist/mcp/index.js +9 -0
  61. package/dist/mcp/index.js.map +1 -0
  62. package/dist/mcp/server.d.ts +22 -0
  63. package/dist/mcp/server.d.ts.map +1 -0
  64. package/dist/mcp/server.js +368 -0
  65. package/dist/mcp/server.js.map +1 -0
  66. package/dist/mcp/tools.d.ts +14 -0
  67. package/dist/mcp/tools.d.ts.map +1 -0
  68. package/dist/mcp/tools.js +110 -0
  69. package/dist/mcp/tools.js.map +1 -0
  70. package/dist/mcp/types.d.ts +100 -0
  71. package/dist/mcp/types.d.ts.map +1 -0
  72. package/dist/mcp/types.js +9 -0
  73. package/dist/mcp/types.js.map +1 -0
  74. package/dist/migration.d.ts +77 -0
  75. package/dist/migration.d.ts.map +1 -0
  76. package/dist/migration.js +457 -0
  77. package/dist/migration.js.map +1 -0
  78. package/dist/sqljs-backend.d.ts +128 -0
  79. package/dist/sqljs-backend.d.ts.map +1 -0
  80. package/dist/sqljs-backend.js +623 -0
  81. package/dist/sqljs-backend.js.map +1 -0
  82. package/dist/types.d.ts +481 -0
  83. package/dist/types.d.ts.map +1 -0
  84. package/dist/types.js +73 -0
  85. package/dist/types.js.map +1 -0
  86. package/hooks.json +46 -0
  87. package/package.json +67 -0
  88. package/src/__tests__/index.test.ts +407 -0
  89. package/src/__tests__/sqljs-backend.test.ts +410 -0
  90. package/src/cache-manager.ts +515 -0
  91. package/src/cli/save.ts +109 -0
  92. package/src/cli/setup.ts +203 -0
  93. package/src/cli/viewer.ts +218 -0
  94. package/src/hnsw-index.ts +1013 -0
  95. package/src/hooks/__tests__/handlers.test.ts +298 -0
  96. package/src/hooks/__tests__/integration.test.ts +431 -0
  97. package/src/hooks/__tests__/service.test.ts +487 -0
  98. package/src/hooks/__tests__/types.test.ts +341 -0
  99. package/src/hooks/cli.ts +121 -0
  100. package/src/hooks/context.ts +77 -0
  101. package/src/hooks/index.ts +23 -0
  102. package/src/hooks/observation.ts +102 -0
  103. package/src/hooks/service.ts +582 -0
  104. package/src/hooks/session-init.ts +70 -0
  105. package/src/hooks/summarize.ts +89 -0
  106. package/src/hooks/types.ts +365 -0
  107. package/src/index.ts +755 -0
  108. package/src/mcp/__tests__/server.test.ts +181 -0
  109. package/src/mcp/index.ts +9 -0
  110. package/src/mcp/server.ts +441 -0
  111. package/src/mcp/tools.ts +113 -0
  112. package/src/mcp/types.ts +109 -0
  113. package/src/migration.ts +574 -0
  114. package/src/sql.js.d.ts +70 -0
  115. package/src/sqljs-backend.ts +789 -0
  116. package/src/types.ts +715 -0
@@ -0,0 +1,407 @@
1
+ /**
2
+ * Cache Manager
3
+ *
4
+ * High-performance LRU cache with TTL support, memory pressure handling,
5
+ * and write-through caching for the unified memory system.
6
+ *
7
+ * @module @agentkits/memory/cache-manager
8
+ */
9
+ import { EventEmitter } from 'node:events';
10
+ /**
11
+ * High-performance LRU Cache with TTL support
12
+ *
13
+ * Features:
14
+ * - O(1) get, set, delete operations
15
+ * - LRU eviction policy
16
+ * - TTL-based expiration
17
+ * - Memory pressure handling
18
+ * - Write-through caching support
19
+ * - Performance statistics
20
+ */
21
+ export class CacheManager extends EventEmitter {
22
+ config;
23
+ cache = new Map();
24
+ head = null;
25
+ tail = null;
26
+ currentMemory = 0;
27
+ // Statistics
28
+ stats = {
29
+ hits: 0,
30
+ misses: 0,
31
+ evictions: 0,
32
+ expirations: 0,
33
+ writes: 0,
34
+ };
35
+ // Cleanup timer
36
+ cleanupInterval = null;
37
+ constructor(config = {}) {
38
+ super();
39
+ this.config = this.mergeConfig(config);
40
+ this.startCleanupTimer();
41
+ }
42
+ /**
43
+ * Get a value from the cache
44
+ */
45
+ get(key) {
46
+ const node = this.cache.get(key);
47
+ if (!node) {
48
+ this.stats.misses++;
49
+ this.emit('cache:miss', { key });
50
+ return null;
51
+ }
52
+ // Check if expired
53
+ if (this.isExpired(node.value)) {
54
+ this.delete(key);
55
+ this.stats.misses++;
56
+ this.stats.expirations++;
57
+ this.emit('cache:expired', { key });
58
+ return null;
59
+ }
60
+ // Update access time and count
61
+ node.value.lastAccessedAt = Date.now();
62
+ node.value.accessCount++;
63
+ // Move to front (most recently used)
64
+ this.moveToFront(node);
65
+ this.stats.hits++;
66
+ this.emit('cache:hit', { key });
67
+ return node.value.data;
68
+ }
69
+ /**
70
+ * Set a value in the cache
71
+ */
72
+ set(key, data, ttl) {
73
+ const now = Date.now();
74
+ const entryTtl = ttl || this.config.ttl;
75
+ // Check if key already exists
76
+ const existingNode = this.cache.get(key);
77
+ if (existingNode) {
78
+ // Update existing entry
79
+ existingNode.value.data = data;
80
+ existingNode.value.cachedAt = now;
81
+ existingNode.value.expiresAt = now + entryTtl;
82
+ existingNode.value.lastAccessedAt = now;
83
+ this.moveToFront(existingNode);
84
+ this.stats.writes++;
85
+ return;
86
+ }
87
+ // Calculate memory for new entry
88
+ const entryMemory = this.estimateSize(data);
89
+ // Evict entries if needed for memory pressure
90
+ if (this.config.maxMemory) {
91
+ while (this.currentMemory + entryMemory > this.config.maxMemory &&
92
+ this.cache.size > 0) {
93
+ this.evictLRU();
94
+ }
95
+ }
96
+ // Evict entries if at capacity
97
+ while (this.cache.size >= this.config.maxSize) {
98
+ this.evictLRU();
99
+ }
100
+ // Create new node
101
+ const cachedEntry = {
102
+ data,
103
+ cachedAt: now,
104
+ expiresAt: now + entryTtl,
105
+ lastAccessedAt: now,
106
+ accessCount: 0,
107
+ };
108
+ const node = {
109
+ key,
110
+ value: cachedEntry,
111
+ prev: null,
112
+ next: null,
113
+ };
114
+ // Add to cache
115
+ this.cache.set(key, node);
116
+ this.addToFront(node);
117
+ this.currentMemory += entryMemory;
118
+ this.stats.writes++;
119
+ this.emit('cache:set', { key, ttl: entryTtl });
120
+ }
121
+ /**
122
+ * Delete a value from the cache
123
+ */
124
+ delete(key) {
125
+ const node = this.cache.get(key);
126
+ if (!node) {
127
+ return false;
128
+ }
129
+ this.removeNode(node);
130
+ this.cache.delete(key);
131
+ this.currentMemory -= this.estimateSize(node.value.data);
132
+ this.emit('cache:delete', { key });
133
+ return true;
134
+ }
135
+ /**
136
+ * Check if a key exists in the cache (without affecting LRU order)
137
+ */
138
+ has(key) {
139
+ const node = this.cache.get(key);
140
+ if (!node)
141
+ return false;
142
+ if (this.isExpired(node.value)) {
143
+ this.delete(key);
144
+ return false;
145
+ }
146
+ return true;
147
+ }
148
+ /**
149
+ * Clear all entries from the cache
150
+ */
151
+ clear() {
152
+ this.cache.clear();
153
+ this.head = null;
154
+ this.tail = null;
155
+ this.currentMemory = 0;
156
+ this.emit('cache:cleared', { previousSize: this.cache.size });
157
+ }
158
+ /**
159
+ * Get cache statistics
160
+ */
161
+ getStats() {
162
+ const total = this.stats.hits + this.stats.misses;
163
+ return {
164
+ size: this.cache.size,
165
+ hitRate: total > 0 ? this.stats.hits / total : 0,
166
+ hits: this.stats.hits,
167
+ misses: this.stats.misses,
168
+ evictions: this.stats.evictions,
169
+ memoryUsage: this.currentMemory,
170
+ };
171
+ }
172
+ /**
173
+ * Get all keys in the cache
174
+ */
175
+ keys() {
176
+ return Array.from(this.cache.keys());
177
+ }
178
+ /**
179
+ * Get the size of the cache
180
+ */
181
+ get size() {
182
+ return this.cache.size;
183
+ }
184
+ /**
185
+ * Prefetch multiple keys in a single batch
186
+ */
187
+ async prefetch(keys, loader, ttl) {
188
+ const missing = keys.filter((key) => !this.has(key));
189
+ if (missing.length === 0) {
190
+ return;
191
+ }
192
+ const data = await loader(missing);
193
+ for (const [key, value] of data) {
194
+ this.set(key, value, ttl);
195
+ }
196
+ this.emit('cache:prefetched', { keys: missing.length });
197
+ }
198
+ /**
199
+ * Get or set pattern - get from cache or load and cache
200
+ */
201
+ async getOrSet(key, loader, ttl) {
202
+ const cached = this.get(key);
203
+ if (cached !== null) {
204
+ return cached;
205
+ }
206
+ const data = await loader();
207
+ this.set(key, data, ttl);
208
+ return data;
209
+ }
210
+ /**
211
+ * Warm the cache with initial data
212
+ */
213
+ warmUp(entries) {
214
+ for (const entry of entries) {
215
+ this.set(entry.key, entry.data, entry.ttl);
216
+ }
217
+ this.emit('cache:warmedUp', { count: entries.length });
218
+ }
219
+ /**
220
+ * Invalidate entries matching a pattern
221
+ */
222
+ invalidatePattern(pattern) {
223
+ const regex = typeof pattern === 'string' ? new RegExp(pattern) : pattern;
224
+ let invalidated = 0;
225
+ for (const key of this.cache.keys()) {
226
+ if (regex.test(key)) {
227
+ this.delete(key);
228
+ invalidated++;
229
+ }
230
+ }
231
+ this.emit('cache:invalidated', { pattern: pattern.toString(), count: invalidated });
232
+ return invalidated;
233
+ }
234
+ /**
235
+ * Shutdown the cache manager
236
+ */
237
+ shutdown() {
238
+ if (this.cleanupInterval) {
239
+ clearInterval(this.cleanupInterval);
240
+ this.cleanupInterval = null;
241
+ }
242
+ this.clear();
243
+ this.emit('cache:shutdown');
244
+ }
245
+ // ===== Private Methods =====
246
+ mergeConfig(config) {
247
+ return {
248
+ maxSize: config.maxSize || 10000,
249
+ ttl: config.ttl || 300000, // 5 minutes default
250
+ lruEnabled: config.lruEnabled !== false,
251
+ maxMemory: config.maxMemory,
252
+ writeThrough: config.writeThrough || false,
253
+ };
254
+ }
255
+ isExpired(entry) {
256
+ return Date.now() > entry.expiresAt;
257
+ }
258
+ estimateSize(data) {
259
+ try {
260
+ return JSON.stringify(data).length * 2; // Rough UTF-16 estimate
261
+ }
262
+ catch {
263
+ return 1000; // Default for non-serializable objects
264
+ }
265
+ }
266
+ addToFront(node) {
267
+ node.prev = null;
268
+ node.next = this.head;
269
+ if (this.head) {
270
+ this.head.prev = node;
271
+ }
272
+ this.head = node;
273
+ if (!this.tail) {
274
+ this.tail = node;
275
+ }
276
+ }
277
+ removeNode(node) {
278
+ if (node.prev) {
279
+ node.prev.next = node.next;
280
+ }
281
+ else {
282
+ this.head = node.next;
283
+ }
284
+ if (node.next) {
285
+ node.next.prev = node.prev;
286
+ }
287
+ else {
288
+ this.tail = node.prev;
289
+ }
290
+ }
291
+ moveToFront(node) {
292
+ if (node === this.head)
293
+ return;
294
+ this.removeNode(node);
295
+ this.addToFront(node);
296
+ }
297
+ evictLRU() {
298
+ if (!this.tail)
299
+ return;
300
+ const evictedKey = this.tail.key;
301
+ const evictedSize = this.estimateSize(this.tail.value.data);
302
+ this.removeNode(this.tail);
303
+ this.cache.delete(evictedKey);
304
+ this.currentMemory -= evictedSize;
305
+ this.stats.evictions++;
306
+ this.emit('cache:eviction', { key: evictedKey });
307
+ }
308
+ startCleanupTimer() {
309
+ // Clean up expired entries every minute
310
+ this.cleanupInterval = setInterval(() => {
311
+ this.cleanupExpired();
312
+ }, 60000);
313
+ }
314
+ cleanupExpired() {
315
+ const now = Date.now();
316
+ let cleaned = 0;
317
+ for (const [key, node] of this.cache) {
318
+ if (node.value.expiresAt < now) {
319
+ this.delete(key);
320
+ cleaned++;
321
+ }
322
+ }
323
+ if (cleaned > 0) {
324
+ this.emit('cache:cleanup', { expired: cleaned });
325
+ }
326
+ }
327
+ }
328
+ /**
329
+ * Multi-layer cache with L1 (memory) and L2 (storage) tiers
330
+ */
331
+ export class TieredCacheManager extends EventEmitter {
332
+ l1Cache;
333
+ l2Loader = null;
334
+ l2Writer = null;
335
+ constructor(l1Config = {}, l2Options) {
336
+ super();
337
+ this.l1Cache = new CacheManager(l1Config);
338
+ if (l2Options) {
339
+ this.l2Loader = l2Options.loader;
340
+ this.l2Writer = l2Options.writer ?? null;
341
+ }
342
+ // Forward L1 events
343
+ this.l1Cache.on('cache:hit', (data) => this.emit('l1:hit', data));
344
+ this.l1Cache.on('cache:miss', (data) => this.emit('l1:miss', data));
345
+ this.l1Cache.on('cache:eviction', (data) => this.emit('l1:eviction', data));
346
+ }
347
+ /**
348
+ * Get from tiered cache
349
+ */
350
+ async get(key) {
351
+ // Try L1 first
352
+ const l1Result = this.l1Cache.get(key);
353
+ if (l1Result !== null) {
354
+ return l1Result;
355
+ }
356
+ // Try L2 if available
357
+ if (this.l2Loader) {
358
+ const l2Result = await this.l2Loader(key);
359
+ if (l2Result !== null) {
360
+ // Promote to L1
361
+ this.l1Cache.set(key, l2Result);
362
+ this.emit('l2:hit', { key });
363
+ return l2Result;
364
+ }
365
+ this.emit('l2:miss', { key });
366
+ }
367
+ return null;
368
+ }
369
+ /**
370
+ * Set in tiered cache
371
+ */
372
+ async set(key, value, ttl) {
373
+ // Write to L1
374
+ this.l1Cache.set(key, value, ttl);
375
+ // Write-through to L2 if configured
376
+ if (this.l2Writer) {
377
+ await this.l2Writer(key, value);
378
+ this.emit('l2:write', { key });
379
+ }
380
+ }
381
+ /**
382
+ * Delete from tiered cache
383
+ */
384
+ delete(key) {
385
+ return this.l1Cache.delete(key);
386
+ }
387
+ /**
388
+ * Get L1 cache statistics
389
+ */
390
+ getStats() {
391
+ return this.l1Cache.getStats();
392
+ }
393
+ /**
394
+ * Clear L1 cache
395
+ */
396
+ clear() {
397
+ this.l1Cache.clear();
398
+ }
399
+ /**
400
+ * Shutdown tiered cache
401
+ */
402
+ shutdown() {
403
+ this.l1Cache.shutdown();
404
+ }
405
+ }
406
+ export default CacheManager;
407
+ //# sourceMappingURL=cache-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.js","sourceRoot":"","sources":["../src/cache-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * AgentKits Memory Save CLI
4
+ *
5
+ * Simple CLI to save entries to the memory database.
6
+ *
7
+ * Usage:
8
+ * npx agentkits-memory-save --content "..." [options]
9
+ *
10
+ * Options:
11
+ * --content=X Content to save (required)
12
+ * --category=X Category: decision, pattern, error, context, observation (default: context)
13
+ * --tags=X Comma-separated tags
14
+ * --importance=X low, medium, high, critical (default: medium)
15
+ * --project-dir=X Project directory (default: cwd or CLAUDE_PROJECT_DIR)
16
+ *
17
+ * @module @agentkits/memory/cli/save
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=save.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save.d.ts","sourceRoot":"","sources":["../../src/cli/save.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG"}
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * AgentKits Memory Save CLI
4
+ *
5
+ * Simple CLI to save entries to the memory database.
6
+ *
7
+ * Usage:
8
+ * npx agentkits-memory-save --content "..." [options]
9
+ *
10
+ * Options:
11
+ * --content=X Content to save (required)
12
+ * --category=X Category: decision, pattern, error, context, observation (default: context)
13
+ * --tags=X Comma-separated tags
14
+ * --importance=X low, medium, high, critical (default: medium)
15
+ * --project-dir=X Project directory (default: cwd or CLAUDE_PROJECT_DIR)
16
+ *
17
+ * @module @agentkits/memory/cli/save
18
+ */
19
+ import { ProjectMemoryService, DEFAULT_NAMESPACES } from '../index.js';
20
+ const args = process.argv.slice(2);
21
+ const CATEGORY_TO_NAMESPACE = {
22
+ decision: DEFAULT_NAMESPACES.DECISIONS,
23
+ pattern: DEFAULT_NAMESPACES.PATTERNS,
24
+ error: DEFAULT_NAMESPACES.ERRORS,
25
+ context: DEFAULT_NAMESPACES.CONTEXT,
26
+ observation: DEFAULT_NAMESPACES.ACTIVE,
27
+ };
28
+ const IMPORTANCE_MAP = {
29
+ low: 0.3,
30
+ medium: 0.5,
31
+ high: 0.7,
32
+ critical: 1.0,
33
+ };
34
+ function parseArgs() {
35
+ const parsed = {};
36
+ for (const arg of args) {
37
+ if (arg.startsWith('--')) {
38
+ const eqIndex = arg.indexOf('=');
39
+ if (eqIndex > 0) {
40
+ const key = arg.slice(2, eqIndex);
41
+ const value = arg.slice(eqIndex + 1);
42
+ parsed[key] = value;
43
+ }
44
+ }
45
+ }
46
+ return parsed;
47
+ }
48
+ async function main() {
49
+ const options = parseArgs();
50
+ const content = options.content;
51
+ if (!content) {
52
+ console.error('Error: --content is required');
53
+ process.exit(1);
54
+ }
55
+ const category = options.category || 'context';
56
+ const namespace = CATEGORY_TO_NAMESPACE[category] || DEFAULT_NAMESPACES.CONTEXT;
57
+ const importance = IMPORTANCE_MAP[options.importance || 'medium'] || 0.5;
58
+ const projectDir = options['project-dir'] || process.env.CLAUDE_PROJECT_DIR || process.cwd();
59
+ const tags = options.tags
60
+ ? options.tags.split(',').map((t) => t.trim())
61
+ : [];
62
+ try {
63
+ const service = new ProjectMemoryService({
64
+ baseDir: `${projectDir}/.claude/memory`,
65
+ dbFilename: 'memory.db',
66
+ });
67
+ await service.initialize();
68
+ const key = `${category}-${Date.now()}`;
69
+ const input = {
70
+ key,
71
+ content,
72
+ type: 'episodic',
73
+ namespace,
74
+ tags,
75
+ metadata: {
76
+ category,
77
+ importance,
78
+ source: 'cli',
79
+ },
80
+ };
81
+ await service.storeEntry(input);
82
+ await service.shutdown();
83
+ console.log(JSON.stringify({ success: true, key, namespace }));
84
+ }
85
+ catch (error) {
86
+ console.error(JSON.stringify({
87
+ success: false,
88
+ error: error instanceof Error ? error.message : String(error),
89
+ }));
90
+ process.exit(1);
91
+ }
92
+ }
93
+ main();
94
+ //# sourceMappingURL=save.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"save.js","sourceRoot":"","sources":["../../src/cli/save.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * AgentKits Memory Setup CLI
4
+ *
5
+ * Sets up memory hooks in a project's .claude/settings.json
6
+ *
7
+ * Usage:
8
+ * npx agentkits-memory-setup [options]
9
+ *
10
+ * Options:
11
+ * --project-dir=X Project directory (default: cwd)
12
+ * --force Overwrite existing hooks
13
+ * --json Output result as JSON
14
+ *
15
+ * @module @agentkits/memory/cli/setup
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}