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 @@
1
+ {"version":3,"file":"CrossReferencer.d.ts","sourceRoot":"","sources":["../../src/documentation/CrossReferencer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EACV,QAAQ,EACR,gBAAgB,EAChB,UAAU,EAaX,MAAM,YAAY,CAAC;AAEpB,qBAAa,eAAe;IAC1B;;OAEG;IACG,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAkBvF;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0CxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAQ3B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAQ/B;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAiBjC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAIhC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAchC;;OAEG;IACH,OAAO,CAAC,aAAa;IAwCrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA6BzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAgB5B"}
@@ -0,0 +1,247 @@
1
+ /**
2
+ * CrossReferencer - Links code entities with conversation data
3
+ */
4
+ import { basename, dirname } from 'path';
5
+ export class CrossReferencer {
6
+ /**
7
+ * Link code and conversation data
8
+ */
9
+ async link(codeData, conversationData) {
10
+ console.error('šŸ”— Cross-referencing code and conversations...');
11
+ const modules = this.groupIntoModules(codeData, conversationData);
12
+ const timeline = this.buildTimeline(conversationData);
13
+ const qualityReport = this.buildQualityReport(codeData, conversationData);
14
+ const statistics = this.calculateStatistics(codeData, conversationData);
15
+ console.error(` Created ${modules.length} module summaries`);
16
+ return {
17
+ modules,
18
+ timeline,
19
+ qualityReport,
20
+ statistics
21
+ };
22
+ }
23
+ /**
24
+ * Group files into logical modules and link with conversation data
25
+ */
26
+ groupIntoModules(codeData, conversationData) {
27
+ // Group files by directory
28
+ const moduleMap = new Map();
29
+ for (const file of codeData.files) {
30
+ const modulePath = this.extractModulePath(file.path);
31
+ const moduleName = this.pathToModuleName(modulePath);
32
+ if (!moduleMap.has(modulePath)) {
33
+ moduleMap.set(modulePath, {
34
+ path: modulePath,
35
+ name: moduleName,
36
+ entities: [],
37
+ decisions: [],
38
+ mistakes: [],
39
+ requirements: [],
40
+ complexity: 0,
41
+ changeFrequency: 0,
42
+ description: undefined
43
+ });
44
+ }
45
+ const module = moduleMap.get(modulePath);
46
+ if (module) {
47
+ module.entities.push(...file.entities);
48
+ }
49
+ }
50
+ // Link decisions, mistakes, and requirements to modules
51
+ for (const module of moduleMap.values()) {
52
+ module.decisions = this.findRelatedDecisions(module.path, conversationData.decisions);
53
+ module.mistakes = this.findRelatedMistakes(module.path, conversationData.mistakes);
54
+ module.requirements = this.findRelatedRequirements(module.path, conversationData.requirements);
55
+ module.complexity = this.calculateModuleComplexity(module.entities, codeData.hotspots);
56
+ module.changeFrequency = this.calculateChangeFrequency(module.path, conversationData.fileEdits);
57
+ module.description = this.extractModuleDescription(module.decisions, module.requirements);
58
+ }
59
+ return Array.from(moduleMap.values())
60
+ .sort((a, b) => b.decisions.length + b.mistakes.length - (a.decisions.length + a.mistakes.length));
61
+ }
62
+ /**
63
+ * Extract module path from file path (e.g., src/auth/token.ts → src/auth)
64
+ */
65
+ extractModulePath(filePath) {
66
+ const dir = dirname(filePath);
67
+ // If it's a top-level file, use the filename without extension
68
+ if (dir === '.' || dir === 'src') {
69
+ return basename(filePath, '.ts').replace(/\./g, '/');
70
+ }
71
+ return dir;
72
+ }
73
+ /**
74
+ * Convert path to human-readable module name
75
+ */
76
+ pathToModuleName(path) {
77
+ const parts = path.split('/');
78
+ const lastPart = parts[parts.length - 1];
79
+ // Convert snake_case or kebab-case to Title Case
80
+ return lastPart
81
+ .split(/[-_]/)
82
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
83
+ .join(' ');
84
+ }
85
+ /**
86
+ * Find decisions related to a module
87
+ */
88
+ findRelatedDecisions(modulePath, decisions) {
89
+ return decisions.filter(decision => decision.related_files.some((file) => file.startsWith(modulePath) || this.isRelatedPath(file, modulePath)));
90
+ }
91
+ /**
92
+ * Find mistakes related to a module
93
+ */
94
+ findRelatedMistakes(modulePath, mistakes) {
95
+ return mistakes.filter(mistake => mistake.related_files.some((file) => file.startsWith(modulePath) || this.isRelatedPath(file, modulePath)));
96
+ }
97
+ /**
98
+ * Find requirements related to a module
99
+ */
100
+ findRelatedRequirements(modulePath, requirements) {
101
+ return requirements.filter(req => req.related_files.some((file) => file.startsWith(modulePath) || this.isRelatedPath(file, modulePath)));
102
+ }
103
+ /**
104
+ * Check if two paths are related (flexible matching)
105
+ */
106
+ isRelatedPath(filePath, modulePath) {
107
+ return filePath.includes(modulePath) || modulePath.includes(filePath);
108
+ }
109
+ /**
110
+ * Calculate module complexity
111
+ */
112
+ calculateModuleComplexity(entities, hotspots) {
113
+ if (entities.length === 0) {
114
+ return 0;
115
+ }
116
+ const entityComplexity = entities
117
+ .filter(e => e.complexity)
118
+ .reduce((sum, e) => sum + (e.complexity || 0), 0);
119
+ const hotspotComplexity = hotspots
120
+ .filter(h => entities.some(e => e.filePath === h.filePath))
121
+ .reduce((sum, h) => sum + h.complexity, 0);
122
+ const avgComplexity = (entityComplexity + hotspotComplexity) / (entities.length || 1);
123
+ return Math.min(10, Math.round(avgComplexity));
124
+ }
125
+ /**
126
+ * Calculate how frequently a module changes
127
+ */
128
+ calculateChangeFrequency(modulePath, fileEdits) {
129
+ return fileEdits.filter(edit => edit.file_path.startsWith(modulePath)).length;
130
+ }
131
+ /**
132
+ * Extract module description from decisions and requirements
133
+ */
134
+ extractModuleDescription(decisions, requirements) {
135
+ // Use the first decision's context or rationale as description
136
+ if (decisions.length > 0 && decisions[0].context) {
137
+ return decisions[0].context;
138
+ }
139
+ if (decisions.length > 0 && decisions[0].rationale) {
140
+ return decisions[0].rationale;
141
+ }
142
+ if (requirements.length > 0) {
143
+ return requirements[0].description;
144
+ }
145
+ return undefined;
146
+ }
147
+ /**
148
+ * Build chronological timeline of events
149
+ */
150
+ buildTimeline(conversationData) {
151
+ const events = [];
152
+ // Add decisions
153
+ for (const decision of conversationData.decisions) {
154
+ events.push({
155
+ timestamp: decision.timestamp,
156
+ type: 'decision',
157
+ description: decision.decision_text,
158
+ files: decision.related_files,
159
+ details: decision
160
+ });
161
+ }
162
+ // Add mistakes
163
+ for (const mistake of conversationData.mistakes) {
164
+ events.push({
165
+ timestamp: mistake.timestamp,
166
+ type: 'mistake',
167
+ description: mistake.what_went_wrong,
168
+ files: mistake.related_files,
169
+ details: mistake
170
+ });
171
+ }
172
+ // Add commits
173
+ for (const commit of conversationData.commits) {
174
+ events.push({
175
+ timestamp: commit.timestamp,
176
+ type: 'commit',
177
+ description: commit.message,
178
+ files: commit.files_changed,
179
+ details: commit
180
+ });
181
+ }
182
+ // Sort by timestamp (newest first)
183
+ return events.sort((a, b) => b.timestamp - a.timestamp);
184
+ }
185
+ /**
186
+ * Build quality report with context
187
+ */
188
+ buildQualityReport(codeData, conversationData) {
189
+ const hotspotsWithContext = codeData.hotspots.map(hotspot => ({
190
+ ...hotspot,
191
+ relatedMistakes: conversationData.mistakes.filter(m => m.related_files.some(f => f === hotspot.filePath)),
192
+ relatedDecisions: conversationData.decisions.filter(d => d.related_files.some(f => f === hotspot.filePath))
193
+ }));
194
+ const mistakeSummary = this.summarizeMistakes(conversationData.mistakes);
195
+ return {
196
+ hotspots: hotspotsWithContext,
197
+ clones: codeData.clones,
198
+ mistakeSummary
199
+ };
200
+ }
201
+ /**
202
+ * Summarize mistakes for learning
203
+ */
204
+ summarizeMistakes(mistakes) {
205
+ const byCategory = {};
206
+ const topLessons = [];
207
+ const criticalIssues = [];
208
+ for (const mistake of mistakes) {
209
+ // Categorize by severity
210
+ const category = mistake.severity || 'medium';
211
+ byCategory[category] = (byCategory[category] || 0) + 1;
212
+ // Collect lessons
213
+ if (mistake.lesson_learned && !topLessons.includes(mistake.lesson_learned)) {
214
+ topLessons.push(mistake.lesson_learned);
215
+ }
216
+ // Identify critical issues
217
+ if (mistake.severity === 'critical' || mistake.severity === 'high') {
218
+ criticalIssues.push(mistake);
219
+ }
220
+ }
221
+ return {
222
+ total: mistakes.length,
223
+ byCategory,
224
+ topLessons: topLessons.slice(0, 10), // Top 10 lessons
225
+ criticalIssues
226
+ };
227
+ }
228
+ /**
229
+ * Calculate overall statistics
230
+ */
231
+ calculateStatistics(codeData, conversationData) {
232
+ const totalComplexity = codeData.entities
233
+ .filter(e => e.complexity)
234
+ .reduce((sum, e) => sum + (e.complexity || 0), 0);
235
+ return {
236
+ totalFiles: codeData.files.length,
237
+ totalEntities: codeData.entities.length,
238
+ totalDecisions: conversationData.decisions.length,
239
+ totalMistakes: conversationData.mistakes.length,
240
+ totalCommits: conversationData.commits.length,
241
+ averageComplexity: codeData.entities.length > 0
242
+ ? Math.round((totalComplexity / codeData.entities.length) * 10) / 10
243
+ : 0
244
+ };
245
+ }
246
+ }
247
+ //# sourceMappingURL=CrossReferencer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CrossReferencer.js","sourceRoot":"","sources":["../../src/documentation/CrossReferencer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * DocumentationGenerator - Main orchestrator for comprehensive documentation
3
+ */
4
+ import { type CodeGraphRagData } from './CodeAnalyzer.js';
5
+ import type { SQLiteManager } from '../storage/SQLiteManager.js';
6
+ import type { DocumentationOptions } from './types.js';
7
+ export declare class DocumentationGenerator {
8
+ private codeAnalyzer;
9
+ private conversationAnalyzer;
10
+ private crossReferencer;
11
+ private formatter;
12
+ constructor(db: SQLiteManager);
13
+ /**
14
+ * Generate comprehensive documentation
15
+ *
16
+ * @param options - Documentation options
17
+ * @param codeGraphData - Data from CODE-GRAPH-RAG-MCP (must be fetched externally)
18
+ * @returns Markdown documentation
19
+ */
20
+ generate(options: DocumentationOptions, codeGraphData: CodeGraphRagData): Promise<string>;
21
+ }
22
+ //# sourceMappingURL=DocumentationGenerator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentationGenerator.d.ts","sourceRoot":"","sources":["../../src/documentation/DocumentationGenerator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,SAAS,CAAoB;gBAEzB,EAAE,EAAE,aAAa;IAO7B;;;;;;OAMG;IACG,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC;CAuChG"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * DocumentationGenerator - Main orchestrator for comprehensive documentation
3
+ */
4
+ import { CodeAnalyzer } from './CodeAnalyzer.js';
5
+ import { ConversationAnalyzer } from './ConversationAnalyzer.js';
6
+ import { CrossReferencer } from './CrossReferencer.js';
7
+ import { MarkdownFormatter } from './MarkdownFormatter.js';
8
+ export class DocumentationGenerator {
9
+ codeAnalyzer;
10
+ conversationAnalyzer;
11
+ crossReferencer;
12
+ formatter;
13
+ constructor(db) {
14
+ this.codeAnalyzer = new CodeAnalyzer();
15
+ this.conversationAnalyzer = new ConversationAnalyzer(db);
16
+ this.crossReferencer = new CrossReferencer();
17
+ this.formatter = new MarkdownFormatter();
18
+ }
19
+ /**
20
+ * Generate comprehensive documentation
21
+ *
22
+ * @param options - Documentation options
23
+ * @param codeGraphData - Data from CODE-GRAPH-RAG-MCP (must be fetched externally)
24
+ * @returns Markdown documentation
25
+ */
26
+ async generate(options, codeGraphData) {
27
+ console.error('\nšŸ“š Generating Comprehensive Documentation');
28
+ console.error(`Project: ${options.projectPath}`);
29
+ console.error(`Scope: ${options.scope}`);
30
+ if (options.sessionId) {
31
+ console.error(`Session: ${options.sessionId}`);
32
+ }
33
+ if (options.moduleFilter) {
34
+ console.error(`Filter: ${options.moduleFilter}`);
35
+ }
36
+ try {
37
+ // Step 1: Analyze code structure
38
+ const codeData = await this.codeAnalyzer.analyze(codeGraphData);
39
+ // Step 2: Analyze conversation history
40
+ const conversationData = await this.conversationAnalyzer.analyze(options.projectPath, options.sessionId);
41
+ // Step 3: Cross-reference code and conversations
42
+ const linkedData = await this.crossReferencer.link(codeData, conversationData);
43
+ // Step 4: Format as markdown
44
+ const documentation = this.formatter.format(linkedData, options);
45
+ console.error('āœ… Documentation generated successfully');
46
+ console.error(` Modules: ${linkedData.modules.length}`);
47
+ console.error(` Decisions: ${linkedData.statistics.totalDecisions}`);
48
+ console.error(` Mistakes: ${linkedData.statistics.totalMistakes}`);
49
+ return documentation;
50
+ }
51
+ catch (error) {
52
+ console.error('āŒ Error generating documentation:', error);
53
+ throw error;
54
+ }
55
+ }
56
+ }
57
+ //# sourceMappingURL=DocumentationGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentationGenerator.js","sourceRoot":"","sources":["../../src/documentation/DocumentationGenerator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAyB,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,MAAM,OAAO,sBAAsB;IACzB,YAAY,CAAe;IAC3B,oBAAoB,CAAuB;IAC3C,eAAe,CAAkB;IACjC,SAAS,CAAoB;IAErC,YAAY,EAAiB;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC7C,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC3C,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CAAC,OAA6B,EAAE,aAA+B;QAC3E,OAAO,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;QACjD,OAAO,CAAC,KAAK,CAAC,UAAU,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,YAAY,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC;YACH,iCAAiC;YACjC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAEhE,uCAAuC;YACvC,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAC9D,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,SAAS,CAClB,CAAC;YAEF,iDAAiD;YACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;YAE/E,6BAA6B;YAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YAEjE,OAAO,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACxD,OAAO,CAAC,KAAK,CAAC,eAAe,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,KAAK,CAAC,iBAAiB,UAAU,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,KAAK,CAAC,gBAAgB,UAAU,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC;YAErE,OAAO,aAAa,CAAC;QAEvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;YAC1D,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * MarkdownFormatter - Generates comprehensive markdown documentation
3
+ */
4
+ import type { LinkedData, DocumentationOptions } from './types.js';
5
+ export declare class MarkdownFormatter {
6
+ /**
7
+ * Format linked data as markdown
8
+ */
9
+ format(data: LinkedData, options: DocumentationOptions): string;
10
+ private renderHeader;
11
+ private renderStatistics;
12
+ private renderArchitecture;
13
+ private renderModule;
14
+ private renderModuleDecisions;
15
+ private renderModuleMistakes;
16
+ private renderModuleRequirements;
17
+ private renderModuleEntities;
18
+ private renderDecisions;
19
+ private renderQuality;
20
+ private renderTimeline;
21
+ private renderTimelineEvent;
22
+ private renderFooter;
23
+ private formatDate;
24
+ private formatMonth;
25
+ }
26
+ //# sourceMappingURL=MarkdownFormatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownFormatter.d.ts","sourceRoot":"","sources":["../../src/documentation/MarkdownFormatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,UAAU,EAGV,oBAAoB,EAOrB,MAAM,YAAY,CAAC;AAEpB,qBAAa,iBAAiB;IAC5B;;OAEG;IACH,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,oBAAoB,GAAG,MAAM;IA6B/D,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,kBAAkB;IAyB1B,OAAO,CAAC,YAAY;IAyBpB,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,oBAAoB;IAa5B,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,UAAU;IAQlB,OAAO,CAAC,WAAW;CAMpB"}