claude-conversation-memory-mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +223 -0
  3. package/dist/ConversationMemory.d.ts +80 -0
  4. package/dist/ConversationMemory.d.ts.map +1 -0
  5. package/dist/ConversationMemory.js +203 -0
  6. package/dist/ConversationMemory.js.map +1 -0
  7. package/dist/documentation/CodeAnalyzer.d.ts +29 -0
  8. package/dist/documentation/CodeAnalyzer.d.ts.map +1 -0
  9. package/dist/documentation/CodeAnalyzer.js +122 -0
  10. package/dist/documentation/CodeAnalyzer.js.map +1 -0
  11. package/dist/documentation/ConversationAnalyzer.d.ts +19 -0
  12. package/dist/documentation/ConversationAnalyzer.d.ts.map +1 -0
  13. package/dist/documentation/ConversationAnalyzer.js +156 -0
  14. package/dist/documentation/ConversationAnalyzer.js.map +1 -0
  15. package/dist/documentation/CrossReferencer.d.ts +67 -0
  16. package/dist/documentation/CrossReferencer.d.ts.map +1 -0
  17. package/dist/documentation/CrossReferencer.js +247 -0
  18. package/dist/documentation/CrossReferencer.js.map +1 -0
  19. package/dist/documentation/DocumentationGenerator.d.ts +22 -0
  20. package/dist/documentation/DocumentationGenerator.d.ts.map +1 -0
  21. package/dist/documentation/DocumentationGenerator.js +57 -0
  22. package/dist/documentation/DocumentationGenerator.js.map +1 -0
  23. package/dist/documentation/MarkdownFormatter.d.ts +26 -0
  24. package/dist/documentation/MarkdownFormatter.d.ts.map +1 -0
  25. package/dist/documentation/MarkdownFormatter.js +301 -0
  26. package/dist/documentation/MarkdownFormatter.js.map +1 -0
  27. package/dist/documentation/types.d.ts +176 -0
  28. package/dist/documentation/types.d.ts.map +1 -0
  29. package/dist/documentation/types.js +5 -0
  30. package/dist/documentation/types.js.map +1 -0
  31. package/dist/embeddings/EmbeddingConfig.d.ts +39 -0
  32. package/dist/embeddings/EmbeddingConfig.d.ts.map +1 -0
  33. package/dist/embeddings/EmbeddingConfig.js +132 -0
  34. package/dist/embeddings/EmbeddingConfig.js.map +1 -0
  35. package/dist/embeddings/EmbeddingGenerator.d.ts +45 -0
  36. package/dist/embeddings/EmbeddingGenerator.d.ts.map +1 -0
  37. package/dist/embeddings/EmbeddingGenerator.js +129 -0
  38. package/dist/embeddings/EmbeddingGenerator.js.map +1 -0
  39. package/dist/embeddings/EmbeddingProvider.d.ts +34 -0
  40. package/dist/embeddings/EmbeddingProvider.d.ts.map +1 -0
  41. package/dist/embeddings/EmbeddingProvider.js +6 -0
  42. package/dist/embeddings/EmbeddingProvider.js.map +1 -0
  43. package/dist/embeddings/VectorStore.d.ts +75 -0
  44. package/dist/embeddings/VectorStore.d.ts.map +1 -0
  45. package/dist/embeddings/VectorStore.js +220 -0
  46. package/dist/embeddings/VectorStore.js.map +1 -0
  47. package/dist/embeddings/providers/OllamaEmbeddings.d.ts +38 -0
  48. package/dist/embeddings/providers/OllamaEmbeddings.d.ts.map +1 -0
  49. package/dist/embeddings/providers/OllamaEmbeddings.js +132 -0
  50. package/dist/embeddings/providers/OllamaEmbeddings.js.map +1 -0
  51. package/dist/embeddings/providers/OpenAIEmbeddings.d.ts +40 -0
  52. package/dist/embeddings/providers/OpenAIEmbeddings.d.ts.map +1 -0
  53. package/dist/embeddings/providers/OpenAIEmbeddings.js +128 -0
  54. package/dist/embeddings/providers/OpenAIEmbeddings.js.map +1 -0
  55. package/dist/embeddings/providers/TransformersEmbeddings.d.ts +38 -0
  56. package/dist/embeddings/providers/TransformersEmbeddings.d.ts.map +1 -0
  57. package/dist/embeddings/providers/TransformersEmbeddings.js +114 -0
  58. package/dist/embeddings/providers/TransformersEmbeddings.js.map +1 -0
  59. package/dist/index.d.ts +7 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +127 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/parsers/ConversationParser.d.ts +138 -0
  64. package/dist/parsers/ConversationParser.d.ts.map +1 -0
  65. package/dist/parsers/ConversationParser.js +325 -0
  66. package/dist/parsers/ConversationParser.js.map +1 -0
  67. package/dist/parsers/DecisionExtractor.d.ts +76 -0
  68. package/dist/parsers/DecisionExtractor.d.ts.map +1 -0
  69. package/dist/parsers/DecisionExtractor.js +305 -0
  70. package/dist/parsers/DecisionExtractor.js.map +1 -0
  71. package/dist/parsers/GitIntegrator.d.ts +71 -0
  72. package/dist/parsers/GitIntegrator.d.ts.map +1 -0
  73. package/dist/parsers/GitIntegrator.js +283 -0
  74. package/dist/parsers/GitIntegrator.js.map +1 -0
  75. package/dist/parsers/MistakeExtractor.d.ts +86 -0
  76. package/dist/parsers/MistakeExtractor.d.ts.map +1 -0
  77. package/dist/parsers/MistakeExtractor.js +341 -0
  78. package/dist/parsers/MistakeExtractor.js.map +1 -0
  79. package/dist/parsers/RequirementsExtractor.d.ts +70 -0
  80. package/dist/parsers/RequirementsExtractor.d.ts.map +1 -0
  81. package/dist/parsers/RequirementsExtractor.js +252 -0
  82. package/dist/parsers/RequirementsExtractor.js.map +1 -0
  83. package/dist/search/SemanticSearch.d.ts +90 -0
  84. package/dist/search/SemanticSearch.d.ts.map +1 -0
  85. package/dist/search/SemanticSearch.js +352 -0
  86. package/dist/search/SemanticSearch.js.map +1 -0
  87. package/dist/storage/ConversationStorage.d.ts +53 -0
  88. package/dist/storage/ConversationStorage.d.ts.map +1 -0
  89. package/dist/storage/ConversationStorage.js +249 -0
  90. package/dist/storage/ConversationStorage.js.map +1 -0
  91. package/dist/storage/SQLiteManager.d.ts +88 -0
  92. package/dist/storage/SQLiteManager.d.ts.map +1 -0
  93. package/dist/storage/SQLiteManager.js +281 -0
  94. package/dist/storage/SQLiteManager.js.map +1 -0
  95. package/dist/storage/migrations.d.ts +54 -0
  96. package/dist/storage/migrations.d.ts.map +1 -0
  97. package/dist/storage/migrations.js +153 -0
  98. package/dist/storage/migrations.js.map +1 -0
  99. package/dist/storage/schema.sql +321 -0
  100. package/dist/tools/ToolDefinitions.d.ts +265 -0
  101. package/dist/tools/ToolDefinitions.d.ts.map +1 -0
  102. package/dist/tools/ToolDefinitions.js +261 -0
  103. package/dist/tools/ToolDefinitions.js.map +1 -0
  104. package/dist/tools/ToolHandlers.d.ts +56 -0
  105. package/dist/tools/ToolHandlers.d.ts.map +1 -0
  106. package/dist/tools/ToolHandlers.js +431 -0
  107. package/dist/tools/ToolHandlers.js.map +1 -0
  108. package/dist/types/ToolTypes.d.ts +333 -0
  109. package/dist/types/ToolTypes.d.ts.map +1 -0
  110. package/dist/types/ToolTypes.js +6 -0
  111. package/dist/types/ToolTypes.js.map +1 -0
  112. package/dist/utils/sanitization.d.ts +35 -0
  113. package/dist/utils/sanitization.d.ts.map +1 -0
  114. package/dist/utils/sanitization.js +97 -0
  115. package/dist/utils/sanitization.js.map +1 -0
  116. package/package.json +87 -0
@@ -0,0 +1,333 @@
1
+ /**
2
+ * Type definitions for MCP Tool arguments and responses
3
+ * Replaces 'any' types with proper interfaces for type safety
4
+ */
5
+ export interface IndexConversationsArgs {
6
+ project_path?: string;
7
+ session_id?: string;
8
+ include_thinking?: boolean;
9
+ enable_git?: boolean;
10
+ exclude_mcp_conversations?: boolean | 'self-only' | 'all-mcp';
11
+ exclude_mcp_servers?: string[];
12
+ }
13
+ export interface SearchConversationsArgs {
14
+ query: string;
15
+ limit?: number;
16
+ date_range?: [number, number];
17
+ }
18
+ export interface GetDecisionsArgs {
19
+ query: string;
20
+ file_path?: string;
21
+ limit?: number;
22
+ }
23
+ export interface CheckBeforeModifyArgs {
24
+ file_path: string;
25
+ }
26
+ export interface GetFileEvolutionArgs {
27
+ file_path: string;
28
+ include_decisions?: boolean;
29
+ include_commits?: boolean;
30
+ }
31
+ export interface LinkCommitsToConversationsArgs {
32
+ query?: string;
33
+ conversation_id?: string;
34
+ limit?: number;
35
+ }
36
+ export interface SearchMistakesArgs {
37
+ query: string;
38
+ mistake_type?: string;
39
+ limit?: number;
40
+ }
41
+ export interface GetRequirementsArgs {
42
+ component: string;
43
+ type?: string;
44
+ }
45
+ export interface GetToolHistoryArgs {
46
+ tool_name?: string;
47
+ file_path?: string;
48
+ limit?: number;
49
+ }
50
+ export interface FindSimilarSessionsArgs {
51
+ query: string;
52
+ limit?: number;
53
+ }
54
+ export interface GenerateDocumentationArgs {
55
+ project_path?: string;
56
+ session_id?: string;
57
+ scope?: 'full' | 'architecture' | 'decisions' | 'quality';
58
+ module_filter?: string;
59
+ }
60
+ export interface IndexConversationsResponse {
61
+ success: boolean;
62
+ project_path: string;
63
+ stats: {
64
+ conversations: {
65
+ count: number;
66
+ };
67
+ messages: {
68
+ count: number;
69
+ };
70
+ decisions: {
71
+ count: number;
72
+ };
73
+ mistakes: {
74
+ count: number;
75
+ };
76
+ git_commits: {
77
+ count: number;
78
+ };
79
+ };
80
+ embeddings_generated?: boolean;
81
+ embedding_error?: string;
82
+ message: string;
83
+ }
84
+ export interface SearchResult {
85
+ conversation_id: string;
86
+ message_id: string;
87
+ timestamp: string;
88
+ similarity: number;
89
+ snippet: string;
90
+ git_branch?: string;
91
+ message_type: string;
92
+ role?: string;
93
+ }
94
+ export interface SearchConversationsResponse {
95
+ query: string;
96
+ results: SearchResult[];
97
+ total_found: number;
98
+ }
99
+ export interface DecisionResult {
100
+ decision_id: string;
101
+ decision_text: string;
102
+ rationale?: string;
103
+ alternatives_considered: string[];
104
+ rejected_reasons: Record<string, string>;
105
+ context?: string;
106
+ related_files: string[];
107
+ related_commits: string[];
108
+ timestamp: string;
109
+ similarity: number;
110
+ }
111
+ export interface GetDecisionsResponse {
112
+ query: string;
113
+ file_path?: string;
114
+ decisions: DecisionResult[];
115
+ total_found: number;
116
+ }
117
+ export interface EditInfo {
118
+ timestamp: string;
119
+ conversation_id: string;
120
+ }
121
+ export interface CommitInfo {
122
+ hash: string;
123
+ message: string;
124
+ timestamp: string;
125
+ }
126
+ export interface DecisionInfo {
127
+ decision_text: string;
128
+ rationale?: string;
129
+ timestamp: string;
130
+ }
131
+ export interface MistakeInfo {
132
+ what_went_wrong: string;
133
+ correction?: string;
134
+ mistake_type: string;
135
+ }
136
+ export interface CheckBeforeModifyResponse {
137
+ file_path: string;
138
+ warning: string;
139
+ recent_changes: {
140
+ edits: EditInfo[];
141
+ commits: CommitInfo[];
142
+ };
143
+ related_decisions: DecisionInfo[];
144
+ mistakes_to_avoid: MistakeInfo[];
145
+ }
146
+ export interface TimelineEvent {
147
+ type: 'edit' | 'commit' | 'decision';
148
+ timestamp: string;
149
+ data: Record<string, unknown>;
150
+ }
151
+ export interface GetFileEvolutionResponse {
152
+ file_path: string;
153
+ total_edits: number;
154
+ timeline: TimelineEvent[];
155
+ }
156
+ export interface CommitResult {
157
+ hash: string;
158
+ full_hash: string;
159
+ message: string;
160
+ author?: string;
161
+ timestamp: string;
162
+ branch?: string;
163
+ files_changed: string[];
164
+ conversation_id?: string;
165
+ }
166
+ export interface LinkCommitsToConversationsResponse {
167
+ query?: string;
168
+ conversation_id?: string;
169
+ commits: CommitResult[];
170
+ total_found: number;
171
+ }
172
+ export interface MistakeResult {
173
+ mistake_id: string;
174
+ mistake_type: string;
175
+ what_went_wrong: string;
176
+ correction?: string;
177
+ user_correction_message?: string;
178
+ files_affected: string[];
179
+ timestamp: string;
180
+ }
181
+ export interface SearchMistakesResponse {
182
+ query: string;
183
+ mistake_type?: string;
184
+ mistakes: MistakeResult[];
185
+ total_found: number;
186
+ }
187
+ export interface RequirementResult {
188
+ requirement_id: string;
189
+ type: string;
190
+ description: string;
191
+ rationale?: string;
192
+ affects_components: string[];
193
+ timestamp: string;
194
+ }
195
+ export interface GetRequirementsResponse {
196
+ component: string;
197
+ type?: string;
198
+ requirements: RequirementResult[];
199
+ total_found: number;
200
+ }
201
+ export interface ToolUseResult {
202
+ tool_use_id: string;
203
+ tool_name: string;
204
+ tool_input: Record<string, unknown>;
205
+ result: {
206
+ content?: string;
207
+ is_error: boolean;
208
+ stdout?: string;
209
+ stderr?: string;
210
+ };
211
+ timestamp: string;
212
+ }
213
+ export interface GetToolHistoryResponse {
214
+ tool_name?: string;
215
+ file_path?: string;
216
+ tool_uses: ToolUseResult[];
217
+ total_found: number;
218
+ }
219
+ export interface RelevantMessage {
220
+ message_id: string;
221
+ snippet: string;
222
+ similarity: number;
223
+ }
224
+ export interface SessionResult {
225
+ conversation_id: string;
226
+ project_path: string;
227
+ first_message_at: string;
228
+ message_count: number;
229
+ git_branch?: string;
230
+ relevance_score: number;
231
+ relevant_messages: RelevantMessage[];
232
+ }
233
+ export interface FindSimilarSessionsResponse {
234
+ query: string;
235
+ sessions: SessionResult[];
236
+ total_found: number;
237
+ }
238
+ export interface GenerateDocumentationResponse {
239
+ success: boolean;
240
+ project_path: string;
241
+ scope: string;
242
+ documentation: string;
243
+ statistics: {
244
+ modules: number;
245
+ decisions: number;
246
+ mistakes: number;
247
+ commits: number;
248
+ };
249
+ }
250
+ export interface ConversationRow {
251
+ id: string;
252
+ project_path: string;
253
+ first_message_at: number;
254
+ last_message_at: number;
255
+ message_count: number;
256
+ git_branch?: string;
257
+ claude_version?: string;
258
+ metadata: string;
259
+ created_at: number;
260
+ updated_at: number;
261
+ }
262
+ export interface MessageRow {
263
+ id: string;
264
+ conversation_id: string;
265
+ parent_id?: string;
266
+ message_type: string;
267
+ role?: string;
268
+ content?: string;
269
+ timestamp: number;
270
+ is_sidechain: number;
271
+ agent_id?: string;
272
+ request_id?: string;
273
+ git_branch?: string;
274
+ cwd?: string;
275
+ metadata: string;
276
+ }
277
+ export interface DecisionRow {
278
+ id: string;
279
+ conversation_id: string;
280
+ message_id: string;
281
+ decision_text: string;
282
+ rationale?: string;
283
+ alternatives_considered: string;
284
+ rejected_reasons: string;
285
+ context?: string;
286
+ related_files: string;
287
+ related_commits: string;
288
+ timestamp: number;
289
+ }
290
+ export interface MistakeRow {
291
+ id: string;
292
+ conversation_id: string;
293
+ message_id: string;
294
+ mistake_type: string;
295
+ what_went_wrong: string;
296
+ correction?: string;
297
+ user_correction_message?: string;
298
+ files_affected: string;
299
+ timestamp: number;
300
+ }
301
+ export interface GitCommitRow {
302
+ hash: string;
303
+ message: string;
304
+ author?: string;
305
+ timestamp: number;
306
+ branch?: string;
307
+ files_changed: string;
308
+ conversation_id?: string;
309
+ related_message_id?: string;
310
+ metadata: string;
311
+ }
312
+ export interface RequirementRow {
313
+ id: string;
314
+ type: string;
315
+ description: string;
316
+ rationale?: string;
317
+ affects_components: string;
318
+ conversation_id: string;
319
+ message_id: string;
320
+ timestamp: number;
321
+ }
322
+ export interface ToolUseRow {
323
+ id: string;
324
+ message_id: string;
325
+ tool_name: string;
326
+ tool_input: string;
327
+ timestamp: number;
328
+ result_content?: string;
329
+ is_error: number;
330
+ stdout?: string;
331
+ stderr?: string;
332
+ }
333
+ //# sourceMappingURL=ToolTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolTypes.d.ts","sourceRoot":"","sources":["../../src/types/ToolTypes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Type definitions for MCP Tool arguments and responses
3
+ * Replaces 'any' types with proper interfaces for type safety
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=ToolTypes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ToolTypes.js","sourceRoot":"","sources":["../../src/types/ToolTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Input sanitization utilities for SQL LIKE queries and path validation
3
+ */
4
+ /**
5
+ * Sanitize string for use in SQL LIKE patterns
6
+ * Escapes special LIKE characters: %, _, "
7
+ */
8
+ export declare function sanitizeForLike(input: string): string;
9
+ /**
10
+ * Validate and sanitize file path
11
+ * Cross-platform: prevents path traversal attacks and blocks system directories
12
+ */
13
+ export declare function validateFilePath(filePath: string): string;
14
+ /**
15
+ * Validate and normalize project path
16
+ * Cross-platform: handles both Unix (/) and Windows (\) paths
17
+ * Used for converting file paths to Claude project directory names
18
+ */
19
+ export declare function sanitizeProjectPath(path: string): string;
20
+ /**
21
+ * Sanitize SQL identifier (table/column name)
22
+ * Only allows alphanumeric and underscore
23
+ */
24
+ export declare function sanitizeSQLIdentifier(identifier: string): string;
25
+ /**
26
+ * Convert a project path to Claude Code's project folder name
27
+ * Cross-platform compatible - handles both Unix and Windows paths
28
+ *
29
+ * Examples:
30
+ * - macOS/Linux: /Users/joker/github/project → -Users-joker-github-project
31
+ * - Windows: C:\Users\user\project → C-Users-user-project
32
+ * - Windows UNC: \\server\share\project → -server-share-project
33
+ */
34
+ export declare function pathToProjectFolderName(projectPath: string): string;
35
+ //# sourceMappingURL=sanitization.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitization.d.ts","sourceRoot":"","sources":["../../src/utils/sanitization.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAiCzD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBxD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAKhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAWnE"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * Input sanitization utilities for SQL LIKE queries and path validation
3
+ */
4
+ import { normalize, sep } from 'path';
5
+ /**
6
+ * Sanitize string for use in SQL LIKE patterns
7
+ * Escapes special LIKE characters: %, _, "
8
+ */
9
+ export function sanitizeForLike(input) {
10
+ return input.replace(/[%_"\\]/g, '\\$&');
11
+ }
12
+ /**
13
+ * Validate and sanitize file path
14
+ * Cross-platform: prevents path traversal attacks and blocks system directories
15
+ */
16
+ export function validateFilePath(filePath) {
17
+ // Remove any null bytes
18
+ const cleaned = filePath.replace(/\0/g, '');
19
+ // Check for path traversal attempts
20
+ if (cleaned.includes('..')) {
21
+ throw new Error('Path traversal detected: .. is not allowed in file paths');
22
+ }
23
+ // Check for absolute paths outside allowed directories (platform-specific)
24
+ const isWindows = process.platform === 'win32';
25
+ if (isWindows) {
26
+ // Windows system directories (case-insensitive)
27
+ const forbidden = [
28
+ /^[A-Z]:\\Windows\\/i,
29
+ /^[A-Z]:\\Program Files/i,
30
+ /^[A-Z]:\\ProgramData/i,
31
+ /^[A-Z]:\\System/i,
32
+ ];
33
+ if (forbidden.some(pattern => pattern.test(cleaned))) {
34
+ throw new Error('Access to system directories is not allowed');
35
+ }
36
+ }
37
+ else {
38
+ // Unix system directories
39
+ if (cleaned.startsWith('/etc') ||
40
+ cleaned.startsWith('/sys') ||
41
+ cleaned.startsWith('/proc')) {
42
+ throw new Error('Access to system directories is not allowed');
43
+ }
44
+ }
45
+ return cleaned;
46
+ }
47
+ /**
48
+ * Validate and normalize project path
49
+ * Cross-platform: handles both Unix (/) and Windows (\) paths
50
+ * Used for converting file paths to Claude project directory names
51
+ */
52
+ export function sanitizeProjectPath(path) {
53
+ // Remove null bytes
54
+ const cleaned = path.replace(/\0/g, '');
55
+ // Check for path traversal
56
+ if (cleaned.includes('..')) {
57
+ throw new Error('Path traversal detected in project path');
58
+ }
59
+ // First normalize with Node's native path module for current platform
60
+ let normalized = normalize(cleaned);
61
+ // Then handle any remaining separators from other platforms
62
+ // Replace multiple consecutive slashes/backslashes with single separator
63
+ normalized = normalized.replace(/[\\/]+/g, sep);
64
+ // Remove trailing path separator
65
+ const trailingSepRegex = new RegExp(`${sep.replace(/\\/g, '\\\\')}+$`);
66
+ return normalized.replace(trailingSepRegex, '');
67
+ }
68
+ /**
69
+ * Sanitize SQL identifier (table/column name)
70
+ * Only allows alphanumeric and underscore
71
+ */
72
+ export function sanitizeSQLIdentifier(identifier) {
73
+ if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(identifier)) {
74
+ throw new Error(`Invalid SQL identifier: ${identifier}`);
75
+ }
76
+ return identifier;
77
+ }
78
+ /**
79
+ * Convert a project path to Claude Code's project folder name
80
+ * Cross-platform compatible - handles both Unix and Windows paths
81
+ *
82
+ * Examples:
83
+ * - macOS/Linux: /Users/joker/github/project → -Users-joker-github-project
84
+ * - Windows: C:\Users\user\project → C-Users-user-project
85
+ * - Windows UNC: \\server\share\project → -server-share-project
86
+ */
87
+ export function pathToProjectFolderName(projectPath) {
88
+ // Normalize the path first
89
+ const normalized = sanitizeProjectPath(projectPath);
90
+ // Replace Windows drive letters (C: → C, D: → D)
91
+ // Replace both forward and backward slashes with dashes
92
+ const folderName = normalized
93
+ .replace(/^([A-Z]):/i, '$1') // Remove colon from drive letter
94
+ .replace(/[\\/]+/g, '-'); // Replace / or \ with -
95
+ return folderName;
96
+ }
97
+ //# sourceMappingURL=sanitization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sanitization.js","sourceRoot":"","sources":["../../src/utils/sanitization.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,87 @@
1
+ {
2
+ "name": "claude-conversation-memory-mcp",
3
+ "version": "0.1.0",
4
+ "description": "MCP server for indexing and searching Claude Code conversation history with decision tracking and git integration",
5
+ "main": "dist/index.js",
6
+ "type": "module",
7
+ "bin": {
8
+ "claude-conversation-memory-mcp": "dist/index.js"
9
+ },
10
+ "files": [
11
+ "dist",
12
+ "README.md",
13
+ "LICENSE"
14
+ ],
15
+ "scripts": {
16
+ "build": "tsc && npm run postbuild",
17
+ "postbuild": "cp src/storage/schema.sql dist/storage/",
18
+ "dev": "tsc --watch",
19
+ "start": "node dist/index.js",
20
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
21
+ "lint": "eslint .",
22
+ "lint:fix": "eslint . --fix",
23
+ "type-check": "tsc --noEmit",
24
+ "clean": "rm -rf dist",
25
+ "docs": "typedoc --out docs src",
26
+ "test:watch": "npm test -- --watch",
27
+ "test:coverage": "npm test -- --coverage",
28
+ "pre-push": "npm run type-check && npm run lint && npm run build",
29
+ "prepublishOnly": "npm run build",
30
+ "prepare": "husky"
31
+ },
32
+ "keywords": [
33
+ "mcp",
34
+ "claude",
35
+ "conversation",
36
+ "memory",
37
+ "semantic-search",
38
+ "decision-tracking"
39
+ ],
40
+ "author": "xiaolai",
41
+ "license": "MIT",
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "https://github.com/xiaolai/claude-conversation-memory-mcp.git"
45
+ },
46
+ "bugs": {
47
+ "url": "https://github.com/xiaolai/claude-conversation-memory-mcp/issues"
48
+ },
49
+ "homepage": "https://github.com/xiaolai/claude-conversation-memory-mcp#readme",
50
+ "dependencies": {
51
+ "@modelcontextprotocol/sdk": "^1.0.4",
52
+ "better-sqlite3": "^11.10.0",
53
+ "lru-cache": "^10.0.0",
54
+ "nanoid": "^5.0.0",
55
+ "simple-git": "^3.25.0",
56
+ "sqlite-vec": "^0.1.6"
57
+ },
58
+ "optionalDependencies": {
59
+ "@xenova/transformers": "^2.17.2",
60
+ "openai": "^4.77.3"
61
+ },
62
+ "devDependencies": {
63
+ "@types/better-sqlite3": "^7.6.11",
64
+ "@types/jest": "^29.5.14",
65
+ "@types/node": "^22.10.5",
66
+ "@typescript-eslint/eslint-plugin": "^8.19.1",
67
+ "@typescript-eslint/parser": "^8.19.1",
68
+ "eslint": "^9.18.0",
69
+ "globals": "^16.5.0",
70
+ "husky": "^9.1.7",
71
+ "jest": "^29.7.0",
72
+ "lint-staged": "^16.2.6",
73
+ "prettier": "^3.6.2",
74
+ "ts-jest": "^29.2.5",
75
+ "ts-node": "^10.9.2",
76
+ "typescript": "^5.7.3"
77
+ },
78
+ "engines": {
79
+ "node": ">=18.0.0"
80
+ },
81
+ "lint-staged": {
82
+ "*.ts": [
83
+ "eslint --fix",
84
+ "prettier --write"
85
+ ]
86
+ }
87
+ }