family-ai-agent 1.0.6 → 1.0.8

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 (149) hide show
  1. package/.letta/settings.local.json +3 -0
  2. package/dist/cli/index.js +1 -1
  3. package/dist/database/adapters/base-adapter.d.ts +81 -0
  4. package/dist/database/adapters/base-adapter.d.ts.map +1 -0
  5. package/dist/database/adapters/base-adapter.js +105 -0
  6. package/dist/database/adapters/base-adapter.js.map +1 -0
  7. package/dist/database/adapters/index.d.ts +49 -0
  8. package/dist/database/adapters/index.d.ts.map +1 -0
  9. package/dist/database/adapters/index.js +200 -0
  10. package/dist/database/adapters/index.js.map +1 -0
  11. package/dist/database/adapters/postgres-adapter.d.ts +75 -0
  12. package/dist/database/adapters/postgres-adapter.d.ts.map +1 -0
  13. package/dist/database/adapters/postgres-adapter.js +225 -0
  14. package/dist/database/adapters/postgres-adapter.js.map +1 -0
  15. package/dist/database/adapters/sqlite-adapter.d.ts +72 -0
  16. package/dist/database/adapters/sqlite-adapter.d.ts.map +1 -0
  17. package/dist/database/adapters/sqlite-adapter.js +368 -0
  18. package/dist/database/adapters/sqlite-adapter.js.map +1 -0
  19. package/dist/database/cache/cache-keys.d.ts +180 -0
  20. package/dist/database/cache/cache-keys.d.ts.map +1 -0
  21. package/dist/database/cache/cache-keys.js +107 -0
  22. package/dist/database/cache/cache-keys.js.map +1 -0
  23. package/dist/database/cache/index.d.ts +24 -0
  24. package/dist/database/cache/index.d.ts.map +1 -0
  25. package/dist/database/cache/index.js +34 -0
  26. package/dist/database/cache/index.js.map +1 -0
  27. package/dist/database/cache/query-cache.d.ts +67 -0
  28. package/dist/database/cache/query-cache.d.ts.map +1 -0
  29. package/dist/database/cache/query-cache.js +177 -0
  30. package/dist/database/cache/query-cache.js.map +1 -0
  31. package/dist/database/client.d.ts +63 -4
  32. package/dist/database/client.d.ts.map +1 -1
  33. package/dist/database/client.js +147 -59
  34. package/dist/database/client.js.map +1 -1
  35. package/dist/database/db-config.d.ts +104 -0
  36. package/dist/database/db-config.d.ts.map +1 -0
  37. package/dist/database/db-config.js +167 -0
  38. package/dist/database/db-config.js.map +1 -0
  39. package/dist/database/drizzle/index.d.ts +42 -0
  40. package/dist/database/drizzle/index.d.ts.map +1 -0
  41. package/dist/database/drizzle/index.js +48 -0
  42. package/dist/database/drizzle/index.js.map +1 -0
  43. package/dist/database/drizzle/schema/audit.d.ts +533 -0
  44. package/dist/database/drizzle/schema/audit.d.ts.map +1 -0
  45. package/dist/database/drizzle/schema/audit.js +71 -0
  46. package/dist/database/drizzle/schema/audit.js.map +1 -0
  47. package/dist/database/drizzle/schema/checkpoints.d.ts +665 -0
  48. package/dist/database/drizzle/schema/checkpoints.d.ts.map +1 -0
  49. package/dist/database/drizzle/schema/checkpoints.js +110 -0
  50. package/dist/database/drizzle/schema/checkpoints.js.map +1 -0
  51. package/dist/database/drizzle/schema/conversations.d.ts +449 -0
  52. package/dist/database/drizzle/schema/conversations.d.ts.map +1 -0
  53. package/dist/database/drizzle/schema/conversations.js +91 -0
  54. package/dist/database/drizzle/schema/conversations.js.map +1 -0
  55. package/dist/database/drizzle/schema/documents.d.ts +600 -0
  56. package/dist/database/drizzle/schema/documents.d.ts.map +1 -0
  57. package/dist/database/drizzle/schema/documents.js +100 -0
  58. package/dist/database/drizzle/schema/documents.js.map +1 -0
  59. package/dist/database/drizzle/schema/index.d.ts +3084 -0
  60. package/dist/database/drizzle/schema/index.d.ts.map +1 -0
  61. package/dist/database/drizzle/schema/index.js +46 -0
  62. package/dist/database/drizzle/schema/index.js.map +1 -0
  63. package/dist/database/drizzle/schema/memories.d.ts +435 -0
  64. package/dist/database/drizzle/schema/memories.d.ts.map +1 -0
  65. package/dist/database/drizzle/schema/memories.js +73 -0
  66. package/dist/database/drizzle/schema/memories.js.map +1 -0
  67. package/dist/database/drizzle/schema/tasks.d.ts +565 -0
  68. package/dist/database/drizzle/schema/tasks.d.ts.map +1 -0
  69. package/dist/database/drizzle/schema/tasks.js +84 -0
  70. package/dist/database/drizzle/schema/tasks.js.map +1 -0
  71. package/dist/database/health/circuit-breaker.d.ts +81 -0
  72. package/dist/database/health/circuit-breaker.d.ts.map +1 -0
  73. package/dist/database/health/circuit-breaker.js +184 -0
  74. package/dist/database/health/circuit-breaker.js.map +1 -0
  75. package/dist/database/health/health-monitor.d.ts +69 -0
  76. package/dist/database/health/health-monitor.d.ts.map +1 -0
  77. package/dist/database/health/health-monitor.js +174 -0
  78. package/dist/database/health/health-monitor.js.map +1 -0
  79. package/dist/database/health/index.d.ts +27 -0
  80. package/dist/database/health/index.d.ts.map +1 -0
  81. package/dist/database/health/index.js +23 -0
  82. package/dist/database/health/index.js.map +1 -0
  83. package/dist/database/index.d.ts +16 -0
  84. package/dist/database/index.d.ts.map +1 -0
  85. package/dist/database/index.js +41 -0
  86. package/dist/database/index.js.map +1 -0
  87. package/dist/database/migrations/index.d.ts +34 -0
  88. package/dist/database/migrations/index.d.ts.map +1 -0
  89. package/dist/database/migrations/index.js +45 -0
  90. package/dist/database/migrations/index.js.map +1 -0
  91. package/dist/database/migrations/migrator.d.ts +77 -0
  92. package/dist/database/migrations/migrator.d.ts.map +1 -0
  93. package/dist/database/migrations/migrator.js +258 -0
  94. package/dist/database/migrations/migrator.js.map +1 -0
  95. package/dist/database/migrations/versions/001_initial.d.ts +9 -0
  96. package/dist/database/migrations/versions/001_initial.d.ts.map +1 -0
  97. package/dist/database/migrations/versions/001_initial.js +183 -0
  98. package/dist/database/migrations/versions/001_initial.js.map +1 -0
  99. package/dist/database/types.d.ts +255 -0
  100. package/dist/database/types.d.ts.map +1 -0
  101. package/dist/database/types.js +8 -0
  102. package/dist/database/types.js.map +1 -0
  103. package/dist/database/vector/embedding-cache.d.ts +92 -0
  104. package/dist/database/vector/embedding-cache.d.ts.map +1 -0
  105. package/dist/database/vector/embedding-cache.js +185 -0
  106. package/dist/database/vector/embedding-cache.js.map +1 -0
  107. package/dist/database/vector/hnsw-index.d.ts +111 -0
  108. package/dist/database/vector/hnsw-index.d.ts.map +1 -0
  109. package/dist/database/vector/hnsw-index.js +337 -0
  110. package/dist/database/vector/hnsw-index.js.map +1 -0
  111. package/dist/database/vector/index.d.ts +75 -0
  112. package/dist/database/vector/index.d.ts.map +1 -0
  113. package/dist/database/vector/index.js +213 -0
  114. package/dist/database/vector/index.js.map +1 -0
  115. package/dist/database/vector/similarity.d.ts +67 -0
  116. package/dist/database/vector/similarity.d.ts.map +1 -0
  117. package/dist/database/vector/similarity.js +176 -0
  118. package/dist/database/vector/similarity.js.map +1 -0
  119. package/package.json +6 -3
  120. package/src/cli/index.ts +1 -1
  121. package/src/database/adapters/base-adapter.ts +171 -0
  122. package/src/database/adapters/index.ts +224 -0
  123. package/src/database/adapters/postgres-adapter.ts +285 -0
  124. package/src/database/adapters/sqlite-adapter.ts +420 -0
  125. package/src/database/cache/cache-keys.ts +150 -0
  126. package/src/database/cache/index.ts +44 -0
  127. package/src/database/cache/query-cache.ts +213 -0
  128. package/src/database/client.ts +166 -64
  129. package/src/database/db-config.ts +194 -0
  130. package/src/database/drizzle/index.ts +66 -0
  131. package/src/database/drizzle/schema/audit.ts +127 -0
  132. package/src/database/drizzle/schema/checkpoints.ts +164 -0
  133. package/src/database/drizzle/schema/conversations.ts +138 -0
  134. package/src/database/drizzle/schema/documents.ts +157 -0
  135. package/src/database/drizzle/schema/index.ts +139 -0
  136. package/src/database/drizzle/schema/memories.ts +127 -0
  137. package/src/database/drizzle/schema/tasks.ts +129 -0
  138. package/src/database/health/circuit-breaker.ts +214 -0
  139. package/src/database/health/health-monitor.ts +224 -0
  140. package/src/database/health/index.ts +41 -0
  141. package/src/database/index.ts +157 -0
  142. package/src/database/migrations/index.ts +52 -0
  143. package/src/database/migrations/migrator.ts +325 -0
  144. package/src/database/migrations/versions/001_initial.ts +198 -0
  145. package/src/database/types.ts +324 -0
  146. package/src/database/vector/embedding-cache.ts +234 -0
  147. package/src/database/vector/hnsw-index.ts +452 -0
  148. package/src/database/vector/index.ts +292 -0
  149. package/src/database/vector/similarity.ts +198 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite-adapter.js","sourceRoot":"","sources":["../../../src/database/adapters/sqlite-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,180 @@
1
+ /**
2
+ * Cache Key Generation
3
+ *
4
+ * Utilities for generating consistent cache keys.
5
+ */
6
+ /**
7
+ * Generate a cache key from operation, table, and parameters
8
+ */
9
+ export declare function generateCacheKey(operation: string, table: string, params: Record<string, unknown>): string;
10
+ /**
11
+ * Cache key generators for common operations
12
+ */
13
+ export declare const cacheKeys: {
14
+ /**
15
+ * Get conversation by thread ID
16
+ */
17
+ conversation: (threadId: string) => string;
18
+ /**
19
+ * Get conversation by ID
20
+ */
21
+ conversationById: (id: string) => string;
22
+ /**
23
+ * List messages for a conversation
24
+ */
25
+ messages: (conversationId: string, limit: number, offset: number) => string;
26
+ /**
27
+ * Get document by ID
28
+ */
29
+ document: (id: string) => string;
30
+ /**
31
+ * List documents for a user
32
+ */
33
+ userDocuments: (userId: string, limit: number, offset: number) => string;
34
+ /**
35
+ * Get memory by ID
36
+ */
37
+ memory: (id: string) => string;
38
+ /**
39
+ * List recent memories for a user
40
+ */
41
+ userMemories: (userId: string, limit: number) => string;
42
+ /**
43
+ * Vector search results
44
+ */
45
+ vectorSearch: (embeddingHash: string, options: Record<string, unknown>) => string;
46
+ /**
47
+ * Task by ID
48
+ */
49
+ task: (id: string) => string;
50
+ /**
51
+ * List tasks for a user
52
+ */
53
+ userTasks: (userId: string, status: string, limit: number) => string;
54
+ };
55
+ /**
56
+ * Invalidation patterns for write operations
57
+ */
58
+ export declare const invalidationPatterns: {
59
+ /**
60
+ * Invalidate all conversation-related cache
61
+ */
62
+ conversation: (conversationId: string) => RegExp;
63
+ /**
64
+ * Invalidate all message-related cache for a conversation
65
+ */
66
+ messages: (conversationId: string) => RegExp;
67
+ /**
68
+ * Invalidate all document-related cache
69
+ */
70
+ document: (documentId: string) => RegExp;
71
+ /**
72
+ * Invalidate user's document list
73
+ */
74
+ userDocuments: (userId: string) => string;
75
+ /**
76
+ * Invalidate all memory-related cache
77
+ */
78
+ memory: (memoryId: string) => RegExp;
79
+ /**
80
+ * Invalidate user's memory list
81
+ */
82
+ userMemories: (userId: string) => string;
83
+ /**
84
+ * Invalidate all vector search results
85
+ */
86
+ vectorSearchAll: () => string;
87
+ /**
88
+ * Invalidate all task-related cache
89
+ */
90
+ task: (taskId: string) => RegExp;
91
+ /**
92
+ * Invalidate user's task list
93
+ */
94
+ userTasks: (userId: string) => string;
95
+ };
96
+ declare const _default: {
97
+ generateCacheKey: typeof generateCacheKey;
98
+ cacheKeys: {
99
+ /**
100
+ * Get conversation by thread ID
101
+ */
102
+ conversation: (threadId: string) => string;
103
+ /**
104
+ * Get conversation by ID
105
+ */
106
+ conversationById: (id: string) => string;
107
+ /**
108
+ * List messages for a conversation
109
+ */
110
+ messages: (conversationId: string, limit: number, offset: number) => string;
111
+ /**
112
+ * Get document by ID
113
+ */
114
+ document: (id: string) => string;
115
+ /**
116
+ * List documents for a user
117
+ */
118
+ userDocuments: (userId: string, limit: number, offset: number) => string;
119
+ /**
120
+ * Get memory by ID
121
+ */
122
+ memory: (id: string) => string;
123
+ /**
124
+ * List recent memories for a user
125
+ */
126
+ userMemories: (userId: string, limit: number) => string;
127
+ /**
128
+ * Vector search results
129
+ */
130
+ vectorSearch: (embeddingHash: string, options: Record<string, unknown>) => string;
131
+ /**
132
+ * Task by ID
133
+ */
134
+ task: (id: string) => string;
135
+ /**
136
+ * List tasks for a user
137
+ */
138
+ userTasks: (userId: string, status: string, limit: number) => string;
139
+ };
140
+ invalidationPatterns: {
141
+ /**
142
+ * Invalidate all conversation-related cache
143
+ */
144
+ conversation: (conversationId: string) => RegExp;
145
+ /**
146
+ * Invalidate all message-related cache for a conversation
147
+ */
148
+ messages: (conversationId: string) => RegExp;
149
+ /**
150
+ * Invalidate all document-related cache
151
+ */
152
+ document: (documentId: string) => RegExp;
153
+ /**
154
+ * Invalidate user's document list
155
+ */
156
+ userDocuments: (userId: string) => string;
157
+ /**
158
+ * Invalidate all memory-related cache
159
+ */
160
+ memory: (memoryId: string) => RegExp;
161
+ /**
162
+ * Invalidate user's memory list
163
+ */
164
+ userMemories: (userId: string) => string;
165
+ /**
166
+ * Invalidate all vector search results
167
+ */
168
+ vectorSearchAll: () => string;
169
+ /**
170
+ * Invalidate all task-related cache
171
+ */
172
+ task: (taskId: string) => RegExp;
173
+ /**
174
+ * Invalidate user's task list
175
+ */
176
+ userTasks: (userId: string) => string;
177
+ };
178
+ };
179
+ export default _default;
180
+ //# sourceMappingURL=cache-keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-keys.d.ts","sourceRoot":"","sources":["../../../src/database/cache/cache-keys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAOR;AAED;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB;;OAEG;6BACsB,MAAM,KAAG,MAAM;IAGxC;;OAEG;2BACoB,MAAM,KAAG,MAAM;IAGtC;;OAEG;+BACwB,MAAM,SAAS,MAAM,UAAU,MAAM,KAAG,MAAM;IAGzE;;OAEG;mBACY,MAAM,KAAG,MAAM;IAG9B;;OAEG;4BACqB,MAAM,SAAS,MAAM,UAAU,MAAM,KAAG,MAAM;IAGtE;;OAEG;iBACU,MAAM,KAAG,MAAM;IAG5B;;OAEG;2BACoB,MAAM,SAAS,MAAM,KAAG,MAAM;IAGrD;;OAEG;kCAEc,MAAM,WACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,MAAM;IAGT;;OAEG;eACQ,MAAM,KAAG,MAAM;IAG1B;;OAEG;wBACiB,MAAM,UAAU,MAAM,SAAS,MAAM,KAAG,MAAM;CAEnE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;OAEG;mCAC4B,MAAM,KAAG,MAAM;IAG9C;;OAEG;+BACwB,MAAM,KAAG,MAAM;IAG1C;;OAEG;2BACoB,MAAM,KAAG,MAAM;IAGtC;;OAEG;4BACqB,MAAM,KAAG,MAAM;IAEvC;;OAEG;uBACgB,MAAM,KAAG,MAAM;IAGlC;;OAEG;2BACoB,MAAM,KAAG,MAAM;IAGtC;;OAEG;2BACkB,MAAM;IAE3B;;OAEG;mBACY,MAAM,KAAG,MAAM;IAE9B;;OAEG;wBACiB,MAAM,KAAG,MAAM;CACpC,CAAC;;;;QArHA;;WAEG;iCACsB,MAAM,KAAG,MAAM;QAGxC;;WAEG;+BACoB,MAAM,KAAG,MAAM;QAGtC;;WAEG;mCACwB,MAAM,SAAS,MAAM,UAAU,MAAM,KAAG,MAAM;QAGzE;;WAEG;uBACY,MAAM,KAAG,MAAM;QAG9B;;WAEG;gCACqB,MAAM,SAAS,MAAM,UAAU,MAAM,KAAG,MAAM;QAGtE;;WAEG;qBACU,MAAM,KAAG,MAAM;QAG5B;;WAEG;+BACoB,MAAM,SAAS,MAAM,KAAG,MAAM;QAGrD;;WAEG;sCAEc,MAAM,WACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC/B,MAAM;QAGT;;WAEG;mBACQ,MAAM,KAAG,MAAM;QAG1B;;WAEG;4BACiB,MAAM,UAAU,MAAM,SAAS,MAAM,KAAG,MAAM;;;QAQlE;;WAEG;uCAC4B,MAAM,KAAG,MAAM;QAG9C;;WAEG;mCACwB,MAAM,KAAG,MAAM;QAG1C;;WAEG;+BACoB,MAAM,KAAG,MAAM;QAGtC;;WAEG;gCACqB,MAAM,KAAG,MAAM;QAEvC;;WAEG;2BACgB,MAAM,KAAG,MAAM;QAGlC;;WAEG;+BACoB,MAAM,KAAG,MAAM;QAGtC;;WAEG;+BACkB,MAAM;QAE3B;;WAEG;uBACY,MAAM,KAAG,MAAM;QAE9B;;WAEG;4BACiB,MAAM,KAAG,MAAM;;;AAGrC,wBAIE"}
@@ -0,0 +1,107 @@
1
+ /**
2
+ * Cache Key Generation
3
+ *
4
+ * Utilities for generating consistent cache keys.
5
+ */
6
+ /**
7
+ * Generate a cache key from operation, table, and parameters
8
+ */
9
+ export function generateCacheKey(operation, table, params) {
10
+ const sortedParams = Object.keys(params)
11
+ .sort()
12
+ .map((key) => `${key}:${JSON.stringify(params[key])}`)
13
+ .join('|');
14
+ return `${operation}:${table}:${sortedParams}`;
15
+ }
16
+ /**
17
+ * Cache key generators for common operations
18
+ */
19
+ export const cacheKeys = {
20
+ /**
21
+ * Get conversation by thread ID
22
+ */
23
+ conversation: (threadId) => generateCacheKey('get', 'conversations', { threadId }),
24
+ /**
25
+ * Get conversation by ID
26
+ */
27
+ conversationById: (id) => generateCacheKey('get', 'conversations', { id }),
28
+ /**
29
+ * List messages for a conversation
30
+ */
31
+ messages: (conversationId, limit, offset) => generateCacheKey('list', 'messages', { conversationId, limit, offset }),
32
+ /**
33
+ * Get document by ID
34
+ */
35
+ document: (id) => generateCacheKey('get', 'documents', { id }),
36
+ /**
37
+ * List documents for a user
38
+ */
39
+ userDocuments: (userId, limit, offset) => generateCacheKey('list', 'documents', { userId, limit, offset }),
40
+ /**
41
+ * Get memory by ID
42
+ */
43
+ memory: (id) => generateCacheKey('get', 'long_term_memories', { id }),
44
+ /**
45
+ * List recent memories for a user
46
+ */
47
+ userMemories: (userId, limit) => generateCacheKey('list', 'long_term_memories', { userId, limit }),
48
+ /**
49
+ * Vector search results
50
+ */
51
+ vectorSearch: (embeddingHash, options) => generateCacheKey('search', 'embeddings', { hash: embeddingHash, ...options }),
52
+ /**
53
+ * Task by ID
54
+ */
55
+ task: (id) => generateCacheKey('get', 'tasks', { id }),
56
+ /**
57
+ * List tasks for a user
58
+ */
59
+ userTasks: (userId, status, limit) => generateCacheKey('list', 'tasks', { userId, status, limit }),
60
+ };
61
+ /**
62
+ * Invalidation patterns for write operations
63
+ */
64
+ export const invalidationPatterns = {
65
+ /**
66
+ * Invalidate all conversation-related cache
67
+ */
68
+ conversation: (conversationId) => new RegExp(`conversations.*${conversationId}`),
69
+ /**
70
+ * Invalidate all message-related cache for a conversation
71
+ */
72
+ messages: (conversationId) => new RegExp(`messages.*${conversationId}`),
73
+ /**
74
+ * Invalidate all document-related cache
75
+ */
76
+ document: (documentId) => new RegExp(`documents.*${documentId}`),
77
+ /**
78
+ * Invalidate user's document list
79
+ */
80
+ userDocuments: (userId) => `list:documents:userId:"${userId}"`,
81
+ /**
82
+ * Invalidate all memory-related cache
83
+ */
84
+ memory: (memoryId) => new RegExp(`long_term_memories.*${memoryId}`),
85
+ /**
86
+ * Invalidate user's memory list
87
+ */
88
+ userMemories: (userId) => `list:long_term_memories:userId:"${userId}"`,
89
+ /**
90
+ * Invalidate all vector search results
91
+ */
92
+ vectorSearchAll: () => 'search:embeddings',
93
+ /**
94
+ * Invalidate all task-related cache
95
+ */
96
+ task: (taskId) => new RegExp(`tasks.*${taskId}`),
97
+ /**
98
+ * Invalidate user's task list
99
+ */
100
+ userTasks: (userId) => `list:tasks:userId:"${userId}"`,
101
+ };
102
+ export default {
103
+ generateCacheKey,
104
+ cacheKeys,
105
+ invalidationPatterns,
106
+ };
107
+ //# sourceMappingURL=cache-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-keys.js","sourceRoot":"","sources":["../../../src/database/cache/cache-keys.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,SAAiB,EACjB,KAAa,EACb,MAA+B;IAE/B,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;SACrC,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;SACrD,IAAI,CAAC,GAAG,CAAC,CAAC;IAEb,OAAO,GAAG,SAAS,IAAI,KAAK,IAAI,YAAY,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB;;OAEG;IACH,YAAY,EAAE,CAAC,QAAgB,EAAU,EAAE,CACzC,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,QAAQ,EAAE,CAAC;IAExD;;OAEG;IACH,gBAAgB,EAAE,CAAC,EAAU,EAAU,EAAE,CACvC,gBAAgB,CAAC,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,EAAE,CAAC;IAElD;;OAEG;IACH,QAAQ,EAAE,CAAC,cAAsB,EAAE,KAAa,EAAE,MAAc,EAAU,EAAE,CAC1E,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAEzE;;OAEG;IACH,QAAQ,EAAE,CAAC,EAAU,EAAU,EAAE,CAC/B,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC;IAE9C;;OAEG;IACH,aAAa,EAAE,CAAC,MAAc,EAAE,KAAa,EAAE,MAAc,EAAU,EAAE,CACvE,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAElE;;OAEG;IACH,MAAM,EAAE,CAAC,EAAU,EAAU,EAAE,CAC7B,gBAAgB,CAAC,KAAK,EAAE,oBAAoB,EAAE,EAAE,EAAE,EAAE,CAAC;IAEvD;;OAEG;IACH,YAAY,EAAE,CAAC,MAAc,EAAE,KAAa,EAAU,EAAE,CACtD,gBAAgB,CAAC,MAAM,EAAE,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAEnE;;OAEG;IACH,YAAY,EAAE,CACZ,aAAqB,EACrB,OAAgC,EACxB,EAAE,CACV,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IAE/E;;OAEG;IACH,IAAI,EAAE,CAAC,EAAU,EAAU,EAAE,CAC3B,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;IAE1C;;OAEG;IACH,SAAS,EAAE,CAAC,MAAc,EAAE,MAAc,EAAE,KAAa,EAAU,EAAE,CACnE,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;CAC/D,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC;;OAEG;IACH,YAAY,EAAE,CAAC,cAAsB,EAAU,EAAE,CAC/C,IAAI,MAAM,CAAC,kBAAkB,cAAc,EAAE,CAAC;IAEhD;;OAEG;IACH,QAAQ,EAAE,CAAC,cAAsB,EAAU,EAAE,CAC3C,IAAI,MAAM,CAAC,aAAa,cAAc,EAAE,CAAC;IAE3C;;OAEG;IACH,QAAQ,EAAE,CAAC,UAAkB,EAAU,EAAE,CACvC,IAAI,MAAM,CAAC,cAAc,UAAU,EAAE,CAAC;IAExC;;OAEG;IACH,aAAa,EAAE,CAAC,MAAc,EAAU,EAAE,CAAC,0BAA0B,MAAM,GAAG;IAE9E;;OAEG;IACH,MAAM,EAAE,CAAC,QAAgB,EAAU,EAAE,CACnC,IAAI,MAAM,CAAC,uBAAuB,QAAQ,EAAE,CAAC;IAE/C;;OAEG;IACH,YAAY,EAAE,CAAC,MAAc,EAAU,EAAE,CACvC,mCAAmC,MAAM,GAAG;IAE9C;;OAEG;IACH,eAAe,EAAE,GAAW,EAAE,CAAC,mBAAmB;IAElD;;OAEG;IACH,IAAI,EAAE,CAAC,MAAc,EAAU,EAAE,CAAC,IAAI,MAAM,CAAC,UAAU,MAAM,EAAE,CAAC;IAEhE;;OAEG;IACH,SAAS,EAAE,CAAC,MAAc,EAAU,EAAE,CAAC,sBAAsB,MAAM,GAAG;CACvE,CAAC;AAEF,eAAe;IACb,gBAAgB;IAChB,SAAS;IACT,oBAAoB;CACrB,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Cache Layer Exports
3
+ *
4
+ * Central export for query caching functionality.
5
+ */
6
+ export { QueryCache } from './query-cache.js';
7
+ export { generateCacheKey, cacheKeys, invalidationPatterns, } from './cache-keys.js';
8
+ import { QueryCache } from './query-cache.js';
9
+ import type { QueryCacheOptions } from '../types.js';
10
+ /**
11
+ * Get the global query cache instance
12
+ */
13
+ export declare function getQueryCache(options?: Partial<QueryCacheOptions>): QueryCache;
14
+ /**
15
+ * Reset the global cache instance
16
+ */
17
+ export declare function resetQueryCache(): void;
18
+ declare const _default: {
19
+ QueryCache: typeof QueryCache;
20
+ getQueryCache: typeof getQueryCache;
21
+ resetQueryCache: typeof resetQueryCache;
22
+ };
23
+ export default _default;
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/cache/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKrD;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GAAG,UAAU,CAK9E;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAKtC;;;;;;AAED,wBAIE"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Cache Layer Exports
3
+ *
4
+ * Central export for query caching functionality.
5
+ */
6
+ export { QueryCache } from './query-cache.js';
7
+ export { generateCacheKey, cacheKeys, invalidationPatterns, } from './cache-keys.js';
8
+ import { QueryCache } from './query-cache.js';
9
+ // Singleton cache instance
10
+ let cacheInstance = null;
11
+ /**
12
+ * Get the global query cache instance
13
+ */
14
+ export function getQueryCache(options) {
15
+ if (!cacheInstance) {
16
+ cacheInstance = new QueryCache(options);
17
+ }
18
+ return cacheInstance;
19
+ }
20
+ /**
21
+ * Reset the global cache instance
22
+ */
23
+ export function resetQueryCache() {
24
+ if (cacheInstance) {
25
+ cacheInstance.clear();
26
+ cacheInstance = null;
27
+ }
28
+ }
29
+ export default {
30
+ QueryCache,
31
+ getQueryCache,
32
+ resetQueryCache,
33
+ };
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/database/cache/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,2BAA2B;AAC3B,IAAI,aAAa,GAAsB,IAAI,CAAC;AAE5C;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAoC;IAChE,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,aAAa,GAAG,IAAI,UAAU,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,aAAa,EAAE,CAAC;QAClB,aAAa,CAAC,KAAK,EAAE,CAAC;QACtB,aAAa,GAAG,IAAI,CAAC;IACvB,CAAC;AACH,CAAC;AAED,eAAe;IACb,UAAU;IACV,aAAa;IACb,eAAe;CAChB,CAAC"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Query Cache
3
+ *
4
+ * LRU cache for database query results.
5
+ * Improves performance by avoiding redundant queries.
6
+ */
7
+ import type { CacheStats, QueryCacheOptions } from '../types.js';
8
+ /**
9
+ * LRU query cache
10
+ */
11
+ export declare class QueryCache {
12
+ private cache;
13
+ private options;
14
+ private hitCount;
15
+ private missCount;
16
+ constructor(options?: Partial<QueryCacheOptions>);
17
+ /**
18
+ * Get value from cache
19
+ */
20
+ get<T>(key: string): T | undefined;
21
+ /**
22
+ * Set value in cache
23
+ */
24
+ set<T>(key: string, value: T, ttlMs?: number): void;
25
+ /**
26
+ * Check if key exists (without updating access)
27
+ */
28
+ has(key: string): boolean;
29
+ /**
30
+ * Delete key from cache
31
+ */
32
+ delete(key: string): boolean;
33
+ /**
34
+ * Invalidate entries matching a pattern
35
+ */
36
+ invalidate(pattern: string | RegExp): number;
37
+ /**
38
+ * Clear all entries
39
+ */
40
+ clear(): void;
41
+ /**
42
+ * Evict least recently used entry
43
+ */
44
+ private evictLRU;
45
+ /**
46
+ * Remove expired entries
47
+ */
48
+ prune(): number;
49
+ /**
50
+ * Get cache statistics
51
+ */
52
+ getStats(): CacheStats;
53
+ /**
54
+ * Get cache size
55
+ */
56
+ get size(): number;
57
+ /**
58
+ * Reset statistics
59
+ */
60
+ resetStats(): void;
61
+ /**
62
+ * Get or set pattern - fetch from cache or execute function and cache result
63
+ */
64
+ getOrSet<T>(key: string, fn: () => Promise<T>, ttlMs?: number): Promise<T>;
65
+ }
66
+ export default QueryCache;
67
+ //# sourceMappingURL=query-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-cache.d.ts","sourceRoot":"","sources":["../../../src/database/cache/query-cache.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAc,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAa7E;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,KAAK,CAA+C;IAC5D,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAa;IAC7B,OAAO,CAAC,SAAS,CAAa;gBAElB,OAAO,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAIpD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAwBlC;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAiBnD;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAUzB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAI5B;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM;IAqB5C;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,OAAO,CAAC,QAAQ;IAOhB;;OAEG;IACH,KAAK,IAAI,MAAM;IAkBf;;OAEG;IACH,QAAQ,IAAI,UAAU;IAYtB;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;OAEG;IACG,QAAQ,CAAC,CAAC,EACd,GAAG,EAAE,MAAM,EACX,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC;CAUd;AAED,eAAe,UAAU,CAAC"}
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Query Cache
3
+ *
4
+ * LRU cache for database query results.
5
+ * Improves performance by avoiding redundant queries.
6
+ */
7
+ import { createLogger } from '../../utils/logger.js';
8
+ const logger = createLogger('QueryCache');
9
+ /**
10
+ * Default cache options
11
+ */
12
+ const DEFAULT_OPTIONS = {
13
+ maxSize: 1000,
14
+ defaultTtlMs: 300000, // 5 minutes
15
+ };
16
+ /**
17
+ * LRU query cache
18
+ */
19
+ export class QueryCache {
20
+ cache = new Map();
21
+ options;
22
+ hitCount = 0;
23
+ missCount = 0;
24
+ constructor(options = {}) {
25
+ this.options = { ...DEFAULT_OPTIONS, ...options };
26
+ }
27
+ /**
28
+ * Get value from cache
29
+ */
30
+ get(key) {
31
+ const entry = this.cache.get(key);
32
+ if (!entry) {
33
+ this.missCount++;
34
+ return undefined;
35
+ }
36
+ // Check expiration
37
+ if (Date.now() > entry.expiresAt) {
38
+ this.cache.delete(key);
39
+ this.missCount++;
40
+ return undefined;
41
+ }
42
+ // Update access metadata and move to end for LRU
43
+ entry.hits++;
44
+ this.cache.delete(key);
45
+ this.cache.set(key, entry);
46
+ this.hitCount++;
47
+ return entry.value;
48
+ }
49
+ /**
50
+ * Set value in cache
51
+ */
52
+ set(key, value, ttlMs) {
53
+ // Evict oldest if at capacity
54
+ if (this.cache.size >= this.options.maxSize && !this.cache.has(key)) {
55
+ this.evictLRU();
56
+ }
57
+ const entry = {
58
+ value,
59
+ expiresAt: Date.now() + (ttlMs ?? this.options.defaultTtlMs),
60
+ hits: 0,
61
+ };
62
+ // Delete first to ensure it's at the end
63
+ this.cache.delete(key);
64
+ this.cache.set(key, entry);
65
+ }
66
+ /**
67
+ * Check if key exists (without updating access)
68
+ */
69
+ has(key) {
70
+ const entry = this.cache.get(key);
71
+ if (!entry)
72
+ return false;
73
+ if (Date.now() > entry.expiresAt) {
74
+ this.cache.delete(key);
75
+ return false;
76
+ }
77
+ return true;
78
+ }
79
+ /**
80
+ * Delete key from cache
81
+ */
82
+ delete(key) {
83
+ return this.cache.delete(key);
84
+ }
85
+ /**
86
+ * Invalidate entries matching a pattern
87
+ */
88
+ invalidate(pattern) {
89
+ let count = 0;
90
+ for (const key of this.cache.keys()) {
91
+ const matches = typeof pattern === 'string'
92
+ ? key.includes(pattern)
93
+ : pattern.test(key);
94
+ if (matches) {
95
+ this.cache.delete(key);
96
+ count++;
97
+ }
98
+ }
99
+ if (count > 0) {
100
+ logger.debug('Cache invalidated', { pattern: String(pattern), count });
101
+ }
102
+ return count;
103
+ }
104
+ /**
105
+ * Clear all entries
106
+ */
107
+ clear() {
108
+ this.cache.clear();
109
+ logger.debug('Cache cleared');
110
+ }
111
+ /**
112
+ * Evict least recently used entry
113
+ */
114
+ evictLRU() {
115
+ const firstKey = this.cache.keys().next().value;
116
+ if (firstKey) {
117
+ this.cache.delete(firstKey);
118
+ }
119
+ }
120
+ /**
121
+ * Remove expired entries
122
+ */
123
+ prune() {
124
+ const now = Date.now();
125
+ let count = 0;
126
+ for (const [key, entry] of this.cache.entries()) {
127
+ if (now > entry.expiresAt) {
128
+ this.cache.delete(key);
129
+ count++;
130
+ }
131
+ }
132
+ if (count > 0) {
133
+ logger.debug('Cache pruned', { removed: count });
134
+ }
135
+ return count;
136
+ }
137
+ /**
138
+ * Get cache statistics
139
+ */
140
+ getStats() {
141
+ const totalRequests = this.hitCount + this.missCount;
142
+ return {
143
+ size: this.cache.size,
144
+ maxSize: this.options.maxSize,
145
+ hitCount: this.hitCount,
146
+ missCount: this.missCount,
147
+ hitRate: totalRequests > 0 ? this.hitCount / totalRequests : 0,
148
+ };
149
+ }
150
+ /**
151
+ * Get cache size
152
+ */
153
+ get size() {
154
+ return this.cache.size;
155
+ }
156
+ /**
157
+ * Reset statistics
158
+ */
159
+ resetStats() {
160
+ this.hitCount = 0;
161
+ this.missCount = 0;
162
+ }
163
+ /**
164
+ * Get or set pattern - fetch from cache or execute function and cache result
165
+ */
166
+ async getOrSet(key, fn, ttlMs) {
167
+ const cached = this.get(key);
168
+ if (cached !== undefined) {
169
+ return cached;
170
+ }
171
+ const result = await fn();
172
+ this.set(key, result, ttlMs);
173
+ return result;
174
+ }
175
+ }
176
+ export default QueryCache;
177
+ //# sourceMappingURL=query-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-cache.js","sourceRoot":"","sources":["../../../src/database/cache/query-cache.ts"],"names":[],"mappings":"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"}