cccmemory 1.8.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 (216) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +349 -0
  3. package/dist/ConversationMemory.d.ts +231 -0
  4. package/dist/ConversationMemory.d.ts.map +1 -0
  5. package/dist/ConversationMemory.js +357 -0
  6. package/dist/ConversationMemory.js.map +1 -0
  7. package/dist/cache/QueryCache.d.ts +215 -0
  8. package/dist/cache/QueryCache.d.ts.map +1 -0
  9. package/dist/cache/QueryCache.js +294 -0
  10. package/dist/cache/QueryCache.js.map +1 -0
  11. package/dist/cli/commands.d.ts +9 -0
  12. package/dist/cli/commands.d.ts.map +1 -0
  13. package/dist/cli/commands.js +954 -0
  14. package/dist/cli/commands.js.map +1 -0
  15. package/dist/cli/help.d.ts +16 -0
  16. package/dist/cli/help.d.ts.map +1 -0
  17. package/dist/cli/help.js +361 -0
  18. package/dist/cli/help.js.map +1 -0
  19. package/dist/cli/index.d.ts +30 -0
  20. package/dist/cli/index.d.ts.map +1 -0
  21. package/dist/cli/index.js +111 -0
  22. package/dist/cli/index.js.map +1 -0
  23. package/dist/context/ContextInjector.d.ts +38 -0
  24. package/dist/context/ContextInjector.d.ts.map +1 -0
  25. package/dist/context/ContextInjector.js +235 -0
  26. package/dist/context/ContextInjector.js.map +1 -0
  27. package/dist/documentation/CodeAnalyzer.d.ts +29 -0
  28. package/dist/documentation/CodeAnalyzer.d.ts.map +1 -0
  29. package/dist/documentation/CodeAnalyzer.js +122 -0
  30. package/dist/documentation/CodeAnalyzer.js.map +1 -0
  31. package/dist/documentation/ConversationAnalyzer.d.ts +19 -0
  32. package/dist/documentation/ConversationAnalyzer.d.ts.map +1 -0
  33. package/dist/documentation/ConversationAnalyzer.js +157 -0
  34. package/dist/documentation/ConversationAnalyzer.js.map +1 -0
  35. package/dist/documentation/CrossReferencer.d.ts +67 -0
  36. package/dist/documentation/CrossReferencer.d.ts.map +1 -0
  37. package/dist/documentation/CrossReferencer.js +247 -0
  38. package/dist/documentation/CrossReferencer.js.map +1 -0
  39. package/dist/documentation/DocumentationGenerator.d.ts +22 -0
  40. package/dist/documentation/DocumentationGenerator.d.ts.map +1 -0
  41. package/dist/documentation/DocumentationGenerator.js +57 -0
  42. package/dist/documentation/DocumentationGenerator.js.map +1 -0
  43. package/dist/documentation/MarkdownFormatter.d.ts +26 -0
  44. package/dist/documentation/MarkdownFormatter.d.ts.map +1 -0
  45. package/dist/documentation/MarkdownFormatter.js +301 -0
  46. package/dist/documentation/MarkdownFormatter.js.map +1 -0
  47. package/dist/documentation/types.d.ts +176 -0
  48. package/dist/documentation/types.d.ts.map +1 -0
  49. package/dist/documentation/types.js +5 -0
  50. package/dist/documentation/types.js.map +1 -0
  51. package/dist/embeddings/ConfigManager.d.ts +46 -0
  52. package/dist/embeddings/ConfigManager.d.ts.map +1 -0
  53. package/dist/embeddings/ConfigManager.js +177 -0
  54. package/dist/embeddings/ConfigManager.js.map +1 -0
  55. package/dist/embeddings/EmbeddingConfig.d.ts +39 -0
  56. package/dist/embeddings/EmbeddingConfig.d.ts.map +1 -0
  57. package/dist/embeddings/EmbeddingConfig.js +132 -0
  58. package/dist/embeddings/EmbeddingConfig.js.map +1 -0
  59. package/dist/embeddings/EmbeddingGenerator.d.ts +51 -0
  60. package/dist/embeddings/EmbeddingGenerator.d.ts.map +1 -0
  61. package/dist/embeddings/EmbeddingGenerator.js +157 -0
  62. package/dist/embeddings/EmbeddingGenerator.js.map +1 -0
  63. package/dist/embeddings/EmbeddingProvider.d.ts +34 -0
  64. package/dist/embeddings/EmbeddingProvider.d.ts.map +1 -0
  65. package/dist/embeddings/EmbeddingProvider.js +6 -0
  66. package/dist/embeddings/EmbeddingProvider.js.map +1 -0
  67. package/dist/embeddings/ModelRegistry.d.ts +48 -0
  68. package/dist/embeddings/ModelRegistry.d.ts.map +1 -0
  69. package/dist/embeddings/ModelRegistry.js +170 -0
  70. package/dist/embeddings/ModelRegistry.js.map +1 -0
  71. package/dist/embeddings/VectorStore.d.ts +114 -0
  72. package/dist/embeddings/VectorStore.d.ts.map +1 -0
  73. package/dist/embeddings/VectorStore.js +393 -0
  74. package/dist/embeddings/VectorStore.js.map +1 -0
  75. package/dist/embeddings/providers/OllamaEmbeddings.d.ts +38 -0
  76. package/dist/embeddings/providers/OllamaEmbeddings.d.ts.map +1 -0
  77. package/dist/embeddings/providers/OllamaEmbeddings.js +125 -0
  78. package/dist/embeddings/providers/OllamaEmbeddings.js.map +1 -0
  79. package/dist/embeddings/providers/OpenAIEmbeddings.d.ts +40 -0
  80. package/dist/embeddings/providers/OpenAIEmbeddings.d.ts.map +1 -0
  81. package/dist/embeddings/providers/OpenAIEmbeddings.js +129 -0
  82. package/dist/embeddings/providers/OpenAIEmbeddings.js.map +1 -0
  83. package/dist/embeddings/providers/TransformersEmbeddings.d.ts +38 -0
  84. package/dist/embeddings/providers/TransformersEmbeddings.d.ts.map +1 -0
  85. package/dist/embeddings/providers/TransformersEmbeddings.js +115 -0
  86. package/dist/embeddings/providers/TransformersEmbeddings.js.map +1 -0
  87. package/dist/handoff/SessionHandoffStore.d.ts +80 -0
  88. package/dist/handoff/SessionHandoffStore.d.ts.map +1 -0
  89. package/dist/handoff/SessionHandoffStore.js +314 -0
  90. package/dist/handoff/SessionHandoffStore.js.map +1 -0
  91. package/dist/index.d.ts +7 -0
  92. package/dist/index.d.ts.map +1 -0
  93. package/dist/index.js +115 -0
  94. package/dist/index.js.map +1 -0
  95. package/dist/mcp-server.d.ts +27 -0
  96. package/dist/mcp-server.d.ts.map +1 -0
  97. package/dist/mcp-server.js +157 -0
  98. package/dist/mcp-server.js.map +1 -0
  99. package/dist/memory/WorkingMemoryStore.d.ts +83 -0
  100. package/dist/memory/WorkingMemoryStore.d.ts.map +1 -0
  101. package/dist/memory/WorkingMemoryStore.js +318 -0
  102. package/dist/memory/WorkingMemoryStore.js.map +1 -0
  103. package/dist/memory/types.d.ts +192 -0
  104. package/dist/memory/types.d.ts.map +1 -0
  105. package/dist/memory/types.js +8 -0
  106. package/dist/memory/types.js.map +1 -0
  107. package/dist/parsers/CodexConversationParser.d.ts +51 -0
  108. package/dist/parsers/CodexConversationParser.d.ts.map +1 -0
  109. package/dist/parsers/CodexConversationParser.js +301 -0
  110. package/dist/parsers/CodexConversationParser.js.map +1 -0
  111. package/dist/parsers/ConversationParser.d.ts +286 -0
  112. package/dist/parsers/ConversationParser.d.ts.map +1 -0
  113. package/dist/parsers/ConversationParser.js +795 -0
  114. package/dist/parsers/ConversationParser.js.map +1 -0
  115. package/dist/parsers/DecisionExtractor.d.ts +144 -0
  116. package/dist/parsers/DecisionExtractor.d.ts.map +1 -0
  117. package/dist/parsers/DecisionExtractor.js +434 -0
  118. package/dist/parsers/DecisionExtractor.js.map +1 -0
  119. package/dist/parsers/GitIntegrator.d.ts +156 -0
  120. package/dist/parsers/GitIntegrator.d.ts.map +1 -0
  121. package/dist/parsers/GitIntegrator.js +348 -0
  122. package/dist/parsers/GitIntegrator.js.map +1 -0
  123. package/dist/parsers/MistakeExtractor.d.ts +151 -0
  124. package/dist/parsers/MistakeExtractor.d.ts.map +1 -0
  125. package/dist/parsers/MistakeExtractor.js +460 -0
  126. package/dist/parsers/MistakeExtractor.js.map +1 -0
  127. package/dist/parsers/RequirementsExtractor.d.ts +166 -0
  128. package/dist/parsers/RequirementsExtractor.d.ts.map +1 -0
  129. package/dist/parsers/RequirementsExtractor.js +338 -0
  130. package/dist/parsers/RequirementsExtractor.js.map +1 -0
  131. package/dist/realtime/ConversationWatcher.d.ts +87 -0
  132. package/dist/realtime/ConversationWatcher.d.ts.map +1 -0
  133. package/dist/realtime/ConversationWatcher.js +204 -0
  134. package/dist/realtime/ConversationWatcher.js.map +1 -0
  135. package/dist/realtime/IncrementalParser.d.ts +83 -0
  136. package/dist/realtime/IncrementalParser.d.ts.map +1 -0
  137. package/dist/realtime/IncrementalParser.js +232 -0
  138. package/dist/realtime/IncrementalParser.js.map +1 -0
  139. package/dist/realtime/LiveExtractor.d.ts +72 -0
  140. package/dist/realtime/LiveExtractor.d.ts.map +1 -0
  141. package/dist/realtime/LiveExtractor.js +288 -0
  142. package/dist/realtime/LiveExtractor.js.map +1 -0
  143. package/dist/search/SemanticSearch.d.ts +121 -0
  144. package/dist/search/SemanticSearch.d.ts.map +1 -0
  145. package/dist/search/SemanticSearch.js +823 -0
  146. package/dist/search/SemanticSearch.js.map +1 -0
  147. package/dist/storage/BackupManager.d.ts +58 -0
  148. package/dist/storage/BackupManager.d.ts.map +1 -0
  149. package/dist/storage/BackupManager.js +223 -0
  150. package/dist/storage/BackupManager.js.map +1 -0
  151. package/dist/storage/ConversationStorage.d.ts +341 -0
  152. package/dist/storage/ConversationStorage.d.ts.map +1 -0
  153. package/dist/storage/ConversationStorage.js +792 -0
  154. package/dist/storage/ConversationStorage.js.map +1 -0
  155. package/dist/storage/DeletionService.d.ts +70 -0
  156. package/dist/storage/DeletionService.d.ts.map +1 -0
  157. package/dist/storage/DeletionService.js +253 -0
  158. package/dist/storage/DeletionService.js.map +1 -0
  159. package/dist/storage/GlobalIndex.d.ts +133 -0
  160. package/dist/storage/GlobalIndex.d.ts.map +1 -0
  161. package/dist/storage/GlobalIndex.js +310 -0
  162. package/dist/storage/GlobalIndex.js.map +1 -0
  163. package/dist/storage/SQLiteManager.d.ts +114 -0
  164. package/dist/storage/SQLiteManager.d.ts.map +1 -0
  165. package/dist/storage/SQLiteManager.js +636 -0
  166. package/dist/storage/SQLiteManager.js.map +1 -0
  167. package/dist/storage/migrations.d.ts +54 -0
  168. package/dist/storage/migrations.d.ts.map +1 -0
  169. package/dist/storage/migrations.js +285 -0
  170. package/dist/storage/migrations.js.map +1 -0
  171. package/dist/storage/schema.sql +436 -0
  172. package/dist/tools/ToolDefinitions.d.ts +946 -0
  173. package/dist/tools/ToolDefinitions.d.ts.map +1 -0
  174. package/dist/tools/ToolDefinitions.js +937 -0
  175. package/dist/tools/ToolDefinitions.js.map +1 -0
  176. package/dist/tools/ToolHandlers.d.ts +791 -0
  177. package/dist/tools/ToolHandlers.d.ts.map +1 -0
  178. package/dist/tools/ToolHandlers.js +3262 -0
  179. package/dist/tools/ToolHandlers.js.map +1 -0
  180. package/dist/types/ToolTypes.d.ts +824 -0
  181. package/dist/types/ToolTypes.d.ts.map +1 -0
  182. package/dist/types/ToolTypes.js +6 -0
  183. package/dist/types/ToolTypes.js.map +1 -0
  184. package/dist/utils/Logger.d.ts +70 -0
  185. package/dist/utils/Logger.d.ts.map +1 -0
  186. package/dist/utils/Logger.js +131 -0
  187. package/dist/utils/Logger.js.map +1 -0
  188. package/dist/utils/McpConfig.d.ts +54 -0
  189. package/dist/utils/McpConfig.d.ts.map +1 -0
  190. package/dist/utils/McpConfig.js +136 -0
  191. package/dist/utils/McpConfig.js.map +1 -0
  192. package/dist/utils/ProjectMigration.d.ts +82 -0
  193. package/dist/utils/ProjectMigration.d.ts.map +1 -0
  194. package/dist/utils/ProjectMigration.js +416 -0
  195. package/dist/utils/ProjectMigration.js.map +1 -0
  196. package/dist/utils/constants.d.ts +75 -0
  197. package/dist/utils/constants.d.ts.map +1 -0
  198. package/dist/utils/constants.js +105 -0
  199. package/dist/utils/constants.js.map +1 -0
  200. package/dist/utils/safeJson.d.ts +37 -0
  201. package/dist/utils/safeJson.d.ts.map +1 -0
  202. package/dist/utils/safeJson.js +48 -0
  203. package/dist/utils/safeJson.js.map +1 -0
  204. package/dist/utils/sanitization.d.ts +45 -0
  205. package/dist/utils/sanitization.d.ts.map +1 -0
  206. package/dist/utils/sanitization.js +153 -0
  207. package/dist/utils/sanitization.js.map +1 -0
  208. package/dist/utils/worktree.d.ts +15 -0
  209. package/dist/utils/worktree.d.ts.map +1 -0
  210. package/dist/utils/worktree.js +86 -0
  211. package/dist/utils/worktree.js.map +1 -0
  212. package/package.json +98 -0
  213. package/scripts/changelog-check.sh +62 -0
  214. package/scripts/check-node.js +17 -0
  215. package/scripts/dev-config.js +56 -0
  216. package/scripts/postinstall.js +117 -0
@@ -0,0 +1,341 @@
1
+ /**
2
+ * Conversation Storage Layer - CRUD operations for all conversation-related data.
3
+ *
4
+ * This class provides the data access layer for the cccmemory system.
5
+ * It handles storing and retrieving conversations, messages, tool uses, decisions,
6
+ * mistakes, requirements, and git commits.
7
+ *
8
+ * All store operations use transactions for atomicity and performance.
9
+ * All JSON fields are automatically serialized/deserialized.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * const storage = new ConversationStorage(sqliteManager);
14
+ * await storage.storeConversations(conversations);
15
+ * const conv = storage.getConversation('conv-123');
16
+ * const timeline = storage.getFileTimeline('src/index.ts');
17
+ * ```
18
+ */
19
+ import type { SQLiteManager } from "./SQLiteManager.js";
20
+ import type { Conversation, Message, ToolUse, ToolResult, FileEdit, ThinkingBlock } from "../parsers/ConversationParser.js";
21
+ import type { Decision } from "../parsers/DecisionExtractor.js";
22
+ import type { Mistake } from "../parsers/MistakeExtractor.js";
23
+ import type { GitCommit } from "../parsers/GitIntegrator.js";
24
+ import type { Requirement, Validation } from "../parsers/RequirementsExtractor.js";
25
+ import { type QueryCacheConfig, type CacheStats } from "../cache/QueryCache.js";
26
+ /**
27
+ * Data access layer for conversation memory storage.
28
+ *
29
+ * Provides CRUD operations for all conversation-related entities using SQLite.
30
+ * Supports optional caching for frequently accessed queries.
31
+ */
32
+ export declare class ConversationStorage {
33
+ private db;
34
+ private cache;
35
+ /**
36
+ * Create a new ConversationStorage instance.
37
+ *
38
+ * @param db - SQLiteManager instance for database access
39
+ */
40
+ constructor(db: SQLiteManager);
41
+ /**
42
+ * Enable query result caching.
43
+ *
44
+ * Caching improves performance for frequently accessed queries by storing
45
+ * results in memory. Cache is automatically invalidated when data changes.
46
+ *
47
+ * @param config - Cache configuration (maxSize and ttlMs)
48
+ *
49
+ * @example
50
+ * ```typescript
51
+ * storage.enableCache({ maxSize: 100, ttlMs: 300000 });
52
+ * ```
53
+ */
54
+ enableCache(config: QueryCacheConfig): void;
55
+ /**
56
+ * Disable query result caching.
57
+ *
58
+ * Clears all cached data and stops caching new queries.
59
+ */
60
+ disableCache(): void;
61
+ /**
62
+ * Check if caching is enabled.
63
+ *
64
+ * @returns True if caching is enabled
65
+ */
66
+ isCacheEnabled(): boolean;
67
+ /**
68
+ * Clear all cached query results.
69
+ *
70
+ * Clears the cache but keeps caching enabled.
71
+ */
72
+ clearCache(): void;
73
+ /**
74
+ * Get cache statistics.
75
+ *
76
+ * Returns performance metrics including hits, misses, hit rate, and evictions.
77
+ *
78
+ * @returns Cache statistics or null if caching is disabled
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * const stats = storage.getCacheStats();
83
+ * if (stats) {
84
+ * console.error(`Hit rate: ${(stats.hitRate * 100).toFixed(1)}%`);
85
+ * }
86
+ * ```
87
+ */
88
+ getCacheStats(): CacheStats | null;
89
+ /**
90
+ * Store conversations in the database.
91
+ *
92
+ * Uses UPSERT (INSERT ON CONFLICT UPDATE) to handle both new and updated conversations.
93
+ * All operations are performed in a single transaction for atomicity.
94
+ *
95
+ * @param conversations - Array of conversation objects to store
96
+ * @returns Promise that resolves when all conversations are stored
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * await storage.storeConversations([
101
+ * {
102
+ * id: 'conv-123',
103
+ * project_path: '/path/to/project',
104
+ * first_message_at: Date.now(),
105
+ * last_message_at: Date.now(),
106
+ * message_count: 42,
107
+ * git_branch: 'main',
108
+ * claude_version: '3.5',
109
+ * metadata: {},
110
+ * created_at: Date.now(),
111
+ * updated_at: Date.now()
112
+ * }
113
+ * ]);
114
+ * ```
115
+ */
116
+ storeConversations(conversations: Conversation[]): Promise<void>;
117
+ /**
118
+ * Retrieve a single conversation by ID.
119
+ *
120
+ * @param id - Conversation ID to retrieve
121
+ * @returns Conversation object if found, null otherwise
122
+ *
123
+ * @example
124
+ * ```typescript
125
+ * const conv = storage.getConversation('conv-123');
126
+ * if (conv) {
127
+ * console.error(`${conv.message_count} messages on ${conv.git_branch}`);
128
+ * }
129
+ * ```
130
+ */
131
+ getConversation(id: string): Conversation | null;
132
+ /**
133
+ * Store messages in the database.
134
+ *
135
+ * Stores all messages from conversations including content, metadata, and relationships.
136
+ * Uses UPSERT (INSERT ON CONFLICT UPDATE) for idempotent storage.
137
+ *
138
+ * @param messages - Array of message objects to store
139
+ * @param skipFtsRebuild - Skip FTS rebuild (for batch operations, call rebuildAllFts() at end)
140
+ * @returns Promise that resolves when all messages are stored
141
+ *
142
+ * @example
143
+ * ```typescript
144
+ * await storage.storeMessages([
145
+ * {
146
+ * id: 'msg-123',
147
+ * conversation_id: 'conv-123',
148
+ * message_type: 'text',
149
+ * role: 'user',
150
+ * content: 'Hello',
151
+ * timestamp: Date.now(),
152
+ * is_sidechain: false,
153
+ * metadata: {}
154
+ * }
155
+ * ]);
156
+ * ```
157
+ */
158
+ storeMessages(messages: Message[], skipFtsRebuild?: boolean): Promise<void>;
159
+ /**
160
+ * Rebuild the messages FTS index.
161
+ * Required for FTS5 external content tables after inserting data.
162
+ * Call this after batch operations that used skipFtsRebuild=true.
163
+ */
164
+ rebuildMessagesFts(): void;
165
+ /**
166
+ * Store tool use records in the database.
167
+ *
168
+ * Records all tool invocations from assistant messages.
169
+ *
170
+ * @param toolUses - Array of tool use objects
171
+ * @returns Promise that resolves when stored
172
+ */
173
+ storeToolUses(toolUses: ToolUse[]): Promise<void>;
174
+ /**
175
+ * Store tool execution results in the database.
176
+ *
177
+ * Records the output/results from tool invocations.
178
+ *
179
+ * @param toolResults - Array of tool result objects
180
+ * @returns Promise that resolves when stored
181
+ */
182
+ storeToolResults(toolResults: ToolResult[]): Promise<void>;
183
+ /**
184
+ * Store file edit records in the database.
185
+ *
186
+ * Records all file modifications made during conversations.
187
+ *
188
+ * @param fileEdits - Array of file edit objects
189
+ * @returns Promise that resolves when stored
190
+ */
191
+ storeFileEdits(fileEdits: FileEdit[]): Promise<void>;
192
+ /**
193
+ * Retrieve all edits for a specific file.
194
+ *
195
+ * @param filePath - Path to the file
196
+ * @returns Array of file edits, ordered by timestamp (most recent first)
197
+ */
198
+ getFileEdits(filePath: string): FileEdit[];
199
+ /**
200
+ * Store thinking blocks in the database.
201
+ *
202
+ * Thinking blocks contain Claude's internal reasoning. They can be large and
203
+ * are optionally indexed based on the includeThinking flag.
204
+ *
205
+ * @param blocks - Array of thinking block objects
206
+ * @returns Promise that resolves when stored
207
+ */
208
+ storeThinkingBlocks(blocks: ThinkingBlock[]): Promise<void>;
209
+ /**
210
+ * Store extracted decisions in the database.
211
+ *
212
+ * Decisions include architectural choices, technical decisions, and their rationale.
213
+ *
214
+ * @param decisions - Array of decision objects
215
+ * @param skipFtsRebuild - Skip FTS rebuild (for batch operations, call rebuildAllFts() at end)
216
+ * @returns Promise that resolves when stored
217
+ */
218
+ storeDecisions(decisions: Decision[], skipFtsRebuild?: boolean): Promise<void>;
219
+ /**
220
+ * Rebuild the decisions FTS index.
221
+ * Required for FTS5 external content tables after inserting data.
222
+ * Call this after batch operations that used skipFtsRebuild=true.
223
+ */
224
+ rebuildDecisionsFts(): void;
225
+ /**
226
+ * Rebuild all FTS indexes.
227
+ * Call this once after batch operations that used skipFtsRebuild=true.
228
+ */
229
+ rebuildAllFts(): void;
230
+ /**
231
+ * Retrieve all decisions related to a specific file.
232
+ *
233
+ * @param filePath - Path to the file
234
+ * @returns Array of decisions that reference this file
235
+ * @internal
236
+ */
237
+ getDecisionsForFile(filePath: string): Decision[];
238
+ /**
239
+ * Store git commit records linked to conversations.
240
+ *
241
+ * Links git commits to the conversations where they were made or discussed.
242
+ *
243
+ * @param commits - Array of git commit objects
244
+ * @returns Promise that resolves when stored
245
+ */
246
+ storeGitCommits(commits: GitCommit[]): Promise<void>;
247
+ getCommitsForFile(filePath: string): GitCommit[];
248
+ /**
249
+ * Store extracted mistakes in the database.
250
+ *
251
+ * Mistakes include errors, bugs, and wrong approaches that were later corrected.
252
+ *
253
+ * @param mistakes - Array of mistake objects
254
+ * @returns Promise that resolves when stored
255
+ */
256
+ storeMistakes(mistakes: Mistake[]): Promise<void>;
257
+ /**
258
+ * Store extracted requirements in the database.
259
+ *
260
+ * Requirements include dependencies, constraints, and specifications for components.
261
+ *
262
+ * @param requirements - Array of requirement objects
263
+ * @returns Promise that resolves when stored
264
+ */
265
+ storeRequirements(requirements: Requirement[]): Promise<void>;
266
+ /**
267
+ * Store validation records in the database.
268
+ *
269
+ * Validations capture test results and performance data from conversations.
270
+ *
271
+ * @param validations - Array of validation objects
272
+ * @returns Promise that resolves when stored
273
+ */
274
+ storeValidations(validations: Validation[]): Promise<void>;
275
+ /**
276
+ * Get the complete timeline of changes to a file.
277
+ *
278
+ * Combines file edits, git commits, and related decisions into a single timeline.
279
+ * This is a key method used by tools like checkBeforeModify and getFileEvolution.
280
+ *
281
+ * @param filePath - Path to the file
282
+ * @returns Object containing:
283
+ * - `file_path`: The file path queried
284
+ * - `edits`: All file edit records
285
+ * - `commits`: All git commits affecting this file
286
+ * - `decisions`: All decisions related to this file
287
+ *
288
+ * @example
289
+ * ```typescript
290
+ * const timeline = storage.getFileTimeline('src/index.ts');
291
+ * console.error(`${timeline.edits.length} edits`);
292
+ * console.error(`${timeline.commits.length} commits`);
293
+ * console.error(`${timeline.decisions.length} decisions`);
294
+ * ```
295
+ */
296
+ getFileTimeline(filePath: string): {
297
+ file_path: string;
298
+ edits: FileEdit[];
299
+ commits: GitCommit[];
300
+ decisions: Decision[];
301
+ };
302
+ /**
303
+ * Get statistics about the indexed conversation data.
304
+ *
305
+ * Returns counts of all major entity types stored in the database.
306
+ * Used for displaying indexing results and system health checks.
307
+ *
308
+ * @returns Object containing counts for:
309
+ * - `conversations`: Total conversations indexed
310
+ * - `messages`: Total messages stored
311
+ * - `decisions`: Total decisions extracted
312
+ * - `mistakes`: Total mistakes documented
313
+ * - `git_commits`: Total git commits linked
314
+ *
315
+ * @example
316
+ * ```typescript
317
+ * const stats = storage.getStats();
318
+ * console.error(`Indexed ${stats.conversations.count} conversations`);
319
+ * console.error(`Extracted ${stats.decisions.count} decisions`);
320
+ * console.error(`Linked ${stats.git_commits.count} commits`);
321
+ * ```
322
+ */
323
+ getStats(): {
324
+ conversations: {
325
+ count: number;
326
+ };
327
+ messages: {
328
+ count: number;
329
+ };
330
+ decisions: {
331
+ count: number;
332
+ };
333
+ mistakes: {
334
+ count: number;
335
+ };
336
+ git_commits: {
337
+ count: number;
338
+ };
339
+ };
340
+ }
341
+ //# sourceMappingURL=ConversationStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConversationStorage.d.ts","sourceRoot":"","sources":["../../src/storage/ConversationStorage.ts"],"names":[],"mappings":"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"}