claude-conversation-memory-mcp 0.6.0 → 1.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.
- package/README.md +53 -0
- package/dist/ConversationMemory.d.ts +151 -10
- package/dist/ConversationMemory.d.ts.map +1 -1
- package/dist/ConversationMemory.js +127 -10
- package/dist/ConversationMemory.js.map +1 -1
- package/dist/cache/QueryCache.d.ts +215 -0
- package/dist/cache/QueryCache.d.ts.map +1 -0
- package/dist/cache/QueryCache.js +294 -0
- package/dist/cache/QueryCache.js.map +1 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +4 -1
- package/dist/mcp-server.js.map +1 -1
- package/dist/parsers/ConversationParser.d.ts +62 -3
- package/dist/parsers/ConversationParser.d.ts.map +1 -1
- package/dist/parsers/ConversationParser.js +50 -3
- package/dist/parsers/ConversationParser.js.map +1 -1
- package/dist/parsers/DecisionExtractor.d.ts +61 -3
- package/dist/parsers/DecisionExtractor.d.ts.map +1 -1
- package/dist/parsers/DecisionExtractor.js +47 -3
- package/dist/parsers/DecisionExtractor.js.map +1 -1
- package/dist/parsers/GitIntegrator.d.ts +88 -3
- package/dist/parsers/GitIntegrator.d.ts.map +1 -1
- package/dist/parsers/GitIntegrator.js +68 -3
- package/dist/parsers/GitIntegrator.js.map +1 -1
- package/dist/parsers/MistakeExtractor.d.ts +62 -3
- package/dist/parsers/MistakeExtractor.d.ts.map +1 -1
- package/dist/parsers/MistakeExtractor.js +50 -3
- package/dist/parsers/MistakeExtractor.js.map +1 -1
- package/dist/parsers/RequirementsExtractor.d.ts +95 -4
- package/dist/parsers/RequirementsExtractor.d.ts.map +1 -1
- package/dist/parsers/RequirementsExtractor.js +73 -4
- package/dist/parsers/RequirementsExtractor.js.map +1 -1
- package/dist/storage/BackupManager.d.ts +58 -0
- package/dist/storage/BackupManager.d.ts.map +1 -0
- package/dist/storage/BackupManager.js +213 -0
- package/dist/storage/BackupManager.js.map +1 -0
- package/dist/storage/ConversationStorage.d.ts +271 -2
- package/dist/storage/ConversationStorage.d.ts.map +1 -1
- package/dist/storage/ConversationStorage.js +356 -7
- package/dist/storage/ConversationStorage.js.map +1 -1
- package/dist/storage/DeletionService.d.ts +70 -0
- package/dist/storage/DeletionService.d.ts.map +1 -0
- package/dist/storage/DeletionService.js +198 -0
- package/dist/storage/DeletionService.js.map +1 -0
- package/dist/tools/ToolDefinitions.d.ts +26 -0
- package/dist/tools/ToolDefinitions.d.ts.map +1 -1
- package/dist/tools/ToolDefinitions.js +24 -0
- package/dist/tools/ToolDefinitions.js.map +1 -1
- package/dist/tools/ToolHandlers.d.ts +564 -16
- package/dist/tools/ToolHandlers.d.ts.map +1 -1
- package/dist/tools/ToolHandlers.js +664 -24
- package/dist/tools/ToolHandlers.js.map +1 -1
- package/dist/types/ToolTypes.d.ts +22 -0
- package/dist/types/ToolTypes.d.ts.map +1 -1
- package/dist/utils/Logger.d.ts +67 -0
- package/dist/utils/Logger.d.ts.map +1 -0
- package/dist/utils/Logger.js +119 -0
- package/dist/utils/Logger.js.map +1 -0
- package/dist/utils/constants.d.ts +75 -0
- package/dist/utils/constants.d.ts.map +1 -0
- package/dist/utils/constants.js +105 -0
- package/dist/utils/constants.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,14 +1,61 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Multi-pass JSONL Conversation Parser
|
|
3
|
-
*
|
|
2
|
+
* Multi-pass JSONL Conversation Parser for Claude Code history.
|
|
3
|
+
*
|
|
4
|
+
* This parser reads conversation history from Claude Code's storage locations
|
|
5
|
+
* (~/.claude/projects) and extracts structured data including messages, tool uses,
|
|
6
|
+
* file edits, and thinking blocks.
|
|
7
|
+
*
|
|
8
|
+
* The parser handles two directory structures:
|
|
9
|
+
* - Modern: ~/.claude/projects/{sanitized-path}
|
|
10
|
+
* - Legacy: ~/.claude/projects/{original-project-name}
|
|
11
|
+
*
|
|
12
|
+
* It performs a multi-pass parsing approach:
|
|
13
|
+
* 1. First pass: Extract conversations and messages
|
|
14
|
+
* 2. Second pass: Link tool uses and results
|
|
15
|
+
* 3. Third pass: Extract file edits from snapshots
|
|
16
|
+
* 4. Fourth pass: Extract thinking blocks
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* const parser = new ConversationParser();
|
|
21
|
+
* const result = parser.parseProject('/path/to/project');
|
|
22
|
+
* console.log(`Parsed ${result.conversations.length} conversations`);
|
|
23
|
+
* console.log(`Found ${result.messages.length} messages`);
|
|
24
|
+
* console.log(`Extracted ${result.tool_uses.length} tool uses`);
|
|
25
|
+
* ```
|
|
4
26
|
*/
|
|
5
27
|
import { readFileSync, readdirSync, existsSync } from "fs";
|
|
6
28
|
import { join } from "path";
|
|
7
29
|
import { nanoid } from "nanoid";
|
|
8
30
|
import { pathToProjectFolderName } from "../utils/sanitization.js";
|
|
31
|
+
/**
|
|
32
|
+
* Parser for Claude Code conversation history.
|
|
33
|
+
*
|
|
34
|
+
* Extracts structured data from JSONL conversation files stored in
|
|
35
|
+
* ~/.claude/projects. Handles both modern and legacy naming conventions.
|
|
36
|
+
*/
|
|
9
37
|
export class ConversationParser {
|
|
10
38
|
/**
|
|
11
|
-
* Parse all conversations for a project
|
|
39
|
+
* Parse all conversations for a project.
|
|
40
|
+
*
|
|
41
|
+
* Searches for conversation files in Claude's storage directories and
|
|
42
|
+
* parses them into structured entities. Supports filtering by session ID
|
|
43
|
+
* and handles both modern and legacy directory naming conventions.
|
|
44
|
+
*
|
|
45
|
+
* @param projectPath - Absolute path to the project
|
|
46
|
+
* @param sessionId - Optional session ID to filter for a single conversation
|
|
47
|
+
* @returns ParseResult containing all extracted entities
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* const parser = new ConversationParser();
|
|
52
|
+
*
|
|
53
|
+
* // Parse all conversations
|
|
54
|
+
* const allResults = parser.parseProject('/Users/me/my-project');
|
|
55
|
+
*
|
|
56
|
+
* // Parse specific session
|
|
57
|
+
* const sessionResults = parser.parseProject('/Users/me/my-project', 'session-123');
|
|
58
|
+
* ```
|
|
12
59
|
*/
|
|
13
60
|
parseProject(projectPath, sessionId) {
|
|
14
61
|
console.log(`Parsing conversations for project: ${projectPath}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationParser.js","sourceRoot":"","sources":["../../src/parsers/ConversationParser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ConversationParser.js","sourceRoot":"","sources":["../../src/parsers/ConversationParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,85 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Decision Extractor
|
|
3
|
-
*
|
|
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
|
+
* ```
|
|
4
25
|
*/
|
|
5
26
|
import type { Message, ThinkingBlock } from "./ConversationParser.js";
|
|
27
|
+
/**
|
|
28
|
+
* Represents a technical or architectural decision made during development.
|
|
29
|
+
*/
|
|
6
30
|
export interface Decision {
|
|
31
|
+
/** Unique decision identifier */
|
|
7
32
|
id: string;
|
|
33
|
+
/** Conversation where this decision was made */
|
|
8
34
|
conversation_id: string;
|
|
35
|
+
/** Message containing the decision */
|
|
9
36
|
message_id: string;
|
|
37
|
+
/** The decision that was made */
|
|
10
38
|
decision_text: string;
|
|
39
|
+
/** Why this decision was made */
|
|
11
40
|
rationale?: string;
|
|
41
|
+
/** Alternative approaches that were considered */
|
|
12
42
|
alternatives_considered: string[];
|
|
43
|
+
/** Reasons why alternatives were rejected */
|
|
13
44
|
rejected_reasons: Record<string, string>;
|
|
45
|
+
/** Context/domain of the decision (e.g., 'database', 'authentication') */
|
|
14
46
|
context?: string;
|
|
47
|
+
/** Files affected by this decision */
|
|
15
48
|
related_files: string[];
|
|
49
|
+
/** Git commits implementing this decision */
|
|
16
50
|
related_commits: string[];
|
|
51
|
+
/** When the decision was made */
|
|
17
52
|
timestamp: number;
|
|
18
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
|
+
*/
|
|
19
60
|
export declare class DecisionExtractor {
|
|
20
61
|
private readonly DECISION_PATTERNS;
|
|
21
62
|
private readonly CORRECTION_PATTERNS;
|
|
22
63
|
private readonly CONTEXT_KEYWORDS;
|
|
23
64
|
/**
|
|
24
|
-
* Extract decisions from messages and thinking blocks
|
|
65
|
+
* Extract decisions from messages and thinking blocks.
|
|
66
|
+
*
|
|
67
|
+
* Analyzes conversation messages to identify decisions using pattern matching.
|
|
68
|
+
* Looks for explicit decision statements, user corrections, and thinking blocks
|
|
69
|
+
* that contain decision-making processes.
|
|
70
|
+
*
|
|
71
|
+
* @param messages - Array of conversation messages to analyze
|
|
72
|
+
* @param thinkingBlocks - Array of thinking blocks (Claude's internal reasoning)
|
|
73
|
+
* @returns Array of extracted Decision objects
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const extractor = new DecisionExtractor();
|
|
78
|
+
* const decisions = extractor.extractDecisions(messages, thinkingBlocks);
|
|
79
|
+
*
|
|
80
|
+
* // Find decisions about databases
|
|
81
|
+
* const dbDecisions = decisions.filter(d => d.context?.includes('database'));
|
|
82
|
+
* ```
|
|
25
83
|
*/
|
|
26
84
|
extractDecisions(messages: Message[], thinkingBlocks: ThinkingBlock[]): Decision[];
|
|
27
85
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecisionExtractor.d.ts","sourceRoot":"","sources":["../../src/parsers/DecisionExtractor.ts"],"names":[],"mappings":"AAAA
|
|
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,CAMhC;IAGF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAMlC;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;IAwBb;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAgChC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgC1B;;OAEG;IACH,OAAO,CAAC,0BAA0B;IA0ClC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;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;IAoB5B;;OAEG;IACH,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;CAuBpD"}
|
|
@@ -1,8 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Decision Extractor
|
|
3
|
-
*
|
|
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
|
+
* ```
|
|
4
25
|
*/
|
|
5
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
|
+
*/
|
|
6
33
|
export class DecisionExtractor {
|
|
7
34
|
// Decision pattern indicators
|
|
8
35
|
DECISION_PATTERNS = [
|
|
@@ -39,7 +66,24 @@ export class DecisionExtractor {
|
|
|
39
66
|
"optimization",
|
|
40
67
|
];
|
|
41
68
|
/**
|
|
42
|
-
* Extract decisions from messages and thinking blocks
|
|
69
|
+
* Extract decisions from messages and thinking blocks.
|
|
70
|
+
*
|
|
71
|
+
* Analyzes conversation messages to identify decisions using pattern matching.
|
|
72
|
+
* Looks for explicit decision statements, user corrections, and thinking blocks
|
|
73
|
+
* that contain decision-making processes.
|
|
74
|
+
*
|
|
75
|
+
* @param messages - Array of conversation messages to analyze
|
|
76
|
+
* @param thinkingBlocks - Array of thinking blocks (Claude's internal reasoning)
|
|
77
|
+
* @returns Array of extracted Decision objects
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
* ```typescript
|
|
81
|
+
* const extractor = new DecisionExtractor();
|
|
82
|
+
* const decisions = extractor.extractDecisions(messages, thinkingBlocks);
|
|
83
|
+
*
|
|
84
|
+
* // Find decisions about databases
|
|
85
|
+
* const dbDecisions = decisions.filter(d => d.context?.includes('database'));
|
|
86
|
+
* ```
|
|
43
87
|
*/
|
|
44
88
|
extractDecisions(messages, thinkingBlocks) {
|
|
45
89
|
const decisions = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DecisionExtractor.js","sourceRoot":"","sources":["../../src/parsers/DecisionExtractor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"DecisionExtractor.js","sourceRoot":"","sources":["../../src/parsers/DecisionExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,116 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Git Integrator
|
|
3
|
-
*
|
|
2
|
+
* Git Integrator - Links git commits to conversations based on temporal and contextual analysis.
|
|
3
|
+
*
|
|
4
|
+
* This integrator connects git repository history with conversation history by:
|
|
5
|
+
* - Parsing git log to extract commits
|
|
6
|
+
* - Matching commits to conversations using multiple signals:
|
|
7
|
+
* - Temporal proximity (commit time vs conversation time)
|
|
8
|
+
* - File overlap (files changed in commit vs files edited in conversation)
|
|
9
|
+
* - Branch matching (git branch in commit vs conversation metadata)
|
|
10
|
+
* - Decision matching (commit message mentions decisions from conversation)
|
|
11
|
+
*
|
|
12
|
+
* Provides confidence scores (0-1) for each linkage based on:
|
|
13
|
+
* - Exact timestamp match (highest confidence)
|
|
14
|
+
* - File overlap percentage
|
|
15
|
+
* - Branch name match
|
|
16
|
+
* - Decision keyword presence
|
|
17
|
+
*
|
|
18
|
+
* Helps answer "WHY was this code changed?" by linking code changes to their
|
|
19
|
+
* discussion context.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const integrator = new GitIntegrator('/path/to/project');
|
|
24
|
+
* const linkedCommits = await integrator.linkCommitsToConversations(
|
|
25
|
+
* conversations,
|
|
26
|
+
* fileEdits,
|
|
27
|
+
* decisions
|
|
28
|
+
* );
|
|
29
|
+
* console.log(`Linked ${linkedCommits.filter(c => c.conversation_id).length} commits`);
|
|
30
|
+
* ```
|
|
4
31
|
*/
|
|
5
32
|
import type { Conversation, FileEdit } from "./ConversationParser.js";
|
|
6
33
|
import type { Decision } from "./DecisionExtractor.js";
|
|
34
|
+
/**
|
|
35
|
+
* Represents a git commit with conversation linkage.
|
|
36
|
+
*/
|
|
7
37
|
export interface GitCommit {
|
|
38
|
+
/** Short commit hash (7 chars) or full hash */
|
|
8
39
|
hash: string;
|
|
40
|
+
/** Commit message */
|
|
9
41
|
message: string;
|
|
42
|
+
/** Commit author */
|
|
10
43
|
author?: string;
|
|
44
|
+
/** Commit timestamp */
|
|
11
45
|
timestamp: number;
|
|
46
|
+
/** Git branch name */
|
|
12
47
|
branch?: string;
|
|
48
|
+
/** Files modified in this commit */
|
|
13
49
|
files_changed: string[];
|
|
50
|
+
/** Linked conversation ID (if matched) */
|
|
14
51
|
conversation_id?: string;
|
|
52
|
+
/** Related message ID within the conversation */
|
|
15
53
|
related_message_id?: string;
|
|
54
|
+
/** Additional commit metadata */
|
|
16
55
|
metadata: Record<string, unknown>;
|
|
17
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Represents a commit-to-conversation linkage with confidence score.
|
|
59
|
+
* @internal
|
|
60
|
+
*/
|
|
18
61
|
export interface CommitLinkage {
|
|
62
|
+
/** The git commit */
|
|
19
63
|
commit: GitCommit;
|
|
64
|
+
/** The matched conversation */
|
|
20
65
|
conversation: Conversation;
|
|
66
|
+
/** Confidence score (0-1) of the match */
|
|
21
67
|
confidence: number;
|
|
68
|
+
/** Reasons why this match was made */
|
|
22
69
|
reasons: string[];
|
|
23
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Integrates git repository history with conversation history.
|
|
73
|
+
*
|
|
74
|
+
* Links commits to conversations using temporal and contextual analysis.
|
|
75
|
+
*/
|
|
24
76
|
export declare class GitIntegrator {
|
|
25
77
|
private git;
|
|
78
|
+
/**
|
|
79
|
+
* Create a new GitIntegrator.
|
|
80
|
+
*
|
|
81
|
+
* @param projectPath - Path to the git repository
|
|
82
|
+
* @throws {Error} If the directory is not a git repository
|
|
83
|
+
*/
|
|
26
84
|
constructor(projectPath: string);
|
|
27
85
|
/**
|
|
28
|
-
* Parse git history and link to conversations
|
|
86
|
+
* Parse git history and link commits to conversations.
|
|
87
|
+
*
|
|
88
|
+
* Analyzes git log and matches commits to conversations using multiple signals:
|
|
89
|
+
* - Temporal proximity (commits made during conversation timeframe)
|
|
90
|
+
* - File overlap (files changed in commit match files edited in conversation)
|
|
91
|
+
* - Branch matching (git branch matches conversation metadata)
|
|
92
|
+
* - Decision context (commit message references decisions from conversation)
|
|
93
|
+
*
|
|
94
|
+
* Only creates links with confidence > 0.3 to avoid false positives.
|
|
95
|
+
*
|
|
96
|
+
* @param conversations - Array of conversations to match against
|
|
97
|
+
* @param fileEdits - Array of file edits from conversations
|
|
98
|
+
* @param decisions - Array of decisions that may be referenced in commits
|
|
99
|
+
* @returns Array of GitCommit objects with conversation_id set for matches
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* const integrator = new GitIntegrator('/path/to/project');
|
|
104
|
+
* const commits = await integrator.linkCommitsToConversations(
|
|
105
|
+
* conversations,
|
|
106
|
+
* fileEdits,
|
|
107
|
+
* decisions
|
|
108
|
+
* );
|
|
109
|
+
*
|
|
110
|
+
* // Find commits linked to a specific conversation
|
|
111
|
+
* const convCommits = commits.filter(c => c.conversation_id === 'conv-123');
|
|
112
|
+
* console.log(`${convCommits.length} commits for this conversation`);
|
|
113
|
+
* ```
|
|
29
114
|
*/
|
|
30
115
|
linkCommitsToConversations(conversations: Conversation[], fileEdits: FileEdit[], decisions: Decision[]): Promise<GitCommit[]>;
|
|
31
116
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitIntegrator.d.ts","sourceRoot":"","sources":["../../src/parsers/GitIntegrator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"GitIntegrator.d.ts","sourceRoot":"","sources":["../../src/parsers/GitIntegrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,0CAA0C;IAC1C,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iDAAiD;IACjD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,qBAAqB;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,+BAA+B;IAC/B,YAAY,EAAE,YAAY,CAAC;IAC3B,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;GAIG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,GAAG,CAAY;IAEvB;;;;;OAKG;gBACS,WAAW,EAAE,MAAM;IAI/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,0BAA0B,CAC9B,aAAa,EAAE,YAAY,EAAE,EAC7B,SAAS,EAAE,QAAQ,EAAE,EACrB,SAAS,EAAE,QAAQ,EAAE,GACpB,OAAO,CAAC,SAAS,EAAE,CAAC;IAqCvB;;OAEG;YACW,eAAe;IA4C7B;;OAEG;YACW,eAAe;IAgB7B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA0BjC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAiDpC;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAkC/B;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IA0BxB;;;OAGG;IACH,OAAO,CAAC,0BAA0B;IAyClC;;OAEG;IACG,gBAAgB,CAAC,IAAI,GAAE,MAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAkC/D;;OAEG;IACG,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAsBhE"}
|
|
@@ -1,15 +1,80 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Git Integrator
|
|
3
|
-
*
|
|
2
|
+
* Git Integrator - Links git commits to conversations based on temporal and contextual analysis.
|
|
3
|
+
*
|
|
4
|
+
* This integrator connects git repository history with conversation history by:
|
|
5
|
+
* - Parsing git log to extract commits
|
|
6
|
+
* - Matching commits to conversations using multiple signals:
|
|
7
|
+
* - Temporal proximity (commit time vs conversation time)
|
|
8
|
+
* - File overlap (files changed in commit vs files edited in conversation)
|
|
9
|
+
* - Branch matching (git branch in commit vs conversation metadata)
|
|
10
|
+
* - Decision matching (commit message mentions decisions from conversation)
|
|
11
|
+
*
|
|
12
|
+
* Provides confidence scores (0-1) for each linkage based on:
|
|
13
|
+
* - Exact timestamp match (highest confidence)
|
|
14
|
+
* - File overlap percentage
|
|
15
|
+
* - Branch name match
|
|
16
|
+
* - Decision keyword presence
|
|
17
|
+
*
|
|
18
|
+
* Helps answer "WHY was this code changed?" by linking code changes to their
|
|
19
|
+
* discussion context.
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```typescript
|
|
23
|
+
* const integrator = new GitIntegrator('/path/to/project');
|
|
24
|
+
* const linkedCommits = await integrator.linkCommitsToConversations(
|
|
25
|
+
* conversations,
|
|
26
|
+
* fileEdits,
|
|
27
|
+
* decisions
|
|
28
|
+
* );
|
|
29
|
+
* console.log(`Linked ${linkedCommits.filter(c => c.conversation_id).length} commits`);
|
|
30
|
+
* ```
|
|
4
31
|
*/
|
|
5
32
|
import simpleGit from "simple-git";
|
|
33
|
+
/**
|
|
34
|
+
* Integrates git repository history with conversation history.
|
|
35
|
+
*
|
|
36
|
+
* Links commits to conversations using temporal and contextual analysis.
|
|
37
|
+
*/
|
|
6
38
|
export class GitIntegrator {
|
|
7
39
|
git;
|
|
40
|
+
/**
|
|
41
|
+
* Create a new GitIntegrator.
|
|
42
|
+
*
|
|
43
|
+
* @param projectPath - Path to the git repository
|
|
44
|
+
* @throws {Error} If the directory is not a git repository
|
|
45
|
+
*/
|
|
8
46
|
constructor(projectPath) {
|
|
9
47
|
this.git = simpleGit(projectPath);
|
|
10
48
|
}
|
|
11
49
|
/**
|
|
12
|
-
* Parse git history and link to conversations
|
|
50
|
+
* Parse git history and link commits to conversations.
|
|
51
|
+
*
|
|
52
|
+
* Analyzes git log and matches commits to conversations using multiple signals:
|
|
53
|
+
* - Temporal proximity (commits made during conversation timeframe)
|
|
54
|
+
* - File overlap (files changed in commit match files edited in conversation)
|
|
55
|
+
* - Branch matching (git branch matches conversation metadata)
|
|
56
|
+
* - Decision context (commit message references decisions from conversation)
|
|
57
|
+
*
|
|
58
|
+
* Only creates links with confidence > 0.3 to avoid false positives.
|
|
59
|
+
*
|
|
60
|
+
* @param conversations - Array of conversations to match against
|
|
61
|
+
* @param fileEdits - Array of file edits from conversations
|
|
62
|
+
* @param decisions - Array of decisions that may be referenced in commits
|
|
63
|
+
* @returns Array of GitCommit objects with conversation_id set for matches
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```typescript
|
|
67
|
+
* const integrator = new GitIntegrator('/path/to/project');
|
|
68
|
+
* const commits = await integrator.linkCommitsToConversations(
|
|
69
|
+
* conversations,
|
|
70
|
+
* fileEdits,
|
|
71
|
+
* decisions
|
|
72
|
+
* );
|
|
73
|
+
*
|
|
74
|
+
* // Find commits linked to a specific conversation
|
|
75
|
+
* const convCommits = commits.filter(c => c.conversation_id === 'conv-123');
|
|
76
|
+
* console.log(`${convCommits.length} commits for this conversation`);
|
|
77
|
+
* ```
|
|
13
78
|
*/
|
|
14
79
|
async linkCommitsToConversations(conversations, fileEdits, decisions) {
|
|
15
80
|
console.log("Parsing git history...");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitIntegrator.js","sourceRoot":"","sources":["../../src/parsers/GitIntegrator.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"GitIntegrator.js","sourceRoot":"","sources":["../../src/parsers/GitIntegrator.ts"],"names":[],"mappings":"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"}
|