@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,143 +0,0 @@
1
- "use strict";
2
- /**
3
- * Fix Strategies and Profiles
4
- *
5
- * Provides different fixing strategies (conservative, balanced, aggressive)
6
- * to control how fixes are applied based on risk tolerance and confidence levels.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.FixStrategyFilter = exports.STRATEGY_PRESETS = void 0;
10
- exports.STRATEGY_PRESETS = {
11
- conservative: {
12
- strategy: 'conservative',
13
- minConfidence: 0.9,
14
- maxRisk: 'low',
15
- allowHighRisk: false,
16
- requireVerification: true,
17
- maxConcurrentFixes: 1,
18
- batchSize: 5,
19
- retryOnFailure: false,
20
- autoRollback: true,
21
- },
22
- balanced: {
23
- strategy: 'balanced',
24
- minConfidence: 0.7,
25
- maxRisk: 'medium',
26
- allowHighRisk: false,
27
- requireVerification: true,
28
- maxConcurrentFixes: 3,
29
- batchSize: 10,
30
- retryOnFailure: true,
31
- autoRollback: true,
32
- },
33
- aggressive: {
34
- strategy: 'aggressive',
35
- minConfidence: 0.5,
36
- maxRisk: 'high',
37
- allowHighRisk: true,
38
- requireVerification: false,
39
- maxConcurrentFixes: 10,
40
- batchSize: 50,
41
- retryOnFailure: true,
42
- autoRollback: false,
43
- },
44
- };
45
- class FixStrategyFilter {
46
- constructor(config) {
47
- if (typeof config === 'string') {
48
- this.config = exports.STRATEGY_PRESETS[config];
49
- }
50
- else {
51
- this.config = config;
52
- }
53
- }
54
- /**
55
- * Filter fix packs based on strategy
56
- */
57
- filterPacks(packs) {
58
- return packs
59
- .map((pack) => this.filterPack(pack))
60
- .filter((pack) => pack !== null && pack.fixes.length > 0);
61
- }
62
- /**
63
- * Filter a single pack based on strategy
64
- */
65
- filterPack(pack) {
66
- const filteredFixes = pack.fixes.filter((fix) => this.shouldApplyFix(fix));
67
- if (filteredFixes.length === 0) {
68
- return null;
69
- }
70
- const avgConfidence = filteredFixes.length > 0
71
- ? filteredFixes.reduce((sum, f) => sum + f.confidence, 0) /
72
- filteredFixes.length
73
- : 0;
74
- return {
75
- ...pack,
76
- fixes: filteredFixes,
77
- confidence: avgConfidence,
78
- estimatedRisk: this.calculatePackRisk(filteredFixes),
79
- };
80
- }
81
- /**
82
- * Determine if a fix should be applied based on strategy
83
- */
84
- shouldApplyFix(fix) {
85
- // Check confidence threshold
86
- if (fix.confidence < this.config.minConfidence) {
87
- return false;
88
- }
89
- // Check risk level
90
- if (fix.risk === 'high' && !this.config.allowHighRisk) {
91
- return false;
92
- }
93
- // Check max risk
94
- const riskLevels = { low: 1, medium: 2, high: 3 };
95
- if (riskLevels[fix.risk] > riskLevels[this.config.maxRisk]) {
96
- return false;
97
- }
98
- return true;
99
- }
100
- /**
101
- * Calculate pack risk based on filtered fixes
102
- */
103
- calculatePackRisk(fixes) {
104
- if (fixes.length === 0)
105
- return 'low';
106
- const highRiskCount = fixes.filter((f) => f.risk === 'high').length;
107
- const mediumRiskCount = fixes.filter((f) => f.risk === 'medium').length;
108
- if (highRiskCount > fixes.length * 0.3)
109
- return 'high';
110
- if (mediumRiskCount > fixes.length * 0.5)
111
- return 'medium';
112
- return 'low';
113
- }
114
- /**
115
- * Batch fixes according to strategy
116
- */
117
- batchFixes(packs) {
118
- const batches = [];
119
- const batchSize = this.config.batchSize;
120
- for (let i = 0; i < packs.length; i += batchSize) {
121
- batches.push(packs.slice(i, i + batchSize));
122
- }
123
- return batches;
124
- }
125
- /**
126
- * Get configuration
127
- */
128
- getConfig() {
129
- return { ...this.config };
130
- }
131
- /**
132
- * Merge custom config with strategy preset
133
- */
134
- static mergeConfig(strategy, overrides) {
135
- return {
136
- ...exports.STRATEGY_PRESETS[strategy],
137
- ...overrides,
138
- strategy, // Ensure strategy is not overridden
139
- };
140
- }
141
- }
142
- exports.FixStrategyFilter = FixStrategyFilter;
143
- //# sourceMappingURL=strategy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../src/fix/strategy.ts"],"names":[],"mappings":"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"}
@@ -1,58 +0,0 @@
1
- /**
2
- * Fix Templates and Pattern Library
3
- *
4
- * Provides reusable fix templates and patterns for common issues.
5
- * Templates can be customized and extended for specific use cases.
6
- */
7
- import { Finding, Fix } from './engine';
8
- export interface FixTemplate {
9
- id: string;
10
- name: string;
11
- description: string;
12
- category: string;
13
- pattern: string;
14
- confidence: number;
15
- risk: 'low' | 'medium' | 'high';
16
- apply: (finding: Finding, context: TemplateContext) => Fix | null;
17
- validate?: (fix: Fix, context: TemplateContext) => boolean;
18
- }
19
- export interface TemplateContext {
20
- filePath: string;
21
- fileContent: string;
22
- lineNumber: number;
23
- lineContent: string;
24
- projectPath: string;
25
- }
26
- export declare class FixTemplateLibrary {
27
- private templates;
28
- constructor();
29
- /**
30
- * Register a fix template
31
- */
32
- register(template: FixTemplate): void;
33
- /**
34
- * Find matching templates for a finding
35
- */
36
- findMatching(finding: Finding, context: TemplateContext): FixTemplate[];
37
- /**
38
- * Apply best matching template
39
- */
40
- applyBestMatch(finding: Finding, context: TemplateContext): Fix | null;
41
- /**
42
- * Register default templates
43
- */
44
- private registerDefaultTemplates;
45
- /**
46
- * Infer environment variable name from key name
47
- */
48
- private inferEnvVarName;
49
- /**
50
- * Get all registered templates
51
- */
52
- getAllTemplates(): FixTemplate[];
53
- /**
54
- * Get template by ID
55
- */
56
- getTemplate(id: string): FixTemplate | undefined;
57
- }
58
- //# sourceMappingURL=templates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/fix/templates.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAIxC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,KAAK,GAAG,GAAG,IAAI,CAAC;IAClE,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,eAAe,KAAK,OAAO,CAAC;CAC5D;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,SAAS,CAAuC;;IAMxD;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAIrC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,WAAW,EAAE;IAgCvE;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,GAAG,GAAG,IAAI;IAqBtE;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA+KhC;;OAEG;IACH,OAAO,CAAC,eAAe;IAcvB;;OAEG;IACH,eAAe,IAAI,WAAW,EAAE;IAIhC;;OAEG;IACH,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;CAGjD"}
@@ -1,259 +0,0 @@
1
- "use strict";
2
- /**
3
- * Fix Templates and Pattern Library
4
- *
5
- * Provides reusable fix templates and patterns for common issues.
6
- * Templates can be customized and extended for specific use cases.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.FixTemplateLibrary = void 0;
10
- const fs_1 = require("fs");
11
- const path_1 = require("path");
12
- class FixTemplateLibrary {
13
- constructor() {
14
- this.templates = new Map();
15
- this.registerDefaultTemplates();
16
- }
17
- /**
18
- * Register a fix template
19
- */
20
- register(template) {
21
- this.templates.set(template.id, template);
22
- }
23
- /**
24
- * Find matching templates for a finding
25
- */
26
- findMatching(finding, context) {
27
- const matches = [];
28
- for (const template of this.templates.values()) {
29
- // Check category match
30
- if (template.category.toLowerCase() !== finding.category.toLowerCase() &&
31
- !finding.category
32
- .toLowerCase()
33
- .includes(template.category.toLowerCase())) {
34
- continue;
35
- }
36
- // Check pattern match
37
- try {
38
- const regex = new RegExp(template.pattern, 'i');
39
- if (regex.test(context.lineContent) ||
40
- regex.test(finding.description)) {
41
- matches.push(template);
42
- }
43
- }
44
- catch {
45
- // Invalid regex, skip
46
- }
47
- }
48
- // Sort by confidence (highest first)
49
- return matches.sort((a, b) => b.confidence - a.confidence);
50
- }
51
- /**
52
- * Apply best matching template
53
- */
54
- applyBestMatch(finding, context) {
55
- const matches = this.findMatching(finding, context);
56
- if (matches.length === 0) {
57
- return null;
58
- }
59
- // Try templates in order of confidence
60
- for (const template of matches) {
61
- const fix = template.apply(finding, context);
62
- if (fix && template.validate && !template.validate(fix, context)) {
63
- continue; // Validation failed, try next
64
- }
65
- if (fix) {
66
- return fix;
67
- }
68
- }
69
- return null;
70
- }
71
- /**
72
- * Register default templates
73
- */
74
- registerDefaultTemplates() {
75
- // Secret/API Key Template
76
- this.register({
77
- id: 'secret-env-var',
78
- name: 'Move Secret to Environment Variable',
79
- description: 'Replace hardcoded secrets with environment variables',
80
- category: 'security',
81
- pattern: '(api[_-]?key|secret|token|password)\\s*[:=]\\s*[\'"`][^\'"`]+[\'"`]',
82
- confidence: 0.9,
83
- risk: 'low',
84
- apply: (finding, context) => {
85
- const line = context.lineContent;
86
- const match = line.match(/(\w+)\s*[:=]\s*[\'"`]([^\'"`]+)[\'"`]/i);
87
- if (!match)
88
- return null;
89
- const [, keyName, value] = match;
90
- const envVarName = this.inferEnvVarName(keyName);
91
- const newLine = line.replace(/[\'"`][^\'"`]+[\'"`]/, `process.env.${envVarName}`);
92
- return {
93
- findingId: finding.id,
94
- file: finding.file,
95
- line: finding.line,
96
- oldCode: line,
97
- newCode: newLine,
98
- confidence: 0.9,
99
- risk: 'low',
100
- explanation: `Replace hardcoded ${keyName} with environment variable ${envVarName}`,
101
- };
102
- },
103
- });
104
- // Console.log Template
105
- this.register({
106
- id: 'console-log-to-logger',
107
- name: 'Replace console.log with Logger',
108
- description: 'Replace console.log statements with proper logger',
109
- category: 'quality',
110
- pattern: 'console\\.(log|warn|error|info|debug)',
111
- confidence: 0.85,
112
- risk: 'low',
113
- apply: (finding, context) => {
114
- const line = context.lineContent;
115
- const match = line.match(/console\.(log|warn|error|info|debug)/);
116
- if (!match)
117
- return null;
118
- const [, method] = match;
119
- const loggerMethod = method === 'log' ? 'debug' : method;
120
- const newLine = line.replace(/console\.(log|warn|error|info|debug)/, `logger.${loggerMethod}`);
121
- return {
122
- findingId: finding.id,
123
- file: finding.file,
124
- line: finding.line,
125
- oldCode: line,
126
- newCode: newLine,
127
- confidence: 0.85,
128
- risk: 'low',
129
- explanation: `Replace console.${method} with logger.${loggerMethod}`,
130
- };
131
- },
132
- });
133
- // Var to Const Template
134
- this.register({
135
- id: 'var-to-const',
136
- name: 'Replace var with const/let',
137
- description: 'Replace var declarations with const or let',
138
- category: 'quality',
139
- pattern: '\\bvar\\s+',
140
- confidence: 0.9,
141
- risk: 'low',
142
- apply: (finding, context) => {
143
- const line = context.lineContent;
144
- if (!/\bvar\s+/.test(line))
145
- return null;
146
- // Heuristic: use const if no reassignment detected
147
- const isReassigned = /=\s*\w+.*=/.test(line);
148
- const replacement = isReassigned ? 'let' : 'const';
149
- const newLine = line.replace(/\bvar\b/, replacement);
150
- return {
151
- findingId: finding.id,
152
- file: finding.file,
153
- line: finding.line,
154
- oldCode: line,
155
- newCode: newLine,
156
- confidence: 0.85,
157
- risk: 'low',
158
- explanation: `Replace var with ${replacement} for better scoping`,
159
- };
160
- },
161
- });
162
- // Dependency Upgrade Template
163
- this.register({
164
- id: 'dependency-upgrade',
165
- name: 'Upgrade Dependency Version',
166
- description: 'Upgrade vulnerable dependency to safe version',
167
- category: 'security',
168
- pattern: 'upgrade.*to.*@?[\\d.]+',
169
- confidence: 0.95,
170
- risk: 'low',
171
- apply: (finding, context) => {
172
- const match = finding.recommendation.match(/Upgrade to ([^@\s]+)@?([^\s]+)?/i);
173
- if (!match)
174
- return null;
175
- const [, pkgName, version] = match;
176
- try {
177
- const packageJsonPath = (0, path_1.join)(context.projectPath, 'package.json');
178
- const packageJson = JSON.parse((0, fs_1.readFileSync)(packageJsonPath, 'utf-8'));
179
- const oldVersion = packageJson.dependencies?.[pkgName] ||
180
- packageJson.devDependencies?.[pkgName];
181
- if (!oldVersion)
182
- return null;
183
- const newVersion = version || 'latest';
184
- const oldLine = `"${pkgName}": "${oldVersion}"`;
185
- const newLine = `"${pkgName}": "^${newVersion}"`;
186
- return {
187
- findingId: finding.id,
188
- file: 'package.json',
189
- line: finding.line,
190
- oldCode: oldLine,
191
- newCode: newLine,
192
- confidence: 0.95,
193
- risk: 'low',
194
- explanation: `Upgrade ${pkgName} from ${oldVersion} to ${newVersion}`,
195
- };
196
- }
197
- catch {
198
- return null;
199
- }
200
- },
201
- });
202
- // TODO Comment Template
203
- this.register({
204
- id: 'add-todo-comment',
205
- name: 'Add TODO Comment',
206
- description: 'Add TODO comment for manual review',
207
- category: 'quality',
208
- pattern: '.*', // Catch-all for low confidence fixes
209
- confidence: 0.5,
210
- risk: 'low',
211
- apply: (finding, context) => {
212
- const line = context.lineContent;
213
- const newLine = `// TODO: ${finding.recommendation}\n${line}`;
214
- return {
215
- findingId: finding.id,
216
- file: finding.file,
217
- line: finding.line,
218
- oldCode: line,
219
- newCode: newLine,
220
- confidence: 0.5,
221
- risk: 'low',
222
- explanation: `Add TODO comment: ${finding.recommendation}`,
223
- };
224
- },
225
- });
226
- }
227
- /**
228
- * Infer environment variable name from key name
229
- */
230
- inferEnvVarName(keyName) {
231
- const normalized = keyName
232
- .toUpperCase()
233
- .replace(/[^A-Z0-9]+/g, '_')
234
- .replace(/^_+|_+$/g, '');
235
- if (normalized.includes('API_KEY'))
236
- return 'API_KEY';
237
- if (normalized.includes('TOKEN'))
238
- return 'AUTH_TOKEN';
239
- if (normalized.includes('SECRET'))
240
- return 'SECRET_KEY';
241
- if (normalized.includes('PASSWORD'))
242
- return 'DB_PASSWORD';
243
- return normalized || 'SECRET_VALUE';
244
- }
245
- /**
246
- * Get all registered templates
247
- */
248
- getAllTemplates() {
249
- return Array.from(this.templates.values());
250
- }
251
- /**
252
- * Get template by ID
253
- */
254
- getTemplate(id) {
255
- return this.templates.get(id);
256
- }
257
- }
258
- exports.FixTemplateLibrary = FixTemplateLibrary;
259
- //# sourceMappingURL=templates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/fix/templates.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAGH,2BAAkC;AAClC,+BAA4B;AAsB5B,MAAa,kBAAkB;IAG7B;QAFQ,cAAS,GAA6B,IAAI,GAAG,EAAE,CAAC;QAGtD,IAAI,CAAC,wBAAwB,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,QAAqB;QAC5B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAgB,EAAE,OAAwB;QACrD,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC/C,uBAAuB;YACvB,IACE,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE;gBAClE,CAAC,OAAO,CAAC,QAAQ;qBACd,WAAW,EAAE;qBACb,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAC5C,CAAC;gBACD,SAAS;YACX,CAAC;YAED,sBAAsB;YACtB,IAAI,CAAC;gBACH,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;gBAChD,IACE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;oBAC/B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAC/B,CAAC;oBACD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,sBAAsB;YACxB,CAAC;QACH,CAAC;QAED,qCAAqC;QACrC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,OAAgB,EAAE,OAAwB;QACvD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAEpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,uCAAuC;QACvC,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,GAAG,IAAI,QAAQ,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,CAAC;gBACjE,SAAS,CAAC,8BAA8B;YAC1C,CAAC;YACD,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,GAAG,CAAC;YACb,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,wBAAwB;QAC9B,0BAA0B;QAC1B,IAAI,CAAC,QAAQ,CAAC;YACZ,EAAE,EAAE,gBAAgB;YACpB,IAAI,EAAE,qCAAqC;YAC3C,WAAW,EAAE,sDAAsD;YACnE,QAAQ,EAAE,UAAU;YACpB,OAAO,EACL,qEAAqE;YACvE,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;gBACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;gBACnE,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBAExB,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;gBACjC,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;gBACjD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAC1B,sBAAsB,EACtB,eAAe,UAAU,EAAE,CAC5B,CAAC;gBAEF,OAAO;oBACL,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,KAAK;oBACX,WAAW,EAAE,qBAAqB,OAAO,8BAA8B,UAAU,EAAE;iBACpF,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,uBAAuB;QACvB,IAAI,CAAC,QAAQ,CAAC;YACZ,EAAE,EAAE,uBAAuB;YAC3B,IAAI,EAAE,iCAAiC;YACvC,WAAW,EAAE,mDAAmD;YAChE,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,uCAAuC;YAChD,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;gBACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBACjE,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBAExB,MAAM,CAAC,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;gBACzB,MAAM,YAAY,GAAG,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAC1B,sCAAsC,EACtC,UAAU,YAAY,EAAE,CACzB,CAAC;gBAEF,OAAO;oBACL,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,KAAK;oBACX,WAAW,EAAE,mBAAmB,MAAM,gBAAgB,YAAY,EAAE;iBACrE,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC,QAAQ,CAAC;YACZ,EAAE,EAAE,cAAc;YAClB,IAAI,EAAE,4BAA4B;YAClC,WAAW,EAAE,4CAA4C;YACzD,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,YAAY;YACrB,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;gBAExC,mDAAmD;gBACnD,MAAM,YAAY,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC;gBACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;gBAErD,OAAO;oBACL,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,IAAI;oBAChB,IAAI,EAAE,KAAK;oBACX,WAAW,EAAE,oBAAoB,WAAW,qBAAqB;iBAClE,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;QAEH,8BAA8B;QAC9B,IAAI,CAAC,QAAQ,CAAC;YACZ,EAAE,EAAE,oBAAoB;YACxB,IAAI,EAAE,4BAA4B;YAClC,WAAW,EAAE,+CAA+C;YAC5D,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,wBAAwB;YACjC,UAAU,EAAE,IAAI;YAChB,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;gBAC1B,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CACxC,kCAAkC,CACnC,CAAC;gBACF,IAAI,CAAC,KAAK;oBAAE,OAAO,IAAI,CAAC;gBAExB,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC;oBACH,MAAM,eAAe,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;oBAClE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,IAAA,iBAAY,EAAC,eAAe,EAAE,OAAO,CAAC,CACvC,CAAC;oBAEF,MAAM,UAAU,GACd,WAAW,CAAC,YAAY,EAAE,CAAC,OAAO,CAAC;wBACnC,WAAW,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,CAAC;oBACzC,IAAI,CAAC,UAAU;wBAAE,OAAO,IAAI,CAAC;oBAE7B,MAAM,UAAU,GAAG,OAAO,IAAI,QAAQ,CAAC;oBACvC,MAAM,OAAO,GAAG,IAAI,OAAO,OAAO,UAAU,GAAG,CAAC;oBAChD,MAAM,OAAO,GAAG,IAAI,OAAO,QAAQ,UAAU,GAAG,CAAC;oBAEjD,OAAO;wBACL,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,IAAI,EAAE,cAAc;wBACpB,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,OAAO,EAAE,OAAO;wBAChB,OAAO,EAAE,OAAO;wBAChB,UAAU,EAAE,IAAI;wBAChB,IAAI,EAAE,KAAK;wBACX,WAAW,EAAE,WAAW,OAAO,SAAS,UAAU,OAAO,UAAU,EAAE;qBACtE,CAAC;gBACJ,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,IAAI,CAAC;gBACd,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,wBAAwB;QACxB,IAAI,CAAC,QAAQ,CAAC;YACZ,EAAE,EAAE,kBAAkB;YACtB,IAAI,EAAE,kBAAkB;YACxB,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,IAAI,EAAE,qCAAqC;YACpD,UAAU,EAAE,GAAG;YACf,IAAI,EAAE,KAAK;YACX,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;gBAC1B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;gBACjC,MAAM,OAAO,GAAG,YAAY,OAAO,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;gBAE9D,OAAO;oBACL,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,OAAO;oBAChB,UAAU,EAAE,GAAG;oBACf,IAAI,EAAE,KAAK;oBACX,WAAW,EAAE,qBAAqB,OAAO,CAAC,cAAc,EAAE;iBAC3D,CAAC;YACJ,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,OAAe;QACrC,MAAM,UAAU,GAAG,OAAO;aACvB,WAAW,EAAE;aACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;aAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAE3B,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QACrD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC;YAAE,OAAO,YAAY,CAAC;QACtD,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,YAAY,CAAC;QACvD,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,OAAO,aAAa,CAAC;QAE1D,OAAO,UAAU,IAAI,cAAc,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;CACF;AAzRD,gDAyRC"}
@@ -1,68 +0,0 @@
1
- /**
2
- * Fix Testing Framework
3
- *
4
- * Tests fixes before application using sandbox environments,
5
- * unit tests, and validation checks.
6
- */
7
- import { Fix, FixPack } from './engine';
8
- export interface TestResult {
9
- passed: boolean;
10
- testsRun: number;
11
- testsPassed: number;
12
- testsFailed: number;
13
- errors: string[];
14
- warnings: string[];
15
- duration: number;
16
- }
17
- export interface FixTestResult {
18
- fix: Fix;
19
- testResult: TestResult;
20
- safeToApply: boolean;
21
- reason?: string;
22
- }
23
- export interface TestConfiguration {
24
- runTests: boolean;
25
- testCommand?: string;
26
- testTimeout: number;
27
- requireAllTestsPass: boolean;
28
- sandboxEnabled: boolean;
29
- }
30
- export declare class FixTester {
31
- private projectPath;
32
- private sandboxPath;
33
- private config;
34
- constructor(projectPath: string, config?: Partial<TestConfiguration>);
35
- /**
36
- * Test a fix before application
37
- */
38
- testFix(fix: Fix): Promise<FixTestResult>;
39
- /**
40
- * Test a pack of fixes
41
- */
42
- testPack(pack: FixPack): Promise<FixTestResult[]>;
43
- /**
44
- * Run tests in the project
45
- */
46
- private runTests;
47
- /**
48
- * Detect test command from package.json
49
- */
50
- private detectTestCommand;
51
- /**
52
- * Extract test count from output
53
- */
54
- private extractTestCount;
55
- /**
56
- * Validate fix before testing
57
- */
58
- private validateFix;
59
- /**
60
- * Create sandbox environment (future enhancement)
61
- */
62
- private createSandbox;
63
- /**
64
- * Cleanup sandbox (future enhancement)
65
- */
66
- private cleanupSandbox;
67
- }
68
- //# sourceMappingURL=testing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../src/fix/testing.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAKxC,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,GAAG,CAAC;IACT,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAoB;gBAGhC,WAAW,EAAE,MAAM,EACnB,MAAM,GAAE,OAAO,CAAC,iBAAiB,CAAM;IAazC;;OAEG;IACG,OAAO,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC;IAqE/C;;OAEG;IACG,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAYvD;;OAEG;YACW,QAAQ;IAyDtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAqBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAMxB;;OAEG;IACH,OAAO,CAAC,WAAW;IA4BnB;;OAEG;YACW,aAAa;IAgB3B;;OAEG;IACH,OAAO,CAAC,cAAc;CASvB"}