driftdetect-lsp 0.9.31 → 0.9.33

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 (60) hide show
  1. package/dist/capabilities.d.ts.map +1 -0
  2. package/dist/capabilities.js +183 -0
  3. package/dist/capabilities.js.map +1 -0
  4. package/dist/commands/show-patterns.d.ts +30 -0
  5. package/dist/commands/show-patterns.d.ts.map +1 -1
  6. package/dist/commands/show-patterns.js +175 -0
  7. package/dist/commands/show-patterns.js.map +1 -0
  8. package/dist/handlers/code-actions.d.ts +32 -0
  9. package/dist/handlers/code-actions.d.ts.map +1 -1
  10. package/dist/handlers/code-actions.js +184 -0
  11. package/dist/handlers/code-actions.js.map +1 -0
  12. package/dist/handlers/code-lens.d.ts +32 -0
  13. package/dist/handlers/code-lens.d.ts.map +1 -1
  14. package/dist/handlers/code-lens.js +162 -0
  15. package/dist/handlers/code-lens.js.map +1 -0
  16. package/dist/handlers/commands.d.ts +48 -0
  17. package/dist/handlers/commands.d.ts.map +1 -1
  18. package/dist/handlers/commands.js +360 -0
  19. package/dist/handlers/commands.js.map +1 -0
  20. package/dist/handlers/diagnostics.d.ts +73 -0
  21. package/dist/handlers/diagnostics.d.ts.map +1 -1
  22. package/dist/handlers/diagnostics.js +259 -0
  23. package/dist/handlers/diagnostics.js.map +1 -0
  24. package/dist/handlers/document-sync.d.ts +37 -0
  25. package/dist/handlers/document-sync.d.ts.map +1 -1
  26. package/dist/handlers/document-sync.js +49 -0
  27. package/dist/handlers/document-sync.js.map +1 -0
  28. package/dist/handlers/hover.d.ts +30 -0
  29. package/dist/handlers/hover.d.ts.map +1 -1
  30. package/dist/handlers/hover.js +119 -0
  31. package/dist/handlers/hover.js.map +1 -0
  32. package/dist/integration/core-scanner.d.ts.map +1 -1
  33. package/dist/integration/core-scanner.js +309 -0
  34. package/dist/integration/core-scanner.js.map +1 -0
  35. package/dist/integration/pattern-store-adapter.d.ts +117 -0
  36. package/dist/integration/pattern-store-adapter.d.ts.map +1 -1
  37. package/dist/integration/pattern-store-adapter.js +349 -0
  38. package/dist/integration/pattern-store-adapter.js.map +1 -0
  39. package/dist/integration/types.d.ts +134 -0
  40. package/dist/integration/types.d.ts.map +1 -1
  41. package/dist/integration/types.js +39 -0
  42. package/dist/integration/types.js.map +1 -0
  43. package/dist/server/types.d.ts +139 -0
  44. package/dist/server/types.d.ts.map +1 -1
  45. package/dist/server/types.js +8 -0
  46. package/dist/server/types.js.map +1 -0
  47. package/dist/server.d.ts.map +1 -1
  48. package/dist/server.js +208 -0
  49. package/dist/server.js.map +1 -0
  50. package/dist/utils/diagnostic.js +263 -0
  51. package/dist/utils/diagnostic.js.map +1 -0
  52. package/dist/utils/document.d.ts +40 -0
  53. package/dist/utils/document.d.ts.map +1 -0
  54. package/dist/utils/document.js +138 -0
  55. package/dist/utils/document.js.map +1 -0
  56. package/dist/utils/index.d.ts.map +1 -0
  57. package/dist/utils/workspace.d.ts.map +1 -1
  58. package/dist/utils/workspace.js +241 -0
  59. package/dist/utils/workspace.js.map +1 -0
  60. package/package.json +1 -1
@@ -0,0 +1,349 @@
1
+ /**
2
+ * Pattern Store Adapter
3
+ *
4
+ * Adapts driftdetect-core PatternStore and VariantManager for use in LSP commands.
5
+ * Provides approve, ignore, and variant operations that persist to disk.
6
+ *
7
+ * @requirements 28.1 - drift.approvePattern
8
+ * @requirements 28.2 - drift.ignorePattern
9
+ * @requirements 28.3 - drift.ignoreOnce
10
+ * @requirements 28.4 - drift.createVariant
11
+ */
12
+ import { PatternStore, VariantManager, } from 'driftdetect-core';
13
+ import { DEFAULT_CORE_INTEGRATION_CONFIG, patternToInfo } from './types.js';
14
+ /**
15
+ * Pattern Store Adapter
16
+ *
17
+ * Provides a simplified interface for LSP commands to interact with
18
+ * the driftdetect-core PatternStore and VariantManager.
19
+ */
20
+ export class PatternStoreAdapter {
21
+ config;
22
+ logger;
23
+ patternStore = null;
24
+ variantManager = null;
25
+ initialized = false;
26
+ constructor(config = {}, logger) {
27
+ this.config = { ...DEFAULT_CORE_INTEGRATION_CONFIG, ...config };
28
+ this.logger = logger;
29
+ }
30
+ /**
31
+ * Initialize the adapter
32
+ */
33
+ async initialize() {
34
+ if (this.initialized) {
35
+ return;
36
+ }
37
+ this.logger.info('Initializing pattern store adapter...');
38
+ try {
39
+ // Initialize pattern store
40
+ const storeConfig = {
41
+ rootDir: this.config.rootDir,
42
+ validateSchema: this.config.validateSchema,
43
+ trackHistory: this.config.trackHistory,
44
+ autoSave: this.config.autoSave,
45
+ };
46
+ this.patternStore = new PatternStore(storeConfig);
47
+ await this.patternStore.initialize();
48
+ this.logger.info('Pattern store initialized');
49
+ // Initialize variant manager
50
+ const variantConfig = {
51
+ rootDir: this.config.rootDir,
52
+ autoSave: this.config.autoSave,
53
+ };
54
+ this.variantManager = new VariantManager(variantConfig);
55
+ await this.variantManager.initialize();
56
+ this.logger.info('Variant manager initialized');
57
+ this.initialized = true;
58
+ this.logger.info('Pattern store adapter initialization complete');
59
+ }
60
+ catch (error) {
61
+ this.logger.error(`Failed to initialize pattern store adapter: ${error}`);
62
+ throw error;
63
+ }
64
+ }
65
+ /**
66
+ * Check if the adapter is initialized
67
+ */
68
+ isInitialized() {
69
+ return this.initialized;
70
+ }
71
+ /**
72
+ * Get the pattern store instance
73
+ */
74
+ getPatternStore() {
75
+ return this.patternStore;
76
+ }
77
+ /**
78
+ * Get the variant manager instance
79
+ */
80
+ getVariantManager() {
81
+ return this.variantManager;
82
+ }
83
+ /**
84
+ * Approve a pattern
85
+ *
86
+ * Moves the pattern from discovered to approved status and persists the change.
87
+ *
88
+ * @requirements 28.1 - drift.approvePattern
89
+ */
90
+ async approve(patternId, approvedBy) {
91
+ if (!this.initialized || !this.patternStore) {
92
+ return {
93
+ success: false,
94
+ patternId,
95
+ removedViolations: 0,
96
+ error: 'Pattern store not initialized',
97
+ };
98
+ }
99
+ try {
100
+ this.logger.info(`Approving pattern: ${patternId}`);
101
+ // Check if pattern exists
102
+ const pattern = this.patternStore.get(patternId);
103
+ if (!pattern) {
104
+ return {
105
+ success: false,
106
+ patternId,
107
+ removedViolations: 0,
108
+ error: `Pattern not found: ${patternId}`,
109
+ };
110
+ }
111
+ // Approve the pattern
112
+ this.patternStore.approve(patternId, approvedBy);
113
+ // Save changes
114
+ await this.patternStore.saveAll();
115
+ this.logger.info(`Pattern approved: ${patternId}`);
116
+ return {
117
+ success: true,
118
+ patternId,
119
+ removedViolations: pattern.outliers.length,
120
+ };
121
+ }
122
+ catch (error) {
123
+ const errorMessage = error instanceof Error ? error.message : String(error);
124
+ this.logger.error(`Failed to approve pattern ${patternId}: ${errorMessage}`);
125
+ return {
126
+ success: false,
127
+ patternId,
128
+ removedViolations: 0,
129
+ error: errorMessage,
130
+ };
131
+ }
132
+ }
133
+ /**
134
+ * Ignore a pattern
135
+ *
136
+ * Moves the pattern to ignored status and persists the change.
137
+ *
138
+ * @requirements 28.2 - drift.ignorePattern
139
+ */
140
+ async ignore(patternId) {
141
+ if (!this.initialized || !this.patternStore) {
142
+ return {
143
+ success: false,
144
+ patternId,
145
+ suppressedViolations: 0,
146
+ error: 'Pattern store not initialized',
147
+ };
148
+ }
149
+ try {
150
+ this.logger.info(`Ignoring pattern: ${patternId}`);
151
+ // Check if pattern exists
152
+ const pattern = this.patternStore.get(patternId);
153
+ if (!pattern) {
154
+ return {
155
+ success: false,
156
+ patternId,
157
+ suppressedViolations: 0,
158
+ error: `Pattern not found: ${patternId}`,
159
+ };
160
+ }
161
+ // Ignore the pattern
162
+ this.patternStore.ignore(patternId);
163
+ // Save changes
164
+ await this.patternStore.saveAll();
165
+ this.logger.info(`Pattern ignored: ${patternId}`);
166
+ return {
167
+ success: true,
168
+ patternId,
169
+ suppressedViolations: pattern.outliers.length,
170
+ };
171
+ }
172
+ catch (error) {
173
+ const errorMessage = error instanceof Error ? error.message : String(error);
174
+ this.logger.error(`Failed to ignore pattern ${patternId}: ${errorMessage}`);
175
+ return {
176
+ success: false,
177
+ patternId,
178
+ suppressedViolations: 0,
179
+ error: errorMessage,
180
+ };
181
+ }
182
+ }
183
+ /**
184
+ * Create a variant for a pattern
185
+ *
186
+ * Creates an intentional deviation from a pattern and persists it.
187
+ *
188
+ * @requirements 28.4 - drift.createVariant
189
+ */
190
+ async createVariant(input) {
191
+ if (!this.initialized || !this.variantManager) {
192
+ return {
193
+ success: false,
194
+ patternId: input.patternId,
195
+ suppressedViolations: 0,
196
+ error: 'Variant manager not initialized',
197
+ };
198
+ }
199
+ try {
200
+ this.logger.info(`Creating variant for pattern: ${input.patternId}`);
201
+ // Create the location
202
+ const location = {
203
+ file: input.file,
204
+ line: input.line,
205
+ column: input.column,
206
+ };
207
+ // Build the variant input, conditionally including scopeValue
208
+ const variantInput = {
209
+ patternId: input.patternId,
210
+ name: input.name,
211
+ reason: input.reason,
212
+ scope: input.scope,
213
+ locations: [location],
214
+ };
215
+ // Only add scopeValue if provided
216
+ if (input.scopeValue) {
217
+ variantInput.scopeValue = input.scopeValue;
218
+ }
219
+ // Create the variant
220
+ const variant = this.variantManager.create(variantInput);
221
+ // Save changes
222
+ await this.variantManager.saveAll();
223
+ this.logger.info(`Variant created: ${variant.id}`);
224
+ return {
225
+ success: true,
226
+ variantId: variant.id,
227
+ patternId: input.patternId,
228
+ suppressedViolations: 1,
229
+ };
230
+ }
231
+ catch (error) {
232
+ const errorMessage = error instanceof Error ? error.message : String(error);
233
+ this.logger.error(`Failed to create variant for ${input.patternId}: ${errorMessage}`);
234
+ return {
235
+ success: false,
236
+ patternId: input.patternId,
237
+ suppressedViolations: 0,
238
+ error: errorMessage,
239
+ };
240
+ }
241
+ }
242
+ /**
243
+ * Check if a location is covered by a variant
244
+ *
245
+ * Used to filter out violations that are covered by variants.
246
+ */
247
+ isLocationCovered(patternId, file, line, column) {
248
+ if (!this.initialized || !this.variantManager) {
249
+ return false;
250
+ }
251
+ const location = { file, line, column };
252
+ return this.variantManager.isLocationCovered(patternId, location);
253
+ }
254
+ /**
255
+ * Get all patterns
256
+ */
257
+ getAllPatterns() {
258
+ if (!this.initialized || !this.patternStore) {
259
+ return [];
260
+ }
261
+ return this.patternStore.getAll().map(patternToInfo);
262
+ }
263
+ /**
264
+ * Get approved patterns
265
+ */
266
+ getApprovedPatterns() {
267
+ if (!this.initialized || !this.patternStore) {
268
+ return [];
269
+ }
270
+ return this.patternStore.getApproved().map(patternToInfo);
271
+ }
272
+ /**
273
+ * Get discovered patterns
274
+ */
275
+ getDiscoveredPatterns() {
276
+ if (!this.initialized || !this.patternStore) {
277
+ return [];
278
+ }
279
+ return this.patternStore.getDiscovered().map(patternToInfo);
280
+ }
281
+ /**
282
+ * Get ignored patterns
283
+ */
284
+ getIgnoredPatterns() {
285
+ if (!this.initialized || !this.patternStore) {
286
+ return [];
287
+ }
288
+ return this.patternStore.getIgnored().map(patternToInfo);
289
+ }
290
+ /**
291
+ * Get a pattern by ID
292
+ */
293
+ getPattern(patternId) {
294
+ if (!this.initialized || !this.patternStore) {
295
+ return undefined;
296
+ }
297
+ const pattern = this.patternStore.get(patternId);
298
+ return pattern ? patternToInfo(pattern) : undefined;
299
+ }
300
+ /**
301
+ * Filter violations by removing those covered by variants
302
+ */
303
+ filterViolationsByVariants(violations) {
304
+ if (!this.initialized || !this.variantManager) {
305
+ return violations;
306
+ }
307
+ return violations.filter((violation) => {
308
+ const location = {
309
+ file: violation.file,
310
+ line: violation.range.start.line + 1, // Convert to 1-indexed
311
+ column: violation.range.start.character + 1,
312
+ };
313
+ return !this.variantManager.isLocationCovered(violation.patternId, location);
314
+ });
315
+ }
316
+ /**
317
+ * Shutdown the adapter
318
+ */
319
+ async shutdown() {
320
+ this.logger.info('Shutting down pattern store adapter...');
321
+ // Save pattern store
322
+ if (this.patternStore && this.config.autoSave) {
323
+ try {
324
+ await this.patternStore.saveAll();
325
+ }
326
+ catch (error) {
327
+ this.logger.error(`Error saving pattern store: ${error}`);
328
+ }
329
+ }
330
+ // Save variant manager
331
+ if (this.variantManager && this.config.autoSave) {
332
+ try {
333
+ await this.variantManager.saveAll();
334
+ }
335
+ catch (error) {
336
+ this.logger.error(`Error saving variant manager: ${error}`);
337
+ }
338
+ }
339
+ this.initialized = false;
340
+ this.logger.info('Pattern store adapter shutdown complete');
341
+ }
342
+ }
343
+ /**
344
+ * Create a pattern store adapter instance
345
+ */
346
+ export function createPatternStoreAdapter(config = {}, logger) {
347
+ return new PatternStoreAdapter(config, logger);
348
+ }
349
+ //# sourceMappingURL=pattern-store-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pattern-store-adapter.js","sourceRoot":"","sources":["../../src/integration/pattern-store-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Integration Types
3
+ *
4
+ * Types for the integration between @drift/lsp and driftdetect-core.
5
+ */
6
+ import type { ViolationInfo, PatternInfo } from '../types/lsp-types.js';
7
+ import type { Pattern, PatternCategory } from 'driftdetect-core';
8
+ /**
9
+ * Configuration for the core integration
10
+ */
11
+ export interface CoreIntegrationConfig {
12
+ /** Root directory for .drift folder */
13
+ rootDir: string;
14
+ /** Whether to auto-save pattern changes */
15
+ autoSave: boolean;
16
+ /** Whether to validate schemas */
17
+ validateSchema: boolean;
18
+ /** Whether to track history */
19
+ trackHistory: boolean;
20
+ /** Minimum confidence threshold for violations */
21
+ minConfidence: number;
22
+ /** Whether AI features are available */
23
+ aiEnabled: boolean;
24
+ }
25
+ /**
26
+ * Default core integration configuration
27
+ */
28
+ export declare const DEFAULT_CORE_INTEGRATION_CONFIG: CoreIntegrationConfig;
29
+ /**
30
+ * Result of scanning a document
31
+ */
32
+ export interface ScanResult {
33
+ /** URI of the scanned document */
34
+ uri: string;
35
+ /** Violations found in the document */
36
+ violations: ViolationInfo[];
37
+ /** Patterns detected in the document */
38
+ patterns: PatternInfo[];
39
+ /** Scan duration in milliseconds */
40
+ duration: number;
41
+ /** Any errors encountered during scanning */
42
+ errors: ScanError[];
43
+ }
44
+ /**
45
+ * Error encountered during scanning
46
+ */
47
+ export interface ScanError {
48
+ /** Error message */
49
+ message: string;
50
+ /** Error code */
51
+ code?: string;
52
+ /** Whether scanning can continue */
53
+ recoverable: boolean;
54
+ }
55
+ /**
56
+ * Options for scanning a document
57
+ */
58
+ export interface ScanOptions {
59
+ /** Force rescan even if cached */
60
+ force?: boolean;
61
+ /** Specific pattern categories to check */
62
+ categories?: PatternCategory[];
63
+ /** Specific pattern IDs to check */
64
+ patternIds?: string[];
65
+ /** Minimum confidence threshold */
66
+ minConfidence?: number;
67
+ }
68
+ /**
69
+ * Result of approving a pattern
70
+ */
71
+ export interface ApproveResult {
72
+ /** Whether the operation succeeded */
73
+ success: boolean;
74
+ /** Pattern ID that was approved */
75
+ patternId: string;
76
+ /** Number of violations removed */
77
+ removedViolations: number;
78
+ /** Error message if failed */
79
+ error?: string;
80
+ }
81
+ /**
82
+ * Result of ignoring a pattern
83
+ */
84
+ export interface IgnoreResult {
85
+ /** Whether the operation succeeded */
86
+ success: boolean;
87
+ /** Pattern ID that was ignored */
88
+ patternId: string;
89
+ /** Number of violations suppressed */
90
+ suppressedViolations: number;
91
+ /** Error message if failed */
92
+ error?: string;
93
+ }
94
+ /**
95
+ * Result of creating a variant
96
+ */
97
+ export interface CreateVariantResult {
98
+ /** Whether the operation succeeded */
99
+ success: boolean;
100
+ /** Variant ID that was created */
101
+ variantId?: string;
102
+ /** Pattern ID the variant applies to */
103
+ patternId: string;
104
+ /** Number of violations suppressed */
105
+ suppressedViolations: number;
106
+ /** Error message if failed */
107
+ error?: string;
108
+ }
109
+ /**
110
+ * Input for creating a variant
111
+ */
112
+ export interface CreateVariantInput {
113
+ /** Pattern ID this variant applies to */
114
+ patternId: string;
115
+ /** Human-readable name for the variant */
116
+ name: string;
117
+ /** Reason explaining why this deviation is intentional */
118
+ reason: string;
119
+ /** Scope of the variant: 'global', 'directory', or 'file' */
120
+ scope: 'global' | 'directory' | 'file';
121
+ /** Scope value (directory path or file path, depending on scope) */
122
+ scopeValue?: string;
123
+ /** File path where the variant applies */
124
+ file: string;
125
+ /** Line number where the variant applies */
126
+ line: number;
127
+ /** Column number where the variant applies */
128
+ column: number;
129
+ }
130
+ /**
131
+ * Convert a driftdetect-core Pattern to LSP PatternInfo
132
+ */
133
+ export declare function patternToInfo(pattern: Pattern): PatternInfo;
134
+ //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/integration/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/integration/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Integration Types
3
+ *
4
+ * Types for the integration between @drift/lsp and driftdetect-core.
5
+ */
6
+ /**
7
+ * Default core integration configuration
8
+ */
9
+ export const DEFAULT_CORE_INTEGRATION_CONFIG = {
10
+ rootDir: '.',
11
+ autoSave: true,
12
+ validateSchema: true,
13
+ trackHistory: true,
14
+ minConfidence: 0.5,
15
+ aiEnabled: false,
16
+ };
17
+ /**
18
+ * Convert a driftdetect-core Pattern to LSP PatternInfo
19
+ */
20
+ export function patternToInfo(pattern) {
21
+ const info = {
22
+ id: pattern.id,
23
+ name: pattern.name,
24
+ description: pattern.description,
25
+ category: pattern.category,
26
+ subcategory: pattern.subcategory,
27
+ confidence: pattern.confidence.score,
28
+ frequency: pattern.confidence.frequency,
29
+ };
30
+ // Only set optional properties if they have values
31
+ if (pattern.severity !== undefined) {
32
+ info.severity = pattern.severity;
33
+ }
34
+ if (pattern.autoFixable !== undefined) {
35
+ info.autoFixable = pattern.autoFixable;
36
+ }
37
+ return info;
38
+ }
39
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/integration/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA4BH;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAA0B;IACpE,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,IAAI;IACd,cAAc,EAAE,IAAI;IACpB,YAAY,EAAE,IAAI;IAClB,aAAa,EAAE,GAAG;IAClB,SAAS,EAAE,KAAK;CACjB,CAAC;AAwIF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,MAAM,IAAI,GAAgB;QACxB,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,UAAU,EAAE,OAAO,CAAC,UAAU,CAAC,KAAK;QACpC,SAAS,EAAE,OAAO,CAAC,UAAU,CAAC,SAAS;KACxC,CAAC;IAEF,mDAAmD;IACnD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACnC,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACzC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * Server Types - Core types for the LSP server
3
+ *
4
+ * These types define the server context, state, and interfaces
5
+ * used throughout the LSP implementation.
6
+ */
7
+ import type { DriftDiagnostic, ServerState, ServerConfiguration, PatternInfo, ViolationInfo, DocumentState } from '../types/lsp-types.js';
8
+ import type { Connection, TextDocuments } from 'vscode-languageserver';
9
+ import type { TextDocument } from 'vscode-languageserver-textdocument';
10
+ /**
11
+ * Logger interface for server logging
12
+ */
13
+ export interface Logger {
14
+ error(message: string): void;
15
+ warn(message: string): void;
16
+ info(message: string): void;
17
+ debug(message: string): void;
18
+ }
19
+ /**
20
+ * Server context passed to handlers and commands
21
+ */
22
+ export interface ServerContext {
23
+ /** LSP connection */
24
+ connection: Connection;
25
+ /** Document manager */
26
+ documents: TextDocuments<TextDocument>;
27
+ /** Server state */
28
+ state: ServerState;
29
+ /** Logger instance */
30
+ logger: Logger;
31
+ /** Server configuration */
32
+ configuration: ServerConfiguration;
33
+ }
34
+ /**
35
+ * Document scanner interface for scanning documents for violations
36
+ */
37
+ export interface DocumentScanner {
38
+ /** Scan a document for violations */
39
+ scan(uri: string): Promise<ViolationInfo[]>;
40
+ /** Invalidate cache for a document */
41
+ invalidate(uri: string): void;
42
+ /** Clear all cached scan results */
43
+ clearCache(): void;
44
+ /** Check if a document is cached */
45
+ isCached(uri: string): boolean;
46
+ }
47
+ /**
48
+ * Diagnostic publisher interface for publishing diagnostics
49
+ */
50
+ export interface DiagnosticPublisher {
51
+ /** Publish diagnostics for a document */
52
+ publish(uri: string): Promise<void>;
53
+ /** Clear diagnostics for a document */
54
+ clear(uri: string): void;
55
+ /** Clear all diagnostics */
56
+ clearAll(): void;
57
+ /** Get diagnostics for a document */
58
+ get(uri: string): DriftDiagnostic[];
59
+ }
60
+ /**
61
+ * Pattern store interface for managing patterns
62
+ */
63
+ export interface PatternStore {
64
+ /** Get a pattern by ID */
65
+ get(patternId: string): PatternInfo | undefined;
66
+ /** Get all patterns */
67
+ getAll(): PatternInfo[];
68
+ /** Add or update a pattern */
69
+ set(pattern: PatternInfo): void;
70
+ /** Remove a pattern */
71
+ delete(patternId: string): boolean;
72
+ /** Check if a pattern exists */
73
+ has(patternId: string): boolean;
74
+ /** Get patterns by category */
75
+ getByCategory(category: string): PatternInfo[];
76
+ /** Approve a pattern */
77
+ approve(patternId: string): Promise<void>;
78
+ /** Ignore a pattern */
79
+ ignore(patternId: string): Promise<void>;
80
+ }
81
+ /**
82
+ * Violation store interface for managing violations
83
+ */
84
+ export interface ViolationStore {
85
+ /** Get violations for a document */
86
+ get(uri: string): ViolationInfo[];
87
+ /** Set violations for a document */
88
+ set(uri: string, violations: ViolationInfo[]): void;
89
+ /** Add a violation */
90
+ add(uri: string, violation: ViolationInfo): void;
91
+ /** Remove a violation */
92
+ remove(uri: string, violationId: string): boolean;
93
+ /** Clear violations for a document */
94
+ clear(uri: string): void;
95
+ /** Clear all violations */
96
+ clearAll(): void;
97
+ /** Get all violations */
98
+ getAll(): Map<string, ViolationInfo[]>;
99
+ }
100
+ /**
101
+ * Initialize handler interface
102
+ */
103
+ export interface InitializeHandler {
104
+ onInitialize(): void;
105
+ onInitialized(): void;
106
+ }
107
+ /**
108
+ * Document sync handler interface
109
+ */
110
+ export interface DocumentSyncHandler {
111
+ onDidOpen(document: TextDocument): void;
112
+ onDidChangeContent(document: TextDocument): void;
113
+ onDidSave(document: TextDocument): void;
114
+ onDidClose(document: TextDocument): void;
115
+ }
116
+ /**
117
+ * Diagnostics handler interface
118
+ */
119
+ export interface DiagnosticsHandler {
120
+ publishDiagnostics(uri: string): Promise<void>;
121
+ clearDiagnostics(uri: string): void;
122
+ clearAllDiagnostics(): void;
123
+ getDiagnostics(uri: string): DriftDiagnostic[];
124
+ getDiagnosticAtPosition(uri: string, line: number, character: number): DriftDiagnostic | undefined;
125
+ getViolations(uri: string): ViolationInfo[];
126
+ scheduleUpdate(uri: string, delayMs?: number): void;
127
+ cancelUpdate(uri: string): void;
128
+ }
129
+ /**
130
+ * Result of executing a command
131
+ */
132
+ export interface CommandResult {
133
+ success: boolean;
134
+ message?: string;
135
+ data?: unknown;
136
+ error?: string;
137
+ }
138
+ export type { DriftDiagnostic, ServerState, ServerConfiguration, PatternInfo, ViolationInfo, DocumentState, };
139
+ //# sourceMappingURL=types.d.ts.map