@wispbit/local 1.0.25

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 (89) hide show
  1. package/dist/build.d.ts +3 -0
  2. package/dist/build.d.ts.map +1 -0
  3. package/dist/cli.js +3668 -0
  4. package/dist/cli.js.map +7 -0
  5. package/dist/index.js +3868 -0
  6. package/dist/index.js.map +7 -0
  7. package/dist/package.json +72 -0
  8. package/dist/src/cli.d.ts +16 -0
  9. package/dist/src/cli.d.ts.map +1 -0
  10. package/dist/src/config.d.ts +6 -0
  11. package/dist/src/config.d.ts.map +1 -0
  12. package/dist/src/environment/Config.d.ts +69 -0
  13. package/dist/src/environment/Config.d.ts.map +1 -0
  14. package/dist/src/environment/Environment.d.ts +23 -0
  15. package/dist/src/environment/Environment.d.ts.map +1 -0
  16. package/dist/src/environment/Sandbox.d.ts +48 -0
  17. package/dist/src/environment/Sandbox.d.ts.map +1 -0
  18. package/dist/src/environment/Storage.d.ts +84 -0
  19. package/dist/src/environment/Storage.d.ts.map +1 -0
  20. package/dist/src/index.d.ts +16 -0
  21. package/dist/src/index.d.ts.map +1 -0
  22. package/dist/src/languages.d.ts +36 -0
  23. package/dist/src/languages.d.ts.map +1 -0
  24. package/dist/src/providers/AstGrepAstProvider.d.ts +44 -0
  25. package/dist/src/providers/AstGrepAstProvider.d.ts.map +1 -0
  26. package/dist/src/providers/LanguageBackend.d.ts +74 -0
  27. package/dist/src/providers/LanguageBackend.d.ts.map +1 -0
  28. package/dist/src/providers/RuleProvider.d.ts +46 -0
  29. package/dist/src/providers/RuleProvider.d.ts.map +1 -0
  30. package/dist/src/providers/ScipIntelligenceProvider.d.ts +84 -0
  31. package/dist/src/providers/ScipIntelligenceProvider.d.ts.map +1 -0
  32. package/dist/src/providers/ViolationValidationProvider.d.ts +42 -0
  33. package/dist/src/providers/ViolationValidationProvider.d.ts.map +1 -0
  34. package/dist/src/providers/WispbitRuleProvider.d.ts +45 -0
  35. package/dist/src/providers/WispbitRuleProvider.d.ts.map +1 -0
  36. package/dist/src/providers/WispbitViolationValidationProvider.d.ts +15 -0
  37. package/dist/src/providers/WispbitViolationValidationProvider.d.ts.map +1 -0
  38. package/dist/src/schemas.d.ts +1771 -0
  39. package/dist/src/schemas.d.ts.map +1 -0
  40. package/dist/src/steps/ExecutionEventEmitter.d.ts +156 -0
  41. package/dist/src/steps/ExecutionEventEmitter.d.ts.map +1 -0
  42. package/dist/src/steps/FileExecutionContext.d.ts +85 -0
  43. package/dist/src/steps/FileExecutionContext.d.ts.map +1 -0
  44. package/dist/src/steps/FileFilterStep.d.ts +35 -0
  45. package/dist/src/steps/FileFilterStep.d.ts.map +1 -0
  46. package/dist/src/steps/FileFilterStep.test.d.ts +2 -0
  47. package/dist/src/steps/FileFilterStep.test.d.ts.map +1 -0
  48. package/dist/src/steps/FindMatchesStep.d.ts +41 -0
  49. package/dist/src/steps/FindMatchesStep.d.ts.map +1 -0
  50. package/dist/src/steps/FindMatchesStep.test.d.ts +2 -0
  51. package/dist/src/steps/FindMatchesStep.test.d.ts.map +1 -0
  52. package/dist/src/steps/GotoDefinitionStep.d.ts +86 -0
  53. package/dist/src/steps/GotoDefinitionStep.d.ts.map +1 -0
  54. package/dist/src/steps/LLMStep.d.ts +50 -0
  55. package/dist/src/steps/LLMStep.d.ts.map +1 -0
  56. package/dist/src/steps/RuleExecutor.d.ts +35 -0
  57. package/dist/src/steps/RuleExecutor.d.ts.map +1 -0
  58. package/dist/src/steps/RuleExecutor.test.d.ts +2 -0
  59. package/dist/src/steps/RuleExecutor.test.d.ts.map +1 -0
  60. package/dist/src/test/TestExecutor.d.ts +33 -0
  61. package/dist/src/test/TestExecutor.d.ts.map +1 -0
  62. package/dist/src/test/rules.test.d.ts +2 -0
  63. package/dist/src/test/rules.test.d.ts.map +1 -0
  64. package/dist/src/types.d.ts +200 -0
  65. package/dist/src/types.d.ts.map +1 -0
  66. package/dist/src/utils/asciiFrames.d.ts +5 -0
  67. package/dist/src/utils/asciiFrames.d.ts.map +1 -0
  68. package/dist/src/utils/formatters.d.ts +55 -0
  69. package/dist/src/utils/formatters.d.ts.map +1 -0
  70. package/dist/src/utils/generateTreeDump.d.ts +19 -0
  71. package/dist/src/utils/generateTreeDump.d.ts.map +1 -0
  72. package/dist/src/utils/git.d.ts +39 -0
  73. package/dist/src/utils/git.d.ts.map +1 -0
  74. package/dist/src/utils/hashString.d.ts +2 -0
  75. package/dist/src/utils/hashString.d.ts.map +1 -0
  76. package/dist/src/utils/readTextAtRange.d.ts +10 -0
  77. package/dist/src/utils/readTextAtRange.d.ts.map +1 -0
  78. package/dist/src/utils/snapshotComparison.d.ts +16 -0
  79. package/dist/src/utils/snapshotComparison.d.ts.map +1 -0
  80. package/dist/src/utils/startupScreen.d.ts +5 -0
  81. package/dist/src/utils/startupScreen.d.ts.map +1 -0
  82. package/dist/src/utils/validateRule.d.ts +16 -0
  83. package/dist/src/utils/validateRule.d.ts.map +1 -0
  84. package/dist/src/version.d.ts +3 -0
  85. package/dist/src/version.d.ts.map +1 -0
  86. package/dist/tsconfig.tsbuildinfo +1 -0
  87. package/dist/vitest.config.d.mts +3 -0
  88. package/dist/vitest.config.d.mts.map +1 -0
  89. package/package.json +90 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/schemas.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ import { EventEmitter } from "events";
2
+ import { Language } from "powerlint/languages";
3
+ import { Match } from "powerlint/types";
4
+ export interface ExecutionEvents {
5
+ "execution:mode": {
6
+ mode: "check" | "diff";
7
+ filePath?: string;
8
+ baseCommit?: string;
9
+ headCommit?: string;
10
+ };
11
+ "rules:start": {
12
+ totalRules: number;
13
+ };
14
+ "rules:progress": {
15
+ currentRule: number;
16
+ totalRules: number;
17
+ ruleId: string;
18
+ percentage: number;
19
+ isLlm: boolean;
20
+ };
21
+ "rules:complete": {
22
+ totalRules: number;
23
+ totalMatches: number;
24
+ executionTime: number;
25
+ };
26
+ "step:start": {
27
+ ruleId: string;
28
+ stepName: string;
29
+ stepType: string;
30
+ inputs: {
31
+ filePaths: string[];
32
+ matches: Match[];
33
+ };
34
+ };
35
+ "step:complete": {
36
+ ruleId: string;
37
+ stepName: string;
38
+ stepType: string;
39
+ outputs: {
40
+ filePaths?: string[];
41
+ matches?: Match[];
42
+ };
43
+ executionTime: number;
44
+ };
45
+ "test:start": {
46
+ ruleId: string;
47
+ testName: string;
48
+ };
49
+ "test:matches": {
50
+ ruleId: string;
51
+ testName: string;
52
+ matches: Match[];
53
+ };
54
+ "files:discovery:start": {
55
+ mode: "check" | "diff";
56
+ };
57
+ "files:discovery:progress": {
58
+ message: string;
59
+ currentCount?: number;
60
+ };
61
+ "files:discovery:complete": {
62
+ totalFiles: number;
63
+ mode: "check" | "diff";
64
+ executionTime: number;
65
+ };
66
+ "files:filter": {
67
+ originalCount: number;
68
+ filteredCount: number;
69
+ filterType: string;
70
+ };
71
+ "indexing:start": {
72
+ language: Language;
73
+ };
74
+ "indexing:progress": {
75
+ language: Language;
76
+ message: string;
77
+ packageName?: string;
78
+ timeMs?: number;
79
+ };
80
+ "indexing:complete": {
81
+ language: Language;
82
+ executionTime: number;
83
+ };
84
+ "scip:match-lookup:start": {
85
+ language: Language;
86
+ match: Match;
87
+ };
88
+ "scip:match-lookup:progress": {
89
+ language: Language;
90
+ document: any;
91
+ };
92
+ "scip:match-lookup:complete": {
93
+ language: Language;
94
+ document?: any;
95
+ };
96
+ "llm:validation:start": {
97
+ ruleId: string;
98
+ matchCount: number;
99
+ estimatedCost?: string;
100
+ };
101
+ "llm:validation:progress": {
102
+ ruleId: string;
103
+ tokenCount: number;
104
+ elapsedTime: number;
105
+ streamedText?: string;
106
+ };
107
+ "llm:validation:complete": {
108
+ ruleId: string;
109
+ tokenCount: number;
110
+ executionTime: number;
111
+ violationCount: number;
112
+ fromCache: boolean;
113
+ };
114
+ }
115
+ export declare class ExecutionEventEmitter extends EventEmitter {
116
+ private rulesStartTime;
117
+ private indexingStartTimes;
118
+ private fileDiscoveryStartTime;
119
+ constructor();
120
+ emit<K extends keyof ExecutionEvents>(event: K, data: ExecutionEvents[K]): boolean;
121
+ on<K extends keyof ExecutionEvents>(event: K, listener: (data: ExecutionEvents[K]) => void): this;
122
+ once<K extends keyof ExecutionEvents>(event: K, listener: (data: ExecutionEvents[K]) => void): this;
123
+ off<K extends keyof ExecutionEvents>(event: K, listener: (data: ExecutionEvents[K]) => void): this;
124
+ setExecutionMode(mode: "check" | "diff", options?: {
125
+ filePath?: string;
126
+ baseCommit?: string;
127
+ headCommit?: string;
128
+ }): void;
129
+ startRules(totalRules: number): void;
130
+ progressRule(currentRule: number, totalRules: number, ruleId: string, isLlm: boolean): void;
131
+ completeRules(totalRules: number, totalMatches: number): void;
132
+ startFileDiscovery(mode: "check" | "diff"): void;
133
+ fileDiscoveryProgress(message: string, currentCount?: number): void;
134
+ completeFileDiscovery(totalFiles: number, mode: "check" | "diff"): void;
135
+ fileFilter(originalCount: number, filteredCount: number, filterType: string): void;
136
+ startScipMatchLookup(language: Language, match: Match): void;
137
+ scipMatchLookupProgress(language: Language, document: unknown): void;
138
+ scipMatchLookupComplete(language: Language, document?: unknown): void;
139
+ startIndexing(language: Language): void;
140
+ indexingProgress(language: Language, message: string, packageName?: string, timeMs?: number): void;
141
+ completeIndexing(language: Language): void;
142
+ startStep(ruleId: string, stepName: string, stepType: string, inputs: {
143
+ filePaths: string[];
144
+ matches: Match[];
145
+ }): void;
146
+ completeStep(ruleId: string, stepName: string, stepType: string, outputs: {
147
+ filePaths?: string[];
148
+ matches?: Match[];
149
+ }, executionTime?: number): void;
150
+ startTest(ruleId: string, testName: string): void;
151
+ testMatches(ruleId: string, testName: string, matches: Match[]): void;
152
+ startLLMValidation(ruleId: string, matchCount: number, estimatedCost?: string): void;
153
+ llmValidationProgress(ruleId: string, tokenCount: number, elapsedTime: number, streamedText?: string): void;
154
+ completeLLMValidation(ruleId: string, tokenCount: number, executionTime: number, violationCount: number, fromCache: boolean): void;
155
+ }
156
+ //# sourceMappingURL=ExecutionEventEmitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExecutionEventEmitter.d.ts","sourceRoot":"","sources":["../../../src/steps/ExecutionEventEmitter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { Config } from "powerlint/environment/Config";
2
+ import type { Environment } from "powerlint/environment/Environment";
3
+ import { ExecutionEventEmitter } from "powerlint/steps/ExecutionEventEmitter";
4
+ import { Match } from "powerlint/types";
5
+ export type ExecutionMode = "check" | "diff";
6
+ export declare class FileExecutionContext {
7
+ private environment;
8
+ private _filePaths;
9
+ private mode;
10
+ private eventEmitter;
11
+ private config;
12
+ private diffMode?;
13
+ private constructor();
14
+ /**
15
+ * Create and initialize an ExecutionContext
16
+ */
17
+ static initialize(config: Config, environment: Environment, mode: ExecutionMode, eventEmitter?: ExecutionEventEmitter, filePath?: string, baseSha?: string): Promise<FileExecutionContext>;
18
+ get filePaths(): string[];
19
+ /**
20
+ * Filter files based on execution mode and return filtered files
21
+ */
22
+ filterFiles(filePaths: string[]): string[];
23
+ /**
24
+ * Filter matches based on execution mode and return filtered matches
25
+ */
26
+ filterMatches(matches: Match[]): Match[];
27
+ /**
28
+ * Filter matches to only include those from the given file paths
29
+ */
30
+ filterMatchesByFilePaths(matches: Match[], filePaths: string[]): Match[];
31
+ get executionMode(): ExecutionMode;
32
+ /**
33
+ * Discover files based on the execution mode
34
+ * In 'scan' mode: discovers all files in workspace
35
+ * In 'diff' mode: gets changed files from git and returns only those
36
+ *
37
+ * The filePath parameter can be:
38
+ * - A specific filename (e.g., "src/file.ts")
39
+ * - A directory path (e.g., "src/components/")
40
+ * - A glob pattern (e.g., ".ts")
41
+ */
42
+ private discoverFiles;
43
+ /**
44
+ * Discover files from a given path which can be a file, directory, or glob pattern
45
+ */
46
+ private discoverFilesFromPath;
47
+ /**
48
+ * Check if a path contains glob pattern characters
49
+ */
50
+ private isGlobPattern;
51
+ /**
52
+ * Discover files matching a glob pattern
53
+ */
54
+ private discoverFilesFromGlob;
55
+ /**
56
+ * Discover all files in a directory
57
+ */
58
+ private discoverFilesFromDirectory;
59
+ /**
60
+ * Discover all files from directories using glob patterns (scan mode)
61
+ */
62
+ private discoverAllFiles;
63
+ /**
64
+ * Pattern matching function that uses consistent options
65
+ */
66
+ private matchesPattern;
67
+ /**
68
+ * Check if a file should be processed
69
+ */
70
+ private isFileValid;
71
+ /**
72
+ * Check if a specific line range should be processed
73
+ */
74
+ private isLineRangeValid;
75
+ /**
76
+ * Check if a match should be processed
77
+ */
78
+ private isMatchValid;
79
+ /**
80
+ * Parse a git patch to determine if a line range intersects with changed lines
81
+ * Adapted from patchParser.ts logic
82
+ */
83
+ private isLineRangeInPatch;
84
+ }
85
+ //# sourceMappingURL=FileExecutionContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileExecutionContext.d.ts","sourceRoot":"","sources":["../../../src/steps/FileExecutionContext.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAGvC,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;AAE5C,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,IAAI,CAAe;IAC3B,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAC,CAIhB;IAED,OAAO;IAYP;;OAEG;WACU,UAAU,CACrB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,aAAa,EACnB,YAAY,CAAC,EAAE,qBAAqB,EACpC,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,oBAAoB,CAAC;IAYhC,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAED;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAoB1C;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;IAiBxC;;OAEG;IACH,wBAAwB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,EAAE;IASxE,IAAI,aAAa,IAAI,aAAa,CAEjC;IAID;;;;;;;;;OASG;YACW,aAAa;IAwE3B;;OAEG;YACW,qBAAqB;IA4CnC;;OAEG;IACH,OAAO,CAAC,aAAa;IAIrB;;OAEG;YACW,qBAAqB;IAoBnC;;OAEG;YACW,0BAA0B;IAuBxC;;OAEG;YACW,gBAAgB;IA2C9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,WAAW;IAmBnB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmCxB;;OAEG;IACH,OAAO,CAAC,YAAY;IAsBpB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CA0C3B"}
@@ -0,0 +1,35 @@
1
+ import type { Environment } from "powerlint/environment/Environment";
2
+ import { FileFilterConditions } from "powerlint/types";
3
+ export interface FileFilterResult {
4
+ filteredPaths: string[];
5
+ executionTime: number;
6
+ }
7
+ export interface FileFilterOptions {
8
+ include?: string[];
9
+ ignore?: string[];
10
+ conditions?: FileFilterConditions;
11
+ }
12
+ export declare class FileFilterStep {
13
+ private environment;
14
+ constructor(environment: Environment);
15
+ /**
16
+ * Centralized pattern matching function that uses consistent options
17
+ * @param path - The path to test
18
+ * @param pattern - The glob pattern to match against
19
+ * @returns true if the path matches the pattern
20
+ */
21
+ private matchesPattern;
22
+ /**
23
+ * Evaluate a single file filter condition for a given file path
24
+ */
25
+ private evaluateCondition;
26
+ /**
27
+ * Evaluate file filter conditions for a given file path
28
+ */
29
+ private evaluateConditions;
30
+ /**
31
+ * Execute file filter on file paths
32
+ */
33
+ execute(filePaths: string[], options: FileFilterOptions): Promise<FileFilterResult>;
34
+ }
35
+ //# sourceMappingURL=FileFilterStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileFilterStep.d.ts","sourceRoot":"","sources":["../../../src/steps/FileFilterStep.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,EAAuB,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE3E,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,UAAU,CAAC,EAAE,oBAAoB,CAAA;CAClC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAa;gBAEpB,WAAW,EAAE,WAAW;IAIpC;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAItB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkDzB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAsB1B;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAoC1F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FileFilterStep.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileFilterStep.test.d.ts","sourceRoot":"","sources":["../../../src/steps/FileFilterStep.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,41 @@
1
+ import type { Environment } from "powerlint/environment/Environment";
2
+ import type { Language } from "powerlint/languages";
3
+ import { ExecutionEventEmitter } from "powerlint/steps/ExecutionEventEmitter";
4
+ import { Match } from "powerlint/types";
5
+ export interface FindMatchesResult {
6
+ matches: Match[];
7
+ totalMatches: number;
8
+ executionTime: number;
9
+ }
10
+ export declare class FindMatchesStep {
11
+ private environment;
12
+ private eventEmitter?;
13
+ constructor(environment: Environment, eventEmitter?: ExecutionEventEmitter);
14
+ /**
15
+ * Execute pattern matching on files
16
+ * @param schema - The matching schema (rule, constraints, etc.) - provider-specific
17
+ * @param language - The language to use for pattern matching
18
+ * @param context - Context containing filePaths and optional previousMatches to filter against
19
+ */
20
+ execute(schema: Record<string, any>, language: Language, context: {
21
+ filePaths: string[];
22
+ previousMatches?: Match[];
23
+ }): Promise<FindMatchesResult>;
24
+ /**
25
+ * Filter matches to only include those within the ranges of previous matches
26
+ * A match is included if it falls within any of the previous match ranges
27
+ * The source is propagated from the previous match
28
+ */
29
+ private filterMatchesByRanges;
30
+ /**
31
+ * Check if a match falls within the range of another match
32
+ * Both matches must be in the same file
33
+ */
34
+ private isMatchInRange;
35
+ /**
36
+ * Remove duplicate matches by keeping only the largest overlapping match.
37
+ * If multiple matches overlap (one is contained within another), keep only the largest one.
38
+ */
39
+ private deduplicateMatches;
40
+ }
41
+ //# sourceMappingURL=FindMatchesStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FindMatchesStep.d.ts","sourceRoot":"","sources":["../../../src/steps/FindMatchesStep.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAGnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,EAAE,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAC,CAAuB;gBAEhC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,qBAAqB;IAK1E;;;;;OAKG;IACG,OAAO,CACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE;QAAE,SAAS,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,KAAK,EAAE,CAAA;KAAE,GAC1D,OAAO,CAAC,iBAAiB,CAAC;IA8C7B;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAsC7B;;;OAGG;IACH,OAAO,CAAC,cAAc;IAwBtB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;CAuB3B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=FindMatchesStep.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FindMatchesStep.test.d.ts","sourceRoot":"","sources":["../../../src/steps/FindMatchesStep.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
1
+ import type { Environment } from "powerlint/environment/Environment";
2
+ import type { Language } from "powerlint/languages";
3
+ import { ExecutionEventEmitter } from "powerlint/steps/ExecutionEventEmitter";
4
+ import { Match } from "powerlint/types";
5
+ /** Exact or regex name matching */
6
+ interface NameSpec {
7
+ equals?: string;
8
+ anyOf?: string[];
9
+ regex?: string;
10
+ }
11
+ /** File matcher (path OR glob OR regex) */
12
+ interface FileMatch {
13
+ path?: string;
14
+ glob?: string;
15
+ regex?: string;
16
+ }
17
+ /** Method filter */
18
+ interface MethodSelector {
19
+ file?: FileMatch;
20
+ name: NameSpec;
21
+ }
22
+ /** Class filter */
23
+ interface ClassSelector {
24
+ file?: FileMatch;
25
+ name: NameSpec;
26
+ method?: MethodSelector;
27
+ }
28
+ /** Top-level function filter */
29
+ interface FunctionSelector {
30
+ file?: FileMatch;
31
+ name: NameSpec;
32
+ }
33
+ /** Definition-side predicates (post-hop) */
34
+ interface DefinitionPredicate {
35
+ file?: FileMatch;
36
+ class?: ClassSelector;
37
+ method?: MethodSelector;
38
+ function?: FunctionSelector;
39
+ }
40
+ /** Boolean combinators for definition filters */
41
+ interface DefinitionFilter extends Partial<DefinitionPredicate> {
42
+ all?: DefinitionFilter[];
43
+ any?: DefinitionFilter[];
44
+ not?: DefinitionFilter;
45
+ }
46
+ export interface GotoDefinitionResult {
47
+ definitions: Match[];
48
+ totalDefinitions: number;
49
+ executionTime: number;
50
+ }
51
+ export interface GotoDefinitionOptions {
52
+ /** Filter for which definitions to include (default: all non-external) */
53
+ where?: DefinitionFilter;
54
+ }
55
+ export declare class GotoDefinitionStep {
56
+ private readonly maxDepth;
57
+ private environment;
58
+ private eventEmitter?;
59
+ constructor(environment: Environment, eventEmitter?: ExecutionEventEmitter);
60
+ /**
61
+ * Execute goto-definition on matches
62
+ */
63
+ execute(matches: Match[], language: Language, options?: GotoDefinitionOptions): Promise<GotoDefinitionResult>;
64
+ /**
65
+ * Follow definitions up to maxDepth
66
+ */
67
+ private followDefinitions;
68
+ /**
69
+ * Recursively follow definitions
70
+ */
71
+ private followDefinitionsRecursive;
72
+ /**
73
+ * Check if a definition matches a filter
74
+ */
75
+ private matchesDefinitionFilter;
76
+ /**
77
+ * Check if a name matches a name specification
78
+ */
79
+ private matchesNameSpec;
80
+ /**
81
+ * Check if a file path matches a file specification
82
+ */
83
+ private matchesFileSpec;
84
+ }
85
+ export {};
86
+ //# sourceMappingURL=GotoDefinitionStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GotoDefinitionStep.d.ts","sourceRoot":"","sources":["../../../src/steps/GotoDefinitionStep.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC,mCAAmC;AACnC,UAAU,QAAQ;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,2CAA2C;AAC3C,UAAU,SAAS;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,oBAAoB;AACpB,UAAU,cAAc;IACtB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,QAAQ,CAAA;CACf;AAED,mBAAmB;AACnB,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,QAAQ,CAAA;IACd,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAED,gCAAgC;AAChC,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,QAAQ,CAAA;CACf;AAED,4CAA4C;AAC5C,UAAU,mBAAmB;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAC5B;AAED,iDAAiD;AACjD,UAAU,gBAAiB,SAAQ,OAAO,CAAC,mBAAmB,CAAC;IAC7D,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAA;IACxB,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAA;IACxB,GAAG,CAAC,EAAE,gBAAgB,CAAA;CACvB;AAQD,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,KAAK,EAAE,CAAA;IACpB,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,0EAA0E;IAC1E,KAAK,CAAC,EAAE,gBAAgB,CAAA;CACzB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAC,CAAuB;gBAEhC,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,qBAAqB;IAK1E;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,KAAK,EAAE,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC;IAgDhC;;OAEG;YACW,iBAAiB;IA2B/B;;OAEG;YACW,0BAA0B;IA6DxC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyC/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,OAAO,CAAC,eAAe;CAexB"}
@@ -0,0 +1,50 @@
1
+ import { Config } from "powerlint/environment/Config";
2
+ import type { Environment } from "powerlint/environment/Environment";
3
+ import { ExecutionEventEmitter } from "powerlint/steps/ExecutionEventEmitter";
4
+ import type { Match } from "powerlint/types";
5
+ import { Rule } from "powerlint/types";
6
+ export interface LLMStepResult {
7
+ matches: Match[];
8
+ executionTime: number;
9
+ }
10
+ export type LLMStepExecutionResult = LLMStepResult;
11
+ export interface LLMMatchDecision {
12
+ matchId: string;
13
+ isViolation: boolean;
14
+ confidence: number;
15
+ reason: string;
16
+ }
17
+ export declare class LLMStep {
18
+ private environment;
19
+ private eventEmitter;
20
+ private config;
21
+ private storage;
22
+ constructor(config: Config, environment: Environment, eventEmitter?: ExecutionEventEmitter);
23
+ /**
24
+ * Generate a unique ID for a single match
25
+ * Hash is based on filePath + range + text
26
+ */
27
+ private generateMatchId;
28
+ /**
29
+ * Generate a hash for a prompt string
30
+ */
31
+ private hashPrompt;
32
+ /**
33
+ * Generate a cache key for a single match LLM validation
34
+ */
35
+ private generateMatchCacheKey;
36
+ /**
37
+ * Execute the actual LLM validation for uncached matches
38
+ * @param config - LLM step configuration (contains provider and model)
39
+ * @param uncachedMatches - Matches that need LLM evaluation
40
+ * @param promptContent - The loaded prompt content
41
+ */
42
+ private executeLLMValidation;
43
+ /**
44
+ * Execute the LLM step - always runs LLM validation immediately
45
+ * @param config - LLM step configuration
46
+ * @param previousMatches - Matches from previous steps to be judged by LLM
47
+ */
48
+ execute(rule: Rule, previousMatches: Match[]): Promise<LLMStepExecutionResult>;
49
+ }
50
+ //# sourceMappingURL=LLMStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMStep.d.ts","sourceRoot":"","sources":["../../../src/steps/LLMStep.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAIpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAGtC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,KAAK,EAAE,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,MAAM,sBAAsB,GAAG,aAAa,CAAA;AAElD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,OAAO,CAAA;IACpB,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;CACf;AAED,qBAAa,OAAO;IAClB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAS;gBACZ,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,qBAAqB;IAO1F;;;OAGG;IACH,OAAO,CAAC,eAAe;IAYvB;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAI7B;;;;;OAKG;YACW,oBAAoB;IAkElC;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAkErF"}
@@ -0,0 +1,35 @@
1
+ import { Config } from "powerlint/environment/Config";
2
+ import { Environment } from "powerlint/environment/Environment";
3
+ import { ExecutionEventEmitter } from "powerlint/steps/ExecutionEventEmitter";
4
+ import { ExecutionMode } from "powerlint/steps/FileExecutionContext";
5
+ import { Match, Rule } from "powerlint/types";
6
+ export interface RuleExecutionResult {
7
+ ruleId: string;
8
+ matches: Match[];
9
+ }
10
+ export interface RuleExecutionOptions {
11
+ mode: ExecutionMode;
12
+ filePath?: string;
13
+ baseSha?: string;
14
+ }
15
+ export declare class RuleExecutor {
16
+ private fileFilterStep;
17
+ private findMatchesStep;
18
+ private gotoDefinitionStep;
19
+ private llmStep;
20
+ private environment;
21
+ private executionContext?;
22
+ private currentMode?;
23
+ private eventEmitter;
24
+ private config;
25
+ constructor(config: Config, environment: Environment, eventEmitter?: ExecutionEventEmitter);
26
+ /**
27
+ * Execute a single step
28
+ */
29
+ private executeStep;
30
+ /**
31
+ * Execute all steps in multiple rule configurations
32
+ */
33
+ execute(rules: Rule[], options: RuleExecutionOptions): Promise<RuleExecutionResult[]>;
34
+ }
35
+ //# sourceMappingURL=RuleExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuleExecutor.d.ts","sourceRoot":"","sources":["../../../src/steps/RuleExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAE/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAA;AAC7E,OAAO,EAAwB,aAAa,EAAE,MAAM,sCAAsC,CAAA;AAK1F,OAAO,EAAY,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAEvD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,KAAK,EAAE,CAAA;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAiB;IACxC,OAAO,CAAC,kBAAkB,CAAoB;IAC9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,gBAAgB,CAAC,CAAsB;IAC/C,OAAO,CAAC,WAAW,CAAC,CAAe;IACnC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC,EAAE,qBAAqB;IAU1F;;OAEG;YACW,WAAW;IAmHzB;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;CAiH5F"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=RuleExecutor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuleExecutor.test.d.ts","sourceRoot":"","sources":["../../../src/steps/RuleExecutor.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,33 @@
1
+ import { Config } from "powerlint/environment/Config";
2
+ import { Match } from "powerlint/types";
3
+ import { type Rule, type RuleTestCase } from "powerlint/types";
4
+ export interface TestExecutorOptions {
5
+ rules: Rule[];
6
+ }
7
+ export interface TestCaseExecutionResult {
8
+ testCase: RuleTestCase;
9
+ matches: Match[];
10
+ executionTime: number;
11
+ error?: string;
12
+ }
13
+ export interface RuleExecutionResult {
14
+ rule: Rule;
15
+ results: TestCaseExecutionResult[];
16
+ }
17
+ export interface TestExecutorResult {
18
+ ruleResults: RuleExecutionResult[];
19
+ }
20
+ export declare class TestExecutor {
21
+ private eventEmitter;
22
+ private config;
23
+ constructor(config: Config);
24
+ /**
25
+ * Run a single test case for a rule and return the matches
26
+ */
27
+ private runTestCase;
28
+ /**
29
+ * Execute tests for the given rules
30
+ */
31
+ execute(options: TestExecutorOptions): Promise<TestExecutorResult>;
32
+ }
33
+ //# sourceMappingURL=TestExecutor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestExecutor.d.ts","sourceRoot":"","sources":["../../../src/test/TestExecutor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAA;AAIrD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AACvC,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAE9D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,IAAI,EAAE,CAAA;CACd;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,KAAK,EAAE,CAAA;IAChB,aAAa,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,IAAI,CAAA;IACV,OAAO,EAAE,uBAAuB,EAAE,CAAA;CACnC;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,mBAAmB,EAAE,CAAA;CACnC;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,MAAM,CAAQ;gBAEV,MAAM,EAAE,MAAM;IAK1B;;OAEG;YACW,WAAW;IAkCzB;;OAEG;IACG,OAAO,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAqCzE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rules.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.test.d.ts","sourceRoot":"","sources":["../../../src/test/rules.test.ts"],"names":[],"mappings":""}