@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,481 @@
1
+ /**
2
+ * Project-Scoped Memory Types
3
+ *
4
+ * Type definitions for the AgentKits memory system.
5
+ * Designed for project-level memory stored in .claude/memory/
6
+ *
7
+ * @module @agentkits/memory/types
8
+ */
9
+ /**
10
+ * Memory entry type classification (matches existing .claude/memory/*.md structure)
11
+ */
12
+ export type MemoryType = 'episodic' | 'semantic' | 'procedural' | 'working' | 'cache';
13
+ /**
14
+ * Access level for memory entries
15
+ */
16
+ export type AccessLevel = 'private' | 'project' | 'shared';
17
+ /**
18
+ * Distance metrics for vector similarity search
19
+ */
20
+ export type DistanceMetric = 'cosine' | 'euclidean' | 'dot' | 'manhattan';
21
+ /**
22
+ * Core memory entry structure with optional vector embedding
23
+ */
24
+ export interface MemoryEntry {
25
+ /** Unique identifier */
26
+ id: string;
27
+ /** Human-readable key for retrieval (e.g., 'active-context', 'auth-pattern') */
28
+ key: string;
29
+ /** Actual content of the memory */
30
+ content: string;
31
+ /** Vector embedding for semantic search (Float32Array for efficiency) */
32
+ embedding?: Float32Array;
33
+ /** Type of memory */
34
+ type: MemoryType;
35
+ /** Namespace for organization (maps to old .md file categories) */
36
+ namespace: string;
37
+ /** Tags for categorization and filtering */
38
+ tags: string[];
39
+ /** Additional metadata */
40
+ metadata: Record<string, unknown>;
41
+ /** Session ID that created this entry */
42
+ sessionId?: string;
43
+ /** Owner ID for multi-user scenarios */
44
+ ownerId?: string;
45
+ /** Access level */
46
+ accessLevel: AccessLevel;
47
+ /** Creation timestamp */
48
+ createdAt: number;
49
+ /** Last update timestamp */
50
+ updatedAt: number;
51
+ /** Expiration timestamp (optional) */
52
+ expiresAt?: number;
53
+ /** Version number for optimistic locking */
54
+ version: number;
55
+ /** References to other memory entries */
56
+ references: string[];
57
+ /** Access count for usage tracking */
58
+ accessCount: number;
59
+ /** Last access timestamp */
60
+ lastAccessedAt: number;
61
+ }
62
+ /**
63
+ * Input for creating a new memory entry
64
+ */
65
+ export interface MemoryEntryInput {
66
+ key: string;
67
+ content: string;
68
+ type?: MemoryType;
69
+ namespace?: string;
70
+ tags?: string[];
71
+ metadata?: Record<string, unknown>;
72
+ sessionId?: string;
73
+ accessLevel?: AccessLevel;
74
+ expiresAt?: number;
75
+ references?: string[];
76
+ }
77
+ /**
78
+ * Partial update for a memory entry
79
+ */
80
+ export interface MemoryEntryUpdate {
81
+ content?: string;
82
+ tags?: string[];
83
+ metadata?: Record<string, unknown>;
84
+ accessLevel?: AccessLevel;
85
+ expiresAt?: number;
86
+ references?: string[];
87
+ }
88
+ /**
89
+ * Query type for memory retrieval
90
+ */
91
+ export type QueryType = 'semantic' | 'exact' | 'prefix' | 'tag' | 'hybrid';
92
+ /**
93
+ * Memory query specification
94
+ */
95
+ export interface MemoryQuery {
96
+ /** Type of query to perform */
97
+ type: QueryType;
98
+ /** Content for semantic search (will be embedded) */
99
+ content?: string;
100
+ /** Pre-computed embedding for semantic search */
101
+ embedding?: Float32Array;
102
+ /** Exact key to match */
103
+ key?: string;
104
+ /** Key prefix to match */
105
+ keyPrefix?: string;
106
+ /** Namespace filter */
107
+ namespace?: string;
108
+ /** Tag filters (entries must have all specified tags) */
109
+ tags?: string[];
110
+ /** Memory type filter */
111
+ memoryType?: MemoryType;
112
+ /** Session ID filter */
113
+ sessionId?: string;
114
+ /** Owner ID filter */
115
+ ownerId?: string;
116
+ /** Access level filter */
117
+ accessLevel?: AccessLevel;
118
+ /** Metadata filters */
119
+ metadata?: Record<string, unknown>;
120
+ /** Time range filters */
121
+ createdAfter?: number;
122
+ createdBefore?: number;
123
+ updatedAfter?: number;
124
+ updatedBefore?: number;
125
+ /** Maximum number of results */
126
+ limit: number;
127
+ /** Offset for pagination */
128
+ offset?: number;
129
+ /** Minimum similarity threshold (0-1) for semantic search */
130
+ threshold?: number;
131
+ /** Include expired entries */
132
+ includeExpired?: boolean;
133
+ /** Distance metric for semantic search */
134
+ distanceMetric?: DistanceMetric;
135
+ }
136
+ /**
137
+ * Search result with similarity score
138
+ */
139
+ export interface SearchResult {
140
+ /** The memory entry */
141
+ entry: MemoryEntry;
142
+ /** Similarity score (0-1, higher is better) */
143
+ score: number;
144
+ /** Distance from query vector */
145
+ distance: number;
146
+ }
147
+ /**
148
+ * Search options for vector search
149
+ */
150
+ export interface SearchOptions {
151
+ /** Number of results to return */
152
+ k: number;
153
+ /** Minimum similarity threshold (0-1) */
154
+ threshold?: number;
155
+ /** Distance metric */
156
+ metric?: DistanceMetric;
157
+ /** Additional filters to apply post-search */
158
+ filters?: Partial<MemoryQuery>;
159
+ }
160
+ /**
161
+ * Quantization type
162
+ */
163
+ export type QuantizationType = 'scalar' | 'product' | 'binary' | 'none';
164
+ /**
165
+ * Quantization configuration for vector compression
166
+ */
167
+ export interface QuantizationConfig {
168
+ /** Enable quantization */
169
+ enabled: boolean;
170
+ /** Number of bits per dimension (default: 8) */
171
+ bits: number;
172
+ /** Quantization method */
173
+ method: 'scalar' | 'product';
174
+ /** Quantization type (alternative to method) */
175
+ type?: QuantizationType;
176
+ /** Number of subquantizers for product quantization */
177
+ subquantizers?: number;
178
+ }
179
+ /**
180
+ * HNSW index configuration
181
+ */
182
+ export interface HNSWConfig {
183
+ /** Vector dimensions (e.g., 384 for local models, 1536 for OpenAI) */
184
+ dimensions: number;
185
+ /** Maximum number of connections per layer (default: 16) */
186
+ M: number;
187
+ /** Size of the dynamic candidate list during construction (default: 200) */
188
+ efConstruction: number;
189
+ /** Maximum elements the index can hold */
190
+ maxElements: number;
191
+ /** Distance metric */
192
+ metric: DistanceMetric;
193
+ /** Quantization configuration */
194
+ quantization?: QuantizationConfig;
195
+ }
196
+ /**
197
+ * HNSW index statistics
198
+ */
199
+ export interface HNSWStats {
200
+ /** Total number of vectors in the index */
201
+ vectorCount: number;
202
+ /** Memory usage in bytes */
203
+ memoryUsage: number;
204
+ /** Average search time in milliseconds */
205
+ avgSearchTime: number;
206
+ /** Index build time in milliseconds */
207
+ buildTime: number;
208
+ /** Compression ratio if quantization is enabled */
209
+ compressionRatio?: number;
210
+ }
211
+ /**
212
+ * Memory backend interface for storage and retrieval
213
+ */
214
+ export interface IMemoryBackend {
215
+ /** Initialize the backend */
216
+ initialize(): Promise<void>;
217
+ /** Shutdown the backend */
218
+ shutdown(): Promise<void>;
219
+ /** Store a memory entry */
220
+ store(entry: MemoryEntry): Promise<void>;
221
+ /** Retrieve a memory entry by ID */
222
+ get(id: string): Promise<MemoryEntry | null>;
223
+ /** Retrieve a memory entry by key within a namespace */
224
+ getByKey(namespace: string, key: string): Promise<MemoryEntry | null>;
225
+ /** Update a memory entry */
226
+ update(id: string, update: MemoryEntryUpdate): Promise<MemoryEntry | null>;
227
+ /** Delete a memory entry */
228
+ delete(id: string): Promise<boolean>;
229
+ /** Query memory entries */
230
+ query(query: MemoryQuery): Promise<MemoryEntry[]>;
231
+ /** Semantic vector search */
232
+ search(embedding: Float32Array, options: SearchOptions): Promise<SearchResult[]>;
233
+ /** Bulk insert entries */
234
+ bulkInsert(entries: MemoryEntry[]): Promise<void>;
235
+ /** Bulk delete entries */
236
+ bulkDelete(ids: string[]): Promise<number>;
237
+ /** Get entry count */
238
+ count(namespace?: string): Promise<number>;
239
+ /** List all namespaces */
240
+ listNamespaces(): Promise<string[]>;
241
+ /** Clear all entries in a namespace */
242
+ clearNamespace(namespace: string): Promise<number>;
243
+ /** Get backend statistics */
244
+ getStats(): Promise<BackendStats>;
245
+ /** Perform health check */
246
+ healthCheck(): Promise<HealthCheckResult>;
247
+ }
248
+ /**
249
+ * Backend statistics
250
+ */
251
+ export interface BackendStats {
252
+ /** Total number of entries */
253
+ totalEntries: number;
254
+ /** Entries by namespace */
255
+ entriesByNamespace: Record<string, number>;
256
+ /** Entries by type */
257
+ entriesByType: Record<MemoryType, number>;
258
+ /** Total memory usage in bytes */
259
+ memoryUsage: number;
260
+ /** HNSW index statistics */
261
+ hnswStats?: HNSWStats;
262
+ /** Cache statistics */
263
+ cacheStats?: CacheStats;
264
+ /** Average query time in milliseconds */
265
+ avgQueryTime: number;
266
+ /** Average search time in milliseconds */
267
+ avgSearchTime: number;
268
+ }
269
+ /**
270
+ * Health check result
271
+ */
272
+ export interface HealthCheckResult {
273
+ /** Overall health status */
274
+ status: 'healthy' | 'degraded' | 'unhealthy';
275
+ /** Individual component health */
276
+ components: {
277
+ storage: ComponentHealth;
278
+ index: ComponentHealth;
279
+ cache: ComponentHealth;
280
+ };
281
+ /** Health check timestamp */
282
+ timestamp: number;
283
+ /** Any issues detected */
284
+ issues: string[];
285
+ /** Recommendations for improvement */
286
+ recommendations: string[];
287
+ }
288
+ /**
289
+ * Individual component health status
290
+ */
291
+ export interface ComponentHealth {
292
+ status: 'healthy' | 'degraded' | 'unhealthy';
293
+ latency: number;
294
+ message?: string;
295
+ }
296
+ /**
297
+ * Cache configuration
298
+ */
299
+ export interface CacheConfig {
300
+ /** Maximum number of entries in the cache */
301
+ maxSize: number;
302
+ /** Default TTL in milliseconds */
303
+ ttl: number;
304
+ /** Enable LRU eviction */
305
+ lruEnabled: boolean;
306
+ /** Maximum memory usage in bytes */
307
+ maxMemory?: number;
308
+ /** Enable write-through caching (write to backend immediately) */
309
+ writeThrough?: boolean;
310
+ }
311
+ /**
312
+ * Cache statistics
313
+ */
314
+ export interface CacheStats {
315
+ /** Number of entries in cache */
316
+ size: number;
317
+ /** Cache hit rate (0-1) */
318
+ hitRate: number;
319
+ /** Total cache hits */
320
+ hits: number;
321
+ /** Total cache misses */
322
+ misses: number;
323
+ /** Total evictions */
324
+ evictions: number;
325
+ /** Memory usage in bytes */
326
+ memoryUsage: number;
327
+ }
328
+ /**
329
+ * Cached entry wrapper
330
+ */
331
+ export interface CachedEntry<T> {
332
+ /** The cached data */
333
+ data: T;
334
+ /** When the entry was cached */
335
+ cachedAt: number;
336
+ /** When the entry expires */
337
+ expiresAt: number;
338
+ /** Last access timestamp */
339
+ lastAccessedAt: number;
340
+ /** Access count */
341
+ accessCount: number;
342
+ }
343
+ /**
344
+ * Migration source type
345
+ */
346
+ export type MigrationSource = 'markdown' | 'json' | 'sqlite';
347
+ /**
348
+ * Migration configuration
349
+ */
350
+ export interface MigrationConfig {
351
+ /** Source backend type */
352
+ source: MigrationSource;
353
+ /** Source path or connection string */
354
+ sourcePath: string;
355
+ /** Batch size for migration */
356
+ batchSize: number;
357
+ /** Generate embeddings during migration */
358
+ generateEmbeddings: boolean;
359
+ /** Validate data during migration */
360
+ validateData: boolean;
361
+ /** Continue on error */
362
+ continueOnError: boolean;
363
+ /** Namespace mapping */
364
+ namespaceMapping?: Record<string, string>;
365
+ /** Type mapping */
366
+ typeMapping?: Record<string, MemoryType>;
367
+ }
368
+ /**
369
+ * Migration progress
370
+ */
371
+ export interface MigrationProgress {
372
+ /** Total entries to migrate */
373
+ total: number;
374
+ /** Entries migrated so far */
375
+ migrated: number;
376
+ /** Entries failed */
377
+ failed: number;
378
+ /** Entries skipped */
379
+ skipped: number;
380
+ /** Progress percentage (0-100) */
381
+ percentage: number;
382
+ /** Errors encountered */
383
+ errors: MigrationError[];
384
+ }
385
+ /**
386
+ * Migration error
387
+ */
388
+ export interface MigrationError {
389
+ /** Entry ID or key that failed */
390
+ entryId: string;
391
+ /** Error message */
392
+ message: string;
393
+ /** Error code */
394
+ code: string;
395
+ /** Whether the error is recoverable */
396
+ recoverable: boolean;
397
+ }
398
+ /**
399
+ * Migration result
400
+ */
401
+ export interface MigrationResult {
402
+ /** Whether migration completed successfully */
403
+ success: boolean;
404
+ /** Final progress state */
405
+ progress: MigrationProgress;
406
+ /** Total time taken in milliseconds */
407
+ duration: number;
408
+ /** Summary message */
409
+ summary: string;
410
+ }
411
+ /**
412
+ * Session information for tracking Claude Code sessions
413
+ */
414
+ export interface SessionInfo {
415
+ /** Session ID */
416
+ id: string;
417
+ /** Session start time */
418
+ startedAt: number;
419
+ /** Session end time (if ended) */
420
+ endedAt?: number;
421
+ /** Summary of work done */
422
+ summary?: string;
423
+ /** Status */
424
+ status: 'active' | 'completed' | 'abandoned';
425
+ /** Last checkpoint */
426
+ lastCheckpoint?: string;
427
+ }
428
+ /**
429
+ * Memory event types for index operations
430
+ */
431
+ export type MemoryEventType = 'insert' | 'update' | 'delete' | 'search' | 'rebuild' | 'resize';
432
+ /**
433
+ * Memory event for tracking index operations
434
+ */
435
+ export interface MemoryEvent {
436
+ /** Event type */
437
+ type: MemoryEventType;
438
+ /** Entry ID (if applicable) */
439
+ entryId?: string;
440
+ /** Timestamp */
441
+ timestamp: number;
442
+ /** Additional event data */
443
+ data?: Record<string, unknown>;
444
+ }
445
+ /**
446
+ * Handler function for memory events
447
+ */
448
+ export type MemoryEventHandler = (event: MemoryEvent) => void | Promise<void>;
449
+ /**
450
+ * Embedding generator function type
451
+ */
452
+ export type EmbeddingGenerator = (content: string) => Promise<Float32Array>;
453
+ /**
454
+ * Generates a unique memory ID
455
+ */
456
+ export declare function generateMemoryId(): string;
457
+ /**
458
+ * Generates a unique session ID
459
+ */
460
+ export declare function generateSessionId(): string;
461
+ /**
462
+ * Creates a default memory entry
463
+ */
464
+ export declare function createDefaultEntry(input: MemoryEntryInput): MemoryEntry;
465
+ /**
466
+ * Default namespaces matching existing .claude/memory/*.md structure
467
+ */
468
+ export declare const DEFAULT_NAMESPACES: {
469
+ readonly CONTEXT: "context";
470
+ readonly ACTIVE: "active-context";
471
+ readonly SESSION: "session-state";
472
+ readonly PROGRESS: "progress";
473
+ readonly PATTERNS: "patterns";
474
+ readonly DECISIONS: "decisions";
475
+ readonly ERRORS: "errors";
476
+ };
477
+ /**
478
+ * Maps namespace to memory type
479
+ */
480
+ export declare const NAMESPACE_TYPE_MAP: Record<string, MemoryType>;
481
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Project-Scoped Memory Types
3
+ *
4
+ * Type definitions for the AgentKits memory system.
5
+ * Designed for project-level memory stored in .claude/memory/
6
+ *
7
+ * @module @agentkits/memory/types
8
+ */
9
+ /**
10
+ * Generates a unique memory ID
11
+ */
12
+ export function generateMemoryId() {
13
+ const timestamp = Date.now().toString(36);
14
+ const random = Math.random().toString(36).substring(2, 10);
15
+ return `mem_${timestamp}_${random}`;
16
+ }
17
+ /**
18
+ * Generates a unique session ID
19
+ */
20
+ export function generateSessionId() {
21
+ const timestamp = Date.now().toString(36);
22
+ const random = Math.random().toString(36).substring(2, 6);
23
+ return `ses_${timestamp}_${random}`;
24
+ }
25
+ /**
26
+ * Creates a default memory entry
27
+ */
28
+ export function createDefaultEntry(input) {
29
+ const now = Date.now();
30
+ return {
31
+ id: generateMemoryId(),
32
+ key: input.key,
33
+ content: input.content,
34
+ type: input.type || 'semantic',
35
+ namespace: input.namespace || 'default',
36
+ tags: input.tags || [],
37
+ metadata: input.metadata || {},
38
+ sessionId: input.sessionId,
39
+ accessLevel: input.accessLevel || 'project',
40
+ createdAt: now,
41
+ updatedAt: now,
42
+ expiresAt: input.expiresAt,
43
+ version: 1,
44
+ references: input.references || [],
45
+ accessCount: 0,
46
+ lastAccessedAt: now,
47
+ };
48
+ }
49
+ /**
50
+ * Default namespaces matching existing .claude/memory/*.md structure
51
+ */
52
+ export const DEFAULT_NAMESPACES = {
53
+ CONTEXT: 'context', // project-context.md
54
+ ACTIVE: 'active-context', // active-context.md
55
+ SESSION: 'session-state', // session-state.md
56
+ PROGRESS: 'progress', // progress.md
57
+ PATTERNS: 'patterns', // patterns.md
58
+ DECISIONS: 'decisions', // decisions.md
59
+ ERRORS: 'errors', // errors.md
60
+ };
61
+ /**
62
+ * Maps namespace to memory type
63
+ */
64
+ export const NAMESPACE_TYPE_MAP = {
65
+ [DEFAULT_NAMESPACES.CONTEXT]: 'semantic',
66
+ [DEFAULT_NAMESPACES.ACTIVE]: 'episodic',
67
+ [DEFAULT_NAMESPACES.SESSION]: 'episodic',
68
+ [DEFAULT_NAMESPACES.PROGRESS]: 'episodic',
69
+ [DEFAULT_NAMESPACES.PATTERNS]: 'semantic',
70
+ [DEFAULT_NAMESPACES.DECISIONS]: 'procedural',
71
+ [DEFAULT_NAMESPACES.ERRORS]: 'procedural',
72
+ };
73
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgoBH;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,OAAO,OAAO,SAAS,IAAI,MAAM,EAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1D,OAAO,OAAO,SAAS,IAAI,MAAM,EAAE,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAuB;IACxD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,OAAO;QACL,EAAE,EAAE,gBAAgB,EAAE;QACtB,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,UAAU;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI,SAAS;QACvC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QACtB,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,EAAE;QAC9B,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,WAAW,EAAE,KAAK,CAAC,WAAW,IAAI,SAAS;QAC3C,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,KAAK,CAAC,UAAU,IAAI,EAAE;QAClC,WAAW,EAAE,CAAC;QACd,cAAc,EAAE,GAAG;KACpB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,OAAO,EAAE,SAAS,EAAY,qBAAqB;IACnD,MAAM,EAAE,gBAAgB,EAAM,oBAAoB;IAClD,OAAO,EAAE,eAAe,EAAM,mBAAmB;IACjD,QAAQ,EAAE,UAAU,EAAU,cAAc;IAC5C,QAAQ,EAAE,UAAU,EAAU,cAAc;IAC5C,SAAS,EAAE,WAAW,EAAQ,eAAe;IAC7C,MAAM,EAAE,QAAQ,EAAc,YAAY;CAClC,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAA+B;IAC5D,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,UAAU;IACxC,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,UAAU;IACvC,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,UAAU;IACxC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,UAAU;IACzC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,UAAU;IACzC,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,YAAY;IAC5C,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,YAAY;CAC1C,CAAC"}
package/hooks.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "_comment": "REFERENCE ONLY - These hooks are integrated into .claude/hooks/*.sh scripts",
3
+ "_usage": "The shell scripts call 'npx agentkits-memory-hook <command>' for database integration",
4
+ "hooks": {
5
+ "SessionStart": [
6
+ {
7
+ "matcher": ".*",
8
+ "hooks": [
9
+ {
10
+ "type": "command",
11
+ "command": "npx agentkits-memory-hook context",
12
+ "_note": "Called by .claude/hooks/session-start.sh"
13
+ }
14
+ ]
15
+ }
16
+ ],
17
+ "Stop": [
18
+ {
19
+ "matcher": ".*",
20
+ "hooks": [
21
+ {
22
+ "type": "command",
23
+ "command": "npx agentkits-memory-hook summarize",
24
+ "_note": "Called by .claude/hooks/on-stop.sh"
25
+ }
26
+ ]
27
+ }
28
+ ]
29
+ },
30
+ "cliCommands": {
31
+ "agentkits-memory-hook": {
32
+ "context": "Load context from database on session start",
33
+ "session-init": "Initialize session in database",
34
+ "observation": "Save tool observations to database",
35
+ "summarize": "Create session summary on stop"
36
+ },
37
+ "agentkits-memory-save": {
38
+ "description": "Save entry to database",
39
+ "usage": "--content=X --category=X --tags=X --importance=X --project-dir=X"
40
+ },
41
+ "agentkits-memory-viewer": {
42
+ "description": "View database contents",
43
+ "usage": "--stats | --list | --namespace=X | --json | --export"
44
+ }
45
+ }
46
+ }
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "@aitytech/agentkits-memory",
3
+ "version": "1.0.0",
4
+ "type": "module",
5
+ "description": "Project-scoped memory system for AgentKits with SQLite + HNSW vector search",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "exports": {
9
+ ".": "./dist/index.js",
10
+ "./hooks": "./dist/hooks/index.js",
11
+ "./mcp": "./dist/mcp/index.js",
12
+ "./*": "./dist/*.js"
13
+ },
14
+ "bin": {
15
+ "agentkits-memory-hook": "./dist/hooks/cli.js",
16
+ "agentkits-memory-server": "./dist/mcp/server.js",
17
+ "agentkits-memory-viewer": "./dist/cli/viewer.js",
18
+ "agentkits-memory-save": "./dist/cli/save.js",
19
+ "agentkits-memory-setup": "./dist/cli/setup.js"
20
+ },
21
+ "scripts": {
22
+ "build": "tsc",
23
+ "test": "vitest run",
24
+ "test:coverage": "vitest run --coverage",
25
+ "typecheck": "tsc --noEmit",
26
+ "lint": "echo \"Memory lint pending\" && exit 0",
27
+ "clean": "rm -rf dist",
28
+ "prepublishOnly": "npm run build"
29
+ },
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/aitytech/agentkits-memory"
33
+ },
34
+ "homepage": "https://agentkits.net",
35
+ "author": "AityTech",
36
+ "publishConfig": {
37
+ "access": "public"
38
+ },
39
+ "dependencies": {
40
+ "sql.js": "^1.10.3"
41
+ },
42
+ "optionalDependencies": {
43
+ "better-sqlite3": "^11.0.0"
44
+ },
45
+ "devDependencies": {
46
+ "@types/better-sqlite3": "^7.6.11",
47
+ "@types/node": "^20.0.0",
48
+ "@vitest/coverage-v8": "^4.0.18",
49
+ "typescript": "^5.3.0",
50
+ "vitest": "^4.0.16"
51
+ },
52
+ "files": [
53
+ "dist",
54
+ "src",
55
+ "hooks.json"
56
+ ],
57
+ "keywords": [
58
+ "agentkits",
59
+ "memory",
60
+ "sqlite",
61
+ "vector-search",
62
+ "hnsw",
63
+ "claude-code",
64
+ "hooks"
65
+ ],
66
+ "license": "MIT"
67
+ }