@darrenjcoxon/vibeguard 1.0.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 (51) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +58 -0
  3. package/dist/agent-report.d.ts +36 -0
  4. package/dist/agent-report.d.ts.map +1 -0
  5. package/dist/agent-report.js +329 -0
  6. package/dist/agent-report.js.map +1 -0
  7. package/dist/ai-summary.d.ts +55 -0
  8. package/dist/ai-summary.d.ts.map +1 -0
  9. package/dist/ai-summary.js +267 -0
  10. package/dist/ai-summary.js.map +1 -0
  11. package/dist/cli.d.ts +9 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +328 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/index.d.ts +23 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +27 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/orchestrator.d.ts +63 -0
  20. package/dist/orchestrator.d.ts.map +1 -0
  21. package/dist/orchestrator.js +331 -0
  22. package/dist/orchestrator.js.map +1 -0
  23. package/dist/scanners/complexity.d.ts +48 -0
  24. package/dist/scanners/complexity.d.ts.map +1 -0
  25. package/dist/scanners/complexity.js +512 -0
  26. package/dist/scanners/complexity.js.map +1 -0
  27. package/dist/scanners/eslint.d.ts +21 -0
  28. package/dist/scanners/eslint.d.ts.map +1 -0
  29. package/dist/scanners/eslint.js +196 -0
  30. package/dist/scanners/eslint.js.map +1 -0
  31. package/dist/scanners/gitleaks.d.ts +21 -0
  32. package/dist/scanners/gitleaks.d.ts.map +1 -0
  33. package/dist/scanners/gitleaks.js +158 -0
  34. package/dist/scanners/gitleaks.js.map +1 -0
  35. package/dist/scanners/index.d.ts +56 -0
  36. package/dist/scanners/index.d.ts.map +1 -0
  37. package/dist/scanners/index.js +71 -0
  38. package/dist/scanners/index.js.map +1 -0
  39. package/dist/scanners/npm-audit.d.ts +19 -0
  40. package/dist/scanners/npm-audit.d.ts.map +1 -0
  41. package/dist/scanners/npm-audit.js +176 -0
  42. package/dist/scanners/npm-audit.js.map +1 -0
  43. package/dist/scanners/semgrep.d.ts +22 -0
  44. package/dist/scanners/semgrep.d.ts.map +1 -0
  45. package/dist/scanners/semgrep.js +175 -0
  46. package/dist/scanners/semgrep.js.map +1 -0
  47. package/dist/types.d.ts +522 -0
  48. package/dist/types.d.ts.map +1 -0
  49. package/dist/types.js +194 -0
  50. package/dist/types.js.map +1 -0
  51. package/package.json +53 -0
package/dist/types.js ADDED
@@ -0,0 +1,194 @@
1
+ /**
2
+ * CodeGuard - Core Types and Interfaces
3
+ *
4
+ * Defines the common data structures used across all scanners and reporters
5
+ */
6
+ import { z } from 'zod';
7
+ // ============================================================================
8
+ // Finding Severity and Categories
9
+ // ============================================================================
10
+ export const SeverityLevel = z.enum(['critical', 'high', 'medium', 'low', 'info']);
11
+ export const FindingCategory = z.enum([
12
+ 'security', // Security vulnerabilities (SAST)
13
+ 'secret', // Exposed secrets/credentials
14
+ 'dependency', // Vulnerable dependencies (SCA)
15
+ 'quality', // Code quality issues
16
+ 'complexity', // Cyclomatic/cognitive complexity
17
+ 'duplication', // Duplicate code
18
+ 'dead-code', // Unused code
19
+ 'style', // Linting/formatting issues
20
+ 'documentation', // Missing documentation
21
+ 'test-coverage', // Test coverage gaps
22
+ 'performance', // Performance issues
23
+ 'accessibility', // A11y issues (for web)
24
+ 'misconfiguration' // IaC/config issues
25
+ ]);
26
+ // ============================================================================
27
+ // Core Finding Schema
28
+ // ============================================================================
29
+ export const Finding = z.object({
30
+ // Identification
31
+ id: z.string(),
32
+ source: z.string(), // Which scanner found this
33
+ // Classification
34
+ severity: SeverityLevel,
35
+ category: FindingCategory,
36
+ // Location
37
+ file: z.string(),
38
+ line: z.number().optional(),
39
+ endLine: z.number().optional(),
40
+ column: z.number().optional(),
41
+ endColumn: z.number().optional(),
42
+ // Details
43
+ title: z.string(),
44
+ description: z.string(),
45
+ snippet: z.string().optional(), // Code snippet
46
+ // Standards mapping
47
+ cwe: z.string().optional(), // CWE-XXX
48
+ owasp: z.string().optional(), // OWASP Top 10 category
49
+ cvss: z.number().optional(), // CVSS score if applicable
50
+ cve: z.string().optional(), // CVE identifier
51
+ // Remediation
52
+ suggestion: z.string().optional(),
53
+ fixAvailable: z.boolean().default(false),
54
+ autoFixable: z.boolean().default(false),
55
+ // Metadata
56
+ ruleId: z.string().optional(),
57
+ ruleUrl: z.string().optional(),
58
+ confidence: z.enum(['high', 'medium', 'low']).optional(),
59
+ effort: z.enum(['trivial', 'easy', 'medium', 'hard']).optional(),
60
+ // Deduplication
61
+ fingerprint: z.string().optional()
62
+ });
63
+ // ============================================================================
64
+ // Scanner Configuration
65
+ // ============================================================================
66
+ export const ScannerConfig = z.object({
67
+ enabled: z.boolean().default(true),
68
+ name: z.string(),
69
+ timeout: z.number().default(300000), // 5 minutes default
70
+ // What categories this scanner covers
71
+ categories: z.array(FindingCategory),
72
+ // Scanner-specific options
73
+ options: z.record(z.any()).optional()
74
+ });
75
+ // ============================================================================
76
+ // Scan Target
77
+ // ============================================================================
78
+ export const ScanTargetSchema = z.object({
79
+ // What to scan
80
+ path: z.string(), // Local path to code
81
+ // Git context (optional)
82
+ git: z.object({
83
+ remote: z.string().optional(),
84
+ branch: z.string().optional(),
85
+ commit: z.string().optional(),
86
+ baseBranch: z.string().optional(), // For PR diff scanning
87
+ baseCommit: z.string().optional()
88
+ }).optional(),
89
+ // PR context (optional)
90
+ pullRequest: z.object({
91
+ provider: z.enum(['github', 'gitlab', 'azure-devops', 'bitbucket']),
92
+ number: z.number(),
93
+ url: z.string(),
94
+ title: z.string().optional(),
95
+ author: z.string().optional()
96
+ }).optional(),
97
+ // Filtering
98
+ include: z.array(z.string()).optional(), // Glob patterns
99
+ exclude: z.array(z.string()).optional(),
100
+ changedFilesOnly: z.boolean().optional()
101
+ });
102
+ // ============================================================================
103
+ // Scan Results
104
+ // ============================================================================
105
+ export const ScannerResult = z.object({
106
+ scanner: z.string(),
107
+ success: z.boolean(),
108
+ error: z.string().optional(),
109
+ findings: z.array(Finding),
110
+ metrics: z.object({
111
+ filesScanned: z.number().optional(),
112
+ linesScanned: z.number().optional(),
113
+ duration: z.number(), // milliseconds
114
+ }),
115
+ metadata: z.record(z.any()).optional()
116
+ });
117
+ export const ScanReportSchema = z.object({
118
+ id: z.string(),
119
+ timestamp: z.string(),
120
+ target: z.any(), // Using any since we have interface
121
+ results: z.array(z.any()),
122
+ findings: z.array(z.any()),
123
+ summary: z.object({
124
+ totalFindings: z.number(),
125
+ bySeverity: z.record(z.number()),
126
+ byCategory: z.record(z.number()),
127
+ byScanner: z.record(z.number()),
128
+ passesQualityGate: z.boolean(),
129
+ qualityGateDetails: z.string().optional()
130
+ }),
131
+ aiSummary: z.string().optional(),
132
+ aiRecommendations: z.array(z.string()).optional()
133
+ });
134
+ // ============================================================================
135
+ // Quality Gate Configuration
136
+ // ============================================================================
137
+ export const QualityGate = z.object({
138
+ name: z.string(),
139
+ rules: z.array(z.object({
140
+ metric: z.enum([
141
+ 'critical_findings',
142
+ 'high_findings',
143
+ 'security_findings',
144
+ 'secret_findings',
145
+ 'total_findings',
146
+ 'new_findings', // For PR analysis
147
+ 'code_coverage',
148
+ 'duplication_ratio'
149
+ ]),
150
+ operator: z.enum(['lt', 'lte', 'gt', 'gte', 'eq']),
151
+ threshold: z.number(),
152
+ failOnBreach: z.boolean().default(true)
153
+ }))
154
+ });
155
+ // ============================================================================
156
+ // Default Quality Gate
157
+ // ============================================================================
158
+ export const DEFAULT_QUALITY_GATE = {
159
+ name: 'Default',
160
+ rules: [
161
+ { metric: 'critical_findings', operator: 'eq', threshold: 0, failOnBreach: true },
162
+ { metric: 'high_findings', operator: 'lte', threshold: 5, failOnBreach: true },
163
+ { metric: 'secret_findings', operator: 'eq', threshold: 0, failOnBreach: true }
164
+ ]
165
+ };
166
+ // ============================================================================
167
+ // Utility functions
168
+ // ============================================================================
169
+ /**
170
+ * Generate a fingerprint for deduplication
171
+ */
172
+ export function generateFingerprint(finding) {
173
+ const parts = [
174
+ finding.file,
175
+ finding.line,
176
+ finding.ruleId || finding.title,
177
+ finding.category
178
+ ].filter(Boolean);
179
+ return Buffer.from(parts.join('|')).toString('base64').slice(0, 32);
180
+ }
181
+ /**
182
+ * Severity weight for sorting
183
+ */
184
+ export function severityWeight(severity) {
185
+ const weights = {
186
+ critical: 5,
187
+ high: 4,
188
+ medium: 3,
189
+ low: 2,
190
+ info: 1
191
+ };
192
+ return weights[severity];
193
+ }
194
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,53 @@
1
+ {
2
+ "name": "@darrenjcoxon/vibeguard",
3
+ "version": "1.0.0",
4
+ "description": "Security scanner for vibe coders. Scan your code, get FIXES.md, let AI fix everything.",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "type": "module",
8
+ "bin": {
9
+ "vibeguard": "dist/cli.js"
10
+ },
11
+ "files": [
12
+ "dist",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc",
18
+ "prepublishOnly": "npm run build"
19
+ },
20
+ "keywords": [
21
+ "security",
22
+ "scanner",
23
+ "ai",
24
+ "vibe-coding",
25
+ "claude",
26
+ "cursor",
27
+ "copilot",
28
+ "semgrep",
29
+ "gitleaks",
30
+ "fixes",
31
+ "code-review"
32
+ ],
33
+ "author": "Darren Coxon",
34
+ "license": "MIT",
35
+ "repository": {
36
+ "type": "git",
37
+ "url": "https://github.com/darrenjcoxon/vibeguard.git"
38
+ },
39
+ "engines": {
40
+ "node": ">=18.0.0"
41
+ },
42
+ "dependencies": {
43
+ "@anthropic-ai/sdk": "^0.30.0",
44
+ "chalk": "^5.3.0",
45
+ "commander": "^12.0.0",
46
+ "ora": "^8.0.1",
47
+ "zod": "^3.22.4"
48
+ },
49
+ "devDependencies": {
50
+ "@types/node": "^20.11.0",
51
+ "typescript": "^5.3.3"
52
+ }
53
+ }