driftdetect-core 0.1.2 → 0.3.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/dist/boundaries/boundary-store.d.ts +92 -0
- package/dist/boundaries/boundary-store.d.ts.map +1 -0
- package/dist/boundaries/boundary-store.js +458 -0
- package/dist/boundaries/boundary-store.js.map +1 -0
- package/dist/boundaries/index.d.ts +8 -0
- package/dist/boundaries/index.d.ts.map +1 -0
- package/dist/boundaries/index.js +8 -0
- package/dist/boundaries/index.js.map +1 -0
- package/dist/boundaries/types.d.ts +237 -0
- package/dist/boundaries/types.d.ts.map +1 -0
- package/dist/boundaries/types.js +8 -0
- package/dist/boundaries/types.js.map +1 -0
- package/dist/dna/ai-context.d.ts +10 -0
- package/dist/dna/ai-context.d.ts.map +1 -0
- package/dist/dna/ai-context.js +46 -0
- package/dist/dna/ai-context.js.map +1 -0
- package/dist/dna/dna-analyzer.d.ts +34 -0
- package/dist/dna/dna-analyzer.d.ts.map +1 -0
- package/dist/dna/dna-analyzer.js +110 -0
- package/dist/dna/dna-analyzer.js.map +1 -0
- package/dist/dna/dna-store.d.ts +13 -0
- package/dist/dna/dna-store.d.ts.map +1 -0
- package/dist/dna/dna-store.js +43 -0
- package/dist/dna/dna-store.js.map +1 -0
- package/dist/dna/gene-extractors/animation-approach.d.ts +15 -0
- package/dist/dna/gene-extractors/animation-approach.d.ts.map +1 -0
- package/dist/dna/gene-extractors/animation-approach.js +97 -0
- package/dist/dna/gene-extractors/animation-approach.js.map +1 -0
- package/dist/dna/gene-extractors/base-extractor.d.ts +53 -0
- package/dist/dna/gene-extractors/base-extractor.d.ts.map +1 -0
- package/dist/dna/gene-extractors/base-extractor.js +76 -0
- package/dist/dna/gene-extractors/base-extractor.js.map +1 -0
- package/dist/dna/gene-extractors/index.d.ts +16 -0
- package/dist/dna/gene-extractors/index.d.ts.map +1 -0
- package/dist/dna/gene-extractors/index.js +38 -0
- package/dist/dna/gene-extractors/index.js.map +1 -0
- package/dist/dna/gene-extractors/responsive-approach.d.ts +10 -0
- package/dist/dna/gene-extractors/responsive-approach.d.ts.map +1 -0
- package/dist/dna/gene-extractors/responsive-approach.js +30 -0
- package/dist/dna/gene-extractors/responsive-approach.js.map +1 -0
- package/dist/dna/gene-extractors/spacing-philosophy.d.ts +10 -0
- package/dist/dna/gene-extractors/spacing-philosophy.d.ts.map +1 -0
- package/dist/dna/gene-extractors/spacing-philosophy.js +30 -0
- package/dist/dna/gene-extractors/spacing-philosophy.js.map +1 -0
- package/dist/dna/gene-extractors/state-styling.d.ts +10 -0
- package/dist/dna/gene-extractors/state-styling.d.ts.map +1 -0
- package/dist/dna/gene-extractors/state-styling.js +29 -0
- package/dist/dna/gene-extractors/state-styling.js.map +1 -0
- package/dist/dna/gene-extractors/theming.d.ts +10 -0
- package/dist/dna/gene-extractors/theming.d.ts.map +1 -0
- package/dist/dna/gene-extractors/theming.js +30 -0
- package/dist/dna/gene-extractors/theming.js.map +1 -0
- package/dist/dna/gene-extractors/variant-handling.d.ts +13 -0
- package/dist/dna/gene-extractors/variant-handling.d.ts.map +1 -0
- package/dist/dna/gene-extractors/variant-handling.js +38 -0
- package/dist/dna/gene-extractors/variant-handling.js.map +1 -0
- package/dist/dna/health-calculator.d.ts +21 -0
- package/dist/dna/health-calculator.d.ts.map +1 -0
- package/dist/dna/health-calculator.js +113 -0
- package/dist/dna/health-calculator.js.map +1 -0
- package/dist/dna/index.d.ts +21 -0
- package/dist/dna/index.d.ts.map +1 -0
- package/dist/dna/index.js +19 -0
- package/dist/dna/index.js.map +1 -0
- package/dist/dna/mutation-detector.d.ts +10 -0
- package/dist/dna/mutation-detector.d.ts.map +1 -0
- package/dist/dna/mutation-detector.js +39 -0
- package/dist/dna/mutation-detector.js.map +1 -0
- package/dist/dna/playbook-generator.d.ts +6 -0
- package/dist/dna/playbook-generator.d.ts.map +1 -0
- package/dist/dna/playbook-generator.js +53 -0
- package/dist/dna/playbook-generator.js.map +1 -0
- package/dist/dna/types.d.ts +95 -0
- package/dist/dna/types.d.ts.map +1 -0
- package/dist/dna/types.js +8 -0
- package/dist/dna/types.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -0
- package/dist/index.js.map +1 -1
- package/dist/parsers/parser-manager.d.ts.map +1 -1
- package/dist/parsers/parser-manager.js +2 -0
- package/dist/parsers/parser-manager.js.map +1 -1
- package/dist/parsers/tree-sitter/config.d.ts +82 -0
- package/dist/parsers/tree-sitter/config.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/config.js +200 -0
- package/dist/parsers/tree-sitter/config.js.map +1 -0
- package/dist/parsers/tree-sitter/csharp-ast-converter.d.ts +64 -0
- package/dist/parsers/tree-sitter/csharp-ast-converter.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/csharp-ast-converter.js +271 -0
- package/dist/parsers/tree-sitter/csharp-ast-converter.js.map +1 -0
- package/dist/parsers/tree-sitter/csharp-loader.d.ts +43 -0
- package/dist/parsers/tree-sitter/csharp-loader.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/csharp-loader.js +146 -0
- package/dist/parsers/tree-sitter/csharp-loader.js.map +1 -0
- package/dist/parsers/tree-sitter/index.d.ts +26 -0
- package/dist/parsers/tree-sitter/index.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/index.js +47 -0
- package/dist/parsers/tree-sitter/index.js.map +1 -0
- package/dist/parsers/tree-sitter/java/annotation-extractor.d.ts +79 -0
- package/dist/parsers/tree-sitter/java/annotation-extractor.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/java/annotation-extractor.js +540 -0
- package/dist/parsers/tree-sitter/java/annotation-extractor.js.map +1 -0
- package/dist/parsers/tree-sitter/java/class-extractor.d.ts +40 -0
- package/dist/parsers/tree-sitter/java/class-extractor.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/java/class-extractor.js +770 -0
- package/dist/parsers/tree-sitter/java/class-extractor.js.map +1 -0
- package/dist/parsers/tree-sitter/java/index.d.ts +14 -0
- package/dist/parsers/tree-sitter/java/index.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/java/index.js +25 -0
- package/dist/parsers/tree-sitter/java/index.js.map +1 -0
- package/dist/parsers/tree-sitter/java/method-extractor.d.ts +88 -0
- package/dist/parsers/tree-sitter/java/method-extractor.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/java/method-extractor.js +551 -0
- package/dist/parsers/tree-sitter/java/method-extractor.js.map +1 -0
- package/dist/parsers/tree-sitter/java/types.d.ts +545 -0
- package/dist/parsers/tree-sitter/java/types.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/java/types.js +81 -0
- package/dist/parsers/tree-sitter/java/types.js.map +1 -0
- package/dist/parsers/tree-sitter/loader.d.ts +50 -0
- package/dist/parsers/tree-sitter/loader.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/loader.js +156 -0
- package/dist/parsers/tree-sitter/loader.js.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/config-extractor.d.ts +78 -0
- package/dist/parsers/tree-sitter/pydantic/config-extractor.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/config-extractor.js +278 -0
- package/dist/parsers/tree-sitter/pydantic/config-extractor.js.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/constraint-parser.d.ts +84 -0
- package/dist/parsers/tree-sitter/pydantic/constraint-parser.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/constraint-parser.js +321 -0
- package/dist/parsers/tree-sitter/pydantic/constraint-parser.js.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/field-extractor.d.ts +74 -0
- package/dist/parsers/tree-sitter/pydantic/field-extractor.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/field-extractor.js +285 -0
- package/dist/parsers/tree-sitter/pydantic/field-extractor.js.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/index.d.ts +18 -0
- package/dist/parsers/tree-sitter/pydantic/index.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/index.js +23 -0
- package/dist/parsers/tree-sitter/pydantic/index.js.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/inheritance-resolver.d.ts +70 -0
- package/dist/parsers/tree-sitter/pydantic/inheritance-resolver.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/inheritance-resolver.js +251 -0
- package/dist/parsers/tree-sitter/pydantic/inheritance-resolver.js.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/pydantic-extractor.d.ts +102 -0
- package/dist/parsers/tree-sitter/pydantic/pydantic-extractor.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/pydantic-extractor.js +399 -0
- package/dist/parsers/tree-sitter/pydantic/pydantic-extractor.js.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/type-resolver.d.ts +89 -0
- package/dist/parsers/tree-sitter/pydantic/type-resolver.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/type-resolver.js +426 -0
- package/dist/parsers/tree-sitter/pydantic/type-resolver.js.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/types.d.ts +177 -0
- package/dist/parsers/tree-sitter/pydantic/types.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/types.js +139 -0
- package/dist/parsers/tree-sitter/pydantic/types.js.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/validator-extractor.d.ts +88 -0
- package/dist/parsers/tree-sitter/pydantic/validator-extractor.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/pydantic/validator-extractor.js +315 -0
- package/dist/parsers/tree-sitter/pydantic/validator-extractor.js.map +1 -0
- package/dist/parsers/tree-sitter/python-ast-converter.d.ts +140 -0
- package/dist/parsers/tree-sitter/python-ast-converter.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/python-ast-converter.js +360 -0
- package/dist/parsers/tree-sitter/python-ast-converter.js.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-csharp-parser.d.ts +465 -0
- package/dist/parsers/tree-sitter/tree-sitter-csharp-parser.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-csharp-parser.js +1146 -0
- package/dist/parsers/tree-sitter/tree-sitter-csharp-parser.js.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-python-parser.d.ts +86 -0
- package/dist/parsers/tree-sitter/tree-sitter-python-parser.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/tree-sitter-python-parser.js +177 -0
- package/dist/parsers/tree-sitter/tree-sitter-python-parser.js.map +1 -0
- package/dist/parsers/tree-sitter/types.d.ts +399 -0
- package/dist/parsers/tree-sitter/types.d.ts.map +1 -0
- package/dist/parsers/tree-sitter/types.js +20 -0
- package/dist/parsers/tree-sitter/types.js.map +1 -0
- package/dist/parsers/types.d.ts +1 -1
- package/dist/parsers/types.d.ts.map +1 -1
- package/dist/scanner/file-walker.d.ts.map +1 -1
- package/dist/scanner/file-walker.js +5 -0
- package/dist/scanner/file-walker.js.map +1 -1
- package/dist/store/history-store.d.ts +85 -269
- package/dist/store/history-store.d.ts.map +1 -1
- package/dist/store/history-store.js +272 -624
- package/dist/store/history-store.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/java-type-mapping.d.ts +79 -0
- package/dist/types/java-type-mapping.d.ts.map +1 -0
- package/dist/types/java-type-mapping.js +290 -0
- package/dist/types/java-type-mapping.js.map +1 -0
- package/package.json +8 -3
|
@@ -1,314 +1,130 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* History Store - Pattern
|
|
2
|
+
* History Store - Pattern snapshot and trend tracking
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Captures pattern state over time to detect regressions and improvements.
|
|
5
|
+
* Stores daily snapshots in .drift/history/snapshots/
|
|
6
6
|
*
|
|
7
|
-
* @requirements 4.4 -
|
|
7
|
+
* @requirements 4.4 - Pattern history SHALL be tracked in .drift/history/
|
|
8
8
|
*/
|
|
9
9
|
import { EventEmitter } from 'node:events';
|
|
10
|
-
import type {
|
|
10
|
+
import type { Pattern, PatternCategory } from './types.js';
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
12
|
+
* A snapshot of a single pattern's state at a point in time
|
|
13
13
|
*/
|
|
14
|
-
export
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
export interface PatternSnapshot {
|
|
15
|
+
patternId: string;
|
|
16
|
+
patternName: string;
|
|
17
|
+
category: PatternCategory;
|
|
18
|
+
confidence: number;
|
|
19
|
+
locationCount: number;
|
|
20
|
+
outlierCount: number;
|
|
21
|
+
complianceRate: number;
|
|
22
|
+
status: 'discovered' | 'approved' | 'ignored';
|
|
17
23
|
}
|
|
18
24
|
/**
|
|
19
|
-
*
|
|
25
|
+
* A full snapshot of all patterns at a point in time
|
|
20
26
|
*/
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
export interface HistorySnapshot {
|
|
28
|
+
timestamp: string;
|
|
29
|
+
date: string;
|
|
30
|
+
patterns: PatternSnapshot[];
|
|
31
|
+
summary: {
|
|
32
|
+
totalPatterns: number;
|
|
33
|
+
avgConfidence: number;
|
|
34
|
+
totalLocations: number;
|
|
35
|
+
totalOutliers: number;
|
|
36
|
+
overallComplianceRate: number;
|
|
37
|
+
byCategory: Record<string, CategorySummary>;
|
|
38
|
+
};
|
|
24
39
|
}
|
|
25
40
|
/**
|
|
26
|
-
*
|
|
41
|
+
* Summary for a single category
|
|
27
42
|
*/
|
|
28
|
-
export interface
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
maxAgeDays: number;
|
|
35
|
-
/** Whether to auto-save changes */
|
|
36
|
-
autoSave: boolean;
|
|
37
|
-
/** Debounce time for auto-save in milliseconds */
|
|
38
|
-
autoSaveDebounce: number;
|
|
43
|
+
export interface CategorySummary {
|
|
44
|
+
patternCount: number;
|
|
45
|
+
avgConfidence: number;
|
|
46
|
+
totalLocations: number;
|
|
47
|
+
totalOutliers: number;
|
|
48
|
+
complianceRate: number;
|
|
39
49
|
}
|
|
40
50
|
/**
|
|
41
|
-
*
|
|
51
|
+
* A detected regression or improvement
|
|
42
52
|
*/
|
|
43
|
-
export
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
/** Filter by user */
|
|
57
|
-
user?: string;
|
|
58
|
-
/** Filter events after this date (ISO string) */
|
|
59
|
-
after?: string;
|
|
60
|
-
/** Filter events before this date (ISO string) */
|
|
61
|
-
before?: string;
|
|
62
|
-
/** Maximum number of results */
|
|
63
|
-
limit?: number;
|
|
64
|
-
/** Number of results to skip */
|
|
65
|
-
offset?: number;
|
|
53
|
+
export interface PatternTrend {
|
|
54
|
+
patternId: string;
|
|
55
|
+
patternName: string;
|
|
56
|
+
category: PatternCategory;
|
|
57
|
+
type: 'regression' | 'improvement' | 'stable';
|
|
58
|
+
metric: 'confidence' | 'compliance' | 'outliers';
|
|
59
|
+
previousValue: number;
|
|
60
|
+
currentValue: number;
|
|
61
|
+
change: number;
|
|
62
|
+
changePercent: number;
|
|
63
|
+
severity: 'critical' | 'warning' | 'info';
|
|
64
|
+
firstSeen: string;
|
|
65
|
+
details: string;
|
|
66
66
|
}
|
|
67
67
|
/**
|
|
68
|
-
*
|
|
68
|
+
* Aggregated trends for the dashboard
|
|
69
69
|
*/
|
|
70
|
-
export interface
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
70
|
+
export interface TrendSummary {
|
|
71
|
+
period: '7d' | '30d' | '90d';
|
|
72
|
+
startDate: string;
|
|
73
|
+
endDate: string;
|
|
74
|
+
regressions: PatternTrend[];
|
|
75
|
+
improvements: PatternTrend[];
|
|
76
|
+
stable: number;
|
|
77
|
+
overallTrend: 'improving' | 'declining' | 'stable';
|
|
78
|
+
healthDelta: number;
|
|
79
|
+
categoryTrends: Record<string, {
|
|
80
|
+
trend: 'improving' | 'declining' | 'stable';
|
|
81
|
+
avgConfidenceChange: number;
|
|
82
|
+
complianceChange: number;
|
|
83
|
+
}>;
|
|
79
84
|
}
|
|
80
85
|
/**
|
|
81
|
-
*
|
|
86
|
+
* Configuration for the history store
|
|
82
87
|
*/
|
|
83
|
-
export
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
export interface HistoryStoreEvent {
|
|
88
|
-
/** Event type */
|
|
89
|
-
type: HistoryStoreEventType;
|
|
90
|
-
/** Pattern ID (if applicable) */
|
|
91
|
-
patternId?: string;
|
|
92
|
-
/** Additional event data */
|
|
93
|
-
data?: Record<string, unknown>;
|
|
94
|
-
/** ISO timestamp of the event */
|
|
95
|
-
timestamp: string;
|
|
88
|
+
export interface HistoryStoreConfig {
|
|
89
|
+
rootDir: string;
|
|
90
|
+
maxSnapshots: number;
|
|
91
|
+
snapshotInterval: 'scan' | 'daily';
|
|
96
92
|
}
|
|
97
|
-
/**
|
|
98
|
-
* History Store - Manages pattern change history
|
|
99
|
-
*
|
|
100
|
-
* Tracks all pattern changes including:
|
|
101
|
-
* - Pattern created
|
|
102
|
-
* - Pattern updated
|
|
103
|
-
* - Pattern approved
|
|
104
|
-
* - Pattern ignored
|
|
105
|
-
* - Pattern deleted
|
|
106
|
-
* - Confidence changed
|
|
107
|
-
* - Locations changed
|
|
108
|
-
* - Severity changed
|
|
109
|
-
*
|
|
110
|
-
* History is stored in .drift/history/patterns.json
|
|
111
|
-
*
|
|
112
|
-
* @requirements 4.4 - Pattern history tracked in .drift/history/
|
|
113
|
-
*/
|
|
114
93
|
export declare class HistoryStore extends EventEmitter {
|
|
115
94
|
private readonly config;
|
|
116
95
|
private readonly historyDir;
|
|
117
|
-
private readonly
|
|
118
|
-
private histories;
|
|
119
|
-
private loaded;
|
|
120
|
-
private dirty;
|
|
121
|
-
private saveTimeout;
|
|
96
|
+
private readonly snapshotsDir;
|
|
122
97
|
constructor(config?: Partial<HistoryStoreConfig>);
|
|
123
98
|
/**
|
|
124
99
|
* Initialize the history store
|
|
125
|
-
*
|
|
126
|
-
* Creates necessary directories and loads existing history.
|
|
127
100
|
*/
|
|
128
101
|
initialize(): Promise<void>;
|
|
129
102
|
/**
|
|
130
|
-
*
|
|
131
|
-
*
|
|
132
|
-
* @requirements 4.4 - Load history from .drift/history/
|
|
133
|
-
*/
|
|
134
|
-
load(): Promise<void>;
|
|
135
|
-
/**
|
|
136
|
-
* Save history to disk
|
|
137
|
-
*
|
|
138
|
-
* @requirements 4.4 - Persist history in .drift/history/
|
|
139
|
-
*/
|
|
140
|
-
save(): Promise<void>;
|
|
141
|
-
/**
|
|
142
|
-
* Schedule an auto-save if enabled
|
|
143
|
-
*/
|
|
144
|
-
private scheduleAutoSave;
|
|
145
|
-
/**
|
|
146
|
-
* Record a history event for a pattern
|
|
147
|
-
*
|
|
148
|
-
* @param patternId - Pattern ID
|
|
149
|
-
* @param category - Pattern category
|
|
150
|
-
* @param eventType - Type of event
|
|
151
|
-
* @param options - Additional event options
|
|
152
|
-
*/
|
|
153
|
-
recordEvent(patternId: string, category: PatternCategory, eventType: HistoryEventType, options?: {
|
|
154
|
-
user?: string;
|
|
155
|
-
previousValue?: unknown;
|
|
156
|
-
newValue?: unknown;
|
|
157
|
-
details?: Record<string, unknown>;
|
|
158
|
-
}): PatternHistoryEvent;
|
|
159
|
-
/**
|
|
160
|
-
* Record a pattern creation event
|
|
161
|
-
*/
|
|
162
|
-
recordCreated(pattern: Pattern, user?: string): PatternHistoryEvent;
|
|
163
|
-
/**
|
|
164
|
-
* Record a pattern update event
|
|
165
|
-
*/
|
|
166
|
-
recordUpdated(pattern: Pattern, previousPattern: Pattern, user?: string): PatternHistoryEvent;
|
|
167
|
-
/**
|
|
168
|
-
* Record a pattern approval event
|
|
169
|
-
*/
|
|
170
|
-
recordApproved(pattern: Pattern, user?: string): PatternHistoryEvent;
|
|
171
|
-
/**
|
|
172
|
-
* Record a pattern ignore event
|
|
173
|
-
*/
|
|
174
|
-
recordIgnored(pattern: Pattern, user?: string): PatternHistoryEvent;
|
|
175
|
-
/**
|
|
176
|
-
* Record a pattern deletion event
|
|
177
|
-
*/
|
|
178
|
-
recordDeleted(pattern: Pattern, user?: string): PatternHistoryEvent;
|
|
179
|
-
/**
|
|
180
|
-
* Record a confidence change event
|
|
181
|
-
*/
|
|
182
|
-
recordConfidenceChanged(pattern: Pattern, previousScore: number, user?: string): PatternHistoryEvent;
|
|
183
|
-
/**
|
|
184
|
-
* Record a locations change event
|
|
185
|
-
*/
|
|
186
|
-
recordLocationsChanged(pattern: Pattern, previousCount: number, user?: string): PatternHistoryEvent;
|
|
187
|
-
/**
|
|
188
|
-
* Record a severity change event
|
|
189
|
-
*/
|
|
190
|
-
recordSeverityChanged(pattern: Pattern, previousSeverity: string, user?: string): PatternHistoryEvent;
|
|
191
|
-
/**
|
|
192
|
-
* Get history for a specific pattern
|
|
193
|
-
*
|
|
194
|
-
* @param patternId - Pattern ID
|
|
195
|
-
* @returns Pattern history or undefined if not found
|
|
196
|
-
*/
|
|
197
|
-
getPatternHistory(patternId: string): PatternHistory | undefined;
|
|
198
|
-
/**
|
|
199
|
-
* Get history for a specific pattern, throwing if not found
|
|
200
|
-
*
|
|
201
|
-
* @param patternId - Pattern ID
|
|
202
|
-
* @returns Pattern history
|
|
203
|
-
* @throws PatternHistoryNotFoundError if not found
|
|
204
|
-
*/
|
|
205
|
-
getPatternHistoryOrThrow(patternId: string): PatternHistory;
|
|
206
|
-
/**
|
|
207
|
-
* Check if history exists for a pattern
|
|
208
|
-
*
|
|
209
|
-
* @param patternId - Pattern ID
|
|
210
|
-
* @returns True if history exists
|
|
211
|
-
*/
|
|
212
|
-
hasPatternHistory(patternId: string): boolean;
|
|
213
|
-
/**
|
|
214
|
-
* Query history events with filtering and pagination
|
|
215
|
-
*
|
|
216
|
-
* @param query - Query options
|
|
217
|
-
* @returns Query result with matching events
|
|
218
|
-
*/
|
|
219
|
-
query(query?: HistoryQuery): HistoryQueryResult;
|
|
220
|
-
/**
|
|
221
|
-
* Apply filters to events
|
|
222
|
-
*/
|
|
223
|
-
private applyFilters;
|
|
224
|
-
/**
|
|
225
|
-
* Get all history events
|
|
226
|
-
*/
|
|
227
|
-
getAllEvents(): PatternHistoryEvent[];
|
|
228
|
-
/**
|
|
229
|
-
* Get events by type
|
|
230
|
-
*/
|
|
231
|
-
getEventsByType(eventType: HistoryEventType): PatternHistoryEvent[];
|
|
232
|
-
/**
|
|
233
|
-
* Get events by category
|
|
234
|
-
*/
|
|
235
|
-
getEventsByCategory(category: PatternCategory): PatternHistoryEvent[];
|
|
236
|
-
/**
|
|
237
|
-
* Get events in date range
|
|
238
|
-
*/
|
|
239
|
-
getEventsInDateRange(after: string, before: string): PatternHistoryEvent[];
|
|
240
|
-
/**
|
|
241
|
-
* Get recent events
|
|
242
|
-
*
|
|
243
|
-
* @param limit - Maximum number of events to return
|
|
244
|
-
*/
|
|
245
|
-
getRecentEvents(limit?: number): PatternHistoryEvent[];
|
|
246
|
-
/**
|
|
247
|
-
* Get approval history
|
|
248
|
-
*/
|
|
249
|
-
getApprovalHistory(): PatternHistoryEvent[];
|
|
250
|
-
/**
|
|
251
|
-
* Get events by user
|
|
252
|
-
*/
|
|
253
|
-
getEventsByUser(user: string): PatternHistoryEvent[];
|
|
254
|
-
/**
|
|
255
|
-
* Prune history for a specific pattern
|
|
256
|
-
*
|
|
257
|
-
* Removes old entries based on maxEntriesPerPattern and maxAgeDays config.
|
|
258
|
-
*
|
|
259
|
-
* @param patternId - Pattern ID to prune
|
|
260
|
-
*/
|
|
261
|
-
private prunePatternHistory;
|
|
262
|
-
/**
|
|
263
|
-
* Prune all history
|
|
264
|
-
*
|
|
265
|
-
* Removes old entries based on maxEntriesPerPattern and maxAgeDays config.
|
|
266
|
-
*/
|
|
267
|
-
prune(): void;
|
|
268
|
-
/**
|
|
269
|
-
* Delete history for a specific pattern
|
|
270
|
-
*
|
|
271
|
-
* @param patternId - Pattern ID
|
|
272
|
-
* @returns True if history was deleted
|
|
273
|
-
*/
|
|
274
|
-
deletePatternHistory(patternId: string): boolean;
|
|
275
|
-
/**
|
|
276
|
-
* Get statistics about the history store
|
|
277
|
-
*/
|
|
278
|
-
getStats(): {
|
|
279
|
-
totalPatterns: number;
|
|
280
|
-
totalEvents: number;
|
|
281
|
-
eventsByType: Record<HistoryEventType, number>;
|
|
282
|
-
oldestEvent: string | null;
|
|
283
|
-
newestEvent: string | null;
|
|
284
|
-
};
|
|
285
|
-
/**
|
|
286
|
-
* Emit a history store event
|
|
287
|
-
*/
|
|
288
|
-
private emitEvent;
|
|
289
|
-
/**
|
|
290
|
-
* Get the number of patterns with history
|
|
103
|
+
* Create a snapshot from current patterns
|
|
291
104
|
*/
|
|
292
|
-
|
|
105
|
+
createSnapshot(patterns: Pattern[]): Promise<HistorySnapshot>;
|
|
293
106
|
/**
|
|
294
|
-
*
|
|
107
|
+
* Get snapshots for a date range
|
|
295
108
|
*/
|
|
296
|
-
|
|
109
|
+
getSnapshots(startDate?: string, endDate?: string): Promise<HistorySnapshot[]>;
|
|
297
110
|
/**
|
|
298
|
-
*
|
|
111
|
+
* Get the most recent snapshot
|
|
299
112
|
*/
|
|
300
|
-
|
|
113
|
+
getLatestSnapshot(): Promise<HistorySnapshot | null>;
|
|
301
114
|
/**
|
|
302
|
-
* Get
|
|
115
|
+
* Get snapshot from N days ago
|
|
303
116
|
*/
|
|
304
|
-
|
|
117
|
+
getSnapshotFromDaysAgo(days: number): Promise<HistorySnapshot | null>;
|
|
305
118
|
/**
|
|
306
|
-
*
|
|
119
|
+
* Calculate trends between two snapshots
|
|
307
120
|
*/
|
|
308
|
-
|
|
121
|
+
calculateTrends(current: HistorySnapshot, previous: HistorySnapshot): PatternTrend[];
|
|
309
122
|
/**
|
|
310
|
-
*
|
|
123
|
+
* Get trend summary for a period
|
|
311
124
|
*/
|
|
312
|
-
|
|
125
|
+
getTrendSummary(period?: '7d' | '30d' | '90d'): Promise<TrendSummary | null>;
|
|
126
|
+
private calculateSummary;
|
|
127
|
+
private saveSnapshot;
|
|
128
|
+
private cleanupOldSnapshots;
|
|
313
129
|
}
|
|
314
130
|
//# sourceMappingURL=history-store.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-store.d.ts","sourceRoot":"","sources":["../../src/store/history-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"history-store.d.ts","sourceRoot":"","sources":["../../src/store/history-store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM3D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;KAC7C,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,IAAI,EAAE,YAAY,GAAG,aAAa,GAAG,QAAQ,CAAC;IAC9C,MAAM,EAAE,YAAY,GAAG,YAAY,GAAG,UAAU,CAAC;IACjD,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,MAAM,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE;QAC7B,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;QAC5C,mBAAmB,EAAE,MAAM,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;KAC1B,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC;CACpC;AA0DD,qBAAa,YAAa,SAAQ,YAAY;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAOpD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACG,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAqCnE;;OAEG;IACG,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA6BpF;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAK1D;;OAEG;IACG,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAqB3E;;OAEG;IACH,eAAe,CACb,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,eAAe,GACxB,YAAY,EAAE;IAmFjB;;OAEG;IACG,eAAe,CAAC,MAAM,GAAE,IAAI,GAAG,KAAK,GAAG,KAAY,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAkExF,OAAO,CAAC,gBAAgB;YAgDV,YAAY;YAKZ,mBAAmB;CAelC"}
|