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,25 +1,84 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Mistake Extractor
|
|
3
|
-
*
|
|
2
|
+
* Mistake Extractor - Identifies errors and how they were corrected.
|
|
3
|
+
*
|
|
4
|
+
* This extractor analyzes conversation messages and tool results to identify
|
|
5
|
+
* mistakes made during development and how they were corrected. It helps prevent
|
|
6
|
+
* repeating the same errors by documenting:
|
|
7
|
+
* - What went wrong
|
|
8
|
+
* - How it was corrected
|
|
9
|
+
* - Files affected
|
|
10
|
+
* - Type of mistake (logic error, wrong approach, etc.)
|
|
11
|
+
*
|
|
12
|
+
* Sources of mistakes:
|
|
13
|
+
* - Tool execution errors (failed commands, syntax errors)
|
|
14
|
+
* - User corrections ("that's wrong", "don't do that")
|
|
15
|
+
* - Error discussions (debugging conversations)
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const extractor = new MistakeExtractor();
|
|
20
|
+
* const mistakes = extractor.extractMistakes(messages, toolResults);
|
|
21
|
+
* console.log(`Found ${mistakes.length} mistakes`);
|
|
22
|
+
* mistakes.forEach(m => {
|
|
23
|
+
* console.log(`${m.mistake_type}: ${m.what_went_wrong}`);
|
|
24
|
+
* if (m.correction) console.log(`Fixed by: ${m.correction}`);
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
4
27
|
*/
|
|
5
28
|
import type { Message, ToolResult } from "./ConversationParser.js";
|
|
29
|
+
/**
|
|
30
|
+
* Represents a mistake made during development and how it was corrected.
|
|
31
|
+
*/
|
|
6
32
|
export interface Mistake {
|
|
33
|
+
/** Unique mistake identifier */
|
|
7
34
|
id: string;
|
|
35
|
+
/** Conversation where the mistake occurred */
|
|
8
36
|
conversation_id: string;
|
|
37
|
+
/** Message containing or referencing the mistake */
|
|
9
38
|
message_id: string;
|
|
39
|
+
/** Category of mistake */
|
|
10
40
|
mistake_type: "logic_error" | "wrong_approach" | "misunderstanding" | "tool_error" | "syntax_error";
|
|
41
|
+
/** Description of what went wrong */
|
|
11
42
|
what_went_wrong: string;
|
|
43
|
+
/** How the mistake was corrected */
|
|
12
44
|
correction?: string;
|
|
45
|
+
/** User's message correcting the mistake */
|
|
13
46
|
user_correction_message?: string;
|
|
47
|
+
/** Files affected by this mistake */
|
|
14
48
|
files_affected: string[];
|
|
49
|
+
/** When the mistake occurred */
|
|
15
50
|
timestamp: number;
|
|
16
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Extracts mistakes and corrections from conversation history.
|
|
54
|
+
*
|
|
55
|
+
* Analyzes tool errors, user corrections, and error discussions to document
|
|
56
|
+
* mistakes and prevent repetition.
|
|
57
|
+
*/
|
|
17
58
|
export declare class MistakeExtractor {
|
|
18
59
|
private readonly CORRECTION_INDICATORS;
|
|
19
60
|
private readonly ERROR_INDICATORS;
|
|
20
61
|
private readonly MISTAKE_PATTERNS;
|
|
21
62
|
/**
|
|
22
|
-
* Extract mistakes from messages and tool results
|
|
63
|
+
* Extract mistakes from messages and tool results.
|
|
64
|
+
*
|
|
65
|
+
* Analyzes three sources to identify mistakes:
|
|
66
|
+
* 1. Tool execution errors (failed commands, syntax errors)
|
|
67
|
+
* 2. User corrections (explicit corrections by the user)
|
|
68
|
+
* 3. Error discussions (conversations about bugs and fixes)
|
|
69
|
+
*
|
|
70
|
+
* @param messages - Array of conversation messages
|
|
71
|
+
* @param toolResults - Array of tool execution results
|
|
72
|
+
* @returns Array of extracted Mistake objects, deduplicated
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```typescript
|
|
76
|
+
* const extractor = new MistakeExtractor();
|
|
77
|
+
* const mistakes = extractor.extractMistakes(messages, toolResults);
|
|
78
|
+
*
|
|
79
|
+
* // Find logic errors
|
|
80
|
+
* const logicErrors = mistakes.filter(m => m.mistake_type === 'logic_error');
|
|
81
|
+
* ```
|
|
23
82
|
*/
|
|
24
83
|
extractMistakes(messages: Message[], toolResults: ToolResult[]): Mistake[];
|
|
25
84
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MistakeExtractor.d.ts","sourceRoot":"","sources":["../../src/parsers/MistakeExtractor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"MistakeExtractor.d.ts","sourceRoot":"","sources":["../../src/parsers/MistakeExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,eAAe,EAAE,MAAM,CAAC;IACxB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,YAAY,EAAE,aAAa,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,YAAY,GAAG,cAAc,CAAC;IACpG,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,qCAAqC;IACrC,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,gBAAgB;IAE3B,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAOpC;IAGF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAO/B;IAGF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAa/B;IAEF;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,eAAe,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE;IAkB1E;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAyC9B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAsC/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkB3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAQtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAgB/B;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAYpC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAezB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAa9B;;OAEG;IACH,OAAO,CAAC,8BAA8B;IAQtC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;CA8B/C"}
|
|
@@ -1,8 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Mistake Extractor
|
|
3
|
-
*
|
|
2
|
+
* Mistake Extractor - Identifies errors and how they were corrected.
|
|
3
|
+
*
|
|
4
|
+
* This extractor analyzes conversation messages and tool results to identify
|
|
5
|
+
* mistakes made during development and how they were corrected. It helps prevent
|
|
6
|
+
* repeating the same errors by documenting:
|
|
7
|
+
* - What went wrong
|
|
8
|
+
* - How it was corrected
|
|
9
|
+
* - Files affected
|
|
10
|
+
* - Type of mistake (logic error, wrong approach, etc.)
|
|
11
|
+
*
|
|
12
|
+
* Sources of mistakes:
|
|
13
|
+
* - Tool execution errors (failed commands, syntax errors)
|
|
14
|
+
* - User corrections ("that's wrong", "don't do that")
|
|
15
|
+
* - Error discussions (debugging conversations)
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const extractor = new MistakeExtractor();
|
|
20
|
+
* const mistakes = extractor.extractMistakes(messages, toolResults);
|
|
21
|
+
* console.log(`Found ${mistakes.length} mistakes`);
|
|
22
|
+
* mistakes.forEach(m => {
|
|
23
|
+
* console.log(`${m.mistake_type}: ${m.what_went_wrong}`);
|
|
24
|
+
* if (m.correction) console.log(`Fixed by: ${m.correction}`);
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
4
27
|
*/
|
|
5
28
|
import { nanoid } from "nanoid";
|
|
29
|
+
/**
|
|
30
|
+
* Extracts mistakes and corrections from conversation history.
|
|
31
|
+
*
|
|
32
|
+
* Analyzes tool errors, user corrections, and error discussions to document
|
|
33
|
+
* mistakes and prevent repetition.
|
|
34
|
+
*/
|
|
6
35
|
export class MistakeExtractor {
|
|
7
36
|
// User correction indicators
|
|
8
37
|
CORRECTION_INDICATORS = [
|
|
@@ -38,7 +67,25 @@ export class MistakeExtractor {
|
|
|
38
67
|
syntax_error: [/syntax\s+error/i, /parse\s+error/i, /invalid\s+syntax/i],
|
|
39
68
|
};
|
|
40
69
|
/**
|
|
41
|
-
* Extract mistakes from messages and tool results
|
|
70
|
+
* Extract mistakes from messages and tool results.
|
|
71
|
+
*
|
|
72
|
+
* Analyzes three sources to identify mistakes:
|
|
73
|
+
* 1. Tool execution errors (failed commands, syntax errors)
|
|
74
|
+
* 2. User corrections (explicit corrections by the user)
|
|
75
|
+
* 3. Error discussions (conversations about bugs and fixes)
|
|
76
|
+
*
|
|
77
|
+
* @param messages - Array of conversation messages
|
|
78
|
+
* @param toolResults - Array of tool execution results
|
|
79
|
+
* @returns Array of extracted Mistake objects, deduplicated
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* const extractor = new MistakeExtractor();
|
|
84
|
+
* const mistakes = extractor.extractMistakes(messages, toolResults);
|
|
85
|
+
*
|
|
86
|
+
* // Find logic errors
|
|
87
|
+
* const logicErrors = mistakes.filter(m => m.mistake_type === 'logic_error');
|
|
88
|
+
* ```
|
|
42
89
|
*/
|
|
43
90
|
extractMistakes(messages, toolResults) {
|
|
44
91
|
const mistakes = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MistakeExtractor.js","sourceRoot":"","sources":["../../src/parsers/MistakeExtractor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"MistakeExtractor.js","sourceRoot":"","sources":["../../src/parsers/MistakeExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +1,128 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Requirements and Validations Extractor
|
|
3
|
-
*
|
|
2
|
+
* Requirements and Validations Extractor - Tracks constraints, dependencies, and testing context.
|
|
3
|
+
*
|
|
4
|
+
* This extractor analyzes conversation messages and tool executions to identify:
|
|
5
|
+
* - Requirements (dependencies, performance, compatibility, business constraints)
|
|
6
|
+
* - Validations (test runs, results, and performance data)
|
|
7
|
+
*
|
|
8
|
+
* Helps document:
|
|
9
|
+
* - What dependencies are required and why
|
|
10
|
+
* - Performance requirements and constraints
|
|
11
|
+
* - Compatibility requirements (versions, platforms)
|
|
12
|
+
* - Business rules and limitations
|
|
13
|
+
* - Test executions and their results
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const extractor = new RequirementsExtractor();
|
|
18
|
+
* const requirements = extractor.extractRequirements(messages);
|
|
19
|
+
* const validations = extractor.extractValidations(toolUses, toolResults, messages);
|
|
20
|
+
*
|
|
21
|
+
* console.log(`Found ${requirements.length} requirements`);
|
|
22
|
+
* console.log(`Found ${validations.length} test validations`);
|
|
23
|
+
* ```
|
|
4
24
|
*/
|
|
5
25
|
import type { Message, ToolUse, ToolResult } from "./ConversationParser.js";
|
|
26
|
+
/**
|
|
27
|
+
* Represents a requirement or constraint for the system.
|
|
28
|
+
*/
|
|
6
29
|
export interface Requirement {
|
|
30
|
+
/** Unique requirement identifier */
|
|
7
31
|
id: string;
|
|
32
|
+
/** Category of requirement */
|
|
8
33
|
type: "dependency" | "performance" | "compatibility" | "business";
|
|
34
|
+
/** Description of the requirement */
|
|
9
35
|
description: string;
|
|
36
|
+
/** Why this requirement exists */
|
|
10
37
|
rationale?: string;
|
|
38
|
+
/** Components affected by this requirement */
|
|
11
39
|
affects_components: string[];
|
|
40
|
+
/** Conversation where requirement was discussed */
|
|
12
41
|
conversation_id: string;
|
|
42
|
+
/** Message containing the requirement */
|
|
13
43
|
message_id: string;
|
|
44
|
+
/** When the requirement was documented */
|
|
14
45
|
timestamp: number;
|
|
15
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Represents a test validation or verification.
|
|
49
|
+
*/
|
|
16
50
|
export interface Validation {
|
|
51
|
+
/** Unique validation identifier */
|
|
17
52
|
id: string;
|
|
53
|
+
/** Conversation where test was run */
|
|
18
54
|
conversation_id: string;
|
|
55
|
+
/** Description of what was tested */
|
|
19
56
|
what_was_tested: string;
|
|
57
|
+
/** Command used to run the test */
|
|
20
58
|
test_command?: string;
|
|
59
|
+
/** Test result status */
|
|
21
60
|
result: "passed" | "failed" | "error";
|
|
61
|
+
/** Performance metrics from the test */
|
|
22
62
|
performance_data?: Record<string, unknown>;
|
|
63
|
+
/** Files that were tested */
|
|
23
64
|
files_tested: string[];
|
|
65
|
+
/** When the test was run */
|
|
24
66
|
timestamp: number;
|
|
25
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Extracts requirements and validations from conversation history.
|
|
70
|
+
*
|
|
71
|
+
* Analyzes messages for requirement patterns and tool executions for test results.
|
|
72
|
+
*/
|
|
26
73
|
export declare class RequirementsExtractor {
|
|
27
74
|
private readonly REQUIREMENT_PATTERNS;
|
|
28
75
|
private readonly TEST_PATTERNS;
|
|
29
76
|
/**
|
|
30
|
-
* Extract requirements from messages
|
|
77
|
+
* Extract requirements from conversation messages.
|
|
78
|
+
*
|
|
79
|
+
* Analyzes messages using pattern matching to identify four types of requirements:
|
|
80
|
+
* - Dependency: Required libraries, packages, modules
|
|
81
|
+
* - Performance: Speed, latency, throughput constraints
|
|
82
|
+
* - Compatibility: Version requirements, platform support
|
|
83
|
+
* - Business: Business rules, limitations, constraints
|
|
84
|
+
*
|
|
85
|
+
* @param messages - Array of conversation messages to analyze
|
|
86
|
+
* @returns Array of extracted Requirement objects
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* const extractor = new RequirementsExtractor();
|
|
91
|
+
* const requirements = extractor.extractRequirements(messages);
|
|
92
|
+
*
|
|
93
|
+
* // Find all dependency requirements
|
|
94
|
+
* const deps = requirements.filter(r => r.type === 'dependency');
|
|
95
|
+
* deps.forEach(d => console.log(`${d.description} - ${d.rationale}`));
|
|
96
|
+
* ```
|
|
31
97
|
*/
|
|
32
98
|
extractRequirements(messages: Message[]): Requirement[];
|
|
33
99
|
/**
|
|
34
|
-
* Extract validations from tool
|
|
100
|
+
* Extract validations from tool executions.
|
|
101
|
+
*
|
|
102
|
+
* Analyzes Bash tool uses to identify test command executions and their results.
|
|
103
|
+
* Captures test runs including pass/fail status, performance data, and files tested.
|
|
104
|
+
*
|
|
105
|
+
* Recognized test commands:
|
|
106
|
+
* - npm/yarn/pnpm test
|
|
107
|
+
* - pytest
|
|
108
|
+
* - jest/mocha
|
|
109
|
+
* - cargo test (Rust)
|
|
110
|
+
* - go test (Go)
|
|
111
|
+
*
|
|
112
|
+
* @param toolUses - Array of tool invocations
|
|
113
|
+
* @param toolResults - Array of tool execution results
|
|
114
|
+
* @param messages - Array of conversation messages for context
|
|
115
|
+
* @returns Array of extracted Validation objects
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* ```typescript
|
|
119
|
+
* const extractor = new RequirementsExtractor();
|
|
120
|
+
* const validations = extractor.extractValidations(toolUses, toolResults, messages);
|
|
121
|
+
*
|
|
122
|
+
* // Find failed tests
|
|
123
|
+
* const failures = validations.filter(v => v.result === 'failed');
|
|
124
|
+
* console.log(`${failures.length} test failures found`);
|
|
125
|
+
* ```
|
|
35
126
|
*/
|
|
36
127
|
extractValidations(toolUses: ToolUse[], toolResults: ToolResult[], messages: Message[]): Validation[];
|
|
37
128
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequirementsExtractor.d.ts","sourceRoot":"","sources":["../../src/parsers/RequirementsExtractor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"RequirementsExtractor.d.ts","sourceRoot":"","sources":["../../src/parsers/RequirementsExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oCAAoC;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,eAAe,GAAG,UAAU,CAAC;IAClE,qCAAqC;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,mDAAmD;IACnD,eAAe,EAAE,MAAM,CAAC;IACxB,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,mCAAmC;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,sCAAsC;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,qCAAqC;IACrC,eAAe,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,MAAM,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtC,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,6BAA6B;IAC7B,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,4BAA4B;IAC5B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,qBAAa,qBAAqB;IAEhC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAmBnC;IAGF,OAAO,CAAC,QAAQ,CAAC,aAAa,CAQ5B;IAEF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,WAAW,EAAE;IA8BvD;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,kBAAkB,CAChB,QAAQ,EAAE,OAAO,EAAE,EACnB,WAAW,EAAE,UAAU,EAAE,EACzB,QAAQ,EAAE,OAAO,EAAE,GAClB,UAAU,EAAE;IAuCf;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgCxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuBxB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IA0BjC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAqB5B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA6B3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IA6B9B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAchC"}
|
|
@@ -1,8 +1,33 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Requirements and Validations Extractor
|
|
3
|
-
*
|
|
2
|
+
* Requirements and Validations Extractor - Tracks constraints, dependencies, and testing context.
|
|
3
|
+
*
|
|
4
|
+
* This extractor analyzes conversation messages and tool executions to identify:
|
|
5
|
+
* - Requirements (dependencies, performance, compatibility, business constraints)
|
|
6
|
+
* - Validations (test runs, results, and performance data)
|
|
7
|
+
*
|
|
8
|
+
* Helps document:
|
|
9
|
+
* - What dependencies are required and why
|
|
10
|
+
* - Performance requirements and constraints
|
|
11
|
+
* - Compatibility requirements (versions, platforms)
|
|
12
|
+
* - Business rules and limitations
|
|
13
|
+
* - Test executions and their results
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const extractor = new RequirementsExtractor();
|
|
18
|
+
* const requirements = extractor.extractRequirements(messages);
|
|
19
|
+
* const validations = extractor.extractValidations(toolUses, toolResults, messages);
|
|
20
|
+
*
|
|
21
|
+
* console.log(`Found ${requirements.length} requirements`);
|
|
22
|
+
* console.log(`Found ${validations.length} test validations`);
|
|
23
|
+
* ```
|
|
4
24
|
*/
|
|
5
25
|
import { nanoid } from "nanoid";
|
|
26
|
+
/**
|
|
27
|
+
* Extracts requirements and validations from conversation history.
|
|
28
|
+
*
|
|
29
|
+
* Analyzes messages for requirement patterns and tool executions for test results.
|
|
30
|
+
*/
|
|
6
31
|
export class RequirementsExtractor {
|
|
7
32
|
// Requirement indicators
|
|
8
33
|
REQUIREMENT_PATTERNS = {
|
|
@@ -36,7 +61,26 @@ export class RequirementsExtractor {
|
|
|
36
61
|
/go\s+test/,
|
|
37
62
|
];
|
|
38
63
|
/**
|
|
39
|
-
* Extract requirements from messages
|
|
64
|
+
* Extract requirements from conversation messages.
|
|
65
|
+
*
|
|
66
|
+
* Analyzes messages using pattern matching to identify four types of requirements:
|
|
67
|
+
* - Dependency: Required libraries, packages, modules
|
|
68
|
+
* - Performance: Speed, latency, throughput constraints
|
|
69
|
+
* - Compatibility: Version requirements, platform support
|
|
70
|
+
* - Business: Business rules, limitations, constraints
|
|
71
|
+
*
|
|
72
|
+
* @param messages - Array of conversation messages to analyze
|
|
73
|
+
* @returns Array of extracted Requirement objects
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* const extractor = new RequirementsExtractor();
|
|
78
|
+
* const requirements = extractor.extractRequirements(messages);
|
|
79
|
+
*
|
|
80
|
+
* // Find all dependency requirements
|
|
81
|
+
* const deps = requirements.filter(r => r.type === 'dependency');
|
|
82
|
+
* deps.forEach(d => console.log(`${d.description} - ${d.rationale}`));
|
|
83
|
+
* ```
|
|
40
84
|
*/
|
|
41
85
|
extractRequirements(messages) {
|
|
42
86
|
const requirements = [];
|
|
@@ -60,7 +104,32 @@ export class RequirementsExtractor {
|
|
|
60
104
|
return this.deduplicateRequirements(requirements);
|
|
61
105
|
}
|
|
62
106
|
/**
|
|
63
|
-
* Extract validations from tool
|
|
107
|
+
* Extract validations from tool executions.
|
|
108
|
+
*
|
|
109
|
+
* Analyzes Bash tool uses to identify test command executions and their results.
|
|
110
|
+
* Captures test runs including pass/fail status, performance data, and files tested.
|
|
111
|
+
*
|
|
112
|
+
* Recognized test commands:
|
|
113
|
+
* - npm/yarn/pnpm test
|
|
114
|
+
* - pytest
|
|
115
|
+
* - jest/mocha
|
|
116
|
+
* - cargo test (Rust)
|
|
117
|
+
* - go test (Go)
|
|
118
|
+
*
|
|
119
|
+
* @param toolUses - Array of tool invocations
|
|
120
|
+
* @param toolResults - Array of tool execution results
|
|
121
|
+
* @param messages - Array of conversation messages for context
|
|
122
|
+
* @returns Array of extracted Validation objects
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```typescript
|
|
126
|
+
* const extractor = new RequirementsExtractor();
|
|
127
|
+
* const validations = extractor.extractValidations(toolUses, toolResults, messages);
|
|
128
|
+
*
|
|
129
|
+
* // Find failed tests
|
|
130
|
+
* const failures = validations.filter(v => v.result === 'failed');
|
|
131
|
+
* console.log(`${failures.length} test failures found`);
|
|
132
|
+
* ```
|
|
64
133
|
*/
|
|
65
134
|
extractValidations(toolUses, toolResults, messages) {
|
|
66
135
|
const validations = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RequirementsExtractor.js","sourceRoot":"","sources":["../../src/parsers/RequirementsExtractor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"RequirementsExtractor.js","sourceRoot":"","sources":["../../src/parsers/RequirementsExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AA+ChC;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IAChC,yBAAyB;IACR,oBAAoB,GAAG;QACtC,UAAU,EAAE;YACV,wFAAwF;YACxF,wCAAwC;SACzC;QACD,WAAW,EAAE;YACX,gFAAgF;YAChF,iFAAiF;YACjF,4DAA4D;SAC7D;QACD,aAAa,EAAE;YACb,6EAA6E;YAC7E,iEAAiE;SAClE;QACD,QAAQ,EAAE;YACR,gCAAgC;YAChC,2DAA2D;YAC3D,qCAAqC;SACtC;KACF,CAAC;IAEF,6BAA6B;IACZ,aAAa,GAAG;QAC/B,0BAA0B;QAC1B,gCAAgC;QAChC,QAAQ;QACR,MAAM;QACN,OAAO;QACP,cAAc;QACd,WAAW;KACZ,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,mBAAmB,CAAC,QAAmB;QACrC,MAAM,YAAY,GAAkB,EAAE,CAAC;QAEvC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBAAA,SAAS;YAAA,CAAC;YAEjC,8BAA8B;YAC9B,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAC3C,IAAI,CAAC,oBAAoB,CAC1B,EAAE,CAAC;gBACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;oBAE9D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;wBAC5B,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CACvC,IAA2B,EAC3B,KAAK,EACL,OAAO,CACR,CAAC;wBACF,IAAI,WAAW,EAAE,CAAC;4BAChB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;wBACjC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,kBAAkB,CAChB,QAAmB,EACnB,WAAyB,EACzB,QAAmB;QAEnB,MAAM,WAAW,GAAiB,EAAE,CAAC;QAErC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,kCAAkC;YAClC,IAAI,OAAO,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC3C,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAC5C,SAAS;gBACX,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CACjD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CACtB,CAAC;gBAEF,IAAI,MAAM,EAAE,CAAC;oBACX,4BAA4B;oBAC5B,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;oBACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;oBAElE,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;wBACtB,WAAW,CAAC,IAAI,CAAC;4BACf,EAAE,EAAE,MAAM,EAAE;4BACZ,eAAe,EAAE,OAAO,CAAC,eAAe;4BACxC,eAAe,EAAE,IAAI,CAAC,oBAAoB,CAAC,OAAO,EAAE,MAAM,CAAC;4BAC3D,YAAY,EAAE,OAAO;4BACrB,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC;4BACxC,gBAAgB,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC;4BACrD,YAAY,EAAE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;4BAC7C,SAAS,EAAE,OAAO,CAAC,SAAS;yBAC7B,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,IAAyB,EACzB,KAAuB,EACvB,OAAgB;QAEhB,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,yCAAyC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAEnE,8BAA8B;QAC9B,MAAM,UAAU,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAE3D,OAAO;YACL,EAAE,EAAE,MAAM,EAAE;YACZ,IAAI;YACJ,WAAW;YACX,SAAS;YACT,kBAAkB,EAAE,UAAU;YAC9B,eAAe,EAAE,OAAO,CAAC,eAAe;YACxC,UAAU,EAAE,OAAO,CAAC,EAAE;YACtB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,gBAAgB,CACtB,eAAuB,EACvB,WAAmB;QAEnB,kDAAkD;QAClD,MAAM,cAAc,GAAG,eAAe,CAAC,KAAK,CAC1C,+CAA+C,CAChD,CAAC;QACF,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAClC,CAAC;QAED,8BAA8B;QAC9B,MAAM,YAAY,GAAG,WAAW,CAAC,KAAK,CACpC,IAAI,MAAM,CACR,GAAG,eAAe,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,sDAAsD,EAC/G,GAAG,CACJ,CACF,CAAC;QAEF,OAAO,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IACnC,CAAC;IAED;;OAEG;IACK,yBAAyB,CAAC,OAAgB;QAChD,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,4BAA4B;QAC5B,MAAM,iBAAiB,GAAG;YACxB,UAAU;YACV,SAAS;YACT,KAAK;YACL,UAAU;YACV,MAAM;YACN,IAAI;YACJ,QAAQ;YACR,QAAQ;SACT,CAAC;QAEF,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QAErD,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;YACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,oBAAoB,CAC1B,OAAe,EACf,MAAkB;QAElB,sCAAsC;QACtC,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC1D,IAAI,SAAS,EAAE,CAAC;YACd,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC;QAED,6BAA6B;QAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAC3E,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QAED,sBAAsB;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,mBAAmB,CACzB,MAAkB;QAElB,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAErE,4BAA4B;QAC5B,IACE,oCAAoC,CAAC,IAAI,CAAC,MAAM,CAAC;YACjD,iCAAiC,CAAC,IAAI,CAAC,MAAM,CAAC,EAC9C,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,4BAA4B;QAC5B,IACE,qCAAqC,CAAC,IAAI,CAAC,MAAM,CAAC;YAClD,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,EAChC,CAAC;YACD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,iCAAiC;QACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC9C,CAAC;IAED;;OAEG;IACK,sBAAsB,CAC5B,MAAkB;QAElB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAErD,MAAM,IAAI,GAA4B,EAAE,CAAC;QAEzC,6BAA6B;QAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACnF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,KAAK,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACjE,CAAC;QAED,sBAAsB;QACtB,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACpD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,MAAkB;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QACrD,MAAM,KAAK,GAAa,EAAE,CAAC;QAE3B,sBAAsB;QACtB,MAAM,WAAW,GAAG,0DAA0D,CAAC;QAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QAEzD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;QAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,YAA2B;QACzD,MAAM,MAAM,GAAkB,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAE/B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YACpE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* BackupManager - Create and manage backups before deletion operations
|
|
3
|
+
* Exports affected data to JSON for potential restoration
|
|
4
|
+
*/
|
|
5
|
+
import type Database from "better-sqlite3";
|
|
6
|
+
/**
|
|
7
|
+
* Backup metadata
|
|
8
|
+
*/
|
|
9
|
+
export interface BackupMetadata {
|
|
10
|
+
timestamp: number;
|
|
11
|
+
description: string;
|
|
12
|
+
projectPath: string;
|
|
13
|
+
tables: string[];
|
|
14
|
+
recordCounts: Record<string, number>;
|
|
15
|
+
backupPath: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Backup data structure
|
|
19
|
+
*/
|
|
20
|
+
export interface BackupData {
|
|
21
|
+
metadata: BackupMetadata;
|
|
22
|
+
data: Record<string, unknown[]>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* BackupManager class
|
|
26
|
+
*/
|
|
27
|
+
export declare class BackupManager {
|
|
28
|
+
private db;
|
|
29
|
+
constructor(db: Database.Database);
|
|
30
|
+
/**
|
|
31
|
+
* Create a backup of specific conversations and related data
|
|
32
|
+
*/
|
|
33
|
+
createBackupForConversations(conversationIds: string[], description: string, projectPath: string): BackupMetadata;
|
|
34
|
+
/**
|
|
35
|
+
* Get backup directory for project
|
|
36
|
+
*/
|
|
37
|
+
private getBackupDirectory;
|
|
38
|
+
/**
|
|
39
|
+
* Ensure directory exists
|
|
40
|
+
*/
|
|
41
|
+
private ensureDirectoryExists;
|
|
42
|
+
/**
|
|
43
|
+
* Query helpers for each table
|
|
44
|
+
*/
|
|
45
|
+
private getConversations;
|
|
46
|
+
private getMessages;
|
|
47
|
+
private getToolUses;
|
|
48
|
+
private getToolResults;
|
|
49
|
+
private getFileEdits;
|
|
50
|
+
private getThinkingBlocks;
|
|
51
|
+
private getDecisions;
|
|
52
|
+
private getMistakes;
|
|
53
|
+
private getRequirements;
|
|
54
|
+
private getValidations;
|
|
55
|
+
private getMessageEmbeddings;
|
|
56
|
+
private getDecisionEmbeddings;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=BackupManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BackupManager.d.ts","sourceRoot":"","sources":["../../src/storage/BackupManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,cAAc,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAoB;gBAElB,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAIjC;;OAEG;IACH,4BAA4B,CAC1B,eAAe,EAAE,MAAM,EAAE,EACzB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,cAAc;IA4GjB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAK1B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,cAAc;IAUtB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,WAAW;IAOnB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;CAS9B"}
|