cmp-standards 2.8.0-alpha → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/cache/EmbeddingCache.d.ts +2 -1
  2. package/dist/cache/EmbeddingCache.d.ts.map +1 -1
  3. package/dist/cache/EmbeddingCache.js +12 -12
  4. package/dist/cache/EmbeddingCache.js.map +1 -1
  5. package/dist/db/cloud.d.ts +1 -0
  6. package/dist/db/cloud.d.ts.map +1 -1
  7. package/dist/db/drizzle-client.d.ts +10 -1
  8. package/dist/db/drizzle-client.d.ts.map +1 -1
  9. package/dist/db/drizzle-client.js +57 -3
  10. package/dist/db/drizzle-client.js.map +1 -1
  11. package/dist/db/errors.d.ts +13 -1
  12. package/dist/db/errors.d.ts.map +1 -1
  13. package/dist/db/errors.js +49 -5
  14. package/dist/db/errors.js.map +1 -1
  15. package/dist/db/migrations.d.ts +42 -0
  16. package/dist/db/migrations.d.ts.map +1 -0
  17. package/dist/db/migrations.js +173 -0
  18. package/dist/db/migrations.js.map +1 -0
  19. package/dist/db/turso-client.d.ts +15 -3
  20. package/dist/db/turso-client.d.ts.map +1 -1
  21. package/dist/db/turso-client.js +49 -38
  22. package/dist/db/turso-client.js.map +1 -1
  23. package/dist/events/EventBus.d.ts +10 -0
  24. package/dist/events/EventBus.d.ts.map +1 -1
  25. package/dist/events/EventBus.js +57 -1
  26. package/dist/events/EventBus.js.map +1 -1
  27. package/dist/interfaces/index.d.ts +450 -0
  28. package/dist/interfaces/index.d.ts.map +1 -0
  29. package/dist/interfaces/index.js +50 -0
  30. package/dist/interfaces/index.js.map +1 -0
  31. package/dist/mcp/schemas.d.ts +278 -0
  32. package/dist/mcp/schemas.d.ts.map +1 -0
  33. package/dist/mcp/schemas.js +166 -0
  34. package/dist/mcp/schemas.js.map +1 -0
  35. package/dist/mcp/server.d.ts.map +1 -1
  36. package/dist/mcp/server.js +14 -3
  37. package/dist/mcp/server.js.map +1 -1
  38. package/dist/patterns/feedback-loop.d.ts +264 -0
  39. package/dist/patterns/feedback-loop.d.ts.map +1 -0
  40. package/dist/patterns/feedback-loop.js +329 -0
  41. package/dist/patterns/feedback-loop.js.map +1 -0
  42. package/dist/patterns/index.d.ts +9 -0
  43. package/dist/patterns/index.d.ts.map +1 -0
  44. package/dist/patterns/index.js +9 -0
  45. package/dist/patterns/index.js.map +1 -0
  46. package/dist/patterns/lifecycle.d.ts +88 -0
  47. package/dist/patterns/lifecycle.d.ts.map +1 -0
  48. package/dist/patterns/lifecycle.js +284 -0
  49. package/dist/patterns/lifecycle.js.map +1 -0
  50. package/dist/patterns/registry.d.ts +142 -0
  51. package/dist/patterns/registry.d.ts.map +1 -0
  52. package/dist/patterns/registry.js +442 -0
  53. package/dist/patterns/registry.js.map +1 -0
  54. package/dist/services/PlanManager.d.ts +1 -1
  55. package/dist/services/PlanManager.d.ts.map +1 -1
  56. package/dist/services/PlanManager.js +26 -6
  57. package/dist/services/PlanManager.js.map +1 -1
  58. package/package.json +1 -1
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @file Pattern Lifecycle Service
3
+ * @description Manages pattern evolution, regression detection, and auto-improvement
4
+ * @version 2.8.0
5
+ */
6
+ import { type UnifiedPattern } from './registry.js';
7
+ export interface PatternOccurrence {
8
+ patternId: string;
9
+ file: string;
10
+ line: number;
11
+ code: string;
12
+ timestamp: string;
13
+ sessionId?: string;
14
+ }
15
+ export interface PatternStats {
16
+ patternId: string;
17
+ occurrences: number;
18
+ lastSeen: string;
19
+ firstSeen: string;
20
+ files: string[];
21
+ triggered: boolean;
22
+ implemented: boolean;
23
+ }
24
+ export interface RegressionAlert {
25
+ patternId: string;
26
+ message: string;
27
+ occurrencesSinceImplemented: number;
28
+ suggestedAction: 'strengthen_rule' | 'investigate' | 'retire_pattern';
29
+ severity: 'critical' | 'high' | 'medium' | 'low';
30
+ }
31
+ export declare class PatternLifecycleService {
32
+ private occurrences;
33
+ private system;
34
+ constructor(system: string);
35
+ /**
36
+ * Track a pattern occurrence
37
+ */
38
+ track(occurrence: PatternOccurrence): Promise<{
39
+ count: number;
40
+ triggered: boolean;
41
+ rule?: string;
42
+ }>;
43
+ /**
44
+ * Confirm a pattern detection (from expert approval)
45
+ */
46
+ confirmPattern(patternId: string): Promise<void>;
47
+ /**
48
+ * Mark pattern as false positive (from expert rejection)
49
+ */
50
+ markFalsePositive(patternId: string): Promise<void>;
51
+ /**
52
+ * Promote pattern severity (warning -> error)
53
+ */
54
+ promotePattern(patternId: string): Promise<void>;
55
+ /**
56
+ * Retire a pattern
57
+ */
58
+ retirePattern(patternId: string, reason: string): Promise<void>;
59
+ /**
60
+ * Detect regression (pattern reappearing after implementation)
61
+ */
62
+ detectRegression(patternId: string): Promise<RegressionAlert | null>;
63
+ /**
64
+ * Adjust pattern sensitivity based on feedback
65
+ */
66
+ adjustSensitivity(patternId: string, feedback: 'too_sensitive' | 'not_sensitive_enough'): Promise<void>;
67
+ /**
68
+ * Get stats for all patterns
69
+ */
70
+ getStats(): Promise<PatternStats[]>;
71
+ /**
72
+ * Export learnings as snapshot
73
+ */
74
+ exportLearnings(): Promise<{
75
+ patterns: UnifiedPattern[];
76
+ stats: PatternStats[];
77
+ exportedAt: string;
78
+ }>;
79
+ private triggerAutoImprovement;
80
+ private persistOccurrence;
81
+ private saveAutoImprovement;
82
+ private createPatternMemory;
83
+ }
84
+ export declare function getPatternLifecycle(system: string): PatternLifecycleService;
85
+ /** Alias for getPatternLifecycle */
86
+ export declare const getPatternLifecycleService: typeof getPatternLifecycle;
87
+ export declare function resetPatternLifecycle(): void;
88
+ //# sourceMappingURL=lifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.d.ts","sourceRoot":"","sources":["../../src/patterns/lifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAsB,KAAK,cAAc,EAAsB,MAAM,eAAe,CAAA;AAM3F,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,OAAO,CAAA;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,2BAA2B,EAAE,MAAM,CAAA;IACnC,eAAe,EAAE,iBAAiB,GAAG,aAAa,GAAG,gBAAgB,CAAA;IACrE,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAA;CACjD;AAMD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,WAAW,CAA8C;IACjE,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,MAAM;IAI1B;;OAEG;IACG,KAAK,CAAC,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAClD,KAAK,EAAE,MAAM,CAAA;QACb,SAAS,EAAE,OAAO,CAAA;QAClB,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAC;IA4CF;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBtD;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzD;;OAEG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBtD;;OAEG;IACG,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrE;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAiC1E;;OAEG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,eAAe,GAAG,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7G;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAwBzC;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC;QAC/B,QAAQ,EAAE,cAAc,EAAE,CAAA;QAC1B,KAAK,EAAE,YAAY,EAAE,CAAA;QACrB,UAAU,EAAE,MAAM,CAAA;KACnB,CAAC;YAeY,sBAAsB;YAuCtB,iBAAiB;YAejB,mBAAmB;YAenB,mBAAmB;CAiBlC;AAQD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,CAK3E;AAED,oCAAoC;AACpC,eAAO,MAAM,0BAA0B,4BAAsB,CAAA;AAE7D,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
@@ -0,0 +1,284 @@
1
+ /**
2
+ * @file Pattern Lifecycle Service
3
+ * @description Manages pattern evolution, regression detection, and auto-improvement
4
+ * @version 2.8.0
5
+ */
6
+ import { turso } from '../db/turso-client.js';
7
+ import { getEventBus } from '../events/EventBus.js';
8
+ import { getPatternRegistry } from './registry.js';
9
+ // =============================================================================
10
+ // Pattern Lifecycle Service
11
+ // =============================================================================
12
+ export class PatternLifecycleService {
13
+ occurrences = new Map();
14
+ system;
15
+ constructor(system) {
16
+ this.system = system;
17
+ }
18
+ /**
19
+ * Track a pattern occurrence
20
+ */
21
+ async track(occurrence) {
22
+ const registry = getPatternRegistry();
23
+ const pattern = registry.get(occurrence.patternId);
24
+ if (!pattern) {
25
+ return { count: 0, triggered: false };
26
+ }
27
+ // Add to local tracking
28
+ if (!this.occurrences.has(occurrence.patternId)) {
29
+ this.occurrences.set(occurrence.patternId, []);
30
+ }
31
+ const patternOccurrences = this.occurrences.get(occurrence.patternId);
32
+ // Check for duplicates
33
+ const isDuplicate = patternOccurrences.some(o => o.file === occurrence.file && o.line === occurrence.line);
34
+ if (!isDuplicate) {
35
+ patternOccurrences.push(occurrence);
36
+ }
37
+ // Persist to database
38
+ await this.persistOccurrence(occurrence);
39
+ // Check threshold
40
+ const threshold = registry.getEffectiveThreshold(occurrence.patternId);
41
+ const count = patternOccurrences.length;
42
+ const triggered = count >= threshold && pattern.status === 'active';
43
+ if (triggered) {
44
+ await this.triggerAutoImprovement(pattern, patternOccurrences);
45
+ return {
46
+ count,
47
+ triggered: true,
48
+ rule: registry.generateEslintRule(occurrence.patternId) ?? undefined
49
+ };
50
+ }
51
+ return { count, triggered: false };
52
+ }
53
+ /**
54
+ * Confirm a pattern detection (from expert approval)
55
+ */
56
+ async confirmPattern(patternId) {
57
+ const registry = getPatternRegistry();
58
+ registry.recordFeedback(patternId, 'confirmed');
59
+ // Emit event for learning loop
60
+ const eventBus = getEventBus();
61
+ await eventBus.publish({
62
+ type: 'pattern.confirmed',
63
+ patternId,
64
+ timestamp: Date.now(),
65
+ metadata: {
66
+ source: 'lifecycle',
67
+ timestamp: Date.now(),
68
+ }
69
+ });
70
+ }
71
+ /**
72
+ * Mark pattern as false positive (from expert rejection)
73
+ */
74
+ async markFalsePositive(patternId) {
75
+ const registry = getPatternRegistry();
76
+ registry.recordFeedback(patternId, 'false_positive');
77
+ const pattern = registry.get(patternId);
78
+ if (pattern && pattern.falsePositives >= 5) {
79
+ console.log(`[PatternLifecycle] Pattern ${patternId} has many false positives, consider retirement`);
80
+ }
81
+ }
82
+ /**
83
+ * Promote pattern severity (warning -> error)
84
+ */
85
+ async promotePattern(patternId) {
86
+ const registry = getPatternRegistry();
87
+ const pattern = registry.get(patternId);
88
+ if (!pattern)
89
+ return;
90
+ const severityOrder = ['low', 'medium', 'high', 'critical'];
91
+ const currentIndex = severityOrder.indexOf(pattern.severity);
92
+ if (currentIndex < severityOrder.length - 1) {
93
+ const newSeverity = severityOrder[currentIndex + 1];
94
+ pattern.severity = newSeverity;
95
+ pattern.updatedAt = new Date().toISOString();
96
+ console.log(`[PatternLifecycle] Promoted ${patternId}: ${severityOrder[currentIndex]} -> ${newSeverity}`);
97
+ // Create memory entry
98
+ await this.createPatternMemory(pattern, 'promoted', `Promoted to ${newSeverity} severity`);
99
+ }
100
+ }
101
+ /**
102
+ * Retire a pattern
103
+ */
104
+ async retirePattern(patternId, reason) {
105
+ const registry = getPatternRegistry();
106
+ registry.updateStatus(patternId, 'retired', reason);
107
+ console.log(`[PatternLifecycle] Retired pattern ${patternId}: ${reason}`);
108
+ const pattern = registry.get(patternId);
109
+ if (pattern) {
110
+ await this.createPatternMemory(pattern, 'retired', reason);
111
+ }
112
+ }
113
+ /**
114
+ * Detect regression (pattern reappearing after implementation)
115
+ */
116
+ async detectRegression(patternId) {
117
+ const registry = getPatternRegistry();
118
+ const pattern = registry.get(patternId);
119
+ if (!pattern || pattern.status !== 'implemented') {
120
+ return null;
121
+ }
122
+ const occurrences = this.occurrences.get(patternId) || [];
123
+ const implementedAt = pattern.implementedAt ? new Date(pattern.implementedAt) : null;
124
+ if (!implementedAt)
125
+ return null;
126
+ // Count occurrences after implementation
127
+ const postImplementation = occurrences.filter(o => new Date(o.timestamp) > implementedAt);
128
+ if (postImplementation.length >= 3) {
129
+ return {
130
+ patternId,
131
+ message: `Pattern ${pattern.name} has reappeared ${postImplementation.length} times since ESLint rule was implemented`,
132
+ occurrencesSinceImplemented: postImplementation.length,
133
+ suggestedAction: postImplementation.length >= 10
134
+ ? 'investigate'
135
+ : 'strengthen_rule',
136
+ severity: pattern.severity
137
+ };
138
+ }
139
+ return null;
140
+ }
141
+ /**
142
+ * Adjust pattern sensitivity based on feedback
143
+ */
144
+ async adjustSensitivity(patternId, feedback) {
145
+ const registry = getPatternRegistry();
146
+ const pattern = registry.get(patternId);
147
+ if (!pattern)
148
+ return;
149
+ if (feedback === 'too_sensitive') {
150
+ pattern.adjustedThreshold = (pattern.adjustedThreshold ?? pattern.threshold) + 1;
151
+ }
152
+ else {
153
+ pattern.adjustedThreshold = Math.max(1, (pattern.adjustedThreshold ?? pattern.threshold) - 1);
154
+ }
155
+ pattern.updatedAt = new Date().toISOString();
156
+ console.log(`[PatternLifecycle] Adjusted ${patternId} threshold to ${pattern.adjustedThreshold}`);
157
+ }
158
+ /**
159
+ * Get stats for all patterns
160
+ */
161
+ async getStats() {
162
+ const registry = getPatternRegistry();
163
+ const patterns = registry.getAll();
164
+ return patterns.map(pattern => {
165
+ const occurrences = this.occurrences.get(pattern.id) || [];
166
+ const files = [...new Set(occurrences.map(o => o.file))];
167
+ return {
168
+ patternId: pattern.id,
169
+ occurrences: occurrences.length,
170
+ lastSeen: occurrences.length > 0
171
+ ? occurrences[occurrences.length - 1].timestamp
172
+ : '',
173
+ firstSeen: occurrences.length > 0
174
+ ? occurrences[0].timestamp
175
+ : '',
176
+ files,
177
+ triggered: pattern.status === 'triggered' || pattern.status === 'implemented',
178
+ implemented: pattern.status === 'implemented'
179
+ };
180
+ });
181
+ }
182
+ /**
183
+ * Export learnings as snapshot
184
+ */
185
+ async exportLearnings() {
186
+ const registry = getPatternRegistry();
187
+ const stats = await this.getStats();
188
+ return {
189
+ patterns: registry.export(),
190
+ stats,
191
+ exportedAt: new Date().toISOString()
192
+ };
193
+ }
194
+ // ===========================================================================
195
+ // Private Methods
196
+ // ===========================================================================
197
+ async triggerAutoImprovement(pattern, occurrences) {
198
+ const registry = getPatternRegistry();
199
+ registry.updateStatus(pattern.id, 'triggered');
200
+ console.log(`[PatternLifecycle] Auto-improvement triggered for ${pattern.id}`);
201
+ console.log(` Occurrences: ${occurrences.length}`);
202
+ console.log(` Files: ${[...new Set(occurrences.map(o => o.file))].join(', ')}`);
203
+ // Generate ESLint rule
204
+ const rule = registry.generateEslintRule(pattern.id);
205
+ if (rule) {
206
+ await this.saveAutoImprovement(pattern, rule);
207
+ }
208
+ // Create memory entry
209
+ await this.createPatternMemory(pattern, 'triggered', `Pattern detected ${occurrences.length} times. ESLint rule generated.`);
210
+ // Emit event
211
+ const eventBus = getEventBus();
212
+ await eventBus.publish({
213
+ type: 'pattern.detected',
214
+ patternId: pattern.id,
215
+ occurrences: occurrences.length,
216
+ severity: pattern.severity,
217
+ timestamp: Date.now(),
218
+ metadata: {
219
+ source: 'lifecycle',
220
+ timestamp: Date.now(),
221
+ }
222
+ });
223
+ }
224
+ async persistOccurrence(occurrence) {
225
+ try {
226
+ await turso.create('pattern_occurrence', this.system, {
227
+ patternId: occurrence.patternId,
228
+ file: occurrence.file,
229
+ line: occurrence.line,
230
+ code: occurrence.code,
231
+ sessionId: occurrence.sessionId,
232
+ detectedAt: occurrence.timestamp
233
+ }, 'active');
234
+ }
235
+ catch (error) {
236
+ console.warn('[PatternLifecycle] Failed to persist occurrence:', error);
237
+ }
238
+ }
239
+ async saveAutoImprovement(pattern, ruleCode) {
240
+ try {
241
+ await turso.create('auto_improvement', this.system, {
242
+ patternId: pattern.id,
243
+ action: 'eslint_rule',
244
+ status: 'pending',
245
+ generatedCode: ruleCode,
246
+ filePath: `src/eslint/rules/${pattern.eslintRuleName}.ts`,
247
+ createdAt: new Date().toISOString()
248
+ }, 'pending');
249
+ }
250
+ catch (error) {
251
+ console.warn('[PatternLifecycle] Failed to save auto-improvement:', error);
252
+ }
253
+ }
254
+ async createPatternMemory(pattern, action, details) {
255
+ try {
256
+ await turso.create('memory', this.system, {
257
+ title: `Pattern ${action}: ${pattern.name}`,
258
+ body: `## ${pattern.name}\n\n**Action**: ${action}\n**Severity**: ${pattern.severity}\n\n${details}`,
259
+ domain: 'auto-improvement',
260
+ source: 'system',
261
+ tags: ['auto', 'pattern', pattern.id, action]
262
+ }, 'active');
263
+ }
264
+ catch (error) {
265
+ console.warn('[PatternLifecycle] Failed to create memory:', error);
266
+ }
267
+ }
268
+ }
269
+ // =============================================================================
270
+ // Singleton
271
+ // =============================================================================
272
+ let lifecycleInstance = null;
273
+ export function getPatternLifecycle(system) {
274
+ if (!lifecycleInstance) {
275
+ lifecycleInstance = new PatternLifecycleService(system);
276
+ }
277
+ return lifecycleInstance;
278
+ }
279
+ /** Alias for getPatternLifecycle */
280
+ export const getPatternLifecycleService = getPatternLifecycle;
281
+ export function resetPatternLifecycle() {
282
+ lifecycleInstance = null;
283
+ }
284
+ //# sourceMappingURL=lifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../../src/patterns/lifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * @file Unified Pattern Registry
3
+ * @description Single source of truth for all pattern definitions
4
+ * @version 2.8.0
5
+ *
6
+ * Combines functionality from:
7
+ * - auto-improve/pattern-detector.ts
8
+ * - services/pattern-tracker.ts
9
+ */
10
+ import { z } from 'zod';
11
+ export declare const PatternSeveritySchema: z.ZodEnum<["critical", "high", "medium", "low"]>;
12
+ export type PatternSeverity = z.infer<typeof PatternSeveritySchema>;
13
+ export declare const PatternStatusSchema: z.ZodEnum<["active", "triggered", "implemented", "retired"]>;
14
+ export type PatternStatus = z.infer<typeof PatternStatusSchema>;
15
+ export declare const UnifiedPatternSchema: z.ZodObject<{
16
+ id: z.ZodString;
17
+ name: z.ZodString;
18
+ description: z.ZodString;
19
+ severity: z.ZodEnum<["critical", "high", "medium", "low"]>;
20
+ regex: z.ZodOptional<z.ZodString>;
21
+ filePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
22
+ excludePatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
23
+ eslintRuleName: z.ZodOptional<z.ZodString>;
24
+ astVisitorTemplate: z.ZodOptional<z.ZodString>;
25
+ status: z.ZodDefault<z.ZodEnum<["active", "triggered", "implemented", "retired"]>>;
26
+ triggeredAt: z.ZodOptional<z.ZodString>;
27
+ implementedAt: z.ZodOptional<z.ZodString>;
28
+ retiredAt: z.ZodOptional<z.ZodString>;
29
+ retiredReason: z.ZodOptional<z.ZodString>;
30
+ threshold: z.ZodDefault<z.ZodNumber>;
31
+ falsePositives: z.ZodDefault<z.ZodNumber>;
32
+ confirmedViolations: z.ZodDefault<z.ZodNumber>;
33
+ adjustedThreshold: z.ZodOptional<z.ZodNumber>;
34
+ createdAt: z.ZodOptional<z.ZodString>;
35
+ updatedAt: z.ZodOptional<z.ZodString>;
36
+ createdBy: z.ZodOptional<z.ZodString>;
37
+ }, "strip", z.ZodTypeAny, {
38
+ status: "active" | "triggered" | "implemented" | "retired";
39
+ description: string;
40
+ severity: "critical" | "high" | "medium" | "low";
41
+ id: string;
42
+ name: string;
43
+ threshold: number;
44
+ falsePositives: number;
45
+ confirmedViolations: number;
46
+ createdAt?: string | undefined;
47
+ updatedAt?: string | undefined;
48
+ implementedAt?: string | undefined;
49
+ createdBy?: string | undefined;
50
+ regex?: string | undefined;
51
+ filePatterns?: string[] | undefined;
52
+ excludePatterns?: string[] | undefined;
53
+ eslintRuleName?: string | undefined;
54
+ astVisitorTemplate?: string | undefined;
55
+ triggeredAt?: string | undefined;
56
+ retiredAt?: string | undefined;
57
+ retiredReason?: string | undefined;
58
+ adjustedThreshold?: number | undefined;
59
+ }, {
60
+ description: string;
61
+ severity: "critical" | "high" | "medium" | "low";
62
+ id: string;
63
+ name: string;
64
+ status?: "active" | "triggered" | "implemented" | "retired" | undefined;
65
+ createdAt?: string | undefined;
66
+ updatedAt?: string | undefined;
67
+ implementedAt?: string | undefined;
68
+ createdBy?: string | undefined;
69
+ threshold?: number | undefined;
70
+ regex?: string | undefined;
71
+ filePatterns?: string[] | undefined;
72
+ excludePatterns?: string[] | undefined;
73
+ eslintRuleName?: string | undefined;
74
+ astVisitorTemplate?: string | undefined;
75
+ triggeredAt?: string | undefined;
76
+ retiredAt?: string | undefined;
77
+ retiredReason?: string | undefined;
78
+ falsePositives?: number | undefined;
79
+ confirmedViolations?: number | undefined;
80
+ adjustedThreshold?: number | undefined;
81
+ }>;
82
+ export type UnifiedPattern = z.infer<typeof UnifiedPatternSchema>;
83
+ export declare const BUILTIN_PATTERNS: UnifiedPattern[];
84
+ export declare class PatternRegistry {
85
+ private patterns;
86
+ private customPatterns;
87
+ constructor();
88
+ /**
89
+ * Get pattern by ID
90
+ */
91
+ get(patternId: string): UnifiedPattern | undefined;
92
+ /**
93
+ * Get all patterns
94
+ */
95
+ getAll(): UnifiedPattern[];
96
+ /**
97
+ * Get active patterns
98
+ */
99
+ getActive(): UnifiedPattern[];
100
+ /**
101
+ * Get patterns by severity
102
+ */
103
+ getBySeverity(severity: PatternSeverity): UnifiedPattern[];
104
+ /**
105
+ * Register custom pattern
106
+ */
107
+ register(pattern: UnifiedPattern): void;
108
+ /**
109
+ * Update pattern status
110
+ */
111
+ updateStatus(patternId: string, status: PatternStatus, reason?: string): void;
112
+ /**
113
+ * Record feedback (adjust learning)
114
+ */
115
+ recordFeedback(patternId: string, type: 'confirmed' | 'false_positive'): void;
116
+ /**
117
+ * Get effective threshold for a pattern
118
+ */
119
+ getEffectiveThreshold(patternId: string): number;
120
+ /**
121
+ * Detect pattern in content
122
+ */
123
+ detect(content: string, filePath: string): Array<{
124
+ pattern: UnifiedPattern;
125
+ matches: RegExpMatchArray[];
126
+ }>;
127
+ /**
128
+ * Generate ESLint rule code for a pattern
129
+ */
130
+ generateEslintRule(patternId: string): string | null;
131
+ /**
132
+ * Export all patterns for persistence
133
+ */
134
+ export(): UnifiedPattern[];
135
+ /**
136
+ * Import patterns from persistence
137
+ */
138
+ import(patterns: UnifiedPattern[]): void;
139
+ }
140
+ export declare function getPatternRegistry(): PatternRegistry;
141
+ export declare function resetPatternRegistry(): void;
142
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/patterns/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAMvB,eAAO,MAAM,qBAAqB,kDAAgD,CAAA;AAClF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAA;AAEnE,eAAO,MAAM,mBAAmB,8DAA4D,CAAA;AAC5F,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAA;AAE/D,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgC/B,CAAA;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAA;AAMjE,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAqM5C,CAAA;AAMD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,cAAc,CAAuB;;IAW7C;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAIlD;;OAEG;IACH,MAAM,IAAI,cAAc,EAAE;IAI1B;;OAEG;IACH,SAAS,IAAI,cAAc,EAAE;IAI7B;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,eAAe,GAAG,cAAc,EAAE;IAI1D;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI;IAMvC;;OAEG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAiB7E;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,GAAG,gBAAgB,GAAG,IAAI;IAmB7E;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAMhD;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,OAAO,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IAmC1G;;OAEG;IACH,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiCpD;;OAEG;IACH,MAAM,IAAI,cAAc,EAAE;IAI1B;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI;CAUzC;AAQD,wBAAgB,kBAAkB,IAAI,eAAe,CAKpD;AAED,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C"}