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":"ConversationParser.js","sourceRoot":"","sources":["../../src/parsers/ConversationParser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Decision Extractor - Identifies and extracts decisions from conversations.
3
+ *
4
+ * This extractor analyzes conversation messages and thinking blocks to identify
5
+ * technical and architectural decisions made during development. It captures:
6
+ * - What decision was made
7
+ * - Why it was made (rationale)
8
+ * - What alternatives were considered
9
+ * - Why alternatives were rejected
10
+ * - Context (what the decision was about)
11
+ *
12
+ * Uses pattern matching to detect decision indicators like "we decided to",
13
+ * "using X instead of Y because", and user corrections.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const extractor = new DecisionExtractor();
18
+ * const decisions = extractor.extractDecisions(messages, thinkingBlocks);
19
+ * console.log(`Found ${decisions.length} decisions`);
20
+ * decisions.forEach(d => {
21
+ * console.log(`Decision: ${d.decision_text}`);
22
+ * console.log(`Rationale: ${d.rationale}`);
23
+ * });
24
+ * ```
25
+ */
26
+ import type { Message, ThinkingBlock } from "./ConversationParser.js";
27
+ /**
28
+ * Represents a technical or architectural decision made during development.
29
+ */
30
+ export interface Decision {
31
+ /** Unique decision identifier */
32
+ id: string;
33
+ /** Conversation where this decision was made */
34
+ conversation_id: string;
35
+ /** Message containing the decision */
36
+ message_id: string;
37
+ /** The decision that was made */
38
+ decision_text: string;
39
+ /** Why this decision was made */
40
+ rationale?: string;
41
+ /** Alternative approaches that were considered */
42
+ alternatives_considered: string[];
43
+ /** Reasons why alternatives were rejected */
44
+ rejected_reasons: Record<string, string>;
45
+ /** Context/domain of the decision (e.g., 'database', 'authentication') */
46
+ context?: string;
47
+ /** Files affected by this decision */
48
+ related_files: string[];
49
+ /** Git commits implementing this decision */
50
+ related_commits: string[];
51
+ /** When the decision was made */
52
+ timestamp: number;
53
+ }
54
+ /**
55
+ * Extracts technical and architectural decisions from conversation history.
56
+ *
57
+ * Analyzes messages and thinking blocks using pattern matching to identify
58
+ * decisions, rationale, alternatives, and context.
59
+ */
60
+ export declare class DecisionExtractor {
61
+ private readonly MIN_QUALITY_SCORE;
62
+ private readonly NOISE_PATTERNS;
63
+ private readonly DECISION_PATTERNS;
64
+ private readonly CORRECTION_PATTERNS;
65
+ private readonly CONTEXT_KEYWORDS;
66
+ /**
67
+ * Extract decisions from messages and thinking blocks.
68
+ *
69
+ * Analyzes conversation messages to identify decisions using pattern matching.
70
+ * Looks for explicit decision statements, user corrections, and thinking blocks
71
+ * that contain decision-making processes.
72
+ *
73
+ * @param messages - Array of conversation messages to analyze
74
+ * @param thinkingBlocks - Array of thinking blocks (Claude's internal reasoning)
75
+ * @returns Array of extracted Decision objects
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const extractor = new DecisionExtractor();
80
+ * const decisions = extractor.extractDecisions(messages, thinkingBlocks);
81
+ *
82
+ * // Find decisions about databases
83
+ * const dbDecisions = decisions.filter(d => d.context?.includes('database'));
84
+ * ```
85
+ */
86
+ extractDecisions(messages: Message[], thinkingBlocks: ThinkingBlock[]): Decision[];
87
+ /**
88
+ * Check if content is noise that should be filtered out
89
+ */
90
+ private isNoiseContent;
91
+ /**
92
+ * Extract explicit decisions from assistant messages
93
+ */
94
+ private extractExplicitDecisions;
95
+ /**
96
+ * Parse a regex match into a Decision object
97
+ */
98
+ private parseDecisionMatch;
99
+ /**
100
+ * Extract structured decisions (e.g., "Decision: ..." format)
101
+ */
102
+ private extractStructuredDecisions;
103
+ /**
104
+ * Extract decisions from user corrections
105
+ */
106
+ private extractCorrections;
107
+ /**
108
+ * Check if content contains technical keywords suggesting a real decision
109
+ */
110
+ private hasTechnicalKeywords;
111
+ /**
112
+ * Extract decision text from matched pattern
113
+ */
114
+ private extractDecisionText;
115
+ /**
116
+ * Extract rationale from decision text
117
+ */
118
+ private extractRationale;
119
+ /**
120
+ * Extract alternative approaches that were considered
121
+ */
122
+ private extractAlternatives;
123
+ /**
124
+ * Extract reasons for rejecting alternatives
125
+ */
126
+ private extractRejectedReasons;
127
+ /**
128
+ * Identify what context/area this decision relates to
129
+ */
130
+ private identifyContext;
131
+ /**
132
+ * Extract related files from message metadata
133
+ */
134
+ private extractRelatedFiles;
135
+ /**
136
+ * Deduplicate similar decisions
137
+ */
138
+ private deduplicateDecisions;
139
+ /**
140
+ * Score a decision's importance (for prioritization)
141
+ */
142
+ scoreDecisionImportance(decision: Decision): number;
143
+ }
144
+ //# sourceMappingURL=DecisionExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecisionExtractor.d.ts","sourceRoot":"","sources":["../../src/parsers/DecisionExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,iCAAiC;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,gDAAgD;IAChD,eAAe,EAAE,MAAM,CAAC;IACxB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kDAAkD;IAClD,uBAAuB,EAAE,MAAM,EAAE,CAAC;IAClC,6CAA6C;IAC7C,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,6CAA6C;IAC7C,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iCAAiC;IACjC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,iBAAiB;IAE5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAK;IAGvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAc7B;IAGF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAShC;IAGF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CASlC;IAGF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAgB/B;IAEF;;;;;;;;;;;;;;;;;;;OAmBG;IACH,gBAAgB,CACd,QAAQ,EAAE,OAAO,EAAE,EACnB,cAAc,EAAE,aAAa,EAAE,GAC9B,QAAQ,EAAE;IAsCb;;OAEG;IACH,OAAO,CAAC,cAAc;IAKtB;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgChC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA0ClC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0C1B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA4B5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAoB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;CAuBpD"}
@@ -0,0 +1,434 @@
1
+ /**
2
+ * Decision Extractor - Identifies and extracts decisions from conversations.
3
+ *
4
+ * This extractor analyzes conversation messages and thinking blocks to identify
5
+ * technical and architectural decisions made during development. It captures:
6
+ * - What decision was made
7
+ * - Why it was made (rationale)
8
+ * - What alternatives were considered
9
+ * - Why alternatives were rejected
10
+ * - Context (what the decision was about)
11
+ *
12
+ * Uses pattern matching to detect decision indicators like "we decided to",
13
+ * "using X instead of Y because", and user corrections.
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const extractor = new DecisionExtractor();
18
+ * const decisions = extractor.extractDecisions(messages, thinkingBlocks);
19
+ * console.log(`Found ${decisions.length} decisions`);
20
+ * decisions.forEach(d => {
21
+ * console.log(`Decision: ${d.decision_text}`);
22
+ * console.log(`Rationale: ${d.rationale}`);
23
+ * });
24
+ * ```
25
+ */
26
+ import { nanoid } from "nanoid";
27
+ /**
28
+ * Extracts technical and architectural decisions from conversation history.
29
+ *
30
+ * Analyzes messages and thinking blocks using pattern matching to identify
31
+ * decisions, rationale, alternatives, and context.
32
+ */
33
+ export class DecisionExtractor {
34
+ // Minimum quality score required to store a decision
35
+ MIN_QUALITY_SCORE = 2;
36
+ // Patterns that indicate noise/garbage to filter out
37
+ NOISE_PATTERNS = [
38
+ /this session is being continued/i,
39
+ /conversation is summarized below/i,
40
+ /previous conversation that ran out of context/i,
41
+ /here is the summary/i,
42
+ /summary of the conversation/i,
43
+ /context from previous session/i,
44
+ /let me summarize/i,
45
+ /to summarize what we've done/i,
46
+ /^I'll help you/i,
47
+ /^Let me help you/i,
48
+ /^Sure,? I can/i,
49
+ /^I understand/i,
50
+ /^Great question/i,
51
+ ];
52
+ // Decision pattern indicators - more focused on technical decisions
53
+ DECISION_PATTERNS = [
54
+ // Technical decision with comparison and rationale
55
+ /(?:using|use|implement|adopt)\s+(.+?)\s+(?:instead of|over|rather than)\s+(.+?)\s+(?:because|since|as|for)\s+(.+?)(?:\.|$)/gi,
56
+ // Explicit architectural decision
57
+ /(?:architectural|technical|design)\s+decision:\s*(.+?)(?:\.|$)/gi,
58
+ // We decided with clear rationale
59
+ /(?:we|i)\s+(?:decided|chose)\s+(?:to\s+)?(.+?)\s+(?:because|since|due to|for)\s+(.+?)(?:\.|$)/gi,
60
+ // Rejected alternative with reason
61
+ /(?:rejected|dismissed|avoided|ruled out)\s+(.+?)\s+(?:because|due to|since|as)\s+(.+?)(?:\.|$)/gi,
62
+ ];
63
+ // Correction patterns - stricter, require technical context
64
+ CORRECTION_PATTERNS = [
65
+ // "No, use X instead of Y"
66
+ /^no[,\s]+(?:use|implement|go with)\s+(.+?)\s+(?:instead|rather)/i,
67
+ // "Actually, we should use X because Y"
68
+ /^actually[,\s]+(?:we should|you should|use|implement)\s+(.+?)\s+(?:because|since)/i,
69
+ // "That's wrong, the correct approach is X"
70
+ /that'?s?\s+(?:wrong|incorrect)[,\s]+(?:the correct|use|we should)\s+(.+)/i,
71
+ // "Don't use X, use Y instead"
72
+ /don't\s+(?:use|implement)\s+(.+?)[,\s]+(?:use|implement)\s+(.+)/i,
73
+ ];
74
+ // Context keywords to identify what the decision is about
75
+ CONTEXT_KEYWORDS = [
76
+ "authentication",
77
+ "auth",
78
+ "database",
79
+ "api",
80
+ "frontend",
81
+ "backend",
82
+ "testing",
83
+ "deployment",
84
+ "security",
85
+ "performance",
86
+ "architecture",
87
+ "design pattern",
88
+ "library",
89
+ "framework",
90
+ "optimization",
91
+ ];
92
+ /**
93
+ * Extract decisions from messages and thinking blocks.
94
+ *
95
+ * Analyzes conversation messages to identify decisions using pattern matching.
96
+ * Looks for explicit decision statements, user corrections, and thinking blocks
97
+ * that contain decision-making processes.
98
+ *
99
+ * @param messages - Array of conversation messages to analyze
100
+ * @param thinkingBlocks - Array of thinking blocks (Claude's internal reasoning)
101
+ * @returns Array of extracted Decision objects
102
+ *
103
+ * @example
104
+ * ```typescript
105
+ * const extractor = new DecisionExtractor();
106
+ * const decisions = extractor.extractDecisions(messages, thinkingBlocks);
107
+ *
108
+ * // Find decisions about databases
109
+ * const dbDecisions = decisions.filter(d => d.context?.includes('database'));
110
+ * ```
111
+ */
112
+ extractDecisions(messages, thinkingBlocks) {
113
+ const decisions = [];
114
+ // Extract from assistant messages with thinking blocks
115
+ for (const message of messages) {
116
+ if (message.role === "assistant" && message.content) {
117
+ // Skip messages that are noise (session summaries, etc.)
118
+ if (this.isNoiseContent(message.content)) {
119
+ continue;
120
+ }
121
+ const thinking = thinkingBlocks.find((t) => t.message_id === message.id);
122
+ // Check for explicit decisions in message content
123
+ const explicitDecisions = this.extractExplicitDecisions(message, thinking);
124
+ decisions.push(...explicitDecisions);
125
+ }
126
+ // Extract from user corrections
127
+ if (message.role === "user" && message.content) {
128
+ // Skip noise content
129
+ if (this.isNoiseContent(message.content)) {
130
+ continue;
131
+ }
132
+ const corrections = this.extractCorrections(message);
133
+ decisions.push(...corrections);
134
+ }
135
+ }
136
+ // Deduplicate similar decisions
137
+ const deduplicated = this.deduplicateDecisions(decisions);
138
+ // Filter by quality score
139
+ return deduplicated.filter((d) => this.scoreDecisionImportance(d) >= this.MIN_QUALITY_SCORE);
140
+ }
141
+ /**
142
+ * Check if content is noise that should be filtered out
143
+ */
144
+ isNoiseContent(content) {
145
+ const firstChunk = content.substring(0, 500);
146
+ return this.NOISE_PATTERNS.some((pattern) => pattern.test(firstChunk));
147
+ }
148
+ /**
149
+ * Extract explicit decisions from assistant messages
150
+ */
151
+ extractExplicitDecisions(message, thinkingBlock) {
152
+ const decisions = [];
153
+ const content = message.content || "";
154
+ const thinkingContent = thinkingBlock?.thinking_content || "";
155
+ const combinedContent = `${content}\n${thinkingContent}`;
156
+ // Look for decision patterns
157
+ for (const pattern of this.DECISION_PATTERNS) {
158
+ const matches = Array.from(combinedContent.matchAll(pattern));
159
+ for (const match of matches) {
160
+ const decision = this.parseDecisionMatch(match, message, thinkingBlock);
161
+ if (decision) {
162
+ decisions.push(decision);
163
+ }
164
+ }
165
+ }
166
+ // Extract from structured decision statements
167
+ const structuredDecisions = this.extractStructuredDecisions(combinedContent, message, thinkingBlock);
168
+ decisions.push(...structuredDecisions);
169
+ return decisions;
170
+ }
171
+ /**
172
+ * Parse a regex match into a Decision object
173
+ */
174
+ parseDecisionMatch(match, message, _thinking) {
175
+ if (!match[0]) {
176
+ return null;
177
+ }
178
+ const fullText = match[0];
179
+ const decisionText = this.extractDecisionText(fullText);
180
+ const rationale = this.extractRationale(fullText);
181
+ // Extract context (what this decision is about)
182
+ const context = this.identifyContext(fullText);
183
+ // Extract related files from message metadata
184
+ const relatedFiles = this.extractRelatedFiles(message);
185
+ return {
186
+ id: nanoid(),
187
+ conversation_id: message.conversation_id,
188
+ message_id: message.id,
189
+ decision_text: decisionText,
190
+ rationale,
191
+ alternatives_considered: this.extractAlternatives(fullText),
192
+ rejected_reasons: this.extractRejectedReasons(fullText),
193
+ context,
194
+ related_files: relatedFiles,
195
+ related_commits: [], // Will be filled by GitIntegrator
196
+ timestamp: message.timestamp,
197
+ };
198
+ }
199
+ /**
200
+ * Extract structured decisions (e.g., "Decision: ..." format)
201
+ */
202
+ extractStructuredDecisions(content, message, _thinking) {
203
+ const decisions = [];
204
+ // Look for structured decision blocks
205
+ const decisionBlockPattern = /(?:Decision|Chose|Selected|Using):\s*([^\n]+)(?:\s*Rationale:\s*([^\n]+))?(?:\s*Alternatives:\s*([^\n]+))?/gi;
206
+ const matches = Array.from(content.matchAll(decisionBlockPattern));
207
+ for (const match of matches) {
208
+ const decisionText = match[1]?.trim();
209
+ if (!decisionText) {
210
+ continue;
211
+ }
212
+ const rationale = match[2]?.trim();
213
+ const alternativesText = match[3]?.trim();
214
+ const alternatives = alternativesText
215
+ ? alternativesText.split(/,|;/).map((a) => a.trim())
216
+ : [];
217
+ decisions.push({
218
+ id: nanoid(),
219
+ conversation_id: message.conversation_id,
220
+ message_id: message.id,
221
+ decision_text: decisionText,
222
+ rationale,
223
+ alternatives_considered: alternatives,
224
+ rejected_reasons: {},
225
+ context: this.identifyContext(content),
226
+ related_files: this.extractRelatedFiles(message),
227
+ related_commits: [],
228
+ timestamp: message.timestamp,
229
+ });
230
+ }
231
+ return decisions;
232
+ }
233
+ /**
234
+ * Extract decisions from user corrections
235
+ */
236
+ extractCorrections(message) {
237
+ const content = message.content || "";
238
+ const decisions = [];
239
+ // Check each correction pattern and extract structured data
240
+ for (const pattern of this.CORRECTION_PATTERNS) {
241
+ const match = content.match(pattern);
242
+ if (match) {
243
+ // Extract the decision from the capture groups
244
+ const decisionText = match[1]?.trim() || match[0];
245
+ const alternative = match[2]?.trim();
246
+ // Must have technical context to be a valid correction
247
+ const context = this.identifyContext(content);
248
+ if (!context && !this.hasTechnicalKeywords(content)) {
249
+ continue;
250
+ }
251
+ decisions.push({
252
+ id: nanoid(),
253
+ conversation_id: message.conversation_id,
254
+ message_id: message.id,
255
+ decision_text: alternative
256
+ ? `Use ${alternative} instead of ${decisionText}`
257
+ : decisionText,
258
+ rationale: "User correction - previous approach was incorrect",
259
+ alternatives_considered: alternative ? [decisionText] : [],
260
+ rejected_reasons: alternative
261
+ ? { [decisionText]: "user rejected" }
262
+ : { "previous approach": "user rejected" },
263
+ context,
264
+ related_files: this.extractRelatedFiles(message),
265
+ related_commits: [],
266
+ timestamp: message.timestamp,
267
+ });
268
+ break; // Only extract one correction per message
269
+ }
270
+ }
271
+ return decisions;
272
+ }
273
+ /**
274
+ * Check if content contains technical keywords suggesting a real decision
275
+ */
276
+ hasTechnicalKeywords(content) {
277
+ const technicalKeywords = [
278
+ "function",
279
+ "class",
280
+ "method",
281
+ "variable",
282
+ "import",
283
+ "export",
284
+ "component",
285
+ "module",
286
+ "package",
287
+ "library",
288
+ "framework",
289
+ "database",
290
+ "query",
291
+ "api",
292
+ "endpoint",
293
+ "route",
294
+ "config",
295
+ "setting",
296
+ "type",
297
+ "interface",
298
+ "schema",
299
+ ];
300
+ const lowerContent = content.toLowerCase();
301
+ return technicalKeywords.some((kw) => lowerContent.includes(kw));
302
+ }
303
+ /**
304
+ * Extract decision text from matched pattern
305
+ */
306
+ extractDecisionText(text) {
307
+ // Remove common prefixes
308
+ let cleaned = text.replace(/^(?:we|i|let's)\s+(?:decided|choose|chose|went with|picked|selected)\s+(?:to\s+)?/i, "");
309
+ // Remove trailing explanation
310
+ cleaned = cleaned.replace(/\s+(?:because|since|as|for|due to).+$/i, "");
311
+ return cleaned.trim();
312
+ }
313
+ /**
314
+ * Extract rationale from decision text
315
+ */
316
+ extractRationale(text) {
317
+ const rationaleMatch = text.match(/(?:because|since|as|for|due to)\s+(.+?)(?:\.|$)/i);
318
+ return rationaleMatch?.[1]?.trim();
319
+ }
320
+ /**
321
+ * Extract alternative approaches that were considered
322
+ */
323
+ extractAlternatives(text) {
324
+ const alternatives = [];
325
+ // Look for "instead of X" patterns
326
+ const insteadOfMatch = text.match(/(?:instead of|over|rather than)\s+(.+?)(?:\s+because|$)/i);
327
+ if (insteadOfMatch) {
328
+ alternatives.push(insteadOfMatch[1].trim());
329
+ }
330
+ // Look for "considered X, Y, and Z"
331
+ const consideredMatch = text.match(/considered\s+(.+?)(?:\s+but|$)/i);
332
+ if (consideredMatch) {
333
+ const items = consideredMatch[1].split(/,|and/).map((s) => s.trim());
334
+ alternatives.push(...items);
335
+ }
336
+ return alternatives;
337
+ }
338
+ /**
339
+ * Extract reasons for rejecting alternatives
340
+ */
341
+ extractRejectedReasons(text) {
342
+ const reasons = {};
343
+ // Look for "rejected X because Y" patterns
344
+ const rejectedPattern = /(?:rejected|dismissed|avoided|didn't use)\s+(.+?)\s+(?:because|due to|since)\s+(.+?)(?:\.|$)/gi;
345
+ const matches = Array.from(text.matchAll(rejectedPattern));
346
+ for (const match of matches) {
347
+ const alternative = match[1]?.trim();
348
+ const reason = match[2]?.trim();
349
+ if (alternative && reason) {
350
+ reasons[alternative] = reason;
351
+ }
352
+ }
353
+ return reasons;
354
+ }
355
+ /**
356
+ * Identify what context/area this decision relates to
357
+ */
358
+ identifyContext(text) {
359
+ const lowerText = text.toLowerCase();
360
+ for (const keyword of this.CONTEXT_KEYWORDS) {
361
+ if (lowerText.includes(keyword)) {
362
+ return keyword;
363
+ }
364
+ }
365
+ return undefined;
366
+ }
367
+ /**
368
+ * Extract related files from message metadata
369
+ */
370
+ extractRelatedFiles(message) {
371
+ const files = [];
372
+ // Check message metadata for file references
373
+ if (message.metadata) {
374
+ // Look for file paths in various metadata fields
375
+ const metadataStr = JSON.stringify(message.metadata);
376
+ const filePathPattern = /(?:\/[\w-]+)+\.[\w]+/g;
377
+ const matches = metadataStr.match(filePathPattern);
378
+ if (matches) {
379
+ files.push(...matches);
380
+ }
381
+ }
382
+ return [...new Set(files)]; // Deduplicate
383
+ }
384
+ /**
385
+ * Deduplicate similar decisions
386
+ */
387
+ deduplicateDecisions(decisions) {
388
+ const unique = [];
389
+ const seen = new Set();
390
+ for (const decision of decisions) {
391
+ // Create a signature including message_id to avoid collisions
392
+ // between different decisions with similar text in the same conversation
393
+ const textPrefix = decision.decision_text.toLowerCase().substring(0, 100);
394
+ const signature = `${decision.message_id}_${textPrefix}_${decision.timestamp}`;
395
+ if (!seen.has(signature)) {
396
+ seen.add(signature);
397
+ unique.push(decision);
398
+ }
399
+ }
400
+ return unique;
401
+ }
402
+ /**
403
+ * Score a decision's importance (for prioritization)
404
+ */
405
+ scoreDecisionImportance(decision) {
406
+ let score = 0;
407
+ // Has rationale
408
+ if (decision.rationale) {
409
+ score += 2;
410
+ }
411
+ // Has alternatives considered
412
+ if (decision.alternatives_considered.length > 0) {
413
+ score += 3;
414
+ }
415
+ // Has rejected reasons
416
+ if (Object.keys(decision.rejected_reasons).length > 0) {
417
+ score += 3;
418
+ }
419
+ // Has related files
420
+ if (decision.related_files.length > 0) {
421
+ score += 2;
422
+ }
423
+ // Has context
424
+ if (decision.context) {
425
+ score += 1;
426
+ }
427
+ // Is a correction (high importance)
428
+ if (decision.rationale?.includes("User correction")) {
429
+ score += 5;
430
+ }
431
+ return score;
432
+ }
433
+ }
434
+ //# sourceMappingURL=DecisionExtractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DecisionExtractor.js","sourceRoot":"","sources":["../../src/parsers/DecisionExtractor.ts"],"names":[],"mappings":"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"}