@vibecheckai/cli 2.5.7 → 2.7.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 (159) hide show
  1. package/LICENSE +1 -1
  2. package/dist/bundles/vibecheck-core.js +20 -20
  3. package/dist/commands/secrets-allowlist.js +4 -4
  4. package/dist/commands/secrets-allowlist.js.map +1 -1
  5. package/dist/commands/ship-consolidated.js +193 -193
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +5 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/init/ci-generator.d.ts +2 -2
  10. package/dist/init/hooks-installer.d.ts +2 -2
  11. package/dist/init/index.d.ts +1 -1
  12. package/dist/init/index.d.ts.map +1 -1
  13. package/dist/init/index.js +2 -2
  14. package/dist/init/index.js.map +1 -1
  15. package/dist/init/templates.d.ts +6 -285
  16. package/dist/init/templates.d.ts.map +1 -1
  17. package/dist/init/templates.js +2 -3
  18. package/dist/init/templates.js.map +1 -1
  19. package/dist/runtime/json-output.d.ts +2 -2
  20. package/package.json +11 -3
  21. package/dist/bundles/guardrail-core.js +0 -25799
  22. package/dist/bundles/guardrail-security.js +0 -208687
  23. package/dist/bundles/guardrail-ship.js +0 -2318
  24. package/dist/commands/autopilot-decision.d.ts +0 -24
  25. package/dist/commands/autopilot-decision.d.ts.map +0 -1
  26. package/dist/commands/autopilot-decision.js +0 -304
  27. package/dist/commands/autopilot-decision.js.map +0 -1
  28. package/dist/commands/autopilot.d.ts +0 -33
  29. package/dist/commands/autopilot.d.ts.map +0 -1
  30. package/dist/commands/autopilot.js +0 -1539
  31. package/dist/commands/autopilot.js.map +0 -1
  32. package/dist/commands/context.d.ts +0 -8
  33. package/dist/commands/context.d.ts.map +0 -1
  34. package/dist/commands/context.js +0 -340
  35. package/dist/commands/context.js.map +0 -1
  36. package/dist/commands/debug.d.ts +0 -78
  37. package/dist/commands/debug.d.ts.map +0 -1
  38. package/dist/commands/debug.js +0 -381
  39. package/dist/commands/debug.js.map +0 -1
  40. package/dist/commands/preview.d.ts +0 -54
  41. package/dist/commands/preview.d.ts.map +0 -1
  42. package/dist/commands/preview.js +0 -352
  43. package/dist/commands/preview.js.map +0 -1
  44. package/dist/commands/quality/check.d.ts +0 -31
  45. package/dist/commands/quality/check.d.ts.map +0 -1
  46. package/dist/commands/quality/check.js +0 -242
  47. package/dist/commands/quality/check.js.map +0 -1
  48. package/dist/commands/quality/index.d.ts +0 -8
  49. package/dist/commands/quality/index.d.ts.map +0 -1
  50. package/dist/commands/quality/index.js +0 -14
  51. package/dist/commands/quality/index.js.map +0 -1
  52. package/dist/commands/quality/setup-quality.d.ts +0 -23
  53. package/dist/commands/quality/setup-quality.d.ts.map +0 -1
  54. package/dist/commands/quality/setup-quality.js +0 -452
  55. package/dist/commands/quality/setup-quality.js.map +0 -1
  56. package/dist/commands/quality/tidy.d.ts +0 -41
  57. package/dist/commands/quality/tidy.d.ts.map +0 -1
  58. package/dist/commands/quality/tidy.js +0 -466
  59. package/dist/commands/quality/tidy.js.map +0 -1
  60. package/dist/commands/quality/utils.d.ts +0 -73
  61. package/dist/commands/quality/utils.d.ts.map +0 -1
  62. package/dist/commands/quality/utils.js +0 -158
  63. package/dist/commands/quality/utils.js.map +0 -1
  64. package/dist/fix/analytics.d.ts +0 -121
  65. package/dist/fix/analytics.d.ts.map +0 -1
  66. package/dist/fix/analytics.js +0 -289
  67. package/dist/fix/analytics.js.map +0 -1
  68. package/dist/fix/audit.d.ts +0 -61
  69. package/dist/fix/audit.d.ts.map +0 -1
  70. package/dist/fix/audit.js +0 -149
  71. package/dist/fix/audit.js.map +0 -1
  72. package/dist/fix/config.d.ts +0 -78
  73. package/dist/fix/config.d.ts.map +0 -1
  74. package/dist/fix/config.js +0 -200
  75. package/dist/fix/config.js.map +0 -1
  76. package/dist/fix/impact.d.ts +0 -74
  77. package/dist/fix/impact.d.ts.map +0 -1
  78. package/dist/fix/impact.js +0 -281
  79. package/dist/fix/impact.js.map +0 -1
  80. package/dist/fix/learning.d.ts +0 -109
  81. package/dist/fix/learning.d.ts.map +0 -1
  82. package/dist/fix/learning.js +0 -296
  83. package/dist/fix/learning.js.map +0 -1
  84. package/dist/fix/metrics.d.ts +0 -106
  85. package/dist/fix/metrics.d.ts.map +0 -1
  86. package/dist/fix/metrics.js +0 -138
  87. package/dist/fix/metrics.js.map +0 -1
  88. package/dist/fix/parallel.d.ts +0 -69
  89. package/dist/fix/parallel.d.ts.map +0 -1
  90. package/dist/fix/parallel.js +0 -203
  91. package/dist/fix/parallel.js.map +0 -1
  92. package/dist/fix/report.d.ts +0 -40
  93. package/dist/fix/report.d.ts.map +0 -1
  94. package/dist/fix/report.js +0 -212
  95. package/dist/fix/report.js.map +0 -1
  96. package/dist/fix/strategy.d.ts +0 -53
  97. package/dist/fix/strategy.d.ts.map +0 -1
  98. package/dist/fix/strategy.js +0 -143
  99. package/dist/fix/strategy.js.map +0 -1
  100. package/dist/fix/templates.d.ts +0 -58
  101. package/dist/fix/templates.d.ts.map +0 -1
  102. package/dist/fix/templates.js +0 -259
  103. package/dist/fix/templates.js.map +0 -1
  104. package/dist/fix/testing.d.ts +0 -68
  105. package/dist/fix/testing.d.ts.map +0 -1
  106. package/dist/fix/testing.js +0 -245
  107. package/dist/fix/testing.js.map +0 -1
  108. package/dist/fix/validation.d.ts +0 -71
  109. package/dist/fix/validation.d.ts.map +0 -1
  110. package/dist/fix/validation.js +0 -267
  111. package/dist/fix/validation.js.map +0 -1
  112. package/dist/fix/visualization.d.ts +0 -73
  113. package/dist/fix/visualization.d.ts.map +0 -1
  114. package/dist/fix/visualization.js +0 -243
  115. package/dist/fix/visualization.js.map +0 -1
  116. package/dist/runtime/cli-errors.d.ts +0 -38
  117. package/dist/runtime/cli-errors.d.ts.map +0 -1
  118. package/dist/runtime/cli-errors.js +0 -354
  119. package/dist/runtime/cli-errors.js.map +0 -1
  120. package/dist/runtime/owner-mode.d.ts +0 -48
  121. package/dist/runtime/owner-mode.d.ts.map +0 -1
  122. package/dist/runtime/owner-mode.js +0 -284
  123. package/dist/runtime/owner-mode.js.map +0 -1
  124. package/dist/scanner/index.d.ts +0 -8
  125. package/dist/scanner/index.d.ts.map +0 -1
  126. package/dist/scanner/index.js +0 -15
  127. package/dist/scanner/index.js.map +0 -1
  128. package/dist/scanner/placeholder-detector.d.ts +0 -56
  129. package/dist/scanner/placeholder-detector.d.ts.map +0 -1
  130. package/dist/scanner/placeholder-detector.js +0 -220
  131. package/dist/scanner/placeholder-detector.js.map +0 -1
  132. package/dist/scanner/route-detector.d.ts +0 -100
  133. package/dist/scanner/route-detector.d.ts.map +0 -1
  134. package/dist/scanner/route-detector.js +0 -455
  135. package/dist/scanner/route-detector.js.map +0 -1
  136. package/dist/scanner/scoring.d.ts +0 -67
  137. package/dist/scanner/scoring.d.ts.map +0 -1
  138. package/dist/scanner/scoring.js +0 -284
  139. package/dist/scanner/scoring.js.map +0 -1
  140. package/dist/ship-baseline.d.ts +0 -56
  141. package/dist/ship-baseline.d.ts.map +0 -1
  142. package/dist/ship-baseline.js +0 -194
  143. package/dist/ship-baseline.js.map +0 -1
  144. package/dist/ship-config.d.ts +0 -91
  145. package/dist/ship-config.d.ts.map +0 -1
  146. package/dist/ship-config.js +0 -133
  147. package/dist/ship-config.js.map +0 -1
  148. package/dist/ship-data-loader.d.ts +0 -70
  149. package/dist/ship-data-loader.d.ts.map +0 -1
  150. package/dist/ship-data-loader.js +0 -301
  151. package/dist/ship-data-loader.js.map +0 -1
  152. package/dist/utils/ai-helpers.d.ts +0 -72
  153. package/dist/utils/ai-helpers.d.ts.map +0 -1
  154. package/dist/utils/ai-helpers.js +0 -339
  155. package/dist/utils/ai-helpers.js.map +0 -1
  156. package/dist/utils/validation.d.ts +0 -34
  157. package/dist/utils/validation.d.ts.map +0 -1
  158. package/dist/utils/validation.js +0 -160
  159. package/dist/utils/validation.js.map +0 -1
@@ -1,245 +0,0 @@
1
- "use strict";
2
- /**
3
- * Fix Testing Framework
4
- *
5
- * Tests fixes before application using sandbox environments,
6
- * unit tests, and validation checks.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.FixTester = void 0;
10
- const fs_1 = require("fs");
11
- const path_1 = require("path");
12
- const child_process_1 = require("child_process");
13
- class FixTester {
14
- constructor(projectPath, config = {}) {
15
- this.projectPath = projectPath;
16
- this.sandboxPath = (0, path_1.join)(projectPath, '.guardrail', 'sandbox');
17
- this.config = {
18
- runTests: true,
19
- testTimeout: 60000,
20
- requireAllTestsPass: false,
21
- sandboxEnabled: false,
22
- ...config,
23
- };
24
- }
25
- /**
26
- * Test a fix before application
27
- */
28
- async testFix(fix) {
29
- const startTime = Date.now();
30
- if (!this.config.runTests) {
31
- return {
32
- fix,
33
- testResult: {
34
- passed: true,
35
- testsRun: 0,
36
- testsPassed: 0,
37
- testsFailed: 0,
38
- errors: [],
39
- warnings: ['Tests skipped'],
40
- duration: Date.now() - startTime,
41
- },
42
- safeToApply: true,
43
- };
44
- }
45
- try {
46
- // Run tests on current codebase
47
- const testResult = await this.runTests();
48
- // Basic validation
49
- const validationErrors = this.validateFix(fix);
50
- if (validationErrors.length > 0) {
51
- return {
52
- fix,
53
- testResult: {
54
- passed: false,
55
- testsRun: testResult.testsRun,
56
- testsPassed: testResult.testsPassed,
57
- testsFailed: testResult.testsFailed,
58
- errors: [...testResult.errors, ...validationErrors],
59
- warnings: testResult.warnings,
60
- duration: Date.now() - startTime,
61
- },
62
- safeToApply: false,
63
- reason: 'Validation failed',
64
- };
65
- }
66
- const safeToApply = testResult.passed || !this.config.requireAllTestsPass;
67
- return {
68
- fix,
69
- testResult,
70
- safeToApply,
71
- reason: safeToApply ? undefined : 'Tests failed',
72
- };
73
- }
74
- catch (error) {
75
- return {
76
- fix,
77
- testResult: {
78
- passed: false,
79
- testsRun: 0,
80
- testsPassed: 0,
81
- testsFailed: 0,
82
- errors: [error.message || 'Test execution failed'],
83
- warnings: [],
84
- duration: Date.now() - startTime,
85
- },
86
- safeToApply: false,
87
- reason: 'Test execution failed',
88
- };
89
- }
90
- }
91
- /**
92
- * Test a pack of fixes
93
- */
94
- async testPack(pack) {
95
- const results = [];
96
- // Test fixes individually
97
- for (const fix of pack.fixes) {
98
- const result = await this.testFix(fix);
99
- results.push(result);
100
- }
101
- return results;
102
- }
103
- /**
104
- * Run tests in the project
105
- */
106
- async runTests() {
107
- const startTime = Date.now();
108
- try {
109
- // Detect test command
110
- const testCommand = this.config.testCommand || this.detectTestCommand();
111
- if (!testCommand) {
112
- return {
113
- passed: true,
114
- testsRun: 0,
115
- testsPassed: 0,
116
- testsFailed: 0,
117
- errors: [],
118
- warnings: ['No test command found'],
119
- duration: Date.now() - startTime,
120
- };
121
- }
122
- // Run tests
123
- const output = (0, child_process_1.execSync)(testCommand, {
124
- cwd: this.projectPath,
125
- encoding: 'utf-8',
126
- stdio: 'pipe',
127
- timeout: this.config.testTimeout,
128
- });
129
- // Parse test results (simplified - would need test framework-specific parsing)
130
- const testsRun = this.extractTestCount(output, 'tests?\\s+(?:run|executed|passed)');
131
- const testsPassed = this.extractTestCount(output, 'passed');
132
- const testsFailed = testsRun - testsPassed;
133
- return {
134
- passed: testsFailed === 0,
135
- testsRun,
136
- testsPassed,
137
- testsFailed,
138
- errors: testsFailed > 0 ? ['Some tests failed'] : [],
139
- warnings: [],
140
- duration: Date.now() - startTime,
141
- };
142
- }
143
- catch (error) {
144
- // Test execution failed
145
- const output = error.stdout || error.stderr || error.message || '';
146
- return {
147
- passed: false,
148
- testsRun: 0,
149
- testsPassed: 0,
150
- testsFailed: 0,
151
- errors: [output.substring(0, 500)], // Limit error message length
152
- warnings: [],
153
- duration: Date.now() - startTime,
154
- };
155
- }
156
- }
157
- /**
158
- * Detect test command from package.json
159
- */
160
- detectTestCommand() {
161
- const packageJsonPath = (0, path_1.join)(this.projectPath, 'package.json');
162
- if (!(0, fs_1.existsSync)(packageJsonPath)) {
163
- return undefined;
164
- }
165
- try {
166
- const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
167
- const scripts = packageJson.scripts || {};
168
- // Try common test commands
169
- if (scripts.test)
170
- return 'npm test';
171
- if (scripts['test:unit'])
172
- return 'npm run test:unit';
173
- if (scripts['test:ci'])
174
- return 'npm run test:ci';
175
- return undefined;
176
- }
177
- catch {
178
- return undefined;
179
- }
180
- }
181
- /**
182
- * Extract test count from output
183
- */
184
- extractTestCount(output, pattern) {
185
- const regex = new RegExp(`(\\d+)\\s+${pattern}`, 'i');
186
- const match = output.match(regex);
187
- return match ? parseInt(match[1], 10) : 0;
188
- }
189
- /**
190
- * Validate fix before testing
191
- */
192
- validateFix(fix) {
193
- const errors = [];
194
- // Check file exists
195
- const filePath = (0, path_1.join)(this.projectPath, fix.file);
196
- if (!(0, fs_1.existsSync)(filePath)) {
197
- errors.push(`File does not exist: ${fix.file}`);
198
- return errors;
199
- }
200
- // Check line number is valid
201
- const content = (0, fs_1.readFileSync)(filePath, 'utf-8');
202
- const lines = content.split('\n');
203
- if (fix.line <= 0 || fix.line > lines.length) {
204
- errors.push(`Invalid line number: ${fix.line} (file has ${lines.length} lines)`);
205
- }
206
- // Check code matches
207
- if (fix.line > 0 && fix.line <= lines.length) {
208
- const actualLine = lines[fix.line - 1];
209
- if (actualLine.trim() !== fix.oldCode.trim()) {
210
- errors.push(`Code mismatch at line ${fix.line}`);
211
- }
212
- }
213
- return errors;
214
- }
215
- /**
216
- * Create sandbox environment (future enhancement)
217
- */
218
- async createSandbox() {
219
- if (!this.config.sandboxEnabled) {
220
- return this.projectPath;
221
- }
222
- // Create sandbox directory
223
- if (!(0, fs_1.existsSync)(this.sandboxPath)) {
224
- (0, fs_1.mkdirSync)(this.sandboxPath, { recursive: true });
225
- }
226
- // Copy project files (simplified - would need full copy)
227
- // This is a placeholder for future sandbox implementation
228
- return this.sandboxPath;
229
- }
230
- /**
231
- * Cleanup sandbox (future enhancement)
232
- */
233
- cleanupSandbox() {
234
- if (this.config.sandboxEnabled && (0, fs_1.existsSync)(this.sandboxPath)) {
235
- try {
236
- (0, fs_1.rmSync)(this.sandboxPath, { recursive: true, force: true });
237
- }
238
- catch {
239
- // Ignore cleanup errors
240
- }
241
- }
242
- }
243
- }
244
- exports.FixTester = FixTester;
245
- //# sourceMappingURL=testing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../src/fix/testing.ts"],"names":[],"mappings":"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"}
@@ -1,71 +0,0 @@
1
- /**
2
- * Fix Validation Framework
3
- *
4
- * Provides comprehensive validation before and after fix application,
5
- * including pre-checks, post-checks, and continuous validation.
6
- */
7
- import { FixPack, Fix } from './engine';
8
- export interface ValidationRule {
9
- id: string;
10
- name: string;
11
- description: string;
12
- validate: (context: ValidationContext) => ValidationResult;
13
- severity: 'error' | 'warning' | 'info';
14
- }
15
- export interface ValidationContext {
16
- fix: Fix;
17
- filePath: string;
18
- fileContent: string;
19
- projectPath: string;
20
- packs: FixPack[];
21
- }
22
- export interface ValidationResult {
23
- passed: boolean;
24
- message?: string;
25
- severity?: 'error' | 'warning' | 'info';
26
- details?: Record<string, any>;
27
- }
28
- export interface ValidationReport {
29
- overall: boolean;
30
- rules: Array<{
31
- rule: ValidationRule;
32
- result: ValidationResult;
33
- }>;
34
- errors: ValidationResult[];
35
- warnings: ValidationResult[];
36
- passed: number;
37
- failed: number;
38
- }
39
- export declare class FixValidator {
40
- private rules;
41
- constructor();
42
- /**
43
- * Register a validation rule
44
- */
45
- registerRule(rule: ValidationRule): void;
46
- /**
47
- * Validate a fix before application
48
- */
49
- validatePre(fix: Fix, context: Omit<ValidationContext, 'fix'>): Promise<ValidationReport>;
50
- /**
51
- * Validate a fix after application
52
- */
53
- validatePost(fix: Fix, context: Omit<ValidationContext, 'fix'>): Promise<ValidationReport>;
54
- /**
55
- * Validate using all rules
56
- */
57
- private validate;
58
- /**
59
- * Register default validation rules
60
- */
61
- private registerDefaultRules;
62
- /**
63
- * Get all registered rules
64
- */
65
- getRules(): ValidationRule[];
66
- /**
67
- * Get rule by ID
68
- */
69
- getRule(id: string): ValidationRule | undefined;
70
- }
71
- //# sourceMappingURL=validation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/fix/validation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAIxC,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,gBAAgB,CAAC;IAC3D,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,GAAG,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,KAAK,CAAC;QACX,IAAI,EAAE,cAAc,CAAC;QACrB,MAAM,EAAE,gBAAgB,CAAC;KAC1B,CAAC,CAAC;IACH,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAA0C;;IAMvD;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI;IAIxC;;OAEG;IACG,WAAW,CACf,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GACtC,OAAO,CAAC,gBAAgB,CAAC;IAS5B;;OAEG;IACG,YAAY,CAChB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,GACtC,OAAO,CAAC,gBAAgB,CAAC;IAS5B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAmChB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgM5B;;OAEG;IACH,QAAQ,IAAI,cAAc,EAAE;IAI5B;;OAEG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;CAGhD"}
@@ -1,267 +0,0 @@
1
- "use strict";
2
- /**
3
- * Fix Validation Framework
4
- *
5
- * Provides comprehensive validation before and after fix application,
6
- * including pre-checks, post-checks, and continuous validation.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.FixValidator = void 0;
10
- const fs_1 = require("fs");
11
- class FixValidator {
12
- constructor() {
13
- this.rules = new Map();
14
- this.registerDefaultRules();
15
- }
16
- /**
17
- * Register a validation rule
18
- */
19
- registerRule(rule) {
20
- this.rules.set(rule.id, rule);
21
- }
22
- /**
23
- * Validate a fix before application
24
- */
25
- async validatePre(fix, context) {
26
- const validationContext = {
27
- fix,
28
- ...context,
29
- };
30
- return this.validate(validationContext);
31
- }
32
- /**
33
- * Validate a fix after application
34
- */
35
- async validatePost(fix, context) {
36
- const validationContext = {
37
- fix,
38
- ...context,
39
- };
40
- return this.validate(validationContext, true);
41
- }
42
- /**
43
- * Validate using all rules
44
- */
45
- validate(context, isPost = false) {
46
- const results = [];
47
- const errors = [];
48
- const warnings = [];
49
- for (const rule of this.rules.values()) {
50
- const result = rule.validate(context);
51
- results.push({ rule, result });
52
- if (!result.passed) {
53
- if (result.severity === 'error') {
54
- errors.push(result);
55
- }
56
- else if (result.severity === 'warning') {
57
- warnings.push(result);
58
- }
59
- }
60
- }
61
- const passed = results.filter((r) => r.result.passed).length;
62
- const failed = results.length - passed;
63
- return {
64
- overall: errors.length === 0,
65
- rules: results,
66
- errors,
67
- warnings,
68
- passed,
69
- failed,
70
- };
71
- }
72
- /**
73
- * Register default validation rules
74
- */
75
- registerDefaultRules() {
76
- // File exists check
77
- this.registerRule({
78
- id: 'file-exists',
79
- name: 'File Exists',
80
- description: 'Verify target file exists',
81
- severity: 'error',
82
- validate: (context) => {
83
- if (!(0, fs_1.existsSync)(context.filePath)) {
84
- return {
85
- passed: false,
86
- message: `File does not exist: ${context.filePath}`,
87
- severity: 'error',
88
- };
89
- }
90
- return { passed: true };
91
- },
92
- });
93
- // Line number validation
94
- this.registerRule({
95
- id: 'line-number-valid',
96
- name: 'Valid Line Number',
97
- description: 'Verify line number is within file bounds',
98
- severity: 'error',
99
- validate: (context) => {
100
- const lines = context.fileContent.split('\n');
101
- if (context.fix.line <= 0 || context.fix.line > lines.length) {
102
- return {
103
- passed: false,
104
- message: `Invalid line number: ${context.fix.line} (file has ${lines.length} lines)`,
105
- severity: 'error',
106
- };
107
- }
108
- return { passed: true };
109
- },
110
- });
111
- // Code match validation
112
- this.registerRule({
113
- id: 'code-matches',
114
- name: 'Code Matches',
115
- description: 'Verify old code matches current file content',
116
- severity: 'error',
117
- validate: (context) => {
118
- const lines = context.fileContent.split('\n');
119
- const actualLine = lines[context.fix.line - 1];
120
- if (actualLine.trim() !== context.fix.oldCode.trim()) {
121
- return {
122
- passed: false,
123
- message: `Code mismatch at line ${context.fix.line}`,
124
- severity: 'error',
125
- details: {
126
- expected: context.fix.oldCode.trim(),
127
- actual: actualLine.trim(),
128
- },
129
- };
130
- }
131
- return { passed: true };
132
- },
133
- });
134
- // Confidence threshold
135
- this.registerRule({
136
- id: 'confidence-threshold',
137
- name: 'Confidence Threshold',
138
- description: 'Verify fix confidence meets minimum threshold',
139
- severity: 'warning',
140
- validate: (context) => {
141
- if (context.fix.confidence < 0.7) {
142
- return {
143
- passed: false,
144
- message: `Low confidence fix (${(context.fix.confidence * 100).toFixed(0)}%)`,
145
- severity: 'warning',
146
- details: { confidence: context.fix.confidence },
147
- };
148
- }
149
- return { passed: true };
150
- },
151
- });
152
- // Risk assessment
153
- this.registerRule({
154
- id: 'risk-assessment',
155
- name: 'Risk Assessment',
156
- description: 'Warn about high-risk fixes',
157
- severity: 'warning',
158
- validate: (context) => {
159
- if (context.fix.risk === 'high') {
160
- return {
161
- passed: false,
162
- message: 'High-risk fix - review carefully',
163
- severity: 'warning',
164
- details: { risk: context.fix.risk },
165
- };
166
- }
167
- return { passed: true };
168
- },
169
- });
170
- // Syntax validation (basic)
171
- this.registerRule({
172
- id: 'syntax-basic',
173
- name: 'Basic Syntax Check',
174
- description: 'Basic syntax validation of new code',
175
- severity: 'warning',
176
- validate: (context) => {
177
- const newCode = context.fix.newCode;
178
- // Check for balanced brackets
179
- const brackets = { '(': ')', '[': ']', '{': '}' };
180
- const stack = [];
181
- for (const char of newCode) {
182
- if (brackets[char]) {
183
- stack.push(brackets[char]);
184
- }
185
- else if (Object.values(brackets).includes(char)) {
186
- const expected = stack.pop();
187
- if (expected !== char) {
188
- return {
189
- passed: false,
190
- message: 'Unbalanced brackets in new code',
191
- severity: 'warning',
192
- };
193
- }
194
- }
195
- }
196
- if (stack.length > 0) {
197
- return {
198
- passed: false,
199
- message: 'Unbalanced brackets in new code',
200
- severity: 'warning',
201
- };
202
- }
203
- return { passed: true };
204
- },
205
- });
206
- // File size check
207
- this.registerRule({
208
- id: 'file-size',
209
- name: 'File Size Check',
210
- description: 'Warn about very large files',
211
- severity: 'info',
212
- validate: (context) => {
213
- const lines = context.fileContent.split('\n');
214
- if (lines.length > 5000) {
215
- return {
216
- passed: false,
217
- message: `Large file (${lines.length} lines) - fix application may be slow`,
218
- severity: 'info',
219
- details: { lineCount: lines.length },
220
- };
221
- }
222
- return { passed: true };
223
- },
224
- });
225
- // Dependency conflict check
226
- this.registerRule({
227
- id: 'dependency-conflict',
228
- name: 'Dependency Conflict',
229
- description: 'Check for dependency conflicts',
230
- severity: 'warning',
231
- validate: (context) => {
232
- if (context.fix.file === 'package.json') {
233
- // Check if this fix conflicts with other fixes
234
- for (const pack of context.packs) {
235
- for (const otherFix of pack.fixes) {
236
- if (otherFix.findingId !== context.fix.findingId &&
237
- otherFix.file === 'package.json') {
238
- // Both modify package.json - potential conflict
239
- return {
240
- passed: false,
241
- message: 'Multiple package.json fixes - potential conflict',
242
- severity: 'warning',
243
- details: { conflictingFix: otherFix.findingId },
244
- };
245
- }
246
- }
247
- }
248
- }
249
- return { passed: true };
250
- },
251
- });
252
- }
253
- /**
254
- * Get all registered rules
255
- */
256
- getRules() {
257
- return Array.from(this.rules.values());
258
- }
259
- /**
260
- * Get rule by ID
261
- */
262
- getRule(id) {
263
- return this.rules.get(id);
264
- }
265
- }
266
- exports.FixValidator = FixValidator;
267
- //# sourceMappingURL=validation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/fix/validation.ts"],"names":[],"mappings":"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"}
@@ -1,73 +0,0 @@
1
- /**
2
- * Advanced Diff Visualization
3
- *
4
- * Provides enhanced diff visualization with syntax highlighting,
5
- * context lines, and interactive preview capabilities.
6
- */
7
- import { FixPack } from './engine';
8
- export interface DiffVisualization {
9
- files: DiffFile[];
10
- summary: {
11
- totalFiles: number;
12
- totalAdditions: number;
13
- totalDeletions: number;
14
- totalChanges: number;
15
- };
16
- }
17
- export interface DiffFile {
18
- file: string;
19
- hunks: DiffHunk[];
20
- summary: {
21
- additions: number;
22
- deletions: number;
23
- changes: number;
24
- };
25
- }
26
- export interface DiffHunk {
27
- oldStart: number;
28
- oldLines: number;
29
- newStart: number;
30
- newLines: number;
31
- context: string[];
32
- changes: DiffChange[];
33
- }
34
- export interface DiffChange {
35
- type: 'add' | 'delete' | 'context';
36
- line: string;
37
- oldLineNumber?: number;
38
- newLineNumber?: number;
39
- }
40
- export declare class DiffVisualizer {
41
- private projectPath;
42
- private contextLines;
43
- constructor(projectPath: string, contextLines?: number);
44
- /**
45
- * Generate unified diff visualization
46
- */
47
- visualize(packs: FixPack[]): DiffVisualization;
48
- /**
49
- * Create a hunk for a single fix
50
- */
51
- private createHunk;
52
- /**
53
- * Generate unified diff string (compatible with git diff)
54
- */
55
- generateUnifiedDiff(packs: FixPack[]): string;
56
- /**
57
- * Generate colored terminal output
58
- */
59
- generateColoredDiff(packs: FixPack[]): string;
60
- /**
61
- * Generate HTML diff
62
- */
63
- generateHTMLDiff(packs: FixPack[]): string;
64
- /**
65
- * Get HTML styles for diff
66
- */
67
- private getHTMLStyles;
68
- /**
69
- * Escape HTML entities
70
- */
71
- private escapeHtml;
72
- }
73
- //# sourceMappingURL=visualization.d.ts.map